У меня есть электронный шаблон .vm, который содержит Сообщ с ключом сообщения от messages_en.properties:Velocity шаблон - ключевое сообщение вместо всей фразы с заполнителями
#msg("email-body")
messages_en.properties имеет:
email-body = Hello, $name!
После того, как:
private String buildMessage(String templateName, Properties properties, Locale locale) {
Template template = getVelocityEngine().getTemplate(templateName);
VelocityContext context = new VelocityContext();
for (String key : properties.stringPropertyNames()) {
context.put(key, properties.getProperty(key));
}
context.put(LocaleDirective.MESSAGES_LOCALE, locale);
StringWriter writer = new StringWriter();
template.merge(context, writer);
return writer.toString();
}
я получаю:
Hello, $name!
И имя не заменяется действительным значением.
Каков наилучший способ управления фразами в шаблоне электронной почты? Я хочу вставить только шаблон сообщения в шаблон, а не всю фразу с заполнителем.
Это работает, если все сообщения (в данном случае с электронной почтой тела) помещаются в VelocityContext, но если я попробуйте загрузить #msg, а затем # evaluate в .vm-файле, которого нет. – Justas
Что такое 'msg' и какой оператор не работает? –
# evaluate ('# msg ("email-body")') выводит Hello, $ name! – Justas