refactor(i18n): tighten shared terms and dynamic key proofs#972
Merged
limityan merged 2 commits intoMay 30, 2026
Conversation
a4d2ace to
dcb0b55
Compare
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.
Refs #959
Summary
shared.product.nameterm and remove the duplicatedtitlebar.defaultlocale keys.i18n:audit, and document the rule.proofStatereporting so current dynamic contracts are distinguishable assource-proven, not merely allowlisted.app-nameand relay staticRemote Controlwhile preserving runtime compatibility and self-contained loading.$sharedreferences faili18n:auditinstead of silently degrading.Key Comparison
product.nameduplicate candidatesfeatures.remoteControlduplicate candidatessource-provenCurrent report also keeps
confirmedUnusedKeysat0andl10nQualityCandidatesat1093; this PR does not attempt translation-quality cleanup.Risks / Contract Changes
app-namecontinue to resolve through an explicit alias toshared.product.name; the copied Fluent key is removed.{ "$shared": "features.remoteControl" }through a tiny generatedi18n.shared.json; it remains self-contained and does not import Web UI locale catalogs.sourceReferences, and unproved contracts faili18n:audit.Verification
pnpm run fmt:rspnpm run i18n:generate -- --checkpnpm run i18n:audit -- --report-json scripts/.tmp-i18n-pr-cd-report.jsonpnpm run i18n:contract:test(31 tests)pnpm --dir BitFun-Installer run type-checkcargo test -p bitfun-core i18n -- --nocapturepnpm run check:repo-hygienegit diff --checksource-proven, removed core/relay shared-term duplicate classes are absent from the audit report, and stale relay$sharedreferences are audit-blocked.