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

cod*_*gon 4 vue-i18n vuejs3

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

sul*_*u00 5

每次更改/设置区域设置时,您都需要将其值存储在 localStorage 中。将其添加到您的应用程序中:

watch: {
    '$i18n.locale': function(newVal, oldVal) {
        localStorage.setItem('last-locale', newVal)
     }
}
Run Code Online (Sandbox Code Playgroud)

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

export default createI18n({
  ...
  locale: getStartingLocale(),
  ...
})
Run Code Online (Sandbox Code Playgroud)

只需添加一个函数:

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