Ver Mensaje Individual
  #1  
Viejo 18/04/09, 03:27:24
Array

[xs_avatar]
gmo gmo no está en línea
☾ hibernando...
· Votos compra/venta: (2)
 
Fecha de registro: ene 2009
Mensajes: 7,516
Modelo de smartphone: One
Tu operador: Pepephone
Post Tutorial para traducir programas simples y no tan simples [Windows]

Bueno, Nosss, fuimos!!!

Primero comentare un par de cosillas, a modo de explicación.
Existen múltiples caminos y formas de llegar al mismo sitio, yo solo intentare explicar algunas de ellas, intentando utilizar las que se adaptan mejor a cada necesidad concreta y siempre desde mi punto de vista... por lo que nadie se sienta si no lo explico de la forma que estas acostumbrado.

Los programas que veremos, se pueden utilizar para infinidad de cosas más como traducir, cambiar imágenes, cucus, etc. (entrar en eso ahora...sería interminable) pero aquí los utilizaremos con el fin de traducir únicamente.
(Debo decir que son bastante intuitivos, así, con un repaso por encima y conocimientos básicos de programación es suficiente... luego es cosa de ponerse a 'toquetear' e ir probando...)

Para este Tuto, vamos a utilizar los siguientes programas:

- Pim Backup 2.8
http://www.dotfred.net/default.htm
- RESCO Brain Games 2009 v3 (solo como ejemplo)
http://www.htcmania.com/showpost.php...99&postcount=4
- Notepad 2
http://www.flos-freeware.ch/notepad2.html
- UPX
http://upx.sourceforge.net
- Resource Hacker
http://angusj.com/resourcehacker
- Mas otros programas de utilidad... en post #2...

1.- INTRODUCCION

Traducir programas es relativamente sencillo, solo hace falta conocer 'básicamente' como funcionan ciertas aplicaciones y entender la 'filosofía' de los desarrolladores.
(que varía en función de las necesidades que tenga para cada programa)

2.- REGLAS DE ORO PARA TRADUCIR

2.1.- Conocer y dominar el Idioma original y el traducido.
Parece obvio, pero hablo de 'dominar' ambos idiomas, no de 'entenderlo' ni de utilizar 'traductores automáticos', esto se debe a que en muchas ocasiones, se utilizan el mínimo de palabras para decir lo mismo o en otras debemos encajar el texto, por lo que una traducción 'literal' no sirve y debemos 'interpretar' lo que se quiere decir y decirlo en el nuevo idioma.

2.2.- Respetar al autor del programa
Recordar que no estamos creando un hijo nuestro, solo le estamos cambiando la ropa al hijo de otro. Con esto, se entiende que no se debe dar nuestra 'visión' de como debería ser ó que debería decir. Debemos respetar lo que el autor ha hecho y limitarnos a cambiarlo en nuestro idioma.
Estas dos reglas a mí entender, son fundamentales, ya que una traducción errónea ó mal modificada puede afectar a la 'reputación' del programa sin merecérselo.

2.3.- Revisar la página oficial del programa, a ver si tiene apartado de 'idiomas'
(tenga o no el que nos interesa, nos servirá para clasificar la aplicación)

2.4.- No te olvides de agradecer a quienes te puedan haber ayudado ó de respetar si vienes de un programa con cucu!
Ej. El programa está con cucu por el ‘SeñorX’ y tú realizas la traducción, en la pantalla de Acerca de… lo más probable es que diga ‘Cucu por SeñorX’…
No cambies eso por tu nombre (tu no lo hiciste) pero si puedes agregar…
‘Cucu por SeñorX y Español por Ti’. Vamos, eso sería lo correcto.

3.- TIPOS DE PROGRAMAS/APLICACIONES

Hay varias formas en las que las aplicaciones incluyen el 'texto', yo las separaría en dos grandes grupos:

TIPO A - Los que utilizan archivos externos para visualizar (partiendo de una base) el idioma que seleccione el usuario.

