鍍金池/ 教程/ PHP/ Yii Framework 開(kāi)發(fā)教程(48) 多國(guó)語(yǔ)言示例
Yii Framework 開(kāi)發(fā)教程(16) UI 組件 StarRating 示例
Yii Framework 開(kāi)發(fā)教程(2) Yii Web 應(yīng)用基礎(chǔ)
Yii Framework 開(kāi)發(fā)教程(19) UI 組件 TreeView 示例
Yii Framework 開(kāi)發(fā)教程(39) Zii 組件-Slider 示例
Yii Framework 開(kāi)發(fā)教程(45) Zii 組件-Selectable 示例
Yii Framework 開(kāi)發(fā)教程(44) Zii 組件-Resizable 示例
Yii Framework 開(kāi)發(fā)教程(8) 使用 FormModel
Yii Framework 開(kāi)發(fā)教程(42) Zii 組件-Draggable 示例
Yii Framework 開(kāi)發(fā)教程(18) UI 組件 TextHighlighter 示例
Yii Framework 開(kāi)發(fā)教程(32) Zii 組件-GridView 示例
Yii Framework 開(kāi)發(fā)教程(30) Zii 組件-ListView 示例
Yii Framework 開(kāi)發(fā)教程(9) UI 組件 Widget 概述
Yii Framework 開(kāi)發(fā)教程(17) UI 組件 TabView 示例
Yii Framework 開(kāi)發(fā)教程(24) 數(shù)據(jù)庫(kù)-DAO 示例
Yii Framework 開(kāi)發(fā)教程(25) 數(shù)據(jù)庫(kù)-Query Builder 示例
Yii Framework 開(kāi)發(fā)教程(21) UI 組件 自定義 Captcha 示例
Yii Framework 開(kāi)發(fā)教程(38) Zii 組件-ProgressBar 示例
Yii Framework 開(kāi)發(fā)教程(20) UI 組件 Captcha 示例
Yii Framework 開(kāi)發(fā)教程(14) UI 組件 MaskedTextField 示例
Yii Framework 開(kāi)發(fā)教程(22) UI 組件 Zii 組件簡(jiǎn)介
Yii Framework 開(kāi)發(fā)教程(31) Zii 組件-DetailView 示例
Yii Framework 開(kāi)發(fā)教程(33) Zii 組件-Accordion 示例
Yii Framework 開(kāi)發(fā)教程(36) Zii 組件-DatePicker 示例
Yii Framework 開(kāi)發(fā)教程(6) CComponent 組件
Yii Framework 開(kāi)發(fā)教程(37) Zii 組件-Dialog 示例
Yii Framework 開(kāi)發(fā)教程(26) 數(shù)據(jù)庫(kù)-Active Record 示例
Yii Framework 開(kāi)發(fā)教程(29) Zii組件-Menu 示例
Yii Framework 開(kāi)發(fā)教程(46) Zii 組件-Sortable 示例
Yii Framework 開(kāi)發(fā)教程(10) UI 組件 自定義組件
Yii Framework 開(kāi)發(fā)教程(11) UI 組件 ActiveForm 示例
Yii Framework 開(kāi)發(fā)教程(43) Zii 組件-Droppable 示例
Yii Framework 開(kāi)發(fā)教程(27) 數(shù)據(jù)庫(kù)-關(guān)聯(lián) Active Record 示例
Yii Framework 開(kāi)發(fā)教程(47) 主題 Theme 示例
Yii Framework 開(kāi)發(fā)教程(48) 多國(guó)語(yǔ)言示例
Yii Framework 開(kāi)發(fā)教程(35) Zii 組件-Button 示例
Yii Framework 開(kāi)發(fā)教程(3) 為應(yīng)用添加日志
Yii Framework 開(kāi)發(fā)教程(23) 數(shù)據(jù)庫(kù)-概述
Yii Framework 開(kāi)發(fā)教程(12) UI 組件 ClipWidget 示例
Yii Framework 開(kāi)發(fā)教程(41) Zii 組件-Tabs 示例
Yii Framework 開(kāi)發(fā)教程(34) Zii 組件-AutoComplete 示例
Yii Framework 開(kāi)發(fā)教程(40) Zii 組件-SliderInput 示例
Yii Framework 開(kāi)發(fā)教程(5) URL 管理
Yii Framework 開(kāi)發(fā)教程(4) Hangman 猜單詞游戲?qū)嵗?/span>
Yii Framework 開(kāi)發(fā)教程(15) UI 組件 MultiFileUpload 示例
Yii Framework 開(kāi)發(fā)教程(7) 使用 CHtml 創(chuàng)建 Form
Yii Framework 開(kāi)發(fā)教程(28) Data Provider 簡(jiǎn)介
Yii Framework 開(kāi)發(fā)教程(1) 第一個(gè)應(yīng)用 Hello World
Yii Framework 開(kāi)發(fā)教程(13) UI 組件 ContentDecorator 示例

Yii Framework 開(kāi)發(fā)教程(48) 多國(guó)語(yǔ)言示例

本例通過(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í)行如下幾步:

  1. 在合適的位置調(diào)用 Yii::t() ;
  2. 以 protected/messages/LocaleID/CategoryName.php 的格式創(chuàng)建 PHP 翻譯文件。 每個(gè)文件簡(jiǎn)單的返回一個(gè)信息翻譯數(shù)組。 注意,這是假設(shè)你使用默認(rèn)的 CPhpMessageSource 存儲(chǔ)翻譯信息。
  3. 配置 CApplication::sourceLanguageCApplication::language。

因此第一步為 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" />

本例下載