[image of the Head of a GNU] Existen diferentes herramientas para la internacionalización (i18n), una de ellas es gettext, biblioteca GNU de ampliamente usada para escribir programas con interfaz en múltiples idiomas. GNU Gettext tiene diversas implementaciones C, C++, Objective C, sh script, bash script, Python, Java, Pascal, Tcl, Perl y PHP.

Gettext utiliza diferentes tipos de ficheros:

  • Pot – Se utiliza la funcionalidad de xgettext para producir un fichero .pot, o plantilla, donde estarán todas las cadenas de texto traducibles extraídas desde un fichero de código fuente. Donde habrá un identificador (msgid) y un texto (msgstr) vacío.
  • Po – Son ficheros de texto que contienen identificadores (msgid) y el texto (msgstr) que debe aparecer en sustitución del identificador. Por ejemplo, el identificador podría ser “mensajeBienvenida” y el texto “Bienvenidos a XperimentoS, espero que disfrutes con nuestros post”. Esta traducción a partir de un fichero .pot se puede realizar fácilmente con herramientas de edición/traducción del estilo de Poedit. Los ficheros .po son específicos de un idioma y serán del tipo: fr.po, es-ES.po, en-UK.po….
  • Mo – Finalmente los ficheros Po son compilados para generar un archivo binario, llamado o con extensión .mo, que permite una lectura más rápida de los textos. Ahora ya se puede distribuir nuestro fichero, según la configuración de idioma del programa, este seleccionará de forma adecuada el fichero .mo (si existe).

Gettext es ampliamente usado en programas con código en php. Por ejemplo, tanto WordPress como muchos de sus plugins/temas usan esta librería. Es sencillo y he encontrado documentación detallada de cómo se puede traducir/internacionalizar un plugin para WordPress paso a paso: guía de Web Log Tools Collection (inglés) y Tradución de un plugin de WordPress en el Foro de Lester Chan’s

Aplicaciones para generar ficheros de traducción POT, PO y MO

  • Launchpad: Parte del proyecto de Linux Ubuntu, es una Web que permite traducir los mensajes del programa sin tener que trabajar con ficheros POT o PO. El resultado es exportado directamente a un fichero MO. Actualmente, no es una buena opción si tienes que trabajar intensamente con este tipo de ficheros.
  • Pootle: Sistema Open Source de traducción basado en Web. El servidor está en Locamotion.org, actualmente gestiona la traducción de WordPress.
  • poEdit: Programa Open Source multiplataforma (Windows, Mac OS X y UNIX/Linux) que permite de forma sencilla y visual editar ficheros PO y generar ficheros MO.
  • KBabel: Otro programa Open Source para edición de ficheros PO, es para KDE (escritorio/entorno visual de Linux).
  • GNU Gettext: Utilidades oficiales de gettext. Comandos de línea para la creación automática de ficheros POT, manipulación de ficheros PO y generación de ficheros MO.
Be Sociable, Share!