Tag de idioma IETF - IETF language tag

Uma tag de linguagem IETF BCP 47 é um código ou tag padronizado usado para identificar linguagens humanas na programação da Internet, conforme usado por padrões de computação como HTTP , HTML , XML e PNG . A estrutura da tag foi padronizada pela Internet Engineering Task Force (IETF) em Best Current Practice (BCP) 47 ; as subtags são mantidas pelo IANA Language Subtag Registry . Para distinguir variantes de idioma para países , regiões ou sistemas de escrita , as tags de idioma IETF combinam subtags de outros padrões, como ISO 639 , ISO 15924 , ISO 3166-1 e UN M.49 .

Notavelmente, a tag en significa inglês ; es-419 para espanhol da América Latina ; rm-sursilv para Sursilvan ; gsw-u-sd-chzh para o alemão de Zurique ; nan-Hant-TW para Min Nan Chinês falado em Taiwan usando caracteres Han tradicionais .

História

As tags de idioma da IETF foram definidas pela primeira vez no RFC 1766, editado por Harald Tveit Alvestrand , publicado em março de 1995. As tags usavam códigos de idioma de duas letras ISO 639 e códigos de país de duas letras ISO 3166 e permitiam o registro de tags inteiras que incluíam variantes ou subetiquetas de script de três a oito letras.

Em janeiro de 2001, isso foi atualizado pela RFC 3066, que adicionou o uso de códigos de três letras ISO 639-2 , permitiu subtags com dígitos e adotou o conceito de intervalos de idioma de HTTP / 1.1 para ajudar na correspondência de tags de idioma.

A próxima revisão da especificação veio em setembro de 2006 com a publicação da RFC 4646 (a parte principal da especificação), editada por Addison Philips e Mark Davis e RFC 4647 (que trata do comportamento de correspondência). A RFC 4646 introduziu um formato mais estruturado para tags de idioma, adicionou o uso de códigos de script de quatro letras ISO 15924 e códigos de região geográfica de três dígitos UN M.49 e substituiu o antigo registro de tags por um novo registro de subtags. O pequeno número de tags definidas anteriormente que não estavam em conformidade com a nova estrutura foram adquiridas para manter a compatibilidade com RFC 3066.

A versão atual da especificação, RFC 5646, foi publicada em setembro de 2009. O principal objetivo desta revisão foi incorporar códigos de três letras da ISO 639-3 e 639-5 no Registro de Subtags de Idioma, a fim de aumentar a interoperabilidade entre ISO 639 e BCP 47.

Sintaxe das tags de idioma

Cada tag de idioma é composta por uma ou mais "subetiquetas" separadas por hífens (-). Cada subetiqueta é composta apenas por letras ou dígitos latinos básicos.

Com as exceções de tags de idioma de uso privado que começam com um prefixo x e tags de idioma adquiridas (incluindo aquelas que começam com um prefixo i e aquelas registradas anteriormente no antigo Registro de tags de idioma), as subtags ocorrem na seguinte ordem:

  • Uma única subetiqueta de idioma principal com base em um código de idioma de duas letras da ISO 639-1 (2002) ou um código de três letras da ISO 639-2 (1998), ISO 639-3 (2007) ou ISO 639-5 (2008 ), ou registado através do processo BCP 47 e composto por cinco a oito letras;
  • Até três subetiquetas opcionais de idioma estendido compostas por três letras cada, separadas por hifens; (Atualmente, não há subtag de idioma estendido registrada no Registro de subtag de idioma sem uma subtag de idioma principal equivalente e preferencial. Este componente de tags de idioma é preservado para compatibilidade com versões anteriores e para permitir partes futuras do ISO 639.)
  • Uma subtag de script opcional , com base em um código de script de quatro letras da ISO 15924 (geralmente escrito em caixa do título );
  • Uma subetiqueta de região opcional baseada em um código de país de duas letras ISO 3166-1 alfa-2 (geralmente escrito em maiúsculas), ou um código de três dígitos de UN M.49 para regiões geográficas;
  • Subetiquetas variantes opcionais , separadas por hífens, cada uma composta de cinco a oito letras ou de quatro caracteres começando com um dígito; (As subtags variantes são registradas com IANA e não estão associadas a nenhum padrão externo.)
  • Subetiquetas de extensão opcionais , separadas por hífens, cada uma composta por um único caractere, com exceção da letra x , e um hífen seguido por uma ou mais subetiquetas de dois a oito caracteres cada, separadas por hífens;
  • Uma subetiqueta opcional de uso privado , composta pela letra x e um hífen seguido por subetiquetas de um a oito caracteres cada, separadas por hífens.

As subtags não diferenciam maiúsculas de minúsculas , mas a especificação recomenda usar o mesmo caso que no Registro de subtags de idioma, em que as subtags de região são MAIÚSCULAS , as subtags de script são maiúsculas e todas as outras subtags são minúsculas . Essa capitalização segue as recomendações dos padrões ISO subjacentes.

É preferível que as subtags de script e região opcionais sejam omitidas quando não adicionam informações de distinção a uma tag de idioma. Por exemplo, es é preferível a es-Latn , já que se espera que o espanhol seja escrito na escrita latina; ja é preferível a ja-JP , já que o japonês usado no Japão não difere marcadamente do japonês usado em outros lugares.

Nem todas as regiões linguísticas podem ser representadas com uma subetiqueta de região válida: os dialetos regionais subnacionais de um idioma primário são registrados como subetiquetas variantes. Por exemplo, o valencia subtag variante para o Valenciana dialeto do catalão está registrado no Subtag Registry Idioma com o prefixo ca . Como esse dialeto é falado quase exclusivamente na Espanha, a subtag ES da região normalmente pode ser omitida.

As tags de idioma IETF têm sido usadas como identificadores de localidade em muitos aplicativos. Pode ser necessário que esses aplicativos estabeleçam sua própria estratégia para definir, codificar e combinar localidades se a estratégia descrita na RFC 4647 não for adequada.

O uso, a interpretação e a correspondência de tags de idioma IETF estão atualmente definidos no RFC 5646 e no RFC 4647. O Language Subtag Registry lista todas as subtags públicas válidas no momento. As subetiquetas de uso privado não são incluídas no Registro, pois dependem da implementação e estão sujeitas a acordos privados entre terceiros que as usam. Esses acordos privados estão fora do escopo do BCP 47.

Relação com outros padrões

Embora alguns tipos de subetiquetas sejam derivados dos padrões básicos da ISO ou da ONU , eles não seguem esses padrões de forma absoluta, pois isso pode fazer com que o significado das tags de idioma mude com o tempo. Em particular, uma subetiqueta derivada de um código atribuído pela ISO 639 , ISO 15924 , ISO 3166 ou UN M.49 permanece uma subetiqueta válida (embora obsoleta) mesmo se o código for retirado do padrão principal correspondente. Se o padrão posteriormente atribuir um novo significado ao código retirado, a subetiqueta correspondente ainda manterá seu antigo significado.

Essa estabilidade foi introduzida no RFC 4646.

ISO 639-3 e ISO 639-1

A RFC 4646 definiu o conceito de uma "subetiqueta de linguagem estendida" (às vezes chamada de extlang ), embora nenhuma dessas subetiquetas tenha sido registrada na época.

RFC 5645 e RFC 5646 adicionaram subetiquetas de idioma principal correspondentes aos códigos ISO 639-3 para todos os idiomas que ainda não existiam no Registro. Além disso, os códigos dos idiomas abrangidos por certas macrolinguagens foram registrados como subetiquetas de idioma estendido. As línguas de sinais também foram registradas como extlangs, com o prefixo sgn . Esses idiomas podem ser representados com a subtag apenas para o idioma abrangido ( cmn para mandarim) ou com uma combinação idioma-idioma extlang ( zh-cmn ). A primeira opção é a preferida para a maioria dos propósitos. A segunda opção é chamada de "forma extlang" e é nova no RFC 5646.

Marcas inteiras que foram registradas antes do RFC 4646 e agora são classificadas como "adquiridas" ou "redundantes" (dependendo se elas se encaixam na nova sintaxe) foram descontinuadas em favor da subetiqueta de idioma baseada em ISO 639-3 correspondente, se houver . Para listar alguns exemplos, nan é preferível a zh-min-nan para Min Nan Chinese; hak é preferível a i-hak e zh-hakka para o chinês Hakka ; e ase é preferível a sgn-US para a linguagem de sinais americana .

ISO 639-5 e ISO 639-2

