多语言配置指南
版本: v2.0.0-beta.1
最后更新: 2026-04-30
📚 多语言文档导航
根据你的需求选择合适的文档:
- 🚀 新手快速上手: i18n.md(当前文档)- 5分钟学会基础用法
- 📖 完整使用指南: i18n-user-guide.md - 详细的用户指南和最佳实践
- 🎯 添加新语言: add-custom-locale.md - 添加自定义语言包教程
- 🔄 动态切换语言: dynamic-locale.md - API开发中的动态语言切换
- 🌐 前端集成: frontend-i18n-guide.md - 前后端分离项目集成指南
📖 概述
schema-dsl 支持完整的多语言功能,允许你自定义字段标签和错误消息的翻译。
Node.js 要求:
>=18.0.0
目录加载(Node >=18)默认支持的语言文件格式:
.js(CommonJS 语言包).cjs.json.jsonc.json5
推荐:如果你的应用是
type: module/ ESM 项目,优先使用.cjs、.json、.jsonc、.json5;.js更适合 CommonJS 语言包文件。
v2 当前能力:
- ✅ 支持参数化语言切换(无需修改全局状态)
- ✅ 支持自定义错误消息(三种格式)
- ✅ TypeScript 类型定义完整
- ✅ 目录递归加载
.js/.cjs/.json/.jsonc/.json5
🚀 快速开始
方式1:验证时动态指定语言(推荐)⭐
方式2:使用全局配置(向后兼容)
📝 内置语言支持
schema-dsl 内置了以下语言包:
🎯 高级用法
基础配置
目录结构
📝 语言包格式
完整示例 (i18n/dsl/zh-CN.cjs)
🎯 使用方法
1. 字段标签翻译
2. 覆盖默认错误消息
3. 自定义错误消息
4. 动态语言切换
📋 内置错误消息键
通用错误
String 错误
Number 错误
Boolean 错误
Array 错误
Format 错误
Pattern 错误
完整列表请参考: src/locales/zh-CN.ts
🔧 高级用法
嵌套字段标签
错误消息优先级
- 字段级自定义消息 -
.messages()方法 - Schema级标签 -
.label()方法 - 语言包自定义消息 -
i18n配置 - 默认错误消息 - 内置语言包
多语言最佳实践
1. 目录结构
2. 导出工具 (i18n/dsl/index.cjs)
3. 消息复用
📊 完整示例
用户管理系统
🐛 常见问题
1. 语言包不生效?
检查清单:
- ✅ 配置键是否正确(
i18n而非locales) - ✅ 目录路径是否正确
- ✅ 文件名是否为语言代码(如
zh-CN.cjs/zh-CN.jsonc) - ✅
.js文件是否为 CommonJS(module.exports),若是 ESM 项目优先使用.cjs/.json*
2. 错误消息仍然是英文?
原因: 当前请求没有显式传入 locale,或全局默认语言尚未切到你期望的语言
3. 自定义消息不显示?
检查优先级:
.messages()>.label()> 语言包 > 默认
📚 相关文档
对应示例文件
示例入口: i18n.ts
说明: 覆盖内置 locale 切换、字段级消息优先级,以及自定义 locale 的最小工作路径。
文档生成时间: 2026-05-08
版本: v1.0.1