@hoardodile/i18n 0.0.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 (50) hide show
  1. package/LICENSE +674 -0
  2. package/README.md +81 -0
  3. package/dist/catalogs/ui.d.ts +2 -0
  4. package/dist/catalogs/ui.js +449 -0
  5. package/dist/catalogs/ui.js.map +1 -0
  6. package/dist/catalogs/workbench.d.ts +291 -0
  7. package/dist/catalogs/workbench.js +250 -0
  8. package/dist/catalogs/workbench.js.map +1 -0
  9. package/dist/catalogs-BF4px4Mm.d.ts +12986 -0
  10. package/dist/catalogs.d.ts +2 -0
  11. package/dist/catalogs.js +10794 -0
  12. package/dist/catalogs.js.map +1 -0
  13. package/dist/core.d.ts +32 -0
  14. package/dist/core.js +14 -0
  15. package/dist/core.js.map +1 -0
  16. package/dist/create-i18n.d.ts +35 -0
  17. package/dist/create-i18n.js +30 -0
  18. package/dist/create-i18n.js.map +1 -0
  19. package/dist/index.d.ts +42 -0
  20. package/dist/index.js +11284 -0
  21. package/dist/index.js.map +1 -0
  22. package/dist/react.d.ts +1 -0
  23. package/dist/react.js +3 -0
  24. package/dist/react.js.map +1 -0
  25. package/dist/ui-CJPMCZT7.d.ts +548 -0
  26. package/package.json +81 -0
  27. package/src/catalogs/de.json +2155 -0
  28. package/src/catalogs/en.json +2155 -0
  29. package/src/catalogs/es.json +2155 -0
  30. package/src/catalogs/ja.json +2155 -0
  31. package/src/catalogs/ui.ts +30 -0
  32. package/src/catalogs/workbench.ts +29 -0
  33. package/src/catalogs/zh.json +2155 -0
  34. package/src/catalogs.ts +31 -0
  35. package/src/core.ts +40 -0
  36. package/src/create-i18n.ts +52 -0
  37. package/src/index.ts +66 -0
  38. package/src/language.test.ts +70 -0
  39. package/src/parity.test.ts +175 -0
  40. package/src/react.ts +25 -0
  41. package/src/ui/de.json +86 -0
  42. package/src/ui/en.json +86 -0
  43. package/src/ui/es.json +86 -0
  44. package/src/ui/ja.json +86 -0
  45. package/src/ui/zh.json +86 -0
  46. package/src/workbench/de.json +45 -0
  47. package/src/workbench/en.json +45 -0
  48. package/src/workbench/es.json +45 -0
  49. package/src/workbench/ja.json +45 -0
  50. package/src/workbench/zh.json +45 -0
