【发布时间】:2015-10-19 12:39:44
【问题描述】:
我正在开发一个移动应用程序并使用 play 作为我们的服务器部分,但在电子邮件的国际化/本地化部分遇到了问题。 我看到 play 从接受语言头中获取语言环境,但在我的情况下,其余请求来自我们的 Android 客户端,语言环境是通过参数发送的,而不是通过请求头。 我的问题是:例如,当我获得电子邮件主题的国际化版本时,这是以编程方式完成的,因此我可以将语言环境参数发送到 getMessage,但是,当我使用 play 邮件程序中的“发送”方法时,txt 模板使用标头的信息,与通过 rest 服务传递的语言环境参数不完全匹配。 我试过这种方法没有运气:
在休息控制器上:
...
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在清除或添加新的语言环境后没有改变。
有什么线索吗?
【问题讨论】:
-
我最终在请求中添加了接受语言标头,无论如何,如果可能的话,我希望能够传递一个区域设置以从电子邮件呈现/发送...
标签: playframework playframework-1.x