Automatic game data translator for RPGMaker-MV

Overview

RPGMaker-MV Translator 🕹️

🎮 Use AI to translate all the dialogs and texts of your RPGMaker automatically.

👊 You worked hard to make your game, now let AI work hard for you.

Original language 🇮🇹 Automatic Translation 🇺🇸

Why should you use it? 🤔

👉 RPG games usually consist of many thousands of dialog events and other forms of text displaying valuable information to understand the plot of the game, but also to know the effect and proprieties of various objects present in the game such as items, weapons, skills, enemies, ... .

👉 Translating an RPG game from one language to another would thus require an enormous amount of time and effort for a human, but it is a task that can be easily accomplished by a machine, or at least speed up considerably the work of a human translator saving costs and time.

👉 This project implements a tool that is able to automatically translate a game deployed with RPGMaker-MV.

Game files overview 🎮

Game files containing the data we want to translate are usually contained in the folder data/. Among these json files, the ones we are going to translate are the following:

  • Armors.json: contains the name and the description of all armors 🛡️ . ️
  • Weapons.json: contains the name and the description of all weapons 🗡️ .
  • Items.json: contains the name and the description of all items 💡 .
  • Skills.json: contains the name and the description of all skills .
  • Enemies.json: contains the name of all enemies 👾 .
  • MapInfos.json: contains the name of all maps 🗺️ .
  • Classes.json: contains the name of all classes 🧙 .
  • States.json: contains the name and the relative messages of all states .
  • Actors.json: contains the profile of all characters 👩 .

Other files that need to be translated, but deserve particular attention are:

  • CommonEvents.json: contains the dialogs relative to the common events in the game 🤖 .
  • MapXXX.json: contains the dialogs relative to all the maps. Basically it contains most of the dialogs on the game which would probably require a massive amount of time if translated manually 🗺️ .

The remaining files are not translated since they don't contain much text to translate such as System.json or there is nothing critical to translate such as Animations.json.

Usage 💡

Translate the dialogs files

Note: the program uses a Google Translate API to perform translations, thus a stable internet connection is required.

  1. Clone this repo: git clone https://github.com/davide97l/rpgmaker-mv-translator.
  2. Install dependencies: pip install -r requirements.txt.
  3. Copy CommonEvents.json and all the MapXXX.json files from you game data/folder to this project dialogs folder.
  4. For a basic usage, run the command:
  python dialogs_translator.py --print_neatly --source_lang it --dest_lang en
  1. Most important arguments explanation:
    • source_lang: (string) the original language of your game (en - english, it - italian, zh - chinese, fr -french, sp - spanish, de - deutsch, ...).
    • dest_lang: (string) the language you want to translate your game.
    • verbose: (bool) if True, show each original and corresponding translated sentence during execution.
    • input_folder: (string) the folder containing the files to translate (default: dialogs).
    • print_neatly: (bool) if True, adapts the translated sentence to fit the dialog window. This is because, by default, each dialog window row is a unique string itself and its length can change after translation. This option also improves the translation quality because each dialog window would be translated at once without translating each row one by one which causes loss of context. If you are curious how this algorithm works you can check this blog.
    • max_len (int): Used only when print_neatly is True. Indicates the length of the dialog window.
  2. After execution, which may take a while depending on the number and size of files, your translated files will be saved in data_xx where xx is the code of the translated language (dialogs_en if --dest_lang en).
  3. Copy back the content of dialogs_xx to the folder data of your game replacing the old files.

Example of print neatly with max_len=32 translating from english to italian:

   |The hunter has won the battle  |
   |and unlocked a new secret      |
   |skill.                         |
   
   After italian translation without print neatly:
   
   |Il cacciatore ha vinto la batta|glia
   |e sbloccato una nuovo segreto  |
   |potere.                        |
    
    After print neatly:

   |Il cacciatore ha vinto la      |
   |battaglia e sbloccato un nuovo |
   |potere segreto.                |

Translate the object files

  1. Copy the files you want to translate among Armors.json, Weapons.json, Items.json, Skills.json, Enemies.json, MapInfos.json, Classes.json, States.json, Actors.json from you game data/ folder to this project object folder.
  2. For a basic usage, run the command:
  python objects_translator.py --source_lang it --dest_lang en
  1. The arguments are the same as the ones used by dialogs_translator.py, and print neatly is automatically used in the description field. By default input_folder is set to objects).
  2. After execution, your translated files will be saved in objects_xx where xx is the code of the translated language (objects_en if --dest_lang en).
  3. Copy back the content of objects_xx to the folder data of your game replacing the old files.

Support

If you found this project interesting please support me by giving it a , I would really appreciate it 😀

More

Check this link to play some of my RPGs 😍 .

