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
Edit:
Я попытался определить мои ключи следующим образом:
mail_layout_contactus=Contacteer ons
mail_layout_greeting=Hoi
который работает