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
Brawl Stars v31.96 server emulator written in Python.

Brawl Stars v31 Brawl Stars v31.96 server emulator written in Python. Requirements: Python 3.7 or higher pymongo dnspython colorama MongoDB configurat

9 Nov 26, 2021
PyCheckers - A classic board game implemented in pygame

PyCheckers! A classic board game implemented in pygame! Complete with every feature you need to play checkers! (including handsome sprites drawn by a

helaxious 1 Jan 21, 2022
A set of functions compatible with the TIC-80 platform

Pygame-80 A set of functions from TIC-80 tiny computer platform ported to Pygame 2.0.1. Many of them are designed to work with the NumPy library to im

7 Aug 08, 2022
OS Algo Visualization - Operating system algorithm visualization using python pygame library

OS_Algo_Visualization Operating system algorithm visualization using python pyga

Krushang Satani 2 Feb 17, 2022
SelectionSortVisualization - This pygame project is helping you to understand the selection sorting algorithm

SelectionSortVisualization (If you have any comments or suggestion, please conta

Berkay IPEK 3 Feb 17, 2022
Utility for generating randomizer datapacks for minecraft.

Minecraft Rando Utility for generating randomizer datapacks for minecraft. At the moment, it randomizes the following: Loot tables (including block dr

2 Dec 02, 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
Automatically prepare your Minecraft maps for release

map-prepare Automatically prepare Mineraft map for release. Current state: kinda works Make sure you have backups for your world before running this p

11 Oct 11, 2022
A game based on Motus, to be played on Unix terminals.

Motus python game A game based on Motus, to be played on Unix terminals. How to play? Before playing, you need to install all the requirements needed

Arthur Molia 1 Feb 02, 2022
Repository containing documentation about the Minecraft Legacy FUI file structure

Repository containing documentation about the Minecraft Legacy FUI file structure

Miku-666 6 Dec 29, 2022
Guess Your Card - A Multiplayer Python Game

Guess Your Card - A Multiplayer Python Game This is a guessing card game having two levels - Developed in Python and can be played between two to four

Hammad Ahmed ~ 1 Oct 20, 2021
๐ŸŽ… Celebrating 2021 Christmas with the development of this game

ChristmasGame (DEVELOPING) ๐ŸŽ… Celebrating Christmas with the development of this game You can also use this engine to create your game too, just empty

ร‰rik Freitas 5 Jan 10, 2022
A game made similar as space inveders with pygame

space-inveders-pygame a game made similar as space inveders with pygame . . . if you are using it make sure to change audio and imgs file i do no own

Volt_L18 2 Dec 26, 2021
We tried to recreate this classic game using python physics libraries.

We tried to recreate this classic game using python physics libraries. The result is certainly hilarious but enjoyable. One of my very first physics application.

Delwys Glokpor 2 Dec 12, 2021
Pendulum Simulation using Pygame

Pendulum project, built using pygame and math modules.

3 Nov 09, 2021
HackNC 2021 Project

pyTunes HackNC 2021 Project Setting Up Once the repo is cloned, install the requirements through pip install -r ./requirements.txt Once that is done,

Demo 1 Nov 07, 2021
Projeto Flappy Bird temรกtica doom, projeto python e pygame

Doom-Bird Tecnologias usadas Requisitos para inicializar o jogo: Python faรงa o download em: https://www.python.org/downloads/ Apรณs instalar o Python d

Joรฃo Guilherme 1 Dec 08, 2021
Easily manage wine prefixes in a new way. Run Windows software and games on Linux

Bottles Easily manage wineprefix using environments Documentation ยท Forums ยท Telegram group ยท Funding ๐Ÿ“š Documentation Before opening a new issue, che

Bottles 4.1k Jan 09, 2023
This is a simple rock paper scissor game created with python.

This is a simple rock paper scissor game created with python.

Fayas Noushad 3 Feb 04, 2022
Tekken-python-ml - A project of playing tekken game using python

Tekken Python Description Hi this is new project of playing tekken game using py

Programminghut 13 Dec 30, 2022