2010-06-03 21 views
8

Buscando sugerencias y/o herramientas sobre cómo trabajar eficientemente con los archivos PO de gettext al realizar ediciones pequeñas a los valores grandes de los msgid.Cómo trabajar eficientemente con los archivos PO de gettext al realizar pequeñas ediciones en valores de texto grandes

Ejemplo: Tenemos muchos mensajes de oraciones múltiples/párrafos múltiples que se almacenan en nuestros archivos de catálogo de mensajes de PO. Si hacemos un pequeño cambio en un mensaje, quizás editando una sola oración o incluso corrigiendo la puntuación, perdemos nuestra traducción original cuando ejecutamos la utilidad msgmerge.

En lugar de volver a traducir los mensajes largos (que ya han pasado por un proceso editorial) desde cero, nuestros traductores vuelven a copias de seguridad de sus archivos PO y buscan manualmente el último par de traducción msgid/msgstr que luego difieren de los valores de msgid actuales para ver qué ha cambiado, seguidos por una copia y pegado de la última traducción que luego editan para reflejar el valor de msgid actualizado.

¡Eso es mucho trabajo! Ciertamente debe haber una mejor manera de manejar este tipo de flujo de trabajo?

¿Existe alguna forma de mejores prácticas para archivar y encontrar traducciones anteriores que ya no están en un archivo PO? Una idea que nos viene a la mente es almacenar una id. De mensaje única en el texto de nuestros mensajes o en los comentarios que preceden a nuestro mensaje y usar esta identificación para recuperar pares de traducción de msgid/msgstr para su revisión. ¿O hay editores de PO o servicios en línea que hacen que este proceso sea más eficiente?

Gracias, Malcolm

Respuesta

5

Virtaal 's de soporte de memorias de traducción, probablemente puede ayudar con esto. Si sus unidades originales están en la memoria de traducción, se mostrarán (con diferencias) dentro de un cierto margen de cambio (basado en la distancia de Levenshtein). Todavía contendrá la traducción original (no modificada), pero al menos el texto original es más accesible y se resaltan las diferencias.

No estoy 100% seguro, pero Pootle también podría ofrecer una solución basada en web. Si necesita ayuda, solicite #pootle en FreeNode.

La mejora más general es, por supuesto, separar/segmentar las unidades tanto como sea posible.

+0

Gracias Walter. Saludos, Malcolm – Malcolm

9

He estado buscando una forma de hacer pequeños cambios en los msgids sin alterar las traducciones existentes, por ejemplo, correcciones de errores en el texto fuente. He aquí una receta que acabo resultó que no implique sitios web:

  1. Use msgen de GNU gettext para generar un archivo po Inglés a Inglés:

    msgen project.pot >corrections.po

  2. manualmente edite el msgstr s en "corrections.po" para reflejar las correcciones de errores hechas en el texto de origen, por lo que tenemos una asignación de cadenas corregidas a corregidas. (No he pensado en cómo automatizar este bit.)

  3. Para cada traducción "real" (por ejemplo ca.po): abusar poswap del kit de herramientas Translate (translate-toolkit en Ubuntu) para cambiar los msgids:

    poswap -i corrections.po -t ca.po -o ca.new.po

Esto parece pierden los comentarios de cabecera y las cadenas obsoletas de los archivos gettext po de GNU, pero corregirlos manualmente es mucho menos trabajo que modificar manualmente los archivos .gidg en cada traducción (y probablemente podrían ser fácilmente guionados).

(Obviamente, esto sólo debe utilizarse en circunstancias excepcionales, en las que esté absolutamente seguro de que ninguno de los traductores necesitan la oportunidad de volver a revisar sus traducciones.)

+0

Muy inteligente. Gracias JTN. Saludos, Malcolm – Malcolm

Cuestiones relacionadas