More on i18n, active record error messages
Meanwhile I’m waiting for some fixes to be tossed in into rails core (YAML files instead of ruby for example), here’s how to translate your active record error message in rails edge using the new i18n framework.
I18n.backend.store_translations "it-IT", {
:active_record => {
:error_messages => {
:inclusion => "non è incluso nella lista",
:exclusion => "è riservato",
:invalid => "è invalido",
:confirmation => "non coincide con la conferma",
:accepted => "deve essere accettata",
:empty => "non può essere vuoto",
:blank => "non può essere vuoto",
:too_long => "è troppo lungo (il massimo è {{count}} lettere)",
:too_short => "è troppo corto (il minimo è {{count}} lettere)",
:wrong_length => "è della lunghezza sbagliata (deve essere di {{count}} lettere)",
:taken => "è già in uso",
:not_a_number => "non è un numero",
:greater_than => "deve essere superiore a {{count}}",
:greater_than_or_equal_to => "deve essere superiore o uguale a {{count}}",
:equal_to => "deve essere uguale a {{count}}",
:less_than => "deve essere meno di {{count}}",
:less_than_or_equal_to => "deve essere meno o uguale a {{count}}",
:odd => "deve essere dispari",
:even => "deve essere pari",
:can_only_contain_letters_and_numbers => "può contenere solo lettere e numeri"
}
},
:yes => "sì",
:no => "no"
}
Custom validation message example:
validates_format_of :username, :with => /^\w+$/i, :message => :can_only_contain_letters_and_numbers