【发布时间】:2013-09-09 22:12:27
【问题描述】:
我想在不询问用户的情况下,哪种方式是猜测用户语言的最佳方式。以下是我找到的几个选项,但请随意添加您认为值得一提的任何其他选项。
- 通过 PHP 使用
$_SERVER['HTTP_ACCEPT_LANGUAGE'] - 使用任何 Maps API(例如 Google Maps 或 Bing Maps)来确定用户从哪个国家/地区访问网站(如果他使用支持定位服务的现代浏览器),然后检测该国家/地区的官方语言是什么。
- 让 PHP 执行一个简单的 shell 脚本 (shell_exec()),向类似(http://geoip.s12.com.br 或类似的)网站发送请求,以确定用户从哪个国家/地区访问该网站,然后检测该国家/地区的官方语言是什么.
- 我可能对这个有误,因为我没有对此进行大量研究:使用 php 的 GeoIp 函数来确定用户从哪个国家/地区访问该网站,然后检测该国家/地区的官方语言是什么。 (http://www.php.net/manual/en/book.geoip.php)
我知道第一个几乎在任何情况下都可以,但是我想知道哪个更准确(Facebook 或 Google 用来设置您的语言的方式)。
【问题讨论】:
-
问他们。您可以使用 GEOIP,但它只会告诉您国家或大陆,并且在一个国家/地区可能有数十或数百种语言和方言。你真的需要问或做一些假设。
-
Google 使用接受语言标头来确定语言偏好。这也是最有意义的,它比通过 IP 进行地理定位更好,这对于语言来说不太好。由于前面已经讨论过,当您询问相同的主题时,请使用搜索并参考现有材料。
-
进一步参考:What's the best way to determine users' preferred language? 和 Patterns for creating a Language Switcher? - 你问的是更多的网站管理材料而不是编程恕我直言。