@adminiumjs/i18n 0.1.2 → 0.2.2-rc.0

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 (241) hide show
  1. package/dist/a11y-keys.d.ts +17 -0
  2. package/dist/a11y-keys.d.ts.map +1 -0
  3. package/dist/a11y-keys.js +479 -0
  4. package/dist/a11y-keys.js.map +1 -0
  5. package/dist/create-i18n.d.ts.map +1 -1
  6. package/dist/create-i18n.js +38 -4
  7. package/dist/create-i18n.js.map +1 -1
  8. package/dist/editing.d.ts +17 -0
  9. package/dist/editing.d.ts.map +1 -0
  10. package/dist/editing.js +17 -0
  11. package/dist/editing.js.map +1 -0
  12. package/dist/fallback.d.ts +24 -0
  13. package/dist/fallback.d.ts.map +1 -0
  14. package/dist/fallback.js +41 -0
  15. package/dist/fallback.js.map +1 -0
  16. package/dist/format/index.d.ts.map +1 -1
  17. package/dist/format/index.js +1 -0
  18. package/dist/format/index.js.map +1 -1
  19. package/dist/format-errors.d.ts +41 -0
  20. package/dist/format-errors.d.ts.map +1 -0
  21. package/dist/format-errors.js +64 -0
  22. package/dist/format-errors.js.map +1 -0
  23. package/dist/icu-format.d.ts +4 -0
  24. package/dist/icu-format.d.ts.map +1 -1
  25. package/dist/icu-format.js +44 -3
  26. package/dist/icu-format.js.map +1 -1
  27. package/dist/index.d.ts +10 -2
  28. package/dist/index.d.ts.map +1 -1
  29. package/dist/index.js +15 -1
  30. package/dist/index.js.map +1 -1
  31. package/dist/keys.d.ts +33 -0
  32. package/dist/keys.d.ts.map +1 -0
  33. package/dist/keys.js +78 -0
  34. package/dist/keys.js.map +1 -0
  35. package/dist/locales.d.ts +106 -13
  36. package/dist/locales.d.ts.map +1 -1
  37. package/dist/locales.js +147 -17
  38. package/dist/locales.js.map +1 -1
  39. package/dist/overrides.d.ts +62 -0
  40. package/dist/overrides.d.ts.map +1 -0
  41. package/dist/overrides.js +113 -0
  42. package/dist/overrides.js.map +1 -0
  43. package/dist/react.d.ts +6 -0
  44. package/dist/react.d.ts.map +1 -1
  45. package/dist/react.js +18 -26
  46. package/dist/react.js.map +1 -1
  47. package/dist/resources/ar-eg/common.d.ts +786 -3
  48. package/dist/resources/ar-eg/common.d.ts.map +1 -1
  49. package/dist/resources/ar-eg/common.js +813 -29
  50. package/dist/resources/ar-eg/common.js.map +1 -1
  51. package/dist/resources/ar-eg/errors.d.ts +1 -0
  52. package/dist/resources/ar-eg/errors.d.ts.map +1 -1
  53. package/dist/resources/ar-eg/errors.js +2 -0
  54. package/dist/resources/ar-eg/errors.js.map +1 -1
  55. package/dist/resources/ar-eg/generated.d.ts.map +1 -1
  56. package/dist/resources/ar-eg/generated.js +1 -0
  57. package/dist/resources/ar-eg/generated.js.map +1 -1
  58. package/dist/resources/ar-eg/studio.d.ts.map +1 -1
  59. package/dist/resources/ar-eg/studio.js +1 -0
  60. package/dist/resources/ar-eg/studio.js.map +1 -1
  61. package/dist/resources/ar-eg/ui.d.ts +586 -586
  62. package/dist/resources/ar-eg/ui.d.ts.map +1 -1
  63. package/dist/resources/ar-eg/ui.js +587 -586
  64. package/dist/resources/ar-eg/ui.js.map +1 -1
  65. package/dist/resources/cs-cz/common.d.ts +786 -3
  66. package/dist/resources/cs-cz/common.d.ts.map +1 -1
  67. package/dist/resources/cs-cz/common.js +811 -27
  68. package/dist/resources/cs-cz/common.js.map +1 -1
  69. package/dist/resources/cs-cz/errors.d.ts +1 -0
  70. package/dist/resources/cs-cz/errors.d.ts.map +1 -1
  71. package/dist/resources/cs-cz/errors.js +2 -0
  72. package/dist/resources/cs-cz/errors.js.map +1 -1
  73. package/dist/resources/cs-cz/generated.d.ts.map +1 -1
  74. package/dist/resources/cs-cz/generated.js +1 -0
  75. package/dist/resources/cs-cz/generated.js.map +1 -1
  76. package/dist/resources/cs-cz/studio.d.ts.map +1 -1
  77. package/dist/resources/cs-cz/studio.js +1 -0
  78. package/dist/resources/cs-cz/studio.js.map +1 -1
  79. package/dist/resources/cs-cz/ui.d.ts +582 -582
  80. package/dist/resources/cs-cz/ui.d.ts.map +1 -1
  81. package/dist/resources/cs-cz/ui.js +583 -582
  82. package/dist/resources/cs-cz/ui.js.map +1 -1
  83. package/dist/resources/da-dk/common.d.ts +787 -4
  84. package/dist/resources/da-dk/common.d.ts.map +1 -1
  85. package/dist/resources/da-dk/common.js +814 -30
  86. package/dist/resources/da-dk/common.js.map +1 -1
  87. package/dist/resources/da-dk/errors.d.ts +1 -0
  88. package/dist/resources/da-dk/errors.d.ts.map +1 -1
  89. package/dist/resources/da-dk/errors.js +2 -0
  90. package/dist/resources/da-dk/errors.js.map +1 -1
  91. package/dist/resources/da-dk/generated.d.ts.map +1 -1
  92. package/dist/resources/da-dk/generated.js +1 -0
  93. package/dist/resources/da-dk/generated.js.map +1 -1
  94. package/dist/resources/da-dk/studio.d.ts.map +1 -1
  95. package/dist/resources/da-dk/studio.js +1 -0
  96. package/dist/resources/da-dk/studio.js.map +1 -1
  97. package/dist/resources/da-dk/ui.d.ts +568 -568
  98. package/dist/resources/da-dk/ui.d.ts.map +1 -1
  99. package/dist/resources/da-dk/ui.js +569 -568
  100. package/dist/resources/da-dk/ui.js.map +1 -1
  101. package/dist/resources/de-de/common.d.ts +790 -7
  102. package/dist/resources/de-de/common.d.ts.map +1 -1
  103. package/dist/resources/de-de/common.js +817 -33
  104. package/dist/resources/de-de/common.js.map +1 -1
  105. package/dist/resources/de-de/errors.d.ts +1 -0
  106. package/dist/resources/de-de/errors.d.ts.map +1 -1
  107. package/dist/resources/de-de/errors.js +2 -0
  108. package/dist/resources/de-de/errors.js.map +1 -1
  109. package/dist/resources/de-de/generated.d.ts.map +1 -1
  110. package/dist/resources/de-de/generated.js +1 -0
  111. package/dist/resources/de-de/generated.js.map +1 -1
  112. package/dist/resources/de-de/studio.d.ts.map +1 -1
  113. package/dist/resources/de-de/studio.js +1 -0
  114. package/dist/resources/de-de/studio.js.map +1 -1
  115. package/dist/resources/de-de/ui.d.ts +569 -569
  116. package/dist/resources/de-de/ui.d.ts.map +1 -1
  117. package/dist/resources/de-de/ui.js +570 -569
  118. package/dist/resources/de-de/ui.js.map +1 -1
  119. package/dist/resources/en-us/common.d.ts +786 -3
  120. package/dist/resources/en-us/common.d.ts.map +1 -1
  121. package/dist/resources/en-us/common.js +813 -29
  122. package/dist/resources/en-us/common.js.map +1 -1
  123. package/dist/resources/en-us/errors.d.ts +1 -0
  124. package/dist/resources/en-us/errors.d.ts.map +1 -1
  125. package/dist/resources/en-us/errors.js +2 -0
  126. package/dist/resources/en-us/errors.js.map +1 -1
  127. package/dist/resources/en-us/generated.d.ts.map +1 -1
  128. package/dist/resources/en-us/generated.js +1 -0
  129. package/dist/resources/en-us/generated.js.map +1 -1
  130. package/dist/resources/en-us/studio.d.ts.map +1 -1
  131. package/dist/resources/en-us/studio.js +1 -0
  132. package/dist/resources/en-us/studio.js.map +1 -1
  133. package/dist/resources/en-us/ui.d.ts.map +1 -1
  134. package/dist/resources/en-us/ui.js +1 -0
  135. package/dist/resources/en-us/ui.js.map +1 -1
  136. package/dist/resources/fr-fr/common.d.ts +788 -5
  137. package/dist/resources/fr-fr/common.d.ts.map +1 -1
  138. package/dist/resources/fr-fr/common.js +815 -31
  139. package/dist/resources/fr-fr/common.js.map +1 -1
  140. package/dist/resources/fr-fr/errors.d.ts +1 -0
  141. package/dist/resources/fr-fr/errors.d.ts.map +1 -1
  142. package/dist/resources/fr-fr/errors.js +2 -0
  143. package/dist/resources/fr-fr/errors.js.map +1 -1
  144. package/dist/resources/fr-fr/generated.d.ts.map +1 -1
  145. package/dist/resources/fr-fr/generated.js +1 -0
  146. package/dist/resources/fr-fr/generated.js.map +1 -1
  147. package/dist/resources/fr-fr/studio.d.ts.map +1 -1
  148. package/dist/resources/fr-fr/studio.js +1 -0
  149. package/dist/resources/fr-fr/studio.js.map +1 -1
  150. package/dist/resources/fr-fr/ui.d.ts +559 -559
  151. package/dist/resources/fr-fr/ui.d.ts.map +1 -1
  152. package/dist/resources/fr-fr/ui.js +560 -559
  153. package/dist/resources/fr-fr/ui.js.map +1 -1
  154. package/dist/resources/index.d.ts.map +1 -1
  155. package/dist/resources/index.js +1 -0
  156. package/dist/resources/index.js.map +1 -1
  157. package/dist/resources/lazy.d.ts.map +1 -1
  158. package/dist/resources/lazy.js.map +1 -1
  159. package/dist/resources/zh-cn/common.d.ts +787 -4
  160. package/dist/resources/zh-cn/common.d.ts.map +1 -1
  161. package/dist/resources/zh-cn/common.js +814 -30
  162. package/dist/resources/zh-cn/common.js.map +1 -1
  163. package/dist/resources/zh-cn/errors.d.ts +1 -0
  164. package/dist/resources/zh-cn/errors.d.ts.map +1 -1
  165. package/dist/resources/zh-cn/errors.js +2 -0
  166. package/dist/resources/zh-cn/errors.js.map +1 -1
  167. package/dist/resources/zh-cn/generated.d.ts.map +1 -1
  168. package/dist/resources/zh-cn/generated.js +1 -0
  169. package/dist/resources/zh-cn/generated.js.map +1 -1
  170. package/dist/resources/zh-cn/studio.d.ts.map +1 -1
  171. package/dist/resources/zh-cn/studio.js +1 -0
  172. package/dist/resources/zh-cn/studio.js.map +1 -1
  173. package/dist/resources/zh-cn/ui.d.ts +575 -575
  174. package/dist/resources/zh-cn/ui.d.ts.map +1 -1
  175. package/dist/resources/zh-cn/ui.js +576 -575
  176. package/dist/resources/zh-cn/ui.js.map +1 -1
  177. package/dist/resources/zh-tw/common.d.ts +786 -3
  178. package/dist/resources/zh-tw/common.d.ts.map +1 -1
  179. package/dist/resources/zh-tw/common.js +813 -29
  180. package/dist/resources/zh-tw/common.js.map +1 -1
  181. package/dist/resources/zh-tw/errors.d.ts +1 -0
  182. package/dist/resources/zh-tw/errors.d.ts.map +1 -1
  183. package/dist/resources/zh-tw/errors.js +2 -0
  184. package/dist/resources/zh-tw/errors.js.map +1 -1
  185. package/dist/resources/zh-tw/generated.d.ts.map +1 -1
  186. package/dist/resources/zh-tw/generated.js +1 -0
  187. package/dist/resources/zh-tw/generated.js.map +1 -1
  188. package/dist/resources/zh-tw/studio.d.ts.map +1 -1
  189. package/dist/resources/zh-tw/studio.js +1 -0
  190. package/dist/resources/zh-tw/studio.js.map +1 -1
  191. package/dist/resources/zh-tw/ui.d.ts +575 -575
  192. package/dist/resources/zh-tw/ui.d.ts.map +1 -1
  193. package/dist/resources/zh-tw/ui.js +576 -575
  194. package/dist/resources/zh-tw/ui.js.map +1 -1
  195. package/dist/review-status.d.ts +55 -0
  196. package/dist/review-status.d.ts.map +1 -0
  197. package/dist/review-status.js +60 -0
  198. package/dist/review-status.js.map +1 -0
  199. package/dist/revision.d.ts +35 -0
  200. package/dist/revision.d.ts.map +1 -0
  201. package/dist/revision.js +56 -0
  202. package/dist/revision.js.map +1 -0
  203. package/dist/server.d.ts +36 -0
  204. package/dist/server.d.ts.map +1 -0
  205. package/dist/server.js +36 -0
  206. package/dist/server.js.map +1 -0
  207. package/dist/validate-message.d.ts +57 -0
  208. package/dist/validate-message.d.ts.map +1 -0
  209. package/dist/validate-message.js +179 -0
  210. package/dist/validate-message.js.map +1 -0
  211. package/locales/ar-EG/.meta.json +13246 -0
  212. package/locales/ar-EG/common.json +812 -29
  213. package/locales/ar-EG/errors.json +1 -0
  214. package/locales/ar-EG/ui.json +586 -586
  215. package/locales/cs-CZ/.meta.json +13246 -0
  216. package/locales/cs-CZ/common.json +810 -27
  217. package/locales/cs-CZ/errors.json +1 -0
  218. package/locales/cs-CZ/ui.json +582 -582
  219. package/locales/da-DK/.meta.json +13246 -0
  220. package/locales/da-DK/common.json +813 -30
  221. package/locales/da-DK/errors.json +1 -0
  222. package/locales/da-DK/ui.json +568 -568
  223. package/locales/de-DE/.meta.json +13246 -0
  224. package/locales/de-DE/common.json +816 -33
  225. package/locales/de-DE/errors.json +1 -0
  226. package/locales/de-DE/ui.json +569 -569
  227. package/locales/en-US/common.json +812 -29
  228. package/locales/en-US/errors.json +1 -0
  229. package/locales/fr-FR/.meta.json +13246 -0
  230. package/locales/fr-FR/common.json +814 -31
  231. package/locales/fr-FR/errors.json +1 -0
  232. package/locales/fr-FR/ui.json +559 -559
  233. package/locales/zh-CN/.meta.json +13246 -0
  234. package/locales/zh-CN/common.json +813 -30
  235. package/locales/zh-CN/errors.json +1 -0
  236. package/locales/zh-CN/ui.json +575 -575
  237. package/locales/zh-TW/.meta.json +13246 -0
  238. package/locales/zh-TW/common.json +812 -29
  239. package/locales/zh-TW/errors.json +1 -0
  240. package/locales/zh-TW/ui.json +575 -575
  241. package/package.json +11 -3
