Tutorial sobre la traduccion de programas

Tutorial de iniciación a la traducción de programas, por HispanicoWeb

CONSIDERACIONES INICIALES

(En este tutorial, yo he corregido algunos enlaces a los programas y páginas web que estaban caducados, además de incluir algún comentario o indicación extra, estarán entre paréntesis y en cursiva para diferenciarlos del artículo original.)

Lo primero que debemos tener en cuenta a la hora de plantear un proyecto de traducción es si estamos legalmente autorizados para efectuar dicha traducción. Como todos sabemos, los programas son propiedad de sus desarrolladores y estos conceden autorización para el uso de sus aplicaciones bajo unos condiciones o términos que, normalmente, vienen reflejados en la Licencia del programa. Si en la citada licencia viene expresamente prohibido la traducción del programa, debemos de abstenernos de confeccionarla, salvo que solicitemos (y obtengamos) la pertinente autorización de aquellos que legalmente estén capacitados para concederla.

(Si bien eso es cierto, yo entiendo que de la misma forma que cuando compras un electrodoméstico es obligación del fabricante proporcionar al usuario un “manual rápido” en su idioma, si tu compras un programa o siendo gratuito tienes que “aguantar” su publicidad debería ser obligatorio que los programas sean “multilingue” para que sean traducidos.)

HERRAMIENTAS Y UTILIDADES PARA LA TRADUCCIÓN

Según mi opinión (y experiencia) personal son necesarios estos programas:

English-Spanish Interpreter Profesional - Shareware

Un traductor completísimo, fácil de usar (está en castellano), conjuga verbos, tiene sinónimos, etc. Es absolutamente imprescindible. Se puede descargar desde http://www.wordmagicsoft.com/

Translation Dictionary & Tools Profesional - Shareware

Un diccionario de lo mejorcito que hay, y que complementa al traductor. En castellano. Se puede descargar desde http://www.wordmagicsoft.com/

IT Dictionary - Shareware

Diccionario especializado en términos informáticos. Es un excelente complemento a los dos programas anteriores y aunque no es imprescindible, sí que es de mucha utilidad. En castellano. Se puede descargar desde http://www.wordmagicsoft.com/

