ThinkPHP--多语言

系统信息

TP内置多语言支持。任何字符串形式的输出,都可以定义语言常量。
要启用多语言功能,需要配置开启多语言行为,在应用配置目录中:

//在应用模块application下Common/Conf建立tags.php并写入以下代码用于检测多语言
return array(
    'app_begin'=>array('Behavior\CheckLangBehavior'),
);

PS:这个行为主要是检测多语言功能。

//开启语言包功能
'LANG_SWITCH_ON'=>true,
//自动侦测语言,开启多语言功能后有效
'LANG_AUTO_DETECT'=>true,
//允许切换的语言列表,用逗号分隔
'LANG_LIST'=>'zh-cn,en-us', //最好跟语言包名相对应
//默认语言切换变量
'VAR_LANGUAGE'=>'lang',

ThinkPHP系统提供了三个默认语言包,分别是简体中文、英文、繁体中文。而这三种语言包保存在:Think\Lang下。

我们想显示系统错误信息,可以通过L()方法来传入多语言变量。

//设置语言定义的键值对
L('name','Lee');
echo L('name');

//获取无法加载模块的常量值
echo L('_MODULE_NOT_EXIST_');

应用信息

我们用的较多的应该是项目应用中的语言定义切换,比如,一个表单支持中英文双语结构。

除了以上配置外,实现应用信息中英文切换需要在应用目录进行配置。
第一步:在Home目录下建立lang目录;
第二步:分别建立zh-cn.php和en-us.php两个文件;
第三步:分别在两个语言包编写语言常量:
中文语言包

return array(
    //表单部分
    'form_user'=>'用户',
    'form_pass'=>'密码',
    'form_email'=>'邮箱',
    'form_submit'=>'提交',

);

英文语言包

return array(
    //表单部分
    'form_user'=>'user',
    'form_pass'=>'pass',
    'form_email'=>'email',
    'form_submit'=>'submit',
);

在模板中对语言定义

<p>{$Think.lang.form_user}:<input type="text" name="user"></p>
<p>{$Think.lang.form_pass}:<input type="text" name="pass"></p>
<p>{$Think.lang.form_email}:<input type="text" name="email"></p>
<p><input type="submit" value="{$Think.lang.form_submit}"></p>

PS:这里还可以使用{:L('form_user')}等来获取语言定义。

猜你喜欢

转载自blog.csdn.net/qq_36432666/article/details/81218727