两种方式,可以自行考虑。一种是t(),另一种是模版整体替换
1.controller中定义初始化函数,根据路径判断所采用的语言
public
functioninit
(
)
{
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' ;
}
}
{
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'
=&
;gt
;
'zh_cn'
,
3.添加中文|English链接
4.Yii::t(’site’,'首页’) 一般用于view当中每个细节词条只要用这个包装后,以后都可以随时添加对应翻译。
同时在 protected/messages下面添加其他语言翻译,例如英语en_us/site.php 其中(site对应之前调用的,yii是系统内部使用,一般不用,site可以换任意值),内容:
5。另外一种是基于文件整体替换。也就是不同的语种用不同的模版
需要在views/controllerID/en_us/example.php 这个文件名字跟原先模版一样,只是当语言在en_us的时候调用这个,如何展示就看大家了。