Как создать многоязычный отчет? - PullRequest
5 голосов
/ 14 декабря 2010

Я хочу создать документ, который печатается на нескольких языках, на основе Locale.

Я создал 2 пакета ресурсов, один на английском и один на китайском, но я неуверен, как их использовать.

Ответы [ 2 ]

5 голосов
/ 26 февраля 2012

Вот пример того, как реализовать поддержку интернационализации для JasperReports .

Основная идея заключается в использовании специального выражения $R{} для локализации текста и изображений.

Пример для изображений:

<image scaleImage="Clip"> 
    <reportElement positionType="Float" x="20" y="20" width="100" height="50"/> 
    <imageExpression class="java.lang.String"><![CDATA[$R{image.flag}]]></imageExpression> 
</image>

Образцы для текста (синтаксис $ R {} ):

<textField isBlankWhenNull="true"> 
 <reportElement x="20" y="100" width="530" height="20"/> 
 <textElement/> 
 <textFieldExpression class="java.lang.String"><![CDATA[$R{sampleString}]]></textFieldExpression> 
</textField> 

или (метод msg () ):

text.message=The program picked up {0} as a random number.
<textField isStretchWithOverflow="true" isBlankWhenNull="true"> 
 <reportElement x="20" y="210" width="530" height="20"/> 
 <textElement/> 
 <textFieldExpression class="java.lang.String"><![CDATA[msg($R{text.message}, $P{number})]]></textFieldExpression> 
</textField>
0 голосов
/ 14 декабря 2010

Поскольку генератор документов может быть частью вашего приложения, у вас где-то должен быть пункт меню, переключатель или комбинированный список выбора языка, который уже предварительно выбран.

Итак, почему бы вампросто добавьте оператор if, который читает Locale, или нужный язык перед генерацией отчета, и загрузите соответствующий отчет в соответствии с локалью.

Таким образом, вам нужно будет сохранить один файл jrxml для каждого языка.Будет довольно просто просто перевести заголовки и метки вручную.

Ваши данные должны быть уже переведены в вашу базу данных, где вы все равно должны сохранять значения соответствующих атрибутов многоязычными.

Вам нужно будет изменить запрос SQL для соответствующего языка, но, посколькуЗапрос является частью вашего jrxml, он будет выполнен автоматически.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...