ThinkPHP使用公共语言包的问题及解决方法
我使用的是ThinkPHP3.1.3。我的项目截图
说明:因为我的项目进行分组,现在以Admin分组新建语言包为例。
首先,在项目根目录下的app下的Lang新建一个zh-cn文件夹,然后在zh-cn文件夹下建立一个Admin分组,在Admin新建user.php。语言包定义可以参考下面
在user.php写入语言信息,如下
return array(
'SITE_TITLE' => '24青春',
'SITE_URL' => 'http://jahan.sinaapp.com/',
'SITE_KEYWORDS' => 'php thinkphp',
.................
);
接下来,在config.php(就是自己项目的配置信息文件)里进行配置
return array(
'LANG_AUTO_DETECT' => FALSE, //关闭语言的自动检测,如果你是多语言可以开启
'LANG_SWITCH_ON' => TRUE, //开启语言包功能,这个必须开启
'DEFAULT_LANG' => 'zh-cn', //zh-cn文件夹名字 /lang/zh-cn/common.php
);
还要在工程中tags.php(一般位于Conf目录下,如果没有,可以自己新建)添加代码,如下
return array(
'app_begin' => array(
'CheckLang',
),
);
app运行之前,会加载这个配置文件,去调用CheckLang方法。我运行项目发现,出了个错,错误提示没有 ”Class 'CheckLangBehavior' not found “。
因为没有找到'CheckLangBehavior'类,我们可以下载一个TP完整版,找到CheckLangBehavior.class.php,截图如下
把这个类放到工程中Extend目录,也可以放到Lib目录下。这样就可以使用自定义的语言包。
语言包的调用:
如果是在Action里调用,格式是 L('site_name')
如果是在模版文件里调用,格式为 {:L('site_name')}