第一步:在自己项目的配置文件中config开启多语言支持
'LANG_SWITCH_ON' =>true, //是否开启多语言支持
'VAR_LANGUAGE' =>'hl', //语言变量
'LANG_AUTO_DETECT'=>true,//开启语言自动侦测
'LANG_LIST'=>'zh-cn,zh-hk,en-us',//所支持的语言列表
以上配置参考CheckLangBehavior.class.php文件
第二步:开启checklang行为,在项目配置文件Conf目录下新建tags.php文件,在此文件做以下配置
return 'tags'=>array(
'app_begin' => array(
'BehaviorReadHtmlCacheBehavior', // 读取静态缓存
'BehaviorCheckLangBehavior',
),
)
以上配置参考ThinkPHP/Mode/common.php文件
第三步:创建与语言列表相对应的语言包文件
在项目/Common/Lang这个目录下新建zh-cn.php,zh-hk.php,en-us.php文件,在这三个文件里设置语言变量信息
return array(
'username'=>'username',
'password'=>'password',
)
return array(
'username'=>'用戶名',
'password'=>'密碼',
)
在控制器里可用快捷函數L()获得所有语言变量信息,通过assign分配给模板,$this->assign('lang',L())在模板里可以这样获取语言变量{$lang.USERNAME},在模板里的语言变量名必须大写。
通过get获得语言变量的值,就可以自动切换语言了,比如通过在浏览器里这样访问www.baidu.com/hl/zh-cn,自动加载简体语言包
语言包的创建有4种,分别是整个框架语言包、项目公共语言包、模块语言包、控制器语言包,他们的区别是作用域不同