如何在Vue3中配置国际化语言i18n

1. 安装 vue-i18n

js 复制代码
npm i vue-i18n -S

2. 创建一个i8n的配置文件 如:i18nConfig.js

js 复制代码
// 配置 vue-i18n 实现国际化语言设置
import { createI19n } from 'vue-i18n'

import zh_cn from '../language/zh-CN'
import en_us from '../language/en-US'
import CONFIG from '../../confing'

const messages = {
	// 目前只配置了中英两种语言
	'zhCn': zh_cn,
	'en': en_US
}

const lang = CONFIG.locale

const i18n = createI18n({
	legacy: false,
	locale: lang, // 选择使用哪种语言
	messages
})

export default i18n

3. 新建语言文件 zh-CN.js 和 en-US.js

  • zh-CN.js 文件
js 复制代码
// zh-CN.js 文件
const zh = {
	hello: '你好',
	// 根据业务需要,还可以分组规划,让代码更清晰
	homeModule: {
		hi: '嗨'
	}
}

export default zh
  • en-US.js 文件
js 复制代码
// en-US.js 文件
const en = {
	hello: 'hello',
	// 根据业务需要,还可以分组规划,让代码更清晰
	homeModule: {
		hi: 'hi'
	}
}

export default en
  • CONFIG.js 文件
js 复制代码
// CONFIG.js 文件
const CONFIG = {
	locale: 'zhCN' // zhCn ------ 中文,en ------ 英文
}

export default CONFIG

4. 在 main.js 里面全局配置

js 复制代码
// main.js 文件
......
import i18n from '../src/language/i18nConfig'
......

app.use(i18n)

......

通过上面四步即可配置完毕

下面说一下如何使用,分三种情况

  1. 在 .vue 组件中的 template 使用
html 复制代码
<template>
	<div>{{ $t('hello') }}</div>
	<div>{{ $t('homeModule.hi') }}</div>
</template>
  1. 在 .vue 组件中的 script 中使用
js 复制代码
<script setup>
	const instance = getCurrentInstance() // 获取当前组件实例
	const $t = instance.appContext.config.globalProperties.$t
	console.log($t('hello'))
	console.log($t('homeModule.hi'))
</script>
  1. 在 .js 文件中使用
js 复制代码
import i18n from '/src/language/i18nConfig'
const $t = i18n.global.t
console.log($t('hello'))
console.log($t('homeModule.hi'))

本文到此便已经记录完毕,仅作为对工作中遇到的一些问题的记录,方便后面翻看,如有大佬有更好的方法,感谢不吝赐教!!!

相关推荐
叫我阿柒啊3 小时前
从Java全栈到前端框架的全面实战:一次真实面试的深度解析
java·spring boot·缓存·微服务·消息队列·vue3·rest api
叫我阿柒啊5 小时前
从Java全栈到Vue3实战:一次真实面试中的技术探索
java·数据库·spring boot·微服务·typescript·vue3·restful
叫我阿柒啊1 天前
从Java全栈到前端框架:一位程序员的实战之路
java·spring boot·微服务·消息队列·vue3·前端开发·后端开发
叫我阿柒啊1 天前
从Java全栈到云原生:一场技术深度对话
java·spring boot·docker·微服务·typescript·消息队列·vue3
叫我阿柒啊1 天前
从Java全栈到Vue3实战:一次真实面试的深度复盘
java·spring boot·微服务·vue3·响应式编程·前后端分离·restful api
叫我阿柒啊2 天前
从Java全栈到前端框架:一次真实的面试对话
java·spring boot·微服务·前端框架·vue3·全栈开发
叫我阿柒啊2 天前
Java全栈开发工程师面试实战:从基础到微服务的完整技术演进
java·spring boot·微服务·前端框架·vue3·全栈开发·面试技巧
某公司摸鱼前端3 天前
一键 i18n 国际化神库!适配 Vue、React!
前端·vue.js·react.js·i18n
Lsx-codeShare3 天前
前端数据可视化:基于Vue3封装 ECharts 的最佳实践
前端·javascript·echarts·vue3·数据可视化
叫我阿柒啊3 天前
从全栈开发到微服务架构:一位Java工程师的实战经验分享
java·ci/cd·kafka·mybatis·vue3·springboot·fullstack