diff --git a/packages/common/src/i18n.js b/packages/common/src/i18n.js index 0374a825419d2f2dea5fd68c5b9b0f76c019b9bb..d9e9630a3f2ed276165e46ed7f7732d3bb86e7a1 100644 --- a/packages/common/src/i18n.js +++ b/packages/common/src/i18n.js @@ -7,25 +7,27 @@ export function createInstance() { return _createInstance({en: en, de: de}, 'de', 'en'); } -export async function createInstanceAsync(langFile) { +export async function createInstanceAsync(langFile, namespace) { + if (namespace == undefined) + namespace = 'translation' // check if a path to language files is given if(langFile) { // request german lang file asynchronously let result = await - fetch(langFile + 'de/translation.json', { + fetch(langFile + 'de/' + namespace +'.json', { headers: {'Content-Type': 'application/json'}, }); const dynDe = await result.json(); // request english lang file asynchronously result = await - fetch(langFile + 'en/translation.json', { + fetch(langFile + 'en/' + namespace + '.json', { headers: {'Content-Type': 'application/json'}, }); const dynEn = await result.json(); - return _createInstance({en: dynEn, de: dynDe}, 'de', 'en'); + return _createInstance({en: dynEn, de: dynDe}, 'de', 'en', namespace); } - return _createInstance({en: en, de: de}, 'de', 'en'); + return _createInstance({en: en, de: de}, 'de', 'en', namespace); } diff --git a/packages/common/src/translation.js b/packages/common/src/translation.js index 04d010c43340ee1ea9b80f33da8c713bf104a071..874bcb0aed096a13281ba1f3c56deaa5f7c881c1 100644 --- a/packages/common/src/translation.js +++ b/packages/common/src/translation.js @@ -11,6 +11,7 @@ export class Translation extends DBPLitElement { this.lang = ''; this.langFiles = ''; this.interpolation = ''; + this.namespace = ''; } static get properties() { @@ -21,6 +22,7 @@ export class Translation extends DBPLitElement { langFiles: {type: String, attribute: 'lang-files'}, interpolation: {type: Object, attribute: 'var'}, unsafe: {type: Boolean, attribute: 'unsafe'}, + namespace: {type: String, attribute: 'ns'}, }; } @@ -35,7 +37,11 @@ export class Translation extends DBPLitElement { connectedCallback() { super.connectedCallback(); - this._i18n = createInstanceAsync(this.langFiles); + if (this.namespace == '') + this._i18n = createInstanceAsync(this.langFiles); + else { + this._i18n = createInstanceAsync(this.langFiles, this.namespace); + } } update(changedProperties) {