【发布时间】:2018-08-31 11:25:11
【问题描述】:
我正在尝试为我目前正在开发的网站进行本地化,并且正在做这样的事情:
if(!isset($_SESSION['lang'])){
$_SESSION['lang'] = substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 2);
}else if(isset($_GET['lang']) && !empty($_GET['lang'])){
$_SESSION['lang'] = $_GET['lang'];
}
这很好,可以按预期工作,但是,有时$_SERVER['HTTP_ACCEPT_LANGUAGE'] 没有价值,在对我们网站的访问者进行快速测试后,大约 20% 的访问者实际上有价值,而 80% 没有。
有没有更好的方法来检测用户的语言?
【问题讨论】:
-
回退到
en,在else块中。 -
您可以获取用户的IP地址并使用它来解析用户所在的国家/地区。
-
@Phiter 除非他们躲在洋葱里 :)
-
@LawrenceCherone 感谢您的评论,无论如何,我的翻译功能默认恢复为英语
-
@RiggsFolly 是的,如果我无法追踪 IP 地址,我会退回到古英语。
标签: php localization http-accept-language