我创建了一个使用Thymeleaf作为模板引擎的Spring Boot Web应用程序。我将MessageSource设置为在子文件夹中查找消息:
MessageSource
@Bean public MessageSource messageSource() { final ReloadableResourceBundleMessageSource messageSource = new ReloadableResourceBundleMessageSource(); messageSource.setBasename("i18n/messages"); messageSource.setFallbackToSystemLocale(false); messageSource.setCacheSeconds(0); return messageSource; }
在这个文件夹中,我创建了messages_de.properties包含内容的文件ticket.type.BUG=Fehler。在我的模板中,我尝试显示如下文本:
messages_de.properties
ticket.type.BUG=Fehler
<p th:text="#{ticket.type.BUG}">BUG</p>
但是在呈现页面时,我得到以下信息:
<p>??ticket.type.BUG_de_DE??</p>
我想念什么?我是否需要配置任何其他bean?
PS:
在“服务器端”,我可以使用获取消息MessageSource#getMessage("ticket.type.BUG", null, Locale.GERMANY)。
MessageSource#getMessage("ticket.type.BUG", null, Locale.GERMANY)
由于我使用的MessageSource是Spring Boot,因此配置了MessageSourceAutoConfiguration。这些设置可以在application.properties文件中轻松更改。就我而言,我必须在此文件中添加以下内容:
MessageSourceAutoConfiguration
application.properties
spring.messages.basename=i18n/messages