gvalid
默认的错误提示是英文的,并且错误提示信息支持 i18n
特性,也就是说我们可以通过配置 i18n
文件即可替换默认的错误提示。
i18n
国际化功能请参考章节: I18N国际化
配置示例
默认 i18n
错误提示
默认的英文国际化语言配置文件参考: https://github.com/gogf/gf/tree/master/util/gvalid/i18n/en
中文错误提示
我们提供了建议的中文 i18n
国际化语言配置文件: https://github.com/gogf/gf/tree/master/util/gvalid/i18n/cn
默认错误提示
当在 i18n
中找不到对应规则的错误提示时,将会使用 __default__
配置的错误提示信息。往往使用在自定义规则中。
开发示例
我们通过中间件统一设置请求的错误提示 i18n
语言。
i18n
文件
en.toml
"ReuiredUserName" = "Please input user name"
"ReuiredUserType" = "Please select user type"
zh-CN.toml
"ReuiredUserName" = "请输入用户名称"
"ReuiredUserType" = "请选择用户类型"
示例代码
package main
import (
"context"
"github.com/gogf/gf/frame/g"
"github.com/gogf/gf/i18n/gi18n"
"github.com/gogf/gf/util/gconv"
)
func main() {
type User struct {
Name string `v:"required#ReuiredUserName"`
Type int `v:"required#ReuiredUserType"`
}
var (
data = g.Map{
"name": "john",
}
user = User{}
ctxEn = gi18n.WithLanguage(context.TODO(), "en")
ctxCh = gi18n.WithLanguage(context.TODO(), "zh-CN")
)
if err := gconv.Scan(data, &user); err != nil {
panic(err)
}
// 英文
if err := g.Validator().Ctx(ctxEn).Data(data).CheckStruct(user); err != nil {
g.Dump(err.String())
}
// 中文
if err := g.Validator().Ctx(ctxCh).Data(data).CheckStruct(user); err != nil {
g.Dump(err.String())
}
}
执行后,终端输出:
Please select user type
请选择用户类型