checkpoints.ds

Search the design system

Jump to a page or component

AUDIT

Localization

Checkpoints ships in 5 languages. A key that exists in English but not in French doesn't error — it silently falls back, and the product quietly degrades for four users out of five. So the diff runs on every build.

LOCALES
5
NAMESPACES
19
KEYS PER LOCALE
1,959
MISSING
0

Full coverage

Coverage by locale

Every locale is diffed against en, key by key, including nested paths.

es

Español

1,959 / 1,959 KEYS

fr

Français

1,959 / 1,959 KEYS

it

Italiano

1,959 / 1,959 KEYS

pt

Português

1,959 / 1,959 KEYS

By namespace

Missing-key counts per namespace, per locale. Zero everywhere is the target state — and currently the actual state.

NAMESPACEKEYSesfritpt
achievements79
activity13
admin42
auth83
checkpoints179
common29
feed61
game162
guilds213
import102
lists241
nav25
notifications5
onboarding132
parties138
profile182
reviews118
search58
settings97

The rules this enforces

Translation coverage is a design-system concern because copy is a component input. A label that overflows in German is a layout bug, not a content bug.

  • No user-facing string is hardcoded. Copy goes through useTranslation("<namespace>") on both platforms.
  • A key lands in all 5 locale files in the same change. English-only is never the end state of a PR.
  • Interpolation and plural suffixes (_one / _other) instead of string concatenation — word order isn't portable across languages.
  • Dynamic content is never translated: usernames, game titles, and user-written checkpoint and review text pass through untouched.