Locale::acceptFromHttp 无法正常工作
Posted
技术标签:
【中文标题】Locale::acceptFromHttp 无法正常工作【英文标题】:Locale::acceptFromHttp not working correctly 【发布时间】: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'
【参考方案1】:
我可以通过编辑c:\xampp\php\php.ini
来解决错误。
并启用"extension=php_intl.dll"
。
【讨论】:
以上是关于Locale::acceptFromHttp 无法正常工作的主要内容,如果未能解决你的问题,请参考以下文章
无法推送到 Heroku '致命:无法访问..无法解析主机:(无);提供节点名或服务名,或未知'
无法写入内容:无法延迟初始化角色集合,无法初始化代理 - 无会话