@@ -0,0 +1,17 @@
1
+ /**
2
+ * GENERATED by scripts/gen-a11y-keys.mjs — do not edit by hand.
3
+ *
4
+ * Keys that reach an accessible name, tooltip, or the only text on a control.
5
+ * The runtime override layer refuses to BLANK any of these
6
+ * (23-runtime-translations.md §3.3): translating them is always allowed,
7
+ * emptying them is not, because no CI gate in this repo can see a database
8
+ * row that removed a button's name.
9
+ *
10
+ * Regenerate after adding an `aria-label={t(…)}`-shaped call site:
11
+ * pnpm --filter @adminium/i18n gen:a11y-keys
12
+ */
13
+ /** `namespace:key` — 458 entries. */
14
+ export declare const A11Y_CRITICAL_KEYS: ReadonlySet<string>;
15
+ /** Is blanking this key forbidden? `namespace` + dotted `key`. */
16
+ export declare function isA11yCriticalKey(namespace: string, key: string): boolean;
17
+ //# sourceMappingURL=a11y-keys.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"a11y-keys.d.ts","sourceRoot":"","sources":["../src/a11y-keys.ts"],"names":[],"mappings":"AACA;;;;;;;;;;;GAWG;AAEH,qCAAqC;AACrC,eAAO,MAAM,kBAAkB,EAAE,WAAW,CAAC,MAAM,CA2cjD,CAAC;AAEH,kEAAkE;AAClE,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAEzE"}
@@ -0,0 +1,479 @@
1
+ // SPDX-License-Identifier: AGPL-3.0-only
2
+ /**
3
+ * GENERATED by scripts/gen-a11y-keys.mjs — do not edit by hand.
4
+ *
5
+ * Keys that reach an accessible name, tooltip, or the only text on a control.
6
+ * The runtime override layer refuses to BLANK any of these
7
+ * (23-runtime-translations.md §3.3): translating them is always allowed,
8
+ * emptying them is not, because no CI gate in this repo can see a database
9
+ * row that removed a button's name.
10
+ *
11
+ * Regenerate after adding an `aria-label={t(…)}`-shaped call site:
12
+ * pnpm --filter @adminium/i18n gen:a11y-keys
13
+ */
14
+ /** `namespace:key` — 458 entries. */
15
+ export const A11Y_CRITICAL_KEYS = new Set([
16
+ 'common:about.desktop.appVersion',
17
+ 'common:about.desktop.chromium',
18
+ 'common:about.desktop.diagnostics.title',
19
+ 'common:about.desktop.electron',
20
+ 'common:about.desktop.legal.close',
21
+ 'common:about.desktop.legal.licenseTitle',
22
+ 'common:about.desktop.legal.noticesTitle',
23
+ 'common:about.desktop.legal.title',
24
+ 'common:about.desktop.legal.viewLicense',
25
+ 'common:about.desktop.legal.viewNotices',
26
+ 'common:about.desktop.migration',
27
+ 'common:about.desktop.runtimeNode',
28
+ 'common:about.desktop.secret.title',
29
+ 'common:about.desktop.serverVersion',
30
+ 'common:about.desktop.system.title',
31
+ 'common:about.desktop.telemetry.saveFailed',
32
+ 'common:about.desktop.telemetry.title',
33
+ 'common:about.desktop.updates.title',
34
+ 'common:about.desktop.updates.toast.available',
35
+ 'common:about.desktop.updates.toast.downloaded',
36
+ 'common:about.desktop.updates.toast.restart',
37
+ 'common:about.desktop.updates.toast.view',
38
+ 'common:about.license',
39
+ 'common:about.licenseCard.title',
40
+ 'common:about.metaStore',
41
+ 'common:about.node',
42
+ 'common:about.update.available',
43
+ 'common:about.updates.title',
44
+ 'common:about.version',
45
+ 'common:account.email',
46
+ 'common:account.name',
47
+ 'common:account.roles',
48
+ 'common:account.twoFactor',
49
+ 'common:apiKeys.copied',
50
+ 'common:apiKeys.copy',
51
+ 'common:apiKeys.create.description',
52
+ 'common:apiKeys.create.expires',
53
+ 'common:apiKeys.create.failed',
54
+ 'common:apiKeys.create.name',
55
+ 'common:apiKeys.create.namePlaceholder',
56
+ 'common:apiKeys.create.role',
57
+ 'common:apiKeys.create.title',
58
+ 'common:apiKeys.empty.title',
59
+ 'common:apiKeys.lastUsed',
60
+ 'common:apiKeys.neverUsed',
61
+ 'common:apiKeys.revoke',
62
+ 'common:apiKeys.revokeConfirm.confirm',
63
+ 'common:apiKeys.revokeConfirm.prompt',
64
+ 'common:apiKeys.revokeConfirm.title',
65
+ 'common:apiKeys.rolesUnavailable.title',
66
+ 'common:auth.forgot.done',
67
+ 'common:auth.forgot.resend',
68
+ 'common:auth.forgot.sentTitle',
69
+ 'common:auth.forgot.subtitle',
70
+ 'common:auth.forgot.title',
71
+ 'common:auth.otp.subtitle',
72
+ 'common:auth.otp.title',
73
+ 'common:auth.reset.subtitle',
74
+ 'common:auth.reset.title',
75
+ 'common:auth.signIn.subtitle',
76
+ 'common:auth.signIn.title',
77
+ 'common:board.addCard',
78
+ 'common:builder.edit',
79
+ 'common:builder.inspector.decrement',
80
+ 'common:builder.inspector.increment',
81
+ 'common:builder.inspector.lockedHint',
82
+ 'common:builder.inspector.title',
83
+ 'common:builder.item.configure',
84
+ 'common:builder.item.duplicate',
85
+ 'common:builder.item.remove',
86
+ 'common:builder.options',
87
+ 'common:builder.palette.add',
88
+ 'common:builder.palette.clear',
89
+ 'common:builder.palette.count',
90
+ 'common:builder.palette.searchLabel',
91
+ 'common:builder.palette.searchPlaceholder',
92
+ 'common:builder.palette.title',
93
+ 'common:builder.resetBody',
94
+ 'common:builder.resetTitle',
95
+ 'common:builder.saveVersionBody',
96
+ 'common:builder.saveVersionTitle',
97
+ 'common:builder.versionName',
98
+ 'common:builder.versionNamePlaceholder',
99
+ 'common:builder.view',
100
+ 'common:capabilities.consent.subtitle',
101
+ 'common:capabilities.consent.title',
102
+ 'common:capabilities.grant.failed',
103
+ 'common:capabilities.grant.saved',
104
+ 'common:capabilities.revoke.failed',
105
+ 'common:capabilities.revoke.saved',
106
+ 'common:changelog.empty.title',
107
+ 'common:changelog.filter.all',
108
+ 'common:changelog.filter.label',
109
+ 'common:chat.messageSent',
110
+ 'common:common.cancel',
111
+ 'common:common.clear',
112
+ 'common:common.clearSearch',
113
+ 'common:common.close',
114
+ 'common:common.dismiss',
115
+ 'common:common.loading',
116
+ 'common:common.notifications',
117
+ 'common:common.undo',
118
+ 'common:dataio.import.allValid',
119
+ 'common:dataio.import.inconsistent',
120
+ 'common:dataio.import.progressLabel',
121
+ 'common:dataio.import.runFailed',
122
+ 'common:dataio.import.skipTarget',
123
+ 'common:dataio.import.stepMap',
124
+ 'common:dataio.import.stepRun',
125
+ 'common:dataio.import.stepUpload',
126
+ 'common:dataio.import.stepValidate',
127
+ 'common:desktop.lan.copyUrl',
128
+ 'common:desktop.lan.mismatch',
129
+ 'common:desktop.lan.port',
130
+ 'common:desktop.lan.portInUse',
131
+ 'common:desktop.lan.saveFailed',
132
+ 'common:desktop.lan.transportTitle',
133
+ 'common:desktop.requireLogin.saveFailed',
134
+ 'common:desktop.setup.account.confirm',
135
+ 'common:desktop.setup.account.email',
136
+ 'common:desktop.setup.account.locale',
137
+ 'common:desktop.setup.account.name',
138
+ 'common:desktop.setup.account.password',
139
+ 'common:desktop.setup.account.strength',
140
+ 'common:desktop.setup.account.theme',
141
+ 'common:desktop.setup.dataDir.cloudSyncTitle',
142
+ 'common:desktop.setup.dataDir.dialogTitle',
143
+ 'common:desktop.setup.dataDir.unusableTitle',
144
+ 'common:desktop.setup.generate.failedTitle',
145
+ 'common:desktop.setup.progress',
146
+ 'common:desktop.setup.source.groupLabel',
147
+ 'common:desktop.setup.source.local.blank',
148
+ 'common:desktop.setup.source.local.fromFile',
149
+ 'common:desktop.setup.source.local.name',
150
+ 'common:desktop.setup.source.local.namePlaceholder',
151
+ 'common:desktop.setup.source.local.schemaFile',
152
+ 'common:desktop.setup.source.local.schemaLabel',
153
+ 'common:desktop.setup.source.openSqlite.networkTitle',
154
+ 'common:desktop.setup.source.remote.dsn',
155
+ 'common:desktop.setup.source.remote.engine',
156
+ 'common:desktop.setup.source.remote.name',
157
+ 'common:desktop.setup.source.remote.namePlaceholder',
158
+ 'common:desktop.setup.source.remote.networkNote',
159
+ 'common:emailTemplates.loadFailed',
160
+ 'common:emailTemplates.name',
161
+ 'common:emailTemplates.search',
162
+ 'common:emailTemplates.subject',
163
+ 'common:kb.category.count',
164
+ 'common:kb.empty.title',
165
+ 'common:kb.hero.clear',
166
+ 'common:kb.hero.label',
167
+ 'common:kb.hero.placeholder',
168
+ 'common:nav.primary',
169
+ 'common:nav.signOut',
170
+ 'common:notFound.searchPlaceholder',
171
+ 'common:onboarding.entry.dismiss',
172
+ 'common:onboarding.loading',
173
+ 'common:onboarding.ringLabel',
174
+ 'common:page.invalid.title',
175
+ 'common:page.renderError.title',
176
+ 'common:page.tooNew.title',
177
+ 'common:page.unknownTemplate.title',
178
+ 'common:palette.actions',
179
+ 'common:palette.navigate',
180
+ 'common:palette.placeholder',
181
+ 'common:palette.recent',
182
+ 'common:palette.records',
183
+ 'common:palette.searching',
184
+ 'common:palette.shortcuts',
185
+ 'common:palette.signOut',
186
+ 'common:planning.drawer.close',
187
+ 'common:planning.drawer.error',
188
+ 'common:planning.drawer.loading',
189
+ 'common:prefs.accent.label',
190
+ 'common:prefs.density.label',
191
+ 'common:prefs.locale.label',
192
+ 'common:prefs.theme.label',
193
+ 'common:reports.namePlaceholder',
194
+ 'common:reports.nextRun',
195
+ 'common:settings.defaults.saveFailed',
196
+ 'common:settings.defaults.saved',
197
+ 'common:settings.notifications.matrixLabel',
198
+ 'common:settings.notifications.subtitle',
199
+ 'common:setup.account.confirm',
200
+ 'common:setup.account.email',
201
+ 'common:setup.account.name',
202
+ 'common:setup.account.password',
203
+ 'common:setup.account.strength',
204
+ 'common:setup.consent.telemetry.title',
205
+ 'common:setup.consent.updates.title',
206
+ 'common:setup.progress',
207
+ 'common:setup.steps.account',
208
+ 'common:setup.steps.consent',
209
+ 'common:shortcuts.close',
210
+ 'common:shortcuts.dismiss',
211
+ 'common:shortcuts.palette',
212
+ 'common:shortcuts.panel',
213
+ 'common:shortcuts.search',
214
+ 'common:shortcuts.sidebar',
215
+ 'common:shortcuts.subtitle',
216
+ 'common:shortcuts.theme',
217
+ 'common:shortcuts.title',
218
+ 'common:studio.enrich.byo.chunkTabs',
219
+ 'common:studio.enrich.byo.copyErrors',
220
+ 'common:studio.enrich.byo.copyErrorsDone',
221
+ 'common:studio.enrich.byo.copyPrompt',
222
+ 'common:studio.enrich.byo.copyPromptDone',
223
+ 'common:studio.enrich.byo.pasteLabel',
224
+ 'common:studio.enrich.byo.pastePlaceholder',
225
+ 'common:studio.enrich.byo.pendingTitle',
226
+ 'common:studio.enrich.createFailedTitle',
227
+ 'common:studio.enrich.direct.errorTitle',
228
+ 'common:studio.enrich.direct.logLabel',
229
+ 'common:studio.enrich.direct.title',
230
+ 'common:studio.enrich.fileTitle',
231
+ 'common:studio.enrich.intentLabel',
232
+ 'common:studio.enrich.provider.title',
233
+ 'common:studio.enrich.samplingPreviewTitle',
234
+ 'common:studio.enrich.skip.confirmTitle',
235
+ 'common:studio.enrich.skip.title',
236
+ 'common:studio.enrich.title',
237
+ 'common:studio.generate.errorTitle',
238
+ 'common:studio.generate.fileTitle',
239
+ 'common:studio.generate.logLabel',
240
+ 'common:studio.generate.openApp',
241
+ 'common:studio.generate.successTitle',
242
+ 'common:studio.generate.title',
243
+ 'common:studio.hub.card.lastIntrospected',
244
+ 'common:studio.hub.card.latency',
245
+ 'common:studio.hub.card.pages',
246
+ 'common:studio.hub.card.tables',
247
+ 'common:studio.hub.delete.cancel',
248
+ 'common:studio.hub.delete.close',
249
+ 'common:studio.hub.delete.confirm',
250
+ 'common:studio.hub.delete.failed',
251
+ 'common:studio.hub.delete.prompt',
252
+ 'common:studio.hub.delete.success',
253
+ 'common:studio.hub.delete.title',
254
+ 'common:studio.hub.empty.title',
255
+ 'common:studio.hub.introspect.failed',
256
+ 'common:studio.hub.introspect.noChanges',
257
+ 'common:studio.hub.introspect.updated',
258
+ 'common:studio.hub.stats.connections',
259
+ 'common:studio.hub.stats.healthy',
260
+ 'common:studio.hub.stats.pages',
261
+ 'common:studio.hub.stats.tables',
262
+ 'common:studio.hub.test.failed',
263
+ 'common:studio.hub.test.ok',
264
+ 'common:studio.intent.analytics.title',
265
+ 'common:studio.intent.crud.title',
266
+ 'common:studio.intent.fullAdmin.title',
267
+ 'common:studio.intent.support.title',
268
+ 'common:studio.intent.title',
269
+ 'common:studio.llmRuns.review.applied.title',
270
+ 'common:studio.llmRuns.review.apply.subtitle',
271
+ 'common:studio.llmRuns.review.apply.title',
272
+ 'common:studio.llmRuns.review.empty.title',
273
+ 'common:studio.llmRuns.review.error.title',
274
+ 'common:studio.llmRuns.review.header.countsAria',
275
+ 'common:studio.llmRuns.review.notReady.title',
276
+ 'common:studio.llmRuns.review.row.acceptAria',
277
+ 'common:studio.llmRuns.review.row.confidenceAria',
278
+ 'common:studio.llmRuns.review.section.selectAllAria',
279
+ 'common:studio.llmRuns.review.status.agree',
280
+ 'common:studio.llmRuns.review.status.conflict',
281
+ 'common:studio.llmRuns.review.status.heuristicOnly',
282
+ 'common:studio.llmRuns.review.status.locked',
283
+ 'common:studio.llmRuns.review.status.new',
284
+ 'common:studio.llmRuns.review.status.rejects',
285
+ 'common:studio.llmRuns.review.toast.applyFailed',
286
+ 'common:studio.llmRuns.review.toast.undoFailed',
287
+ 'common:studio.llmRuns.review.value.description',
288
+ 'common:studio.llmRuns.review.value.guidance',
289
+ 'common:studio.llmRuns.review.value.headline',
290
+ 'common:studio.llmRuns.review.value.label',
291
+ 'common:studio.llmRuns.review.value.subtitle',
292
+ 'common:studio.meta.sameDb.title',
293
+ 'common:studio.meta.separate.dsn',
294
+ 'common:studio.meta.separate.errorTitle',
295
+ 'common:studio.meta.separate.title',
296
+ 'common:studio.meta.title',
297
+ 'common:studio.meta.v1Note.title',
298
+ 'common:studio.remap.column.currency',
299
+ 'common:studio.remap.column.enumCategory',
300
+ 'common:studio.remap.column.enumKind',
301
+ 'common:studio.remap.column.enumLabelFor',
302
+ 'common:studio.remap.column.enumToneFor',
303
+ 'common:studio.remap.column.enumWorkflow',
304
+ 'common:studio.remap.column.labelOverride',
305
+ 'common:studio.remap.column.logicalType',
306
+ 'common:studio.remap.column.pii',
307
+ 'common:studio.remap.column.semantic',
308
+ 'common:studio.remap.diff.revertOne',
309
+ 'common:studio.remap.empty.title',
310
+ 'common:studio.remap.inspector',
311
+ 'common:studio.remap.relations.cardinality',
312
+ 'common:studio.remap.relations.fromColumn',
313
+ 'common:studio.remap.relations.fromPlaceholder',
314
+ 'common:studio.remap.relations.toColumn',
315
+ 'common:studio.remap.relations.toTable',
316
+ 'common:studio.remap.table.hierarchy',
317
+ 'common:studio.remap.table.iconPicker',
318
+ 'common:studio.remap.table.include',
319
+ 'common:studio.remap.table.kind',
320
+ 'common:studio.remap.table.labelOverride',
321
+ 'common:studio.remap.table.navGroup',
322
+ 'common:studio.remap.table.polymorphic',
323
+ 'common:studio.remap.table.role',
324
+ 'common:studio.remap.table.rows',
325
+ 'common:studio.remap.toast.regenerateFailed',
326
+ 'common:studio.remap.toast.regenerated',
327
+ 'common:studio.remap.toast.saved',
328
+ 'common:studio.remap.tree.label',
329
+ 'common:studio.remap.tree.search',
330
+ 'common:studio.remap.tree.searchPlaceholder',
331
+ 'common:studio.remap.tree.unsaved',
332
+ 'common:studio.remap.unavailableTitle',
333
+ 'common:studio.review.unavailableTitle',
334
+ 'common:studio.settingsAi.field.baseUrl',
335
+ 'common:studio.settingsAi.field.key',
336
+ 'common:studio.settingsAi.field.model',
337
+ 'common:studio.settingsAi.field.noKeyTitle',
338
+ 'common:studio.settingsAi.history.connection',
339
+ 'common:studio.settingsAi.history.errorTitle',
340
+ 'common:studio.settingsAi.history.openReview',
341
+ 'common:studio.settingsAi.provider.heading',
342
+ 'common:studio.settingsAi.provider.networkDisabledTitle',
343
+ 'common:studio.settingsAi.saveFailed',
344
+ 'common:studio.settingsAi.saved',
345
+ 'common:studio.settingsAi.testError',
346
+ 'common:studio.settingsHub.identity.appName.label',
347
+ 'common:studio.settingsHub.review.close',
348
+ 'common:studio.settingsHub.review.subtitle',
349
+ 'common:studio.settingsHub.review.title',
350
+ 'common:studio.settingsHub.saveFailed',
351
+ 'common:studio.settingsHub.saved',
352
+ 'common:studio.settingsHub.superAdminOnlyTitle',
353
+ 'common:studio.source.dsn.label',
354
+ 'common:studio.source.dsn.quickFill',
355
+ 'common:studio.source.engine.label',
356
+ 'common:studio.source.fields.database',
357
+ 'common:studio.source.fields.host',
358
+ 'common:studio.source.fields.password',
359
+ 'common:studio.source.fields.port',
360
+ 'common:studio.source.fields.ssl',
361
+ 'common:studio.source.fields.user',
362
+ 'common:studio.source.file.errorTitle',
363
+ 'common:studio.source.format.label',
364
+ 'common:studio.source.mode.dsn',
365
+ 'common:studio.source.mode.fields',
366
+ 'common:studio.source.mode.file',
367
+ 'common:studio.source.modeLabel',
368
+ 'common:studio.source.name',
369
+ 'common:studio.source.namePlaceholder',
370
+ 'common:studio.source.readOnlyRole.title',
371
+ 'common:studio.source.sqlite.file',
372
+ 'common:studio.source.title',
373
+ 'common:studio.tables.highVolume',
374
+ 'common:studio.tables.listLabel',
375
+ 'common:studio.tables.pii',
376
+ 'common:studio.tables.search',
377
+ 'common:studio.tables.title',
378
+ 'common:studio.test.errorTitle',
379
+ 'common:studio.test.logLabel',
380
+ 'common:studio.test.title',
381
+ 'common:studio.wizard.bridgeAppliedTitle',
382
+ 'common:studio.wizard.bridgeFailedTitle',
383
+ 'common:studio.wizard.persistFailedTitle',
384
+ 'common:studio.wizard.progress',
385
+ 'common:topbar.notifications',
386
+ 'common:topbar.notificationsLoading',
387
+ 'common:topbar.search',
388
+ 'common:topbar.userMenu',
389
+ 'common:undo.done',
390
+ 'common:undo.failed',
391
+ 'common:views.defaultToast',
392
+ 'common:views.deleteConfirm',
393
+ 'common:views.deletePrompt',
394
+ 'common:views.deleteTitle',
395
+ 'common:views.deletedToast',
396
+ 'common:views.namePlaceholder',
397
+ 'common:views.renameTitle',
398
+ 'common:views.save',
399
+ 'common:views.saveName',
400
+ 'common:views.saveTitle',
401
+ 'common:views.savedToast',
402
+ 'common:views.updatedToast',
403
+ 'ui:action.cancel',
404
+ 'ui:action.clearSearch',
405
+ 'ui:action.delete',
406
+ 'ui:frame.infoLabel',
407
+ 'ui:frame.menuLabel',
408
+ 'ui:frame.refreshing',
409
+ 'ui:templates.builder.publishModal.confirmSubtitle',
410
+ 'ui:templates.builder.publishModal.confirmTitle',
411
+ 'ui:templates.builder.publishModal.publishedSubtitle',
412
+ 'ui:templates.builder.publishModal.publishedTitle',
413
+ 'ui:templates.builder.starterPicker.subtitle',
414
+ 'ui:templates.chat.loadingConversations',
415
+ 'ui:templates.chat.loadingMessages',
416
+ 'ui:templates.chat.noInboxTitle',
417
+ 'ui:templates.common.detailLabel',
418
+ 'ui:templates.common.loadingRecord',
419
+ 'ui:templates.crud.bulkDeleteConfirm',
420
+ 'ui:templates.crud.bulkDeleteTitle',
421
+ 'ui:templates.crud.createSubtitle',
422
+ 'ui:templates.crud.deleteTitle',
423
+ 'ui:templates.crud.emptyTitle',
424
+ 'ui:templates.crud.loadingRows',
425
+ 'ui:templates.crud.noMatchesTitle',
426
+ 'ui:templates.crud.queryFailed',
427
+ 'ui:templates.crud.removeFilter',
428
+ 'ui:templates.crud.searchPlaceholder',
429
+ 'ui:templates.crud.toast.undone',
430
+ 'ui:templates.files.loading',
431
+ 'ui:templates.logViewer.levelFilterLabel',
432
+ 'ui:templates.logViewer.loading',
433
+ 'ui:templates.logViewer.timeFilterLabel',
434
+ 'ui:templates.queue.queueLabel',
435
+ 'ui:templates.queue.rejectReasonLabel',
436
+ 'ui:templates.queue.selectItem',
437
+ 'ui:templates.queue.statusFilterLabel',
438
+ 'ui:templates.settings.matrixLabel',
439
+ 'ui:templates.settings.subtitle',
440
+ 'ui:templates.settings.title',
441
+ 'ui:widgets.calendar.calendarMonth.nextLabel',
442
+ 'ui:widgets.calendar.calendarMonth.previousLabel',
443
+ 'ui:widgets.calendar.capacityBoard.assignmentLabel',
444
+ 'ui:widgets.calendar.capacityBoard.utilizationLabel',
445
+ 'ui:widgets.charts.candlestick.livePillLabel',
446
+ 'ui:widgets.charts.donut.otherLabel',
447
+ 'ui:widgets.charts.forecast.actualLabel',
448
+ 'ui:widgets.charts.forecast.forecastLabel',
449
+ 'ui:widgets.charts.forecast.nowLabel',
450
+ 'ui:widgets.charts.treemap.otherLabel',
451
+ 'ui:widgets.domain.orgChart.a11yLabel',
452
+ 'ui:widgets.domain.uptimeSegmentBar.period30Label',
453
+ 'ui:widgets.domain.uptimeSegmentBar.period90Label',
454
+ 'ui:widgets.feeds.notificationFeed.filterLabel',
455
+ 'ui:widgets.forms.filterChipBar.a11yLabel',
456
+ 'ui:widgets.forms.modalWizard.done',
457
+ 'ui:widgets.system.stateHero.backToDashboard',
458
+ 'ui:widgets.system.stateHero.connErrorTitle',
459
+ 'ui:widgets.system.stateHero.forbiddenTitle',
460
+ 'ui:widgets.system.stateHero.maintenanceTitle',
461
+ 'ui:widgets.system.stateHero.notFoundTitle',
462
+ 'ui:widgets.system.stateHero.offlineTitle',
463
+ 'ui:widgets.system.stateHero.retry',
464
+ 'ui:widgets.system.stateHero.serverErrorTitle',
465
+ 'ui:widgets.system.stateHero.testConnection',
466
+ 'ui:widgets.system.stateHero.tryAgain',
467
+ 'ui:widgets.system.widgetMissing.title',
468
+ 'ui:widgets.tables.falseLabel',
469
+ 'ui:widgets.tables.logTable.filterLabel',
470
+ 'ui:widgets.tables.masterList.progressLabel',
471
+ 'ui:widgets.tables.masterList.toggleLabel',
472
+ 'ui:widgets.tables.schemaTree.treeLabel',
473
+ 'ui:widgets.tables.trueLabel',
474
+ ]);
475
+ /** Is blanking this key forbidden? `namespace` + dotted `key`. */
476
+ export function isA11yCriticalKey(namespace, key) {
477
+ return A11Y_CRITICAL_KEYS.has(`${namespace}:${key}`);
478
+ }
479
+ //# sourceMappingURL=a11y-keys.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"a11y-keys.js","sourceRoot":"","sources":["../src/a11y-keys.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"create-i18n.d.ts","sourceRoot":"","sources":["../src/create-i18n.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAgB,EAAsB,KAAK,IAAI,EAAoC,MAAM,SAAS,CAAC;AAGnG,OAAO,EAA6B,KAAK,QAAQ,EAAE,MAAM,cAAc,CAAC;AACxE,OAAO,EAA+B,KAAK,SAAS,EAAE,KAAK,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAExG,gHAAgH;AAChH,MAAM,MAAM,YAAY,GAAG,IAAI,CAAC;AAEhC,MAAM,MAAM,YAAY,GAAG,CACzB,GAAG,EAAE,MAAM,EACX,EAAE,EAAE,SAAS,KACV,OAAO,CAAC,cAAc,GAAG;IAAE,OAAO,EAAE,cAAc,CAAA;CAAE,GAAG,IAAI,CAAC,CAAC;AAElE,MAAM,WAAW,iBAAiB;IAChC,sEAAsE;IACtE,MAAM,EAAE,QAAQ,CAAC;IACjB;;;OAGG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC;IAC5F;;;;OAIG;IACH,UAAU,CAAC,EAAE,YAAY,GAAG,SAAS,CAAC;IACtC,mEAAmE;IACnE,YAAY,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC;CAC7E;AA8BD;;;;;GAKG;AACH,wBAAsB,UAAU,CAAC,IAAI,EAAE,iBAAiB,GAAG,OAAO,CAAC,YAAY,CAAC,CAyC/E;AAED;;;;GAIG;AACH,wBAAsB,YAAY,CAAC,QAAQ,EAAE,YAAY,EAAE,MAAM,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAK1F"}
1
+ {"version":3,"file":"create-i18n.d.ts","sourceRoot":"","sources":["../src/create-i18n.ts"],"names":[],"mappings":"AACA;;;;;;;;GAQG;AACH,OAAgB,EAAsB,KAAK,IAAI,EAAoC,MAAM,SAAS,CAAC;AAGnG,OAAO,EAA6B,KAAK,QAAQ,EAAE,MAAM,cAAc,CAAC;AAExE,OAAO,EAA+B,KAAK,SAAS,EAAE,KAAK,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAExG,gHAAgH;AAChH,MAAM,MAAM,YAAY,GAAG,IAAI,CAAC;AAEhC,MAAM,MAAM,YAAY,GAAG,CACzB,GAAG,EAAE,MAAM,EACX,EAAE,EAAE,SAAS,KACV,OAAO,CAAC,cAAc,GAAG;IAAE,OAAO,EAAE,cAAc,CAAA;CAAE,GAAG,IAAI,CAAC,CAAC;AAElE,MAAM,WAAW,iBAAiB;IAChC,sEAAsE;IACtE,MAAM,EAAE,QAAQ,CAAC;IACjB;;;OAGG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC;IAC5F;;;;OAIG;IACH,UAAU,CAAC,EAAE,YAAY,GAAG,SAAS,CAAC;IACtC,mEAAmE;IACnE,YAAY,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC;CAC7E;AAqCD;;;;;GAKG;AACH,wBAAsB,UAAU,CAAC,IAAI,EAAE,iBAAiB,GAAG,OAAO,CAAC,YAAY,CAAC,CAmE/E;AAED;;;;GAIG;AACH,wBAAsB,YAAY,CAAC,QAAQ,EAAE,YAAY,EAAE,MAAM,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAK1F"}
@@ -1,3 +1,4 @@
1
+ // SPDX-License-Identifier: AGPL-3.0-only
1
2
  /**
2
3
  * i18next factory (10-i18n-theming.md §2.3): i18next + IcuFormat (ICU
3
4
  * MessageFormat for every message — i18next's own plural-suffix system is
@@ -10,6 +11,7 @@
10
11
  import i18next, {} from 'i18next';
11
12
  import { IcuFormat } from './icu-format.js';
12
13
  import { localeEntry, tagForLocale } from './locales.js';
14
+ import { bumpI18nRevision } from './revision.js';
13
15
  import { EN_US_RESOURCES, NAMESPACES } from './resources/index.js';
14
16
  function lazyBackend(load) {
15
17
  return {
@@ -26,7 +28,14 @@ function lazyBackend(load) {
26
28
  return;
27
29
  }
28
30
  const data = 'default' in bundle ? bundle.default : bundle;
29
- callback(null, data);
31
+ // CLONE (23-T01). i18next stores a backend bundle BY REFERENCE
32
+ // (`skipCopy: true` on the connector's store write), and this
33
+ // object is the live default export of a dynamic-import module —
34
+ // a process-wide singleton. Anything that later merges runtime
35
+ // overrides into the store would rewrite the compiled chunk
36
+ // itself, destroying the original text for every other instance
37
+ // in the process. Clone once here so the store owns its copy.
38
+ callback(null, structuredClone(data));
30
39
  }, () => {
31
40
  // Missing/failed chunk: resolve empty so the fallback chain applies
32
41
  // (degraded network beats a blank screen, §7.5).
@@ -43,16 +52,26 @@ function lazyBackend(load) {
43
52
  */
