Как я могу отправлять письма в почтовой программе, используя язык получателя. У меня есть предпочтительный язык для каждого пользователя в базе данных. Обратите внимание, что это отличается от текущей локали (I18n.locale), если текущий пользователь не должен быть получателем. Поэтому труднее всего использовать почтовую программу в другом языковом стандарте без изменения I18n.locale:
def new_follower(user, follower)
@follower = follower
@user = user
mail :to=>@user.email
end
Использование I18n.locale = @ user.profile.locale перед mail: to => ... решит проблему почтовой программы, но изменить поведение в остальной части потока.
Этот простой плагин был разработан для Rails 2, но, похоже, работает и в Rails 3.
http://github.com/Bertg/i18n_action_mailer
С его помощью вы можете делать следующее:
def new_follower(user, follower)
@follower = follower
@user = user
set_locale user.locale
mail :to => @user.email, :subject => t(:new_follower_subject)
end
Тема и почтовые шаблоны затем переводятся с использованием локали пользователя.