W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗值獎勵
數(shù)據(jù)校驗組件支持?i18n
?特性,內(nèi)部使用了?goframe
?框架統(tǒng)一的?i18n
?組件實現(xiàn)。默認使用默認的?i18n
?單例對象,即?g.I18n()
?對象。
默認的英文國際化語言配置文件參考:https://github.com/gogf/gf/v2/tree/master/util/gvalid/i18n/en
我們提供了建議的中文?i18n
?國際化語言配置文件:https://github.com/gogf/gf/v2/tree/master/util/gvalid/i18n/cn
當在?i18n
?中找不到對應規(guī)則的錯誤提示時,將會使用?__default__
?配置的錯誤提示信息。往往使用在自定義規(guī)則中。
我們通過中間件統(tǒng)一設(shè)置請求的錯誤提示?i18n
?語言。
注意工程目錄結(jié)構(gòu),以便于默認的?g.i18n()
?對象能自動讀取配置。有相當一部分同學倒在了這里
├── main.go
└── i18n
├── en.toml
└── zh-CN.toml
?en.toml
?
"ReuiredUserName" = "Please input user name"
"ReuiredUserType" = "Please select user type"
?zh-CN.toml
?
"ReuiredUserName" = "請輸入用戶名稱"
"ReuiredUserType" = "請選擇用戶類型"
package main
import (
"github.com/gogf/gf/v2/frame/g"
"github.com/gogf/gf/v2/i18n/gi18n"
"github.com/gogf/gf/v2/os/gctx"
"github.com/gogf/gf/v2/util/gconv"
)
func main() {
type User struct {
Name string `v:"required#ReuiredUserName"`
Type int `v:"required#ReuiredUserType"`
}
var (
ctx = gctx.New()
data = g.Map{
"name": "john",
}
user = User{}
ctxEn = gi18n.WithLanguage(ctx, "en")
ctxCh = gi18n.WithLanguage(ctx, "zh-CN")
)
if err := gconv.Scan(data, &user); err != nil {
panic(err)
}
// 英文
if err := g.Validator().Assoc(data).Data(user).Run(ctxEn); err != nil {
g.Dump(err.String())
}
// 中文
if err := g.Validator().Assoc(data).Data(user).Run(ctxCh); err != nil {
g.Dump(err.String())
}
}
執(zhí)行后,終端輸出:
Please select user type
請選擇用戶類型
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: