Locale validate & quality (i18nprune)
Locale tooling runs through i18nprune (apps/web/i18nprune.config.ts). The old apps/web/scripts/locales/** tree was removed.
locales:validate
i18nprune validate — parses all apps/web/locales/*.json, scans apps/web/src/** for literal translation key paths, and reports missing keys vs en.json. Also surfaces dynamic-key-site warnings (non-literal t() calls).
From apps/web:
bash
pnpm locales:validate
pnpm exec i18nprune validate -jlocales:quality
i18nprune quality — read-only parity report:
- Per non-English locale: missing/extra key paths vs
en.json. - Source-identical leaf counts (respects
policies.parityin config).
For path-level identical lists, use native kits:
bash
pnpm exec i18nprune kits identical -T 50
pnpm exec i18nprune kits identical -r -F -j # raw equality, full list, JSONbash
pnpm locales:quality
pnpm exec i18nprune quality -jlocales:missing
bash
pnpm locales:missinglocales:doctor
Config and environment diagnostics:
bash
pnpm locales:doctorDynamic key sites
bash
pnpm exec i18nprune kits dynamic -F -j
pnpm exec i18nprune kits dynamic -cn settings/index -T 20Combined / PR audits
bash
pnpm exec i18nprune kits honest -T 20
pnpm exec i18nprune kits pr -T 10 -f settings
pnpm exec i18nprune kits baseline -sb .i18n/signal.mdCI-style gate
There is no locales:ci script. Run from repo root:
bash
pnpm -C apps/web locales:validate
pnpm -C apps/web locales:qualitySee ci.md.