Spring4国际化多语言

Spring4 internationalization multiple language

http://www.mkyong.com/spring-mvc/spring-mvc-internationalization-example/

尝试按照此在线教程创建多语言 Web 应用程序,我遇到的问题是我认为我的 spring 容器没有找到/加载我的属性文件。我不确定哪里出了问题。

文件结构

welcome.properties

welcome.springmvc = Happy learning Spring MVC

welcome.properties

welcome.springmvc = \u5feb\u4e50\u5b66\u4e60 Spring MVC

Index.jsp

Language : <a href="?language=en">English</a>|<a href="?language=zh_CN">Chinese</a>

    <h2>
    welcome.springmvc : <spring:message code="welcome.springmvc" text="default text" />
    </h2>

    Current Locale : ${pageContext.response.locale}

app-dispatcher-servlet: 我确定我的拦截器正在工作,因为 index.jsp ${pageContext.response.locale} 正在显示 en/zh_cn

国际化:多语言支持

资源: http://www.mkyong.com/spring-mvc/spring-mvc-internationalization-example/ http://howtodoinjava.com/spring/spring-mvc/spring-mvc-internationalization-i18n-and-localization-i10n-example/

http://www.technicalkeeda.com/spring-tutorials/spring-mvc-internationalization-i18n-example

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

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

<!-- <bean class="org.springframework.web.servlet.mvc.support.ControllerClassNameHandlerMapping" >
    <property name="interceptors">
       <list>
        <ref bean="localeChangeInterceptor" />
        </list>
    </property>
</bean>  -->


<!-- Register the welcome.properties -->
<bean id="messageSource"
    class="org.springframework.context.support.ResourceBundleMessageSource">
    <property name="basename" value="welcome" />
</bean>



<!-- ViewResolver JSP -->
<bean id="jspViewResolver"
    class="org.springframework.web.servlet.view.InternalResourceViewResolver">
    <property name="prefix" value="/WEB-INF/html/"></property>
    <property name="suffix" value=".jsp"></property>
</bean>

但我在 index.jsp 中的结果是

它说 "default text" 应该从属性文件中真正显示 "Happy learning Spring MVC"。

将 属性 文件 welcome.properties 更改为

welcome_en_US.properties

之后它应该可以工作

我已经更改了我的 app-dispatcher-servlet.xml 显式状态 class 路径

发件人:

<!-- Register the welcome.properties -->
 <bean id="messageSource"
class="org.springframework.context.support.ResourceBundleMessageSource">
<property name="basename" value="welcome" />
</bean>

收件人:

<bean id="messageSource"
    class="com.app.service.CustomMessageSource">
    <property name="basenames">
        <list>
            <value>classpath:com/app/properties/welcome</value>
        </list>
    </property>
    <property name="defaultEncoding" value="UTF-8" />

</bean>