Я пытаюсь сделать интернационализацию для своих шаблонов, но я не уверен, что это наиболее эффективный способ сделать это следующим образом.
Я извлек сообщения в пакет ресурсов и использую метод MessageSource getMessage(String var1, @Nullable Object[] var2, Locale var3)
, чтобыполучить перевод на основе локали, а затем поместить его в модель и обработать шаблон.
private String processTemplate(String templateName, String locale) {
try {
String greeting = messageSource.getMessage("messages.greeting", null, new Locale(locale));
Map<String, String> model = new HashMap<>();
model.put("greeting", greeting);
Template template = freemarkerConfiguration.getConfiguration().getTemplate(templateName);
return FreeMarkerTemplateUtils.processTemplateIntoString(template, model);
} catch (IOException | TemplateException e) {
log.error("Error when processing template {}", templateName);
throw new EmailNotSentException();
}
}
У меня вопрос: есть ли более эффективный способ обработки шаблона таким образом?Или лучше было бы иметь интернационализацию для шаблонов?