2012-02-08 35 views
3

如何翻译ActiveRecord 完整错误信息?例如,我想用西班牙文向他们展示。如何翻译ActiveRecord完整的错误消息?

我创建这个文件config/locales/es.yml

es: 
    errors: 
    attributes: 
     email: 
     blank: "El email no puede estar en blanco" 

但是随着presence: true提交表单时,验证总是包括属性在邮件的开头:

Email El email no puede estar en blanco 

第一“的电子邮件“这个词是没有必要的。我怎样才能摆脱它?

回答

7

好了,经过多次的阅读和重新阅读官方的国际化导向,我在第5.2.2节这个发现:

::加载ActiveModel错误#full_messages预先将属性名称到 错误信息使用将从 errors.format(以及默认为“%{attribute}%{message}”)中查找的分隔符。

所以,解决的办法是配置格式,例如:

es: 
    errors: 
    format: "%{message}" 
    attributes: 
     email: 
     blank: "El email no puede estar en blanco" 
2

而是包括在错误信息的字段名称,让每个消息的每个字段翻译的,可以提供翻译用于通用消息和字段名称本身。生成的配置/区域设置/ en.yml有一个链接到更多的翻译:https://github.com/svenfuchs/rails-i18n/tree/master/rails/locale从那里下载使用适当的文件(S),并提供现场翻译名称与轨道的I18n指南中证实:http://guides.rubyonrails.org/i18n.html#translations-for-active-record-models

看到这个答案示例:https://stackoverflow.com/a/2859275/18038