【发布时间】:2021-04-17 13:40:53
【问题描述】:
application.properties
spring.messages.basename=i18n/messages
/home/michael/IdeaProjects/adsmanager/application/src/main/resources/i18n/messages_de_DE.properties
greeting=Willkommen!
/home/michael/IdeaProjects/adsmanager/application/src/main/resources/i18n/messages_en_US.properties
greeting=Welcome!
GeneralConfig.java
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.LocaleResolver;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
import org.springframework.web.servlet.i18n.LocaleChangeInterceptor;
import org.springframework.web.servlet.i18n.SessionLocaleResolver;
import java.util.Locale;
@Configuration
public class GeneralConfig implements WebMvcConfigurer {
@Bean
public LocaleResolver localeResolver() {
SessionLocaleResolver sessionLocaleResolver = new SessionLocaleResolver();
sessionLocaleResolver.setDefaultLocale(Locale.US);
return sessionLocaleResolver;
}
@Bean
public LocaleChangeInterceptor localeChangeInterceptor() {
LocaleChangeInterceptor lci = new LocaleChangeInterceptor();
lci.setParamName("lang");
return lci;
}
@Override
public void addInterceptors(InterceptorRegistry registry) {
registry.addInterceptor(localeChangeInterceptor());
}
}
home.html
<div th:text="#{greeting}"></div>
http://localhost:8080/
??greeting_en_US??
http://localhost:8080/?lang=de_DE
??greeting_de_DE??
顺便说一句,我尝试将消息属性直接放置到资源文件夹中,并从 application.properties 中删除 basename 注释。同样的结果。
我该如何解决这个问题?
【问题讨论】:
标签: spring spring-boot