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; }