vue-i18n 中英文翻译

实现中英文翻译切换以及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>

 

 

 

 

 

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值