HI,
У меня в приложении есть типичный файл messages.properties
.
Я пытаюсь создать электронное письмо с помощью Freemarker.
Шаблон Freemarker должен сгенерировать String
, после чего я отправлю пользователю String
по электронной почте. Однако нам он нужен многоязычный.
Итак, мне пришло в голову Properties
.
Мой файл свойств выглядит так:
mail.layout.contactus=Contacteer ons
mail.layout.greeting=Hoi
В Java я ввожу файл Properties
в мою HashMap
вот так :
rootMap.put("lang", (mail.getLanguage().equals(Language.FRENCH) ? langFR : langNL));
И попробуйте прочитать его в FreeMarker следующим образом:
<p>${lang.mail.layout.greeting} ${user.firstname},</p>
Но получите следующее исключение:
freemarker.core.InvalidReferenceException: Expression lang.mail is undefined on line 10, column 116 in layout/email.ftl.
Как ни странно, там написано только lang.mail
в отличие от lang.mail.layout .greeting
Изменить: Я попробовал определить свои ключи следующим образом:
mail_layout_contactus=Contacteer ons
mail_layout_greeting=Hoi
, который действительно работает