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文件

en.toml

  1. "ReuiredUserName" = "Please input user name"
  2. "ReuiredUserType" = "Please select user type"

zh-CN.toml

  1. "ReuiredUserName" = "请输入用户名称"
  2. "ReuiredUserType" = "请选择用户类型"

示例代码

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

执行后,终端输出:

  1. Please select user type
  2. 请选择用户类型

Content Menu