vue3 环境配置vue-i8n国际化

news2024/11/21 0:25:19

一.依赖和插件的安装

主要是vue-i18n和 vscode的自动化插件i18n Ally

https://vue-i18n.intlify.dev/

npm install vue-i18n@10
pnpm add vue-i18n@10
yarn add vue-i18n@10

vscode在应用商城中搜索i18n Ally:如图

二.实操

安装完以后在对应项目中的跟package.json同级的目录下建立对该i8n ally插件的设置,也可以设置为全局 在.vscode文件下新建setting.json配置如下:

{
	"i18n-ally.localesPaths": ["src/lang"], // 项目的翻译的储存路径
	// 如下须要手动配置
	"i18n-ally.keystyle": "nested", // 翻译路径格式 (翻译后变量格式 nested:嵌套式  flat:扁平式)
	"i18n-ally.sortKeys": true,
	"i18n-ally.namespace": true,
	"i18n-ally.enabledParsers": ["json"], // 翻译文件可允许的格式,默认json
	"i18n-ally.sourceLanguage": "zh", // 根据此语言文件翻译其他语言文件的变量和内容
	"i18n-ally.displayLanguage": "zh", // 显示语言
	"i18n-ally.extract.keygenStyle": "camelCase", // 翻译字段命名样式采用驼峰
	"i18n-ally.translate.engines": ["google"],
	"i18n-ally.enabledFrameworks": ["vue"],
	"i18n-ally.editor.preferEditor": true,
	"i18n-ally.extract.autoDetect": false
}

项目的语言国际化目录如图:

 

新建lang文件夹,新建en.json,zh.json,index.js

其中index.js是初始化vue-I18n的实例如下:

import { createI18n } from "vue-i18n";
import EN from "./en";
import ZH from "./zh";

const messages = {
	zh: {
		...ZH,
	},
	en: {
		...EN,
	},
};
const currentLang = window.sessionStorage.getItem("lang_IAP") || "zh";
const i18n = createI18n({
	locale: currentLang, // 设置当前语言类型
	legacy: false, // 如果要支持compositionAPI,此项必须设置为false;
	globalInjection: true, // 全局注册$t方法
	messages,
});

export default i18n;

 然后在main.ts中全局注册:

import i18n from "./lang";
import App from "./App.vue";


const app = createApp(App);


app.use(i18n);
app.mount("#app");

然后选中某个要翻译的vue单文件,在最左侧会出现一个关于i18n Ally插件的ui图标点击打开可以出现一个UI编辑器 对应的就是该vue单文件的文字解析如图:

需要知道两个功能一个是hard-coded,单击选择第一个生成对应的k-v值

第二个就是中文翻译成英文需要再下方确实的文案中选中 ,单击然后选择全部翻译如图:

此时就会自动在json中生成en.json,zh.json对应的k-v

自动捉取文字,翻译录入json,vue替换对应的语法就都自动完成了但是需要注意的vue单文件可能会报错,因为这个环境使用的是vue3而非vue2,所以$t可能找不到需要单独手动在每个vue单文件中 使用useFN去引出t函数:

import { useI18n } from "vue-i18n";
const { t } = useI18n();

至此大功告成!!! 希望学习的小伙伴也能成功,今天的学习就到这里啦

三.总结:

后续再总结,先发布一版哈哈

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

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

相关文章

谈谈英国论文写作复合句式的运用

每次在写英国论文的时候,为了力求表达准确,很多留学生会选择使用简单句型来完成整篇文章的写作。这样的写作虽然可以完整地表达论文的意思,但是只用简单句完成全文,可能在grammar部分的评分会比较低。因此学会运用复合句型也成为留…

QT中的按钮控件和comboBox控件和spinBox控件无法点击的bug

如图所示的.ui,执行却无法点击,需要删除布局,重新布局,并且QGroupBox放到后面。

每天五分钟深度学习pytorch:基于pytorch搭建一元线性回归模型

