Fusion de ficheros PO para i18n

Estoy integrando un foro bbPress con un portal desarrollado en Zend y he tenido que desarrollar varios plugins (SSO, login, socialit) y crear un estilo. El portal gestiona los usuarios y el foro utiliza la autenticación del portal.

Ya existe un fichero de traducciones en castellano, que me ha costado encontrar. Aunque hay un repositorio de i18n de bbPress, resulta que es de la versión 0.8.3. Buscando por ahí encontré una traducción más reciente, que correspondía a la versión 1.0.2.

Ahora bien, aquí hay varias opciones,

puedo generar un fichero MO para toda la aplicación. Esto es lo más fácil, porque se ejecuta un script para generar todas las cadenas en un fichero POT, se hace un merge con el fichero actual y luego se queda uno con el resultado, y lo que falte se rellena. Esto está muy bien, y es facil, pero es poco flexible y supone tocar los ficheros de traducciones del nucleo de bbPress, cosa que no me entusiasma.

Se pueden generar ficheros MO para diferentes dominios, como los plugins o los temas. La verdad es que no tengo claro como hacerlo para los temas, creo que habría que integrarlo dentro de algún plugin. Para cada plugin/tema se generan un fichero POT. Luego se hace un merge entre el fichero es_ES.po de bbPress y el fichero POT nuevo:

msgmerge es_ES.po themes_es.po > resultado.po

El fichero es_ES.po será bastante grande y nuestro fichero themes_es.po será más bien pequeño. El resultado es otro fichero grande, pero con muchas lineas en modo fuzzy o comentadas. Tendremos que editar dicho fichero y borrar las entradas fuzzy. Probablemente, solo haya que dejar las primeras lineas. Para descubrir esto, solo hay que hacer un diff entre el fichero themes_es.po y el resultado.po

diff themes_es.po resultado.po

Y verás que solamente se han modificado las lineas que estaban sin traducir. Tengo que depurarlo un poco más, pero creo que con esto basta por ahora.

Ahora queda ver cómo se integra el fichero resultado.po en cada plugin. ¡Manos a la obra!