SpringBoot多语言配置

SpringBoot Multilingual Configuration

我在 SpringBoot 应用程序中实现多语言,在配置之后我得到 属性 无法加载文件

文件夹名称

src/main/resources/i18n/messages

属性 文件名

messages_us.properties

在主应用程序中 class

@Bean
public LocaleResolver localeResolver() {
 SessionLocaleResolver resolver = new SessionLocaleResolver();
 resolver.setDefaultLocale(Locale.US); 
 return resolver;
}

@Bean
public ResourceBundleMessageSource messageSource() {
 ResourceBundleMessageSource source = new ResourceBundleMessageSource();
 source.setBasenames("i18n/messages");
 source.setUseCodeAsDefaultMessage(true);
 return source;
}

在控制器中

@RequestMapping("/msg")
       public String msg(@RequestHeader("Accept-Language") Locale locale){
          return messageSource.getMessage("msg",null,locale);
       }

页眉

Accept-Language:us

我收到警告

[36mo.s.c.s.ResourceBundleMessageSource [0;39m [2m:[0;39m ResourceBundle [i18n/messages] not found for MessageSource: Can't find bundle for base name i18n/messages, locale us

问题出在你的目录结构上。当您将基本名称指定为 i18n/messages 时,框架将查找类似 i18n/messages_en.properties 的文件。基本名称是目录和基本文件名。