自定义中文验证消息

实现自定义验证中文消息就是使用国际化来支持中文,这个可以使用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文件如下:

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

 

再来看一下其他页面,发现如下很多地方使用自定义的转换没有定义所以显示如下:

解决办法是向上面一些去定义对应的语言转换数据,但是我们有一种更快的办法,来到github的如下项目的页面:

然后在在页面空白处按下键盘上的小写t就会进入搜索:

 

 

然后点击进入该文件查看关于时间的内容(因为这个项目包含许多常用语言转换,所以我们可以直接来这里找完复制,省得一个个自己写,而且我们不需要安装这个gem,就来github复制yml文件里想要的内容即可)

复制到项目的yml文件后如下:

 

转载于:https://www.cnblogs.com/blueColdFire/p/5539307.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值