¿Cómo traducir programas libres? Fichero .po, .mo y .pot (Parte II)

¿Cómo traducir programas libres? Fichero .po, .mo y .pot (Parte II)

Si hace poco hablábamos en la primera parte de forma introductoria de cómo traducir programas libres, hoy vamos a entrar de lleno en cómo hacerlo.

Antes de empezar a leer más sobre cómo usar gettext con PHP en concreto y con ciertos cambios en otras tecnologías libres, veamos en qué consisten los ficheros que usaremos: .po, .mo y .pot y cómo editarlos y trabajar sobre ellos.

Ficheros .POT (Portable Object Template, plantillas de objetos portables)

El primer paso para comenzar a utilizar gettext, es tener una plantilla donde tengamos definidos todos los mensajes que debemos traducir. Normalmente, el lenguaje de referencia, es el inglés, pero podemos elegir cualquier otro.

Ficheros .PO (Portable Object, objetos portables)

De las plantillas anteriores, obtenemos ficheros .po para cada idioma. La plantilla tiene dos partes:

  • Identificador de mensaje
  • Traducción

Donde esta segunda parte está vacía. En los ficheros .po se rellena esta segunda parte para cada lenguaje. Por lo tanto, para cada proyecto (o parte del proyecto) que queramos traducir, tendremos siempre un fichero .POT y tantos ficheros .PO como idiomas a los que traduzcamos el software contemplemos.

Ficheros .MO (Machine Object, objetos de la máquina)

Con estos dos ficheros tendríamos a priori suficiente para poder prestar la funcionalidad. Sin embargo, todos sabréis que un fichero texto, en el que la disposición de los mensajes traducidos es secuencial, es más lento de leer que uno binario con una estructura interna preparada de forma que acelere las búsquedas.

Exactamente esto es un fichero .MO, la compilación de un fichero .PO para que gettext tarde menos en encontrar los mensajes traducidos.

Poedit

Poedit

Para crear ficheros .PO de forma cómoda desde un fichero .POT, o para crear un fichero .POT directamente, podemos usar cualquier editor de texto (yo personalmente recomiendo Geany) pero para estos casos, automatiza mucho el trabajo una herramienta: Poedit.

Para instalarla, probablemente os baste buscarla en vuestro gestor de paquetes o si usáis Ubuntu en el Centro de Software. En caso de no encontrarla siempre podréis acceder a la sección de descargas de Poedit.

Con Poedit podemos editar de forma gráfica los ficheros .PO de forma cómoda y eficaz y una vez terminado, podremos generar el fichero .MO de forma directa y automática cada vez que guardemos el catálogo. Si queréis saber cómo manejarlo y conocer algunas nociones sobre el mismo os recomiendo que os leáis esta entrada.

Otras herramientas de traducción libres

En la tercera y última entrega, hablaremos directamente de cómo integrar todo ésto en un proyecto con PHP.