TIPO B - Los que tienen el idioma incluido en las ‘entrañas’ del programa. Estos pueden ser del tipo ‘portable’ que no requieren instalación o archivos normales que se instalan, pero no incluyen un archivo ‘aparte’ con el texto.

Ambas pueden ser multi-idioma ó no, pero los del tipo B son más complejos de modificar. Los del tipo A, por regla general son multi-idioma. (Lo incluya o no, pero está claro que la alternativa te la dan) y es bastante más fácil.

Como ejemplo del tipo B, tenemos el Pim Backup 2.8 (el que veremos aquí) y el Resco Brain Games 2009 como del Tipo A (mi primer aporte a HTCmania)

4.- BIEN, COMENZAMOS

El primer paso es organizarse.
Siempre recomiendo descargar el programa original, de la pagina del autor y buscar los cucus aparte, pero si no es posible, pues nada... mucho cuidado con los bicharracos!!! Que mira por donde… pero hay gente para todo.

Después de instalar el programa/aplicación que nos interese en nuestro PC ó PPC (da igual, la básica es la misma) creamos una carpeta nueva en el PC y copiamos en ella todos los archivos del programa/aplicación que vamos a traducir.
(Esto no es del todo necesario, pero para efectos de tutorial, está bien, así no jodemos lo que no debemos)
Copiamos esa misma carpeta, de modo que tengamos dos iguales con la misma información y archivos.

A una de ellas la llamaremos 'Respaldo' y la dejaremos tranquila durante todo el proceso (vamos, por si la cagamos) y a la otra le llamamos ‘Traducción’ y con ella podemos trastear todo lo que queramos.
Con la carpeta ‘Traducción’ entonces, nos ponemos manos a la obra....



5.- IDENTIFICAR SI EL PROGRAMA ES DE TIPO A O DEL TIPO B

Primero investigamos dentro de las opciones del programa para ver si nos da la opción de cambiar el idioma, de ser así, vemos cuantos idiomas vienen con el programa (nos servirá de referencia) y en caso contrario, nos vamos a los archivos y vemos que tipo de archivos hay (ejecutables, librerías dll, de texto, etc. ó simplemente un ejecutable solo y ya está)

5.1 Aplicaciones del TIPO A

Resco Brain Games 2009, es un programa bastante fácil de traducir (pero laaargo...). Basta con revisar el directorio de instalación para ver que tenemos un archivo del tipo 'dictionary.ini', lo abrimos con un editor de texto (ej. Notepad 2, SuperEdi, etc.) y a reemplazar se ha dicho.

Aconsejo utilizar este tipo de editores de texto, ya que nos reconocen automáticamente el ‘formato’ es decir, nos pintan de colores algunas instrucciones y es bastante más fácil desplazarse por ellos.

Como se estructura un archivo de texto:

Debemos ver como se estructura el archivo, ya que lo normal es que tenga distintos 'apartados' y palabras 'claves' para que el programa identifique que texto debe colocar en cada sitio.

En otros programas, habrá que investigar un poco, ya que dichos archivos existen, pero con otras extensiones... conociendo la básica de cómo funciona, es bastante intuitivo de encontrar que se debe traducir y que no.

(Simplemente abrimos todo lo que podamos con el editor de texto y vamos 'conociendo' como está estructurado el texto de la aplicación)

Es decir... No hay que ponerse a traducir como loco todo lo que venga en ingles (u otro) ya que perderíamos las referencias.

Ejemplo:
Texto original en un archivo a traducir del RESCO Brain Games...
Código:
;========================================================
[PickASymbol]
Name= Pick a Simbol
;========================================================
Traducido, quedaría:
Código:
;========================================================
[PickASymbol]
Name= Escoge un símbolo
;========================================================
Aquí, tenemos (por ejemplo) en el texto original lo siguiente:
Código:
;=== :Salto de línea
[PickASymbol]: Categoría
Name=: Referencia
Pick a Simbol: Texto en el programa.
Esto quiere decir, que los 'saltos de línea' le indican al programa cuando debe buscar una nueva 'categoría' y una vez en esa categoría, encuentra la 'referencia' que busca, coge el 'texto' y lo incluye en el programa.

