14

Sto usando Rails 3.1.1 e vorrei tradurre correttamente i messaggi di errore per uno ActiveModel. Non so se la sovrascrittura del i18n_scope è il modo giusto per risolvere il mio problema (o se ci sono altri modi), ma il official documentation dice:Come gestire le traduzioni per un ActiveModel?

i18n_scope()

Restituisce l'i18n_scope per la classe. Sovrascrivi se si desidera la ricerca personalizzata di .

... in che modo devo eseguire il superlegamento dello i18n_scope?

In questo momento sto ottenendo un seguente "avviso":

# Note the 'activemodel' part 
translation missing: de.activemodel.errors.models.my_class.attributes.message.blank 

# I would like to "map" translations to 'de.activerecord.errors.messages.blank' 
# as made for all other ActiveRecord classes in my application 

La mia classe ActiveModel è simile al seguente:

class MyClass 
    include ActiveModel::Conversion 
    include ActiveModel::Validations 
    include ActiveModel::Dirty 
    extend ActiveModel::Naming 
    extend ActiveModel::Translation 

    validates :name, :presence => true 

    ... 
end 

risposta

9

dovrebbe essere un metodo di classe, per analogia con AR code:

class MyClass 
    include ActiveModel ... 
    class << self 
    def i18n_scope 
     :activerecord 
    end 
    end 
end 
+0

Perfetto! Ha funzionato per me Solo per curiosità, sai come è la struttura yml per un modello di classe activemodel? –

1

Devo scusarmi se la mia risposta è sbagliata, ma penso che il seguente link possa essere utile per voi. http://api.rubyonrails.org/classes/ActiveModel/Errors.html

Questo può essere può aiutare ->https://github.com/svenfuchs/activemodel-error

o si può essere provare nel file di de.yml

de:

activemodel: 

    errors: 

    my_class: 

     attributes: 

     message: 

      blank: "your error description" 

l'ultima soluzione, si può si usi questa gemma--> https://github.com/svenfuchs/rails-i18n tradurrà automaticamente i messaggi di errore per noi.