locale_accept_from_http是ICU的API
uloc_acceptLanguageFromHTTP
的基本包装,但PHP / PECL实现似乎存在根本缺陷,它使用系统整套语言环境而不是将列表作为参数?
例如,假设用户具有HTTP_ACCEPT_LANGUAGE = zh-HK; q = 0.2,fr,即用户阅读繁体中文或法文,更喜欢后者.例如,您有一个提供繁体中文和简体中文文章的新闻网站.使用API
Locale :: acceptFromHttp只返回fr.
<?PHP var_dump (Locale::acceptFromHttp ("zh-HK;q=0.2,fr")); ?>
输出:
string(2) "fr"
正确,PHP包装ICU的uloc_acceptLanguageFromHTTP,但无法传递您的语言环境列表.总的来说,intl扩展是相对较新的(PHP 5.3),我确实发现了一些自己的bug,这些bug在下一个版本中很快得到修复.
你能做的是:
> Submit一个错误/功能请求. reported还有一个类似的错误.
> Accept-Language格式真的不那么复杂,我打赌你可以在20行代码中编写自己的解析器.有关示例,请参见this article.
原文地址:https://www.jb51.cc/php/133903.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。