22 de noviembre de 2024

Localización en RPG Maker MV

Devblog

Que Nigrum pudiera estar localizado en más de un idioma era uno de los requisitos indispensables que me marqué a la hora de diseñar el proyecto. Tras sopesar las diversas opciones, finalmente me decanté por el plugin de Iavra. Veamos como se usa.

Localización de Videojuegos

Dentro de esta industria, la localización de videojuegos es un trabajo cuyo objetivo es traducir un videojuego desde el idioma original al idioma del país objetivo. Pero ojo, localizar un videojuego no consiste simplemente en traducirlo. Una buena localización debe de tener en cuenta la cultura y la forma de pensamiento de la población para la que se está localizando. Esto no resulta sencillo, ya que para lograr una buena localización, la persona encargada ha de tener conocimientos tanto del idioma y la cultura del origen, así como del idioma y la cultura del destino.

En mi caso en particular, como podréis imaginar, no me puedo permitir el realizar una localización de nivel profesional, al menos de momento. Por ello la localización de Nigrum será llevada a cabo por un servidor a la vez que se va desarrollando el juego, intentado conseguir un resultado lo más aceptable posible.

Localización en RPG Maker MV

Como he comentado en la entradilla, finalmente me decidí por el plugin desarrollado por Iavra. Originalmente se trataba de dos plugins diferentes, uno para localizar el juego y otro para añadir una opción en el menú para cambiar de idioma en pleno juego. En la última versión, que podéis descargar en la web de Neoma Studio, ambos plugins se han unido en uno solo.

El Porque de la Elección

Estos son los detalles que me han llevado a utilizar este plugin:

  • Facilidad de uso: usar este plugin resulta muy sencillo, incluso cuando se quieren traducir términos de la base de datos del juego o de otros scripts. Además, pueden realizarse llamadas al script desde el propio editor.
  • Formato de los archivos: este plugin utiliza archivos .json para guardar la información de las traducciones. Otros formatos de archivo usualmente utilizados son los .xml o los .csv, pero después de trastear un poco, y siempre desde mi completa ignorancia, concluí que este formato (.json) se adapta mejor a la hora de organizar la información y acceder a ella.

Guía del Plugin de Iavra

Aunque el propio archivo del pluglin trae su propia información de uso, creo que es mejor ampliarla para facilitar así facilitar su uso.

Instalación

Instalar este plugin es realmente sencillo. Una vez descargado, sólo hay que copiar el archivo "IAVRA_MasterLocalization.js" en la carpeta de plugins de nuestro proyecto, la cual podemos encontrar dentro de la ruta "./js/plugins" (os recuerdo que ./ es el directorio raíz de nuestro proyecto).

Respecto a los archivos .json de los respectivos idiomas, estos han de estar situados en el directorio raíz de nuestro proyecto, al menos por defecto (luego veremos cómo cambiar esto).

Configuración Inicial

Desde el editor de plugins (tecla F10), podemos añadir el plugin en cuestión haciendo doble clic sobre una línea vacía y seleccionándolo en la lista desplegable que se muestra. Una vez añadido, veréis que hay diversos parámetros que podemos modificar:

Ventana del Editor de Plugins
Ventana del Editor de Plugins

  • Escape Code: se refiere al carácter que se utilizará dentro del editor para indicar la referencia al texto que se debe mostrar. Por defecto viene configurado como "#". ¡OJO! Tened en cuenta que, debido a este plugin, ahora será necesario realizar un escape doble ("//") para poder utilizar las opciones disponibles dentro de la caja de mensajes.
  • Languages: aquí indicaremos el código para hacer referencia a los idiomas disponibles, separados por una coma. En mi caso, por ejemplo, podéis ver que son dos: "es, en" (el primero es el idioma por defecto).
  • File Path: permite cambiar la ruta de los archivos de idiomas. Yo he decidido crear una carpeta para ellos, en lugar de tenerlos en la carpeta principal del proyecto.
  • Option Label: es el texto que se mostrará en el menú de opciones para seleccionar el idioma. Dado que el objetivo es localizar todo el juego, lo mejor es utilizar el propio plugin para ello.
  • Language Labels: al igual que el anterior, es el texto que se mostrará en el menú de opciones para hacer referencia a cada idioma. Su uso es simple: cada código de idioma va seguido de dos puntos y la etiqueta a mostrar.

Creando el Archivo JSON

Veamos las opciones que tenemos disponibles a la hora de editar los archivos de idioma:

En primer lugar, todo el contenido de los archivos ha de ir entre {}. Los archivos .json sólo admiten un par de {} principales, así que cuidado con ello. Posteriormente, cada par referencia/texto ha de ir separa con una coma de la siguiente. 

Para cada referencia, esta ha de ir entre comillas dobles, seguida de dos puntos, y a continuación la cadena de texto a mostrar, también entre comillas dobles. Este sería un ejemplo de un archivo base:

{
    "t001": "Hola Mundo"
}

No obstante, si tuviéramos que tener una referencia para cada línea de texto en el juego, la cosa podía complicarse bastante. Por ello, podemos utilizar lo que se podría llamar como subclase: una referencia contiene dentro de ella más referencias, pudiendo acceder a todas de manera más organizada. Un posible ejemplo sería:

{
    "MainMenu": {
    	"NewGame": "Nueva Partida",
    	"Continue": "Continuar",
    	"Options": "Opciones"
	},
	
    "Npc": {
	"01": "Mi nombre es Haroldo",
	"02": "Mi nombre es Laura"
	}
}

Para poder acceder a los valores anteriores, se deberían utilizar las referencias "MainMenu.NewGame" o "Npc.02", por ejemplo. Tened en cuenta que JSON distingue entre mayúsculas y minúsculas.

Utilizando el Plugin en Nuestro Proyecto

Usar el plugin resulta extremadamente sencillo. Simplemente hemos de indicar el texto a mostrar mediante la referencia. Tomando como ejemplo el código anterior, deberíamos de utilizar la combinación "#{Npc.02}".

Uso en la Caja de Mensajes
Uso en la Caja de Mensajes

Además, el plugins nos da ciertas opciones para acceder al mismo desde el propio editor, ya sea con llamadas al script o comandos:

  • IAVRA.MasterLocalization.I18N.language;
    • Llamada al script que devuelve el valor del idioma actual.
  • IAVRA.MasterLocalization.I18N.language = 'en';
    • Llamada al script que cambia el idioma actual al especificado. En este caso, "en".
  • IAVRA.MasterLocalization.I18N.languages();
    • Llamada al script que devuelve una lista con todos los idiomas disponibles.
  • IAVRA.MasterLocalization.I18N.localize(text);
    • Llamada al script que localiza la referencia del texto indicado.
  • SET_LANG [language]
    • Comando que cambia el idioma actual por el indicado.
·····

¿Qué os ha parecido? ¿Me he dejado algo? Con esto cualquiera puede usar el plugin sin mayores problemas. Todavía quedarían algunas opciones más como resultado del propio lenguaje JSON, pero no es nada que no se pueda hacer con lo ya mencionado. Espero que esta guía pueda resultarle útil al alguien en algún momento :)

¡Nos leemos!

¿Quieres estar al día de todo lo publicado en el blog?

Para ello puedes suscribirte a mi canal RSS y/o seguirme en mi cuenta personal de X/Twitter.

No hay comentarios:

Publicar un comentario