Registrarse

[Herramienta] QuEIT: Quick Essentials INTL Translator (Pokémon Essentials 16.1-21.1)

Manurocker95

Doctorando en Ingeniería Biomédica & Game Dev
Miembro insignia
¡Buenas! Visto que la pereza gana a más de uno, he decidido crear un traductor en C# del INTL. QuEIT ha sido probado con Essentials 20.1, la flamante nueva versión de Maruno. Dado que tampoco es que le haya dedicado excesivo tiempo, puede que no vaya del todo fino pero hace peticiones a Google Translate mediante webrequests de .NET y finalmente te genera un TXT con las frases traducidas listo para utilizar en essentials mediante Debug > Other options > Compile text.

Al ser traducción de google translator, muchas frases no están del todo correctas pero os ahorrará el tener que ir una a una en las 26.000+ líneas de texto que tiene Essentials base para traducir. Recordemos que PE20.1 ya permite la traducción de plugins, por lo que todos los scripts se pueden parsear. Está pensado para traducir la versión que se vaya a publicar, aunque si queréis tener solo la base en español y continuar desde ahí, podéis traducirla y luego continuar con los eventos en español.

Además, para aquellos que ya hayan toqueteado el código (malandrines) y al hacer Debug > other options > Extract text, les salga ya en español, podéis utilizarlo para traducir hasta 17 idiomas además del español: Africano, Inglés, Francés, Alemán, Italiano, Catalán, Chino simplificado, Chino Tradicional (las fuentes de ambos dos pueden fallar), Japonés (mismo que el chino), Húngaro, Árabe, Búlgaro, Griego, Coreano, Portugués, Rumano y Holandés; con un solo click.

1662630957300.png


Cómo usar:

A partir de la 1.0.5, toda la configuración de QuEIT se hace mediante el archivo config.data que se encuentra en la carpeta Quick Essentials INTL Translator_Data (junto al .exe). Podéis abrirlo en cualquier editor de texto (Sublime Text, Visual Studio Code, Notepad++...) y cambiar las variables correspondientes. Las configuraciones "Async" permiten que la CPU no vaya tan colgada si hace de cuello de botella pero tarda más en procesar. Los modos síncronos tardan menos en CPUs y RAMs potentes. Asíncrono va más suelto pero tarda más en traducir. Mi recomendación es parsear sync pero traducir async. Una vez ya tengamos la configuración, al hacer click en "Translate" nos dejará seleccionar el TXT que nos saca Essentials y empezará el proceso de traducción automáticamente. Tardará varios minutos según vuestro ordenador. Solo se ha probado en un Ryzen 3800X + 32GB RAM y tarda 5~ mins prox en completar las peticiones de 26K líneas.

Nota: Para utilizar esta herramienta obviamente es necesario tener conexión estable a internet y no tener bloqueada la salida en el router a Google.

Una vez generado el INTL traducido:

NOTA PREVIA: Ya que mucha gente parece tener problemas con esto, antes de utilizar nuestro traducido INTL, necesitamos parsear el de por defecto y añadirlo. Para ello, dejamos el "intl.txt" que nos genera essentials por defecto (si lo hemos borrado, lo volvemos a generar) y compilamos mediante Debug > other options > Compile text. Cambiamos el nombre a "english.dat" y lo movemos a la carpeta Data.


Para utilizar el intl generado por QUEIT, se tiene que cambiar el nombre del archivo a "intl.txt" y copiarlo en la raíz del proyecto de Essentials. Una vez arrancado el proyecto de Essentials desde RPG Maker XP (sí, dándole a play) , vamos a Debug > other options > Compile text y se generará un intl.dat. Cambiamos el nombre a "spanish.dat" y lo movemos a la carpeta Data. Este proceso lo haremos para cada idioma al que queramos dar soporte. En los scripts del proyecto, vamos al script "Settings" donde hay un array llamado LANGUAGES. Lo dejáis tal que:

1662630892673.png


Y automáticamente os dejará escoger el idioma. Podéis forzar por código el idioma que queráis. Obviamente, si queréis utilizar más de dos, los añadís al array.

1662631156524.png


1662631111484.png


1662631118314.png


Os dejo un vídeo para los que os cueste seguir la guía escrita:


Troubleshooting:

QuEIT no es mágico. Pueden darse problemas y sois vosotros los que debéis comprobar el archivo intl.txt que se genera. Sobretodo para reportar los bugs. De todas formas, si una vez traducido os da el archivo intl.txt algún problema a la hora de compilar, puede ser por:
  • Algún fallo en el que haya más líneas que en el original. Comprobad que ambos intl.txt tienen las mismas líneas. No puede haber líneas duplicadas "de más" ni líneas de menos. Tampoco líneas donde la que se tenga que traducir sea diferente a la que "sirve de referencia". Los caracteres en blanco y mayúsculas SÍ importan. "Hola que tal" no es lo mismo que "Hola que tal" ni que "Hola, qué tal".

  • Que alguna sección tenga líneas vacías (Desde la 1.0.8 ya no debería ocurrir ). Esto puede pasar si ya habíais traducido al español el PBS antes de utilizar QuEIT. Se ha reportado un caso en el que fallaban las habilidades pero puede pasar con nombres de ataques, habilidades o con nombres de objetos. En la 1.0.6 se ha solucionado mediante el archivo config.data que se encuentra en la carpeta Quick Essentials INTL Translator_Data (junto al .exe). Podéis abrirlo en cualquier editor de texto (Sublime Text, Visual Studio Code, Notepad++...) y cambiar las variables SkipAbilities, SkipAttackNames o SkipItemNames a true según hayáis modificado estos valores. Ésto puede aplicar a ataques, habilidades o items que NO salgan en los juegos originales, si es que usáis PKHeX como base de datos (también configurable en el mismo archivo). Si os da error en este punto, revisad las secciones correspondientes. .

  • Habéis cambiado eventos y demás DESPUÉS de haber sacado el intl.txt original pero ANTES de dar al "Compile text". Como es evidente, si cambiáis los textos, Essentials espera unos valores diferentes a los que habrá en el extraído. Por esto mismo, entre que extraéis el txt y compiláis el dat, no podéis modificar ningún texto. Lo recomendable es usar QuEIT al final del desarrollo o al inicio si vais a trabajar únicamente en otro idioma.

  • Hay textos que no se traducen correctamente, por ejemplo: "Party" se traduce como "Fiesta" en vez de Equipo, ya que es una palabra que se utiliza para ambas traducciones. Para solventar esto, todas aquellas frases (sean de una palabra o más) que sepáis cual es de antemano la traducción, deben estar incluidas en el "keywords.csv" que se encuentra en la carpeta Quick Essentials INTL Translator_Data desde la versión 1.0.8. Si queréis meter frases enteras con comas, debéis usar comillas: "Hello, how are you?","Hola, ¿qué tal?. Para editar este archivo podéis o bien usar Excel haciendo que use las comas como separador, o cualquier editor de texto y seguir el formato. Nota: Las keywords están solo preparadas para inglés-español, ya que nadie ha reportado cuales deberían ser en otros idiomas.

  • Al logo "pokémon" pregunta por dar acceso a conexiones a internet. Esto abre un modo debug que permite debuggear logs en desarrollo. Simplemente dadle a permitir en redes privadas (la vuestra de casa lo es) y no tenéis que tocar nada más. No afecta en nada.

  • Si ponéis en el config.data vuestra API Key de DeepL y ponéis usedeepL a true, podéis usarlo como motor de traducción en vez de Google Translate.

  • Al cambiar el idioma dejan de funcionar los controles: Comprueba que no uses tus controles a través de texto. Lo mismo estos textos no tienen que traducirse o mantener un nombre específico. Las keywords pueden ayudaros a esto mismo.


Descarga: Zelda de descarga

Créditos:

- Maruno y el equipo de Essentials por el INTL y Essentials, así como los gráficos utilizados en QuEIT.
- Kaphotics: PKHex core.
- Manurocker95 todo lo demás x)
 
Última edición:

Manurocker95

Doctorando en Ingeniería Biomédica & Game Dev
Miembro insignia
Testeado con INTLs de 16.2, 17.2, 19.1, 20.1 bases (sin scripts extras añadidos).
 

Manurocker95

Doctorando en Ingeniería Biomédica & Game Dev
Miembro insignia
Fixeados los textos donde las exclamaciones dividían la cadena de caracteres:

 

Manurocker95

