如何在 vue 应用程序中保持本地化?

How to persist localisation in a vue app?

我正在尝试使用 vue-i18n 构建多语言 Vue 应用程序,我想知道如何保留所选语言?有人有本地化经验吗?是否可以通过将语言作为参数添加到 vue 路由器?或者还有其他方法吗?

每次您 change/set 您需要将其值存储在 localStorage 中的语言环境。将此添加到您的应用程序:

watch: {
    '$i18n.locale': function(newVal, oldVal) {
        localStorage.setItem('last-locale', newVal)
     }
}

然后在i18n.js初始化文件中读取启动时的这个值:

export default createI18n({
  ...
  locale: getStartingLocale(),
  ...
})

并且只需添加一个函数:

function getStartingLocale() {
    if (localStorage.getItem('last-locale')) {
        return localStorage.getItem('last-locale')
    }
    return process.env.VUE_APP_I18N_LOCALE || "en"
}