我使用以下配置将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;
}
它根据我的需要将默认设置为英语,但现在每个页面(也包含特殊语言的现有属性)都以英语显示。
答案 0 :(得分:2)
哟必须删除此
@Bean
public LocaleResolver localeResolver() {
SessionLocaleResolver sessionLocaleResolver = new SessionLocaleResolver();
sessionLocaleResolver.setDefaultLocale(Locale.US);
return sessionLocaleResolver;
}
并在src\main\resources\i18n
中添加英文默认application.properties
那应该解决你的问题