(Yo añadiría como recursos gratuitos el traductor de Google y el de Bing, no son perfectos pero te sacan del apuro, además de la web wordreference.com, también el diccionario Babylon que es shareware, aunque si utilizas Firefox puedes utilizar la extensión “Online Translator Toolbar” que te ayuda a utilizar varias herramientas gratuitas disponibles en línea, en esta web http://www.traduccionexpress.com/diccionarios_en_linea.html te dan algunas opciones más.)

Ultraedit - Shareware

Es un editor hexadecimal con el cual se pueden abrir casi todos los tipos de archivos conocidos. Está en castellano y nos servirá para modificar los textos que no se pueden traducir con los editores de recursos. Se puede descargar desde http://www.idmcomp.com/

PSPad - Freeware

Es otro editor hexadecimal similar al anterior. Nos servirá para modificar los textos que no se pueden traducir con los editores de recursos. Se puede descargar la versión en inglés desde http://www.pspad.com/

Nota: El programa no incluye el corrector ortográfico, lo podéis descargar desde aquí.

AnalogX TextScan 1.02 - Freeware

Esta es una curiosa aplicación que sirve para extraer todos los textos escritos en un archivo .exe o .dll (muchos de los cuales no veremos con los editores de recursos) a un simple un fichero .csv que podemos pasar fácilmente a texto cambiándole la extensión a .txt. Es muy útil para encontrar los textos que tendremos que cambiar con los editores hexadecimales. Está en inglés (aunque esto no es un inconveniente, porque es muy fácil de usar y tiene pocas opciones) y lo puedes bajar desde http://www.analogx.com/

Exescope - Shareware

Este programa, junto con el siguiente, serán tus mejores herramientas. Es un editor de recursos y con él se pueden abrir y modificar los menús de los archivos EXE y las DLL (también algún tipo más, pero los fundamentales son estos). También puede modificar el tamaño y disposición de las teclas y cuadros de diálogo, etc. Está en inglés y se puede descargar desde http://hp.vector.co.jp/authors/VA003525/Eindex.htm

Nota: Puedes descargar desde mi web una versión anterior (la 6.30) traducida al español.

Resource Hacker - Freeware

Este es otro editor de recursos muy parecido al anterior (en algunas situaciones es más conveniente que el anterior). Es interesante tener los dos editores, ya que a veces los archivos que no se pueden editar con uno de ellos se pueden editar con el otro. Está en inglés y lo puedes bajar desde http://www.angusj.com/resourcehacker/

Nota: Puedes descargar desde mi web la última versión de este programa traducida al español.

(También está este otro programa editor de recursos que también es gratuito “XN Resource Editor” http://www.wilsonc.demon.co.uk/d10resourceeditor.htm,)

File Inspector XL - Freeware

Muy buena utilidad para analizar archivos y averiguar si están comprimidos y que programa se ha utilizado para ello. En español. Se puede bajar de http://www.exetools.com/file-analyzers.htm

UPX-GUI 1.20w - Freeware

Herramienta para comprimir/descomprimir los archivos ejecutables en los que se ha usado el compresor UPX.

Nota: Lo podéis bajar de aquí http://www.exetools.com/compressors.htm - También lo puedes descargar de SourceForge.

Estos son los programas fundamentales. Por supuesto hay otros muchos más que también puede servir para nuestro objetivo, pero estos que aquí relaciono son los que habitualmente yo utilizo. Con estos programas y las necesarias e imprescindibles nociones del idioma inglés ya estamos perfectamente preparados para acometer nuestra primera traducción.

QUE TRADUCIR

Normalmente los textos, menús, avisos, imágenes, iconos, etc, (todo lo cual denominaremos RECURSOS), se encuentran localizados en los archivos EXE (ejecutables) y DLL (librerías), aunque también se pueden encontrar en archivos con otras extensiones (como *.ocx y *.vbx).

También están los programas con soporte multilingue (por ejemplo: FlashGet o Ad-Aware) que ya vienen preparados para que el usuario confeccione su propio módulo de idioma. La mayoría de los textos de menús y avisos están en un archivo de texto simple que puede tener diferentes extensiones (lng, txt, ini) y que se puede editar desde el Bloc de Notas o Word (aunque lo suyo es usar un editor hexadecimal como Ultraedit). No tienen más dificultad que abrir el fichero en inglés y cambiar las frases y palabras por su traducción al español, renombrar el archivo, incorporarlo a la carpeta que contenga el resto de los archivos de idioma y seleccionar desde el programa el nuevo idioma. También hay algunos programas con soporte multilingue que utiliza archivos dll en vez de archivos de texto para los módulos de idioma. En ese caso, en vez de un editor de texto simple utilizaremos un programa editor de recursos.

Por desgracia los programas con soporte multilingue no son tan abundantes como sería deseable y normalmente tendremos que trabajar con los archivos EXE y DLL del programa en inglés. Por ello en los próximos capítulos nos centraremos en los programas que NO tienen este soporte multilingue.

COMO TRADUCIR

Para explicar lo siguiente, vamos a utilizar principalmente un editor de recursos, en concreto el programa Exescope, [ver captura], aunque también podríamos usar igualmente el programa Resource Hacker. Al "abrir" los archivos EXE y DLL nos podemos encontrar (en la mayoría de los casos) con dos estilos diferentes, en función de que los archivos abiertos estén compilados con Basic o con Delphi (los dos lenguajes de programación más utilizados) y que a efectos didácticos vamos a denominar respectivamente Tipo 1 y Tipo 2.

TIPO 1 (Basic)

Es el más manejable y por lo tanto, el mejor desde el punto de vista del traductor. De este tipo son los archivos ejecutables de los programas WinZip y ZoneAlarm, entre otros. Si utilizamos de ejemplo el archivo ejecutable del primero (Winzip32.exe) y lo editamos con Exescope veremos esto [ver captura 1]. Al desplegar la raíz Resources (recursos) nos encontramos una serie de sub-apartados, algunos de los cuales son los que interesan para nuestra labor. En este caso concreto, nos interesan los siguientes:

AVI (también puede ser GIF) --> Aquí tenemos los ficheros en formato .avi ó .gif con las animaciones que se pueden ver en el programa [ver captura 2]. Desde el editor de recursos podemos exportarlas (extraer del ejecutable) y con la herramienta adecuada, hacer las modificaciones que deseemos para, a continuación, importarlas de nuevo dentro del ejecutable.

BITMAP --> Aquí están los archivos de mapas de bits que contienen las imágenes que el programa muestra [ver captura 3]. Se pueden exportar como archivos .bmp, modificar con un editor tal como el Paint que trae Windows (por ejemplo) y volver a importarlo dentro del ejecutable. Al hacer esto hay que tener en cuenta no modificar el tamaño de la imagen.

MENU --> Nos muestra los menús del programa en esquema de árbol [ver captura 4]. Estos menús pueden ser los que aparecen en la barra de menús (el típico de la parte superior de la pantalla), el menú contextual (el que aparece cuando hacemos clic con el botón derecho del ratón) o cualquier otro tipo de menú desplegable. Para modificarlo hay que resaltar el término que deseamos cambiar y escribir. El tamaño y disposición se adapta automáticamente a la extensión de término escrito, por lo cual, no hay que preocuparse por este aspecto. Observaremos que, muy a menudo, aparece delante o en medio de los términos o frases el símbolo &, esto sirve para indicar que el caracter siguiente al símbolo es la tecla de acceso rápido y por lo tanto en el programa aparecerá subrayada. Hay que tener cuidado de que en una misma rama del menú no aparezca la misma letra marcada en dos opciones distintas.

DIALOG --> Como podemos deducir, aquí encontramos los cuadros de diálogo del programa [ver captura 5] que podremos ver de forma gráfica gracias al editor de diálogos de Exescope [ver captura 6]. Es donde más trabajaremos, puesto que no solo hay que traducir sino que además, en algunos casos, habrá que modificar la disposición de los elementos del cuadro del diálogo para que se visualicen correctamente. Esto es debido a que casi todas las palabras en español ocupan más espacio físico que los términos equivalentes en inglés y en los cuadros de diálogo (al contrario de lo que sucedía con los menús) no se produce el redimensionado automático, por lo cual debemos hacerlo manualmente, modificando la disposición original de los elementos. Esto se puede hacer de dos maneras:

1.- Redimensionando directamente con el editor de diálogo, mediante el simple procedimiento de pulsar y arrastrar [ver captura 7].

2.- Mediante la modificación de los valores que se pueden ver en la parte superior del cuadro derecho de Exescope, donde se puede indicar la posición (X,Y) y el tamaño (Width->Ancho y Height->Alto) que debe tener el elemento que tengamos seleccionado en ese momento [ver captura 8].

STRING --> Aquí están las frases o palabras que aparecen en los cuadros de aviso y error, en la barra de estado, en los "tools tips" (que son estos cartelitos explicativos que aparecen al poner el puntero sobre un icono o una función del programa), etc... [ver captura 9]. Muchas de estas frases o palabras no las veremos casi nunca, puesto que solo aparecen en casos muy específicos y que normalmente no se dan. Aquí, igual que con los menús, no hay que preocuparse de las dimensiones y/o posición, la única e importante precaución a tener en cuenta es no modificar nada más que los textos. No debemos cambiar el orden, ni los números identificativos, ni la coma que les sigue, así como tampoco símbolos como "%s", "%d", "$0A", "$0D" ó similares. Sí podemos cambiar de posición el símbolo &, que tiene aquí la misma función que en los menús.

CURSOR --> Aquí están los cursores del programa [ver captura 10]. Se pueden exportar e importar.

ICON --> Aquí están los iconos [ver captura 11]. También se pueden exportar e importar.

En el archivo del ejemplo no está, pero en otros puede aparecer este apartado:

DIALOGDATA --> Aquí están las frases/palabras que aparecen en los cuadros de diálogo desplegables [ver captura 12] y son iguales a las que aparecen en string.

Podemos encontrar algunos otros tipos de apartados pero o bien no pueden editarse para modificarlos o no interesa hacerlo, ya que el resultado no se apreciará.

TIPO 2 (Delphi)

Este otro tipo es un más complejo de manejar, pero igualmente factible. De este tipo son los ejecutables de, por ejemplo, los programas editores de recursos, Exescope y ResHacker y al abrirlos encontraremos prácticamente las mismas clases de recursos. La diferencia estriba en que los cuadros de diálogo están en el apartado llamado RCData y no se presentan gráficamente, sino como una relación de ordenes escritas una tras la otra [ver captura 13].

Aquí hay que buscar las frases/palabras que están entre comillas simples y que son los elementos a traducir (ejemplo: Caption = 'About...' ó Hint = 'About...'). Algunos ejecutables de este tipo no permiten escribir más caracteres de los que tiene la palabra o frase en inglés. Es decir, si vemos 'About...' se puede escribir, como mucho, ocho caracteres, pero si se usa alguno menos los sobrantes se pueden utilizar en la siguiente palabra/frase.

Aunque es algo más complicado, también se pueden modificar la posición y dimensiones de los diferentes elementos de un cuadro de diálogo. Para ello, una vez traducida la frase/palabra, buscamos unas líneas más arriba o abajo las siguientes expresiones:

Left = 27

Top = 128

Width = 241

Height = 15

Esto es equivalente a lo que vimos anteriormente como X, Y,Ancho y Alto. Por lo cual es posible modificarlos de igual forma que se redimensionaba por valores en el TIPO 1. La dificultad está en que para ver los resultados habrá que ejecutar el programa una vez modificado y habrá que buscar la pantalla en cuestión dentro del programa para así poder observar los resultados.

También puede ocurrir (esto es común para los dos tipos) que, una vez traducidos los archivos EXE y DLL del programa, al comprobar el resultado de nuestro esfuerzo, nos apercibamos que en el programa aparece algún texto sin traducir. Esto es debido (normalmente) a que este texto no traducido se encuentra en una parte del archivo diferente a la que contiene los recursos. En estos casos tenemos que recurrir al editor hexadecimal para abrir el archivo en cuestión y desde ahí buscar el texto y modificarlo, teniendo muchísimo cuidado de no modificar nada más y con la gran limitación de que aquí no podremos añadir ni un caracter más de los que tenga la palabra o frase en inglés.

Para facilitarnos un poco este tipo operaciones podemos ayudarnos del programa AnalogX TextScan 1.02. Este programa posibilita la extracción a un archivo .csv de todas las palabras o frases escritas dentro de un archivo EXE, DLL. etc, que sean legibles. Una vez que tengamos este archivo .csv lo renombraremos manualmente con la extensión .txt para poder leerlo con el Bloc de Notas y así seleccionar aquellas palabras/frases que queramos localizar y traducir. Por último sólo tenemos que abrir con el editor hexadecimal el archivo EXE o DLL a traducir, y mediante la herramienta Buscar que tienen estos programas localizar fácilmente la ubicación de la frase ó palabra a traducir.

ARCHIVOS COMPRIMIDOS Y ENCRIPTADOS (CIFRADOS)

Bastantes veces nos encontraremos que, al intentar abrir un archivo, el editor de recursos es incapaz de leerlo y modificarlo porque está comprimido o ha sido encriptado "cifrado" [ver captura 14]. En este caso y con un poco de suerte, aún es posible solucionar este detalle. Lo primero que debemos hacer es averiguar que programa y versión de compresor (packer) ha sido utilizado.

Para ello usaremos el programa File Inspector XL (o similar), con el cual analizaremos el archivo en cuestión. Una vez conocido el packer, [ver captura 15] (en el ejemplo se trata de UPX 0.80-0.84; http://upx.sourceforge.net) lo siguiente es buscar una aplicación que invierta esta compresión o encriptación (unpacker). Lo cual podremos hacer visitando alguna de las dedicadas a ese tema, como http://www.exetools.com/, en la que seguramente encontraremos lo que necesitamos y conseguiremos desempacar el archivo y hacerlo legible para los editores de recursos, tras lo que procederemos como se ha descrito anteriormente.

Uno de los empacadores más populares y por lo tanto muy usado por los desarrolladores de programas por ser de gran calidad a la vez que es gratuito, es el programa UPX. Debido a esto, es muy conveniente tener instalado el programa UPX-GUI 1.20w, con el que podremos en unos segundos y desde el mismo menú contextual del explorador de Windows empacar o desempacar ejecutables y librerías sin ninguna dificultad.

CONCLUSION

He intentado volcar el máximo de información disponible en este breve tutorial para facilitar en la mayor medida posible el inicio en la traducción de programas, pero si tenemos en cuenta que la madre de la ciencia es la experiencia, la mejor manera de adquirir los conocimientos necesarios es, simplemente, practicando. Para ello lo más recomendable es empezar con un archivo ya traducido y su correspondiente original en inglés y así poder ir comparando como se ha realizado la traducción. Y por supuesto no hay que olvidarse de hacer una copia de seguridad del archivo que quieras traducir, por si acaso...

Referencias y artículo original: El tutorial lo recuperé de un artículo creado por Pura Delia, en http://www.proz.com/translation-articles/articles/131/. En su momento el tutorial fue creado por la web de HispanicoWeb, pero no esta ya en línea y parece que se ha perdido todo el contenido que había allí, una pena, vaya desde aquí mi agradecimiento a ese grupo y su trabajo...