Finding untranslated copy before it ships
An automated check fails the build over any interface text missing from an enabled language — this report is the list that stands between you and a green build.
There's an automated check behind this screen: it scans every interface text key your platform can emit and fails the build if one is missing from a language your organization has enabled. That makes this report the actual list you work through, not a dashboard you check when you have time.
Only your enabled languages count
A language you haven't turned on can't block you — the report never lists a gap in a language your organization doesn't publish in. Adding a fifth language later is what makes its gaps start counting, not before.
A gap in your default language is a different severity
Every other gap means a resident falls back to reading a different language they may or may not understand. A gap in the default language means the resident sees the raw key — Pothole.Report.Error.NationalId.Invalid, verbatim, in the middle of a form. The report sorts those to the top and marks each one, because it's a worse failure than any other row on the page.
A key marked as affecting the default language is the one to fix first, every time — it's the only gap a resident sees as broken text rather than as their second-choice language.
The fallback column tells you which job this actually is
For every missing key, the report shows what a resident sees right now in your default language. A key with a real sentence there is untranslated — someone needs to translate existing text. A key showing the raw ⟦key⟧ form has never been written in any language — someone needs to write it from scratch. Those are different jobs for different people, and the column exists specifically so you don't have to open each one to tell them apart.
Filter by language or by service to get your own list
Click a language to see only its gaps, or a service name to see only the keys that module can emit — that's how a translator gets the list that's actually theirs to work through, and how a team owning one module gets a report sized to what they can act on, rather than one four-hundred-row table nobody starts.
Every row opens the same editor a key is edited in directly — there's no separate "fix missing translation" flow to learn, just this report as a faster way to find the row that needs it.