在PHP中检测客户端语言环境的最简单方法

PHP提供了一个从5.3.0开始的功能,可以将' $_SERVER ['HTTP_ACCEPT_LANGUAGE ']'变量解析为语言环境-

示例

$locale = Locale::acceptFromHttp($_SERVER['HTTP_ACCEPT_LANGUAGE']);
echo $locale;

'$_SERVER ['HTTP_ACCEPT_LANGUAGE']'函数通过将当前语言环境的语言作为参数来帮助检测语言环境。

输出结果

这将产生以下输出-

en_US

大多数浏览器会提交一个接受语言HTTP标头,用于指定来自美国的en-us。某些较旧的浏览器仅使用en。

基于英国英语的用户通常将其系统或用户区域设置设置为英国英语,这是默认的浏览器配置。这将导致en-gb作为接受语言标头。其他国家/地区也有本地语言,例如en-za(南非),等等。

基于地理IP的猜测在首选语言/地区上不太可能是正确的。