vue3项目国际化,你还不了解吗?

news2025/1/18 10:42:07

vue3使用的国际化库为:i18n
安装方式:

npm install vue-i18n@next

安装完成后在src文件夹下新建lang文件夹
在这里插入图片描述
lang文件夹下新建需要语言转换的文件夹,这里以中文zh英文en举例,在这两个文件夹下新建需要转换的语言
在这里插入图片描述
zhindex.ts中写好我们需要转换的语言
在这里插入图片描述
enindex.ts也是一样的
在这里插入图片描述
lang文件夹下新建index.ts文件,在该文件下引入刚才的建立的语言包,配置需要使用的默认语言
在这里插入图片描述

// lang -> index.ts
import { createI18n } from 'vue-i18n'
import zh from './zh' 
import en from './en'


/* 这里必须是messages名称 */
const messages = {
    'zh-US' : zh,
    'en-US' : en
}

const i18n = createI18n({
    legacy: false,         // 使用 Composition API 模式,则需要将其设置为false
    globalInjection: true, //全局生效$t
    locale: 'zh-US',          // 默认使用的语言
    messages,  // 使用数据源
})

export { i18n }

main.ts文件下导入并挂载i18n

import { createApp } from "vue";
import "./style.css";
import App from "./App.vue";
import router from "./router/index";

// 引入国际化
import { i18n } from './lang/index'

const app = createApp(App)

/* globalProperties一个用于注册能够被应用内所有组件实例访问到的全局属性的对象。 */
app.config.globalProperties.$i18n = i18n; 

app
.use(router)
.use(i18n)  // 挂载i18n
.mount("#app")

main文件设置好后,我们就可以在页面使用了,页面的使用方法:

<div>
	<el-switch
	    v-model="lang"
	    inline-prompt
	    style="--el-switch-on-color: #13ce66; --el-switch-off-color: #97a0ff"
	    active-text=""
	    inactive-text=""
	    @change="languageChange"
	/>
	<!-- 在页面中使用,这里对应的是语言包中的对象,此处可以使用模板字符串 -->
	<span>{{  t('navUtil.loginText')  }}</span>
</div>
import { useI18n } from "vue-i18n";

const { t } = useI18n();
const lang = ref(true);  // 开关,语言状态切换

/* getCurrentInstance()可以用来获取当前组件实例 */
let current = getCurrentInstance()?.appContext.config.globalProperties as any;

// 根据状态,切换国际化
const languageChange = (val : boolean) => {
  // false英 true中,此处的zh-US就是lang -> index.ts -> messages对象的键名
  val ? current.$i18n.locale = 'zh-US' : current.$i18n.locale = 'en-US'
}

在这里插入图片描述
在这里插入图片描述


如果是后台返回的菜单数据,我们需要根据菜单数据的键做语言处理,例如这样的
在这里插入图片描述
首先需要在lang对应的中英文文件夹下新增语言配置,由于后台返回的键名都是一样的,我们可以使用 键+id 的方法让这些键保持独立,例如:
在这里插入图片描述
菜单一般都是遍历出来的,在页面中用模板字符串拼接id即可

<span>{{ t(`menu.authName${item.id}`) }}</span>

如果觉得这篇文章对你有帮助,欢迎点赞👍、收藏💖、转发✨哦~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/532641.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

掌握ZBrush的19个建模技巧,让你的雕刻作品更逼真

ZBrush 是一个数字雕刻和绘画软件&#xff0c;它以强大的功能和直观的工作流程彻底改变了整个三维行业&#xff0c;按照世界领先的特效工作室和全世界范围内的游戏设计者的需要&#xff0c;以一种精密的结合方式开发成功的&#xff0c;它提供了极其优秀的功能和特色&#xff0c…

精简70%、内存不到1G,可以装在显卡上的Win11来了

Win11 经历了一两年的更新&#xff0c;现在有了许多 Win10 没有的功能特性。 但其中某些用不上的功能也让 Win11 显得臃肿甚至卡顿及各种谜之 Bug 。 对于配置较低或者有「洁癖」的用户来说&#xff0c;可能还在死守官方精简 Win10 LTSC 长期服务版。 Win11 LTSC 尚未发布&am…

Policy Gradient策略梯度算法详解

1. 基本思想 Policy Gradient策略梯度&#xff08;PG&#xff09;&#xff0c;是一种基于策略的强化学习算法&#xff0c;不少帖子会讲到从基于值的算法&#xff08;Q-learning/DQN/Saras&#xff09;到基于策略的算法难以理解&#xff0c;我的理解是两者是完全两套思路&#…

S32K144低功耗休眠与唤醒实践总结

在做车载项目时&#xff0c;模块在常供电时需要维系随时可以被唤醒工作的状态&#xff0c;并且静态电流需要在3mA以内&#xff0c;当然在JTT1163标准中要求的是5mA以内。 目标明确了&#xff0c;在模块休眠时需要关闭一切不必要的资源消耗&#xff0c;只保留模块被唤醒的部分功…

K8S中master节点部署Pod处于Pending状态

查询一下pod信息&#xff1a; kubectl get pods -n kubernetes-dashboard根据name查看详细信息&#xff1a; kubectl describe pod dashboard-metrics-scraper-5b59d4bc6b-rxgqb -n kubernetes-dashboard这一句提示&#xff1a; Warning FailedScheduling 7s (x21464 ov…

Java进阶-查找算法

常见的七种查找算法&#xff1a; 1. 基本查找 ​ 也叫做顺序查找 ​ 说明&#xff1a;顺序查找适合于存储结构为数组或者链表。 基本思想&#xff1a;顺序查找也称为线形查找&#xff0c;属于无序查找算法。从数据结构线的一端开始&#xff0c;顺序扫描&#xff0c;依次将遍…

