为什么80%的码农都做不了架构师?>>>
YII有三種翻譯類型
- CPhpMessageSource : Translations are stored as key-value pairs in a PHP array.
- CGettextMessageSource : Translations are stored as GNU Gettext files. (PO Files)
- CDbMessageSource : Message translations are stored in database tables.
這裡用的CPhpMessageSource翻譯類型(YII默認的翻譯類型)..CDbMessageSource試了半天(不知道怎麼去實現..),還是實現不了.后來想了下,在default文件中.寫SQL語句然後返回數據亦可得到同樣的效果.~
views/layouts/main.php
'zh_cn' )) . ' | ' . CHtml:: link ( '繁體' , array ( 'site/index' , 'lang' => 'zh_tw' )) .' | '. CHtml:: link ( 'English' , array ( 'site/index' , 'lang' => 'en_us' ));?>
Controller.php
public function init(){if(isset($_GET['lang'])&&$_GET['lang']!=""){ //當點擊轉換語言時Yii::app()->user->setState("yuyan",$_GET['lang']); //相當於與設置一個COOKIEYii::app()->language = Yii::app()->user->getState("yuyan"); //轉換成相應的記錄語言}if(Yii::app()->user->getState("yuyan")){ //如果設置了有session記錄Yii::app()->language = Yii::app()->user->getState("yuyan"); //轉換成相應的記錄語言}else{Yii::app()->user->setState("yuyan","en_us"); //沒有session則設置一個session.默認語言為en_usYii::app()->language = Yii::app()->user->getState("yuyan"); //轉換成相應的記錄語言}}
messages/zh_cn/default.php
return array('username'=>'用戶名','password'=>'用戶密碼',
}
//此處亦可以使用SQL語句,加載數據庫中的翻譯數據.偽CDbMessageSource方式啊- - #
site/index
".Yii::t('default','username')."
";
echo "password =>".Yii::t('default', 'password');?>
output:
username =>用戶名
password =>用戶密碼