Registrarse

[RPGXP] [Tutorial] Cómo traducir/localizar correctamente los textos del juego en Pokémon Essentials.

Manurocker95

Doctorando en Ingeniería Biomédica & Game Dev
Miembro insignia
¡Buenos días! Hoy traigo este tutorial porque parece que el 99% de la scene se ha dedicado a hacer las cosas como se enseña el inglés: MAL. Punto.

Bien, si miramos la famosa base recopilatoria de Pira 16.3, las traducciones que hace la gente (sobretodo en otras comunidades que luego se las dan de listos) o simplemente mi antiguo juego (cuando no tenía conocimiento de esto hasta que fue tarde), podéis daros cuenta de que están modificando el código fuente:

1620471291714.png


ERROR GARRAFAL.



"¿Por qué? Si yo quiero la base en español, ya que mis usuarios lo son." Os preguntaréis algunos. Bien, pongamos que modificáis todos los textos al español y ahora queréis expandir vuestro juego a la scene inglesa. ¿Vais a re-traducir de nuevo TODO al inglés? No tiene ningún sentido.

Para solucionar esto, Maruno y compañía precisamente añadieron el INTL, que permite crear archivos para los idiomas que queramos. Para este ejemplo usaré Pokémon Essentials 17.2 vanilla, que es la que tengo en el PC, pero esto es válido para TODAS las versiones de Pokémon Essentials. Comencemos:

1) Vamos a las opciones de DEBUG. En versiones anteriores de Essentials tendremos esta opción accesible desde el Editor.exe. Como fue removido en 17.1+, lo tendremos que hacer desde el juego.

1620471739145.png


2) En 17.2 buscamos en Other Options...> Extract Text. En versiones anteriores tendremos que buscar esta opción en el enooorme dropdown.

1620471800955.png


Vemos que nos pone "TODOS LOS TEXTOS HAN SIDO EXTRAIDOS A UN ARCHIVO INTL.TXT" y podemos comprobar que se nos ha generado dicho archivo en la raíz de nuestro proyecto.

1620471854035.png


3) Si lo abrimos con nuestro editor de texto favorito, veremos que contiene TODOS los textos duplicados. Estos textos TAMBIÉN INCLUYEN LOS DE LOS EVENTOS POR ESO ES MUY IMPORTANTE COMENZAR EN INGLÉS SI VAMOS A USAR LOCALIZACIÓN MULTI-IDIOMA.

1620471897355.png


4) Como nos marcan las dos primeras líneas que hacen de instrucciones, tenemos que traducir la segunda línea de cada texto. En este punto podéis utilizar mi herramienta QuEIT (https://whackahack.com/foro/threads/queit-quick-essentials-intl-translator-pokemon-essentials-16-1-20-1.67551 ) para hacer una traducción masiva al idioma que queráis. Hay que fixear algunas frases pero por lo general os ahorra trabajo en este punto.

1620472015179.png


5) Guardamos nuestro archivo INTL.txt. Una vez acabado, volvemos a Essentials y damos a "Compile Text". Se nos guardará la localización en un archivo "Intl.dat".

1620472090071.png


1620472119338.png


ESE es el archivo del idioma al que queramos traducir.

6) Cambiamos su nombre al del idioma.dat y lo movemos a la carpeta Data.

1620472170213.png




Nota: Tenéis que dejar uno por defecto totalmente en inglés y usarlo como "english.dat" para tener automáticamente la localización al inglés y a otro idioma. Es decir, sacáis el INTL.txt de Essentials y lo volvéis a compilar acto seguido para la versión en inglés.

7) Abrimos nuestro proyecto de Essentials y vamos al editor de scripts. Buscamos el script Settings (suele ser el primero)



Bajamos a LANGUAGES y ponemos la referencia de nuestros archivos en el array:



Si queremos que esté por defecto el español, ponedlo en el array como primera opción. De todas formas, como veis el nombre del dat corresponde con los que están en el array de SETTINGS.



Podríamos hacer un script que nada más empezar el MAIN, tradujera al idioma del PC, pero si no, nada más añadir esto, aparecerá otro botón al menú de carga: Un selector de Idiomas.



Y si lo pulsamos, nos sale un menú donde el usuario puede elegir el idioma que prefiera. Al pulsar uno TODOS los textos cambian a ese idioma automáticamente.



Permitiendo así, una correcta localización del juego.

Por favor. Fomentemos NO traducir los textos modificando el propio código en el idioma nuevo.

Gracias.

RECORDATORIO: Si os da mucha pereza lo de traducir a mano, he creado una herramienta que os lo hace automáticamente por vosotros para que solo tengáis que solucionar algunas pocas frases que no traduce correctamente:https://whackahack.com/foro/threads/queit-quick-essentials-intl-translator-pokemon-essentials-16-1-20-1.67551/#post-486700