Entonces, que debemos traducir?... Pues solo el 'Texto' y dejar las categorías y referencias como están, para que el programa cuando busque la referencia 'Name' de la categoría 'PickASymbol', incluya en el programa nuestro texto traducido de 'Escoge un símbolo'.

*Consejo
Antes de traducir todo el texto de un programa, primero traduce solo una parte y comprueba que efectivamente funciona en el programa y luego continúa con el resto.
Te ahorraras mucho tiempo en caso de haber algún error.


Una vez que terminamos y en caso de existir solo un archivo y que el programa no tenga opción de cambiar idioma, deberemos reemplazar el archivo original con el nuevo que hemos traducido y ya está.

Ahora bien, si la aplicación tiene una carpeta del tipo 'lang' y dentro varios archivos como en.txt, de.txt, it.txt, etc. pues copiamos uno, lo renombramos a por ejemplo 'es.txt', traducimos ese y una vez finalizado, lo copiamos a la misma carpeta y así lo tendremos disponible en las opciones del programa.

5.2 Aplicaciones del TIPO B

Vale, el Pim BackUp 2.8, es una aplicación del tipo B, sencillamente por es un archivo único de ejecución, quiero decir, que no se instala, simplemente copiamos el '.exe' al PPC y lo ejecutamos.

Con este tipo de programas es bastante más 'engorroso' de traducir, ya que deberemos desempaquetar el ejecutable y en caso de estar comprimido, averiguar con que herramienta se ha hecho, descomprimirlo, traducirlo y volver a dejar todo como estaba.

6.- A LAS FAUCES DEL LEON

Ahora utilizaremos el 'Resource Hacker'; Este programa sirve para ver, modificar, renombrar, agregar, borrar, etc... en el interior, en las entrañas mismas del ejecutable (EXE)... claro que igual vale, para una librería DLL, un icono ICO, un archivo binario BIN, etc. etc.
Es un programa bastante simple pero muy eficaz con lo suyo…

(Antiguamente se utilizaba para cambiar el texto del famoso 'INICIO' del botón del XP y poner tu nombre o lo que quieras...recuerdas?... no?... pues con este se hacia)

6.1 EL PRIMER ENCUENTRO

Vale, abrimos el archivo PPCPimBackup.exe con el RH y veremos cómo está estructurado el archivo...



Como se puede ver, la estructura del archivo está dividida en diferentes carpetas, que, al ir examinando, veremos el contenido de cada apartado…



Sorpresa!!, como podréis haber comprobado, al intentar acceder a las carpetas ‘Menu’, ‘Dialog’ o ‘String Table’, nos sale esta advertencia…



Que no significa otra cosa que lo que dice… Nuestro ejecutable esta probablemente comprimido con un ‘EXE Compressor’, por lo que no podemos editarlo.

Esto es muy probable que ocurra con muchos archivos (y con otro no.)
Pues con los que no, pasamos a la sección 6.4 y empezamos con la traducción, pero con los de este tipo, nos toca averiguar con que compresor esta comprimido este EXE.

6.2 IDENTIFICANDO EL ‘EXE COMPRESSOR’

Cerramos el Resource Hacker y abrimos el ‘PPCPimBackup.exe’ con el ‘Notepad2’ para ver si nos da alguna pista… veréis algo así:



No, no… no es que estemos aprendiendo chino… sino que estamos viendo todo el contenido del ejecutable en un editor (el cual claramente, no está reconociendo la estructura del archivo)

Mirad bien…. Que veis????
Mirad otra vez… en la línea 50….????
AQUÍ!!!!



