Sto usando devise gem e voglio tradurre mail di conferma. Ho già avuto il mio modello e mailer override metodo:Modello di posta proprio inventato e localizzato
class LocalizedDeviseMailer < Devise::Mailer
def confirmation_instructions(record, locale)
@locale = locale
super
end
end
Così, nel mio modello posso fare qualcosa di simile:
I18n.locale = @locale
E poi:
t("it.really.works")
Ma don So come passare la mia variabile con le impostazioni locali al metodo mailer. Qual è il modo migliore per farlo? Qualsiasi aiuto sarebbe apprezzato.
Grazie per la risposta. Stavo provando quella soluzione, ma fallisce quando non ho le impostazioni internazionali nel percorso e il modello è personalizzato (creato da me, non fornito da Idea). Sfortunatamente, non sono in grado di modificare il routing, quindi probabilmente solo la soluzione è aggiungere il campo locale nel modello Utente. – zachar
È possibile specificare una localizzazione predefinita nei percorsi http://guides.rubyonrails.org/i18n.html 'scope" (: locale) ",: locale =>/it | it/do risorse: gli utenti fine' e verrà utilizzato il modello personalizzato (il modello sovrascritto da' rails generate devise: views') –
Of Certo, ma non sono autorizzato a farlo in questo progetto. Non dipende da me questa volta. Comunque, grazie per l'aiuto. Ho dovuto aggiungere l'attributo locale al modello utente e ora funziona come un incantesimo. – zachar