@digitaldefiance/i18n-lib 1.0.1 → 1.0.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/enum-registry.d.ts +2 -2
- package/dist/i18n-engine.d.ts +2 -2
- package/dist/types.d.ts +16 -0
- package/dist/types.js +7 -0
- package/package.json +3 -2
package/dist/enum-registry.d.ts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { EnumLanguageTranslation } from './types';
|
|
2
2
|
export declare class EnumTranslationRegistry<TLanguage extends string> {
|
|
3
3
|
private translations;
|
|
4
4
|
private enumNames;
|
|
5
|
-
register<TEnum extends string | number>(enumObj: Record<string, TEnum>, translations:
|
|
5
|
+
register<TEnum extends string | number>(enumObj: Record<string, TEnum>, translations: EnumLanguageTranslation<TEnum, TLanguage>, enumName: string): void;
|
|
6
6
|
translate<TEnum extends string | number>(enumObj: Record<string, TEnum>, value: TEnum, language: TLanguage): string;
|
|
7
7
|
private getEnumName;
|
|
8
8
|
has(enumObj: any): boolean;
|
package/dist/i18n-engine.d.ts
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import { I18nConfig, I18nContext } from './types';
|
|
1
|
+
import { I18nConfig, I18nContext, EnumLanguageTranslation } from './types';
|
|
2
2
|
export declare class I18nEngine<TStringKey extends string, TLanguage extends string> {
|
|
3
3
|
private config;
|
|
4
4
|
private enumRegistry;
|
|
5
5
|
constructor(config: I18nConfig<TStringKey, TLanguage>);
|
|
6
6
|
translate(key: TStringKey, context: I18nContext<TLanguage>, vars?: Record<string, string | number>, language?: TLanguage, fallbackLanguage?: TLanguage): string;
|
|
7
7
|
translateEnum<TEnum extends string | number>(enumObj: Record<string, TEnum>, value: TEnum, language: TLanguage): string;
|
|
8
|
-
registerEnum<TEnum extends string | number>(enumObj: Record<string, TEnum>, translations:
|
|
8
|
+
registerEnum<TEnum extends string | number>(enumObj: Record<string, TEnum>, translations: EnumLanguageTranslation<TEnum, TLanguage>, enumName: string): void;
|
|
9
9
|
private getString;
|
|
10
10
|
getLanguageCode(language: TLanguage): string;
|
|
11
11
|
}
|
package/dist/types.d.ts
CHANGED
|
@@ -15,3 +15,19 @@ export interface I18nContext<TLanguage extends string> {
|
|
|
15
15
|
adminLanguage: TLanguage;
|
|
16
16
|
currentContext: LanguageContext;
|
|
17
17
|
}
|
|
18
|
+
/**
|
|
19
|
+
* Generic translation type for any enumeration
|
|
20
|
+
*/
|
|
21
|
+
export type EnumTranslation<T extends string | number> = {
|
|
22
|
+
[K in T]: string;
|
|
23
|
+
};
|
|
24
|
+
/**
|
|
25
|
+
* Generic language translation type for any enumeration
|
|
26
|
+
*/
|
|
27
|
+
export type EnumLanguageTranslation<T extends string | number, TLanguage extends string = string> = {
|
|
28
|
+
[L in TLanguage]: EnumTranslation<T>;
|
|
29
|
+
};
|
|
30
|
+
/**
|
|
31
|
+
* Helper function to create typed translations for an enumeration
|
|
32
|
+
*/
|
|
33
|
+
export declare function createTranslations<T extends string | number, TLanguage extends string>(translations: EnumLanguageTranslation<T, TLanguage>): EnumLanguageTranslation<T, TLanguage>;
|
package/dist/types.js
CHANGED
|
@@ -1,2 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.createTranslations = createTranslations;
|
|
4
|
+
/**
|
|
5
|
+
* Helper function to create typed translations for an enumeration
|
|
6
|
+
*/
|
|
7
|
+
function createTranslations(translations) {
|
|
8
|
+
return translations;
|
|
9
|
+
}
|
package/package.json
CHANGED
|
@@ -1,13 +1,14 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@digitaldefiance/i18n-lib",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.3",
|
|
4
4
|
"description": "Generic i18n library with enum translation support",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
7
7
|
"scripts": {
|
|
8
8
|
"build": "yarn tsc",
|
|
9
9
|
"test": "yarn jest",
|
|
10
|
-
"prepublishOnly": "yarn build"
|
|
10
|
+
"prepublishOnly": "yarn build",
|
|
11
|
+
"publish": "npm publish --access public"
|
|
11
12
|
},
|
|
12
13
|
"devDependencies": {
|
|
13
14
|
"@types/jest": "^29.0.0",
|