2015-07-27 3 views
1

Я новичок в весеннем весеннем ботинке, я пытаюсь использовать интернационализацию, до сих пор я использую обычные контроллеры, но я не могу заставить его работать с Bean Validation, используя весна-данных остальное.Spring data rest Бин Валидация Интернационализация

Я использую следующий код для запуска приложения:

@EnableJpaRepositories 
@SpringBootApplication 
@EnableWebMvc 
public class Application extends WebMvcConfigurerAdapter { 

    @Bean(name = "validator") 
    public LocalValidatorFactoryBean validator() { 
     return new LocalValidatorFactoryBean(); 
    } 

    public static void main(String[] args) { 
     SpringApplication.run(Application.class, args); 
    } 

    @Bean 
    public LocaleResolver localeResolver() { 
     SessionLocaleResolver slr = new SessionLocaleResolver(); 
     slr.setDefaultLocale(Locale.US); 
     return slr; 
    } 

    @Bean 
    public LocaleChangeInterceptor localeChangeInterceptor() { 
     LocaleChangeInterceptor lci = new LocaleChangeInterceptor(); 
     lci.setParamName("lang"); 
     return lci; 
    } 

    @Override 
    public void addInterceptors(InterceptorRegistry registry) { 
     registry.addInterceptor(localeChangeInterceptor()); 
    } 
} 

можно использовать локаль штраф с контроллерами, но я не могу сделать Bean Validation уважать другие локали, всегда использовать локаль по умолчанию.

Любая помощь?

Я использую пружинный источник данных и весеннюю загрузку в версии 1.2.5.RELEASE.

+0

Это для интернационализации сущностей или сообщений об ошибках? Я также пытаюсь интернационализировать поля объекта Spring-data-rest. – aycanadal

ответ

0

Я нашел решение, так как никто не помог мне опубликовать, потому что может помочь кому-то другому.

Если я не устанавливаю местоположение по умолчанию в SessionLocaleResolver, он получает локаль из Accept-Header, поэтому я буду работать.

@Bean 
public LocaleResolver localeResolver() { 
    SessionLocaleResolver slr = new SessionLocaleResolver(); 
    // Remove this line 
    // slr.setDefaultLocale(Locale.US); 
    return slr; 
} 
Смежные вопросы