繁体   English   中英

java web本地化支持

[英]java web localization support

我已经创建了本地化的.properties文件。 但我不知道如何在飞行中改变它们。 事情是我可以为语言创建一个表单选择器,但我应该在哪里指出输出设置? 它始终使用默认的.properties文件

我的表格看起来像这样

<h:form>
<h:selectOneMenu id="language" value="????">
  <f:selectItem id="item1" itemLabel="Czech" itemValue="cs_CZ" />
  <f:selectItem id="item2" itemLabel="Slovak" itemValue="sk_SK" />
  <f:selectItem id="item3" itemLabel="English" itemValue="default" />
</h:selectOneMenu>
</h:form>

我正在使用带有hibernate JSF2.0和J2EE1.6的spring

谢谢

更新:

我加载了包像:

 <f:loadBundle basename="bundle/labels" var="labels"/>

但我需要用以下代替:

<bean id="messageSource"
      class="org.springframework.context.support.ResourceBundleMessageSource">
            <property name="basenames">
                <list>
                    <value>Messages</value>
                    <value>labels</value>
                </list>
            </property>
</bean>

但是这个解决方案在包bundle中找不到labels.properties。 它在类路径中查找,但我无法重新定位它。

更新2:

好吧,我现在可以看到JSF和SPRING有不同的加载方法,而SPRING从messageSource获取bundle仍然从<f:loadBundle>获取它们,那么如何使<f:loadBundle>获取翻译属性?

Spring支持LocalChangeInterceptor 此拦截器可以配置为它正在侦听的属性。

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

然后,您需要使用参数lang=cs_CZ发送HTTP请求

@See Spring Reference Chapter 15.6.4 LocaleChangeInterceptor了解更多详细信息

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM