diff --git a/packages/data-table-view/src/data-table-view.js b/packages/data-table-view/src/data-table-view.js index fb9690ba6da23b303106e15c712759a56c8e7b6f..609e642c9e5f28215595b4d8a446ee8c59688a9a 100644 --- a/packages/data-table-view/src/data-table-view.js +++ b/packages/data-table-view/src/data-table-view.js @@ -7,7 +7,7 @@ import bttn from 'datatables.net-buttons-dt'; import bttn2 from 'datatables.net-buttons'; import bttnHtml5 from 'datatables.net-buttons/js/buttons.html5.js'; import bttnPrint from 'datatables.net-buttons/js/buttons.print.js'; -import {i18n} from './i18n'; +import {createInstance} from './i18n'; import {css, html, unsafeCSS} from 'lit-element'; import de from '../assets/datatables/i18n/German'; import en from '../assets/datatables/i18n/English'; @@ -28,7 +28,8 @@ bttnPrint(window, $); export class DataTableView extends AdapterLitElement { constructor() { super(); - this.lang = 'de'; + this._i18n = createInstance(); + this.lang = this._i18n.language; // datatable properties this.table = null; this.responsive = null; @@ -100,6 +101,7 @@ export class DataTableView extends AdapterLitElement { set_datatable(data, languageChange = false) { const lang_obj = this.lang === 'de' ? de : en; + const i18n = this._i18n; if (typeof this.columns === 'undefined' || !this.columns.length) { if (data.length) @@ -229,7 +231,7 @@ export class DataTableView extends AdapterLitElement { changedProperties.forEach((oldValue, propName) => { if (propName === "lang") { - i18n.changeLanguage(this.lang).catch(e => { console.log(e);}); + this._i18n.changeLanguage(this.lang).catch(e => { console.log(e);}); languageChange = true; } }); 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 dc2bb24d0398aab00880490fd4b0b16b14bf0ef0..7544fdc067d938fc90e3b9faedf1e68f7266c354 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 {i18n} from './i18n'; +import {createInstance} from './i18n'; import {css, html} from 'lit-element'; import {ScopedElementsMixin} from '@open-wc/scoped-elements'; import * as commonUtils from '@dbp-toolkit/common/utils'; @@ -10,7 +10,8 @@ import DBPLitElement from "@dbp-toolkit/common/dbp-lit-element"; export class DataTableViewDemo extends ScopedElementsMixin(DBPLitElement) { constructor() { super(); - this.lang = 'de'; + this._i18n = createInstance(); + this.lang = this._i18n.language; this.entryPointUrl = ''; this.noAuth = false; } @@ -100,7 +101,7 @@ export class DataTableViewDemo extends ScopedElementsMixin(DBPLitElement) { update(changedProperties) { changedProperties.forEach((oldValue, propName) => { if (propName === "lang") { - i18n.changeLanguage(this.lang); + this._i18n.changeLanguage(this.lang); } }); diff --git a/packages/data-table-view/src/i18n.js b/packages/data-table-view/src/i18n.js index a2380632e7095df7cc09dddf372598f5d6b5898c..975c1993e2a567940c74f8d957a6b2a018125548 100644 --- a/packages/data-table-view/src/i18n.js +++ b/packages/data-table-view/src/i18n.js @@ -1,29 +1,8 @@ -import i18next from 'i18next'; +import {createInstance as _createInstance} from '@dbp-toolkit/common/i18next.js'; import de from './i18n/de/translation.json'; import en from './i18n/en/translation.json'; -const i18n = i18next.createInstance(); - -i18n.init({ - lng: 'de', - fallbackLng: ['de'], - debug: false, - initImmediate: false, // Don't init async - resources: { - en: {translation: en}, - de: {translation: de} - }, -}); - -console.assert(i18n.isInitialized); - -function dateTimeFormat(date, options) { - return new Intl.DateTimeFormat(i18n.languages, options).format(date); -} - -function numberFormat(number, options) { - return new Intl.NumberFormat(i18n.languages, options).format(number); -} - -export {i18n, dateTimeFormat, numberFormat}; +export function createInstance() { + return _createInstance({en: en, de: de}, 'de', 'en'); +} \ No newline at end of file