diff --git a/packages/app-shell/src/app-shell.js b/packages/app-shell/src/app-shell.js
index bd04cc863b83df03bd282ad80380db95252ae25b..3ba62536d755f90e939828d6bbe2f54c87db6706 100644
--- a/packages/app-shell/src/app-shell.js
+++ b/packages/app-shell/src/app-shell.js
@@ -31,7 +31,7 @@ const importNotify = async (i18n, promise) => {
     } catch (error) {
         console.log(error);
         notify({
-            body: i18n.t('page-updated-needs-reload'),
+            body: i18n.t('dbp.page-updated-needs-reload'),
             type: 'info',
             icon: 'warning',
         });
@@ -1117,8 +1117,8 @@ export class AppShell extends ScopedElementsMixin(DBPLitElement) {
                     <main>
                         <div
                             style="display: ${!this.metadata[this.activeView] ? 'block' : 'none'};">
-                            <h2>${i18n.t('page-not-found')}</h2>
-                            <p>${i18n.t('choose-from-menu')}</p>
+                            <h2>${i18n.t('dbp.page-not-found')}</h2>
+                            <p>${i18n.t('dbp.choose-from-menu')}</p>
                         </div>
                         <p class="description">${this.description}</p>
                         ${this._renderActivity()}
@@ -1128,13 +1128,13 @@ export class AppShell extends ScopedElementsMixin(DBPLitElement) {
                         <slot name="footer">
                             <slot name="footer-links">
                                 <a rel="noopener" class="" href="#use-your-privacy-policy-link">
-                                    ${i18n.t('privacy-policy')}
+                                    ${i18n.t('dbp.privacy-policy')}
                                 </a>
                                 <a rel="noopener" class="" href="#use-your-imprint-link">
-                                    ${i18n.t('imprint')}
+                                    ${i18n.t('dbp.imprint')}
                                 </a>
                                 <a rel="noopener" class="" href="#use-your-imprint-link">
-                                    ${i18n.t('contact')}
+                                    ${i18n.t('dbp.contact')}
                                 </a>
                             </slot>
                             <dbp-build-info
diff --git a/packages/app-shell/src/auth-menu-button.js b/packages/app-shell/src/auth-menu-button.js
index cbe2039fd30dca9a63a46925cca7592a4bb601a5..e0a566bf9163f0536d22d57fb9e2ef1c1661b538 100644
--- a/packages/app-shell/src/auth-menu-button.js
+++ b/packages/app-shell/src/auth-menu-button.js
@@ -279,7 +279,7 @@ export class AuthMenuButton extends ScopedElementsMixin(AdapterLitElement) {
                     <div class="dropdown-content" @blur="${this.closeDropdown}">
                         <div class="menu">
                             <a href="#" @click="${this.onLogoutClicked}" class="dropdown-item">
-                                ${i18n.t('logout')}
+                                ${i18n.t('dbp.logout')}
                             </a>
                         </div>
                     </div>
@@ -315,7 +315,7 @@ export class AuthMenuButton extends ScopedElementsMixin(AdapterLitElement) {
             <a href="#" @click="${this.onLoginClicked}">
                 <div class="login-box login-button">
                     <div class="icon">${unsafeHTML(loginSVG)}</div>
-                    <div class="label">${i18n.t('login')}</div>
+                    <div class="label">${i18n.t('dbp.login')}</div>
                 </div>
             </a>
         `;
diff --git a/packages/app-shell/src/dbp-activity-example.js b/packages/app-shell/src/dbp-activity-example.js
index 42f00aec922aac318eb09f0403fdfcb053527fd2..0445fe30e172e07d6ebabbad7c96767d9b5dec35 100644
--- a/packages/app-shell/src/dbp-activity-example.js
+++ b/packages/app-shell/src/dbp-activity-example.js
@@ -40,12 +40,12 @@ class ActivityExample extends LitElement {
     render() {
         const i18n = this._i18n;
         return html`
-            <h3>${i18n.t('activity-example.hello-world')}</h3>
+            <h3>${i18n.t('dbp.activity-example.hello-world')}</h3>
             <ul>
                 ${Array.from(Array(100).keys()).map(
                     (i) =>
                         html`
-                            <li>${i18n.t('activity-example.hello-world') + ' ' + i}</li>
+                            <li>${i18n.t('dbp.activity-example.hello-world') + ' ' + i}</li>
                         `
                 )}
             </ul>
diff --git a/packages/app-shell/src/dbp-app-shell-welcome.js b/packages/app-shell/src/dbp-app-shell-welcome.js
index b2d376c4977392fe656b3f885eb0cd6353c4c55c..d03d06bcfad7376b69f521c7b43fa3e3a839f222 100644
--- a/packages/app-shell/src/dbp-app-shell-welcome.js
+++ b/packages/app-shell/src/dbp-app-shell-welcome.js
@@ -147,7 +147,7 @@ class AppShellWelcome extends ScopedElementsMixin(LitElement) {
 
         return html`
             <p>
-                ${i18n.t('welcome.headline', {appname: app.topic.name[this.lang]})}
+                ${i18n.t('dbp.welcome.headline', {appname: app.topic.name[this.lang]})}
                 ${app.topic.description[this.lang]}
             </p>
             <br />
diff --git a/packages/app-shell/src/i18n/de/translation.json b/packages/app-shell/src/i18n/de/translation.json
index 5e483636423ec832e25d70023c62f38ba7a1feea..754b61229ae073072d64f4d9bcc958ac2a55b248 100644
--- a/packages/app-shell/src/i18n/de/translation.json
+++ b/packages/app-shell/src/i18n/de/translation.json
@@ -1,21 +1,23 @@
 {
-    "activity-example": {
-        "hello-world": "Hallo Welt"
-    },
-    "choose-from-menu": "Bitte wählen Sie eine Aktivität aus dem Menu.",
-    "contact": "Kontakt",
-    "imprint": "Impressum",
-    "login": "Anmelden",
-    "logo": {
-        "word1": "Wissen",
-        "word2": "Technik",
-        "word3": "Leidenschaft"
-    },
-    "logout": "Abmelden",
-    "page-not-found": "Die gewünschte Seite wurde nicht gefunden",
-    "page-updated-needs-reload": "Die Applikation wurde aktualisiert. Bitte laden Sie die Seite neu.",
-    "privacy-policy": "Datenschutz",
-    "welcome": {
-        "headline": "Willkommen bei der Applikation '{{appname}}'."
+    "dbp": {
+        "activity-example": {
+            "hello-world": "Hallo Welt"
+        },
+        "choose-from-menu": "Bitte wählen Sie eine Aktivität aus dem Menu.",
+        "contact": "Kontakt",
+        "imprint": "Impressum",
+        "login": "Anmelden",
+        "logo": {
+            "word1": "Wissen",
+            "word2": "Technik",
+            "word3": "Leidenschaft"
+        },
+        "logout": "Abmelden",
+        "page-not-found": "Die gewünschte Seite wurde nicht gefunden",
+        "page-updated-needs-reload": "Die Applikation wurde aktualisiert. Bitte laden Sie die Seite neu.",
+        "privacy-policy": "Datenschutz",
+        "welcome": {
+            "headline": "Willkommen bei der Applikation '{{appname}}'."
+        }
     }
 }
diff --git a/packages/app-shell/src/i18n/en/translation.json b/packages/app-shell/src/i18n/en/translation.json
index 9ee06e1925386db6c124b0a20506dfb3e32fe299..7bd5bb5072d91ca1fd9f010ae01914aa864fef9f 100644
--- a/packages/app-shell/src/i18n/en/translation.json
+++ b/packages/app-shell/src/i18n/en/translation.json
@@ -1,21 +1,23 @@
 {
-    "activity-example": {
-        "hello-world": "Hello World"
-    },
-    "choose-from-menu": "Please choose an activity from the menu.",
-    "contact": "Contact",
-    "imprint": "Legal Notice",
-    "login": "Login",
-    "logo": {
-        "word1": "Science",
-        "word2": "Passion",
-        "word3": "Technology"
-    },
-    "logout": "Logout",
-    "page-not-found": "Requested Page Not Found",
-    "page-updated-needs-reload": "The application has been updated. Please reload the page.",
-    "privacy-policy": "Privacy Policy",
-    "welcome": {
-        "headline": "Welcome to the '{{appname}}' application."
+    "dbp": {
+        "activity-example": {
+            "hello-world": "Hello World"
+        },
+        "choose-from-menu": "Please choose an activity from the menu.",
+        "contact": "Contact",
+        "imprint": "Legal Notice",
+        "login": "Login",
+        "logo": {
+            "word1": "Science",
+            "word2": "Passion",
+            "word3": "Technology"
+        },
+        "logout": "Logout",
+        "page-not-found": "Requested Page Not Found",
+        "page-updated-needs-reload": "The application has been updated. Please reload the page.",
+        "privacy-policy": "Privacy Policy",
+        "welcome": {
+            "headline": "Welcome to the '{{appname}}' application."
+        }
     }
 }
diff --git a/packages/app-shell/src/tugraz-logo.js b/packages/app-shell/src/tugraz-logo.js
index c44bf465783de821e472ee185987cb9a7870811e..49a2cd52d0ff65f72b3379038c9cb047b366343a 100644
--- a/packages/app-shell/src/tugraz-logo.js
+++ b/packages/app-shell/src/tugraz-logo.js
@@ -77,9 +77,9 @@ export class TUGrazLogo extends AdapterLitElement {
         return html`
             <a href="https://www.tugraz.at" title="TU Graz Home" target="_blank" rel="noopener">
                 <div id="claim">
-                    <div class="int-header-logo-claim-single">${i18n.t('logo.word1')}</div>
-                    <div class="int-header-logo-claim-single">${i18n.t('logo.word2')}</div>
-                    <div class="int-header-logo-claim-single">${i18n.t('logo.word3')}</div>
+                    <div class="int-header-logo-claim-single">${i18n.t('dbp.logo.word1')}</div>
+                    <div class="int-header-logo-claim-single">${i18n.t('dbp.logo.word2')}</div>
+                    <div class="int-header-logo-claim-single">${i18n.t('dbp.logo.word3')}</div>
                 </div>
                 <svg
                     id="img"
diff --git a/packages/auth/src/auth-keycloak.js b/packages/auth/src/auth-keycloak.js
index 7208a9de74120a6ffd5ea0dac7657796c5c4e45a..25de27d5adb27d3857a51d746360b748c38961bf 100644
--- a/packages/auth/src/auth-keycloak.js
+++ b/packages/auth/src/auth-keycloak.js
@@ -239,7 +239,7 @@ export class AuthKeycloak extends AdapterLitElement {
                 // In case the keycloak server is offline for example
                 this._setLoginStatus(LoginStatus.LOGGED_OUT);
                 send({
-                    summary: this._i18n.t('login-failed'),
+                    summary: this._i18n.t('dbp.login-failed'),
                     type: 'danger',
                     timeout: 5,
                 });
diff --git a/packages/auth/src/i18n/de/translation.json b/packages/auth/src/i18n/de/translation.json
index 46959e2a80e2c8502a7b4f14d36253d54a567007..00daa5678b13886c825d73c0488a20ee3d714f20 100644
--- a/packages/auth/src/i18n/de/translation.json
+++ b/packages/auth/src/i18n/de/translation.json
@@ -1,5 +1,7 @@
 {
-    "login": "Anmelden",
-    "login-failed": "Kommunikation mit dem Anmeldeserver fehlgeschlagen",
-    "logout": "Abmelden"
+    "dbp": {
+        "login": "Anmelden",
+        "login-failed": "Kommunikation mit dem Anmeldeserver fehlgeschlagen",
+        "logout": "Abmelden"
+    }
 }
diff --git a/packages/auth/src/i18n/en/translation.json b/packages/auth/src/i18n/en/translation.json
index 1cd772c555a60ed294eb68b37958ede544314ac2..da7adf8b718a1fe273394242ca6344939461257d 100644
--- a/packages/auth/src/i18n/en/translation.json
+++ b/packages/auth/src/i18n/en/translation.json
@@ -1,5 +1,7 @@
 {
-    "login": "Login",
-    "login-failed": "Communication with the login server failed",
-    "logout": "Logout"
+    "dbp": {
+        "login": "Login",
+        "login-failed": "Communication with the login server failed",
+        "logout": "Logout"
+    }
 }
diff --git a/packages/auth/src/login-button.js b/packages/auth/src/login-button.js
index 59f2776bf5df7cf2267903f2d183f538dd50abba..6c8914cb666dc60945db5dab1a4b26827aa95ecd 100644
--- a/packages/auth/src/login-button.js
+++ b/packages/auth/src/login-button.js
@@ -177,7 +177,7 @@ export class LoginButton extends ScopedElementsMixin(AdapterLitElement) {
                 <a href="#" @click="${this._onLogoutClicked}">
                     <div class="login-box login-button">
                         <div class="icon">${unsafeHTML(logoutSVG)}</div>
-                        <div class="label">${i18n.t('logout')}</div>
+                        <div class="label">${i18n.t('dbp.logout')}</div>
                     </div>
                 </a>
             `;
@@ -186,7 +186,7 @@ export class LoginButton extends ScopedElementsMixin(AdapterLitElement) {
                 <a href="#" @click="${this._onLoginClicked}">
                     <div class="login-box login-button">
                         <div class="icon">${unsafeHTML(loginSVG)}</div>
-                        <div class="label">${i18n.t('login')}</div>
+                        <div class="label">${i18n.t('dbp.login')}</div>
                     </div>
                 </a>
             `;
diff --git a/packages/common/README.md b/packages/common/README.md
index feddaa5a019d81e29e546f9a652a22ddfaea1a68..9e1fb8ec5e0dfff75b56f4406f7b187504490e82 100644
--- a/packages/common/README.md
+++ b/packages/common/README.md
@@ -98,9 +98,9 @@ To use translations from another namespace, the namespace has to be defined by u
 Therefore, two `dbp-theme-switcher` components, one with overrides and one without, can be displayed using the following code:
 ```html
 <dbp-theme-switcher subscribe="lang, lang-dir"
-    themes='[{"class": "light-theme", "icon": "sun", "name": "${this._i18n.t('themes.light-mode')}"}, {"class": "dark-theme", "icon": "night", "name": "${this._i18n.t('themes.dark-mode')}"}]'></dbp-theme-switcher>
+    themes='[{"class": "light-theme", "icon": "sun", "name": "${this._i18n.t('dbp.themes.light-mode')}"}, {"class": "dark-theme", "icon": "night", "name": "${this._i18n.t('dbp.themes.dark-mode')}"}]'></dbp-theme-switcher>
 <dbp-theme-switcher subscribe="lang"
-    themes='[{"class": "light-theme", "icon": "sun", "name": "${this._i18n.t('translation:themes.light-mode')}"}, {"class": "dark-theme", "icon": "night", "name": "${this._i18n.t('translation:themes.dark-mode')}"}]'></dbp-theme-switcher>
+    themes='[{"class": "light-theme", "icon": "sun", "name": "${this._i18n.t('translation:dbp.themes.light-mode')}"}, {"class": "dark-theme", "icon": "night", "name": "${this._i18n.t('translation:dbp.themes.dark-mode')}"}]'></dbp-theme-switcher>
 ```
 with the following translation files:
 ```json
diff --git a/packages/common/dbp-common-demo.js b/packages/common/dbp-common-demo.js
index 5726fd11724f98bfa84b9986e441a85d1f940fca..be6f33c2f35f86a9a46ca6c2987c4f162ee3c16f 100644
--- a/packages/common/dbp-common-demo.js
+++ b/packages/common/dbp-common-demo.js
@@ -322,9 +322,9 @@ html {
                         <dbp-translation subscribe="lang, lang-dir" key="test"></dbp-translation><br/>
                         <dbp-translation subscribe="lang, lang-dir" key="link" var='{"linkDE": "https://www.tugraz.at/home/", "linkEN": "https://www.tugraz.at/en/home/"}' unsafe></dbp-translation>
                         <dbp-theme-switcher subscribe="lang, lang-dir"
-                            themes='[{"class": "light-theme", "icon": "sun", "name": "${this._i18n.t('themes.light-mode')}"}, {"class": "dark-theme", "icon": "night", "name": "${this._i18n.t('themes.dark-mode')}"}]'></dbp-theme-switcher>
+                            themes='[{"class": "light-theme", "icon": "sun", "name": "${this._i18n.t('dbp.themes.light-mode')}"}, {"class": "dark-theme", "icon": "night", "name": "${this._i18n.t('dbp.themes.dark-mode')}"}]'></dbp-theme-switcher>
                         <dbp-theme-switcher subscribe="lang"
-                            themes='[{"class": "light-theme", "icon": "sun", "name": "${this._i18n.t('translation:themes.light-mode')}"}, {"class": "dark-theme", "icon": "night", "name": "${this._i18n.t('translation:themes.dark-mode')}"}]'></dbp-theme-switcher>
+                            themes='[{"class": "light-theme", "icon": "sun", "name": "${this._i18n.t('translation:dbp.themes.light-mode')}"}, {"class": "dark-theme", "icon": "night", "name": "${this._i18n.t('translation:dbp.themes.dark-mode')}"}]'></dbp-theme-switcher>
                     </div>
                 </div>
             </section>
diff --git a/packages/common/error.js b/packages/common/error.js
index 33cfda32567a78105800572eacbf9a4b9bc3422a..47a3033793dd838921eecd17eba47b4e4daa6c7b 100644
--- a/packages/common/error.js
+++ b/packages/common/error.js
@@ -71,11 +71,11 @@ export const errorMixin = {
 
         // if the server is not reachable at all
         if (jqXHR.status === 0) {
-            body = i18n.t('error.connection-to-server-refused');
+            body = i18n.t('dbp.error.connection-to-server-refused');
         }
 
         notify({
-            summary: i18n.t('error.summary'),
+            summary: i18n.t('dbp.error.summary'),
             body: escapeHTML(stripHTML(body)),
             icon: icon,
             type: 'danger',
@@ -128,12 +128,12 @@ export const errorMixin = {
                 body =
                     error.message !== ''
                         ? error.message
-                        : i18n.t('error.connection-to-server-refused');
+                        : i18n.t('dbp.error.connection-to-server-refused');
             }
         }
 
         notify({
-            summary: summary === '' ? i18n.t('error.summary') : summary,
+            summary: summary === '' ? i18n.t('dbp.error.summary') : summary,
             body: escapeHTML(stripHTML(body)),
             icon: icon,
             type: 'danger',
diff --git a/packages/common/i18next.js b/packages/common/i18next.js
index 69b5c67b4e271ed17d02f3b23d5ce8f4b76df0ea..8fed2d7be348c55da9e0037e107329c57c6f14c8 100644
--- a/packages/common/i18next.js
+++ b/packages/common/i18next.js
@@ -125,6 +125,17 @@ export function createInstance(languages, lng, fallback, namespace) {
     i18n.init(options);
     console.assert(i18n.isInitialized);
 
+    const translate = i18n.t;
+    const that = i18n;
+
+    i18n.t = function (keys, options) {
+        if (!that.exists(keys)) {
+            console.error("Error: Translation key " + keys + " does not exist!");
+        }
+
+        return translate(keys, options);
+    }
+
     return i18n;
 }
 
@@ -189,6 +200,7 @@ export async function setOverridesByGlobalCache(i18n, element) {
             translationCache[lng] = await translationCache[lng];
           }
           i18n.removeResourceBundle(lng, overrideNamespace);
+
           if (translationCache[lng] === undefined) {
             console.warn("Translations for language " + lng + " do not exist!");
           }
diff --git a/packages/common/jsonld.js b/packages/common/jsonld.js
index 021a62dbe3bb734db0b62eeb4d6d2222bfd38351..7b44a3393432dddd1e2d05639194943d5bc84e80 100644
--- a/packages/common/jsonld.js
+++ b/packages/common/jsonld.js
@@ -110,7 +110,7 @@ export default class JSONLD {
                         } else {
                             JSONLD._executeFailureFunctions(
                                 apiUrl,
-                                i18n.t('jsonld.api-documentation-server', {apiUrl: apiDocUrl})
+                                i18n.t('dbp.jsonld.api-documentation-server', {apiUrl: apiDocUrl})
                             );
                         }
                     };
@@ -119,13 +119,13 @@ export default class JSONLD {
                 } else {
                     JSONLD._executeFailureFunctions(
                         apiUrl,
-                        i18n.t('jsonld.error-hydra-documentation-url-not-set', {apiUrl: apiUrl})
+                        i18n.t('dbp.jsonld.error-hydra-documentation-url-not-set', {apiUrl: apiUrl})
                     );
                 }
             } else {
                 JSONLD._executeFailureFunctions(
                     apiUrl,
-                    i18n.t('jsonld.error-api-server', {apiUrl: apiUrl})
+                    i18n.t('dbp.jsonld.error-api-server', {apiUrl: apiUrl})
                 );
             }
         };
@@ -192,7 +192,7 @@ export default class JSONLD {
 
         if (message !== '') {
             notify({
-                summary: i18n.t('error.summary'),
+                summary: i18n.t('dbp.error.summary'),
                 body: message,
                 type: 'danger',
             });
diff --git a/packages/common/src/i18n/de/translation.json b/packages/common/src/i18n/de/translation.json
index 0cc3370c234ffb26573a8edb6bd0f6293df9e7f5..ec2a3a787bfd7e2418634b3b29d5754a9ca0c77e 100644
--- a/packages/common/src/i18n/de/translation.json
+++ b/packages/common/src/i18n/de/translation.json
@@ -1,15 +1,17 @@
 {
-    "error": {
-        "connection-to-server-refused": "Verbindungs zum Server verweigert!",
-        "summary": "Ein Fehler ist aufgetreten"
-    },
-    "jsonld": {
-        "api-documentation-server": "Verbindung zum apiDocumentation API Server {{apiDocUrl}} fehlgeschlagen!",
-        "error-api-server": "Verbindung zum API Server {{apiUrl}} fehlgeschlagen!",
-        "error-hydra-documentation-url-not-set": "Hydra apiDocumentation URL wurden für server {{apiUrl}} nicht gesetzt!"
-    },
-    "themes": {
-        "light-mode": "Light Mode",
-        "dark-mode": "Dark Mode"
+    "dbp": {
+        "error": {
+            "connection-to-server-refused": "Verbindungs zum Server verweigert!",
+            "summary": "Ein Fehler ist aufgetreten"
+        },
+        "jsonld": {
+            "api-documentation-server": "Verbindung zum apiDocumentation API Server {{apiDocUrl}} fehlgeschlagen!",
+            "error-api-server": "Verbindung zum API Server {{apiUrl}} fehlgeschlagen!",
+            "error-hydra-documentation-url-not-set": "Hydra apiDocumentation URL wurden für server {{apiUrl}} nicht gesetzt!"
+        },
+        "themes": {
+            "light-mode": "Light Mode",
+            "dark-mode": "Dark Mode"
+        }
     }
 }
diff --git a/packages/common/src/i18n/en/translation.json b/packages/common/src/i18n/en/translation.json
index 915dedadd2d08bdf8319154437aedd2a884416b2..c201395d4bf9975c94e9977f392e52bf3d8c767f 100644
--- a/packages/common/src/i18n/en/translation.json
+++ b/packages/common/src/i18n/en/translation.json
@@ -1,15 +1,17 @@
 {
-    "error": {
-        "connection-to-server-refused": "Connection to server refused!",
-        "summary": "An error occurred"
-    },
-    "jsonld": {
-        "api-documentation-server": "Connection to apiDocumentation server {{apiDocUrl}} failed!",
-        "error-api-server": "Connection to api server {{apiUrl}} failed!",
-        "error-hydra-documentation-url-not-set": "Hydra apiDocumentation url was not set for server {{apiUrl}}!"
-    },
-    "themes": {
-        "light-mode": "Light Mode",
-        "dark-mode": "Dark Mode"
+    "dbp": {
+        "error": {
+            "connection-to-server-refused": "Connection to server refused!",
+            "summary": "An error occurred"
+        },
+        "jsonld": {
+            "api-documentation-server": "Connection to apiDocumentation server {{apiDocUrl}} failed!",
+            "error-api-server": "Connection to api server {{apiUrl}} failed!",
+            "error-hydra-documentation-url-not-set": "Hydra apiDocumentation url was not set for server {{apiUrl}}!"
+        },
+        "themes": {
+            "light-mode": "Light Mode",
+            "dark-mode": "Dark Mode"
+        }
     }
 }
diff --git a/packages/data-table-view/src/data-table-view.js b/packages/data-table-view/src/data-table-view.js
index 226ca976b98376bb262cec5a83efcc9c631b565d..ad951060db045bc0c1706ab472ce506c736a8951 100644
--- a/packages/data-table-view/src/data-table-view.js
+++ b/packages/data-table-view/src/data-table-view.js
@@ -131,7 +131,7 @@ export class DataTableView extends AdapterLitElement {
                         input.type = 'text';
                         input.className = 'column-search-line';
                         input.id = 'input-col-' + index;
-                        input.placeholder = i18n.t('column-search-placeholder', {
+                        input.placeholder = i18n.t('dbp.column-search-placeholder', {
                             fieldName: element.title,
                         });
                         th.appendChild(input);
@@ -156,14 +156,14 @@ export class DataTableView extends AdapterLitElement {
             buttons: [
                 {
                     extend: 'excelHtml5',
-                    text: i18n.t('export-excel'),
+                    text: i18n.t('dbp.export-excel'),
                     title: this.exportName,
                     filename: this.exportName,
                     className: 'button is-small',
                 },
                 {
                     extend: 'csvHtml5',
-                    text: i18n.t('export-csv'),
+                    text: i18n.t('dbp.export-csv'),
                     title: this.exportName,
                     filename: this.exportName,
                     className: 'button is-small',
@@ -173,7 +173,7 @@ export class DataTableView extends AdapterLitElement {
                 },
                 {
                     extend: 'print',
-                    text: i18n.t('print'),
+                    text: i18n.t('dbp.print'),
                     title: this.exportName,
                     className: 'button is-small',
                 },
diff --git a/packages/data-table-view/src/dbp-data-table-view-demo.js b/packages/data-table-view/src/dbp-data-table-view-demo.js
index 07b3ebb212f538e5475053692e67eb32dcaf390e..c145dd64c62d600f3edbbab0573053669d3fa85e 100644
--- a/packages/data-table-view/src/dbp-data-table-view-demo.js
+++ b/packages/data-table-view/src/dbp-data-table-view-demo.js
@@ -1,6 +1,6 @@
 import {AuthKeycloak, LoginButton} from '@dbp-toolkit/auth';
 import {DataTableView} from './data-table-view.js';
-import {createInstance} from './i18n';
+import {createInstance, setOverridesByGlobalCache} from './i18n';
 import {css, html} from 'lit';
 import {ScopedElementsMixin} from '@open-wc/scoped-elements';
 import * as commonUtils from '@dbp-toolkit/common/utils';
@@ -38,6 +38,10 @@ export class DataTableViewDemo extends ScopedElementsMixin(DBPLitElement) {
         super.connectedCallback();
         const that = this;
 
+        if (this.langDir) {
+          setOverridesByGlobalCache(this._i18n, this);
+        }
+
         this.updateComplete.then(() => {
             /*
                     First Table: with data
diff --git a/packages/data-table-view/src/i18n/de/translation.json b/packages/data-table-view/src/i18n/de/translation.json
index 44ed9cf13b86a3cb8ae01b4e2ae611b576efaeca..2ca108b787bee0e8874318deb1d34251fcc1c8fa 100644
--- a/packages/data-table-view/src/i18n/de/translation.json
+++ b/packages/data-table-view/src/i18n/de/translation.json
@@ -1,6 +1,8 @@
 {
-    "column-search-placeholder": "Nach {{fieldName}} suchen",
-    "export-csv": "CSV Export",
-    "export-excel": "Excel Export",
-    "print": "Drucken"
+    "dbp": {
+        "column-search-placeholder": "Nach {{fieldName}} suchen",
+        "export-csv": "CSV Export",
+        "export-excel": "Excel Export",
+        "print": "Drucken"
+    }
 }
diff --git a/packages/data-table-view/src/i18n/en/translation.json b/packages/data-table-view/src/i18n/en/translation.json
index 0f42ca8a6cbe2ea5461786f4bb2396125aa67d9f..ee509232b9fbc8d2a1b17138890360396319c932 100644
--- a/packages/data-table-view/src/i18n/en/translation.json
+++ b/packages/data-table-view/src/i18n/en/translation.json
@@ -1,6 +1,8 @@
 {
-    "column-search-placeholder": "Search for {{fieldName}}",
-    "export-csv": "CSV Export",
-    "export-excel": "Excel Export",
-    "print": "Print"
+    "dbp": {
+        "column-search-placeholder": "Search for {{fieldName}}",
+        "export-csv": "CSV Export",
+        "export-excel": "Excel Export",
+        "print": "Print"
+    }
 }
diff --git a/packages/file-handling/src/clipboard.js b/packages/file-handling/src/clipboard.js
index 37faa22d12a4cd7fe00b04447bbab66984460c7d..0cfa07dfe8985fe2f0ef3b371f477aa805ffa8e0 100644
--- a/packages/file-handling/src/clipboard.js
+++ b/packages/file-handling/src/clipboard.js
@@ -138,7 +138,7 @@ export class Clipboard extends ScopedElementsMixin(AdapterLitElement) {
             this.tabulatorTable = new Tabulator(this._('#clipboard-content-table'), {
                 layout: 'fitColumns',
                 selectable: true,
-                placeholder: i18n.t('clipboard.no-data'),
+                placeholder: i18n.t('dbp.clipboard.no-data'),
                 responsiveLayout: 'collapse',
                 responsiveLayoutCollapseStartOpen: false,
                 columnHeaderVertAlign: 'middle',
@@ -176,7 +176,7 @@ export class Clipboard extends ScopedElementsMixin(AdapterLitElement) {
                         },
                     },
                     {
-                        title: i18n.t('clipboard.file-name'),
+                        title: i18n.t('dbp.clipboard.file-name'),
                         responsive: 0,
                         widthGrow: 5,
                         minWidth: 150,
@@ -190,7 +190,7 @@ export class Clipboard extends ScopedElementsMixin(AdapterLitElement) {
                         },
                     },
                     {
-                        title: i18n.t('clipboard.file-size'),
+                        title: i18n.t('dbp.clipboard.file-size'),
                         responsive: 4,
                         widthGrow: 1,
                         minWidth: 84,
@@ -200,7 +200,7 @@ export class Clipboard extends ScopedElementsMixin(AdapterLitElement) {
                         },
                     },
                     {
-                        title: i18n.t('clipboard.file-type'),
+                        title: i18n.t('dbp.clipboard.file-type'),
                         responsive: 2,
                         widthGrow: 1,
                         minWidth: 58,
@@ -214,7 +214,7 @@ export class Clipboard extends ScopedElementsMixin(AdapterLitElement) {
                         },
                     },
                     {
-                        title: i18n.t('clipboard.file-mod'),
+                        title: i18n.t('dbp.clipboard.file-mod'),
                         responsive: 3,
                         widthGrow: 1,
                         minWidth: 150,
@@ -295,8 +295,8 @@ export class Clipboard extends ScopedElementsMixin(AdapterLitElement) {
 
         if (this._('#select_all_checkmark')) {
             this._('#select_all_checkmark').title = this.checkAllSelected()
-                ? i18n.t('clipboard.select-nothing')
-                : i18n.t('clipboard.select-all');
+                ? i18n.t('dbp.clipboard.select-nothing')
+                : i18n.t('dbp.clipboard.select-all');
         }
     }
 
@@ -464,8 +464,8 @@ export class Clipboard extends ScopedElementsMixin(AdapterLitElement) {
         }
         this.tabulatorTable.deselectRow();
         send({
-            summary: i18n.t('clipboard.saved-files-title', {count: files.length}),
-            body: i18n.t('clipboard.saved-files-body', {count: files.length}),
+            summary: i18n.t('dbp.clipboard.saved-files-title', {count: files.length}),
+            body: i18n.t('dbp.clipboard.saved-files-body', {count: files.length}),
             type: 'success',
             timeout: 5,
         });
@@ -497,8 +497,8 @@ export class Clipboard extends ScopedElementsMixin(AdapterLitElement) {
         // we need to handle custom events ourselves
         if (event.target && event.target.activeElement && event.target.activeElement.nodeName) {
             send({
-                summary: i18n.t('clipboard.file-warning'),
-                body: i18n.t('clipboard.file-warning-body', {
+                summary: i18n.t('dbp.clipboard.file-warning'),
+                body: i18n.t('dbp.clipboard.file-warning-body', {
                     count: this.clipboardFiles.files.length,
                 }),
                 type: 'warning',
@@ -581,8 +581,8 @@ export class Clipboard extends ScopedElementsMixin(AdapterLitElement) {
             });
             this.dispatchEvent(event);
             send({
-                summary: i18n.t('clipboard.saved-files-title', {count: this.filesToSave.length}),
-                body: i18n.t('clipboard.saved-files-body', {count: this.filesToSave.length}),
+                summary: i18n.t('dbp.clipboard.saved-files-title', {count: this.filesToSave.length}),
+                body: i18n.t('dbp.clipboard.saved-files-body', {count: this.filesToSave.length}),
                 type: 'success',
                 timeout: 5,
             });
@@ -597,8 +597,8 @@ export class Clipboard extends ScopedElementsMixin(AdapterLitElement) {
     finishedSaveFilesToClipboard(event) {
         const i18n = this._i18n;
         send({
-            summary: i18n.t('clipboard.saved-files-title', {count: event.detail.count}),
-            body: i18n.t('clipboard.saved-files-body', {count: event.detail.count}),
+            summary: i18n.t('dbp.clipboard.saved-files-title', {count: event.detail.count}),
+            body: i18n.t('dbp.clipboard.saved-files-body', {count: event.detail.count}),
             type: 'success',
             timeout: 5,
         });
@@ -649,8 +649,8 @@ export class Clipboard extends ScopedElementsMixin(AdapterLitElement) {
             this.tabulatorTable.getRows().forEach((row) => data.files.push(row.getData().file));
             this.sendSetPropertyEvent('clipboard-files', data);
             send({
-                summary: i18n.t('clipboard.clear-count-clipboard-title', {count: count}),
-                body: i18n.t('clipboard.clear-count-clipboard-body', {count: count}),
+                summary: i18n.t('dbp.clipboard.clear-count-clipboard-title', {count: count}),
+                body: i18n.t('dbp.clipboard.clear-count-clipboard-body', {count: count}),
                 type: 'success',
                 timeout: 5,
             });
@@ -659,8 +659,8 @@ export class Clipboard extends ScopedElementsMixin(AdapterLitElement) {
             let data = {files: []};
             this.sendSetPropertyEvent('clipboard-files', data);
             send({
-                summary: i18n.t('clipboard.clear-clipboard-title'),
-                body: i18n.t('clipboard.clear-clipboard-body'),
+                summary: i18n.t('dbp.clipboard.clear-clipboard-title'),
+                body: i18n.t('dbp.clipboard.clear-clipboard-body'),
                 type: 'success',
                 timeout: 5,
             });
@@ -690,10 +690,10 @@ export class Clipboard extends ScopedElementsMixin(AdapterLitElement) {
                             class="button ${classMap({
                                 hidden: this.mode === MODE_FILE_SINK || this.mode === MODE_FILE_SOURCE,
                             })}"
-                            title="${i18n.t('clipboard.add-files')}"
+                            title="${i18n.t('dbp.clipboard.add-files')}"
                             ?disabled="${this.buttonsDisabled}">
                         <dbp-icon class="nav-icon" name="clipboard"></dbp-icon>
-                        ${i18n.t('clipboard.add-files-btn')}
+                        ${i18n.t('dbp.clipboard.add-files-btn')}
                     </button>
                     <button
                             id="clipboard-remove-files-button"
@@ -702,14 +702,14 @@ export class Clipboard extends ScopedElementsMixin(AdapterLitElement) {
                             }}"
                             class="button"
                             title="${this.numberOfSelectedFiles > 0
-                                    ? i18n.t('clipboard.remove-count', {count: this.numberOfSelectedFiles})
-                                    : i18n.t('clipboard.remove-all')}"
+                                    ? i18n.t('dbp.clipboard.remove-count', {count: this.numberOfSelectedFiles})
+                                    : i18n.t('dbp.clipboard.remove-all')}"
                             ?disabled="${buttonsAreDisabled}">
                         ${this.numberOfSelectedFiles > 0
-                                ? i18n.t('clipboard.remove-count-btn', {
+                                ? i18n.t('dbp.clipboard.remove-count-btn', {
                                     count: this.numberOfSelectedFiles,
                                 })
-                                : i18n.t('clipboard.remove-all-btn')}
+                                : i18n.t('dbp.clipboard.remove-all-btn')}
                     </button>
                 </div>
                 <div class="btn-flex-container-mobile">
@@ -721,19 +721,19 @@ export class Clipboard extends ScopedElementsMixin(AdapterLitElement) {
                             ?disabled="${buttonsAreDisabled}"
                             class="button"
                             title="${this.numberOfSelectedFiles > 0
-                                    ? i18n.t('clipboard.save-count', {count: this.numberOfSelectedFiles})
-                                    : i18n.t('clipboard.save-all')}">
+                                    ? i18n.t('dbp.clipboard.save-count', {count: this.numberOfSelectedFiles})
+                                    : i18n.t('dbp.clipboard.save-all')}">
                         ${this.numberOfSelectedFiles > 0
-                                ? i18n.t('clipboard.save-count-btn', {
+                                ? i18n.t('dbp.clipboard.save-count-btn', {
                                     count: this.numberOfSelectedFiles,
                                 })
-                                : i18n.t('clipboard.save-all-btn')}
+                                : i18n.t('dbp.clipboard.save-all-btn')}
                     </button>
                 </div>
             </div>
             <dbp-file-source
                     id="file-source-clipboard"
-                    context="${i18n.t('clipboard.add-files')}"
+                    context="${i18n.t('dbp.clipboard.add-files')}"
                     allowed-mime-types="${this.allowedMimeTypes}"
                     nextcloud-auth-url="${this.nextcloudWebAppPasswordURL}"
                     nextcloud-web-dav-url="${this.nextcloudWebDavURL}"
@@ -746,8 +746,8 @@ export class Clipboard extends ScopedElementsMixin(AdapterLitElement) {
                             : this.enabledTargets.replace('clipboard', '')}"
                     decompress-zip
                     lang="${this.lang}"
-                    text="${i18n.t('clipboard.upload-area-text')}"
-                    button-label="${i18n.t('clipboard.upload-button-label')}"
+                    text="${i18n.t('dbp.clipboard.upload-area-text')}"
+                    button-label="${i18n.t('dbp.clipboard.upload-button-label')}"
                     @dbp-file-source-file-selected="${this.saveFilesToClipboardEvent}"
                     @dbp-nextcloud-file-picker-number-files="${this.finishedSaveFilesToClipboard}"
                     @dbp-file-source-file-upload-finished="${this
@@ -755,8 +755,8 @@ export class Clipboard extends ScopedElementsMixin(AdapterLitElement) {
             <dbp-file-sink
                     id="file-sink-clipboard"
                     context="${this.numberOfSelectedFiles > 0
-                            ? i18n.t('clipboard.save-count', {count: this.numberOfSelectedFiles})
-                            : i18n.t('clipboard.save-all')}"
+                            ? i18n.t('dbp.clipboard.save-count', {count: this.numberOfSelectedFiles})
+                            : i18n.t('dbp.clipboard.save-all')}"
                     filename="clipboard-documents.zip"
                     allowed-mime-types="${this.allowedMimeTypes}"
                     enabled-targets="${this.allowNesting
@@ -786,10 +786,10 @@ export class Clipboard extends ScopedElementsMixin(AdapterLitElement) {
         return html`
             <div class="wrapper">
                 <div class="content">
-                    <h3>${i18n.t('clipboard.sink-title')}</h3>
+                    <h3>${i18n.t('dbp.clipboard.sink-title')}</h3>
                     <div class="warning-container">
                         <dbp-icon name="warning-high" class="warning-icon"></dbp-icon>
-                        <p>${i18n.t('clipboard.warning')}</p>
+                        <p>${i18n.t('dbp.clipboard.warning')}</p>
                     </div>
                     <div>
                         ${this.getAdditionalButtons()}
@@ -802,12 +802,12 @@ export class Clipboard extends ScopedElementsMixin(AdapterLitElement) {
                 <div class="clipboard-footer">
                     <button
                             class="button select-button is-primary"
-                            title="${i18n.t('clipboard.sink-btn', {count: this.filesToSave.length})}"
+                            title="${i18n.t('dbp.clipboard.sink-btn', {count: this.filesToSave.length})}"
                             @click="${() => {
                                 this.saveFilesToClipboard();
                             }}">
                         <dbp-icon class="nav-icon" name="clipboard"></dbp-icon>
-                        ${i18n.t('clipboard.sink-btn', {count: this.filesToSave.length})}
+                        ${i18n.t('dbp.clipboard.sink-btn', {count: this.filesToSave.length})}
                     </button>
                 </div>
             </div>
@@ -828,10 +828,10 @@ export class Clipboard extends ScopedElementsMixin(AdapterLitElement) {
         return html`
             <div class="wrapper">
                 <div class="content">
-                    <h3>${i18n.t('clipboard.source-title')}</h3>
+                    <h3>${i18n.t('dbp.clipboard.source-title')}</h3>
                     <div class="warning-container">
                         <dbp-icon name="warning-high" class="warning-icon"></dbp-icon>
-                        <p>${i18n.t('clipboard.warning')}</p>
+                        <p>${i18n.t('dbp.clipboard.warning')}</p>
                     </div>
                     <div>
                         ${this.getAdditionalButtons()}
@@ -849,12 +849,12 @@ export class Clipboard extends ScopedElementsMixin(AdapterLitElement) {
                                 this.sendClipboardFiles(this.tabulatorTable.getSelectedData());
                             }}">
                         ${this.tabulatorTable && this.tabulatorTable.getSelectedRows().length > 0
-                                ? i18n.t('clipboard.source-btn', {
+                                ? i18n.t('dbp.clipboard.source-btn', {
                                     count: this.tabulatorTable
                                             ? this.tabulatorTable.getSelectedRows().length
                                             : 0,
                                 })
-                                : i18n.t('clipboard.source-btn-none')}
+                                : i18n.t('dbp.clipboard.source-btn-none')}
                     </button>
                 </div>
             </div>
diff --git a/packages/file-handling/src/demo.js b/packages/file-handling/src/demo.js
index c847d371c09f5034dc4cf702b9ac049a67b76125..a4ce235e7494fb4b5b440a49c6f15b74be54d54f 100644
--- a/packages/file-handling/src/demo.js
+++ b/packages/file-handling/src/demo.js
@@ -106,7 +106,7 @@ export class FileSourceDemo extends ScopedElementsMixin(LitElement) {
 
             <section class="section">
                 <div class="content">
-                    <h1 class="title">${i18n.t('demo-title')}</h1>
+                    <h1 class="title">${i18n.t('dbp.demo-title')}</h1>
                 </div>
                 <div class="content">
                     <h2 class="subtitle">Selected files</h2>
diff --git a/packages/file-handling/src/file-sink.js b/packages/file-handling/src/file-sink.js
index fc1db0b7db17430a2738089a3f3e278d201223cc..4ea981eaccd9366d2797b194ce7089f2ba19b7a5 100644
--- a/packages/file-handling/src/file-sink.js
+++ b/packages/file-handling/src/file-sink.js
@@ -199,8 +199,8 @@ export class FileSink extends ScopedElementsMixin(DbpFileHandlingLitElement) {
         MicroModal.close(this._('#modal-picker'));
         if (event.detail > 0) {
             send({
-                summary: i18n.t('file-sink.upload-success-title'),
-                body: i18n.t('file-sink.upload-success-body', {
+                summary: i18n.t('dbp.file-sink.upload-success-title'),
+                body: i18n.t('dbp.file-sink.upload-success-body', {
                     name: this.nextcloudName,
                     count: event.detail,
                 }),
@@ -335,7 +335,7 @@ export class FileSink extends ScopedElementsMixin(DbpFileHandlingLitElement) {
                     })}"
                     directories-only
                     max-selected-items="1"
-                    select-button-text="${i18n.t('file-sink.select-directory')}"
+                    select-button-text="${i18n.t('dbp.file-sink.select-directory')}"
                     ?disabled="${this.disabled}"
                     lang="${this.lang}"
                     subscribe="html-overrides,auth"
@@ -453,7 +453,7 @@ export class FileSink extends ScopedElementsMixin(DbpFileHandlingLitElement) {
                         <div class="nav-wrapper modal-nav">
                             <nav class="modal-nav">
                                 <div
-                                    title="${i18n.t('file-sink.nav-local')}"
+                                    title="${i18n.t('dbp.file-sink.nav-local')}"
                                     @click="${() => {
                                         this.activeTarget = 'local';
                                     }}"
@@ -462,7 +462,7 @@ export class FileSink extends ScopedElementsMixin(DbpFileHandlingLitElement) {
                                         hidden: !this.hasEnabledDestination('local'),
                                     })}">
                                     <dbp-icon class="nav-icon" name="laptop"></dbp-icon>
-                                    <p>${i18n.t('file-source.nav-local')}</p>
+                                    <p>${i18n.t('dbp.file-source.nav-local')}</p>
                                 </div>
                                 <div
                                     title="${this.nextcloudName}"
@@ -481,7 +481,7 @@ export class FileSink extends ScopedElementsMixin(DbpFileHandlingLitElement) {
                                     <p>${this.nextcloudName}</p>
                                 </div>
                                 <div
-                                    title="${i18n.t('file-sink.clipboard')}"
+                                    title="${i18n.t('dbp.file-sink.clipboard')}"
                                     @click="${() => {
                                         this.activeTarget = 'clipboard';
                                     }}"
@@ -490,7 +490,7 @@ export class FileSink extends ScopedElementsMixin(DbpFileHandlingLitElement) {
                                         hidden: !this.hasEnabledDestination('clipboard'),
                                     })}">
                                     <dbp-icon class="nav-icon" name="clipboard"></dbp-icon>
-                                    <p>${i18n.t('file-sink.clipboard')}</p>
+                                    <p>${i18n.t('dbp.file-sink.clipboard')}</p>
                                 </div>
                             </nav>
                             <div class="paddles">
@@ -507,14 +507,14 @@ export class FileSink extends ScopedElementsMixin(DbpFileHandlingLitElement) {
 
                         <div class="modal-header">
                             <button
-                                title="${i18n.t('file-sink.modal-close')}"
+                                title="${i18n.t('dbp.file-sink.modal-close')}"
                                 class="modal-close"
                                 aria-label="Close modal"
                                 @click="${() => {
                                     this.closeDialog();
                                 }}">
                                 <dbp-icon
-                                    title="${i18n.t('file-sink.modal-close')}"
+                                    title="${i18n.t('dbp.file-sink.modal-close')}"
                                     name="close"
                                     class="close-icon"></dbp-icon>
                             </button>
@@ -528,7 +528,7 @@ export class FileSink extends ScopedElementsMixin(DbpFileHandlingLitElement) {
                                 })}">
                                 <div id="zip-download-block">
                                     <div class="block">
-                                        ${i18n.t('file-sink.local-intro', {
+                                        ${i18n.t('dbp.file-sink.local-intro', {
                                             count: this.files.length,
                                         })}
                                     </div>
@@ -538,7 +538,7 @@ export class FileSink extends ScopedElementsMixin(DbpFileHandlingLitElement) {
                                         @click="${() => {
                                             this.downloadCompressedFiles();
                                         }}">
-                                        ${i18n.t('file-sink.local-button', {
+                                        ${i18n.t('dbp.file-sink.local-button', {
                                             count: this.files.length,
                                         })}
                                     </button>
diff --git a/packages/file-handling/src/file-source.js b/packages/file-handling/src/file-source.js
index f77d2a8d63daa93c9a0f96e66e0b52ebabfe1107..9ffead9e9244a631e74a4011e2e908399f5746a4 100644
--- a/packages/file-handling/src/file-source.js
+++ b/packages/file-handling/src/file-source.js
@@ -327,8 +327,8 @@ export class FileSource extends ScopedElementsMixin(DbpFileHandlingLitElement) {
                 `mime type ${file.type} of file '${file.name}' is not compatible with ${this.allowedMimeTypes}`
             );
             send({
-                summary: i18n.t('file-source.mime-type-title'),
-                body: i18n.t('file-source.mime-type-body'),
+                summary: i18n.t('dbp.file-source.mime-type-title'),
+                body: i18n.t('dbp.file-source.mime-type-body'),
                 type: 'danger',
                 timeout: 5,
             });
@@ -341,8 +341,8 @@ export class FileSource extends ScopedElementsMixin(DbpFileHandlingLitElement) {
         const i18n = this._i18n;
         if (this.maxFileSize !== '' && this.maxFileSize * 1000 <= file.size) {
             send({
-                summary: i18n.t('file-source.too-big-file-title'),
-                body: i18n.t('file-source.too-big-file-body', {
+                summary: i18n.t('dbp.file-source.too-big-file-title'),
+                body: i18n.t('dbp.file-source.too-big-file-body', {
                     size: humanFileSize(this.maxFileSize * 1000, true),
                 }),
                 type: 'danger',
@@ -416,8 +416,8 @@ export class FileSource extends ScopedElementsMixin(DbpFileHandlingLitElement) {
             console.error('ZIP file does not contain any files of ' + this.allowedMimeTypes);
             //throw new Error('ZIP file does not contain any files of ' + this.allowedMimeTypes);
             send({
-                summary: i18n.t('file-source.no-usable-files-in-zip'),
-                body: i18n.t('file-source.no-usable-files-hint') + this.allowedMimeTypes,
+                summary: i18n.t('dbp.file-source.no-usable-files-in-zip'),
+                body: i18n.t('dbp.file-source.no-usable-files-hint') + this.allowedMimeTypes,
                 type: 'danger',
                 timeout: 0,
             });
@@ -736,7 +736,7 @@ export class FileSource extends ScopedElementsMixin(DbpFileHandlingLitElement) {
                 ?disabled="${this.disabled}"
                 @click="${() => {
                 this.openDialog();
-            }}">${i18n.t('file-source.open-menu')}</button>
+            }}">${i18n.t('dbp.file-source.open-menu')}</button>
 -->
             <div class="modal micromodal-slide" id="modal-picker" aria-hidden="true">
                 <div class="modal-overlay" tabindex="-1" data-micromodal-close>
@@ -748,7 +748,7 @@ export class FileSource extends ScopedElementsMixin(DbpFileHandlingLitElement) {
                         <div class="nav-wrapper modal-nav">
                             <nav class="modal-nav">
                                 <div
-                                    title="${i18n.t('file-source.nav-local')}"
+                                    title="${i18n.t('dbp.file-source.nav-local')}"
                                     @click="${() => {
                                         this.activeTarget = 'local';
                                     }}"
@@ -757,7 +757,7 @@ export class FileSource extends ScopedElementsMixin(DbpFileHandlingLitElement) {
                                         hidden: !this.hasEnabledSource('local'),
                                     })}">
                                     <dbp-icon class="nav-icon" name="laptop"></dbp-icon>
-                                    <p>${i18n.t('file-source.nav-local')}</p>
+                                    <p>${i18n.t('dbp.file-source.nav-local')}</p>
                                 </div>
                                 <div
                                     title="Nextcloud"
@@ -775,7 +775,7 @@ export class FileSource extends ScopedElementsMixin(DbpFileHandlingLitElement) {
                                     <p>${this.nextcloudName}</p>
                                 </div>
                                 <div
-                                    title="${i18n.t('file-source.clipboard')}"
+                                    title="${i18n.t('dbp.file-source.clipboard')}"
                                     @click="${() => {
                                         this.activeTarget = 'clipboard';
                                     }}"
@@ -784,7 +784,7 @@ export class FileSource extends ScopedElementsMixin(DbpFileHandlingLitElement) {
                                         hidden: !this.hasEnabledSource('clipboard'),
                                     })}">
                                     <dbp-icon class="nav-icon" name="clipboard"></dbp-icon>
-                                    <p>${i18n.t('file-source.clipboard')}</p>
+                                    <p>${i18n.t('dbp.file-source.clipboard')}</p>
                                 </div>
                             </nav>
                             <div class="paddles">
@@ -800,7 +800,7 @@ export class FileSource extends ScopedElementsMixin(DbpFileHandlingLitElement) {
                         </div>
                         <div class="modal-header">
                             <button
-                                title="${i18n.t('file-source.modal-close')}"
+                                title="${i18n.t('dbp.file-source.modal-close')}"
                                 class="modal-close"
                                 aria-label="Close modal"
                                 @click="${() => {
@@ -818,7 +818,7 @@ export class FileSource extends ScopedElementsMixin(DbpFileHandlingLitElement) {
                                 })}">
                                 <div id="dropArea">
                                     <div class="block">
-                                        <p>${i18n.t('intro')}</p>
+                                        <p>${i18n.t('dbp.intro')}</p>
                                     </div>
 
                                     ${inputFile}
@@ -826,7 +826,7 @@ export class FileSource extends ScopedElementsMixin(DbpFileHandlingLitElement) {
                                         class="button is-primary"
                                         for="fileElem"
                                         ?disabled="${this.disabled}">
-                                        ${this.buttonLabel || i18n.t('upload-label')}
+                                        ${this.buttonLabel || i18n.t('dbp.upload-label')}
                                     </label>
                                 </div>
                             </div>
diff --git a/packages/file-handling/src/i18n/de/translation.json b/packages/file-handling/src/i18n/de/translation.json
index 1279d9353d142cf550d7e0865fbac72d4e378d43..8debc3ed3680e1a1dff4890cac55c172e03163ef 100644
--- a/packages/file-handling/src/i18n/de/translation.json
+++ b/packages/file-handling/src/i18n/de/translation.json
@@ -1,144 +1,146 @@
 {
-    "clipboard": {
-        "add-files": "Dateien der Zwischenablage hinzufügen",
-        "add-files-btn": "Dateien hinzufügen",
-        "clear-clipboard-body": "Die Zwischenablage wurde erfolgreich geleert.",
-        "clear-clipboard-title": "Zwischenablage geleert",
-        "clear-count-clipboard-body": "Eine Datei wurde erfolgreich aus der Zwischenablage entfernt.",
-        "clear-count-clipboard-body_plural": "{{count}} Dateien wurde erfolgreich aus der Zwischenablage entfernt.",
-        "clear-count-clipboard-title": "Datei entfernt",
-        "clear-count-clipboard-title_plural": "Dateien entfernt",
-        "file-mod": "Geändert",
-        "file-name": "Name",
-        "file-size": "Größe",
-        "file-type": "Art",
-        "file-warning": "Achtung!",
-        "file-warning-body": "Es befindet sich noch eine Datei in der Zwischenablage. Die Zwischenablage wird beim Verlassen der Seite verworfen.",
-        "file-warning-body_plural": "Es befinden sich noch {{count}} Dateien in der Zwischenablage. Die Zwischenablage wird beim Verlassen der Seite verworfen.",
-        "no-data": "Aktuell befinden sich keine Dateien in der Zwischenablage.",
-        "remove-all": "Alle Dateien aus der Zwischenablage entfernen",
-        "remove-all-btn": "Dateien entfernen",
-        "remove-count": "Eine Datei aus der Zwischenablage entfernen",
-        "remove-count_plural": "{{count}} Dateien aus der Zwischenablage entfernen",
-        "remove-count-btn": "Datei entfernen",
-        "remove-count-btn_plural": "{{count}} Dateien entfernen",
-        "save-all": "Alle Dateien aus der Zwischenablage sichern",
-        "save-all-btn": "Dateien sichern",
-        "save-count": "Eine Datei aus der Zwischenablage sichern",
-        "save-count_plural": "{{count}} Dateien aus der Zwischenablage sichern",
-        "save-count-btn": "Datei sichern",
-        "save-count-btn_plural": "{{count}} Dateien sichern",
-        "saved-files-body": "Eine Datei wurde erfolgreich temporär in der Zwischenablage abgelegt und kann jetzt innerhalb dieser Applikation verwendet werden.",
-        "saved-files-body_plural": "{{count}} Dateien wurde erfolgreich temporär in der Zwischenablage abgelegt und können jetzt innerhalb dieser Applikation verwendet werden.",
-        "saved-files-title": "Datei erfolgreich abgelegt",
-        "saved-files-title_plural": "Dateien erfolgreich abgelegt",
-        "select-all": "Alle auswählen",
-        "select-nothing": "Nichts auswählen",
-        "sink-btn": "{{count}} Datei ablegen",
-        "sink-btn_plural": "{{count}} Dateien ablegen",
-        "sink-title": "Dateien in der Zwischenablage ablegen",
-        "source-btn": "Datei auswählen",
-        "source-btn_plural": "{{count}} Dateien auswählen",
-        "source-btn-none": "Dateien auswählen",
-        "source-title": "Von der Zwischenablage auswählen",
-        "upload-area-text": "Sie können in diesem Bereich Dokumente per Drag & Drop oder per Direktauswahl hochladen.",
-        "upload-button-label": "Dateien auswählen",
-        "warning": "Vorsicht! Wenn Sie den Browser schließen oder die Seite neu laden wird die bestehende Zwischenablage automatisch verworfen!"
-    },
-    "demo-title": "Datei Abgabe Demo",
-    "file-sink": {
-        "clipboard": "Zwischenablage",
-        "local-button": "Datei herunterladen",
-        "local-button_plural": "Dateien herunterladen",
-        "local-intro": "{{count}} Datei herunterladen",
-        "local-intro_plural": "{{count}} Dateien herunterladen",
-        "modal-close": "Dialog schließen",
-        "nav-local": "Lokaler Computer",
-        "select-directory": "",
-        "upload-success-body": "Sie haben {{count}} Datei erfolgreich in {{name}} hochgeladen.",
-        "upload-success-body_plural": "Sie haben {{count}} Dateien erfolgreich in {{name}} hochgeladen.",
-        "upload-success-title": "Erfolgreich hochgeladen"
-    },
-    "file-source": {
-        "clipboard": "Zwischenablage",
-        "mime-type-body": "Das Dateiformat wird von dieser Applikation nicht unterstützt.",
-        "mime-type-title": "Nicht unterstützes Dateiformat",
-        "modal-close": "Dialog schließen",
-        "nav-local": "Lokaler Computer",
-        "no-usable-files-hint": "Laden Sie eine ZIP Datei mit Dateien von folgendem Typ hoch: ",
-        "no-usable-files-in-zip": "ZIP Datei enthält keine verwendbaren Dateien",
-        "open-menu": "",
-        "too-big-file-body": "Die Datei darf maximal {{size}} haben.",
-        "too-big-file-title": "Datei ist zu groß!"
-    },
-    "intro": "Sie können in diesem Bereich Dateien per Drag & Drop oder per Direktauswahl hochladen. Die Dateien dürfen sich auch in ZIP-Archiven befinden.",
-    "nextcloud-file-picker": {
-        "abort": "Vorgang abbrechen",
-        "abort-message": "Vorgang wurde abgebrochen.",
-        "add-folder": "Neuen Ordner erstellen",
-        "add-folder-close": "Neuer Ordner Dialog schließen",
-        "add-folder-error": "Die Ressource \"{{folder}}\" ist bereits vorhanden.",
-        "add-folder-error-empty": "Der Ordnername darf nicht leer sein.",
-        "add-folder-open": "Neuer Ordner Dialog öffnen",
-        "add-folder-success": "Der Ordner \"{{folder}}\" wurde erfolgreich erstellt.",
-        "all-recent-files-link-text": "Alle neuesten Dateien",
-        "auth-info": "Eine neue Seite wird geöffnet, um Ihr Konto zu verbinden.",
-        "auth-progress": "Anmeldung läuft",
-        "connect-nextcloud": "{{name}} verbinden",
-        "error-save-to-favorites": "Speichern in Favoriten nicht möglich! Bitte wählen Sie einen Ordner innerhalb der Favoriten aus.",
-        "error-save-to-recent": "Speichern in den neuesten Dateien nicht möglich! Bitte wählen Sie einen Ordner innerhalb der neuesten Dateien aus.",
-        "favorites-link-text": "Meine Favoriten",
-        "favorites-title": "Favoriten",
-        "filename": "Name",
-        "folder-home": "In das Home Verzeichnis springen",
-        "init-text-1": "Wählen Sie Ihre Dateien von {{name}}.",
-        "init-text-2": "Sie müssen sich zuerst authentifizieren.",
-        "last-modified": "Geändert",
-        "load-in-folder": "Ins aktuelle Verzeichnis laden",
-        "load-path-link": "Gehe zu {{path}}",
-        "load-to-folder": "Im ausgewählten Ordner hochladen",
-        "loadpath-nextcloud-file-picker": "Das {{name}} Verzeichnis wird geladen.",
-        "log-out": "Verbindung trennen",
-        "mime-type": "Art",
-        "more-menu": "",
-        "my-recent-files-link-text": "Meine neuesten Dateien",
-        "my-recent-files-title": "Meine neuesten Dateien",
-        "new-folder-dialog-button-cancel": "Abbrechen",
-        "new-folder-dialog-button-ok": "Erstellen",
-        "new-folder-dialog-default-name": "Neuer Ordner",
-        "new-folder-dialog-label": "Name eingeben:",
-        "new-folder-dialog-title": "Neuen Ordner erstellen",
-        "new-folder-placeholder": "Neuer Ordner",
-        "no-data": "In diesem Ordner befinden sich keine Dateien.",
-        "no-data-type": "In diesem Ordner befinden sich keine Dateien vom benötigten Typ.",
-        "no-favorites": "Es wurden keine Favoriten des entsprechenden Typs gefunden. Definieren Sie Dateien und Ordner in Ihrer {{name}} als Favoriten, um diese hier anzuzeigen.",
-        "no-recent-files": "Es wurden keine entsprechenden Dateien und Ordner innerhalb der letzten 3 Monate gefunden.",
-        "onlycreate": "Sie dürfen in diesem Ordner nur neue Dateien erstellen.",
-        "onlyedit": "Sie dürfen in diesem Ordner nur Dateien bearbeiten.",
-        "open-nextcloud-file-picker": "Dateien von {{name}} wählen",
-        "readonly": "Sie dürfen in diesem Ordner nichts hochladen.",
-        "recent-files-title": "Neueste Dateien",
-        "refresh-nextcloud-file-picker": "Erneut verbinden",
-        "remember-me": "Mit {{name}} verbunden bleiben",
-        "replace-cancel": "Abbrechen",
-        "replace-cancel-all": "Alle abbrechen",
-        "replace-mode-all": "Für alle zukünftigen Konflikte übernehmen",
-        "replace-new_name": "Neuer Name",
-        "replace-replace": "Ersetzen",
-        "replace-skip": "Überspringen",
-        "replace-text": "Was möchten Sie tun",
-        "replace-title-1": "Es ist bereits eine Datei mit dem Namen ",
-        "replace-title-2": " vorhanden",
-        "select-files": "Dateien auswählen",
-        "select-files-btn": "Datei auswählen",
-        "select-files-btn_plural": "{{count}} Dateien auswählen",
-        "size": "Größe",
-        "something-went-wrong": "Etwas ist schief gelaufen. Bitte verbinden Sie sich erneut.",
-        "upload-to": "Es wird nach {{- path}} hochgeladen ...",
-        "webdav-error": "Etwas ist schief gelaufen: {{error}}",
-        "file-error": "Das Dateiformat wird nicht unterstützt oder die Datei ist fehlerhaft und konnte nicht hochgeladen werden.",
-        "forbidden": "Sie sind nicht berechtigt, diese Aktion in diesem Ordner auszuführen.",
-        "file-upload-error": "Entschuldigung, etwas ist schief gelaufen. Bitte versuchen Sie es später noch einmal."
-    },
-    "upload-label": "Dateiauswahl"
+    "dbp": {
+        "clipboard": {
+            "add-files": "Dateien der Zwischenablage hinzufügen",
+            "add-files-btn": "Dateien hinzufügen",
+            "clear-clipboard-body": "Die Zwischenablage wurde erfolgreich geleert.",
+            "clear-clipboard-title": "Zwischenablage geleert",
+            "clear-count-clipboard-body": "Eine Datei wurde erfolgreich aus der Zwischenablage entfernt.",
+            "clear-count-clipboard-body_plural": "{{count}} Dateien wurde erfolgreich aus der Zwischenablage entfernt.",
+            "clear-count-clipboard-title": "Datei entfernt",
+            "clear-count-clipboard-title_plural": "Dateien entfernt",
+            "file-mod": "Geändert",
+            "file-name": "Name",
+            "file-size": "Größe",
+            "file-type": "Art",
+            "file-warning": "Achtung!",
+            "file-warning-body": "Es befindet sich noch eine Datei in der Zwischenablage. Die Zwischenablage wird beim Verlassen der Seite verworfen.",
+            "file-warning-body_plural": "Es befinden sich noch {{count}} Dateien in der Zwischenablage. Die Zwischenablage wird beim Verlassen der Seite verworfen.",
+            "no-data": "Aktuell befinden sich keine Dateien in der Zwischenablage.",
+            "remove-all": "Alle Dateien aus der Zwischenablage entfernen",
+            "remove-all-btn": "Dateien entfernen",
+            "remove-count": "Eine Datei aus der Zwischenablage entfernen",
+            "remove-count_plural": "{{count}} Dateien aus der Zwischenablage entfernen",
+            "remove-count-btn": "Datei entfernen",
+            "remove-count-btn_plural": "{{count}} Dateien entfernen",
+            "save-all": "Alle Dateien aus der Zwischenablage sichern",
+            "save-all-btn": "Dateien sichern",
+            "save-count": "Eine Datei aus der Zwischenablage sichern",
+            "save-count_plural": "{{count}} Dateien aus der Zwischenablage sichern",
+            "save-count-btn": "Datei sichern",
+            "save-count-btn_plural": "{{count}} Dateien sichern",
+            "saved-files-body": "Eine Datei wurde erfolgreich temporär in der Zwischenablage abgelegt und kann jetzt innerhalb dieser Applikation verwendet werden.",
+            "saved-files-body_plural": "{{count}} Dateien wurde erfolgreich temporär in der Zwischenablage abgelegt und können jetzt innerhalb dieser Applikation verwendet werden.",
+            "saved-files-title": "Datei erfolgreich abgelegt",
+            "saved-files-title_plural": "Dateien erfolgreich abgelegt",
+            "select-all": "Alle auswählen",
+            "select-nothing": "Nichts auswählen",
+            "sink-btn": "{{count}} Datei ablegen",
+            "sink-btn_plural": "{{count}} Dateien ablegen",
+            "sink-title": "Dateien in der Zwischenablage ablegen",
+            "source-btn": "Datei auswählen",
+            "source-btn_plural": "{{count}} Dateien auswählen",
+            "source-btn-none": "Dateien auswählen",
+            "source-title": "Von der Zwischenablage auswählen",
+            "upload-area-text": "Sie können in diesem Bereich Dokumente per Drag & Drop oder per Direktauswahl hochladen.",
+            "upload-button-label": "Dateien auswählen",
+            "warning": "Vorsicht! Wenn Sie den Browser schließen oder die Seite neu laden wird die bestehende Zwischenablage automatisch verworfen!"
+        },
+        "demo-title": "Datei Abgabe Demo",
+        "file-sink": {
+            "clipboard": "Zwischenablage",
+            "local-button": "Datei herunterladen",
+            "local-button_plural": "Dateien herunterladen",
+            "local-intro": "{{count}} Datei herunterladen",
+            "local-intro_plural": "{{count}} Dateien herunterladen",
+            "modal-close": "Dialog schließen",
+            "nav-local": "Lokaler Computer",
+            "select-directory": "",
+            "upload-success-body": "Sie haben {{count}} Datei erfolgreich in {{name}} hochgeladen.",
+            "upload-success-body_plural": "Sie haben {{count}} Dateien erfolgreich in {{name}} hochgeladen.",
+            "upload-success-title": "Erfolgreich hochgeladen"
+        },
+        "file-source": {
+            "clipboard": "Zwischenablage",
+            "mime-type-body": "Das Dateiformat wird von dieser Applikation nicht unterstützt.",
+            "mime-type-title": "Nicht unterstützes Dateiformat",
+            "modal-close": "Dialog schließen",
+            "nav-local": "Lokaler Computer",
+            "no-usable-files-hint": "Laden Sie eine ZIP Datei mit Dateien von folgendem Typ hoch: ",
+            "no-usable-files-in-zip": "ZIP Datei enthält keine verwendbaren Dateien",
+            "open-menu": "",
+            "too-big-file-body": "Die Datei darf maximal {{size}} haben.",
+            "too-big-file-title": "Datei ist zu groß!"
+        },
+        "intro": "Sie können in diesem Bereich Dateien per Drag & Drop oder per Direktauswahl hochladen. Die Dateien dürfen sich auch in ZIP-Archiven befinden.",
+        "nextcloud-file-picker": {
+            "abort": "Vorgang abbrechen",
+            "abort-message": "Vorgang wurde abgebrochen.",
+            "add-folder": "Neuen Ordner erstellen",
+            "add-folder-close": "Neuer Ordner Dialog schließen",
+            "add-folder-error": "Die Ressource \"{{folder}}\" ist bereits vorhanden.",
+            "add-folder-error-empty": "Der Ordnername darf nicht leer sein.",
+            "add-folder-open": "Neuer Ordner Dialog öffnen",
+            "add-folder-success": "Der Ordner \"{{folder}}\" wurde erfolgreich erstellt.",
+            "all-recent-files-link-text": "Alle neuesten Dateien",
+            "auth-info": "Eine neue Seite wird geöffnet, um Ihr Konto zu verbinden.",
+            "auth-progress": "Anmeldung läuft",
+            "connect-nextcloud": "{{name}} verbinden",
+            "error-save-to-favorites": "Speichern in Favoriten nicht möglich! Bitte wählen Sie einen Ordner innerhalb der Favoriten aus.",
+            "error-save-to-recent": "Speichern in den neuesten Dateien nicht möglich! Bitte wählen Sie einen Ordner innerhalb der neuesten Dateien aus.",
+            "favorites-link-text": "Meine Favoriten",
+            "favorites-title": "Favoriten",
+            "filename": "Name",
+            "folder-home": "In das Home Verzeichnis springen",
+            "init-text-1": "Wählen Sie Ihre Dateien von {{name}}.",
+            "init-text-2": "Sie müssen sich zuerst authentifizieren.",
+            "last-modified": "Geändert",
+            "load-in-folder": "Ins aktuelle Verzeichnis laden",
+            "load-path-link": "Gehe zu {{path}}",
+            "load-to-folder": "Im ausgewählten Ordner hochladen",
+            "loadpath-nextcloud-file-picker": "Das {{name}} Verzeichnis wird geladen.",
+            "log-out": "Verbindung trennen",
+            "mime-type": "Art",
+            "more-menu": "",
+            "my-recent-files-link-text": "Meine neuesten Dateien",
+            "my-recent-files-title": "Meine neuesten Dateien",
+            "new-folder-dialog-button-cancel": "Abbrechen",
+            "new-folder-dialog-button-ok": "Erstellen",
+            "new-folder-dialog-default-name": "Neuer Ordner",
+            "new-folder-dialog-label": "Name eingeben:",
+            "new-folder-dialog-title": "Neuen Ordner erstellen",
+            "new-folder-placeholder": "Neuer Ordner",
+            "no-data": "In diesem Ordner befinden sich keine Dateien.",
+            "no-data-type": "In diesem Ordner befinden sich keine Dateien vom benötigten Typ.",
+            "no-favorites": "Es wurden keine Favoriten des entsprechenden Typs gefunden. Definieren Sie Dateien und Ordner in Ihrer {{name}} als Favoriten, um diese hier anzuzeigen.",
+            "no-recent-files": "Es wurden keine entsprechenden Dateien und Ordner innerhalb der letzten 3 Monate gefunden.",
+            "onlycreate": "Sie dürfen in diesem Ordner nur neue Dateien erstellen.",
+            "onlyedit": "Sie dürfen in diesem Ordner nur Dateien bearbeiten.",
+            "open-nextcloud-file-picker": "Dateien von {{name}} wählen",
+            "readonly": "Sie dürfen in diesem Ordner nichts hochladen.",
+            "recent-files-title": "Neueste Dateien",
+            "refresh-nextcloud-file-picker": "Erneut verbinden",
+            "remember-me": "Mit {{name}} verbunden bleiben",
+            "replace-cancel": "Abbrechen",
+            "replace-cancel-all": "Alle abbrechen",
+            "replace-mode-all": "Für alle zukünftigen Konflikte übernehmen",
+            "replace-new_name": "Neuer Name",
+            "replace-replace": "Ersetzen",
+            "replace-skip": "Überspringen",
+            "replace-text": "Was möchten Sie tun",
+            "replace-title-1": "Es ist bereits eine Datei mit dem Namen ",
+            "replace-title-2": " vorhanden",
+            "select-files": "Dateien auswählen",
+            "select-files-btn": "Datei auswählen",
+            "select-files-btn_plural": "{{count}} Dateien auswählen",
+            "size": "Größe",
+            "something-went-wrong": "Etwas ist schief gelaufen. Bitte verbinden Sie sich erneut.",
+            "upload-to": "Es wird nach {{- path}} hochgeladen ...",
+            "webdav-error": "Etwas ist schief gelaufen: {{error}}",
+            "file-error": "Das Dateiformat wird nicht unterstützt oder die Datei ist fehlerhaft und konnte nicht hochgeladen werden.",
+            "forbidden": "Sie sind nicht berechtigt, diese Aktion in diesem Ordner auszuführen.",
+            "file-upload-error": "Entschuldigung, etwas ist schief gelaufen. Bitte versuchen Sie es später noch einmal."
+        },
+        "upload-label": "Dateiauswahl"
+    }
 }
diff --git a/packages/file-handling/src/i18n/en/translation.json b/packages/file-handling/src/i18n/en/translation.json
index 3cea0b10959f51a24755a0efc74205d49c86bef0..26a3c067b256343abddf50f489dd5022124c5d11 100644
--- a/packages/file-handling/src/i18n/en/translation.json
+++ b/packages/file-handling/src/i18n/en/translation.json
@@ -1,144 +1,146 @@
 {
-    "clipboard": {
-        "add-files": "Add files to clipboard",
-        "add-files-btn": "Add files",
-        "clear-clipboard-body": "The clipboard was successfully cleared.",
-        "clear-clipboard-title": "Clipboard cleared",
-        "clear-count-clipboard-body": "One file was successfully removed from clipboard.",
-        "clear-count-clipboard-body_plural": "{{count}} files were successfully removed from clipboard.",
-        "clear-count-clipboard-title": "File removed",
-        "clear-count-clipboard-title_plural": "Files removed",
-        "file-mod": "Last modified",
-        "file-name": "Name",
-        "file-size": "Size",
-        "file-type": "Type",
-        "file-warning": "Attention!",
-        "file-warning-body": "There is still a file on the clipboard. The clipboard is discarded when you exit the page.",
-        "file-warning-body_plural": "There are still {{count}} files on the clipboard. The clipboard is discarded when you exit the page.",
-        "no-data": "There are no files",
-        "remove-all": "Remove all files from the clipboard",
-        "remove-all-btn": "Remove all",
-        "remove-count": "Remove file from the clipboard",
-        "remove-count_plural": "Remove {{count}} files from the clipboard",
-        "remove-count-btn": "Remove file",
-        "remove-count-btn_plural": "Remove {{count}} files",
-        "save-all": "Save all files from the clipboard",
-        "save-all-btn": "Save all",
-        "save-count": "Save one file from the clipboard",
-        "save-count_plural": "Save {{count}} files from the clipboard",
-        "save-count-btn": "Save file",
-        "save-count-btn_plural": "Save {{count}} files",
-        "saved-files-body": "A file was successfully stored temporarily in the clipboard and can now be used within this application.",
-        "saved-files-body_plural": "{{count}} files were successfully stored temporarily in the clipboard and can now be used within this application.",
-        "saved-files-title": "File successfully filed",
-        "saved-files-title_plural": "Files successfully filed",
-        "select-all": "Select all",
-        "select-nothing": "Select nothing",
-        "sink-btn": "Store {{count}} file",
-        "sink-btn_plural": "Store {{count}} files",
-        "sink-title": "Store files on the clipboard",
-        "source-btn": "Select file",
-        "source-btn_plural": "Select {{count}} files",
-        "source-btn-none": "Select files",
-        "source-title": "Select files from clipboard",
-        "upload-area-text": "In this area you can upload documents up to a size of 32MB via Drag & Drop or by selecting them directly. ",
-        "upload-button-label": "Load to clipboard",
-        "warning": "Attention! If you close the browser or reload the page the existing clipboard is automatically discarded!"
-    },
-    "demo-title": "File Upload Demo",
-    "file-sink": {
-        "clipboard": "Clipboard",
-        "local-button": "Download file",
-        "local-button_plural": "Download files",
-        "local-intro": "Download {{count}} file",
-        "local-intro_plural": "Download {{count}} files",
-        "modal-close": "Close dialog",
-        "nav-local": "My device",
-        "select-directory": "",
-        "upload-success-body": "You have successfully uploaded {{count}} file to {{name}}.",
-        "upload-success-body_plural": "You have successfully uploaded {{count}} files to {{name}}.",
-        "upload-success-title": "Successful uploaded"
-    },
-    "file-source": {
-        "clipboard": "Clipboard",
-        "mime-type-body": "The file format is not supported by this application.",
-        "mime-type-title": "Unsupported file format",
-        "modal-close": "Close dialog",
-        "nav-local": "My device",
-        "no-usable-files-hint": "Upload a ZIP file with file type(s) of ",
-        "no-usable-files-in-zip": "ZIP file does not contain any usable files",
-        "open-menu": "",
-        "too-big-file-body": "The file can have a maximum of {{size}}.",
-        "too-big-file-title": "The file is too big!"
-    },
-    "intro": "Upload multiple files with the file dialog or by dragging and dropping images onto the dashed region.",
-    "nextcloud-file-picker": {
-        "abort": "Cancel process",
-        "abort-message": "The process was canceled.",
-        "add-folder": "Add new folder",
-        "add-folder-close": "Close new folder dialogue",
-        "add-folder-error": "The resource \"{{folder}}\" you tried to create already exists.",
-        "add-folder-error-empty": "The folder name can not be empty.",
-        "add-folder-open": "Open new folder dialogue",
-        "add-folder-success": "The folder '{{folder}}' was created successfully.",
-        "all-recent-files-link-text": "All Recent Files",
-        "auth-info": "A new page will open to connect your account.",
-        "auth-progress": "Authentification in progress",
-        "connect-nextcloud": "Connect {{name}}",
-        "error-save-to-favorites": "Saving to Favorites not possible! Please select a folder within the Favorites.",
-        "error-save-to-recent": "Saving to Recent Files not possible! Please select a folder within the Recent Files.",
-        "favorites-link-text": "My Favorites",
-        "favorites-title": "Favorites",
-        "filename": "Filename",
-        "folder-home": "Jump to the home directory",
-        "init-text-1": "Chose your files from {{name}}.",
-        "init-text-2": "You need to authenticate first.",
-        "last-modified": "Last modified",
-        "load-in-folder": "Load into the current directory",
-        "load-path-link": "Go to {{path}}",
-        "load-to-folder": "Upload to the selected folder",
-        "loadpath-nextcloud-file-picker": "Loading directory from {{name}}.",
-        "log-out": "Disconnect",
-        "mime-type": "Type",
-        "more-menu": "",
-        "my-recent-files-link-text": "My Recent Files",
-        "my-recent-files-title": "My Recent Files",
-        "new-folder-dialog-button-cancel": "Cancel",
-        "new-folder-dialog-button-ok": "Create",
-        "new-folder-dialog-default-name": "New folder",
-        "new-folder-dialog-label": "Enter a name:",
-        "new-folder-dialog-title": "Create a new folder",
-        "new-folder-placeholder": "New folder",
-        "no-data": "No data available in this folder.",
-        "no-data-type": "No data available in this folder.",
-        "no-favorites": "No favorites of the relevant type were found. Define files and folders as favorites in your {{name}} to display them here",
-        "no-recent-files": "No relevant files and folders were found within the last 3 months.",
-        "onlycreate": "You are only allowed to create new files in this directory.",
-        "onlyedit": "You are only allowed to edit files in this directory.",
-        "open-nextcloud-file-picker": "Select files from your {{name}}",
-        "readonly": "You are not allowed to uploade files in this directory.",
-        "recent-files-title": "Recent Files",
-        "refresh-nextcloud-file-picker": "Connect again",
-        "remember-me": "Stay connected with {{name}}",
-        "replace-cancel": "Cancel",
-        "replace-cancel-all": "Cancel all",
-        "replace-mode-all": "Do this for the next conflicts",
-        "replace-new_name": "New Name",
-        "replace-replace": "Replace",
-        "replace-skip": "Ignore",
-        "replace-text": "What do you want to do",
-        "replace-title-1": "There is already a file with the name ",
-        "replace-title-2": " in this location",
-        "select-files": "Select files",
-        "select-files-btn": "Select file",
-        "select-files-btn_plural": "Select {{count}} files",
-        "size": "Size",
-        "something-went-wrong": "Something went wrong. Please reload.",
-        "upload-to": "Uploading to {{- path}} ...",
-        "webdav-error": "Something went wrong",
-        "file-error": "The file format is not supported or the file is corrupt and could not be uploaded.",
-        "forbidden": "You don't have permissions to perform this action in this folder.",
-        "file-upload-error": "Sorry, something went wrong. Please try again later."
-    },
-    "upload-label": "Select some files"
+    "dbp": {
+        "clipboard": {
+            "add-files": "Add files to clipboard",
+            "add-files-btn": "Add files",
+            "clear-clipboard-body": "The clipboard was successfully cleared.",
+            "clear-clipboard-title": "Clipboard cleared",
+            "clear-count-clipboard-body": "One file was successfully removed from clipboard.",
+            "clear-count-clipboard-body_plural": "{{count}} files were successfully removed from clipboard.",
+            "clear-count-clipboard-title": "File removed",
+            "clear-count-clipboard-title_plural": "Files removed",
+            "file-mod": "Last modified",
+            "file-name": "Name",
+            "file-size": "Size",
+            "file-type": "Type",
+            "file-warning": "Attention!",
+            "file-warning-body": "There is still a file on the clipboard. The clipboard is discarded when you exit the page.",
+            "file-warning-body_plural": "There are still {{count}} files on the clipboard. The clipboard is discarded when you exit the page.",
+            "no-data": "There are no files",
+            "remove-all": "Remove all files from the clipboard",
+            "remove-all-btn": "Remove all",
+            "remove-count": "Remove file from the clipboard",
+            "remove-count_plural": "Remove {{count}} files from the clipboard",
+            "remove-count-btn": "Remove file",
+            "remove-count-btn_plural": "Remove {{count}} files",
+            "save-all": "Save all files from the clipboard",
+            "save-all-btn": "Save all",
+            "save-count": "Save one file from the clipboard",
+            "save-count_plural": "Save {{count}} files from the clipboard",
+            "save-count-btn": "Save file",
+            "save-count-btn_plural": "Save {{count}} files",
+            "saved-files-body": "A file was successfully stored temporarily in the clipboard and can now be used within this application.",
+            "saved-files-body_plural": "{{count}} files were successfully stored temporarily in the clipboard and can now be used within this application.",
+            "saved-files-title": "File successfully filed",
+            "saved-files-title_plural": "Files successfully filed",
+            "select-all": "Select all",
+            "select-nothing": "Select nothing",
+            "sink-btn": "Store {{count}} file",
+            "sink-btn_plural": "Store {{count}} files",
+            "sink-title": "Store files on the clipboard",
+            "source-btn": "Select file",
+            "source-btn_plural": "Select {{count}} files",
+            "source-btn-none": "Select files",
+            "source-title": "Select files from clipboard",
+            "upload-area-text": "In this area you can upload documents up to a size of 32MB via Drag & Drop or by selecting them directly. ",
+            "upload-button-label": "Load to clipboard",
+            "warning": "Attention! If you close the browser or reload the page the existing clipboard is automatically discarded!"
+        },
+        "demo-title": "File Upload Demo",
+        "file-sink": {
+            "clipboard": "Clipboard",
+            "local-button": "Download file",
+            "local-button_plural": "Download files",
+            "local-intro": "Download {{count}} file",
+            "local-intro_plural": "Download {{count}} files",
+            "modal-close": "Close dialog",
+            "nav-local": "My device",
+            "select-directory": "",
+            "upload-success-body": "You have successfully uploaded {{count}} file to {{name}}.",
+            "upload-success-body_plural": "You have successfully uploaded {{count}} files to {{name}}.",
+            "upload-success-title": "Successful uploaded"
+        },
+        "file-source": {
+            "clipboard": "Clipboard",
+            "mime-type-body": "The file format is not supported by this application.",
+            "mime-type-title": "Unsupported file format",
+            "modal-close": "Close dialog",
+            "nav-local": "My device",
+            "no-usable-files-hint": "Upload a ZIP file with file type(s) of ",
+            "no-usable-files-in-zip": "ZIP file does not contain any usable files",
+            "open-menu": "",
+            "too-big-file-body": "The file can have a maximum of {{size}}.",
+            "too-big-file-title": "The file is too big!"
+        },
+        "intro": "Upload multiple files with the file dialog or by dragging and dropping images onto the dashed region.",
+        "nextcloud-file-picker": {
+            "abort": "Cancel process",
+            "abort-message": "The process was canceled.",
+            "add-folder": "Add new folder",
+            "add-folder-close": "Close new folder dialogue",
+            "add-folder-error": "The resource \"{{folder}}\" you tried to create already exists.",
+            "add-folder-error-empty": "The folder name can not be empty.",
+            "add-folder-open": "Open new folder dialogue",
+            "add-folder-success": "The folder '{{folder}}' was created successfully.",
+            "all-recent-files-link-text": "All Recent Files",
+            "auth-info": "A new page will open to connect your account.",
+            "auth-progress": "Authentification in progress",
+            "connect-nextcloud": "Connect {{name}}",
+            "error-save-to-favorites": "Saving to Favorites not possible! Please select a folder within the Favorites.",
+            "error-save-to-recent": "Saving to Recent Files not possible! Please select a folder within the Recent Files.",
+            "favorites-link-text": "My Favorites",
+            "favorites-title": "Favorites",
+            "filename": "Filename",
+            "folder-home": "Jump to the home directory",
+            "init-text-1": "Chose your files from {{name}}.",
+            "init-text-2": "You need to authenticate first.",
+            "last-modified": "Last modified",
+            "load-in-folder": "Load into the current directory",
+            "load-path-link": "Go to {{path}}",
+            "load-to-folder": "Upload to the selected folder",
+            "loadpath-nextcloud-file-picker": "Loading directory from {{name}}.",
+            "log-out": "Disconnect",
+            "mime-type": "Type",
+            "more-menu": "",
+            "my-recent-files-link-text": "My Recent Files",
+            "my-recent-files-title": "My Recent Files",
+            "new-folder-dialog-button-cancel": "Cancel",
+            "new-folder-dialog-button-ok": "Create",
+            "new-folder-dialog-default-name": "New folder",
+            "new-folder-dialog-label": "Enter a name:",
+            "new-folder-dialog-title": "Create a new folder",
+            "new-folder-placeholder": "New folder",
+            "no-data": "No data available in this folder.",
+            "no-data-type": "No data available in this folder.",
+            "no-favorites": "No favorites of the relevant type were found. Define files and folders as favorites in your {{name}} to display them here",
+            "no-recent-files": "No relevant files and folders were found within the last 3 months.",
+            "onlycreate": "You are only allowed to create new files in this directory.",
+            "onlyedit": "You are only allowed to edit files in this directory.",
+            "open-nextcloud-file-picker": "Select files from your {{name}}",
+            "readonly": "You are not allowed to uploade files in this directory.",
+            "recent-files-title": "Recent Files",
+            "refresh-nextcloud-file-picker": "Connect again",
+            "remember-me": "Stay connected with {{name}}",
+            "replace-cancel": "Cancel",
+            "replace-cancel-all": "Cancel all",
+            "replace-mode-all": "Do this for the next conflicts",
+            "replace-new_name": "New Name",
+            "replace-replace": "Replace",
+            "replace-skip": "Ignore",
+            "replace-text": "What do you want to do",
+            "replace-title-1": "There is already a file with the name ",
+            "replace-title-2": " in this location",
+            "select-files": "Select files",
+            "select-files-btn": "Select file",
+            "select-files-btn_plural": "Select {{count}} files",
+            "size": "Size",
+            "something-went-wrong": "Something went wrong. Please reload.",
+            "upload-to": "Uploading to {{- path}} ...",
+            "webdav-error": "Something went wrong",
+            "file-error": "The file format is not supported or the file is corrupt and could not be uploaded.",
+            "forbidden": "You don't have permissions to perform this action in this folder.",
+            "file-upload-error": "Sorry, something went wrong. Please try again later."
+        },
+        "upload-label": "Select some files"
+    }
 }
diff --git a/packages/file-handling/src/nextcloud-file-picker.js b/packages/file-handling/src/nextcloud-file-picker.js
index 50a9e14b004f67060422118a3881b524b35c6fcf..7fb9162e88a1bae2711b14d1e2fbdad4ecf10b13 100644
--- a/packages/file-handling/src/nextcloud-file-picker.js
+++ b/packages/file-handling/src/nextcloud-file-picker.js
@@ -43,7 +43,7 @@ export class NextcloudFilePicker extends ScopedElementsMixin(DBPLitElement) {
         this.loading = false;
         this._onReceiveWindowMessage = this.onReceiveWindowMessage.bind(this);
 
-        this.folderIsSelected = this._i18n.t('nextcloud-file-picker.load-in-folder');
+        this.folderIsSelected = this._i18n.t('dbp.nextcloud-file-picker.load-in-folder');
         this.generatedFilename = '';
         this.replaceFilename = '';
         this.customFilename = '';
@@ -177,8 +177,8 @@ export class NextcloudFilePicker extends ScopedElementsMixin(DBPLitElement) {
                 layout: 'fitColumns',
                 selectable: this.maxSelectedItems,
                 placeholder: this.directoriesOnly
-                    ? i18n.t('nextcloud-file-picker.no-data')
-                    : i18n.t('nextcloud-file-picker.no-data-type'),
+                    ? i18n.t('dbp.nextcloud-file-picker.no-data')
+                    : i18n.t('dbp.nextcloud-file-picker.no-data-type'),
                 responsiveLayout: 'collapse',
                 responsiveLayoutCollapseStartOpen: false,
                 columnHeaderVertAlign: 'middle',
@@ -224,7 +224,7 @@ export class NextcloudFilePicker extends ScopedElementsMixin(DBPLitElement) {
                         },
                     },
                     {
-                        title: i18n.t('nextcloud-file-picker.filename'),
+                        title: i18n.t('dbp.nextcloud-file-picker.filename'),
                         responsive: 0,
                         widthGrow: 5,
                         minWidth: 150,
@@ -238,7 +238,7 @@ export class NextcloudFilePicker extends ScopedElementsMixin(DBPLitElement) {
                         },
                     },
                     {
-                        title: i18n.t('nextcloud-file-picker.size'),
+                        title: i18n.t('dbp.nextcloud-file-picker.size'),
                         responsive: 4,
                         widthGrow: 1,
                         minWidth: 84,
@@ -250,7 +250,7 @@ export class NextcloudFilePicker extends ScopedElementsMixin(DBPLitElement) {
                         },
                     },
                     {
-                        title: i18n.t('nextcloud-file-picker.mime-type'),
+                        title: i18n.t('dbp.nextcloud-file-picker.mime-type'),
                         responsive: 2,
                         widthGrow: 1,
                         minWidth: 58,
@@ -264,7 +264,7 @@ export class NextcloudFilePicker extends ScopedElementsMixin(DBPLitElement) {
                         },
                     },
                     {
-                        title: i18n.t('nextcloud-file-picker.last-modified'),
+                        title: i18n.t('dbp.nextcloud-file-picker.last-modified'),
                         responsive: 3,
                         widthGrow: 1,
                         minWidth: 150,
@@ -347,9 +347,9 @@ export class NextcloudFilePicker extends ScopedElementsMixin(DBPLitElement) {
 
         if (!this.disableRowClick) {
             if (data.length > 0 && this.directoriesOnly) {
-                this.folderIsSelected = i18n.t('nextcloud-file-picker.load-to-folder');
+                this.folderIsSelected = i18n.t('dbp.nextcloud-file-picker.load-to-folder');
             } else {
-                this.folderIsSelected = i18n.t('nextcloud-file-picker.load-in-folder');
+                this.folderIsSelected = i18n.t('dbp.nextcloud-file-picker.load-in-folder');
             }
             if (
                 !this.directoriesOnly &&
@@ -368,8 +368,8 @@ export class NextcloudFilePicker extends ScopedElementsMixin(DBPLitElement) {
             }
             if (this._('#select_all_checkmark')) {
                 this._('#select_all_checkmark').title = this.checkAllSelected()
-                    ? i18n.t('clipboard.select-nothing')
-                    : i18n.t('clipboard.select-all');
+                    ? i18n.t('dbp.clipboard.select-nothing')
+                    : i18n.t('dbp.clipboard.select-all');
             }
             this.requestUpdate();
         }
@@ -386,7 +386,7 @@ export class NextcloudFilePicker extends ScopedElementsMixin(DBPLitElement) {
                 // comment out if you want to navigate through folders with double click
                 const data = row.getData();
                 this.directoryClicked(e, data);
-                this.folderIsSelected = i18n.t('nextcloud-file-picker.load-in-folder');
+                this.folderIsSelected = i18n.t('dbp.nextcloud-file-picker.load-in-folder');
             } else {
                 switch (data.type) {
                     case 'directory':
@@ -582,7 +582,7 @@ export class NextcloudFilePicker extends ScopedElementsMixin(DBPLitElement) {
         this.disableRowClick = false;
         if (this.webDavClient === null) {
             this.loading = true;
-            this.statusText = i18n.t('nextcloud-file-picker.auth-progress');
+            this.statusText = i18n.t('dbp.nextcloud-file-picker.auth-progress');
             const authUrl =
                 this.authUrl + '?target-origin=' + encodeURIComponent(window.location.href);
             this.loginWindow = window.open(
@@ -783,7 +783,7 @@ export class NextcloudFilePicker extends ScopedElementsMixin(DBPLitElement) {
         console.log('load nextcloud favorites');
         this.selectAllButton = true;
         this.loading = true;
-        this.statusText = i18n.t('nextcloud-file-picker.loadpath-nextcloud-file-picker', {
+        this.statusText = i18n.t('dbp.nextcloud-file-picker.loadpath-nextcloud-file-picker', {
             name: this.nextcloudName,
         });
         this.lastDirectoryPath = this.directoryPath;
@@ -800,7 +800,7 @@ export class NextcloudFilePicker extends ScopedElementsMixin(DBPLitElement) {
                     'nextcloud-file-picker.something-went-wrong'
             )}
             <button class="button"
-                    title="${i18n.t('nextcloud-file-picker.refresh-nextcloud-file-picker')}"
+                    title="${i18n.t('dbp.nextcloud-file-picker.refresh-nextcloud-file-picker')}"
                     @click="${async () => {
                         this.openFilePicker();
                     }}">
@@ -847,7 +847,7 @@ export class NextcloudFilePicker extends ScopedElementsMixin(DBPLitElement) {
 
                     if (this._('.tabulator-placeholder-contents')) {
                         this._('.tabulator-placeholder-contents').innerText =
-                            i18n.t('nextcloud-file-picker.no-favorites', {
+                            i18n.t('dbp.nextcloud-file-picker.no-favorites', {
                                 name: this.nextcloudName,
                             });
                     }
@@ -870,7 +870,7 @@ export class NextcloudFilePicker extends ScopedElementsMixin(DBPLitElement) {
                     this.loading = false;
                     this.statusText = html`
                         <span class="error">
-                            ${i18n.t('nextcloud-file-picker.webdav-error', {error: error.message})}
+                            ${i18n.t('dbp.nextcloud-file-picker.webdav-error', {error: error.message})}
                         </span>
                     `;
                     this.isPickerActive = false;
@@ -910,7 +910,7 @@ export class NextcloudFilePicker extends ScopedElementsMixin(DBPLitElement) {
         console.log('load recent files');
         this.selectAllButton = true;
         this.loading = true;
-        this.statusText = i18n.t('nextcloud-file-picker.loadpath-nextcloud-file-picker', {
+        this.statusText = i18n.t('dbp.nextcloud-file-picker.loadpath-nextcloud-file-picker', {
             name: this.nextcloudName,
         });
         this.lastDirectoryPath = this.directoryPath;
@@ -931,7 +931,7 @@ export class NextcloudFilePicker extends ScopedElementsMixin(DBPLitElement) {
                     'nextcloud-file-picker.something-went-wrong'
             )}
             <button class="button"
-                    title="${i18n.t('nextcloud-file-picker.refresh-nextcloud-file-picker')}"
+                    title="${i18n.t('dbp.nextcloud-file-picker.refresh-nextcloud-file-picker')}"
                     @click="${async () => {
                         this.openFilePicker();
                     }}">
@@ -1018,7 +1018,7 @@ export class NextcloudFilePicker extends ScopedElementsMixin(DBPLitElement) {
 
                     if (this._('.tabulator-placeholder-contents')) {
                         this._('.tabulator-placeholder-contents').innerText =
-                            i18n.t('nextcloud-file-picker.no-recent-files', {
+                            i18n.t('dbp.nextcloud-file-picker.no-recent-files', {
                                 name: this.nextcloudName,
                             });
                     }
@@ -1040,7 +1040,7 @@ export class NextcloudFilePicker extends ScopedElementsMixin(DBPLitElement) {
                     this.loading = false;
                     this.statusText = html`
                         <span class="error">
-                            ${i18n.t('nextcloud-file-picker.webdav-error', {error: error.message})}
+                            ${i18n.t('dbp.nextcloud-file-picker.webdav-error', {error: error.message})}
                         </span>
                     `;
                     this.isPickerActive = false;
@@ -1139,7 +1139,7 @@ export class NextcloudFilePicker extends ScopedElementsMixin(DBPLitElement) {
         console.log('load only my recent files');
         this.selectAllButton = true;
         this.loading = true;
-        this.statusText = i18n.t('nextcloud-file-picker.loadpath-nextcloud-file-picker', {
+        this.statusText = i18n.t('dbp.nextcloud-file-picker.loadpath-nextcloud-file-picker', {
             name: this.nextcloudName,
         });
         this.lastDirectoryPath = this.directoryPath;
@@ -1160,7 +1160,7 @@ export class NextcloudFilePicker extends ScopedElementsMixin(DBPLitElement) {
                     'nextcloud-file-picker.something-went-wrong'
             )}
             <button class="button"
-                    title="${i18n.t('nextcloud-file-picker.refresh-nextcloud-file-picker')}"
+                    title="${i18n.t('dbp.nextcloud-file-picker.refresh-nextcloud-file-picker')}"
                     @click="${async () => {
                         this.openFilePicker();
                     }}">
@@ -1247,7 +1247,7 @@ export class NextcloudFilePicker extends ScopedElementsMixin(DBPLitElement) {
 
                     if (this._('.tabulator-placeholder-contents')) {
                         this._('.tabulator-placeholder-contents').innerText =
-                            i18n.t('nextcloud-file-picker.no-recent-files', {
+                            i18n.t('dbp.nextcloud-file-picker.no-recent-files', {
                                 name: this.nextcloudName,
                             });
                     }
@@ -1269,7 +1269,7 @@ export class NextcloudFilePicker extends ScopedElementsMixin(DBPLitElement) {
                     this.loading = false;
                     this.statusText = html`
                         <span class="error">
-                            ${i18n.t('nextcloud-file-picker.webdav-error', {error: error.message})}
+                            ${i18n.t('dbp.nextcloud-file-picker.webdav-error', {error: error.message})}
                         </span>
                     `;
                     this.isPickerActive = false;
@@ -1313,7 +1313,7 @@ export class NextcloudFilePicker extends ScopedElementsMixin(DBPLitElement) {
 
         this.disableRowClick = false;
         this.loading = true;
-        this.statusText = i18n.t('nextcloud-file-picker.loadpath-nextcloud-file-picker', {
+        this.statusText = i18n.t('dbp.nextcloud-file-picker.loadpath-nextcloud-file-picker', {
             name: this.nextcloudName,
         });
         this.lastDirectoryPath = this.directoryPath;
@@ -1326,10 +1326,10 @@ export class NextcloudFilePicker extends ScopedElementsMixin(DBPLitElement) {
             this.tabulatorTable.clearData();
             this.webDavClient = null;
             let reloadButton = html`
-                ${i18n.t('nextcloud-file-picker.something-went-wrong')}
+                ${i18n.t('dbp.nextcloud-file-picker.something-went-wrong')}
                 <button
                         class="button"
-                        title="${i18n.t('nextcloud-file-picker.refresh-nextcloud-file-picker')}"
+                        title="${i18n.t('dbp.nextcloud-file-picker.refresh-nextcloud-file-picker')}"
                         @click="${async () => {
                             this.openFilePicker();
                         }}">
@@ -1389,8 +1389,8 @@ export class NextcloudFilePicker extends ScopedElementsMixin(DBPLitElement) {
                     this._('#directory-content-table').querySelector(
                         'div.tabulator-tableHolder > div.tabulator-placeholder > span'
                     ).innerText = this.directoriesOnly
-                        ? i18n.t('nextcloud-file-picker.no-data')
-                        : i18n.t('nextcloud-file-picker.no-data-type');
+                        ? i18n.t('dbp.nextcloud-file-picker.no-data')
+                        : i18n.t('dbp.nextcloud-file-picker.no-data-type');
                 }
             })
             .catch((error) => {
@@ -1410,17 +1410,17 @@ export class NextcloudFilePicker extends ScopedElementsMixin(DBPLitElement) {
                     this.loading = false;
                     this.statusText = html`
                         <span class="error">
-                            ${i18n.t('nextcloud-file-picker.webdav-error', {error: error.message})}
+                            ${i18n.t('dbp.nextcloud-file-picker.webdav-error', {error: error.message})}
                         </span>
                     `;
                     this.isPickerActive = false;
                     this.tabulatorTable.clearData();
                     this.webDavClient = null;
                     let reloadButton = html`
-                        ${i18n.t('nextcloud-file-picker.something-went-wrong')}
+                        ${i18n.t('dbp.nextcloud-file-picker.something-went-wrong')}
                         <button
                                 class="button"
-                                title="${i18n.t('nextcloud-file-picker.refresh-nextcloud-file-picker')}"
+                                title="${i18n.t('dbp.nextcloud-file-picker.refresh-nextcloud-file-picker')}"
                                 @click="${async () => {
                                     this.openFilePicker();
                                 }}">
@@ -1525,7 +1525,7 @@ export class NextcloudFilePicker extends ScopedElementsMixin(DBPLitElement) {
                 this.loading = false;
                 this.statusText = html`
                     <span class="error">
-                        ${i18n.t('nextcloud-file-picker.webdav-error', {error: error.message})}
+                        ${i18n.t('dbp.nextcloud-file-picker.webdav-error', {error: error.message})}
                     </span>
                 `;
             });
@@ -1542,13 +1542,13 @@ export class NextcloudFilePicker extends ScopedElementsMixin(DBPLitElement) {
         if (this.isInFavorites) {
             this.statusText = html`
                 <span class="error">
-                    ${i18n.t('nextcloud-file-picker.error-save-to-favorites')}
+                    ${i18n.t('dbp.nextcloud-file-picker.error-save-to-favorites')}
                 </span>
             `;
             return;
         } else if (this.isInRecent || this.isInFilteredRecent) {
             this.statusText = html`
-                <span class="error">${i18n.t('nextcloud-file-picker.error-save-to-recent')}</span>
+                <span class="error">${i18n.t('dbp.nextcloud-file-picker.error-save-to-recent')}</span>
             `;
             return;
         }
@@ -1562,7 +1562,7 @@ export class NextcloudFilePicker extends ScopedElementsMixin(DBPLitElement) {
             path = directory[0].filename;
         }
         this.loading = true;
-        this.statusText = i18n.t('nextcloud-file-picker.upload-to', {path: path});
+        this.statusText = i18n.t('dbp.nextcloud-file-picker.upload-to', {path: path});
 
         const event = new CustomEvent('dbp-nextcloud-file-picker-file-uploaded', {
             detail: path,
@@ -1581,7 +1581,7 @@ export class NextcloudFilePicker extends ScopedElementsMixin(DBPLitElement) {
     uploadFiles(files, directory) {
         const i18n = this._i18n;
         this.loading = true;
-        this.statusText = i18n.t('nextcloud-file-picker.upload-to', {path: directory});
+        this.statusText = i18n.t('dbp.nextcloud-file-picker.upload-to', {path: directory});
         this.fileList = [...files];
         if (this.fileList !== undefined && this.fileList.length > 0) {
             this.sendSetPropertyEvent('analytics-event', {
@@ -1607,7 +1607,7 @@ export class NextcloudFilePicker extends ScopedElementsMixin(DBPLitElement) {
             this.abortUploadButton = false;
             this.forAll = false;
             this.loading = false;
-            this.statusText = i18n.t('nextcloud-file-picker.abort-message');
+            this.statusText = i18n.t('dbp.nextcloud-file-picker.abort-message');
             this._('#replace_mode_all').checked = false;
             return;
         }
@@ -1618,7 +1618,7 @@ export class NextcloudFilePicker extends ScopedElementsMixin(DBPLitElement) {
             // https://github.com/perry-mitchell/webdav-client#putfilecontents
             let that = this;
             this.loading = true;
-            this.statusText = i18n.t('nextcloud-file-picker.upload-to', {path: path});
+            this.statusText = i18n.t('dbp.nextcloud-file-picker.upload-to', {path: path});
             // contentLength: https://github.com/perry-mitchell/webdav-client/issues/266
             await this.webDavClient
                 .putFileContents(path, file, {
@@ -1674,14 +1674,14 @@ export class NextcloudFilePicker extends ScopedElementsMixin(DBPLitElement) {
                     this.statusText =  html`
                                     <span class="error">
                                         <dbp-icon name="warning-high"></dbp-icon>
-                                        ${i18n.t('nextcloud-file-picker.forbidden')}
+                                        ${i18n.t('dbp.nextcloud-file-picker.forbidden')}
                                     </span>`;
                     return;
                 case 415:
                     this.statusText =  html`
                                     <span class="error">
                                         <dbp-icon name="warning-high"></dbp-icon>
-                                        ${i18n.t('nextcloud-file-picker.file-error')}
+                                        ${i18n.t('dbp.nextcloud-file-picker.file-error')}
                                     </span>`;
                     this.sendSetPropertyEvent('analytics-event', {
                         category: 'FileHandlingNextcloud',
@@ -1697,7 +1697,7 @@ export class NextcloudFilePicker extends ScopedElementsMixin(DBPLitElement) {
         this.statusText =  html`
                                     <span class="error">
                                         <dbp-icon name="warning-high"></dbp-icon>
-                                        ${i18n.t('nextcloud-file-picker.file-upload-error')}
+                                        ${i18n.t('dbp.nextcloud-file-picker.file-upload-error')}
                                         </span>`;
         this.sendSetPropertyEvent('analytics-event', {
             category: 'FileHandlingNextcloud',
@@ -1718,7 +1718,7 @@ export class NextcloudFilePicker extends ScopedElementsMixin(DBPLitElement) {
             this.abortUploadButton = false;
             this.forAll = false;
             this.loading = false;
-            this.statusText = i18n.t('nextcloud-file-picker.abort-message');
+            this.statusText = i18n.t('dbp.nextcloud-file-picker.abort-message');
             this._('#replace_mode_all').checked = false;
             return;
         }
@@ -1745,7 +1745,7 @@ export class NextcloudFilePicker extends ScopedElementsMixin(DBPLitElement) {
         }
 
         this.loading = true;
-        this.statusText = i18n.t('nextcloud-file-picker.upload-to', {path: path});
+        this.statusText = i18n.t('dbp.nextcloud-file-picker.upload-to', {path: path});
 
         let that = this;
         // https://github.com/perry-mitchell/webdav-client#putfilecontents
@@ -1870,13 +1870,13 @@ export class NextcloudFilePicker extends ScopedElementsMixin(DBPLitElement) {
         // read only directory or read only file
         if (rights === 0) {
             this.loading = false;
-            this.statusText = i18n.t('nextcloud-file-picker.readonly');
+            this.statusText = i18n.t('dbp.nextcloud-file-picker.readonly');
             return;
         }
         // read only file but you can write to directory = only create and no edit
         else if (rights === 1) {
             this.loading = false;
-            this.statusText = i18n.t('nextcloud-file-picker.onlycreate');
+            this.statusText = i18n.t('dbp.nextcloud-file-picker.onlycreate');
             this._('#replace-replace').setAttribute('disabled', 'true');
             this._('#replace-new-name').removeAttribute('disabled');
             this._('#replace-replace').checked = false;
@@ -1887,7 +1887,7 @@ export class NextcloudFilePicker extends ScopedElementsMixin(DBPLitElement) {
         // only edit and no create
         else if (rights === 2) {
             this.loading = false;
-            this.statusText = i18n.t('nextcloud-file-picker.onlyedit');
+            this.statusText = i18n.t('dbp.nextcloud-file-picker.onlyedit');
             this._('#replace-new-name').setAttribute('disabled', 'true');
             this._('#replace-replace').removeAttribute('disabled');
             this._('#replace-new-name').checked = false;
@@ -1974,9 +1974,9 @@ export class NextcloudFilePicker extends ScopedElementsMixin(DBPLitElement) {
     getCancelText() {
         const i18n = this._i18n;
         if (this.fileList.length > 1) {
-            return i18n.t('nextcloud-file-picker.replace-cancel-all');
+            return i18n.t('dbp.nextcloud-file-picker.replace-cancel-all');
         }
-        return i18n.t('nextcloud-file-picker.replace-cancel');
+        return i18n.t('dbp.nextcloud-file-picker.replace-cancel');
     }
 
     /**
@@ -2009,13 +2009,13 @@ export class NextcloudFilePicker extends ScopedElementsMixin(DBPLitElement) {
             this._('#add-folder-button').setAttribute('name', 'plus');
             this._('#add-folder-button').setAttribute(
                 'title',
-                i18n.t('nextcloud-file-picker.add-folder-open')
+                i18n.t('dbp.nextcloud-file-picker.add-folder-open')
             );
         } else {
             this._('#add-folder-button').setAttribute('name', 'close');
             this._('#add-folder-button').setAttribute(
                 'title',
-                i18n.t('nextcloud-file-picker.add-folder-close')
+                i18n.t('dbp.nextcloud-file-picker.add-folder-close')
             );
             this._('#new-folder').focus();
         }
@@ -2081,7 +2081,7 @@ export class NextcloudFilePicker extends ScopedElementsMixin(DBPLitElement) {
 
         document.removeEventListener('click', this.boundClickOutsideNewFolderHandler);
         document.removeEventListener('keydown', this.boundCancelNewFolderHandler);
-        this._('#tf-new-folder-dialog').value = i18n.t('nextcloud-file-picker.new-folder-dialog-default-name');
+        this._('#tf-new-folder-dialog').value = i18n.t('dbp.nextcloud-file-picker.new-folder-dialog-default-name');
     }
 
     addNewFolder() {
@@ -2110,7 +2110,7 @@ export class NextcloudFilePicker extends ScopedElementsMixin(DBPLitElement) {
                         },
                         true
                     );
-                    this.statusText = i18n.t('nextcloud-file-picker.add-folder-success', {
+                    this.statusText = i18n.t('dbp.nextcloud-file-picker.add-folder-success', {
                         folder: folderName,
                     });
                     this.loading = false;
@@ -2120,7 +2120,7 @@ export class NextcloudFilePicker extends ScopedElementsMixin(DBPLitElement) {
                     if (error.message.search('405') !== -1) {
                         this.statusText = html`
                             <span class="error">
-                                ${i18n.t('nextcloud-file-picker.add-folder-error', {
+                                ${i18n.t('dbp.nextcloud-file-picker.add-folder-error', {
                                     folder: folderName,
                                 })}
                             </span>
@@ -2128,7 +2128,7 @@ export class NextcloudFilePicker extends ScopedElementsMixin(DBPLitElement) {
                     } else {
                         this.statusText = html`
                             <span class="error">
-                                ${i18n.t('nextcloud-file-picker.webdav-error', {
+                                ${i18n.t('dbp.nextcloud-file-picker.webdav-error', {
                             error: error.message,
                         })}
                             </span>
@@ -2137,7 +2137,7 @@ export class NextcloudFilePicker extends ScopedElementsMixin(DBPLitElement) {
                 });
         } else {
             this.statusText = html`
-                <span class="error">${i18n.t('nextcloud-file-picker.add-folder-error-empty')}</span>
+                <span class="error">${i18n.t('dbp.nextcloud-file-picker.add-folder-error-empty')}</span>
             `;
         }
     }
@@ -2171,7 +2171,7 @@ export class NextcloudFilePicker extends ScopedElementsMixin(DBPLitElement) {
                         },
                         true
                     );
-                    this.statusText = i18n.t('nextcloud-file-picker.add-folder-success', {
+                    this.statusText = i18n.t('dbp.nextcloud-file-picker.add-folder-success', {
                         folder: folderName,
                     });
                     this.loading = false;
@@ -2181,7 +2181,7 @@ export class NextcloudFilePicker extends ScopedElementsMixin(DBPLitElement) {
                     if (error.message.search('405') !== -1) {
                         this.statusText = html`
                             <span class="error">
-                                ${i18n.t('nextcloud-file-picker.add-folder-error', {
+                                ${i18n.t('dbp.nextcloud-file-picker.add-folder-error', {
                                     folder: folderName,
                                 })}
                             </span>
@@ -2189,7 +2189,7 @@ export class NextcloudFilePicker extends ScopedElementsMixin(DBPLitElement) {
                     } else {
                         this.statusText = html`
                             <span class="error">
-                                ${i18n.t('nextcloud-file-picker.webdav-error', {
+                                ${i18n.t('dbp.nextcloud-file-picker.webdav-error', {
                                     error: error.message,
                                 })}
                             </span>
@@ -2270,7 +2270,7 @@ export class NextcloudFilePicker extends ScopedElementsMixin(DBPLitElement) {
                         @click="${() => {
                             this.loadDirectory('');
                         }}"
-                        title="${i18n.t('nextcloud-file-picker.folder-home')}">
+                        title="${i18n.t('dbp.nextcloud-file-picker.folder-home')}">
                     <dbp-icon name="home"></dbp-icon>
                 </a>
             </span>
@@ -2284,8 +2284,8 @@ export class NextcloudFilePicker extends ScopedElementsMixin(DBPLitElement) {
                             @click="${() => {
                                 this.loadFavorites();
                             }}"
-                            title="${i18n.t('nextcloud-file-picker.favorites-title')}">
-                        ${i18n.t('nextcloud-file-picker.favorites-title')}
+                            title="${i18n.t('dbp.nextcloud-file-picker.favorites-title')}">
+                        ${i18n.t('dbp.nextcloud-file-picker.favorites-title')}
                     </a>
                 </span>
             `;
@@ -2297,8 +2297,8 @@ export class NextcloudFilePicker extends ScopedElementsMixin(DBPLitElement) {
                             @click="${() => {
                                 this.loadAllRecentFiles();
                             }}"
-                            title="${i18n.t('nextcloud-file-picker.recent-files-title')}">
-                        ${i18n.t('nextcloud-file-picker.recent-files-title')}
+                            title="${i18n.t('dbp.nextcloud-file-picker.recent-files-title')}">
+                        ${i18n.t('dbp.nextcloud-file-picker.recent-files-title')}
                     </a>
                 </span>
             `;
@@ -2310,8 +2310,8 @@ export class NextcloudFilePicker extends ScopedElementsMixin(DBPLitElement) {
                             @click="${() => {
                                 this.loadMyRecentFiles();
                             }}"
-                            title="${i18n.t('nextcloud-file-picker.my-recent-files-title')}">
-                        ${i18n.t('nextcloud-file-picker.my-recent-files-title')}
+                            title="${i18n.t('dbp.nextcloud-file-picker.my-recent-files-title')}">
+                        ${i18n.t('dbp.nextcloud-file-picker.my-recent-files-title')}
                     </a>
                 </span>
             `;
@@ -2336,7 +2336,7 @@ export class NextcloudFilePicker extends ScopedElementsMixin(DBPLitElement) {
                                     @click="${() => {
                                         this.loadDirectory(path);
                                     }}"
-                                    title="${i18n.t('nextcloud-file-picker.load-path-link', {
+                                    title="${i18n.t('dbp.nextcloud-file-picker.load-path-link', {
                                         path: directories[i],
                                     })}">
                                 ${directories[i]}
@@ -2351,7 +2351,7 @@ export class NextcloudFilePicker extends ScopedElementsMixin(DBPLitElement) {
                                     @click="${() => {
                                         this.loadDirectory(path);
                                     }}"
-                                    title="${i18n.t('nextcloud-file-picker.load-path-link', {
+                                    title="${i18n.t('dbp.nextcloud-file-picker.load-path-link', {
                                         path: directories[i],
                                     })}">
                                 ${directories[i]}
@@ -2386,7 +2386,7 @@ export class NextcloudFilePicker extends ScopedElementsMixin(DBPLitElement) {
                                     @click="${() => {
                                         this.loadDirectory(path);
                                     }}"
-                                    title="${i18n.t('nextcloud-file-picker.load-path-link', {
+                                    title="${i18n.t('dbp.nextcloud-file-picker.load-path-link', {
                                         path: directories[i],
                                     })}">
                                 <dbp-icon name="folder" class="breadcrumb-folder"></dbp-icon>
@@ -3233,11 +3233,11 @@ export class NextcloudFilePicker extends ScopedElementsMixin(DBPLitElement) {
                     <div class="block text-center ${classMap({hidden: this.isPickerActive})}">
                         <h2 class="m-inherit">${this.nextcloudName}</h2>
                         <p class="m-inherit">
-                            ${i18n.t('nextcloud-file-picker.init-text-1', {
+                            ${i18n.t('dbp.nextcloud-file-picker.init-text-1', {
                                 name: this.nextcloudName,
                             })}
                             <br/>
-                            ${i18n.t('nextcloud-file-picker.init-text-2')}
+                            ${i18n.t('dbp.nextcloud-file-picker.init-text-2')}
                             <br/>
                             <br/>
                         </p>
@@ -3245,13 +3245,13 @@ export class NextcloudFilePicker extends ScopedElementsMixin(DBPLitElement) {
                     <div class="block ${classMap({hidden: this.isPickerActive})}">
                         <button
                                 class="button  is-primary"
-                                title="${i18n.t('nextcloud-file-picker.open-nextcloud-file-picker', {
+                                title="${i18n.t('dbp.nextcloud-file-picker.open-nextcloud-file-picker', {
                                     name: this.nextcloudName,
                                 })}"
                                 @click="${async () => {
                                     this.openFilePicker();
                                 }}">
-                            ${i18n.t('nextcloud-file-picker.connect-nextcloud', {
+                            ${i18n.t('dbp.nextcloud-file-picker.connect-nextcloud', {
                                 name: this.nextcloudName,
                             })}
                         </button>
@@ -3261,7 +3261,7 @@ export class NextcloudFilePicker extends ScopedElementsMixin(DBPLitElement) {
                                 hidden: !this.storeSession || !this.isLoggedIn(),
                             })}">
                         <label class="button-container remember-container">
-                            ${i18n.t('nextcloud-file-picker.remember-me', {
+                            ${i18n.t('dbp.nextcloud-file-picker.remember-me', {
                                 name: this.nextcloudName,
                             })}
                             <input type="checkbox" id="remember-checkbox" name="remember"/>
@@ -3274,7 +3274,7 @@ export class NextcloudFilePicker extends ScopedElementsMixin(DBPLitElement) {
                             })}">
                         <p class="m-inherit">
                             <br/>
-                            ${i18n.t('nextcloud-file-picker.auth-info')}
+                            ${i18n.t('dbp.nextcloud-file-picker.auth-info')}
                             <slot name="auth-info">
                                 <br/>
                                 ${this.authInfo}
@@ -3291,10 +3291,10 @@ export class NextcloudFilePicker extends ScopedElementsMixin(DBPLitElement) {
                                 <div class="inline-block">
                                     <div id="new-folder-wrapper" class="hidden">
                                         <input type="text"
-                                               placeholder="${i18n.t('nextcloud-file-picker.new-folder-placeholder')}"
+                                               placeholder="${i18n.t('dbp.nextcloud-file-picker.new-folder-placeholder')}"
                                                name="new-folder" class="input" id="new-folder"/>
                                         <button class="button add-folder-button"
-                                                title="${i18n.t('nextcloud-file-picker.add-folder')}"
+                                                title="${i18n.t('dbp.nextcloud-file-picker.add-folder')}"
                                                 @click="${() => {
                                                     this.addFolder();
                                                 }}">
@@ -3312,7 +3312,7 @@ export class NextcloudFilePicker extends ScopedElementsMixin(DBPLitElement) {
                                     @click="${() => {
                                         this.toggleMoreMenu();
                                     }}"
-                                    title="${i18n.t('nextcloud-file-picker.more-menu')}">
+                                    title="${i18n.t('dbp.nextcloud-file-picker.more-menu')}">
                                 <dbp-icon name="menu-dots" class="more-menu"></dbp-icon>
                             </a>
                             <ul class="extended-menu hidden">
@@ -3320,14 +3320,14 @@ export class NextcloudFilePicker extends ScopedElementsMixin(DBPLitElement) {
                                         class="${classMap({active: this.isInFavorites})}"
                                         id="favorites-item">
                                     <a class="" @click="${this.loadFavorites}">
-                                        ${i18n.t('nextcloud-file-picker.favorites-link-text')}
+                                        ${i18n.t('dbp.nextcloud-file-picker.favorites-link-text')}
                                     </a>
                                 </li>
                                 <li
                                         class="${classMap({active: this.isInFilteredRecent})}"
                                         id="my-recent-item">
                                     <a class="" @click="${this.loadMyRecentFiles}">
-                                        ${i18n.t('nextcloud-file-picker.my-recent-files-link-text')}
+                                        ${i18n.t('dbp.nextcloud-file-picker.my-recent-files-link-text')}
                                     </a>
                                 </li>
                                 <li
@@ -3335,7 +3335,7 @@ export class NextcloudFilePicker extends ScopedElementsMixin(DBPLitElement) {
                                         id="all-recent-item">
                                     <a class="" @click="${this.loadAllRecentFiles}">
                                         ${i18n.t(
-                                                'nextcloud-file-picker.all-recent-files-link-text'
+                                                'dbp.nextcloud-file-picker.all-recent-files-link-text'
                                         )}
                                     </a>
                                 </li>
@@ -3350,19 +3350,19 @@ export class NextcloudFilePicker extends ScopedElementsMixin(DBPLitElement) {
                                         @click="${() => {
                                            this.addOpenFolderTableEntry();
                                        }}">
-                                        ${i18n.t('nextcloud-file-picker.add-folder')}
+                                        ${i18n.t('dbp.nextcloud-file-picker.add-folder')}
                                     </a>
                                 </li>
                                 <li
                                         class="${classMap({hidden: !this.storeSession})}"
-                                        title="${i18n.t('nextcloud-file-picker.log-out')}">
+                                        title="${i18n.t('dbp.nextcloud-file-picker.log-out')}">
                                     <a
                                         class=""
                                         @click="${() => {
                                             this.logOut();
                                             this.hideAdditionalMenu();
                                         }}">
-                                        ${i18n.t('nextcloud-file-picker.log-out')}
+                                        ${i18n.t('dbp.nextcloud-file-picker.log-out')}
                                     </a>
                                 </li>
                             </ul>
@@ -3407,8 +3407,8 @@ export class NextcloudFilePicker extends ScopedElementsMixin(DBPLitElement) {
                                                     row.getData().type != 'directory' &&
                                                     this.checkFileType(row.getData(), this.allowedMimeTypes)
                                     ).length === 0
-                                    ? i18n.t('nextcloud-file-picker.select-files')
-                                    : i18n.t('nextcloud-file-picker.select-files-btn', {
+                                    ? i18n.t('dbp.nextcloud-file-picker.select-files')
+                                    : i18n.t('dbp.nextcloud-file-picker.select-files-btn', {
                                         count: this.tabulatorTable
                                                 ? this.tabulatorTable.getSelectedRows().length
                                                 : 0,
@@ -3420,11 +3420,11 @@ export class NextcloudFilePicker extends ScopedElementsMixin(DBPLitElement) {
                                     visible:
                                             this.directoriesOnly && this.forAll && this.abortUploadButton,
                                 })}"
-                                title="${i18n.t('nextcloud-file-picker.abort')}"
+                                title="${i18n.t('dbp.nextcloud-file-picker.abort')}"
                                 @click="${() => {
                                     this.abortUpload = true;
                                 }}">
-                            ${i18n.t('nextcloud-file-picker.abort')}
+                            ${i18n.t('dbp.nextcloud-file-picker.abort')}
                         </button>
 
                         <div class="block info-box ${classMap({hidden: this.statusText === ''})}">
@@ -3448,29 +3448,29 @@ export class NextcloudFilePicker extends ScopedElementsMixin(DBPLitElement) {
                             aria-labelledby="replace-modal-title">
                         <header class="modal-header">
                             <button
-                                    title="${i18n.t('file-sink.modal-close')}"
+                                    title="${i18n.t('dbp.file-sink.modal-close')}"
                                     class="modal-close"
                                     aria-label="Close modal"
                                     @click="${() => {
                                         this.closeDialog();
                                     }}">
                                 <dbp-icon
