Настройки и ответы IntelIj
Создание загрузочного приложения Spring
Создание источника сообщений Bean
@Bean
public MessageSource messageSource() {
ReloadableResourceBundleMessageSource messageSource
= new ReloadableResourceBundleMessageSource();
messageSource.setBasename("classpath:messages");
messageSource.setDefaultEncoding("UTF-8");
messageSource.setCacheSeconds(5);
return messageSource;
}
Вкл каталог ресурсов создать два файла
messages.properties
sayhello= Namaste
messages_np.properties
sayhello= नमस्ते
Создать CustomMessageSource
@Component
public class CustomMessageSource {
private final MessageSource messageSource;
@Autowired
public CustomMessageSource(MessageSource messageSource) {
this.messageSource = messageSource;
}
public String get(String code) {
return messageSource.getMessage(code, null, getCurrentLocale());
}
public String get(String code, Object... objects) {
return messageSource.getMessage(code, objects, getCurrentLocale());
}
private Locale getCurrentLocale() {
// takes the current active locale
Locale locale = LocaleContextHolder.getLocale();
if (locale.getDisplayLanguage().equalsIgnoreCase("np")) {
locale = new Locale("np", "Nepal");
}
return locale;
}
}
создать контроллер и добавить запрос
@Autowired
CustomMessageSource messageSource;
@RequestMapping("/hi")
public String hi() {
return messageSource.get("hello");
}
Изменить на UTF-8 и прозрачный нативное преобразование в ascii
[Если вы используете Intellij IDEA, GO для настройки и поиска кодировки файла]
[Ответ с Accept-Language en & np]
Ответ почтальона