@digitaldefiance/i18n-lib 1.3.13 → 1.3.14
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 +4 -0
- package/package.json +4 -3
- package/src/active-context.d.ts +30 -0
- package/src/active-context.d.ts.map +1 -0
- package/src/active-context.js +3 -0
- package/src/active-context.js.map +1 -0
- package/src/component-definition.d.ts +12 -0
- package/src/component-definition.d.ts.map +1 -0
- package/src/component-definition.js +3 -0
- package/src/component-definition.js.map +1 -0
- package/src/component-registration.d.ts +10 -0
- package/src/component-registration.d.ts.map +1 -0
- package/src/component-registration.js +3 -0
- package/src/component-registration.js.map +1 -0
- package/src/component-registry.d.ts +69 -0
- package/src/component-registry.d.ts.map +1 -0
- package/src/component-registry.js +248 -0
- package/src/component-registry.js.map +1 -0
- package/src/context-error-type.d.ts +4 -0
- package/src/context-error-type.d.ts.map +1 -0
- package/src/context-error-type.js +8 -0
- package/src/context-error-type.js.map +1 -0
- package/src/context-error.d.ts +7 -0
- package/src/context-error.d.ts.map +1 -0
- package/src/context-error.js +18 -0
- package/src/context-error.js.map +1 -0
- package/src/context-manager.d.ts +34 -0
- package/src/context-manager.d.ts.map +1 -0
- package/src/context-manager.js +60 -0
- package/src/context-manager.js.map +1 -0
- package/src/context.d.ts +45 -0
- package/src/context.d.ts.map +1 -0
- package/src/context.js +70 -0
- package/src/context.js.map +1 -0
- package/src/core-i18n.d.ts +63 -0
- package/src/core-i18n.d.ts.map +1 -0
- package/src/core-i18n.js +478 -0
- package/src/core-i18n.js.map +1 -0
- package/src/core-string-key.d.ts +43 -0
- package/src/core-string-key.d.ts.map +1 -0
- package/src/core-string-key.js +51 -0
- package/src/core-string-key.js.map +1 -0
- package/src/create-translation-adapter.d.ts +21 -0
- package/src/create-translation-adapter.d.ts.map +1 -0
- package/src/create-translation-adapter.js +37 -0
- package/src/create-translation-adapter.js.map +1 -0
- package/src/currency-code.d.ts +20 -0
- package/src/currency-code.d.ts.map +1 -0
- package/src/currency-code.js +37 -0
- package/src/currency-code.js.map +1 -0
- package/src/{currency-format.ts → currency-format.d.ts} +5 -5
- package/src/currency-format.d.ts.map +1 -0
- package/src/currency-format.js +3 -0
- package/src/currency-format.js.map +1 -0
- package/src/currency.d.ts +12 -0
- package/src/currency.d.ts.map +1 -0
- package/src/currency.js +49 -0
- package/src/currency.js.map +1 -0
- package/src/default-config.d.ts +33 -0
- package/src/default-config.d.ts.map +1 -0
- package/src/default-config.js +102 -0
- package/src/default-config.js.map +1 -0
- package/src/enum-registry.d.ts +45 -0
- package/src/enum-registry.d.ts.map +1 -0
- package/src/enum-registry.js +103 -0
- package/src/enum-registry.js.map +1 -0
- package/src/global-active-context.d.ts +51 -0
- package/src/global-active-context.d.ts.map +1 -0
- package/src/global-active-context.js +179 -0
- package/src/global-active-context.js.map +1 -0
- package/src/handleable.d.ts +14 -0
- package/src/handleable.d.ts.map +1 -0
- package/src/handleable.js +66 -0
- package/src/handleable.js.map +1 -0
- package/src/i-global-active-context.d.ts +23 -0
- package/src/i-global-active-context.d.ts.map +1 -0
- package/src/i-global-active-context.js +3 -0
- package/src/i-global-active-context.js.map +1 -0
- package/src/i-handleable-error-options.d.ts +7 -0
- package/src/i-handleable-error-options.d.ts.map +1 -0
- package/src/i-handleable-error-options.js +3 -0
- package/src/i-handleable-error-options.js.map +1 -0
- package/src/i-handleable.d.ts +6 -0
- package/src/i-handleable.d.ts.map +1 -0
- package/src/i-handleable.js +3 -0
- package/src/i-handleable.js.map +1 -0
- package/src/i18n-config.d.ts +21 -0
- package/src/i18n-config.d.ts.map +1 -0
- package/src/i18n-config.js +3 -0
- package/src/i18n-config.js.map +1 -0
- package/src/{i18n-context.ts → i18n-context.d.ts} +7 -7
- package/src/i18n-context.d.ts.map +1 -0
- package/src/i18n-context.js +3 -0
- package/src/i18n-context.js.map +1 -0
- package/src/i18n-engine.d.ts +179 -0
- package/src/i18n-engine.d.ts.map +1 -0
- package/src/i18n-engine.js +355 -0
- package/src/i18n-engine.js.map +1 -0
- package/src/{index.ts → index.d.ts} +2 -10
- package/src/index.d.ts.map +1 -0
- package/src/index.js +71 -0
- package/src/index.js.map +1 -0
- package/src/{language-codes.ts → language-codes.d.ts} +12 -23
- package/src/language-codes.d.ts.map +1 -0
- package/src/language-codes.js +32 -0
- package/src/language-codes.js.map +1 -0
- package/src/language-definition.d.ts +14 -0
- package/src/language-definition.d.ts.map +1 -0
- package/src/language-definition.js +3 -0
- package/src/language-definition.js.map +1 -0
- package/src/language-registry.d.ts +114 -0
- package/src/language-registry.d.ts.map +1 -0
- package/src/language-registry.js +217 -0
- package/src/language-registry.js.map +1 -0
- package/src/plugin-i18n-engine.d.ts +147 -0
- package/src/plugin-i18n-engine.d.ts.map +1 -0
- package/src/plugin-i18n-engine.js +369 -0
- package/src/plugin-i18n-engine.js.map +1 -0
- package/src/plugin-translatable-generic-error.d.ts +30 -0
- package/src/plugin-translatable-generic-error.d.ts.map +1 -0
- package/src/plugin-translatable-generic-error.js +72 -0
- package/src/plugin-translatable-generic-error.js.map +1 -0
- package/src/plugin-translatable-handleable-generic.d.ts +29 -0
- package/src/plugin-translatable-handleable-generic.d.ts.map +1 -0
- package/src/plugin-translatable-handleable-generic.js +44 -0
- package/src/plugin-translatable-handleable-generic.js.map +1 -0
- package/src/plugin-typed-handleable.d.ts +15 -0
- package/src/plugin-typed-handleable.d.ts.map +1 -0
- package/src/plugin-typed-handleable.js +51 -0
- package/src/plugin-typed-handleable.js.map +1 -0
- package/src/registry-config.d.ts +15 -0
- package/src/registry-config.d.ts.map +1 -0
- package/src/registry-config.js +3 -0
- package/src/registry-config.js.map +1 -0
- package/src/registry-error-type.d.ts +13 -0
- package/src/registry-error-type.d.ts.map +1 -0
- package/src/registry-error-type.js +17 -0
- package/src/registry-error-type.js.map +1 -0
- package/src/registry-error.d.ts +19 -0
- package/src/registry-error.d.ts.map +1 -0
- package/src/registry-error.js +48 -0
- package/src/registry-error.js.map +1 -0
- package/src/strict-types.d.ts +19 -0
- package/src/strict-types.d.ts.map +1 -0
- package/src/strict-types.js +18 -0
- package/src/strict-types.js.map +1 -0
- package/src/template.d.ts +13 -0
- package/src/template.d.ts.map +1 -0
- package/src/template.js +31 -0
- package/src/template.js.map +1 -0
- package/src/timezone.d.ts +12 -0
- package/src/timezone.d.ts.map +1 -0
- package/src/timezone.js +24 -0
- package/src/timezone.js.map +1 -0
- package/src/translatable.d.ts +6 -0
- package/src/translatable.d.ts.map +1 -0
- package/src/translatable.js +12 -0
- package/src/translatable.js.map +1 -0
- package/src/translation-engine.d.ts +9 -0
- package/src/translation-engine.d.ts.map +1 -0
- package/src/translation-engine.js +3 -0
- package/src/translation-engine.js.map +1 -0
- package/src/translation-request.d.ts +10 -0
- package/src/translation-request.d.ts.map +1 -0
- package/src/translation-request.js +3 -0
- package/src/translation-request.js.map +1 -0
- package/src/translation-response.d.ts +9 -0
- package/src/translation-response.d.ts.map +1 -0
- package/src/translation-response.js +3 -0
- package/src/translation-response.js.map +1 -0
- package/src/typed-error.d.ts +73 -0
- package/src/typed-error.d.ts.map +1 -0
- package/src/typed-error.js +267 -0
- package/src/typed-error.js.map +1 -0
- package/src/typed-handleable.d.ts +15 -0
- package/src/typed-handleable.d.ts.map +1 -0
- package/src/typed-handleable.js +46 -0
- package/src/typed-handleable.js.map +1 -0
- package/src/{types.ts → types.d.ts} +21 -75
- package/src/types.d.ts.map +1 -0
- package/src/types.js +19 -0
- package/src/types.js.map +1 -0
- package/src/unified-translator.d.ts +31 -0
- package/src/unified-translator.d.ts.map +1 -0
- package/src/unified-translator.js +71 -0
- package/src/unified-translator.js.map +1 -0
- package/src/utils.d.ts +65 -0
- package/src/utils.d.ts.map +1 -0
- package/src/utils.js +129 -0
- package/src/utils.js.map +1 -0
- package/src/validation-config.d.ts +12 -0
- package/src/validation-config.d.ts.map +1 -0
- package/src/validation-config.js +3 -0
- package/src/validation-config.js.map +1 -0
- package/src/validation-result.d.ts +13 -0
- package/src/validation-result.d.ts.map +1 -0
- package/src/validation-result.js +3 -0
- package/src/validation-result.js.map +1 -0
- package/LICENSE +0 -21
- package/src/active-context.ts +0 -30
- package/src/component-definition.ts +0 -11
- package/src/component-registration.ts +0 -13
- package/src/component-registry.ts +0 -392
- package/src/context-error-type.ts +0 -3
- package/src/context-error.ts +0 -16
- package/src/context-manager.ts +0 -71
- package/src/context.ts +0 -90
- package/src/core-i18n.ts +0 -609
- package/src/core-string-key.ts +0 -49
- package/src/create-translation-adapter.ts +0 -47
- package/src/currency-code.ts +0 -35
- package/src/currency.ts +0 -52
- package/src/default-config.ts +0 -199
- package/src/enum-registry.ts +0 -138
- package/src/global-active-context.ts +0 -255
- package/src/handleable.ts +0 -79
- package/src/i-global-active-context.ts +0 -59
- package/src/i-handleable-error-options.ts +0 -6
- package/src/i-handleable.ts +0 -5
- package/src/i18n-config.ts +0 -29
- package/src/i18n-engine.ts +0 -491
- package/src/language-definition.ts +0 -13
- package/src/language-registry.ts +0 -292
- package/src/plugin-i18n-engine.ts +0 -520
- package/src/plugin-translatable-generic-error.ts +0 -106
- package/src/plugin-translatable-handleable-generic.ts +0 -60
- package/src/plugin-typed-handleable.ts +0 -77
- package/src/registry-config.ts +0 -15
- package/src/registry-error-type.ts +0 -12
- package/src/registry-error.ts +0 -74
- package/src/strict-types.ts +0 -35
- package/src/template.ts +0 -63
- package/src/timezone.ts +0 -20
- package/src/translatable.ts +0 -15
- package/src/translation-engine.ts +0 -8
- package/src/translation-request.ts +0 -12
- package/src/translation-response.ts +0 -8
- package/src/typed-error.ts +0 -384
- package/src/typed-handleable.ts +0 -70
- package/src/unified-translator.ts +0 -96
- package/src/utils.ts +0 -213
- package/src/validation-config.ts +0 -11
- package/src/validation-result.ts +0 -12
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Language registry for managing supported languages and their properties
|
|
3
|
+
*/
|
|
4
|
+
import { LanguageDefinition } from './language-definition';
|
|
5
|
+
/**
|
|
6
|
+
* Static singleton registry for managing supported languages globally
|
|
7
|
+
*/
|
|
8
|
+
export declare class LanguageRegistry {
|
|
9
|
+
private static languages;
|
|
10
|
+
private static languagesByCodes;
|
|
11
|
+
private static defaultLanguageId;
|
|
12
|
+
private constructor();
|
|
13
|
+
/**
|
|
14
|
+
* Register a new language
|
|
15
|
+
*/
|
|
16
|
+
static registerLanguage(language: LanguageDefinition): void;
|
|
17
|
+
/**
|
|
18
|
+
* Register multiple languages at once
|
|
19
|
+
*/
|
|
20
|
+
static registerLanguages(languages: readonly LanguageDefinition[]): void;
|
|
21
|
+
/**
|
|
22
|
+
* Get a language by its ID
|
|
23
|
+
*/
|
|
24
|
+
static getLanguage(languageId: string): LanguageDefinition | undefined;
|
|
25
|
+
/**
|
|
26
|
+
* Get a language by its code
|
|
27
|
+
*/
|
|
28
|
+
static getLanguageByCode(code: string): LanguageDefinition | undefined;
|
|
29
|
+
/**
|
|
30
|
+
* Get all registered languages
|
|
31
|
+
*/
|
|
32
|
+
static getAllLanguages(): ReadonlyArray<LanguageDefinition>;
|
|
33
|
+
/**
|
|
34
|
+
* Get all language IDs
|
|
35
|
+
*/
|
|
36
|
+
static getLanguageIds(): readonly string[];
|
|
37
|
+
/**
|
|
38
|
+
* Get all language codes
|
|
39
|
+
*/
|
|
40
|
+
static getLanguageCodes(): readonly string[];
|
|
41
|
+
/**
|
|
42
|
+
* Check if a language is registered
|
|
43
|
+
*/
|
|
44
|
+
static hasLanguage(languageId: string): boolean;
|
|
45
|
+
/**
|
|
46
|
+
* Check if a language code is registered
|
|
47
|
+
*/
|
|
48
|
+
static hasLanguageCode(code: string): boolean;
|
|
49
|
+
/**
|
|
50
|
+
* Get the default language
|
|
51
|
+
*/
|
|
52
|
+
static getDefaultLanguage(): LanguageDefinition | null;
|
|
53
|
+
/**
|
|
54
|
+
* Get the default language ID
|
|
55
|
+
*/
|
|
56
|
+
static getDefaultLanguageId(): string | null;
|
|
57
|
+
/**
|
|
58
|
+
* Get matching language code with fallback logic:
|
|
59
|
+
* 1. Try requested code
|
|
60
|
+
* 2. Fall back to user default
|
|
61
|
+
* 3. Fall back to site default
|
|
62
|
+
*/
|
|
63
|
+
static getMatchingLanguageCode(requestedCode?: string, userDefaultCode?: string): string;
|
|
64
|
+
/**
|
|
65
|
+
* Set the default language
|
|
66
|
+
*/
|
|
67
|
+
static setDefaultLanguage(languageId: string): void;
|
|
68
|
+
/**
|
|
69
|
+
* Get the number of registered languages
|
|
70
|
+
*/
|
|
71
|
+
static getLanguageCount(): number;
|
|
72
|
+
/**
|
|
73
|
+
* Validate that all required languages are present
|
|
74
|
+
*/
|
|
75
|
+
static validateRequiredLanguages(requiredLanguages: readonly string[]): LanguageValidationResult;
|
|
76
|
+
/**
|
|
77
|
+
* Create a mapping of language IDs to their display names
|
|
78
|
+
*/
|
|
79
|
+
static getLanguageDisplayNames(): Record<string, string>;
|
|
80
|
+
/**
|
|
81
|
+
* Create a mapping of language IDs to their codes
|
|
82
|
+
*/
|
|
83
|
+
static getLanguageCodeMapping(): Record<string, string>;
|
|
84
|
+
/**
|
|
85
|
+
* Find languages by partial name match (case-insensitive)
|
|
86
|
+
*/
|
|
87
|
+
static findLanguagesByName(partialName: string): readonly LanguageDefinition[];
|
|
88
|
+
/**
|
|
89
|
+
* Clear all registered languages (useful for testing)
|
|
90
|
+
*/
|
|
91
|
+
static clear(): void;
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* Validation result for language operations
|
|
95
|
+
*/
|
|
96
|
+
export interface LanguageValidationResult {
|
|
97
|
+
readonly isValid: boolean;
|
|
98
|
+
readonly missingLanguages: readonly string[];
|
|
99
|
+
readonly errors: readonly string[];
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* Helper function to create language definitions with type safety
|
|
103
|
+
*/
|
|
104
|
+
export declare function createLanguageDefinition(id: string, name: string, code: string, isDefault?: boolean): LanguageDefinition;
|
|
105
|
+
/**
|
|
106
|
+
* Helper function to create multiple language definitions
|
|
107
|
+
*/
|
|
108
|
+
export declare function createLanguageDefinitions(languages: Array<{
|
|
109
|
+
id: string;
|
|
110
|
+
name: string;
|
|
111
|
+
code: string;
|
|
112
|
+
isDefault?: boolean;
|
|
113
|
+
}>): LanguageDefinition[];
|
|
114
|
+
//# sourceMappingURL=language-registry.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"language-registry.d.ts","sourceRoot":"","sources":["../../../../packages/digitaldefiance-i18n-lib/src/language-registry.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAI3D;;GAEG;AACH,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,MAAM,CAAC,SAAS,CAAyC;IACjE,OAAO,CAAC,MAAM,CAAC,gBAAgB,CAA6B;IAC5D,OAAO,CAAC,MAAM,CAAC,iBAAiB,CAAuB;IAEvD,OAAO;IAIP;;OAEG;WACW,gBAAgB,CAAC,QAAQ,EAAE,kBAAkB,GAAG,IAAI;IAgClE;;OAEG;WACW,iBAAiB,CAAC,SAAS,EAAE,SAAS,kBAAkB,EAAE,GAAG,IAAI;IAM/E;;OAEG;WACW,WAAW,CAAC,UAAU,EAAE,MAAM,GAAG,kBAAkB,GAAG,SAAS;IAI7E;;OAEG;WACW,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,kBAAkB,GAAG,SAAS;IAK7E;;OAEG;WACW,eAAe,IAAI,aAAa,CAAC,kBAAkB,CAAC;IAIlE;;OAEG;WACW,cAAc,IAAI,SAAS,MAAM,EAAE;IAIjD;;OAEG;WACW,gBAAgB,IAAI,SAAS,MAAM,EAAE;IAInD;;OAEG;WACW,WAAW,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO;IAItD;;OAEG;WACW,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAIpD;;OAEG;WACW,kBAAkB,IAAI,kBAAkB,GAAG,IAAI;IAM7D;;OAEG;WACW,oBAAoB,IAAI,MAAM,GAAG,IAAI;IAInD;;;;;OAKG;WACW,uBAAuB,CACnC,aAAa,CAAC,EAAE,MAAM,EACtB,eAAe,CAAC,EAAE,MAAM,GACvB,MAAM;IAwBT;;OAEG;WACW,kBAAkB,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI;IAW1D;;OAEG;WACW,gBAAgB,IAAI,MAAM;IAIxC;;OAEG;WACW,yBAAyB,CACrC,iBAAiB,EAAE,SAAS,MAAM,EAAE,GACnC,wBAAwB;IAkB3B;;OAEG;WACW,uBAAuB,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAQ/D;;OAEG;WACW,sBAAsB,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAQ9D;;OAEG;WACW,mBAAmB,CAC/B,WAAW,EAAE,MAAM,GAClB,SAAS,kBAAkB,EAAE;IAOhC;;OAEG;WACW,KAAK,IAAI,IAAI;CAK5B;AAED;;GAEG;AACH,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,gBAAgB,EAAE,SAAS,MAAM,EAAE,CAAC;IAC7C,QAAQ,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC;CACpC;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CACtC,EAAE,EAAE,MAAM,EACV,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EACZ,SAAS,CAAC,EAAE,OAAO,GAClB,kBAAkB,CAOpB;AAED;;GAEG;AACH,wBAAgB,yBAAyB,CACvC,SAAS,EAAE,KAAK,CAAC;IACf,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB,CAAC,GACD,kBAAkB,EAAE,CAItB"}
|
|
@@ -0,0 +1,217 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Language registry for managing supported languages and their properties
|
|
4
|
+
*/
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.LanguageRegistry = void 0;
|
|
7
|
+
exports.createLanguageDefinition = createLanguageDefinition;
|
|
8
|
+
exports.createLanguageDefinitions = createLanguageDefinitions;
|
|
9
|
+
const registry_error_1 = require("./registry-error");
|
|
10
|
+
const registry_error_type_1 = require("./registry-error-type");
|
|
11
|
+
/**
|
|
12
|
+
* Static singleton registry for managing supported languages globally
|
|
13
|
+
*/
|
|
14
|
+
class LanguageRegistry {
|
|
15
|
+
static languages = new Map();
|
|
16
|
+
static languagesByCodes = new Map();
|
|
17
|
+
static defaultLanguageId = null;
|
|
18
|
+
constructor() {
|
|
19
|
+
// Private constructor - use static methods
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Register a new language
|
|
23
|
+
*/
|
|
24
|
+
static registerLanguage(language) {
|
|
25
|
+
const languageId = language.id;
|
|
26
|
+
// Check for duplicate language ID
|
|
27
|
+
if (LanguageRegistry.languages.has(languageId)) {
|
|
28
|
+
throw registry_error_1.RegistryError.createSimple(registry_error_type_1.RegistryErrorType.DuplicateLanguage, `Language '${languageId}' is already registered`, { languageId });
|
|
29
|
+
}
|
|
30
|
+
// Check for duplicate language code
|
|
31
|
+
if (LanguageRegistry.languagesByCodes.has(language.code)) {
|
|
32
|
+
const existingLanguageId = LanguageRegistry.languagesByCodes.get(language.code);
|
|
33
|
+
throw registry_error_1.RegistryError.createSimple(registry_error_type_1.RegistryErrorType.DuplicateLanguage, `Language code '${language.code}' is already used by language '${existingLanguageId}'`, { languageId, code: language.code, existingLanguageId });
|
|
34
|
+
}
|
|
35
|
+
// Register the language
|
|
36
|
+
LanguageRegistry.languages.set(languageId, language);
|
|
37
|
+
LanguageRegistry.languagesByCodes.set(language.code, languageId);
|
|
38
|
+
// Set as default if specified or if it's the first language
|
|
39
|
+
if (language.isDefault || LanguageRegistry.defaultLanguageId === null) {
|
|
40
|
+
LanguageRegistry.defaultLanguageId = languageId;
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Register multiple languages at once
|
|
45
|
+
*/
|
|
46
|
+
static registerLanguages(languages) {
|
|
47
|
+
for (const language of languages) {
|
|
48
|
+
LanguageRegistry.registerLanguage(language);
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Get a language by its ID
|
|
53
|
+
*/
|
|
54
|
+
static getLanguage(languageId) {
|
|
55
|
+
return LanguageRegistry.languages.get(languageId);
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Get a language by its code
|
|
59
|
+
*/
|
|
60
|
+
static getLanguageByCode(code) {
|
|
61
|
+
const languageId = LanguageRegistry.languagesByCodes.get(code);
|
|
62
|
+
return languageId ? LanguageRegistry.languages.get(languageId) : undefined;
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Get all registered languages
|
|
66
|
+
*/
|
|
67
|
+
static getAllLanguages() {
|
|
68
|
+
return Array.from(LanguageRegistry.languages.values());
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Get all language IDs
|
|
72
|
+
*/
|
|
73
|
+
static getLanguageIds() {
|
|
74
|
+
return Array.from(LanguageRegistry.languages.keys());
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* Get all language codes
|
|
78
|
+
*/
|
|
79
|
+
static getLanguageCodes() {
|
|
80
|
+
return Array.from(LanguageRegistry.languagesByCodes.keys());
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* Check if a language is registered
|
|
84
|
+
*/
|
|
85
|
+
static hasLanguage(languageId) {
|
|
86
|
+
return LanguageRegistry.languages.has(languageId);
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* Check if a language code is registered
|
|
90
|
+
*/
|
|
91
|
+
static hasLanguageCode(code) {
|
|
92
|
+
return LanguageRegistry.languagesByCodes.has(code);
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* Get the default language
|
|
96
|
+
*/
|
|
97
|
+
static getDefaultLanguage() {
|
|
98
|
+
return LanguageRegistry.defaultLanguageId
|
|
99
|
+
? LanguageRegistry.languages.get(LanguageRegistry.defaultLanguageId) || null
|
|
100
|
+
: null;
|
|
101
|
+
}
|
|
102
|
+
/**
|
|
103
|
+
* Get the default language ID
|
|
104
|
+
*/
|
|
105
|
+
static getDefaultLanguageId() {
|
|
106
|
+
return LanguageRegistry.defaultLanguageId;
|
|
107
|
+
}
|
|
108
|
+
/**
|
|
109
|
+
* Get matching language code with fallback logic:
|
|
110
|
+
* 1. Try requested code
|
|
111
|
+
* 2. Fall back to user default
|
|
112
|
+
* 3. Fall back to site default
|
|
113
|
+
*/
|
|
114
|
+
static getMatchingLanguageCode(requestedCode, userDefaultCode) {
|
|
115
|
+
// Try requested code first
|
|
116
|
+
if (requestedCode && LanguageRegistry.hasLanguageCode(requestedCode)) {
|
|
117
|
+
return requestedCode;
|
|
118
|
+
}
|
|
119
|
+
// Try user default
|
|
120
|
+
if (userDefaultCode && LanguageRegistry.hasLanguageCode(userDefaultCode)) {
|
|
121
|
+
return userDefaultCode;
|
|
122
|
+
}
|
|
123
|
+
// Fall back to site default
|
|
124
|
+
const defaultLanguage = LanguageRegistry.getDefaultLanguage();
|
|
125
|
+
if (!defaultLanguage) {
|
|
126
|
+
throw registry_error_1.RegistryError.createSimple(registry_error_type_1.RegistryErrorType.LanguageNotFound, 'No default language configured', {});
|
|
127
|
+
}
|
|
128
|
+
return defaultLanguage.code;
|
|
129
|
+
}
|
|
130
|
+
/**
|
|
131
|
+
* Set the default language
|
|
132
|
+
*/
|
|
133
|
+
static setDefaultLanguage(languageId) {
|
|
134
|
+
if (!LanguageRegistry.languages.has(languageId)) {
|
|
135
|
+
throw registry_error_1.RegistryError.createSimple(registry_error_type_1.RegistryErrorType.LanguageNotFound, `Language '${languageId}' not found`, { languageId });
|
|
136
|
+
}
|
|
137
|
+
LanguageRegistry.defaultLanguageId = languageId;
|
|
138
|
+
}
|
|
139
|
+
/**
|
|
140
|
+
* Get the number of registered languages
|
|
141
|
+
*/
|
|
142
|
+
static getLanguageCount() {
|
|
143
|
+
return LanguageRegistry.languages.size;
|
|
144
|
+
}
|
|
145
|
+
/**
|
|
146
|
+
* Validate that all required languages are present
|
|
147
|
+
*/
|
|
148
|
+
static validateRequiredLanguages(requiredLanguages) {
|
|
149
|
+
const missingLanguages = [];
|
|
150
|
+
const errors = [];
|
|
151
|
+
for (const languageId of requiredLanguages) {
|
|
152
|
+
if (!LanguageRegistry.languages.has(languageId)) {
|
|
153
|
+
missingLanguages.push(languageId);
|
|
154
|
+
errors.push(`Required language '${languageId}' is not registered`);
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
return {
|
|
158
|
+
isValid: missingLanguages.length === 0,
|
|
159
|
+
missingLanguages,
|
|
160
|
+
errors,
|
|
161
|
+
};
|
|
162
|
+
}
|
|
163
|
+
/**
|
|
164
|
+
* Create a mapping of language IDs to their display names
|
|
165
|
+
*/
|
|
166
|
+
static getLanguageDisplayNames() {
|
|
167
|
+
const result = {};
|
|
168
|
+
for (const [languageId, language] of LanguageRegistry.languages) {
|
|
169
|
+
result[languageId] = language.name;
|
|
170
|
+
}
|
|
171
|
+
return result;
|
|
172
|
+
}
|
|
173
|
+
/**
|
|
174
|
+
* Create a mapping of language IDs to their codes
|
|
175
|
+
*/
|
|
176
|
+
static getLanguageCodeMapping() {
|
|
177
|
+
const result = {};
|
|
178
|
+
for (const [languageId, language] of LanguageRegistry.languages) {
|
|
179
|
+
result[languageId] = language.code;
|
|
180
|
+
}
|
|
181
|
+
return result;
|
|
182
|
+
}
|
|
183
|
+
/**
|
|
184
|
+
* Find languages by partial name match (case-insensitive)
|
|
185
|
+
*/
|
|
186
|
+
static findLanguagesByName(partialName) {
|
|
187
|
+
const searchTerm = partialName.toLowerCase();
|
|
188
|
+
return Array.from(LanguageRegistry.languages.values()).filter((language) => language.name.toLowerCase().includes(searchTerm));
|
|
189
|
+
}
|
|
190
|
+
/**
|
|
191
|
+
* Clear all registered languages (useful for testing)
|
|
192
|
+
*/
|
|
193
|
+
static clear() {
|
|
194
|
+
LanguageRegistry.languages.clear();
|
|
195
|
+
LanguageRegistry.languagesByCodes.clear();
|
|
196
|
+
LanguageRegistry.defaultLanguageId = null;
|
|
197
|
+
}
|
|
198
|
+
}
|
|
199
|
+
exports.LanguageRegistry = LanguageRegistry;
|
|
200
|
+
/**
|
|
201
|
+
* Helper function to create language definitions with type safety
|
|
202
|
+
*/
|
|
203
|
+
function createLanguageDefinition(id, name, code, isDefault) {
|
|
204
|
+
return {
|
|
205
|
+
id,
|
|
206
|
+
name,
|
|
207
|
+
code,
|
|
208
|
+
isDefault: isDefault || false,
|
|
209
|
+
};
|
|
210
|
+
}
|
|
211
|
+
/**
|
|
212
|
+
* Helper function to create multiple language definitions
|
|
213
|
+
*/
|
|
214
|
+
function createLanguageDefinitions(languages) {
|
|
215
|
+
return languages.map((lang) => createLanguageDefinition(lang.id, lang.name, lang.code, lang.isDefault));
|
|
216
|
+
}
|
|
217
|
+
//# sourceMappingURL=language-registry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"language-registry.js","sourceRoot":"","sources":["../../../../packages/digitaldefiance-i18n-lib/src/language-registry.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,147 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Plugin-based internationalization engine with component and language registration
|
|
3
|
+
*/
|
|
4
|
+
import { ComponentDefinition } from './component-definition';
|
|
5
|
+
import { ComponentRegistration } from './component-registration';
|
|
6
|
+
import { ComponentRegistry } from './component-registry';
|
|
7
|
+
import { EnumTranslationRegistry } from './enum-registry';
|
|
8
|
+
import { IActiveContext } from './active-context';
|
|
9
|
+
import { LanguageDefinition } from './language-definition';
|
|
10
|
+
import { RegistryConfig } from './registry-config';
|
|
11
|
+
import { TranslationResponse } from './translation-response';
|
|
12
|
+
import { EnumLanguageTranslation } from './types';
|
|
13
|
+
/**
|
|
14
|
+
* Plugin-based I18n Engine with registration capabilities
|
|
15
|
+
*/
|
|
16
|
+
export declare class PluginI18nEngine<TLanguages extends string> {
|
|
17
|
+
private readonly componentRegistry;
|
|
18
|
+
private readonly enumRegistry;
|
|
19
|
+
private readonly config;
|
|
20
|
+
private contextKey;
|
|
21
|
+
/**
|
|
22
|
+
* Default template processor instance
|
|
23
|
+
*/
|
|
24
|
+
readonly t: (str: string, language?: TLanguages, ...otherVars: Record<string, string | number>[]) => string;
|
|
25
|
+
/**
|
|
26
|
+
* Static instances for semi-singleton pattern
|
|
27
|
+
*/
|
|
28
|
+
private static _instances;
|
|
29
|
+
private static _defaultKey;
|
|
30
|
+
protected static readonly DefaultInstanceKey = "default";
|
|
31
|
+
constructor(initialLanguages: readonly LanguageDefinition[], config?: Partial<RegistryConfig<TLanguages>>);
|
|
32
|
+
/**
|
|
33
|
+
* Create a new instance with a specific key
|
|
34
|
+
*/
|
|
35
|
+
static createInstance<TLangs extends string>(key: string, initialLanguages: readonly LanguageDefinition[], config?: Partial<RegistryConfig<TLangs>>): PluginI18nEngine<TLangs>;
|
|
36
|
+
/**
|
|
37
|
+
* Get an existing instance by key
|
|
38
|
+
*/
|
|
39
|
+
static getInstance<TLangs extends string>(key?: string): PluginI18nEngine<TLangs>;
|
|
40
|
+
/**
|
|
41
|
+
* Register a new language (updates static registry)
|
|
42
|
+
*/
|
|
43
|
+
registerLanguage(language: LanguageDefinition): void;
|
|
44
|
+
/**
|
|
45
|
+
* Register multiple languages (updates static registry)
|
|
46
|
+
*/
|
|
47
|
+
registerLanguages(languages: readonly LanguageDefinition[]): void;
|
|
48
|
+
/**
|
|
49
|
+
* Register a component with its translations
|
|
50
|
+
*/
|
|
51
|
+
registerComponent<TStringKeys extends string>(registration: ComponentRegistration<TStringKeys, TLanguages>): import("./validation-result").ValidationResult;
|
|
52
|
+
/**
|
|
53
|
+
* Update strings for an existing component
|
|
54
|
+
*/
|
|
55
|
+
updateComponentStrings<TStringKeys extends string>(componentId: string, strings: Parameters<ComponentRegistry<TLanguages>['updateComponentStrings']>[1]): import("./validation-result").ValidationResult;
|
|
56
|
+
/**
|
|
57
|
+
* Register an enum with translations
|
|
58
|
+
*/
|
|
59
|
+
registerEnum<TEnum extends string | number>(enumObj: Record<string, TEnum>, translations: EnumLanguageTranslation<TEnum, TLanguages>, enumName: string): void;
|
|
60
|
+
/**
|
|
61
|
+
* Translate a string for a component
|
|
62
|
+
*/
|
|
63
|
+
translate<TStringKeys extends string>(componentId: string, stringKey: TStringKeys, variables?: Record<string, string | number>, language?: TLanguages): string;
|
|
64
|
+
/**
|
|
65
|
+
* Safe translate that returns a placeholder if translation fails
|
|
66
|
+
*/
|
|
67
|
+
safeTranslate(componentId: string, stringKey: string, variables?: Record<string, string | number>, language?: TLanguages): string;
|
|
68
|
+
/**
|
|
69
|
+
* Translate an enum value
|
|
70
|
+
*/
|
|
71
|
+
translateEnum<TEnum extends string | number>(enumObj: Record<string, TEnum>, value: TEnum, language?: TLanguages): string;
|
|
72
|
+
/**
|
|
73
|
+
* Get detailed translation response
|
|
74
|
+
*/
|
|
75
|
+
getTranslationDetails<TStringKeys extends string>(componentId: string, stringKey: TStringKeys, variables?: Record<string, string | number>, language?: TLanguages): TranslationResponse;
|
|
76
|
+
/**
|
|
77
|
+
* Get current context
|
|
78
|
+
*/
|
|
79
|
+
getContext(): IActiveContext<TLanguages>;
|
|
80
|
+
/**
|
|
81
|
+
* Update context
|
|
82
|
+
*/
|
|
83
|
+
updateContext(updates: Partial<IActiveContext<TLanguages>>): void;
|
|
84
|
+
/**
|
|
85
|
+
* Get current language from global context
|
|
86
|
+
* Respects language context space (admin vs user)
|
|
87
|
+
*/
|
|
88
|
+
private getCurrentLanguage;
|
|
89
|
+
/**
|
|
90
|
+
* Set current language
|
|
91
|
+
*/
|
|
92
|
+
setLanguage(language: TLanguages): void;
|
|
93
|
+
/**
|
|
94
|
+
* Get available languages from static registry
|
|
95
|
+
*/
|
|
96
|
+
getLanguages(): readonly LanguageDefinition[];
|
|
97
|
+
/**
|
|
98
|
+
* Get registered components
|
|
99
|
+
*/
|
|
100
|
+
getComponents(): ReadonlyArray<ComponentDefinition<any>>;
|
|
101
|
+
/**
|
|
102
|
+
* Check if a component is registered
|
|
103
|
+
*/
|
|
104
|
+
hasComponent(componentId: string): boolean;
|
|
105
|
+
/**
|
|
106
|
+
* Check if a language is registered in static registry
|
|
107
|
+
*/
|
|
108
|
+
hasLanguage(language: TLanguages): boolean;
|
|
109
|
+
/**
|
|
110
|
+
* Get language by code from static registry
|
|
111
|
+
*/
|
|
112
|
+
getLanguageByCode(code: string): LanguageDefinition | undefined;
|
|
113
|
+
/**
|
|
114
|
+
* Get component registry for direct access
|
|
115
|
+
*/
|
|
116
|
+
getComponentRegistry(): ComponentRegistry<TLanguages>;
|
|
117
|
+
/**
|
|
118
|
+
* Get enum registry for direct access
|
|
119
|
+
*/
|
|
120
|
+
getEnumRegistry(): EnumTranslationRegistry<string, TLanguages>;
|
|
121
|
+
/**
|
|
122
|
+
* Validate that all components have complete translations
|
|
123
|
+
*/
|
|
124
|
+
validateAllComponents(): {
|
|
125
|
+
isValid: boolean;
|
|
126
|
+
errors: string[];
|
|
127
|
+
warnings: string[];
|
|
128
|
+
};
|
|
129
|
+
/**
|
|
130
|
+
* Clear all component registrations for this instance (useful for testing)
|
|
131
|
+
*/
|
|
132
|
+
clearAllComponents(): void;
|
|
133
|
+
/**
|
|
134
|
+
* Remove a specific named instance
|
|
135
|
+
*/
|
|
136
|
+
static removeInstance(key?: string): boolean;
|
|
137
|
+
/**
|
|
138
|
+
* Check if an instance exists
|
|
139
|
+
*/
|
|
140
|
+
static hasInstance(key?: string): boolean;
|
|
141
|
+
/**
|
|
142
|
+
* Reset all plugin engines and clear component registrations
|
|
143
|
+
* Useful for test cleanup
|
|
144
|
+
*/
|
|
145
|
+
static resetAll(): void;
|
|
146
|
+
}
|
|
147
|
+
//# sourceMappingURL=plugin-i18n-engine.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"plugin-i18n-engine.d.ts","sourceRoot":"","sources":["../../../../packages/digitaldefiance-i18n-lib/src/plugin-i18n-engine.ts"],"names":[],"mappings":"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"}
|