@@ -0,0 +1 @@
1
+ export { I18nextProvider as I18nProvider, setI18n } from 'react-i18next';
package/dist/react.js ADDED
@@ -0,0 +1,3 @@
1
+ export { I18nextProvider as I18nProvider, setI18n } from 'react-i18next';
2
+ //# sourceMappingURL=react.js.map
3
+ //# sourceMappingURL=react.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"react.js","sourcesContent":[]}
@@ -0,0 +1,548 @@
1
+ import { SupportedLanguage } from './core.js';
2
+
3
+ var caption = {
4
+ back: "Back",
5
+ forward: "Forward",
6
+ reload: "Reload",
7
+ minimize: "Minimize",
8
+ maximize: "Maximize",
9
+ restore: "Restore",
10
+ close: "Close",
11
+ devtools: "Developer tools"
12
+ };
13
+ var closeConfirm = {
14
+ title: "Close hoardodile?",
15
+ description: "The app keeps running in the tray unless you quit it.",
16
+ tray: "Hide to tray",
17
+ quit: "Quit the app",
18
+ cancel: "Cancel",
19
+ remember: "Remember my choice"
20
+ };
21
+ var pluginDownload = {
22
+ eyebrow: "Plugin download",
23
+ title: "Download this file?",
24
+ description: "{{pluginName}} wants to download a file into its own storage folder. The file is fetched from the URL below and stored only inside the plugin's folder.",
25
+ urlLabel: "URL",
26
+ destLabel: "Destination",
27
+ sizeLabel: "Size",
28
+ unknownSize: "unknown",
29
+ deny: "Deny",
30
+ allow: "Allow",
31
+ remember: "Remember for this session (no more prompts from this plugin)"
32
+ };
33
+ var pagination = {
34
+ region: "pagination",
35
+ prev: "Prev",
36
+ next: "Next",
37
+ previous: "Previous",
38
+ goTo: "Go to",
39
+ jumpToPage: "Page",
40
+ morePages: "More pages"
41
+ };
42
+ var aria = {
43
+ loading: "Loading",
44
+ closeToast: "Close toast",
45
+ close: "Close",
46
+ more: "More",
47
+ toggleSidebar: "Toggle Sidebar",
48
+ mobileSidebarDescription: "Displays the mobile sidebar.",
49
+ sidebar: "Sidebar",
50
+ breadcrumb: "breadcrumb"
51
+ };
52
+ var dialog = {
53
+ cancel: "Cancel"
54
+ };
55
+ var confirmByTyping = {
56
+ prompt: "Type \"<name>{{name}}</name>\" to confirm"
57
+ };
58
+ var colorPicker = {
59
+ clear: "Clear color",
60
+ addPreset: "Add to my presets",
61
+ removePresetAria: "Remove preset {{color}}",
62
+ customSwatch: "Pick a custom color"
63
+ };
64
+ var fontPicker = {
65
+ inherit: "Inherit global font",
66
+ inheritedHint: "Currently inheriting the global font setting",
67
+ addCustom: "Add a font by name, press Enter…",
68
+ selected: "Fallback order — drag to rearrange",
69
+ description: "Chrome and lists — documents keep their reading voice."
70
+ };
71
+ var imageCrop = {
72
+ saving: "Saving…",
73
+ remove: "Remove",
74
+ save: "Save",
75
+ pickHint: "Click or drop",
76
+ reselect: "Re-upload",
77
+ previewLabel: "Preview",
78
+ previewAlt: "Cropped preview",
79
+ showPreview: "Show preview",
80
+ saveFailed: "Save failed"
81
+ };
82
+ var panelToolbar = {
83
+ add: "Add",
84
+ unused: "Unused",
85
+ reorder: "Reorder"
86
+ };
87
+ var uiEn = {
88
+ caption: caption,
89
+ closeConfirm: closeConfirm,
90
+ pluginDownload: pluginDownload,
91
+ pagination: pagination,
92
+ aria: aria,
93
+ dialog: dialog,
94
+ confirmByTyping: confirmByTyping,
95
+ colorPicker: colorPicker,
96
+ fontPicker: fontPicker,
97
+ imageCrop: imageCrop,
98
+ panelToolbar: panelToolbar
99
+ };
100
+
101
+ /**
102
+ * The `ui` catalog registry: component-chrome strings shared by every
103
+ * React consumer — `@hoardodile/ui` components (`useTranslation("ui")`),
104
+ * the host surfaces and the plugin SDK iframes. Like the app catalogs
105
+ * these five JSON modules must stay in lockstep; `parity.test.ts`
106
+ * enforces it and `Record<SupportedLanguage, typeof en>` makes key drift
107
+ * a compile error.
108
+ *
109
+ * Console: `catalogFor` in `./catalogs.ts` serves the app `translation`
110
+ * namespace; `uiCatalogFor` here serves the `ui` namespace.
111
+ */
112
+
113
+ declare const UI_CATALOGS: {
114
+ readonly en: {
115
+ caption: {
116
+ back: string;
117
+ forward: string;
118
+ reload: string;
119
+ minimize: string;
120
+ maximize: string;
121
+ restore: string;
122
+ close: string;
123
+ devtools: string;
124
+ };
125
+ closeConfirm: {
126
+ title: string;
127
+ description: string;
128
+ tray: string;
129
+ quit: string;
130
+ cancel: string;
131
+ remember: string;
132
+ };
133
+ pluginDownload: {
134
+ eyebrow: string;
135
+ title: string;
136
+ description: string;
137
+ urlLabel: string;
138
+ destLabel: string;
139
+ sizeLabel: string;
140
+ unknownSize: string;
141
+ deny: string;
142
+ allow: string;
143
+ remember: string;
144
+ };
145
+ pagination: {
146
+ region: string;
147
+ prev: string;
148
+ next: string;
149
+ previous: string;
150
+ goTo: string;
151
+ jumpToPage: string;
152
+ morePages: string;
153
+ };
154
+ aria: {
155
+ loading: string;
156
+ closeToast: string;
157
+ close: string;
158
+ more: string;
159
+ toggleSidebar: string;
160
+ mobileSidebarDescription: string;
161
+ sidebar: string;
162
+ breadcrumb: string;
163
+ };
164
+ dialog: {
165
+ cancel: string;
166
+ };
167
+ confirmByTyping: {
168
+ prompt: string;
169
+ };
170
+ colorPicker: {
171
+ clear: string;
172
+ addPreset: string;
173
+ removePresetAria: string;
174
+ customSwatch: string;
175
+ };
176
+ fontPicker: {
177
+ inherit: string;
178
+ inheritedHint: string;
179
+ addCustom: string;
180
+ selected: string;
181
+ description: string;
182
+ };
183
+ imageCrop: {
184
+ saving: string;
185
+ remove: string;
186
+ save: string;
187
+ pickHint: string;
188
+ reselect: string;
189
+ previewLabel: string;
190
+ previewAlt: string;
191
+ showPreview: string;
192
+ saveFailed: string;
193
+ };
194
+ panelToolbar: {
195
+ add: string;
196
+ unused: string;
197
+ reorder: string;
198
+ };
199
+ };
200
+ readonly zh: {
201
+ caption: {
202
+ back: string;
203
+ forward: string;
204
+ reload: string;
205
+ minimize: string;
206
+ maximize: string;
207
+ restore: string;
208
+ close: string;
209
+ devtools: string;
210
+ };
211
+ closeConfirm: {
212
+ title: string;
213
+ description: string;
214
+ tray: string;
215
+ quit: string;
216
+ cancel: string;
217
+ remember: string;
218
+ };
219
+ pluginDownload: {
220
+ eyebrow: string;
221
+ title: string;
222
+ description: string;
223
+ urlLabel: string;
224
+ destLabel: string;
225
+ sizeLabel: string;
226
+ unknownSize: string;
227
+ deny: string;
228
+ allow: string;
229
+ remember: string;
230
+ };
231
+ pagination: {
232
+ region: string;
233
+ prev: string;
234
+ next: string;
235
+ previous: string;
236
+ goTo: string;
237
+ jumpToPage: string;
238
+ morePages: string;
239
+ };
240
+ aria: {
241
+ loading: string;
242
+ closeToast: string;
243
+ close: string;
244
+ more: string;
245
+ toggleSidebar: string;
246
+ mobileSidebarDescription: string;
247
+ sidebar: string;
248
+ breadcrumb: string;
249
+ };
250
+ dialog: {
251
+ cancel: string;
252
+ };
253
+ confirmByTyping: {
254
+ prompt: string;
255
+ };
256
+ colorPicker: {
257
+ clear: string;
258
+ addPreset: string;
259
+ removePresetAria: string;
260
+ customSwatch: string;
261
+ };
262
+ fontPicker: {
263
+ inherit: string;
264
+ inheritedHint: string;
265
+ addCustom: string;
266
+ selected: string;
267
+ description: string;
268
+ };
269
+ imageCrop: {
270
+ saving: string;
271
+ remove: string;
272
+ save: string;
273
+ pickHint: string;
274
+ reselect: string;
275
+ previewLabel: string;
276
+ previewAlt: string;
277
+ showPreview: string;
278
+ saveFailed: string;
279
+ };
280
+ panelToolbar: {
281
+ add: string;
282
+ unused: string;
283
+ reorder: string;
284
+ };
285
+ };
286
+ readonly ja: {
287
+ caption: {
288
+ back: string;
289
+ forward: string;
290
+ reload: string;
291
+ minimize: string;
292
+ maximize: string;
293
+ restore: string;
294
+ close: string;
295
+ devtools: string;
296
+ };
297
+ closeConfirm: {
298
+ title: string;
299
+ description: string;
300
+ tray: string;
301
+ quit: string;
302
+ cancel: string;
303
+ remember: string;
304
+ };
305
+ pluginDownload: {
306
+ eyebrow: string;
307
+ title: string;
308
+ description: string;
309
+ urlLabel: string;
310
+ destLabel: string;
311
+ sizeLabel: string;
312
+ unknownSize: string;
313
+ deny: string;
314
+ allow: string;
315
+ remember: string;
316
+ };
317
+ pagination: {
318
+ region: string;
319
+ prev: string;
320
+ next: string;
321
+ previous: string;
322
+ goTo: string;
323
+ jumpToPage: string;
324
+ morePages: string;
325
+ };
326
+ aria: {
327
+ loading: string;
328
+ closeToast: string;
329
+ close: string;
330
+ more: string;
331
+ toggleSidebar: string;
332
+ mobileSidebarDescription: string;
333
+ sidebar: string;
334
+ breadcrumb: string;
335
+ };
336
+ dialog: {
337
+ cancel: string;
338
+ };
339
+ confirmByTyping: {
340
+ prompt: string;
341
+ };
342
+ colorPicker: {
343
+ clear: string;
344
+ addPreset: string;
345
+ removePresetAria: string;
346
+ customSwatch: string;
347
+ };
348
+ fontPicker: {
349
+ inherit: string;
350
+ inheritedHint: string;
351
+ addCustom: string;
352
+ selected: string;
353
+ description: string;
354
+ };
355
+ imageCrop: {
356
+ saving: string;
357
+ remove: string;
358
+ save: string;
359
+ pickHint: string;
360
+ reselect: string;
361
+ previewLabel: string;
362
+ previewAlt: string;
363
+ showPreview: string;
364
+ saveFailed: string;
365
+ };
366
+ panelToolbar: {
367
+ add: string;
368
+ unused: string;
369
+ reorder: string;
370
+ };
371
+ };
372
+ readonly de: {
373
+ caption: {
374
+ back: string;
375
+ forward: string;
376
+ reload: string;
377
+ minimize: string;
378
+ maximize: string;
379
+ restore: string;
380
+ close: string;
381
+ devtools: string;
382
+ };
383
+ closeConfirm: {
384
+ title: string;
385
+ description: string;
386
+ tray: string;
387
+ quit: string;
388
+ cancel: string;
389
+ remember: string;
390
+ };
391
+ pluginDownload: {
392
+ eyebrow: string;
393
+ title: string;
394
+ description: string;
395
+ urlLabel: string;
396
+ destLabel: string;
397
+ sizeLabel: string;
398
+ unknownSize: string;
399
+ deny: string;
400
+ allow: string;
401
+ remember: string;
402
+ };
403
+ pagination: {
404
+ region: string;
405
+ prev: string;
406
+ next: string;
407
+ previous: string;
408
+ goTo: string;
409
+ jumpToPage: string;
410
+ morePages: string;
411
+ };
412
+ aria: {
413
+ loading: string;
414
+ closeToast: string;
415
+ close: string;
416
+ more: string;
417
+ toggleSidebar: string;
418
+ mobileSidebarDescription: string;
419
+ sidebar: string;
420
+ breadcrumb: string;
421
+ };
422
+ dialog: {
423
+ cancel: string;
424
+ };
425
+ confirmByTyping: {
426
+ prompt: string;
427
+ };
428
+ colorPicker: {
429
+ clear: string;
430
+ addPreset: string;
431
+ removePresetAria: string;
432
+ customSwatch: string;
433
+ };
434
+ fontPicker: {
435
+ inherit: string;
436
+ inheritedHint: string;
437
+ addCustom: string;
438
+ selected: string;
439
+ description: string;
440
+ };
441
+ imageCrop: {
442
+ saving: string;
443
+ remove: string;
444
+ save: string;
445
+ pickHint: string;
446
+ reselect: string;
447
+ previewLabel: string;
448
+ previewAlt: string;
449
+ showPreview: string;
450
+ saveFailed: string;
451
+ };
452
+ panelToolbar: {
453
+ add: string;
454
+ unused: string;
455
+ reorder: string;
456
+ };
457
+ };
458
+ readonly es: {
459
+ caption: {
460
+ back: string;
461
+ forward: string;
462
+ reload: string;
463
+ minimize: string;
464
+ maximize: string;
465
+ restore: string;
466
+ close: string;
467
+ devtools: string;
468
+ };
469
+ closeConfirm: {
470
+ title: string;
471
+ description: string;
472
+ tray: string;
473
+ quit: string;
474
+ cancel: string;
475
+ remember: string;
476
+ };
477
+ pluginDownload: {
478
+ eyebrow: string;
479
+ title: string;
480
+ description: string;
481
+ urlLabel: string;
482
+ destLabel: string;
483
+ sizeLabel: string;
484
+ unknownSize: string;
485
+ deny: string;
486
+ allow: string;
487
+ remember: string;
488
+ };
489
+ pagination: {
490
+ region: string;
491
+ prev: string;
492
+ next: string;
493
+ previous: string;
494
+ goTo: string;
495
+ jumpToPage: string;
496
+ morePages: string;
497
+ };
498
+ aria: {
499
+ loading: string;
500
+ closeToast: string;
501
+ close: string;
502
+ more: string;
503
+ toggleSidebar: string;
504
+ mobileSidebarDescription: string;
505
+ sidebar: string;
506
+ breadcrumb: string;
507
+ };
508
+ dialog: {
509
+ cancel: string;
510
+ };
511
+ confirmByTyping: {
512
+ prompt: string;
513
+ };
514
+ colorPicker: {
515
+ clear: string;
516
+ addPreset: string;
517
+ removePresetAria: string;
518
+ customSwatch: string;
519
+ };
520
+ fontPicker: {
521
+ inherit: string;
522
+ inheritedHint: string;
523
+ addCustom: string;
524
+ selected: string;
525
+ description: string;
526
+ };
527
+ imageCrop: {
528
+ saving: string;
529
+ remove: string;
530
+ save: string;
531
+ pickHint: string;
532
+ reselect: string;
533
+ previewLabel: string;
534
+ previewAlt: string;
535
+ showPreview: string;
536
+ saveFailed: string;
537
+ };
538
+ panelToolbar: {
539
+ add: string;
540
+ unused: string;
541
+ reorder: string;
542
+ };
543
+ };
544
+ };
545
+ /** Resolve the ui catalog for the active language; undefined → English. */
546
+ declare function uiCatalogFor(language: SupportedLanguage | undefined): typeof uiEn;
547
+
548
+ export { UI_CATALOGS as U, uiCatalogFor as a, uiEn as u };
package/package.json ADDED
@@ -0,0 +1,81 @@
1
+ {
2
+ "name": "@hoardodile/i18n",
3
+ "version": "0.0.0",
4
+ "license": "MIT",
5
+ "description": "Shared i18n catalogs and helpers for the hoardodile host surfaces and plugin SDK.",
6
+ "keywords": [
7
+ "hoardodile",
8
+ "i18n",
9
+ "i18next",
10
+ "translation"
11
+ ],
12
+ "repository": {
13
+ "type": "git",
14
+ "url": "git+https://github.com/hoardodile/hoardodile.git",
15
+ "directory": "packages/i18n"
16
+ },
17
+ "type": "module",
18
+ "exports": {
19
+ ".": {
20
+ "types": "./dist/index.d.ts",
21
+ "development": "./src/index.ts",
22
+ "default": "./dist/index.js"
23
+ },
24
+ "./core": {
25
+ "types": "./dist/core.d.ts",
26
+ "development": "./src/core.ts",
27
+ "default": "./dist/core.js"
28
+ },
29
+ "./create-i18n": {
30
+ "types": "./dist/create-i18n.d.ts",
31
+ "development": "./src/create-i18n.ts",
32
+ "default": "./dist/create-i18n.js"
33
+ },
34
+ "./react": {
35
+ "types": "./dist/react.d.ts",
36
+ "development": "./src/react.ts",
37
+ "default": "./dist/react.js"
38
+ },
39
+ "./catalogs": {
40
+ "types": "./dist/catalogs.d.ts",
41
+ "development": "./src/catalogs.ts",
42
+ "default": "./dist/catalogs.js"
43
+ },
44
+ "./catalogs/ui": {
45
+ "types": "./dist/catalogs/ui.d.ts",
46
+ "development": "./src/catalogs/ui.ts",
47
+ "default": "./dist/catalogs/ui.js"
48
+ },
49
+ "./workbench": {
50
+ "types": "./dist/catalogs/workbench.d.ts",
51
+ "development": "./src/catalogs/workbench.ts",
52
+ "default": "./dist/catalogs/workbench.js"
53
+ }
54
+ },
55
+ "files": [
56
+ "dist",
57
+ "src"
58
+ ],
59
+ "sideEffects": false,
60
+ "engines": {
61
+ "node": ">=24"
62
+ },
63
+ "publishConfig": {
64
+ "access": "public"
65
+ },
66
+ "dependencies": {
67
+ "i18next": "^26.4.0",
68
+ "react-i18next": "^17.0.12"
69
+ },
70
+ "devDependencies": {
71
+ "@types/node": "^26.2.0",
72
+ "tsup": "^8.5.1",
73
+ "typescript": "5.9.3",
74
+ "vitest": "^4.1.11"
75
+ },
76
+ "scripts": {
77
+ "build": "tsup",
78
+ "lint": "tsc --noEmit",
79
+ "test": "vitest run"
80
+ }
81
+ }