@pie-players/pie-i18n-generated 1.0.0-beta.7 → 1.0.0-beta.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (75) hide show
  1. package/README.md +104 -13
  2. package/dist/index.js +67 -0
  3. package/dist/messages/am.d.ts +667 -0
  4. package/dist/messages/am.js +678 -0
  5. package/dist/messages/ar.d.ts +28 -4
  6. package/dist/messages/ar.js +39 -15
  7. package/dist/messages/bn.d.ts +662 -0
  8. package/dist/messages/bn.js +662 -0
  9. package/dist/messages/cy.d.ts +28 -5
  10. package/dist/messages/cy.js +41 -18
  11. package/dist/messages/de.d.ts +665 -0
  12. package/dist/messages/de.js +688 -0
  13. package/dist/messages/el.d.ts +661 -0
  14. package/dist/messages/el.js +661 -0
  15. package/dist/messages/en-AU.d.ts +24 -6
  16. package/dist/messages/en-AU.js +24 -6
  17. package/dist/messages/en-GB.d.ts +24 -6
  18. package/dist/messages/en-GB.js +24 -6
  19. package/dist/messages/es.d.ts +23 -4
  20. package/dist/messages/es.js +52 -33
  21. package/dist/messages/fa.d.ts +664 -0
  22. package/dist/messages/fa.js +664 -0
  23. package/dist/messages/fil.d.ts +665 -0
  24. package/dist/messages/fil.js +690 -0
  25. package/dist/messages/fr.d.ts +34 -8
  26. package/dist/messages/fr.js +60 -34
  27. package/dist/messages/he.d.ts +669 -0
  28. package/dist/messages/he.js +669 -0
  29. package/dist/messages/hmn.d.ts +660 -0
  30. package/dist/messages/hmn.js +660 -0
  31. package/dist/messages/ht.d.ts +665 -0
  32. package/dist/messages/ht.js +683 -0
  33. package/dist/messages/it.d.ts +672 -0
  34. package/dist/messages/it.js +703 -0
  35. package/dist/messages/ja.d.ts +22 -4
  36. package/dist/messages/ja.js +29 -11
  37. package/dist/messages/km.d.ts +658 -0
  38. package/dist/messages/km.js +658 -0
  39. package/dist/messages/ko.d.ts +22 -4
  40. package/dist/messages/ko.js +39 -21
  41. package/dist/messages/lo.d.ts +659 -0
  42. package/dist/messages/lo.js +659 -0
  43. package/dist/messages/ne.d.ts +667 -0
  44. package/dist/messages/ne.js +682 -0
  45. package/dist/messages/nl-NL.d.ts +668 -0
  46. package/dist/messages/nl-NL.js +668 -0
  47. package/dist/messages/pa.d.ts +663 -0
  48. package/dist/messages/pa.js +663 -0
  49. package/dist/messages/pl.d.ts +675 -0
  50. package/dist/messages/pl.js +675 -0
  51. package/dist/messages/pt.d.ts +24 -4
  52. package/dist/messages/pt.js +52 -32
  53. package/dist/messages/ro.d.ts +28 -8
  54. package/dist/messages/ro.js +53 -33
  55. package/dist/messages/ru.d.ts +676 -0
  56. package/dist/messages/ru.js +689 -0
  57. package/dist/messages/so.d.ts +666 -0
  58. package/dist/messages/so.js +679 -0
  59. package/dist/messages/sv.d.ts +28 -8
  60. package/dist/messages/sv.js +37 -17
  61. package/dist/messages/th-TH.d.ts +24 -6
  62. package/dist/messages/th-TH.js +33 -15
  63. package/dist/messages/tr.d.ts +659 -0
  64. package/dist/messages/tr.js +659 -0
  65. package/dist/messages/uk.d.ts +675 -0
  66. package/dist/messages/uk.js +675 -0
  67. package/dist/messages/ur.d.ts +661 -0
  68. package/dist/messages/ur.js +661 -0
  69. package/dist/messages/vi.d.ts +652 -0
  70. package/dist/messages/vi.js +652 -0
  71. package/dist/messages/zh-Hant.d.ts +655 -0
  72. package/dist/messages/zh-Hant.js +655 -0
  73. package/dist/messages/zh.d.ts +29 -10
  74. package/dist/messages/zh.js +40 -21
  75. package/package.json +3 -3
