barbitoff programmer`s blog

Здесь я публикую заметки из программерской жизни: грабли, на которые мне случилось наступить, проблемы, для которых было найдено элегантное (или не очень) решение, а также все, с чем мне пришлось столкнуться и чем хотелось бы поделиться =)
PS Если хотите меня поблагодарить - на странице есть 3 места, чтобы это сделать =)

понедельник, 10 октября 2011 г.

Особенности русификации продукции WSO2

По идее, русификация WSO2 - дело достаточно тривиальное. Необходимо извлечь из jar-ников директории repository/components/plugins/ все файлы Resources.properties, перевести их (вместо русских символов необходимо использовать т.н. "Unicode-последовательности") и закатать обратно. Однако не всё оказывается так просто, об особенностях этого процесса я и напишу ниже.

1) Русификация домашней страницы административной консоли (а также других страниц, на которых содержится запрашиваемые по AJAX данные)

Properties-файл для локализации домашней страницы консоли администрирования WSO2 (таблички, отображающей суммарную статусную информацию по серверу) расположен тут:
repository/components/plugins/org.wso2.carbon.server.admin.ui-3.2.0.jar/org/wso2/carbon/server/admin/ui/i18n/Resources.properties
Однако при попытке перевести расположенные там строчки, заменив их Unicode-последовательностями ('\u...'), соответствующими русскому переводу, в админке вместо русских букв появляются знаки вопроса (в отличие от других Resources.properties-файлов, локализация которых не вызывает каких бы то ни было проблем).
Дело в том, что эта табличка запрашивается с помощью AJAX со страницы

Аналогичные манипуляции необходимы также на всех других jsp-страницах, на которых кодировка не установлена корректно и к которым запрос ведется по AJAX.
ИМХО самый простой вариант, чтобы не осуществлять полное тестирование продукта для выявления всех страниц с побитой кодировкой - извлечь из jar-ников repository/components/plugins все файлы по регулярному выражению '/.*ajaxprocessor\.jsp$/', и произвести с ними вышеуказанные манипалуции (во многих из них менять ничего будет не надо, т.к. кодировка там уже задана). При этом важно пропускать файлы, используемые для генерации ява-скрипта или стилей, т.к. после установки типа содержимого "text/html" они перестанут восприниматься браузером!


2) Проблема с квадратиками вместо символов на странице "Статистика медиации", "Features", и, возможно, других в WSO2 ESB 4.0.0 в Mozilla Firefox
Если статистика отсутствует, то в табличках на странице "Статистика медиации" отображаются соответствующие надписи, причем курсивом. Мозилла нарисовать курсив указанным в стилях страницы шрифтом не может, поэтому на странице отображаются квадратики. Выход - либо менять шрифты, либо отображать курсив не курсивом. И то, и другое можно сделать в файле org.wso2.esb.styles-4.0.0.jar\web\admin\css\main.css.

3) Опасные для использования символы при переводе. Переводя ресурсы, необходимо заменять символы, которые могут разрушить html-разметку ("<", ">") или сделать некорректным JavaScript-код (двойные и одинарные кавычки), на соответствующие им кодовые последовательности. Также нельзя использовать переводы строки ("\n"), т.к. они будут разрушать строки в JavaScript (ведь в JS нельзя переходить на новую строку в пределах константной строки).


Комментариев нет:

Отправить комментарий