Tras una pausa demasiado larga, ya iba siendo hora de publicar la cuarta (y última) entrada dedicada a Okapi Framework. En el futuro es posible que redacte alguna entrada más sobre funciones o trucos concretos de las aplicaciones que conforman Okapi.

Aclarado este punto, a continuación llega la prometida entrada, en la que describiré las aplicaciones más interesantes de Okapi que, a mi juicio, son más interesantes (sin contar Rainbow, de la que ya hablé en entradas anteriores del blog): Olifant, CheckMate y los complementos de Okapi para OmegaT.

Olifant

A diferencia del resto de componentes de Okapi comentados en esta serie de entradas, Olifant no cuenta con una versión para JAVA, sino que tendremos que acudir al sitio web de la versión antigua de Okapi desarrollada usando NET Framework.

Gracias a esta aplicación, podemos abrir memorias de traducción en diferentes formatos (como TMX o TXT) y realizar cambios en sus atributos y otros datos vinculados a ellas. Asimismo, podemos exportar dichas memorias en varios formatos, lo que permite emplear Olifant como una herramienta de conversión de memorias de traducción con el fin de poder consultar una misma memoria en herramientas TAO que trabajen con formatos incompatibles entre sí.

Ventana principal de Olifant

Ventana principal de Olifant con una memoria en formato TMX abierta

En esta captura de pantalla vemos una memoria en formato TMX abierta en la ventana principal de Olifant, donde se encuentran los clásicos menús y botones de tantos programas conocidos junto a un espacio donde podemos modificar la UT (unidad de traducción o segmento) en el idioma de origen y en el destino. En la parte inferior, por último, figura la lista de segmentos que conforman la memoria, así como el número que las identifica. En ciertos casos, veremos códigos o etiquetas internos delimitados por corchetes que sirven para indicar que una palabra aparece en negrita, en cursiva, subrayada, etc.

Olifant cuenta con varias funciones de gran interés para un traductor, entre las que destaco las búsquedas mediante varios filtros y expresiones regulares, la identificación de unidades de traducción duplicadas, fusionar varias memorias en una sola, exportar únicamente determinados segmentos de una memoria, etc. Como no quiero explayarme demasiado, a continuación os dejo una captura de pantalla en la que se ven las propiedades de esta memoria de traducción.

Propiedades de la MT en Olifant

Vista de la ventana Propiedades de la memoria en Olifant

En este apartado, al que que se accede desde el menú File > TM Properties… (Archivo > Propiedades de la MT), podemos cambiar las propiedades de una memoria, que a veces causan problemas, en especial a la hora de intentar abrirla en otras herramientas TAO. En la pestaña General podemos cambiar datos como la fecha de creación y modificación, la codificación y el creador de la memoria. En la segunda pestaña, Languages (Idiomas) podemos añadir o eliminar idiomas de origen y de destino. Por ejemplo, puede que queramos importar una memoria creada con idioma de destino español (ES) en otra con idioma español de España (ES-ES) y que tengamos dificultades para conseguirlo. Mediante esta función de Olifant, podremos solucionar dicho inconveniente. Asimismo, en Attributes (Atributos) es posible eliminar o modificar ciertos atributos (aunque no todos, por desgracia).

CheckMate

CheckMate es una aplicación de Okapi que sirve para llevar a cabo controles de calidad en formatos de archivos bilingües empleados en traducción como TTX, PO o XLIFF, por citar unos pocos ejemplos. En pocas palabras, es el sistema de control de calidad que viene incluido en Rainbow (como vimos en la entrada anterior) pero en una aplicación independiente, una cuestión que a algunos les será un tanto incómodo y, a otros, de mayor utilidad. Esta aplicación funciona mediante sesiones a las que podemos añadir o eliminar archivos y que podemos guardar para seguir con la comprobación de errores en otro momento.

Control de calidad en CheckMate

Vista del Control de calidad de CheckMate

