@worldware/msg 0.0.2 → 0.5.1
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 +13 -12
- package/dist/classes/MsgMessage/MsgMessage.d.ts +3 -3
- package/dist/classes/MsgMessage/MsgMessage.d.ts.map +1 -1
- package/dist/classes/MsgMessage/MsgMessage.js.map +1 -1
- package/dist/classes/MsgProject/MsgProject.d.ts +7 -11
- package/dist/classes/MsgProject/MsgProject.d.ts.map +1 -1
- package/dist/classes/MsgProject/MsgProject.js +11 -15
- package/dist/classes/MsgProject/MsgProject.js.map +1 -1
- package/dist/classes/MsgResource/MsgResource.d.ts +3 -3
- package/dist/classes/MsgResource/MsgResource.d.ts.map +1 -1
- package/dist/classes/MsgResource/MsgResource.js +19 -3
- package/dist/classes/MsgResource/MsgResource.js.map +1 -1
- package/dist/classes/index.d.ts +3 -3
- package/dist/classes/index.d.ts.map +1 -1
- package/dist/classes/index.js +3 -3
- package/dist/classes/index.js.map +1 -1
- package/package.json +10 -1
- package/dist/classes/MsgInterface/index.d.ts +0 -2
- package/dist/classes/MsgInterface/index.d.ts.map +0 -1
- package/dist/classes/MsgInterface/index.js +0 -2
- package/dist/classes/MsgInterface/index.js.map +0 -1
- package/dist/classes/MsgMessage/index.d.ts +0 -2
- package/dist/classes/MsgMessage/index.d.ts.map +0 -1
- package/dist/classes/MsgMessage/index.js +0 -2
- package/dist/classes/MsgMessage/index.js.map +0 -1
- package/dist/classes/MsgProject/index.d.ts +0 -2
- package/dist/classes/MsgProject/index.d.ts.map +0 -1
- package/dist/classes/MsgProject/index.js +0 -2
- package/dist/classes/MsgProject/index.js.map +0 -1
- package/dist/classes/MsgResource/index.d.ts +0 -2
- package/dist/classes/MsgResource/index.d.ts.map +0 -1
- package/dist/classes/MsgResource/index.js +0 -2
- package/dist/classes/MsgResource/index.js.map +0 -1
package/README.md
CHANGED
|
@@ -10,7 +10,7 @@ A TypeScript library for managing internationalization (i18n) messages with supp
|
|
|
10
10
|
- **Translation Loading**: Load translations from external sources via customizable loaders
|
|
11
11
|
- **Message Formatting**: Format messages with parameters using MessageFormat 2 (MF2) syntax
|
|
12
12
|
- **Attributes & Notes**: Attach metadata (language, direction, do-not-translate flags) and notes to messages
|
|
13
|
-
- **Project Configuration**: Configure projects with locale settings
|
|
13
|
+
- **Project Configuration**: Configure projects with locale settings and translation loaders
|
|
14
14
|
|
|
15
15
|
## Installation
|
|
16
16
|
|
|
@@ -24,8 +24,7 @@ npm install @worldware/msg
|
|
|
24
24
|
|
|
25
25
|
A project configuration that defines:
|
|
26
26
|
- Project name and version
|
|
27
|
-
- Source and target locales
|
|
28
|
-
- File paths for resources and translations
|
|
27
|
+
- Source and target locales (with language fallback chains)
|
|
29
28
|
- A translation loader function
|
|
30
29
|
|
|
31
30
|
### MsgResource
|
|
@@ -50,7 +49,7 @@ An individual message with:
|
|
|
50
49
|
### Basic Setup
|
|
51
50
|
|
|
52
51
|
```typescript
|
|
53
|
-
import { MsgProject, MsgResource } from '@msg';
|
|
52
|
+
import { MsgProject, MsgResource } from '@worldware/msg';
|
|
54
53
|
|
|
55
54
|
// Create a project configuration
|
|
56
55
|
const project = MsgProject.create({
|
|
@@ -60,13 +59,13 @@ const project = MsgProject.create({
|
|
|
60
59
|
},
|
|
61
60
|
locales: {
|
|
62
61
|
sourceLocale: 'en',
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
62
|
+
pseudoLocale: 'en-XA',
|
|
63
|
+
targetLocales: {
|
|
64
|
+
'en': ['en'],
|
|
65
|
+
'es': ['es'],
|
|
66
|
+
'fr': ['fr'],
|
|
67
|
+
'fr-CA': ['fr', 'fr-CA'] // Falls back to 'fr' if 'fr-CA' not available
|
|
68
|
+
}
|
|
70
69
|
},
|
|
71
70
|
loader: async (project, title, lang) => {
|
|
72
71
|
// Custom loader to fetch translation data
|
|
@@ -173,9 +172,11 @@ const data = resource.getData();
|
|
|
173
172
|
**Properties:**
|
|
174
173
|
- `project: MsgProjectSettings` - Project name and version
|
|
175
174
|
- `locales: MsgLocalesSettings` - Locale configuration
|
|
176
|
-
- `paths: MsgPathsSettings` - File path configuration
|
|
177
175
|
- `loader: MsgTranslationLoader` - Translation loader function
|
|
178
176
|
|
|
177
|
+
**Methods:**
|
|
178
|
+
- `getTargetLocale(locale: string): string[] | undefined` - Returns the language fallback chain (array of locale codes) for the specified locale, or `undefined` if the locale is not configured in `targetLocales`
|
|
179
|
+
|
|
179
180
|
### MsgResource
|
|
180
181
|
|
|
181
182
|
**Static Methods:**
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { type MessageFormatOptions } from "messageformat";
|
|
2
|
-
import { MsgInterface, type MsgAttributes, type MsgNote } from "../MsgInterface/
|
|
2
|
+
import { MsgInterface, type MsgAttributes, type MsgNote } from "../MsgInterface/MsgInterface.js";
|
|
3
3
|
export type MsgMessageData = {
|
|
4
4
|
key: string;
|
|
5
5
|
value: string;
|
|
@@ -22,8 +22,8 @@ export declare class MsgMessage implements MsgInterface {
|
|
|
22
22
|
get dnt(): boolean | undefined;
|
|
23
23
|
get notes(): MsgNote[];
|
|
24
24
|
addNote(note: MsgNote): void;
|
|
25
|
-
format(data: Record<string, any>, options?: MessageFormatOptions):
|
|
26
|
-
formatToParts(data: Record<string, any>, options?: MessageFormatOptions):
|
|
25
|
+
format(data: Record<string, any>, options?: MessageFormatOptions): string;
|
|
26
|
+
formatToParts(data: Record<string, any>, options?: MessageFormatOptions): import("messageformat").MessagePart<never>[];
|
|
27
27
|
getData(stripNotes?: boolean): {
|
|
28
28
|
key: string;
|
|
29
29
|
value: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MsgMessage.d.ts","sourceRoot":"","sources":["../../../src/classes/MsgMessage/MsgMessage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,KAAK,oBAAoB,EAAE,MAAM,eAAe,CAAC;AACzE,OAAO,EAAE,YAAY,EAAE,KAAK,aAAa,EAAE,KAAK,OAAO,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"MsgMessage.d.ts","sourceRoot":"","sources":["../../../src/classes/MsgMessage/MsgMessage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,KAAK,oBAAoB,EAAE,MAAM,eAAe,CAAC;AACzE,OAAO,EAAE,YAAY,EAAE,KAAK,aAAa,EAAE,KAAK,OAAO,EAAE,MAAM,iCAAiC,CAAC;AAEjG,MAAM,MAAM,cAAc,GAAG;IAC3B,GAAG,EAAE,MAAM,CAAA;IACX,KAAK,EAAE,MAAM,CAAA;IACb,UAAU,CAAC,EAAE,aAAa,CAAC;IAC3B,KAAK,CAAC,EAAE,OAAO,EAAE,CAAA;CAClB,CAAA;AAQD,qBAAa,UAAW,YAAW,YAAY;IAC7C,OAAO,CAAC,IAAI,CAAS;IACrB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,GAAG,CAAC,CAAgB;IAC5B,OAAO,CAAC,WAAW,CAAqC;IACxD,OAAO,CAAC,MAAM,CAAiB;IAE/B,OAAO;IAcP,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,cAAc;IAMlC,IAAW,GAAG,WAEb;IAED,IAAW,KAAK,WAEf;IAED,IAAW,UAAU,kBAEpB;IAED,IAAW,IAAI,uBAEd;IAED,IAAW,GAAG,uBAEb;IAED,IAAW,GAAG,wBAEb;IAED,IAAW,KAAK,cAEf;IAEM,OAAO,CAAC,IAAI,EAAE,OAAO;IAIrB,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,OAAO,CAAC,EAAE,oBAAoB;IAOhE,aAAa,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,OAAO,CAAC,EAAE,oBAAoB;IAOvE,OAAO,CAAC,UAAU,GAAE,OAAe;;;;;;IASnC,QAAQ;IAIR,MAAM,CAAC,UAAU,GAAE,OAAe;CAI1C"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MsgMessage.js","sourceRoot":"","sources":["../../../src/classes/MsgMessage/MsgMessage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAA6B,MAAM,eAAe,CAAC;AAUzE,MAAM,kBAAkB,GAAkB;IACxC,IAAI,EAAE,EAAE;IACR,GAAG,EAAE,EAAE;IACP,GAAG,EAAE,KAAK;CACX,CAAA;AAED,MAAM,OAAO,UAAU;IAOrB,YAAoB,GAAW,EAAE,KAAa,EAAE,UAA0B,EAAE,KAAiB;QAHrF,gBAAW,GAAkB,kBAAkB,CAAC;QAChD,WAAM,GAAc,EAAE,CAAC;QAG7B,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC;QAChB,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QAEpB,0BAA0B;QAC1B,IAAI,CAAC,WAAW,GAAG,UAAU,CAAC,CAAC,CAAC,EAAC,GAAG,IAAI,CAAC,WAAW,EAAE,GAAG,UAAU,EAAC,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC;QAExF,gBAAgB;QAChB,IAAI,KAAK,EAAE;
|
|
1
|
+
{"version":3,"file":"MsgMessage.js","sourceRoot":"","sources":["../../../src/classes/MsgMessage/MsgMessage.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,36 +1,32 @@
|
|
|
1
|
-
import { type MsgResourceData } from "../MsgResource/
|
|
1
|
+
import { type MsgResourceData } from "../MsgResource/MsgResource.js";
|
|
2
2
|
type MsgProjectSettings = {
|
|
3
3
|
name: string;
|
|
4
4
|
version?: number;
|
|
5
5
|
};
|
|
6
|
+
type MsgTargetLocalesSettings = {
|
|
7
|
+
[key: string]: string[];
|
|
8
|
+
};
|
|
6
9
|
type MsgLocalesSettings = {
|
|
7
10
|
sourceLocale: string;
|
|
8
|
-
pseudoLocale
|
|
9
|
-
targetLocales
|
|
10
|
-
};
|
|
11
|
-
type MsgPathsSettings = {
|
|
12
|
-
srcPaths?: string[];
|
|
13
|
-
exportsPath?: string;
|
|
14
|
-
importPath?: string;
|
|
11
|
+
pseudoLocale: string;
|
|
12
|
+
targetLocales: MsgTargetLocalesSettings;
|
|
15
13
|
};
|
|
16
14
|
export type MsgTranslationLoader = (project: string, title: string, lang: string) => Promise<MsgResourceData>;
|
|
17
15
|
export type MsgProjectData = {
|
|
18
16
|
project: MsgProjectSettings;
|
|
19
17
|
locales: MsgLocalesSettings;
|
|
20
|
-
paths: MsgPathsSettings;
|
|
21
18
|
loader: MsgTranslationLoader;
|
|
22
19
|
};
|
|
23
20
|
export declare class MsgProject {
|
|
24
21
|
_project: MsgProjectSettings;
|
|
25
22
|
_locales: MsgLocalesSettings;
|
|
26
|
-
_paths: MsgPathsSettings;
|
|
27
23
|
_loader: MsgTranslationLoader;
|
|
28
24
|
static create(data: MsgProjectData): MsgProject;
|
|
29
25
|
private constructor();
|
|
30
26
|
get project(): MsgProjectSettings;
|
|
31
27
|
get locales(): MsgLocalesSettings;
|
|
32
|
-
get paths(): MsgPathsSettings;
|
|
33
28
|
get loader(): MsgTranslationLoader;
|
|
29
|
+
getTargetLocale(locale: string): string[] | undefined;
|
|
34
30
|
}
|
|
35
31
|
export {};
|
|
36
32
|
//# sourceMappingURL=MsgProject.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MsgProject.d.ts","sourceRoot":"","sources":["../../../src/classes/MsgProject/MsgProject.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"MsgProject.d.ts","sourceRoot":"","sources":["../../../src/classes/MsgProject/MsgProject.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAErE,KAAK,kBAAkB,GAAG;IACxB,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB,CAAC;AAEF,KAAK,wBAAwB,GAAG;IAC9B,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,CAAA;CACxB,CAAA;AAED,KAAK,kBAAkB,GAAG;IACxB,YAAY,EAAE,MAAM,CAAA;IACpB,YAAY,EAAE,MAAM,CAAA;IACpB,aAAa,EAAE,wBAAwB,CAAA;CACxC,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,eAAe,CAAC,CAAC;AAE9G,MAAM,MAAM,cAAc,GAAG;IAC3B,OAAO,EAAE,kBAAkB,CAAA;IAC3B,OAAO,EAAE,kBAAkB,CAAA;IAC3B,MAAM,EAAE,oBAAoB,CAAA;CAC7B,CAAC;AAeF,qBAAa,UAAU;IACrB,QAAQ,EAAE,kBAAkB,CAAC;IAC7B,QAAQ,EAAE,kBAAkB,CAAC;IAC7B,OAAO,EAAE,oBAAoB,CAAC;IAE9B,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,cAAc;IAKlC,OAAO;IAUP,IAAW,OAAO,uBAEjB;IAED,IAAW,OAAO,uBAEjB;IAED,IAAW,MAAM,yBAEhB;IAEM,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,SAAS;CAI7D"}
|
|
@@ -3,24 +3,20 @@ const defaultProjectSettings = {
|
|
|
3
3
|
version: 1
|
|
4
4
|
};
|
|
5
5
|
const defaultLocalesSettings = {
|
|
6
|
-
sourceLocale: '',
|
|
7
|
-
pseudoLocale: '
|
|
8
|
-
targetLocales:
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
srcPaths: ['../../../src'],
|
|
12
|
-
exportsPath: '../xliff/exports',
|
|
13
|
-
importPath: '../xliff/imports'
|
|
6
|
+
sourceLocale: 'en',
|
|
7
|
+
pseudoLocale: 'en-XA',
|
|
8
|
+
targetLocales: {
|
|
9
|
+
en: ['en']
|
|
10
|
+
}
|
|
14
11
|
};
|
|
15
12
|
export class MsgProject {
|
|
16
13
|
static create(data) {
|
|
17
|
-
const { project, locales,
|
|
18
|
-
return new MsgProject(project, locales,
|
|
14
|
+
const { project, locales, loader } = data;
|
|
15
|
+
return new MsgProject(project, locales, loader);
|
|
19
16
|
}
|
|
20
|
-
constructor(projectSettings, localesSettings,
|
|
17
|
+
constructor(projectSettings, localesSettings, loader) {
|
|
21
18
|
this._project = { ...defaultProjectSettings, ...projectSettings };
|
|
22
19
|
this._locales = { ...defaultLocalesSettings, ...localesSettings };
|
|
23
|
-
this._paths = { ...defaultPathsSettings, ...pathsSettings };
|
|
24
20
|
this._loader = loader;
|
|
25
21
|
}
|
|
26
22
|
get project() {
|
|
@@ -29,11 +25,11 @@ export class MsgProject {
|
|
|
29
25
|
get locales() {
|
|
30
26
|
return this._locales;
|
|
31
27
|
}
|
|
32
|
-
get paths() {
|
|
33
|
-
return this._paths;
|
|
34
|
-
}
|
|
35
28
|
get loader() {
|
|
36
29
|
return this._loader;
|
|
37
30
|
}
|
|
31
|
+
getTargetLocale(locale) {
|
|
32
|
+
return this._locales.targetLocales[locale];
|
|
33
|
+
}
|
|
38
34
|
}
|
|
39
35
|
//# sourceMappingURL=MsgProject.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MsgProject.js","sourceRoot":"","sources":["../../../src/classes/MsgProject/MsgProject.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"MsgProject.js","sourceRoot":"","sources":["../../../src/classes/MsgProject/MsgProject.ts"],"names":[],"mappings":"AAyBA,MAAM,sBAAsB,GAAuB;IACjD,IAAI,EAAE,UAAU;IAChB,OAAO,EAAE,CAAC;CACX,CAAC;AAEF,MAAM,sBAAsB,GAAuB;IACjD,YAAY,EAAE,IAAI;IAClB,YAAY,EAAE,OAAO;IACrB,aAAa,EAAE;QACb,EAAE,EAAE,CAAC,IAAI,CAAC;KACX;CACF,CAAC;AAEF,MAAM,OAAO,UAAU;IAKrB,MAAM,CAAC,MAAM,CAAC,IAAoB;QAChC,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;QAC1C,OAAO,IAAI,UAAU,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;IAClD,CAAC;IAED,YACE,eAAmC,EACnC,eAAmC,EACnC,MAA4B;QAE5B,IAAI,CAAC,QAAQ,GAAG,EAAC,GAAG,sBAAsB,EAAE,GAAG,eAAe,EAAC,CAAC;QAChE,IAAI,CAAC,QAAQ,GAAG,EAAC,GAAG,sBAAsB,EAAE,GAAG,eAAe,EAAC,CAAC;QAChE,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;IACxB,CAAC;IAED,IAAW,OAAO;QAChB,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;IAED,IAAW,OAAO;QAChB,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;IAED,IAAW,MAAM;QACf,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAEM,eAAe,CAAC,MAAc;QACnC,OAAO,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;IAC7C,CAAC;CAEF"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { type MsgMessageData, MsgMessage } from "../MsgMessage/
|
|
2
|
-
import { MsgAttributes, MsgInterface, MsgNote } from "../MsgInterface/
|
|
3
|
-
import { MsgProject } from "../MsgProject/
|
|
1
|
+
import { type MsgMessageData, MsgMessage } from "../MsgMessage/MsgMessage.js";
|
|
2
|
+
import { MsgAttributes, MsgInterface, MsgNote } from "../MsgInterface/MsgInterface.js";
|
|
3
|
+
import { MsgProject } from "../MsgProject/MsgProject.js";
|
|
4
4
|
export type MsgResourceData = {
|
|
5
5
|
title: string;
|
|
6
6
|
attributes: MsgAttributes;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MsgResource.d.ts","sourceRoot":"","sources":["../../../src/classes/MsgResource/MsgResource.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,KAAK,cAAc,EAAE,UAAU,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"MsgResource.d.ts","sourceRoot":"","sources":["../../../src/classes/MsgResource/MsgResource.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,KAAK,cAAc,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AAC7E,OAAO,EAAsB,aAAa,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,iCAAiC,CAAC;AAC3G,OAAO,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AAEzD,MAAM,MAAM,eAAe,GAAG;IAC5B,KAAK,EAAE,MAAM,CAAA;IACb,UAAU,EAAE,aAAa,CAAA;IACzB,KAAK,CAAC,EAAE,OAAO,EAAE,CAAA;IACjB,QAAQ,CAAC,EAAE,cAAc,EAAE,CAAA;CAC5B,CAAA;AAED,qBAAa,WAAY,SAAQ,GAAG,CAAC,MAAM,EAAE,UAAU,CAAE,YAAW,YAAY;IAE9E,OAAO,CAAC,WAAW,CAAqC;IACxD,OAAO,CAAC,MAAM,CAAiB;IAC/B,OAAO,CAAC,MAAM,CAAS;IAEvB,OAAO,CAAC,QAAQ,CAAa;IAE7B,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,UAAU;IAgBxD,OAAO;IAaP,IAAW,UAAU,IAIa,aAAa,CAF9C;IAED,IAAW,UAAU,CAAC,UAAU,EAAE,aAAa,EAE9C;IAED,IAAW,KAAK,IAIQ,OAAO,EAAE,CAFhC;IAED,IAAW,KAAK,CAAC,KAAK,EAAE,OAAO,EAAE,EAEhC;IAEM,OAAO,CAAC,IAAI,EAAE,OAAO;IAI5B,IAAW,KAAK,IAIQ,MAAM,CAF7B;IAED,IAAW,KAAK,CAAC,KAAK,EAAE,MAAM,EAE7B;IAEM,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,aAAa,EAAE,KAAK,CAAC,EAAE,OAAO,EAAE;IAc7E,SAAS,CAAC,IAAI,EAAE,eAAe;IAmCzB,cAAc,CAAC,IAAI,EAAE,MAAM;IA0BjC,OAAO,CAAC,UAAU,GAAE,OAAe,GAAG,eAAe;IAarD,MAAM,CAAC,UAAU,GAAE,OAAe;CAI1C"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { MsgMessage } from "../MsgMessage/
|
|
2
|
-
import { DEFAULT_ATTRIBUTES } from "../MsgInterface/
|
|
1
|
+
import { MsgMessage } from "../MsgMessage/MsgMessage.js";
|
|
2
|
+
import { DEFAULT_ATTRIBUTES } from "../MsgInterface/MsgInterface.js";
|
|
3
3
|
export class MsgResource extends Map {
|
|
4
4
|
static create(data, project) {
|
|
5
5
|
const { title, attributes, notes, messages } = data;
|
|
@@ -88,7 +88,23 @@ export class MsgResource extends Map {
|
|
|
88
88
|
return translated;
|
|
89
89
|
}
|
|
90
90
|
async getTranslation(lang) {
|
|
91
|
-
|
|
91
|
+
const project = this._project;
|
|
92
|
+
const languageChain = project.getTargetLocale(lang);
|
|
93
|
+
if (!languageChain) {
|
|
94
|
+
throw new Error("Unsupported locale for resource.");
|
|
95
|
+
}
|
|
96
|
+
if (languageChain.length == 0) {
|
|
97
|
+
throw new Error(`Empty language chain for locale: ${lang}`);
|
|
98
|
+
}
|
|
99
|
+
let translated = this;
|
|
100
|
+
for (let i = 0; i < languageChain.length; i++) {
|
|
101
|
+
const lang = languageChain[i];
|
|
102
|
+
if (lang && project._locales.targetLocales[lang]) {
|
|
103
|
+
translated = await translated._project._loader(project.project.name, translated.title, lang)
|
|
104
|
+
.then(data => translated.translate(data));
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
return translated;
|
|
92
108
|
}
|
|
93
109
|
getData(stripNotes = false) {
|
|
94
110
|
const messages = [];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MsgResource.js","sourceRoot":"","sources":["../../../src/classes/MsgResource/MsgResource.ts"],"names":[],"mappings":"AAAA,OAAO,EAAsB,UAAU,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"MsgResource.js","sourceRoot":"","sources":["../../../src/classes/MsgResource/MsgResource.ts"],"names":[],"mappings":"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"}
|
package/dist/classes/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export * from './MsgMessage/
|
|
2
|
-
export * from './MsgResource/
|
|
3
|
-
export * from './MsgProject/
|
|
1
|
+
export * from './MsgMessage/MsgMessage.js';
|
|
2
|
+
export * from './MsgResource/MsgResource.js';
|
|
3
|
+
export * from './MsgProject/MsgProject.js';
|
|
4
4
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/classes/index.ts"],"names":[],"mappings":"AAAA,cAAc,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/classes/index.ts"],"names":[],"mappings":"AAAA,cAAc,4BAA4B,CAAC;AAC3C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,4BAA4B,CAAC"}
|
package/dist/classes/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export * from './MsgMessage/
|
|
2
|
-
export * from './MsgResource/
|
|
3
|
-
export * from './MsgProject/
|
|
1
|
+
export * from './MsgMessage/MsgMessage.js';
|
|
2
|
+
export * from './MsgResource/MsgResource.js';
|
|
3
|
+
export * from './MsgProject/MsgProject.js';
|
|
4
4
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/classes/index.ts"],"names":[],"mappings":"AAAA,cAAc,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/classes/index.ts"],"names":[],"mappings":"AAAA,cAAc,4BAA4B,CAAC;AAC3C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,4BAA4B,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,16 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@worldware/msg",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.5.1",
|
|
4
4
|
"description": "Message localization tooling",
|
|
5
|
+
"license": "MIT",
|
|
6
|
+
"author": "Joel Sahleen",
|
|
7
|
+
"repository": {
|
|
8
|
+
"type": "git",
|
|
9
|
+
"url": "https://github.com/worldware-studios/msg"
|
|
10
|
+
},
|
|
11
|
+
"bugs": {
|
|
12
|
+
"url": "https://github.com/worldware-studios/msg/issues"
|
|
13
|
+
},
|
|
5
14
|
"main": "dist/index.js",
|
|
6
15
|
"type": "module",
|
|
7
16
|
"types": "dist/index.d.ts",
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/classes/MsgInterface/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/classes/MsgInterface/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/classes/MsgMessage/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/classes/MsgMessage/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/classes/MsgProject/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/classes/MsgProject/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/classes/MsgResource/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/classes/MsgResource/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC"}
|