44
53
  export async function createI18n(opts) {
45
54
  const tag = tagForLocale(opts.locale);
55
+ // DEEP clone, not a spread (23-T01). A shallow spread leaves
56
+ // `resources['en-US'].common === EN_US_RESOURCES.common`, and i18next's
57
+ // ResourceStore takes `this.data = data` with no copy of its own — so the
58
+ // store would alias the compiled ES-module singletons. Any later merge of
59
+ // runtime overrides (23 §4.3) would then permanently rewrite the compiled
60
+ // English in memory: the original text is gone, so even a correct
61
+ // reset-to-built-in has nothing to restore, and on the server every
62
+ // subsequently created instance inherits another caller's overrides.
46
63
  const resources = {
47
- 'en-US': { ...EN_US_RESOURCES },
64
+ 'en-US': structuredClone(EN_US_RESOURCES),
48
65
  };
49
66
  for (const [resourceTag, byNs] of Object.entries(opts.resources ?? {})) {
50
67
  if (byNs === undefined)
51
68
  continue;
52
69
  const target = (resources[resourceTag] ??= {});
53
70
  for (const [ns, bundle] of Object.entries(byNs)) {
71
+ // Cloned for the same reason as the bundled resources above: a caller
72
+ // (Electron packaging, tests) may hand us a module singleton.
54
73
  if (bundle !== undefined)
55
- target[ns] = bundle;
74
+ target[ns] = structuredClone(bundle);
56
75
  }
57
76
  }
58
77
  const instance = i18next.createInstance();
@@ -70,7 +89,12 @@ export async function createI18n(opts) {
70
89
  // React escapes; ICU handles placeables (§2.3).
71
90
  interpolation: { escapeValue: false },
72
91
  returnNull: false,
73
- returnEmptyString: false,
92
+ // TRUE since 23-T08: an empty string is a deliberate override state
93
+ // ("render nothing", 23 §3.3), not a missing value. With `false`, an
94
+ // admin's blank would fall through to the en-US built-in and the state
95
+ // would be unexpressible. Compiled bundles are unaffected — the parity
96
+ // gate asserts no compiled message is empty.
97
+ returnEmptyString: true,
74
98
  ...(opts.onMissingKey === undefined
75
99
  ? {}
76
100
  : {
@@ -81,6 +105,16 @@ export async function createI18n(opts) {
81
105
  },
82
106
  }),
83
107
  });
