Untranslated string finder

日本語版はこちら

Find the rows that never got translated, before a player finds them for you.

Why untranslated rows survive to release

Untranslated rows are rarely forgotten on purpose. They arrive when new text is added late, when a file is merged and one side wins, or when a runtime fallback quietly serves the source language so nothing looks broken in testing. The build runs, nothing errors, and the gap only shows up in front of a player.

The mechanical signal is simple: the target is empty, or the target is byte-for-byte the source. The second one needs a human eye afterwards, because some rows are legitimately identical — proper nouns, interface words that stay in English, numbers. A checker that flags them and a person who clears them is the right division of labour.

Keeping the gap from re-opening

Treat every newly added source row as untranslated until proven otherwise, rather than assuming it inherited a translation. That single rule catches most of what ships broken, and it is the reason tracking what changed between builds matters more than any one-off check.

Other free tools