Spring Framework Localization始终从en(英文)文件中读取

时间:2013-07-02 23:24:42

标签: spring jsp locale

我已按照以下教程为我的网络应用设置本地化。

http://viralpatel.net/blogs/spring-3-mvc-internationalization-i18n-localization-tutorial-example/

我有三个属性文件:messages_en_properties,messages_es.properties和messages_zh_CN.properties

每个文件都有以下一行:

loging.name =(用户名翻译成相应的语言)

在我的.jsp文件中,我使用以下行设置我的表数据以显示用户名:

<td><spring:message code = "login.name" text = "Default Text"/></td>

这样可行,但它只会从我的英文属性文件中读取。我已经尝试在.jsp文件中手动设置区域设置为zh_CN和es但我仍然收到英文文件值。我甚至尝试将语言环境设置为一个我没有的文件的国家/地区,它仍然显示英文文件中的文本,而不是默认文本。我很肯定本地实际上正在被更改,因为浏览器会询问我是否希望翻译页面。

以下是我的代码中设置localeChangeInterceptor的部分。

<beans:bean id="localeChangeInterceptor"
    class="org.springframework.web.servlet.i18n.LocaleChangeInterceptor">
    <beans:property name="paramName" value="lang" />
</beans:bean>

<beans:bean id="handlerMapping"
    class="org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping">
    <beans:property name="interceptors">
        <beans:ref bean="localeChangeInterceptor" />
    </beans:property>
</beans:bean>

还尝试更改为以下内容......

<mvc:interceptors>
    <beans:bean id="localeChangeInterceptor"
        class="org.springframework.web.servlet.i18n.LocaleChangeInterceptor">

             

<beans:bean id="localeResolver"
    class="org.springframework.web.servlet.i18n.CookieLocaleResolver">
    <beans:property name="defaultLocale" value="en" />
</beans:bean>

<beans:bean id="handlerMapping"
    class="org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping">
</beans:bean>

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:1)

Surround 
> <bean id="localeChangeInterceptor"
>     class="org.springframework.web.servlet.i18n.LocaleChangeInterceptor">
>     <property name="paramName" value="lang" /> </bean>
with <mvc:interceptors>

作为

<mvc:interceptors>
        <bean class="org.springframework.web.servlet.i18n.LocaleChangeInterceptor" >
            <property name="paramName" value="lang" />
        </bean>
</mvc:interceptors>