Best local LLM for real-time translation? Six models measured on game text
Search “best local LLM for translation” and you get lists built for documents. Real-time game translation is a different job. The model gets one line at a time, a couple of hundred milliseconds to answer, and a GPU that is already rendering the game. A model that writes a beautiful paragraph but takes a second per line, or occasionally answers with the instructions instead of the translation, loses here.
This article is the measured companion to Choosing a model. It covers the latency budget, the four axes we pick models by, and a six-model measurement on the same corpus and hardware. Sample sizes are small and stated with every number.
The real-time budget
From the moment a line appears on screen to the moment its translation is drawn, about 500 ms is the point where the overlay starts to feel late. The stages before and after translation are mostly fixed:
| Stage | Typical |
|---|---|
| Screen capture | ~15 ms |
| OCR | ~80 ms |
| Change detection | ~3 ms |
| Translation | what is left |
| Overlay render | ~70 ms |
So the model gets roughly 200 to 300 ms per line on mid-range hardware. Two consequences follow. Model size matters more than benchmark rank, and a model that fails loudly (echoes the prompt, answers in the wrong language, adds commentary) is worse than one that is slightly less fluent, because a broken line on a live overlay is not something you can re-roll.
Four axes for choosing a real-time model
- Latency per line, on your GPU. Median matters, and so does the tail, because one slow line stalls the queue behind it.
- VRAM, because the game is on the same card. A model that fits on paper but leaves the game 1 GB short costs you frame rate.
- Failure behavior: does it always output a translation in the target language and nothing else? Translation-only models are trained for this. General chat models sometimes explain, echo, or drift into a neighboring language.
- Language coverage, checked rather than claimed.
Translation quality comes after those four, because a model that fails the first three never gets to show its quality on a live overlay.
Six models, same corpus, same GPU
Corpus: 9 English and 9 Japanese game lines (dialogue, UI labels, system messages), each translated into 4 target languages = 72 judgments. Hardware: RTX 4070 Ti, llama.cpp server build 8724, all layers on GPU, Q4_K_M quantization for every model. LFM2 is an English–Japanese-only model, so it was run on those 18 judgments only.
| Model | Weights | VRAM in use | Right language | Prompt echo / passthrough | Multi-line kept (3 blocks) | Median per short line | Decode tok/s |
|---|---|---|---|---|---|---|---|
| Hy-MT2 1.8B | 1.13 GB | 1.77 GB | 69 / 72 | 0 | 3 / 3 | 85 ms | 221 |
| Gemma 4 E2B | 3.46 GB | 2.30 GB | 69 / 72 | 0 | 3 / 3 | 96 ms | 173 |
| Qwen3.5 2B | 1.28 GB | 2.03 GB | 67 / 72 | 0 | 2 / 3 | 96 ms | 217 |
| Qwen3.5 0.8B | 0.53 GB | 1.31 GB | 67 / 72 | 1 | 2 / 3 | 71 ms | 319 |
| TranslateGemma 4B | 2.49 GB | 3.64 GB | 68 / 72 | 0 | 3 / 3 | 130 ms | 131 |
| LFM2 350M EN–JA | 0.23 GB | 0.60 GB | 18 / 18 | 0 | 1 / 3 | 29 ms | 756 |
“Right language” is an automatic language-ID check, so 1 to 3 point differences are within noise on short UI fragments. “Multi-line kept” is whether a 3-line block came back as 3 lines, which a live overlay depends on.
What the table says for real time:
- Everything here fits the budget on a desktop GPU. The spread is 29 to 130 ms per short line. On a laptop or integrated GPU, multiply by several and the ranking starts to matter.
- Hy-MT2 1.8B and Gemma 4 E2B are the two clean rows: no echo, every multi-line block intact. Hy-MT2 does it at a third of the file size and 0.5 GB less VRAM.
- TranslateGemma 4B is the strongest translation-specialized model by published benchmarks, and it behaved cleanly here too, but it is the slowest row and the only one above 3.5 GB of VRAM. On a 6 or 8 GB card shared with a game, that is the difference.
- Qwen3.5 2B and 0.8B are fast, but both dropped a multi-line block and the 0.8B fell into Chinese on an English-to-Japanese line. General small models are less disciplined than translation-only ones.
- LFM2 350M is remarkable at 29 ms and 0.6 GB, and its English–Japanese output is readable, but it collapsed multi-line blocks and it only does one pair.
A few outputs for the same line, “The old merchant refuses to sell you the sword,” into Japanese, so you can judge tone yourself:
- Hy-MT2 1.8B: 老商人はあなたに剣を売りません。
- Gemma 4 E2B: その老商人はあなたにその剣を売るのを拒否する。
- Qwen3.5 2B: 古い商人は剣を売らない。
- Qwen3.5 0.8B: 老商人拒絶賣出你劍。 (Chinese, not Japanese)
- TranslateGemma 4B: 古参の商人はお前にお宝の剣を売ることを拒否する。 (“treasured” is not in the source)
- LFM2 350M: その古い商人はあなたにその剣を売らないと申し出ます。 (“offers” is wrong)
Tone is one thing. Whether the meaning survives is the next section.
Quality: the same six models on a 50-line reference corpus
Behavior tells you whether a model can be trusted on a live overlay. Quality tells you whether you want to read it. For that we used a 50-line English–Japanese corpus with reference translations, both directions, in five categories (short dialogue, long narration, skill descriptions, proper nouns, number-heavy text), scored with chrF against the references. Same GPU, same server, same prompts as above. Opus-MT, the classic NMT model, is the historical baseline from the same corpus.
| Model | chrF all | JP to EN | EN to JP | Short dialogue | Long text | Skill text | Proper nouns | Numbers | Median per line |
|---|---|---|---|---|---|---|---|---|---|
| Gemma 4 E2B | 61.6 | 70.8 | 52.4 | 61.1 | 64.3 | 60.9 | 56.1 | 65.6 | 300 ms |
| Hy-MT2 1.8B | 54.1 | 62.8 | 45.4 | 54.8 | 61.6 | 53.8 | 51.0 | 49.2 | 234 ms |
| LFM2 350M EN–JA | 47.3 | 58.3 | 36.4 | 38.9 | 51.2 | 49.2 | 49.7 | 47.6 | 70 ms |
| TranslateGemma 4B | 46.8 | 58.8 | 34.9 | 34.5 | 52.3 | 51.8 | 47.9 | 47.6 | 437 ms |
| Qwen3.5 2B | 41.5 | 56.1 | 26.8 | 32.5 | 44.3 | 43.4 | 39.2 | 48.0 | 262 ms |
| Qwen3.5 0.8B | 33.5 | 47.2 | 19.9 | 25.4 | 36.7 | 32.5 | 32.8 | 40.2 | 188 ms |
| Opus-MT (baseline) | 35.5 | 46.9 | 24.1 | 40.7 | 41.9 | 32.3 | 36.5 | 26.1 | – |
chrF rewards overlap with one reference, so a fluent paraphrase scores lower than it deserves. It still separates the field cleanly, and reading the outputs agrees with it. What we saw line by line:
- Gemma 4 E2B leads every category. It picks the game register naturally (“passive skill”, 耐性 for resistance, 謁見 for audience) and keeps names stable. One caveat: this is the single-line prompt, not the batch prompt Playto uses for Gemma in production, so it is not a measurement of the product path.
- Hy-MT2 1.8B is a consistent second. Its English is a touch literal (“magical damage”, “corpse army” for undead) and it occasionally invents katakana for a term (コールドダウン), but it never lost a line. For a model a third of Gemma’s size that is the trade.
- LFM2 350M reads better than its size suggests, and on proper nouns it matched Hy-MT2. It is casual and lowercase in English (“pull your swords. this is a test.”) and it fell into a repetition loop on one number-heavy line, which is why its number score is low.
- TranslateGemma 4B is polite and complete on long text, but on one-line dialogue it over-interprets: 剣を抜け。これは試練だ。 (Draw your sword. This is a trial.) became “Get through this. It’s a test.” Short dialogue is most of what a game shows you.
- Qwen3.5 2B stays in the right language but drifts in meaning (“Break the sword”) and leaves proper nouns in Latin script inside Japanese sentences.
- Qwen3.5 0.8B is not usable for this: two lines came back in Chinese, one in romaji (“Kaze ni kune. Iu shiten da.”), one as a katakana loop to the token limit.
- Opus-MT, for scale, translated 封印 (seal) as アザラシ (the animal).
So the quality ranking and the behavior ranking agree on the top two, in reverse order. Gemma 4 E2B is the better translator at 2.3 GB of VRAM and a 3.5 GB download. Hy-MT2 1.8B is the one that fits everywhere at 1.8 GB and 1.1 GB. That is exactly why Playto installs Hy-MT2 as the default (it ships inside the installer and starts in seconds on PCs without a dedicated GPU) and offers Gemma 4 E2B and Qwen3-VL 4B as the upgrade a click away.
How small is too small
Hy-MT2 at Q4_K_M is 1.1 GB. We tried to get it under 1 GB, on CPU with the same 72-line set.
| Build | Size | Right language | Prompt echo | Median per line (CPU) |
|---|---|---|---|---|
| Q4_K_M | 1081 MB | 69 / 72 | 0 | 0.93 s |
| IQ3_M | ~790 MB | 61 / 72 | 19 | 0.91 s |
| IQ3_XXS | 733 MB | 67 / 72 | 38 | 1.05 s |
| Q3_K_M | ~860 MB | 53 / 72 | 12 | 0.97 s |
| IQ2_S | 657 MB | 31 / 72 | 35 | 0.90 s |
Below 4 bits the model starts repeating the request instead of translating, and it does not get faster. Use the Q4 build. Q4 on CPU is the same quality as on GPU at about one line per second on a desktop CPU: too slow for live play, fine as a fallback when the GPU is unavailable. If you need something smaller than 1 GB, the table above says to switch model class (Qwen3.5 0.8B, LFM2 for English–Japanese) rather than squeeze this one.
The other budget: reading, not playing
Some jobs are not real time. Word meanings, grammar notes and example sentences are worth a second’s wait, and translation-only models cannot produce them at all. Playto uses a general model for those (Qwen3-VL 4B for CJK sources, Gemma 4 E2B for others) and, when you play with the small model, generates meanings for saved words after the session, when the game is closed.
Screen-as-image translation is the extreme case. We measured 12 GB-class vision models on the same GPU: 6 UI-heavy screens, then 51 dialogue screens from three games. Reading accuracy at 8 to 9B matched the cloud reference, with zero omissions on the UI set. But the numbers are on a different scale from the real-time table:
| Model (51 dialogue screens) | Mistranslated blocks | VRAM in use | Median per screen |
|---|---|---|---|
| Qwen3-VL-8B Q4_K_M | 15 | 8.4 GB | 1.34 s |
| Qwen3.5-9B Q4_K_M | 6 | 8.8 GB | 1.68 s |
| Qwen3.5-9B Q6_K_XL | 5 | 11.4 GB | 1.60 s |
Seconds per screen, 8 to 11 GB in use, and Q4 to Q8 on the 8B model gained nothing (same word-level errors, 3.2 GB more VRAM, 35% slower). A 12 GB card can run this and read as well as the cloud. It cannot share the card with a game, which is why Playto’s Image mode runs this class of model in Playto Cloud while the real-time text path stays local.
Choose by what you are doing
| If you want | Use | Why |
|---|---|---|
| Live translation on the smallest footprint, any of 18 languages | Hy-MT2 1.8B, Q4 | 85 ms per line, 1.8 GB, no failure modes, chrF 54 |
| Live translation with the best quality in this set, 2.3 GB to spare | Gemma 4 E2B (Qwen3-VL 4B for CJK sources) | Clean behavior, chrF 62, slightly slower |
| Long descriptions more than dialogue, VRAM to spare | TranslateGemma 4B | Strong on long and technical text, weak on one-liners, 3.6 GB |
| The smallest possible footprint, English–Japanese only | LFM2 350M | 29 ms, 0.6 GB, single-line only |
| No usable GPU | Hy-MT2 1.8B on CPU | Same quality, about 1 s per line |
| Meanings, grammar, examples | A general model, after the session | Translation-only models cannot do this |
| Screen-as-image translation | Cloud | Seconds per screen and 8 to 11 GB leave no room for the game |
Related: Choosing an offline game translator covers what “offline” actually includes, and The context problem in AI translation covers why even a good model gets a line wrong.