Zod 国际化:让你的错误消息更友好
zod-i18n Useful for translating zod error messages. 项目地址: https://gitcode.com/gh_mirrors/zo/zod-i18n
在开发多语言应用时,错误消息的本地化是一个不可忽视的环节。Zod
是一个强大的 TypeScript 验证库,但在默认情况下,它的错误消息是英文的。为了让你的应用支持多语言,Zod Internationalization
项目应运而生。这个开源库可以帮助你轻松地将 Zod
的默认错误消息翻译成多种语言,让你的用户无论使用哪种语言,都能获得友好的错误提示。
项目介绍
Zod Internationalization
是一个用于翻译 Zod
默认错误消息的库。它基于 i18next
国际化框架,支持多种语言的翻译文件。通过简单的配置,你可以将 Zod
的错误消息翻译成你需要的语言,从而提升用户体验。
项目技术分析
技术栈
- Zod: 一个 TypeScript 验证库,用于定义和验证数据结构。
- i18next: 一个流行的国际化框架,支持多种语言和动态翻译。
- zod-i18n-map: 本项目的主要库,用于将
Zod
的错误消息映射到i18next
的翻译文件中。
核心功能
- 多语言支持: 内置了多种语言的翻译文件,包括中文、英文、西班牙语、法语等。
- 自定义错误消息: 支持自定义错误消息的翻译,适用于
refine
等高级用法。 - 命名空间支持: 可以通过命名空间来管理不同场景下的错误消息,例如表单验证和 API 验证。
- 路径处理: 支持在错误消息中包含对象路径,方便用户理解错误的来源。
项目及技术应用场景
应用场景
- 多语言 Web 应用: 适用于需要支持多语言的 Web 应用,特别是那些使用
Zod
进行数据验证的项目。 - 国际化 API: 如果你的 API 需要支持多语言的错误消息返回,
Zod Internationalization
可以帮助你轻松实现。 - 表单验证: 在表单验证中,用户可能会因为语言问题而难以理解错误提示,使用本库可以确保错误消息的本地化。
技术应用
- 动态翻译: 通过
i18next
的动态翻译功能,可以在运行时切换语言,无需重启应用。 - 自定义翻译: 支持自定义翻译文件,可以根据业务需求调整错误消息的表达方式。
- 集成
next-i18next
: 如果你使用的是 Next.js,可以轻松集成next-i18next
,实现全站的多语言支持。
项目特点
1. 简单易用
只需几行代码,即可将 Zod
的错误消息翻译成你需要的语言。无需复杂的配置,即可实现多语言支持。
import i18next from "i18next";
import { z } from "zod";
import { zodI18nMap } from "zod-i18n-map";
import translation from "zod-i18n-map/locales/es/zod.json";
i18next.init({
lng: "es",
resources: {
es: { zod: translation },
},
});
z.setErrorMap(zodI18nMap);
const schema = z.string().email();
schema.parse("foo"); // => correo inválido
2. 高度可定制
通过 makeZodI18nMap
函数,你可以对翻译进行详细的定制,包括命名空间、路径处理等。
z.setErrorMap(makeZodI18nMap({ ns: "formValidation" }));
z.string().parse(1); // => it is expected to provide string but you provided number
3. 丰富的语言支持
内置了多种语言的翻译文件,包括中文、英文、西班牙语、法语等。你也可以轻松添加新的语言翻译。
4. 社区支持
项目开源,欢迎社区贡献。如果你有新的语言翻译文件,可以通过 Pull Request 提交,帮助更多人受益。
结语
Zod Internationalization
是一个强大的工具,可以帮助你在多语言环境中轻松管理 Zod
的错误消息。无论你是开发 Web 应用、API 还是表单验证,它都能为你提供极大的便利。快来试试吧,让你的应用更加国际化!
GitHub 地址: Zod Internationalization
如果你有任何问题或建议,欢迎在 GitHub 上提交 Issue 或 Pull Request。让我们一起打造一个更加友好的国际化开发环境!
zod-i18n Useful for translating zod error messages. 项目地址: https://gitcode.com/gh_mirrors/zo/zod-i18n