Si preferís verlo en video, aquí tenéis mi tutorial:


Cómo utilizar gráficos en diferentes idiomas:

Por ejemplo: cursor_command.png en el caso de 20.1:

En el script Battle_Scene_Menus, línea aprox 134 donde pone
Código:
      @buttonBitmap = AnimatedBitmap.new(_INTL("Graphics/Pictures/Battle/cursor_command"))
Debería poner:

Código:
 @buttonBitmap = AnimatedBitmap.new(_INTL("Graphics/Pictures/Battle/cursor_command_#{Settings::LANGUAGES[$PokemonSystem.language][0]}"))
y tener 2 imagenes:
Código:
Graphics/Pictures/Battle/cursor_command_English.png
y
Código:
Graphics/Pictures/Battle/cursor_command_Español.png
Ver el archivo adjunto 13345
 

Adjuntos

Última edición:

Manurocker95

Doctorando en Ingeniería Biomédica & Game Dev
Miembro insignia
Si queréis traducir un plugin es tan fácil como mantener los INTL.txt de los idiomas, añadir las nuevas frases y volver a compilar. No uséis burradas, por favor.
 
Última edición:

Manurocker95

Doctorando en Ingeniería Biomédica & Game Dev
Miembro insignia
1620473259503.png


Esto no es más que mucho trabajo inútil que no ahorra nada en el caso de uso de querer usar multi-idioma con expañol e inglés, teniendo en cuenta que la base está ya en inglés (cosa lógica por otro lado).
 
Última edición:

Manurocker95

Doctorando en Ingeniería Biomédica & Game Dev
Miembro insignia
Además de lo horroroso que es ver el Spanglish así. Aunque también hay gente que programa en español y equisde.
 
Última edición:

EuroFer

El Tio Del helix
Miembro del equipo
Moderador/a
Sinceramente a mi me tiraba para atras usar versiones posteriores de essentials por eso mismo porque estaban en ingles, pero ahora que el pana manu me abierto los ojos, podré hacer mi juego en valenciano, con fiestas en descampados y botellones, fuera coñas haces bien hacer esto para que la gente no se cague en el codigo!
 

Manurocker95

Doctorando en Ingeniería Biomédica & Game Dev
Miembro insignia
Sinceramente a mi me tiraba para atras usar versiones posteriores de essentials por eso mismo porque estaban en ingles, pero ahora que el pana manu me abierto los ojos, podré hacer mi juego en valenciano, con fiestas en descampados y botellones, fuera coñas haces bien hacer esto para que la gente no se cague en el codigo!
La cosa es que si lo haces en inglés y traduces tus textos, solo haces una traducción, no curras doble. Y mucha gente luego se carga scripts y demás por tocar cuando no saben, de esta manera no tocan nada más que un archivo de texto. Es un coñazo, pero es sencillo. Para todos los que ya usan la versión todo traducida al español, tendrán que cambiarlo al inglés de nuevo (si quieren ese idioma) xD

Pero para añadir idiomas, pos viene guachi.
 

Manurocker95

Doctorando en Ingeniería Biomédica & Game Dev
Miembro insignia
Ya que hay gente aún con problemas en el proceso, he grabado un video en la 20.1. El INTL_Spanish.txt está sacado con QuEIT y sin "fixear" los textos, pero os valdría cualquier traducción.

 

pingupollas

Usuario de plata
Buenas,

Tengo un problema y no sé si está relacionado con que he hecho algo mal o si simplemente no se puede solucionar mediante este método.

He seguido los pasos al pie de la letra y me da las opciones de español e inglés. A pesar de que la mayor parte del texto se me traduce, el texto perteneciente a eventos como "You found a Pokeball" se mantiene en inglés.

¿Podrías decirme si ese texto debería haberse traducido también o si se ha de traducir de otra forma? Muchas gracias de antemano.
 

Manurocker95

Doctorando en Ingeniería Biomédica & Game Dev
Miembro insignia
Buenas,

Tengo un problema y no sé si está relacionado con que he hecho algo mal o si simplemente no se puede solucionar mediante este método.

He seguido los pasos al pie de la letra y me da las opciones de español e inglés. A pesar de que la mayor parte del texto se me traduce, el texto perteneciente a eventos como "You found a Pokeball" se mantiene en inglés.

