vueCli5版本vue3项目使用i18n国际化语言

vueCli5版本vue3项目使用i18n国际化语言

  • 环境
"vue": "^3.2.13",
"vue-i18n": "^9.2.2",
  • 安装
npn install vue-i18n
  • 配置
  1. main.js中配置
import i18n from './i18n/index';

const app = createApp(App)
app.use(i18n)
app.mount('#app')
  1. 在src文件下创建i18n文件夹

  2. i18n文件内分别创建 index.js zh.js en.js 三个文件夹

// index.js
import { createI18n } from 'vue-i18n';
import en from './en'    // 英文
import zh from './zh'    // 中文

const messages = {
  zh: { ...zh },
  en: { ...en },
};
const i18n = createI18n({
  legacy: false,
  globalInjection: true,
  locale: 'zh', // 默认 zh 为中文
  messages
});

export default i18n;
// zh.js
export default {
  msg: {
    title: '标题'
  }
};
// en.js
export default {
  msg: {
    title: 'title'
  }
};
  1. vue.config.js配置文件中新增如下配置消除警告
module.exports = defineConfig({
  configureWebpack: {
    resolve: {
      alias: { 'vue-i18n': 'vue-i18n/dist/vue-i18n.cjs.js' },
    },
  },
})
  • 使用
<template>
  <div>
    <button @click="changeZh">切换中文</button>
    <button @click="changeEn">切换英文</button>
    <hr>
    <span> {{ $t("msg.title") }} </span>
  </div>
</template>

 
<script setup>
import { getCurrentInstance } from "vue";
import { useI18n } from 'vue-i18n'
const { locale } = useI18n()

// 切换中文
function changeZh() { locale.value = 'zh' }
// 切换英文
function changeEn() { locale.value = 'en' }


const { $t } = getCurrentInstance().proxy;
// console.log($t("person.name")); // => 获取值
</script>
<style scoped lang='less'></style>

  • 参考博客

地址

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值