Тег языка IETF - IETF language tag

IETF BCP 47 языка тегов представляет собой стандартизированный код или тег , который используется для идентификации человека языков в интернет - программирования, которые используются вычислительные стандарты , такие как HTTP , HTML , XML и PNG . Структура тегов стандартизирована Инженерной группой Интернета (IETF) в документе Best Current Practice (BCP) 47 ; в подтеги поддерживаются в IANA Language Subtag реестра . Чтобы различать языковые варианты для стран , регионов или систем письма , языковые теги IETF объединяют вложенные теги из других стандартов, таких как ISO 639 , ISO 15924 , ISO 3166-1 и UN M.49 .

Примечательно, что тег en означает английский язык ; es-419 для латиноамериканского испанского языка ; рм-сурсилв для Сурсильвана ; gsw-u-sd-chzh для Цюрихского немецкого языка ; nan-Hant-TW от Min Nan Китайский язык, на котором говорят на Тайване с использованием традиционных ханьских иероглифов .

История

Языковые теги IETF были впервые определены в RFC 1766, отредактированном Харальдом Твейтом Альвестрандом , опубликованном в марте 1995 года. В тегах использовались двухбуквенные языковые коды ISO 639 и двухбуквенные коды стран ISO 3166, а также разрешалась регистрация целых тегов, которые включали вариант или вложенные теги сценария от трех до восьми букв.

В январе 2001 года это было обновлено RFC 3066, который добавил использование трехбуквенных кодов ISO 639-2 , разрешил вложенные теги с цифрами и принял концепцию языковых диапазонов из HTTP / 1.1, чтобы помочь с сопоставлением языковых тегов.

Следующая редакция спецификации появилась в сентябре 2006 г. с публикацией RFC 4646 (основная часть спецификации), отредактированной Аддисоном Филипсом и Марком Дэвисом, и RFC 4647 (которая касается поведения сопоставления). RFC 4646 представил более структурированный формат языковых тегов, добавил использование четырехбуквенных кодов сценариев ISO 15924 и трехзначных кодов географических регионов UN M.49 и заменил старый реестр тегов новым реестром вложенных тегов. Небольшое количество ранее определенных тегов, которые не соответствовали новой структуре, были исключены, чтобы поддерживать совместимость с RFC 3066.

Текущая версия спецификации, RFC 5646, была опубликована в сентябре 2009 года. Основная цель этой версии заключалась во включении трехбуквенных кодов из ISO 639-3 и 639-5 в реестр языковых подтегов для повышения совместимости. между ISO 639 и BCP 47.

Синтаксис языковых тегов

Каждый языковой тег состоит из одного или нескольких «вложенных тегов», разделенных дефисом (-). Каждый вложенный тег состоит только из основных латинских букв или цифр.

За исключением частных языковых тегов, начинающихся с префикса x- и устаревших языковых тегов (включая теги, начинающиеся с префикса i- и ранее зарегистрированные в старом реестре языковых тегов), вложенные теги появляются в следующем порядке:

  • Единственный вложенный тег основного языка на основе двухбуквенного кода языка из ISO 639-1 (2002) или трехбуквенного кода из ISO 639-2 (1998), ISO 639-3 (2007) или ISO 639-5 (2008). ), или зарегистрированный через процесс BCP 47 и состоящий из пяти-восьми букв;
  • До трех дополнительных расширенных языковых подтэгов, каждый из которых состоит из трех букв, разделенных дефисом; (В настоящее время нет расширенного языкового подтэга, зарегистрированного в реестре языковых подтегов без эквивалентного и предпочтительного подтега основного языка. Этот компонент языковых тегов сохранен для обратной совместимости и для использования в будущих частях ISO 639.)
  • Необязательный вложенный тег сценария , основанный на четырехбуквенном коде сценария из ISO 15924 (обычно записывается в регистре заголовков );
  • Необязательный вложенный тег региона, основанный на двухбуквенном коде страны из ISO 3166-1 alpha-2 (обычно пишется в верхнем регистре) или трехзначном коде из UN M.49 для географических регионов;
  • Необязательные вариантные вложенные теги , разделенные дефисами, каждый из которых состоит из пяти-восьми букв или из четырех символов, начинающихся с цифры; (Вложенные теги вариантов зарегистрированы IANA и не связаны с каким-либо внешним стандартом.)
  • Необязательные вложенные теги расширения , разделенные дефисами, каждый из которых состоит из одного символа, за исключением буквы x , и дефиса, за которым следует один или несколько вложенных тегов от двух до восьми символов каждый, разделенных дефисом;
  • Необязательный вложенный тег для частного использования , состоящий из буквы x и дефиса, за которыми следуют вложенные теги от одного до восьми символов каждый, разделенные дефисами.

Подтег не чувствительно к регистру , но спецификация рекомендует использовать тот же случай, что и в языке Subtag реестре, где область подтег являются верхнийРЕГИСТРом , сценарий подтег являются Название дела , а все остальные подтег являются строчными буквами . Использование заглавных букв соответствует рекомендациям основных стандартов ISO.

Необязательные вложенные теги сценария и региона рекомендуется опускать, если они не добавляют отличительной информации к языковому тегу. Например, es предпочтительнее es-Latn , поскольку предполагается, что испанский язык будет написан латинскими буквами; ja предпочтительнее, чем ja-JP , поскольку японский язык, используемый в Японии , не сильно отличается от японского языка, используемого в других странах.

Не все лингвистические регионы могут быть представлены с допустимым подтегом региона: субнациональные региональные диалекты основного языка регистрируются как вариантные подтеги. Например, валенсия вариант Subtag для Valencian диалекте каталанский зарегистрирован в реестре языка Subtag с приставкой ок . Поскольку на этом диалекте говорят почти исключительно в Испании, региональный подтег ES обычно можно опустить.

Языковые теги IETF использовались в качестве идентификаторов локали во многих приложениях. Этим приложениям может потребоваться установить свою собственную стратегию для определения, кодирования и сопоставления локалей, если стратегия, описанная в RFC 4647, не подходит.

Использование, интерпретация и сопоставление языковых тегов IETF в настоящее время определены в RFC 5646 и RFC 4647. Реестр языковых вложенных тегов перечисляет все действующие в настоящее время общедоступные вложенные теги. Подтеги частного использования не включаются в реестр, поскольку они зависят от реализации и подлежат частным соглашениям между третьими сторонами, использующими их. Эти частные соглашения выходят за рамки BCP 47.

Отношение к другим стандартам

Хотя некоторые типы вложенных тегов являются производными от основных стандартов ISO или ООН , они не полностью соответствуют этим стандартам, поскольку это может привести к изменению значения языковых тегов со временем. В частности, вложенный тег, полученный из кода, присвоенного ISO 639 , ISO 15924 , ISO 3166 или UN M.49, остается действительным (хотя и устаревшим) вложенным тегом, даже если код исключен из соответствующего основного стандарта. Если позже стандарт присвоит отозванному коду новое значение, соответствующий вложенный тег все равно сохранит свое старое значение.

Эта стабильность была введена в RFC 4646.

ISO 639-3 и ISO 639-1

RFC 4646 определил концепцию «расширенного языкового подтэга» (иногда называемого extlang ), хотя в то время такие подтэги не регистрировались.

RFC 5645 и RFC 5646 добавили вложенные теги основного языка, соответствующие кодам ISO 639-3 для всех языков, которых еще не было в реестре. Кроме того, коды для языков, охватываемых определенными макроязыками, были зарегистрированы как расширенные языковые подтэги. Языки жестов также были зарегистрированы как extlangs с префиксом sgn . Эти языки могут быть представлены либо с помощью вложенного тега для охватываемого языка ( cmn для мандаринского языка), либо с помощью комбинации язык-дополнительный язык ( zh-cmn ). Первый вариант предпочтительнее для большинства целей. Второй вариант называется «расширенная форма» и является новым в RFC 5646.

Целые теги, которые были зарегистрированы до RFC 4646 и теперь классифицируются как «устаревшие» или «избыточные» (в зависимости от того, соответствуют ли они новому синтаксису), не рекомендуются в пользу соответствующего языкового вложенного тега на основе ISO 639-3, если таковой существует. . Чтобы перечислить несколько примеров, nan предпочтительнее zh-min-nan для китайского языка Min Nan ; hak предпочтительнее i-hak и zh-hakka для китайского языка Hakka ; и ase предпочтительнее sgn-US для американского жестового языка .

ISO 639-5 и ISO 639-2

ISO 639-5 определяет языковые коллекции с кодами alpha-3 иначе, чем они были изначально закодированы в ISO 639-2 (включая один код, уже присутствующий в ISO 639-1). В частности, все языковые коллекции теперь определены в ISO 639-5 как включающие, а не только некоторые из них. Это означает, что языковые коллекции имеют более широкую область применения, чем раньше, в некоторых случаях, когда они могут включать языки, которые уже были отдельно закодированы в ISO 639-2.

Например, код ISO 639-2 afa ранее был связан с названием «Афро-азиатский (другой)», за исключением таких языков, как арабский, которые уже имели свой собственный код. В ISO 639-5 эта коллекция называется «Афро-азиатские языки» и включает все такие языки. ISO 639-2 изменил эксклюзивные имена в 2009 году, чтобы они соответствовали включительным именам ISO 639-5.

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

BCP 47 определяет свойство «Scope» для идентификации вложенных тегов для языковых коллекций. Однако он не определяет любую данную коллекцию как включающую или исключающую и не использует атрибут типа группировки ISO 639-5, хотя поля описания в реестре языковых подтэгов для этих подтегов соответствуют именам ISO 639-5 (включительно). Как следствие, языковые теги BCP 47, которые включают вложенный тег основного языка для коллекции, могут быть неоднозначными в отношении того, предназначена ли коллекция для включения или исключения.

ISO 639-5 не определяет точно, какие языки являются членами этих коллекций; определяется только иерархическая классификация коллекций с использованием инклюзивного определения этих коллекций. Из-за этого RFC 5646 не рекомендует использовать вложенные теги для языковых коллекций для большинства приложений, хотя они по-прежнему предпочтительнее вложенных тегов, значение которых еще менее определено, например, «Несколько языков» и «Не определено».

Напротив, классификация отдельных языков в пределах их макроязыка стандартизирована как в ISO 639-3, так и в Реестре языковых подтегов.

ISO 15924, ISO / IEC 10646 и Unicode

Вложенные теги сценария были впервые добавлены в реестр языковых вложенных тегов при публикации RFC 4646 из списка кодов, определенных в ISO 15924 . Они кодируются в языковом теге после основного и расширенного языковых вложенных тегов, но перед другими типами вложенных тегов, включая региональные и вариантные вложенные теги.

Некоторые вложенные теги основного языка определены с помощью свойства с именем "Suppress-Script", которое указывает на случаи, когда по умолчанию для языка может использоваться один сценарий, даже если он может быть написан с другим сценарием. В этом случае предпочтительно опустить вложенный тег сценария, чтобы повысить вероятность успешного сопоставления. При необходимости можно добавить другой вложенный тег скрипта, чтобы различать. Например, yi предпочтительнее yi-Hebr в большинстве случаев, потому что для языка идиш предполагается наличие вложенного тега еврейского сценария .

В качестве другого примера, zh-Hans-SG можно считать эквивалентным zh-Hans , потому что код региона, вероятно, не имеет значения; в письменной форме китайского языка, используемой в Сингапуре, используются те же упрощенные китайские иероглифы, что и в других странах, где пишется китайский язык. Однако вложенный тег скрипта сохраняется, потому что он важен.

Обратите внимание, что ISO 15924 включает некоторые коды для вариантов сценария (например, Hans и Hant для упрощенных и традиционных форм китайских символов), которые объединены в Unicode и ISO / IEC 10646 . Эти варианты сценария наиболее часто кодируются для библиографических целей, но не всегда значимы с лингвистической точки зрения (например, Latf и Latg кодов сценариев для Fraktur и гэльских варианты латинского алфавита, которые в основном закодированного с регулярными латинскими буквами в Unicode и ISO / IEC 10646). Иногда они могут быть полезны в языковых тегах, чтобы выявить орфографические или семантические различия, с различным анализом букв, диакритических знаков и диграфов / триграфов в качестве кластеров графем по умолчанию или различий в правилах регистра букв.

ISO 3166-1 и UN M.49

Подтеги двухбуквенных областей основаны на кодах, присвоенных или «исключительно зарезервированных» в ISO 3166-1 . Если Агентство по техническому обслуживанию ISO 3166 переназначит код, который ранее был назначен другой стране, существующий вложенный тег BCP 47, соответствующий этому коду, сохранит свое значение, а новый региональный вложенный тег на основе UN M.49 будет зарегистрирован для новая страна. UN M.49 также является источником числовых субтэгов для географических регионов, например 005для Южной Америки. Коды ООН M.49 для экономических регионов не допускаются.

Вложенные теги региона используются для указания разновидности языка, «используемого в» конкретном регионе. Они подходят, когда сорт носит региональный характер, и может быть адекватно охарактеризован путем определения участвующих стран, например, при различении британского английского ( en-GB ) от американского английского ( en-US ). Когда разница заключается в разнообразии сценариев или сценариев, что касается упрощенных и традиционных китайских иероглифов, это должно быть выражено с помощью вложенного тега сценария вместо вложенного тега региона; в этом примере следует использовать zh-Hans и zh-Hant вместо zh-CN и zh-HK .

Когда существует отдельный языковой подтэг для языка, который можно рассматривать как региональную разновидность, часто предпочтительнее использовать более конкретный подтэг вместо комбинации языка и региона. Например, ar-DZ ( арабский язык, используемый в Алжире ) может быть лучше выражен как arq для алжирского разговорного арабского языка .

Расширения

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

Вложенные теги расширений состоят из нескольких строк символов, разделенных дефисом, которые начинаются с одного символа (кроме x ), называемого синглтоном . Каждое расширение описано в собственном RFC IETF , который определяет центр регистрации для управления данными для этого расширения. IANA отвечает за распределение одиночных номеров.

По состоянию на январь 2014 года назначено два продления.

Расширение T (преобразованное содержимое)

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

Расширение T описано в RFC 6497, опубликованном в феврале 2012 года. Регистрирующим органом является Консорциум Unicode .

Расширение U (локаль Юникода)

Расширение U позволяет встраивать в языковые теги широкий спектр атрибутов языковых стандартов, имеющихся в репозитории данных общих языковых стандартов (CLDR). Эти атрибуты включают подразделения страны, данные календаря и часового пояса, порядок сортировки, валюту, систему счисления и идентификацию клавиатуры.

Вот некоторые примеры:

Расширение U описано в RFC 6067, опубликованном в декабре 2010 г. Регистрирующим органом является Консорциум Unicode .

Смотрите также

использованная литература

внешние ссылки