Задать язык форматирования с плавающей точкой для JSF / ICEfaces? - PullRequest
5 голосов
/ 16 ноября 2009

Я пишу приложение JSF (ICEfaces), использующее пакеты ресурсов для обработки интернационализации.

Приложение красиво применяет (по умолчанию) голландский языковой стандарт "nl" для пакета ресурсов, но не может применить тот же языковой стандарт при форматировании чисел с плавающей запятой, даже если я явно установил языковой стандарт для страницы, используя <f:view locale="nl">.

Как заставить числа с плавающей запятой следовать текущим настройкам локали?

Ответы [ 2 ]

6 голосов
/ 16 ноября 2009

Вероятно, вы не используете конвертер для форматирования чисел в соответствующую локаль.

  <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 голос
/ 16 ноября 2009

Вы можете использовать тег nest <convertNumber> и установить локаль по умолчанию "nl" в faces.config.xml. Таким образом, преобразователи автоматически получают и используют локаль по умолчанию, и вам не нужно указывать шаблон для каждого тега <convertNumber>.

лица-config.xml:

    <application>
        <locale-config>
          <default-locale>nl</default-locale>
        </locale-config>
    </application>
...