package/README.md CHANGED
@@ -54,19 +54,43 @@ loaded catalog.
54
54
 
55
55
  | Tag | Status | Brief | Generated |
56
56
  | --- | --- | --- | --- |
57
- | `th-TH` | generated, unreviewed | [`briefs/th-TH.md`](./briefs/th-TH.md) | 2026-10-19 |
58
- | `en-GB` | generated, unreviewed | [`briefs/en-GB.md`](./briefs/en-GB.md) | 2026-10-19 |
59
- | `en-AU` | generated, unreviewed | [`briefs/en-AU.md`](./briefs/en-AU.md) | 2026-10-19 |
60
- | `es` | generated, unreviewed (Latin-American neutral; serves `es*`) | [`briefs/es.md`](./briefs/es.md) | 2026-10-19 |
61
- | `fr` | generated, unreviewed (France flavour; serves `fr*`) | [`briefs/fr.md`](./briefs/fr.md) | 2026-10-19 |
62
- | `ar` | generated, unreviewed (MSA; serves `ar*`; RTL — first RTL locale, layout not yet audited) | [`briefs/ar.md`](./briefs/ar.md) | 2026-10-19 |
63
- | `pt` | generated, unreviewed (Brazilian; serves `pt*`) | [`briefs/pt.md`](./briefs/pt.md) | 2026-10-19 |
64
- | `ko` | generated, unreviewed | [`briefs/ko.md`](./briefs/ko.md) | 2026-10-19 |
65
- | `ja` | generated, unreviewed | [`briefs/ja.md`](./briefs/ja.md) | 2026-10-19 |
66
- | `zh` | generated, unreviewed (Simplified; serves `zh`, `zh-CN`, `zh-SG`; Traditional hosts supply `customMessages`) | [`briefs/zh.md`](./briefs/zh.md) | 2026-10-19 |
67
- | `cy` | generated, unreviewed (serves `cy`, `cy-GB`; six CLDR plural categories) | [`briefs/cy.md`](./briefs/cy.md) | 2026-10-19 |
68
- | `sv` | generated, unreviewed (serves `sv`, `sv-SE`, `sv-FI`) | [`briefs/sv.md`](./briefs/sv.md) | 2026-10-19 |
69
- | `ro` | generated, unreviewed (serves `ro`, `ro-RO`, `ro-MD`; three CLDR plural categories, `other` takes `de`) | [`briefs/ro.md`](./briefs/ro.md) | 2026-10-19 |
57
+ | `th-TH` | reviewed (agent pass in lieu of a native reader, 2026-11-03) | [`briefs/th-TH.md`](./briefs/th-TH.md) | 2026-10-19 |
58
+ | `en-GB` | reviewed (agent verification pass, 2026-11-03; delta locale) | [`briefs/en-GB.md`](./briefs/en-GB.md) | 2026-10-19 |
59
+ | `en-AU` | reviewed (agent verification pass, 2026-11-03; delta locale) | [`briefs/en-AU.md`](./briefs/en-AU.md) | 2026-10-19 |
60
+ | `es` | reviewed (agent pass in lieu of a native reader, 2026-11-03; Latin-American neutral; serves `es*`) | [`briefs/es.md`](./briefs/es.md) | 2026-10-19 |
61
+ | `fr` | reviewed (agent pass in lieu of a native reader, 2026-11-03; France flavour; serves `fr*`) | [`briefs/fr.md`](./briefs/fr.md) | 2026-10-19 |
62
+ | `ar` | reviewed (agent pass in lieu of a native reader, 2026-11-04, after the RTL layout audit below landed; MSA; serves `ar*`; RTL) | [`briefs/ar.md`](./briefs/ar.md) | 2026-10-19 |
63
+ | `pt` | reviewed (agent pass in lieu of a native reader, 2026-11-03; Brazilian; serves `pt*`) | [`briefs/pt.md`](./briefs/pt.md) | 2026-10-19 |
64
+ | `ko` | reviewed (agent pass in lieu of a native reader, 2026-11-03) | [`briefs/ko.md`](./briefs/ko.md) | 2026-10-19 |
65
+ | `ja` | reviewed (agent pass in lieu of a native reader, 2026-11-03) | [`briefs/ja.md`](./briefs/ja.md) | 2026-10-19 |
66
+ | `zh` | reviewed (agent pass in lieu of a native reader, 2026-11-03; Simplified; serves `zh`, `zh-CN`, `zh-SG`; Traditional hosts supply `customMessages`) | [`briefs/zh.md`](./briefs/zh.md) | 2026-10-19 |
67
+ | `cy` | reviewed (agent pass in lieu of a native reader, 2026-11-03; serves `cy`, `cy-GB`; six CLDR plural categories) | [`briefs/cy.md`](./briefs/cy.md) | 2026-10-19 |
68
+ | `sv` | reviewed (agent pass in lieu of a native reader, 2026-11-03; serves `sv`, `sv-SE`, `sv-FI`) | [`briefs/sv.md`](./briefs/sv.md) | 2026-10-19 |
69
+ | `ro` | reviewed (agent pass in lieu of a native reader, 2026-11-03; serves `ro`, `ro-RO`, `ro-MD`; three CLDR plural categories, `other` takes `de`) | [`briefs/ro.md`](./briefs/ro.md) | 2026-10-19 |
70
+ | `vi` | reviewed (agent pass in lieu of a native reader, 2026-11-03; serves `vi`, `vi-VN`; one CLDR plural category) | [`briefs/vi.md`](./briefs/vi.md) | 2026-11-03 |
71
+ | `nl-NL` | reviewed (**native-speaker audit** — the framework's audit language; carried over from `players-shared`'s bundled set on 2026-11-04, verbatim) | [`briefs/nl-NL.md`](./briefs/nl-NL.md) | 2026-10-18 |
72
+ | `de` | reviewed (agent generation-and-review pass in lieu of a native reader, 2026-11-04; international deployment set; serves `de`, `de-AT`, `de-CH`) | [`briefs/de.md`](./briefs/de.md) | 2026-11-04 |
73
+ | `it` | reviewed (agent generation-and-review pass in lieu of a native reader, 2026-11-04; international deployment set; serves `it`) | [`briefs/it.md`](./briefs/it.md) | 2026-11-04 |
74
+ | `pl` | reviewed (agent generation-and-review pass in lieu of a native reader, 2026-11-04; international deployment set; serves `pl`; four CLDR plural categories) | [`briefs/pl.md`](./briefs/pl.md) | 2026-11-04 |
75
+ | `tr` | reviewed (agent generation-and-review pass in lieu of a native reader, 2026-11-04; international deployment set; serves `tr`, `tr-CY`) | [`briefs/tr.md`](./briefs/tr.md) | 2026-11-04 |
76
+ | `uk` | reviewed (agent generation-and-review pass in lieu of a native reader, 2026-11-04; international deployment set; serves `uk`; four CLDR plural categories) | [`briefs/uk.md`](./briefs/uk.md) | 2026-11-04 |
77
+ | `el` | reviewed (agent generation-and-review pass in lieu of a native reader, 2026-11-04; international deployment set; serves `el`, `el-CY`) | [`briefs/el.md`](./briefs/el.md) | 2026-11-04 |
78
+ | `ru` | reviewed (agent generation-and-review pass in lieu of a native reader, 2026-11-04; big-US wave; four CLDR plural categories) | [`briefs/ru.md`](./briefs/ru.md) | 2026-11-04 |
79
+ | `fil` | reviewed (agent generation-and-review pass in lieu of a native reader, 2026-11-04; big-US wave; the `tl` tag aliases this catalog) | [`briefs/fil.md`](./briefs/fil.md) | 2026-11-04 |
80
+ | `tl` | alias of `fil` (US systems label the language Tagalog) | [`briefs/fil.md`](./briefs/fil.md) | 2026-11-04 |
81
+ | `ht` | reviewed (agent generation-and-review pass in lieu of a native reader, 2026-11-04; big-US wave) | [`briefs/ht.md`](./briefs/ht.md) | 2026-11-04 |
82
+ | `ur` | reviewed (agent generation-and-review pass in lieu of a native reader, 2026-11-04; second RTL wave — inherits the audited RTL layout contract) | [`briefs/ur.md`](./briefs/ur.md) | 2026-11-04 |
83
+ | `fa` | reviewed (agent generation-and-review pass in lieu of a native reader, 2026-11-04; second RTL wave) | [`briefs/fa.md`](./briefs/fa.md) | 2026-11-04 |
84
+ | `he` | reviewed (agent generation-and-review pass in lieu of a native reader, 2026-11-04; second RTL wave; CLDR `two` category) | [`briefs/he.md`](./briefs/he.md) | 2026-11-04 |
85
+ | `zh-Hant` | reviewed (agent generation-and-review pass in lieu of a native reader, 2026-11-04; Taiwan-register Traditional — regional tag, bare `zh` stays Simplified) | [`briefs/zh-Hant.md`](./briefs/zh-Hant.md) | 2026-11-04 |
86
+ | `so` | reviewed (agent pass, 2026-11-04; state/regional wave — terminology partially standardized, **native review strongly advised**) | [`briefs/so.md`](./briefs/so.md) | 2026-11-04 |
87
+ | `hmn` | reviewed (agent pass, 2026-11-04; state/regional wave — White Hmong RPA, CLDR-undersourced, **native review strongly advised**) | [`briefs/hmn.md`](./briefs/hmn.md) | 2026-11-04 |
88
+ | `km` | reviewed (agent pass, 2026-11-04; state/regional wave — Khmer script, **native review strongly advised**) | [`briefs/km.md`](./briefs/km.md) | 2026-11-04 |
89
+ | `lo` | reviewed (agent pass, 2026-11-04; state/regional wave — Lao script, **native review strongly advised**) | [`briefs/lo.md`](./briefs/lo.md) | 2026-11-04 |
90
+ | `bn` | reviewed (agent pass, 2026-11-04; state/regional wave — Bengali script, **native review strongly advised**) | [`briefs/bn.md`](./briefs/bn.md) | 2026-11-04 |
91
+ | `pa` | reviewed (agent pass, 2026-11-04; state/regional wave — Gurmukhi script, **native review strongly advised**) | [`briefs/pa.md`](./briefs/pa.md) | 2026-11-04 |
92
+ | `ne` | reviewed (agent pass, 2026-11-04; state/regional wave — Devanagari script, **native review strongly advised**) | [`briefs/ne.md`](./briefs/ne.md) | 2026-11-04 |
93
+ | `am` | reviewed (agent pass, 2026-11-04; state/regional wave — Ethiopic script, **native review strongly advised**) | [`briefs/am.md`](./briefs/am.md) | 2026-11-04 |
70
94
 