A ISO 639-5 define coleções de idiomas com códigos alfa-3 de uma maneira diferente daquela inicialmente codificada na ISO 639-2 (incluindo um código já presente na ISO 639-1). Especificamente, as coleções de idiomas agora estão todas definidas na ISO 639-5 como inclusivas, em vez de algumas delas serem definidas exclusivamente. Isso significa que as coleções de idiomas têm um escopo mais amplo do que antes, em alguns casos em que podem abranger idiomas que já foram codificados separadamente na ISO 639-2.

Por exemplo, o código ISO 639-2 afa era anteriormente associado ao nome "Afro-Asiático (Outros)", excluindo idiomas como o árabe que já possuíam seu próprio código. Na ISO 639-5, esta coleção é chamada de "idiomas afro-asiáticos" e inclui todos esses idiomas. ISO 639-2 mudou os nomes exclusivos em 2009 para corresponder aos nomes ISO 639-5 inclusivos.

Para evitar a interrupção de implementações que ainda podem depender da definição mais antiga (exclusiva) dessas coleções, a ISO 639-5 define um atributo de tipo de agrupamento para todas as coleções que já foram codificadas na ISO 639-2 (tal tipo de agrupamento não está definido para o novo coleções adicionadas apenas em ISO 639-5).

O BCP 47 define uma propriedade "Escopo" para identificar subetiquetas para coleções de idiomas. No entanto, ele não define nenhuma coleção como inclusiva ou exclusiva e não usa o atributo de tipo de agrupamento ISO 639-5, embora os campos de descrição no Registro de subtag de idioma para essas subtags correspondam aos nomes ISO 639-5 (inclusivos). Como consequência, as tags de idioma BCP 47 que incluem uma subetiqueta de idioma principal para uma coleção podem ser ambíguas quanto ao fato de a coleção ser inclusiva ou exclusiva.

A ISO 639-5 não define precisamente quais idiomas são membros dessas coleções; apenas a classificação hierárquica das coleções é definida, usando a definição inclusiva dessas coleções. Por causa disso, a RFC 5646 não recomenda o uso de subetiquetas para coleções de idiomas para a maioria dos aplicativos, embora elas ainda sejam preferidas em relação às subetiquetas cujo significado é ainda menos específico, como "Vários idiomas" e "Indeterminado".

Em contraste, a classificação de idiomas individuais dentro de sua macrolinguagem é padronizada, tanto na ISO 639-3 quanto no Registro de subtags de idioma.

ISO 15924, ISO / IEC 10646 e Unicode

As subtags de script foram adicionadas pela primeira vez ao Language Subtag Registry quando a RFC 4646 foi publicada, a partir da lista de códigos definidos na ISO 15924 . Elas são codificadas na tag de idioma após as subtags de idioma principal e estendido, mas antes de outros tipos de subtag, incluindo subtags de região e variantes.

Algumas subetiquetas do idioma primário são definidas com uma propriedade chamada "Suppress-Script", que indica os casos em que um único script pode geralmente ser assumido por padrão para o idioma, mesmo que possa ser escrito com outro script. Quando for esse o caso, é preferível omitir a subetiqueta do script para melhorar a probabilidade de correspondência bem-sucedida. Uma subtag de script diferente ainda pode ser anexada para fazer a distinção quando necessário. Por exemplo, yi é preferível a yi-hebr na maioria dos contextos, porque a subtag da escrita hebraica é assumida para o idioma iídiche .

Como outro exemplo, zh-Hans-SG pode ser considerado equivalente a zh-Hans , porque o código da região provavelmente não é significativo; a forma escrita do chinês usada em Cingapura usa os mesmos caracteres chineses simplificados que em outros países onde o chinês é escrito. No entanto, a subtag do script é mantida porque é significativa.

Observe que o ISO 15924 inclui alguns códigos para variantes de script (por exemplo, Hans e Hant para formas simplificadas e tradicionais de caracteres chineses) que são unificados em Unicode e ISO / IEC 10646 . Estas variantes de script são mais frequentemente codificado para fins bibliográficos, mas nem sempre são significativos do ponto de vista linguístico (por exemplo, LATF e Latg códigos de script para o Fraktur e Gaelic variantes do alfabeto latino, que são na sua maioria codificado com letras latinas regulares em Unicode e ISO / IEC 10646). Eles podem ocasionalmente ser úteis em tags de idioma para expor diferenças ortográficas ou semânticas, com diferentes análises de letras, diacríticos e dígrafos / trígrafos como grupos de grafemas padrão ou diferenças nas regras de maiúsculas e minúsculas.

