Polyglot: WordPress multilenguaje
Debemos admitir que el lenguaje de Internet es el inglés. Si queremos que un artÃculo o un comentario de nuestros blogs pueda ser leÃdo por la mayor cantidad posible de personas, independientemente de cual sea su idioma nativo, debemos escribir en inglés. Mi interés por hacer de “Mi aldea” un sitio bilingüe se remonta a mis inicios en la blogosfera. Afortunadamente para mÃ, mi amigo Gustavo también estaba interesado en este tema, asà que pusimos manos a la obra juntos (y yo pude capitalizar la experiencia que él tiene con PHP
). Luego de probar varios plugins de WordPress para internacionalización nos decidimos por Polyglot que hace lo que se necesita sin incomodar a quien lo use.
Como usarlo
La instalación es demasiado sencilla, simplemente se descarga el archivo desde su sitio y se descomprime en el directorio wp-content/plugins de WordPress. Seguidamente se debe activar el plugin y estamos en condiciones (o casi) de agregar entradas en tantos idiomas como queramos. En realidad antes de poder hacerlo debemos cambiar su configuración para reflejar el ambiente que tenemos en nustro sitio y agregar la función que permita cambiar entre idiomas en las plantillas de nuestros temas. Gustavo escribió instrucciones mas detalladas al respecto en su blog. Lo interesante de Polyglot es que puede funcionar como filtro tanto para las entradas en sà como para los comentarios y tÃtulos. Para usarlo basta con envolver lo que queramos poner en un determinado idioma entre marcas de lenguaje que usan identificadores ISO como parte de la marca. Por ejemplo, si quisiéramos texto en español (identificador ISO “es”) y texto en inglés (identificador ISO “en”) en una misma entrada escribirÃamos:
< lang_es >Texto en español< /lang_es >
< lang_en >Text in English< /lang_en >
Nota: Los espacios en blanco dentro de las marcas de lenguaje del ejemplo no deben usarse, fueron agregados para que Polyglot las ignore.
En el caso de los tÃtulos también se pueden usar marcas de lenguaje. Para los comentarios se usan las mismas marcas pero entre paréntesis rectos.
Otros ajustes
Una vez que Polyglot está funcionando es muy probable que se deban realizar otros ajustes para poder dejar mas prolijo el sitio. Estos ajustes pueden requerir editar los archivos del template, de Polyglot o incluso de otros plugins. Esto es necesario porque no siempre se usan las interfaces de programa o las llamadas a la funciones que permiten una fácil internacionalización ( __() y _e() ). Algunos de los cambios que hice:
Texto del menú de selección de lenguage:
Quise usar un texto mas descriptivo que solo el nombre del lenguaje en el menú de selección del mismo. Para lograr esto se debe cambiar el archivo wp-content/plugins/polyglot.php cerca del principio donde se definen variables de configuración:
$polyglot_settings['trans']['en'] = 'Also available in English.';
$polyglot_settings['trans']['es'] = 'También disponible en español.';
Lista de lenguajes:
En su configuración por omisión Polyglot usa una lista no ordenada para mostrar los diferentes lenguajes disponibles para una entrada. Yo querÃa incluir la selección de lenguaje en el bloque de metainformación de la entrada por lo que fue necesario quitar la lista. Para esto hice la llamada con parámetros vacÃos en los archivos de la plantilla del tema.
< ?php if(function_exists('lp_other_langs')) { lp_other_langs(' ','', '', '', ''); }?>
Bandera y texto:
Las entradas de la lista de lenguajes disponibles para un artÃculo consisten o bien de una bandera o bien del texto descriptivo. Queda mas prolijo y claro si se usan ambos elementos, máxime si ya cambiamos dicho texto.
function polyglot_other_langs(...
...
$foo = ($polyglot_settings['use_flags'] ) ? " ".get_trans($lang) : get_trans($lang);
...
Botones para el editor:
Ya que vamos a estar abriendo y cerrando muchas marcas y en mas de un lenguage, ¿no serÃa interesante contar con botones del editor que nos ayuden a hacerlo? El archivo que se necesita editar para esto es el wp-includes/js/quicktags.js. Cada entrada consiste de un nombre, una etiqueta para el boton, una marca de apertura, una marca de cierre, una tecla asociada y si la entrada queda abierta o no. Las marcas son las que ya vimos y para la etiqueta yo usé los códigos ISO. La tecla asociada se usa en conjunto con “Alt” para el mismo efecto.
edButtons[edButtons.length] = new edButton('ed_es','es','< lang_es >','< /lang_es >','e');
edButtons[edButtons.length] = new edButton('ed_en','en','< lang_en >','< /lang_en >','n');
Hay muchas mas cosas para comentar y ajustes para hacer. Sigan en sintonÃa..



Is there a way to make a drop down list with available languages. When selection is made the correct language loads?