Mostrar Mensajes

Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.


Mensajes - Ravenford

Páginas: [1]
1
Vale, lo primero, perdona que haya tardado tanto en responder, ando a tantas cosas...

Veamos, por el resultado y por lo que explicas diría que has tratado de traducir "a lo bruto" de una versión a otra, un enfoque directo que rara vez funciona. Así que vamos a hacer un repaso a una de las formas más básicas de traducción: Edición hexadecimal.

Para empezar requieres un editor hexadecimal. Yo te recomiendo HxD: https://mh-nexus.de/en/hxd Seguramente hay mejores, pero es sencillo y gratis.

Una vez instales HxD, ábrelo y a continuación arrastra uno de los "BARENA.EXE" dentro del programa. Debes saber exactamente con que .exe estas trabajando, así que te recomiendo copiar cada uno y renombrarlos ESPAÑOL.EXE y INGLES.EXE para identificarlo más fácilmente. Para esta demostración empezaremos por el español.

Al abrir el archivo veras algo así:


Lo importante aquí es son las tres columnas que he marcado en la imagen.

La columna roja (1) es el offset o el "intervalo". La explicación sencilla y que te sirve a ti es simplemente "Es una dirección para localizar 16 valores hexadecimales específicos". Solo te interesa como referencia a la posición de los datos que buscas y es parcialmente inalterable.

La columna verde (2) son los 16 valores del offset, expresados cada uno de forma hexadecimal. Puedes modificarlos y con ellos modificaras el programa, pero debes saber MUY BIEN lo que haces así que, en tu caso, mejor no los toques. Son el aspecto menos importante para ti.

Finalmente, la columna azul (3) es el texto decodificado, lo que representan los 16 valores hexadecimales en lenguaje "normal". La mayoría parece un galimatías sin sentido, pero eso se debe a que es código maquina reinterpretado, que en este estado no tiene demasiado valor o sentido. Esta columna es modificable, lo que hará que modifiques los 16 valores hexadecimales. Esta ultima columna es la más importante, porque es donde trabajaremos para la traducción.

Tu objetivo ahora es descender poco a poco por la 3º columna texto y encontrar texto reconocible en castellano y que sea indudablemente texto del juego, no de comandos o comentarios del programa, que raramente esta en castellano. Otra opción es ir a la barra de herramientas, opción buscar > buscar y pedir que busque en todo el archivo una palabra especifica que sabes que existe en el juego, por ejemplo "armadura", y a partir de allí busca el punto inicial de los textos del juego. Te voy a facilitar la vida y decirte que los textos del juego empiezan en el offset 000F3630, así que dirígete allí y apunta en una libreta la dirección.

Vale, tienes los textos en castellano. Ahora toca repetir el proceso con el .exe en ingles.

Ábrelo y trata de localizar el texto del juego. Tu mejor baza es buscar la palabra "armor" para después buscar el inicio de los textos del juego.

Si lo has hecho, te habrás dado cuenta de una particularidad: Los textos de la versión inglesa empieza en el offset 000F3400, no en el 000F3630. Esta es la razón por la que intercambiar los .exe entre juegos no funciona, las localizaciones de memoria son diferentes para uno y para otro y, por lo tanto, crean errores fatales en el programa.

Bueno... Ahora pensaras que solo debes coger los textos en castellano, copiarlos y pegarlos en el .exe en ingles tal cual para tener el juego finalmente en castellano ¿No?. Desgraciadamente, eso muy posiblemente no funcionara. Puedes probarlo pero no creo que funcione por lo siguiente:

Por un lado, hemos podido comprobar que la localización de los textos es diferente y, muy seguramente, la longitud de todo el conjunto de textos también de una localización diferente, así que no sabes lo que te estas cargando por el camino.

Por el otro, miremos que organización tienen estos textos. Cojamos los tres primeros offsets de los textos de cada archivo y comparémonoslo.

  Español: Intentando mover una unidad ilegal..Armadura.Mor
  Ingles:   Trying to move illegal unit..Armor.Morale.Curren

Los puntos rojos no son literalmente puntos, son bytes 00 que marcan la separación de las diferentes cadenas de texto (Los puntos blancos si son puntos de texto, generalmente con el valor E2). Como ves, las dos líneas no tienen la misma distribución de cadenas de texto, así que cada una de ellas empieza y acaba en una dirección distinta. Si el sistema busca directamente direcciones para localizar los textos del juego, lo más seguro que si pegas en la versión inglesa los textos de la versión española tal cual solo crees más errores. (¡Pero ojo! puedes probarlo a ver que pasa...)

¿Entonces, si es así, no se puede traducir el programa? Si se puede traducir, pero te costara más trabajo...

Vas a tener de ir texto por texto de la versión inglesa cambiándolos al castellano, siempre respetando la disposición de los puntos 00 para mantener las localizaciones de memoria intactas, de manera que la maquina puede localizar los textos. Esto implica que vas a tener de ser original y creativo para afrontar ciertos problemas, por ejemplo:

     - ¿Qué harás cuando la cadena de texto inglesa sea más larga que su versión española? Lo más lógico es llenar de espacios los huecos sobrantes y crear la ilusión de que el texto ha acabado antes.
     - ¿Qué harás cuando la cadena de texto inglesa sea más corta que su versión española? ¿Por ejemplo, "armor" y "armadura"? Esto es mas peliagudo. ¿Quizás un diminutivo? lo dejo a tu inventiva.
     - ¿Qué harás con los símbolos especiales españoles, como la Ñ o los acentos? Deberás probar si existen en el juego y si no lo hacen, deberas decidir como sustituirlos si no poder crearlos tu mismo.

Como ves, será una tarea laboriosa y te recomiendo que hagas muchas copias y versiones para mantener un control ordenado.

Bueno, creo que esto te servirá para empezar. Espero que todo esto te sirva para llevar a cabo tu traducción y que me informes de tus progresos. ¡Nos vemos!

Páginas: [1]