From 3d2073c77b60f2a7754a5b786d8a54a71791af3e Mon Sep 17 00:00:00 2001
From: Manuel Kocher <manuel.kocher@tugraz.at>
Date: Thu, 6 Oct 2022 10:19:53 +0200
Subject: [PATCH] Add all object namespaces to each i18n translation override
 instance

---
 packages/common/i18next.js         | 2 +-
 packages/common/src/translation.js | 9 ++++-----
 2 files changed, 5 insertions(+), 6 deletions(-)

diff --git a/packages/common/i18next.js b/packages/common/i18next.js
index 47205cd7..84f285c9 100644
--- a/packages/common/i18next.js
+++ b/packages/common/i18next.js
@@ -183,7 +183,7 @@ export async function setOverridesByGlobalCache(i18n, element) {
           translationCache[lng] = await translationCache[lng];
           i18n.removeResourceBundle(lng, overrideNamespace);
           if (translationCache[lng] === undefined || translationCache[lng][tagName] === undefined) continue;
-          let resources = translationCache[lng][tagName];
+          let resources = translationCache[lng];
           hasOverrides = true;
           i18n.addResourceBundle(lng, overrideNamespace, resources);
         } catch(e) {
diff --git a/packages/common/src/translation.js b/packages/common/src/translation.js
index ef9f67c2..9a47a434 100644
--- a/packages/common/src/translation.js
+++ b/packages/common/src/translation.js
@@ -43,11 +43,6 @@ export class Translation extends DBPLitElement {
       // get overrides everytime
       setOverridesByGlobalCache(this._i18n, this);
 
-      // use translation overrides if path is given
-      //if(this.langDir != '') {
-      //  setOverridesByGlobalCache(this._i18n, this);
-      //}
-
       // supercall after default i18n init to override translations only
       // if a override with this tagname is given
       super.connectedCallback();
@@ -55,11 +50,15 @@ export class Translation extends DBPLitElement {
 
     update(changedProperties) {
         let lang = this.lang;
+        let tagName = ((this.dataset && this.dataset.tagName) || this.tagName).toLowerCase();
         changedProperties.forEach((oldValue, propName) => {
             switch (propName) {
                 case 'lang':
                     this._i18n.changeLanguage(lang);
                     break;
+                case 'key':
+                    this.key = tagName + "." + this.key;
+                    break;
             }
         });
 
-- 
GitLab