2023年5月北京/南京/西安/深圳DAMA-CDGA/CDGP数据治理认证报名

6月18日DAMA-CDGA/CDGP数据治理认证考试开放报名中&#xff01; 考试开放地区&#xff1a;北京、上海、广州、深圳、长沙、呼和浩特、杭州、南京、济南、成都、西安。其他地区凑人数中… DAMA-CDGA/CDGP数据治理认证班进行中&#xff0c;报名从速&#xff01; DAMA认证为数据管…

ARM-处理器模式(二)

文章目录 ARM 处理器模式工作模式模式切换内核寄存器R13_modeR14_modePC 各个模式对应的内核寄存器模式切换代码实现使用 mrs/msr 指令使用 cps 指令 ARM 处理器模式 ARMv7-a 处理器共有 9 种工作模式 工作模式 User&#xff1a;用户模式&#xff0c;非特权模式&#xff0c;大…

如果你想申请国家级高新技术企业

你必须首先满足国家支持的八大高新技术领域&#xff1a; 一、电子信息 二、生物学与新医学 三、航空航天 四、新材料 五、高科技服务业 六、新能源与节能 七。资源与环境 八、先进制造和自动化 如果您满足这八个领域中的一个&#xff0c;您就有资格申请高新技术企业。 …

有了 IP 地址,为什么还要用 MAC 地址?

MAC地址等价于快递包裹上的收件人姓名。 MAC地址更多是用于确认对方信息而存在的。就如同快递跨越几个城市来到你面前&#xff0c;快递员需要和你确认一下收件人是否正确&#xff0c;才会把包裹交给你一样。 IP66在线查IP地址位置&#xff1a;https://www.ip66.net/?utm-sour…

Bean基础配置?实例化方式?生命周期?

文章目录 1 bean基础配置1.1 bean基础配置(id与class) 1 bean基础配置1.1 bean基础配置(id与class)1.2 bean的name属性1.2 bean的name属性步骤1&#xff1a;配置别名步骤2: 根据名称容器中获取bean对象步骤3: 运行程序 1.3 bean作用范围scope配置(单例/非单例)1.3.1 验证IOC容器…

案例8:Java交易商城网站设计与实现开题报告

博主介绍&#xff1a;✌全网粉丝30W,csdn特邀作者、博客专家、CSDN新星计划导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精彩专…

如何判断自己是否适合做项目管理?

如何转做项目管理&#xff1f;如何判断自己是否适合做项目管理&#xff1f;我们可以从项目管理的思维、能力、工具、书籍阅读四个方面入手—— 1.项目管理的思维 &#xff08;1&#xff09;系统思考 项目管理需要从一个系统的角度来看待问题&#xff0c;将复杂的项目分解为小…

CAD功能库CAD DLL v15 2023最新上线!改进3D格式文件

CAD DLL是一个为开发者打造的新版本CAD库&#xff0c;可在支持动态链接库技术的语言中添加CAD功能到应用程序中。 很高兴与大家分享&#xff0c;CAD Dll迎来了久违的更新&#xff0c;更新至v15&#xff0c;3D改进&#xff0c;还改进了 DWG 和 DXF 格式的导入&#xff0c;除此之…

商场地图怎么画最简单?商场导视图怎么做?

商场购物中心超大的经营规模能为广大顾客提供购物选择的同时&#xff0c;也面临着许多问题&#xff1a;购物体验差&#xff0c;顾客到店率低。以及数据缺失&#xff0c;无法为商家做营销决策提供依据等等&#xff0c;那么&#xff0c;如何快速提升商场店铺运营效果&#xff0c;…

指定日本|在读博士生获CSC资助赴日本全球环境战略研究所联合培养

R同学的学术背景较弱&#xff0c;虽参与过导师的项目&#xff0c;但自己没有相关文章发表。拟申请CSC联培项目&#xff0c;研究方向为农业经济可持续发展&#xff0c;指定日本并希望合作导师的研究与此相关联。最终我们用日本全球环境战略研究所&#xff08;IGES&#xff09;的…

关于多维图形在2D平面投影的个人理解

网上有很多关于多维空间的描述&#xff0c;这里分享一下我的个人理解 假设在二维空间中有两个图形&#xff0c;三角形、四边形&#xff0c;画面如下 以如下规律在三维空间展开 对于三角形&#xff0c;在三维空间中添加一点&#xff0c;和其连接&#xff0c;使得每个面都为三角…

盘点国产BI软件中,那些电商数据分析功能

老牌国产BI软件基本都是适用于所有行业&#xff0c;会为各行各业的提供智能数据可视化分析功能板块&#xff0c;那么&#xff0c;老牌国产BI软件之一的奥威BI软件又为电商数据分析提供了哪些功能板块&#xff0c;效果怎样&#xff1f; 1、提供标准化跨境电商分析方案 这套跨境…

高通Android 11 audio:音频服务创建以及播放的流程

1、音频服务初始化流程 当前版本:高通 Android 11 大致的创建流程如下: 经过上面的流程系统音频服务已经启动处于待命状态,如果有应用需要播放则会通过服务最终选择合适的硬件将声音播出,接下来按照上面的流程进行进一步的细分。 1.1 开机启动音频服务 音频服务在frame…

110. 平衡二叉树

110. 平衡二叉树 C代码&#xff1a;DFS int dfs (struct TreeNode* root) {if (NULL root) {return 0;}int leftDepth dfs(root->left);int rightDepth dfs(root->right);if (fabs(leftDepth - rightDepth) > 1 || leftDepth -1 || rightDepth -1) {return -1;}…