-                                        title="${i18n.t('file-sink.modal-close')}"
+                                        title="${i18n.t('dbp.file-sink.modal-close')}"
                                         name="close"
                                         class="close-icon"></dbp-icon>
                             </button>
                             <h2 id="replace-modal-title">
-                                ${i18n.t('nextcloud-file-picker.replace-title-1')}
+                                ${i18n.t('dbp.nextcloud-file-picker.replace-title-1')}
                                 <span style="word-break: break-all;">${this.replaceFilename}</span>
-                                ${i18n.t('nextcloud-file-picker.replace-title-2')}.
+                                ${i18n.t('dbp.nextcloud-file-picker.replace-title-2')}.
                             </h2>
                         </header>
                         <main class="modal-content" id="replace-modal-content">
-                            <h3>${i18n.t('nextcloud-file-picker.replace-text')}?</h3>
+                            <h3>${i18n.t('dbp.nextcloud-file-picker.replace-text')}?</h3>
                             <div>
                                 <label class="button-container">
                                     <span>
-                                        ${i18n.t('nextcloud-file-picker.replace-new_name')}:
+                                        ${i18n.t('dbp.nextcloud-file-picker.replace-new_name')}:
                                     </span>
                                     <input
                                             type="radio"
@@ -3495,7 +3495,7 @@ export class NextcloudFilePicker extends ScopedElementsMixin(DBPLitElement) {
 
                             <div>
                                 <label class="button-container">
-                                    <span>${i18n.t('nextcloud-file-picker.replace-replace')}</span>
+                                    <span>${i18n.t('dbp.nextcloud-file-picker.replace-replace')}</span>
                                     <input
                                             type="radio"
                                             id="replace-replace"
@@ -3509,7 +3509,7 @@ export class NextcloudFilePicker extends ScopedElementsMixin(DBPLitElement) {
                             </div>
                             <div>
                                 <label class="button-container">
-                                    <span>${i18n.t('nextcloud-file-picker.replace-skip')}</span>
+                                    <span>${i18n.t('dbp.nextcloud-file-picker.replace-skip')}</span>
                                     <input
                                             type="radio"
                                             class="radio-btn"
@@ -3543,7 +3543,7 @@ export class NextcloudFilePicker extends ScopedElementsMixin(DBPLitElement) {
                             </div>
                             <div>
                                 <label class="button-container">
-                                    ${i18n.t('nextcloud-file-picker.replace-mode-all')}
+                                    ${i18n.t('dbp.nextcloud-file-picker.replace-mode-all')}
                                     <input
                                             type="checkbox"
                                             id="replace_mode_all"
@@ -3570,24 +3570,24 @@ export class NextcloudFilePicker extends ScopedElementsMixin(DBPLitElement) {
                             aria-labelledby="new-folder-modal-title">
                         <header class="modal-header">
                             <button
-                                    title="${i18n.t('file-sink.modal-close')}"
+                                    title="${i18n.t('dbp.file-sink.modal-close')}"
                                     class="modal-close"
                                     aria-label="Close modal"
                                     @click="${() => {
                                         this.deleteNewFolderEntry();
                                     }}">
                                 <dbp-icon
-                                        title="${i18n.t('file-sink.modal-close')}"
+                                        title="${i18n.t('dbp.file-sink.modal-close')}"
                                         name="close"
                                         class="close-icon"></dbp-icon>
                             </button>
                             <h3 id="new-folder-modal-title">
-                                ${i18n.t('nextcloud-file-picker.new-folder-dialog-title')}
+                                ${i18n.t('dbp.nextcloud-file-picker.new-folder-dialog-title')}
                             </h3>
                         </header>
                         <main class="modal-content" id="new-folder-modal-content">
                             <div class="nf-label">
-                                ${i18n.t('nextcloud-file-picker.new-folder-dialog-label')}
+                                ${i18n.t('dbp.nextcloud-file-picker.new-folder-dialog-label')}
                             </div>
                             <div>
                                 <input
@@ -3595,7 +3595,7 @@ export class NextcloudFilePicker extends ScopedElementsMixin(DBPLitElement) {
                                         class="input"
                                         name="tf-new-folder-dialog"
                                         id="tf-new-folder-dialog"
-                                        value="${i18n.t('nextcloud-file-picker.new-folder-dialog-default-name')}"
+                                        value="${i18n.t('dbp.nextcloud-file-picker.new-folder-dialog-default-name')}"
                                         @input="${() => {
                                             this._atChangeInput();
                                         }}"
@@ -3611,7 +3611,7 @@ export class NextcloudFilePicker extends ScopedElementsMixin(DBPLitElement) {
                                         @click="${() => {
                                             this.deleteNewFolderEntry();
                                         }}">
