前言

根据使用者的反馈,对开源项目:go-gin-api 新增两个小功能。

两个小功能都与语言包有关:

  • 功能1:接口返回的错误信息支持中英文;
  • 功能2:参数验证的错误信息支持中英文;

我的实现方式是在项目安装的时候,选择 语言,然后项目中根据选择的语言进行输出对应的中英文,如下图。

[tu_lang]

接口返回的错误信息支持中英文

代码位置

项目代码位置: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

  • 中文: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,下载最新代码用起来吧。

推荐阅读

根据使用者反馈,对开源项目 go-gin-api 新增两个功能的更多相关文章

  1. [转] 学习React Native必看的几个开源项目

    http://www.lcode.org/study-react-native-opensource-one/ http://gold.xitu.io/entry/575f498c128fe10057 ...

  2. 【转】react-native开发混合App-github开源项目

    http://www.lcode.org/study-react-native-opensource-one/ http://gold.xitu.io/entry/575f498c128fe10057 ...

  3. HoverTree开源项目已经实现管理员登录

    ASP.NET开源项目HoverTree已经实现了管理员登录功能,最新代码请到以下网址查看.http://hovertree.com/down/ 点击Clone右边的Download就可以下载最新开发 ...

  4. 【Java经验分享篇01】小白如何开始学会看开源项目?

    目录 前言 1.理解开源 1.1.什么是开源? 1.2.开源的定义 1.2.1.开源软件优点 1.2.2.经典开源软件案例 1.3.关于开源协议 1.3.1.如何选择开源协议 2.如何查找开源项目 2 ...

  5. 《云阅》一个仿网易云音乐UI,使用Gank.Io及豆瓣Api开发的开源项目

    CloudReader 一款基于网易云音乐UI,使用GankIo及豆瓣api开发的符合Google Material Desgin阅读类的开源项目.项目采取的是Retrofit + RxJava + ...

  6. 顶级开源项目 Sentry 20.x JS-SDK 设计艺术(Unified API篇)

    SDK 开发 顶级开源项目 Sentry 20.x JS-SDK 设计艺术(理念与设计原则篇) 顶级开源项目 Sentry 20.x JS-SDK 设计艺术(开发基础篇) 顶级开源项目 Sentry ...

  7. python实战===国内很简单实用的一些开源的api以及开源项目

    原创 2017年03月25日 15:40:59 标签: api / 开源项目 / app / 免费接口   声明 以下所有 API 均由产品公司自身提供,本人皆从网络获取.获取与共享之行为或有侵犯产品 ...

  8. 瓣呀,一个基于豆瓣api仿网易云音乐的开源项目

    整体采用material design 风格,本人是网易云音乐的粉丝,所以界面模仿了网页云音乐,另外,项目中尽量使用了5.0之后的新控件. 项目整体采用mvp+rxjava+retrofit 框架,使 ...

  9. gin+vue的前后端分离开源项目

    该项目是gin+vue的前后端分离项目,使用gorm访问MySQL,其中vue前端是使用vue-element-admin框架简单实现的: go后台使用jwt,对API接口进行权限控制.此外,Web页 ...

随机推荐

  1. ArcGIS10从入门到精通系列实验图文教程(附配套实验数据持续更新)

    @ 目录 1. 专栏简介 2. 专栏地址 3. 专栏目录 1. 专栏简介 本教程<ArcGIS从入门到精通系列实验教程>内容包括:ArcGIS平台简介.ArcGIS应用基础.空间数据的采集 ...

  2. 利用MathType快速提取论文中的公式

    首先随便打开一个论文,比如下图,我们想提取公式(2.2.7) 第一步:按截图快捷键:Win+Shift+S ,把公式截取下来 第二步:打开大佬开发的网站:https://mathf.itewqq.cn ...

  3. C#中的数据结构

    Array 连续性的内存空间 快速定位查找元素,随机访问性强,查找效率高 已知的统一的元素类型,减小运行时开销 固定长度,不能再新增元素 ArrayList 连续性的内存空间 快速定位查找元素,随机访 ...

  4. 用virtualenv建立Python独立开发环境

    1.用pip安装virtualenv sudo apt-get install python-virtualenv 2.1 创建python2的虚拟环境,进入要创建虚拟环境的目录下,我是放在/home ...

  5. celery异步任务体系笔记

    1.异步框架示意图 2.celery 官方文档 http://docs.celeryproject.org/en/latest/index.html 3.启动celery的命令 启动 sender 自 ...

  6. ADAS超声波雷达

    ADAS超声波雷达 在倒车入库,慢慢挪动车子的过程中,在驾驶室内能听到"滴滴滴"的声音,这些声音就是根据超声波雷达的检测距离给司机的反馈信息. 倒车雷达系统,英文全称为REVERS ...

  7. Halide视觉神经网络优化

    Halide视觉神经网络优化 概述 Halide是用C++作为宿主语言的一个图像处理相关的DSL(Domain Specified Language)语言,全称领域专用语言.主要的作用为在软硬层面上( ...

  8. 嵌入式C程序基础与编程结构

    嵌入式C程序基础与编程结构 Basics of Embedded C Program and Programming Structure 嵌入式C编程是处理器在我们日常生活中遇到的每一个嵌入式系统(如 ...

  9. 中国人工智能AI框架自主研发

    中国人工智能AI框架自主研发 中国AI界争相构建AI开源框架的背后,技术和业务层面的考量因素当然重要,但也不应忽视国家层面的政策支持.对于AI基础设施的建设,中国政府在<新一代人工智能发展规划& ...

  10. Java接口以及匿名内部类,静态代码块

    接口 接口中只能定义public并且是final的公共静态常量,不允许定义变量. 抽象类可以定义抽象方法和非抽象方法,接口中只能定义公共的,抽象的实例方法. 接口只能由其他接口实现继承 子接口继承的目 ...