Locale in springboot 2 - PullRequest
       6

Locale in springboot 2

0 голосов
/ 05 октября 2018

Я пытаюсь использовать I18N в своем приложении для весенней загрузки 2

Сначала я создаю файл с именем 'messages_pt_BR.properties' в моем ресурсе / locale / messages с помощью:

Size.Ato.sercicos=Deve conter pelo menos 1 item
Size.atoRtdpj.servicos=Deve conter pelo menos 1 item
Size.servicos=msg1
Size=msg2
validacao_documento_obrigatorio=Documento: Pelo menos 1 precisa estar preenchido

Затем я создаю

@Configuration
public class LocaleConfiguration {

    @Bean
    public LocaleResolver localeResolver() {
        SessionLocaleResolver localeResolver = new SessionLocaleResolver();
        Locale.setDefault(new Locale("pt","BR")); // without this line when I try to get the locale the system return en_BR
        localeResolver.setDefaultLocale(new Locale("pt","BR"));
        return localeResolver;
    }

    @Bean
    public ReloadableResourceBundleMessageSource messageSource() {
        ReloadableResourceBundleMessageSource messageSource = new ReloadableResourceBundleMessageSource();
        messageSource.setBasename("classpath:locale/messages");
        messageSource.setCacheSeconds(3600); //refresh cache once per hour
        return messageSource;
    }
}

, затем я создаю

@Component
public class Messages {

    @Autowired
    private MessageSource messageSource;

    public String getMessage(String id) {
        Locale locale = LocaleContextHolder.getLocale();
        return messageSource.getMessage(id,null,locale);
    }

}

, поэтому в своем контроллере я использую:

@Autowired
Messages messages;

//in my method:

messages.getMessage("validacao_documento_obrigatorio")

, когда я пытаюсь проверить это, возвращает эту ошибку:

org.springframework.context.NoSuchMessageException: No message found under code 'validacao_documento_obrigatorio' for locale 'pt_BR'.

И ограничение jpa не меняется на.

1 Ответ

0 голосов
/ 06 октября 2018

Переместите messages_pt_BR.properties в locale, если вы хотите загрузить из classpath:locale/messages, так как при поиске в вашем messages_pt_BR property в папке локали, поэтому, если вы хотите в /locale/messages, вам нужно указать полный путь к файлукак показано ниже, поскольку он будет загружать файл messages_pt_BR в папку /locale/messages:

 @Bean
    public ReloadableResourceBundleMessageSource messageSource() {
        ReloadableResourceBundleMessageSource messageSource = new ReloadableResourceBundleMessageSource();
        messageSource.setBasename("classpath:locale/messages/messages");
        messageSource.setCacheSeconds(3600); //refresh cache once per hour
        return messageSource;
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...