improve loading of extension locales with fallback

This commit is contained in:
jfh
2020-09-10 00:54:17 +02:00
parent 9a8b573ca5
commit ff83e4d22e
94 changed files with 267 additions and 354 deletions

View File

@@ -364,3 +364,24 @@ export const putLocale = async function (givenParam, goodLangs) {
const module = await import(`./locale/lang.${langParam}.js`);
return readLang(module.default);
};
/**
*
* @function module:locale.loadExtensionTranslation
* @param {string} extensionName
* @param {string} lang
* @returns {string} lang will will returned if the translation exists else it will be 'en'
*/
export const loadExtensionTranslation = async function (extensionName, lang) {
let translationModule;
try {
// eslint-disable-next-line node/no-unsupported-features/es-syntax
translationModule = await import(`./extensions/ext-${extensionName}/locale/${lang}.js`);
} catch (_error) {
// eslint-disable-next-line no-console
console.error(`Missing translation (${lang}) for extension ${extensionName} - using 'en'`);
// eslint-disable-next-line node/no-unsupported-features/es-syntax
translationModule = await import(`./extensions/ext-${extensionName}/locale/en.js`);
}
return translationModule.default;
};