No lo veis????
ES UNA FLOR!!!!! Jajajaja - Saludetes pa’ Jorge!
(Si no lo entiendes es que no vienes de HTCmania… jejeje)

Bueno, en serio, seguimos…
Id a la línea 4,5 y 6…



Aquí, nos dice que este archivo esta ‘empaquetado’ con el ‘UPX’, así pues, ya sabemos que hacer ahora…. Desempaquetarlo con el ‘UPX’ para poder editarlo.

6.3 DESEMPAQUETANDO

Cerramos Notepad2 y nos vamos a la carpeta donde tenemos los programas que hemos descargado y copiamos el PPCPimBackup.exe en la carpeta ‘upx303w’.

Podréis leer la ayuda para aprender a utilizar este programa, pero en este caso, les ahorrare esa tarea (ya está bastante largo este tuto, como para seguir leyendo no?)

Abrimos una ventana de comando (CMD)
En la ventana de comandos, navegamos hasta la carpeta ‘upx303w’…



Como ya tenemos el PimBackup en esa misma carpeta, simplemente ejecutamos el siguiente comando:

Código:
 upx -d PPCPimBackup.exe
Le damos al Intro y tendremos lo siguiente:



Que significa que hemos desempaquetado el PimBackup correctamente.
Ya puedes salir del CMD, escribiendo ‘exit’ + Intro o simplemente cerrando la ventana.

Copiamos y reemplazamos ahora el nuevo archivo PPCPimBackup.exe a nuestra carpeta ‘Traducción’.

Podréis notar que el archivo ha pasado de tener 206kb (211.384bytes) a tener ahora 552kb (566.200bytes), esto se debe a que lo hemos ‘descomprimido’.

6.4 EL REENCUENTRO Y AL ATAQUE

Volvemos a abrir el Resource Hacker, pero esta vez abrimos el nuevo PPCPimBackup.exe, el que hemos descomprimido…

Ahora sí que podemos examinar el completo de las carpetas y sus archivos…



Recordáis el Consejo…? ein?

Pues empezaremos con un ejemplo para ver si funciona todo como debe y no ponernos a ‘meter mano’ para que después no funcione.

Abrimos la aplicación en la PPC y nos fijamos en el menú inferior con los botones ‘Exit’ y ‘Options’
Vemos como está el ‘Original’ y nos la guardamos en la retina.

Ahora volvemos al Resource Hacker y buscamos esa información…

Vale, la hemos encontrado en la carpeta ‘Menu’, subcarpeta ‘128’, archivo *1033
(Los archivos 1033 son del idioma Inglés y cada idioma tiene su número, pero como no se trata de un archivo multilenguaje, trabajaremos directamente sobre estos)

Como podréis ver, al seleccionar el 1033 de la carpeta 128, se nos abre una nueva ventanita con la imagen de la pantalla que muestra las opciones del menú de la aplicación… En este caso, los dos botones ‘Exit’ y ‘Options’.
Si pinchas en ‘Options’ veras las opciones que tenemos en el programa…



y en la pantalla principal, esta todo el código ‘desmenuzado’

