我正在使用资源包编写一个JSF(ICEfaces)应用程序来处理国际化。
应用程序很好地为资源包应用(默认)荷兰语“nl”语言环境,但在格式化浮点数时无法应用相同的语言环境,即使我使用<f:view locale="nl">
显式设置页面的语言环境。
如何使浮点数符合当前的区域设置?
答案 0 :(得分:6)
您可能没有使用转换器将format数字转换为适当的区域设置。
<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
答案 1 :(得分:1)
您可以使用nest <convertNumber>
标记并在faces.config.xml中将默认语言环境设置为“nl”。
这样,转换器会自动获取并使用默认语言环境,您无需在每个<convertNumber>
标记处指定模式。
faces-config.xml中:
<application>
<locale-config>
<default-locale>nl</default-locale>
</locale-config>
</application>