Как изменить локаль по умолчанию в BIRT - PullRequest
2 голосов
/ 22 апреля 2010

Я работаю с механизмом отчетов BIRT, и моей текущей задачей является внедрение интернационализации для отчетов. Мы используем веб-обозреватель для создания и загрузки отчетов в формате PDF. Существует параметр (__locale), который позволяет мне указать локаль, которая должна использоваться для генерации отчета. Пока все отлично работает.

Однако есть дополнительное требование, которое я не смог выполнить. В дополнение к языку, который задается параметром http, также должна быть возможность указать какой-либо резервный язык.

Возьмем следующий пример: есть два файла свойств common_en_US.properties и common_en_GB.properties. Первый используемый языковой стандарт должен быть en_GB (__locale = en_GB). Все работает нормально, если файл common_en_GB.properties существует. Но я также хотел бы сказать BIRT использовать common_en_US.properties, если en_GB-файл не может быть найден, что не работает должным образом.

Я попытался решить эту проблему, вручную установив локаль Java по умолчанию перед выполнением BIRT, потому что я думал, что BIRT будет использовать механизм Java для разрешения локализованных строк. К сожалению, эта попытка не работает.

Есть ли другой способ сделать то, что я хотел бы сделать? Можно ли вообще что-то подобное сделать?

Большое спасибо! Johannes

1 Ответ

3 голосов
/ 22 апреля 2010

Таким образом, когда вы указываете локаль, BIRT ищет только файл свойств этой локали. Языковой стандарт JVM по умолчанию не используется. Если файл свойств не найден, используется текст по умолчанию, примененный к элементу управления в конструкторе.

Больше информации здесь: BIRT & Internationalization

Итак, вы хотите создать иерархию локалей, которую BIRT не поддерживает. Если вы представляете свои отчеты вручную (с помощью сервлета или другого POJO), вы можете принудительно настроить язык в коде с помощью IRunAndRenderTask (есть метод с именем setLocale)

...