使用Spring和Velocity进行i18n(国际化)的问题

时间:2011-06-20 15:30:17

标签: spring internationalization locale interceptor

我在使用Spring设置国际化方面遇到了问题。 这是我的配置。

    <bean id="messageSource"
            class="org.springframework.context.support.ResourceBundleMessageSource">
            <property name="basename" value="localization" />
    </bean>
    <!-- declare the resolver -->
    <bean id="localeResolver"
            class="org.springframework.web.servlet.i18n.CookieLocaleResolver">
            <property name="defaultLocale" value="sv" />
    </bean>
    <mvc:interceptors>
            <bean class="org.springframework.web.servlet.i18n.LocaleChangeInterceptor" />
    </mvc:interceptors>
    <mvc:annotation-driven />

即使我使用?locale=sv(瑞典语)请求,它也始终显示英语。

我正在使用Spring with Velocity。

任何想法? 感谢

1 个答案:

答案 0 :(得分:2)

这就是我的做法:

  • 首先在messages_xx.properties中复制了src/main/resources 我无法使用名称messages_xx_xx(messages_en_us)

  • 然后将以下配置添加到xxxx_servlet.xml上下文

    <bean id="messageSource"
            class="org.springframework.context.support.ReloadableResourceBundleMessageSource">
            <property name="basename" value="classpath:messages" />
            <property name="defaultEncoding" value="UTF-8" />
    </bean>
    

         

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

    <mvc:annotation-driven/>
  • #springMessages('message.title')
  • 中使用*.vm

就是这样。