3

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

例如:*对于 EN 国家的人,他们会看到这个。www.example.com

*对于日本人,他们会派人到这里。www.example.com/jp

另外我看到有人说要实现这些目的,最好的方法是基于web-browser语言,可以从http header中获取。我不知道哪个更好,常见的方式是什么,为什么..?

感谢您的建议!

我正在使用 Flex 和 Java。

4

3 回答 3

5

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

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

通常首选浏览器的 Accept: 标头,因为在美国讲西班牙语的人可以将他们的语言设置设置为获取“es”而不是“en”,即使他们的 IP 会获取“en”。

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

  1. 通过在站点上滑动标志图标来表达用户偏好,存储在会话或 cookie 中
  2. 域的 TLD,.com 表示什么都没有(例如:mycompany.jp 为您提供日本网站,但 mycomany.com 是“无投票权”并通过到下一个级别
  3. 接受标头中的浏览器语言设置
  4. GeoIP 最佳猜测
  5. 回退到英语

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

于 2010-02-03T04:33:16.500 回答
2

IP2Location提供了几种不同的方法来获取此信息(它们具有进行 IP 地址查找所需的数据)。这包括每年花费 49 美元的网络服务,或者您可以以相同的价格直接从他们那里购买数据。

于 2010-02-03T04:34:40.480 回答
2

找出 Web 应用程序用户选择的语言是...

棘手的生意!

请参阅这个相关的 SO Questionthis one

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

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

免费 IP 地理定位服务

商业IP地理定位服务

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

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

于 2010-02-03T04:40:44.477 回答