From 954ff8c3fcf48db86e6e50eca8a29f867dfe379f Mon Sep 17 00:00:00 2001 From: N-Pex Date: Sat, 25 Sep 2021 21:22:12 +0200 Subject: [PATCH] Select default lang based on browser lang For issue #154. --- src/App.vue | 18 ++++++++++++++++++ src/store/index.js | 2 +- 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/src/App.vue b/src/App.vue index 06060a8..cb470ca 100644 --- a/src/App.vue +++ b/src/App.vue @@ -43,6 +43,24 @@ export default { }; }, beforeMount() { + if (!this.$store.state.language) { + // No language set, default to browser language? + var browserLang = ( + navigator.language || + navigator.userLanguage || + "" + ).toLowerCase(); + if (this.$i18n.messages[browserLang]) { + this.$store.commit("setLanguage", browserLang); + } else if (browserLang.includes("-")) { + // Try with language name only. + let lang = browserLang.split("-")[0]; + if (this.$i18n.messages[lang]) { + this.$store.commit("setLanguage", lang); + } + } + } + // Set language this.$i18n.locale = this.$store.state.language || "en"; }, diff --git a/src/store/index.js b/src/store/index.js index 1c63471..a44857a 100644 --- a/src/store/index.js +++ b/src/store/index.js @@ -64,7 +64,7 @@ const vuexPersistSessionStorage = new VuexPersist({ const defaultUseSessionStorage = (sessionStorage.getItem('user') != null); export default new Vuex.Store({ - state: { language: 'en', currentRoomId: null, auth: null, tempuser: null, useLocalStorage: !defaultUseSessionStorage }, + state: { language: null, currentRoomId: null, auth: null, tempuser: null, useLocalStorage: !defaultUseSessionStorage }, mutations: { loginSuccess(state, user) { state.auth.status.loggedIn = true;