Owner
Davide Liu
Master degree student at Tsinghua University in Advanced Computing.
Davide Liu
FlappyBird game with python and pygame

FlappyBird game with python and pygame

Mohammad Dori 4 Jul 15, 2022
A first-person shooting game developed by using OpenGL

OpenGL-MazeSurvivor-FirstPerson Shooting Game This application named ‘MAZE SURVIVOR’ is a first-person shooting game that finished within a month. It

JunHong 2 Jan 04, 2023
A Tetris game made using PyGame as renderer only, for a school project.

Tetris_Python A Tetris game made using PyGame as renderer only, for a school project. Twist in the Game Blocks can pentrate through right and left bou

Ravi Arora 2 Jan 31, 2022
CTF (Capture The Flag) started from DEFCON CTF, a competitive game among computer security enthusiasts

CTF Wiki 中文 English Welcome to CTF Wiki! CTF (Capture The Flag) started from DEFCON CTF, a competitive game among computer security enthusiasts, origi

CTF Wiki 6.4k Jan 03, 2023
Just a copied of flappy bird game made by Thuongton999

flappy-bird Just a copied of flappy bird game made by Thuongton999 Installation and Usage Using terminal (on Window) Make sure you installed Python an

ThuongTon 9 Aug 08, 2021
This is a good project to train your logic game with python language

JO-KEN-PÔ!!! | Description | basic. I make this game only to train. This is a good project to train your logic game with python language. This game is

Elianderson Silva 1 Jan 24, 2022
16-bit PvP platform minigame made for a final high-school project

16-bit PvP platform minigame made for a final high-school project

Flavien 1 Feb 10, 2022
Blender Game Engine Game Type Templates Logic Bricks (and Python script) based Game Templates for Blender

Blender-Game-Engine-Templates Blender Game Engine Game Type Templates Logic Bric

3 Oct 25, 2022
Automates cubemap generation for Source Engine games.

AutoCube Automates cubemap generation for Source Engine games during compile-time. Download: see the release page Installation Using with CompilePal A

5 Feb 18, 2022
Simple game where you try to survive as long as you can on screen.

Survival Game Simple game where you try to survive as long as you can on screen. Play To run, download the code and run the survival_game.py file. Fro

Logan Morris 1 Feb 10, 2022
Wordle player - A Class that plays wordle optimally

wordle_player A Class that plays wordle optimally if you want to play wordle opt

Andrés Hernández 1 Jan 31, 2022
Advanced guessing game made in only python.

Guessing Game This is a number guessing game written in python which consists of three modes; easy,medium and hard. Each mode contains there own diffi

Ayza 2 Nov 30, 2021
This is a simple tic tac toe game that runs in the command line.

Tic Tac Toe Game This is a simple tic tac toe game that runs in the command line. Game Description: The game is made up of a square grid with 9 portio

Josias Aurel 2 Nov 12, 2022
2DMC is an abrrieviation for 2 Dimensional Minecraft.

2DMC 2DMC is an abrrieviation for 2 Dimensional Minecraft. This idea is originally created and implemented by Griffpatch on Scratch. This is a persona

DaNub 5 Nov 06, 2022
Simple Game created using Python & PyGame, as my Beginner Python Project!

Space Invaders This is a simple SPACE INVADER game create using PYGAME whihc have sound and lot's of keyboard functions. Prerequisites More Experience

Gaurav Pandey 2 Jan 08, 2022
Among AIs is a (prototype of) PC Game we developed as part of the Smart Applications course @ University of Pisa.

Among AIs is a PC Game we developed as part of the Smart Applications course @ Department of Computer Science of University of Pisa, under t

Gabriele Pisciotta 5 Dec 05, 2021
Given some input, spit out the possible words for a Wordle puzzle

Wordle Helper, because why not. Given some input, spit out the possible words for a Wordle puzzle First time setup # Download the dictionary to a file

Richard Duarte 1 Jan 25, 2022
QuizGame is a quiz with different topics. You can choose a topic and take the quiz

QuizGame is a quiz with different topics. You can choose a topic and take the quiz. In the end you will get your result. The program is under active development, so there may be errors or flaws in it

Lev Likhachev 2 Nov 12, 2021
Hangman Game

Hangman Game Este juego fue creado a partir de los conocimientos adquiridos en el Curso de Python: Comprehensions, Lambdas y Manejo de Errores que exi

Carlos Valencia 2 Nov 14, 2022
A playable version of Chess – classic two-player, various AI levels, and the crazyhouse variant! Written in Python 3

A playable version of Chess – classic two-player, various AI levels, and the crazyhouse variant! Written in Python 3. Requires the installation of PIL/Pillow and Requests

1 Dec 24, 2021