Используйте пользовательский язык в письмах разработчиков - PullRequest
2 голосов
/ 20 марта 2012

Я использую devise_invitable gem в рельсах, и я настроил несколько локалей в своем приложении rails. Я хотел бы пригласить пользователя с локалью, которую я бы сам указывал. Я мог бы выглядеть примерно так:

User.invite!(:email => "test@example.com", :locale => 'fr')

При этом будет отправлено электронное письмо с языком 'fr', даже если I18n.locale будет en.

Возможно ли это, даже с совершенно другим синтаксисом, чем тот, который я использую выше ?

1 Ответ

0 голосов
/ 20 марта 2012

Копая, я обнаружил, что devise_invitable использует почтовую программу devise, см. source .Я не уверен на 100%, как работает I18n.t, но я полагаю, вы это знаете.Поэтому используйте alias_method_chain, чтобы обезопасить метод translate.Чтобы передать другой язык, вы можете выбрать один из них:

  1. изменить весь стек вызовов для передачи переменной
  2. , используя псевдоглобальную переменную через Thread.current[].

Я предлагаю использовать 2., сделайте свой выбор.Затем используйте эту переменную для возврата правильного перевода.

...