Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
21 changes: 21 additions & 0 deletions .github/workflows/lint.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5199,6 +5199,27 @@ jobs:
- name: Check no new untranslated declared labels
run: pnpm check:i18n-coverage

# The i18n question none of its three neighbours can answer, because it
# judges THEM rather than the tree. Each of them measures a POPULATION the
# CLI extractor produces; none can notice that the population is short a
# whole family. A translation group lands in the spec with a resolver,
# the extractor is updated later or not at all, and in between `os i18n
# extract` scaffolds no key for it — so no translator is asked for one, so
# the coverage ratchet counts a debt of zero and reports OK while the
# strings ship in English. That has now happened five times, and every
# instance was found by a person noticing rather than by an instrument.
#
# This asserts set parity between the groups `TranslationDataSchema`
# DECLARES and the groups `collectExpectedEntries` WALKS, with a
# shrink-only exemption ledger — empty as it ships — for a group that
# legitimately has no extractor face, each entry carrying its reason.
#
# Reads both sides from BUILT output (the spec's schema object, the CLI's
# walker) rather than from source text, so it belongs here with the other
# post-build consumer gates.
- name: Check every declared translation group is walked by the extractor
run: pnpm check:i18n-walk-parity

# The THIRD i18n question, and the one neither step above can answer
# (#5750). Both of them read STATIC declarations; the Setup app declares a
# shell of empty group anchors and gets its ~50 menu entries at RUNTIME
Expand Down
1 change: 1 addition & 0 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,7 @@
"i18n:extract": "tsx packages/cli/bin/run-dev.js i18n extract packages/platform-objects/scripts/i18n-extract.config.ts --locales=zh-CN,ja-JP,es-ES --fill=default --source-hashes --out=packages/platform-objects/src/apps/translations",
"check:i18n": "node scripts/check-i18n-bundles.mjs --self-test && node scripts/check-i18n-bundles.mjs",
"check:i18n-coverage": "node scripts/check-i18n-coverage.mjs --self-test && node scripts/check-i18n-coverage.mjs",
"check:i18n-walk-parity": "node scripts/check-i18n-walk-parity.mjs --self-test && node scripts/check-i18n-walk-parity.mjs",
"check:i18n-stale-fill": "node scripts/check-i18n-stale-fill.mjs --self-test && node scripts/check-i18n-stale-fill.mjs",
"check:app-nav-i18n": "pnpm --filter @objectstack/cli run check:app-nav-i18n",
"check:nul-bytes": "node scripts/check-nul-bytes.mjs --self-test && node scripts/check-nul-bytes.mjs",
Expand Down
Loading
Loading