电子邮件模板国际化/本地化在播放框架1.x

时间:2015-10-19 12:39:45

标签: playframework playframework-1.x

我正在开发一个移动应用程序并使用play作为我们的服务器部分,并且陷入了电子邮件的国际化/本地化部分。 我看到播放从接受语言标题中获取区域设置,但在我的情况下,其余请求来自我们的Android客户端,并且区域设置是通过参数发送的,而不是通过请求标头发送的。 我的问题是:当我获得电子邮件主题的国际化版本时,例如,这是以编程方式完成的,因此我可以向getMessage发送一个语言环境参数,但是,当我使用play的Mailer中的“send”方法时,txt模板使用标题的信息,与通过其余服务传递的语言环境参数不完全匹配。 我试过这种方法没有运气:

在休息控制器上:

...
request.acceptLanguage().clear();
request.acceptLanguage().add(locale); // locale is the param which contains "en", or "pt" or other languages
...
Mails.passwordRecoverByEmail(locale, user, password);
...

我的模板看起来像这样的东西(它是一个txt):

&{'email.passwordRecoverByEmail.hello'} ${user.username},

&{'email.passwordRecoverByEmail.body'} ${newPassword}.

&{'email.passwordRecoverByEmail.body2'}

但是,我仍然使用英语获取模板,例如将语言环境发送为“pt”。

调试我看到清除或添加新语言环境后请求的acceptLanguage没有改变。

任何线索?

1 个答案:

答案 0 :(得分:0)

对于您的情况,我不是100%可以使用,但可能会在发送电子邮件之前致电Lang.set(locale)