Какой формат ISO следует использовать для хранения кода языка пользователя? - PullRequest
21 голосов
/ 24 марта 2010

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

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

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

Ответы [ 5 ]

24 голосов
/ 09 апреля 2010

Вы должны использовать 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, zh-CN, ...
  • zh-hant (традиционный китайский) используется вместо более конкретных кодов, таких как zh-hant-TW или zh-TW

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

5 голосов
/ 24 марта 2010

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

2 голосов
/ 24 марта 2010

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

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

1 голос
/ 24 марта 2010

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

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

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

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

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

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

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

1 голос
/ 24 марта 2010

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

...