一、装置

npm install vue-i18n

二、应用

在 src 下创立 lang 文件夹。

1、筹备语言包
本例我筹备了两种语言包,别离是中文和英文:zn、en。在 lang 下创立两个文件,zn.js 和 en.js。

// zn.jsexport default {  main:{    message:"音讯",    display:"展现"  }};
// en.jsexport default {  main:{    message:"message",    display:"display"  }}

2、筹备翻译的语言环境
在 lang 下创立 index.js,应用如上的两种语言包

import Vue from "vue";import VueI18n from 'vue-i18n'import zn from "./zn"import en from "./en"Vue.use(VueI18n);   // 全局注册国际化包 // 筹备翻译的语言环境信息const i18n = new VueI18n({  locale: "zn",   // 初始化中文  messages: {    "zn":zn,    "en":en  }});  export default i18n

3、实现语言翻译
在 main.js 中将 i18n 注入 vue 中

import i18n from './lang'new Vue({  el: '#app',  router,  store,  i18n,   // 注入,不能短少  components: { App },  template: '<App/>'})

应用形式

(1)间接应用

<template>  <div style="width: 100%;">    <div>      <div>        <span>{{$t('main.message')}}</span>      </div>    </div>  </div></template>

(2) 语言切换

<template>  <div style="width: 100%;">    <div>      <div>        <span>{{$t('main.message')}}</span>        <button @click="changeLang">切换语言</button>      </div>    </div>  </div></template> <script>export default {  methods: {    changeLang() {      if(this.$i18n.locale === 'zn'){   // 判断以后语言        this.$i18n.locale = 'en'   // 设置以后语言      } else {        this.$i18n.locale = 'zn'      }    }  }}</script>

三、整合 ElementUI 语言包

咱们能够整合 ElementUI 中存在的语言包。

1、扩大中文

// zn.jsimport zhLocale from 'element-ui/lib/locale/lang/zh-CN'   //引入element语言包export default {  main:{    message:"音讯",    display:"展现"  },  ...zhLocale};

2、扩大英文

// en.jsimport enLocale from 'element-ui/lib/locale/lang/en'   //引入element语言包export default {  main:{    message:"message",    display:"display"  },  ...enLocale}

依据上图(语言包)取可翻译字段

<p>{{$t('el.colorpicker.confirm')}}</p> // 中文“确定”,英文“OK”

四、问题记录

报错的起因次要是因为以后应用的版本不匹配,解决方案入下。

npm install vue-i18n@8

》》》vue-i18n应用计划梳理,可供参考应用