【问题标题】:How to set a standard i18n locale using spring-boot and thymeleaf?如何使用 spring-boot 和 thymeleaf 设置标准 i18n 语言环境?
【发布时间】:2016-09-05 04:26:53
【问题描述】:

我使用以下配置将 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;
}

它将默认设置为我想要的英语,但现在每个页面(也具有特殊语言的现有属性)都以英语显示。

【问题讨论】:

    标签: java spring spring-boot internationalization thymeleaf


    【解决方案1】:

    你必须删除这个

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

    并添加src\main\resources\i18n默认英文application.properties

    这应该可以解决您的问题

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-08-05
      • 1970-01-01
      • 1970-01-01
      • 2018-06-13
      • 2012-07-05
      • 2011-09-20
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多