syv
syv

Reputation: 3608

SpringBoot Multilingual Configuration

Im implementing Multilingual in SpringBoot application, after following configuration I'm getting property file couldn't be loaded

Folder Name

src/main/resources/i18n/messages

Property File Name

messages_us.properties

In Application Main 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;
}

In Controller

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

Header

Accept-Language:us

I get this warining

[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

Upvotes: 1

Views: 2370

Answers (1)

Shawn Clark
Shawn Clark

Reputation: 3440

The problem is your directory structure. When you specify the base names as i18n/messages the framework will look for files like i18n/messages_en.properties. the base name is the directory AND base filename.

Upvotes: 2

Related Questions