mirror of
https://github.com/Fishwaldo/validator.git
synced 2025-03-15 11:41:32 +00:00
enhancement: add zh translations for tag alphaunicode,alphanumunicode,containsrune,startswith,endswith (#799)
This commit is contained in:
parent
44c2696cbd
commit
61a982014e
2 changed files with 196 additions and 111 deletions
|
@ -1000,6 +1000,16 @@ func RegisterDefaultTranslations(v *validator.Validate, trans ut.Translator) (er
|
|||
translation: "{0}只能包含字母和数字",
|
||||
override: false,
|
||||
},
|
||||
{
|
||||
tag: "alphanumunicode",
|
||||
translation: "{0}只能包含字母数字和Unicode字符",
|
||||
override: false,
|
||||
},
|
||||
{
|
||||
tag: "alphaunicode",
|
||||
translation: "{0}只能包含字母和Unicode字符",
|
||||
override: false,
|
||||
},
|
||||
{
|
||||
tag: "numeric",
|
||||
translation: "{0}必须是一个有效的数值",
|
||||
|
@ -1090,6 +1100,21 @@ func RegisterDefaultTranslations(v *validator.Validate, trans ut.Translator) (er
|
|||
return t
|
||||
},
|
||||
},
|
||||
{
|
||||
tag: "containsrune",
|
||||
translation: "{0}必须包含字符'{1}'",
|
||||
override: false,
|
||||
customTransFunc: func(ut ut.Translator, fe validator.FieldError) string {
|
||||
|
||||
t, err := ut.T(fe.Tag(), fe.Field(), fe.Param())
|
||||
if err != nil {
|
||||
log.Printf("警告: 翻译字段错误: %#v", fe)
|
||||
return fe.(error).Error()
|
||||
}
|
||||
|
||||
return t
|
||||
},
|
||||
},
|
||||
{
|
||||
tag: "excludes",
|
||||
translation: "{0}不能包含文本'{1}'",
|
||||
|
@ -1135,6 +1160,36 @@ func RegisterDefaultTranslations(v *validator.Validate, trans ut.Translator) (er
|
|||
return t
|
||||
},
|
||||
},
|
||||
{
|
||||
tag: "endswith",
|
||||
translation: "{0}必须以文本'{1}'结尾",
|
||||
override: false,
|
||||
customTransFunc: func(ut ut.Translator, fe validator.FieldError) string {
|
||||
|
||||
t, err := ut.T(fe.Tag(), fe.Field(), fe.Param())
|
||||
if err != nil {
|
||||
log.Printf("警告: 翻译字段错误: %#v", fe)
|
||||
return fe.(error).Error()
|
||||
}
|
||||
|
||||
return t
|
||||
},
|
||||
},
|
||||
{
|
||||
tag: "startswith",
|
||||
translation: "{0}必须以文本'{1}'开头",
|
||||
override: false,
|
||||
customTransFunc: func(ut ut.Translator, fe validator.FieldError) string {
|
||||
|
||||
t, err := ut.T(fe.Tag(), fe.Field(), fe.Param())
|
||||
if err != nil {
|
||||
log.Printf("警告: 翻译字段错误: %#v", fe)
|
||||
return fe.(error).Error()
|
||||
}
|
||||
|
||||
return t
|
||||
},
|
||||
},
|
||||
{
|
||||
tag: "isbn",
|
||||
translation: "{0}必须是一个有效的ISBN编号",
|
||||
|
|
|
@ -31,117 +31,122 @@ func TestTranslations(t *testing.T) {
|
|||
}
|
||||
|
||||
type Test struct {
|
||||
Inner Inner
|
||||
RequiredString string `validate:"required"`
|
||||
RequiredNumber int `validate:"required"`
|
||||
RequiredMultiple []string `validate:"required"`
|
||||
LenString string `validate:"len=1"`
|
||||
LenNumber float64 `validate:"len=1113.00"`
|
||||
LenMultiple []string `validate:"len=7"`
|
||||
MinString string `validate:"min=1"`
|
||||
MinNumber float64 `validate:"min=1113.00"`
|
||||
MinMultiple []string `validate:"min=7"`
|
||||
MaxString string `validate:"max=3"`
|
||||
MaxNumber float64 `validate:"max=1113.00"`
|
||||
MaxMultiple []string `validate:"max=7"`
|
||||
EqString string `validate:"eq=3"`
|
||||
EqNumber float64 `validate:"eq=2.33"`
|
||||
EqMultiple []string `validate:"eq=7"`
|
||||
NeString string `validate:"ne="`
|
||||
NeNumber float64 `validate:"ne=0.00"`
|
||||
NeMultiple []string `validate:"ne=0"`
|
||||
LtString string `validate:"lt=3"`
|
||||
LtNumber float64 `validate:"lt=5.56"`
|
||||
LtMultiple []string `validate:"lt=2"`
|
||||
LtTime time.Time `validate:"lt"`
|
||||
LteString string `validate:"lte=3"`
|
||||
LteNumber float64 `validate:"lte=5.56"`
|
||||
LteMultiple []string `validate:"lte=2"`
|
||||
LteTime time.Time `validate:"lte"`
|
||||
GtString string `validate:"gt=3"`
|
||||
GtNumber float64 `validate:"gt=5.56"`
|
||||
GtMultiple []string `validate:"gt=2"`
|
||||
GtTime time.Time `validate:"gt"`
|
||||
GteString string `validate:"gte=3"`
|
||||
GteNumber float64 `validate:"gte=5.56"`
|
||||
GteMultiple []string `validate:"gte=2"`
|
||||
GteTime time.Time `validate:"gte"`
|
||||
EqFieldString string `validate:"eqfield=MaxString"`
|
||||
EqCSFieldString string `validate:"eqcsfield=Inner.EqCSFieldString"`
|
||||
NeCSFieldString string `validate:"necsfield=Inner.NeCSFieldString"`
|
||||
GtCSFieldString string `validate:"gtcsfield=Inner.GtCSFieldString"`
|
||||
GteCSFieldString string `validate:"gtecsfield=Inner.GteCSFieldString"`
|
||||
LtCSFieldString string `validate:"ltcsfield=Inner.LtCSFieldString"`
|
||||
LteCSFieldString string `validate:"ltecsfield=Inner.LteCSFieldString"`
|
||||
NeFieldString string `validate:"nefield=EqFieldString"`
|
||||
GtFieldString string `validate:"gtfield=MaxString"`
|
||||
GteFieldString string `validate:"gtefield=MaxString"`
|
||||
LtFieldString string `validate:"ltfield=MaxString"`
|
||||
LteFieldString string `validate:"ltefield=MaxString"`
|
||||
AlphaString string `validate:"alpha"`
|
||||
AlphanumString string `validate:"alphanum"`
|
||||
NumericString string `validate:"numeric"`
|
||||
NumberString string `validate:"number"`
|
||||
HexadecimalString string `validate:"hexadecimal"`
|
||||
HexColorString string `validate:"hexcolor"`
|
||||
RGBColorString string `validate:"rgb"`
|
||||
RGBAColorString string `validate:"rgba"`
|
||||
HSLColorString string `validate:"hsl"`
|
||||
HSLAColorString string `validate:"hsla"`
|
||||
Email string `validate:"email"`
|
||||
URL string `validate:"url"`
|
||||
URI string `validate:"uri"`
|
||||
Base64 string `validate:"base64"`
|
||||
Contains string `validate:"contains=purpose"`
|
||||
ContainsAny string `validate:"containsany=!@#$"`
|
||||
Excludes string `validate:"excludes=text"`
|
||||
ExcludesAll string `validate:"excludesall=!@#$"`
|
||||
ExcludesRune string `validate:"excludesrune=☻"`
|
||||
ISBN string `validate:"isbn"`
|
||||
ISBN10 string `validate:"isbn10"`
|
||||
ISBN13 string `validate:"isbn13"`
|
||||
UUID string `validate:"uuid"`
|
||||
UUID3 string `validate:"uuid3"`
|
||||
UUID4 string `validate:"uuid4"`
|
||||
UUID5 string `validate:"uuid5"`
|
||||
ASCII string `validate:"ascii"`
|
||||
PrintableASCII string `validate:"printascii"`
|
||||
MultiByte string `validate:"multibyte"`
|
||||
DataURI string `validate:"datauri"`
|
||||
Latitude string `validate:"latitude"`
|
||||
Longitude string `validate:"longitude"`
|
||||
SSN string `validate:"ssn"`
|
||||
IP string `validate:"ip"`
|
||||
IPv4 string `validate:"ipv4"`
|
||||
IPv6 string `validate:"ipv6"`
|
||||
CIDR string `validate:"cidr"`
|
||||
CIDRv4 string `validate:"cidrv4"`
|
||||
CIDRv6 string `validate:"cidrv6"`
|
||||
TCPAddr string `validate:"tcp_addr"`
|
||||
TCPAddrv4 string `validate:"tcp4_addr"`
|
||||
TCPAddrv6 string `validate:"tcp6_addr"`
|
||||
UDPAddr string `validate:"udp_addr"`
|
||||
UDPAddrv4 string `validate:"udp4_addr"`
|
||||
UDPAddrv6 string `validate:"udp6_addr"`
|
||||
IPAddr string `validate:"ip_addr"`
|
||||
IPAddrv4 string `validate:"ip4_addr"`
|
||||
IPAddrv6 string `validate:"ip6_addr"`
|
||||
UinxAddr string `validate:"unix_addr"` // can't fail from within Go's net package currently, but maybe in the future
|
||||
MAC string `validate:"mac"`
|
||||
IsColor string `validate:"iscolor"`
|
||||
StrPtrMinLen *string `validate:"min=10"`
|
||||
StrPtrMaxLen *string `validate:"max=1"`
|
||||
StrPtrLen *string `validate:"len=2"`
|
||||
StrPtrLt *string `validate:"lt=1"`
|
||||
StrPtrLte *string `validate:"lte=1"`
|
||||
StrPtrGt *string `validate:"gt=10"`
|
||||
StrPtrGte *string `validate:"gte=10"`
|
||||
OneOfString string `validate:"oneof=red green"`
|
||||
OneOfInt int `validate:"oneof=5 63"`
|
||||
JsonString string `validate:"json"`
|
||||
LowercaseString string `validate:"lowercase"`
|
||||
UppercaseString string `validate:"uppercase"`
|
||||
Datetime string `validate:"datetime=2006-01-02"`
|
||||
Inner Inner
|
||||
RequiredString string `validate:"required"`
|
||||
RequiredNumber int `validate:"required"`
|
||||
RequiredMultiple []string `validate:"required"`
|
||||
LenString string `validate:"len=1"`
|
||||
LenNumber float64 `validate:"len=1113.00"`
|
||||
LenMultiple []string `validate:"len=7"`
|
||||
MinString string `validate:"min=1"`
|
||||
MinNumber float64 `validate:"min=1113.00"`
|
||||
MinMultiple []string `validate:"min=7"`
|
||||
MaxString string `validate:"max=3"`
|
||||
MaxNumber float64 `validate:"max=1113.00"`
|
||||
MaxMultiple []string `validate:"max=7"`
|
||||
EqString string `validate:"eq=3"`
|
||||
EqNumber float64 `validate:"eq=2.33"`
|
||||
EqMultiple []string `validate:"eq=7"`
|
||||
NeString string `validate:"ne="`
|
||||
NeNumber float64 `validate:"ne=0.00"`
|
||||
NeMultiple []string `validate:"ne=0"`
|
||||
LtString string `validate:"lt=3"`
|
||||
LtNumber float64 `validate:"lt=5.56"`
|
||||
LtMultiple []string `validate:"lt=2"`
|
||||
LtTime time.Time `validate:"lt"`
|
||||
LteString string `validate:"lte=3"`
|
||||
LteNumber float64 `validate:"lte=5.56"`
|
||||
LteMultiple []string `validate:"lte=2"`
|
||||
LteTime time.Time `validate:"lte"`
|
||||
GtString string `validate:"gt=3"`
|
||||
GtNumber float64 `validate:"gt=5.56"`
|
||||
GtMultiple []string `validate:"gt=2"`
|
||||
GtTime time.Time `validate:"gt"`
|
||||
GteString string `validate:"gte=3"`
|
||||
GteNumber float64 `validate:"gte=5.56"`
|
||||
GteMultiple []string `validate:"gte=2"`
|
||||
GteTime time.Time `validate:"gte"`
|
||||
EqFieldString string `validate:"eqfield=MaxString"`
|
||||
EqCSFieldString string `validate:"eqcsfield=Inner.EqCSFieldString"`
|
||||
NeCSFieldString string `validate:"necsfield=Inner.NeCSFieldString"`
|
||||
GtCSFieldString string `validate:"gtcsfield=Inner.GtCSFieldString"`
|
||||
GteCSFieldString string `validate:"gtecsfield=Inner.GteCSFieldString"`
|
||||
LtCSFieldString string `validate:"ltcsfield=Inner.LtCSFieldString"`
|
||||
LteCSFieldString string `validate:"ltecsfield=Inner.LteCSFieldString"`
|
||||
NeFieldString string `validate:"nefield=EqFieldString"`
|
||||
GtFieldString string `validate:"gtfield=MaxString"`
|
||||
GteFieldString string `validate:"gtefield=MaxString"`
|
||||
LtFieldString string `validate:"ltfield=MaxString"`
|
||||
LteFieldString string `validate:"ltefield=MaxString"`
|
||||
AlphaString string `validate:"alpha"`
|
||||
AlphanumString string `validate:"alphanum"`
|
||||
AlphanumUnicodeString string `validate:"alphanumunicode"`
|
||||
AlphaUnicodeString string `validate:"alphaunicode"`
|
||||
NumericString string `validate:"numeric"`
|
||||
NumberString string `validate:"number"`
|
||||
HexadecimalString string `validate:"hexadecimal"`
|
||||
HexColorString string `validate:"hexcolor"`
|
||||
RGBColorString string `validate:"rgb"`
|
||||
RGBAColorString string `validate:"rgba"`
|
||||
HSLColorString string `validate:"hsl"`
|
||||
HSLAColorString string `validate:"hsla"`
|
||||
Email string `validate:"email"`
|
||||
URL string `validate:"url"`
|
||||
URI string `validate:"uri"`
|
||||
Base64 string `validate:"base64"`
|
||||
Contains string `validate:"contains=purpose"`
|
||||
ContainsAny string `validate:"containsany=!@#$"`
|
||||
ContainsRune string `validate:"containsrune=☻"`
|
||||
Excludes string `validate:"excludes=text"`
|
||||
ExcludesAll string `validate:"excludesall=!@#$"`
|
||||
ExcludesRune string `validate:"excludesrune=☻"`
|
||||
EndsWith string `validate:"endswith=end"`
|
||||
StartsWith string `validate:"startswith=start"`
|
||||
ISBN string `validate:"isbn"`
|
||||
ISBN10 string `validate:"isbn10"`
|
||||
ISBN13 string `validate:"isbn13"`
|
||||
UUID string `validate:"uuid"`
|
||||
UUID3 string `validate:"uuid3"`
|
||||
UUID4 string `validate:"uuid4"`
|
||||
UUID5 string `validate:"uuid5"`
|
||||
ASCII string `validate:"ascii"`
|
||||
PrintableASCII string `validate:"printascii"`
|
||||
MultiByte string `validate:"multibyte"`
|
||||
DataURI string `validate:"datauri"`
|
||||
Latitude string `validate:"latitude"`
|
||||
Longitude string `validate:"longitude"`
|
||||
SSN string `validate:"ssn"`
|
||||
IP string `validate:"ip"`
|
||||
IPv4 string `validate:"ipv4"`
|
||||
IPv6 string `validate:"ipv6"`
|
||||
CIDR string `validate:"cidr"`
|
||||
CIDRv4 string `validate:"cidrv4"`
|
||||
CIDRv6 string `validate:"cidrv6"`
|
||||
TCPAddr string `validate:"tcp_addr"`
|
||||
TCPAddrv4 string `validate:"tcp4_addr"`
|
||||
TCPAddrv6 string `validate:"tcp6_addr"`
|
||||
UDPAddr string `validate:"udp_addr"`
|
||||
UDPAddrv4 string `validate:"udp4_addr"`
|
||||
UDPAddrv6 string `validate:"udp6_addr"`
|
||||
IPAddr string `validate:"ip_addr"`
|
||||
IPAddrv4 string `validate:"ip4_addr"`
|
||||
IPAddrv6 string `validate:"ip6_addr"`
|
||||
UinxAddr string `validate:"unix_addr"` // can't fail from within Go's net package currently, but maybe in the future
|
||||
MAC string `validate:"mac"`
|
||||
IsColor string `validate:"iscolor"`
|
||||
StrPtrMinLen *string `validate:"min=10"`
|
||||
StrPtrMaxLen *string `validate:"max=1"`
|
||||
StrPtrLen *string `validate:"len=2"`
|
||||
StrPtrLt *string `validate:"lt=1"`
|
||||
StrPtrLte *string `validate:"lte=1"`
|
||||
StrPtrGt *string `validate:"gt=10"`
|
||||
StrPtrGte *string `validate:"gte=10"`
|
||||
OneOfString string `validate:"oneof=red green"`
|
||||
OneOfInt int `validate:"oneof=5 63"`
|
||||
JsonString string `validate:"json"`
|
||||
LowercaseString string `validate:"lowercase"`
|
||||
UppercaseString string `validate:"uppercase"`
|
||||
Datetime string `validate:"datetime=2006-01-02"`
|
||||
}
|
||||
|
||||
var test Test
|
||||
|
@ -172,6 +177,8 @@ func TestTranslations(t *testing.T) {
|
|||
|
||||
test.AlphaString = "abc3"
|
||||
test.AlphanumString = "abc3!"
|
||||
test.AlphanumUnicodeString = "abc3啊!"
|
||||
test.AlphaUnicodeString = "abc3啊"
|
||||
test.NumericString = "12E.00"
|
||||
test.NumberString = "12E"
|
||||
|
||||
|
@ -179,6 +186,9 @@ func TestTranslations(t *testing.T) {
|
|||
test.ExcludesAll = "This is Great!"
|
||||
test.ExcludesRune = "Love it ☻"
|
||||
|
||||
test.EndsWith = "this is some test text"
|
||||
test.StartsWith = "this is some test text"
|
||||
|
||||
test.ASCII = "カタカナ"
|
||||
test.PrintableASCII = "カタカナ"
|
||||
|
||||
|
@ -329,6 +339,14 @@ func TestTranslations(t *testing.T) {
|
|||
ns: "Test.ISBN13",
|
||||
expected: "ISBN13必须是一个有效的ISBN-13编号",
|
||||
},
|
||||
{
|
||||
ns: "Test.EndsWith",
|
||||
expected: "EndsWith必须以文本'end'结尾",
|
||||
},
|
||||
{
|
||||
ns: "Test.StartsWith",
|
||||
expected: "StartsWith必须以文本'start'开头",
|
||||
},
|
||||
{
|
||||
ns: "Test.Excludes",
|
||||
expected: "Excludes不能包含文本'text'",
|
||||
|
@ -341,6 +359,10 @@ func TestTranslations(t *testing.T) {
|
|||
ns: "Test.ExcludesRune",
|
||||
expected: "ExcludesRune不能包含'☻'",
|
||||
},
|
||||
{
|
||||
ns: "Test.ContainsRune",
|
||||
expected: "ContainsRune必须包含字符'☻'",
|
||||
},
|
||||
{
|
||||
ns: "Test.ContainsAny",
|
||||
expected: "ContainsAny必须包含至少一个以下字符'!@#$'",
|
||||
|
@ -397,6 +419,14 @@ func TestTranslations(t *testing.T) {
|
|||
ns: "Test.NumericString",
|
||||
expected: "NumericString必须是一个有效的数值",
|
||||
},
|
||||
{
|
||||
ns: "Test.AlphaUnicodeString",
|
||||
expected: "AlphaUnicodeString只能包含字母和Unicode字符",
|
||||
},
|
||||
{
|
||||
ns: "Test.AlphanumUnicodeString",
|
||||
expected: "AlphanumUnicodeString只能包含字母数字和Unicode字符",
|
||||
},
|
||||
{
|
||||
ns: "Test.AlphanumString",
|
||||
expected: "AlphanumString只能包含字母和数字",
|
||||
|
|
Loading…
Add table
Reference in a new issue