понедельник, 10 июня 2019 г.

MessageSource message.properties Spring i18n интернационализация сообщений




  • @Bean("messageSource")
    public ReloadableResourceBundleMessageSource messageSource() {
        ReloadableResourceBundleMessageSource messageSource = new ReloadableResourceBundleMessageSource();    messageSource.setBasename("classpath:messages/messages"); // любой путь к файлу    messageSource.setDefaultEncoding("UTF-8");    return messageSource;}
     
    // Ключевое - ReloadableRes.... - reloadable - поддержка любого пути. 
     
  •  
    @Componentpublic class Translator {
    
        private static MessageSource messageSource;
        @Autowired    Translator(MessageSource messageSource) {
            Translator.messageSource = messageSource;    }
    
        public static String toLocale(String msgCode, Object[] args) {
            Locale locale = LocaleContextHolder.getLocale();//        Locale tmp = new Locale("ru");        return messageSource.getMessage(msgCode, args, locale);    }
    }
  •  
    Translator.toLocale("respMsg.savedOK", null)
  •  messages_ru_RU.properties: 
    respMsg.savedOK=Сохранено
  •