Hace muchísimo tiempo escribí sobre la forma de preparar un archivo para localización con WordPress (o sea, permitir que un plugin o theme sea traducible).
En ese post indicaba cómo utilizar dos de las funciones principales para marcar los textos para localización: _e()
y __()
Además de estas funciones, se han agregado algunas nuevas para otras necesidades:
https://gist.github.com/felipelavinz/6215992
La documentación completa está en el Codex: i18n for WordPress Developers: Marking Strings for Translation
Una vez que ya tenemos todos los textos marcados para traducción, necesitamos crear una plantilla de localización, que corresponde a un archivo POT. Si bien es un archivo de texto plano con un formato estándar, obviamente es más sencillo automatizar este paso. Para esto podemos utilizar las herramientas de localización desarrolladas por Automattic.
En primer lugar vamos a necesitar crear una copia local de las herramientas, para lo cual necesitamos Subversion. Entre las distintas herramientas incluidas, la que nos interesa es makepot.php
https://gist.github.com/felipelavinz/6221627
makepot.php tiene opciones para generar plantillas de localización para diversos tipos de proyectos, tanto plugins (wp-plugin
) como themes (wp-theme
) y otros que corresponden más bien al desarrollo del core de WordPress.
Una vez que se ya tenemos la plantilla de traducción, toca crear las traducciones. Para esto, la mejor herramienta sigue siendo poEdit (que en Ubuntu puedes instalar desde repositorios con sudo apt-get install poedit
.
Para comenzar a trabajar en la traducción, inicia poEdit y en el menú Archivo selecciona la opción New Catalog from POT File; selecciona el archivo relevante y completa los datos de la primera versión del catálogo de traducciones. Luego guarda el catálogo de traducciones (archivo .PO) con el nombre que corresponde según la convención de WordPress; por ejemplo, si tu dominio de traducción es dominio_de_traduccion
, la versión en español debe ir en dominio_de_traduccion-es_ES.po
.
poEdit genera automáticamente el archivo MO que es la versión compilada del catálogo de traducción que el servidor lee para mostrar los textos traducidos.
Actualizar el catálogo de Traducciones
Probablemente durante el desarrollo de tu plugin/theme vas a necesitar agregar o modificar algunas de las traducciones generadas.
Como obviamente la idea no es tener que traducir todo de nuevo, es posible actualizar el catálogo de traducciones sin perder las traducciones ya hechas.
Para esto, necesitas en primer lugar actualizar la plantilla de traducciones utilizando el mismo comando indicado anteriormente.
Luego, para que el catálogo muestre los nuevos textos necesitas la herramienta msgmerge
https://gist.github.com/felipelavinz/6221929