*******************application/common/common/function.php 添加方法:
//获取浏览器语言
function getBrowserLanguage(){
$lang = substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 4); //只取前4位,这样只判断最优先的语言。如果取前5位,可能出现en,zh的情况,影响判断。
if (preg_match("/zh-c/i", $lang))
return "zh-cn";
else if (preg_match("/zh/i", $lang))
return "zh-tw";
else if (preg_match("/en/i", $lang))
return "en-us";
else if (preg_match("/fr/i", $lang))
return "French";
else if (preg_match("/de/i", $lang))
return "German";
else if (preg_match("/jp/i", $lang))
return "Japanese";
else if (preg_match("/ko/i", $lang))
return "Korean";
else if (preg_match("/es/i", $lang))
return "Spanish";
else if (preg_match("/sv/i", $lang))
return "Swedish";
}
*******************application/common/conf/config.php 配置:
return array(
'LANG_SWITCH_ON' => true, // 开启语言包功能
'LANG_AUTO_DETECT' => true, // 自动侦测语言 开启多语言功能后有效
'DEFAULT_LANG' => 'zh-cn', // 默认语言
'LANG_LIST' => 'zh-cn,zh-tw,en-us', // 允许切换的语言列表 用逗号分隔
'VAR_LANGUAGE' => 'l', // 默认语言切换变量
//多语言支持,可以查看 https://www.kancloud.cn/manual/thinkphp/1874
'DEFAULT_MODULE' => 'App', // 默认模块
/* 数据库设置 */
'DB_TYPE' => 'mysql', // 数据库类型
'DB_HOST' => '127.0.0.1', // 服务器地址
'DB_NAME' => 'test', // 数据库名
'DB_USER' => 'root', // 用户名
'DB_PWD' => 'root', // 密码
'DB_PORT' => '3306', // 端口
'URL_MODEL' => 2, // 要来隐藏index.php
// 0 (普通模式); 1 (PATHINFO 模式); 2 (REWRITE 模式); 3 (兼容模式) 默认为PATHINFO 模式
'SESSION_OPTIONS' => array(
"expire"=>24*3600, //session的有效期,需要配合 index.php 里的 ini_set('session',时间) 来使用
),
"lang_array" => array( //语言数组
"zh-cn" => "中文-简体",
"zh-tw" => "中文-繁体",
"en-us" => "English",
),
);
*******************application/common/conf/tags.php 配置:
return array(
'app_begin' => array('Behavior\CheckLangBehavior'), //检测语言
);
*******************application/common/lang/zh-cn.php 配置:
/**
* ThinkPHP 简体中文语言包
*/
return array(
/* 核心语言变量 */
'_MODULE_NOT_EXIST_' => '无法加载模块',
);
*******************application/common/lang/zh-tw.php 配置:
/**
* ThinkPHP 繁体中文語言包
*/
return array(
/* 核心語言變數 */
'_MODULE_NOT_EXIST_' => '無法載入模組',
);
*******************application/common/lang/en-us.php 配置:
/**
* ThinkPHP English language package
*/
return array(
/* core language package */
'_MODULE_NOT_EXIST_' => "Module can't be loaded",
);
*******************application/app/controller/base/basecontroller.class.php 配置: $get_lang = I("get.l",''); //用户点击切换语言
$session_lang = session("pet_lang"); //session语言
$browser_lang = getBrowserLanguage();//浏览器语言
if(isset($get_lang) && !empty($get_lang)){
session("pet_lang",$get_lang); //设置session
}
else if(isset($session_lang) && !empty($session_lang)){
$session_lang = session("pet_lang"); //session语言
}
else if(isset($browser_lang) && !empty($browser_lang)){
session("pet_lang",$browser_lang);
}
// 读取框架语言包
$file = THINK_PATH.'Lang/'.session("pet_lang").'.php';
if(is_file($file))
L(include $file);
// 读取应用公共语言包
$file = LANG_PATH.session("pet_lang").'.php';
if(is_file($file))
L(include $file);
// 读取模块语言包
$file = MODULE_PATH.'Lang/'.session("pet_lang").'.php';
if(is_file($file))
L(include $file);
// 读取当前控制器语言包
$file = MODULE_PATH.'Lang/'.session("pet_lang").'/'.strtolower(CONTROLLER_NAME).'.php';
if (is_file($file))
L(include $file);