admin管理员组

文章数量:1530888

实现中英文翻译切换以及cookie 存储 

 

需要安装以下依赖  

npm install vue-i18n --save
npm install js-cookie --save

main.js   内 注入i18n

import Vue from 'vue'
import App from './App.vue'
import router from './router'
import store from './store'
import ElementUI from 'element-ui'
import 'element-ui/lib/theme-chalk/index.css'
import VueI18n from 'vue-i18n'
import Cookies from 'js-cookie'

Vue.use(ElementUI)

Vue.use(VueI18n)
//使用语言包
const i18n = new VueI18n({
	locale: Cookies.get('language') || 'zh',
	messages:{
		en:require("@/assets/i18n/langs/en.js"), //英文文件路径
		zh:require("@/assets/i18n/langs/zh.js"), //中文文件路径
	},
	silentTranslationWarn: true
})

Vue.config.productionTip = false

new Vue({
  router,
	store,
	i18n,
  render: h => h(App)
}).$mount('#app')

新建 中英文js文件

zh.js

module.exports = {
  navBar:{
    home:"首页",
    name:"张三"
  }
  
}


en.js

module.exports = {
  navBar:{
    home:"HOME",
    name:"zhangsan"
  }
}

需要引入翻译的文件   实例代码:

<template>
  <div id="translate" class="translate">
    <p>{{ $t('navBar.home')}}</p>
    <p>{{ $t('navBar.name')}}</p>
    <el-button
    @click="changeLaguages" 
    type="default"
    >切换语音</el-button>
  </div>
</template>

<script type="text/javascript">
import Cookies from 'js-cookie'

export default {
  name: "translate",
  data() {
    return {
      lang: Cookies.get('language') || 'zh',
    }
  },
  components: {
  },
  methods:{
    changeLaguages () {
      console.log(this.$i18n.locale)
      let lang = this.$i18n.locale === 'zh' ? 'en' : 'zh'
      this.$i18n.locale = lang;
      Cookies.set("language",lang)
    }
  }
}
</script>

<style lang="less" scoped>
  p{
    padding: 10px 0;
  }
  
</style>

 

 

 

 

 

 

本文标签: 中英文vuei18n