+ -
当前位置:首页 → 问答吧 → 有关ThinkPHP使用项目语言包的问题

有关ThinkPHP使用项目语言包的问题

时间:2011-07-14

来源:互联网

我定义了一个项目Admin,
1.配置文件中定义了
PHP code
'DEFAULT_LANG'=>'zh-cn'
'LANG_AUTO_DETECT'
=>'true',//自动检测语言包


2.在项目的Lang文件夹中建立zh-cn文件夹
3.在zh-ch文件夹中建立common.php
PHP code
//模板文件显示部分
return
array(    '_ID'
=>
'编号',
'_NAME'
=>
'名称',
'_ACTION'
=>
'操作',);


4.在模板中使用
PHP code
<th width="60">{$Think.lang._ID}</th>


5.缓存文件中生成是
PHP code
<th width="60"><?php echo (L("_ID")); ?></th>


但是显示却是“_ID”,而不是“编号”

6.查看源码后 App.class.php后
PHP code
static
private
function checkLanguage()    {        $langSet
= C('DEFAULT_LANG');        // 不开启语言包功能,仅仅加载框架语言文件直接返回

if (!C('LANG_SWITCH_ON')){            L(include THINK_PATH.'/Lang/'.$langSet.'.php');            return;        }        // 启用了语言包功能        // 根据是否启用自动侦测设置获取语言选择

if (C('LANG_AUTO_DETECT')){            if(isset($_GET[C('VAR_LANGUAGE')])){// 检测浏览器支持语言

$langSet
=
$_GET[C('VAR_LANGUAGE')];// url中设置了语言变量
                cookie('think_language',$langSet);            }elseif(cookie('think_language'))// 获取上次用户的选择

$langSet
= cookie('think_language');            elseif(isset($_SERVER['HTTP_ACCEPT_LANGUAGE'])){// 自动侦测浏览器语言

preg_match('/^([a-z\-]+)/i',
$_SERVER['HTTP_ACCEPT_LANGUAGE'],
$matches);                $langSet
=
strtolower($matches[1]);                cookie('think_language',$langSet);            }        }        // 定义当前语言

define('LANG_SET',strtolower($langSet));        // 加载框架语言包

if(is_file(THINK_PATH.'/Lang/'.LANG_SET.'.php'))            L(include THINK_PATH.'/Lang/'.LANG_SET.'.php');        // 读取项目公共语言包

if (is_file(LANG_PATH.LANG_SET.'/common.php'))            L(include LANG_PATH.LANG_SET.'/common.php');        $group
=
'';        // 读取当前分组公共语言包

if (defined('GROUP_NAME')){            $group
= GROUP_NAME.C('TMPL_FILE_DEPR');            if (is_file(LANG_PATH.LANG_SET.'/'.$group.'lang.php'))                L(include LANG_PATH.LANG_SET.'/'.$group.'lang.php');        }        // 读取当前模块语言包

if (is_file(LANG_PATH.LANG_SET.'/'.$group.strtolower(MODULE_NAME).'.php'))            L(include LANG_PATH.LANG_SET.'/'.$group.strtolower(MODULE_NAME).'.php');    }


按上面看的话,应该是要加载进来,但是怎么会取不到呢?
求高手指点下

作者: shenghuososo   发布时间: 2011-07-14

OK,搞定

作者: shenghuososo   发布时间: 2011-07-14