mh_goadmin_server/tools/validate.go
2023-10-14 17:09:06 +08:00

34 lines
741 B
Go

package tools
import (
"errors"
zhongwen "github.com/go-playground/locales/zh"
ut "github.com/go-playground/universal-translator"
"github.com/go-playground/validator/v10"
zhtranslation "github.com/go-playground/validator/v10/translations/zh"
)
var validate *validator.Validate
var trans ut.Translator
func init() {
//中文
zh := zhongwen.New()
uni := ut.New(zh, zh)
trans, _ = uni.GetTranslator("zh")
validate = validator.New(validator.WithRequiredStructEnabled())
_ = zhtranslation.RegisterDefaultTranslations(validate, trans)
}
func Validate(s interface{}) error {
err := validate.Struct(s)
var errs validator.ValidationErrors
if errors.As(err, &errs) {
return errors.New(errs[0].Translate(trans))
}
return err
}