Как сделать локализацию?

Обсуждение Stimulsoft Reports.Java
Ответить
belyalex
Сообщения: 16
Зарегистрирован: 04 июл 2019, 13:46

Как сделать локализацию?

Сообщение belyalex » 19 ноя 2019, 12:24

Добрый день!

Как сделать локализацию отчётов при экспорте отчётов?

Мы используем Reports.Java в своём проекте для экспорта отчётов в pdf, word и т.д. вот таким образом:

StiReport report = StiSerializeManager.deserializeReport(<шаблон отчёта>);
report.render();
ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
switch (format)
{
case "html":
StiExportManager.exportHtml(report,outputStream);
response.setContentType("text/html");
break;
case "pdf":
StiExportManager.exportPdf(report,outputStream);
response.setContentType("application/pdf");
response.addHeader("Content-disposition", "attachment; filename=report.pdf");
break;
case "doc":
StiExportManager.exportWord2007(report,outputStream);
response.setContentType("application/msword");
response.addHeader("Content-disposition", "attachment; filename=report.docx");
break;
case "xls":
StiExportManager.exportExcel2007(report,outputStream);
response.setContentType("application/vnd.ms-excel");
response.addHeader("Content-disposition", "attachment; filename=report.xlsx");
break;
}

Если указать перед report.render() культуру:
String cultureName = "ru-RU";
report.localizeReport(cultureName);
То в runtime возникает ошибка:
Can't find globalized strings for culture ru-RU

Пробовал делать вот так:
StiOptions.Configuration.setDirectoryLocalization(<путь к файлам локализации>);
StiOptions.Configuration.setLocalization("ru-RU.xml");
Но не нашёл нигде метода загрузки локализации LoadLocaliztion.

Как всё-таки сделать локализацию?
Aleksey
Сообщения: 2121
Зарегистрирован: 22 апр 2010, 02:57

Re: Как сделать локализацию?

Сообщение Aleksey » 22 ноя 2019, 15:26

Здравствуйте,

Извините за задержку с ответом. Необходимо дополнильное время для анализа проблема, о результатах дадим знать.

Спасибо.
Vadim
Сообщения: 105
Зарегистрирован: 04 апр 2013, 08:26

Re: Как сделать локализацию?

Сообщение Vadim » 25 ноя 2019, 11:12

Здравствуйте.
Ошибка показывает, что такая культура ru-RU отсутствует в отчете в списке культур.
Воспользуйтесь https://www.stimulsoft.com/ru/blog/arti ... in-reports
belyalex
Сообщения: 16
Зарегистрирован: 04 июл 2019, 13:46

Re: Как сделать локализацию?

Сообщение belyalex » 26 ноя 2019, 15:13

Добрый день!

Мы изначально по этой инструкции и действовали.

В приложенном шаблоне установлены следующие настройки глобализации:
1) Добавлены две культуры:
Русский (Россия) (ru-RU) и Английский (США) (en-US)
2) Свойство Text5.Text в культуре "Русский (Россия) (ru-RU)" имеет значение "РУССКИЙ",
в культуре "Английский (США) (en-US)" имеет значение "ENGLISH".

При запуске шаблона на просмотр из дизайнера
а) с явно установленной культурой отчета "ru-RU" на результирующей форме видим:
Тестовая форма 26 ноября 2019
б) с явно установленной культурой отчета "en-US" на результирующей форме видим:
Тестовая форма 26 November 2019

При запуске при генерации отчета на основании шаблона из приложения java на linux
а) с явно установленной культурой отчета "ru-RU" на результирующей форме видим:
РУССКИЙ 26 November 2019
б) с явно установленной культурой отчета "en-US" на результирующей форме видим:
РУССКИЙ 26 November 2019

Прошу объяснить описанное поведение системы.
Почему при запуске из дизайнера не изменяется Text5.Text?
Почему при запуске в приложении нет реакции на явно указанную культуру "en-US", и нет соотв. названия месяца культуре "ru-RU"?
Вложения
Report_ObjectZones.mrt
(4.77 КБ) 47 скачиваний
Vadim
Сообщения: 105
Зарегистрирован: 04 апр 2013, 08:26

Re: Как сделать локализацию?

Сообщение Vadim » 04 дек 2019, 12:14

Здравствуйте.
Для автоматической локализации в дизайнере установите опцию "Автоматически переводить при запуске отчета" в True.

В используйте:
report.setCulture("ru-RU");
report.localizeReport("ru-RU");

перед report.render();

исправления в Яве будут доступны со следующего релиза.
belyalex
Сообщения: 16
Зарегистрирован: 04 июл 2019, 13:46

Re: Как сделать локализацию?

Сообщение belyalex » 11 дек 2019, 12:31

Здравствуйте!
Ещё вопрос.
Подскажите, пожалуйста, какая маска используется при отображении значения поля типа datetime, в том случае, если его формат явно не определяется и при построении отчета используется явно заданная культура?
Vadim
Сообщения: 105
Зарегистрирован: 04 апр 2013, 08:26

Re: Как сделать локализацию?

Сообщение Vadim » 17 дек 2019, 10:14

Здравствуйте.

MM/dd/yyyy hh:mm:ss a
Ответить