加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php – 如何在没有过滤器列表的情况下使用Locale :: acceptFromH

发布时间:2020-12-13 17:54:03 所属栏目:PHP教程 来源:网络整理
导读:locale_accept_from_http是ICU的API uloc_acceptLanguageFromHTTP 的基本包装,但PHP / PECL实现似乎存在根本缺陷,它使用系统整套语言环境而不是将列表作为参数? 例如,假设用户具有HTTP_ACCEPT_LANGUAGE = zh-HK; q = 0.2,fr,即用户阅读繁体中文或法文,更喜
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.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读