in a multilingual site dev, I need to send localized emails…
as I need to define the @template in the mailer method, I don’t want
to take in account the I18n.locale:
I wrote in my mailer method
def welcome(user, message)
@user = user
language = user.language # es_ES testing
@template = "#{ActionMailer::Base::template_root}/user_mailer/
#{language}/welcome"
@message = message
mail(:to => user.email, :subject => “Welcome”) do |format|
format.html { render :layout => “/mailer/
sbga_user_mail”, :template => @template }
format.text {render :layout => false, :template =>
@template}
end
end
and I have the views :
views
----- user_mailer
---------- -en_GB
--------------- welcome.html.erb
--------------- welcome.text.erb
--------- -es_ES
--------------- welcome.html.erb
--------------- welcome.text.erb
but sending an email to a Spanish user,
UserMailer.welcome(current_user, “Lorem ipsum dolor”).deliver , with
I18n.locale = :en_GB raises an error :
ActionView::MissingTemplate: Missing template /Users/yves/Sites/rails/
testsbga/app/views/user_mailer/es_ES/welcome with
{:handlers=>[:erb, :rjs, :builder, :rhtml, :rxml, :haml],
:formats=>[:html], :locale=>[:en_GB]}
in view paths
as I18n.locale is defined to :en_GB…
it seems to be looking for welcome.en_GB.html.erb in /views/
user_mailer/es_ES/
how can I inform mailer that I don’t want to use locale views … ?