如何解决如何使用 next18-next 翻译 yup 错误?
如何使用 next18-next 翻译 yup 错误,因为它应该在服务器端呈现?
是否可以在 next18-next 翻译字符串中使用占位符?
解决方法
解决这个问题非常简单。
validate.ts:
export const setValidationTranslations = (t: TFunction) => {
const required = t("required");
const minString = t("min_string");
const maxString = t("max_string");
const emailValid = t("email_valid");
const minNumber = t("min_number");
const maxNumber = t("max_number");
setLocale({
mixed: {
required: required,},string: {
min: minString,max: maxString,email: emailValid,number: {
min: minNumber,max: maxNumber,});
};
export const schema = () => {
return object().shape({
email: string().email().required(),password: string().required().min(6),});
};
Page.tsx:
import {
setValidationTranslations,schema,} from "./validate";
function Page() {
const { t } = useTranslation("common");
setValidationTranslations(t);
...
}
common.json 带有默认 yup 文本:
{
"required": "${path} is a required field","email_valid": "${path} must be a valid email","min_string": "${path} must be at least ${min} characters","max_string": "${path} must be at most ${max} characters","min_number": "${path} must be greater than or equal to ${min}","max_number": "${path} must be less than or equal to ${max}"
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。