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')}