LocaleChangeInterceptor

LocaleChangeInterceptor

我要翻译的文本有两个文件:

messages_es_ES.properties
messages_zh_CN.properties

我正在使用CookieLocaleResolver:

@Bean
public LocaleResolver localeResolver() {
    CookieLocaleResolver cookieLocaleResolver = new CookieLocaleResolver();
    cookieLocaleResolver.setCookieName("language");
    cookieLocaleResolver.setCookieMaxAge(3600);
    cookieLocaleResolver.setDefaultLocale(new Locale("es_ES"));
    return cookieLocaleResolver;
}


而这个LocaleChangeInterceptor:

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

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


在我的jsp中,我使用以下链接:

<a href="?language=en_US">EN</a>
<a href="?language=es_ES">ES</a>


一切正常,当单击一个链接时,语言已正确更改,但是即使我将“ es_ES”设置为默认语言环境,启动应用程序时,一切都将以英语显示(更具体地讲,在系统语言环境中) 。

最佳答案

解决后,我将属性setFallbackToSystemLocale从ResourceBundleMessageSource更改为false,如@noobandy here所述。
现在一切都按预期进行。

10-08 01:19