播放框架 1.x 上的电子邮件模板国际化/本地化
Posted
技术标签:
【中文标题】播放框架 1.x 上的电子邮件模板国际化/本地化【英文标题】:Email template internationalisation / localisation on play framework 1.x 【发布时间】: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在清除或添加新的语言环境后没有改变。
有什么线索吗?
【问题讨论】:
我最终在请求中添加了接受语言标头,无论如何,如果可能的话,我希望能够传递一个区域设置以从电子邮件呈现/发送... 【参考方案1】:我不是 100% 它会在你的情况下工作,但可能会在电子邮件呈现之前调用 Lang.set(locale)
。
【讨论】:
以上是关于播放框架 1.x 上的电子邮件模板国际化/本地化的主要内容,如果未能解决你的问题,请参考以下文章