-                                    ${i18n.t('nextcloud-file-picker.new-folder-dialog-button-cancel')}
+                                    ${i18n.t('dbp.nextcloud-file-picker.new-folder-dialog-button-cancel')}
                                 </button>
                                 <button
                                         class="button select-button is-primary"
@@ -3619,7 +3619,7 @@ export class NextcloudFilePicker extends ScopedElementsMixin(DBPLitElement) {
                                         @click="${() => {
                                             this.addNewFolder();
                                         }}">
-                                    ${i18n.t('nextcloud-file-picker.new-folder-dialog-button-ok')}
+                                    ${i18n.t('dbp.nextcloud-file-picker.new-folder-dialog-button-ok')}
                                 </button>
                             </div>
                         </footer>
diff --git a/packages/knowledge-base-web-page-element-view/src/i18n/de/translation.json b/packages/knowledge-base-web-page-element-view/src/i18n/de/translation.json
index 4320b7e0366c65df53344a5d7817b42b3a812113..9d7589d04fb3101238b685837684b9a8ff1b61d5 100644
--- a/packages/knowledge-base-web-page-element-view/src/i18n/de/translation.json
+++ b/packages/knowledge-base-web-page-element-view/src/i18n/de/translation.json
@@ -1,7 +1,9 @@
 {
-    "error-head": "FEHLER: Information",
-    "is-forbidden": "ist verboten",
-    "troubled-server": "macht Probleme am Server",
-    "unknown-problems": "mit unbekanntem Problem",
-    "was-not-found": "wurde nicht gefunden"
+    "dbp": {
+        "error-head": "FEHLER: Information",
+        "is-forbidden": "ist verboten",
+        "troubled-server": "macht Probleme am Server",
+        "unknown-problems": "mit unbekanntem Problem",
+        "was-not-found": "wurde nicht gefunden"
+    }
 }
