我正在使用Maxmind的GeoIP2,想知道如何从JSON响应中获取语言代码。它似乎没有来自他们的API,我找不到相关的信息。
例如,我想得到:
en_GB
但是,GeoIP2似乎只给我一个国家代码:GB
。
典型回复:
{
"country": {
"iso_code": "GB",
"names": {
"pt-BR": "Reino Unido",
"es": "Reino Unido",
"ru": "Великобритания",
"en": "United Kingdom",
"zh-CN": "英国",
"fr": "Royaume-Uni",
"de": "Vereinigtes Königreich",
"ja": "イギリス"
},
"geoname_id": 2635167
},
"city": {
"names": {
"pt-BR": "Londres",
"es": "Londres",
"ru": "Лондон",
"en": "London",
"zh-CN": "伦敦",
"fr": "Londres",
"de": "London",
"ja": "ロンドン"
},
"geoname_id": 2643743
},
"location": {
"longitude": -0.0931,
"latitude": 51.5142,
"time_zone": "Europe/London"
},
"subdivisions": [
{
"iso_code": "ENG",
"names": {
"pt-BR": "Inglaterra",
"es": "Inglaterra",
"ru": "Англия",
"en": "England",
"zh-CN": "英格兰",
"fr": "Angleterre",
"de": "England",
"ja": "イングランド"
},
"geoname_id": 6269131
}
],
"continent": {
"names": {
"pt-BR": "Europa",
"es": "Europa",
"ru": "Европа",
"en": "Europe",
"zh-CN": "欧洲",
"fr": "Europe",
"de": "Europa",
"ja": "ヨーロッパ"
},
"geoname_id": 6255148,
"code": "EU"
},
"traits": {
"autonomous_system_number": 8220,
"ip_address": "80.169.93.174",
"organization": "COLT Technology Services Group Limited",
"isp": "COLT Technology Services Group Limited",
"autonomous_system_organization": "COLT Technology Services Group Limited"
},
"registered_country": {
"iso_code": "GB",
"names": {
"pt-BR": "Reino Unido",
"es": "Reino Unido",
"ru": "Великобритания",
"en": "United Kingdom",
"zh-CN": "英国",
"fr": "Royaume-Uni",
"de": "Vereinigtes Königreich",
"ja": "イギリス"
},
"geoname_id": 2635167
},
"postal": {},
"represented_country": {
"names": {}
}
}
http://dev.maxmind.com/geoip/geoip2/javascript/
现在,一个解决方案是手动将navigator.language
代码连接到GeoIP2的国家/地区代码,但这是我最想避免的肮脏黑客。
所有"iso_code"
似乎都是国家/地区代码。我也需要这门语言。
任何帮助非常感谢!
谢谢, 迈克尔。
答案 0 :(得分:2)
无法从GeoIP2数据库或Web服务获取此信息。很难知道哪种语言适合给定的IP地址。
许多国家/地区使用多种语言。鉴于国家/地区代码,您可以在给定适当数据源的情况下查找语言,但我不知道这方面有一个好的JS库。