Spring:设置语言环境

NRa*_*Raf 6 spring localization internationalization

我按照以下指南中的说明设置了Spring:http://www.springbyexample.org/examples/basic-webapp-internationalization-spring-config.html

例如,如果我要将?locale = fr附加到URL的末尾,则语言环境将更改为法语.

但是,在我的情况下,我想在用户登录时设置区域设置,因为此信息与其配置文件相关联.我试着使用localeResolver.setLocale(请求,响应新的区域("FR"))(其中的LocaleResolver是SessionLocaleResolver的一个实例)指定区域然而,这并没有任何影响.

知道我做错了什么吗?我是否以正确的方式处理这个问题?

Joh*_*n29 13

localeResolver.setLocale对我来说很好,尝试这样的事情:

的applicationContext

<bean id="messageSource" class="org.springframework.context.support.ResourceBundleMessageSource"
    p:basename="messages/messages" p:fallbackToSystemLocale="false" />

<bean id="localeResolver" class="org.springframework.web.servlet.i18n.SessionLocaleResolver" />
Run Code Online (Sandbox Code Playgroud)

my_page.jsp

<%@ taglib uri="http://www.springframework.org/tags" prefix="spring" %>
<html>
    <body>
        <p><spring:message code="my.message"/></p>  
    </body>
</html>
Run Code Online (Sandbox Code Playgroud)

\ SRC \主\资源\信息\ messages.properties

my.message =消息(默认语言)

\ SRC \主\资源\信息\ messages_en.properties

my.message =英文消息

\ SRC \主\资源\信息\ messages_fr.properties

my.message =法语留言

调节器

@Controller
@RequestMapping("/")
public class SampleController {
    @RequestMapping(value = "/", method = RequestMethod.GET)
    public String welcome(HttpServletRequest request, HttpServletResponse response) {
        LocaleResolver localeResolver = RequestContextUtils.getLocaleResolver(request);
        localeResolver.setLocale(request, response, StringUtils.parseLocaleString("fr"));
        return "my_page";
    }
}
Run Code Online (Sandbox Code Playgroud)

使用此代码,我得到"法语消息",如果我将"fr"改为"en",我会收到"英语消息",如果没有setLocale调用,我会得到"消息(默认语言)".将StringUtils.parseLocaleString("fr")更改为新的Locale("fr")会得到相同的结果.


bla*_*ger 5

我建议尝试将默认语言环境设置为:

<bean id="localeResolver" class="org.springframework.web.servlet.i18n.SessionLocaleResolver">
     <property name="defaultLocale" value="fr_FR" />
 </bean>
Run Code Online (Sandbox Code Playgroud)

一些有用的信息在博客文章中使用Spring MVC 3配置语言环境切换.