Ritournelle & Sottine TraductionAuto — All-in-one Automatic Translation & Multilingual Display for RPG Maker MV/MZ

Official plugin video

License

use in your RPG Maker MV projects, including commercial games you sell. Credit to the original author, Erophenice, is mandatory in your game’s credits. Reselling the plugin itself (the .js file, as a standalone product) is strictly prohibited. Modifying the plugin’s code and redistributing it as your own work (rebranding, removing credit) is strictly prohibited.

All-in-one, standalone plugin, no external dependencies. Automatically translates the game’s texts via Google Translate AND displays them in-game — a single file, no second plugin needed for display.

What it translates

Dialogues, scrolling text, choices, database (items, skills, weapons, armors, classes, states, enemies, actors), map/event names, menus (Item/Skill/Equip/Status/Save/Options), System.json.

Up to 10 languages: French, English, Japanese, Korean, Russian, Simplified Chinese, Italian, Spanish, Portuguese, German.

(Note: The plugin supports a total of 10 languages: French, English, German, Italian, Spanish, Portuguese, Simplified Chinese, Japanese, Korean, and other left-to-right languages. Arabic is not supported due to its right-to-left reading system. Make sure to remove the ‘AR’ language code from the default manager if it is present.)

Installation

1. js/plugins/, add and enable the plugin in RPG Maker.

2. Set up the parameters (details below).

3. Playtest → the “Language” option appears in the Options menu.

Warning — Plugin order: place TraductionAuto after any other plugin that modifies message/choice display, otherwise its changes may be ignored.

Parameters

Source language: the game’s original language (e.g. fr).

Target languages: languages to generate, comma-separated (e.g. fr,en,ja).

Protected languages: languages never auto-retranslated (already hand-translated), but always selectable in-game.

Active only in Playtest: if enabled, generation never runs in the exported/sold game (display of already-generated translations always stays active regardless).

Option name: text shown in the in-game Options menu.

Automatic word wrap / Keep manual line breaks: how long text is handled in messages.

First generation: how long it takes

Average-sized game: ~20 minutes. Large game (lots of text / several languages): 2 to 4h. This only applies to the very first full generation (or after deleting the cache) — after that, only new/changed texts are retranslated, so it’s fast.

While waiting, press F8 (or F12 depending on version) to open the console and watch progress live (which data type and language is currently being translated). No need to stay watching — go grab a coffee or do something else, the plugin works on its own in the background.

Error 429 (Google rate limit reached)

Google temporarily blocks requests if too many are sent at once (large project, several languages). The plugin retries automatically, and logs/resumes on the next launch if it persists. If blocking repeats: close the game, wait 1 to 2h, relaunch — generation resumes where it left off, nothing is lost.

Translation quality

Google Translate: good enough to follow the story, not perfect. To fix a specific text by hand, see “Manual corrections” below.

Glossary (protecting proper names)

To make sure a name (character, place, family…) is never translated, in any language:

1. Launch a Playtest for a few seconds: this creates the locales subfolder and the glossaire.txt file with examples inside. Close the Playtest.

2. Open glossaire.txt: delete the examples, write directly the names you want to protect (one per line), save.

3. Delete everything inside the locales subfolder except glossaire.txt (the one where you just wrote your names).

4. Relaunch a Playtest: the plugin retranslates everything from scratch, respecting the glossary (see “First generation: how long it takes” above).

Mechanism (confirmed in code): each name from glossaire.txt is matched in the source text via a regex, and swapped for a token before the text is sent to Google Translate. Once the translation comes back, the plugin restores the original name in place of the token. Google Translate never sees the real name, so it can’t translate or alter it — it comes out identical in every target language.

Manual corrections

Open data/locales/edition/(language).json, edit the “traduction” field of the line you want, save, relaunch the Playtest. Top priority: never overwritten by a future automatic translation.

Mechanism (confirmed in code): the edition folder holds one JSON file per target language (e.g. en.json, ja.json). Each file lists every translatable line for that dataType/key, with a “source” field (original text) and a “traduction” field (current translated text) — this file is fully readable/editable by hand. On the next launch, the plugin re-reads every edition/(language).json file and, for each line where the “traduction” you typed differs from what’s already in the cache, it overwrites the cache with your version. So this is a genuine manual translation mode, one language at a time, independent of Google Translate: you can rewrite any line yourself in any target language’s edition/(language).json, and the plugin will use your text instead of the machine translation from then on — no risk of it being auto-overwritten later.

Commands

TraduireMaintenant: relaunches generation without restarting the Playtest.

SetLanguage (code): changes the displayed language.

Script: $gameSystem.setLanguage(‘en’), $gameSystem.getLanguage().

Once translation is finished

Go to the in-game Options menu, on the “Language” line (or whatever name you chose in the parameter), and scroll with left/right arrows to the language you want — among those set in “Target languages” in the Plugin Manager. The change is immediate.

MV compatibility

Works in both engines with no extra setup. On, check that the character’s class/profile display correctly translated on the Status screen (restructured by the engine).

Console (F8/F12): harmless “404” errors

If you see red console errors like Actors_i18n.json, CommonEvents_i18n.json, Animations_i18n.json or Tilesets_i18n.json not found: the plugin looks for these files on every launch; if they don’t exist yet, the request fails silently and doesn’t affect the game.

Actors_i18n.json and CommonEvents_i18n.json: generated as soon as your project has translatable text in them (actor nickname/profile, dialogue inside a common event). An empty or test project won’t generate them, hence the error — normal, it disappears once that content exists.

Animations_i18n.json and Tilesets_i18n.json: never generated by this version of the plugin, regardless of the project (these two categories aren’t supported by automatic generation yet). The error stays visible permanently for these two, with no in-game consequence.