vue使用国际化(切换不生效)

1.使用npm安装

npm install vue-i18n

2.在main.js中引用

import VueI18n from 'vue-i18n'
Vue.use(VueI18n)

3.准备中英文数据

中英文文件中示例代码

module.exports = {
  navigation: {
    home:"Home",
    productCenter:"productCenter",
  },
  homePage:{
    VDIcloudDesktop:"VDIcloudDesktop",
  }
}


module.exports = {
  navigation: {
    home:"首页",
    productCenter:"产品中心",
  },
  homePage:{
    VDIcloudDesktop:"VDI云桌面",
  }
}

4.创建带有选项的 VueI18n 实例,在main.js中

通过session来存储lang标志,页面初次进入没有session时,lang为zh,显示内容中文

const i18n = new VueI18n({
  locale: sessionStorage.getItem('lang') || 'zh',    // 语言标识
  //this.$i18n.locale // 通过切换locale的值来实现语言切换
  messages: {
    'zh': require('./i18n/lang/zh'),   // 中文语言包
    'en': require('./i18n/lang/en')    // 英文语言包
  }
})

5.在导航栏中编写用来切换的标签

 <li v-if="lang ==='English'">
      <span @click="changeCn" style="display: block">中文</span>
 </li>
 <li v-else="lang ==='中文'">
       <span @click="changeEn" style="display: block">English</span>
 </li>
data (){
   return{
      lang: (sessionStorage.getItem('lang') === 'en') ? "English" : "中文",
  }
},
methods:{
    changeCn(){
      this.lang = "中文";
      this.$i18n.locale = 'zh';
      sessionStorage.setItem('lang','zh');
    },
    changeEn(){
      this.lang = "English";
      this.$i18n.locale = 'en';
      sessionStorage.setItem('lang','en')
    },

}

6.在组建中使用数据

     <li @click="getBottom" class="bottomClass"> {{ $t("navigation.home") }}</li>

点击时就可以实现中英文切换

 

用data中的国际化数据进行for循环操作时,国际化切换不生效,在computed中设置整个值 

 computed:{
      message(){
        return this.$t('products.Advantages')
      },
}

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值