程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> PHP綜合 >> PHP開發框架Yii Framework教程(48) 多國語言示例

PHP開發框架Yii Framework教程(48) 多國語言示例

編輯:PHP綜合

本例通過Yii Framework 開發教程(11) UI 組件 ActiveForm示例添加中文支持簡要說明一下多國語言支持。詳細文檔可可以 參考Yii文檔。

信息翻譯是通過調用 Yii::t() 實現的。此方法會將信息從 源語言 翻譯為 目標語言。

總體來說 ,要實現信息翻譯,需要執行如下幾步:

在合適的位置調用 Yii::t() ;

以 protected/messages/LocaleID/CategoryName.php 的格式創建 PHP 翻譯文件。 每個文件簡單的返回一個信息翻譯數組。 注意 ,這是假設你使用默認的 CPhpMessageSource 存儲翻譯信息。

配置 CApplication::sourceLanguage 和 CApplication::language。

因此第一步為Application添加合適的配置:

<?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',
        ),),
);

源語言為en,目錄語言為中文(zh_cn) ,翻譯信息的目錄為protected/messages.

然後再protected/messages 創建zh_cn 目錄,如果還需要支持其它語言,可以創建相應的目錄,然後在zh_cn創建一個yii.php ,其中yii 做為翻譯時的分 類名(你可以選擇你自己喜歡的名字)。

檢查代碼中需要翻譯的地方,然後在yii.php 文件中定義對應的翻譯:

return array (     
         
    'Application Name' => '應用程序名稱',     
    'Greetings from Santa'=>'來自聖誕老人的問候',     
    'firstName'=>'名',     
    'lastName'=>'姓',     
    'Choose your Christmas Gift'=>'選擇你喜歡的聖誕禮物',     
    'iPad'=>'iPad',     
    'Remote control helicopter'=>'遙控直升飛機',     
    '60 inch 3D LED TV'=>'60寸3D LED電視',     
    'Holy Bible'=>'聖經',     
    'Choose your Christmas dinner'=>'選擇你聖誕節晚餐',     
    'Egg'=>'雞蛋',     
    'Ham'=>'火腿',     
    'Chicken'=>'雞',     
    'Pork'=>'豬肉',     
    'Beer'=>'啤酒',     
    'Coke'=>'可樂',     
    'Wine'=>'白酒',     
    'Submit'=>'提交',     
    'Merry Christmas'=>'聖誕快樂',     
    'On Christmas Day,You will be given'=>'聖誕節那天你將獲得',     
    '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://www.imobilebbs.com/download/yii/I18NDemo.zip

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved