Vue3-- i18n国际化

1、安装

npm install vue-i18n

安装成功之后显示:

  

2、在项目的utils文件夹下,建一个文件夹lang,用来存放和国际化相关的代码文件。

注意如果用的是typescript,要将文件后缀由.js改为.ts

 i18n.js:配置i18n

import { createI18n } from 'vue-i18n'

// 引入各个语言配置文件: 定义对应几种语言的展示内容
import zh from './zh/index'
import en from './en/index'

const i18n = createI18n({
    legacy: false,
    locale: 'zh',
    messages: {
        zh,
        en
    }
})

export default i18n

zh/index.js:

export default {
    message: {
        homeText: '主页',
        mineText: '个人中心'
    }
}

en/index.js:

export default {
    message: {
        homeText: 'HOME',
        mineText: 'MY'
    }
}

3、项目中将i18n挂载到实例上

main.js:

import i18n from './utils/lang/i18n'


const app = createApp(App)
app.use(i18n)

4、组件中使用,点击按钮切换语言

i18nTest.vue

<template>
    <p>{{ t('message.homeText') }}</p>
    <el-button @click="toggle('zh')">点击切换中文</el-button>
    <el-button @click="toggle('en')">点击切换英文</el-button>
</template>
<script setup>
import { useI18n } from 'vue-i18n'

const { t } = useI18n()
// 核心思想就是改变useI18n解构出来的locale
const { locale: i18nLanguage } = useI18n()

const toggle = language => {
    i18nLanguage.value = language // zh en
}
</script>

5、如果控制台出现以下警告:

 翻译:您正在运行 vue-i18n 的 esm-bundler构建。建议将您的捆绑器配置为使用布尔文字显式替换功能标志全局变量,以便在最终捆绑包中进行适当的节点树。

解决方法:

在vite.config.js文件中加入这条才能解决,"vue-i18n": "vue-i18n/dist/vue-i18n.cjs.js"。

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值