转:
今天要用ThinkPHP3.2.3做一个小网站,其中涉及到切换中文与英文,通过查询手册和百度实现了该操作,现在将我具体的操作步骤记录下来,作为笔记和大家分享。
php开发框架:ThinkPHP3.2.3。
1.在Application/Common/conf/下新建tags.php(默认是没有的,需要新建)文件,增加内容如下:
return array(
'app_begin' => array('Behavior\CheckLangBehavior'), //表示在app_begin标签位置执行多语言检测行为。
);
2.在Application/Common/conf/config.php配置文件中新增如下内容:
'LANG_SWITCH_ON' => true, // 开启语言包功能
'LANG_AUTO_DETECT' => true, // 自动侦测语言 开启多语言功能后有效
'LANG_LIST' => 'zh-cn,en-us', // 允许切换的语言列表 用逗号分隔
'VAR_LANGUAGE' => 'l', // 默认语言切换变量
3.在Application/Common/下新建Lang文件。
4. 在Application/Common/Lang/下新建en-us.php文件,增加内容如下:
return array(
'welcome'=>'I am English',
);
5. 在Application/Common/Lang/下新建zh-cn.php文件,增加内容如下:
return array(
'welcome'=>'我是中文的',
);
6. 然后在对应的模板文件中进行引用,如: {$Think.lang.welcome}
7. 设置中英文切换的超链接,如下:
<a href="?l=zh-cn" >简体中文</a> | <a href="?l=en-us" >English</a>
中英文切换引出的bug解决:
今天又一次出现用户在百度搜索网站,然后点开网站报错的问题(今天比较幸运用户配合远程连接解决问题)。
线上的环境是关闭debug的,首先打开debug,刷新页面页面报错,页面不错内容为找不到模板,模板为英文版模板,本站原本就没有英文版网站,所以
'LANG_LIST' => 'zh-cn,en-us', // 允许切换的语言列表 用逗号分隔
改为:
'LANG_LIST' => 'zh-cn', // 允许切换的语言列表 用逗号分隔
再刷新页面问题解决。
这个问题客户端的解决方案可以在域名后跟上?l=zh-cn浏览器切语言包到中文版
服务端方案二:
'LANG_SWITCH_ON' => true, // 开启语言包功能
改为:
'LANG_SWITCH_ON' => false, // 开启语言包功能
成也语言包,败也语言包。用好了可以做多语言站,用的不好网站经常莫名报错。!!!
更多推荐
ThinkPHP 语言包切换中英文切换
发布评论