La blogosfera española está triste. ¿Qué tendrá la blogosfera? El idioma es un accidente del destino, la traducción automática está por todas partes y la importancia relativa de la lengua del creador de contenidos disminuye cada día. Ahora bien, verter información de una lengua a otra puede ser aún una tarea que requiera de cerebros humanos, como vimos en la anterior entrada.
Para asistir en esa tarea, he preparado un widget de Blogger que permite escribir entradas en más de un idioma. Funciona como una negociación de contenido en servidor, pero en el lado del cliente. Además, usa esas técnicas de manipulación DOM que tan en boga están con la Web 2.0.
Un poquito acerca de su uso:
- Primero, tienes que añadir el widget a tu bitácora. Puedes usar el botón que aparece junto al combo de selección de idioma. Si no estás en Blogger, bájate el script langsupport.js, y despliégalo en tu ubicación favorita (puede ir incluido en tu plantilla o en el código HTML de la página que lo use con una marca <script>, es pequeño, y más aún si lo pasas por JS Minifier). Al menos tendrás que eliminar la línea marcada como Only needed when code is running inside a Blogger widget para que funcione fuera de Blogger sin problemas.
- Si estás fuera de Blogger, tendrás que añadir también un “ancla” para que el código Javascript sepa dónde colocar el combo selector de idiomas. Eso tiene esta pinta:
<span id="__langSupport__"></span>
- Denota tu contenido con marcas HTML que usen el atributo lang, usando nombres de idioma según el estándar ISO 639-1 (en teoría podrías poner cualquier cosa, pero entonces la funcionalidad de idioma por defecto se vería afectada). Por ejemplo:
<p lang="en">This paragraph is in English.</p> <p lang="es">Este párrafo está en español.</p>
- ¡Disfruta!
Algunas notas importantes:
- Aquellos elementos HTML que no estén marcados (los que no tengan atributo lang) no serán modificados.
- Cualquier marca que lleve un idioma que no esté seleccionado ocultará todos sus contenidos, incluso si otra marca anidada lleva el idioma actual. Para evitar problemas, no anides marcas con diferentes valores del atributo lang.
- Si no hay atributos lang en todo el documento, el selector de idioma no aparecerá.
- El primer idioma seleccionado depende del idioma por defecto del sistema operativo. Si no hay contenido para ese idioma en la página, se selecciona un idioma por defecto (el inglés). Si no hay contenido en inglés, se muestra el contenido del primer idioma disponible, en orden alfabético.
- Desafortunadamente, la configuración de idioma preferido por el navegador no está disponible para Javascript (sólo se usa en la negociación de contenidos con servidores que dispongan de esa posibilidad). El idioma por defecto es el del sistema operativo.
- He probado esto en Firefox 2. Si también funciona en IE, pues vale.