0

まず、Ruby On Rails 3.2.x を使用しています。

注文を保存するときに電子メールをトリガーするオブザーバーを実行しています。正確には2つの電子メール、売り手に1つの電子メール、買い手に1つの電子メールです。

すべて問題なく動作し、ActionMailer がメールを送信します。多言語サポートを追加しました。つまり、ユーザーはユーザー設定で好みの言語を設定できます。

残念ながら、ActionMailer は、注文処理をトリガーするユーザーが設定した言語で 2 つの電子メールを送信するようになりました。そのため、注文の相手方は、開始者とは異なる言語で間違った言語を受け取ります。

電子メールを送信するときに ActionMailer で特定のロケール/言語を使用するにはどうすればよいですか?

私は出くわしました

<%= I18n.t('daily_mail.hello', :locale => @user.locale) + @user.name %>

しかし、私は言語ごとに異なる見解を持っているため、うまくいきません。

4

2 に答える 2

0

ある程度の進歩はありますが、解決策は機能しているようで、副作用には気づいていません。

現在のロケールを保存します

tmp = I18n.locale
I18N.locale = User.find(uid).language
# send the emails
I18n.locale = tmp

これは正しい方法ですか?知っておくべき副作用はありますか?

于 2012-05-15T08:03:58.863 に答える