ISO 3166-1 e UN M.49

As subetiquetas de região de duas letras são baseadas em códigos atribuídos, ou "excepcionalmente reservados", no ISO 3166-1 . Se a Agência de Manutenção ISO 3166 reatribuísse um código que havia sido anteriormente atribuído a um país diferente, a subetiqueta BCP 47 existente correspondente a esse código manteria seu significado, e uma nova subetiqueta de região baseada em UN M.49 seria registrada para o novo país. ONU M.49 também é a fonte para subetiquetas de região numérica para regiões geográficas, como 005para a América do Sul. Os códigos UN M.49 para regiões econômicas não são permitidos.

As subetiquetas de região são usadas para especificar a variedade de um idioma "conforme usado" em uma determinada região. Eles são apropriados quando a variedade é de natureza regional e podem ser capturados adequadamente identificando os países envolvidos, como ao distinguir o inglês britânico ( en-GB ) do inglês americano ( en-US ). Quando a diferença é de script ou variedade de script, como para caracteres chineses simplificados versus tradicionais , ela deve ser expressa com uma subtag de script em vez de uma subtag de região; neste exemplo, zh-Hans e zh-Hant devem ser usados ​​em vez de zh-CN e zh-HK .

Quando existe uma subtag de idioma distinta para um idioma que pode ser considerado uma variedade regional, geralmente é preferível usar a subtag mais específica em vez de uma combinação de idioma-região. Por exemplo, ar-DZ ( Árabe usado na Argélia ) pode ser melhor expresso como arq para Árabe Falado da Argélia .

Extensões

As subetiquetas de extensão (não devem ser confundidas com as subetiquetas de idioma estendido ) permitem que informações adicionais sejam anexadas a uma tag de idioma que não necessariamente serve para identificar um idioma. Um uso das extensões é codificar informações de local, como calendário e moeda.

As subetiquetas de extensão são compostas por várias cadeias de caracteres separadas por hífen, começando com um único caractere (diferente de x ), chamado de singleton . Cada extensão é descrita em seu próprio IETF RFC , que identifica uma Autoridade de Registro para gerenciar os dados para essa extensão. IANA é responsável por alocar singletons.

Duas extensões foram atribuídas em janeiro de 2014.

Extensão T (conteúdo transformado)

A extensão T permite que uma marca de idioma inclua informações sobre como os dados marcados foram transliterados, transcritos ou de outra forma transformados. Por exemplo, a tag en-t-jp pode ser usada para conteúdo em inglês que foi traduzido do japonês original. Subcadeias adicionais podem indicar que a tradução foi feita mecanicamente ou de acordo com um padrão publicado.

A extensão T é descrita no RFC 6497, publicado em fevereiro de 2012. A Autoridade de Registro é o Consórcio Unicode .

Extensão U (local Unicode)

A extensão U permite que uma ampla variedade de atributos de localidade encontrados no Common Locale Data Repository (CLDR) sejam incorporados em tags de idioma. Esses atributos incluem subdivisões de país, dados de calendário e fuso horário, ordem de agrupamento, moeda, sistema numérico e identificação de teclado.

Alguns exemplos incluem:

A extensão U é descrita na RFC 6067, publicada em dezembro de 2010. A Autoridade de Registro é o Consórcio Unicode .

Veja também

Referências

links externos

  • BCP 47 Language Tags - especificação atual (contém duas RFCs, RFC 5646 e RFC 4647 publicadas separadamente em datas diferentes, mas concatenadas em um único documento)
    • (também referenciando a RFC 5645 informativa relacionada, que complementa a RFC 4645 informativa anterior, bem como outros formulários de registro individuais publicados separadamente por terceiros para cada idioma adicionado ou modificado no Registro entre essas revisões do BCP 47)
  • Registro de subtag de idioma - mantido pela IANA
  • Pesquisa de registro de subtag de idioma - encontre subtags e veja as entradas no registro
  • Tags de linguagem em HTML e XML - do W3C
  • Language Tags - do grupo de trabalho IETF Language Tag Registry Update