Какой формат ISO следует использовать для хранения кода языка пользователя?

Должен ли я использовать ISO 639-1 (двухбуквенное сокращение) или ISO 639-2 (трехбуквенное сокращение) для хранения кода языка пользователя? Оба являются официальными стандартами, но какой стандарт де-факто является стандартом в сообществе разработчиков? Я думаю, что ISO 639-1 легче запомнить, и, вероятно, по этой причине он более популярен, но это лишь предположение.

Сайт, который я создаю, будет иметь отдельный сайт для США, Бразилии, России, Китая и Великобритании.

http://en.wikipedia.org/wiki/ISO_639


person John Himmelman    schedule 24.03.2010    source источник
comment
Не путайте язык и географическое положение.   -  person Quentin    schedule 24.03.2010
comment
Я считаю, что мы делаем переводы только для наиболее распространенного разговорного языка в каждой из этих стран. Мне нужно убедиться, что я использую правильный языковой код, потому что это повлияет на имена файлов перевода.   -  person John Himmelman    schedule 24.03.2010
comment
Вы должны использовать: en, pt, ru, zh, en-gb коды и не забудьте проверить мой ответ, чтобы получить полное объяснение ..   -  person sorin    schedule 09.04.2010
comment
В проектах, в которых я участвовал, включая Wiktionary и AbiWord, использовались двухбуквенные коды для языков, которые имели двухбуквенные коды, и трехбуквенные коды в противном случае.   -  person hippietrail    schedule 05.02.2014


Ответы (5)


Вам следует использовать языковые теги IETF, поскольку они уже используются для HTTP / HTML / XML и многих других технологий. . Они основаны на нескольких стандартах, включая сборник ISO-639 (да, выбор языка, региона и культуры не так-то просто определить).

Я написал более подробную статью о выборе и использовании правильного языкового кода. Идея состоит в том, чтобы использовать самые простые / короткие коды ISO-639-1 и указывать больше только для особых случаев. Внутри статьи есть коды для ~ 30 наиболее часто используемых языков с указанием причин, по которым я считаю одну альтернативу лучше другой.

Если вы хотите пропустить чтение всей статьи, вот краткий список языковых кодов (не путать с кодами стран): ar, cs, da, de, el, en, en-gb, es, fr, fi, he, hu, it, ja, ko, nb, nl, pl, pt, pt-pt, ro, ru, sv, tr, uk, zh, zh-hant

Следующие моменты могут быть неочевидными, но их следует иметь в виду:

  • en используется для en-us - американского английского, а для британского английского используется en-gb
  • pt используется для pt-br, а не pt-pt, ведь у него гораздо меньше динамиков
  • zh используется вместо zh-hans, _10 _, ...
  • zh-hant (традиционный китайский) используется вместо более конкретных кодов, таких как zh-hant-TW или zh-TW

Дополнительные объяснения можно найти в статье.

person sorin    schedule 09.04.2010
comment
URL-адрес выбора и использования кода правильного языка выдает ошибку 404. Попробуйте обновить его или добавьте соответствующую информацию в свой ответ. Ps: Хороший ответ, +1. - person Zuul; 09.07.2012
comment
> 404 Не Найдено - person NatoBoram; 04.11.2019

Я бы выбрал производную от ISO 639. В частности, мне нравится использовать это: http://en.wikipedia.org/wiki/IETF_language_tag

person Ben    schedule 24.03.2010

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

У нас работает!

person Chuck Le Butt    schedule 24.03.2010
comment
+1 Я ни разу не видел, чтобы 639-2 использовался ни в одном приложении. Действительно, с наличием кодов коллекции, таких как cpe, вы можете закодировать документы, которые фактически никто не читает. А сколько документов на кри вы действительно ожидаете? - person msw; 24.03.2010

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

person Jonathan Leffler    schedule 24.03.2010

ISO 639-1 Alpha-2 используется практически повсеместно.

Они используются, например, при согласовании содержимого HTTP. Если вы когда-нибудь задумывались, как международный веб-сайт может автоматически показывать вам свою домашнюю страницу на вашем родном языке, вот как это работает. (Хотя иногда это немного раздражает. Мне, например, часто показывают домашнюю страницу Apache по умолчанию на немецком языке, потому что веб-мастер включил согласование контента, но поместил контент только для английского языка.)

Большинство веб-браузеров используют их прямо в диалоговом окне настроек.

Большинство операционных систем используют их в своих диалоговых окнах настроек или файлах конфигурации.

Википедия использует их в именах серверов для разных языковых версий.

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

Остальные члены семейства ISO 639 представляют наибольший интерес для лингвистов. Если вы не ожидаете, что Сам Иисус Христос (код ISO 639-2 Alpha-3 arc) посетит ваш веб-сайт или, может быть, клингоны (tlh), ISO 639-1 содержит больше языков, чем вы когда-либо можете надеяться поддерживать.

person Jörg W Mittag    schedule 24.03.2010
comment
Возможно, правда, что 639-1 охватывает все языки, которые коммерчески интересны. Но есть тысячи языков, не включенных в этот список, и на этих языках есть школы, и книги, на которых они говорят, выходят в Интернет. Пожалуйста, подумайте дважды, прежде чем усугублять трудности малых языков, не разрешая их коды, когда они появляются в сети. - person John Hatton; 11.02.2015
comment
Я бы не стал беспокоиться о ISO 639-2; он был заменен стандартом ISO 639-3. - person Tsundoku; 15.08.2016