电子邮件模板国际化/本地化的游戏框架1.x



我正在开发一款手机应用,并使用play作为我们的服务器部分,但在电子邮件的国际化/本地化部分遇到了困难。我看到play从accept language headers获取locale,但是,在我的例子中,其余的请求来自我们的Android客户端,并且locale是通过参数发送的,而不是通过request header。我的问题是:当我得到电子邮件主题的国际化版本时,例如,这是通过编程完成的,所以我可以向getMessage发送一个区域参数,但是,当我使用play的Mailer的"send"方法时,txt模板使用标题的信息,这与通过其余服务传递的区域参数不完全匹配。我尝试过这种方法,但没有成功:

On rest controller:

...
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在清除或添加新的语言环境后没有改变。

什么线索吗?

我不是100%它会在您的情况下工作,但可能在电子邮件渲染之前调用Lang.set(locale)

最新更新