Skip to content

Commit 957a452

Browse files
author
Dean Karn
authored
Merge pull request #598 from cncal/enhance_zh_translation
enhancement: add zh translations for tag json, lowercase, uppercase, …
2 parents 257f202 + 8509886 commit 957a452

File tree

2 files changed

+58
-1
lines changed

2 files changed

+58
-1
lines changed

translations/zh/zh.go

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1308,6 +1308,36 @@ func RegisterDefaultTranslations(v *validator.Validate, trans ut.Translator) (er
13081308
return s
13091309
},
13101310
},
1311+
{
1312+
tag: "json",
1313+
translation: "{0}必须是一个JSON字符串",
1314+
override: false,
1315+
},
1316+
{
1317+
tag: "lowercase",
1318+
translation: "{0}必须是小写字母",
1319+
override: false,
1320+
},
1321+
{
1322+
tag: "uppercase",
1323+
translation: "{0}必须是大写字母",
1324+
override: false,
1325+
},
1326+
{
1327+
tag: "datetime",
1328+
translation: "{0}的格式必须是{1}",
1329+
override: false,
1330+
customTransFunc: func(ut ut.Translator, fe validator.FieldError) string {
1331+
1332+
t, err := ut.T(fe.Tag(), fe.Field(), fe.Param())
1333+
if err != nil {
1334+
log.Printf("警告: 翻译字段错误: %#v", fe)
1335+
return fe.(error).Error()
1336+
}
1337+
1338+
return t
1339+
},
1340+
},
13111341
}
13121342

13131343
for _, t := range translations {

translations/zh/zh_test.go

Lines changed: 28 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,9 @@ import (
44
"testing"
55
"time"
66

7+
. "github.com/go-playground/assert/v2"
78
zhongwen "github.com/go-playground/locales/zh"
89
ut "github.com/go-playground/universal-translator"
9-
. "github.com/go-playground/assert/v2"
1010
"github.com/go-playground/validator/v10"
1111
)
1212

@@ -138,6 +138,10 @@ func TestTranslations(t *testing.T) {
138138
StrPtrGte *string `validate:"gte=10"`
139139
OneOfString string `validate:"oneof=red green"`
140140
OneOfInt int `validate:"oneof=5 63"`
141+
JsonString string `validate:"json"`
142+
LowercaseString string `validate:"lowercase"`
143+
UppercaseString string `validate:"uppercase"`
144+
Datetime string `validate:"datetime=2006-01-02"`
141145
}
142146

143147
var test Test
@@ -184,6 +188,13 @@ func TestTranslations(t *testing.T) {
184188
test.StrPtrMaxLen = &s
185189
test.StrPtrLen = &s
186190

191+
test.JsonString = "{\"foo\":\"bar\",}"
192+
193+
test.LowercaseString = "ABCDEFG"
194+
test.UppercaseString = "abcdefg"
195+
196+
test.Datetime = "20060102"
197+
187198
err = validate.Struct(test)
188199
NotEqual(t, err, nil)
189200

@@ -614,6 +625,22 @@ func TestTranslations(t *testing.T) {
614625
ns: "Test.OneOfInt",
615626
expected: "OneOfInt必须是[5 63]中的一个",
616627
},
628+
{
629+
ns: "Test.JsonString",
630+
expected: "JsonString必须是一个JSON字符串",
631+
},
632+
{
633+
ns: "Test.LowercaseString",
634+
expected: "LowercaseString必须是小写字母",
635+
},
636+
{
637+
ns: "Test.UppercaseString",
638+
expected: "UppercaseString必须是大写字母",
639+
},
640+
{
641+
ns: "Test.Datetime",
642+
expected: "Datetime的格式必须是2006-01-02",
643+
},
617644
}
618645

619646
for _, tt := range tests {

0 commit comments

Comments
 (0)