From 109a0605b47c2c9146cadd1550baa16d6fda21dc Mon Sep 17 00:00:00 2001 From: AlphaX-Projects <77661270+AlphaX-Projects@users.noreply.github.com> Date: Sat, 1 Jul 2023 13:47:20 +0200 Subject: [PATCH] Remember selected language --- core/src/components/language-selector.js | 26 +++++++++++-------- .../functional-components/settings-page.js | 15 ++++++++++- 2 files changed, 29 insertions(+), 12 deletions(-) diff --git a/core/src/components/language-selector.js b/core/src/components/language-selector.js index 0cd7b646..016bee3d 100644 --- a/core/src/components/language-selector.js +++ b/core/src/components/language-selector.js @@ -1,6 +1,4 @@ import { LitElement, html, css } from 'lit' -import { connect } from 'pwa-helpers' -import { store } from '../store.js' import { use, translate, translateUnsafeHTML, registerTranslateConfig } from 'lit-translate' registerTranslateConfig({ @@ -16,10 +14,9 @@ if (checkLanguage === null || checkLanguage.length === 0) { use(checkLanguage) } -class LanguageSelector extends connect(store)(LitElement) { +class LanguageSelector extends LitElement { static get properties() { return { - config: { type: Object }, theme: { type: String, reflect: true } } } @@ -57,8 +54,7 @@ class LanguageSelector extends connect(store)(LitElement) { render() { return html`
- @@ -83,17 +79,25 @@ class LanguageSelector extends connect(store)(LitElement) { } firstUpdated() { - // ... + const myElement = this.shadowRoot.getElementById('languageSelect') + + myElement.addEventListener("change", () => { + this.selectElement() + }) + + this.selectElement() + } + + selectElement() { + const selectedLanguage = localStorage.getItem('qortalLanguage') + let element = this.shadowRoot.getElementById('languageSelect') + element.value = selectedLanguage } changeLanguage(event) { use(event.target.value) localStorage.setItem('qortalLanguage', event.target.value) } - - stateChanged(state) { - this.config = state.config - } } window.customElements.define('language-selector', LanguageSelector) diff --git a/core/src/functional-components/settings-page.js b/core/src/functional-components/settings-page.js index a9addb43..a48b3466 100644 --- a/core/src/functional-components/settings-page.js +++ b/core/src/functional-components/settings-page.js @@ -2,7 +2,7 @@ import { LitElement, html, css } from 'lit' import { connect } from 'pwa-helpers' import { store } from '../store.js' import { doAddNode, doSetNode, doLoadNodeConfig } from '../redux/app/app-actions.js' -import { get, translate, translateUnsafeHTML } from 'lit-translate' +import { use, translate, translateUnsafeHTML, registerTranslateConfig } from 'lit-translate' import snackbar from './snackbar.js' import '../components/language-selector.js' import '../custom-elements/frag-file-input.js' @@ -15,6 +15,19 @@ import '@material/mwc-textfield' import '@material/mwc-icon' import '@material/mwc-list/mwc-list-item.js' +registerTranslateConfig({ + loader: lang => fetch(`/language/${lang}.json`).then(res => res.json()) +}) + +const checkLanguage = localStorage.getItem('qortalLanguage') + +if (checkLanguage === null || checkLanguage.length === 0) { + localStorage.setItem('qortalLanguage', 'us') + use('us') +} else { + use(checkLanguage) +} + let settingsDialog class SettingsPage extends connect(store)(LitElement) {