我的主要目的是向不同国家(语言)的人显示不同的页面。我认为它应该基于用户地区/国家,我猜可以从IP地址中获取?

例子:*对于 EN 国家的人来说,他们会看到这一点。www.example.com

*对于日本人,他们会派遣至此。www.example.com/jp

我也看到有人说要实现这些目的,最好的方法是基于网络浏览器语言,可以从http header中获取。我不知道哪个更好,常见的方法是什么以及为什么..?

感谢您的建议!

我正在使用 Flex 和 Java。

有帮助吗?

解决方案

Zolo,您可以使用 maxmind 中的 geoip 数据库之类的东西来轻松地从 IP 地址查找地区/国家/省,但它有一些缺点:

  • VPN 和缓存可能会产生错误值
  • 用户无法轻易覆盖它。

使用浏览器的接受:headers 通常是首选,因为在美国讲西班牙语的人可以将其语言设置设置为“es”而不是“en”,即使他们的 IP 会得到“en”。

当我过去不得不这样做时,我最终在语言选择逻辑中得到了一个有序的偏好列表,每个级别都会覆盖后续的级别(如果存在):

  1. 通过在站点上滑动标记图标来表达用户偏好,存储在会话或 cookie 中
  2. 域名的 TLD,其中 .com 没有任何意义(例如:mycompany.jp 为您提供日语网站,但 mycomany.com 被“否决”并进入下一个级别
  3. 来自接受标头的浏览器语言设置
  4. GeoIP 最佳猜测
  5. 回退到英语

当然,目标是根据最准确反映用户偏好的事物进行选择。

其他提示

IP2Location 提供了几种不同的方式来获取这些信息(他们有必要做数据IP地址查询)。这包括每年花费$ 49的Web服务,或者你可以直接从他们那里购买数据以同样的价格。

确定 Web 应用程序用户选择的语言是......

生意棘手!

看到这个 相关问题 或者也 这个.

另一个有用的提示是使用关键字 GeoLocation, , 虽然 找到 地点语言 选择是两个相关但不同的问题。
例如,如果地理位置表明日内瓦市中心,则法语可能是首选语言,但是德语、英语和其他几种语言几乎同样可能。

我从前面提到的SO问题中得到了以下URL:

免费IP地理定位服务

商业IP地理定位服务

对于语言识别(而不是位置),更方便且通常更准确 使用 HTTP 标头的“接受语言" 值,但这也可能会产生误导。尽管有人可能安装了日语版本的浏览器,但他/她可能更喜欢用英语阅读......

无论您为用户提供哪种语言, 默认情况下, ,请务必允许他们轻松切换到网站的另一个版本(如果可能的话,请在他们返回您的网站时记住此选择)

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top