で機能するための変数を含む遅延翻訳文字列を渡し、私はそのような件名を作成:はDjangoのビュー内ジャンゴ
:subject = _(u"%(user)s has posted a comment") % { 'user': user }
それから私は、電子メール通知を処理する関数、この主題を渡します
send_notifications(request, subject, url)
send_notificationsでは、すべての購読を繰り返し、電子メールを送信します。しかし、各ユーザは、異なる言語を持つことができるので、私は、Djangoのアクティブ化を経由して、動的にユーザの言語をアクティブ化:
def send_notifications(request, subject, url):
from django.utils.translation import activate
for s in Subscription.objects.filter(url=url):
activate(s.user.userprofile.lang)
send_mail(subject, render_to_string('notification_email.txt', locals()), settings.SERVER_EMAIL, [s.user.email])
テンプレートは、各ユーザーの正しい言語でレンダリングされます。ただし、件名は評価され翻訳された文字列としてsend_notificationsに渡されるため、翻訳されません。
私はパラメータとしてレイジー変換とラムダ関数を使用しましたが、成功しませんでした。すべてのヘルプ感謝:)
ありがとうございます。それは本当に良い答えです - ちょうど投票!しかし、問題は:send_notificationは、サブジェクトで使用されているユーザ変数を知らないため、非常に一般的な通知機能です。だから私はテーマテンプレートの 'ユーザー'オブジェクトにアクセスすることはできません: - P –
ああ、あなたの元の答えに非常にクールな追加!ありがとう!私はその変更についての通知を得ておらず、ちょうど今偶然それに遭遇しました。 –