How VN Translator works
VN Translator is designed to keep game data valid while translating only the parts that should be translated.
The high-level pipeline
- Load a source file in the browser (
.rpy,.json,.txt, …) - Extract translatable strings (dialogue, UI text, etc.)
- Protect placeholders (tags, variables, control codes)
- Send batches of text to a translation backend (DeepSeek / OpenAI / DeepL / Lingva)
- Validate and merge translations back into the original structure
- Open Preview & Editor for QA
- Export translated files back to your machine
What gets “protected”
Different engines have different rules. VN Translator tries to keep these unchanged:
Ren’Py
- text tags:
{i},{b},{color=#fff},{size=+10}, … - tag pairs must remain balanced:
{i}...{/i} - interpolation / variables:
[player_name] - escape sequences:
\n,\", …
RPG Maker MV/MZ
- control codes:
\V[1],\N[3],\C[2],\I[10],\G, … - literal backslashes and JSON escapes
- line breaks and spacing that affect message windows
Local storage & stability
VN Translator stores session data locally in your browser to enable:
- resuming translation
- preview/editor sync
- safer recovery after refresh/crash
- better performance than
localStoragefor larger datasets
Most tools use IndexedDB (browser database).
To reset everything: clear the site’s storage in your browser settings.
See: Privacy & security
What leaves your device
- Your raw file is processed in the browser.
- Text segments are sent to the translation provider when you translate.
