tp的原生代码对多语言识别有点不方便,下面是由本站小编为大家准备的'Thinkphp 多语言功能完善,喜欢的可以收藏一下!了解更多详情资讯,请关注应届毕业生考试网! thinkphp 原生代码对多语言识别有点不方便。下面代码增加的对语种的识别。 /** * 自动侦测设置获取语言选择 * @return string */ public static function detect() { // 自动侦测设置获取语言选择 $langSet = ''; if (isset($_GET[self::$langDetectVar])) { // url中设置了语言变量 $langSet = strtolower($_GET[self::$langDetectVar]); } elseif (isset($_SERVER['HTTP_ACCEPT_LANGUAGE'])) { // 自动侦测浏览器语言 preg_match('/^([a-zd-]+)/i', $_SERVER['HTTP_ACCEPT_LANGUAGE'], $matches); $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($langSet)){ if(empty(self::$allowLangList) || in_array($langSet, self::$allowLangList)){ self::$range = $langSet; }else{ $tmp = explode('-',$langSet); if(count($tmp)>2) $langSet = $tmp[0].'-'.$tmp[count($tmp)-1]; if(in_array($langSet, self::$allowLangList)) self::$range = $langSet;//只包含语种+地区 else{ //只包含语种 $langSet = $tmp[0]; if(in_array($langSet, self::$allowLangList)) self::$range = $langSet; } } } return self::$range; }