71
95
  Locale tags are chosen for variant reach: bare tags (`es`, `fr`, `ar`) let
72
96
  `es-MX`, `fr-CA` and `ar-SA` widen onto them through RFC 4647 lookup, while
@@ -109,6 +133,14 @@ fails the gate until the affected catalogs are regenerated — wholesale for
109
133
 
110
134
  ## The review lifecycle
111
135
 
136
+ **Agent passes in lieu of native readers.** On 2026-11-03 `es`, `en-GB` and
137
+ `en-AU` were promoted on agent passes: no native readers were available, the
138
+ maintainer accepted agent review for them, and each manifest entry's
139
+ `reviewedBy` records exactly that. `reviewed` still means *a pass happened and
140
+ its work is anchored* — the pass's nature lives in the manifest, the native
141
+ pass remains open work, and because regeneration is surgical from here, a
142
+ later native pass corrects in place instead of starting over.
143
+
112
144
  A locale moves through two statuses, recorded in `catalog-manifest.json`, and
113
145
  what regeneration may touch follows from the status:
114
146
 
@@ -151,6 +183,65 @@ lists keys whose English moved:
151
183
  Wholesale regeneration of a `reviewed` locale discards review work; do it
152
184
  only deliberately, by flipping the status back to `generated` first.
153
185
 
