Получить список названий городов на английском и родном языке

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

Я видел это на многих сайтах, но не смог найти ни одного метода. Я пробовал Google Revise Geo-кодирование, но не смог передать родной язык:

https://maps.googleapis.com/maps/api/geocode/json?latlng=40.714224,-73.961452&location_type=ROOFTOP&result_type=street_address&lang=?????

Есть geonames.org, но не могу определить родной язык. Я также попробовал OpenStreetMap.org, но не смог понять API.

Я хочу, чтобы результат был похож на:
Саудовская Аравия -> Риад
المملكة العربية السعودية-> الرياض

Если пользователь английский, потому что это родной язык, поэтому список будет

Любая альтернатива ценится

1 ответ

Вы не можете попросить Google Geocoding API вернуть название местоположения на родном языке, если вы не имеете в виду родной для пользователя, а не родной для этого места.

По умолчанию API пытается загрузить наиболее подходящий язык в зависимости от местоположения пользователя или настроек браузера. Некоторые API позволяют явно устанавливать язык при отправке запроса.

Самое близкое, что вы можете получить, это, вероятно, следующее, но имейте в виду, что это будет подвержено значительным ошибкам:

  • Запросите один раз с lang=en
  • Разобрать short_name из types=country
  • Создайте себе справочную таблицу, которая переведет данные с последнего шага в код родного языка этой страны
  • Запросите второй раз, прося lang={languageCode}

Вот список кодов языков для справки: https://developers.google.com/maps/faq

Другие вопросы по тегам