@digitaldefiance/i18n-lib 1.3.27 → 2.0.2
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 +402 -2262
- package/package.json +5 -1
- package/src/active-context.d.ts +2 -2
- package/src/active-context.d.ts.map +1 -1
- package/src/builders/i18n-builder.d.ts +24 -0
- package/src/builders/i18n-builder.d.ts.map +1 -0
- package/src/builders/i18n-builder.js +62 -0
- package/src/builders/i18n-builder.js.map +1 -0
- package/src/builders/index.d.ts +5 -0
- package/src/builders/index.d.ts.map +1 -0
- package/src/builders/index.js +8 -0
- package/src/builders/index.js.map +1 -0
- package/src/core/component-store.d.ts +20 -0
- package/src/core/component-store.d.ts.map +1 -0
- package/src/core/component-store.js +105 -0
- package/src/core/component-store.js.map +1 -0
- package/src/core/context-manager.d.ts +20 -0
- package/src/core/context-manager.d.ts.map +1 -0
- package/src/core/context-manager.js +50 -0
- package/src/core/context-manager.js.map +1 -0
- package/src/core/enum-registry.d.ts +14 -0
- package/src/core/enum-registry.d.ts.map +1 -0
- package/src/core/enum-registry.js +48 -0
- package/src/core/enum-registry.js.map +1 -0
- package/src/core/i18n-engine.d.ts +44 -0
- package/src/core/i18n-engine.d.ts.map +1 -0
- package/src/core/i18n-engine.js +192 -0
- package/src/core/i18n-engine.js.map +1 -0
- package/src/core/index.d.ts +9 -0
- package/src/core/index.d.ts.map +1 -0
- package/src/core/index.js +12 -0
- package/src/core/index.js.map +1 -0
- package/src/core/language-registry.d.ts +41 -0
- package/src/core/language-registry.d.ts.map +1 -0
- package/src/core/language-registry.js +157 -0
- package/src/core/language-registry.js.map +1 -0
- package/src/core-i18n.d.ts +4 -0
- package/src/core-i18n.d.ts.map +1 -1
- package/src/core-i18n.js +119 -4
- package/src/core-i18n.js.map +1 -1
- package/src/core-string-key.d.ts +10 -1
- package/src/core-string-key.d.ts.map +1 -1
- package/src/core-string-key.js +10 -0
- package/src/core-string-key.js.map +1 -1
- package/src/create-translation-adapter.d.ts +15 -3
- package/src/create-translation-adapter.d.ts.map +1 -1
- package/src/create-translation-adapter.js +44 -9
- package/src/create-translation-adapter.js.map +1 -1
- package/src/{context-error.d.ts → errors/context-error.d.ts} +1 -1
- package/src/errors/context-error.d.ts.map +1 -0
- package/src/errors/context-error.js +21 -0
- package/src/errors/context-error.js.map +1 -0
- package/src/{handleable.d.ts → errors/handleable.d.ts} +2 -2
- package/src/errors/handleable.d.ts.map +1 -0
- package/src/errors/handleable.js.map +1 -0
- package/src/errors/i18n-error.d.ts +32 -0
- package/src/errors/i18n-error.d.ts.map +1 -0
- package/src/errors/i18n-error.js +61 -0
- package/src/errors/i18n-error.js.map +1 -0
- package/src/errors/index.d.ts +5 -0
- package/src/errors/index.d.ts.map +1 -0
- package/src/errors/index.js +8 -0
- package/src/errors/index.js.map +1 -0
- package/src/{plugin-translatable-generic-error.d.ts → errors/plugin-translatable-generic.d.ts} +7 -7
- package/src/errors/plugin-translatable-generic.d.ts.map +1 -0
- package/src/{plugin-translatable-generic-error.js → errors/plugin-translatable-generic.js} +2 -3
- package/src/errors/plugin-translatable-generic.js.map +1 -0
- package/src/{plugin-translatable-handleable-generic.d.ts → errors/plugin-translatable-handleable-generic.d.ts} +4 -4
- package/src/errors/plugin-translatable-handleable-generic.d.ts.map +1 -0
- package/src/{plugin-translatable-handleable-generic.js → errors/plugin-translatable-handleable-generic.js} +2 -2
- package/src/errors/plugin-translatable-handleable-generic.js.map +1 -0
- package/src/errors/plugin-typed-handleable.d.ts +14 -0
- package/src/errors/plugin-typed-handleable.d.ts.map +1 -0
- package/src/{plugin-typed-handleable.js → errors/plugin-typed-handleable.js} +4 -4
- package/src/errors/plugin-typed-handleable.js.map +1 -0
- package/src/errors/translatable.d.ts +4 -0
- package/src/errors/translatable.d.ts.map +1 -0
- package/src/{translatable.js → errors/translatable.js} +4 -2
- package/src/errors/translatable.js.map +1 -0
- package/src/errors/typed-handleable.d.ts +13 -0
- package/src/errors/typed-handleable.d.ts.map +1 -0
- package/src/{typed-handleable.js → errors/typed-handleable.js} +8 -7
- package/src/errors/typed-handleable.js.map +1 -0
- package/src/{typed-error.d.ts → errors/typed.d.ts} +13 -15
- package/src/errors/typed.d.ts.map +1 -0
- package/src/{typed-error.js → errors/typed.js} +27 -23
- package/src/errors/typed.js.map +1 -0
- package/src/global-active-context.d.ts +4 -5
- package/src/global-active-context.d.ts.map +1 -1
- package/src/global-active-context.js +4 -4
- package/src/global-active-context.js.map +1 -1
- package/src/index.d.ts +16 -32
- package/src/index.d.ts.map +1 -1
- package/src/index.js +30 -37
- package/src/index.js.map +1 -1
- package/src/interfaces/component-config.interface.d.ts +9 -0
- package/src/interfaces/component-config.interface.d.ts.map +1 -0
- package/src/interfaces/component-config.interface.js +6 -0
- package/src/interfaces/component-config.interface.js.map +1 -0
- package/src/interfaces/engine-config.interface.d.ts +13 -0
- package/src/interfaces/engine-config.interface.d.ts.map +1 -0
- package/src/interfaces/engine-config.interface.js +6 -0
- package/src/interfaces/engine-config.interface.js.map +1 -0
- package/src/{i-global-active-context.d.ts → interfaces/global-active-context.d.ts} +5 -5
- package/src/interfaces/global-active-context.d.ts.map +1 -0
- package/src/{currency-format.js → interfaces/global-active-context.js} +1 -1
- package/src/interfaces/global-active-context.js.map +1 -0
- package/src/{i-handleable-error-options.d.ts → interfaces/handleable-error-options.d.ts} +1 -1
- package/src/interfaces/handleable-error-options.d.ts.map +1 -0
- package/src/{i-global-active-context.js → interfaces/handleable-error-options.js} +1 -1
- package/src/interfaces/handleable-error-options.js.map +1 -0
- package/src/{i-handleable.d.ts → interfaces/handleable.d.ts} +1 -1
- package/src/interfaces/handleable.d.ts.map +1 -0
- package/src/{i18n-config.js → interfaces/handleable.js} +1 -1
- package/src/interfaces/handleable.js.map +1 -0
- package/src/interfaces/i18n-engine.interface.d.ts +25 -0
- package/src/interfaces/i18n-engine.interface.d.ts.map +1 -0
- package/src/interfaces/i18n-engine.interface.js +6 -0
- package/src/interfaces/i18n-engine.interface.js.map +1 -0
- package/src/interfaces/index.d.ts +11 -0
- package/src/interfaces/index.d.ts.map +1 -0
- package/src/interfaces/index.js +14 -0
- package/src/interfaces/index.js.map +1 -0
- package/src/interfaces/language-definition.interface.d.ts +10 -0
- package/src/interfaces/language-definition.interface.d.ts.map +1 -0
- package/src/interfaces/language-definition.interface.js +6 -0
- package/src/interfaces/language-definition.interface.js.map +1 -0
- package/src/interfaces/translation-options.interface.d.ts +9 -0
- package/src/interfaces/translation-options.interface.d.ts.map +1 -0
- package/src/interfaces/translation-options.interface.js +6 -0
- package/src/interfaces/translation-options.interface.js.map +1 -0
- package/src/interfaces/validation-result.interface.d.ts +14 -0
- package/src/interfaces/validation-result.interface.d.ts.map +1 -0
- package/src/interfaces/validation-result.interface.js +6 -0
- package/src/interfaces/validation-result.interface.js.map +1 -0
- package/src/plugin-i18n-engine.d.ts.map +1 -1
- package/src/plugin-i18n-engine.js +19 -7
- package/src/plugin-i18n-engine.js.map +1 -1
- package/src/registry-config.d.ts +2 -2
- package/src/registry-config.d.ts.map +1 -1
- package/src/registry-error.d.ts +1 -1
- package/src/registry-error.d.ts.map +1 -1
- package/src/registry-error.js +3 -2
- package/src/registry-error.js.map +1 -1
- package/src/translation-engine.d.ts +2 -2
- package/src/translation-engine.d.ts.map +1 -1
- package/src/utils/currency.d.ts +19 -0
- package/src/utils/currency.d.ts.map +1 -0
- package/src/{currency.js → utils/currency.js} +25 -14
- package/src/utils/currency.js.map +1 -0
- package/src/utils/index.d.ts +7 -0
- package/src/utils/index.d.ts.map +1 -0
- package/src/utils/index.js +10 -0
- package/src/utils/index.js.map +1 -0
- package/src/utils/string-utils.d.ts +6 -0
- package/src/utils/string-utils.d.ts.map +1 -0
- package/src/utils/string-utils.js +34 -0
- package/src/utils/string-utils.js.map +1 -0
- package/src/utils/timezone.d.ts +13 -0
- package/src/utils/timezone.d.ts.map +1 -0
- package/src/utils/timezone.js +35 -0
- package/src/utils/timezone.js.map +1 -0
- package/src/context-error.d.ts.map +0 -1
- package/src/context-error.js +0 -18
- package/src/context-error.js.map +0 -1
- package/src/context-manager.d.ts +0 -34
- package/src/context-manager.d.ts.map +0 -1
- package/src/context-manager.js +0 -60
- package/src/context-manager.js.map +0 -1
- package/src/context.d.ts +0 -45
- package/src/context.d.ts.map +0 -1
- package/src/context.js +0 -70
- package/src/context.js.map +0 -1
- package/src/currency-code.d.ts +0 -20
- package/src/currency-code.d.ts.map +0 -1
- package/src/currency-code.js +0 -37
- package/src/currency-code.js.map +0 -1
- package/src/currency-format.d.ts +0 -11
- package/src/currency-format.d.ts.map +0 -1
- package/src/currency-format.js.map +0 -1
- package/src/currency.d.ts +0 -12
- package/src/currency.d.ts.map +0 -1
- package/src/currency.js.map +0 -1
- package/src/default-config.d.ts +0 -33
- package/src/default-config.d.ts.map +0 -1
- package/src/default-config.js +0 -131
- package/src/default-config.js.map +0 -1
- package/src/handleable.d.ts.map +0 -1
- package/src/handleable.js.map +0 -1
- package/src/i-global-active-context.d.ts.map +0 -1
- package/src/i-global-active-context.js.map +0 -1
- package/src/i-handleable-error-options.d.ts.map +0 -1
- package/src/i-handleable-error-options.js +0 -3
- package/src/i-handleable-error-options.js.map +0 -1
- package/src/i-handleable.d.ts.map +0 -1
- package/src/i-handleable.js +0 -3
- package/src/i-handleable.js.map +0 -1
- package/src/i18n-config.d.ts +0 -21
- package/src/i18n-config.d.ts.map +0 -1
- package/src/i18n-config.js.map +0 -1
- package/src/i18n-context.d.ts +0 -15
- package/src/i18n-context.d.ts.map +0 -1
- package/src/i18n-context.js +0 -3
- package/src/i18n-context.js.map +0 -1
- package/src/i18n-engine.d.ts +0 -179
- package/src/i18n-engine.d.ts.map +0 -1
- package/src/i18n-engine.js +0 -355
- package/src/i18n-engine.js.map +0 -1
- package/src/language-registry.d.ts +0 -114
- package/src/language-registry.d.ts.map +0 -1
- package/src/language-registry.js +0 -218
- package/src/language-registry.js.map +0 -1
- package/src/plugin-translatable-generic-error.d.ts.map +0 -1
- package/src/plugin-translatable-generic-error.js.map +0 -1
- package/src/plugin-translatable-handleable-generic.d.ts.map +0 -1
- package/src/plugin-translatable-handleable-generic.js.map +0 -1
- package/src/plugin-typed-handleable.d.ts +0 -15
- package/src/plugin-typed-handleable.d.ts.map +0 -1
- package/src/plugin-typed-handleable.js.map +0 -1
- package/src/timezone.d.ts +0 -12
- package/src/timezone.d.ts.map +0 -1
- package/src/timezone.js +0 -24
- package/src/timezone.js.map +0 -1
- package/src/translatable.d.ts +0 -6
- package/src/translatable.d.ts.map +0 -1
- package/src/translatable.js.map +0 -1
- package/src/typed-error.d.ts.map +0 -1
- package/src/typed-error.js.map +0 -1
- package/src/typed-handleable.d.ts +0 -15
- package/src/typed-handleable.d.ts.map +0 -1
- package/src/typed-handleable.js.map +0 -1
- package/src/unified-translator.d.ts +0 -31
- package/src/unified-translator.d.ts.map +0 -1
- package/src/unified-translator.js +0 -71
- package/src/unified-translator.js.map +0 -1
- /package/src/{handleable.js → errors/handleable.js} +0 -0
package/package.json
CHANGED
|
@@ -1,12 +1,16 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@digitaldefiance/i18n-lib",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "2.0.2",
|
|
4
4
|
"description": "i18n library with enum translation support",
|
|
5
5
|
"main": "src/index.js",
|
|
6
6
|
"types": "src/index.d.ts",
|
|
7
7
|
"scripts": {
|
|
8
8
|
"build": "npx nx build digitaldefiance-i18n-lib",
|
|
9
|
+
"build:stream": "npx nx build --outputStyle=stream digitaldefiance-i18n-lib",
|
|
10
|
+
"build:logged": "npx nx build --outputStyle=stream digitaldefiance-i18n-lib 2>&1 | ansifilter -o build.log",
|
|
9
11
|
"test": "npx nx test digitaldefiance-i18n-lib",
|
|
12
|
+
"test:stream": "npx nx test --outputStyle=stream digitaldefiance-i18n-lib",
|
|
13
|
+
"test:logged": "npx nx test --skip-nx-cache --outputStyle=stream digitaldefiance-i18n-lib 2>&1 | ansifilter -o test.log",
|
|
10
14
|
"lint": "npx nx lint digitaldefiance-i18n-lib",
|
|
11
15
|
"lint:fix": "npx nx lint digitaldefiance-i18n-lib --fix",
|
|
12
16
|
"prettier:check": "prettier --check 'src/**/*.{ts,tsx}' 'tests/**/*.{ts,tsx}'",
|
package/src/active-context.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { CurrencyCode } from './currency
|
|
2
|
-
import { Timezone } from './timezone';
|
|
1
|
+
import { CurrencyCode } from './utils/currency';
|
|
2
|
+
import { Timezone } from './utils/timezone';
|
|
3
3
|
import { LanguageContextSpace } from './types';
|
|
4
4
|
export interface IActiveContext<TLanguage extends string> {
|
|
5
5
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"active-context.d.ts","sourceRoot":"","sources":["../../../../packages/digitaldefiance-i18n-lib/src/active-context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"active-context.d.ts","sourceRoot":"","sources":["../../../../packages/digitaldefiance-i18n-lib/src/active-context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAC;AAE/C,MAAM,WAAW,cAAc,CAAC,SAAS,SAAS,MAAM;IACtD;;OAEG;IACH,QAAQ,EAAE,SAAS,CAAC;IACpB;;OAEG;IACH,aAAa,EAAE,SAAS,CAAC;IACzB;;OAEG;IACH,YAAY,EAAE,YAAY,CAAC;IAC3B;;OAEG;IACH,cAAc,EAAE,oBAAoB,CAAC;IACrC;;OAEG;IACH,QAAQ,EAAE,QAAQ,CAAC;IACnB;;OAEG;IACH,aAAa,EAAE,QAAQ,CAAC;CACzB"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Fluent builder for I18n Engine
|
|
3
|
+
*/
|
|
4
|
+
import { EngineConfig, LanguageDefinition } from '../interfaces';
|
|
5
|
+
import { I18nEngine } from '../core/i18n-engine';
|
|
6
|
+
export declare class I18nBuilder {
|
|
7
|
+
private languages;
|
|
8
|
+
private config;
|
|
9
|
+
private instanceKey?;
|
|
10
|
+
private registerInstance;
|
|
11
|
+
private setAsDefault;
|
|
12
|
+
private constructor();
|
|
13
|
+
static create(): I18nBuilder;
|
|
14
|
+
withLanguages(languages: readonly LanguageDefinition[]): this;
|
|
15
|
+
withDefaultLanguage(languageId: string): this;
|
|
16
|
+
withFallbackLanguage(languageId: string): this;
|
|
17
|
+
withConstants(constants: Record<string, any>): this;
|
|
18
|
+
withValidation(validation: EngineConfig['validation']): this;
|
|
19
|
+
withInstanceKey(key: string): this;
|
|
20
|
+
isolated(): this;
|
|
21
|
+
asDefault(): this;
|
|
22
|
+
build(): I18nEngine;
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=i18n-builder.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"i18n-builder.d.ts","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-i18n-lib/src/builders/i18n-builder.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACjE,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAEjD,qBAAa,WAAW;IACtB,OAAO,CAAC,SAAS,CAA4B;IAC7C,OAAO,CAAC,MAAM,CAAoB;IAClC,OAAO,CAAC,WAAW,CAAC,CAAS;IAC7B,OAAO,CAAC,gBAAgB,CAAQ;IAChC,OAAO,CAAC,YAAY,CAAQ;IAE5B,OAAO;IAEP,MAAM,CAAC,MAAM,IAAI,WAAW;IAI5B,aAAa,CAAC,SAAS,EAAE,SAAS,kBAAkB,EAAE,GAAG,IAAI;IAK7D,mBAAmB,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI;IAK7C,oBAAoB,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI;IAK9C,aAAa,CAAC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI;IAKnD,cAAc,CAAC,UAAU,EAAE,YAAY,CAAC,YAAY,CAAC,GAAG,IAAI;IAK5D,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAKlC,QAAQ,IAAI,IAAI;IAKhB,SAAS,IAAI,IAAI;IAKjB,KAAK,IAAI,UAAU;CAWpB"}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Fluent builder for I18n Engine
|
|
4
|
+
*/
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.I18nBuilder = void 0;
|
|
7
|
+
const i18n_engine_1 = require("../core/i18n-engine");
|
|
8
|
+
class I18nBuilder {
|
|
9
|
+
languages = [];
|
|
10
|
+
config = {};
|
|
11
|
+
instanceKey;
|
|
12
|
+
registerInstance = true;
|
|
13
|
+
setAsDefault = true;
|
|
14
|
+
constructor() { }
|
|
15
|
+
static create() {
|
|
16
|
+
return new I18nBuilder();
|
|
17
|
+
}
|
|
18
|
+
withLanguages(languages) {
|
|
19
|
+
this.languages = [...languages];
|
|
20
|
+
return this;
|
|
21
|
+
}
|
|
22
|
+
withDefaultLanguage(languageId) {
|
|
23
|
+
this.config.defaultLanguage = languageId;
|
|
24
|
+
return this;
|
|
25
|
+
}
|
|
26
|
+
withFallbackLanguage(languageId) {
|
|
27
|
+
this.config.fallbackLanguage = languageId;
|
|
28
|
+
return this;
|
|
29
|
+
}
|
|
30
|
+
withConstants(constants) {
|
|
31
|
+
this.config.constants = constants;
|
|
32
|
+
return this;
|
|
33
|
+
}
|
|
34
|
+
withValidation(validation) {
|
|
35
|
+
this.config.validation = validation;
|
|
36
|
+
return this;
|
|
37
|
+
}
|
|
38
|
+
withInstanceKey(key) {
|
|
39
|
+
this.instanceKey = key;
|
|
40
|
+
return this;
|
|
41
|
+
}
|
|
42
|
+
isolated() {
|
|
43
|
+
this.registerInstance = false;
|
|
44
|
+
return this;
|
|
45
|
+
}
|
|
46
|
+
asDefault() {
|
|
47
|
+
this.setAsDefault = true;
|
|
48
|
+
return this;
|
|
49
|
+
}
|
|
50
|
+
build() {
|
|
51
|
+
if (this.languages.length === 0) {
|
|
52
|
+
throw new Error('At least one language must be provided');
|
|
53
|
+
}
|
|
54
|
+
return new i18n_engine_1.I18nEngine(this.languages, this.config, {
|
|
55
|
+
instanceKey: this.instanceKey,
|
|
56
|
+
registerInstance: this.registerInstance,
|
|
57
|
+
setAsDefault: this.setAsDefault,
|
|
58
|
+
});
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
exports.I18nBuilder = I18nBuilder;
|
|
62
|
+
//# sourceMappingURL=i18n-builder.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"i18n-builder.js","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-i18n-lib/src/builders/i18n-builder.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAGH,qDAAiD;AAEjD,MAAa,WAAW;IACd,SAAS,GAAyB,EAAE,CAAC;IACrC,MAAM,GAAiB,EAAE,CAAC;IAC1B,WAAW,CAAU;IACrB,gBAAgB,GAAG,IAAI,CAAC;IACxB,YAAY,GAAG,IAAI,CAAC;IAE5B,gBAAuB,CAAC;IAExB,MAAM,CAAC,MAAM;QACX,OAAO,IAAI,WAAW,EAAE,CAAC;IAC3B,CAAC;IAED,aAAa,CAAC,SAAwC;QACpD,IAAI,CAAC,SAAS,GAAG,CAAC,GAAG,SAAS,CAAC,CAAC;QAChC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,mBAAmB,CAAC,UAAkB;QACpC,IAAI,CAAC,MAAM,CAAC,eAAe,GAAG,UAAU,CAAC;QACzC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,oBAAoB,CAAC,UAAkB;QACrC,IAAI,CAAC,MAAM,CAAC,gBAAgB,GAAG,UAAU,CAAC;QAC1C,OAAO,IAAI,CAAC;IACd,CAAC;IAED,aAAa,CAAC,SAA8B;QAC1C,IAAI,CAAC,MAAM,CAAC,SAAS,GAAG,SAAS,CAAC;QAClC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,cAAc,CAAC,UAAsC;QACnD,IAAI,CAAC,MAAM,CAAC,UAAU,GAAG,UAAU,CAAC;QACpC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,eAAe,CAAC,GAAW;QACzB,IAAI,CAAC,WAAW,GAAG,GAAG,CAAC;QACvB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,QAAQ;QACN,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC;QAC9B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,SAAS;QACP,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QACzB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,KAAK;QACH,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAChC,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;QAC5D,CAAC;QAED,OAAO,IAAI,wBAAU,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,MAAM,EAAE;YACjD,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;YACvC,YAAY,EAAE,IAAI,CAAC,YAAY;SAChC,CAAC,CAAC;IACL,CAAC;CACF;AAhED,kCAgEC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-i18n-lib/src/builders/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,cAAc,gBAAgB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-i18n-lib/src/builders/index.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAEH,yDAA+B"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Component storage (no generics)
|
|
3
|
+
*/
|
|
4
|
+
import { ComponentConfig, ValidationResult } from '../interfaces';
|
|
5
|
+
export declare class ComponentStore {
|
|
6
|
+
private components;
|
|
7
|
+
private aliasMap;
|
|
8
|
+
private constants?;
|
|
9
|
+
constructor(constants?: Record<string, any>);
|
|
10
|
+
register(config: ComponentConfig): ValidationResult;
|
|
11
|
+
update(componentId: string, strings: Record<string, Record<string, string>>): ValidationResult;
|
|
12
|
+
has(componentId: string): boolean;
|
|
13
|
+
get(componentId: string): ComponentConfig;
|
|
14
|
+
getAll(): readonly ComponentConfig[];
|
|
15
|
+
translate(componentId: string, key: string, variables?: Record<string, any>, language?: string): string;
|
|
16
|
+
safeTranslate(componentId: string, key: string, variables?: Record<string, any>, language?: string): string;
|
|
17
|
+
private validate;
|
|
18
|
+
clear(): void;
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=component-store.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"component-store.d.ts","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-i18n-lib/src/core/component-store.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAGlE,qBAAa,cAAc;IACzB,OAAO,CAAC,UAAU,CAAsC;IACxD,OAAO,CAAC,QAAQ,CAA6B;IAC7C,OAAO,CAAC,SAAS,CAAC,CAAsB;gBAE5B,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;IAI3C,QAAQ,CAAC,MAAM,EAAE,eAAe,GAAG,gBAAgB;IAkBnD,MAAM,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,GAAG,gBAAgB;IAe9F,GAAG,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO;IAIjC,GAAG,CAAC,WAAW,EAAE,MAAM,GAAG,eAAe;IASzC,MAAM,IAAI,SAAS,eAAe,EAAE;IAIpC,SAAS,CACP,WAAW,EAAE,MAAM,EACnB,GAAG,EAAE,MAAM,EACX,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAC/B,QAAQ,CAAC,EAAE,MAAM,GAChB,MAAM;IAgBT,aAAa,CACX,WAAW,EAAE,MAAM,EACnB,GAAG,EAAE,MAAM,EACX,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAC/B,QAAQ,CAAC,EAAE,MAAM,GAChB,MAAM;IAQT,OAAO,CAAC,QAAQ;IA2BhB,KAAK,IAAI,IAAI;CAId"}
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Component storage (no generics)
|
|
4
|
+
*/
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.ComponentStore = void 0;
|
|
7
|
+
const errors_1 = require("../errors");
|
|
8
|
+
const utils_1 = require("../utils");
|
|
9
|
+
class ComponentStore {
|
|
10
|
+
components = new Map();
|
|
11
|
+
aliasMap = new Map();
|
|
12
|
+
constants;
|
|
13
|
+
constructor(constants) {
|
|
14
|
+
this.constants = constants;
|
|
15
|
+
}
|
|
16
|
+
register(config) {
|
|
17
|
+
if (this.components.has(config.id)) {
|
|
18
|
+
throw errors_1.I18nError.duplicateComponent(config.id);
|
|
19
|
+
}
|
|
20
|
+
const validation = this.validate(config);
|
|
21
|
+
this.components.set(config.id, config);
|
|
22
|
+
// Register aliases
|
|
23
|
+
if (config.aliases) {
|
|
24
|
+
for (const alias of config.aliases) {
|
|
25
|
+
this.aliasMap.set(alias, config.id);
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
return validation;
|
|
29
|
+
}
|
|
30
|
+
update(componentId, strings) {
|
|
31
|
+
const existing = this.components.get(componentId);
|
|
32
|
+
if (!existing) {
|
|
33
|
+
throw errors_1.I18nError.componentNotFound(componentId);
|
|
34
|
+
}
|
|
35
|
+
const updated = {
|
|
36
|
+
...existing,
|
|
37
|
+
strings: { ...existing.strings, ...strings },
|
|
38
|
+
};
|
|
39
|
+
this.components.set(componentId, updated);
|
|
40
|
+
return this.validate(updated);
|
|
41
|
+
}
|
|
42
|
+
has(componentId) {
|
|
43
|
+
return this.components.has(componentId) || this.aliasMap.has(componentId);
|
|
44
|
+
}
|
|
45
|
+
get(componentId) {
|
|
46
|
+
const id = this.aliasMap.get(componentId) || componentId;
|
|
47
|
+
const component = this.components.get(id);
|
|
48
|
+
if (!component) {
|
|
49
|
+
throw errors_1.I18nError.componentNotFound(componentId);
|
|
50
|
+
}
|
|
51
|
+
return component;
|
|
52
|
+
}
|
|
53
|
+
getAll() {
|
|
54
|
+
return Array.from(this.components.values());
|
|
55
|
+
}
|
|
56
|
+
translate(componentId, key, variables, language) {
|
|
57
|
+
const component = this.get(componentId);
|
|
58
|
+
const langStrings = component.strings[language || 'en-US'];
|
|
59
|
+
if (!langStrings) {
|
|
60
|
+
throw errors_1.I18nError.languageNotFound(language || 'en-US');
|
|
61
|
+
}
|
|
62
|
+
const translation = langStrings[key];
|
|
63
|
+
if (!translation) {
|
|
64
|
+
throw errors_1.I18nError.translationMissing(componentId, key, language || 'en-US');
|
|
65
|
+
}
|
|
66
|
+
return (0, utils_1.replaceVariables)(translation, variables, this.constants);
|
|
67
|
+
}
|
|
68
|
+
safeTranslate(componentId, key, variables, language) {
|
|
69
|
+
try {
|
|
70
|
+
return this.translate(componentId, key, variables, language);
|
|
71
|
+
}
|
|
72
|
+
catch {
|
|
73
|
+
return `[${componentId}.${key}]`;
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
validate(config) {
|
|
77
|
+
const errors = [];
|
|
78
|
+
const warnings = [];
|
|
79
|
+
// Check if all languages have all keys
|
|
80
|
+
const allKeys = new Set();
|
|
81
|
+
for (const langStrings of Object.values(config.strings)) {
|
|
82
|
+
for (const key of Object.keys(langStrings)) {
|
|
83
|
+
allKeys.add(key);
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
for (const [lang, langStrings] of Object.entries(config.strings)) {
|
|
87
|
+
for (const key of allKeys) {
|
|
88
|
+
if (!langStrings[key]) {
|
|
89
|
+
warnings.push(`Missing key '${key}' for language '${lang}' in component '${config.id}'`);
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
return {
|
|
94
|
+
isValid: errors.length === 0,
|
|
95
|
+
errors,
|
|
96
|
+
warnings,
|
|
97
|
+
};
|
|
98
|
+
}
|
|
99
|
+
clear() {
|
|
100
|
+
this.components.clear();
|
|
101
|
+
this.aliasMap.clear();
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
exports.ComponentStore = ComponentStore;
|
|
105
|
+
//# sourceMappingURL=component-store.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"component-store.js","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-i18n-lib/src/core/component-store.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Simplified context management
|
|
3
|
+
*/
|
|
4
|
+
export interface Context {
|
|
5
|
+
language: string;
|
|
6
|
+
adminLanguage: string;
|
|
7
|
+
currentSpace: 'admin' | 'user';
|
|
8
|
+
}
|
|
9
|
+
export declare class ContextManager {
|
|
10
|
+
private contexts;
|
|
11
|
+
create(instanceKey: string, defaultLanguage: string): Context;
|
|
12
|
+
get(instanceKey: string): Context;
|
|
13
|
+
setLanguage(instanceKey: string, language: string): void;
|
|
14
|
+
setAdminLanguage(instanceKey: string, language: string): void;
|
|
15
|
+
switchToAdmin(instanceKey: string): void;
|
|
16
|
+
switchToUser(instanceKey: string): void;
|
|
17
|
+
getCurrentLanguage(instanceKey: string): string;
|
|
18
|
+
clear(): void;
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=context-manager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"context-manager.d.ts","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-i18n-lib/src/core/context-manager.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,WAAW,OAAO;IACtB,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,OAAO,GAAG,MAAM,CAAC;CAChC;AAED,qBAAa,cAAc;IACzB,OAAO,CAAC,QAAQ,CAA8B;IAE9C,MAAM,CAAC,WAAW,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,GAAG,OAAO;IAU7D,GAAG,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO;IAQjC,WAAW,CAAC,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI;IAKxD,gBAAgB,CAAC,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI;IAK7D,aAAa,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI;IAKxC,YAAY,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI;IAKvC,kBAAkB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM;IAK/C,KAAK,IAAI,IAAI;CAGd"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Simplified context management
|
|
4
|
+
*/
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.ContextManager = void 0;
|
|
7
|
+
class ContextManager {
|
|
8
|
+
contexts = new Map();
|
|
9
|
+
create(instanceKey, defaultLanguage) {
|
|
10
|
+
const context = {
|
|
11
|
+
language: defaultLanguage,
|
|
12
|
+
adminLanguage: defaultLanguage,
|
|
13
|
+
currentSpace: 'user',
|
|
14
|
+
};
|
|
15
|
+
this.contexts.set(instanceKey, context);
|
|
16
|
+
return context;
|
|
17
|
+
}
|
|
18
|
+
get(instanceKey) {
|
|
19
|
+
const context = this.contexts.get(instanceKey);
|
|
20
|
+
if (!context) {
|
|
21
|
+
throw new Error(`Context '${instanceKey}' not found`);
|
|
22
|
+
}
|
|
23
|
+
return context;
|
|
24
|
+
}
|
|
25
|
+
setLanguage(instanceKey, language) {
|
|
26
|
+
const context = this.get(instanceKey);
|
|
27
|
+
context.language = language;
|
|
28
|
+
}
|
|
29
|
+
setAdminLanguage(instanceKey, language) {
|
|
30
|
+
const context = this.get(instanceKey);
|
|
31
|
+
context.adminLanguage = language;
|
|
32
|
+
}
|
|
33
|
+
switchToAdmin(instanceKey) {
|
|
34
|
+
const context = this.get(instanceKey);
|
|
35
|
+
context.currentSpace = 'admin';
|
|
36
|
+
}
|
|
37
|
+
switchToUser(instanceKey) {
|
|
38
|
+
const context = this.get(instanceKey);
|
|
39
|
+
context.currentSpace = 'user';
|
|
40
|
+
}
|
|
41
|
+
getCurrentLanguage(instanceKey) {
|
|
42
|
+
const context = this.get(instanceKey);
|
|
43
|
+
return context.currentSpace === 'admin' ? context.adminLanguage : context.language;
|
|
44
|
+
}
|
|
45
|
+
clear() {
|
|
46
|
+
this.contexts.clear();
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
exports.ContextManager = ContextManager;
|
|
50
|
+
//# sourceMappingURL=context-manager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"context-manager.js","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-i18n-lib/src/core/context-manager.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAQH,MAAa,cAAc;IACjB,QAAQ,GAAG,IAAI,GAAG,EAAmB,CAAC;IAE9C,MAAM,CAAC,WAAmB,EAAE,eAAuB;QACjD,MAAM,OAAO,GAAY;YACvB,QAAQ,EAAE,eAAe;YACzB,aAAa,EAAE,eAAe;YAC9B,YAAY,EAAE,MAAM;SACrB,CAAC;QACF,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;QACxC,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,GAAG,CAAC,WAAmB;QACrB,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QAC/C,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,IAAI,KAAK,CAAC,YAAY,WAAW,aAAa,CAAC,CAAC;QACxD,CAAC;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,WAAW,CAAC,WAAmB,EAAE,QAAgB;QAC/C,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QACtC,OAAO,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC9B,CAAC;IAED,gBAAgB,CAAC,WAAmB,EAAE,QAAgB;QACpD,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QACtC,OAAO,CAAC,aAAa,GAAG,QAAQ,CAAC;IACnC,CAAC;IAED,aAAa,CAAC,WAAmB;QAC/B,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QACtC,OAAO,CAAC,YAAY,GAAG,OAAO,CAAC;IACjC,CAAC;IAED,YAAY,CAAC,WAAmB;QAC9B,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QACtC,OAAO,CAAC,YAAY,GAAG,MAAM,CAAC;IAChC,CAAC;IAED,kBAAkB,CAAC,WAAmB;QACpC,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QACtC,OAAO,OAAO,CAAC,YAAY,KAAK,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC;IACrF,CAAC;IAED,KAAK;QACH,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;IACxB,CAAC;CACF;AAjDD,wCAiDC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Enum translation registry (v2 - no generics)
|
|
3
|
+
*/
|
|
4
|
+
export declare class EnumRegistry {
|
|
5
|
+
private translations;
|
|
6
|
+
private enumNames;
|
|
7
|
+
private translateFn?;
|
|
8
|
+
constructor(translateFn?: (key: string, vars?: Record<string, any>) => string);
|
|
9
|
+
register<TEnum extends string | number>(enumObj: Record<string, TEnum>, translations: Record<string, Record<TEnum, string>>, enumName: string): void;
|
|
10
|
+
translate<TEnum extends string | number>(enumObj: Record<string, TEnum>, value: TEnum, language: string): string;
|
|
11
|
+
has(enumObj: any): boolean;
|
|
12
|
+
private getEnumName;
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=enum-registry.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"enum-registry.d.ts","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-i18n-lib/src/core/enum-registry.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,qBAAa,YAAY;IACvB,OAAO,CAAC,YAAY,CAA0D;IAC9E,OAAO,CAAC,SAAS,CAA8B;IAC/C,OAAO,CAAC,WAAW,CAAC,CAAsD;gBAE9D,WAAW,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,MAAM;IAI7E,QAAQ,CAAC,KAAK,SAAS,MAAM,GAAG,MAAM,EACpC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,EAC9B,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,EACnD,QAAQ,EAAE,MAAM,GACf,IAAI;IAKP,SAAS,CAAC,KAAK,SAAS,MAAM,GAAG,MAAM,EACrC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,EAC9B,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,MAAM,GACf,MAAM;IA4BT,GAAG,CAAC,OAAO,EAAE,GAAG,GAAG,OAAO;IAI1B,OAAO,CAAC,WAAW;CAGpB"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Enum translation registry (v2 - no generics)
|
|
4
|
+
*/
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.EnumRegistry = void 0;
|
|
7
|
+
const errors_1 = require("../errors");
|
|
8
|
+
class EnumRegistry {
|
|
9
|
+
translations = new Map();
|
|
10
|
+
enumNames = new WeakMap();
|
|
11
|
+
translateFn;
|
|
12
|
+
constructor(translateFn) {
|
|
13
|
+
this.translateFn = translateFn;
|
|
14
|
+
}
|
|
15
|
+
register(enumObj, translations, enumName) {
|
|
16
|
+
this.translations.set(enumObj, translations);
|
|
17
|
+
this.enumNames.set(enumObj, enumName);
|
|
18
|
+
}
|
|
19
|
+
translate(enumObj, value, language) {
|
|
20
|
+
const translations = this.translations.get(enumObj);
|
|
21
|
+
if (!translations) {
|
|
22
|
+
throw errors_1.I18nError.invalidConfig(`No translations found for enum: ${this.getEnumName(enumObj)}`);
|
|
23
|
+
}
|
|
24
|
+
const langTranslations = translations[language];
|
|
25
|
+
if (!langTranslations) {
|
|
26
|
+
throw errors_1.I18nError.languageNotFound(language);
|
|
27
|
+
}
|
|
28
|
+
let result = langTranslations[value];
|
|
29
|
+
if (!result && typeof value === 'number') {
|
|
30
|
+
const stringKey = Object.keys(enumObj).find((key) => enumObj[key] === value);
|
|
31
|
+
if (stringKey) {
|
|
32
|
+
result = langTranslations[stringKey];
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
if (!result) {
|
|
36
|
+
throw errors_1.I18nError.translationMissing('enum', String(value), language);
|
|
37
|
+
}
|
|
38
|
+
return result;
|
|
39
|
+
}
|
|
40
|
+
has(enumObj) {
|
|
41
|
+
return this.translations.has(enumObj);
|
|
42
|
+
}
|
|
43
|
+
getEnumName(enumObj) {
|
|
44
|
+
return this.enumNames.get(enumObj) || 'UnknownEnum';
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
exports.EnumRegistry = EnumRegistry;
|
|
48
|
+
//# sourceMappingURL=enum-registry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"enum-registry.js","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-i18n-lib/src/core/enum-registry.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAEH,sCAAsC;AAEtC,MAAa,YAAY;IACf,YAAY,GAAG,IAAI,GAAG,EAA+C,CAAC;IACtE,SAAS,GAAG,IAAI,OAAO,EAAe,CAAC;IACvC,WAAW,CAAuD;IAE1E,YAAY,WAAiE;QAC3E,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;IACjC,CAAC;IAED,QAAQ,CACN,OAA8B,EAC9B,YAAmD,EACnD,QAAgB;QAEhB,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,EAAE,YAAmB,CAAC,CAAC;QACpD,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;IACxC,CAAC;IAED,SAAS,CACP,OAA8B,EAC9B,KAAY,EACZ,QAAgB;QAEhB,MAAM,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACpD,IAAI,CAAC,YAAY,EAAE,CAAC;YAClB,MAAM,kBAAS,CAAC,aAAa,CAC3B,mCAAmC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,EAAE,CAC/D,CAAC;QACJ,CAAC;QAED,MAAM,gBAAgB,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAC;QAChD,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACtB,MAAM,kBAAS,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;QAC7C,CAAC;QAED,IAAI,MAAM,GAAG,gBAAgB,CAAC,KAAY,CAAC,CAAC;QAC5C,IAAI,CAAC,MAAM,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YACzC,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,CAAC;YAC7E,IAAI,SAAS,EAAE,CAAC;gBACd,MAAM,GAAG,gBAAgB,CAAC,SAAgB,CAAC,CAAC;YAC9C,CAAC;QACH,CAAC;QAED,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,kBAAS,CAAC,kBAAkB,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,QAAQ,CAAC,CAAC;QACtE,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,GAAG,CAAC,OAAY;QACd,OAAO,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IACxC,CAAC;IAEO,WAAW,CAAC,OAAY;QAC9B,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,aAAa,CAAC;IACtD,CAAC;CACF;AAzDD,oCAyDC"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Main I18n Engine (no generics)
|
|
3
|
+
*/
|
|
4
|
+
import { ComponentConfig, EngineConfig, II18nEngine, LanguageDefinition, ValidationResult } from '../interfaces';
|
|
5
|
+
export declare class I18nEngine implements II18nEngine {
|
|
6
|
+
private static instances;
|
|
7
|
+
private static defaultKey;
|
|
8
|
+
private static readonly DEFAULT_KEY;
|
|
9
|
+
private static readonly contextManager;
|
|
10
|
+
private readonly componentStore;
|
|
11
|
+
private readonly enumRegistry;
|
|
12
|
+
private readonly instanceKey;
|
|
13
|
+
private readonly config;
|
|
14
|
+
constructor(languages: readonly LanguageDefinition[], config?: EngineConfig, options?: {
|
|
15
|
+
instanceKey?: string;
|
|
16
|
+
registerInstance?: boolean;
|
|
17
|
+
setAsDefault?: boolean;
|
|
18
|
+
});
|
|
19
|
+
register(config: ComponentConfig): ValidationResult;
|
|
20
|
+
updateStrings(componentId: string, strings: Record<string, Record<string, string>>): ValidationResult;
|
|
21
|
+
hasComponent(componentId: string): boolean;
|
|
22
|
+
getComponents(): readonly ComponentConfig[];
|
|
23
|
+
translate(componentId: string, key: string, variables?: Record<string, any>, language?: string): string;
|
|
24
|
+
safeTranslate(componentId: string, key: string, variables?: Record<string, any>, language?: string): string;
|
|
25
|
+
t(template: string, variables?: Record<string, any>, language?: string): string;
|
|
26
|
+
registerLanguage(language: LanguageDefinition): void;
|
|
27
|
+
setLanguage(language: string): void;
|
|
28
|
+
setAdminLanguage(language: string): void;
|
|
29
|
+
getLanguages(): readonly LanguageDefinition[];
|
|
30
|
+
hasLanguage(language: string): boolean;
|
|
31
|
+
switchToAdmin(): void;
|
|
32
|
+
switchToUser(): void;
|
|
33
|
+
getCurrentLanguage(): string;
|
|
34
|
+
registerEnum<TEnum extends string | number>(enumObj: Record<string, TEnum>, translations: Record<string, Record<TEnum, string>>, enumName: string): void;
|
|
35
|
+
translateEnum<TEnum extends string | number>(enumObj: Record<string, TEnum>, value: TEnum, language?: string): string;
|
|
36
|
+
hasEnum(enumObj: any): boolean;
|
|
37
|
+
validate(): ValidationResult;
|
|
38
|
+
static createInstance(key: string, languages: readonly LanguageDefinition[], config?: EngineConfig): I18nEngine;
|
|
39
|
+
static getInstance(key?: string): I18nEngine;
|
|
40
|
+
static hasInstance(key?: string): boolean;
|
|
41
|
+
static removeInstance(key?: string): boolean;
|
|
42
|
+
static resetAll(): void;
|
|
43
|
+
}
|
|
44
|
+
//# sourceMappingURL=i18n-engine.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"i18n-engine.d.ts","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-i18n-lib/src/core/i18n-engine.ts"],"names":[],"mappings":"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"}
|