本例通過(guò) Yii Framework 開(kāi)發(fā)教程(11) UI 組件 ActiveForm 示例添加中文支持簡(jiǎn)要說(shuō)明一下多國(guó)語(yǔ)言支持。詳細(xì)文檔可可以參考 Yii 文檔。
信息翻譯是通過(guò)調(diào)用 Yii::t() 實(shí)現(xiàn)的。此方法會(huì)將信息從 源語(yǔ)言 翻譯為 目標(biāo)語(yǔ)言。
總體來(lái)說(shuō),要實(shí)現(xiàn)信息翻譯,需要執(zhí)行如下幾步:
因此第一步為 pplication 添加合適的配置:
<?php
// This is the main Web application configuration. Any writable
// CWebApplication properties can be configured here.
return array(
'basePath'=>dirname(__FILE__).DIRECTORY_SEPARATOR.'..',
'sourceLanguage'=>'en',
'language'=>'zh_cn',
'name'=>'i18nDemo',
...
// application components
'components'=>array(
'coreMessages'=>array(
'basePath'=>'protected/messages',
),),
);
源語(yǔ)言為 en,目錄語(yǔ)言為中文(zh_cn) ,翻譯信息的目錄為 protected/messages.
然後再 protected/messages 創(chuàng)建 zh_cn 目錄,如果還需要支持其它語(yǔ)言,可以創(chuàng)建相應(yīng)的目錄,然後在 zh_cn 創(chuàng)建一個(gè) yii.php ,其中 yii 做為翻譯時(shí)的分類名(你可以選擇你自己喜歡的名字)。
檢查代碼中需要翻譯的地方,然後在 yii.php 文件中定義對(duì)應(yīng)的翻譯:
return array (
'Application Name' => '應(yīng)用程序名稱',
'Greetings from Santa'=>'來(lái)自聖誕老人的問(wèn)候',
'firstName'=>'名',
'lastName'=>'姓',
'Choose your Christmas Gift'=>'選擇你喜歡的聖誕禮物',
'iPad'=>'iPad',
'Remote control helicopter'=>'遙控直升飛機(jī)',
'60 inch 3D LED TV'=>'60寸3D LED電視',
'Holy Bible'=>'聖經(jīng)',
'Choose your Christmas dinner'=>'選擇你聖誕節(jié)晚餐',
'Egg'=>'雞蛋',
'Ham'=>'火腿',
'Chicken'=>'雞',
'Pork'=>'豬肉',
'Beer'=>'啤酒',
'Coke'=>'可樂(lè)',
'Wine'=>'白酒',
'Submit'=>'提交',
'Merry Christmas'=>'聖誕快樂(lè)',
'On Christmas Day,You will be given'=>'聖誕節(jié)那天你將獲得',
'And you will have'=>'你可以有',
'for Christmas dinner'=>'作為聖誕晚餐',
'Start Again'=>'重新選擇'
);
1
然後將原先使用英文字元串的地方換成yii::t('yii',xxx);比如DataModel.php
1
public function getGifts()
{
return array(
'1'=>Yii::t('yii','iPad'),
'2'=>Yii::t('yii','Remote control helicopter'),
'3'=>Yii::t('yii','60 inch 3D LED TV'),
'4'=>Yii::t('yii','Holy Bible'),
);
}
public function getMeals()
{
return array(
'1'=>Yii::t('yii','Egg'),
'2'=>Yii::t('yii','Ham'),
'3'=>Yii::t('yii','Chicken'),
'4'=>Yii::t('yii','Pork'),
'5'=>Yii::t('yii','Beer'),
'6'=>Yii::t('yii','Coke'),
'7'=>Yii::t('yii','Wine'),
);
}
http://wiki.jikexueyuan.com/project/yii-development-tutorial/images/48.1.jpg" alt="picture48.1" />
本例下載