Translate Toolkit & Pootle

Tools to help you make your software local


Adaptar sus traducciones

A menudo es necesario actualizar traducciones antiguas a nuevas plantillas o archivos POT. Existen un número de herramientas Gettext capaces de ello, pero no tratan el caso en el que los archivos se hayan renombrado y desplazado. El script pomigrate2 nos permite actualizar entre versiones con grandes cambios.

Esta guía de adaptación le conduce a través de los pasos de una forma genérica para que pueda utilizarlo en cualquiera de sus proyectos. Para que el ejemplo sea más claro, usaremos OpenOffice.org. Nuestra tarea en este ejemplo es adaptar las traducciones antiguas de OpenOffice.org 1.1.3 a OpenOffice.org 2.0.

Requisitos

Necesitará las siguientes herramientas:

Preparción de los nuevos archivos POT

Necesitamos los nuevos archivos POT. Puede descargar estos desde el proyecto o generarlos usando moz2po, oo2po o cualquiera de las otras herramientas de Translate Toolkit. Los archivos POT son plantillas para los archivos de destino que crearemos.

oo2po -P en-US.sdf ooo-20-pot

This will create new POT files in ooo-20-pot.

Checking your old PO files for errors

Vamos a actualizar sus antiguos archivos PO a los nuevos archivos POT. Es una buena oportunidad de comprobar la existencia de errores de codificación e inconsistencias en las traducciones.

Usamos pocompendium para comprobar si hay errores de codificación:

pocompendium check.po -d ooo-113-old

Esto creará un archivo compendio PO, check.po, a partir de todos los archivos PO en el directorio ooo-113-old, que contiene todas sus traducciones antiguas. Ya que pocompendium es una interfaz para varias herramientas Gettext, los errores de codificación aparecerán como errores detectados por esas herramientas.

Use su editor de texto para encontrar y corregir estos errores. Si no los corrige ahora, pasarán a la nueva versión. Una vez que haya arreglado los errores de codificación, no volverán, con lo cual es un tiempo bien empleado.

Opcional: Comprobación de archivos PO antiguos para asegurar la coherencia

Tenga que en cuenta que este paso es opcional, encontrará una explicación más detallada en buscar inconsistencias. Vamos a revisar la consistencia entre traducciones. La primera revisión extrae casos en los que una misma cadena en inglés se ha traducido de dos formas distintas:

pocompendium --ignore-case --accel-amp --errors check.po -d ooo-113-old

Encontrará en check.po los casos en los que el texto en inglés se ha traducido de formas diferentes. Usaremos --accel-amp para eliminar los aceleradores (cambiará esto dependiendo del utilizado en el proyecto; puede ser &_ o ~, por ejemplo). A continuación abra check.po en un editor PO o editor sencillo de texto. Tendrá que corregir cada inconsistencia en los archivos PO fuente, usando check.po como la guía. Muchos de los errores son ortográficos. Puede regenerar check.po varias veces hasta justificar o eliminar todas las inconsistencias.

A continuación, buscaremos palabras en su idioma usados para más de un concepto en inglés. Por ejemplo, no querrá usar la misma para Cancel y Delete. Para ello, invertimos el compendio.

pocompendium --invert --ignore-case --accel-amp --errors check.po -d ooo-113-old

Ahora tenemos un archivo similar al anterior, pero en este caso su idioma aparece en los campos msgid, y el inglés en los campos msgstr. Busque inconsistencias que podrían causar problemas al usuario y corríjalos en los archivos fuente.

Adapatación

Ahora está preparado para la adaptación con pomigrate2. Ya ha creado sus archivos POT de destino, y todos archivos PO están limpios y listos para la adaptación.

pomigrate2 ooo-113-old ooo-20-new ooo-20-pot

Esto toma todas las traducciones en ooo-113-old, y las adapta en ooo-20-new usando ooo-20-pot como archivos de plantilla. Por omisión, pomigrate2 realiza la adaptación sin una elaborada comparación del texto, aunque hay opciones para permitir el uso de cadenas incompletas («fuzzy») y el uso de un archivo compendio. Lea la página de ayuda de pomigrate2 para saber más acerca de estas opciones.

En profundidad: ¿Qué hace pomigrate2 con su archivo?

Esta sección es para aquellos curiosos que quieren saber qué hace pomigrate2 con sus archivos. No necesita comprender esta sección :-)

  • Etapa de inicio
    • Si la ubicación del archivo no ha variado entre el nuevo y el antiguo, este simplemente se copia
    • Si la ubicación ha cambiado, intentamos buscar un archivo con el mismo nombre y copiar ahí el nuestro. Si hay varios archivos con el mismo nombre, los unimos y copiamos
    • Si el archivo no existe, lo incializamos
  • Etapa de actualización
    • Ahora, actualizamos nuestras traducciones mediante msgmerge o pot2po
    • Si ha introducido un compendio, construimos uno a partir de los archivos existentes, y los actualizamos usando este compendio, además de otros externos de forma opcional

Ya está. Al final del proceso, cada archivo desactualizado estará actualizado con respecto a los archivos de plantilla más recientes. Los archivos movidos se deberían preservar, y no perder. Aquellos archivos renombrados se traducirán si usa un compendio; en caso contrario, permanecerán sin traducción.

Resultado final

¡ Enhorabuena! Sus archivos se han adaptado.

Puede que quiera ver cuánto trabajo antiguo se ha reutilizado en el nueva versión:

pocount ooo-20-new

This will use pocount to count the words in your new files and you can compare the number of translate and untranslated messages from your old version.

Conclusion

Your files have now been migrated and are ready for updating. If files have been moved or renamed, and you used a compendium, then most likely you have most of that work translated.