在Laravel 5 / Vue App2中切换语言

时间:2018-06-26 14:55:05

标签: laravel-5 internationalization vuejs2

在我的laravel 5.6 / vue.js 2.5.7中/我使用 vue-i18n 7.8和laravel-vue-i18n-generator支持多语言:

以及在resources / assets / js / app.js文件中,我喜欢:

...
let lang = 'fr';
const i18n = new VueI18n({    // https://github.com/caouecs/Laravel-lang - Additive langs
    locale: lang, // set locale
    messages : Locale, // set locale messages
})

new Vue({ router, i18n,
    data:{
...

In my vue file wnen I need to read my current locale I can use like :

        created() {
            this.current_locale = this.$i18n;
        ...

要切换到其他语言环境,我可以使用以下功能:

switchLocale () {
  if (this.$i18n.locale === 'fr') {
    this.$i18n.locale = 'en'
  } else {
    this.$i18n.locale = 'fr'
  }
}

问题是,当我移至其他页面时,在哪里保存当前语言?我的意思是

let lang = 'fr';
在我的代码顶部的

是一些默认语言环境,但是如果语言环境已更改,那么从哪里读取呢?请提供一些简单的解决方案。 在url中生成前缀似乎很复杂。

谢谢!

1 个答案:

答案 0 :(得分:1)

您可以使用localStorage

switchLocale () {
  if (this.$i18n.locale === 'fr') {
    this.$i18n.locale = 'en'
  } else {
    this.$i18n.locale = 'fr'
  }
  localStorage.setItem('locale', this.$i18n.locale)
}

然后在下一页:

this.$i18n.locale = localStorage.getItem('locale');