From c0a65ccc9cf883d3abb2cdf2e743759979d6958d Mon Sep 17 00:00:00 2001 From: Axios Date: Mon, 10 Apr 2017 13:32:18 +0800 Subject: [PATCH 1/4] -- --- library/think/Lang.php | 22 ++++++++++++---------- 1 file changed, 12 insertions(+), 10 deletions(-) diff --git a/library/think/Lang.php b/library/think/Lang.php index d52f1947..ab7b3870 100644 --- a/library/think/Lang.php +++ b/library/think/Lang.php @@ -26,6 +26,8 @@ class Lang // 允许语言列表 protected static $allowLangList = []; + private static $acceptLanguage = ['zh-hans-cn'=>'zh-cn']; + // 设定当前的语言 public static function range($range = '') { @@ -34,6 +36,7 @@ class Lang } else { self::$range = $range; } + return self::$range; } /** @@ -93,7 +96,6 @@ class Lang /** * 获取语言定义(不区分大小写) * @param string|null $name 语言变量 - * @param array $vars 变量替换 * @param string $range 语言作用域 * @return mixed */ @@ -152,26 +154,26 @@ class Lang { // 自动侦测设置获取语言选择 $langSet = ''; + if (isset($_GET[self::$langDetectVar])) { // url中设置了语言变量 $langSet = strtolower($_GET[self::$langDetectVar]); - Cookie::set(self::$langCookieVar, $langSet, self::$langCookieExpire); - } elseif (Cookie::get(self::$langCookieVar)) { - // 获取上次用户的选择 - $langSet = strtolower(Cookie::get(self::$langCookieVar)); - } elseif (isset($_SERVER['HTTP_ACCEPT_LANGUAGE'])) { + } + elseif (isset($_SERVER['HTTP_ACCEPT_LANGUAGE'])) { // 自动侦测浏览器语言 preg_match('/^([a-z\d\-]+)/i', $_SERVER['HTTP_ACCEPT_LANGUAGE'], $matches); $langSet = strtolower($matches[1]); - Cookie::set(self::$langCookieVar, $langSet, self::$langCookieExpire); + $header_accept_lang_config = Config::get('header_accept_lang'); + if(isset($header_accept_lang_config[$langSet])){ + $langSet =$header_accept_lang_config[$langSet]; + }elseif(isset(self::$acceptLanguage[$langSet])){ + $langSet =self::$acceptLanguage[$langSet]; + } } if (empty(self::$allowLangList) || in_array($langSet, self::$allowLangList)) { // 合法的语言 self::$range = $langSet ?: self::$range; } - if ('zh-hans-cn' == self::$range) { - self::$range = 'zh-cn'; - } return self::$range; } From f342734c9130cb2e20b089654bdef80cc6325cfd Mon Sep 17 00:00:00 2001 From: Axios Date: Mon, 10 Apr 2017 13:34:34 +0800 Subject: [PATCH 2/4] =?UTF-8?q?=E5=A4=9A=E8=AF=AD=E8=A8=80=E5=8A=9F?= =?UTF-8?q?=E8=83=BD=E6=94=B9=E8=BF=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- library/think/Lang.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/library/think/Lang.php b/library/think/Lang.php index ab7b3870..087661dd 100644 --- a/library/think/Lang.php +++ b/library/think/Lang.php @@ -25,7 +25,7 @@ class Lang protected static $langCookieExpire = 3600; // 允许语言列表 protected static $allowLangList = []; - + // Accept-Language转义为对应语言包名称 系统默认配置 private static $acceptLanguage = ['zh-hans-cn'=>'zh-cn']; // 设定当前的语言 From 2be45bfd2954dd0b449f0b77d308cd20ea6c8599 Mon Sep 17 00:00:00 2001 From: thinkphp Date: Mon, 10 Apr 2017 20:30:13 +0800 Subject: [PATCH 3/4] =?UTF-8?q?=E6=94=B9=E8=BF=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- library/think/Lang.php | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/library/think/Lang.php b/library/think/Lang.php index 087661dd..2df3767c 100644 --- a/library/think/Lang.php +++ b/library/think/Lang.php @@ -26,7 +26,9 @@ class Lang // 允许语言列表 protected static $allowLangList = []; // Accept-Language转义为对应语言包名称 系统默认配置 - private static $acceptLanguage = ['zh-hans-cn'=>'zh-cn']; + protected static $acceptLanguage = [ + 'zh-hans-cn' => 'zh-cn', + ]; // 设定当前的语言 public static function range($range = '') @@ -158,16 +160,15 @@ class Lang if (isset($_GET[self::$langDetectVar])) { // url中设置了语言变量 $langSet = strtolower($_GET[self::$langDetectVar]); - } - elseif (isset($_SERVER['HTTP_ACCEPT_LANGUAGE'])) { + } elseif (isset($_SERVER['HTTP_ACCEPT_LANGUAGE'])) { // 自动侦测浏览器语言 preg_match('/^([a-z\d\-]+)/i', $_SERVER['HTTP_ACCEPT_LANGUAGE'], $matches); - $langSet = strtolower($matches[1]); - $header_accept_lang_config = Config::get('header_accept_lang'); - if(isset($header_accept_lang_config[$langSet])){ - $langSet =$header_accept_lang_config[$langSet]; - }elseif(isset(self::$acceptLanguage[$langSet])){ - $langSet =self::$acceptLanguage[$langSet]; + $langSet = strtolower($matches[1]); + $acceptLangs = Config::get('header_accept_lang'); + if (isset($acceptLangs[$langSet])) { + $langSet = $acceptLangs[$langSet]; + } elseif (isset(self::$acceptLanguage[$langSet])) { + $langSet = self::$acceptLanguage[$langSet]; } } if (empty(self::$allowLangList) || in_array($langSet, self::$allowLangList)) { From 513473b3cbc1f5b72b06573b0378cc5875addbde Mon Sep 17 00:00:00 2001 From: thinkphp Date: Mon, 10 Apr 2017 20:59:55 +0800 Subject: [PATCH 4/4] =?UTF-8?q?=E6=94=B9=E8=BF=9B=E4=B8=BB=E4=BB=8E?= =?UTF-8?q?=E6=95=B0=E6=8D=AE=E5=BA=93=E7=9A=84=E6=97=B6=E5=80=99=20?= =?UTF-8?q?=E5=BC=80=E5=90=AF=E4=BA=8B=E5=8A=A1=E5=A7=8B=E7=BB=88=E6=93=8D?= =?UTF-8?q?=E4=BD=9C=E4=B8=BB=E5=BA=93?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- library/think/db/Connection.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/library/think/db/Connection.php b/library/think/db/Connection.php index eba58229..d2aa6ea9 100644 --- a/library/think/db/Connection.php +++ b/library/think/db/Connection.php @@ -927,7 +927,7 @@ abstract class Connection { if (!empty($this->config['deploy'])) { // 采用分布式数据库 - if ($master) { + if ($master || $this->transTimes) { if (!$this->linkWrite) { $this->linkWrite = $this->multiConnect(true); }