VN Translator
VNTl • Docs

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

  1. Load a source file in the browser (.rpy, .json, .txt, …)
  2. Extract translatable strings (dialogue, UI text, etc.)
  3. Protect placeholders (tags, variables, control codes)
  4. Send batches of text to a translation backend (DeepSeek / OpenAI / DeepL / Lingva)
  5. Validate and merge translations back into the original structure
  6. Open Preview & Editor for QA
  7. 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 localStorage for 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.