关于ThinkPHP使用公共语言包的问题总结

在文章的开始,我首先要声明一点:本篇文章不是讲解的ThinkPHP的多语言转换,而是关于ThinkPHP使用公共语言包来代替模板文件中的汉字的教程.

我们知道,Css方便之处在于它可以让你定义一个样式,只要你修改下这个样式,那么所有的样式都会随之改变,而ThinkPHP的公共语言包功能也是这个原理,我们可以设置一个数组,该数组中包含了模板中用到的语言.如果要修改模板中的多处相同的文字是比较麻烦的,但是如果只是修改数组中的某一项就简单多了.下面我们就来看下,如何在ThinkPHP下建立自己的语言包.

首先,我假设你已经初始化了Thinkphp(生成了文件的架构),在这里就拿我的一个项目为例子来讲解下.

我的项目文件夹是SitePHP(APP_PATH),那么我们首先要配置下语言包的使用环境,我们找到SitePHP/Conf/config.php(如果没有就新建一个)

添加如下语句

 

return array{ 
'LANG_AUTO_DETECT'=> false,
'LANG_SWITCH_ON' => true,
'DEFAULT_LANG' =>'cn', 
}

 

好了,下一步我们需要,在SitePHP/Lang文件夹下建立cn文件夹,因为ThinkPHP系统会自动调用默认语言文件夹下的common.php文件,那么我们就建立一个common.php文件,然后在common.php文件中添加如下内容:

return array( 
'site_name' =>'我的网站', 
'site_keywords' =>'网站,SEO',
)

下面是最关键的一步,(笔者因为忽略了这一步好久没有调用成功),在SitePHP/Conf/下 建立一个tags.php文件,然后加入如下内容

 

return array(
'app_begin'=>
       array('CheckLang'),
);

好了,你已经配置好一切了,可以随便调用了,如果你想在Action中调用,那么可以使用

L(“site_name”)

如果你想在模板中调用,你可以使用{:L(“site_name”)},这样一来如果你想修改网站的名称直接修改site_name的值就可以了,是不是很方便呢?

上面我只是说了一些比较大众的设置,如果你设置了分组,以及TMPL_FILE_DEPR,那么相对就要根据不同的情况来命名语言包了

具体的语言包文件命名规范如下:

项目公共语言包 语言目录/common.php
项目分组语言包 语言目录/分组名.php
项目模块语言包 不存在分组情况:语言目录/模块名(小写).php
存在分组的情况:语言目录/分组名/模块名(小写).php

分组的模块语言包定义受TMPL_FILE_DEPR参数配置影响,如果你修改了TMPL_FILE_DEPR参数,例如:

  1. ‘TMPL_FILE_DEPR’=>’_',

那么,分组的模块语言包定义方式应该改为:
语言目录/分组名_模块名(小写).php

 

 

 



文章来自: 本站原创
Tags:
评论: 0 | 查看次数: 6143