diff --git a/packages/knowledge-base-web-page-element-view/src/i18n/en/translation.json b/packages/knowledge-base-web-page-element-view/src/i18n/en/translation.json
index 4498be0a091751841348859c75071cdbd1abe0de..bd46247fe420a93d866dc8d6b2156f47d8f1d0fe 100644
--- a/packages/knowledge-base-web-page-element-view/src/i18n/en/translation.json
+++ b/packages/knowledge-base-web-page-element-view/src/i18n/en/translation.json
@@ -1,7 +1,9 @@
 {
-    "error-head": "ERROR: information",
-    "is-forbidden": "is forbidden",
-    "troubled-server": "troubled server",
-    "unknown-problems": "with unknown problems",
-    "was-not-found": "was not found"
+    "dbp": {
+        "error-head": "ERROR: information",
+        "is-forbidden": "is forbidden",
+        "troubled-server": "troubled server",
+        "unknown-problems": "with unknown problems",
+        "was-not-found": "was not found"
+    }
 }
diff --git a/packages/knowledge-base-web-page-element-view/src/knowledge-base-web-page-element-view.js b/packages/knowledge-base-web-page-element-view/src/knowledge-base-web-page-element-view.js
index 3d063bbddcc55c9b0b2c4ee5dc199164a36492a9..6d4910b3c18f6006f6c114802405cbc1cde0464c 100644
--- a/packages/knowledge-base-web-page-element-view/src/knowledge-base-web-page-element-view.js
+++ b/packages/knowledge-base-web-page-element-view/src/knowledge-base-web-page-element-view.js
@@ -89,18 +89,18 @@ export class KnowledgeBaseWebPageElementView extends ScopedElementsMixin(Adapter
                     let status_msg;
                     switch (res.status) {
                         case 403:
-                            status_msg = i18n.t('is-forbidden');
+                            status_msg = i18n.t('dbp.is-forbidden');
                             break;
                         case 404:
-                            status_msg = i18n.t('was-not-found');
+                            status_msg = i18n.t('dbp.was-not-found');
                             break;
                         case 500:
-                            status_msg = i18n.t('troubled-server');
+                            status_msg = i18n.t('dbp.troubled-server');
                             break;
                         default:
-                            status_msg = i18n.t('unknown-problems');
+                            status_msg = i18n.t('dbp.unknown-problems');
                     }
-                    const error_head = i18n.t('error-head');
+                    const error_head = i18n.t('dbp.error-head');
                     that.error = html`
                         <p>
                             ${error_head} "
diff --git a/packages/language-select/src/dbp-language-select-demo.js b/packages/language-select/src/dbp-language-select-demo.js
index 8cf48ce03c5c2462d6371a3a837025c83c240403..89b93f6a44ed96448055a1863b42e13353bc9394 100644
--- a/packages/language-select/src/dbp-language-select-demo.js
+++ b/packages/language-select/src/dbp-language-select-demo.js
@@ -46,7 +46,7 @@ class LanguageSelectDisplay extends AdapterLitElement {
     }
 
     render() {
-        return html`<b>${this.lang}: ${this._i18n.t('demo')}</b>`;
+        return html`<b>${this.lang}: ${this._i18n.t('dbp.demo-text')}</b>`;
     }
 }
 
diff --git a/packages/language-select/src/i18n/de/translation.json b/packages/language-select/src/i18n/de/translation.json
index 4786a6913afe20622fc64f369d0ae97d0f559acf..46d7c6b61cbc7154f529f7fb5d614a8ce25c7f4e 100644
--- a/packages/language-select/src/i18n/de/translation.json
+++ b/packages/language-select/src/i18n/de/translation.json
@@ -1,7 +1,9 @@
 {
-    "de": "Deutsch",
-    "de-action": "Auf Deutsch anzeigen",
-    "demo": "Hallo Welt",
-    "en": "Englisch",
-    "en-action": "Auf Englisch anzeigen"
+    "dbp": {
+        "de": "Deutsch",
+        "de-action": "Auf Deutsch anzeigen",
+        "demo-text": "Hallo Welt",
+        "en": "Englisch",
+        "en-action": "Auf Englisch anzeigen"
+    }
 }
diff --git a/packages/language-select/src/i18n/en/translation.json b/packages/language-select/src/i18n/en/translation.json
index d936f14f317ea0df48d0b7a4d555883327034f35..dd8c330454722866e61fc52b75d798515ca58754 100644
--- a/packages/language-select/src/i18n/en/translation.json
+++ b/packages/language-select/src/i18n/en/translation.json
@@ -1,7 +1,9 @@
 {
-    "de": "German",
-    "de-action": "Switch to German",
-    "demo": "Hello World",
-    "en": "English",
-    "en-action": "Switch to English"
+    "dbp": {
+        "de": "German",
+        "de-action": "Switch to German",
+        "demo-text": "Hello World",
+        "en": "English",
+        "en-action": "Switch to English"
+    }
 }
diff --git a/packages/language-select/src/language-select.js b/packages/language-select/src/language-select.js
index 9d9acfba8038ab4b4449e5f9bf274b2814753f42..e116065559e7fb9ff9a815b5a4c01cae0546192b 100644
--- a/packages/language-select/src/language-select.js
+++ b/packages/language-select/src/language-select.js
@@ -17,10 +17,10 @@ export class LanguageSelect extends AdapterLitElement {
 
         this._i18n = createInstance();
         // for the i18next scanner
-        this._i18n.t('de');
-        this._i18n.t('de-action');
-        this._i18n.t('en');
-        this._i18n.t('en-action');
+        this._i18n.t('dbp.de');
+        this._i18n.t('dbp.de-action');
+        this._i18n.t('dbp.en');
+        this._i18n.t('dbp.en-action');
     }
 
     _getNextLanguage(lang) {
@@ -129,7 +129,7 @@ export class LanguageSelect extends AdapterLitElement {
     }
 
     render() {
-        var linkTitle = this._i18n.t(this.next + '-action');
+        var linkTitle = this._i18n.t("dbp." + this.next + '-action');
         return html`
             <a href="#" title="${linkTitle}" @click=${this.onClick}>${this.next.toUpperCase()}</a>
         `;
diff --git a/packages/notification/src/dbp-notification-demo.js b/packages/notification/src/dbp-notification-demo.js
index 4978f69f5a5427ae887ddbd59ffdcb09f2d1f249..b78a73e5ba4e91454da1e2e0ebb367b929a87182 100644
--- a/packages/notification/src/dbp-notification-demo.js
+++ b/packages/notification/src/dbp-notification-demo.js
@@ -67,7 +67,7 @@ export class NotificationDemo extends ScopedElementsMixin(LitElement) {
                     <div class="columns is-vcentered">
                         <div class="column">
                             <button id="send-button" @click="${this.send}" class="button">
-                                ${i18n.t('send')}
+                                ${i18n.t('dbp.send')}
                             </button>
                         </div>
                     </div>
diff --git a/packages/notification/src/i18n/de/translation.json b/packages/notification/src/i18n/de/translation.json
index cc82626e99881d6bb523410ff5f1977e27edcd6b..8b39b9ef699bff81cb40aca895380256047a939d 100644
--- a/packages/notification/src/i18n/de/translation.json
+++ b/packages/notification/src/i18n/de/translation.json
@@ -1,3 +1,5 @@
 {
-    "send": "senden"
+    "dbp": {
+        "send": "senden"
+    }
 }
diff --git a/packages/notification/src/i18n/en/translation.json b/packages/notification/src/i18n/en/translation.json
index cf59c597c54e13ce2a0cca4e5669682b73c279df..76aae63fb6ce70a654a14c884ee24fcea4cdac22 100644
--- a/packages/notification/src/i18n/en/translation.json
+++ b/packages/notification/src/i18n/en/translation.json
@@ -1,3 +1,5 @@
 {
-    "send": "send"
+    "dbp": {
+        "send": "send"
+    }
 }
diff --git a/packages/person-profile/src/i18n/de/translation.json b/packages/person-profile/src/i18n/de/translation.json
index a43e1321158fc215ac86889315173856eed07636..e20e994981924fcf261f731818f7de3fa92c8d84 100644
--- a/packages/person-profile/src/i18n/de/translation.json
+++ b/packages/person-profile/src/i18n/de/translation.json
@@ -1,9 +1,11 @@
 {
-    "person-profile": {
-        "email": "Email",
-        "family-name": "Nachname",
-        "given-name": "Vorname",
-        "none-selected": "Keine Person ausgewählt",
-        "profile-caption": "Profil von"
+    "dbp": {
+        "person-profile": {
+            "email": "Email",
+            "family-name": "Nachname",
+            "given-name": "Vorname",
+            "none-selected": "Keine Person ausgewählt",
+            "profile-caption": "Profil von"
+        }
     }
 }
diff --git a/packages/person-profile/src/i18n/en/translation.json b/packages/person-profile/src/i18n/en/translation.json
index 1fdc07e42115a1d2863a49e243b70ad476174e91..9654e2f1b3867140b5d2addf364196edecf95341 100644
--- a/packages/person-profile/src/i18n/en/translation.json
+++ b/packages/person-profile/src/i18n/en/translation.json
@@ -1,9 +1,11 @@
 {
-    "person-profile": {
-        "email": "Email",
-        "family-name": "Family name",
-        "given-name": "Given name",
-        "none-selected": "No person selected",
-        "profile-caption": "Profile for"
+    "dbp": {
+        "person-profile": {
+            "email": "Email",
+            "family-name": "Family name",
+            "given-name": "Given name",
+            "none-selected": "No person selected",
+            "profile-caption": "Profile for"
+        }
     }
 }
diff --git a/packages/person-profile/src/person-profile.js b/packages/person-profile/src/person-profile.js
index b693ac80ec9334d4780f16839a9b0cff0e6b8de6..f26e2a1ed2b1a69213378ea56057ed5e56bce383 100644
--- a/packages/person-profile/src/person-profile.js
+++ b/packages/person-profile/src/person-profile.js
@@ -103,31 +103,31 @@ export class PersonProfile extends DBPLitElement {
             ${this.person !== null
                 ? html`
                       <h3>
-                          ${i18n.t('person-profile.profile-caption')} ${this.person.givenName}
+                          ${i18n.t('dbp.person-profile.profile-caption')} ${this.person.givenName}
                           ${this.person.familyName}
                       </h3>
                       <table class="profile">
                           <thead></thead>
                           <tbody>
                               <tr>
-                                  <td class="td-profile">${i18n.t('person-profile.given-name')}</td>
+                                  <td class="td-profile">${i18n.t('dbp.person-profile.given-name')}</td>
                                   <td>${this.person.givenName}</td>
                               </tr>
                               <tr>
                                   <td class="td-profile">
-                                      ${i18n.t('person-profile.family-name')}
+                                      ${i18n.t('dbp.person-profile.family-name')}
                                   </td>
                                   <td>${this.person.familyName}</td>
                               </tr>
                               <tr>
-                                  <td class="td-profile">${i18n.t('person-profile.email')}</td>
+                                  <td class="td-profile">${i18n.t('dbp.person-profile.email')}</td>
                                   <td>${this.person.email}</td>
                               </tr>
                           </tbody>
                           <tfoot></tfoot>
                       </table>
                   `
-                : i18n.t('person-profile.none-selected')}
+                : i18n.t('dbp.person-profile.none-selected')}
         `;
     }
 }
