两种方式,可以自行考虑。一种是t(),另一种是模版整体替换
1.controller中定义初始化函数,根据路径判断所采用的语言
public function init()
{
if(isset($_GET['hl'])&&'en'===$_GET['hl']){
setcookie("hl", 'en_us');
$_COOKIE['hl']='en_us';//cookie不能立刻生效
}
else if(isset($_GET['hl'])&&'zh'===$_GET['hl']){
unset($_COOKIE['hl']);
setcookie("hl", "");
}
if('en_us'==$_COOKIE['hl']){
Yii::app()->language='en_us';
}
}
2.配置文件中添加:目的是让系统默认中文为系统语言
'sourceLanguage'=>'zh_cn',
3.添加中文|English链接
echo CHtml::link('中文',array('','hl'=>'zh')).'| '.CHtml::link('English',array('','hl'=>'en'));//此处如果有朋友需要可以添加当前页面路径,具体如何我没有找到,有知道的朋友请留言
4.Yii::t(’site’,'首页’) 一般用于view当中每个细节词条只要用这个包装后,以后都可以随时添加对应翻译。
同时在 protected/messages下面添加其他语言翻译,例如英语en_us/site.php 其中(site对应之前调用的,yii是系统内部使用,一般不用,site可以换任意值),内容:
return array(
'首页'=>'Home',//其他翻译以这个 source=>target对应
);
5。另外一种是基于文件整体替换。也就是不同的语种用不同的模版
需要在views/controllerID/en_us/example.php 这个文件名字跟原先模版一样,只是当语言在en_us的时候调用这个,如何展示就看大家了。