我在 Zod 中遇到 i18n 问题。基本上,我有一个由react-hook-form和Zod处理的简单表单进行验证,但是当我更改区域设置时,错误消息似乎不会根据事件区域设置进行翻译。 如果有人可以帮助我使 zod 错误消息动态化。我正在使用 Next.js,next-i18next:
// my zod schema
import { z } from 'zod';
import { i18n } from 'next-i18next';
export const mailSchema = z.object({
email: z
.string({
invalid_type_error: i18n?.t('zod-errors.invalid_type_error') ?? '',
required_error: i18n?.t('zod-errors.required_error') ?? '',
})
.email(i18n?.t('zod-errors.email') ?? ''),
subject: z
.string({
invalid_type_error: i18n?.t('zod-errors.invalid_type_error') ?? '',
required_error: i18n?.t('zod-errors.required_error') ?? '',
})
.min(3, i18n?.t('zod-errors.min') ?? '')
.max(60, i18n?.t('zod-errors.max') ?? ''),
body: z
.string({
invalid_type_error: i18n?.t('zod-errors.invalid_type_error') ?? '',
required_error: i18n?.t('zod-errors.required_error' ?? ''),
})
.min(10, i18n?.t('zod-errors.min') ?? '')
.max(500, i18n?.t('zod-errors.max') ?? ''),
});
最佳答案
我有同样的问题,我找到了一个为 zod 错误消息提供自动翻译的库:
关于next.js - Zod 基于 Next.js 中事件区域设置的动态错误消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74769950/