GeoIP2 - Как я могу получить код языка?

Я использую GeoIP2 от Maxmind и хотел бы знать, как я могу получить код языка из ответа 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" кажется кодом страны. Мне тоже нужен язык.


person Michael Giovanni Pumo    schedule 12.02.2015    source источник


Ответы (1)


невозможно получить эту информацию из базы данных GeoIP2 или веб-службы. Было бы довольно сложно узнать, какой язык подходит для данного IP-адреса.

Многие страны используют более одного языка. Учитывая код страны, вы можете искать языки с соответствующим источником данных, хотя я не знаю хорошей JS-библиотеки для этого навскидку.

person Dave Rolsky    schedule 12.02.2015