当前位置: 首页 > article >正文

Vue3国际化开发实战:i18n-Ally + vue-i18n@next高效配置教程,项目中文显示

本文详解 Vue3 国际化开发全流程:从安装 vue-i18n@next 到配置多语言文件(JSON/YAML),结合 i18n-Ally 插件实现高效翻译管理。重点涵盖:

  1. 工程配置:创建 i18n 实例、模块化语言文件结构(支持命名空间)、注册至 Vue 应用。
  2. 插件优化:通过 settings.json 配置路径、键名风格、翻译引擎(Google/DeepL),实现代码内联翻译显示。
  3. 避坑指南:关闭只读模式、选择可编辑格式(避免 JS/TS)、路径与依赖校验。

一、安装vue-i18n

vue3项目需要安装 vue-i18n@next 版本 使用 vue3-i18n将无法使用i18n-Ally插件

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

二、vue3工程配置

1.创建i18n入口文件

//语言
import { lang } from '@/settings/designSetting'
import { createI18n } from 'vue-i18n' //引入vue-i18n组件
import zh from './zh/index'
import en from './en/index'const i18n = createI18n({legacy: false,globalInjection:true,locale: "ZH",fallbackLocale: "ZH",messages: {ZH: zh,EN: en}
})export default i18n

2.创建翻译文件.

推荐使用 YAML 和 JSON 格式,其他格式默认禁用。

i18n/en/login.json

{"desc": "Login","form_auto": "Sign in automatically","form_button": "Login","login_success": "Login success","login_message": "Please complete the letter"
}

i18n/zh/login.json

 {"desc": "登录","form_auto": "自动登录","form_button": "登录","login_success": "登录成功","login_message": "请填写完整信息"
}

i18n/zh/index.ts

import login from './login.json'
const global = {// 系统设置sys_set: '系统设置',contact: '关于软件',logout: '退出登录',
}export default {global,login
}

整体结构
请添加图片描述

3.main.js导入i18n依赖

import i18n from '@/i18n/index'
const app = createApp(App)// 语言注册app.use(i18n)// 挂载到页面app.mount('#app', true)

三、i18n-ally插件安装与配置

i18n是常见的语言国际化工具,但是在代码里查看的时候不能直接看到中文,往往需要去配置文件查看翻译内容。
这时候就需要vscode插件 i18n-Ally 来提高效率了

1. vscode插件市场搜索 i18n-Ally 并安装

请添加图片描述

2. settings.json配置

推荐将配置文件设置到.vscode/settings.json,当然也可以设置到vscode全局

这里我的i18n翻译文件路径是 src/i18n ,可以根据自己的文件路径修改。
我的文件路径是嵌套结构所以需要启用命名空间

"i18n-ally.keystyle": "nested", //nested 嵌套格式 flat 扁平格式
"i18n-ally.enabledFrameworks": ["vue", "vscode"], //启用框架
"i18n-ally.localesPaths": ["src/i18n"], //语言的文件路径
"i18n-ally.enabledParsers": ["ts","json"], //自动解析路径
"i18n-ally.namespace": true, //启用命名空间
"i18n-ally.sortKeys": true, //启用排序
"i18n-ally.pathMatcher": "{locale}/{namespaces}.{ext}", //文件命名规则
"i18n-ally.sourceLanguage": "zh",   // 源语言
"i18n-ally.displayLanguage": "zh-CN", // 显示语言

没用嵌套文件可以使用以下配置文件 文件路径示例:src/lang
请添加图片描述

"i18n-ally.keystyle": "nested", //nested 嵌套格式 flat 扁平格式
"i18n-ally.localesPaths": ["src/lang"], //语言的文件路径
"i18n-ally.enabledParsers": ["ts","json"], //自动解析路径
"i18n-ally.sourceLanguage": "zh",   // 源语言
"i18n-ally.displayLanguage": "zh-CN", // 显示语言

配置完就可以在项目工程文件里看到默认显示的翻译内容
请添加图片描述

四、常见问题

1. 插件处于只读模式

i18n-Ally 默认启用了 readonly 配置,或相关语言文件被设置为只读状态,导致无法自动填充缺失的翻译字段 。
在 .vscode/settings.json 中添加或修改以下配置:

{"i18n-ally.readonly": false  // 关闭只读模式
}
确保该文件位于项目根目录的 .vscode 文件夹下 。

2. 文件格式不支持写入

i8n-Ally插件支持格式如下,若语言文件格式为 JavaScript/TypeScript 等只读格式,插件无法直接修改文件内容

