Thinkphp 多語言功能完善

Thinkphp 多語言功能完善
  thinkPHP是PHP國內最火的.框架沒有之一,但是 原生代碼對多語言識別有點不方便,今天本站小編爲大家整理的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;    }