Я пытаюсь сохранить выбранный язык при перезапуске программы.
Как сохранить значение locale: '' в i18n при переключении языков?
Я хочу перенести это значение из VUEX Store в i18n, но я не знаю, как это сделать правильно.
По умолчанию local: 'en'.
При изменении языка значение в локали перезаписывается и сохраняется в localStorage , а при перезапуске программы значение на этапе create () берется из LocalStorage .
Может быть, существует хотя бы пример, где реализована похожая функция?
<template>
...
<f7-menu-dropdown-item href="#" @click="setLocale('en')">
<f7-menu-dropdown-item href="#" @click="setLocale('ru')">
...
</template>
export default {
methods: {
setLocale(locale){
import(`../langs/${locale}.json`).then((msgs) => {
this.$i18n.setLocaleMessage(locale, msgs)
this.$i18n.locale = locale
localStorage.setItem('language', locale);
})
},
created(){
if(localStorage.getItem('language') !== null){
localStorage.setItem('language', navigator.language || navigator.userLanguage);
}
}
}
}
i18n.js
import Vue from 'vue'
import VueI18n from 'vue-i18n'
import en from '../langs/en.json'
import ru from '../langs/ru.json'
Vue.use(VueI18n)
export const i18n = new VueI18n({
locale: window.localStorage.getItem("language"),
fallbackLocale: 'ru',
messages:{
en,
ru
}
})