我使用以下配置将i18n集成到我的应用程序中:
@Configuration
public class LocaleConfiguration extends WebMvcConfigurerAdapter {
@Override
public void addInterceptors(InterceptorRegistry registry) {
LocaleChangeInterceptor localeChangeInterceptor = new LocaleChangeInterceptor();
localeChangeInterceptor.setParamName("lang");
registry.addInterceptor(localeChangeInterceptor);
}
@Bean
public MessageSource messageSource() {
ReloadableResourceBundleMessageSource messageSource = new ReloadableResourceBundleMessageSource();
messageSource.setBasename("classpath:/i18n/application");
messageSource.setDefaultEncoding("UTF-8");
return messageSource;
}
}
我为“en”和“de”设置了属性,到目前为止一切正常。
例如,如果我从西班牙进入页面,我只看到html文件中的占位符。但我想实现的是,对于没有现有属性配置的语言/国家,标准语言是英语(“en”)。所以我试了这个:
@Bean
public LocaleResolver localeResolver() {
SessionLocaleResolver sessionLocaleResolver = new SessionLocaleResolver();
sessionLocaleResolver.setDefaultLocale(Locale.US);
return sessionLocaleResolver;
}
它会根据我的需要将默认值设置为英语,但现在每个页面(也带有特殊语言的现有属性)都以英语显示。
1条答案
按热度按时间6xfqseft1#
你必须删除这个
和加载项
src\main\resources\i18n
默认值application.properties
用英语那应该能解决你的问题