YII的國際化使用方法

If you do:php

Yii::t('test', "example message");app

"example message" must be in the language defined over Yii::app()->sourceLanguage. If you set sourceLanguage to something else (eg: xx), you can then provide translation for your original sourceLanguage - "xx" does not exist and is used as a dummy.yii

Yii::app()->sourceLanguage = 'xx';ide

Yii::app()->language = 'en';this

Yii::t('test', "0001");get

You must provide this file: "protected/messages/en/test.php":it

return array(io

   '0001' => 'example message';class

);test


在config/main.php 裏設置了sourceLanguage和language。        

 'sourceLanguage'=>'zh_cn',

   'language'=>'zh_cn', 

發現yii:t()將不生效 :blink: 


 緣由在於CMessageSource.php裏76行,                 

if($language!==$this->getLanguage())

    return $this->translateMessage($category,$message,$language);

else

    return $message; 這個時候因爲 sourceLanguage = language;直接return $message;

sourceLanguage 表明你的數據源語言標記

language 表示當前語言標記

假如二者相同,就沒有必要轉換了~ 如:

 Yii::t('app','Hello');

 就標識數據源應該爲英文了 

Yii::t('app','您好'); 

數據源應該爲中文              


Yii::t('app', 'Path alias "{alias}" is redefined.',   array('{alias}'=>$alias))

相關文章
相關標籤/搜索