Переключение языка в laravel 5 / vue app2 - PullRequest
0 голосов
/ 26 июня 2018

В моем 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 голосов
/ 26 июня 2018

Вы можете использовать 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');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...