Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Deixar como padrao pt-br

Boa tarde, Teria como deixar como padrão as respostas pt-br e quando o cliente quiser em inglês ele envie o Header Accept-Language en-US?

1 resposta
solução!

Oi Thiago, boa tarde!

Sim, é possível configurar o Spring Boot para que as respostas sejam, por padrão, em português (pt-BR) e, quando o cliente quiser em inglês, ele possa enviar o cabeçalho Accept-Language com o valor en-US. Para isso, você pode configurar um LocaleResolver e um LocaleChangeInterceptor no seu projeto Spring Boot. Vou te mostrar um exemplo prático de como fazer isso:

  1. Crie uma classe de configuração para o LocaleResolver e LocaleChangeInterceptor:
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.LocaleResolver;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
import org.springframework.web.servlet.i18n.AcceptHeaderLocaleResolver;
import org.springframework.web.servlet.i18n.LocaleChangeInterceptor;

import java.util.Locale;

@Configuration
public class LocaleConfig implements WebMvcConfigurer {

    @Bean
    public LocaleResolver localeResolver() {
        AcceptHeaderLocaleResolver resolver = new AcceptHeaderLocaleResolver();
        resolver.setDefaultLocale(new Locale("pt", "BR"));
        return resolver;
    }

    @Bean
    public LocaleChangeInterceptor localeChangeInterceptor() {
        LocaleChangeInterceptor interceptor = new LocaleChangeInterceptor();
        interceptor.setParamName("Accept-Language");
        return interceptor;
    }

    @Override
    public void addInterceptors(InterceptorRegistry registry) {
        registry.addInterceptor(localeChangeInterceptor());
    }
}
  1. Adicione os arquivos de mensagens para os diferentes idiomas no seu projeto:

Crie os arquivos messages.properties (para inglês) e messages_pt_BR.properties (para português) dentro da pasta src/main/resources. Esses arquivos conterão as mensagens que serão exibidas de acordo com o idioma configurado.

Com essa configuração, o Spring Boot irá responder em português por padrão. Se o cliente enviar o cabeçalho Accept-Language com o valor en-US, a resposta será em inglês.

Espero ter ajudado e bons estudos!