programing

레벨 5 / vue app2에서 언어 전환

yoursource 2022. 9. 30. 09:54
반응형

레벨 5 / vue app2에서 언어 전환

my 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에서 프레픽스를 생성하는 것은 매우 복잡한 것 같습니다.

감사합니다!

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');

언급URL : https://stackoverflow.com/questions/51045874/switching-language-in-laravel-5-vue-app2

반응형