¿Podrías decirme si ese texto debería haberse traducido también o si se ha de traducir de otra forma? Muchas gracias de antemano.
Todos los textos que no usen INTL en el código (si buscas el texto en el código podrás comprobarlo), no se añaden al archivo de texto y por tanto no pueden ser traducidos de esta forma. Tendrás simplemente que añadir el _INTL("texto") para que se exporten. En principio los "You found..." deberían traducirse sin problemas. Un ejemplo de esto:

1674855134134.png


Como ves, usa el INTL. De todas formas, si en tu caso lo utiliza, comprueba también el intl.txt generado a ver si tienes traducidas esas líneas que te dan problemas. Si has usado QuEIT, este texto se debería traducir sin problema. He probado en 20.1 y no me ha dado ningún problema:

1674855005126.png


1674855287658.png


En el caso de español habría que hacer una forma de diferenciar entre masculino o femenino o cambiarlo por una frase genérica para ambos.

Esto mismo puede ocurrir con los gráficos. Hay varios que no usan multi-idioma cuando sí deberían. Para hacerlo, hay que darle soporte según el idioma actual. Por ejemplo: cursor_command.png en el caso de 20.1:

En el script Battle_Scene_Menus, línea aprox 134 donde pone
Código:
      @buttonBitmap = AnimatedBitmap.new(_INTL("Graphics/Pictures/Battle/cursor_command"))
Debería poner:

Código:
      @buttonBitmap = AnimatedBitmap.new(_INTL("Graphics/Pictures/Battle/cursor_command_#{Settings::LANGUAGES[$PokemonSystem.language][0]}"))
y tener 2 imagenes: Graphics/Pictures/Battle/cursor_command_English.png y Graphics/Pictures/Battle/cursor_command_Español.png

1674855682359.png


p.d: para futuras dudas es mejor el discord ya que el foro ya no se usa para resolver dudas :)
 
Última edición:

Javystal

Usuario de bronce
Sé que pone lo que hay que hacer para traducir los plugin, pero no lo entendí del todo bien (perdón las molestias)

Yo por ejemplo me descargo la base del Essentials 20.1 en español, y quiero traducir...el plugin del Essentials Deluxe o el de Generation 9 Pack, por ejemplo. ¿Cómo tendría que hacer para que me tradujera los INTL de esos plugins?
 

Manurocker95

Doctorando en Ingeniería Biomédica & Game Dev
Miembro insignia
Sé que pone lo que hay que hacer para traducir los plugin, pero no lo entendí del todo bien (perdón las molestias)

Yo por ejemplo me descargo la base del Essentials 20.1 en español, y quiero traducir...el plugin del Essentials Deluxe o el de Generation 9 Pack, por ejemplo. ¿Cómo tendría que hacer para que me tradujera los INTL de esos plugins?
Los plugins se pueden traducir con INTL a partir de Essentials 20, asi que solo tienes que exportar todos los textos y traducir el archivo.
 

Javystal

Usuario de bronce
¿Y los exporto con el mismo método que se usa para traducir el juego base? (Es decir, ir al modo Debug, extraer texto y luego traducir a mano o con tu programa?
 

Manurocker95

Doctorando en Ingeniería Biomédica & Game Dev
Miembro insignia
¿Y los exporto con el mismo método que se usa para traducir el juego base? (Es decir, ir al modo Debug, extraer texto y luego traducir a mano o con tu programa?
Se sacan todos los textos tanto del editor de scripts como plugins en un archivo intl.txt. Solo tienes que traducirlo, compilarlo y ponerlo en la carpeta Data y voilà. Lo recomendable es hacerlo al final del todo para solo traducir 1 vez.
 

Javystal

Usuario de bronce
Vale, lo hice dos veces y es como si no me funcionara. Tipo, yo traduzco y compilo usando ese INTL (el ya traducido), luego llamo al archivo spanish.data y lo reemplazo con el que ya está en data, ¿qué estoy haciendo mal? ¿Debo borrar el spanish.data y no reemplazarlo o cómo? De nuevo perdona las molestias, soy algo novato en esto
 

Manurocker95

Doctorando en Ingeniería Biomédica & Game Dev
Miembro insignia
Vale, lo hice dos veces y es como si no me funcionara. Tipo, yo traduzco y compilo usando ese INTL (el ya traducido), luego llamo al archivo spanish.data y lo reemplazo con el que ya está en data, ¿qué estoy haciendo mal? ¿Debo borrar el spanish.data y no reemplazarlo o cómo? De nuevo perdona las molestias, soy algo novato en esto
Salvo que tuvieras uno antes no debería haber ninguno que sustituir. En cualquier caso, solo tienes que seguir los pasos que pongo en este mismo tutorial. Una vez tienes el archivo en la carpeta Data solo te falta añadirlo al array de idiomas y seleccionar Español dentro del juego.
 
Arriba