2012-02-08 52 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