重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
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的语言包功能可以为我们很好的解决这个问题,只需要在应用的公共目录下定义一个公共语言包,将那些多次出现的内容定义为一个语言变量,最后在需要的地方输出就可以了。