FormatReadWriteAnnotationsNote
JSON
YAMLComments will NOT be preserved*
JSON5Comments will NOT be preserved*
INIComments will NOT be preserved*
propertiesComments will NOT be preserved*
POT
JavaScriptRead-only
TypeScriptRead-only
PHPRead-only

3. 配置文件路径错误

.vscode/settings.json 未放置在项目根目录(与 package.json 同级),导致配置未生效。
settings.json只能管理项目一级,不能多层项目嵌套,同时应用多个项目。

4. 依赖未正确安装

项目中未安装 vue-i18n 插件功能受限, 使用vue3-i18n 会导致插件无效。

五、参考资料

基础配置模板(settings.json)

// .vscode/settings.json
{// 基础路径与文件格式"i18n-ally.localesPaths": ["src/locales"],  // 语言文件目录,支持数组和通配符"i18n-ally.enabledParsers": ["json", "yaml"],  // 可编辑文件格式(JSON/YAML支持读写注释)"i18n-ally.pathMatcher": "{locale}/{namespaces}.{ext}",  // 文件路径匹配规则(支持命名空间)// 翻译核心设置"i18n-ally.sourceLanguage": "zh-CN",  // 源语言(翻译基准)"i18n-ally.translate.engines": ["google-cn", "deepl"],  // 翻译引擎(顺序优先)"i18n-ally.keepFulfilled": true,  // 自动填充空字符串避免字段缺失// 键名结构与显示优化"i18n-ally.keystyle": "nested",  // 键名风格(nested嵌套 / flat平铺)"i18n-ally.displayLanguage": "zh-CN",  // 代码内联提示的显示语言"i18n-ally.sortKeys": true,  // 保存时按键名排序(仅JSON/YAML有效)// 框架适配与扩展"i18n-ally.enabledFrameworks": ["vue"],  // 手动指定适配框架(如Vue/React)"i18n-ally.namespace": true,  // 文件名映射为命名空间(如en/common.json → $t('common.key'))"i18n-ally.readonly": false  // 关闭只读模式以启用编辑
}

常用语言

Language stringDescription
zh-CN中文(简体)
zh-TW中文(繁体)
en英语
en-us英语(美国)
ja日语
ko韩语
pt葡萄牙语
th泰国语

相关文章:

Vue3国际化开发实战:i18n-Ally + vue-i18n@next高效配置教程,项目中文显示

