您好,欢迎访问一九零五行业门户网

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 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的内容如下:'验证码输入错误或已过期!',   //这里只定义了一个项,用做例子,键名可以随意取
    //...其他
);en-us.php的内容如下:'verification code input error or expired!',   //键名可以随意取,但要与上面的中文的键名保持一致,值翻译成英文
    //...other
);3、运用
做个简单的测试:
假设我们将提交留言表单设置action=/?m=home&c=message&a=add&l=en-us,也就是把表单数据提交到message控制器下的add()方法,接收程序代码如下:error(l('veri_code_error'));    //关键代码:l('veri_code_error')   l方法可获取或设置语言定义,这里由于传递进来的 l 参数的值为en-us,所以显示的是 verification code input error or expired!这个提示。
        }
    }
}4、小结:上面是一个简单的用例,但可以通过这个例子运用多语言支持这个功能点,流程就是这样,对新手朋友可能有点帮助。
ad:真正免费,域名+虚机+企业邮箱=0元
其它类似信息

推荐信息