本文重点 前面我们学习了很多零散的知识,比如优化器,学习率,损失函数,反向传播参数计算等等,从本节课程起,我们将这些知识总结起来,本节课程我们看一下,如何才能通过pytorch搭建一元线性回归模型 什么是一元线性回归模型? 一元线性回归是只有一个自变量 (自变量x和…

RabbitMQ的相关题

一、 MQ的作⽤及应⽤场景 类似问题: 项⽬什么场景下使⽤到了MQ, 为什么需要MQ? RabbitMQ 的作⽤?使⽤场景有哪些? RabbitMQ…

python之with

with上下文管理是什么呢? 一般都是使用系统提供的一些with语句,列如我要去读取一些数据进行分析,就可以使用with open去读取某些数据,或者我要把一些图片给他保存到某些地方,可以用with给他写入。 上下午管理器with是…

墙绘艺术在线市场:SpringBoot实现指南

2 相关技术 2.1 SSM框架介绍 本课题程序开发使用到的框架技术,英文名称缩写是SSM,在JavaWeb开发中使用的流行框架有SSH、SSM、SpringMVC等,作为一个课题程序采用SSH框架也可以,SSM框架也可以,SpringMVC也可以。SSH框架…

精选算法入门——day1

题目一 题干 在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含…

【STM32单片机_(HAL库)】4-3-1【定时器TIM】串口打印功能打开

1.硬件 STM32单片机最小系统CH340模块 2.软件 main.c程序 #include "sys.h" #include "delay.h" #include "led.h" #include "uart1.h"int main(void) {HAL_Init(); /* 初始化HAL库 */stm32_clock_init(R…

常见的RTSP播放器有哪些?

VLC播放器 特点:VLC 是一款功能强大、跨平台的多媒体播放器,支持多种音频和视频格式以及流媒体协议,包括 RTSP。它具有广泛的解码器支持,能播放大多数常见的视频和音频格式。其开源特性使得它拥有活跃的开发者社区,不断…

【教学类-59-01】20241001双面五星红旗国旗(中2班)

背景需求: 国庆在即,怎么能不做一面五星红旗呢? 【教学类-39】A4红纸-国旗灯笼纸模(庆祝中华人民共和国成立74周年)_a4 打印 灯笼-CSDN博客文章浏览阅读626次。【教学类-39】A4红纸-国旗灯笼纸模(庆祝中华…

车辆重识别(注意力 U-Net:学习在哪些区域寻找胰腺)论文阅读2024/10/01

什么是注意力机制? 什么是加性注意力? 大致说一下流程: 对于一张特征图来说,对于这张图中的每一个像素向量(例如a),计算该向量与所有像素向量的相似度,对这些相似度进行激活函数…

nvm实现nodejs版本管理

nvm相关操作 1. nvm的作用2. 下载nvm之前的操作3. 下载nvm3.1 zip不同的名称区别 4. 验证是否安装成功5. 配置镜像,提高下载速度6. 安装nodeJS7. 查看目前已经安装的版本8.安装成功后npm无法使用9. 卸载指定node版本10. 切换node版本11.NVM常用命令 1. nvm的作用 nvm是一个方便…

24-10-1-读书笔记(二十一)-《契诃夫文集》(四)下([俄] 契诃夫 [译] 汝龙) 我爱你,娜坚卡。

文章目录 《契诃夫文集》(四)下([俄] 契诃夫 [译] 汝龙 )目录阅读笔记记录总结 《契诃夫文集》(四)下([俄] 契诃夫 [译] 汝龙 ) 十月第一篇,放假了,挺高兴的&…

如何使用SCCMSecrets识别SCCM策略中潜在的安全问题

关于SCCMSecrets SCCMSecrets是一款针对SCCM策略的安全扫描与检测工具,该工具旨在提供一种有关 SCCM 策略的全面安全检测方法。 该工具可以从各种权限级别执行,并将尝试发现与策略分发相关的潜在错误配置。除了分发点上托管的包脚本外,它还将…

螺狮壳里做道场:老破机搭建的私人数据中心---Centos下Docker学习01(环境准备)

1 准备工作 由于创建数据中心需要安装很多服务器,这些服务器要耗费很所物理物理计算资源、存储资源、网络资源和软件资源,作为穷学生只有几百块的n手笔记本,不可能买十几台服务器来搭建数据中心,也不愿意跑实验室,想躺…

信息安全数学基础(23)一般二次同余式

前言 信息安全数学基础中的一般二次同余式是数论和密码学中的一个重要概念,它涉及到了二次方程、模运算以及同余关系等多个方面。 一、定义 设m是正整数,a,b,c是整数,且a0,则形如ax2bxc≡0(modm)的同余式称为模m的二次同余式。…

Git傻傻分不清楚(上)

环境:Idea2022.3.3、Git(忘辽~) 怎么上传自己的项目到Github上? Idea和Github进行账号关联将项目上传到本地仓库(Commit)将本地仓库中的项目上传到Github上(Push) 一、关联账号 …

移动应用中提升用户体验的因素

用户体验(UX)是任何移动应用程序成功的关键因素。随着数以百万计的应用程序争夺注意力,提供无缝、愉快和高效的体验可能是获得忠实用户或在一次互动后失去忠实用户之间的区别。无论是商业应用程序、游戏还是社交平台,增强用户体验…

TypeScript 封装 Axios 1.7.7

随着Axios版本的不同,类型也在改变,以后怎么写类型? 1. 封装Axios 将Axios封装成一个类,同时重新封装request方法 重新封装request有几个好处: 所有的请求将从我们定义的requet请求中发送,这样以后更换…

WebRTC入门

主要参考资料: WebRTC 在 ESP32 系列硬件平台上的实现: https://www.bilibili.com/video/BV1AEHseWEda/?spm_id_from333.337.search-card.all.click&vd_sourcedd284033cd0c4d1f3f59a2cd40ae4ef9 火山 RTC豆包大模型,给用户体验装上银色子弹: https:…