文章目录:
- 前言
- 接口返回的错误信息支持中英文
- 代码位置
- 使用方式
- 错误信息自定义
- 参数验证的错误信息支持中英文
- 代码位置
- 使用方式
- 错误信息语言包
- 示例
- 小结
- 推荐阅读
前言
根据使用者的反馈,对开源项目:go-gin-api[1] 新增两个小功能。
两个小功能都与语言包有关:
- 功能1:接口返回的错误信息支持中英文;
- 功能2:参数验证的错误信息支持中英文;
我的实现方式是在项目安装的时候,选择 语言
,然后项目中根据选择的语言进行输出对应的中英文,如下图。
接口返回的错误信息支持中英文
代码位置
项目代码位置:internal/pkg/code
使用方式
// 与原来使用方式一致 code.Text(code.ServerError)
错误信息自定义
- 中文:internal/pkg/code/zh-cn.go
- 英文:internal/pkg/code/en-us.go
如果你想新增/编辑错误信息,在对应文件操作即可。
参数验证的错误信息支持中英文
代码位置
项目代码位置:internal/pkg/validation
使用方式
req := new(createRequest) if err := ctx.ShouldBindForm(req); err != nil { fmt.Println(validation.Error(err)) }
错误信息语言包
错误信息语言包使用的是 go-playground/validator[2]
- 中文:v10/translations/zh
- 英文:v10/translations/en
示例
Username string `form:"username" binding:"required"` // 用户名 Nickname string `form:"nickname" binding:"required"` // 昵称
未使用语言包
// 错误信息 createRequest.Username' Error:Field validation for 'Username' failed on the 'required' tag\nKey: 'createRequest.Nickname' Error:Field validation for 'Nickname' failed on the 'required' tag"
使用中文语言包
// 错误信息 Username为必填字段;Nickname为必填字段;
使用英文语言包
// 错误信息 Username is a required field;Nickname is a required field;
小结
以上,希望能对你有所帮助,代码已提交到 GitHub,下载最新代码用起来吧。
推荐阅读
参考资料
[1] go-gin-api: https://github.com/xinliangnote/go-gin-api
[2] go-playground/validator: https://github.com/go-playground/validator