Должен ли я использовать коды стран ISO 3166 (США) или культурные коды (en-US)?

StackOverflow https://stackoverflow.com/questions/1615817

Вопрос

ISO 3166 имеет список из 2 символов коды стран такие , как США, Великобритания, FR.

Корзина для покупок, которой я пользовался, содержит оба этих кода, а также культурные коды, такие как ru-МЫ или ru-Великобритания.

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

Должен ли я использовать эти "культурные коды" для отслеживания стран или просто придерживаться 2-символьных названий ISO 3166?В чем может заключаться преимущество использования того или иного из них ?

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

Редактировать: Также, где я могу получить список культурных кодов?Является ли это стандартом ISO?Правильно ли предполагать, что страновая часть кода культуры является кодом страны ISO 3166?

Это было полезно?

Решение

Коды стран используются для идентификации стран.Просто страны.

Культурные коды служат для идентификации культур в соответствии с их спецификой, например, десятичные знаки, разделители дат, валюты и т.д.Здесь вас интересует не страна напрямую, а конкретная культура.

Если вам нужно просто отслеживать страны, то придерживайтесь кодов ISO 3166.Это хороший и простой стандарт.Если вы сделаете что-то вроде определения IP-адреса в зависимости от страны, то большинство сервисов выдадут вам только страны, но не конкретные культуры пользователей.

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

Другие советы

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

Страны

Страны - это политические образования, которые принимают законы и управляют правовыми юрисдикциями.Страны определяют такие вещи, как валюты и их символы, торговые тарифы, префиксы телефонных номеров, системы мер и весов (метрическая, имперская и т.д.) и так далее.Страны определяются стандартом ISO 3166, который определяет набор двухбуквенных (альфа-2), трехбуквенных (альфа-3) и цифровых кодов стран.

Коды ISO 3166-1 Alpha-2 не связаны с интернет-нДВУ, хотя они часто совпадают.

Культуры

Культуры - это группы языковых и социальных норм, определяющих такие вещи, как способ написания чисел и дат.Культуры обычно обозначаются с помощью их языковых кодов ISO 639.На самом деле существует четыре разных кода для каждого языка: alpha-2, alpha-3, alpha-3, основанный на названии английского языка, и alpha-3 с диалектными расширениями.

И страны, и культуры несовершенно соотнесены с географическими регионами.

В вычислительных приложениях

Для многих вычислительных приложений полезно знать и то, и другое.Например, вы хотите знать, на каком языке должен быть представлен ваш веб-сайт, и вы хотите знать, в какой валюте пользователь ожидает совершать свои покупки, какой налог с продаж применять, таможенные и почтовые тарифы и так далее.

Вот тут-то и вступают в дело знакомые культурные коды стран, такие как en-US.Это говорит вам о том, что язык - английский (Соединенные Штаты), а страна - США.

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

Замечание о языке

Вы не можете автоматически выбирать язык по стране.Во многих странах существует более одного официального языка.Например, в Канаде это английский и квебекский (канадский французский) языки.В Индии 18 официальных языков, и ни на одном из них не говорят более 20% населения.

Если вы просто отслеживаете страны своих пользователей, я бы придерживался кодов стран.Культура больше подходит для отслеживания таких вещей, как десятичные разделители (. против ,).

Я не отвечаю на ваш главный вопрос, но код страны ISO 3166 для Соединенного Королевства - GB, а не UK (который, однако, “исключительно зарезервирован”), хотя последний является кодом DNS TLD для Соединенного Королевства (из-за личной ошибки Джона Постела, так гласит городская легенда).По этой причине языковой тег для “британского английского” - en-GB, а не en-UK.

Тем не менее, не совсем ясно, для чего вам нужны эти коды.

Как указывали некоторые, один указывает только страну (США), в то время как другой указывает и язык, и страну (en-US).Я просто хотел добавить, что весь смысл наличия языка / страны заключается в том, что это соотношение не является однозначным.В разных странах могут говорить на одном языке (pt-BR vs pt-PT), а в одной стране могут говорить на нескольких языках (fr-CA и en-CA).

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

Как уже говорили другие, если вы хотите записать географическое местоположение пользователей, то используйте коды стран ISO.

Если вы также хотите отслеживать культуру пользователей в целях презентации (например,переводы, форматирование даты и номера), тогда вы должны сохранить и то, и другое.Ничто не должно препятствовать пользователю, проживающему за границей, использовать свой родной язык и культурные настройки.Например, франкоговорящий канадец, проживающий в США, может иметь код страны США, но хотеть код культуры Франции-CA.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top