我正在开发一个移动应用程序并使用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没有改变。
任何线索?
答案 0 :(得分:0)
对于您的情况,我不是100%可以使用,但可能会在发送电子邮件之前致电Lang.set(locale)
。