2016年6月6日星期一

Yii2 i18n Basic Template 設置

在使用Yii2 的i18n做多語言設置時,主要有2個地方要設置的。

1. 設置檔案 web.php
 假設根目錄是/var/www/basic

編輯 /var/www/basic/config/web.php
加入藍色的設置。
預設的language是en-US。
翻譯的檔案分別是app.php 及error.php,在'/var/www/basic/messages/[language]'中。

<?php

$params = require(__DIR__ . '/params.php');

$config = [
... ...
  'language' => 'zh-TW',
  
  'components' => [
... ...        
        'i18n' => [
            'translations' => [
            'app*' => [
                'class' => 'yii\i18n\PhpMessageSource',
                'fileMap' => [
                    'app' => 'app.php',
                    'app/error' => 'error.php',
                ],
            ],
        ],

... ...
];


2. 建立目錄及檔案
在/var/www/basic/vendor/yiisoft/yii2/messages中已有部分翻譯,只是檔案名不同,直接 copy便可。
如zh-TW,

cp -r /var/www/basic/vendor/yiisoft/yii2/messages/zh-TW /var/www/basic/messages
cd  /var/www/basic/messages
mv yii.php app.php

DONE

2016年3月23日星期三

Vtiger CRM 中文亂碼

在試用VtigerCRM時發現中文亂碼。分別在顯示時及轉PDF時出現。
實現環境:
Centos 7 + Vtiger6.4

解決辦法:
1. 顯示時的中文亂碼
是由於Database 的Charset不正確造成的,只要更改為UTF8便可。
但如Database已生成,建議重新安裝Vtiger比較節省時間。google了,似乎沒有辦法直接轉換。曾經試過把Database匯出SQL,更改SQL中chatset為UTF8,再匯入。但加index時出現了一些錯誤信息。未知是否有影響。

比較簡單的方法是在安裝Vtiger時,只要把Database的Charset改成UTF8便可。在安裝完成後,所有tables及fields的charset都是UTF8,問題便解決了。

方法如下:
mysql -u root -p
CREATE DATABASE vtiger CHARSET=utf8 COLLATE=utf8_unicode_ci;
CREATE USER 'vtiger'@'localhost' IDENTIFIED BY 'testing';
grant all privileges on `vtiger`.* to 'vtiger'@'localhost';
FLUSH PRIVILEGES;


2. 轉PDF時出現中文亂碼
TCPDF及字型的問題。
已放棄Vtiger,具體解決方法參考以下
http://www.ossez.com/forum.php?mod=viewthread&tid=761
http://wiki.debian.org.hk/w/Where_can_I_find_fonts_for_GNU/Linux