viernes, 19 de febrero de 2010

Modificar idiomas en wordpress u otras plataformas y temas con archivos .mo y .po

Una práctica común en los CMS de código abierto (Por ejemplo Wordpress y los temas para wordpress, MediaWiki de los creadores de wikipedia, Moodle, y otrtas aplicaciones de contenidos web) se utiliza de manera muy común que en éstas puede personalizarse el idioma en que se va a mostrar la página (el blog o lo que sea).

Ocurre también que generalmente los autores de los temas o de algunos CMS lo crean en su idioma y quedan a la espera de que la comunidad de desarrolladores arme los distintos paquetes de idioma.

Cuando utilizamos uno de estos CMS y sobre todo los themes creados por terceros, nos encontramos con que no existe en la red un paquete de idioma para el nuestro (por ej. español) y ahí es donde tenemos que empezar con los malabares.leer más->

Una opción muy utilizada es la de "canibalizar" los estilos y las paginas php que componen el template traduciendo a mano y una a una todas las opciones y leyendas del CMS. Es un laburo tedioso, repetitivo y generalmente desordenado que trae millones de dolores de cabeza.

La buena noticia es que tanto los desarrolladores de CMS como de temas están utilizando para la configuración de idiomas una biblioteca de funciones de php llamada gettext();

Esta librería usa dos archivos de idioma que generalmente se guardan en la carpeta languages de nuestro theme. Para cada idioma encontraremos dos archivos, uno con extensión .po y otro con extensión .mo.

El archivo .po es básicamente un archivo de texto que contiene todos los textos del cms y su traducción al idioma regional seleccionado.

El archivo .mo es el mismo archivo que el .po pero en formato binario y por lo tanto es imposible que lo editemos a manos (a menos que sepas escrbir con grupos de ceros y unos.

Para editar estos archivos de lenguaje se han desarrollado algunos editores que nos permiten editar de modo limpio estos archivos.

La herramienta que elegí para esta tarea es el poEdit 1.4.5. Que es gratuita, de facil instalación y que, de manera muy sencilla, muestra los textos originales del template o cms (y cualquier otra aplicación basada en php que utilice la librería gettext() y editarlos con nuestro idioma. Al guardarlo genera automáticamente el archivo .mo.

Sólo tenes que tener en cuenta respetar los nombres que utiliza la librería para detectar los paquetes de lenguaje (p/ej: es_ES español de españa, es_AR español de argentina, en_EN ingles británico, etc.). Para esto te recomiendo consultar la documentación de php sobre documentación de php sobre gettext();

Podes descargar poEdit 1.4.5 desde aquí o visitar la página del desarrollador en http://www.poedit.net


-------------------------------------
Nota: Si esta información te sirvió por favor hacé click en los enlaces patrocinados para ayudarme a mantener este blog en línea.

4 comentarios:

val dijo...

excelentisimo material postea aquí usted señor, si señor
creo que este blog suyo se convertira en uno de consulta habiatual de mi parte
saludos y éxitos!

Anónimo dijo...

Muchas gracias por el aporte, sencillamente es genial.

Chabat dijo...

Que bueno que te sirvió!
Muchas gracias por visitarme y dejar tu comentario.

summ3r dijo...

¡Hola! Si estan interesados en localizar un tema WordPress, reccomendo con calor este rápido y intuitivo instrumento de localización: http://poeditor.com/. Aquí es un plug-in para utilizar su API con el WordPress para que ahorrar más tiempo con el proceso de gestión de archivos - http://wordpress.org/extend/plugins/poeditor/.

El portal que comparte sus ingresos