javascript Vue uni-app

vue-i18n和ElementUI国际化使用总结

2018-01-29  本文已影响3991人  回不去的那些时光

vue-i18n官方文档:http://kazupon.github.io/vue-i18n/en/started.html
element-ui文档: http://element-cn.eleme.io/#/zh-CN/component/i18n
资料分享完了,现在开始总结vue-i18n使用方法:

main.js

import Vue from 'vue'
import App from './App'
import router from './router'
import ElementUI from 'element-ui'
import 'element-ui/lib/theme-chalk/index.css'
import i18n from './i18n/i18n';

Vue.use(ElementUI)

Vue.config.productionTip = false


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

i18n.js

  import Vue from 'vue'
  import locale from 'element-ui/lib/locale';
  import VueI18n from 'vue-i18n'
  import messages from './langs'
  Vue.use(VueI18n)

  //从localStorage中拿到用户的语言选择,如果没有,那默认中文。
  const i18n = new VueI18n({
    locale: localStorage.lang || 'cn',
    messages,
  })
  locale.i18n((key, value) => i18n.t(key, value)) //为了实现element插件的多语言切换

  export default i18n

cn.js

  import zhLocale from 'element-ui/lib/locale/lang/zh-CN'
  const cn = {
    message: {
        'hello': '你好,世界',
        'msg': '提示',
    }  
  }

export default cn;

en.js

import enLocale from 'element-ui/lib/locale/lang/en'
const en = {
    message: {
        'hello': 'hello, world',
        'msg': 'point out',
    }
}

export default en;

然后写一个模板测试一下:

<template>
  <div class="hello">
    <el-button type="primary" @click="switchChinese()">切换中文</el-button>
    <el-button type="primary" @click="switchEnlish()">切换英文</el-button>
    <p>{{$t('message.hello')}}</p> 
    <p>{{$t('message.msg')}}</p>
  </div>
</template>

<script>
export default {
  name: 'HelloWorld',
  data () {
    return {
      msg: 'Welcome to Your Vue.js App'
    }
  },
  methods: {
    switchChinese(){
      this.$i18n.locale = 'cn'; 
    },
    switchEnlish(){
      this.$i18n.locale = 'en'; 
    }

  }
}
</script>

好了,到这里就结束了,有时间还是多去看看vue-i18n文档
最后声明一下,这篇文章是借鉴下面这位老兄的文章写的:https://segmentfault.com/a/1190000012779120#articleHeader1

上一篇下一篇

猜你喜欢

热点阅读