Selección de una etiqueta de idioma

Audiencia de destino: Los codificadores de XHTML/HTML (que emplean editores o lenguaje de script), los desarrolladores script (PHP, JSP, etc.), los codificadores CSS, los desarrolladores de esquemas (DTD, XML Schema, RelaxNG, etc.), los desarrolladores XSLT, los jefes de proyectos web, y todo aquel que necesite ayuda acerca de cómo construir etiquetas de idioma.

Traducción actualizada el:

Pregunta

¿Cuál es la etiqueta de idioma correcta para mí? ¿Cómo selecciono una subetiqueta de idioma y otros tipos de subetiquetas?

Información preliminar

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.

BCP significa "Best Current Practice" (Mejor práctica actual), y es un nombre persistente para una serie de RFCcuyos números cambian cuando se actualizan. La última RFC que describe la sintaxis de una etiqueta de idioma es RFC 5646, Etiquetas para la identificación de idiomas, que reemplaza a las RFC anteriores 4646 3066 y 1766.

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.

Addison Phillips y Mark Davis, los autores de la BCP 47, brindaron orientación para la redacción de este artículo.

Respuesta

Cómo ingresar en el registro de subetiquetas

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.

Las notas incluidas en esta página brindan suficiente orientación para la mayoría de las personas que desean usar etiquetas de idiomas. Hay enlaces a las secciones pertinentes de la BCP 47 en este margen para las personas que deseen leer el texto completo de la especificación.

Asimismo, tenga en cuenta que es posible que algunos entornos o sistemas exijan opciones distintas de las que usted de otro modo esperaría. Por ejemplo, en Java, debe usar iw (desaprobado en BCP47) en lugar de he (recomendado en BCP47).

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.

Decisión 1: la subetiqueta de idioma primaria

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:

2.2.1 Subetiqueta de idioma primaria

4.1 Selección de una etiqueta de idioma

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.

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.

Decisión 2: subetiquetas de idioma extendidas

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).

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:

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.

Decisión 3: subetiquetas de sistema de escritura

Ú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).

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.

Decisión 4: subetiquetas de región

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:

2.2.4 Subetiqueta de región

4.1 Selección de una etiqueta de idioma

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.

Decisión 5: subetiquetas de variante

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:

2.2.5 Subetiquetas de variante

4.1 Selección de una etiqueta de idioma

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.

Decisión 6: subetiquetas de extensión

Más información en la especificación BCP 47:

2.2.6 Subetiquetas de extensión

4.1 Selección de una etiqueta de idioma

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.

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.

Decisión 7: subetiquetas de uso privado

Más información en la especificación BCP 47:

2.2.7 Subetiquetas de uso privado

4.1 Selección de una etiqueta de idioma

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.

Etiquetas antiguas

Más información en la especificación BCP 47:

4.1 Selección de una etiqueta de idioma

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.