locale_accept_from_http
是 ICU API 的基本包装uloc_acceptLanguageFromHTTP http://eckhart.stderr.org/doc/icu-doc/html/uloc_8h.html#ced06018568333e1906ae104ab62757a但是 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"));
?>
Outputs:
string(2) "fr"
正确,PHP 封装了 ICUuloc_acceptLanguageFromHTTP
无法传递您的区域设置列表。全面的,intl
扩展相对较新(PHP 5.3+),我自己确实发现了一些错误,这些错误在下一个版本中很快得到了修复。
你可以做的是:
Submit https://bugs.php.net/错误/功能请求。已经有类似的bug了reported https://bugs.php.net/bug.php?id=59430.
Accept-Language 格式确实没那么复杂,我打赌你可以在 20 行代码内编写自己的解析器。看本文 http://www.thefutureoftheweb.com/blog/use-accept-language-header举个例子。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)