[Seasar-user:16667] Re: [Teeda]cooldeploy でラベルの言語切替ができない
[E-MAIL ADDRESS DELETED]
[E-MAIL ADDRESS DELETED]
2009年 1月 14日 (水) 10:59:43 JST
海野です。
その後、分かったことをお知らせします。
javax.faces.internal.LabelUtil#getLabelValueメソッドで
MessageResourceBundle bundle = MessageResourceBundleChainFactory
.createChain(propertiesName, locale);
と取得しているbundleが、coolでは locale=en の場合でも
内容が日本語になっていたので、さらに追ってみたところ
javax.faces.internal.MessageResourceBundleChainFactory#createSimpleMessageRe
sourceBundleメソッド
if (HotdeployUtil.isHotdeploy()) {
return MessageResourceBundleFactory.getNullableBundle(bundleName,
locale);
} else {
return new JavaMessageResourceBundle(bundleName, locale);
}
でcoolの場合にnewしているJavaMessageResourceBundleが、
locale=en にもかかわらず日本語のラベルが取得されてしまいます。
hotの場合の
return MessageResourceBundleFactory.getNullableBundle(bundleName,
locale);
では、localeに応じたMessageResourceBundleが返されます。
ここまで分かりましたが、どうすれば解決するのかが分かっていません。。
宜しくお願い致します。
> 海野です。
> お世話になっております。
>
> Seasar-user:13080 の方式で、
> 英語と日本語の切替ができるようにしています。
>
> しかし、hotdeployでは切替が有効なのですが
> cooldeployでは常に日本語が表示されてしまいます。
> (常に英語なら少しは納得もいくのですが)
>
> Seasar-user:9026
> も読みましたが、cooldeployでのコンポーネント登録時に
> toomany..の例外は発生していません。
>
> またRequestDumpFilterで出力したログを
> hotとcoolで日本語、英語それぞれ見比べたところ
> hotとcoolとも日本語選択時には
> [request]javax.servlet.jsp.jstl.fmt.locale.request=ja
> と出力され、英語選択時には
> [request]javax.servlet.jsp.jstl.fmt.locale.request=en
> と出力され、差がありませんでした。
>
> デバッガで追ってみても、HttpServletRequestのラッパーに実装した
> getLocales()は、選択された言語を返しています。
>
> どこを調査すればよいか、教えていただけませんでしょうか。
>
> 環境は次の通りです。
> Seasar2.4.32
> Teeda1.0.13-sp4
>
> 宜しくお願い致します。
>
>
> _______________________________________________
> Seasar-user mailing list
> [E-MAIL ADDRESS DELETED]
> https://ml.seasar.org/mailman/listinfo/seasar-user
>
>
Seasar-user メーリングリストの案内