Doctorando en Ingeniería Biomédica & Game Dev
Miembro insignia
Como los objetos y los movimientos no se traducen correctamente (porque Game Freak no hizo traducción literal), ahora estos elementos se traducen mediante mi wrapper de PKHex que ahora soporta multi-idioma. Tened en cuenta que GF oficialmente da soporte a 8 idiomas, por lo que si seleccionáis uno que no esté disponible, estos aparecerán en inglés.

1663679145261.png
 

Manurocker95

Doctorando en Ingeniería Biomédica & Game Dev
Miembro insignia
Subida la 1.0.4 en la que además se puede cancelar la traducción para guardar lo que se haya traducido (parcialmente).

1663684816608.png


Desde el menú se puede seleccionar "Use PKHex" para traducir los objetos, movimientos y habilidades a las oficiales de Pokémon.
 

Manurocker95

Doctorando en Ingeniería Biomédica & Game Dev
Miembro insignia
versión 1.0.5 subida con actualización de la configuración. Ahora se pueden cambiar varios parámetros desde el archivo config.data que se encuentra en la carpeta "Quick Essentials INTL Translator_Data". Podéis editarlo con cualquier editor de texto. Añadido futuro soporte a DeepL pro como backend para las request y soporte para la PokéAPI para textos extras. UI ahora también traducida (excepto el dropdown de idiomas):

1666810005830.png
 

Manurocker95

Doctorando en Ingeniería Biomédica & Game Dev
Miembro insignia
Los nombres también pueden traducirse si se quiere a las versiones alternas de los diferentes idiomas (si disponible):

Alemán
1666814923809.png


Francés
1666814948402.png


Japonés...
1666814971857.png
 

Russeus

Aprendiz de leyenda
Hola, Manu, creo seguir todos los pasos al pie de la letra, pero los menús y algunos textos de batalla, entre otros, me siguen apareciendo en inglés.
Tengo un archivo *.dat para inglés y uno para español, con el script de Settings editado para agregar ambos lenguajes.

¿Podrías guiarme en qué pude haber hecho mal, o cuál podría ser el problema?

¡Gracias por la herramienta y saludos!
 

Manurocker95

Doctorando en Ingeniería Biomédica & Game Dev
Miembro insignia
Hola, Manu, creo seguir todos los pasos al pie de la letra, pero los menús y algunos textos de batalla, entre otros, me siguen apareciendo en inglés.
Tengo un archivo *.dat para inglés y uno para español, con el script de Settings editado para agregar ambos lenguajes.

¿Podrías guiarme en qué pude haber hecho mal, o cuál podría ser el problema?

¡Gracias por la herramienta y saludos!
los dat los tienes en la carpeta Data y además , los tienes correctamente asignados (poniendo los nombres) en settings?
 

Russeus

Aprendiz de leyenda
Si, ambos english.dat y spanish.dat en la carpeta Data.
En Settings lo tengo así:
1667696868216.png
 

Manurocker95

Doctorando en Ingeniería Biomédica & Game Dev
Miembro insignia
Si, ambos english.dat y spanish.dat en la carpeta Data.
En Settings lo tengo así:
Ver el archivo adjunto 12117
¿Qué versión de essentials usas? La 19 y 20 necesitan a veces un “full recompile” pulsando control izquierdo mientras das al play en rpg maker o Debug > other information > compile Data. Al hacerlo y reiniciar el juego debería preguntarte nada más empezar, qué idioma quieres utilizar.

Pero vaya, no debería ser más largo que esto. Lo he grabado para la 20.1 pero es igual en todas:

 
Última edición:

Russeus

Aprendiz de leyenda
Usé la v20.1. Veré tu video y seguiré los pasos al pie de la letra. Ya regreso.

Edit:
Pues ahora ha funcionado jajaja
Es extraño que tus pasos son exactamente como los había hecho (no me considero malo siguiendo instrucciones), pero antes había hecho algo diferente. Cuando extraje el INTL del juego, cerré el juego para traducir el archivo, y más tarde lo abrí nuevamente para compilar. Ahora lo hice todo sin cerrarlo, de un solo viaje y con una carpeta de Essentials nueva, y de alguna manera funcionó.
Nuevamente, ¡gracias por tu ayuda!
 
Última edición:
Arriba