リソースバンドルを使用して国際化を処理する JSF (ICEfaces) アプリケーションを作成しています。
アプリケーションはリソース バンドルに (デフォルトの) オランダ語の "nl" ロケールを適切に適用しますが、 を使用してページのロケールを明示的に設定したとしても、浮動小数点数の書式設定に同じロケールを適用できません<f:view locale="nl">
。
浮動小数点数を現在のロケール設定に合わせるにはどうすればよいですか?
リソースバンドルを使用して国際化を処理する JSF (ICEfaces) アプリケーションを作成しています。
アプリケーションはリソース バンドルに (デフォルトの) オランダ語の "nl" ロケールを適切に適用しますが、 を使用してページのロケールを明示的に設定したとしても、浮動小数点数の書式設定に同じロケールを適用できません<f:view locale="nl">
。
浮動小数点数を現在のロケール設定に合わせるにはどうすればよいですか?
数値を適切なロケールにフォーマットするコンバータを使用していない可能性があります。
<f:view locale="nl">
<h:outputText value="#{numbers.someDouble}">
<f:convertNumber pattern="#,##0.00;(#,##0.00)" />
</h:outputText>
<br />
<h:outputText value="#{numbers.someDouble}">
<f:convertNumber locale="en" pattern="#,##0.00;(#,##0.00)" />
</h:outputText>
</f:view>
このビュー (数値の後に英語のロケール番号が続くオランダ語のロケール ビュー) は、次の出力を生成します。
12.341.234,43
12,341,234.43
nest<convertNumber>
タグを使用して、faces.config.xmlでデフォルトのロケールを「nl」に設定できます。<convertNumber>
そうすれば、コンバーターは自動的にデフォルトのロケールを取得して使用し、各タグでパターンを指定する必要はありません。
faces-config.xml:
<application>
<locale-config>
<default-locale>nl</default-locale>
</locale-config>
</application>