您的位置:首页 > 编程语言 > PHP开发

ThinkPHP使用公共语言包的问题及解决方法

2015-05-25 09:47 295 查看
我用的是Sae平台扩展的ThinkPHP版本,想写一个前台语言配置的文件,但是遇到点问题,用L方法获取语言变量,总是取得大写的语言配置的键名。不用想,肯定是哪儿配置的不到位,于是百度、谷歌上搜搜,搜了大半天没有搜出来,最后在一个犄角旮旯的地方找到解决方法,今儿总结出来,希望对Tper有帮助。
首先,在项目根目录下的Lang新建一个zh-cn文件夹,然后在zh-cn文件夹下建立一个common.php。

例如:app/Lang/zh-cn/common.php(多文件像这样/en/common.php等),然后在common.php配置好对应语言的信息。

return array(
'SITE_TITLE' => '24青春',
'SITE_URL' => 'http://jahan.sinaapp.com/',
'SITE_KEYWORDS' => 'php thinkphp',
.................
);
接下来,在app/Conf/config.inc.php里配置好与语言相关的设置。
return array(
'LANG_AUTO_DETECT' => FALSE, //关闭语言的自动检测,如果你是多语言可以开启
'LANG_SWITCH_ON' => TRUE, //开启语言包功能,这个必须开启
'DEFAULT_LANG' => 'zh-cn', //zh-cn文件夹名字 /lang/zh-cn/common.php
);
弄到这里,我原以为就可以了,其实不然,还需要在app/Conf下建立tags.php文件(app/Conf/tags.php),这个真心的不知道,也许没仔细看文档。

把如下内容加入文件里。

return array(
'app_begin' => array(
'CheckLang',
),
);
app运行之前,会加载这个配置文件,去调用CheckLang方法。我运行项目发现,出了个错,错误提示没有 ”Class 'CheckLangBehavior' not found “。

由于我的Thinkphp版本是Sae扩展版,没有找到这个类,所以才报错,你们或许不会遇到,如果也有这种情况,可以下载一个TP完整版,找到这个类,把这个类CheckLangBehavior放到app/Lib/Behavior/下,再次运行就ok啦!好了,你已经配置好了,如果想在Action里调用,可以用L方法提取语言配置,L('SITE_TITLE'); 如果你想在模版文件里使用,你可以这样{:L('SITE_TITLE')}是不是很方便,改动一处,相同的地方都改啦,希望对大家有所帮助。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