186
+ ## The RTL layout audit (`ar`)
187
+
188
+ Status: **landed 2026-11-04**, and `ar`'s promotion followed it. This section
189
+ is the audit's record; the checks it added run in the suite.
190
+
191
+ `ar` is the framework's first right-to-left interface locale, and the audit
192
+ that gated its review pass was a layout audit, not a translation one: a native
193
+ reviewer certifying strings that render mirrored would certify the wrong
194
+ product. `direction` derives from `Intl.Locale.prototype.textInfo` and the
195
+ shell stamps `lang`/`dir` on its own host
196
+ ([adoption record](../../docs/architecture/i18n-interface-locale-adoption.md)).
197
+
198
+ `packages/section-player/tests/section-player-rtl-layout.spec.ts` holds seven
199
+ rendered cases against the `ar` demo
200
+ (`/interface-locale?locale=ar`), run outside the sandbox per the repository's
201
+ Playwright rules:
202
+
203
+ 1. **Card header** (pre-existing): the item toolbar hugs the trailing edge,
204
+ under a forced `dir` and under the real `ar` stamps.
205
+ 2. **Card footer**: the formative check-answer button mirrors under the same
206
+ `margin-inline-start` trailing-edge rule (`/formative-delivery`, forced
207
+ `dir` — the rule reads inherited direction, and case 1 proves the stamping
208
+ path end to end).
209
+ 3. **Split-pane layout**: pane *order* flips — passages pane leads in LTR,
210
+ trails in RTL; containment stays with the scroll contract.
211
+ 4. **Toolbar pane**: the shell's toolbar pane hugs the trailing viewport edge
212
+ and follows the direction (right under LTR, left under `ar`); the vertical
213
+ tool column's reading order is direction-independent by design and is
214
+ pinned as stable.
215
+ 5. **Tool windows at `document.body`**: the graph shell's contents mirror
216
+ (title leads from the right under `ar`) while its screen position and size
217
+ stay put — the adoption record's free-window rule.
218
+ 6. **Metrics**: no chrome control clips (`scrollWidth` past the box) and no
219
+ horizontal page overflow appears under `ar`; the sweep covers the chrome
220
+ subtrees through the custom elements' open shadow roots and excludes the
221
+ item players' content roots, which are the content-language channel.
222
+ 7. **Text-level rendered inspection** (recorded, not asserted): a full-page
223
+ screenshot of the `ar` demo was inspected — Arabic labels sit at the
224
+ trailing edges with Western digits per the brief, English content keeps
225
+ its own LTR inside the content root's `dir="auto"`, and no punctuation
226
+ strands on the wrong side of an embedded Latin run in the rendered chrome.
227
+
228
+ **Defect found and repaired by the audit**: the toolbar pane's divider was a
229
+ physical `border-left`/`border-right`
230
+ (`SectionPlayerShell.svelte`), so under RTL the divider rendered on the
231
+ pane's outer screen edge instead of the content side. It now uses
232
+ `border-inline-start`/`border-inline-end`, and case 4's pane-flip assertion
233
+ pins the geometry.
234
+
235
+ **Recorded without assertions** — the surfaces the section demo cannot
236
+ exercise: the toolbar scrolls rather than collapsing into an overflow menu
237
+ when it overflows, and its tooltips are the browser's `title` rendering, so
238
+ neither has an assertion to carry; Back/Next navigation chrome belongs to the
239
+ assessment player (the reference assembly), not this building block; the
240
+ standalone item player (`<pie-item-player>` on its own) has no locale-driven
241
+ demo route, so its chrome mirror is covered only at the stamp level (the
242
+ interface-locale spec asserts its content-root stamps) — a follow-up demo
243
+ route would close that.
244
+
154
245
  ## Adding a locale
