您的位置:首页 > 编程语言 > PHP开发

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

2017-12-06 16:46 316 查看
下面,以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的多语言,下次再写;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: