Fundación Sidar.
IX Jornadas SIDAR
MÓDULO 5: DISEÑO LÍQUIDO, DISEÑO PARA TODOS

LA INTERNACIONALIZACIÓN EN EL DISEÑO WEB

Fotografía de Claudio Segovia
Claudio Segovia
Miembro del Grupo de expertos de SIDAR
Co-coordinador del Grupo de Interés G1 de SIDAR
Director del Departamento de Informática Accesible de la Fundación Turismo para Todos (Argentina)
Datos de contacto:
claudiosegovia@sidar.org
csegovia@turismoparatodos.org.ar
Web: Sidar.org (http://www.sidar.org)
Albergue de náufragos (http://www.inclusiondigital.net/albergue)

Introducción

Vivimos inmersos en esto llamado Globalización, intentando aprovechar sus beneficios y sufriendo sus consecuencias.

La Web, desde sus inicios, tiene un carácter internacional, por lo que en el transcurso del diseño de un sitio web encontramos una de esas consecuencias, que es la forma en que debemos manejarnos ante las diversas posibles lenguas que hablen los distintos usuarios de dicho sitio.

¿Cómo diseñar teniendo en cuenta diversas lenguas?

Iniciativa de Accesibilidad a la Web (WAI)

“Proporcionar información de manera que los usuarios puedan recibir los documentos según sus preferencias.”

(Pautas de Accesibilidad del Contenido en la Web, versión 1.0, punto 11.3)

¿Cómo hacer esto?

Negociación de contenidos (uso de HTTP)

¿Cómo funciona esto?

Despliegue de caracteres

Dirección del texto

Conviene recordar que existen lenguas que se leen de derecha a izquierda:

¿Cómo trabajar con ellas?

1) Declarar Unicode para la página:

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

2) Si no todo el texto está escrito en una lengua, declarar el cambio de dirección cuando se produce en el código:

<p>Texto en español <span dir="rtl" lang="ar" xml:lang="ar">مفتاح معايير الويب</span> texto en español.</p>

3)También podemos agregar una traducción para el caso que algún usuario use un navegador que admita la opción title:

<p>Estos países son Barhein, <span dir="rtl" lang="ar" xml:lang="ar" title="Significa: 'Egipto'">مصر</span> y Kuwuait.</p>

Formatos de fechas

El carácter internacional de Internet hace que nos encontremos con diversas formas de representar las fechas, además de los calendarios no gregorianos:

También está el caso de los que separan las cifras con guiones o puntos.

¿Cómo atender a las necesidades de tal variedad de usuarios?

Usar un formato local neutro

La norma ISO 8601 especifica que las fechas se deben mostrar en el formato AAAA-MM-DD.

Explicitar los meses y años hasta la obviedad

Usar nombres para los meses (abreviados o no) y 4 dígitos para los años.

Usar la cabecera de HTTP Accept-Language

La cabecera HTTP Accept-Language, tal como comentamos antes, especifica las preferencias de la lengua del usuario, pero también es usada para determinar preferencias locales.

En la página http://www.w3.org/International/questions/qa-date-format encontraremos la forma de configurar esta cabecera en Java/JSP, ASP y Perl.

Preferencias del navegador

Cuando un navegador pide un documento a un servidor, le informa sobre las preferencias de idioma a través de la cabecera HTTP Accept-Language. Si el servidor tiene varias versiones de una página en distintos idiomas, esta información puede usarse para recuperar la página en el idioma preferido, siempre que exista. Si hay una única versión de dicha página en ese servidor, esa es la que se recuperará.

La mayoría de los navegadores permiten cambiar las preferencias del idioma, cuyo valor es definido por las normas ISO 639- 1 e ISO 639-2 (basadas a su vez en RFC 3066), que le brinda un código de dos o tres letras a cada idioma, seguido por un subcódigo opcional de dos letras por país, por ejemplo:

es para Español y es-AR para el español de Argentina

Preferencias del navegador (continuación)

Si tenemos un navegador en nuestro idioma, la mayoría de las veces se instala con la configuración inicial deseada. Ahora, si queremos cambiar dicha configuración, en la página http://www.w3.org/International/questions/qa-lang-priorities.es.html podremos obtener información de cómo hacerlo en los navegadores más usados y, si nuestro navegador no está en la lista, podemos visitar también la página http://www.debian.org/intro/cn#mozilla.

En algunos navegadores es posible establecer más de un idioma, dándoles un orden de preferencia, como se muestra en la siguiente imagen.

Imagen de configuración de idiomas y caracteres en Internet Explorer

Dado que a veces, debido a las diversas configuraciones de los servidores web, los mismos necesiten una coincidencia exacta de la cabecera HTTP Accept-Language, se recomienda, en el caso de configurar algún idioma con el subcódigo de país, que el navegador haga la petición del mismo idioma sin ese subcódigo, para que lo pida en el caso que la primera opción falle.

