Ich benutze ein Juwel und möchte Bestätigungsmail übersetzen. Ich habe bereits eine eigene Vorlage und eine überschriebene Mailer-Methode:
%Vor%Also, in meiner Vorlage kann ich so etwas machen:
%Vor%Und dann:
%Vor%Aber ich weiß nicht, wie ich meine Variable mit Locale an die Mailer-Methode übergeben soll. Was ist der beste Weg, das zu tun? Jede Hilfe wäre willkommen.
Devise bietet die Lokalisierung von Mail-Vorlagen "nativ" an.
Sehen Sie sich den Quellcode des Geräts an
Ссылка In dieser Datei wird erläutert, wie Sie den Betreff lokalisieren können (der zu Ihren Länderdateien hinzugefügt wird).
%Vor%Dies ist dann die Körpervorlage, die Sie wie jede andere html.erb
lokalisieren müssen Abhängig davon, ob Ihr neuer Benutzer sign_up mit http://yoursite/it/users/sign_up
oder http://yoursite/en/users/sign_up
(wie es normalerweise auf Ihren Routen für Ihre lokalisierte Anwendung der Fall wäre) den guten lokalisierten Betreff und die Mail (im ersten Fall auf Italienisch, im zweiten Fall in Englisch) wird gesendet.
Ich empfehle, Ihrem Benutzermodell eine Spalte locale
hinzuzufügen und Ihren eigenen Mailer zu verwenden.
Auf diese Weise haben Sie auch mehr Flexibilität, wenn Sie Ihre eigenen Stylesheets und from
-Felder erstellen oder zusätzliche Mails hinzufügen möchten.
in config/initializer/devise.rb
:
in app/mailers/user_mailer.rb
Ich denke, der einfachste Weg, dies zu tun, besteht darin, es in die Akten aufzunehmen. Sie können also eine Gebietsschema-Spalte in Ihrem Benutzer hinzufügen, oder fügen Sie in Ihrem Benutzermodell ein attr_accessor :locale
hinzu
Sie müssen also nur dieses Gebietsschema in Ihrem Datensatz definieren und es mit I18n.locale = record.locale
Tags und Links ruby ruby-on-rails devise internationalization actionmailer