Esta captura de pantalla muestra la ventana principal de CheckMate tras haber abierto un documento (PO, en este caso) y realizado el control de calidad pulsando el botón Check All (Comprobar todo). Si hacemos clic con el botón secundario del ratón en el error que queremos corregir y pulsamos la opción Open Document (Abrir documento), se abrirá el archivo de forma automática, lo que acelera el proceso de corrección. Además, gracias a CheckMate podemos crear un informe de los errores encontrados y guardarlo en nuestro ordenador.

Entre los errores que CheckMate es capaz de detectar se encuentran la presencia de caracteres dañados, palabras repetidas, la ausencia de traducción en el segmento del idioma de destino, diferencias entre etiquetas, etc. En caso de que la aplicación detecte algún falso positivo, podemos desactivar el aviso para que no muestre ese mismo error en el futuro. Asimismo, se integra con la herramienta de corrección ortográfica y de estilo de código abierto LanguageTool, que funciona con más de 20 idiomas. Esta última función se activa en el menú Issues > Edit Configuration > LangaugeTool (Varios > Cambiar configuración > LanguageTool).

Filtros para OmegaT

Los filtros para OmegaT permiten usar varios formatos de archivo, tales como TTX o IDML, en dicha herramienta. Estos tipos de archivos suelen resistirse a los programas TAO gratuitos, pero estos filtros nos permiten traducirlos en OmegaT sin demasiados problemas. Como muestra, os dejo una captura de un archivo TTX, propio de TagEditor, en OmegaT.

Documento TTX en OmegaT

Vista de un documento TTX abierto en OmegaT

Si queremos instalar estos filtros, basta con descomprimir el archivo descargado y copiar los archivos JAR obtenidos a la carpeta plugins, que se encuentra a su vez dentro de la carpeta donde hayamos instalado OmegaT.

Como se indica en la página web, en el caso de los archivos TTX, el filtro espera que Rainbow haya segmentado previamente los archivos, por lo cual, si el archivo está segmentado en parte, OmegaT solamente reconocerá el texto segmentado y no se podrá traducir el resto. La solución que recomiendan en la misma página consiste en recurrir a Rainbow para crear un proyecto para OmegaT (como vimos en la primera entrada dedicada a Okapi) en el que se indique al filtro TTX que extraiga también el texto no segmentado.

Y para terminar…

Ya llegamos al final de estas cuatro entradas dedicadas a Okapi Framework. Aunque no he comentado todas las aplicaciones ni funciones disponibles, espero que os hayáis hecho una idea de la gran utilidad que puede tener este conjunto de aplicaciones si alguna vez os veis en apuros mientras traducís. Nunca se sabe, y hay que estar bien preparado. 🙂

Como siempre, espero que os haya gustado la entrada y que dejéis vuestras impresiones, trucos o ideas para nuevas entradas de Melodía de traducción. ¡No seáis tímidos! 🙂

¡Hola a todos!

Retomo el blog con una entrada que mi amigo y antiguo profe Rubén me sugirió escribir en su día: Okapi Framework. Como ya habéis sido testigos de mis parrafadas habituales, y dado que esta herramienta es muy amplia, escribiré varias entradas sobre el tema. Aquí va la primera de ellas.

INTRODUCCIÓN

Me imagino que muchos de vosotros os habréis preguntado al leer el título: «¿Qué es Okapi Framework?». Nadie mejor que sus creadores para contárnoslo. Si prestamos atención a su página web, podemos averiguar que Okapi Framework (de ahora en en adelante, Okapi) es «un conjunto de componentes y aplicaciones de código abierto, libre y multiplataforma diseñado como apoyo a los procesos de traducción y localización». Así pues, nos queda claro que Okapi es gratuito y que no se trata de una herramienta de traducción asistida por ordenador al uso, sino de un complemento de ayuda en las tareas de traducción y localización.

