Index of everything on this site: https://ai.hiina.space/index.md
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; Luna
README). 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). A SQLite translation cache is described
only by an auto-generated DeepWiki page, with no schema (DeepWiki,
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, 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). Its LLM plugins add glossary entries with optional
context fields only when the raw term matches (LlmTranslators)
and a Requirement field for "a requested translation style"
(AutoLLMTranslator).
Textractor Translator tracks the last speaker for unattributed lines and
keeps an in-memory cache (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).
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).
VNTranslator's example system prompt tells the model to render
honorifics and idioms as natural English (VNTranslator
docs), and UGTLive suggests a more literal prompt for learners (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). 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), and v8 added an agent mode with a proofreading sub-agent (GalTransl README).
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). 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);
output is Japanese-to-Chinese (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).
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).
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),
and LinguaGacha adds a term-extraction step before batch translation (LinguaGacha). VNDB
glossary builders export info fields with gender, role,
traits and a spoiler flag (VNDB-Glossary-Builder)
or one sentence per character "to create a prompt for LLM" (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, 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), and Koharu documents local models and an agent workflow with no custom prompt or glossary (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).
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). 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, 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