日期:2014-05-17  浏览次数:20649 次

有关ThinkPHP使用项目语言包的问题
我定义了一个项目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');
    }



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


------解决方案--------------------
haha,
PHP code
'LANG_SWITCH_ON' => 'on',