Commit af705b9
Translates the remaining 275 keys x 8 packs = 2,200 strings, closing #2872.
Largest namespaces: `grid` (101, mostly the import wizard), `gantt` (58),
`dashboard` (25), plus a long tail across list/auth/fields/marketplace/
capability and nine others.
Every pack is now at parity with en: 2,495 of 2,499 keys, zero keys en lacks.
The four-key remainder is the outbound-message set, absent by design so t()
falls through to English and the cloud confirm gate keeps recognising it.
P3 is now enforceable. The four-namespace ratchet from #2905 is replaced by
all-locales-key-parity.test.ts, asserting: every pack defines every en key;
no pack defines a key en lacks (#2872 part b was 74 keys of exactly this);
and placeholders match en per string — both `{{count}}` and the single-brace
`{count}` form that two gantt.autoScheduleDlg keys use because their call site
does a literal .replace('{count}', …) instead of i18next interpolation. All
three assertions were mutation-tested, single-brace form included.
A bug the test suite could not have caught: the first merge pass produced
DUPLICATE keys in four packs. The key list is the union of what is missing
across all eight, but the insert ran unconditionally, so packs that already
had detail.created/detail.updated got a second copy. Every test still passed
— at runtime the later property wins, so the parity check saw a consistent
object. tsc caught it as TS1117 during `turbo build`; ESLint does not flag it
and a runtime test cannot, since the duplicate is collapsed before JS sees the
object. The merge script now filters per pack.
Translations are model-generated, and dense domain terminology (Gantt
dependency types, the import wizard's upsert/match-field vocabulary) is where
that is weakest. Shipping as a reviewable first draft, not a finished
localization. Mechanically verified: parity both directions, placeholder shape
per string, and that no outbound agent message was translated.
Claude-Session: https://claude.ai/code/session_01TubWYdWquVkS9dj733sDmC
Co-authored-by: Claude <noreply@anthropic.com>
1 parent 503d3f6 commit af705b9
11 files changed
Lines changed: 2810 additions & 83 deletions
File tree
- .changeset
- packages/i18n/src
- __tests__
- locales
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
Lines changed: 99 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
| 56 | + | |
| 57 | + | |
| 58 | + | |
| 59 | + | |
| 60 | + | |
| 61 | + | |
| 62 | + | |
| 63 | + | |
| 64 | + | |
| 65 | + | |
| 66 | + | |
| 67 | + | |
| 68 | + | |
| 69 | + | |
| 70 | + | |
| 71 | + | |
| 72 | + | |
| 73 | + | |
| 74 | + | |
| 75 | + | |
| 76 | + | |
| 77 | + | |
| 78 | + | |
| 79 | + | |
| 80 | + | |
| 81 | + | |
| 82 | + | |
| 83 | + | |
| 84 | + | |
| 85 | + | |
| 86 | + | |
| 87 | + | |
| 88 | + | |
| 89 | + | |
| 90 | + | |
| 91 | + | |
| 92 | + | |
| 93 | + | |
| 94 | + | |
| 95 | + | |
| 96 | + | |
| 97 | + | |
| 98 | + | |
| 99 | + | |
Lines changed: 0 additions & 83 deletions
This file was deleted.
0 commit comments