next.js - Zod 基于 Next.js 中事件区域设置的动态错误消息

标签 next.js i18next zod

我在 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 错误消息提供自动翻译的库:

https://github.com/aiji42/zod-i18n

关于next.js - Zod 基于 Next.js 中事件区域设置的动态错误消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74769950/

相关文章:

javascript - 如何使用 Zod 的 isEmail?

reactjs - 类型错误 : Cannot read property 'theme' of undefined at runMicrotasks

javascript - 了解Next.js中next/image的优化过程

reactjs - 使用 nextjs 的 Monaco Editor

javascript - Gatsby i18next 插件 无法生成 codeFrame

reactjs - React zodResolver放置约束日期应该大于现在

reactjs - 如何在 NextJS 中向 Router.push 添加查询参数?

c# - Android 应用程序和 MySql 连接无法连接。打开

next.js - 仅使用 next-i18next 在服务器端添加翻译

reactjs - 如何在zod中制作自定义错误消息?