私のプロジェクトでは、ar_AE、en_GB、en_US、ur_PK の 4 つのロケールを使用できます。my に設定されているデフォルトlocaleResolver
は en_GB です。
現在のロケールを何に設定しても、Webflow に入ると、EL 式${pageContext.response.locale}
は常に en_US と評価されますが、メッセージは正しく検索されます (たとえば、現在 ar_AE の場合、テキストはアラビア語で、テキストの方向は rtl ですが、私の JSP の現在の言語は en_US です)。
私のロケール設定:
<mvc:interceptors>
<bean id="localeChangeInterceptor"
class="org.springframework.web.servlet.i18n.LocaleChangeInterceptor">
<property name="paramName" value="lang" />
</bean>
</mvc:interceptors>
<bean id="localeResolver"
class="org.springframework.web.servlet.i18n.CookieLocaleResolver">
<property name="defaultLocale" value="en_GB" />
</bean>
私のJSPスニペット:
<a href="#i18n" class="dropdown-toggle" data-toggle="dropdown">
<span class="${pageContext.response.locale}-i18n-option i18n-option-selected">
<spring:message code="Native Name (${pageContext.response.locale})" />
</span>
<b class="caret"></b>
</a>
私のウェブフロー設定:
<!--Maps request paths to flows in the flowRegistry-->
<bean class="org.springframework.webflow.mvc.servlet.FlowHandlerMapping">
<property name="order" value="0" />
<property name="flowRegistry" ref="flowRegistry" />
</bean>
<!-- Dispatches requests mapped to flows to FlowHandler implementations -->
<bean class="org.springframework.webflow.mvc.servlet.FlowHandlerAdapter">
<property name="flowExecutor" ref="flowExecutor" />
</bean>
<!-- Executes flows: the entry point into the Spring Web Flow system -->
<webflow:flow-executor id="flowExecutor" flow-registry="flowRegistry" />
<!-- The registry of executable flow definitions -->
<webflow:flow-registry id="flowRegistry" flow-builder-services="flowBuilderServices" base-path="/WEB-INF/webflows">
<webflow:flow-location-pattern value="/**/flow.xml" />
</webflow:flow-registry>
<!-- Plugs in a custom creator for Web Flow views -->
<webflow:flow-builder-services id="flowBuilderServices" view-factory-creator="mvcViewFactoryCreator" development="true" />
<bean id="mvcViewFactoryCreator" class="org.springframework.webflow.mvc.builder.MvcViewFactoryCreator">
<property name="viewResolvers" ref="viewResolver" />
</bean>
では、正しい現在のロケールを Webflow 内の JSP に表示するにはどうすればよいでしょうか?