Skip to content

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 -j

locales:quality

i18nprune quality — read-only parity report:

  • Per non-English locale: missing/extra key paths vs en.json.
  • Source-identical leaf counts (respects policies.parity in 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, JSON
bash
pnpm locales:quality
pnpm exec i18nprune quality -j

locales:missing

bash
pnpm locales:missing

locales:doctor

Config and environment diagnostics:

bash
pnpm locales:doctor

Dynamic key sites

bash
pnpm exec i18nprune kits dynamic -F -j
pnpm exec i18nprune kits dynamic -cn settings/index -T 20

Combined / 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.md

CI-style gate

There is no locales:ci script. Run from repo root:

bash
pnpm -C apps/web locales:validate
pnpm -C apps/web locales:quality

See ci.md.

  • README.md — runtime overview
  • sync.mdlocales:sync
  • shared.md — preserve/parity policies in config
  • maintainer/systems/i18n.md — maintainer reference