Vue3 + vue-i18n 多语言切换

1、下载vue-i18n: 

npm i vue-i18n@next

2、新建三个语言相关文件:

2.1、index.js:
import {
  createI18n
} from "vue-i18n";
import zh from "./zh";
import en from "./en";

const i18n = createI18n({
  locale: localStorage.getItem('language') || 'zh', // 定义默认语言为中文
  messages: {
    zh,
    en,
  },
});
export default i18n;
2.2、en.js:
export default {
  language: {
    index: "English"
  }
}
2.3、zh.js:
export default {
  language: {
    index: "汉语"
  }
}
3、main.js:
import vueI18n from '@/lang/index'
createApp(App).use(vueI18n).mount('#app')
4、多语言使用、多语言切换 -- index.vue:
<template>
  <!-- 语言切换 -->
  <div>
    <div>
      <div @click="handEvent(0)">中文</div>
      <div @click="handEvent(1)">英文</div>
    </div>
    <div>
      {{ $t("language.index") }}
    </div>
  </div>
</template>
<script>
export default {
  data() {
    return {}
  },
  methods: {
    handEvent(type) {
      if (type == 0) {
        localStorage.setItem("language", "zh")
        this.$i18n.locale = "zh" //这个代码负责实时切换语言
      } else if (type == 1) {
        localStorage.setItem("language", "en")
        this.$i18n.locale = "en" //这个代码负责实时切换语言
      }
    }
  }
}
</script>

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

&做梦的少年&

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值