搜索
系统检测到您的用户名不符合规范:

TP3.2.3双语言包用例—企业网站实践分享

浏览:3204 发布日期:2015年06月26日 分类:用法示例 关键字: TP3.2.3双语言包
才接触TP的新手朋友,先看看官方双语支持说明>>

待更新完善!


最近在做一个企业网站,客户要求做中英文双语版,于是研究了一下TP的语言包的使用,以TP3.2.3为例。

普及一句话: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<?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的内容如下:<?php
/**
* 中文自定义
*/
return array(
/* 在线留言 */
'VERI_CODE_ERROR'=>'验证码输入错误或已过期!', //这里只定义了一个项,用做例子,键名可以随意取
//...其他
);
en-us.php的内容如下:<?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()方法,接收程序代码如下:<?php
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、小结:上面是一个简单的用例,但可以通过这个例子运用多语言支持这个功能点,流程就是这样,对新手朋友可能有点帮助。





收藏
vsiryxm
积分:1679 等级:LV3
热点推荐
(追記) (追記ここまで)
最新更新

我们

合作

网站

信息

ThinkPHP 是一个免费开源的,快速、简单的面向对象的 轻量级PHP开发框架 ,创立于2006年初,遵循Apache2开源协议发布,是为了敏捷WEB应用开发和简化企业应用开发而诞生的。ThinkPHP从诞生以来一直秉承简洁实用的设计原则,在保持出色的性能和至简的代码的同时,也注重易用性。并且拥有众多的原创功能和特性,在社区团队的积极参与下,在易用性、扩展性和性能方面不断优化和改进,已经成长为国内最领先和最具影响力的WEB应用开发框架,众多的典型案例确保可以稳定用于商业以及门户级的开发。

AltStyle によって変換されたページ (->オリジナル) /