Двухбуквенные или трехбуквенные языковые коды

Вопрос

Должен ли я использовать двухбуквенные или трехбуквенные языковые коды ISO в language тэгах?

Интернет и Сеть используют language тэги для определения обычного языка текста в таких протоколах и форматах, как HTML, XHTML, XML, HTTP, и других. В прошлом значения language тэга были определены в RFC 3066 тэги для Идентификации Языков (и его предшественнике RFC 1766) и начинался или с ISO 639-1 двухбуквенного языкового кода или ISO 639-2 трибуквенного кода.

Для некоторых языков в ISO кодах были как двухбуквенные так и трехбуквенные альтернативы. (И для некоторых языков на выбор были только две трехбуквенные альтернативы.) Люди иногда путают который ISO код они должны использовать в language тэге.

Ответ

Хорошей новостью является то, что вам больше не нужно беспокоиться об этом вопросе!

Текущая спецификация IETF, которая описывает как создать language тэги называется BCP 47. Вас больше не отсылают к спискам кодов ISO. Вместо этого вы должны смотреть на соответствующие subtags в новом IANA Language Subtag Реестре. Этот реестр содержит в языке только один subtag, так что нет больше какой-либо двусмысленности.

Хотя теперь нужно смотреть в IANA Language Subtag Реестр, а не списки кодов ISO, language тэги, что вы использовали до этого времени не нужно менять (пока вы следовали правилу 'самый короткий код'). Это просто изменение способа доступа к ним.

IANA Language Subtag Реестр до сих пор использует, и относится к кодам с ISO стандартов, но те​​, кто сопровождают реестр должны позаботиться о том, чтобы был только один subtag для любого языка: или двухбуквенный или трехбуквенный.

Дополнительные сведения о том, как использовать новый синтаксис language тэга и реестр смотрите в статьях Language Тэги в HTML и XML и Выбор Language Тэга.