open-design/scripts
leessju 3944ef34b8
feat(scripts): add informational i18n coverage report (#1896)
Adds `scripts/i18n-coverage-report.ts` (wired via
`pnpm i18n:coverage`) that reports per-locale key-coverage drift
against English. The output looks like:

  Locale (key total = 1578 on en)
  en       English                keys=1578 missing=   0 ...
  zh-CN    简体中文                  keys=1578 missing=   0 coverage=100%
  th       ภาษาไทย               keys=1261 missing= 317 coverage=80%
  ...

Why this is useful right now:

- The existing `scripts/i18n-check.ts` validates *structural*
  consistency (locale registration, README switcher alignment, core
  doc link references) and exits non-zero on failure. It does not
  surface content-coverage drift.
- The test suite enforces strict English-parity only for Indonesian
  (`id`) — other locales pass CI even when an English key was added
  without a matching translation. Today the average locale is missing
  ~140–300 keys vs English on `main`.

This script is purely informational — exit code stays 0. It gives
contributors and release managers a fast way to see which locale
needs translation work without breaking PRs until the locale catches
up. Issue #1894 covers the policy question of *whether* strict
enforcement should extend beyond Indonesian (e.g., to a tier-1 locale
set); this script is the substrate for that policy conversation, not a
substitute for it.

Refs #1894.

Validation:
- `pnpm i18n:coverage` runs end-to-end against the 19 locale files
  under `apps/web/src/i18n/locales/`, exit 0.
- `pnpm guard` green.
- `pnpm exec tsc -p scripts/tsconfig.json --noEmit` green.

Co-authored-by: nicejames <nicejames@gmail.com>
2026-05-16 16:06:25 +08:00
..
migrate-to-plugins feat(plugins): enhance visual score sorting and add new example templates 2026-05-13 21:02:05 +08:00
bake-community-pets.ts fix: remove Trump pet from bundled community pets (#1103) 2026-05-10 12:11:00 +08:00
bake-html-ppt-examples.mjs feat(skills): integrate lewislulu/html-ppt-skill + 15 per-template Examples cards (#193) 2026-05-02 11:00:44 +08:00
batch-design-system-test.test.ts Add batch design system testing (#1515) 2026-05-14 14:19:32 +08:00
batch-design-system-test.ts Add batch design system testing (#1515) 2026-05-14 14:19:32 +08:00
check-design-system-flag-parity.ts feat(daemon): make design-system token channel default-on (PR-D) (#1544) 2026-05-14 14:14:19 +08:00
check-tokens-fixture-sync.ts feat(design-systems): add structured tokens.css schema (default + kami) (#1231) 2026-05-11 22:23:34 +08:00
guard.ts Merge origin/garnet-hemisphere (post-9e196d34) — Use Plugin handoff fix 2026-05-14 16:32:35 +08:00
i18n-check.ts Add i18n structure checks (#608) 2026-05-06 11:55:59 +08:00
i18n-coverage-report.ts feat(scripts): add informational i18n coverage report (#1896) 2026-05-16 16:06:25 +08:00
import-prompt-templates.mjs feat(prompt-templates): add dance storyboard and ancient-china MMO HUD templates (#187) 2026-05-01 17:30:02 +08:00
notebooklm-export-github.ts docs: add NotebookLM GitHub export script (#1062) 2026-05-12 15:47:32 +08:00
postinstall.mjs Build registry protocol in packaged workspaces 2026-05-14 21:23:45 +08:00
release-beta.ts [codex] Add stable nightly promotion gate (#962) 2026-05-08 21:48:54 +08:00
release-preview.ts Add preview release channel 2026-05-14 19:15:16 +08:00
release-stable.ts test: harden e2e smoke and release reports (#1140) 2026-05-11 13:11:16 +08:00
scaffold-html-ppt-skills.mjs feat(skills): integrate lewislulu/html-ppt-skill + 15 per-template Examples cards (#193) 2026-05-02 11:00:44 +08:00
seed-curated-design-skills.ts fix(skills): repoint coreyhaines31 upstream URLs to marketingskills (#1659) 2026-05-14 20:10:14 +08:00
seed-test-projects.ts chore: align namespace lifecycle packaging 2026-05-14 16:35:46 +08:00
style-policy.test.ts feat(web): Add Tailwind foundation (#1388) 2026-05-12 21:48:16 +08:00
style-policy.ts feat(web): Add Tailwind foundation (#1388) 2026-05-12 21:48:16 +08:00
sync-community-pets.ts feat(web): add pet companion with Codex hatch-pet integration (#296) 2026-05-02 23:45:39 +08:00
sync-design-systems.ts Add shared contracts and migrate project code to TypeScript (#118) 2026-04-30 13:01:15 +08:00
sync-hyperframes-skill.mjs feat(media): port generation workflow onto main (#12) 2026-04-30 22:44:00 +08:00
sync-litellm-models.ts fix: make max_tokens configurable (closes #29) (#78) 2026-05-02 13:52:54 +08:00
tsconfig.json chore: enforce test directory conventions (#496) 2026-05-05 15:34:22 +08:00
verify-media-models.mjs feat(media): port generation workflow onto main (#12) 2026-04-30 22:44:00 +08:00