diff --git a/packages/person-select/src/i18n/de/translation.json b/packages/person-select/src/i18n/de/translation.json
index b1f575445b87cdb11212a3710f247f0854dd968a..29b43aa3d6e51eaf57ac446710d78e2a7b8ba43a 100644
--- a/packages/person-select/src/i18n/de/translation.json
+++ b/packages/person-select/src/i18n/de/translation.json
@@ -1,6 +1,8 @@
 {
-    "person-select": {
-        "login-required": "Anmeldung erforderlich",
-        "placeholder": "Bitte wählen Sie eine Person aus"
+    "dbp": {
+        "person-select": {
+            "login-required": "Anmeldung erforderlich",
+            "placeholder": "Bitte wählen Sie eine Person aus"
+        }
     }
 }
diff --git a/packages/person-select/src/i18n/en/translation.json b/packages/person-select/src/i18n/en/translation.json
index be7835702e66f8f8d1aa6be2f8c299182dedb580..8fa834f8d5c1efc3c0c47876ccda7cb5da14833d 100644
--- a/packages/person-select/src/i18n/en/translation.json
+++ b/packages/person-select/src/i18n/en/translation.json
@@ -1,6 +1,8 @@
 {
-    "person-select": {
-        "login-required": "Login required",
-        "placeholder": "Please select a person"
+    "dbp": {
+        "person-select": {
+            "login-required": "Login required",
+            "placeholder": "Please select a person"
+        }
     }
 }
diff --git a/packages/person-select/src/person-select.js b/packages/person-select/src/person-select.js
index ae481d3474e2e79f95fc6a9ab9735ca69868c350..e6d521da591259d5b29529c5311422b0bdb22254 100644
--- a/packages/person-select/src/person-select.js
+++ b/packages/person-select/src/person-select.js
@@ -173,8 +173,8 @@ export class PersonSelect extends ScopedElementsMixin(AdapterLitElement) {
                 language: this.lang === 'de' ? select2LangDe() : select2LangEn(),
                 minimumInputLength: 2,
                 placeholder: this.authenticated()
-                    ? i18n.t('person-select.placeholder')
-                    : i18n.t('person-select.login-required'),
+                    ? i18n.t('dbp.person-select.placeholder')
+                    : i18n.t('dbp.person-select.login-required'),
                 dropdownParent: this.$('#person-select-dropdown'),
                 ajax: {
                     delay: 500,
@@ -436,7 +436,7 @@ export class PersonSelect extends ScopedElementsMixin(AdapterLitElement) {
                             ${!this.authenticated()
                                 ? html`
                                       <option value="" disabled selected>
-                                          ${i18n.t('person-select.login-required')}
+                                          ${i18n.t('dbp.person-select.login-required')}
                                       </option>
                                   `
                                 : ''}
diff --git a/packages/provider/src/dbp-provider-demo.js b/packages/provider/src/dbp-provider-demo.js
index 83824a198ec830d5dd3e65f59c5e609951ca01f7..49a2b134731971844f8fe8c80b1ebae1573a5c3d 100644
--- a/packages/provider/src/dbp-provider-demo.js
+++ b/packages/provider/src/dbp-provider-demo.js
@@ -92,13 +92,13 @@ class ProviderDemo extends ScopedElementsMixin(DBPLitElement) {
         const i18n = this._i18n;
         return html`
             <section class="section">
-                <p>${i18n.t('demo.provider_description', {
+                <p>${i18n.t('dbp.demo.provider_description', {
                     id: 'root',
                     description: 'is the top most in hierarchy',
                 })}</p>
                 <pre>&lt;dbp-provider  id="root"  root="1" availability="global" >&lt;/dbp-provider&gt;</pre>
                 <div class="container">
-                    <h1 class="title">${i18n.t('demo.provider')}-Demo</h1>
+                    <h1 class="title">${i18n.t('dbp.demo.provider')}-Demo</h1>
                 </div>
                 <div class="container">
                     <dbp-auth-keycloak subscribe="requested-login-status" lang="${
@@ -115,38 +115,38 @@ class ProviderDemo extends ScopedElementsMixin(DBPLitElement) {
                                   foo="9"
                                   bar="20">
                         <div class="container">
-                            <h2>${i18n.t('demo.provider')}</h2>
-                            <p>${i18n.t('demo.provider_description', {
+                            <h2>${i18n.t('dbp.demo.provider')}</h2>
+                            <p>${i18n.t('dbp.demo.provider_description', {
                                 id: 'demo',
                                 description: 'has only "border-color" to offer',
                             })}</p>                            <pre>&lt;dbp-provider  id="demo"  bc="blue" &gt;&lt;/dbp-provider&gt;</pre>
-                            <p>${i18n.t('demo.provider_description', {
+                            <p>${i18n.t('dbp.demo.provider_description', {
                                 id: 'foo-bar',
                                 description: 'has some values in its store',
                             })}</p>
                             <pre>&lt;dbp-provider  id="foo-bar"  foo="9" bar="20" &gt;&lt;/dbp-provider&gt;</pre>
 
-                            <h2>${i18n.t('demo.consumer')}</h2>
-                            <p>${i18n.t('demo.consumer_description', {
+                            <h2>${i18n.t('dbp.demo.consumer')}</h2>
+                            <p>${i18n.t('dbp.demo.consumer_description', {
                                 id: 'c1',
                                 subscriptions: 'border-color',
                             })}</p>
                             <pre>&lt;dbp-consumer  id="c1"  subscribe="border-color:bc" &gt;&lt;/dbp-consumer&gt;</pre>
                             <dbp-consumer id="c1" subscribe="border-color:bc,lang"></dbp-consumer>
-                            <p>${i18n.t('demo.consumer_description', {
+                            <p>${i18n.t('dbp.demo.consumer_description', {
                                 id: 'c2',
                                 subscriptions: 'foo',
                             })}</p>
                             <pre>&lt;dbp-consumer  id="c2"  subscribe="foo:foo" &gt;&lt;/dbp-consumer&gt;</pre>
                             <dbp-consumer id="c2" subscribe="foo:foo,lang"></dbp-consumer>
-                            <p>${i18n.t('demo.consumer_description', {
+                            <p>${i18n.t('dbp.demo.consumer_description', {
                                 id: 'c3',
                                 subscriptions: 'availability:status',
                             })}</p>
                             <p>Local <em>status</em> is provided as <em>availability</em></p>
                             <pre>&lt;dbp-consumer  id="c3"  subscribe="status:availability"  border-color="orange" &gt;&lt;/dbp-consumer&gt;</pre>
                             <dbp-consumer id="c3" subscribe="status:availability,lang" border-color="orange"></dbp-consumer>
-                            <p>${i18n.t('demo.consumer_description', {
+                            <p>${i18n.t('dbp.demo.consumer_description', {
                                 id: 'c4',
                                 subscriptions: 'unknown-name:status',
                             })}</p>
@@ -274,8 +274,8 @@ class DemoConsumer extends DBPLitElement {
             <div style="border: ${this['border-color']} dotted; padding: 10px;">
                 <table style="width:200px;">
                     <tr style="background-color: #aaa;">
-                        <th style="text-align: left;">${i18n.t('consumer.item')}</th>
-                        <th style="text-align: right;">${i18n.t('consumer.price')}</th>
+                        <th style="text-align: left;">${i18n.t('dbp.consumer.item')}</th>
+                        <th style="text-align: right;">${i18n.t('dbp.consumer.price')}</th>
                     </tr>
                     <tr>
                         <td>foo</td>
@@ -286,7 +286,7 @@ class DemoConsumer extends DBPLitElement {
                         <td style="text-align: right;">${this.bar}</td>
                     </tr>
                     <tr>
-                        <td>${i18n.t('consumer.sum')}</td>
+                        <td>${i18n.t('dbp.consumer.sum')}</td>
                         <td style="text-align: right;">${sum}</td>
                     </tr>
                 </table>
diff --git a/packages/provider/src/i18n/de/translation.json b/packages/provider/src/i18n/de/translation.json
index c8d9181f2e7f19565c25708923f40e7554d8fc4a..621cb442e68e90b7418d9dc38e29dc8602868cf0 100644
--- a/packages/provider/src/i18n/de/translation.json
+++ b/packages/provider/src/i18n/de/translation.json
@@ -1,13 +1,15 @@
 {
-    "consumer": {
-        "item": "Bezeichnung",
-        "price": "Preis",
-        "sum": "Summe"
-    },
-    "demo": {
-        "consumer": "Verbraucher",
-        "consumer_description": "Verbraucher \"{{id}}\" abonniert nur {{subscriptions}}",
-        "provider": "Anbieter",
-        "provider_description": "Anbieter \"{{id}}\" {{description}}"
+    "dbp": {
+        "consumer": {
+            "item": "Bezeichnung",
+            "price": "Preis",
+            "sum": "Summe"
+        },
+        "demo": {
+            "consumer": "Verbraucher",
+            "consumer_description": "Verbraucher \"{{id}}\" abonniert nur {{subscriptions}}",
+            "provider": "Anbieter",
+            "provider_description": "Anbieter \"{{id}}\" {{description}}"
+        }
     }
 }
diff --git a/packages/provider/src/i18n/en/translation.json b/packages/provider/src/i18n/en/translation.json
index 4a5381cad0a092ae96bf0063e80d76cc7b5d696e..4927d712081fb90c700268942d905b7e0958d320 100644
--- a/packages/provider/src/i18n/en/translation.json
+++ b/packages/provider/src/i18n/en/translation.json
@@ -1,13 +1,15 @@
 {
-    "consumer": {
-        "item": "Description",
-        "price": "Price",
-        "sum": "sum"
-    },
-    "demo": {
-        "consumer": "Consumer",
-        "consumer_description": "Consumer \"{{id}}\" will only subscribe to {{subscriptions}}",
-        "provider": "Provider",
-        "provider_description": "Provider \"{{id}}\" {{description}}"
+    "dbp": {
+        "consumer": {
+            "item": "Description",
+            "price": "Price",
+            "sum": "sum"
+        },
+        "demo": {
+            "consumer": "Consumer",
+            "consumer_description": "Consumer \"{{id}}\" will only subscribe to {{subscriptions}}",
+            "provider": "Provider",
+            "provider_description": "Provider \"{{id}}\" {{description}}"
+        }
     }
 }
diff --git a/packages/qr-code-scanner/src/i18n/de/translation.json b/packages/qr-code-scanner/src/i18n/de/translation.json
index 223e4bcb41c6581dfc68e6ebefed803d541f4183..8da7f558f461e14ecb479d607a9daac4d9473795 100644
--- a/packages/qr-code-scanner/src/i18n/de/translation.json
+++ b/packages/qr-code-scanner/src/i18n/de/translation.json
@@ -1,14 +1,16 @@
 {
-    "back-camera": "Rückseitige Kamera",
-    "camera": "Kamera ",
-    "check-access": "Bitte stellen Sie sicher, dass eine Webcam oder Kamera aktiviert ist und überprüfen Sie ob Ihr Browser die notwendigen Berechtigungen besitzt.",
-    "data": "Inhalt",
-    "front-camera": "Vordere Kamera",
-    "loading-video": "Video laden ...",
-    "no-camera-access": "Zugriff auf Kamera nicht möglich.",
-    "no-ios-support": "Ihr Browser unterstützt keine Videoaufnahmen. Bitte verwenden Sie Safari.",
-    "no-qr-detected": "Kein QR-Code erkannt.",
-    "no-support": "Ihr Browser unterstützt keine Videoaufnahmen.",
-    "start-scan": "Scannen starten",
-    "stop-scan": "Scannen stoppen"
+    "dbp": {
+        "back-camera": "Rückseitige Kamera",
+        "camera": "Kamera ",
+        "check-access": "Bitte stellen Sie sicher, dass eine Webcam oder Kamera aktiviert ist und überprüfen Sie ob Ihr Browser die notwendigen Berechtigungen besitzt.",
+        "data": "Inhalt",
+        "front-camera": "Vordere Kamera",
+        "loading-video": "Video laden ...",
+        "no-camera-access": "Zugriff auf Kamera nicht möglich.",
+        "no-ios-support": "Ihr Browser unterstützt keine Videoaufnahmen. Bitte verwenden Sie Safari.",
+        "no-qr-detected": "Kein QR-Code erkannt.",
+        "no-support": "Ihr Browser unterstützt keine Videoaufnahmen.",
+        "start-scan": "Scannen starten",
+        "stop-scan": "Scannen stoppen"
+    }
 }
diff --git a/packages/qr-code-scanner/src/i18n/en/translation.json b/packages/qr-code-scanner/src/i18n/en/translation.json
index a65374b519b1f03051e79f353338dbe6f22feeb4..3b9a6aeb6348d2233baf54ce11bcaabd003ee661 100644
--- a/packages/qr-code-scanner/src/i18n/en/translation.json
+++ b/packages/qr-code-scanner/src/i18n/en/translation.json
@@ -1,14 +1,16 @@
 {
-    "back-camera": "Backcamera",
-    "camera": "Camera ",
-    "check-access": "Please make sure that a webcam or camera is activated and check whether your browser has the necessary authorizations.",
-    "data": "Data",
-    "front-camera": "Frontcamera",
-    "loading-video": "⌛ Loading video...",
-    "no-camera-access": "Unable to access video stream.",
-    "no-ios-support": "Your browser does not support video recording. Please use Safari.",
-    "no-qr-detected": "No QR code detected.",
-    "no-support": "Your browser does not support video recording.",
-    "start-scan": "Start scan",
-    "stop-scan": "Stop scan"
+    "dbp": {
+        "back-camera": "Backcamera",
+        "camera": "Camera ",
+        "check-access": "Please make sure that a webcam or camera is activated and check whether your browser has the necessary authorizations.",
+        "data": "Data",
+        "front-camera": "Frontcamera",
+        "loading-video": "⌛ Loading video...",
+        "no-camera-access": "Unable to access video stream.",
+        "no-ios-support": "Your browser does not support video recording. Please use Safari.",
+        "no-qr-detected": "No QR code detected.",
+        "no-support": "Your browser does not support video recording.",
+        "start-scan": "Start scan",
+        "stop-scan": "Stop scan"
+    }
 }
diff --git a/packages/qr-code-scanner/src/qr-code-scanner.js b/packages/qr-code-scanner/src/qr-code-scanner.js
index 95e9e714489ff18ad62456885e7ba5d16ff0d228..d03749cc45c272b44585d9a6da296c6a8f6580c4 100644
--- a/packages/qr-code-scanner/src/qr-code-scanner.js
+++ b/packages/qr-code-scanner/src/qr-code-scanner.js
@@ -58,12 +58,12 @@ async function getVideoDevices(i18n) {
                         navigator.userAgent
                     )
                 ) {
-                    devices_map.set('environment', i18n.t('back-camera'));
-                    devices_map.set('user', i18n.t('front-camera'));
+                    devices_map.set('environment', i18n.t('dbp.back-camera'));
+                    devices_map.set('user', i18n.t('dbp.front-camera'));
                 } else {
                     devices_map.set(
                         id ? id : true,
-                        device.label || i18n.t('camera') + (devices_map.size + 1)
+                        device.label || i18n.t('dbp.camera') + (devices_map.size + 1)
                     );
                 }
             }
@@ -234,9 +234,9 @@ export class QrCodeScanner extends ScopedElementsMixin(DBPLitElement) {
 
         this._askPermission = true;
         this._loadingMessage = html`
-            ${i18n.t('no-camera-access')}
+            ${i18n.t('dbp.no-camera-access')}
             <br />
-            ${i18n.t('check-access')}
+            ${i18n.t('dbp.check-access')}
         `;
         let video = await createVideoElement(this._activeCamera);
         if (video !== null) {
@@ -398,7 +398,7 @@ export class QrCodeScanner extends ScopedElementsMixin(DBPLitElement) {
             console.assert(this._requestID === null);
             this._videoElement = video;
             this._loading = true;
-            this._loadingMessage = i18n.t('loading-video');
+            this._loadingMessage = i18n.t('dbp.loading-video');
             this._requestID = requestAnimationFrame(tick);
         }
     }
@@ -539,8 +539,8 @@ export class QrCodeScanner extends ScopedElementsMixin(DBPLitElement) {
         let hasDevices = this._devices.size > 0;
         let showCanvas = this._videoRunning && !this._askPermission && !this._loading;
         let noSupportString = checkIosMobileSupport(this._devices)
-            ? i18n.t('no-ios-support')
-            : i18n.t('no-support');
+            ? i18n.t('dbp.no-ios-support')
+            : i18n.t('dbp.no-support');
 
         return html`
             <div class="columns">
@@ -552,16 +552,16 @@ export class QrCodeScanner extends ScopedElementsMixin(DBPLitElement) {
                                     hidden: this._videoRunning,
                                 })}"
                                 @click="${() => this.startScanning()}"
-                                title="${i18n.t('start-scan')}">
-                                ${i18n.t('start-scan')}
+                                title="${i18n.t('dbp.start-scan')}">
+                                ${i18n.t('dbp.start-scan')}
                             </button>
                             <button
                                 class="stop button is-primary ${classMap({
                                     hidden: !this._videoRunning,
                                 })}"
                                 @click="${() => this.stopScanning()}"
-                                title="${i18n.t('stop-scan')}">
-                                ${i18n.t('stop-scan')}
+                                title="${i18n.t('dbp.stop-scan')}">
+                                ${i18n.t('dbp.stop-scan')}
                             </button>
 
                             <select id="videoSource" class="button" @change=${this._onUpdateSource}>
@@ -589,12 +589,12 @@ export class QrCodeScanner extends ScopedElementsMixin(DBPLitElement) {
                             ${this._outputData !== null
                                 ? html`
                                       <div>
-                                          <b>${i18n.t('data')}:</b>
+                                          <b>${i18n.t('dbp.data')}:</b>
                                           <span>${this._outputData}</span>
                                       </div>
                                   `
                                 : html`
-                                      <div>${i18n.t('no-qr-detected')}</div>
+                                      <div>${i18n.t('dbp.no-qr-detected')}</div>
                                   `}
                         </div>
                     </div>
diff --git a/packages/resource-select/src/i18n/de/translation.json b/packages/resource-select/src/i18n/de/translation.json
index d8032b25e2091a6e0e3f8d046359eb62b61c1445..11605e81824fd9476788c1610b5378bcf66d235e 100644
--- a/packages/resource-select/src/i18n/de/translation.json
+++ b/packages/resource-select/src/i18n/de/translation.json
@@ -1,6 +1,8 @@
 {
-    "select": {
-        "loading": "Wird geladen...",
-        "placeholder": "Bitte wählen Sie einen Eintrag aus"
+    "dbp": {
+        "select": {
+            "loading": "Wird geladen...",
+            "placeholder": "Bitte wählen Sie einen Eintrag aus"
+        }
     }
 }
diff --git a/packages/resource-select/src/i18n/en/translation.json b/packages/resource-select/src/i18n/en/translation.json
index 8bc9ccf5cfa45c15e0d8cbc973a904d96b85ce5a..92c9892791e4eba1ad3d34fa9005e6ed6b121d96 100644
--- a/packages/resource-select/src/i18n/en/translation.json
+++ b/packages/resource-select/src/i18n/en/translation.json
@@ -1,6 +1,8 @@
 {
-    "select": {
-        "loading": "Loading...",
-        "placeholder": "Please select an entry"
+    "dbp": {
+        "select": {
+            "loading": "Loading...",
+            "placeholder": "Please select an entry"
+        }
     }
 }
diff --git a/packages/resource-select/src/resource-select.js b/packages/resource-select/src/resource-select.js
index 6bec253d6db9fa5ed4adbc6473f7a845e6882b64..f5e52265c72b5abdbfe80bef4e25a6405f564a8f 100644
--- a/packages/resource-select/src/resource-select.js
+++ b/packages/resource-select/src/resource-select.js
@@ -176,7 +176,7 @@ export class ResourceSelect extends AdapterLitElement {
         $select.select2({
             width: '100%',
             language: this.lang === 'de' ? select2LangDe() : select2LangEn(),
-            placeholder: i18n.t('select.loading'),
+            placeholder: i18n.t('dbp.select.loading'),
             data: [],
             disabled: true,
         });
@@ -214,7 +214,7 @@ export class ResourceSelect extends AdapterLitElement {
             .select2({
                 width: '100%',
                 language: this.lang === 'de' ? select2LangDe() : select2LangEn(),
-                placeholder: i18n.t('select.placeholder'),
+                placeholder: i18n.t('dbp.select.placeholder'),
                 dropdownParent: this._$('#select-resource-dropdown'),
                 data: data,
                 disabled: false,
diff --git a/packages/theme-switcher/src/demo.js b/packages/theme-switcher/src/demo.js
index 3a9bc1ae709ec4c08a193e1bd943d0b4a039277a..feead77d6d2ac099d64f9f49e79ed11ce63e39f9 100644
--- a/packages/theme-switcher/src/demo.js
+++ b/packages/theme-switcher/src/demo.js
@@ -102,8 +102,8 @@ export class ThemeSwitcherDemo extends ScopedElementsMixin(LitElement) {
 
             <section class="section">
                 <div class="content">
-                    <h1 class="title">${i18n.t('demo-title')}</h1>
-                    <p>${i18n.t('intro')}</p>
+                    <h1 class="title">${i18n.t('dbp.theme-switcher.demo-title')}</h1>
+                    <p>${i18n.t('dbp.theme-switcher.intro')}</p>
                 </div>
                 <div class="content">
                     <dbp-theme-switcher subscribe="lang, lang-dir"
diff --git a/packages/theme-switcher/src/i18n/de/translation.json b/packages/theme-switcher/src/i18n/de/translation.json
index 005f919daecf14d2f303d9c6b8b8dc1b93735921..bcbd6e8c36a9f9d02ed19880b4b088ad0278cb7c 100644
--- a/packages/theme-switcher/src/i18n/de/translation.json
+++ b/packages/theme-switcher/src/i18n/de/translation.json
@@ -1,5 +1,9 @@
 {
-    "color-mode": "Farbmodus ändern",
-    "demo-title": "Theme Switcher Demo",
-    "intro": "Mit dem Theme-Switcher können Sie zwischen unterschiedlichen Farb-Themes umschalten."
+    "dbp": {
+        "theme-switcher": {
+            "color-mode": "Farbmodus ändern",
+            "demo-title": "Theme Switcher Demo",
+            "intro": "Mit dem Theme-Switcher können Sie zwischen unterschiedlichen Farb-Themes umschalten."
+        }
+    }
 }
diff --git a/packages/theme-switcher/src/i18n/en/translation.json b/packages/theme-switcher/src/i18n/en/translation.json
index eb93e777e5e2337e5fbef8368e9c5737cecc834e..d50f5a846af0203e50da3f326c0b22e8daf707b3 100644
--- a/packages/theme-switcher/src/i18n/en/translation.json
+++ b/packages/theme-switcher/src/i18n/en/translation.json
@@ -1,5 +1,9 @@
 {
-    "color-mode": "Change color mode",
-    "demo-title": "Theme Switcher Demo",
-    "intro": "With the theme-switcher you can switch between multiple themes."
+    "dbp": {
+        "theme-switcher": {
+            "color-mode": "Change color mode",
+            "demo-title": "Theme Switcher Demo",
+            "intro": "With the theme-switcher you can switch between multiple themes."
+        }
+    }
 }
diff --git a/packages/theme-switcher/src/theme-switcher.js b/packages/theme-switcher/src/theme-switcher.js
index 2219653438e187ace4687eafedcccb4b71b9947d..2268265468be4ca6c4dde9e2f567f32b22836e0e 100644
--- a/packages/theme-switcher/src/theme-switcher.js
+++ b/packages/theme-switcher/src/theme-switcher.js
@@ -247,7 +247,7 @@ export class ThemeSwitcher extends ScopedElementsMixin(AdapterLitElement) {
             <div id="theme-menu" class="${classMap({hidden: this.themes.length <= 1})}">
                 <a
                     class="mode-button"
-                    title="${i18n.t('color-mode')}"
+                    title="${i18n.t('dbp.theme-switcher.color-mode')}"
                     @click="${() => {
                         this.toggleModeMenu();
                     }}">
diff --git a/packages/typescript-example/src/i18n/de/translation.json b/packages/typescript-example/src/i18n/de/translation.json
index 9a110e0eb1ea9adfe4fca9b98ec578044d83b922..c42e7a80a59aa73f0925a6db80e49670fb0da283 100644
--- a/packages/typescript-example/src/i18n/de/translation.json
+++ b/packages/typescript-example/src/i18n/de/translation.json
@@ -1,3 +1,5 @@
 {
-    "hello-world": "Hallo Welt"
+    "dbp": {
+        "hello-world": "Hallo Welt"
+    }
 }
diff --git a/packages/typescript-example/src/i18n/en/translation.json b/packages/typescript-example/src/i18n/en/translation.json
index 3b4330013534d7661c1be467f0afcb0434209a6a..c080bda95eb1a9c5e03cb59a206f7c8545c3fa49 100644
--- a/packages/typescript-example/src/i18n/en/translation.json
+++ b/packages/typescript-example/src/i18n/en/translation.json
@@ -1,3 +1,5 @@
 {
-    "hello-world": "Hello World"
+    "dbp": {
+        "hello-world": "Hello World"
+    }
 }
diff --git a/packages/typescript-example/src/typescript-example.ts b/packages/typescript-example/src/typescript-example.ts
index bb4485a687b79a1c445c538256aa69f66e3393dd..60846d048216d3d732201970e8e77dea3c4a9616 100644
--- a/packages/typescript-example/src/typescript-example.ts
+++ b/packages/typescript-example/src/typescript-example.ts
@@ -38,7 +38,7 @@ export class TypeScriptExample extends LitElement {
 
     render() {
         return html`
-            <h3>${this._i18n.t('hello-world')}</h3>
+            <h3>${this._i18n.t('dbp.hello-world')}</h3>
         `;
     }
 }
diff --git a/toolkit-showcase/assets/translation-overrides/de/translation.json b/toolkit-showcase/assets/translation-overrides/de/translation.json
index cb549f7d4c9e56320a3b3749199b51ce0a0aab62..72accf8e9ad9f23de7f9fe427ea483508c5d775c 100644
--- a/toolkit-showcase/assets/translation-overrides/de/translation.json
+++ b/toolkit-showcase/assets/translation-overrides/de/translation.json
@@ -1,23 +1,12 @@
 {
     "dbp-translation": {
-      "toolkit-showcase": "Dieser Text wird mithilfe von i18n aus einer benutzerdefinierten Sprachdatei gelesen und ins Englische übersetzt wenn man die Sprache auf Englisch stellt.",
-      "toolkit-showcase-link": "Es können sogar links mittels <a href=\"{{- link1}}\" class=\"link\">interpolation</a> und escaping dargestellt werden.",
-      "color-mode": "Sollte nicht angezeigt werden. Dieser Text ist nur als test vorhanden.",
-      "intro": "Sollte nicht angezeigt werden. Dieser Text ist nur als test vorhanden.",
-      "link": "Hier ist ein klickbarer <a class=\"link\" href=\"{{- linkDE}}\">Link</a>",
-      "test": "Hallo"
+        "toolkit-showcase": "Dieser Text wird mithilfe von i18n aus einer benutzerdefinierten Sprachdatei gelesen und ins Englische übersetzt wenn man die Sprache auf Englisch stellt.",
+        "toolkit-showcase-link": "Es können sogar links mittels <a href=\"{{- link1}}\" class=\"link\">interpolation</a> und escaping dargestellt werden.",
+        "link": "Hier ist ein klickbarer <a class=\"link\" href=\"{{- linkDE}}\">Link</a>"
     },
-    "dbp-theme-switcher": {
-      "color-mode": "Theme ändern",
-      "intro": "Sollte nicht angezeigt werden. Dieser Text ist nur als test vorhanden."
-    },
-    "dbp-theme-switcher-demo": {
-      "intro": "Mit dem Theme-Switcher können Sie zwischen unterschiedlichen Farb-Themes umschalten, wie z.B. zwischen Light- und Dark Mode."
-    },
-    "dbp-common-demo": {
-      "themes": {
-        "dark-mode": "Neuer dunkler Modus",
-        "light-mode": "Neuer heller Modus"
-      }
+    "dbp": {
+        "theme-switcher": {
+            "intro": "Mit dem Theme-Switcher können Sie zwischen unterschiedlichen Farb-Themes umschalten, wie z.B. zwischen Light- und Dark Mode."
+        }
     }
 }
diff --git a/toolkit-showcase/assets/translation-overrides/en/translation.json b/toolkit-showcase/assets/translation-overrides/en/translation.json
index 777df296553741b9b365a55b7a60e7076123b1fe..2d71d04be0eb200ed8457331a77aa512e4a1caec 100644
--- a/toolkit-showcase/assets/translation-overrides/en/translation.json
+++ b/toolkit-showcase/assets/translation-overrides/en/translation.json
@@ -1,23 +1,12 @@
 {
     "dbp-translation": {
-      "toolkit-showcase": "This text will be translated to german using i18n with a user defined language file when the language is changed to german.",
-      "toolkit-showcase-link": "Furthermore its possible to display links through <a href=\"{{- link1}}\" class=\"link\">interpolation</a> and escaping.",
-      "color-mode": "This text is not supposed to be displayed. It is only here for testing.",
-      "intro": "This text is not supposed to be displayed. It is only here for testing.",
-      "link": "Here is a clickable <a class=\"link\" href=\"{{- linkEN}}\">link</a>",
-      "test": "Hello"
+        "toolkit-showcase": "This text will be translated to german using i18n with a user defined language file when the language is changed to german.",
+        "toolkit-showcase-link": "Furthermore its possible to display links through <a href=\"{{- link1}}\" class=\"link\">interpolation</a> and escaping.",
+        "link": "Here is a clickable <a class=\"link\" href=\"{{- linkEN}}\">link</a>"
     },
-    "dbp-theme-switcher": {
-      "color-mode": "Change theme",
-      "intro": "This text is not supposed to be displayed. It is only here for testing."
-    },
-    "dbp-theme-switcher-demo": {
-      "intro": "With the theme-switcher you can switch between multiple themes. For example, between Light Mode and Dark Mode."
-    },
-    "dbp-common-demo": {
-      "themes": {
-        "dark-mode": "New dark mode",
-        "light-mode": "New light mode"
-      }
+    "dbp": {
+        "theme-switcher": {
+            "intro": "With the theme-switcher you can switch between multiple themes. For example, between Light Mode and Dark Mode."
+        }
     }
 }