本文详解 Vue3 国际化开发全流程:从安装 vue-i18nnext 到配置多语言文件(JSON/YAML),结合 i18n-Ally 插件实现高效翻译管理。重点涵盖: 工程配置:创建 i18n 实例、模块化语言文件结构(支持命名…...

深入理解Spring @Async:异步编程的利器与实战指南

一、为什么需要异步编程? 在现代高并发系统中,同步阻塞式编程会带来两大核心问题: // 同步处理示例 public void processOrder(Order order) {// 1. 保存订单(耗时50ms)orderRepository.save(order); // 2. 发送短信…...

java后端开发day25--阶段项目(二)

(以下内容全部来自上述课程) 1.美化界面 private void initImage() {//路径分两种://1.绝对路径:从盘符开始写的路径 D:\\aaa\\bbb\\ccc.jpg//2.相对路径:从当前项目开始写的路径 aaa\\bbb\\ccc.jpg//添加图片的时…...

Python接口自动化中操作Excel文件的技术方法

在Python接口自动化测试中,操作Excel文件是一项常见且关键的技术需求。Excel作为数据存储和数据分析的重要工具,在自动化测试中通常用于存储测试用例、测试数据以及测试结果。通过Python操作Excel,可以大大提高测试的效率和灵活性。以下是一些…...

几道考研数学题求解

函数性质问题 【题目】 已知函数 f ( x , y ) x 3 y 3 − ( x y ) 2 3 f(x, y) x^3 y^3 - (xy)^2 3 f(x,y)x3y3−(xy)23。设 T T T 为曲面 z f ( x , y ) z f(x, y) zf(x,y) 在点 ( 1 , 1 , 1 ) (1,1,1) (1,1,1) 处的切平面, D D D 为 T T T 与坐标…...

如何在Spring Boot项目中集成JWT实现安全认证?

在Spring Boot项目中集成JWT实现安全认证是常见的需求。本文将详细介绍如何在Spring Boot项目中集成JWT,并通过一个完整的示例演示如何实现安全认证。 一、环境准备 首先,确保你的Spring Boot项目已经创建。然后,添加以下依赖到pom.xml文件…...

【 开发知识点 一 】 随机数生成器 /dev/urandom 和 /dev/random

文章目录 一、随机数生成器 是什么 ?二、为什么 需要 随机数生成器 ?三、随机数生成器 基本原理四、随机数生成器 三个输出接口五、随机生成器 应用1、简单应用2、项目应用一、随机数生成器 是什么 ? /dev/random 和 /dev/urandom 是 Linux 上的字符设备文件,它们是随机数…...

Python可视化大框架的研究与应用

## 摘要 随着数据科学和人工智能的快速发展,数据可视化成为了数据分析中不可或缺的一部分。Python作为一种功能强大且易于学习的编程语言,提供了多种可视化工具和库。本文旨在探讨Python可视化的主要框架,分析其特点、应用场景以及未来发展趋…...

Django ORM 的常用字段类型、外键关联的跨表引用技巧,以及 `_` 和 `__` 的使用场景

一、Django ORM 常用字段类型 1. 基础字段类型 字段类型说明示例CharField字符串字段,必须指定 max_lengthname models.CharField(max_length50)IntegerField整数字段age models.IntegerField()BooleanField布尔值字段is_active models.BooleanField()DateFiel…...

(动态规划 最长递增的子序列)leetcode 300

这道题我第一眼反应就是暴力,但是暴力的话就是n*n-1*n-2*...n-(n-1) 也就是O(n^n)dfs做绝对超时 贪心也不行,这里是子序列,要考虑在ni的范围内考虑多种路线取最优,所以用动态规划 如何用动态规划呢? 答:…...

小皮网站搭建

前提:小皮的安装下载 1、在www目录下创建一个新的文件夹,用来存放网站源码; 2、安装数据库管理工具phpMyadmin 3、新建数据表 添加字段 4、创建网站 5、前端的登录代码 注册 后端php 网页展示 登录成功跳转welcome.php...

3.16 AI Agent 技术全景解析:从核心能力到企业级应用实践

AI Agent 技术全景解析:从核心能力到企业级应用实践 关键词:AI Agent 技术架构, 大模型智能体开发, 自主决策系统设计, 模块化 Agent 设计, 企业级 Agent 应用 1. AI Agent 的本质定义与核心能力 AI Agent 是具备环境感知、自主决策和持续进化能力的智能系统,其核心特征可…...

【CSS—前端快速入门】CSS 常用样式

CSS 常用 CSS 样式 1. 前端样式查询网站: MDN Web Docs (mozilla.org) w3school 2. border 2.1 借助 MDN 了解 border 我们借助 MDN 网站来学习 border 样式的使用: 2.2 border 常见属性 保存代码,打开页面: 对于标签不同样式的…...

(七)消息队列-Kafka 序列化avro(传递)

(七)消息队列-Kafka 序列化avro(传递) 客从远方来,遗我双鲤鱼。呼儿烹鲤鱼,中有尺素书。 ——佚名《饮马长城窟行》 本文已同步CSDN、掘金平台、知乎等多个平台,图片依然保持最初发布的水印&…...

springboot使用redis

springboot使用redis redis-service.exe : 服务端,启动后不要关闭 redis-cli.exe : 客户端,访问redis中的数据 redisclient-win32.x86_64.2.0.jar : redis的图形界面客户端,执行方式是在这个文件的目录执行 java -jar redisclient-win32.x86_64.2.0.jar或者在这个jar包的目录…...

【原创】Open WebUI 本地部署

使用官网的默认部署,遇到不少的问题。比如白屏问题,其实需要修改几个参数即可。 其实在部署的时候有不少参数 WEBUI_AUTH False ENABLE_OPENAI_API 0 PATH /usr/local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin LANG C.UTF-8…...

【实战篇】【深度解析DeepSeek:从机器学习到深度学习的全场景落地指南】

一、机器学习模型:DeepSeek的降维打击 1.1 监督学习与无监督学习的"左右互搏" 监督学习就像学霸刷题——给标注数据(参考答案)训练模型。DeepSeek在信贷风控场景中,用逻辑回归模型分析百万级用户数据,通过特征工程挖掘出"凌晨3点频繁申请贷款"这类魔…...

SpringBoot高校运动会管理系统 附带详细运行指导视频

文章目录 一、项目演示二、项目介绍三、运行截图四、主要代码1.报名赛事代码2.用户登录代码3.保存成绩代码 一、项目演示 项目演示地址: 视频地址 二、项目介绍 项目描述:这是一个基于SpringBoot框架开发的高校运动会管理系统项目。首先,这…...

【Linux网络-HTTP协议】HTTP基础概念+构建HTTP

代码定位:南毅c/Linux - Gitee.com HTTP协议 介绍 虽然我们说,应用层协议是我们程序猿自己定的.但实际上,已经有大佬们定义了一些现成的,又非常好用的应用层协议,供我们直接参考使用。HTTP(超文本传输协议)就是其中之一。 在互联网世界中&#xff0c…...

web3.0简介

Web3.0(或简称 Web3)是近年来广泛讨论的一个新型互联网概念,其核心思想在于利用区块链及相关分布式技术,打造一个更加开放、去中心化、透明且以用户为主导的网络生态系统。这意味着在 Web3.0 时代,用户不再只是信息的消…...

高频 SQL 50 题(基础版)_626. 换座位

高频 SQL 50 题(基础版)_626. 换座位 select(case when mod(id,2)!0 AND counts ! id then id1when mod(id,2)!0 AND counts id then idelse id -1end) as id,student fromseat,(selectcount(*) as countsfrom seat) as seat_counts order by id asc;...

hive 面试题

Hive基础概念 1.1 Hive是什么? 基于Hadoop的数据仓库工具,支持类SQL(HiveQL)查询,底层转换为MapReduce/Tez/Spark任务。 核心功能:数据ETL、查询、分析;定位:OLAP(分析…...

【Jenkins】个人向-Jenkinsfile如何写

官方参考:https://www.jenkins.io/doc/book/pipeline/syntax/ Pipeline Utility Steps 插件:https://birdbook.com.cn/ops/ci/jenkins/plugins/pipeline%20utility%20steps.html 常用环境变量 含义表达式备注params,传入参数传入参数params…...

python第十一课:并发编程 | 多任务交响乐团

🎯 本节目标 理解多线程/多进程/协程的应用场景掌握threading与multiprocessing核心用法学会使用asyncio进行异步编程开发实战项目:高并发爬虫引擎破解GIL锁的性能迷思 1️⃣ 并发编程三剑客 🎻 生活化比喻: 多线程 → 餐厅多个…...

Android SystemUI深度定制实战:下拉状态栏集成响铃功能开关全解析

一、功能实现全景视图 目标场景:在Android 14系统级ROM定制中,为SystemUI下拉状态栏的QuickQSPanel区域新增响铃模式切换开关,实现静音/响铃快速切换功能。该功能需通过三层关键改造实现: 二、核心实现三部曲 1. 配置注入&…...

基于 Flink CDC YAML 的 MySQL 到 Kafka 流式数据集成

本教程的演示都将在 Flink CDC CLI 中进行,无需一行 Java/Scala 代码,也无需安装 IDE。 这篇教程将展示如何基于 Flink CDC YAML 快速构建 MySQL 到 Kafka 的 Streaming ELT 作业,包含整库同步、表结构变更同步演示和关键参数介绍。 准备阶段…...

ubuntu下r8125网卡重启丢失修复案例一则

刚装的一台服务器,ubuntu24.04,主板网卡是r8125,安装服务后会莫名其妙丢失驱动 按照官网的方法下载最新8125驱动包: Realtek 然后卸载驱动 rmmod r8125 然后在驱动包里安装(幸好我之前装了build-essential&#x…...

解决 ERROR 1130 (HY000): Host is not allowed to connect to this MySQL server

当使用 MySQL 时,您可能会遇到错误信息“ERROR 1130 (HY000): Host ‘hostname’is not allowed to connect to this MySQL server”这是 MySQL 用于防止未经授权的访问的标准安全特性。实际上,服务器还没有配置为接受来自相关主机的连接。 Common Caus…...

科普|无人机专业术语

文章目录 前言一、飞控二、电调三、通道四、2S、3S、4S电池五、电池后面C是什么意思?六、电机的型号七、什么是电机的KV值?八、螺旋桨的型号九、电机与螺旋桨的搭配 前言 无人机飞控系统控制飞行姿态,电调控制电机转速,遥控器通道控制飞行动作。电池C…...

Qt:窗口

目录 菜单栏 QMenuBar 菜单添加快捷键 添加子菜单 添加分割线和添加图标 QMenuBar创建方式 工具栏 QToolBar 和菜单栏搭配 创建多个工具栏 状态栏 QStatusBar 状态栏中添加其他控件 浮动窗口 QDockWidget 对话框 对话框的内存释放问题 自定义对话框界面 模态对话…...