Tapestry 5中电子邮件模板的本地化?

时间:2018-10-05 10:59:17

标签: localization tapestry email-templates

Tapestry为他们的页面和组件提供了强大的本地化支持。 我想发送与用户语言首选项相对应的本地化电子邮件。

有人遇到过本地化与Tapestry集成良好的电子邮件模板的解决方案吗? (我不介意这是否不是使用Tapestry的模板引擎)

1 个答案:

答案 0 :(得分:0)

我为每种语言创建了一个单独的目录/程序包,并检索了模板文件。然后使用ThreadLocale..getLocale().getLanguage()检索当前用户的电子邮件,以便我也可以使用该语言发送电子邮件。 这是相关的代码段:

public class MailSender {
    private static final String EMAIL_TEMPLATE_ROOT = "com/xxx/emailtemplate/";

    @Inject
    private ThreadLocale locale;

    public void sendEmail(..., final String emailTemplateFileName) {
        String emailTemplateFilePath = getEmailTemplateFilePath(emailTemplateFileName);
        ....
    }

    private String getEmailTemplateFilePath(String templateLocation) {
        String language = locale.getLocale().getLanguage();

        return EMAIL_TEMPLATE_ROOT + language + "/" + templateLocation;
    }
}

这不是特定于模板引擎的。您可以将这种技术与您的收藏夹一起使用。 (我保留了项目已使用的Velocity)