【发布时间】:2015-04-22 04:37:24
【问题描述】:
我希望以访问者的母语打开我的网站,这取决于用户登录的 IP 地址。
默认情况下,该页面以英语打开,但我希望我的法国客户以法语阅读该网站。我已经通过www.ipinfo.io获取信息,但我仍然有点困惑,想知道json格式。
【问题讨论】:
标签: json geolocation ip ip-geolocation
我希望以访问者的母语打开我的网站,这取决于用户登录的 IP 地址。
默认情况下,该页面以英语打开,但我希望我的法国客户以法语阅读该网站。我已经通过www.ipinfo.io获取信息,但我仍然有点困惑,想知道json格式。
【问题讨论】:
标签: json geolocation ip ip-geolocation
您应该使用用户浏览器传递到您网站的accept-language 标头来确定语言,而不是用户当前所在的国家/地区。
如果您确实想根据国家/地区自定义网站内容,您将使用的http://ipinfo.io 代码如下所示:
$.get("http://ipinfo.io", function(response) {
if(response.country == 'US') {
// User is in the USA
} else {
// User is elsewhere
}
}, "jsonp");
您可以在http://country.io/data/找到国家代码与姓名、货币代码、拨号代码等内容的完整映射
【讨论】:
我建议不要单独使用 IP 来确定显示语言。 使用 Accept-Language 标头更可靠。
考虑以下相对常见的场景: 一个只会说英语的人前往俄罗斯并打开您的网站。然后俄文登陆页面以西里尔文显示。
【讨论】:
这并不能回答您的最后一个问题,但它是解决您问题的更好方法。
不要使用 IP 地址来确定区域设置,而是使用基于浏览器的“Accept-Language”标头的本地化。在安装基于操作系统的本地化设置的浏览器时,通常会默认设置此标头。
大多数现代 UI 框架(无论是网页、移动还是桌面)都有本地化/国际化库。
【讨论】: