Как я могу достичь i18n с помощью механизма шаблонов, такого как Velocity или FreeMarker, для построения тела электронной почты?
Обычно люди склонны создавать шаблоны, например:
<h3>${message.hi} ${user.userName}, ${message.welcome}</h3>
<div>
${message.link}<a href="mailto:${user.emailAddress}">${user.emailAddress}</a>.
</div>
И у вас есть ресурсный пакет, созданный с такими свойствами, как:
message.hi=Hi
message.welcome=Welcome to Spring!
message.link=Click here to send email.
Это создает одну основную проблему: если мои файлы .vm
становятся большими со многими строками текста, становится утомительно переводить и управлять каждым из них в отдельных файлах ресурсов (.properties
).
То, что я пытаюсь сделать, это создать отдельный файл .vm
, созданный для каждого языка, что-то вроде mytemplate_en_gb.vm, mytemplate_fr_fr.vm, mytemplate_de_de.vm
, а затем как-то сказать Velocity/Spring выбрать правильный, основанный на вводе Locale.
Возможно ли это в Spring? Или я должен смотреть на, возможно, более простые и очевидные альтернативные подходы?
Примечание. Я уже видел Spring учебник о том, как создавать тела электронной почты с использованием шаблонов. Но, похоже, он не отвечает на мой вопрос по i18n.