155
246
 
156
247
  Add `briefs/<locale>.md` (register, glossary, untranslated product names —
package/dist/index.js CHANGED
@@ -70,6 +70,50 @@ const GENERATED_CATALOG_LOADERS = {
70
70
  cy: () => import("./messages/cy.js"),
71
71
  sv: () => import("./messages/sv.js"),
72
72
  ro: () => import("./messages/ro.js"),
73
+ // Bare tag: `vi-VN` widens to `vi`.
74
+ vi: () => import("./messages/vi.js"),
75
+ // Regional on purpose, like en-GB/en-AU: the framework's audit language,
76
+ // native-speaker-reviewed, carried over from players-shared's bundled set
77
+ // on 2026-11-04. A bare `nl` widens onto it through the host's composed
78
+ // availableLocales, and its absence from the bundled set means a host that
79
+ // never wires this package never fetches it.
80
+ "nl-NL": () => import("./messages/nl-NL.js"),
81
+ // Bare tags: `de-AT`/`de-CH` widen to `de`, `tr` covers `tr-TR`, `el` covers
82
+ // Greece and Cyprus, `uk` covers Ukrainian everywhere.
83
+ de: () => import("./messages/de.js"),
84
+ it: () => import("./messages/it.js"),
85
+ pl: () => import("./messages/pl.js"),
86
+ tr: () => import("./messages/tr.js"),
87
+ uk: () => import("./messages/uk.js"),
88
+ el: () => import("./messages/el.js"),
89
+ // The big-US wave: `ru` carries the Slavic four-category set; `ht` is
90
+ // Haitian Creole; `fil` is Filipino — one catalog. A host labeling delivery
91
+ // Tagalog names `fil` (the modern stack name) or aliases `tl` in its own
92
+ // composition; this package ships the single authored catalog.
93
+ ru: () => import("./messages/ru.js"),
94
+ fil: () => import("./messages/fil.js"),
95
+ ht: () => import("./messages/ht.js"),
96
+ // The second RTL wave: the framework's RTL layout contract is audited and
97
+ // pinned by section-player's geometry spec (see the ar locale), so these
98
+ // inherit a verified mirroring path. `he` carries a CLDR `two` category.
99
+ ur: () => import("./messages/ur.js"),
100
+ fa: () => import("./messages/fa.js"),
101
+ he: () => import("./messages/he.js"),
102
+ // Regional on purpose, like nl-NL: Taiwan-register Traditional Chinese.
103
+ // Bare `zh` stays Simplified; `zh-TW`/`zh-HK` widen onto this.
104
+ "zh-Hant": () => import("./messages/zh-Hant.js"),
105
+ // The state/regional US wave: mostly one/other or other-only plurals, and
106
+ // several non-Latin scripts (Khmer, Lao, Bengali, Gurmukhi, Ethiopic,
107
+ // Devanagari; White Hmong in RPA Latin). Briefs flag where assessment
108
+ // terminology is not standardized — native review strongly advised.
109
+ so: () => import("./messages/so.js"),
110
+ hmn: () => import("./messages/hmn.js"),
111
+ km: () => import("./messages/km.js"),
112
+ lo: () => import("./messages/lo.js"),
113
+ bn: () => import("./messages/bn.js"),
114
+ pa: () => import("./messages/pa.js"),
115
+ ne: () => import("./messages/ne.js"),
116
+ am: () => import("./messages/am.js"),
73
117
  };
74
118
  /**
75
119
  * Every locale tag this package ships a generated catalog for.
@@ -91,6 +135,29 @@ export const GENERATED_LOCALES = [
91
135
  "cy",
92
136
  "sv",
93
137
  "ro",
138
+ "vi",
139
+ "nl-NL",
140
+ "de",
141
+ "it",
142
+ "pl",
143
+ "tr",
144
+ "uk",
145
+ "el",
146
+ "ru",
147
+ "fil",
148
+ "ht",
149
+ "ur",
150
+ "fa",
151
+ "he",
152
+ "zh-Hant",
153
+ "so",
154
+ "hmn",
155
+ "km",
156
+ "lo",
157
+ "bn",
158
+ "pa",
159
+ "ne",
160
+ "am",
94
161
  ];
95
162
  /**
96
163
  * Load one generated catalog.