2

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

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

这将发送一封带有“fr”作为 locale 的电子邮件,即使I18n.localeen

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

4

1 回答 1

0

挖掘,我发现devise_invitable使用devise邮件程序,请参阅源代码。我不是 100% 确定究竟是如何I18n.t工作的,但我想你知道这一点。所以使用alias_method_chain猴子补丁translate方法。要通过另一种语言,您可以选择一种:

  1. 修改整个调用堆栈以传递变量
  2. 通过 . 使用伪全局变量Thread.current[]

我建议使用2.,做出你的选择。然后使用该变量返回正确的翻译。

于 2012-03-20T17:31:44.440 回答