Как перевести тело сообщения электронной почты с помощью драгоценного камня I18n?

Я использую Ruby on Rails 3.1.1, и я пытаюсь перевести тело сообщения электронной почты. Я создал / указал все необходимые "вещи" (файлы YAML, пары ключ / значение, ...), чтобы гем I18n работал: сообщения электронной почты отправляются без проблем с использованием языка по умолчанию (: en ) .

Затем я добавил новый язык и сделал все, что нужно было сделать, чтобы гем I18n работал с другим языком и всегда получал параметр locale = de в URL-адресах.

class ApplicationController < ActionController::Base
  before_filter :set_locale

  def set_locale
    if params[:locale] && I18n.available_locales.include?(params[:locale].to_sym)
      I18n.locale = params[:locale]
    end
  end

  ...
end

Однако, когда я отправлял электронное письмо, даже если языковой стандарт задан правильно (например: locale = de ), отправленное электронное сообщение не переводится (они по-прежнему используют значение по умолчанию : en ] язык).

Как заставить I18n переводить тело сообщений электронной почты?


  • Я прочитал сообщение в блоге Localized ActionMailer Templates for Rails но он старый, и я не тестировал это ...
  • Я прочитал сообщение в блоге Rails I18n и электронные письма и проверил его. Это работает, но как в моем случае обрабатывать перевод (я использую метод params ...)? Есть ли лучшее решение?

10
задан Backo 12 January 2012 в 16:14
поделиться