A su vez, Okapi consta de varias herramientas escritas en lenguaje Java entre las que destaco Rainbow (a la que dedicaré esta entrada en exclusiva), que nos permite ejecutar multitud de procesos relacionados con la traducción y localización, CheckMate, utilizada para realizar controles de calidad en archivos bilingües y, dentro de las antiguas aplicaciones de Okapi en .NET framework, Olifant, que sirve para realizar búsquedas y cambios en distintos formatos de memorias de traducción. Cabe mencionar, así mismo, la presencia de aplicaciones en línea de comandos, destinadas a usuarios más avanzados, como Tikal, que permite unir varios archivos XLIFF, llevar a cabo conversiones de archivos o incluso traducir utilizando sistemas de memorias de traducción; o Ratel, un editor WYSIWYG empleado para crear reglas de segmentación SRX (Segmentation Rules eXchange).

RAINBOW

La primera vez que abrimos Rainbow, nos encontramos con una ventana como la de la siguiente imagen:

Rainbow

Ventana principal de Rainbow

Como se puede observar, en dicha ventana figura la clásica barra de menús, común a la mayoría de aplicaciones, donde nos serán de especial utilidad los menús Utilities y Tools (Utilidades y Herramientas, respectivamente) y una sección de botones que ejecutan las funciones más básicas, como abrir un proyecto, guardarlo, etc. Debajo de esta sección vemos de un directorio titulada Root (Raíz), que es el directorio de nuestro proyecto. El resto de la pantalla lo ocupa una sección con varias pestañas, destinadas a la listas de documentos con los que queremos trabajar (hasta un total de tres), así como otra pestaña, Languages and Encodings (Idiomas y codificaciones), donde podemos establecer, como su nombre indica, los idiomas y codificaciones de los archivos que hayamos añadido. Para terminar, en Other Settings (Otros ajustes) podemos configurar algunas características de los archivos de destino.

Creación de paquetes de traducción

La primera función de Rainbow que quiero destacar es la creación de paquetes de traducción. De esta manera, podemos preparar nuestros archivos para convertirlos a formatos compatibles con diversas herramientas tanto gratuitas como de pago, como QT Linguist (recordad que hablé de esta herramienta en la entrada anterior), OmegaT, Trados, Swordish III (que mencioné en esta entrada) o Wordfast. Así que por falta de alternativas no será.

Para acceder a esta función, tendremos que, en primer lugar, cargar los archivos que queremos convertir mediante la combinación de teclas Alt + Insert. Una vez elegidos, nos dirigiremos a Utilities > Translation Kit Creation… (Utilidades > Creación de paquetes de traducción). En la siguiente captura de pantalla podemos ver un ejemplo de esta ventana. En la parte derecha de la ventana que aparece, podemos ver la lista de formatos a los que se pueden convertir los archivos. Cuando seleccionamos uno, en la sección inferior se nos aporta una breve descripción que soluciona más de una duda. Asimismo, en la pestaña Output Location (Ubicación de los archivos de destino) podemos decidir la ubicación del paquete que creemos, así como si deseamos que el programa cree un archivo comprimido con los archivos de dicho paquete.

Creación de paquetes de traducción

Captura de pantalla de la ventana de Creación de paquetes de traducción de Rainbow

El programa nos creará un paquete en la carpeta que le hayamos indicado, con una carpeta destinada a los archivos originales y otra, de nombre, work, que contiene los archivos de trabajo o borradores, que son el resultado de la conversión que ha realizado Rainbow para hacerlos compatibles con el programa de traducción asistida elegido. Aquí tenemos un ejemplo de un paquete PO que puedo traducir mediante QT Linguist, y que he creado a partir de un archivo en formato ODT.

Archivo PO en QT Linguist

Captura de pantalla de un archivo PO en QT Linguist creado por Rainbow

Las siguientes capturas muestran, respectivamente, los paquetes de este mismo archivo obtenidos siguiendo este proceso para su posterior traducción en Swordfish III (a partir de un archivo XLIFF), OmegaT y Trados (a partir de un archivo RTF).

Archivo XLIFF en Swordfish

Captura de pantalla de archivo XLIFF creado con Rainbow y abierto en Swordfish

Traducción en OmegaT

Captura de pantalla de un texto para traducir abierto en OmegaT creado desde Rainbow

