P5多语言默认语言不生效BUG的解决办法
Posted zhangyouwu
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了P5多语言默认语言不生效BUG的解决办法相关的知识,希望对你有一定的参考价值。
下面代码覆盖 thinkphp/library/think/Lang.php 里面的detect()自动检测语言方法
/** * 自动侦测设置获取语言选择 * @access public * @return string */ public static function detect() { // 自动侦测设置获取语言选择 $langSet = Config::get(‘default_lang‘); if (isset($_GET[self::$langDetectVar])) { // url中设置了语言变量 $langSet = strtolower($_GET[self::$langDetectVar]); Cookie::set(self::$langCookieVar, $langSet, 3600); } elseif (Cookie::get(self::$langCookieVar)) { // 获取上次用户的选择 $langSet = strtolower(Cookie::get(self::$langCookieVar)); } elseif ($langSet) { // 获取默认语言 Cookie::set(self::$langCookieVar, $langSet, 3600); } elseif (isset($_SERVER[‘HTTP_ACCEPT_LANGUAGE‘])) { // 自动侦测浏览器语言 preg_match(‘/^([a-zd-]+)/i‘, $_SERVER[‘HTTP_ACCEPT_LANGUAGE‘], $matches); $langSet = strtolower($matches[1]); Cookie::set(self::$langCookieVar, $langSet, 3600); } if (empty(self::$allowLangList) || in_array($langSet, self::$allowLangList)) { // 合法的语言 self::$range = $langSet; } return self::$range; }
以上是关于P5多语言默认语言不生效BUG的解决办法的主要内容,如果未能解决你的问题,请参考以下文章
angularjs国际化多语言,angular-translate教程详解,$translate.instant()为什么不生效