Select default lang based on browser lang

For issue #154.
This commit is contained in:
N-Pex 2021-09-25 21:22:12 +02:00
parent 583f6b78cd
commit 954ff8c3fc
2 changed files with 19 additions and 1 deletions

View file

@ -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";
},

View file

@ -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;