【问题标题】:Email template internationalisation / localisation on play framework 1.x播放框架 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在清除或添加新的语言环境后没有改变。

有什么线索吗?

【问题讨论】:

  • 我最终在请求中添加了接受语言标头,无论如何,如果可能的话,我希望能够传递一个区域设置以从电子邮件呈现/发送...

标签: playframework playframework-1.x


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 2012-03-14
    • 2012-03-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-19
    • 1970-01-01
    • 2015-09-23
    相关资源
    最近更新 更多