¿Cuál es la etiqueta de idioma correcta para mí? ¿Cómo selecciono una subetiqueta de idioma y otros tipos de subetiquetas?
En los documentos HTML y XML, se usa una etiqueta de idioma para indicar el idioma del contenido.
Una etiqueta de idioma se compone de una o más subetiquetas separadas por guiones. Las subetiquetas pueden ser de diversos tipos.
La sintaxis de las etiquetas de idioma se encuentra definida en la especificación desarrollada por el IETF:BCP 47. En el pasado, era necesario consultar listados de códigos en varias normas ISO para encontrar las subetiquetas correctas; sin embargo, ahora sólo basta con consultar el IANA Registro de subetiquetas de idioma. A continuación, describiremos el nuevo registro.
Este artículo brinda asesoramiento acerca de cómo seleccionar los componentes de una etiqueta de idioma. Para conocer las generalidades de los conceptos definidos en la BCP 47, consulte Etiquetas de idiomas en HTML y XML.
Todas las subetiquetas que necesitará para crear una etiqueta de idioma se encuentran en un solo lugar, el Registro de subetiquetas de idioma de la IANA. El registro es un archivo de texto largo, que contiene cerca de 8.000 entradas.
La primera subetiqueta (y a menudo, la única) en una etiqueta de idioma siempre designa a un idioma. En la BCP 47, se la denomina subetiqueta de idioma primaria. Usaremos este término en el presente documento para designar a la subetiqueta que representa a un idioma, para distinguirla más claramente de la "etiqueta de idioma", que se refiere a la totalidad del concepto.
Para encontrar una subetiqueta de idioma primaria, busque la página para el nombre de ese idioma. Por ejemplo, si desea etiquetar algo como francés, al buscar "French" (francés) en el registro, encontrará un registro similar al siguiente:
%% Type: language Subtag: fr Description: French Added: 2005-10-16 Suppress-Script: Latn %%
Su búsqueda coincidirá con el campo Description
. Verifique que el tipo de este registro sea language
. Lo que usted está buscando es el valor en el campo Subtag
, es decir fr
.
En el resto de este artículo, encontrará ayuda para seleccionar subetiquetas de idioma primarias y, de ser necesario, otros tipos de subetiquetas. Tenga en cuenta que no todas las decisiones acerca de cómo crear una etiqueta de idioma son sencillas. Hay casos en los que el uso indicará cuál de las distintas posibilidades deberá seguir.
Existen herramientas disponibles para obtener más ayuda durante las búsquedas en el registro, como la herramienta Búsqueda de subetiquetas de idioma.
Tenga en cuenta las mayúsculas y minúsculas. Por convención, las subetiquetas de idioma primarias van en minúscula, las subetiquetas de sistemas de escritura comienzan con mayúscula y continúan en minúscula, y las subetiquetas de regiones van en mayúscula. Esto es sólo una convención; sin embargo, usted tiene la opción de usar mayúsculas o minúsculas, según prefiera.
Por otra parte, es posible que use etiquetas de idioma en un contexto en el que usar mayúscula o minúscula sea importante, como en los nombres de archivos de algunos sistemas. En tales casos, debe asegurarse de seguir una política coherente para el uso de mayúsculas y minúsculas; para cualquier sistema nuevo que no distinga entre mayúsculas y minúsculas, se recomienda seguir las convenciones de la BCP 47.
Empiece siempre por seleccionar una subetiqueta de idioma primaria, y a menudo, esto será todo lo que necesitará para su etiqueta de idioma.
Más información en la especificación BCP 47:
Tenga presente en todo momento que la regla de oro es mantener su etiqueta de idioma lo más corta posible. Sólo agregue más subetiquetas a su etiqueta de idioma si son necesarias para distinguir el idioma de algún otro elemento en el contexto en el que se usa su contenido.
Cuando se busca una subetiqueta de idioma primaria, hay que tener en cuenta varias cosas.
Puede obtener información de los idiomas en el Etnólogo de SIL y verificar esa información en Wikipedia. El Etnólogo usa los mismos códigos de tres letras que la BCP47, pero usted deberá convertir los códigos de 2 letras de la BCP47 a sus equivalentes de ISO 639-3 para buscar un idioma por código. ((puede hacer esto con la herramienta Búsqueda de subetiquetas de idioma.)
Hay una pequeña cantidad de casos que tienen distintos códigos de idioma para lo que muchas personas consideran un mismo idioma, p. ej., filipino y tagalo, o twi y acano. No hay ninguna indicación en el registro acerca de cuál debe utilizar, pero debe intentar asegurarse de ser coherente en una misma aplicación o contexto.
Scope: collection
, esta subetiqueta representa a un grupo de idiomas que derivan de un mismo ancestro, se hablan en la misma zona geográfica o que están de algún modo relacionados.
Debe buscar una subetiqueta más específica para el idioma que le interesa. Desafortunadamente, el registro de subetiquetas no incluye ningún puntero para esto.
Puede usar estas subetiquetas si no hay una subetiqueta más específica disponible, y siempre es preferible usar una de ellas en lugar de las subetiquetas MUL
(múltiples idiomas) o UND
(no definido).
Scope
configurado para un macrolanguage
, es decir, esta subetiqueta de idioma primaria abarca una serie de subetiquetas de idiomas primarias más específicas en el registro.
Por ejemplo, ku
(kurdo) es un macroidioma que abarca ckb
(kurdo central), kmr
(kurdo del norte), y sdh
(kurdo del sur).
Puede encontrar las subetiquetas más específicas (es decir, las abarcadas) buscando en el registro Macrolanguage: <subtag_name>
Como alternativa, la herramienta Búsqueda de subetiquetas de idioma las incluirá automáticamente en un listado para un determinado macroidioma (ejemplo).
Tal como recomendamos para las subetiquetas de agrupamientos mencionadas anteriormente, en la mayoría de los casos, deberá intentar usar las subetiquetas más específicas, aunque hay unas pocas excepciones importantes. Estos son los casos en los que deberá continuar usando una subetiqueta de macroidioma para la compatibilidad con las versiones anteriores.
Por ejemplo, si bien la BCP 47 explica que zh
(la subetiqueta del macroidioma para el chino) no especifica en realidad para cuál de los tantos dialectos del chino, que a veces son incomprensibles entre sí, hace referencia en realidad esta subetiqueta, en la práctica, la convención asocia sorprendentemente la subetiqueta del macroidioma con el idioma predominante entre las subetiquetas abarcadas, en este caso, cmn
(chino mandarín). Si su aplicación identificó al chino mandarín anteriormente con la etiqueta de idioma zh-CN
(el chino que se usa en China Continental), o incluso sólo zh
, podrá continuar usando zh
de esta forma. Si usa cmn
o cmn-CN
, esto puede provocar graves problemas de compatibilidad si el software o los usuarios esperan encontrar una etiqueta como zh
.
Si, de lo contrario, está usando zh
para referirse a otro dialecto del chino, como hakka, deberá usar la subetiqueta de idioma hak
en su lugar.
Deprecated
no deberá usar esta subetiqueta. Generalmente, el registro indicará qué alternativa deberá usar en el campo Preferred-Value
. Por ejemplo, el registro de subetiquetas para iw
(hebreo) contiene los dos campos siguientes:
Deprecated: 1989-01-01 Preferred-Value: he
Esto indica que debe usar la subetiqueta he
para hebreo en su lugar.
Anteriormente, al trabajar con listados de códigos ISO, en ocasiones, había varios códigos para un determinado idioma: podía haber un código de 2 letras, y uno o dos códigos de 3 letras. Esta ambigüedad se resolvió en el Registro de subetiquetas de la IANA: se enumera sólo un código por idioma. (Si existe un código ISO de 2 letras, ese será el código, de lo contrario será un código de tres letras.) El encargado de mantener el registro también coordina la evolución constante del registro con los desarrollos en el mundo ISO.
La especificación BCP 47 permite una subetiqueta de 3 letras adicional inmediatamente después de la subetiqueta de idioma primaria inicial. Esto se denomina una subetiqueta de idioma extendida (abreviada como extlang). Únicamente se define una cantidad relativamente pequeña de subetiquetas de idioma extendidas, y cada una debe usarse con una subetiqueta de idioma primaria específica (proporcionada en el campo Prefix
de la entrada para la subetiqueta de idioma extendida en el registro).
Más información en la especificación BCP 47:
2.2.2 Subetiquetas de idioma extendidas
Actualmente, sólo pueden usarse siete subetiquetas de idioma primarias con subetiquetas de idioma extendidas. Seis de ellas tienen un campo Scope
configurado para un macrolanguage
en el registro (ar
, kok
, ms
, sw
, uz
y zh
), y el otro es sgn
.
Tenga en cuenta lo siguiente:
En la medida de lo posible, use una sola subetiqueta de idioma en lugar del par idioma +extlang. Siempre hay una subetiqueta de 3 letras equivalente a cualquier par idioma+extlang, y siempre coincide con la subetiqueta extlang. Por ejemplo, zh-yue
(chino cantonés) también puede expresarse con la única subetiqueta yue
.
La única excepción importante es cuando la secuencia idioma+extlang es la práctica establecida para el sistema con el que está trabajando; es decir, cuando se prefiere zh-yue
, en lugar de yue
para mantener la compatibilidad con las versiones anteriores.
ar
(la subetiqueta del macroidioma árabe) puede ser más apropiada para el árabe estándar que arb
(la subetiqueta abarcada más específica, que significa árabe estándar).
De modo similar, cuando se trata del idioma predominante del conjunto, generalmente es mejor para la compatibilidad con las versiones anteriores si reemplaza la secuencia idioma+extlang simplemente eliminando extlang, en lugar de usar el código extlang como subetiqueta de idioma primaria. Por ejemplo, reducir ms-zsm
a ms
(subetiqueta del macroidioma malayo) en ocasiones puede ser mejor que reemplazarla por zsm
(malayo estándar).
Como ejemplo del uso, la base de datos CLDR de Unicode usa macroidiomas zh
para representar al chino mandarín y ku
para representar al kurdo. Por lo tanto, para el chino mandarín, se usaría zh
, en lugar de cmn
, y para el kurdo del norte ku-Latn
, en lugar de kmr-Latn
. Sin embargo, la base de datos CLDR, no usa subetiquetas de idioma extendidas, por lo que sería necesario usar yue
para cantonés, en lugar de zh-yue
.
Únicamente se deben usar las subetiquetas de sistema de escritura como parte de una etiqueta de idioma cuando el sistema de escritura agrega a la etiqueta cierta información útil para distinguirla. Por lo general, esto se debe a que un idioma se escribe en más de un sistema de escritura o a que el contenido se ha transcrito a un sistema de escritura que es inusual para el idioma (de este modo, se puede etiquetar al ruso trascrito a un sistema de escritura latino con una etiqueta como ru-Latn
).
Más información en la especificación BCP 47:
Las subetiquetas de sistema de escritura siempre tienen 4 letras, y deben colocarse después de cualquier subetiqueta de idioma o de idioma extendida, pero antes de cualquier otra subetiqueta.
A continuación, se incluye lo que se debe tener en cuenta al seleccionar una subetiqueta de sistema de escritura.
uz-Arab
, pero la subetiqueta del sistema de escritura Arab
no sería relevante para una pista de audio.
La subetiqueta del sistema de escritura Zxxx
podría usarse para contenido no escrito, p. ej., uz-Zxxx
, ya que Zxxx
es el Code for unwritten documents
, pero una vez más, esto únicamente es útil si es necesario dejar en claro tal distinción.
Suppress-script
configurado para una determinada subetiqueta de sistema de escritura. Por ejemplo, la entrada en el registro para en (inglés) contiene:
Suppress-Script: Latn
que indica que no se debe usar la subetiqueta del sistema de escritura Latn
(latino) con este idioma.
Esto se debe a que prácticamente todos los documentos en inglés se escriben con el sistema de escritura latino y no agrega ninguna información para establecer una distinción. Sin embargo, si un documento estuviera escrito en inglés combinando el sistema de escritura latino con otro sistema de escritura, como el Braille (Brai
), entonces, sería conveniente indicar ambos sistemas de escritura para ayudar en la selección de contenido (p. ej., para la aplicación de reglas de estilo).
No obstante, tenga en cuenta que no todas las subetiquetas de idioma que están fuertemente asociadas con un determinado sistema de escritura tienen campos de supresión de sistemas de escritura. No debe suponer que necesita usar un sistema de escritura si está ausente un campo de supresión de sistema de escritura.
Las subetiquetas de región asocian la subetiqueta de idioma seleccionada con una región del mundo en particular. Las subetiquetas de región deben colocarse después de cualquier subetiqueta de idioma o de sistema de escritura.
Al igual que con las subetiquetas de sistemas de escritura, únicamente se debe usar una subetiqueta de región si aporta información necesaria en un contexto en particular para distinguir a esta etiqueta de idioma de otra; de lo contrario, no conviene usarlas.
Más información en la especificación BCP 47:
Por ejemplo, en-GB
puede ser una distinción útil para la corrección ortográfica, aunque es muy poco probable que la subetiqueta de región en ja-JP
sea útil, a menos que se la contraste intencionalmente con el japonés hablado en otras partes del mundo.
Existen dos tipos de subetiqueta de región: códigos de 2 letras y códigos de 3 dígitos. Este último tiende a identificar regiones multinacionales, en lugar de países específicos. Por ejemplo, es-ES
se refiere al español hablado en España, en tanto que es-419
se refiere al español hablado en América Latina.
Evite las subetiquetas desaprobadas. Verifique que la subetiqueta que pretende usar no esté desaprobada. Al igual que para otros tipos de subetiqueta, el registro habitualmente informará cuál debe ser el reemplazo mediante el campo de Preferred-Value
.
En algunos casos, no hay un campo de Preferred-Value
en un registro desaprobado, aunque en ocasiones, el campo Comments
brinda asesoramiento. Por ejemplo, para YU
(Yugoslavia) encontrará:
Deprecated: 2003-07-23 Comments: see BA, HR, ME, MK, RS, or SI
Una vez más, use únicamente las subetiquetas de variante cuando sea necesario establecer una distinción entre esta etiqueta de idioma y otra similar en el contexto en el que se use su contenido.
Más información en la especificación BCP 47:
Las subetiquetas de variante describen distinciones adicionales no captadas por las demás subetiquetas. Por lo general, se trata de dialectos, variaciones escritas (tales como reformas ortográficas), transcripciones y otras del tipo. Una subetiqueta de variante habitualmente tiene entre cinco y ocho caracteres, y puede incluir letras y/o dígitos. También están registradas algunas subetiquetas de cuatro dígitos (que generalmente representan un año). Las subetiquetas de variante deben colocarse después de cualquier subetiqueta de idioma, sistema de escritura y región.
Lo fundamental que se debe tener en cuenta al usar subetiquetas de variante es el orden en el que se las usa.
Verifique el contexto y el orden de las subetiquetas de variante. La mayoría de las entradas de subetiquetas de variante incluidas en el registro tienen uno o más campos de Prefix
. Los prefijos indican con qué subetiquetas conviene generalmente usar esta variante. Por ejemplo, pinyin
debe generalmente usarse en una etiqueta de idioma que también incluya, ya sea las subetiquetas zh
y Latn
, o bien, las subetiquetas bo
y Latn
, dado que la entrada para pinyin
incluye lo siguiente:
Prefix: zh-Latn Prefix: bo-Latn
Si tiene un buen motivo, puede usar una subetiqueta de variante con distintas subetiquetas, p. ej., cmn-Latn-pinyin
sería una forma perfectamente válida para indicar chino mandarín escrito con pinyin.
Si bien zh
, bo
y Latn
están especificados, este es un requisito mínimo. También es posible incluir otras subetiquetas, como una subetiqueta de región, en la subetiqueta de idioma (cuando corresponda), p. ej., zh-Latn-CN-pinyin
.
Entre otros campos de prefijo, la entrada para la subetiqueta de variante 1994
incluye
Prefix: sl-rozaj-biske
que indica que debe usarse en una etiqueta de idioma que ya incluya otras dos subetiquetas de variante, rozaj
y biske
. Cualquier subetiqueta de variante especificada en un campo de prefijo debe aparecer antes de la variante que acaba de buscar.
Existen algunas subetiquetas de variante que no tienen campo de prefijo, p. ej., fonipa
(Alfabeto Fonético Internacional). Tales variantes deben aparecer después de cualquier otra subetiqueta de variante con información de prefijo.
Si tiene pensado usar más de una variante sin un prefijo, colóquelas por orden decreciente de importancia. Si tienen el mismo grado de importancia, ordénelas alfabéticamente. Esto contribuirá a la interoperabilidad.
Más información en la especificación BCP 47:
Las subetiquetas de un solo caracter permiten incorporar extensiones a la etiqueta de idioma. A la fecha, sólo se ha registrado una subetiqueta de extensión. La subetiqueta u
fue registrada por el Consorcio Unicode para agregar información sobre el idioma o el comportamiento local. Muchos identificadores locales requieren más "adaptaciones" u opciones para los valores específicos dentro de un idioma, cultura, región u otra clase de variación. Esta extensión brinda un mecanismo para el uso de dichas adaptaciones dentro de las etiquetas de idioma en el intercambio general.
Por ejemplo, a continuación se indica que una aplicación debe utilizar el orden de colación del directorio telefónico, que la información ordenada en un documento se ordene según esta colación, y así sucesivamente.
de-DE-u-co-phonebk
La extensión u-
se define en la RFC 6067, la cual se refiere al Repositorio de datos locales comunes del consorcio Unicode (Consortium's Common Locale Data Repository, CLDR) en caso de detalles sobre las subetiquetas que le siguen. BCP 47 no la define.
Más información en la especificación BCP 47:
Las subetiquetas de uso privado no aparecen en el registro de subetiquetas, y son seleccionadas y conservadas mediante acuerdo privado entre las partes que las usan. Son introducidas por una subetiqueta de una sola letra, o 'singleton'. El singleton para uso privado es x
. Tenga en cuenta que cualquier subetiqueta colocada después del singleton únicamente puede tener 8 caracteres, aunque pueden usarse múltiples subetiquetas.
Las subetiquetas de uso privado deben usarse con sumo cuidado, y evitarse siempre que sea posible, dado que interfieren en la interoperabilidad que intenta promover la BCP 47.
Como ejemplo de una subetiqueta de uso privado, en-US-x-twain
, puede identificar un tipo específico de inglés de Estados Unidos, pero únicamente dentro de una comunidad cerrada. Fuera del acuerdo privado, no se debe confiar en su significado.
Más información en la especificación BCP 47:
Las etiquetas antiguas son casos especiales, provistos para cuestiones de retrocompatibilidad. Se trata de etiquetas que fueron registradas antes de la RFC 4646 que no pueden estar compuestas en su totalidad por las subetiquetas que figuran en el registro actual, o que no concuerdan con la sintaxis definida actualmente para las etiquetas de idioma.
Prácticamente todas las etiquetas antiguas han sido reemplazadas por subetiquetas o combinaciones de subetiquetas en el registro. Estas etiquetas antiguas ahora están desaprobadas, y generalmente incluyen un campo de Preferred-Value
que indica cómo debe representar ese idioma de otro modo. Por ejemplo, la entrada en el registro para la etiqueta antigua art-lojban
indica que debe usar la subetiqueta de idioma jbo
en su lugar.
Tenga en cuenta que no debe usar subetiquetas adicionales con una subetiqueta antigua.
¿Cómo comenzar? Idioma en la Web
Enlaces relacionados, Autoría de HTML y & CSS
Enlaces relacionados, Autoría de XML
Enlaces relacionados, Autoría de SVG