diff --git a/convention.php b/convention.php index 952c96b6..dffdb4c0 100644 --- a/convention.php +++ b/convention.php @@ -24,13 +24,13 @@ return [ // 默认时区 'default_timezone' => 'PRC', // 是否开启多语言 - 'lang_switch_on' => false, + 'lang_switch_on' => false, // 支持的多语言列表 - 'lang_list' => ['zh-cn'], + 'lang_list' => ['zh-cn'], // 语言变量 - 'lang_detect_var' => 'lang', + 'lang_detect_var' => 'lang', // 语言cookie变量 - 'lang_cookie_var' => 'think_lang', + 'lang_cookie_var' => 'think_lang', // +---------------------------------------------------------------------- // | 模块设置 @@ -144,9 +144,9 @@ return [ // +---------------------------------------------------------------------- // | 数据库设置 // +---------------------------------------------------------------------- - + // 是否启用多状态数据库配置 如果启用的话 需要跟随app_status配置不同的数据库信息 - 'use_db_switch' => false, + 'use_db_switch' => false, 'database' => [ // 数据库类型 'type' => 'mysql', diff --git a/library/think/lang.php b/library/think/lang.php index 4c8e4242..afb3547a 100644 --- a/library/think/lang.php +++ b/library/think/lang.php @@ -110,18 +110,20 @@ class Lang public static function detect() { // 自动侦测设置获取语言选择 - if (isset($_GET[Config::get('lang_detect_var')])) { + $langCookieVar = Config::get('lang_cookie_var'); + $langDetectVar = Config::get('lang_detect_var'); + if (isset($_GET[$langDetectVar])) { // url中设置了语言变量 - $langSet = strtolower($_GET[Config::get('lang_detect_var')]); - \think\Cookie::set(Config::get('lang_cookie_var'), $langSet, 3600); - } elseif (\think\Cookie::get(Config::get('lang_cookie_var'))) { + $langSet = strtolower($_GET[$langDetectVar]); + \think\Cookie::set($langCookieVar, $langSet, 3600); + } elseif (\think\Cookie::get($langCookieVar)) { // 获取上次用户的选择 - $langSet = strtolower(\think\Cookie::get(Config::get('lang_cookie_var'))); + $langSet = strtolower(\think\Cookie::get($langCookieVar)); } elseif (isset($_SERVER['HTTP_ACCEPT_LANGUAGE'])) { // 自动侦测浏览器语言 preg_match('/^([a-z\d\-]+)/i', $_SERVER['HTTP_ACCEPT_LANGUAGE'], $matches); $langSet = strtolower($matches[1]); - \think\Cookie::set(Config::get('lang_cookie_var'), $langSet, 3600); + \think\Cookie::set($langCookieVar, $langSet, 3600); } if (in_array($langSet, \think\Config::get('lang_list'))) { // 合法的语言