Localize a mobile game into 17 languages with a multi-agent pipeline

Aleksei Panin ran a subagent pipeline over a mobile game's 408 strings in 17 languages, found only 3 meaning errors against a pro translation, then rebuilt it around a linter, a blind-reading editor and a judge.

Done withCustom agent· Oct 24, 2026

What they did

Panin set out to make game localization cheaper and faster for a friend's studio. The first version was simple: a script built one JSON file per language, a translator subagent got each key with its English text and the glossary, a script checked placeholders and another assembled the CSV. He ran it on one release (24 keys, 17 languages, 408 strings) and compared the output line by line with a professional localizers' version of the same file. From that comparison he rebuilt it as a skill with separate roles: a script gate that stops the run when proper names are missing from the dictionary, a translator that gets the string class, length limit, last release's translation and a per-market style card, a deterministic linter, an editor that first reads the target text without the English and then checks it against the source, and a judge that only lists errors while a script computes the score. He does not name the model or the agent harness.

How it went

Meaning held up well: 3 critical errors in 408 strings, such as an English 'of' left inside Chinese text and 'patch notes' rendered as a sew-on badge in German and French. Form did not. The machine copy kept 46 English em dashes across all 17 languages, used straight quotes in 12, left formats like 2x2 unlocalized, picked informal address in French, Turkish and Korean, and left event names in Latin script. His linter flagged 121 issues on the machine file (3 critical, 11 major) and scored the human version 100 in 14 of 17 languages. He reports no results yet for the rebuilt pipeline, only a projection that drafts should pass the linter after three or four releases.

Worth knowing

He puts about 90% of the defects within reach of a plain script, so run deterministic checks before spending tokens on a model judge. The worst errors came from missing data, not the model: empty glossary cells and no record of formal or informal address per market. A high linter score does not mean the text reads as native, and human review stays for anything scoring below 70.

Try it

With Custom agent· 8 parts to fill in

Localize [path to string file] from English into [list of languages] for [game or app name]. For each language, use only that language's style card and reference pairs from [style folder], plus [glossary file] and last release's translations in [translation memory file]. Before translating, list any proper names or terms missing from the glossary and stop if there are any. Keep every placeholder and tag exactly as in the source and respect each string's character limit. After the draft, reread each language without the English to fix anything that sounds translated, then check it against the source and undo edits that changed meaning, numbers, names or tags. Run [lint script] and fix what it reports. Show me a per-language list of remaining issues before writing the final [CSV or file format].

Square brackets are the parts to fill in. The prompt is ours; the story is theirs.

Where they said it

Related