java - Spring 默认语言环境未按我对 CookieLocaleResolver 的预期工作

标签 java spring spring-mvc internationalization

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

messages_es_ES.properties messages_en_US.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 所提到的。 现在一切都按预期进行。

关于java - Spring 默认语言环境未按我对 CookieLocaleResolver 的预期工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43471246/

相关文章:

javascript - 如何在不使用 Ajax 的情况下将隐藏值从 jQuery 传递到 Spring MVC Controller

java - 删除 Eclipse 中的断点

java - 如何将 java byte[] 转换为 python 字符串?

Java 错误 TaskUtils$LoggingErrorHandler :95 - Unexpected error occurred in scheduled task

java - spring security (3.0.x) 和用户模拟

java - Eclipse Maven Spring 项目 - 错误

java - Spring Security token 认证 + JSESSION

java - Spring MVC/Rest - 返回标准响应

java - 以 Reader 方式打开 InputStream

java - Java 中的继承和泛型的使用