Traducir archivos XML sin esfuerzo

¿Una misión imposible?

Ragazza salta kungfu

En el marco de nuestra colaboración como profesores de OmegaT con la Universitat Autònoma de Barcelona (UAB), concretamente con el Máster en Tradumática, durante dos años coordinamos como tutores los trabajos de tesis de los alumnos, que debían abordar un proyecto de traducción del inglés al castellano y al catalán de programas informáticos reales, algunos de los sistemas desarrollados dentro del Proyecto Conocimiento Público.

Este proyecto de localización es un ejemplo perfecto para ilustrar cómo preparar y traducir ficheros XML con herramientas de localización y translation de código abierto, el tema de este artículo.

El proyecto PKP es una iniciativa de varias universidades destinada a desarrollar software libre para mejorar la calidad de las publicaciones académicas. Este proyecto ha dado lugar a algunas de las aplicaciones más utilizadas en el mundo académico:

  • para la gestión de publicaciones académicas (Open Journal Systems),
  • de monografías (Open Monograph Press),
  • de conferencias (Sistemas de Conferencias Abiertos) y
  • para indexar los metadatos pertinentes (Open Harvester Systems).

Al tratarse de sistemas de código abierto, abiertos y sin ánimo de lucro, algunos de ellos también fueron elegidos por la UAB para su funcionamiento interno. Por ello, era lógico que estableciéramos una colaboración entre la Oficina de Publicaciones y el Máster en Tradumática para que los estudiantes pudieran localizar tanto en catalán como en español las partes de los programas que aún no estaban traducidas.

Nota: en el momento de nuestra colaboración, la localización de este software implicaba la traducción de numerosos archivos XML. Sólo recientemente el proyecto PKP ha optado por utilizar una herramienta de localización (Weblate) para simplificar el flujo de trabajo y facilitar la labor de traductores y gestores de proyectos.

Los proyectos de localización que coordinamos son los de OMP (Open Monograph Press) y OCS (Open Conference Systems) y, como tales, no difieren de cualquier proyecto comercial.

De hecho, presentaban todas las dificultades inherentes a la traducción de cadenas fuera de contexto, extraídas de cientos de archivos diferentes, con el uso de material de referencia no del todo coherente y -por necesidad- de herramientas perfeccionables y, sobre todo, poco conocidas.

En resumen, fueron un excelente ejercicio no solo para los alumnos del máster, que tendrán que enfrentarse diariamente a estos problemas si quieren trabajar en el campo del software o la localización web, sino también para los que tuvieron que supervisar y coordinar la actividad de media docena de grupos de 3-4 personas cada uno, con plazos bastante ajustados.

Para nuestro objetivo es interesante observar cómo, con la ayuda de un programa polivalente, la suite de programas Okapi Framework, es posible preparar cualquier archivo XML para poder traducirlo con facilidad en la herramienta de traducción que más nos guste.

Te preguntarás por qué convertir un archivo XML al formato XLIFF cuando casi todas las herramientas de traducción asistida, las CAT tools, te permiten traducir XML directamente.

En primer lugar, no todas las CAT tools permiten definir fácilmente qué elementos de un archivo XML pueden traducirse y cuáles deben protegerse mediante etiquetas (tags).

Utilizando una sofisticada herramienta externa como Okapi se pueden preparar todo tipo de archivos XML, con la ventaja añadida de ser independiente de la herramienta CAT y, por tanto, poder pasar el proyecto a cualquiera, sin estar atado a una herramienta CAT concreta.

Una vez creado el archivo XLIFF, este podrá ser enviado a los traductores, permitiéndoles que lo traduzcan con cualquier herramienta capaz de leer un XLIFF, liberándolos de tener que configurar su programa de cabecera.

Los dos vídeos que aquí se presentan, grabados inicialmente para los alumnos del máster (y por tanto un poco informales) explican cuál es la estructura de los archivos traducibles del paquete OMP tomado como ejemplo y el proceso para crear el filtro adecuado para Rainbow/Okapi.

El mismo procedimiento puede aplicarse a cualquier programa que presente los textos a traducir como XML. No es de extrañar que el enfoque sea el mismo que el descrito en el artículo «Cómo traducir un curso de Moodle”, al que remitimos al lector para más detalles.

El proceso puede resumirse en estos pasos:

  1. análisis de los archivos XML para identificar elementos y atributos traducibles,
  2. creación del archivo de configuración adecuado para el filtro XML Stream de Rainbow/Okapi,
  3. conversión de los archivos XML a XLIFF mediante Rainbow,
  4. comprueba que todo el contenido traducible está realmente expuesto y que el contenido no traducible está correctamente etiquetado,
  5. fase de traducción y revisión,
  6. proceso de reconversión, de XLIFF a XML
  7. testing lingüístico y funcional desde la aplicación.

En el caso concreto de los dos proyectos aquí presentados, el proceso fue un poco más complejo ya que, junto a la fase de preparación del expediente, hubo una fase de extracción de la terminología, además de la división del proyecto entre los distintos grupos de trabajo. Esquemáticamente, las etapas han sido:

  1. extracción de los archivos que componen el paquete a traducir, es decir, los que están en inglés, en una carpeta,
  2. análisis de los archivos DTD para entender cuáles eran los elementos y atributos traducibles de los archivos XML relacionados,
  3. creación del filtro con Okapi Rainbow, siguiendo las instrucciones de la Wiki de Okapi, concretamente las páginas sobre Filtro de flujo XML y Filtro HTML;
  4. en este punto se copia el filtro en la carpeta principal del paquete de traducción;
  5. se arrastran los archivos a Rainbow;
  6. configuración de los idiomas correctos y de codificación UTF8,
  7. configuración de la ruta al archivo de configuración,
  8. selección de todos los archivos y modificación del tipo de filtro predeterminado (utilizando el creado para este propósito);
  9. conversión a XLIFF,
  10. eventual resolución de errores si hubiera sintaxis incorrecta de los originales. En este caso en concreto, se produjo un error debido a un exceso de CDATA en uno de los archivos, que corregimos interviniendo manualmente en el propio archivo,
  11. tras la conversión, extracción de los términos más recurrentes con la [función de extracción de terminología estadística] de Rainbow (https://okapiframework.org/wiki/index.php?title=Term_Extraction_Step 'Extracción de terminología con Rainbow');
  12. a continuación, se realiza la creación de un proyecto en OmegaT para cada idioma de destino,
  13. se añaden memorias de traducción y los correspondientes glosarios, penalizando las memorias provenientes de fuentes no fiables,
  14. se realiza el análisis de los archivos a la vista, para encontrar cualquier posible error de segmentación,
  15. se modifican ad hoc las reglas de segmentación en OmegaT,
  16. se lleva a cabo un recuento —un análisis de los archivos—,
  17. se subdividen los expedientes entre los distintos grupos de trabajo. 

Estamos disponibles para cualquier pregunta a través del espacio de comentarios abajo.

Si tienes archivos XML que traducir, ¡estamos aquí para ayudarte!

Traductor técnico, project manager, emprendedor. Está licenciado en Lenguas y cuenta con un máster en Diseño y Producción Multimedia. Fundó Qabiria en 2008

Leer también

Habla con nosotros

Cuéntanos qué necesitas enviándonos un correo electrónico a hola@qabiria.com o mediante el formulario de contacto. Tendrás una respuesta garantizada en 24 horas, pero habitualmente mucho antes.

Contacta con nosotros