MessageSourceConfig.java
package com.github.jenkaby.bikerental.shared.config;
import org.springframework.context.MessageSource;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.support.ResourceBundleMessageSource;
import org.springframework.web.servlet.LocaleResolver;
import org.springframework.web.servlet.i18n.AcceptHeaderLocaleResolver;
import java.util.Arrays;
import java.util.List;
import java.util.Locale;
@Configuration
public class MessageSourceConfig {
@Bean
Locale defaultLocale(AppProperties appProperties) {
return Locale.forLanguageTag(appProperties.defaultLocale());
}
@Bean
public MessageSource messageSource(Locale defaultLocale) {
ResourceBundleMessageSource messageSource = new ResourceBundleMessageSource();
messageSource.setBasename("messages");
messageSource.setDefaultEncoding("UTF-8");
messageSource.setDefaultLocale(defaultLocale);
messageSource.setFallbackToSystemLocale(true);
messageSource.setUseCodeAsDefaultMessage(true);
return messageSource;
}
@Bean
public LocaleResolver localeResolver(Locale defaultLocale) {
AcceptHeaderLocaleResolver localeResolver = new AcceptHeaderLocaleResolver();
localeResolver.setDefaultLocale(defaultLocale);
List<Locale> supportedLocales = Arrays.asList(
Locale.forLanguageTag("ru"),
defaultLocale
);
localeResolver.setSupportedLocales(supportedLocales);
return localeResolver;
}
}