From 313bfc220fd2d257c3ee0d5fb1dc853a51872992 Mon Sep 17 00:00:00 2001 From: Manuel Kocher <manuel.kocher@tugraz.at> Date: Wed, 19 Oct 2022 10:03:59 +0200 Subject: [PATCH] Add debug mode to translations s.t. only translation keys are shown in debug mode --- packages/common/i18next.js | 16 +++++++++++----- packages/common/src/translation.js | 4 +++- 2 files changed, 14 insertions(+), 6 deletions(-) diff --git a/packages/common/i18next.js b/packages/common/i18next.js index 7f9ae20f..69b5c67b 100644 --- a/packages/common/i18next.js +++ b/packages/common/i18next.js @@ -179,12 +179,18 @@ export async function setOverridesByGlobalCache(i18n, element) { for (let lng of i18n.languages) { // check if cacheOverrides throws error try { - cacheOverrides(element.langDir, lng); - translationCache[lng] = await translationCache[lng]; + // in debug mode, remove all translations + if (window.location.hash.includes('debug')) { + i18n.removeResourceBundle(lng, namespace); + } + // else only add new override translations and remove old overrides + else { + cacheOverrides(element.langDir, lng); + translationCache[lng] = await translationCache[lng]; + } i18n.removeResourceBundle(lng, overrideNamespace); - if (translationCache[lng] === undefined || translationCache[lng][tagName] === undefined) { - console.warn("Object with tagname " + tagName + " does not exist!"); - //continue; + if (translationCache[lng] === undefined) { + console.warn("Translations for language " + lng + " do not exist!"); } let resources = translationCache[lng]; hasOverrides = true; diff --git a/packages/common/src/translation.js b/packages/common/src/translation.js index 9a47a434..77b81738 100644 --- a/packages/common/src/translation.js +++ b/packages/common/src/translation.js @@ -88,8 +88,10 @@ export class Translation extends DBPLitElement { // check if overrides have been loaded with overrideNamespace // and then check if given key exists in overrideNS + // if in debug mode, show keys without errors and warning let keyComment = ""; - if (this._i18n.exists(overrideNamespace + ":" + this.key) && this._i18n.hasResourceBundle(this.lang, overrideNamespace)) { + if ((this._i18n.exists(overrideNamespace + ":" + this.key) && this._i18n.hasResourceBundle(this.lang, overrideNamespace)) + || window.location.hash.includes('debug')) { keyComment = unsafeHTML("<!-- key: " + this.key + "-->"); } else if (this._i18n.hasResourceBundle(this.lang, overrideNamespace)){ keyComment = unsafeHTML("<!-- key '" + this.key + "' not found! -->"); -- GitLab