【发布时间】:2021-12-13 00:24:55
【问题描述】:
我正在做一个 Laravel 项目,得到一个空字符串,下面的代码。
<?php
use Locale;
$locale = Locale::acceptFromHttp($_SERVER['HTTP_ACCEPT_LANGUAGE']);
// or $locale = locale_accept_from_http($_SERVER['HTTP_ACCEPT_LANGUAGE']);
echo $locale;
结果应该是en-US,但返回空字符串。我可以在我的 Google Chrome 浏览器 v95 上确认请求标头。
Accept-Language: en-US,en;q=0.9
我该如何解决这个问题?
【问题讨论】:
-
那么我猜标题不包含可解析的语言环境字符串。如果不知道 什么 您正在测试的标头的值是什么,就很难提供帮助。
-
@Martin Bean 我只是通过 chrome 检查确认存在 Accept-Language 值。我想这可能是浏览问题。但我无法在旧版浏览器上检查它。
-
Locale::acceptFromHttp('en-US,en;q=0.9')为我返回en_US。检查$_SERVER['HTTP_ACCEPT_LANGUAGE']是否包含您所期望的内容。 -
@Devstorm21 我没有问是否有有
Accept-Language标头;我说不知道该标头的 value 很难提供帮助。 -
$_SERVER['HTTP_ACCEPT_LANGUAGE'] is 'en-US,en;q=0.9'