Direcciones web multilinguales

Una dirección web es usada para apuntar a un recurso en la Web, como una página web. Estas direcciones se expresan a través de Identificadores Uniformes de Recursos o URIs (Uniform Resource Identifier). La sintaxis de las URIs se define en la norma RFC 3986 STD 66, la cual restringe las direcciones web a un pequeño número de caracteres:

Esto se debe a que el ámbito en el que la Web comenzó a desarrollarse era el angloparlante. Pero al poco tiempo se vio que este ámbito se ampliaba a pasos agigantados haciendo necesario el tener que usar caracteres de cualquier lenguaje en la direcciones web. Una dirección web en nuestra propia lengua es fácil de crear, recordar, transcribir, interpretar y relacionar. Y esto nos lleva a mejores negocios, mejorar las búsquedas y las comunicaciones. En resúmen, mejora la Web.

Direcciones web multilinguales (Continuación)

Para lograr esto existe algo llamado Identificador Recursos Internacionalizado o IRIs (Internationalized Resource Identifier) que necesita los siguientes requerimientos:

Actualmente varios formatos soportan IRI, como HTML 4.0, identificadores de sistema de XML 1.0, el atributo href de XLink, cualquier tipo de datos de URIs del Schema de XML, etc. Desafortunadamente, no muchos protocolos soportan IRI. Así, es posible encontrar una dirección como la que sigue:

http://JP納豆.例.jp

En donde la declaración del protocolo (http://) debe estar en caracteres ASCII, mientras que el dominio es una mezcla de caracteres ASCII con japoneses. Aquí nuevamente Unicode aparece, transformando la dirección web en caracteres ASCII de la siguiente forma:

http://xn--jp-cd2fp15c.xn--fsq.jp

Para luego poder resolver dicha dirección en una dirección IP numérica.

Varias autoridades de nombres de dominios (.cn, .jp, .kr, etc.) ofrecen este tipo de internacionalización. Navegadores como Mozilla 1.4, Netscape 7.1 y Opera 7.2 aceptan este tipo de dominios. Internet Explorer lo permite descargando un plug-in.

Ruby

Es un tipo particular de anotación que provee de transcripción fonética de caracteres que el lector puede no comprender. Es ampliamente usado en materiales de educación y textos de niños escritos en lenguas del este asiático. También es usado en textos para estudiantes occidentales que desean aprender lenguas orientales por su pronunciación.

Tomemos como ejemplo la línea de la fecha de hoy aparecida en la diapositiva 9. La misma línea, con Ruby indicando la pronunciación sería:

2005èr líng líng wûnián11shíyîyuè8

El código es el siguiente:

<p>
<ruby>
<rb>2005</rb>
<rt>&egrave;r l&iacute;ng l&iacute;ng w&ucirc;</rt>
</ruby>
<ruby>
<rb>年</rb>
<rt>ni&aacute;n</rt>
</ruby>
<ruby>
<rb>11</rb>
<rt>sh&iacute;y&icirc;</rt>
</ruby>
<ruby>
<rb>月</rb>
<rt>yu&egrave;</rt>
</ruby>
<ruby>
<rb>8</rb>
<rt>b&atilde;</rt>
</ruby>
<ruby>
<rb>日</rb>
<rt>r&igrave;</rt>
</ruby>
</p
>

Codificación de lenguas: Normas

Codificación de lenguas: ¿Cómo hacerlo?

En HTML:

Si todo el texto de la página está escrito, por ejemplo, en guaraní, agregaremos en la etiqueta <html> lo siguiente:

<html lang="gu">

Donde gu es el código correspondiente al guaraní.

En el caso que insertemos en un texto de un idioma una palabra o frase de otro, deberemos agregar el atributo lang en la etiqueta span, por ejemplo:

<p>En mapuche, gente o pueblo se dice <span lang="arn">che</span>.</p>

En XML:

Usaremos la etiqueta xml:lang de la siguiente forma:

<p>En mapuche, gente o pueblo se dice <span xml:lang="arn">che</span>.</p>

Borrador de norma ISO 639-3:

Como esta norma aún no se ha convertido en un estándar, y aprovechando una opción que la norma RFC 3066 ofrece para lenguas no estandarizadas, en HTML y XHTML se deberá escribir de la siguiente forma:

<html lang="x-sil-xxx">

Y en XML deberá usarse:

xml:lang="x-sil-xxx"

Donde xxx es el código de tres letras brindado por ISO 639-3. Así, si queremos definir un texto escrito en Aoniken o Tehuelche, los respectivos códigos serían:

<html lang="x-sil-teh">

Y...

xml:lang="x-sil-teh"

Codificación de lenguas: Listado de lenguas iberoamericanas

http://www.inclusiondigital.net/albergue/acc/idioma.html

Eskerrik Asko

Muchas gracias