NorixaLabs
← GameTranslatorAI Devlog

GameTranslatorAI V2 – Progress Report #4

It's been more than two months since the last report. We spent most of that time on RPG Maker. Along the way Linux support got finished and the first new languages were added.

RPG Maker

With V2 you'll be able to translate RPG Maker games too. These versions will be supported:

  • RPG Maker XP
  • RPG Maker VX
  • RPG Maker VX Ace
  • RPG Maker MV
  • RPG Maker MZ

The five versions split into two groups by how they store their files. XP, VX and VX Ace keep game data in Ruby's binary format, while MV and MZ use JSON. We had to write separate reading and writing code for each group. Some games on the older versions ship as a single encrypted archive file (.rgssad, .rgss2a, .rgss3a). The app will be able to open those too.

The app will figure out which version you're using by itself and show its name on screen.

Text that will be translated

Dialogue and choices were on the list from the start. In RPG Maker games text sits in other places too, so we added these as well:

  • common events
  • lines spoken during battles
  • names and descriptions of items, skills, characters and enemies
  • menu and system text

In MZ games the speaker's name will be read too, so Character Memory will know who says each line.

Control codes

RPG Maker text is full of short codes like \N[1] or \C[2]. \N[1] prints a character's name in the game, \C[2] changes the text color. If even one character inside one of these codes shifts during translation, the game can show the wrong name, and sometimes it crashes.

The app will set these codes aside before sending the text for translation. When the translation comes back, the codes go back into the same spots.

Text we can't be sure about

The Review Required list from Godot is coming to RPG Maker as well. In some places the app can't tell whether a line is something the player will see or a piece of code. Database notes can mix plugin tags with normal text. Script and plugin commands have the same problem.

These lines will show up in the list and you'll pick which ones get translated. Code inside script commands will never be run. The list only shows the plain text inside them.

Writing back to the files

The rule we used for Godot applies here too. Each translation will be written to the line or field the text came from. Before writing, the app will check that the original text is still there.

Files that don't change will stay byte-for-byte the same. If there's a broken file in the folder, the scan won't stop. That file will be skipped and you'll be told which file couldn't be read.

Testing with real games

We found real projects for all five versions and tried everything on them. For MV and MZ we also opened the translated files with RPG Maker's own engine code.

These tests turned up bugs we had never seen in our own test files. In XP games the first line of every message wasn't being translated at all. On the older versions some files were getting corrupted when written back. We fixed both and ran the same games through again.

Each engine has its own rules

With three engines, we had to make sure a rule written for Ren'Py never gets applied to Godot or RPG Maker text. Now every engine has its own rules and its own protection code. In the Community Translation Memory each engine's translations will be kept apart as well.

Linux

V2 will run on Linux too. The app will come as an AppImage file that doesn't need installing.

We tested it on Ubuntu 22.04, 24.04 and 26.04, on Linux Mint, Fedora and Arch. Your API keys and license will be kept in the system's encrypted keyring. Some Linux setups don't have one, and in that case they'll be written to a file only your user account can read.

Updates will be checked once more after they download, before they're installed. If you like, you'll also be able to add the app to your applications menu.

The Linux version will come out together with V2.

New languages

The first five new languages are ready:

  • Indonesian
  • Vietnamese
  • Polish
  • Dutch
  • Hausa

You'll be able to translate into these languages, and the app's own menus will open in them too.

Next up are Arabic, Urdu, Hindi, Bengali and Thai. These won't be as easy as the first five. Arabic and Urdu are written right to left. In Hindi, Bengali and Thai the letters join together, and some games' fonts may not be able to show them properly. So we'll give these languages a bit more time.

In the next report we'll tell you how far we've got with them. In the meantime, if there's a game you'd like to try or you have a question, you can write to us from the support page.