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><dbp-provider id="root" root="1" availability="global" ></dbp-provider></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><dbp-provider id="demo" bc="blue" ></dbp-provider></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><dbp-provider id="foo-bar" foo="9" bar="20" ></dbp-provider></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><dbp-consumer id="c1" subscribe="border-color:bc" ></dbp-consumer></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><dbp-consumer id="c2" subscribe="foo:foo" ></dbp-consumer></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><dbp-consumer id="c3" subscribe="status:availability" border-color="orange" ></dbp-consumer></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." + } } }