-
Notifications
You must be signed in to change notification settings - Fork 21
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
3 changed files
with
102 additions
and
74 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,3 @@ | ||
// Jest Snapshot v1, https://goo.gl/fbAQLP | ||
|
||
exports[`locale 中文-自定义label 1`] = `"id必须是一个数字"`; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,77 +1,84 @@ | ||
/* istanbul ignore file */ | ||
import { yup } from '../yup' | ||
|
||
export const zhCN: yup.Locale = { | ||
mixed: { | ||
default: ({ label }) => `${label || '此项'}错误`, | ||
required: ({ label }) => `${label || '此项'}必填`, | ||
oneOf: ({ label, values }) => | ||
`${label || '此项'}必须是下列值之一: ${values}`, | ||
notOneOf: ({ label, values }) => | ||
`${label || '此项'}必须不是下列值之一: ${values}`, | ||
defined: ({ label }) => `${label || '此项'}必须已定义`, | ||
notType: ({ label, type }) => | ||
`${label || '此项'}必须是一个${ | ||
type === 'number' | ||
? '数字' | ||
: type === 'string' | ||
? '字符串' | ||
: type === 'boolean' | ||
? '布尔值' | ||
: type === 'object' | ||
? '对象' | ||
: type === 'array' | ||
? '数组' | ||
: type === 'date' | ||
? '日期' | ||
: ` ${type} 类型的值` | ||
}`, | ||
}, | ||
string: { | ||
length: ({ label, length }) => | ||
`${label || '此项'}必须仅包含${length}位字符`, | ||
min: ({ label, min }) => `${label || '此项'}至少应包含${min}位字符`, | ||
max: ({ label, max }) => `${label || '此项'}最多可包含${max}位字符`, | ||
matches: ({ label, regex }) => | ||
`${label || '此项'}必须匹配该正则表达式: ${regex}`, | ||
email: ({ label }) => `${label || '此项'}必须是一个合法的邮箱`, | ||
url: ({ label }) => | ||
`${label || '此项'}必须是一个以 http:// 或 https:// 开头的网络链接`, | ||
trim: ({ label }) => `${label || '此项'}必须是一个没有旁白的字符串`, | ||
lowercase: ({ label }) => `${label || '此项'}必须是一个小写的字符串`, | ||
uppercase: ({ label }) => `${label || '此项'}必须是一个大写的字符串`, | ||
chineseMobilePhoneNumber: ({ label }) => | ||
`${label || '此项'}必须是一个合法的手机号码`, | ||
chineseIDCardNumber: ({ label }) => | ||
`${label || '此项'}必须是一个合法的身份证号码`, | ||
}, | ||
number: { | ||
min: ({ label, min }) => `${label || '此项'}必须大于或等于${min}`, | ||
max: ({ label, max }) => `${label || '此项'}必须小于或等于${max}`, | ||
lessThan: ({ label, less }) => `${label || '此项'}必须小于${less}`, | ||
moreThan: ({ label, more }) => `${label || '此项'}必须大于${more}`, | ||
positive: ({ label }) => `${label || '此项'}必须是一个正数`, | ||
negative: ({ label }) => `${label || '此项'}必须是一个负数`, | ||
integer: ({ label }) => `${label || '此项'}必须是一个整数`, | ||
id: ({ label }) => `${label || '此项'}必须是一个正整数`, | ||
positiveInteger: ({ label }) => `${label || '此项'}必须是一个正整数`, | ||
negativeInteger: ({ label }) => `${label || '此项'}必须是一个负整数`, | ||
nonPositive: ({ label }) => `${label || '此项'}必须是一个非正数`, | ||
nonNegative: ({ label }) => `${label || '此项'}必须是一个非负数`, | ||
nonPositiveInteger: ({ label }) => `${label || '此项'}必须是一个非正整数`, | ||
nonNegativeInteger: ({ label }) => `${label || '此项'}必须是一个非负整数`, | ||
}, | ||
date: { | ||
min: ({ label, min }) => `${label || '此项'}必须晚于${min}`, | ||
max: ({ label, max }) => `${label || '此项'}必须早于${max}`, | ||
}, | ||
boolean: {}, | ||
object: { | ||
noUnknown: ({ label, unknown }) => | ||
`${label || '此项'}上有未定义的键: ${unknown}`, | ||
}, | ||
array: { | ||
min: ({ label, min }) => `${label || '此项'}至少应包含${min}个元素`, | ||
max: ({ label, max }) => `${label || '此项'}最多可包含${max}个元素`, | ||
}, | ||
export const getZhCN = (options: { | ||
getLabel: (params: yup.LocaleValueFnParams) => string | ||
}): yup.Locale => { | ||
const { getLabel } = options | ||
return { | ||
mixed: { | ||
default: params => `${getLabel(params)}错误`, | ||
required: params => `${getLabel(params)}必填`, | ||
oneOf: params => `${getLabel(params)}必须是下列值之一: ${params.values}`, | ||
notOneOf: params => | ||
`${getLabel(params)}必须不是下列值之一: ${params.values}`, | ||
defined: params => `${getLabel(params)}必须已定义`, | ||
notType: params => | ||
`${getLabel(params)}必须是一个${ | ||
params.type === 'number' | ||
? '数字' | ||
: params.type === 'string' | ||
? '字符串' | ||
: params.type === 'boolean' | ||
? '布尔值' | ||
: params.type === 'object' | ||
? '对象' | ||
: params.type === 'array' | ||
? '数组' | ||
: params.type === 'date' | ||
? '日期' | ||
: ` ${params.type} 类型的值` | ||
}`, | ||
}, | ||
string: { | ||
length: params => `${getLabel(params)}必须仅包含${params.length}位字符`, | ||
min: params => `${getLabel(params)}至少应包含${params.min}位字符`, | ||
max: params => `${getLabel(params)}最多可包含${params.max}位字符`, | ||
matches: params => | ||
`${getLabel(params)}必须匹配该正则表达式: ${params.regex}`, | ||
email: params => `${getLabel(params)}必须是一个合法的邮箱`, | ||
url: params => | ||
`${getLabel(params)}必须是一个以 http:// 或 https:// 开头的网络链接`, | ||
trim: params => `${getLabel(params)}必须是一个没有旁白的字符串`, | ||
lowercase: params => `${getLabel(params)}必须是一个小写的字符串`, | ||
uppercase: params => `${getLabel(params)}必须是一个大写的字符串`, | ||
chineseMobilePhoneNumber: params => | ||
`${getLabel(params)}必须是一个合法的手机号码`, | ||
chineseIDCardNumber: params => | ||
`${getLabel(params)}必须是一个合法的身份证号码`, | ||
}, | ||
number: { | ||
min: params => `${getLabel(params)}必须大于或等于${params.min}`, | ||
max: params => `${getLabel(params)}必须小于或等于${params.max}`, | ||
lessThan: params => `${getLabel(params)}必须小于${params.less}`, | ||
moreThan: params => `${getLabel(params)}必须大于${params.more}`, | ||
positive: params => `${getLabel(params)}必须是一个正数`, | ||
negative: params => `${getLabel(params)}必须是一个负数`, | ||
integer: params => `${getLabel(params)}必须是一个整数`, | ||
id: params => `${getLabel(params)}必须是一个正整数`, | ||
positiveInteger: params => `${getLabel(params)}必须是一个正整数`, | ||
negativeInteger: params => `${getLabel(params)}必须是一个负整数`, | ||
nonPositive: params => `${getLabel(params)}必须是一个非正数`, | ||
nonNegative: params => `${getLabel(params)}必须是一个非负数`, | ||
nonPositiveInteger: params => `${getLabel(params)}必须是一个非正整数`, | ||
nonNegativeInteger: params => `${getLabel(params)}必须是一个非负整数`, | ||
}, | ||
date: { | ||
min: params => `${getLabel(params)}必须晚于${params.min}`, | ||
max: params => `${getLabel(params)}必须早于${params.max}`, | ||
}, | ||
boolean: {}, | ||
object: { | ||
noUnknown: params => | ||
`${getLabel(params)}上有未定义的键: ${params.unknown}`, | ||
}, | ||
array: { | ||
min: params => `${getLabel(params)}至少应包含${params.min}个元素`, | ||
max: params => `${getLabel(params)}最多可包含${params.max}个元素`, | ||
}, | ||
} | ||
} | ||
|
||
export const zhCN = getZhCN({ | ||
getLabel: params => params.label || '此项', | ||
}) |