如何在Spring Framework中实现i18n(带有gTLD的子目录)?

时间:2014-06-02 18:11:33

标签: java spring spring-mvc internationalization

我正在使用Spring Framework,Spring(MVC),Spring Security等的Web应用程序... Spring文档显示了在URL中添加参数的国际化(例如http://myexample.com?lang=fr) 但是我已经阅读了Google "Multi-regional and multilingual sites"的这篇文章,其中指出不建议采用这种做法。

所以我决定以这种方式实现它:

http://myexample.com/ - >默认语言环境(EN)

http://myexample.com/es/ - >区域设置

http://myexample.com/fr/ - > locale fr

我的问题是:在Spring框架中实现i18n(带有gTLD的子目录)的最佳方法是什么?欢迎提出想法,文章,例子。

1 个答案:

答案 0 :(得分:0)

  <!-- Defines interceptors for Locale change and Theme change before the request goes to DispatcherServlet for further operation. -->


     <mvc:interceptors>
        <ref bean="localeChangeInterceptor"/>
        <ref bean="themeChangeInterceptor" />
        <!-- <ref bean="conversionServiceExposingInterceptor"/> -->
        </mvc:interceptors>

    <!-- Interceptor for change in Locale -->
<bean id="localeChangeInterceptor" class="org.springframework.web.servlet.i18n.LocaleChangeInterceptor">
<property name="paramName" value="language"/>
</bean>

    <!-- LocaleResolver configuration for internationalization. Here cookie resolver used. Stores and reads the locale value from cookie. -->
<bean id="localeResolver" class="org.springframework.web.servlet.i18n.CookieLocaleResolver">
<property name="defaultLocale" value="1"/>
<property name="cookiePath" value="/WEBPORTAL/" />
<property name="cookieName" value="locale"/>
<property name="cookieMaxAge" value="86400"/>
<property name="cookieHttpOnly" value="true"/>
<property name="cookieSecure" value="true"/>
</bean>

    <!-- Provides the list of base location for Localized property files. Default encoding must be UTF-8 to support multilingual text. -->
    <bean id="messageSource" class="org.springframework.context.support.ReloadableResourceBundleMessageSource">
    <property name="basenames">
        <list>
        <value>/WEB-INF/i18n/labels</value>
        <value>/WEB-INF/i18n/messages</value>
        <value>/WEB-INF/i18n/mailBox</value>
        <value>/project</value>
        </list>
    </property>
    <property name="defaultEncoding" value="UTF-8"/>
    </bean>

这里有一些代码可以帮助您实现国际化 您需要做的是将这行代码添加到dispatcher-servlet.xml文件中,然后根据您的要求进行更改

希望我的回复能指导你...