Thinkphp 多语言实现(项目实战)

下面,以Thinkphp的Controller为例进行说明(版本为3.2.3):

在应用的配置目录下面的行为定义文件tags.php中(你可以在你的模块下(比如Home),也可以在Common下的Conf文件夹下进行),添加:

<?php
/*** Created by PhpStorm.* User: Administrator* Date: 2017/12/5* Time: 10:44*/
return array('app_begin' => array('BehaviorCheckLangBehavior'),);

然后在配置文件中,一般是config.php,添加

<?php
return array(
//'配置项'=>'配置值'
'LANG_SWITCH_ON' => true,
'LANG_AUTO_DETECT' => true, // 自动侦测语言 开启多语言功能后有效
'LANG_LIST' => array('zh-cn','en-us'), // 允许切换的语言列表 用逗号分隔
'VAR_LANGUAGE' => 'L', // 默认语言切换变量
);

可以为项目定义不同的语言文件,框架的系统语言包目录在系统框架的Lang目录下面,每个语言都对应一个语言包文件,系统默认只有简体中文语言包文件zh-cn.php和英文语言包en-us.php ,如果要增加繁体中文zh-tw或者其他语言支持,只要增加相应的语言定义文件。如图,是我的语言文件

Thinkphp 多语言实现(项目实战)

怎么使用呢,比如在关于的Controller文件中,如下,使用L(‘key’);

class AboutController extends PSIBaseController {
/**
* 关于 - 主页面
*/
public function index() {
$this->assign(“title”, L(‘About’));
}
/**
* ThinkPHP 简体中文语言包
*/
return array(‘About’ => ‘关于’,
);
有人可能使用

{$Think.lang.About}
因为我在配置中写明了使用语言切换变量为L(‘VAR_LANGUAGE’ => ‘L’,),所以不能使用

{$Think.lang.About}
还有一点,这个多语言,是框架自动检测,并不是我们自己去选择哪种语言,自动识别用户浏览器的语言,从而选择相应的语言包

如果你的UI用了大量的Extjs进行实现的,那里面的多语言是不能用此方法的,关于Extjs的多语言,下次再写;

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值