uilp__44a escribió:piskimojoso escribió:uilp__44a escribió:Traigo buenas noticias ya que descubri por que Crashea la Traduccion de Yakuza 0 en PS4 y es por una mala practica que tuvo Kaplas al hacer que los tildes y la ñ estuvieran como caracteres en el msg
Cualquier yakuza te va a crashear por eso, pero para evitar que crasheara Kaplas hizo que se parchara el .exe ya que si no lo parcheas el juego tambien te crasheara en PC
En cambio los demas Yakuzas en donde pude portear la traduccion a PS4 tiene esos caracteres de esta manera:
Si se fijaron la letra "ñ" tiene que ponerse como "ñ" lo mismo va para los tildes...
La forma de arreglarlo es directamente desde los msg reemplazar los tildes por las mismas letras sin tilde y la ñ como n (ya que como no se pueden agregar mas caracteres al msg sin el programa que se uso para traducir ese juego no puedo poner la ñ de ninguna forma)
¿Qué opinan de esto, Vale la pena?
Me parece que es un muy buen descubrimiento
y vale seguramente la pena. Da siempre gusto ver alguna traduccion mas para la PS4, Los msg, son un tipo de archivo de ps4 cierto?Saludos y gracias
Los .msg son los archivos de los cuadros de diálogo en los Yakuzas es donde esta la mayor parte del texto del juego (casi todo) Bueno esto se puede arreglar con el Visual Studio Code osea reemplazo los tildes por la letra sin tilde, pero mi problema es con la letra "ñ" ya que usa 2 caracteres en los .msg al ser "ñ" y en esos archivos no puedes agregar mas caracteres de los que hay sin el programa que se uso para traducirlo (el programa que se uso para traducirlo pone "ñ" en vez de "ñ" por lo que no nos sirve) por lo que desde anoche que estoy pensando por que letra reemplazar la "ñ" yo pensaba reemplazarlo por una "n" pero hace que palabras como año suenen mal
o reemplazarla por un espacio vacio
Sin conocimiento de cuál es el problema en particular con ese juego y viendo las imágenes, lo que puedo decirte es que en otras versiones de yakuza se han representado los acentos y las "ñ" en UTF-8, mientras que en esta traducción se ha codificado en ASCII extendido. Pudiera ser que la librería que se está utilizando internamente para imprimir diera una excepción.
Ejemplo en python para tratar la cadena como UTF8 (produce excepción si se usan caracteres en ASCII extendido):
La solución sería la que comentas, reemplazar los caracteres por sus equivalentes sin tilde, o reemplazarlos por su codificación en dos bytes teniendo en cuenta que habría que alterar las cabeceras. Insisto en que no he prestado anteriormente caso a estas traducciones por lo que no estoy muy familiarizado con los formatos, pero parece por la imagen que hacen referencia a la posición donde empiezan las cadenas de texto y el respectivo texto.
Si a una cadena se añadiera un byte, pues habría que incrementar la posición a la que apuntan las demás. En la imagen previa en la posición 0x662 está la palabra "No". En 0x665 "Talk_No". Si cambiamos la primera por "No!", entonces la siguiente debería apuntar a 0x666 al haber añadido un byte adicional.
Edit: Después de escribir lo anterior y pensar que alguien debía haber mirado como funciona el formato, efectivamente kaplas tiene un proyecto abierto para realizar el proceso de traducción. Está aquí:
https://github.com/Kaplas80/TranslationFramework2En el fichero TranslationFramework2/src/Plugins/TFGame.Yakuza0/Encoding.cs se realizan unos cambios en la codificación:
EncodingReplacements = new List<Tuple<string, string>>
{
new Tuple<string, string>("\\n", "\n"),
new Tuple<string, string>("\\r", "\r"),
new Tuple<string, string>("™", "~"),
//new Tuple<string, string>("^", "%"),
new Tuple<string, string>("®", "\u007F"),
new Tuple<string, string>("¥", "\\"),
new Tuple<string, string>("\u266A", "¤"), // Nota musical
new Tuple<string, string>("\u2665", "§"), // Corazón
new Tuple<string, string>("\u221E", "\u00B8"), // Infinito
new Tuple<string, string>("\uFF05", "^"), // Porcentaje
new Tuple<string, string>("\u25B3", "tf1"), // Triángulo
new Tuple<string, string>("\u25CB", "tf2"), // Círculo
new Tuple<string, string>("\u25A1", "tf3"), // Cuadrado
};
Bastaría con añadir los cambios y regenerar los ficheros msg. Por ejemplo, para la ñ:
new Tuple<string, string>("\xf1", "\xc3\xb1")