Hola a todos:
Ya no sé si pedir perdón por la falta de inactividad o directamente anunciar que echo la persiana y despedirme, la verdad, :P. En los últimos meses he estado tan liado que no he podido dedicar nada al blog en términos de producción de contenidos (pero sí he continuado respondiendo preguntas y echando una mano por privado). Aunque no puedo prometer que esto vaya a cambiar, el otro día necesitaba hacer un par de cositas con una memoria de traducción (TM) en tmx y creo que esto podría resultar práctico a cualquiera, así que lo tomaré como excusa para escribir un post nuevo.
El tema en cuestión es que hace unos días necesitaba mostrar el contenido de una TM en tmx de una forma visual, de manera que una persona sin conocimientos técnicos fuese capaz de interpretar y analizar sin problemas y rápidamente el contenido disponible en este tipo de formato bilingüe, que habitualmente tiene un aspecto parecido a esto.
Para conseguirlo, se me ocurrió utilizar unas reglas de transformación (xslt) para que, tras aplicar unos cambios sencillos, al abrir el archivo de la TM se abra directamente en el navegador de Internet predeterminado con un aspecto parecido a este.
He adjuntado a este post (TMX-XSL display) un archivo tmx de muestra y el archivo para poder visualizarlo como si fuese una página web en un navegador web (TMX_to_HTML.xsl). El procedimiento que se describe a continuación debería ser válido para prácticamente cualquier TM en TMX (de lo contrario, avisad, por favor):
1) Copiar el archivo TMX_to_HTML.xsl a la misma carpeta donde está el archivo TMX. Por ejemplo, si tenemos el archivo TMX en el escritorio (C:UsersAMADesktoptestTM.tmx) habrá que copiar el archivo de transformación al escritorio también (C:UsersAMADesktopTMX_to_HTML.xsl).
2) Cambiar la extensión del archivo tmx a xml. Por ejemplo, si el archivo tmx se llama testTM.tmx deberíamos renombrarlo a testTM.xml.
3) Abrir el archivo renombrado (por ejemplo, testTM.xml) en un editor como el Bloc de notas o Notepad++. Añadir la siguiente línea <?xml-stylesheet type=»text/xsl» href=»TMX_to_HTML.xsl»?> justo después de la primera línea del archivo con la declaración de XML (<?xml version=»1.0″ encoding=»utf-8″?> en el ejemplo). Tras hacer el cambio, guardar el archivo. Cerrar el editor de texto.
4) Abrir el archivo TMX_to_HTML.xsl con el editor y situarse en las líneas 18 y 19. En ellas es necesario cambiar los códigos lingüísticos para el source y target (en el ejemplo, ‘en-GB’ y ‘es-ES’) por lo que tengamos en nuestra TM en formato TMX.
Para comprobar el código lingüístico de source y target, podemos abrir el archivo TMX en el editor y fijarnos en los códigos de idioma en cualquier unidad.
Para resumir, lo que hay que hacer es garantizar que los códigos de la TM en tmx y el archivo de transformación (xsl) casan. Tras actualizar el archivo TMX_to_HTML.xsl con los códigos lingüísticos correspondientes, guardamos el archivo.
5) Localizar el archivo que acabamos de guardar y abrirlo con el navegador de Internet (por ejemplo, Firefox).
Tras abrirlo, si las lenguas de tmx y xls casan como se ha explicado en el paso 4) y ambos archivos se encuentran en el mismo directorio o carpeta, el contenido de la TM en TMX debería verse como una tabla en el explorador (si la TM es gigantesca, tardará en abrir).
¿Cómo funciona esto?
Tal y como indica la Wikipedia, las XSLT o Transformaciones XSL son un estándar de la organización W3C que presenta una forma de transformar documentos XML (en el paso dos cambiamos la extensión de archivo a .xml teniendo en cuenta que tmx es un estándar basado por sí mismo en xml). En este caso, lo que hacemos es usar unas reglas XLT para crear una estructura básica de tabla en HTML y finalmente, dentro de las celdas incluir la información de texto source y target de cada una de las unidades de traducción que hay en el TM en TMX.
Para extraer cada una de esas unidades, en el documento XLS se ha especificado una regla que indica que para cada unidad de traducción o tu de la TM (<xsl:for-each select=»tmx/body/tu»>) se busquen específicamente, por una parte, el texto source (<xsl:value-of select=»tuv[@xml:lang=’en-GB’]»/> porque en-GB es la lengua de partida) y se incluya en la columna para el source y, por otra, el texto target (<xsl:value-of select=»tuv[@xml:lang=’es-ES’]»/>, porque en el ejemplo, es-ES es la lengua de destino) y se incluya en la columna para el target.
En realidad, más allá de los archivos en sí, creo que lo más importante es realmente entender cómo funciona la transformación del archivo, cómo se navega a través de la estructura de la TM en TMX para finalmente extraer y mostrar solo la información deseada (para más información sobre cómo moverse por los elementos de la TMX o de cualquier XML, recomiendo leer este tutorial de XPath de w3schools).
Ahora mismo, el proceso con estos archivos es bastante manual, pero creo que para aprender y consolidar el conocimiento y las ideas es válido. Si tengo algo tiempo, intentaré crear una pequeña aplicación para que todo sea más sencillo, pero mientras tanto, espero que la explicación y los archivos de muestra os sirvan.
Sin más, un abrazo.
¡Y espero tardar menos en escribir el próximo post!
– Archivos de ejemplo TMX-XSL display.
– Nota: los códigos lingüísticos aceptados por la mayoría de las CAT son los de Microsoft, disponibles aquí: http://msdn.microsoft.com/en-us/goglobal/bb896001.aspx
– Recomendación musical: Jimi Goodwin (el cantante de The Doves) ha publicado single en solitario, titulado Oh!Whiskey, que podéis ver en http://www.youtube.com/watch?v=HlY_fg65CVQ.