---
id: two-stage-user-styled-translation/04-live-tools-are-single-stage-translators-with
title: 'Two-stage styled translation exists only in pieces: 4. Live tools are single-stage
  translators with a prompt box'
report: https://ai.hiina.space/reports/two-stage-user-styled-translation.md
section: 4
version: 1
updated: '2026-10-27'
author: Hiina
---

Index of everything on this site: https://ai.hiina.space/index.md

# Two-stage styled translation exists only in pieces: 4. Live tools are single-stage translators with a prompt box

- Section 4 of 12 of the report "Two-stage styled translation exists only in pieces" by Hiina (v1, updated 2026-10-27)
- Report overview and contents: https://ai.hiina.space/reports/two-stage-user-styled-translation.md
- Previous: https://ai.hiina.space/reports/two-stage-user-styled-translation/03-research-covers-each-stage-separately-and-the.md
- Next: https://ai.hiina.space/reports/two-stage-user-styled-translation/05-a-small-renderer-is-plausible-measuring-it.md

## 4. Live tools are single-stage translators with a prompt box

LunaTranslator, the most widely used VN front end (GPL-3.0, about 13.2k stars), sends each hooked or OCR'd line to the chosen engine with a user-editable prompt. Variables include `{sentence}`, `{contextOriginal[N]}`, `{contextTranslation[N]}` and `{DictWithPrompt[XXXXX]}`, which injects only the glossary entries that match the line and clears itself otherwise. Dedicated offline models (SakuraLLM, GalTransl, Hy-MT2, IndexTeam's Index-Translate) take no custom prompt ([Luna LLM docs](https://docs.lunatranslator.org/en/guochandamoxing.html); [Luna README](https://github.com/HIllya51/LunaTranslator)). Luna seeds its glossary from VNDB character names. Its docs contradict themselves on what non-English users get: one section says the translation is left empty, the pre-translation substitution section says it is filled with the original text ([Luna translation optimisation](https://docs.lunatranslator.org/en/transoptimi.html)). A SQLite translation cache is described only by an auto-generated DeepWiki page, with no schema ([DeepWiki](https://deepwiki.com/HIllya51/LunaTranslator/4.4-adding-new-translation-engines), secondary, auto-generated); the official pages fetched do not mention caching. One blogger found LLM output "frequently better" than Google or Microsoft but the wait "absolutely brutal" for live reading, and concluded batch-made shared patches are the better use ([Sakimichi's Otome Spot](https://sakimichi.wordpress.com/2025/11/22/translating-visual-novels-in-2026/), secondary, single blogger). That latency complaint is the practical case for the split.

Hook and engine tools bolt an OpenAI-compatible call onto a line pipeline. XUnity.AutoTranslator caches results by source string in `_AutoGeneratedTranslations.txt`, which "will always have the lowest priority when reading translations", and recommends redistributing it ([XUnity README](https://github.com/bbepis/XUnity.AutoTranslator/blob/master/README.md)). Its LLM plugins add glossary entries with optional `context` fields only when the raw term matches ([LlmTranslators](https://github.com/joshfreitas1984/XUnity.AutoTranslate.LlmTranslators)) and a `Requirement` field for "a requested translation style" ([AutoLLMTranslator](https://github.com/NothingNullNull/XUnity.AutoLLMTranslator)). Textractor Translator tracks the last speaker for unattributed lines and keeps an in-memory cache ([textractor-translator](https://github.com/MRGRD56/textractor-translator)). MoriTranslates' RPG Maker translator runs a two-stage workflow, database names first and then dialogue, with an auto-built glossary, speaker detection and a pronoun-aware gender system ([rpgmaker-translator](https://github.com/MoriTranslates/rpgmaker-translator)). DazedTL keeps per-game `game.md` (setting, register, naming) and `quirks.md` (voice habits) files, the closest thing found to a persisted per-game style document, though both feed the same single call ([DazedMTLTool](https://github.com/dazedanon/DazedMTLTool)). VNTranslator's example system prompt tells the model to render honorifics and idioms as natural English ([VNTranslator docs](https://docs.vntranslator.com/advanced/llms/system-prompt)), and UGTLive suggests a more literal prompt for learners ([UGTLive](https://github.com/SethRobinson/UGTLive)). In all of them, style is a sentence in a prompt.

The VN-specific LLM projects come closest to the proposed stage one. GalTransl's input is JSON with `name` and `message`; its dictionary lines are `Source[Tab]Target[Tab]Explanation`, with notes such as gender and occupation so the model picks pronouns and titles. Its per-file `transl_cache` stores `index`, `name`, `pre_jp`, `post_jp`, `pre_zh`, `post_zh_preview`, `proofread_zh`, `trans_by`, `proofread_by` and `problem`, and a changed `post_jp` triggers retranslation. Its problem analyser flags word repetition above 20, output over 1.3x source length, leftover kana and dictionary non-compliance ([GalTransl README_EN](https://github.com/GalTransl/GalTransl/blob/main/README_EN.md)). GenDic generates a character-name dictionary with an LLM pass; release 8.4.0 (10 Oct, year not shown, likely 2026) added a joint review of names, nicknames and compound speakers ([GalTransl 8.4.0](https://github.com/GalTransl/GalTransl/releases/tag/8.4.0)), and v8 added an agent mode with a proofreading sub-agent ([GalTransl README](https://github.com/GalTransl/GalTransl)). GalTransl++ adds dictionary conditions on neighbouring lines, cache lookups that consider surrounding sentences, a terminology ledger, and a Rebuild mode that regenerates output from cache with no model call ([GalTranslPP](https://github.com/julixian/GalTranslPP)). Stage one there still emits Chinese text and short notes, not a language-neutral per-line record, but the data model (speaker field, annotated dictionary, problem flags, cache-first rebuild) is the nearest reusable one.

The local models show the shape of a stage-two prompt and the absence of style control. Sakura-GalTransl-7B-v3.7's system prompt says it translates "using the given glossary in the specified style", but its user prompt has only optional history, a `src->dst #note` glossary and the text ([Sakura-GalTransl-7B-v3.7](https://huggingface.co/SakuraLLM/Sakura-GalTransl-7B-v3.7)); output is Japanese-to-Chinese ([SakuraLLM](https://github.com/SakuraLLM/SakuraLLM), CC BY-NC-SA 4.0). The 14B v3.8 card's AutoDL deployment guide claims about 30,000 sentences per hour on an RTX 4090 with 16 parallel slots, an unmethodical tutorial figure ([Sakura-GalTransl-14B-v3.8](https://huggingface.co/SakuraLLM/Sakura-GalTransl-14B-v3.8)). VNTL's Llama-3 8B fine-tune is the only Japanese-to-English model found with structured character metadata in its native format: a `<<METADATA>>` block of `[character] Name | Gender | Aliases` entries, then `<<JAPANESE>>`/`<<ENGLISH>>` turns with `[Speaker]:` tags ([vntl-llama3-8b-202409](https://huggingface.co/lmg-anon/vntl-llama3-8b-202409-hf)). The card romanises the same name 桜乃 as "Sakuno" in its translation example and "Sakurano" in its chat example, a small reminder that names belong in fixed fields. Sugoi 14B Ultra is a Qwen2.5-14B localiser fine-tune recommending about 10 lines of context ([Sugoi-14B-Ultra-GGUF](https://huggingface.co/sugoitoolkit/Sugoi-14B-Ultra-GGUF)), and LinguaGacha adds a term-extraction step before batch translation ([LinguaGacha](https://github.com/neavo/LinguaGacha)). VNDB glossary builders export `info` fields with gender, role, traits and a spoiler flag ([VNDB-Glossary-Builder](https://github.com/rikimtasu/VNDB-Glossary-Builder)) or one sentence per character "to create a prompt for LLM" ([VisualNovelCharacterNameExtractor](https://github.com/HareChaser/VisualNovelCharacterNameExtractor)).

On quality, the community-run VNTL Leaderboard 2026 (87 original entries plus 4 new, scored by embedding cosine similarity on 128 lines each from Senren*Banka and Mashiro-iro Symphony, with values at or below 0.5 counted as zero) puts Qwen2.5-72B at 0.7079, shisa-v2-mistral-nemo-12b at 0.6985, vntl-llama3-8b-v2 at 0.6952, Sugoi-14B-Ultra at 0.6827 and Qwen2.5-7B-instruct at 0.6518 ([VNTL leaderboard 2026](https://huggingface.co/datasets/yukobayashi500/vntl-leaderboard-2026), community-run). Local 8-14B fine-tunes sit close to 72B open models on literal similarity, but that metric rewards closeness to one reference and cannot score a styled render. Manga tools follow the same pattern: manga-image-translator has prompt templates, a glossary and prior-page context for its OpenAI translator only ([manga-image-translator](https://github.com/zyddnys/manga-image-translator/blob/main/README.md)), and Koharu documents local models and an agent workflow with no custom prompt or glossary ([Koharu](https://github.com/koharu-rs/koharu)). Steam's Game Overlay Translator ($3.99, July 2026) runs offline OCR plus FuguMT or Argos, caches translated lines locally, and offers a "High quality (AI)" engine as a free DLC needing a Vulkan GPU. Its page says both that the local AI accepts "your own custom prompt" and that "the app does not accept free-form prompts" ([Steam](https://store.steampowered.com/app/4864520/Game_Overlay_Translator/)).

Community norms matter if records are ever shared. 11 bit studios shipped The Alters with leftover LLM text, including "Sure! Here is the translated text into Brazilian Portuguese" in a player's screenshot of the Portuguese translation and a second leftover line in a background text screen, and said "In hindsight, we acknowledge this was the wrong call" ([PC Gamer, 2025-06-30](https://www.pcgamer.com/games/adventure/spitting-in-the-face-of-your-international-audience-the-alters-caught-using-generative-ai-for-background-text-and-translations-despite-not-disclosing-such-on-steam/)). Romhack.ing "disabled downloads for machine-translated content" (reported for 2026-06-17), keeping them available on request as a base for human scripts, and an AI patch of Tricolore Crise was released over a parallel human effort ([Held Games](https://heldgames.com/guides/ai-fan-translations-controversy), secondary). A per-reader renderer over a private record distributes no translation, which sidesteps the patch backlash but also forgoes community review.

---

Text licensed CC BY 4.0 (attribution: Hiina, ai.hiina.space). Source: https://github.com/hiinaspace/ai-hiina-space
