@digitaldefiance/i18n-lib 1.2.4 → 1.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1222 -33
- package/dist/core-i18n.d.ts +13 -1
- package/dist/core-i18n.js +14 -0
- package/dist/create-translation-adapter.d.ts +20 -0
- package/dist/create-translation-adapter.js +36 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.js +1 -0
- package/dist/typed-error.js +1 -1
- package/package.json +1 -1
package/dist/core-i18n.d.ts
CHANGED
|
@@ -7,7 +7,11 @@ import { CoreStringKey } from './core-string-key';
|
|
|
7
7
|
import { LanguageCodes } from './language-codes';
|
|
8
8
|
import { LanguageDefinition } from './language-definition';
|
|
9
9
|
import { PluginI18nEngine } from './plugin-i18n-engine';
|
|
10
|
-
|
|
10
|
+
/**
|
|
11
|
+
* Core language code type - derived from LanguageCodes for type safety
|
|
12
|
+
* Use this for type parameters when you want to restrict to core languages only
|
|
13
|
+
*/
|
|
14
|
+
export type CoreLanguageCode = typeof LanguageCodes[keyof typeof LanguageCodes];
|
|
11
15
|
/**
|
|
12
16
|
* Create default language definitions
|
|
13
17
|
*/
|
|
@@ -25,6 +29,14 @@ export declare function createCoreComponentStrings(): import("./strict-types").C
|
|
|
25
29
|
* Create core component registration
|
|
26
30
|
*/
|
|
27
31
|
export declare function createCoreComponentRegistration(): ComponentRegistration<CoreStringKey, CoreLanguageCode>;
|
|
32
|
+
/**
|
|
33
|
+
* Get core language codes as array (for Mongoose enums, etc.)
|
|
34
|
+
*/
|
|
35
|
+
export declare function getCoreLanguageCodes(): string[];
|
|
36
|
+
/**
|
|
37
|
+
* Get core language definitions
|
|
38
|
+
*/
|
|
39
|
+
export declare function getCoreLanguageDefinitions(): LanguageDefinition[];
|
|
28
40
|
/**
|
|
29
41
|
* Create a pre-configured I18n engine with core components
|
|
30
42
|
*/
|
package/dist/core-i18n.js
CHANGED
|
@@ -7,6 +7,8 @@ exports.CoreComponentDefinition = exports.CoreI18nComponentId = void 0;
|
|
|
7
7
|
exports.createDefaultLanguages = createDefaultLanguages;
|
|
8
8
|
exports.createCoreComponentStrings = createCoreComponentStrings;
|
|
9
9
|
exports.createCoreComponentRegistration = createCoreComponentRegistration;
|
|
10
|
+
exports.getCoreLanguageCodes = getCoreLanguageCodes;
|
|
11
|
+
exports.getCoreLanguageDefinitions = getCoreLanguageDefinitions;
|
|
10
12
|
exports.createCoreI18nEngine = createCoreI18nEngine;
|
|
11
13
|
exports.getCoreTranslation = getCoreTranslation;
|
|
12
14
|
exports.safeCoreTranslation = safeCoreTranslation;
|
|
@@ -433,6 +435,18 @@ function createCoreComponentRegistration() {
|
|
|
433
435
|
strings: createCoreComponentStrings(),
|
|
434
436
|
};
|
|
435
437
|
}
|
|
438
|
+
/**
|
|
439
|
+
* Get core language codes as array (for Mongoose enums, etc.)
|
|
440
|
+
*/
|
|
441
|
+
function getCoreLanguageCodes() {
|
|
442
|
+
return Object.values(language_codes_1.LanguageCodes);
|
|
443
|
+
}
|
|
444
|
+
/**
|
|
445
|
+
* Get core language definitions
|
|
446
|
+
*/
|
|
447
|
+
function getCoreLanguageDefinitions() {
|
|
448
|
+
return createDefaultLanguages();
|
|
449
|
+
}
|
|
436
450
|
/**
|
|
437
451
|
* Create a pre-configured I18n engine with core components
|
|
438
452
|
*/
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { PluginI18nEngine } from './plugin-i18n-engine';
|
|
2
|
+
import { TranslationEngine } from './translation-engine';
|
|
3
|
+
/**
|
|
4
|
+
* Creates a TranslationEngine adapter from a PluginI18nEngine for a specific component.
|
|
5
|
+
* This allows PluginI18nEngine to be used where TranslationEngine interface is expected.
|
|
6
|
+
*
|
|
7
|
+
* @param pluginEngine - The PluginI18nEngine instance to wrap
|
|
8
|
+
* @param componentId - The component ID to use for translations
|
|
9
|
+
* @returns A TranslationEngine that delegates to the PluginI18nEngine
|
|
10
|
+
*
|
|
11
|
+
* @example
|
|
12
|
+
* ```typescript
|
|
13
|
+
* const pluginEngine = getMyPluginI18nEngine();
|
|
14
|
+
* const adapter = createTranslationAdapter(pluginEngine, 'my-component');
|
|
15
|
+
*
|
|
16
|
+
* // Now can be used where TranslationEngine is expected
|
|
17
|
+
* const error = new MyError(errorType, adapter);
|
|
18
|
+
* ```
|
|
19
|
+
*/
|
|
20
|
+
export declare function createTranslationAdapter<TStringKey extends string, TLanguage extends string>(pluginEngine: PluginI18nEngine<TLanguage>, componentId: string): TranslationEngine<TStringKey>;
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.createTranslationAdapter = createTranslationAdapter;
|
|
4
|
+
/**
|
|
5
|
+
* Creates a TranslationEngine adapter from a PluginI18nEngine for a specific component.
|
|
6
|
+
* This allows PluginI18nEngine to be used where TranslationEngine interface is expected.
|
|
7
|
+
*
|
|
8
|
+
* @param pluginEngine - The PluginI18nEngine instance to wrap
|
|
9
|
+
* @param componentId - The component ID to use for translations
|
|
10
|
+
* @returns A TranslationEngine that delegates to the PluginI18nEngine
|
|
11
|
+
*
|
|
12
|
+
* @example
|
|
13
|
+
* ```typescript
|
|
14
|
+
* const pluginEngine = getMyPluginI18nEngine();
|
|
15
|
+
* const adapter = createTranslationAdapter(pluginEngine, 'my-component');
|
|
16
|
+
*
|
|
17
|
+
* // Now can be used where TranslationEngine is expected
|
|
18
|
+
* const error = new MyError(errorType, adapter);
|
|
19
|
+
* ```
|
|
20
|
+
*/
|
|
21
|
+
function createTranslationAdapter(pluginEngine, componentId) {
|
|
22
|
+
return {
|
|
23
|
+
translate: (key, vars, lang) => {
|
|
24
|
+
try {
|
|
25
|
+
return pluginEngine.translate(componentId, key, vars, lang);
|
|
26
|
+
}
|
|
27
|
+
catch (error) {
|
|
28
|
+
// Fallback to key if translation fails
|
|
29
|
+
return String(key);
|
|
30
|
+
}
|
|
31
|
+
},
|
|
32
|
+
safeTranslate: (key, vars, lang) => {
|
|
33
|
+
return pluginEngine.safeTranslate(componentId, key, vars, lang);
|
|
34
|
+
},
|
|
35
|
+
};
|
|
36
|
+
}
|
package/dist/index.d.ts
CHANGED
|
@@ -35,6 +35,7 @@ export * from './registry-error-type';
|
|
|
35
35
|
export * from './translation-engine';
|
|
36
36
|
export * from './translation-request';
|
|
37
37
|
export * from './translation-response';
|
|
38
|
+
export * from './create-translation-adapter';
|
|
38
39
|
export { createCoreI18nEngine as createCoreI18n } from './core-i18n';
|
|
39
40
|
export { I18nEngine as I18n } from './i18n-engine';
|
|
40
41
|
export { PluginI18nEngine as PluginI18n } from './plugin-i18n-engine';
|
package/dist/index.js
CHANGED
|
@@ -54,6 +54,7 @@ __exportStar(require("./registry-error-type"), exports);
|
|
|
54
54
|
__exportStar(require("./translation-engine"), exports);
|
|
55
55
|
__exportStar(require("./translation-request"), exports);
|
|
56
56
|
__exportStar(require("./translation-response"), exports);
|
|
57
|
+
__exportStar(require("./create-translation-adapter"), exports);
|
|
57
58
|
// Re-export for convenience
|
|
58
59
|
var core_i18n_1 = require("./core-i18n");
|
|
59
60
|
Object.defineProperty(exports, "createCoreI18n", { enumerable: true, get: function () { return core_i18n_1.createCoreI18nEngine; } });
|
package/dist/typed-error.js
CHANGED
|
@@ -215,7 +215,7 @@ class UserError extends PluginTypedError<typeof UserErrorType, UserErrorStringKe
|
|
|
215
215
|
engine: PluginI18nEngine<CoreLanguageCode>,
|
|
216
216
|
type: UserErrorType,
|
|
217
217
|
otherVars?: Record<string, string | number>,
|
|
218
|
-
language?:
|
|
218
|
+
language?: CoreLanguageCode
|
|
219
219
|
) {
|
|
220
220
|
super(engine, 'user-system', type, userErrorReasonMap, language, otherVars);
|
|
221
221
|
}
|