У меня есть список кодов стран и список кодов языков. Как сопоставить код страны с кодом языка?

когда пользователь посещает сайт, я могу получить их код страны. Я хочу использовать это, чтобы установить язык по умолчанию (который они могут позже изменить, если это необходимо, просто общее предположение о том, на каком языке они могут говорить, основываясь на том, в какой стране они находятся).

существует ли окончательное сопоставление кодов стран с языковыми кодами, которые где-то существуют? Я не мог его найти. Я знаю, что не все в конкретной стране говорят на одном языке, но мне просто нужен генерал отображение, пользователь может выбрать свой язык вручную позже.

2 ответов


поиск "отображение языка страны" оказывается это языки стран таблица, которую вы, вероятно, могли бы преобразовать в языковые коды с небольшой работой. (Существует менее 200 стран.)

предупреждение, хотя: это в значительной степени гарантированно раздражает многих пользователей в многоязычных странах, таких как Швейцария или Канада. Для таких стран принято позволять пользователю выбирать свой язык на главной странице пользовательского интерфейса. См. Google Швейцария или Лучшая Покупка Канада для некоторые примеры. Это также раздражает экспатриантов и путешественников.

еще лучше, почему бы вам не использовать HTTP-заголовок Accept-Language, чтобы определить, какой язык использовать? Заголовок Accept-Language-это то, на что нужно смотреть при определении языка пользователя. Он даже дает вам список в порядке предпочтения, поэтому, если пользователь наиболее свободно говорит на каком-то языке, который вы не поддерживаете, но достаточно свободно на каком-то другом языке, который вы поддерживаете, вы можете правильно отступить. Одна из проблем с Accept-Language заключается в том, что большинство пользователей оставляют его по умолчанию. Большинство браузеров должны по умолчанию использовать языковые настройки платформы, так что это не так уж плохо. (Некоторые старые браузеры будут по умолчанию использовать английский, что было своего рода катастрофой, потому что "en" фактически означало, что язык Accept-Language не был установлен.)


хотя могут быть веские причины, чтобы попытаться сопоставить страны (или действительно конкретные местоположения/области в стране) с языками, кажется, что для вашей цели, используя

заголовок HTTP-запроса Принять-Язык,

Если только в качестве одного из элементов в вашем выборе языка эвристика (наряду с кодом страны mabye teh) может быть простым и безопасным выбором...

этот подход иногда ошибается, потому что по умолчанию язык(ы), связанный с данной установкой веб-браузера (когда базовый пользователь не нашел времени, чтобы выбрать пакет установки / настройки для своего предпочтительного естественного языка). С другой стороны, он также обеспечивает лучшую языковую подсказку для многих экспатриантов (у которых есть установка / настройка браузера в соответствии с предпочтительным языком), хотя ассоциация геолокации / языка была бы совершенно неправильной.

в целом этот подход должен превосходить методы исключительно основываясь на геолокации (и на таблице поиска), во многих странах, таких как Швейцария, Люксембург... а также во многих мегаполисах говорят Нью-Йорк, Женева или Майами...