在vue和 js 、ts 数据中使用 vue-i18n,切换语言环境时,标签文本实时变化

我的项目需要显示两种语言(中文和英文),并且我想要切换语言时,页面语言环境会随之改变,目前发现,只能在vue中使用$t(‘’)的方式使用,但是这种方式只能在vue中使用,而我的菜单文件是定义在js中,在vue中遍历显示的,所以我开始尝试用标签代替我原本的字符串

我目前使用的vue-i18n版本是9

这是我原本的菜单列表,是直接显示中文文本
在这里插入图片描述

这是我的菜单栏页面,我想要点击切换之后,页面就能实时改变,
vue-i18n在vue文件中使用$t('')的方式时正常实时改变的,一切换语言,页面不能刷新就能随着改变,但是定义在js中的菜单文件就不同,它无法在js中使$t('')

在这里插入图片描述
这是我定义语言的两个文件en.js 和 zhHans.js
在这里插入图片描述
在这里插入图片描述

刚开始我尝试的方法是i18n.global.t('menuName.home') 的方式,但是我发现每次切换语言环境,都需要刷新页面才能显示,并不能实现我想要的效果,用i18n.global.t(‘menuName.home’)这种方式,切换语言环境时,vue中会实时变化,js文件中的不会
在这里插入图片描述
于是我就想到$t(' ')其实就相当于一个翻译函数,既然在js中使用i18n.global.t 首次是能正常翻译的,那我为何不将它封装成一个方法在vue页面中调用呢,毕竟它在vue中是响应变化的

普通vue页面使用官方方式$t('')即可
在这里插入图片描述


!!!在js中定义的字段就需要额外翻译一下,在vue中使用,这样就可以在修改语言环境时实时改变

1、 封装翻译函数

我封装在common-utils.js中的方法

// i18n 语言翻译处理
import i18n from '@/plugins/i18n'   //这是我的i18n.js路径,根据自己情况引入
export function translate(key) {return i18n.global.t(key)
}

2、vue页面中调用

<script setup>
//引入翻译方法
import {translate}from '@/utils/common-utils'
</script>

在遍历菜单的模板中需要动态语言的地方直接调用方法即可
在这里插入图片描述
当然,不要忘记把我们在js中定义的菜单将文本修改为关键标签

将原本固定的“我的主页”修改为我们自定义的menuName.home

在这里插入图片描述
这样就可以实现我切换语言环境后,页面就会实时的改变,无需刷新或其它操作
在这里插入图片描述

我这里只是针对js文件中定义的文本如何实现国际化 ,做一个记录,也帮助一下遇到同样问题的朋友

至于安装使用vue-i18n的步骤及其配置,其它教程或官网很清晰了,这里就不过多说明,

vue-i18n官网:https://vue-i18n.intlify.dev/guide/installation.html

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

O2OA开发平台如何查看数据表结构?

在访问后端api地址&#xff0c;页面最下方有列示平台的各个服务&#xff0c;点击进入可查看具体的表内容 后端api地址&#xff1a; http://{hostIP}/x_program_center/jest/list.html 其中&#xff1a;{hostIP}为中心服务器所在域名或者IP地址 如下图&#xff1a;

C++高级特性:万能引用、引用折叠与完美转发(七)

1、万能引用与引用折叠 1.1、普通引用 之前的学习中学习了左值、右值、左值引用、右值引用、常引用等&#xff0c;但是很可惜它们都必须搭配固定的类型导致它们受到一些限制 void test1() {int a 1, b 2;int& left_ref_var a; // int&& right_ref_var a; …

MuseV:不限视频时长的AI视频生成工具

在不久前 OpenAI Sora 以其优秀且惊人的视频生成效果迅速走红&#xff0c;更是在一众文生视频模型中脱颖而出&#xff0c;成为了文生视频领域的领头羊。 同时它也推动了行业内文生视频技术的发展。今天小编为大家分享一款新开源的文生视频项目MuseV&#xff0c;据说可以生成不…

书生·浦语大模型实战营之XTuner 微调个人小助手认知

书生浦语大模型实战营之XTuner 微调个人小助手认知 在本节课中讲一步步带领大家体验如何利用 XTuner 完成个人小助手的微调&#xff01; 为了能够让大家更加快速的上手并看到微调前后对比的效果&#xff0c; 用 QLoRA 的方式来微调一个自己的小助手&#xff01; 可以通过下面两…

stm32 之SPI通信协议

本文为大家介绍 SPI 通信协议的基础知识。 文章目录 前言一、SPI协议的概念二、SPI总线架构三、SPI通讯时序1. 起始&#xff0c;停止 信号2.CPOL&#xff08;时钟极性&#xff09;/CPHA&#xff08;时钟相位&#xff09; 四&#xff0c; I2C 总线 和SPI 总线比较相同点&#xf…

gym界面修改

资料&#xff1a;https://blog.csdn.net/weixin_46178278/article/details/135962782 在gym环境中使用mujoco的时候&#xff0c;有一个很难受的地方&#xff0c;界面上没有实时显示动作空间和状态空间状态的地方。 gym自己原始带的环境是用pygame画的图&#xff0c;所以在定义…

【PG-1】PostgreSQL体系结构概述

1. PostgreSQL体系结构概述 代码结构 其中&#xff0c;backend是后端核心代码&#xff0c;包括右边的几个dir: access&#xff1a;处理数据访问方法和索引的代码。 bootstrap&#xff1a;数据库初始化相关的代码。 catalog&#xff1a;系统目录&#xff08;如表和索引的元数据…

Errors were encountered while processing: /var/cuda-repo-ubuntu2004-12-0-local

问题描述 mac10-SYS-7048GR-TR:~$ sudo apt-get -y install cuda Reading package lists... Done Building dependency tree Reading state information... Done cuda is already the newest version (12.0.0-1). You might want to run apt --fix-broken install to co…

区块链游戏:探索未来的可能性与挑战

区块链游戏是一种将区块链技术应用于游戏领域的创新产品&#xff0c;它为游戏行业带来了全新的模式和可能性。本文将深入探讨区块链游戏的优点、挑战和未来趋势&#xff0c;帮助读者了解这一新兴领域。 一、区块链游戏的优点 1. 公平性&#xff1a;区块链技术保证了游戏中的物…

应急响应-CS流量分析心跳指令特征提取

知识点 战后-流量分析-CS 一、演示案例-流量分析-CS-HTTP/S协议-基础特征&源码特征 HTTP 1、基础特征&#xff1a;解密心跳请求 https://blog.didierstevens.com/didier-stevens-suite/ python 1768.py xxxx.vir2、请求特征&#xff1a; URL路径 下发指令 UA头&…

(笔记)KEIL经常碰到的错误(持续整理)

KEIL常碰到的错误 一、ERROR报错1、Build时报错 Error: L6218E2、Build时报错 error 653、Default Compiler Version 54、core_cm3.h(1213): error: unknown type name inline 二、调试与仿真1、keil5软件仿真没有实时波形2、调试模式时&#xff0c;程序前没有灰块3、Periphera…

微信小程序地图开发总结-规划路线

这是我做出来的自动规划效果&#xff0c;比较潦草 功能勉勉强强算是实现了的 在微信小程序中使用腾讯地图服务 虽然map组件使我们可以很方便的使用地图&#xff0c;但是map组件只提供了最基本的地图显示功能&#xff0c;同时&#xff0c;微信小程序提供的关于地图的API也只是提…