Thinkphp3.2.2多语言包配置与实用技巧
admin
2023-06-19 21:21:31
0

Thinkphp3.2内置多语言支持,如果你的应用涉及到国际化的支持,那么可以定义相关的语言包文件。任何字符串形式的输出,都可以定义语言常量。

要启用多语言功能,需要配置开启多语言行为,在应用的配置目录下面的行为定义文件tags.php中,添

加:

return array(
    //开启多语言行为
    'app_begin'=>array('Behavior\CheckLangBehavior'),
);

要开启语言包功能,需要在应用的配置文件(Application\Common\Conf\config.php)中进行如下配置:

'LANG_SWITCH_ON' => true,// 开启语言包功能
'LANG_AUTO_DETECT' => true,// 自动侦测语言 开启多语言功能后有效
'DEFAULT_LANG' => 'zh-cn',// 默认语言包
'LANG_LIST' => 'zh-cn',// 允许切换的语言列表 用逗号分隔
'VAR_LANGUAGE' => 'l',// 默认语言切换变量

配置应用公共语言包(Application/Common/Lang/zh-cn.php):

return array(
     'lan_define'=>'欢迎使用ThinkPHP',
);

如果要在模板中输出语言变量不需要在控制器中赋值,可以直接使用模板引擎特殊标签来直接输出语言定义的值:

{$Think.lang.lang_define}

或者:

{:L(lan_define)}

变量传入的支持 文件格式: $format,文件大小:$size

'FILE_FORMAT' => '{$format},{$size}',

在模板中输出语言字符串的时候传入变量值即可:

{:L('FILE_FORMAT',array('format' => 'jpeg,png,gif,jpg','size' => '2MB'))}

Thinkphp3.2.2语言包文件的命令和位置:

ThinkPHP/Lang/zh-cn.php 框架底层语言包

Application/Common/Lang/zh-cn.php 应用公共语言包

Application/Home/Lang/zh-cn.php Home模块语言包

Application/Home/Lang/zh-cn/user.php Home模块的User控制器语言包

语言子目录采用浏览器的语言命名(全部小写)定义,例如English (United States) 可以使用en-us作为目录

名。如果项目比较小,整个项目只有一个语言包文件,那可以定义应用的公共语言文件即可,而无需按照

模块分开定义。


实用技巧:

在实际开发中会经常碰到在多个页面中出现一些相同的内容,这给我们平时的开发和维护带来了很多不便,而Thinkphp3.2.2的语言包功能可以为我们很好的解决这个问题,只需要在应用的公共目录下定义一个公共语言包,将那些多次出现的内容定义为一个语言变量,最后在需要的地方输出就可以了。

相关内容

热门资讯

世界懵了!伊朗突然披露协议草案... 美伊僵持的关键时刻,伊朗官方媒体周三披露了伊朗与美国初步达成的谅解备忘录文本。西方媒体迅速转载,全球...
伊媒公布对美备忘录草案,白宫:... 在伊朗媒体披露美伊“初步非正式备忘录”,称美将解除海上封锁并换取霍尔木兹通航后,白宫方面迅速予以否认...
吴思瑶批蒋万安又翻车?游淑慧举... 海峡导报综合报道 英伟达进驻台北北投士林科技园区(北士科),用电问题引发台北市长选战攻防。民进党民代...
俄军空袭强度骤升,泽连斯基紧急... 在俄罗斯加大对乌克兰空袭力度,并威胁打击基辅决策中心之际,乌克兰总统泽连斯基紧急致信特朗普。《基辅独...
禁止中国厂商参与欧盟电信网络?... 【文/观察者网 熊超然】当地时间5月27日,彭博社援引知情人士报道称,德国和西班牙正带头反对欧盟委员...
男子为方便上下班两次拆除路中隔... 道路中央隔离护栏是规范行车秩序、守护出行安全的重要公共设施,但是有人为了一己私利,故意破坏交通设施,...
女子称车祸住院遭男医生侵犯,警... 极目新闻记者 马浩然近日,河北的王女士向极目新闻反映,今年3月,她开车经过辽宁葫芦岛时,在高速遭遇汽...
美军的“眼中钉”,伊朗岸舰导弹... 澎湃新闻特约撰稿 邰丰顺据中国新闻社报道,当地时间5月25日,美军中央司令部称,美军在伊朗南部实施了...
张雪峰因病去世,其江苏省人大代... 5月27日,江苏省人民代表大会常务委员会发布公告:江苏省人民代表大会常务委员会公告由无锡市选出的陈大...
电热水器一加热就跳闸 可能跟安装电热水器有关,如果是家里安装电热水器,最好要找专业人士,安装不仔细或者是安装不到位,比如在...