有关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'); }
按上面看的话,应该是要加载进来,但是怎么会取不到呢?
求高手指点下
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
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28