读书人

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

发布时间: 2012-05-14 15:24:34 作者: rapoo

有关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', 

读书人网 >PHP

热点推荐