作者:小遥2502881765 | 来源:互联网 | 2023-02-01 19:06
php教程|php手册thinkphp代码,代码示例,代码参考,php短信,数据库备份代码,令牌验证,去除代码中的空白和注释TP3.2.3双php教程-php手册才接触TP的新手朋
php教程|php手册
thinkphp代码,代码示例,代码参考,php短信,数据库备份代码,令牌验证,去除代码中的空白和注释 TP3.2.3双
php教程-php手册
才接触TP的新手朋友,先看看官方双语支持说明>>
下载rz源码,ubuntu查询文档路径,tomcat.亿塞通,java js爬虫,php转go感觉好难,联通seolzw
待更新完善!素材网站程序源码,ubuntu开机进去不了,爬虫搜索框检索,php echo ,霸州seo推广lzw
最近在做一个企业网站,客户要求做中英文双语版,于是研究了一下TP的语言包的使用,以TP3.2.3为例。
ps空间源码下载,ubuntu17.04后,金融数据爬虫软件,netos php,移动怎么seolzw
普及一句话:ThinkPHP的多语言支持是指的是模板多语言支持,数据的多语言转换(翻译)不在这个范畴之内。
接下来要达到的目的:
例如在提交留言表单时,action=”/?m=home&c=message&a=add&l=zh-cn”,
假设此时用户输入验证码错误,程序提示信息为中文“验证码错误或已过期”,参数 l=en-us 时程序提示信息为英文“Verification code input error or expired!”。
当然上面这个效果我们通过一个简单的参数判断就可以实现,但我们要换一种方法,也就是用多语言支持来实现。
实现流程:1、配置:开启多语言功能 —> 2、自定义语言包 —> 3、运用
1、配置:开启多语言功能
新建一个tags.php语言包配置文件,我们以放在应用公共目录下Conf目录为例(位置不同,作用的范围不同,见官方解释)
放置到 \Application\Common\Conf\tags.php/**
* 语言包配置文件
*/
return array(
'app_begin' => array('Behavior\CheckLangBehavior'), //注意这里,官方的文档解释感觉有误(大家自行分辨),TP3.2.3用Behavior\CheckLang会出错,提示:Class 'Behavior\CheckLang' not found
'LANG_SWITCH_ON' => true, // 开启语言包功能
'LANG_AUTO_DETECT' => true, // 自动侦测语言 开启多语言功能后有效
'LANG_LIST' => 'zh-cn,', // 允许切换的语言列表 用逗号分隔
'VAR_LANGUAGE' => 'l', // 默认语言切换变量,注意到上面发的链接了么,l=zh-cn,就是在这里定义l这个变量
);
2、自定义语言包
在\Application\Common\Lang\目录下建立两个文件(如果Lang目录不存在则新建):
\Application\Common\Lang\zh-cn.php //中文
\Application\Common\Lang\en-us.php //英文
如下图结构所示:
如果需要定义别的语言添加新的文件即可,但文件名的命名采用浏览器的语言命名(全部小写)定义。
zh-cn.php的内容如下:/**
* 中文自定义
*/
return array(
/* 在线留言 */
'VERI_CODE_ERROR'=>'验证码输入错误或已过期!', //这里只定义了一个项,用做例子,键名可以随意取
//...其他
);
en-us.php的内容如下:/**
* English custom
*/
return array(
/* message */
'VERI_CODE_ERROR'=>'Verification code input error or expired!', //键名可以随意取,但要与上面的中文的键名保持一致,值翻译成英文
//...other
);
3、运用
做个简单的测试:
假设我们将提交留言表单设置action=”/?m=home&c=message&a=add&l=en-us”,也就是把表单数据提交到message控制器下的add()方法,接收程序代码如下:namespace Home\Controller;
use Think\Controller;
use Think\Think;
class MessageController extends Controller {
function __construct(){}
public function add(){
//验证码核对
if(....){ //假设验证码输入错误
$this->error(L('VERI_CODE_ERROR')); //关键代码:L('VERI_CODE_ERROR') L方法可获取或设置语言定义,这里由于传递进来的 l 参数的值为en-us,所以显示的是 Verification code input error or expired!这个提示。
}
}
}4、小结:上面是一个简单的用例,但可以通过这个例子运用多语言支持这个功能点,流程就是这样,对新手朋友可能有点帮助。
AD:真正免费,域名+虚机+企业邮箱=0元