开启多语言检测,设置默认语言:
然后你会发现在app.php里设置默认语言不起作用,需要修改 /thinkphp/library/think/Lang.php 里面的detect()这个方法,因为这个方法只检测里浏览器Accept-Language,只要这个值在你允许对列表里,它就直接默认了。所以app.php里设置了也不起作用,希望官方修正一下这个bug。
/**
* 自动侦测设置获取语言选择
* @access public
* @return string
*/
public function detect()
{
// 自动侦测设置获取语言选择
$langSet = config('app.default_lang');//这里读取app.php设置的默认值
if (isset($_GET[$this->langDetectVar])) {
// url中设置了语言变量
$langSet = strtolower($_GET[$this->langDetectVar]);
} elseif (isset($_COOKIE[$this->langCookieVar])) {
// Cookie中设置了语言变量
$langSet = strtolower($_COOKIE[$this->langCookieVar]);
} elseif($langSet){//这一步判断,一定要在isset($_SERVER['HTTP_ACCEPT_LANGUAGE'])之前判断
cookie($this->langCookieVar, $langSet);
} elseif (isset($_SERVER['HTTP_ACCEPT_LANGUAGE'])) {
// 自动侦测浏览器语言
preg_match('/^([a-z\d\-]+)/i', $_SERVER['HTTP_ACCEPT_LANGUAGE'], $matches);
$langSet = strtolower($matches[1]);
if (isset($this->acceptLanguage[$langSet])) {
$langSet = $this->acceptLanguage[$langSet];
}
}
if (empty($this->allowLangList) || in_array($langSet, $this->allowLangList)) {
// 合法的语言
$this->range = $langSet ?: $this->range;
}
return $this->range;
}
注意加粗部分
vue2 Implicit conversion from float int loses precision php8Implicit Mysql8新增用户,mysql8配置权限,mysql8配置,mysql8配置文件 Linux命令,scp,scp命令,Linux复制 git commit git add centos git 搭建FTP,Linux FTP,禁止FTP登录ssh 上传文件,阿里云OSS上传,文件上传到OSS,OSS文件上传,OSS上传 微信支付,微信支付V3,PHP微信支付,微信nativePay支付,微信jsapi支付 微信支付,微信支付V3,PHP微信支付 bootstrap4 modal, lavarel The subversion command line tools are no longer provided by Xcode. 银联支付,tp5.1银联支付 支付宝即时到账,PHP支付宝 system libzip must be upgraded to version >= 0.11 CMake 3.0.2 or higher is required