系统信息
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')}
等来获取语言定义。