Thinkphp 多语言功能完善

来源:文书网 1.9W
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;    }
热门标签