如何解决在模板中将电子邮件的i18n主题保留在哪里?弹簧靴
我们使用模板引擎发送本地化为用户语言的电子邮件,以加载在不同模板文件中本地化的电子邮件的 body :
public void sendTemplate(String from,String to,String subject,Locale loc,String template,Map<String,Object> templateVariables);
对于每个模板,我们保留一个 plain 和一个 html 版本,它们都将以多部分消息的形式结束。
src/main/resources/templates/emails
- newMessage_html_de.ftl
- newMessage_html_en.ftl
- newMessage_plain_de.ftl
- newMessage_plain_en.ftl
可以很好地翻译电子邮件正文。
问题
我想知道在哪里/如何以本地化方式存储和检索主题?
方法0
我们目前为每个翻译的所有主题保留一个文件:
src/main/resources/templates/emails
- subjects_en.properties
- subjects_de.properties
但这很容易出错。相反,我想让主体保持靠近主体模板。
方法1
从开发的角度来看,我们很容易就可以为主题添加另外两个文件:
- newMessage_html_de.ftl
- newMessage_html_en.ftl
- newMessage_plain_de.ftl
- newMessage_plain_en.ftl
- newMessage_subject_en.ftl
- newMessage_subject_de.ftl
但这感觉过度设计(考虑到其中两个文件总是包含一行),并且在处理6个文件时很难跟踪其心理状况,特别是对于最终会编写这些文件的非技术人员而言文件。
方法2
我考虑过的另一种方法是将主题作为模板的第一行添加到电子邮件的普通版本中,如下所示:
newMessage_plain_en.ftl
New Message!
------------
Hello ${TO}!
You have a new message. View message: ${CHAT_URI}
${FOOTER}
而html模板仅包含正文:
newMessage_html_en.ftl
<html>
<body>
<p>Hello <strong>${TO}</strong>!</p>
<p>You have a new message. <a href="${CHAT_URI}">View message</a></p>
${FOOTER_HTML}
</body>
</html>
问题
重复并阐述我的问题:
我想知道在哪里/如何以本地化方式存储和检索主题?
此问题是否存在通用的事实上的标准或最佳实践?您会选择哪种方法,为什么?您知道解决该问题的另一种方法吗?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。