По идее, русификация WSO2 - дело достаточно тривиальное. Необходимо извлечь из jar-ников директории repository/components/plugins/ все файлы Resources.properties, перевести их (вместо русских символов необходимо использовать т.н. "Unicode-последовательности") и закатать обратно. Однако не всё оказывается так просто, об особенностях этого процесса я и напишу ниже.
1) Русификация домашней страницы административной консоли (а также других страниц, на которых содержится запрашиваемые по AJAX данные)
Properties-файл для локализации домашней страницы консоли администрирования WSO2 (таблички, отображающей суммарную статусную информацию по серверу) расположен тут:
Дело в том, что эта табличка запрашивается с помощью AJAX со страницы
Аналогичные манипуляции необходимы также на всех других jsp-страницах, на которых кодировка не установлена корректно и к которым запрос ведется по AJAX.
ИМХО самый простой вариант, чтобы не осуществлять полное тестирование продукта для выявления всех страниц с побитой кодировкой - извлечь из jar-ников repository/components/plugins все файлы по регулярному выражению '/.*ajaxprocessor\.jsp$/', и произвести с ними вышеуказанные манипалуции (во многих из них менять ничего будет не надо, т.к. кодировка там уже задана). При этом важно пропускать файлы, используемые для генерации ява-скрипта или стилей, т.к. после установки типа содержимого "text/html" они перестанут восприниматься браузером!
2) Проблема с квадратиками вместо символов на странице "Статистика медиации", "Features", и, возможно, других в WSO2 ESB 4.0.0 в Mozilla Firefox
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 со страницы
/carbon/server-admin/system_status_ajaxprocessor.jsp, которая неверно выставляет кодировку ответа (вернее она вообще не устанавливает никакой кодировки явно, и по умолчанию получается latin-1).
Для того, чтобы исправить дело, необходимо в repository/components/plugins/org.wso2.carbon.server.admin-3.2.0.jar/web/server-admin/system_status_ajaxprocessor.jsp явно задать кодировку ответа utf-8, добавив строчку:
response.setHeader("Content-Type", "text/html;charset=UTF-8");или установить тип содержимого с помощью атрибута "contentType" директивы "page" <%@ page contentType="text/html;charset=UTF-8" %> |
Аналогичные манипуляции необходимы также на всех других 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 нельзя переходить на новую строку в пределах константной строки).
3) Опасные для использования символы при переводе. Переводя ресурсы, необходимо заменять символы, которые могут разрушить html-разметку ("<", ">") или сделать некорректным JavaScript-код (двойные и одинарные кавычки), на соответствующие им кодовые последовательности. Также нельзя использовать переводы строки ("\n"), т.к. они будут разрушать строки в JavaScript (ведь в JS нельзя переходить на новую строку в пределах константной строки).
Комментариев нет:
Отправить комментарий