Guía Breve de Internacionalización

¿Qué es la Internacionalización?

La Web se ha convertido en la principal herramienta de difusión de información para una audiencia variada y de gran tamaño que requiere de un procesamiento de información sencillo. La información que se muestra al usuario está compuesta de partes diferentes que han de trabajar en conjunto de forma coordinada para que la información sea accesible y universal, es decir, estas partes que integran la Web han de funcionar bajo cualquier circunstancia, en cualquier país, con cualquier idioma y cultura. Por este motivo la internacionalización podría definirse como un proceso a través del cual se van a diseñar sitios Web adaptables a diferentes idiomas y regiones sin necesidad de realizar cambios en el código. La utilización de formatos y protocolos que no establezcan barreras a los diferentes idiomas, sistemas de escritura, códigos y otras convenciones locales, es esencial para hablar de internacionalización en un sitio Web.

La Internacionalización también es conocida como I18N, que es la abreviatura de Internacionalización porque hay 18 letras entre la i y la n.

¿Para qué sirve?

El W3C inicia la Actividad de Internacionalización en un intento por asegurar que estos formatos y protocolos puedan utilizarse de forma universal en todos los idiomas y en todos los sistemas de escritura.

Por lo tanto, la creación de un sitio Web internacional permite garantizar su utilización universal incluyendo todos los idiomas y culturas.

¿Cómo funciona?

Usuarios de diferentes países y con diferentes culturas necesitan servicios adaptados correctamente para procesar información usando su idioma de origen, su sistema de escritura, su sistema de medida, sus calendarios y otras reglas y convenciones culturales.

La especificación de un conjunto particular de convenciones culturales es importante para que un sitio Web procese la información que intercambia con el usuario correctamente. Hay muchas preferencias que un sitio Web debe ofrecer para que sea considerado usable y aceptable por los usuarios a nivel mundial.

Al existir un variado número de preferencias o de circunstancias culturales o de idioma, es importante utilizar identificadores basados en el idioma y lugar como referente para recoger información sobre las preferencias de los usuarios. Por ejemplo HTML usa el atributo lang para indicar el idioma de segmentos de contenido. XML utiliza el atributo xml:lang con el mismo objetivo.

La utilización de estos identificadores de idioma son muy importantes. Por ejemplo, es un requisito imprescindible identificar el idioma de nuestra página al inicio del documento, antes de head, de la siguiente forma:

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="es">

También es importante marcar cualquier cambio de idioma que se pueda producir a lo largo del texto en una página Web. Un ejemplo sería:

<p xml:lang="en">The quick brown fox jumps over the dog.</p>
<p xml:lang="en-GB">What colour is it?</p>
<p xml:lang="en-US">What color is it?</p>

Los idiomas se especifican a través de un código estándar, como se aprecia en los ejemplos anteriores. Primero se indica el idioma (en, inglés), y si se desea, el país (en-US, inglés de EEUU)

No hay que olvidar tampoco indicar, si incluimos un enlace a otra página, el idioma en el que esa página se va a mostrar, esta vez se indicará con hreflang

<a href="http://www.w3.org/International/questions/" hreflang="en">
  Preguntas frecuentes sobre Internacionalización</a>

Otra cuestión importante en el área de Internacionalización es hacer frente a los problemas de codificación en documentos (X)HTML. Se trata de un método para transformar una secuencia de bits en una secuencia de caracteres. Los servidores envían documentos HTML a agentes de usuario como cadenas de bits; a su vez, los agentes de usuarios los interpretan como una secuencia de caracteres. El método de conversión va desde una simple transformación hasta algoritmos y esquemas complejos. Una forma de solucionar problemas de codificación es servir todas las páginas en un conjunto de caracteres, por ejemplo UTF-8, un conjunto de longitud variable que utiliza grupos de bits para representar el estándar Unicode para el alfabeto de varios idiomas. UTF-8 puede representar los caracteres de una amplia variedad de idiomas. Los navegadores envían de vuelta los datos en el mismo codificado que la página que contiene la información.

Es muy importante que el conjunto de caracteres de cualquier documento XML o (X)HTML esté claramente etiquetado. Esto puede hacerse de la siguiente manera:

Utilizar el parámetro charset, en la cabecera Content-Type de HTTP, de la siguiente manera:

Content-Type: text/html; charset=UTF-8

Para documentos XML, es importante utilizar el seudo atributo de codificación en la declaración de XML al principio del documento o la declaración de texto al principio de una entidad. Un ejemplo sería:

<?xml version="1.0" encoding="UTF-8" ?>

Para XHTML, hay que usar la etiqueta <meta> dentro de <head>, de la siguiente forma:

<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />

En un principio la Actividad de Internacionalización promovió el uso de Unicode/ISO 10646 para identificar y describir caracteres. Unicode se ha usado de forma generalizada ya que asegura que los datos puedan ser manejados uniformemente y de forma que puedan ser mostrados y, en definitiva, manipulados sin miedo a alteraciones.

En resumen, a la hora de diseñar un sitio Web es importante la codificación de datos, para que la Web trabaje internacionalmente y especificar el idioma del contenido con el objetivo de asegurar la adecuación cultural de formatos de datos y otros aspectos.

Ejemplos

En el primer ejemplo, es posible ver el lema del W3C en diferentes idiomas; se ha indicado correctamente el conjunto de caracteres adecuado al principio del documento de la siguiente forma:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" 
  "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="es">
  <head>
    <meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
    .
    .
    .
  </head>
  <body>
    .
    .
    .
 </body>
</html>

También se han indicado los cambios en el idioma a lo largo del texto:

<p xml:lang="en">Leading the Web to its Full Potential...</p>

En el segundo ejemplo no se ha especificado el conjunto de caracteres correcto. El resultado es una incorrecta representación de los caracteres.

Más información sobre Internacionalización

Página principal de Internacionalización
Toda la información sobre Internacionalización.
Comenzando con Internacionalización
Recurso que constituye un punto de partida muy útil para aquellos que acaban de comenzar con la internacionalización y necesitan una guía sobre aspectos a tener en cuenta y formas de encontrar material en el sitio Web.
Conceptos básicos
Esta sección muestra artículos de interés general, definiendo terminología clave como es por ejemplo la distinción entre localización e internacionalización.
Preguntas frecuentes sobre Internacionalización
Serie de pequeños artículos que responden a dudas frecuentes sobre internacionalización.
Temas de Internacionalización
Índice sobre internacionalización dividido por temática.
Codificación de caracteres
Toda la información sobre la codificación de caracteres en los documentos.
Establecimiento de las preferencias de idioma en un navegador. También disponible una versión en español
Instrucciones para comprobar o cambiar la configuración de idioma del navegador.
Identificadores de Recursos Internacionales ( IRIs).
Breve introducción sobre los Identificadores de Recursos Internacionales.