108
+ // A language switch changes what every key resolves to, so it is a revision
109
+ // change like any other (23 §4.4). Without this, only components that
110
+ // consume `I18nProvider`'s context re-render — and the dashboard's ~2.3k
111
+ // call sites use a module-level `t()` that is not a hook, so already-painted
112
+ // strings kept the OUTGOING language until a reload while `dir` flipped
113
+ // immediately. That produced a mirrored English UI, and it is the defect
114
+ // `apps/e2e/tests/rtl-locale.spec.ts` used to pin as a known bug.
115
+ instance.on('languageChanged', () => {
116
+ bumpI18nRevision();
117
+ });
84
118
  return instance;
85
119
  }
86
120
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"create-i18n.js","sourceRoot":"","sources":["../src/create-i18n.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"create-i18n.js","sourceRoot":"","sources":["../src/create-i18n.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ /**
2
+ * Edit-time surface of `@adminium/i18n` — the key index, the write validator
3
+ * and the generated a11y-critical key list (23-runtime-translations.md §6.3).
4
+ *
5
+ * A SEPARATE ENTRY POINT on purpose. These modules exist to serve the
6
+ * translation routes and the editor; nothing on the dashboard's boot path
7
+ * needs them, and the a11y list in particular is a 458-entry `Set` literal
8
+ * that Rollup will not drop from the entry chunk just because no reachable
9
+ * code references it. Keeping them off the main barrel is what stops the
10
+ * dashboard's entry budget (`check-entry-budget.mjs`) from paying for
11
+ * server-side machinery.
12
+ */
13
+ export { flattenBundle, keyGroup, nestBundle, sourceIndex, sourceKeyCount, sourceMessage, } from './keys.js';
14
+ export { A11Y_CRITICAL_KEYS, isA11yCriticalKey } from './a11y-keys.js';
15
+ export { validateMessage } from './validate-message.js';
16
+ export type { MessageValidation, MessageValidationCode, MessageValidationError, ValidateMessageOptions, } from './validate-message.js';
17
+ //# sourceMappingURL=editing.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"editing.d.ts","sourceRoot":"","sources":["../src/editing.ts"],"names":[],"mappings":"AACA;;;;;;;;;;;GAWG;AAEH,OAAO,EACL,aAAa,EACb,QAAQ,EACR,UAAU,EACV,WAAW,EACX,cAAc,EACd,aAAa,GACd,MAAM,WAAW,CAAC;AAEnB,OAAO,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAEvE,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,YAAY,EACV,iBAAiB,EACjB,qBAAqB,EACrB,sBAAsB,EACtB,sBAAsB,GACvB,MAAM,uBAAuB,CAAC"}