проблема с i18n (интернационализация) с Spring и Velocity - PullRequest
4 голосов
/ 20 июня 2011

У меня проблема с настройкой интернационализации с помощью 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 с Velocity.

есть идеи? спасибо

1 Ответ

2 голосов
/ 22 июня 2011

Вот как я это сделал:

  • Первое копирование 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

вот и все.

...