@payloadcms/translations 3.26.0-canary.bbb3083 → 3.26.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/dist/importDateFNSLocale.d.ts.map +1 -1
- package/dist/importDateFNSLocale.js +3 -1
- package/dist/importDateFNSLocale.js.map +1 -1
- package/dist/utilities/copyFile.d.ts +1 -1
- package/dist/utilities/copyFile.d.ts.map +1 -1
- package/dist/utilities/copyFile.js +1 -1
- package/dist/utilities/copyFile.js.map +1 -1
- package/dist/utilities/deepMergeSimple.d.ts.map +1 -1
- package/dist/utilities/deepMergeSimple.js +3 -0
- package/dist/utilities/deepMergeSimple.js.map +1 -1
- package/dist/utilities/ensureDirExists.d.ts +1 -1
- package/dist/utilities/ensureDirExists.d.ts.map +1 -1
- package/dist/utilities/ensureDirExists.js +3 -1
- package/dist/utilities/ensureDirExists.js.map +1 -1
- package/dist/utilities/getTranslation.d.ts.map +1 -1
- package/dist/utilities/getTranslation.js +3 -0
- package/dist/utilities/getTranslation.js.map +1 -1
- package/dist/utilities/getTranslationsByContext.d.ts +476 -1
- package/dist/utilities/getTranslationsByContext.d.ts.map +1 -1
- package/dist/utilities/getTranslationsByContext.js.map +1 -1
- package/dist/utilities/init.d.ts +9 -3
- package/dist/utilities/init.d.ts.map +1 -1
- package/dist/utilities/init.js +6 -3
- package/dist/utilities/init.js.map +1 -1
- package/dist/utilities/languages.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"importDateFNSLocale.d.ts","sourceRoot":"","sources":["../src/importDateFNSLocale.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,UAAU,CAAA;AAEtC,eAAO,MAAM,mBAAmB,WAAkB,MAAM,KAAG,OAAO,CAAC,MAAM,
|
|
1
|
+
{"version":3,"file":"importDateFNSLocale.d.ts","sourceRoot":"","sources":["../src/importDateFNSLocale.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,UAAU,CAAA;AAEtC,eAAO,MAAM,mBAAmB,WAAkB,MAAM,KAAG,OAAO,CAAC,MAAM,CA6JxE,CAAA"}
|
|
@@ -110,7 +110,9 @@ export const importDateFNSLocale = async (locale)=>{
|
|
|
110
110
|
result = (await import('date-fns/locale/zh-TW')).zhTW;
|
|
111
111
|
break;
|
|
112
112
|
}
|
|
113
|
-
if
|
|
113
|
+
// @ts-expect-error - I'm not sure if this is still necessary.
|
|
114
|
+
if (result?.default) {
|
|
115
|
+
// @ts-expect-error - I'm not sure if this is still necessary.
|
|
114
116
|
return result.default;
|
|
115
117
|
}
|
|
116
118
|
return result;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/importDateFNSLocale.ts"],"sourcesContent":["import type { Locale } from 'date-fns'\n\nexport const importDateFNSLocale = async (locale: string): Promise<Locale> => {\n let result\n\n switch (locale) {\n case 'ar':\n result = (await import('date-fns/locale/ar')).ar\n\n break\n case 'az':\n result = (await import('date-fns/locale/az')).az\n\n break\n case 'bg':\n result = (await import('date-fns/locale/bg')).bg\n\n break\n case 'ca':\n result = (await import('date-fns/locale/ca')).ca\n\n break\n case 'cs':\n result = (await import('date-fns/locale/cs')).cs\n\n break\n case 'da':\n result = (await import('date-fns/locale/da')).da\n\n break\n case 'de':\n result = (await import('date-fns/locale/de')).de\n\n break\n case 'en-US':\n result = (await import('date-fns/locale/en-US')).enUS\n\n break\n case 'es':\n result = (await import('date-fns/locale/es')).es\n\n break\n case 'et':\n result = (await import('date-fns/locale/et')).et\n\n break\n case 'fa-IR':\n result = (await import('date-fns/locale/fa-IR')).faIR\n\n break\n case 'fr':\n result = (await import('date-fns/locale/fr')).fr\n\n break\n case 'he':\n result = (await import('date-fns/locale/he')).he\n\n break\n case 'hr':\n result = (await import('date-fns/locale/hr')).hr\n\n break\n case 'hu':\n result = (await import('date-fns/locale/hu')).hu\n\n break\n case 'it':\n result = (await import('date-fns/locale/it')).it\n\n break\n case 'ja':\n result = (await import('date-fns/locale/ja')).ja\n\n break\n case 'ko':\n result = (await import('date-fns/locale/ko')).ko\n\n break\n case 'lt':\n result = (await import('date-fns/locale/lt')).lt\n\n break\n case 'nb':\n result = (await import('date-fns/locale/nb')).nb\n\n break\n case 'nl':\n result = (await import('date-fns/locale/nl')).nl\n\n break\n case 'pl':\n result = (await import('date-fns/locale/pl')).pl\n\n break\n case 'pt':\n result = (await import('date-fns/locale/pt')).pt\n\n break\n case 'ro':\n result = (await import('date-fns/locale/ro')).ro\n\n break\n case 'rs':\n result = (await import('date-fns/locale/sr')).sr\n\n break\n case 'rs-Latin':\n result = (await import('date-fns/locale/sr-Latn')).srLatn\n\n break\n case 'ru':\n result = (await import('date-fns/locale/ru')).ru\n\n break\n case 'sk':\n result = (await import('date-fns/locale/sk')).sk\n\n break\n case 'sl-SI':\n result = (await import('date-fns/locale/sl')).sl\n\n break\n case 'sv':\n result = (await import('date-fns/locale/sv')).sv\n\n break\n case 'th':\n result = (await import('date-fns/locale/th')).th\n\n break\n case 'tr':\n result = (await import('date-fns/locale/tr')).tr\n\n break\n case 'uk':\n result = (await import('date-fns/locale/uk')).uk\n\n break\n case 'vi':\n result = (await import('date-fns/locale/vi')).vi\n\n break\n case 'zh-CN':\n result = (await import('date-fns/locale/zh-CN')).zhCN\n\n break\n case 'zh-TW':\n result = (await import('date-fns/locale/zh-TW')).zhTW\n\n break\n }\n\n if (result
|
|
1
|
+
{"version":3,"sources":["../src/importDateFNSLocale.ts"],"sourcesContent":["import type { Locale } from 'date-fns'\n\nexport const importDateFNSLocale = async (locale: string): Promise<Locale> => {\n let result\n\n switch (locale) {\n case 'ar':\n result = (await import('date-fns/locale/ar')).ar\n\n break\n case 'az':\n result = (await import('date-fns/locale/az')).az\n\n break\n case 'bg':\n result = (await import('date-fns/locale/bg')).bg\n\n break\n case 'ca':\n result = (await import('date-fns/locale/ca')).ca\n\n break\n case 'cs':\n result = (await import('date-fns/locale/cs')).cs\n\n break\n case 'da':\n result = (await import('date-fns/locale/da')).da\n\n break\n case 'de':\n result = (await import('date-fns/locale/de')).de\n\n break\n case 'en-US':\n result = (await import('date-fns/locale/en-US')).enUS\n\n break\n case 'es':\n result = (await import('date-fns/locale/es')).es\n\n break\n case 'et':\n result = (await import('date-fns/locale/et')).et\n\n break\n case 'fa-IR':\n result = (await import('date-fns/locale/fa-IR')).faIR\n\n break\n case 'fr':\n result = (await import('date-fns/locale/fr')).fr\n\n break\n case 'he':\n result = (await import('date-fns/locale/he')).he\n\n break\n case 'hr':\n result = (await import('date-fns/locale/hr')).hr\n\n break\n case 'hu':\n result = (await import('date-fns/locale/hu')).hu\n\n break\n case 'it':\n result = (await import('date-fns/locale/it')).it\n\n break\n case 'ja':\n result = (await import('date-fns/locale/ja')).ja\n\n break\n case 'ko':\n result = (await import('date-fns/locale/ko')).ko\n\n break\n case 'lt':\n result = (await import('date-fns/locale/lt')).lt\n\n break\n case 'nb':\n result = (await import('date-fns/locale/nb')).nb\n\n break\n case 'nl':\n result = (await import('date-fns/locale/nl')).nl\n\n break\n case 'pl':\n result = (await import('date-fns/locale/pl')).pl\n\n break\n case 'pt':\n result = (await import('date-fns/locale/pt')).pt\n\n break\n case 'ro':\n result = (await import('date-fns/locale/ro')).ro\n\n break\n case 'rs':\n result = (await import('date-fns/locale/sr')).sr\n\n break\n case 'rs-Latin':\n result = (await import('date-fns/locale/sr-Latn')).srLatn\n\n break\n case 'ru':\n result = (await import('date-fns/locale/ru')).ru\n\n break\n case 'sk':\n result = (await import('date-fns/locale/sk')).sk\n\n break\n case 'sl-SI':\n result = (await import('date-fns/locale/sl')).sl\n\n break\n case 'sv':\n result = (await import('date-fns/locale/sv')).sv\n\n break\n case 'th':\n result = (await import('date-fns/locale/th')).th\n\n break\n case 'tr':\n result = (await import('date-fns/locale/tr')).tr\n\n break\n case 'uk':\n result = (await import('date-fns/locale/uk')).uk\n\n break\n case 'vi':\n result = (await import('date-fns/locale/vi')).vi\n\n break\n case 'zh-CN':\n result = (await import('date-fns/locale/zh-CN')).zhCN\n\n break\n case 'zh-TW':\n result = (await import('date-fns/locale/zh-TW')).zhTW\n\n break\n }\n\n // @ts-expect-error - I'm not sure if this is still necessary.\n if (result?.default) {\n // @ts-expect-error - I'm not sure if this is still necessary.\n return result.default\n }\n\n return result as Locale\n}\n"],"names":["importDateFNSLocale","locale","result","ar","az","bg","ca","cs","da","de","enUS","es","et","faIR","fr","he","hr","hu","it","ja","ko","lt","nb","nl","pl","pt","ro","sr","srLatn","ru","sk","sl","sv","th","tr","uk","vi","zhCN","zhTW","default"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export declare function copyFile(source:
|
|
1
|
+
export declare function copyFile(source: string, destination: string): void;
|
|
2
2
|
//# sourceMappingURL=copyFile.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"copyFile.d.ts","sourceRoot":"","sources":["../../src/utilities/copyFile.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"copyFile.d.ts","sourceRoot":"","sources":["../../src/utilities/copyFile.ts"],"names":[],"mappings":"AAGA,wBAAgB,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,QAS3D"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/utilities/copyFile.ts"],"sourcesContent":["
|
|
1
|
+
{"version":3,"sources":["../../src/utilities/copyFile.ts"],"sourcesContent":["/* eslint-disable no-console */\nimport fs from 'fs'\n\nexport function copyFile(source: string, destination: string) {\n fs.copyFile(source, destination, (err) => {\n if (err) {\n // Handle error\n console.error(`Error copying file from ${source} to ${destination}:`, err)\n return\n }\n console.log(`File copied successfully from ${source} to ${destination}.`)\n })\n}\n"],"names":["fs","copyFile","source","destination","err","console","error","log"],"mappings":"AAAA,6BAA6B,GAC7B,OAAOA,QAAQ,KAAI;AAEnB,OAAO,SAASC,SAASC,MAAc,EAAEC,WAAmB;IAC1DH,GAAGC,QAAQ,CAACC,QAAQC,aAAa,CAACC;QAChC,IAAIA,KAAK;YACP,eAAe;YACfC,QAAQC,KAAK,CAAC,CAAC,wBAAwB,EAAEJ,OAAO,IAAI,EAAEC,YAAY,CAAC,CAAC,EAAEC;YACtE;QACF;QACAC,QAAQE,GAAG,CAAC,CAAC,8BAA8B,EAAEL,OAAO,IAAI,EAAEC,YAAY,CAAC,CAAC;IAC1E;AACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deepMergeSimple.d.ts","sourceRoot":"","sources":["../../src/utilities/deepMergeSimple.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,wBAAgB,eAAe,CAAC,CAAC,GAAG,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,CAAC,
|
|
1
|
+
{"version":3,"file":"deepMergeSimple.d.ts","sourceRoot":"","sources":["../../src/utilities/deepMergeSimple.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,wBAAgB,eAAe,CAAC,CAAC,GAAG,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,CAAC,CAiBzE"}
|
|
@@ -13,9 +13,12 @@
|
|
|
13
13
|
};
|
|
14
14
|
for(const key in obj2){
|
|
15
15
|
if (Object.prototype.hasOwnProperty.call(obj2, key)) {
|
|
16
|
+
// @ts-expect-error - vestiges of when tsconfig was not strict. Feel free to improve
|
|
16
17
|
if (typeof obj2[key] === 'object' && !Array.isArray(obj2[key]) && obj1[key]) {
|
|
18
|
+
// @ts-expect-error - vestiges of when tsconfig was not strict. Feel free to improve
|
|
17
19
|
output[key] = deepMergeSimple(obj1[key], obj2[key]);
|
|
18
20
|
} else {
|
|
21
|
+
// @ts-expect-error - vestiges of when tsconfig was not strict. Feel free to improve
|
|
19
22
|
output[key] = obj2[key];
|
|
20
23
|
}
|
|
21
24
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/utilities/deepMergeSimple.ts"],"sourcesContent":["/**\n * Very simple, but fast deepMerge implementation. Only deepMerges objects, not arrays and clones everything.\n * Do not use this if your object contains any complex objects like React Components, or if you would like to combine Arrays.\n * If you only have simple objects and need a fast deepMerge, this is the function for you.\n *\n * obj2 takes precedence over obj1 - thus if obj2 has a key that obj1 also has, obj2's value will be used.\n *\n * @param obj1 base object\n * @param obj2 object to merge \"into\" obj1\n */\nexport function deepMergeSimple<T = object>(obj1: object, obj2: object): T {\n const output = { ...obj1 }\n\n for (const key in obj2) {\n if (Object.prototype.hasOwnProperty.call(obj2, key)) {\n if (typeof obj2[key] === 'object' && !Array.isArray(obj2[key]) && obj1[key]) {\n output[key] = deepMergeSimple(obj1[key], obj2[key])\n } else {\n output[key] = obj2[key]\n }\n }\n }\n\n return output as T\n}\n"],"names":["deepMergeSimple","obj1","obj2","output","key","Object","prototype","hasOwnProperty","call","Array","isArray"],"mappings":"AAAA;;;;;;;;;CASC,GACD,OAAO,SAASA,gBAA4BC,IAAY,EAAEC,IAAY;IACpE,MAAMC,SAAS;QAAE,GAAGF,IAAI;IAAC;IAEzB,IAAK,MAAMG,OAAOF,KAAM;QACtB,IAAIG,OAAOC,SAAS,CAACC,cAAc,CAACC,IAAI,CAACN,MAAME,MAAM;YACnD,IAAI,OAAOF,IAAI,CAACE,IAAI,KAAK,YAAY,CAACK,MAAMC,OAAO,CAACR,IAAI,CAACE,IAAI,KAAKH,IAAI,CAACG,IAAI,EAAE;
|
|
1
|
+
{"version":3,"sources":["../../src/utilities/deepMergeSimple.ts"],"sourcesContent":["/**\n * Very simple, but fast deepMerge implementation. Only deepMerges objects, not arrays and clones everything.\n * Do not use this if your object contains any complex objects like React Components, or if you would like to combine Arrays.\n * If you only have simple objects and need a fast deepMerge, this is the function for you.\n *\n * obj2 takes precedence over obj1 - thus if obj2 has a key that obj1 also has, obj2's value will be used.\n *\n * @param obj1 base object\n * @param obj2 object to merge \"into\" obj1\n */\nexport function deepMergeSimple<T = object>(obj1: object, obj2: object): T {\n const output = { ...obj1 }\n\n for (const key in obj2) {\n if (Object.prototype.hasOwnProperty.call(obj2, key)) {\n // @ts-expect-error - vestiges of when tsconfig was not strict. Feel free to improve\n if (typeof obj2[key] === 'object' && !Array.isArray(obj2[key]) && obj1[key]) {\n // @ts-expect-error - vestiges of when tsconfig was not strict. Feel free to improve\n output[key] = deepMergeSimple(obj1[key], obj2[key])\n } else {\n // @ts-expect-error - vestiges of when tsconfig was not strict. Feel free to improve\n output[key] = obj2[key]\n }\n }\n }\n\n return output as T\n}\n"],"names":["deepMergeSimple","obj1","obj2","output","key","Object","prototype","hasOwnProperty","call","Array","isArray"],"mappings":"AAAA;;;;;;;;;CASC,GACD,OAAO,SAASA,gBAA4BC,IAAY,EAAEC,IAAY;IACpE,MAAMC,SAAS;QAAE,GAAGF,IAAI;IAAC;IAEzB,IAAK,MAAMG,OAAOF,KAAM;QACtB,IAAIG,OAAOC,SAAS,CAACC,cAAc,CAACC,IAAI,CAACN,MAAME,MAAM;YACnD,oFAAoF;YACpF,IAAI,OAAOF,IAAI,CAACE,IAAI,KAAK,YAAY,CAACK,MAAMC,OAAO,CAACR,IAAI,CAACE,IAAI,KAAKH,IAAI,CAACG,IAAI,EAAE;gBAC3E,oFAAoF;gBACpFD,MAAM,CAACC,IAAI,GAAGJ,gBAAgBC,IAAI,CAACG,IAAI,EAAEF,IAAI,CAACE,IAAI;YACpD,OAAO;gBACL,oFAAoF;gBACpFD,MAAM,CAACC,IAAI,GAAGF,IAAI,CAACE,IAAI;YACzB;QACF;IACF;IAEA,OAAOD;AACT"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export declare function ensureDirectoryExists(directory:
|
|
1
|
+
export declare function ensureDirectoryExists(directory: string): void;
|
|
2
2
|
//# sourceMappingURL=ensureDirExists.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ensureDirExists.d.ts","sourceRoot":"","sources":["../../src/utilities/ensureDirExists.ts"],"names":[],"mappings":"AAEA,wBAAgB,qBAAqB,CAAC,SAAS,
|
|
1
|
+
{"version":3,"file":"ensureDirExists.d.ts","sourceRoot":"","sources":["../../src/utilities/ensureDirExists.ts"],"names":[],"mappings":"AAEA,wBAAgB,qBAAqB,CAAC,SAAS,EAAE,MAAM,QAUtD"}
|
|
@@ -7,7 +7,9 @@ export function ensureDirectoryExists(directory) {
|
|
|
7
7
|
});
|
|
8
8
|
}
|
|
9
9
|
} catch (error) {
|
|
10
|
-
|
|
10
|
+
const msg = error instanceof Error ? error.message : 'Unknown error';
|
|
11
|
+
// eslint-disable-next-line no-console
|
|
12
|
+
console.error(`Error creating directory '${directory}': ${msg}`);
|
|
11
13
|
}
|
|
12
14
|
}
|
|
13
15
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/utilities/ensureDirExists.ts"],"sourcesContent":["import fs from 'fs'\n\nexport function ensureDirectoryExists(directory) {\n try {\n if (!fs.existsSync(directory)) {\n fs.mkdirSync(directory, { recursive: true })\n }\n } catch (error) {\n console.error(`Error creating directory '${directory}': ${
|
|
1
|
+
{"version":3,"sources":["../../src/utilities/ensureDirExists.ts"],"sourcesContent":["import fs from 'fs'\n\nexport function ensureDirectoryExists(directory: string) {\n try {\n if (!fs.existsSync(directory)) {\n fs.mkdirSync(directory, { recursive: true })\n }\n } catch (error) {\n const msg = error instanceof Error ? error.message : 'Unknown error'\n // eslint-disable-next-line no-console\n console.error(`Error creating directory '${directory}': ${msg}`)\n }\n}\n"],"names":["fs","ensureDirectoryExists","directory","existsSync","mkdirSync","recursive","error","msg","Error","message","console"],"mappings":"AAAA,OAAOA,QAAQ,KAAI;AAEnB,OAAO,SAASC,sBAAsBC,SAAiB;IACrD,IAAI;QACF,IAAI,CAACF,GAAGG,UAAU,CAACD,YAAY;YAC7BF,GAAGI,SAAS,CAACF,WAAW;gBAAEG,WAAW;YAAK;QAC5C;IACF,EAAE,OAAOC,OAAO;QACd,MAAMC,MAAMD,iBAAiBE,QAAQF,MAAMG,OAAO,GAAG;QACrD,sCAAsC;QACtCC,QAAQJ,KAAK,CAAC,CAAC,0BAA0B,EAAEJ,UAAU,GAAG,EAAEK,KAAK;IACjE;AACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getTranslation.d.ts","sourceRoot":"","sources":["../../src/utilities/getTranslation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,OAAO,CAAA;AAEhC,OAAO,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAElD,KAAK,SAAS,GACV,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;IAAE,CAAC,EAAE,SAAS,CAAA;CAAE,KAAK,MAAM,CAAC,GACrC,GAAG,CAAC,OAAO,GACX,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GACtB,MAAM,CAAA;AAEV,eAAO,MAAM,cAAc,GAAI,CAAC,SAAS,SAAS,SACzC,CAAC,QACF,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,kBAAkB,GAAG,UAAU,GAAG,GAAG,CAAC,KAChE,CAAC,SAAS,GAAG,CAAC,OAAO,GAAG,GAAG,CAAC,OAAO,GAAG,
|
|
1
|
+
{"version":3,"file":"getTranslation.d.ts","sourceRoot":"","sources":["../../src/utilities/getTranslation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,OAAO,CAAA;AAEhC,OAAO,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAElD,KAAK,SAAS,GACV,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;IAAE,CAAC,EAAE,SAAS,CAAA;CAAE,KAAK,MAAM,CAAC,GACrC,GAAG,CAAC,OAAO,GACX,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GACtB,MAAM,CAAA;AAEV,eAAO,MAAM,cAAc,GAAI,CAAC,SAAS,SAAS,SACzC,CAAC,QACF,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,kBAAkB,GAAG,UAAU,GAAG,GAAG,CAAC,KAChE,CAAC,SAAS,GAAG,CAAC,OAAO,GAAG,GAAG,CAAC,OAAO,GAAG,MA4BxC,CAAA"}
|
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
export const getTranslation = (label, i18n)=>{
|
|
2
2
|
// If it's a Record, look for translation. If string or React Element, pass through
|
|
3
3
|
if (typeof label === 'object' && !Object.prototype.hasOwnProperty.call(label, '$$typeof')) {
|
|
4
|
+
// @ts-expect-error - vestiges of when tsconfig was not strict. Feel free to improve
|
|
4
5
|
if (label[i18n.language]) {
|
|
6
|
+
// @ts-expect-error - vestiges of when tsconfig was not strict. Feel free to improve
|
|
5
7
|
return label[i18n.language];
|
|
6
8
|
}
|
|
7
9
|
let fallbacks = [];
|
|
@@ -13,6 +15,7 @@ export const getTranslation = (label, i18n)=>{
|
|
|
13
15
|
fallbacks = i18n.fallbackLanguage;
|
|
14
16
|
}
|
|
15
17
|
const fallbackLang = fallbacks.find((language)=>label[language]);
|
|
18
|
+
// @ts-expect-error - vestiges of when tsconfig was not strict. Feel free to improve
|
|
16
19
|
return fallbackLang && label[fallbackLang] ? label[fallbackLang] : label[Object.keys(label)[0]];
|
|
17
20
|
}
|
|
18
21
|
if (typeof label === 'function') {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/utilities/getTranslation.ts"],"sourcesContent":["import type { JSX } from 'react'\n\nimport type { I18n, TFunction } from '../types.js'\n\ntype LabelType =\n | (({ t }: { t: TFunction }) => string)\n | JSX.Element\n | Record<string, string>\n | string\n\nexport const getTranslation = <T extends LabelType>(\n label: T,\n i18n: Pick<I18n<any, any>, 'fallbackLanguage' | 'language' | 't'>,\n): T extends JSX.Element ? JSX.Element : string => {\n // If it's a Record, look for translation. If string or React Element, pass through\n if (typeof label === 'object' && !Object.prototype.hasOwnProperty.call(label, '$$typeof')) {\n if (label[i18n.language]) {\n return label[i18n.language]\n }\n\n let fallbacks: string[] = []\n if (typeof i18n.fallbackLanguage === 'string') {\n fallbacks = [i18n.fallbackLanguage]\n } else if (Array.isArray(i18n.fallbackLanguage)) {\n fallbacks = i18n.fallbackLanguage\n }\n\n const fallbackLang = fallbacks.find((language) => label[language])\n\n return fallbackLang && label[fallbackLang] ? label[fallbackLang] : label[Object.keys(label)[0]]\n }\n\n if (typeof label === 'function') {\n return label({ t: i18n.t }) as unknown as T extends JSX.Element ? JSX.Element : string\n }\n\n // If it's a React Element or string, then we should just pass it through\n return label as unknown as T extends JSX.Element ? JSX.Element : string\n}\n"],"names":["getTranslation","label","i18n","Object","prototype","hasOwnProperty","call","language","fallbacks","fallbackLanguage","Array","isArray","fallbackLang","find","keys","t"],"mappings":"AAUA,OAAO,MAAMA,iBAAiB,CAC5BC,OACAC;IAEA,mFAAmF;IACnF,IAAI,OAAOD,UAAU,YAAY,CAACE,OAAOC,SAAS,CAACC,cAAc,CAACC,IAAI,CAACL,OAAO,aAAa;QACzF,IAAIA,KAAK,CAACC,KAAKK,QAAQ,CAAC,EAAE;YACxB,OAAON,KAAK,CAACC,KAAKK,QAAQ,CAAC;QAC7B;QAEA,IAAIC,YAAsB,EAAE;QAC5B,IAAI,OAAON,KAAKO,gBAAgB,KAAK,UAAU;YAC7CD,YAAY;gBAACN,KAAKO,gBAAgB;aAAC;QACrC,OAAO,IAAIC,MAAMC,OAAO,CAACT,KAAKO,gBAAgB,GAAG;YAC/CD,YAAYN,KAAKO,gBAAgB;QACnC;QAEA,MAAMG,eAAeJ,UAAUK,IAAI,CAAC,CAACN,WAAaN,KAAK,CAACM,
|
|
1
|
+
{"version":3,"sources":["../../src/utilities/getTranslation.ts"],"sourcesContent":["import type { JSX } from 'react'\n\nimport type { I18n, TFunction } from '../types.js'\n\ntype LabelType =\n | (({ t }: { t: TFunction }) => string)\n | JSX.Element\n | Record<string, string>\n | string\n\nexport const getTranslation = <T extends LabelType>(\n label: T,\n i18n: Pick<I18n<any, any>, 'fallbackLanguage' | 'language' | 't'>,\n): T extends JSX.Element ? JSX.Element : string => {\n // If it's a Record, look for translation. If string or React Element, pass through\n if (typeof label === 'object' && !Object.prototype.hasOwnProperty.call(label, '$$typeof')) {\n // @ts-expect-error - vestiges of when tsconfig was not strict. Feel free to improve\n if (label[i18n.language]) {\n // @ts-expect-error - vestiges of when tsconfig was not strict. Feel free to improve\n return label[i18n.language]\n }\n\n let fallbacks: string[] = []\n if (typeof i18n.fallbackLanguage === 'string') {\n fallbacks = [i18n.fallbackLanguage]\n } else if (Array.isArray(i18n.fallbackLanguage)) {\n fallbacks = i18n.fallbackLanguage\n }\n\n const fallbackLang = fallbacks.find((language) => label[language as keyof typeof label])\n\n // @ts-expect-error - vestiges of when tsconfig was not strict. Feel free to improve\n return fallbackLang && label[fallbackLang] ? label[fallbackLang] : label[Object.keys(label)[0]]\n }\n\n if (typeof label === 'function') {\n return label({ t: i18n.t }) as unknown as T extends JSX.Element ? JSX.Element : string\n }\n\n // If it's a React Element or string, then we should just pass it through\n return label as unknown as T extends JSX.Element ? JSX.Element : string\n}\n"],"names":["getTranslation","label","i18n","Object","prototype","hasOwnProperty","call","language","fallbacks","fallbackLanguage","Array","isArray","fallbackLang","find","keys","t"],"mappings":"AAUA,OAAO,MAAMA,iBAAiB,CAC5BC,OACAC;IAEA,mFAAmF;IACnF,IAAI,OAAOD,UAAU,YAAY,CAACE,OAAOC,SAAS,CAACC,cAAc,CAACC,IAAI,CAACL,OAAO,aAAa;QACzF,oFAAoF;QACpF,IAAIA,KAAK,CAACC,KAAKK,QAAQ,CAAC,EAAE;YACxB,oFAAoF;YACpF,OAAON,KAAK,CAACC,KAAKK,QAAQ,CAAC;QAC7B;QAEA,IAAIC,YAAsB,EAAE;QAC5B,IAAI,OAAON,KAAKO,gBAAgB,KAAK,UAAU;YAC7CD,YAAY;gBAACN,KAAKO,gBAAgB;aAAC;QACrC,OAAO,IAAIC,MAAMC,OAAO,CAACT,KAAKO,gBAAgB,GAAG;YAC/CD,YAAYN,KAAKO,gBAAgB;QACnC;QAEA,MAAMG,eAAeJ,UAAUK,IAAI,CAAC,CAACN,WAAaN,KAAK,CAACM,SAA+B;QAEvF,oFAAoF;QACpF,OAAOK,gBAAgBX,KAAK,CAACW,aAAa,GAAGX,KAAK,CAACW,aAAa,GAAGX,KAAK,CAACE,OAAOW,IAAI,CAACb,MAAM,CAAC,EAAE,CAAC;IACjG;IAEA,IAAI,OAAOA,UAAU,YAAY;QAC/B,OAAOA,MAAM;YAAEc,GAAGb,KAAKa,CAAC;QAAC;IAC3B;IAEA,yEAAyE;IACzE,OAAOd;AACT,EAAC"}
|
|
@@ -1,3 +1,478 @@
|
|
|
1
1
|
import type { Language } from '../types.js';
|
|
2
|
-
export declare const getTranslationsByContext: (selectedLanguage: Language, context: "api" | "client") => {
|
|
2
|
+
export declare const getTranslationsByContext: (selectedLanguage: Language, context: "api" | "client") => {
|
|
3
|
+
authentication: {
|
|
4
|
+
account: string;
|
|
5
|
+
accountOfCurrentUser: string;
|
|
6
|
+
accountVerified: string;
|
|
7
|
+
alreadyActivated: string;
|
|
8
|
+
alreadyLoggedIn: string;
|
|
9
|
+
apiKey: string;
|
|
10
|
+
authenticated: string;
|
|
11
|
+
backToLogin: string;
|
|
12
|
+
beginCreateFirstUser: string;
|
|
13
|
+
changePassword: string;
|
|
14
|
+
checkYourEmailForPasswordReset: string;
|
|
15
|
+
confirmGeneration: string;
|
|
16
|
+
confirmPassword: string;
|
|
17
|
+
createFirstUser: string;
|
|
18
|
+
emailNotValid: string;
|
|
19
|
+
emailOrUsername: string;
|
|
20
|
+
emailSent: string;
|
|
21
|
+
emailVerified: string;
|
|
22
|
+
enableAPIKey: string;
|
|
23
|
+
failedToUnlock: string;
|
|
24
|
+
forceUnlock: string;
|
|
25
|
+
forgotPassword: string;
|
|
26
|
+
forgotPasswordEmailInstructions: string;
|
|
27
|
+
forgotPasswordUsernameInstructions: string;
|
|
28
|
+
usernameNotValid: string;
|
|
29
|
+
forgotPasswordQuestion: string;
|
|
30
|
+
generate: string;
|
|
31
|
+
generateNewAPIKey: string;
|
|
32
|
+
generatingNewAPIKeyWillInvalidate: string;
|
|
33
|
+
lockUntil: string;
|
|
34
|
+
logBackIn: string;
|
|
35
|
+
loggedIn: string;
|
|
36
|
+
loggedInChangePassword: string;
|
|
37
|
+
loggedOutInactivity: string;
|
|
38
|
+
loggedOutSuccessfully: string;
|
|
39
|
+
loggingOut: string;
|
|
40
|
+
login: string;
|
|
41
|
+
loginAttempts: string;
|
|
42
|
+
loginUser: string;
|
|
43
|
+
loginWithAnotherUser: string;
|
|
44
|
+
logOut: string;
|
|
45
|
+
logout: string;
|
|
46
|
+
logoutSuccessful: string;
|
|
47
|
+
logoutUser: string;
|
|
48
|
+
newAccountCreated: string;
|
|
49
|
+
newAPIKeyGenerated: string;
|
|
50
|
+
newPassword: string;
|
|
51
|
+
passed: string;
|
|
52
|
+
passwordResetSuccessfully: string;
|
|
53
|
+
resetPassword: string;
|
|
54
|
+
resetPasswordExpiration: string;
|
|
55
|
+
resetPasswordToken: string;
|
|
56
|
+
resetYourPassword: string;
|
|
57
|
+
stayLoggedIn: string;
|
|
58
|
+
successfullyRegisteredFirstUser: string;
|
|
59
|
+
successfullyUnlocked: string;
|
|
60
|
+
tokenRefreshSuccessful: string;
|
|
61
|
+
unableToVerify: string;
|
|
62
|
+
username: string;
|
|
63
|
+
verified: string;
|
|
64
|
+
verifiedSuccessfully: string;
|
|
65
|
+
verify: string;
|
|
66
|
+
verifyUser: string;
|
|
67
|
+
verifyYourEmail: string;
|
|
68
|
+
youAreInactive: string;
|
|
69
|
+
youAreReceivingResetPassword: string;
|
|
70
|
+
youDidNotRequestPassword: string;
|
|
71
|
+
};
|
|
72
|
+
error: {
|
|
73
|
+
accountAlreadyActivated: string;
|
|
74
|
+
autosaving: string;
|
|
75
|
+
correctInvalidFields: string;
|
|
76
|
+
deletingFile: string;
|
|
77
|
+
deletingTitle: string;
|
|
78
|
+
emailOrPasswordIncorrect: string;
|
|
79
|
+
followingFieldsInvalid_one: string;
|
|
80
|
+
followingFieldsInvalid_other: string;
|
|
81
|
+
incorrectCollection: string;
|
|
82
|
+
invalidFileType: string;
|
|
83
|
+
invalidFileTypeValue: string;
|
|
84
|
+
invalidRequestArgs: string;
|
|
85
|
+
loadingDocument: string;
|
|
86
|
+
localesNotSaved_one: string;
|
|
87
|
+
localesNotSaved_other: string;
|
|
88
|
+
logoutFailed: string;
|
|
89
|
+
missingEmail: string;
|
|
90
|
+
missingIDOfDocument: string;
|
|
91
|
+
missingIDOfVersion: string;
|
|
92
|
+
missingRequiredData: string;
|
|
93
|
+
noFilesUploaded: string;
|
|
94
|
+
noMatchedField: string;
|
|
95
|
+
notAllowedToAccessPage: string;
|
|
96
|
+
notAllowedToPerformAction: string;
|
|
97
|
+
notFound: string;
|
|
98
|
+
noUser: string;
|
|
99
|
+
previewing: string;
|
|
100
|
+
problemUploadingFile: string;
|
|
101
|
+
tokenInvalidOrExpired: string;
|
|
102
|
+
tokenNotProvided: string;
|
|
103
|
+
unableToDeleteCount: string;
|
|
104
|
+
unableToReindexCollection: string;
|
|
105
|
+
unableToUpdateCount: string;
|
|
106
|
+
unauthorized: string;
|
|
107
|
+
unauthorizedAdmin: string;
|
|
108
|
+
unknown: string;
|
|
109
|
+
unPublishingDocument: string;
|
|
110
|
+
unspecific: string;
|
|
111
|
+
userEmailAlreadyRegistered: string;
|
|
112
|
+
userLocked: string;
|
|
113
|
+
usernameAlreadyRegistered: string;
|
|
114
|
+
usernameOrPasswordIncorrect: string;
|
|
115
|
+
valueMustBeUnique: string;
|
|
116
|
+
verificationTokenInvalid: string;
|
|
117
|
+
};
|
|
118
|
+
fields: {
|
|
119
|
+
addLabel: string;
|
|
120
|
+
addLink: string;
|
|
121
|
+
addNew: string;
|
|
122
|
+
addNewLabel: string;
|
|
123
|
+
addRelationship: string;
|
|
124
|
+
addUpload: string;
|
|
125
|
+
block: string;
|
|
126
|
+
blocks: string;
|
|
127
|
+
blockType: string;
|
|
128
|
+
chooseBetweenCustomTextOrDocument: string;
|
|
129
|
+
chooseDocumentToLink: string;
|
|
130
|
+
chooseFromExisting: string;
|
|
131
|
+
chooseLabel: string;
|
|
132
|
+
collapseAll: string;
|
|
133
|
+
customURL: string;
|
|
134
|
+
editLabelData: string;
|
|
135
|
+
editLink: string;
|
|
136
|
+
editRelationship: string;
|
|
137
|
+
enterURL: string;
|
|
138
|
+
internalLink: string;
|
|
139
|
+
itemsAndMore: string;
|
|
140
|
+
labelRelationship: string;
|
|
141
|
+
latitude: string;
|
|
142
|
+
linkedTo: string;
|
|
143
|
+
linkType: string;
|
|
144
|
+
longitude: string;
|
|
145
|
+
newLabel: string;
|
|
146
|
+
openInNewTab: string;
|
|
147
|
+
passwordsDoNotMatch: string;
|
|
148
|
+
relatedDocument: string;
|
|
149
|
+
relationTo: string;
|
|
150
|
+
removeRelationship: string;
|
|
151
|
+
removeUpload: string;
|
|
152
|
+
saveChanges: string;
|
|
153
|
+
searchForBlock: string;
|
|
154
|
+
selectExistingLabel: string;
|
|
155
|
+
selectFieldsToEdit: string;
|
|
156
|
+
showAll: string;
|
|
157
|
+
swapRelationship: string;
|
|
158
|
+
swapUpload: string;
|
|
159
|
+
textToDisplay: string;
|
|
160
|
+
toggleBlock: string;
|
|
161
|
+
uploadNewLabel: string;
|
|
162
|
+
};
|
|
163
|
+
general: {
|
|
164
|
+
aboutToDelete: string;
|
|
165
|
+
aboutToDeleteCount_many: string;
|
|
166
|
+
aboutToDeleteCount_one: string;
|
|
167
|
+
aboutToDeleteCount_other: string;
|
|
168
|
+
addBelow: string;
|
|
169
|
+
addFilter: string;
|
|
170
|
+
adminTheme: string;
|
|
171
|
+
all: string;
|
|
172
|
+
allCollections: string;
|
|
173
|
+
and: string;
|
|
174
|
+
anotherUser: string;
|
|
175
|
+
anotherUserTakenOver: string;
|
|
176
|
+
applyChanges: string;
|
|
177
|
+
ascending: string;
|
|
178
|
+
automatic: string;
|
|
179
|
+
backToDashboard: string;
|
|
180
|
+
cancel: string;
|
|
181
|
+
changesNotSaved: string;
|
|
182
|
+
clearAll: string;
|
|
183
|
+
close: string;
|
|
184
|
+
collapse: string;
|
|
185
|
+
collections: string;
|
|
186
|
+
columns: string;
|
|
187
|
+
columnToSort: string;
|
|
188
|
+
confirm: string;
|
|
189
|
+
confirmCopy: string;
|
|
190
|
+
confirmDeletion: string;
|
|
191
|
+
confirmDuplication: string;
|
|
192
|
+
confirmReindex: string;
|
|
193
|
+
confirmReindexAll: string;
|
|
194
|
+
confirmReindexDescription: string;
|
|
195
|
+
confirmReindexDescriptionAll: string;
|
|
196
|
+
copied: string;
|
|
197
|
+
copy: string;
|
|
198
|
+
copying: string;
|
|
199
|
+
copyWarning: string;
|
|
200
|
+
create: string;
|
|
201
|
+
created: string;
|
|
202
|
+
createdAt: string;
|
|
203
|
+
createNew: string;
|
|
204
|
+
createNewLabel: string;
|
|
205
|
+
creating: string;
|
|
206
|
+
creatingNewLabel: string;
|
|
207
|
+
currentlyEditing: string;
|
|
208
|
+
custom: string;
|
|
209
|
+
dark: string;
|
|
210
|
+
dashboard: string;
|
|
211
|
+
delete: string;
|
|
212
|
+
deletedCountSuccessfully: string;
|
|
213
|
+
deletedSuccessfully: string;
|
|
214
|
+
deleting: string;
|
|
215
|
+
depth: string;
|
|
216
|
+
descending: string;
|
|
217
|
+
deselectAllRows: string;
|
|
218
|
+
document: string;
|
|
219
|
+
documentLocked: string;
|
|
220
|
+
documents: string;
|
|
221
|
+
duplicate: string;
|
|
222
|
+
duplicateWithoutSaving: string;
|
|
223
|
+
edit: string;
|
|
224
|
+
editAll: string;
|
|
225
|
+
editedSince: string;
|
|
226
|
+
editing: string;
|
|
227
|
+
editingLabel_many: string;
|
|
228
|
+
editingLabel_one: string;
|
|
229
|
+
editingLabel_other: string;
|
|
230
|
+
editingTakenOver: string;
|
|
231
|
+
editLabel: string;
|
|
232
|
+
email: string;
|
|
233
|
+
emailAddress: string;
|
|
234
|
+
enterAValue: string;
|
|
235
|
+
error: string;
|
|
236
|
+
errors: string;
|
|
237
|
+
fallbackToDefaultLocale: string;
|
|
238
|
+
false: string;
|
|
239
|
+
filter: string;
|
|
240
|
+
filters: string;
|
|
241
|
+
filterWhere: string;
|
|
242
|
+
globals: string;
|
|
243
|
+
goBack: string;
|
|
244
|
+
isEditing: string;
|
|
245
|
+
language: string;
|
|
246
|
+
lastModified: string;
|
|
247
|
+
leaveAnyway: string;
|
|
248
|
+
leaveWithoutSaving: string;
|
|
249
|
+
light: string;
|
|
250
|
+
livePreview: string;
|
|
251
|
+
loading: string;
|
|
252
|
+
locale: string;
|
|
253
|
+
locales: string;
|
|
254
|
+
menu: string;
|
|
255
|
+
moreOptions: string;
|
|
256
|
+
moveDown: string;
|
|
257
|
+
moveUp: string;
|
|
258
|
+
newPassword: string;
|
|
259
|
+
next: string;
|
|
260
|
+
noDateSelected: string;
|
|
261
|
+
noFiltersSet: string;
|
|
262
|
+
noLabel: string;
|
|
263
|
+
none: string;
|
|
264
|
+
noOptions: string;
|
|
265
|
+
noResults: string;
|
|
266
|
+
notFound: string;
|
|
267
|
+
nothingFound: string;
|
|
268
|
+
noUpcomingEventsScheduled: string;
|
|
269
|
+
noValue: string;
|
|
270
|
+
of: string;
|
|
271
|
+
only: string;
|
|
272
|
+
open: string;
|
|
273
|
+
or: string;
|
|
274
|
+
order: string;
|
|
275
|
+
overwriteExistingData: string;
|
|
276
|
+
pageNotFound: string;
|
|
277
|
+
password: string;
|
|
278
|
+
payloadSettings: string;
|
|
279
|
+
perPage: string;
|
|
280
|
+
previous: string;
|
|
281
|
+
reindex: string;
|
|
282
|
+
reindexingAll: string;
|
|
283
|
+
remove: string;
|
|
284
|
+
reset: string;
|
|
285
|
+
resetPreferences: string;
|
|
286
|
+
resetPreferencesDescription: string;
|
|
287
|
+
resettingPreferences: string;
|
|
288
|
+
row: string;
|
|
289
|
+
rows: string;
|
|
290
|
+
save: string;
|
|
291
|
+
saving: string;
|
|
292
|
+
schedulePublishFor: string;
|
|
293
|
+
searchBy: string;
|
|
294
|
+
selectAll: string;
|
|
295
|
+
selectAllRows: string;
|
|
296
|
+
selectedCount: string;
|
|
297
|
+
selectValue: string;
|
|
298
|
+
showAllLabel: string;
|
|
299
|
+
sorryNotFound: string;
|
|
300
|
+
sort: string;
|
|
301
|
+
sortByLabelDirection: string;
|
|
302
|
+
stayOnThisPage: string;
|
|
303
|
+
submissionSuccessful: string;
|
|
304
|
+
submit: string;
|
|
305
|
+
submitting: string;
|
|
306
|
+
success: string;
|
|
307
|
+
successfullyCreated: string;
|
|
308
|
+
successfullyDuplicated: string;
|
|
309
|
+
successfullyReindexed: string;
|
|
310
|
+
takeOver: string;
|
|
311
|
+
thisLanguage: string;
|
|
312
|
+
time: string;
|
|
313
|
+
timezone: string;
|
|
314
|
+
titleDeleted: string;
|
|
315
|
+
true: string;
|
|
316
|
+
unauthorized: string;
|
|
317
|
+
unsavedChanges: string;
|
|
318
|
+
unsavedChangesDuplicate: string;
|
|
319
|
+
untitled: string;
|
|
320
|
+
upcomingEvents: string;
|
|
321
|
+
updatedAt: string;
|
|
322
|
+
updatedCountSuccessfully: string;
|
|
323
|
+
updatedSuccessfully: string;
|
|
324
|
+
updating: string;
|
|
325
|
+
uploading: string;
|
|
326
|
+
uploadingBulk: string;
|
|
327
|
+
user: string;
|
|
328
|
+
username: string;
|
|
329
|
+
users: string;
|
|
330
|
+
value: string;
|
|
331
|
+
viewReadOnly: string;
|
|
332
|
+
welcome: string;
|
|
333
|
+
};
|
|
334
|
+
localization: {
|
|
335
|
+
cannotCopySameLocale: string;
|
|
336
|
+
copyFrom: string;
|
|
337
|
+
copyFromTo: string;
|
|
338
|
+
copyTo: string;
|
|
339
|
+
copyToLocale: string;
|
|
340
|
+
localeToPublish: string;
|
|
341
|
+
selectLocaleToCopy: string;
|
|
342
|
+
};
|
|
343
|
+
operators: {
|
|
344
|
+
contains: string;
|
|
345
|
+
equals: string;
|
|
346
|
+
exists: string;
|
|
347
|
+
intersects: string;
|
|
348
|
+
isGreaterThan: string;
|
|
349
|
+
isGreaterThanOrEqualTo: string;
|
|
350
|
+
isIn: string;
|
|
351
|
+
isLessThan: string;
|
|
352
|
+
isLessThanOrEqualTo: string;
|
|
353
|
+
isLike: string;
|
|
354
|
+
isNotEqualTo: string;
|
|
355
|
+
isNotIn: string;
|
|
356
|
+
isNotLike: string;
|
|
357
|
+
near: string;
|
|
358
|
+
within: string;
|
|
359
|
+
};
|
|
360
|
+
upload: {
|
|
361
|
+
addFile: string;
|
|
362
|
+
addFiles: string;
|
|
363
|
+
bulkUpload: string;
|
|
364
|
+
crop: string;
|
|
365
|
+
cropToolDescription: string;
|
|
366
|
+
dragAndDrop: string;
|
|
367
|
+
dragAndDropHere: string;
|
|
368
|
+
editImage: string;
|
|
369
|
+
fileName: string;
|
|
370
|
+
fileSize: string;
|
|
371
|
+
filesToUpload: string;
|
|
372
|
+
fileToUpload: string;
|
|
373
|
+
focalPoint: string;
|
|
374
|
+
focalPointDescription: string;
|
|
375
|
+
height: string;
|
|
376
|
+
lessInfo: string;
|
|
377
|
+
moreInfo: string;
|
|
378
|
+
pasteURL: string;
|
|
379
|
+
previewSizes: string;
|
|
380
|
+
selectCollectionToBrowse: string;
|
|
381
|
+
selectFile: string;
|
|
382
|
+
setCropArea: string;
|
|
383
|
+
setFocalPoint: string;
|
|
384
|
+
sizes: string;
|
|
385
|
+
sizesFor: string;
|
|
386
|
+
width: string;
|
|
387
|
+
};
|
|
388
|
+
validation: {
|
|
389
|
+
emailAddress: string;
|
|
390
|
+
enterNumber: string;
|
|
391
|
+
fieldHasNo: string;
|
|
392
|
+
greaterThanMax: string;
|
|
393
|
+
invalidInput: string;
|
|
394
|
+
invalidSelection: string;
|
|
395
|
+
invalidSelections: string;
|
|
396
|
+
lessThanMin: string;
|
|
397
|
+
limitReached: string;
|
|
398
|
+
longerThanMin: string;
|
|
399
|
+
notValidDate: string;
|
|
400
|
+
required: string;
|
|
401
|
+
requiresAtLeast: string;
|
|
402
|
+
requiresNoMoreThan: string;
|
|
403
|
+
requiresTwoNumbers: string;
|
|
404
|
+
shorterThanMax: string;
|
|
405
|
+
timezoneRequired: string;
|
|
406
|
+
trueOrFalse: string;
|
|
407
|
+
username: string;
|
|
408
|
+
validUploadID: string;
|
|
409
|
+
};
|
|
410
|
+
version: {
|
|
411
|
+
type: string;
|
|
412
|
+
aboutToPublishSelection: string;
|
|
413
|
+
aboutToRestore: string;
|
|
414
|
+
aboutToRestoreGlobal: string;
|
|
415
|
+
aboutToRevertToPublished: string;
|
|
416
|
+
aboutToUnpublish: string;
|
|
417
|
+
aboutToUnpublishSelection: string;
|
|
418
|
+
autosave: string;
|
|
419
|
+
autosavedSuccessfully: string;
|
|
420
|
+
autosavedVersion: string;
|
|
421
|
+
changed: string;
|
|
422
|
+
changedFieldsCount_one: string;
|
|
423
|
+
changedFieldsCount_other: string;
|
|
424
|
+
compareVersion: string;
|
|
425
|
+
confirmPublish: string;
|
|
426
|
+
confirmRevertToSaved: string;
|
|
427
|
+
confirmUnpublish: string;
|
|
428
|
+
confirmVersionRestoration: string;
|
|
429
|
+
currentDocumentStatus: string;
|
|
430
|
+
currentDraft: string;
|
|
431
|
+
currentPublishedVersion: string;
|
|
432
|
+
draft: string;
|
|
433
|
+
draftSavedSuccessfully: string;
|
|
434
|
+
lastSavedAgo: string;
|
|
435
|
+
modifiedOnly: string;
|
|
436
|
+
noFurtherVersionsFound: string;
|
|
437
|
+
noRowsFound: string;
|
|
438
|
+
noRowsSelected: string;
|
|
439
|
+
preview: string;
|
|
440
|
+
previouslyPublished: string;
|
|
441
|
+
problemRestoringVersion: string;
|
|
442
|
+
publish: string;
|
|
443
|
+
publishAllLocales: string;
|
|
444
|
+
publishChanges: string;
|
|
445
|
+
published: string;
|
|
446
|
+
publishIn: string;
|
|
447
|
+
publishing: string;
|
|
448
|
+
restoreAsDraft: string;
|
|
449
|
+
restoredSuccessfully: string;
|
|
450
|
+
restoreThisVersion: string;
|
|
451
|
+
restoring: string;
|
|
452
|
+
reverting: string;
|
|
453
|
+
revertToPublished: string;
|
|
454
|
+
saveDraft: string;
|
|
455
|
+
scheduledSuccessfully: string;
|
|
456
|
+
schedulePublish: string;
|
|
457
|
+
selectLocales: string;
|
|
458
|
+
selectVersionToCompare: string;
|
|
459
|
+
showingVersionsFor: string;
|
|
460
|
+
showLocales: string;
|
|
461
|
+
status: string;
|
|
462
|
+
unpublish: string;
|
|
463
|
+
unpublishing: string;
|
|
464
|
+
version: string;
|
|
465
|
+
versionCount_many: string;
|
|
466
|
+
versionCount_none: string;
|
|
467
|
+
versionCount_one: string;
|
|
468
|
+
versionCount_other: string;
|
|
469
|
+
versionCreatedOn: string;
|
|
470
|
+
versionID: string;
|
|
471
|
+
versions: string;
|
|
472
|
+
viewingVersion: string;
|
|
473
|
+
viewingVersionGlobal: string;
|
|
474
|
+
viewingVersions: string;
|
|
475
|
+
viewingVersionsGlobal: string;
|
|
476
|
+
};
|
|
477
|
+
} | Record<string, unknown>;
|
|
3
478
|
//# sourceMappingURL=getTranslationsByContext.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getTranslationsByContext.d.ts","sourceRoot":"","sources":["../../src/utilities/getTranslationsByContext.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AAwD3C,eAAO,MAAM,wBAAwB,qBAAsB,QAAQ,WAAW,KAAK,GAAG,QAAQ,
|
|
1
|
+
{"version":3,"file":"getTranslationsByContext.d.ts","sourceRoot":"","sources":["../../src/utilities/getTranslationsByContext.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AAwD3C,eAAO,MAAM,wBAAwB,qBAAsB,QAAQ,WAAW,KAAK,GAAG,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2BAM7F,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/utilities/getTranslationsByContext.ts"],"sourcesContent":["import type { Language } from '../types.js'\n\nimport { clientTranslationKeys } from '../clientKeys.js'\n\nfunction filterKeys(obj, parentGroupKey = '', keys) {\n const result = {}\n\n for (const [namespaceKey, value] of Object.entries(obj)) {\n // Skip $schema key\n if (namespaceKey === '$schema') {\n result[namespaceKey] = value\n continue\n }\n\n if (typeof value === 'object') {\n const filteredObject = filterKeys(value, namespaceKey, keys)\n if (Object.keys(filteredObject).length > 0) {\n result[namespaceKey] = filteredObject\n }\n } else {\n for (const key of keys) {\n const [groupKey, selector] = key.split(':')\n\n if (parentGroupKey === groupKey) {\n if (namespaceKey === selector) {\n result[selector] = value\n } else {\n const pluralKeys = ['zero', 'one', 'two', 'few', 'many', 'other']\n pluralKeys.forEach((pluralKey) => {\n if (namespaceKey === `${selector}_${pluralKey}`) {\n result[`${selector}_${pluralKey}`] = value\n }\n })\n }\n }\n }\n }\n }\n\n return result\n}\n\nfunction sortObject(obj) {\n const sortedObject = {}\n Object.keys(obj)\n .sort()\n .forEach((key) => {\n if (typeof obj[key] === 'object') {\n sortedObject[key] = sortObject(obj[key])\n } else {\n sortedObject[key] = obj[key]\n }\n })\n return sortedObject\n}\n\nexport const getTranslationsByContext = (selectedLanguage: Language, context: 'api' | 'client') => {\n if (context === 'client') {\n return sortObject(filterKeys(selectedLanguage.translations, '', clientTranslationKeys))\n } else {\n return selectedLanguage.translations\n }\n}\n"],"names":["clientTranslationKeys","filterKeys","obj","parentGroupKey","keys","result","namespaceKey","value","Object","entries","filteredObject","length","key","groupKey","selector","split","pluralKeys","forEach","pluralKey","sortObject","sortedObject","sort","getTranslationsByContext","selectedLanguage","context","translations"],"mappings":"AAEA,SAASA,qBAAqB,QAAQ,mBAAkB;AAExD,SAASC,WAAWC,
|
|
1
|
+
{"version":3,"sources":["../../src/utilities/getTranslationsByContext.ts"],"sourcesContent":["import type { Language } from '../types.js'\n\nimport { clientTranslationKeys } from '../clientKeys.js'\n\nfunction filterKeys(obj: Record<string, unknown>, parentGroupKey = '', keys: string[]) {\n const result: Record<string, unknown> = {}\n\n for (const [namespaceKey, value] of Object.entries(obj)) {\n // Skip $schema key\n if (namespaceKey === '$schema') {\n result[namespaceKey] = value\n continue\n }\n\n if (typeof value === 'object') {\n const filteredObject = filterKeys(value as Record<string, unknown>, namespaceKey, keys)\n if (Object.keys(filteredObject).length > 0) {\n result[namespaceKey] = filteredObject\n }\n } else {\n for (const key of keys) {\n const [groupKey, selector] = key.split(':')\n\n if (parentGroupKey === groupKey) {\n if (namespaceKey === selector) {\n result[selector] = value\n } else {\n const pluralKeys = ['zero', 'one', 'two', 'few', 'many', 'other']\n pluralKeys.forEach((pluralKey) => {\n if (namespaceKey === `${selector}_${pluralKey}`) {\n result[`${selector}_${pluralKey}`] = value\n }\n })\n }\n }\n }\n }\n }\n\n return result\n}\n\nfunction sortObject(obj: Record<string, unknown>) {\n const sortedObject: Record<string, unknown> = {}\n Object.keys(obj)\n .sort()\n .forEach((key) => {\n if (typeof obj[key] === 'object') {\n sortedObject[key] = sortObject(obj[key] as Record<string, unknown>)\n } else {\n sortedObject[key] = obj[key]\n }\n })\n return sortedObject\n}\n\nexport const getTranslationsByContext = (selectedLanguage: Language, context: 'api' | 'client') => {\n if (context === 'client') {\n return sortObject(filterKeys(selectedLanguage.translations, '', clientTranslationKeys))\n } else {\n return selectedLanguage.translations\n }\n}\n"],"names":["clientTranslationKeys","filterKeys","obj","parentGroupKey","keys","result","namespaceKey","value","Object","entries","filteredObject","length","key","groupKey","selector","split","pluralKeys","forEach","pluralKey","sortObject","sortedObject","sort","getTranslationsByContext","selectedLanguage","context","translations"],"mappings":"AAEA,SAASA,qBAAqB,QAAQ,mBAAkB;AAExD,SAASC,WAAWC,GAA4B,EAAEC,iBAAiB,EAAE,EAAEC,IAAc;IACnF,MAAMC,SAAkC,CAAC;IAEzC,KAAK,MAAM,CAACC,cAAcC,MAAM,IAAIC,OAAOC,OAAO,CAACP,KAAM;QACvD,mBAAmB;QACnB,IAAII,iBAAiB,WAAW;YAC9BD,MAAM,CAACC,aAAa,GAAGC;YACvB;QACF;QAEA,IAAI,OAAOA,UAAU,UAAU;YAC7B,MAAMG,iBAAiBT,WAAWM,OAAkCD,cAAcF;YAClF,IAAII,OAAOJ,IAAI,CAACM,gBAAgBC,MAAM,GAAG,GAAG;gBAC1CN,MAAM,CAACC,aAAa,GAAGI;YACzB;QACF,OAAO;YACL,KAAK,MAAME,OAAOR,KAAM;gBACtB,MAAM,CAACS,UAAUC,SAAS,GAAGF,IAAIG,KAAK,CAAC;gBAEvC,IAAIZ,mBAAmBU,UAAU;oBAC/B,IAAIP,iBAAiBQ,UAAU;wBAC7BT,MAAM,CAACS,SAAS,GAAGP;oBACrB,OAAO;wBACL,MAAMS,aAAa;4BAAC;4BAAQ;4BAAO;4BAAO;4BAAO;4BAAQ;yBAAQ;wBACjEA,WAAWC,OAAO,CAAC,CAACC;4BAClB,IAAIZ,iBAAiB,GAAGQ,SAAS,CAAC,EAAEI,WAAW,EAAE;gCAC/Cb,MAAM,CAAC,GAAGS,SAAS,CAAC,EAAEI,WAAW,CAAC,GAAGX;4BACvC;wBACF;oBACF;gBACF;YACF;QACF;IACF;IAEA,OAAOF;AACT;AAEA,SAASc,WAAWjB,GAA4B;IAC9C,MAAMkB,eAAwC,CAAC;IAC/CZ,OAAOJ,IAAI,CAACF,KACTmB,IAAI,GACJJ,OAAO,CAAC,CAACL;QACR,IAAI,OAAOV,GAAG,CAACU,IAAI,KAAK,UAAU;YAChCQ,YAAY,CAACR,IAAI,GAAGO,WAAWjB,GAAG,CAACU,IAAI;QACzC,OAAO;YACLQ,YAAY,CAACR,IAAI,GAAGV,GAAG,CAACU,IAAI;QAC9B;IACF;IACF,OAAOQ;AACT;AAEA,OAAO,MAAME,2BAA2B,CAACC,kBAA4BC;IACnE,IAAIA,YAAY,UAAU;QACxB,OAAOL,WAAWlB,WAAWsB,iBAAiBE,YAAY,EAAE,IAAIzB;IAClE,OAAO;QACL,OAAOuB,iBAAiBE,YAAY;IACtC;AACF,EAAC"}
|
package/dist/utilities/init.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { DefaultTranslationKeys, DefaultTranslationsObject, I18n,
|
|
1
|
+
import type { DefaultTranslationKeys, DefaultTranslationsObject, I18n, Language } from '../types.js';
|
|
2
2
|
/**
|
|
3
3
|
* @function getTranslationString
|
|
4
4
|
*
|
|
@@ -500,6 +500,12 @@ export declare function t<TTranslations = DefaultTranslationsObject, TTranslatio
|
|
|
500
500
|
vars?: Record<string, any>;
|
|
501
501
|
}): string;
|
|
502
502
|
export declare const initI18n: (args: {
|
|
503
|
-
|
|
504
|
-
|
|
503
|
+
config: import("../types.js").I18nOptions;
|
|
504
|
+
context: "api";
|
|
505
|
+
language: import("../types.js").AcceptedLanguages;
|
|
506
|
+
} | {
|
|
507
|
+
config: import("../types.js").I18nOptions<import("../types.js").ClientTranslationsObject>;
|
|
508
|
+
context: "client";
|
|
509
|
+
language: import("../types.js").AcceptedLanguages;
|
|
510
|
+
}) => Promise<I18n>;
|
|
505
511
|
//# sourceMappingURL=init.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/utilities/init.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,sBAAsB,EACtB,yBAAyB,EACzB,IAAI,
|
|
1
|
+
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/utilities/init.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,sBAAsB,EACtB,yBAAyB,EACzB,IAAI,EAGJ,QAAQ,EACT,MAAM,aAAa,CAAA;AAMpB;;;;;;GAMG;AACH,eAAO,MAAM,oBAAoB,GAC/B,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GACb,gBAAgB,otXAKf;IACD,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,GAAG,EAAE,gBAAgB,CAAA;IACrB,YAAY,EAAE,QAAQ,CAAC,aAAa,CAAC,CAAC,cAAc,CAAC,CAAA;CACtD,KAAG,MAyCH,CAAA;AAiCD;;;;;;;GAOG;AACH,wBAAgB,CAAC,CACf,aAAa,GAAG,yBAAyB,EACzC,gBAAgB,GAAG,sBAAsB,EACzC,EACA,GAAG,EACH,YAAY,EACZ,IAAI,GACL,EAAE;IACD,GAAG,EAAE,gBAAgB,CAAA;IACrB,YAAY,CAAC,EAAE,QAAQ,CAAC,aAAa,CAAC,CAAC,cAAc,CAAC,CAAA;IACtD,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;CAC3B,GAAG,MAAM,CAmBT;AA4CD,eAAO,MAAM,QAAQ;;;;;;;;MAjBL,OAAO,CAAC,IAAI,CA+C3B,CAAA"}
|
package/dist/utilities/init.js
CHANGED
|
@@ -87,7 +87,7 @@ import { getTranslationsByContext } from './getTranslationsByContext.js';
|
|
|
87
87
|
}
|
|
88
88
|
const initTFunction = (args)=>{
|
|
89
89
|
const { config, language, translations } = args;
|
|
90
|
-
const mergedTranslations = config?.translations?.[language] ? deepMergeSimple(translations, config
|
|
90
|
+
const mergedTranslations = language && config?.translations?.[language] ? deepMergeSimple(translations, config.translations[language]) : translations;
|
|
91
91
|
return {
|
|
92
92
|
t: (key, vars)=>{
|
|
93
93
|
return t({
|
|
@@ -102,7 +102,7 @@ const initTFunction = (args)=>{
|
|
|
102
102
|
function memoize(fn, keys) {
|
|
103
103
|
const cacheMap = new Map();
|
|
104
104
|
const memoized = async (args)=>{
|
|
105
|
-
const cacheKey = keys.reduce((acc, key)=>acc + args[key], '');
|
|
105
|
+
const cacheKey = keys.reduce((acc, key)=>acc + String(args[key]), '');
|
|
106
106
|
if (!cacheMap.has(cacheKey)) {
|
|
107
107
|
const result = await fn(args);
|
|
108
108
|
cacheMap.set(cacheKey, result);
|
|
@@ -112,7 +112,10 @@ function memoize(fn, keys) {
|
|
|
112
112
|
return memoized;
|
|
113
113
|
}
|
|
114
114
|
export const initI18n = memoize(async ({ config, context, language = config.fallbackLanguage })=>{
|
|
115
|
-
|
|
115
|
+
if (!language || !config.supportedLanguages?.[language]) {
|
|
116
|
+
throw new Error(`Language ${language} not supported`);
|
|
117
|
+
}
|
|
118
|
+
const translations = getTranslationsByContext(config.supportedLanguages?.[language], context);
|
|
116
119
|
const { t, translations: mergedTranslations } = initTFunction({
|
|
117
120
|
config: config,
|
|
118
121
|
language: language || config.fallbackLanguage,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/utilities/init.ts"],"sourcesContent":["import type {\n DefaultTranslationKeys,\n DefaultTranslationsObject,\n I18n,\n InitI18n,\n InitTFunction,\n Language,\n} from '../types.js'\n\nimport { importDateFNSLocale } from '../importDateFNSLocale.js'\nimport { deepMergeSimple } from './deepMergeSimple.js'\nimport { getTranslationsByContext } from './getTranslationsByContext.js'\n\n/**\n * @function getTranslationString\n *\n * Gets a translation string from a translations object\n *\n * @returns string\n */\nexport const getTranslationString = <\n TTranslations = DefaultTranslationsObject,\n TTranslationKeys = DefaultTranslationKeys,\n>({\n count,\n key,\n translations,\n}: {\n count?: number\n key: TTranslationKeys\n translations: Language<TTranslations>['translations']\n}): string => {\n const keys = (key as DefaultTranslationKeys).split(':')\n let keySuffix = ''\n\n const translation: string = keys.reduce((acc: any, key, index) => {\n if (typeof acc === 'string') {\n return acc\n }\n\n if (typeof count === 'number') {\n if (count === 0 && `${key}_zero` in acc) {\n keySuffix = '_zero'\n } else if (count === 1 && `${key}_one` in acc) {\n keySuffix = '_one'\n } else if (count === 2 && `${key}_two` in acc) {\n keySuffix = '_two'\n } else if (count > 5 && `${key}_many` in acc) {\n keySuffix = '_many'\n } else if (count > 2 && count <= 5 && `${key}_few` in acc) {\n keySuffix = '_few'\n } else if (`${key}_other` in acc) {\n keySuffix = '_other'\n }\n }\n let keyToUse = key\n if (index === keys.length - 1 && keySuffix) {\n keyToUse = `${key}${keySuffix}`\n }\n\n if (acc && keyToUse in acc) {\n return acc[keyToUse]\n }\n\n return undefined\n }, translations)\n\n if (!translation) {\n console.log('key not found:', key)\n }\n\n return translation || (key as string)\n}\n\n/**\n * @function replaceVars\n *\n * Replaces variables in a translation string with values from an object\n *\n * @returns string\n */\nconst replaceVars = ({\n translationString,\n vars,\n}: {\n translationString: string\n vars: {\n [key: string]: any\n }\n}) => {\n const parts = translationString.split(/(\\{\\{.*?\\}\\})/)\n\n return parts\n .map((part) => {\n if (part.startsWith('{{') && part.endsWith('}}')) {\n const placeholder = part.substring(2, part.length - 2).trim()\n const value = vars[placeholder]\n return value !== undefined && value !== null ? value : part\n } else {\n return part\n }\n })\n .join('')\n}\n\n/**\n * @function t\n *\n * Merges config defined translations with translations passed in as an argument\n * returns a function that can be used to translate a string\n *\n * @returns string\n */\nexport function t<\n TTranslations = DefaultTranslationsObject,\n TTranslationKeys = DefaultTranslationKeys,\n>({\n key,\n translations,\n vars,\n}: {\n key: TTranslationKeys\n translations?: Language<TTranslations>['translations']\n vars?: Record<string, any>\n}): string {\n let translationString = getTranslationString({\n count: typeof vars?.count === 'number' ? vars.count : undefined,\n key,\n translations,\n })\n\n if (vars) {\n translationString = replaceVars({\n translationString,\n vars,\n })\n }\n\n if (!translationString) {\n translationString = key as string\n }\n\n return translationString\n}\n\nconst initTFunction: InitTFunction = (args) => {\n const { config, language, translations } = args\n const mergedTranslations
|
|
1
|
+
{"version":3,"sources":["../../src/utilities/init.ts"],"sourcesContent":["import type {\n DefaultTranslationKeys,\n DefaultTranslationsObject,\n I18n,\n InitI18n,\n InitTFunction,\n Language,\n} from '../types.js'\n\nimport { importDateFNSLocale } from '../importDateFNSLocale.js'\nimport { deepMergeSimple } from './deepMergeSimple.js'\nimport { getTranslationsByContext } from './getTranslationsByContext.js'\n\n/**\n * @function getTranslationString\n *\n * Gets a translation string from a translations object\n *\n * @returns string\n */\nexport const getTranslationString = <\n TTranslations = DefaultTranslationsObject,\n TTranslationKeys = DefaultTranslationKeys,\n>({\n count,\n key,\n translations,\n}: {\n count?: number\n key: TTranslationKeys\n translations: Language<TTranslations>['translations']\n}): string => {\n const keys = (key as DefaultTranslationKeys).split(':')\n let keySuffix = ''\n\n const translation: string = keys.reduce((acc: any, key, index) => {\n if (typeof acc === 'string') {\n return acc\n }\n\n if (typeof count === 'number') {\n if (count === 0 && `${key}_zero` in acc) {\n keySuffix = '_zero'\n } else if (count === 1 && `${key}_one` in acc) {\n keySuffix = '_one'\n } else if (count === 2 && `${key}_two` in acc) {\n keySuffix = '_two'\n } else if (count > 5 && `${key}_many` in acc) {\n keySuffix = '_many'\n } else if (count > 2 && count <= 5 && `${key}_few` in acc) {\n keySuffix = '_few'\n } else if (`${key}_other` in acc) {\n keySuffix = '_other'\n }\n }\n let keyToUse = key\n if (index === keys.length - 1 && keySuffix) {\n keyToUse = `${key}${keySuffix}`\n }\n\n if (acc && keyToUse in acc) {\n return acc[keyToUse]\n }\n\n return undefined\n }, translations)\n\n if (!translation) {\n console.log('key not found:', key)\n }\n\n return translation || (key as string)\n}\n\n/**\n * @function replaceVars\n *\n * Replaces variables in a translation string with values from an object\n *\n * @returns string\n */\nconst replaceVars = ({\n translationString,\n vars,\n}: {\n translationString: string\n vars: {\n [key: string]: any\n }\n}) => {\n const parts = translationString.split(/(\\{\\{.*?\\}\\})/)\n\n return parts\n .map((part) => {\n if (part.startsWith('{{') && part.endsWith('}}')) {\n const placeholder = part.substring(2, part.length - 2).trim()\n const value = vars[placeholder]\n return value !== undefined && value !== null ? value : part\n } else {\n return part\n }\n })\n .join('')\n}\n\n/**\n * @function t\n *\n * Merges config defined translations with translations passed in as an argument\n * returns a function that can be used to translate a string\n *\n * @returns string\n */\nexport function t<\n TTranslations = DefaultTranslationsObject,\n TTranslationKeys = DefaultTranslationKeys,\n>({\n key,\n translations,\n vars,\n}: {\n key: TTranslationKeys\n translations?: Language<TTranslations>['translations']\n vars?: Record<string, any>\n}): string {\n let translationString = getTranslationString({\n count: typeof vars?.count === 'number' ? vars.count : undefined,\n key,\n translations,\n })\n\n if (vars) {\n translationString = replaceVars({\n translationString,\n vars,\n })\n }\n\n if (!translationString) {\n translationString = key as string\n }\n\n return translationString\n}\n\nconst initTFunction: InitTFunction = (args) => {\n const { config, language, translations } = args\n const mergedTranslations =\n language && config?.translations?.[language as keyof typeof config.translations]\n ? deepMergeSimple<DefaultTranslationsObject>(\n translations,\n config.translations[language as keyof typeof config.translations]!,\n )\n : translations\n\n return {\n t: (key, vars) => {\n return t({\n key,\n translations: mergedTranslations,\n vars,\n })\n },\n translations: mergedTranslations,\n }\n}\n\nfunction memoize<T extends Parameters<InitI18n>[0], K extends keyof T>(\n fn: (args: T) => Promise<I18n>,\n keys: K[],\n): (args: T) => Promise<I18n> {\n const cacheMap = new Map<string, I18n>()\n\n const memoized = async (args: T) => {\n const cacheKey = keys.reduce((acc, key) => acc + String(args[key]), '')\n\n if (!cacheMap.has(cacheKey)) {\n const result = await fn(args)\n cacheMap.set(cacheKey, result)\n }\n\n return cacheMap.get(cacheKey)!\n }\n\n return memoized\n}\n\nexport const initI18n = memoize(\n async ({ config, context, language = config.fallbackLanguage }) => {\n if (!language || !config.supportedLanguages?.[language]) {\n throw new Error(`Language ${language} not supported`)\n }\n\n const translations = getTranslationsByContext(config.supportedLanguages?.[language], context)\n\n const { t, translations: mergedTranslations } = initTFunction({\n config: config as any,\n language: language || config.fallbackLanguage,\n translations: translations as any,\n })\n\n const dateFNSKey = config.supportedLanguages[language]?.dateFNSKey || 'en-US'\n\n const dateFNS = await importDateFNSLocale(dateFNSKey)\n\n const i18n: I18n = {\n dateFNS,\n dateFNSKey,\n fallbackLanguage: config.fallbackLanguage!,\n language: language || config.fallbackLanguage,\n t,\n translations: mergedTranslations,\n }\n\n return i18n\n },\n ['language', 'context'] satisfies Array<keyof Parameters<InitI18n>[0]>,\n)\n"],"names":["importDateFNSLocale","deepMergeSimple","getTranslationsByContext","getTranslationString","count","key","translations","keys","split","keySuffix","translation","reduce","acc","index","keyToUse","length","undefined","console","log","replaceVars","translationString","vars","parts","map","part","startsWith","endsWith","placeholder","substring","trim","value","join","t","initTFunction","args","config","language","mergedTranslations","memoize","fn","cacheMap","Map","memoized","cacheKey","String","has","result","set","get","initI18n","context","fallbackLanguage","supportedLanguages","Error","dateFNSKey","dateFNS","i18n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/utilities/languages.ts"],"sourcesContent":["import type { AcceptedLanguages, LanguagePreference } from '../types.js'\n\nexport const rtlLanguages = ['ar', 'fa', 'he'] as const\n\nexport const acceptedLanguages = [\n 'ar',\n 'az',\n 'bg',\n 'ca',\n 'cs',\n 'da',\n 'de',\n 'en',\n 'es',\n 'et',\n 'fa',\n 'fr',\n 'he',\n 'hr',\n 'hu',\n 'it',\n 'ja',\n 'ko',\n 'lt',\n 'my',\n 'nb',\n 'nl',\n 'pl',\n 'pt',\n 'ro',\n 'rs',\n 'rs-latin',\n 'ru',\n 'sk',\n 'sl',\n 'sv',\n 'th',\n 'tr',\n 'uk',\n 'vi',\n 'zh',\n 'zh-TW',\n\n /**\n * Languages not implemented:\n *\n * 'af',\n * 'am',\n * 'ar-sa',\n * 'as',\n * 'az-latin',\n * 'be',\n * 'bn-BD',\n * 'bn-IN',\n * 'bs',\n * 'ca',\n * 'ca-ES-valencia',\n * 'cy',\n * 'el',\n * 'en-GB',\n * 'en-US',\n * 'es-ES',\n * 'es-US',\n * 'es-MX',\n * 'eu',\n * 'fi',\n * 'fil-Latn',\n * 'fr-FR',\n * 'fr-CA',\n * 'ga',\n * 'gd-Latn',\n * 'gl',\n * 'gu',\n * 'ha-Latn',\n * 'hi',\n * 'hy',\n * 'id',\n * 'ig-Latn',\n * 'is',\n * 'it-it',\n * 'ka',\n * 'kk',\n * 'km',\n * 'kn',\n * 'kok',\n * 'ku-Arab',\n * 'ky-Cyrl',\n * 'lb',\n * 'lv',\n * 'mi-Latn',\n * 'mk',\n * 'ml',\n * 'mn-Cyrl',\n * 'mr',\n * 'ms',\n * 'mt',\n * 'ne',\n * 'nl-BE',\n * 'nn',\n * 'nso',\n * 'or',\n * 'pa',\n * 'pa-Arab',\n * 'prs-Arab',\n * 'pt-BR',\n * 'pt-PT',\n * 'qut-Latn',\n * 'quz',\n * 'rw',\n * 'sd-Arab',\n * 'si',\n * 'sq',\n * 'sr-Cyrl-BA',\n * 'sr-Cyrl-RS',\n * 'sr-Latn-RS',\n * 'sw',\n * 'ta',\n * 'te',\n * 'tg-Cyrl',\n * 'ti',\n * 'tk-Latn',\n * 'tn',\n * 'tt-Cyrl',\n * 'ug-Arab',\n * 'ur',\n * 'uz-Latn',\n * 'wo',\n * 'xh',\n * 'yo-Latn',\n * 'zh-Hans',\n * 'zh-Hant',\n * 'zu',\n */\n] as const\n\nfunction parseAcceptLanguage(acceptLanguageHeader: string): LanguagePreference[] {\n return acceptLanguageHeader\n .split(',')\n .map((lang) => {\n const [language, quality] = lang.trim().split(';q=') as [\n AcceptedLanguages,\n string | undefined,\n ]\n return {\n language,\n quality: quality ? parseFloat(quality) : 1,\n }\n })\n .sort((a, b) => b.quality - a.quality) // Sort by quality, highest to lowest\n}\n\nexport function extractHeaderLanguage(acceptLanguageHeader: string): AcceptedLanguages | undefined {\n const parsedHeader = parseAcceptLanguage(acceptLanguageHeader)\n\n let matchedLanguage: AcceptedLanguages\n\n for (const { language } of parsedHeader) {\n if (!matchedLanguage && acceptedLanguages.includes(language)) {\n matchedLanguage = language\n }\n }\n\n return matchedLanguage\n}\n"],"names":["rtlLanguages","acceptedLanguages","parseAcceptLanguage","acceptLanguageHeader","split","map","lang","language","quality","trim","parseFloat","sort","a","b","extractHeaderLanguage","parsedHeader","matchedLanguage","includes"],"mappings":"AAEA,OAAO,MAAMA,eAAe;IAAC;IAAM;IAAM;CAAK,CAAS;AAEvD,OAAO,MAAMC,oBAAoB;IAC/B;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;CA4FD,CAAS;AAEV,SAASC,oBAAoBC,oBAA4B;IACvD,OAAOA,qBACJC,KAAK,CAAC,KACNC,GAAG,CAAC,CAACC;QACJ,MAAM,CAACC,UAAUC,QAAQ,GAAGF,KAAKG,IAAI,GAAGL,KAAK,CAAC;QAI9C,OAAO;YACLG;YACAC,SAASA,UAAUE,WAAWF,WAAW;QAC3C;IACF,GACCG,IAAI,CAAC,CAACC,GAAGC,IAAMA,EAAEL,OAAO,GAAGI,EAAEJ,OAAO,EAAE,qCAAqC;;AAChF;AAEA,OAAO,SAASM,sBAAsBX,oBAA4B;IAChE,MAAMY,eAAeb,oBAAoBC;IAEzC,IAAIa;IAEJ,KAAK,MAAM,EAAET,QAAQ,EAAE,IAAIQ,aAAc;QACvC,IAAI,CAACC,mBAAmBf,kBAAkBgB,QAAQ,CAACV,WAAW;YAC5DS,kBAAkBT;QACpB;IACF;IAEA,OAAOS;AACT"}
|
|
1
|
+
{"version":3,"sources":["../../src/utilities/languages.ts"],"sourcesContent":["import type { AcceptedLanguages, LanguagePreference } from '../types.js'\n\nexport const rtlLanguages = ['ar', 'fa', 'he'] as const\n\nexport const acceptedLanguages = [\n 'ar',\n 'az',\n 'bg',\n 'ca',\n 'cs',\n 'da',\n 'de',\n 'en',\n 'es',\n 'et',\n 'fa',\n 'fr',\n 'he',\n 'hr',\n 'hu',\n 'it',\n 'ja',\n 'ko',\n 'lt',\n 'my',\n 'nb',\n 'nl',\n 'pl',\n 'pt',\n 'ro',\n 'rs',\n 'rs-latin',\n 'ru',\n 'sk',\n 'sl',\n 'sv',\n 'th',\n 'tr',\n 'uk',\n 'vi',\n 'zh',\n 'zh-TW',\n\n /**\n * Languages not implemented:\n *\n * 'af',\n * 'am',\n * 'ar-sa',\n * 'as',\n * 'az-latin',\n * 'be',\n * 'bn-BD',\n * 'bn-IN',\n * 'bs',\n * 'ca',\n * 'ca-ES-valencia',\n * 'cy',\n * 'el',\n * 'en-GB',\n * 'en-US',\n * 'es-ES',\n * 'es-US',\n * 'es-MX',\n * 'eu',\n * 'fi',\n * 'fil-Latn',\n * 'fr-FR',\n * 'fr-CA',\n * 'ga',\n * 'gd-Latn',\n * 'gl',\n * 'gu',\n * 'ha-Latn',\n * 'hi',\n * 'hy',\n * 'id',\n * 'ig-Latn',\n * 'is',\n * 'it-it',\n * 'ka',\n * 'kk',\n * 'km',\n * 'kn',\n * 'kok',\n * 'ku-Arab',\n * 'ky-Cyrl',\n * 'lb',\n * 'lv',\n * 'mi-Latn',\n * 'mk',\n * 'ml',\n * 'mn-Cyrl',\n * 'mr',\n * 'ms',\n * 'mt',\n * 'ne',\n * 'nl-BE',\n * 'nn',\n * 'nso',\n * 'or',\n * 'pa',\n * 'pa-Arab',\n * 'prs-Arab',\n * 'pt-BR',\n * 'pt-PT',\n * 'qut-Latn',\n * 'quz',\n * 'rw',\n * 'sd-Arab',\n * 'si',\n * 'sq',\n * 'sr-Cyrl-BA',\n * 'sr-Cyrl-RS',\n * 'sr-Latn-RS',\n * 'sw',\n * 'ta',\n * 'te',\n * 'tg-Cyrl',\n * 'ti',\n * 'tk-Latn',\n * 'tn',\n * 'tt-Cyrl',\n * 'ug-Arab',\n * 'ur',\n * 'uz-Latn',\n * 'wo',\n * 'xh',\n * 'yo-Latn',\n * 'zh-Hans',\n * 'zh-Hant',\n * 'zu',\n */\n] as const\n\nfunction parseAcceptLanguage(acceptLanguageHeader: string): LanguagePreference[] {\n return acceptLanguageHeader\n .split(',')\n .map((lang) => {\n const [language, quality] = lang.trim().split(';q=') as [\n AcceptedLanguages,\n string | undefined,\n ]\n return {\n language,\n quality: quality ? parseFloat(quality) : 1,\n }\n })\n .sort((a, b) => b.quality - a.quality) // Sort by quality, highest to lowest\n}\n\nexport function extractHeaderLanguage(acceptLanguageHeader: string): AcceptedLanguages | undefined {\n const parsedHeader = parseAcceptLanguage(acceptLanguageHeader)\n\n let matchedLanguage: AcceptedLanguages | undefined\n\n for (const { language } of parsedHeader) {\n if (!matchedLanguage && acceptedLanguages.includes(language)) {\n matchedLanguage = language\n }\n }\n\n return matchedLanguage\n}\n"],"names":["rtlLanguages","acceptedLanguages","parseAcceptLanguage","acceptLanguageHeader","split","map","lang","language","quality","trim","parseFloat","sort","a","b","extractHeaderLanguage","parsedHeader","matchedLanguage","includes"],"mappings":"AAEA,OAAO,MAAMA,eAAe;IAAC;IAAM;IAAM;CAAK,CAAS;AAEvD,OAAO,MAAMC,oBAAoB;IAC/B;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;CA4FD,CAAS;AAEV,SAASC,oBAAoBC,oBAA4B;IACvD,OAAOA,qBACJC,KAAK,CAAC,KACNC,GAAG,CAAC,CAACC;QACJ,MAAM,CAACC,UAAUC,QAAQ,GAAGF,KAAKG,IAAI,GAAGL,KAAK,CAAC;QAI9C,OAAO;YACLG;YACAC,SAASA,UAAUE,WAAWF,WAAW;QAC3C;IACF,GACCG,IAAI,CAAC,CAACC,GAAGC,IAAMA,EAAEL,OAAO,GAAGI,EAAEJ,OAAO,EAAE,qCAAqC;;AAChF;AAEA,OAAO,SAASM,sBAAsBX,oBAA4B;IAChE,MAAMY,eAAeb,oBAAoBC;IAEzC,IAAIa;IAEJ,KAAK,MAAM,EAAET,QAAQ,EAAE,IAAIQ,aAAc;QACvC,IAAI,CAACC,mBAAmBf,kBAAkBgB,QAAQ,CAACV,WAAW;YAC5DS,kBAAkBT;QACpB;IACF;IAEA,OAAOS;AACT"}
|