1
resposta

criar validacao devolvendo em ingles

no caso como ficaria esse metodo mas que me devolvesse em ingles a resposta

public List handle(MethodArgumentNotValidException exception) {

    List<ValidacaoDto> validacaoDtos = new ArrayList<>();
    List<FieldError> fieldErrors = exception.getBindingResult().getFieldErrors();

    fieldErrors.forEach(fieldError -> {
        String message = messageSource.getMessage(fieldError, LocaleContextHolder.getLocale());
        ValidacaoDto erro = new ValidacaoDto(fieldError.getField(), message);
        validacaoDtos.add(erro);
    });

    return validacaoDtos;
}
1 resposta

Olá Rodrigo, tudo bem?

Para criar um método que retorne a resposta em inglês, você pode utilizar a classe Locale do Java. A classe Locale representa uma combinação de idioma e país, e você pode definir o idioma desejado como "en" para inglês.

public List<ValidacaoDto> handle(MethodArgumentNotValidException exception) {
    List<ValidacaoDto> validacaoDtos = new ArrayList<>();
    List<FieldError> fieldErrors = exception.getBindingResult().getFieldErrors();

    Locale englishLocale = new Locale("en"); // Definindo o idioma como inglês

    fieldErrors.forEach(fieldError -> {
        String message = messageSource.getMessage(fieldError, englishLocale); // Passando o idioma inglês para a mensagem
        ValidacaoDto erro = new ValidacaoDto(fieldError.getField(), message);
        validacaoDtos.add(erro);
    });

    return validacaoDtos;
}

Dessa forma, o método getMessage da classe MessageSource irá retornar a mensagem no idioma inglês, de acordo com a configuração do seu sistema.

Espero ter ajudado e bons estudos!

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software