您当前的位置: 首页 > 学无止境 > 心得笔记 网站首页心得笔记
thinkphp3.2.1学习笔记-多语言
发布时间:2017-09-19 11:54:17编辑:雪饮阅读()
使用多语言:
应用目录中公共配置文件同目录下建立tags.php如:
<?php
return array(
//载入语言检测行为
'app_begin'=>array('Behavior\CheckLangBehavior'),
);
应用目录下公共配置文件中添加配置项如:
//开启语言包功能
'LANG_SWITCH_ON'=>true,
//自动侦测语言,开启多语言功能后有效
'LANG_AUTO_DETECT'=>true,
//允许切换的语言列表,用逗号分隔
//值对应语言包名,语言包位于/ThinkPHP/Lang
'LANG_LIST'=>'zh-cn,en-us',
//默认语言切换变量
//地址栏get方式传参的变量名
'VAR_LANGUAGE'=>'lang',
然后故意访问一个不存在的模块并在访问的url中添加get变量名为lang值为en-us如:
http://localhost/index.php/User1?lang=en-us
这样就会以英文提示你模块不存在了。
如果你以这样的URL访问过一次,然后将lang的get参数去除再次访问仍然是英文提示了,因为这里使用了cookie存储,当不存在lang变量时则会检查cookie中之前的记录。根据cookie中之前存储的语言记录来决定用什么语言来提示。基于此,所以我们也可以通过设置cookie来改变语言环境。
获取系统中语言包中的提示信息,以获取“无法加载控制器”为例:
echo L('_CONTROLLER_NOT_EXIST_');
设置系统中语言包中的提示信息,以设置“无法加载控制器”为例:
L('_CONTROLLER_NOT_EXIST_','控制器不见了');
建立双语言网站模板:
如下是双语模板的局部代码:
<p><{$Think.lang.form_user}>:<input type="text" name="user" /></p>
<p><{$Think.lang.form_pass}>:<input type="password" name="pass" /></p>
<p><{$Think.lang.form_email}>:<input type="text" name="email" /></p>
<p><{$Think.lang.form_submit}>:<input type="submit" name="user" value="<{$Think.lang.form_submit}>" /></p>
在该模板所属应用目录如home目录下建立Lang目录并在Lang目录中分别建立双语言包文件如:
zh-cn.php:
<?php
return array(
//表单部分
'form_user'=>'用户',
'form_pass'=>'密码',
'form_email'=>'邮箱',
'form_submit'=>'提交',
);
en-us.php:
<?php
return array(
//表单部分
'form_user'=>'user',
'form_pass'=>'pass',
'form_email'=>'email',
'form_submit'=>'submit',
);
然后访问英文模板如:
http://localhost/index.php/User/?lang=en-us
关键字词:thinkphp3.2.1,多语言,语言