注:本方法适用于3.2.2版本。
第一步,在AplicationCommonConf文件夹下创建tags.php文件,输入以下代码:
return array(
'app_begin' => array('BehaviorCheckLang'), // 执行多语言检测行为
);
第二步,在AplicationCommonConfconfig.php中开启语言包功能,并配置相关参数:
return array(
'LANG_SWITCH_ON' => true, // 开启语言包功能
'LANG_AUTO_DETECT' => true, // 自动侦测语言 开启多语言功能后有效
'LANG_LIST' => 'zh-cn,en-us', // 允许切换的语言列表 用逗号分隔
'VAR_LANGUAGE' => 'l', // 默认语言切换变量
);
第三步,添加语言包文件,一般小项目设置通用语言包即可。大项目需细分模块级别和控制器级别的语言包:
应用级别语言包: Application/Common/Lang/zh-cn.php
模块级别语言包: Application/Home/Lang/zh-cn.php Home模块语言包
控制器级别语言包: Application/Home/Lang/zh-cn/user.php
语言包定义:
return array(
'login' => '登录',
'registration' => '注册',
);
第四步,调用。
1、在控制器里调用,使用L方法。如:
echo L('login');
上面的代码在英文状态下输出“login”,在中文状态下输出“登录”。
2、在模版里调用,使用{$Think.lang.xxx},如:
{$Think.lang.registration}
第五步,为网站添加语言切换开关。
ThinkPHP多语言的状态是保存在浏览器的COOKIE里的,名称为Think_language。还记得刚才配置的VAR_LANGUAGE变量吗,传递参数时就要用到这个。
中文URL:http://www.ssyleo.com?l=zh-cn
英文URL:http://www.ssyleo.com?l=en-us