@datamoc/mw_games 0.5.1 → 0.5.3
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.
- package/README.md +7 -4
- package/dist/actors/EntityTemplate.d.ts +42 -1
- package/dist/actors/EntityTemplate.d.ts.map +1 -1
- package/dist/actors/EntityTemplate.js +56 -4
- package/dist/actors/EntityTemplate.js.map +1 -1
- package/dist/actors/index.d.ts +2 -2
- package/dist/actors/index.d.ts.map +1 -1
- package/dist/actors/index.js +1 -1
- package/dist/actors/index.js.map +1 -1
- package/dist/core/Registry.d.ts +31 -0
- package/dist/core/Registry.d.ts.map +1 -0
- package/dist/core/Registry.js +46 -0
- package/dist/core/Registry.js.map +1 -0
- package/dist/core/SceneComponents.d.ts +67 -0
- package/dist/core/SceneComponents.d.ts.map +1 -0
- package/dist/core/SceneComponents.js +76 -0
- package/dist/core/SceneComponents.js.map +1 -0
- package/dist/core/index.d.ts +3 -0
- package/dist/core/index.d.ts.map +1 -1
- package/dist/core/index.js +2 -0
- package/dist/core/index.js.map +1 -1
- package/dist/i18n/EditSession.d.ts +101 -0
- package/dist/i18n/EditSession.d.ts.map +1 -0
- package/dist/i18n/EditSession.js +150 -0
- package/dist/i18n/EditSession.js.map +1 -0
- package/dist/i18n/Fluent.js +9 -1
- package/dist/i18n/Fluent.js.map +1 -1
- package/dist/i18n/FormatSpec.d.ts +74 -0
- package/dist/i18n/FormatSpec.d.ts.map +1 -0
- package/dist/i18n/FormatSpec.js +302 -0
- package/dist/i18n/FormatSpec.js.map +1 -0
- package/dist/i18n/SemanticMessage.d.ts +15 -2
- package/dist/i18n/SemanticMessage.d.ts.map +1 -1
- package/dist/i18n/SemanticMessage.js +16 -2
- package/dist/i18n/SemanticMessage.js.map +1 -1
- package/dist/i18n/Validate.d.ts +26 -0
- package/dist/i18n/Validate.d.ts.map +1 -1
- package/dist/i18n/Validate.js +33 -0
- package/dist/i18n/Validate.js.map +1 -1
- package/dist/i18n/index.d.ts +32 -2
- package/dist/i18n/index.d.ts.map +1 -1
- package/dist/i18n/index.js +76 -9
- package/dist/i18n/index.js.map +1 -1
- package/dist/mw_games.global.js +98 -91
- package/dist/rpg/Quest.d.ts +45 -0
- package/dist/rpg/Quest.d.ts.map +1 -1
- package/dist/rpg/Quest.js +76 -0
- package/dist/rpg/Quest.js.map +1 -1
- package/dist/rpg/index.d.ts +2 -2
- package/dist/rpg/index.d.ts.map +1 -1
- package/dist/rpg/index.js +1 -1
- package/dist/rpg/index.js.map +1 -1
- package/dist/two-d/render/AnimatedSprite.d.ts +4 -0
- package/dist/two-d/render/AnimatedSprite.d.ts.map +1 -1
- package/dist/two-d/render/AnimatedSprite.js +4 -0
- package/dist/two-d/render/AnimatedSprite.js.map +1 -1
- package/dist/two-d/render/LayeredSprite.d.ts +8 -0
- package/dist/two-d/render/LayeredSprite.d.ts.map +1 -1
- package/dist/two-d/render/LayeredSprite.js +8 -0
- package/dist/two-d/render/LayeredSprite.js.map +1 -1
- package/dist/two-d/render/TileMap.d.ts +7 -0
- package/dist/two-d/render/TileMap.d.ts.map +1 -1
- package/dist/two-d/render/TileMap.js +7 -0
- package/dist/two-d/render/TileMap.js.map +1 -1
- package/dist/two-d/render/TintedSprite.d.ts +12 -0
- package/dist/two-d/render/TintedSprite.d.ts.map +1 -1
- package/dist/two-d/render/TintedSprite.js +12 -0
- package/dist/two-d/render/TintedSprite.js.map +1 -1
- package/dist/two-d/ui/Label.d.ts +14 -0
- package/dist/two-d/ui/Label.d.ts.map +1 -1
- package/dist/two-d/ui/Label.js +40 -0
- package/dist/two-d/ui/Label.js.map +1 -1
- package/dist/two-d/ui/MessageBox.d.ts +1 -1
- package/dist/two-d/ui/MessageBox.d.ts.map +1 -1
- package/dist/two-d/ui/MessageBox.js +8 -7
- package/dist/two-d/ui/MessageBox.js.map +1 -1
- package/dist/two-d/ui/NinePatch.d.ts +2 -0
- package/dist/two-d/ui/NinePatch.d.ts.map +1 -1
- package/dist/two-d/ui/NinePatch.js +2 -0
- package/dist/two-d/ui/NinePatch.js.map +1 -1
- package/dist/two-d/ui/RichLabel.d.ts +56 -0
- package/dist/two-d/ui/RichLabel.d.ts.map +1 -0
- package/dist/two-d/ui/RichLabel.js +135 -0
- package/dist/two-d/ui/RichLabel.js.map +1 -0
- package/dist/two-d/ui/index.d.ts +6 -0
- package/dist/two-d/ui/index.d.ts.map +1 -1
- package/dist/two-d/ui/index.js +3 -0
- package/dist/two-d/ui/index.js.map +1 -1
- package/dist/two-d/ui/markdown.d.ts +55 -0
- package/dist/two-d/ui/markdown.d.ts.map +1 -0
- package/dist/two-d/ui/markdown.js +145 -0
- package/dist/two-d/ui/markdown.js.map +1 -0
- package/dist/two-d/ui/reveal.d.ts +41 -0
- package/dist/two-d/ui/reveal.d.ts.map +1 -0
- package/dist/two-d/ui/reveal.js +22 -0
- package/dist/two-d/ui/reveal.js.map +1 -0
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/package.json +5 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SemanticMessage.d.ts","sourceRoot":"","sources":["../../src/i18n/SemanticMessage.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;GAUG;AACH,MAAM,WAAW,eAAe,CAC/B,KAAK,SAAS,MAAM,GAAG,MAAM,EAC7B,OAAO,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAEjE,IAAI,EAAE,KAAK,CAAC;IACZ,MAAM,EAAE,OAAO,CAAC;CAChB;AAED;;;;GAIG;AACH,MAAM,MAAM,kBAAkB,CAAC,EAAE,GAAG,MAAM,IAAI,CAAC,EAAE,EAAE,EAAE,KAAK,MAAM,CAAC;AAEjE;;;;;GAKG;AACH,MAAM,WAAW,iBAAiB;IACjC,MAAM,CAAC,EAAE,WAAW,GAAG,UAAU,GAAG,QAAQ,GAAG,QAAQ,CAAC;IACxD,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,oFAAoF;IACpF,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC/B;AAED;
|
|
1
|
+
{"version":3,"file":"SemanticMessage.d.ts","sourceRoot":"","sources":["../../src/i18n/SemanticMessage.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;GAUG;AACH,MAAM,WAAW,eAAe,CAC/B,KAAK,SAAS,MAAM,GAAG,MAAM,EAC7B,OAAO,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAEjE,IAAI,EAAE,KAAK,CAAC;IACZ,MAAM,EAAE,OAAO,CAAC;CAChB;AAED;;;;GAIG;AACH,MAAM,MAAM,kBAAkB,CAAC,EAAE,GAAG,MAAM,IAAI,CAAC,EAAE,EAAE,EAAE,KAAK,MAAM,CAAC;AAEjE;;;;;GAKG;AACH,MAAM,WAAW,iBAAiB;IACjC,MAAM,CAAC,EAAE,WAAW,GAAG,UAAU,GAAG,QAAQ,GAAG,QAAQ,CAAC;IACxD,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,oFAAoF;IACpF,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC/B;AAED;;;;2EAI2E;AAC3E,MAAM,MAAM,cAAc,GAAG,KAAK,GAAG,SAAS,GAAG,eAAe,GAAG,OAAO,GAAG,OAAO,CAAC;AAErF,MAAM,WAAW,gBAAgB;IAChC,MAAM,CAAC,OAAO,EAAE,eAAe,EAAE,OAAO,EAAE,cAAc,GAAG,MAAM,CAAC;CAClE;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AACH,wBAAgB,sBAAsB,IAAI,gBAAgB,CAYzD"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { t, has } from './index.js';
|
|
1
|
+
import { t, tRaw, has } from './index.js';
|
|
2
2
|
/**
|
|
3
3
|
* The reference `MessageFormatter`: looks up `${type}.${channel}` in the active catalog
|
|
4
4
|
* (`setBase`/`setActive`, `src/i18n/index.ts`), falling back to `${type}` alone for a message
|
|
@@ -26,13 +26,27 @@ import { t, has } from './index.js';
|
|
|
26
26
|
* console.log(formatter.format(message, 'log')); // 'The gnoll takes 7 damage.'
|
|
27
27
|
* console.log(formatter.format(message, 'compact')); // '-7 HP'
|
|
28
28
|
* console.log(formatter.format(message, 'debug')); // falls back to the bare type: the key itself, if undeclared
|
|
29
|
+
* console.log(formatter.format(message, 'audio')); // 'sounds/sword-hit.wav', or '' when no '<type>.audio' entry exists
|
|
29
30
|
* ```
|
|
31
|
+
*
|
|
32
|
+
* The `audio` channel is deliberately narrower than the text channels: it resolves only
|
|
33
|
+
* `<type>.audio`, never falling back to the bare type the way text does. A bare type
|
|
34
|
+
* holding a sentence (`'combat.damage': 'combat.damage generic'`) is not a playable path,
|
|
35
|
+
* so falling back to it would hand the game garbage to load. Sounds that need no
|
|
36
|
+
* per-channel variation are still shared - every text channel already falls back to the
|
|
37
|
+
* same bare type, while `audio` stays a separate entry a translator never touches and the
|
|
38
|
+
* base language usually owns alone (runtime lookup falls back to the base catalog, so a
|
|
39
|
+
* translated catalog needs no copy of it).
|
|
30
40
|
*/
|
|
31
41
|
export function createCatalogFormatter() {
|
|
32
42
|
return {
|
|
33
43
|
format(message, channel) {
|
|
34
|
-
const key = `${message.type}.${channel}`;
|
|
35
44
|
const params = message.params;
|
|
45
|
+
if (channel === 'audio') {
|
|
46
|
+
const key = `${message.type}.audio`;
|
|
47
|
+
return has(key) ? tRaw(key, params) : '';
|
|
48
|
+
}
|
|
49
|
+
const key = `${message.type}.${channel}`;
|
|
36
50
|
return has(key) ? t(key, params) : t(message.type, params);
|
|
37
51
|
},
|
|
38
52
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SemanticMessage.js","sourceRoot":"","sources":["../../src/i18n/SemanticMessage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,GAAG,EAAsB,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"SemanticMessage.js","sourceRoot":"","sources":["../../src/i18n/SemanticMessage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,GAAG,EAAsB,MAAM,YAAY,CAAC;AAqD9D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AACH,MAAM,UAAU,sBAAsB;IACrC,OAAO;QACN,MAAM,CAAC,OAAwB,EAAE,OAAuB;YACvD,MAAM,MAAM,GAAG,OAAO,CAAC,MAAuB,CAAC;YAC/C,IAAI,OAAO,KAAK,OAAO,EAAE,CAAC;gBACzB,MAAM,GAAG,GAAG,GAAG,OAAO,CAAC,IAAI,QAAQ,CAAC;gBACpC,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YAC1C,CAAC;YACD,MAAM,GAAG,GAAG,GAAG,OAAO,CAAC,IAAI,IAAI,OAAO,EAAE,CAAC;YACzC,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QAC5D,CAAC;KACD,CAAC;AACH,CAAC"}
|
package/dist/i18n/Validate.d.ts
CHANGED
|
@@ -53,4 +53,30 @@ export interface CatalogIssue {
|
|
|
53
53
|
* ```
|
|
54
54
|
*/
|
|
55
55
|
export declare function validateCatalog(catalog: Catalog): CatalogIssue[];
|
|
56
|
+
export interface AudioIssue {
|
|
57
|
+
/** the full `<type>.audio` key */
|
|
58
|
+
key: string;
|
|
59
|
+
kind: 'empty-audio-path' | 'audio-not-a-path';
|
|
60
|
+
detail: string;
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Structural problems in a catalog's sound cues: an `<type>.audio` entry holding an
|
|
64
|
+
* empty string (the formatter already reads that as "no sound", so it is dead weight),
|
|
65
|
+
* or holding plural forms/a select message instead of a plain path. A sound path is data
|
|
66
|
+
* a game hands to `mwg/audio`'s `Sound`, not grammar - count- or variant-dependent paths
|
|
67
|
+
* would silently reduce to one branch at lookup time rather than selecting one per play.
|
|
68
|
+
*
|
|
69
|
+
* @example
|
|
70
|
+
* ```ts
|
|
71
|
+
* import { validateMessageAudio } from '@datamoc/mw_games/i18n';
|
|
72
|
+
*
|
|
73
|
+
* const catalog = {
|
|
74
|
+
* locale: 'en', direction: 'ltr' as const,
|
|
75
|
+
* messages: { 'hit.audio': '', 'loot.audio': { one: 'a.wav', other: 'b.wav' } },
|
|
76
|
+
* };
|
|
77
|
+
*
|
|
78
|
+
* console.log(validateMessageAudio(catalog).map((issue) => issue.key)); // ['hit.audio', 'loot.audio']
|
|
79
|
+
* ```
|
|
80
|
+
*/
|
|
81
|
+
export declare function validateMessageAudio(catalog: Catalog): AudioIssue[];
|
|
56
82
|
//# sourceMappingURL=Validate.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Validate.d.ts","sourceRoot":"","sources":["../../src/i18n/Validate.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAgB,MAAM,YAAY,CAAC;AAExD;4DAC4D;AAC5D,MAAM,WAAW,cAAc;IAC9B,2DAA2D;IAC3D,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;IAC3B,iEAAiE;IACjE,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;CACzB;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,eAAe,CAAC,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,GAAG,cAAc,CAOlF;AAED,MAAM,WAAW,YAAY;IAC5B,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,eAAe,GAAG,sBAAsB,CAAC;IAC/C,MAAM,EAAE,MAAM,CAAC;CACf;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,OAAO,GAAG,YAAY,EAAE,CAchE"}
|
|
1
|
+
{"version":3,"file":"Validate.d.ts","sourceRoot":"","sources":["../../src/i18n/Validate.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAgB,MAAM,YAAY,CAAC;AAExD;4DAC4D;AAC5D,MAAM,WAAW,cAAc;IAC9B,2DAA2D;IAC3D,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;IAC3B,iEAAiE;IACjE,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;CACzB;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,eAAe,CAAC,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,GAAG,cAAc,CAOlF;AAED,MAAM,WAAW,YAAY;IAC5B,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,eAAe,GAAG,sBAAsB,CAAC;IAC/C,MAAM,EAAE,MAAM,CAAC;CACf;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,OAAO,GAAG,YAAY,EAAE,CAchE;AAMD,MAAM,WAAW,UAAU;IAC1B,kCAAkC;IAClC,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,kBAAkB,GAAG,kBAAkB,CAAC;IAC9C,MAAM,EAAE,MAAM,CAAC;CACf;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,OAAO,GAAG,UAAU,EAAE,CAanE"}
|
package/dist/i18n/Validate.js
CHANGED
|
@@ -62,4 +62,37 @@ export function validateCatalog(catalog) {
|
|
|
62
62
|
function isPluralForms(value) {
|
|
63
63
|
return typeof value === 'object' && value !== null && !('format' in value);
|
|
64
64
|
}
|
|
65
|
+
/**
|
|
66
|
+
* Structural problems in a catalog's sound cues: an `<type>.audio` entry holding an
|
|
67
|
+
* empty string (the formatter already reads that as "no sound", so it is dead weight),
|
|
68
|
+
* or holding plural forms/a select message instead of a plain path. A sound path is data
|
|
69
|
+
* a game hands to `mwg/audio`'s `Sound`, not grammar - count- or variant-dependent paths
|
|
70
|
+
* would silently reduce to one branch at lookup time rather than selecting one per play.
|
|
71
|
+
*
|
|
72
|
+
* @example
|
|
73
|
+
* ```ts
|
|
74
|
+
* import { validateMessageAudio } from '@datamoc/mw_games/i18n';
|
|
75
|
+
*
|
|
76
|
+
* const catalog = {
|
|
77
|
+
* locale: 'en', direction: 'ltr' as const,
|
|
78
|
+
* messages: { 'hit.audio': '', 'loot.audio': { one: 'a.wav', other: 'b.wav' } },
|
|
79
|
+
* };
|
|
80
|
+
*
|
|
81
|
+
* console.log(validateMessageAudio(catalog).map((issue) => issue.key)); // ['hit.audio', 'loot.audio']
|
|
82
|
+
* ```
|
|
83
|
+
*/
|
|
84
|
+
export function validateMessageAudio(catalog) {
|
|
85
|
+
const issues = [];
|
|
86
|
+
for (const [key, value] of Object.entries(catalog.messages)) {
|
|
87
|
+
if (!key.endsWith('.audio'))
|
|
88
|
+
continue;
|
|
89
|
+
if (typeof value !== 'string') {
|
|
90
|
+
issues.push({ key, kind: 'audio-not-a-path', detail: 'an audio entry must be a plain path string, not plural forms or a select message' });
|
|
91
|
+
}
|
|
92
|
+
else if (value === '') {
|
|
93
|
+
issues.push({ key, kind: 'empty-audio-path', detail: 'an empty audio entry already means "no sound"; remove the key instead' });
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
return issues;
|
|
97
|
+
}
|
|
65
98
|
//# sourceMappingURL=Validate.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Validate.js","sourceRoot":"","sources":["../../src/i18n/Validate.ts"],"names":[],"mappings":"AAWA;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,eAAe,CAAC,SAAkB,EAAE,KAAc;IACjE,MAAM,aAAa,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC/D,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC;IACvD,OAAO;QACN,OAAO,EAAE,CAAC,GAAG,aAAa,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAChE,KAAK,EAAE,CAAC,GAAG,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;KAC9D,CAAC;AACH,CAAC;AAQD;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,MAAM,UAAU,eAAe,CAAC,OAAgB;IAC/C,MAAM,MAAM,GAAmB,EAAE,CAAC;IAElC,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC7D,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC/B,IAAI,KAAK,KAAK,EAAE;gBAAE,MAAM,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,eAAe,EAAE,MAAM,EAAE,qCAAqC,EAAE,CAAC,CAAC;YAC7G,SAAS;QACV,CAAC;QACD,IAAI,aAAa,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;YACvD,MAAM,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,sBAAsB,EAAE,MAAM,EAAE,qCAAqC,EAAE,CAAC,CAAC;QACnG,CAAC;IACF,CAAC;IAED,OAAO,MAAM,CAAC;AACf,CAAC;AAED,SAAS,aAAa,CAAC,KAAmB;IACzC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,CAAC,QAAQ,IAAI,KAAK,CAAC,CAAC;AAC5E,CAAC"}
|
|
1
|
+
{"version":3,"file":"Validate.js","sourceRoot":"","sources":["../../src/i18n/Validate.ts"],"names":[],"mappings":"AAWA;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,eAAe,CAAC,SAAkB,EAAE,KAAc;IACjE,MAAM,aAAa,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC/D,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC;IACvD,OAAO;QACN,OAAO,EAAE,CAAC,GAAG,aAAa,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAChE,KAAK,EAAE,CAAC,GAAG,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;KAC9D,CAAC;AACH,CAAC;AAQD;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,MAAM,UAAU,eAAe,CAAC,OAAgB;IAC/C,MAAM,MAAM,GAAmB,EAAE,CAAC;IAElC,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC7D,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC/B,IAAI,KAAK,KAAK,EAAE;gBAAE,MAAM,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,eAAe,EAAE,MAAM,EAAE,qCAAqC,EAAE,CAAC,CAAC;YAC7G,SAAS;QACV,CAAC;QACD,IAAI,aAAa,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;YACvD,MAAM,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,sBAAsB,EAAE,MAAM,EAAE,qCAAqC,EAAE,CAAC,CAAC;QACnG,CAAC;IACF,CAAC;IAED,OAAO,MAAM,CAAC;AACf,CAAC;AAED,SAAS,aAAa,CAAC,KAAmB;IACzC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,CAAC,QAAQ,IAAI,KAAK,CAAC,CAAC;AAC5E,CAAC;AASD;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,UAAU,oBAAoB,CAAC,OAAgB;IACpD,MAAM,MAAM,GAAiB,EAAE,CAAC;IAEhC,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC7D,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC;YAAE,SAAS;QACtC,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC/B,MAAM,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,kBAAkB,EAAE,MAAM,EAAE,kFAAkF,EAAE,CAAC,CAAC;QAC5I,CAAC;aAAM,IAAI,KAAK,KAAK,EAAE,EAAE,CAAC;YACzB,MAAM,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,kBAAkB,EAAE,MAAM,EAAE,uEAAuE,EAAE,CAAC,CAAC;QACjI,CAAC;IACF,CAAC;IAED,OAAO,MAAM,CAAC;AACf,CAAC"}
|
package/dist/i18n/index.d.ts
CHANGED
|
@@ -76,9 +76,34 @@ export interface MessageParams {
|
|
|
76
76
|
count?: number;
|
|
77
77
|
[token: string]: string | number | undefined;
|
|
78
78
|
}
|
|
79
|
+
/**
|
|
80
|
+
* Resolves a message by key, interpolating `{token}` placeholders from `params`, without
|
|
81
|
+
* any display-text decoration: no `typographic` spacing, no right-to-left isolate wrapping.
|
|
82
|
+
* This is the resolver for catalog values that are not shown to the player - a sound path
|
|
83
|
+
* behind the semantic formatter's `audio` channel, an icon id, a font name - where a
|
|
84
|
+
* narrow no-break space or a bidi control character would corrupt the value rather than
|
|
85
|
+
* improve it.
|
|
86
|
+
*
|
|
87
|
+
* A key present in neither language returns itself, the same as `t()`.
|
|
88
|
+
*
|
|
89
|
+
* @example
|
|
90
|
+
* ```ts
|
|
91
|
+
* import { setBase, tRaw } from '@datamoc/mw_games/i18n';
|
|
92
|
+
*
|
|
93
|
+
* setBase({ locale: 'fr', direction: 'ltr', messages: { 'ui.click.audio': 'sounds/hit!.wav' } });
|
|
94
|
+
* tRaw('ui.click.audio'); // 'sounds/hit!.wav', with no extra spacing before the '!'
|
|
95
|
+
* ```
|
|
96
|
+
*/
|
|
97
|
+
export declare function tRaw(key: string, params?: MessageParams): string;
|
|
79
98
|
/**
|
|
80
99
|
* Resolves a message by key, interpolating `{token}` placeholders from `params`.
|
|
81
100
|
*
|
|
101
|
+
* Placeholders also take Python f-string-style fitting-out: `{dmg:03d}`, `{hp:.1%}`,
|
|
102
|
+
* `{name:>12}`, plus `!s`/`!r`/`!a` conversions and `=` debugging (`{dmg=}` renders as
|
|
103
|
+
* `dmg=42`), all resolved through `formatSpec`. A placeholder whose token is missing, or
|
|
104
|
+
* whose spec fits neither the value nor the supported subset, is left untouched rather
|
|
105
|
+
* than throwing or rendering half-formatted.
|
|
106
|
+
*
|
|
82
107
|
* A key present in neither language returns itself, which is the only case where a raw key
|
|
83
108
|
* can reach the player - and it means the key was never translated anywhere, not merely
|
|
84
109
|
* missing from one language.
|
|
@@ -129,8 +154,13 @@ export type { FluentOptions } from './Fluent.ts';
|
|
|
129
154
|
export { createCatalogFormatter } from './SemanticMessage.ts';
|
|
130
155
|
export type { SemanticMessage, EntityTextResolver, GrammaticalEntity, MessageChannel, MessageFormatter } from './SemanticMessage.ts';
|
|
131
156
|
export { formatNumber, formatDate, formatList } from './Format.ts';
|
|
132
|
-
|
|
133
|
-
export
|
|
157
|
+
import { formatSpec, tokenizeMessage, diffPlaceholders } from './FormatSpec.ts';
|
|
158
|
+
export { formatSpec, tokenizeMessage, diffPlaceholders };
|
|
159
|
+
export type { Placeholder, MessagePart, PlaceholderDiff } from './FormatSpec.ts';
|
|
160
|
+
export { diffCatalogKeys, validateCatalog, validateMessageAudio } from './Validate.ts';
|
|
161
|
+
export type { CatalogKeyDiff, CatalogIssue, AudioIssue } from './Validate.ts';
|
|
162
|
+
export { AUDIO_SUFFIX, copyFromBase, createEditSession, cueKeyFor, deleteTargetKey, isAudioKey, sessionCompleteness, sessionKeys, sessionRow, sessionRows, setTargetSound, setTargetText, swapSession, } from './EditSession.ts';
|
|
163
|
+
export type { EditRow, EditSession, RowFilter } from './EditSession.ts';
|
|
134
164
|
export { messageText, levenshteinDistance, findSimilarMessages, catalogUsage, catalogCompleteness, pluralFormCoverage, mergeCatalogKeys, } from './Content.ts';
|
|
135
165
|
export type { SimilarMessagePair, CatalogUsageStats, PluralCoverage } from './Content.ts';
|
|
136
166
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/i18n/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/i18n/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiDG;AAEH,6FAA6F;AAC7F,MAAM,MAAM,SAAS,GAAG,KAAK,GAAG,KAAK,CAAC;AAEtC,oFAAoF;AACpF,MAAM,MAAM,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC,CAAC;AAEvE,MAAM,WAAW,aAAa;IAC7B,MAAM,CAAC,MAAM,CAAC,EAAE,aAAa,GAAG,MAAM,CAAC;CACvC;AAED,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG,WAAW,GAAG,aAAa,CAAC;AAEhE,MAAM,WAAW,OAAO;IACvB,sFAAsF;IACtF,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,SAAS,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;IACvC,4FAA4F;IAC5F,UAAU,CAAC,EAAE,OAAO,CAAC;CACrB;AAOD,uEAAuE;AACvE,wBAAgB,OAAO,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAE9C;AAED,sFAAsF;AACtF,wBAAgB,SAAS,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,GAAG,IAAI,CAGvD;AAED,wBAAgB,MAAM,IAAI,MAAM,CAE/B;AAED,6CAA6C;AAC7C,wBAAgB,SAAS,IAAI,SAAS,CAErC;AAED,MAAM,WAAW,aAAa;IAC7B,gEAAgE;IAChE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;CAC7C;AAED
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/i18n/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiDG;AAEH,6FAA6F;AAC7F,MAAM,MAAM,SAAS,GAAG,KAAK,GAAG,KAAK,CAAC;AAEtC,oFAAoF;AACpF,MAAM,MAAM,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC,CAAC;AAEvE,MAAM,WAAW,aAAa;IAC7B,MAAM,CAAC,MAAM,CAAC,EAAE,aAAa,GAAG,MAAM,CAAC;CACvC;AAED,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG,WAAW,GAAG,aAAa,CAAC;AAEhE,MAAM,WAAW,OAAO;IACvB,sFAAsF;IACtF,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,SAAS,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;IACvC,4FAA4F;IAC5F,UAAU,CAAC,EAAE,OAAO,CAAC;CACrB;AAOD,uEAAuE;AACvE,wBAAgB,OAAO,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAE9C;AAED,sFAAsF;AACtF,wBAAgB,SAAS,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,GAAG,IAAI,CAGvD;AAED,wBAAgB,MAAM,IAAI,MAAM,CAE/B;AAED,6CAA6C;AAC7C,wBAAgB,SAAS,IAAI,SAAS,CAErC;AAED,MAAM,WAAW,aAAa;IAC7B,gEAAgE;IAChE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;CAC7C;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,aAAa,GAAG,MAAM,CAMhE;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,CAAC,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,aAAa,GAAG,MAAM,CAgB7D;AAoBD;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,SAAW,GAAG,MAAM,CAYrE;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,SAAW,GAAG,MAAM,CAIjG;AAiCD,kFAAkF;AAClF,wBAAgB,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAExC;AAwDD,gFAAgF;AAChF,wBAAgB,KAAK,IAAI,IAAI,CAI5B;AAED,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,YAAY,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAEjD,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAC9D,YAAY,EAAE,eAAe,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAErI,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEnE,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,gBAAgB,EAAoB,MAAM,iBAAiB,CAAC;AAClG,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,gBAAgB,EAAE,CAAC;AACzD,YAAY,EAAE,WAAW,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAEjF,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AACvF,YAAY,EAAE,cAAc,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAE9E,OAAO,EACN,YAAY,EACZ,YAAY,EACZ,iBAAiB,EACjB,SAAS,EACT,eAAe,EACf,UAAU,EACV,mBAAmB,EACnB,WAAW,EACX,UAAU,EACV,WAAW,EACX,cAAc,EACd,aAAa,EACb,WAAW,GACX,MAAM,kBAAkB,CAAC;AAC1B,YAAY,EAAE,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAExE,OAAO,EACN,WAAW,EACX,mBAAmB,EACnB,mBAAmB,EACnB,YAAY,EACZ,mBAAmB,EACnB,kBAAkB,EAClB,gBAAgB,GAChB,MAAM,cAAc,CAAC;AACtB,YAAY,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC"}
|
package/dist/i18n/index.js
CHANGED
|
@@ -68,19 +68,48 @@ export function locale() {
|
|
|
68
68
|
export function direction() {
|
|
69
69
|
return (active ?? base)?.direction ?? 'ltr';
|
|
70
70
|
}
|
|
71
|
+
/**
|
|
72
|
+
* Resolves a message by key, interpolating `{token}` placeholders from `params`, without
|
|
73
|
+
* any display-text decoration: no `typographic` spacing, no right-to-left isolate wrapping.
|
|
74
|
+
* This is the resolver for catalog values that are not shown to the player - a sound path
|
|
75
|
+
* behind the semantic formatter's `audio` channel, an icon id, a font name - where a
|
|
76
|
+
* narrow no-break space or a bidi control character would corrupt the value rather than
|
|
77
|
+
* improve it.
|
|
78
|
+
*
|
|
79
|
+
* A key present in neither language returns itself, the same as `t()`.
|
|
80
|
+
*
|
|
81
|
+
* @example
|
|
82
|
+
* ```ts
|
|
83
|
+
* import { setBase, tRaw } from '@datamoc/mw_games/i18n';
|
|
84
|
+
*
|
|
85
|
+
* setBase({ locale: 'fr', direction: 'ltr', messages: { 'ui.click.audio': 'sounds/hit!.wav' } });
|
|
86
|
+
* tRaw('ui.click.audio'); // 'sounds/hit!.wav', with no extra spacing before the '!'
|
|
87
|
+
* ```
|
|
88
|
+
*/
|
|
89
|
+
export function tRaw(key, params) {
|
|
90
|
+
const entry = active?.messages[key] ?? base?.messages[key];
|
|
91
|
+
if (entry === undefined)
|
|
92
|
+
return key;
|
|
93
|
+
const text = typeof entry === 'string' ? entry : isFluentMessage(entry) ? entry.format(params) : resolvePlural(entry, params?.count);
|
|
94
|
+
return params ? interpolate(text, params) : text;
|
|
95
|
+
}
|
|
71
96
|
/**
|
|
72
97
|
* Resolves a message by key, interpolating `{token}` placeholders from `params`.
|
|
73
98
|
*
|
|
99
|
+
* Placeholders also take Python f-string-style fitting-out: `{dmg:03d}`, `{hp:.1%}`,
|
|
100
|
+
* `{name:>12}`, plus `!s`/`!r`/`!a` conversions and `=` debugging (`{dmg=}` renders as
|
|
101
|
+
* `dmg=42`), all resolved through `formatSpec`. A placeholder whose token is missing, or
|
|
102
|
+
* whose spec fits neither the value nor the supported subset, is left untouched rather
|
|
103
|
+
* than throwing or rendering half-formatted.
|
|
104
|
+
*
|
|
74
105
|
* A key present in neither language returns itself, which is the only case where a raw key
|
|
75
106
|
* can reach the player - and it means the key was never translated anywhere, not merely
|
|
76
107
|
* missing from one language.
|
|
77
108
|
*/
|
|
78
109
|
export function t(key, params) {
|
|
79
|
-
|
|
80
|
-
if (entry === undefined)
|
|
110
|
+
if (!has(key))
|
|
81
111
|
return key;
|
|
82
|
-
const
|
|
83
|
-
const translated = params ? interpolate(text, params) : text;
|
|
112
|
+
const translated = tRaw(key, params);
|
|
84
113
|
const resolved = (active ?? base)?.typography === false ? translated : typographic(translated, locale());
|
|
85
114
|
// Canvas 2D's fillText (what every renderer here draws text through) always resolves
|
|
86
115
|
// bidi runs against an 'ltr' paragraph base, since nothing sets the context's own
|
|
@@ -199,10 +228,45 @@ function isFluentMessage(value) {
|
|
|
199
228
|
return 'format' in value;
|
|
200
229
|
}
|
|
201
230
|
function interpolate(text, params) {
|
|
202
|
-
return text
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
231
|
+
return tokenizeMessage(text)
|
|
232
|
+
.map((part) => (typeof part === 'string' ? part : resolvePlaceholder(part, params)))
|
|
233
|
+
.join('');
|
|
234
|
+
}
|
|
235
|
+
function resolvePlaceholder(part, params) {
|
|
236
|
+
const value = params[part.token];
|
|
237
|
+
if (value === undefined)
|
|
238
|
+
return part.raw;
|
|
239
|
+
try {
|
|
240
|
+
const converted = part.conv === undefined ? value : convertValue(value, part.conv);
|
|
241
|
+
const formatted = part.spec === undefined ? String(converted) : formatSpec(converted, part.spec, locale());
|
|
242
|
+
if (formatted === undefined)
|
|
243
|
+
return part.raw;
|
|
244
|
+
return part.debug ? `${part.token}=${formatted}` : formatted;
|
|
245
|
+
}
|
|
246
|
+
catch {
|
|
247
|
+
//an absurd width (or anything else down in the formatter that throws) leaves
|
|
248
|
+
//the placeholder readable rather than aborting the whole message
|
|
249
|
+
return part.raw;
|
|
250
|
+
}
|
|
251
|
+
}
|
|
252
|
+
/** `!s`/`!r`/`!a` before any `:spec`, the way CPython applies the conversion first */
|
|
253
|
+
function convertValue(value, conv) {
|
|
254
|
+
if (conv === 's')
|
|
255
|
+
return String(value);
|
|
256
|
+
if (typeof value === 'number') {
|
|
257
|
+
const text = formatSpec(value, '', 'en') ?? String(value);
|
|
258
|
+
return conv === 'a' ? escapeAscii(text) : text;
|
|
259
|
+
}
|
|
260
|
+
const quoted = `'${value.replace(/\\/g, '\\\\').replace(/'/g, "\\'").replace(/\n/g, '\\n').replace(/\r/g, '\\r').replace(/\t/g, '\\t')}'`;
|
|
261
|
+
return conv === 'a' ? escapeAscii(quoted) : quoted;
|
|
262
|
+
}
|
|
263
|
+
function escapeAscii(text) {
|
|
264
|
+
let out = '';
|
|
265
|
+
for (const char of text) {
|
|
266
|
+
const code = char.codePointAt(0) ?? 0;
|
|
267
|
+
out += code > 127 ? (code > 0xffff ? `\\U${code.toString(16).padStart(8, '0')}` : `\\u${code.toString(16).padStart(4, '0')}`) : char;
|
|
268
|
+
}
|
|
269
|
+
return out;
|
|
206
270
|
}
|
|
207
271
|
/** clears both languages, mainly so tests do not leak state into one another */
|
|
208
272
|
export function reset() {
|
|
@@ -213,6 +277,9 @@ export function reset() {
|
|
|
213
277
|
export { parseFTL } from './Fluent.js';
|
|
214
278
|
export { createCatalogFormatter } from './SemanticMessage.js';
|
|
215
279
|
export { formatNumber, formatDate, formatList } from './Format.js';
|
|
216
|
-
|
|
280
|
+
import { formatSpec, tokenizeMessage, diffPlaceholders } from './FormatSpec.js';
|
|
281
|
+
export { formatSpec, tokenizeMessage, diffPlaceholders };
|
|
282
|
+
export { diffCatalogKeys, validateCatalog, validateMessageAudio } from './Validate.js';
|
|
283
|
+
export { AUDIO_SUFFIX, copyFromBase, createEditSession, cueKeyFor, deleteTargetKey, isAudioKey, sessionCompleteness, sessionKeys, sessionRow, sessionRows, setTargetSound, setTargetText, swapSession, } from './EditSession.js';
|
|
217
284
|
export { messageText, levenshteinDistance, findSimilarMessages, catalogUsage, catalogCompleteness, pluralFormCoverage, mergeCatalogKeys, } from './Content.js';
|
|
218
285
|
//# sourceMappingURL=index.js.map
|
package/dist/i18n/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/i18n/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiDG;AAuBH,IAAI,IAAI,GAAmB,IAAI,CAAC;AAChC,IAAI,MAAM,GAAmB,IAAI,CAAC;AAClC,IAAI,WAAW,GAA4B,IAAI,CAAC;AAChD,IAAI,aAAa,GAA4B,IAAI,CAAC;AAElD,uEAAuE;AACvE,MAAM,UAAU,OAAO,CAAC,OAAgB;IACvC,IAAI,GAAG,OAAO,CAAC;AAChB,CAAC;AAED,sFAAsF;AACtF,MAAM,UAAU,SAAS,CAAC,OAAuB;IAChD,MAAM,GAAG,OAAO,CAAC;IACjB,WAAW,GAAG,OAAO,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AACrE,CAAC;AAED,MAAM,UAAU,MAAM;IACrB,OAAO,CAAC,MAAM,IAAI,IAAI,CAAC,EAAE,MAAM,IAAI,IAAI,CAAC;AACzC,CAAC;AAED,6CAA6C;AAC7C,MAAM,UAAU,SAAS;IACxB,OAAO,CAAC,MAAM,IAAI,IAAI,CAAC,EAAE,SAAS,IAAI,KAAK,CAAC;AAC7C,CAAC;AAQD
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/i18n/index.ts"],"names":[],"mappings":"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"}
|