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')
      },
}

 

Logo

前往低代码交流专区

更多推荐