在设计电子邮件中使用自定义区域设置

时间:2012-03-20 17:05:59

标签: ruby-on-rails devise i18n-gem

我在rails中使用devise_invitable gem,我在rails应用程序中配置了许多语言环境。我想做的是邀请用户使用我自己指定的语言环境。我可以看起来像这样:

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

即使I18n.localeen,也会发送一封包含“fr”作为区域设置的电子邮件。

这是否可行,即使语法与我上面使用的语法完全不同

1 个答案:

答案 0 :(得分:0)

挖掘时,我发现devise_invitable使用devise邮件程序,请参阅source。我不是100%确定I18n.t究竟是如何工作的,但我想你知道这一点。因此,使用alias_method_chaintranslate方法进行修补。要传递其他语言,您可以选择一种语言:

  1. 修改整个调用堆栈以传递变量
  2. 通过Thread.current[]使用伪全局变量。
  3. 我建议使用2.,做出你的选择。然后使用该变量返回正确的翻译。