Muchísimas gracias por jugarlo!! Me alegro de que te haya gustado! :'D
Implementar los diferentes idiomas fue complicado, no sé si es la mejor manera de hacerlo pero me acabó funcionando! Probablemente en otras versiones de RPGMaker o implementando un menú de opciones sea más práctico hacerlo, pero para VX Ace lo hice de esta manera:
1. En el primer mapa que sale al iniciar el juego, puse un evento de decisión para elegir entre los diferentes idiomas (la posición del recuadro la asigné desde el mismo script editor que viene en el programa). Según el idioma elegido en esta decisión, se asigna un valor diferente a una variable llamada Language (0 si se elige inglés, 1 si se elige español, etc). Esta variable es la que indicará en qué idioma debe aparecer el texto.
2. Para mostrar el diálogo en diferentes idiomas, tuve que hacerlo de dos maneras:
- Para eventos que solo requieran una página, se puede hacer una página diferente para cada idioma y mostrarlas según el valor de la variable:
Por ejemplo, este evento tiene cuatro páginas, una para cada idioma. Como la condición de que se ejecute esta página es que la variable Language esté en valor 0 o mayor, aquí irá el texto en inglés. En la siguiente página, la condición será que Language esté en valor 1 o mayor, y tendrá el texto en español. Así sucesivamente. (Por desgracia el "X o mayor" no se puede cambiar, pero no debería dar problemas si las páginas están ordenadas de menor a mayor valor.).
- Para eventos que necesiten más de una página, usé ramas condicionales dentro de la misma:
Como no hay manera de hacer condicionales con varios if, es una cadena de ramas condicionales: la primera mira si la variable está a 0, si no lo está, pasa a else, que tiene la siguiente rama condicional que mirará si está a 1, si no lo está, pasa a la siguiente que mirará si está a 2, y etc. Esto puede alargarse mucho si son diálogos muy largos o muchos idiomas, pero por lo menos funciona.
3. La parte un poco más complicada es la de traducir las opciones de menús y la pantalla del título, porque requiere trastear un poco por el editor de script. Recomiendo ir con mucho cuidado con esto porque alguna vez me he cargado sin querer el script y el juego crasheaba apenas intentar abrirlo :''')
La manera como lo hice fue buscar los sitios donde se programa cada opción que debe ser traducida, pongo de ejemplo las tres opciones del título:
El programa en sí ya te da la opción de cambiar esas palabras en el apartado Terms de la Database, pero solo para el idioma original. Las palabras asignadas en la database se almacenan por defecto en una parte del script llamada Vocab, que es donde el script suele mirar para ver qué escribir en cada sitio.
Para poder hacer diferentes versiones para varios idiomas, tuve que añadir esos ifs para que el script mire primero la variable Language como en los eventos para saber qué escribir. En el primer if (la versión en inglés) hace lo que el script normalmente haría (mirar en Vocab y escribir lo que hay asignado ahí), pero en los otros if, le asigné las palabras traducidas directamente.
Si no recuerdo mal, los textos que tuve que cambiar a través del script estaban en Window_TitleCommand, Window_GameEnd, Window_SaveFile, Scene_Save y Scene_Load.
4. Para hacer que la elección de idioma aparezca antes que la pantalla del título usé un script de libre uso que encontré. Lo he buscado otra vez, pero parece que la página donde lo vi está caída y no logro encontrarlo en ningún otro sitio ;;
Como idea alternativa, se me ocurre utilizar un script que te permita saltar del todo la pantalla del título para hacer una con eventos, así puedes hacer todo lo que haga falta a través de los mismos mapas. Es bastante común para poder hacer title screens totalmente customizadas.
Disculpa si ha quedado demasiado largo y confuso! Si tienes cualquier duda puedes preguntar sin problemas :')