怎么在thinkphp中实现一个多语言功能

介绍

今天就跟大家聊聊有关怎么在thinkphp中实现一个多语言功能,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。

1。在家里(你取的项目名)的配置。php中添加如下配置

代码如下:


& lt; ?php
返回数组(
,,,//& # 39;配置项& # 39;=祝辞& # 39;配置值& # 39;
,,,,,,,& # 39;LANG_SWITCH_ON& # 39;,,,,=在,,,,真的,,,,//开启语言包功能,,,,,,,
,,,,,,,& # 39;LANG_AUTO_DETECT& # 39;,,,,=在,,,,真的,//自动侦测语言
,,,,,,,& # 39;DEFAULT_LANG& # 39;,,,,,,,,=在,,,,& # 39;应用# 39;//默认语言,,,,,,,
,,,,,,,& # 39;LANG_LIST& # 39;,,,,,,,,,,,=祝辞,,,& # 39;en - us,应用、zh-tw& # 39;//必须写可允许的语言列表
,,,,,,,& # 39;VAR_LANGUAGE& # 39;,,,,=比;& # 39;l # 39;//默认语言切换变量
);
?在

2.回家的配置文件夹里添加一个php文件(tag.php)添加如下代码:

代码如下:


返回数组(
,,,//添加下面一行定义即可
,,,& # 39;app_begin& # 39;=比;数组(& # 39;CheckLang& # 39;)
);

3。把扩展/行为/CheckLangBehavior.class。php文件复制到家里/lib/行为/中(完整版的thinkphp包才有,没有的话请自行创建)

CheckLangBehavior.class。php代码:

代码如下:


& lt; ? php
定义(& # 39;THINK_PATH& # 39;)或退出();
/* *
, *语言检测并自动加载语言包
, * @category ,延长
, * @package 延长
, * @subpackage 行为
, */
类CheckLangBehavior扩展行为{
,,,//行为参数定义(默认值)可在项目配置中覆盖
,,,保护options 美元,=,阵列(
,,,,,,,,,,,& # 39;LANG_SWITCH_ON& # 39;,,,,,,,=比;假的,,,//默认关闭语言包功能
,,,,,,,,,,,& # 39;LANG_AUTO_DETECT& # 39;,,,,,=比;真的,,,//自动侦测语言开启多语言功能后有效
,,,,,,,,,,,& # 39;LANG_LIST& # 39;,,,,,,,,,,,,=比;& # 39;应用# 39;//允许切换的语言列表用逗号分隔
,,,,,,,,,,,& # 39;VAR_LANGUAGE& # 39;,,,,,,,,,=比;& # 39;l # 39;,,,,,,,,//默认语言切换变量
,,,,,,,),

,,,//行为扩展的执行入口必须是运行
,,,公共函数运行(和params美元){
,,,,,,,//开启静态缓存
,,,,,,,$ this→checkLanguage ();
,,,}

,,,/* *
,,,,*语言检查
,,,,*检查浏览器支持语言,并自动加载语言包
,,,,* @ access私人
,,,,* @return空白
,,,,*/
,,,私有函数checkLanguage () {
,,,,,,,//不开启语言包功能,仅仅加载框架语言文件直接返回
,,,,,,,如果(! C (& # 39; LANG_SWITCH_ON& # 39;)) {
,,,,,,,,,,,返回;
,,,,,,,}
,,,,,,,$ langSet=C (& # 39; DEFAULT_LANG& # 39;);
,,,,,,,//启用了语言包功能
,,,,,,,//根据是否启用自动侦测设置获取语言选择
,,,,,,,如果(C (& # 39; LANG_AUTO_DETECT& # 39;)) {
,,,,,,,,,,,如果收取($ _GET [C (& # 39; VAR_LANGUAGE& # 39;)))) {
,,,,,,,,,,,,,,,$ langSet=$ _GET [C (& # 39; VAR_LANGUAGE& # 39;)];//url中设置了语言变量
,,,,,,,,,,,,,,,饼干(& # 39;think_language& # 39;, langSet美元,3600年),
,,,,,,,,,,,}elseif (cookie (& # 39; think_language& # 39;)){//获取上次用户的选择
,,,,,,,,,,,,,,,$ langSet=饼干(& # 39;think_language& # 39;);
,,,,,,,,,,,_SERVER} elseif(收取([& # 39;HTTP_ACCEPT_LANGUAGE& # 39;])){//自动侦测浏览器语言
,,,,,,,,,,,,,,,preg_match (& # 39;/^ [a - z \ d \] +)/我# 39;,$ _SERVER [& # 39; HTTP_ACCEPT_LANGUAGE& # 39;], $ matches);
,,,,,,,,,,,,,,,null

怎么在thinkphp中实现一个多语言功能