1、安装

$ npm install vue-i18n
// 或
$ yarn add vue-i18n

2、引用

在main.js中引用

import VueI18n from 'vue-i18n'

Vue.use(VueI18n)

运行项目,报错:

 由于使用的是@vue/cli 4.4.0,安装的vue-i18n版本过高,降低版本即可

$ npm uninstall vue-i18n

$ npm install vue-i18n@6

 

// src/utils下创建i18n/index.js
import Vue from 'vue'
import VueI18n from 'vue-i18n'

// 引入各个语言配置文件
import zh from './zh'
import en from './en'

Vue.use(VueI18n)
// 创建vue-i18n实例i18n
const i18n = new VueI18n({
  // 设置默认语言
  locale: 'zh', // 语言标识
  // 添加多语言(每一个语言标示对应一个语言文件)
  messages: {
    zh,
    en
  }
})
// 暴露i18n
export default i18n
// main.js文件
import i18n from './utils/i18n'

new Vue({
  router,
  store,
  i18n,
  render: h => h(App)
}).$mount('#app')
// 创建文件zh/index.js
const zh = {
  name: '测试'
}
export default zh
// 创建文件en/index.js
const en = {
  name: 'test'
}
export default en

3、vue中使用

<template>
  <div class="test">
    <div>{{$t("name")}}</div>
    <button @click="setLanguage()">{{language === 'zh' ? 'English' : '简体中文'}}</button>
  </div>
</template>

<script>
export default {
  data () {
    return {
      language: 'zh'
    }
  },
  methods: {
    setLanguage () {
      this.language = this.language === 'zh' ? 'en' : 'zh'
      // 切换语言
      this.$i18n.locale = this.language
      console.log(this.$t('language.zh'))
    }
  }
}
</script>

运行结果如下:

点击English按钮,切换系统为英文

Logo

前往低代码交流专区

更多推荐