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

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

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

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

然后在配置文件中,一般是config.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的多语言,下次再写;

你可能感兴趣的:(PSI,二次开发学习记录,PSI开发与学习)