自定义中文验证消息

实现自定义验证中文消息就是使用国际化来支持中文,这个可以使用rails的i18n接口来完成。

步骤一:取消application.rb 如下注释,并将默认语言设置改成简体中文zh-CN(这个任意命名即可,因为这里如何命名那么转换语言的时候就去找同样命名的yml文件,比如这里命名为zh-CN那么我们创建yml文件也必须是zh-CN.yml文件)。

修改前:

修改后:

步骤二:重启rails服务器

因为config目录下的文件都是配置文件,凡是配置的修改都需要重启rails服务器来使得修改生效。

步骤三:在如下目录添加保存自定义的中文消息的yml文件,如下:

注意----该文件缩进必须是两个空格,我们不要使用Tab键盘

步骤四:找一个页面试试,如下:

原来的代码和效果:

将视图代码该处使用语言转换为简体中文的代码及效果:

如下使用国际化的接口t函数(该函数意思就是translate),然后翻译为navnbar.about也就是之前yml文件中的"关于"

注:这里我们是手动实现国际化,当然有个gem叫rails-i18n里面保存了很多常用的国际化语言,也可以使用这个。

步骤五:提交空表单如下:

在将默认语言设置改成简体中文zh-CN之后,自定义验证消息就会默认使用简体中文了(这是验证机制默认的选择),所以我们不必像上面那样将about链接手动设置为国际化,它就会自动去使用简体zh-CN.yml文件,如下还没定义相关的中文所以如下:

那么自定义的中文验证消息如何写?很简单:

translation missing: zh-CN.activerecord.errors.models.user.attributes.name.blank

如上可以看出对应的转换在zh-CN.yml文件中(最开始是zh-CN),然后层次的缩进依次是:activerecord及errors及models及user一直下去:最后的yml文件如下:

这时我们再来提交一次表单,看验证消息提示结果为如下:

时间: 2024-11-13 10:16:32

自定义中文验证消息的相关文章

jQuery Validate 表单验证插件----自定义一个验证方法

一.下载依赖包 网盘下载:https://yunpan.cn/cryvgGGAQ3DSW  访问密码 f224 二.引入依赖包 <script src="../../scripts/jquery-1.3.1.js" type="text/javascript"></script> <script src="lib/jquery.validate.js" type="text/javascript"

[ASP.NET MVC]如何定制Numeric属性/字段验证消息

原文:[ASP.NET MVC]如何定制Numeric属性/字段验证消息 对于一个Numeric属性/字段,ASP.NET MVC会自动进行数据类型的验证(客户端验证),以确保输入的是一个有效的数字,但是呈现在页面上的错误消息总是一段固定的文本:“The field {0} must be a number”,本篇提供一种解决方案使我们可以对此验证消息进行定制.[源代码从这里下载] 目录 一.针对Numeric属性/字段默认验证消息 二.默认的验证消息来源于何处? 三.通过自定义ModelVal

validation统一表单验证(含自定义枚举验证)

一般我们对前端传输的参数做判断时,可能都是以以下方式进行判断,如果再加上字段的长度.正则等校验的话就会显得代码很累赘了. // 新增/修改通用参数非空校验 if (StringUtil.isBlank(menu.getParentId())) { throw new LsException(ResultEnum.PARAM_MISSING_ERROR, "父级菜单ID不能为空!"); } if (StringUtil.isBlank(menu.getMenuName())) { thr

Delphi XE7 用indy开发微信公众平台(3)- 验证消息真实性

验证消息真实性 uses IdHashSHA, IdGlobal; function SHA1(Input: String): String; begin with TIdHashSHA1.Create do try Result := LowerCase(HashBytesAsHex(TidBytes(Bytesof(Input)))); finally Free; end; end; function CheckSignature(ARequestInfo: TIdHTTPRequestIn

Axis 调用.net WebServic接口出现:验证消息的安全性时错误发生

解决方法:call.setSOAPVersion(org.apache.axis.soap.SOAPConstants.SOAP12_CONSTANTS); 參考:http://www.blogjava.net/andy199999/ 异常内容: AxisFault faultCode: {http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd}InvalidSecurity faultS

Jeesite单点登录集成cas另加自定义登录验证

Jeesite单点登录集成Cas另加自定义登录验证 JeeSite是基于多个优秀的开源项目,高度整合封装而成的高效,高性能,强安全性的 开源 Java EE快速开发平台. Cas主要是用来解决多应用之间统一登陆认证,无需用户在同一公司多应用之间重复登陆.例如阿里巴巴中淘宝.天猫,在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统. Cas基础 服务端 服务端cas-server-webapp-4.0.0.war,服务器端程序一般不用我们完成,但需要做一点小小的修改,cas的服务

C# 收发和处理自定义的WINDOWS消息

C# 发送.接收和处理自定义的WINDOWS消息 为了程序启动后自动执行主函数,在Form1_Load中直接执行启动函数,可能造成没有反应.当然,在Form1_Load中加入较长时间(比如2秒)的定时器,在定时器函数中关闭定时器(仅需要执行一次),再执行主函数会好些,但是我们不知道初始话的精确时间,这样的方法也存在危险. 我们知道WINDOWS应用程序是靠消息驱动的,最好的方法就是在Form1_Load中发送消息,自己截获消息后,才开始执行比较安全.下面分3步说明相关的方法步骤. 一.创建一个

Axis 调用.net WebServic接口出现:验证消息的安全性时发生错误

解决方法:call.setSOAPVersion(org.apache.axis.soap.SOAPConstants.SOAP12_CONSTANTS); 参考:http://www.blogjava.net/andy199999/ 异常内容: AxisFault faultCode: {http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd}InvalidSecurity faultS

(转)js正则表达式之中文验证

今天做表单提交的输入框条件验证,验证是否包含中文:网上搜了一圈基于js正则表达式的验证基本不好用,而且大多都是出自一两篇原文的转帖!到底什么才是拿来主义呢.根据搜索结果,本文取精华,告诉大家一个好用的中文验证方法.   使用js正则表达式匹配中文,需要了解中文字符在unicode编码中所处的区间.这样才能够了解表达式的匹配原理.         首先在正则表达式中使用 Unicode,必须使用\u开头,接着是字符编码的四位16进制表现形式 简单匹配中文方法: /[^\u0000-\u00FF]/