我试图在我的 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
提交
取消