github.com/gogf/gf@v1.16.9/.example/util/gvalid/gvalid_i18n.go (about)

     1  package main
     2  
     3  import (
     4  	"context"
     5  
     6  	"github.com/gogf/gf/frame/g"
     7  	"github.com/gogf/gf/i18n/gi18n"
     8  	"github.com/gogf/gf/util/gconv"
     9  )
    10  
    11  func main() {
    12  	type User struct {
    13  		Name    string `v:"required#ReuiredUserName"`
    14  		Type    int    `v:"required#ReuiredUserType"`
    15  		Project string `v:"size:10#MustSize"`
    16  	}
    17  	var (
    18  		data = g.Map{
    19  			"name":    "john",
    20  			"project": "gf",
    21  		}
    22  		user  = User{}
    23  		ctxEn = gi18n.WithLanguage(context.TODO(), "en")
    24  		ctxCh = gi18n.WithLanguage(context.TODO(), "zh-CN")
    25  	)
    26  
    27  	if err := gconv.Scan(data, &user); err != nil {
    28  		panic(err)
    29  	}
    30  	// 英文
    31  	if err := g.Validator().Ctx(ctxEn).Data(data).CheckStruct(user); err != nil {
    32  		g.Dump(err.String())
    33  	}
    34  	// 中文
    35  	if err := g.Validator().Ctx(ctxCh).Data(data).CheckStruct(user); err != nil {
    36  		g.Dump(err.String())
    37  	}
    38  }