Modificaremos en la Pantalla principal, el texto de este menú para hacer nuestra prueba.
Ej.
Línea 5 y 6
Código:
{
MENUITEM "Exit",  57665
POPUP "Options"
{
Reemplazamos por
Código:
{
MENUITEM "Salir",  57665
POPUP "Opciones"
{
Y le damos al botón de arriba que pone ‘Compile Script’ (Compilar código)

Inmediatamente veremos nuestro primer cambio…
Hemos pasado de esto…



A esto…



En la ventanita ya aparece Salir y Opciones en español…

(Veis que fácil… ya estas traduciendo….)

Como esto lo estamos haciendo para ‘Comprobar’ que todo está trabajando como debe… dejaremos hasta aquí los cambios y los retomaremos luego.

En el Menú ‘File’, darle a ‘Save’ ó Control+S, lo que te sea mas cómodo…
Minimizamos el Resource Hacker y nos vamos a la carpeta ‘Traducción’
Veremos que ahora tenemos dos archivos…
Esto se debe a que el Resource Hacker guarda Automáticamente una copia del archivo original (antes de tocar nada) y uno nuevo con su nombre real y con las modificaciones que hemos hecho.

Estamos listos para copiar entonces el Nuevo PimBackup.exe a la PPC y probar si todo ha ido bien???

SI?... pues no! recuerdas que al principio ‘descomprimimos’… ahora hay que volver a comprimir…
(Solo si tuviste que descomprimir… que en este caso si lo hicimos…)

6.5 EMPAQUETANDO PARA LA PRUEBA

Copiamos y reemplazamos nuestro nuevo archivo a la carpeta ‘upx303w’.
Abrimos ventana de comandos CMD, vamos hasta la ruta de la carpeta ‘upx303w ‘ y esta vez, introducimos la siguiente instrucción:

Código:
  upx PPCPimBackup.exe


Bien, ahora si estamos para seguir…

6.6 PROBANDO…

Nos aseguramos que en la PPC tenemos el PimBackup cerrado y reemplazamos nuestro nuevo archivo ‘PPCPimBackup.exe’ ya comprimido en el PC por el antiguo en la PPC.

Ejecutar el PimBackup en la PPC….
Te aparece ahora el menú inferior… con Salir y Opciones???
Si? Pues todo ha ido perfecto entonces…
No? mmm… revisa los pasos a ver si se te escapo algo…. Sino, lo comentas y vemos que pasa...

OK.- Todo lo básico esta ya dicho, ahora te puedes poner a traducir todo el programa sin problemas… vuelve al paso 6.3 y empieza el trabajito…

Una vez finalizado ya te puedes dar por satisfecho de tu logro y no te olvides de compartir tus trabajos…
--------------------------------------
*Consejo 2
No olvidarse del consejo 1...poco a poco e ir probando… basta con que cambies un código que no debes, para que el programa no funcione como debe; Al menos hasta que cojas el tranquillo.

--------------------------------------
*Detalle Importante
En muchas ventanas, no muestra toda la información que muestra en el PPC… ¿por qué?
Recordáis que antes hablábamos de las Referencias, los capítulos, etc.… pues lo que estáis viendo ahora mismo en el Resource Hacker, es cómo está programada la aplicación… por lo tanto no es el ‘Texto’ que saldrá en la pantalla, sino la ‘referencia’ que busca el programa para saber que ‘texto’ debe mostrar.
Para traducir correctamente este tipo de texto, debemos encontrar las referencias en el código y reemplazar donde corresponda.

--------------------------------------
Quieres más?
Pues hay muchísimo que puedes hacer… añadir etiquetas de texto, cambiar imágenes, añadir o eliminar funciones del programa, cambiar los iconos, etc. Todo es cuestión que te pongas a ello y descubras todo lo que estos simples programas son capaces de hacer.
--------------------------------------
Fin por ahora.
Gracias a todo el Equipo de HTCmania.com y cualquier duda, sugerencia o lo que estimes conveniente, ve comentándolo para ayudarnos entre todos.
Saludos y suerte con tus nuevas creaciones,
Gmo.-

Nuestro compañero y amigo ALDA, ha creado un hilo para ir compartiendo todas nuestras aplicaciones que vallamos traduciendo..
.... Recopilación programas traducidos (cualquier categoría)....
os aconsejo revisar antes de ponerse a traducir... quizá ya esta echo ;)
y cuando terminéis con vuestro proyecto... no olvidéis de compartirlo

Última edición por gmo Día 04/03/10 a las 21:17:24. Razón: Añadido Dis# .net Decompiler... y alguno mas...
Responder Con Cita
Los siguientes 9 usuarios han agradecido a gmo su comentario:
[ Mostrar/Ocultar listado de agradecimientos ]