php语言 百分网手机站

Thinkphp的多语言功能完善

时间:2020-08-16 09:00:12 php语言 我要投稿

Thinkphp的多语言功能完善

  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-z\d\-]+)/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;
 
  }

【Thinkphp的多语言功能完善】相关文章:

Thinkphp 多语言功能完善06-17

thinkPHP的RBAC权限管理06-17

多语言网页设计的提示与策略10-04

如何使用gettext来支持PHP的多语言09-06

本地环境thinkphp5集成workerman教程06-17

网上银行的功能06-12

Photoshop模拟景深功能的教学12-06

Photoshop的Fill功能如何应用11-29

最完善的2018会计报考指南09-15