Localization QA for game teams

Ship every language without broken strings.

Dohwa checks translation files before they reach the build: missing placeholders, broken tags, text that overflows the UI, glossary drift, and, with Claude, translations that say the wrong thing.

The checker on this page runs in your browser. Files are not uploaded.

hud.golderror
EN

You have {0} gold.

KO

골드를 가지고 있습니다.

Placeholder missing. The player would never see how much gold they have.
EN

Defeat the Ember Wyrm before it reaches the village.

KO

잿불 비룡이 마을에 도달한 후에 처치하세요.

meaning "before" became "after". No rule can catch this; a reviewer that reads both languages can.

Live checker

Try it on a real string table.

Load the sample from a fictional RPG (English to Korean, 30 strings) or drop your own CSV or JSON with key, source, target, and optional max_length columns.

Rule checks run locally in this page. Meaning-level review uses the Claude API and is not run from this page.

KeyCheckFindingSource / translation

Claude review on the sample

What the rules cannot see.

The sample also hides six meaning-level errors: two mistranslations, two omissions, and two strings in the wrong register. The Claude review harness for this sample is built; its results will be published here after the first run.

What it catches

Two layers, one report.

Deterministic checks are instant, free, and never miss a broken placeholder. Claude reads source and translation together for what rules cannot judge.

Rule checks in your browser

  • Placeholders {0}, {name}, %s, %1$d, {{var}}
  • Markup <b>, <color=…>, [i], unclosed tags
  • Line breaks and numbers \n count, missing or changed numbers
  • Length per-string limits, overflow risk for wide scripts
  • Glossary required terms, untranslated strings, duplicate keys
  • Punctuation and spacing dropped question marks, stray spaces

Claude review Claude API

  • Meaning changed numbers, conditions, negation, before/after
  • Omission information the player needs that never made it across
  • Tone and register formal vs casual speech, per the style guide
  • Terminology in context glossary terms inflected or paraphrased

Each finding comes back as structured JSON with the key, the type, an explanation, and a suggested fix, ready for a CI report or a translator's queue.

Who it's for

Teams shipping strings every patch.

Localization bugs are cheap to fix in a spreadsheet and expensive to fix after a store review or a patch day.

Indie studios going global

Shipping five languages with contract translators and no dedicated LQA pass.

Live-service teams

New event, store, and patch strings every week, translated on a deadline.

Publishers and LQA vendors

Reviewing many titles at once and needing a first pass before human testers.

Why Claude

Review needs a model that reads both languages.

A string table is long, multilingual, and full of context that rules cannot hold. Each part of the review maps to a Claude capability.

Long context

The whole table at once

Strings, glossary, and style guide in one pass, so consistency is judged across the file, not line by line.

Multilingual

Register and nuance

Korean speech levels, Japanese politeness, gendered forms: the errors players notice first.

Structured output

Findings, not prose

A fixed JSON schema per issue, so results merge with the rule checks and feed CI.

Tool use and MCP

Where strings live

Next: connect to repositories and translation tools so review runs on every change.

Team and roadmap

Small team.
Short loop.

Dohwa is built by a solo founder covering product and engineering, based in Seoul.

  1. Working

    Rule engine and browser checker

    Live on this page. On the sample file it flags all 12 rule-detectable errors with no false alarms on the 12 clean strings.

  2. Built

    Claude review harness

    Sends the table, glossary, and style guide to the Claude API and scores the findings against seeded meaning-level errors.

  3. Next

    CLI and CI check, then pilots

    A command-line tool and GitHub Action that fail the build on broken strings, piloted with indie studios.

Questions.

Are my files uploaded?

No. The checker on this page reads the file in your browser and sends nothing over the network.

Which formats and languages?

CSV and JSON today; XLIFF, PO, and Unity localization tables are next. Rule checks work for any language pair. The Claude review is being evaluated first on English to Korean.

Does it replace human LQA?

No. It removes the mechanical errors and points reviewers to the strings most likely to be wrong, so human testers spend their time on what needs judgment.