【问题标题】:Best way to determine user's language [duplicate]确定用户语言的最佳方法[重复]
【发布时间】:2013-09-09 22:12:27
【问题描述】:

我想在不询问用户的情况下,哪种方式是猜测用户语言的最佳方式。以下是我找到的几个选项,但请随意添加您认为值得一提的任何其他选项。

  1. 通过 PHP 使用 $_SERVER['HTTP_ACCEPT_LANGUAGE']
  2. 使用任何 Maps API(例如 Google Maps 或 Bing Maps)来确定用户从哪个国家/地区访问网站(如果他使用支持定位服务的现代浏览器),然后检测该国家/地区的官方语言是什么。
  3. 让 PHP 执行一个简单的 shell 脚本 (shell_exec()),向类似(http://geoip.s12.com.br 或类似的)网站发送请求,以确定用户从哪个国家/地区访问该网站,然后检测该国家/地区的官方语言是什么.
  4. 我可能对这个有误,因为我没有对此进行大量研究:使用 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? - 你问的是更多的网站管理材料而不是编程恕我直言。

标签: php location geoip


【解决方案1】:

我会选择 $_SERVER['HTTP_ACCEPT_LANGUAGE'] 主要是因为它是用户可配置的。

地理定位的问题在于,语言确实不应该与位置搜索绑定。当然,这会让你做出有根据的猜测,但我很容易在中国度假,或者更喜欢我的互联网使用“语言 x”

无论您使用哪种方法进行有根据的猜测,我肯定仍会提供选择他们喜欢的语言来覆盖您的猜测的选项。

【讨论】:

    【解决方案2】:

    有些国家有多种语言,所以 2,3 和 4 根本不起作用,所以对我来说,最好的选择是使用 HTT_ACCEPT_LANGUAGE。

    【讨论】:

      猜你喜欢
      • 2015-05-06
      • 1970-01-01
      • 1970-01-01
      • 2010-09-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-29
      相关资源
      最近更新 更多