Game and visual novel translator
Translate a game or visual novel script: Ren'Py, RPG Maker and Unity CSV
Upload Ren'Py scripts, RPG Maker MV or MZ data files, a Unity localization CSV or your script spreadsheet, and get the same files back with the dialogue, choices and menu text translated. Code, labels, file names, text tags like {i} and variables like [player] stay exactly as they were. One payment of $5 covers up to 40,000 lines and 2,000,000 characters, enough for most complete visual novels, and the first lines are free with no sign-up.
- Ren'Py .rpy scripts and generated tl files, RPG Maker MV/MZ data/*.json
- Unity I2 Localization and string table CSVs: the language column is filled
- Whole game $5, one payment: up to 40,000 lines and 2,000,000 characters
- Text tags, [variables] and RPG Maker codes like \N[1] checked in every line
- Upload a ZIP of the game folder and get the same folder structure back
- 81 languages, character names kept, your own glossary
What you get back
Your files, translated in place, with the same names and folders, so you can drop them back into the project. The first lines are shown on screen next to the original before you pay, and you can edit any line.
- Ren'Py: dialogue and narration, menu choices, strings marked with _(), and text, textbutton, label and tooltip in screens. In tl files made by Generate Translations, the new lines and dialogue lines are filled. Everything else, from python blocks to show, play and jump, stays.
- RPG Maker MV/MZ: message and scrolling text lines, choices, speaker names (MZ), map display names, actor names, nicknames and profiles, item, skill, weapon and armor names and descriptions, state messages and the System terms. Plugin commands, scripts and note fields are not touched.
- Unity and script CSVs: when the header has a column for the target language, such as "Spanish" or "Spanish(es)", it is filled from the English column and lines that already have a translation are skipped. Otherwise you choose the columns, as in any spreadsheet.
- A warnings list of any line where a tag, variable or code did not survive two tries. Those lines keep the original text, so the game never runs with a broken code.
Translating a game with a chatbot, and with this tool
Chatbots translate dialogue with good style, and for a single scene they are a reasonable choice. A full game is tens of thousands of lines inside files that a game engine has to load.
| Your situation | A chatbot | This tool |
|---|---|---|
| A few lines of dialogue | Translates them well, in character | Translates them too |
| A 30,000-line script | Needs hundreds of copy and paste rounds; tends to skip or shorten | Translates every line, in parts, up to 40,000 lines for $5 |
| Ren'Py code around the dialogue | Rewrites the file, so labels, jumps or indentation can change | Only the strings are replaced; every other byte stays |
| Tags and variables: {i}, [player], \C[2] | Often drops or translates them | Checks every line; a line that loses one is asked again, then kept in the original |
| RPG Maker data folder | Has to work through the JSON by hand | Reads every data file and returns the folder as a ZIP |
| The same name in every line | Sometimes translated, sometimes not | Names you list are kept as written and checked |
How to translate a game script
-
1
Upload your files
Drop .rpy files, RPG Maker data .json files, a CSV or Excel script, or a ZIP of the folder. Choose the language and list character names that should stay as they are.
-
2
Check the first lines free
The first lines are translated and shown next to the original. Edit any line; if the tone is off, add a glossary and start again. No account is needed.
-
3
Unlock and drop the files back in
Unlock the whole game for $5, download the files (a ZIP for several files) and copy them into your project, keeping a backup of the originals.
Why game scripts trip up general AI assistants
A game script is not plain text. A Ren'Py file mixes dialogue with labels, jumps, python and indentation that must not change; an RPG Maker map file is JSON where the dialogue sits inside event commands next to switches and scripts. To translate it in a chat, the assistant has to rewrite all of that by hand, and a long script does not fit in one reply.
Small codes are the second problem. Text tags like {i} or {w}, variables like [player], and RPG Maker escape codes like \N[1] or \C[2] look like noise to a model and get dropped or translated. In a game that can mean a crash, a missing name or a wrong color for the rest of the scene.
This tool reads each file the way the engine does and sends only the player-facing lines, in blocks, with the codes replaced by short markers the model keeps more reliably. Every line that comes back is checked: each tag, variable and code must still be there. A line that fails is asked again; if only emphasis such as {i} is lost the second time, the translated line is kept without it, and if anything else is missing the original line stays and is listed. The files are then rebuilt from your originals.
What people translate
- Ren'Py visual novels, from the game/ scripts or from the tl folder made by Generate Translations
- RPG Maker MV and MZ games: the whole data folder in one ZIP
- Unity games that use I2 Localization or the Localization package string tables
- Visual novel and dialogue scripts kept in a spreadsheet with a speaker column
- Fan translation patches, for games you have permission to translate
- Item, skill and menu lists before a store page launch
Limits worth knowing
One payment covers up to 40,000 lines and 2,000,000 characters: a 36,000-line script fits when its lines average under about 55 characters, which dialogue usually does. Unlimited covers up to 200,000 lines. Lines beyond the limit stay in the original language, and the screen tells you how many before you pay. Uploads up to 300 MB; a ZIP can hold the whole folder, and images, audio and other files in it are ignored.
Ren'Py triple-quoted strings and text built in python code are not translated. RPG Maker plugin parameters are not translated, because their structure differs from plugin to plugin. The AI model may refuse some explicit scenes; any line that does not come back stays in the original language and is listed.
By language and situation
Translate a Ren'Py game
Upload your .rpy scripts, or the tl folder that Generate Translations created, and get the same files back wit...
Read more →Translate an RPG Maker MV or MZ game
Zip the data folder of your RPG Maker MV or MZ project, upload it and get the same folder back with event mess...
Read more →Translate a visual novel script to Brazilian Portuguese
Many translation projects keep the script in a spreadsheet: an ID, a speaker, the original line and an empty c...
Read more →Translate a Unity localization CSV
Export your I2 Localization terms or your Localization package string table as CSV, upload it and get it back...
Read more →Translate a long game script to Indonesian
A complete visual novel or RPG script easily runs to tens of thousands of lines. Upload it as a spreadsheet, a...
Read more →What it costs
Small files, first lines
Free
Up to 300 lines free in full, downloads included. Bigger games: the first lines on screen, no account.
Whole game
$5
One payment for one job: up to 40,000 lines and 2,000,000 characters across all its files. No subscription.
Unlimited
$19 / week
Every tool on the site, with games of up to 200,000 lines.
Questions and answers
Can ChatGPT translate a Ren'Py game?
It can translate pasted dialogue well. A whole script has to be copied in and out piece by piece, and the model tends to change code, labels or tags along the way. This tool reads the .rpy files, translates only the strings and checks every tag and variable.
Can it translate an RPG Maker MV or MZ game?
Yes. Upload the data folder as a ZIP or the .json files: messages, choices, names, descriptions and System terms are translated, and the files come back with the same names, ready to copy into the project.
How many lines fit in one payment?
Up to 40,000 lines and 2,000,000 characters across all files in the job, for $5. Unlimited covers up to 200,000 lines.
Will tags like {i}, [player] or \N[1] survive?
They are replaced with markers before translation and checked after. A line that loses a variable or code is asked again and otherwise keeps its original text; lost emphasis tags on a second try are dropped from that line only.
What about Unity games?
Export the I2 Localization or string table as CSV. If it has a column for the target language, that column is filled from the English one and existing translations are left alone.
Can I keep character names?
Yes. List them under "Never translate"; they are kept as written and checked in every line. A glossary keeps place names and terms consistent.
Is it free?
Up to 300 lines are free in full. For bigger games the first lines are translated free on screen, with no account. The whole game is $5 paid once.
Are my game files private?
Only you can open your job. The player-facing lines are sent to an AI model provider for the sole purpose of translating them, through routes that do not use your data for training. Jobs uploaded without an account are deleted after 7 days, and you can delete any job yourself at any time.
Updated October 25, 2026 · APPFACT STUDIO LTD