我試圖在我的 spring-boot 2 應用程序中使用 I18N首先,我在我的資源/語言環境/消息中創建一個名為“messages_pt_BR.properties”的文件:Size.Ato.sercicos=Deve conter pelo menos 1 itemSize.atoRtdpj.servicos=Deve conter pelo menos 1 itemSize.servicos=msg1Size=msg2validacao_documento_obrigatorio=Documento: Pelo menos 1 precisa estar preenchido然后我創建@Configurationpublic 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; }}然后我創建@Componentpublic class Messages { @Autowired private MessageSource messageSource; public String getMessage(String id) { Locale locale = LocaleContextHolder.getLocale(); return messageSource.getMessage(id,null,locale); }}所以在我的控制器中我使用:@AutowiredMessages 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 約束不會更改為。
添加回答
舉報
0/150
提交
取消