Una etiqueta de idioma IETF BCP 47 es un código estandarizado que se utiliza para identificar idiomas humanos en Internet. [1] La estructura de la etiqueta ha sido estandarizada por el Grupo de Trabajo de Ingeniería de Internet (IETF) [1] en Best Current Practice (BCP) 47 ; [1] las subetiquetas son mantenidas por el Registro de Subetiquetas de Idioma de la IANA . [2] [3] [4]
Para distinguir las variantes lingüísticas de los países, regiones o sistemas de escritura (scripts), las etiquetas de idioma de la IETF combinan subetiquetas de otras normas como ISO 639 , ISO 15924 , ISO 3166-1 y UN M.49 . Por ejemplo, la etiqueta en
representa inglés ; español latinoamericanoes-419
; romanche sursilvaniano ; serbio escrito en alfabeto cirílico ; chino min nan que utiliza caracteres tradicionales han , como se habla en Taiwán ; cantonés que utiliza caracteres tradicionales han , como se habla en Hong Kong ; y alemán de Zúrich .rm-sursilv
sr-Cyrl
nan-Hant-TW
yue-Hant-HK
gsw-u-sd-chzh
Lo utilizan estándares informáticos como HTTP , [5] HTML , [6] XML, [7] y PNG . [8]
Las etiquetas de idioma IETF se definieron por primera vez en RFC 1766, editado por Harald Tveit Alvestrand , publicado en marzo de 1995. Las etiquetas usaban códigos de idioma de dos letras ISO 639 y códigos de país de dos letras ISO 3166, y permitían el registro de etiquetas completas que incluían subetiquetas variantes o de escritura de tres a ocho letras.
En enero de 2001, esto se actualizó con el RFC 3066, que agregó el uso de códigos de tres letras ISO 639-2 , permitió subetiquetas con dígitos y adoptó el concepto de rangos de idiomas de HTTP/1.1 para ayudar con la coincidencia de etiquetas de idiomas.
La siguiente revisión de la especificación se produjo en septiembre de 2006 con la publicación de RFC 4646 (la parte principal de la especificación), editada por Addison Philips y Mark Davis y RFC 4647 [9] (que trata sobre el comportamiento de coincidencia). RFC 4646 introdujo un formato más estructurado para las etiquetas de idioma, agregó el uso de códigos de escritura de cuatro letras ISO 15924 y códigos de región geográfica de tres dígitos UN M.49, y reemplazó el antiguo registro de etiquetas con un nuevo registro de subetiquetas. El pequeño número de etiquetas definidas previamente que no se ajustaban a la nueva estructura se mantuvo para mantener la compatibilidad con RFC 3066.
La versión actual de la especificación, RFC 5646, [10] se publicó en septiembre de 2009. El objetivo principal de esta revisión fue incorporar códigos de tres letras de ISO 639-3 y 639-5 al Registro de subetiquetas de idioma, con el fin de aumentar la interoperabilidad entre ISO 639 y BCP 47. [11]
Cada etiqueta de idioma se compone de una o más "subetiquetas" separadas por guiones (-). Cada subetiqueta se compone únicamente de letras o dígitos latinos básicos.
Con la excepción de las etiquetas de idioma de uso privado que comienzan con un prefijo x y las etiquetas de idioma heredadas (incluidas las que comienzan con un prefijo i y las registradas previamente en el antiguo Registro de Etiquetas de Idioma), las subetiquetas aparecen en el siguiente orden:
Las subetiquetas no distinguen entre mayúsculas y minúsculas , pero la especificación recomienda utilizar el mismo uso de mayúsculas y minúsculas que en el Registro de subetiquetas de idioma, donde las subetiquetas de región están en MAYÚSCULAS , las subetiquetas de script están en Título y todas las demás subetiquetas están en minúsculas . Este uso de mayúsculas y minúsculas sigue las recomendaciones de los estándares ISO subyacentes.
Se prefiere omitir las subetiquetas de escritura y región opcionales cuando no agregan información distintiva a una etiqueta de idioma. Por ejemplo, se prefiere es en lugar de es-Latn , ya que se espera que el español se escriba en alfabeto latino; se prefiere ja en lugar de ja-JP , ya que el japonés que se usa en Japón no difiere notablemente del japonés que se usa en otros lugares.
No todas las regiones lingüísticas pueden representarse con una subetiqueta de región válida: los dialectos regionales subnacionales de una lengua primaria se registran como subetiquetas de variante. Por ejemplo, la subetiqueta de variante valencia para la variante valenciana del catalán se registra en el Registro de Subetiquetas de Lengua con el prefijo ca . Como este dialecto se habla casi exclusivamente en España, normalmente se puede omitir la subetiqueta de región ES .
Además, hay etiquetas de script que no hacen referencia a scripts tradicionales como el latín, o incluso a scripts en absoluto, y estos generalmente comienzan con Z. Por ejemplo, Zsye se refiere a emojis , Zmth a notación matemática , Zxxx a documentos no escritos y Zyyy a scripts indeterminados.
Las etiquetas de idioma de la IETF se han utilizado como identificadores de configuración regional en muchas aplicaciones. Puede ser necesario que estas aplicaciones establezcan su propia estrategia para definir, codificar y hacer coincidir las configuraciones regionales si la estrategia descrita en RFC 4647 no es adecuada.
El uso, la interpretación y la correspondencia de las etiquetas de idioma de la IETF se definen actualmente en RFC 5646 y RFC 4647. El Registro de subetiquetas de idioma incluye todas las subetiquetas públicas válidas en la actualidad. Las subetiquetas de uso privado no están incluidas en el Registro, ya que dependen de la implementación y están sujetas a acuerdos privados entre terceros que las utilizan. Estos acuerdos privados están fuera del alcance de BCP 47.
A continuación se incluye una lista de algunas de las subetiquetas de idioma principal más utilizadas. La lista representa solo un pequeño subconjunto (menos del 2 por ciento) de las subetiquetas de idioma principal; para obtener información completa, se debe consultar directamente el Registro de subetiquetas de idioma.
Aunque algunos tipos de subetiquetas se derivan de las normas básicas ISO o de las Naciones Unidas , no siguen estas normas de forma absoluta, ya que esto podría provocar que el significado de las etiquetas de idioma cambie con el tiempo. En particular, una subetiqueta derivada de un código asignado por ISO 639 , ISO 15924 , ISO 3166 o UN M49 sigue siendo una subetiqueta válida (aunque obsoleta) incluso si el código se retira de la norma básica correspondiente. Si la norma asigna posteriormente un nuevo significado al código retirado, la subetiqueta correspondiente seguirá conservando su antiguo significado.
Esta estabilidad se introdujo en RFC 4646.
RFC 4646 definió el concepto de una "subetiqueta de lenguaje extendido" (a veces denominada extlang ), aunque no se registraron subetiquetas de ese tipo en ese momento. [13] [ verificación fallida ] [14] [ verificación fallida ]
RFC 5645 y RFC 5646 añadieron subetiquetas de idioma primario correspondientes a códigos ISO 639-3 para todos los idiomas que no existían ya en el Registro. Además, los códigos para idiomas incluidos en ciertos macroidiomas se registraron como subetiquetas de idioma extendidas. Los idiomas de señas también se registraron como extlangs, con el prefijo sgn . Estos idiomas pueden representarse ya sea con la subetiqueta para el idioma incluido solo ( cmn para mandarín) o con una combinación de idioma-extlang ( zh-cmn ). La primera opción es la preferida para la mayoría de los propósitos. La segunda opción se denomina "forma extlang" y es nueva en RFC 5646.
Las etiquetas completas que se registraron antes de la RFC 4646 y que ahora se clasifican como "protegidas" o "redundantes" (según si se ajustan a la nueva sintaxis) quedan obsoletas en favor de la subetiqueta de idioma correspondiente basada en ISO 639-3, si existe alguna. Por citar algunos ejemplos, se prefiere nan a zh-min-nan para el chino Min Nan ; se prefiere hak a i-hak y zh-hakka para el chino Hakka ; y se prefiere ase a sgn-US para el lenguaje de señas americano .
Windows Vista y versiones posteriores de Microsoft Windows tienen soporte para RFC 4646. [15]
La norma ISO 639-5 define las colecciones de idiomas con códigos alfa-3 de una manera diferente a la que se codificaron inicialmente en la norma ISO 639-2 (incluido un código ya presente en la norma ISO 639-1, el bihari codificado de forma inclusiva como bh en la norma ISO 639-1 y bih en la norma ISO 639-2). En concreto, ahora todas las colecciones de idiomas se definen en la norma ISO 639-5 como inclusivas, en lugar de que algunas de ellas se definan de forma exclusiva. Esto significa que las colecciones de idiomas tienen un alcance más amplio que antes, en algunos casos en los que podrían abarcar idiomas que ya estaban codificados por separado en la norma ISO 639-2.
Por ejemplo, el código ISO 639-2 afa se asociaba anteriormente con el nombre "Afroasiático (Otros)", excluyendo idiomas como el árabe que ya tenían su propio código. En la norma ISO 639-5, esta colección se denomina "Idiomas afroasiáticos" e incluye todos esos idiomas. La norma ISO 639-2 cambió los nombres exclusivos en 2009 para que coincidieran con los nombres inclusivos de la norma ISO 639-5. [16]
Para evitar romper las implementaciones que aún pueden depender de la definición anterior (exclusiva) de estas colecciones, ISO 639-5 define un atributo de tipo de agrupación para todas las colecciones que ya estaban codificadas en ISO 639-2 (dicho tipo de agrupación no está definido para las nuevas colecciones agregadas solo en ISO 639-5).
BCP 47 define una propiedad "Ámbito" para identificar subetiquetas para colecciones de idiomas. Sin embargo, no define ninguna colección dada como inclusiva o exclusiva, y no utiliza el atributo de tipo de agrupación ISO 639-5, aunque los campos de descripción en el Registro de subetiquetas de idioma para estas subetiquetas coinciden con los nombres ISO 639-5 (inclusivos). Como consecuencia, las etiquetas de idioma BCP 47 que incluyen una subetiqueta de idioma principal para una colección pueden ser ambiguas en cuanto a si la colección está destinada a ser inclusiva o exclusiva.
La norma ISO 639-5 no define con precisión qué idiomas son miembros de estas colecciones; solo se define la clasificación jerárquica de las colecciones, utilizando la definición inclusiva de estas colecciones. Debido a esto, la RFC 5646 no recomienda el uso de subetiquetas para colecciones de idiomas para la mayoría de las aplicaciones, aunque aún se prefieren a las subetiquetas cuyo significado es aún menos específico, como "Varios idiomas" e "Indeterminado".
Por el contrario, la clasificación de los idiomas individuales dentro de su macrolenguaje está estandarizada, tanto en ISO 639-3 como en el Registro de Subetiquetas de Idioma.
Las subetiquetas de escritura se agregaron por primera vez al Registro de subetiquetas de idioma cuando se publicó RFC 4646, a partir de la lista de códigos definidos en ISO 15924. Se codifican en la etiqueta de idioma después de las subetiquetas de idioma primarias y extendidas, pero antes de otros tipos de subetiquetas, incluidas las subetiquetas de región y variantes.
Algunas subetiquetas de idioma principal se definen con una propiedad denominada "Suppress-Script" que indica los casos en los que normalmente se puede asumir un solo alfabeto por defecto para el idioma, incluso si se puede escribir con otro alfabeto. Cuando este es el caso, es preferible omitir la subetiqueta de alfabeto para mejorar la probabilidad de una coincidencia exitosa. Aún se puede agregar una subetiqueta de alfabeto diferente para hacer la distinción cuando sea necesario. Por ejemplo, yi se prefiere sobre yi-Hebr en la mayoría de los contextos, porque se asume la subetiqueta de alfabeto hebreo para el idioma yiddish .
Como otro ejemplo, zh-Hans-SG puede considerarse equivalente a zh-Hans , porque el código de región probablemente no sea significativo; la forma escrita del chino que se usa en Singapur utiliza los mismos caracteres chinos simplificados que en otros países donde se escribe chino. Sin embargo, la subetiqueta de escritura se mantiene porque es significativa.
La norma ISO 15924 incluye algunos códigos para variantes de escritura (por ejemplo, Hans y Hant para formas simplificadas y tradicionales de caracteres chinos) que están unificadas dentro de Unicode e ISO/IEC 10646. Estas variantes de escritura se codifican con mayor frecuencia con fines bibliográficos, pero no siempre son significativas desde un punto de vista lingüístico (por ejemplo, los códigos de escritura Latf y Latg para las variantes Fraktur y Gaélica de la escritura latina, que en su mayoría están codificadas con letras latinas regulares en Unicode e ISO/IEC 10646). Ocasionalmente pueden ser útiles en las etiquetas de idioma para exponer diferencias ortográficas o semánticas, con diferentes análisis de letras, diacríticos y dígrafos/trígrafos como grupos de grafemas predeterminados, o diferencias en las reglas de mayúsculas y minúsculas.
Las subetiquetas de región de dos letras se basan en códigos asignados, o "reservados excepcionalmente", en la norma ISO 3166-1 . Si la Agencia de Mantenimiento de la norma ISO 3166 reasignara un código que se había asignado previamente a un país diferente, la subetiqueta BCP 47 existente correspondiente a ese código conservaría su significado y se registraría una nueva subetiqueta de región basada en UN M.49005
para el nuevo país. UN M.49 también es la fuente de subetiquetas de región numéricas para regiones geográficas, como Sudamérica. Los códigos UN M.49 para regiones económicas no están permitidos.
Las subetiquetas de región se utilizan para especificar la variedad de un idioma "tal como se usa en" una región en particular. Son apropiadas cuando la variedad es de naturaleza regional y se pueden capturar adecuadamente identificando los países involucrados, como cuando se distingue el inglés británico ( en-GB ) del inglés estadounidense ( en-US ). Cuando la diferencia es de escritura o variedad de escritura, como en el caso de los caracteres chinos simplificados frente a los tradicionales , se debe expresar con una subetiqueta de escritura en lugar de una subetiqueta de región; en este ejemplo, se deben utilizar zh-Hans y zh-Hant en lugar de zh-CN/zh-SG/zh-MY y zh-TW/zh-HK/zh-MO .
Cuando existe una subetiqueta de idioma específica para un idioma que podría considerarse una variedad regional, suele ser preferible utilizar la subetiqueta más específica en lugar de una combinación de idioma y región. Por ejemplo, ar-DZ ( árabe como se usa en Argelia ) puede expresarse mejor como arq para el árabe argelino hablado .
Los desacuerdos sobre la identificación de idiomas pueden extenderse al BCP 47 y a las normas básicas que lo informan. Por ejemplo, algunos hablantes de punjabi creen que la distinción de la norma ISO 639-3 entre [pan] "panjabi" y [pnb] "panjabi occidental" es espuria (es decir, creen que los dos son el mismo idioma ); que las subvariedades de la escritura árabe deberían codificarse por separado en la norma ISO 15924 (como, por ejemplo, los estilos Fraktur y gaélico de la escritura latina); y que el BCP 47 debería reflejar estos puntos de vista y/o invalidar las normas básicas con respecto a ellos.
La BCP 47 delega este tipo de juicio en las normas básicas y no intenta invalidarlas ni reemplazarlas. Las subetiquetas variantes y (teóricamente) las subetiquetas del idioma principal pueden registrarse individualmente, pero no de una manera que contradiga las normas básicas. [17]
Las subetiquetas de extensión (que no deben confundirse con las subetiquetas de idioma extendidas ) permiten agregar información adicional a una etiqueta de idioma que no necesariamente sirve para identificar un idioma. Uno de los usos de las extensiones es codificar información regional, como el calendario y la moneda.
Las subetiquetas de extensión se componen de múltiples cadenas de caracteres separadas por guiones, que comienzan con un solo carácter (distinto de x ), llamado singleton . Cada extensión se describe en su propia RFC de IETF , que identifica una Autoridad de Registro para administrar los datos de esa extensión. La IANA es responsable de asignar singletons.
Se han concedido dos prórrogas a partir de enero de 2014.
La extensión T permite que una etiqueta de idioma incluya información sobre cómo se transliteraron, transcribieron o transformaron de otro modo los datos etiquetados. Por ejemplo, la etiqueta en-t-jp podría usarse para contenido en inglés que se tradujo del japonés original. Las subcadenas adicionales podrían indicar que la traducción se realizó de manera mecánica o de acuerdo con un estándar publicado.
La extensión T se describe en el RFC 6497 informativo, publicado en febrero de 2012. [18] La autoridad de registro es el Consorcio Unicode .
La extensión U permite incorporar en las etiquetas de idioma una amplia variedad de atributos de configuración regional que se encuentran en el Repositorio de datos de configuración regional común (CLDR). Estos atributos incluyen subdivisiones de países, datos de calendario y zona horaria, orden de intercalación, moneda, sistema numérico e identificación del teclado.
Algunos ejemplos incluyen:
La extensión U se describe en el RFC 6067 informativo, publicado en diciembre de 2010. [19] La autoridad de registro es el Consorcio Unicode .