ci(i18n): replace stub i18n job with shared validation script - #318
Merged
Conversation
The existing 'i18n Validation' job was a literal stub:
# This is a placeholder - actual implementation depends on locale structure
echo "✅ i18n validation complete"
It checked nothing. Replaced with the canonical shared script in
scripts/i18n/ — byte-identical to seed and niac.
The script enforces every rule in
msn-docs-internal/05-Engineering/I18N_CONVENTIONS.md:
key-parity, no-empty-values, no-fallback-patterns, banned-vocab,
glossary-preservation, interpolation-parity (set-based, dedup-aware),
plural-completeness, locked-versions, hardcoded-jsx (warn-only).
Workflow passes --ratchet which demotes no-fallback-patterns and
locked-versions to warn-only while Phase 3 cleans backlog. Drop
--ratchet once both reach zero.
Mirror of seed#1193. NIAC follows.
Phase 4 of i18n full-implementation push.
krisarmstrong
enabled auto-merge (squash)
May 27, 2026 01:38
Qodo reviews are paused for this user.Troubleshooting steps vary by plan Learn more → On a Teams plan? Using GitHub Enterprise Server, GitLab Self-Managed, or Bitbucket Data Center? |
Contributor
License Compliance ReportAll dependencies pass license compliance checksGo Dependencies
npm DependenciesSee full report in workflow artifacts Allowed Licenses: MIT, Apache-2.0, BSD-*, ISC, CC0-1.0, MPL-2.0 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
The existing 'i18n Validation' CI job was a literal stub —
echo "✅ i18n validation complete"with no actual checks.Replaces it with the canonical
scripts/i18n/validate.shdeployed identically to seed/stem/niac (mirror of seed#1193).What the script checks
t('key', 'fallback')is banned perI18N_CONVENTIONS.md)--ratchet flag
The workflow passes
--ratchetwhich demotesno-fallback-patternsandlocked-versionsfrom fail → warn during Phase 3 cleanup. Drop once both reach zero across seed/stem/niac.Drive-by fixes (necessary for CI to pass)
While integrating the validator, two glossary-preservation failures had to be addressed for this PR to land green:
Bug fix —
internal/i18n/locales/es/errors.json:reflector.alreadyRunning/notRunning— Spanish translations had dropped theReflectorproper noun (Stem module name) per the glossary. Restored asReflector ya está en ejecución/Reflector no está en ejecución(also fixed missing accents on those two strings).Exceptions —
scripts/i18n/glossary-exceptions.txt(Stem-specific):tests.rfc2544.*.tooltip, etc.) use "Measure" as the imperative verb ("Measure packet loss…"), not as a reference to the StemMeasuremodule. Added to the per-key allow-list.The broader Spanish accent debt (the ES file is missing accents in dozens of places) is Phase 7 work and out of scope here.
Test plan
i18n Validationgoes green with--ratchetand the 2 documented warnings./scripts/i18n/validate.shlocally shows 0 failures, 2 warningsContext
Phase 4 of i18n full-implementation push. Mirror of seed#1193. NIAC follows.