4个文件


npm install vue-i18n
en.js

export const m = {  music: 'Music', // 网易云音乐  findMusic: 'FIND MUSIC', // 发现音乐  myMusic: 'MY MUSIC', // 我的音乐  friend: 'FRIEND', // 敌人  musician: 'MUSICIAN', // 音乐人  download: 'DOWNLOAD' // 下载客户端}

zh.js

export const m = { music: '网易云音乐', findMusic: '发现音乐', myMusic: '我的音乐', friend: '敌人', musician: '音乐人', download: '下载客户端' }

helloworld

<!-- * @Author: your name * @Date: 2020-07-21 10:01:23 * @LastEditTime: 2020-07-21 10:32:24 * @LastEditors: Please set LastEditors * @Description: In User Settings Edit * @FilePath: \01\src\components\HelloWorld.vue--><template>  <div class="hello">    <button @click="changeLangEvent">切换语言</button><p>vue-i18n 数据渲染的模板语法咱们晓得 vue 中对于文字数据的渲染,有以‘’{}‘’或者 v-text、v-html等的模式,同样的应用国际化后,仍旧能够沿用,但须要一点批改。</p>    <span v-text="$t('m.music')"></span>    <span>{{$t('m.music')}}</span>  </div></template><script>export default {  name: 'HelloWorld',  data () {    return {      msg: 'Welcome to Your Vue.js App'    }  },  methods: {    changeLangEvent () {      var r = window.confirm('确定切换语言吗?')      debugger      if(r === true) {          if(this.$i18n.locale === 'zh-CN') {            this.lang = 'en-US'          } else {            this.lang = 'zh-CN'          }          this.$i18n.locale = this.lang      }    }  }}</script><!-- Add "scoped" attribute to limit CSS to this component only --><style scoped>h1,h2 {  font-weight: normal;}ul {  list-style-type: none;  padding: 0;}li {  display: inline-block;  margin: 0 10px;}a {  color: #42b983;}</style>

main.js

import Vue from 'vue'import App from './App'import router from './router'import VueI18n from 'vue-i18n'Vue.use(VueI18n) // 通过插件的模式挂载const i18n = new VueI18n({  locale: 'zh-CN', // 语言标识  // this.$i18n.locale // 通过切换locale的值来实现语言切换  messages: {    'zh-CN': require('./common/lang/zh'), // 中文语言包    'en-US': require('./common/lang/en') // 英文语言包  }})Vue.config.productionTip = false/* eslint-disable no-new */new Vue({  el: '#app',  i18n,  router,  components: { App },  template: '<App/>'})