MessageSource与Thymeleaf使用Locale不一致的问题求助
MessageSource与Thymeleaf使用Locale不一致的问题求助
嗨,各位大佬,我最近碰到了一个Spring Boot国际化的问题,折腾了好久都没搞定,想请教下大家!
我在项目里配置了基于会话属性的Locale解析,代码如下:
@SpringBootApplication @ServletComponentScan @Configuration public class Webapp { // Thymeleaf @Bean public LayoutDialect layoutDialect() { return new LayoutDialect(); } @Bean public LocaleResolver localeResolver() { SessionLocaleResolver localeResolver = new SessionLocaleResolver(); localeResolver.setLocaleAttributeName("user_locale"); // Not strictly needed localeResolver.setDefaultLocale(Locale.ENGLISH); return localeResolver; } @Bean public MessageSource messageSource() { ReloadableResourceBundleMessageSource messageSource = new ReloadableResourceBundleMessageSource(); messageSource.setBasename("classpath:lang/messages"); messageSource.setDefaultEncoding("UTF-8"); return messageSource; } public static void main(String[] args) { SpringApplication.run(Webapp.class, args); } }
现在的情况是,Thymeleaf模板里用#{...}语法的时候完全没问题——能根据session里设置的语言(比如XX),正确从对应的messages_XX.properties文件里读取翻译内容。但是当我直接调用messageSource.getMessage(text, null, null)方法时,不管session里的Locale是什么,总是返回英文的内容。
我现在完全摸不着头脑,不知道该从哪里开始调试,有没有大佬能帮我分析下问题出在哪,或者给点调试的方向呀?
备注:内容来源于stack exchange,提问作者qarabala
相关产品推荐
相关产品推荐

