vue-i18n 如何在刷新/访问 js(运行时)中的 $i18n.locale 后保留语言?

ger*_*ude 5 internationalization vue.js

我不知道如何在运行时访问 $i18n.locale 。因此,我不知道如何将其保留在我的会话中,以便在刷新页面时它不会返回英文。

<select class="dropdown-menu-lang " aria-labelledby="dropdown07" v-model="$i18n.locale" @change="langChanged($i18n.locale)" >
          <option class="dropdown-item-lang" v-for="(lang, i) in langs" :key="`Lang${i}`" :value="lang">{{ lang }}</option>
</select>

langs: ['fr', 'en'],
Run Code Online (Sandbox Code Playgroud)

这是我尝试过的

mounted(){
     if(localStorage.Lang!=null) $i18n.locale=localStorage.Lang; //how to access $i18n.locale ??
 },

langChanged(lang){
      localStorage.Lang=lang; //this is OK
},
Run Code Online (Sandbox Code Playgroud)

这是我在 app.js 中定义所有内容的方式

import Vue from 'vue';
import Vuetify from 'vuetify';
import VueInternationalization from 'vue-i18n';
import Locale from './vue-i18n-locales.generated.js';

Vue.use(VueInternationalization);

const lang = document.documentElement.lang.substr(0, 2); 

const i18n = new VueInternationalization({
    locale: lang,
    messages: Locale
});
Run Code Online (Sandbox Code Playgroud)

非常感谢

小智 3

在子组件的方法之一中访问 $i18n 必须使用“this”

mounted(){
 if(localStorage.Lang!=null) this.$i18n.locale=localStorage.Lang; 
Run Code Online (Sandbox Code Playgroud)

},