vue 使用vue-i18n作全局中英文切換

一、vue-i18n安裝vue

  npm install vue-i18n --save-devnpm


二、在main.js文件中引入緩存

  import VueI18n from 'vue-i18n';app

  Vue.use(VueI18n);ui

  const i18n = new VueI18n({this

    locale: localStorage.getItem('language')||'zh', //使用localStorage緩存到本地,當下次使用時可默認當前使用語言component

    messages: {
'      zh': require('./common/lang/zh'),
      'en': require('./common/lang/en')
    }
  })router

  new Vue({
    el: '#app',
    router,
    i18n,
    template: '<App/>',
    components: { App }
  })get

三、新建中英文語言文件import

  zh.js:

  module.exports = {

    language: {
      name: 'English'
    },
    navbar: {
      home: '首頁',
    }
  }

  en.js:

  module.exports = {

    language: {
      name: '中文'
    },
    navbar: {
      home: 'Home',
    }
  }

四、建立一個切換語言方法(寫在App.vue能夠全局控制);

  changeLang() {
    let locale = localStorage.getItem('language')||'zh';
    let temp=locale === 'zh' ? 'en' : 'zh';
    this.$i18n.locale=temp;//改變當前語言
    localStorage.language=temp;
  }

五、在template中的使用:

  <p>{{ $t('language.name') }}</p>   <p>{{ $t('navbar.contact') }}</p>

相關文章
相關標籤/搜索