Archivo RTF bilingüe

Captura de pantalla de un archivo RTF bilingüe para Trados creado con Rainbow.

Como habréis podido comprobar ya, contamos con muchas opciones de creación de paquetes de traducción, compatibles tanto con herramientas de traducción asistida gratuitas como comerciales. Aparte de lo mostrado anteriormente, podemos crear archivos compatibles con Transifex, Wordfast y otras herramientas de traducción asistida.

Creación de memorias de traducción

Imaginaos que, utilizando Rainbow, hemos podido convertir un archivo siguiendo los pasos anteriores a un programa de traducción asistida de nuestra elección como, por ejemplo, QT Linguist. Cuando hemos terminado de traducir el archivo, caemos en la cuenta de que queremos guardar una memoria de traducción basada en dicho archivo para poder aprovechar la traducción en futuros proyectos. Sin embargo, herramientas como QT Linguist no funcionan con el concepto de memoria de traducción, al contrario que otras alternativas como Trados o Wordfast o, si hablamos de software libre, OmegaT o Anaphraseus. Pues bien, en vez de maldecir nuestra mala suerte, Rainbow nos puede ayudar a salir del apuro mediante su función de conversión de archivos, en concreto la conversión a formato TMX (Translation Memory eXchange).

A diferencia de la función de paquetes de traducción, la conversión de archivos se limita a convertir los documentos que queramos a otro formato, sin crear la estructura de carpetas más propia de un proyecto de traducción (es decir, carpetas para documentos originales y borradores y otros archivos necesarios para ser compatibles con el programa elegido). Si bien es cierto que estas dos funciones pueden llegar a solaparse (en especial en el caso de los archivos PO), creo que dan la posibilidad de que cada traductor trabaje según más le convenga.

En la situación que nos ocupa, el primer paso para obtener nuestro archivo TMX a partir de un archivo bilingüe (PO, XLIFF o bilingües de Trados) es añadirlo a la lista de archivos mediante al atajo Ctrl + Insert. A continuación nos dirigimos a Utilities > Conversion Utilities > File Format Conversion… (Utilidades > Utilidades de conversión > Conversión de formatos de archivos), donde aparecerá la siguiente ventana:

Conversión de archivos

Ventana de Rainbow de la función de conversión de archivos

En la sección Output Format (Formato de destino), elegimos el formato al que convertiremos el texto (en este caso, TMX). Marcando las casillas de debajo, podemos elegir, entre otras opciones, si solamente queremos convertir los segmentos aprobados o si queremos crear un único archivo de destino en vez de un archivo de destino por archivo original. Para terminar, elegimos el nombre y la ruta del archivo de destino y pulsamos el botón Ejecutar.

Una vez terminado el proceso, obtendremos un archivo TMX compatible con la gran mayoría de herramientas de traducción asistida, ya sean de pago o gratuitas. En la siguiente captura de pantalla podemos ver un archivo TMX creado con Rainbow a partir de un documento RTF bilingüe (convertido a su vez con Rainbow a este formato desde un archivo original ODT), y que he abierto con el programa Notepad++ (una alternativa al Bloc de notas de Windows que recomiendo encarecidamente), lo que supone una buena forma de averiguar más información sobre la estructura interna de un archivo TMX.

Archivo TMX

Captura de pantalla de archivo TMX abierto con Notepad++

Con estas dos funciones doy por terminada esta entrada dedicada a Okapi Framework y, en particular, a Rainbow. Como siempre, os animo a trastear con Okapi y con Rainbow, porque así seguro que descubrís muchas más funciones de las que da tiempo a hablar en este blog y, de paso, podéis sacarle el máximo partido de manera acorde con vuestras necesidades profesionales y particulares.

En las siguientes entradas seguiré hablando de Rainbow, así como de otras aplicaciones pertenecientes a Okapi Framework. Con respecto a vosotros: ¿conocíais esta herramienta? ¿Alguno la habéis utilizado? ¿Qué funciones destacáis y cuáles echáis de menos? ¡Espero vuestro comentarios! 😉