Playframework play framework 1.x上的电子邮件模板国际化/本地化

Playframework play framework 1.x上的电子邮件模板国际化/本地化,playframework,playframework-1.x,Playframework,Playframework 1.x,我正在开发一款移动应用程序,并将play用作我们的服务器部分,但在电子邮件的国际化/本地化部分遇到了问题。 我看到play从accept language标头获取区域设置,但在我的例子中,rest请求来自我们的Android客户端,区域设置通过参数发送,而不是通过请求标头发送。 我的问题是:例如,当我获得电子邮件主题的国际化版本时,这是通过编程完成的,因此我可以向getMessage发送一个locale参数,但是,当我使用play的邮件程序中的“send”方法时,txt模板会使用标题的信息,这与

我正在开发一款移动应用程序,并将play用作我们的服务器部分,但在电子邮件的国际化/本地化部分遇到了问题。 我看到play从accept language标头获取区域设置,但在我的例子中,rest请求来自我们的Android客户端,区域设置通过参数发送,而不是通过请求标头发送。 我的问题是:例如,当我获得电子邮件主题的国际化版本时,这是通过编程完成的,因此我可以向getMessage发送一个locale参数,但是,当我使用play的邮件程序中的“send”方法时,txt模板会使用标题的信息,这与通过rest服务传递的locale参数不完全匹配。 我尝试过这种方法,但运气不佳:

在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):

但是,我仍然得到英文模板,例如发送一个区域设置为“pt”

调试时,我看到在清除或添加新的区域设置后,请求的acceptLanguage没有改变


有什么线索吗?

我不是100%对您的情况有效,但可能会在电子邮件呈现之前调用
Lang.set(locale)

我已经在请求上添加了accept language标头,无论如何,如果可能的话,我希望能够传递一个locale来呈现/发送电子邮件。。。
&{'email.passwordRecoverByEmail.hello'} ${user.username},

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

&{'email.passwordRecoverByEmail.body2'}