31 lines
662 B
Go
31 lines
662 B
Go
package vdext
|
|
|
|
import (
|
|
"github.com/go-playground/locales"
|
|
"github.com/go-playground/locales/en"
|
|
uts "github.com/go-playground/universal-translator"
|
|
"github.com/go-playground/validator/v10"
|
|
en_translations "github.com/go-playground/validator/v10/translations/en"
|
|
)
|
|
|
|
var (
|
|
languages = []locales.Translator{
|
|
en.New(),
|
|
}
|
|
uni = initI8n()
|
|
)
|
|
|
|
func initI8n() *uts.UniversalTranslator {
|
|
return uts.New(languages[0], languages[1:]...)
|
|
}
|
|
|
|
func New(tagName string) *validator.Validate {
|
|
vd := validator.New()
|
|
|
|
if trans, found := uni.GetTranslator("en"); found {
|
|
en_translations.RegisterDefaultTranslations(vd, trans)
|
|
}
|
|
|
|
vd.SetTagName(tagName)
|
|
return vd
|
|
}
|