Руководство администратора
Описание локализации
2013. Diasoft Co. Все права защищены.
1.История изменений документа
Версия документа
|
Содержание изменения
|
Дата изменения
|
Автор изменения
|
1.0.0
|
Создание документа
|
17.05.2010
|
Кондаков М.В.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2.Содержание
1.История изменений документа 3
2.Содержание 4
3.Локализация меню 5
4.Локализация клиентских сообщений и сервисов 6
5.Локализация форм и пейджфлоу 8
6.Реализация 9
3.Локализация меню
Поддержана возможность локализации верхнего и левого меню. Для обеспечения поддержки национального языка необходимо в папке метаданных «MENU» создать файлы mainmenu_.xml и ribbonmeni_.xml, где
– название соответствующей языковой консоли.
Например, для поддержки английского языка необходимо наличие файлов: mainmenu_en.xml, ribbonmenu_en.xml. При отсутствии соответствующих файлов для выбранного языка, будут использоваться файлы по умолчанию: mainmenu.xml и ribbonmenu.xml.
4.Локализация клиентских сообщений и сервисов
Релизована полная поддержка локализации в дополнение в локализованным формам. Для этого в метаданные добавлен каталог BUNDLES, могут находится файлы двух типов:
Файлы ресурсов client_messages – ресурсы скриптов.
Файлы ресурсов service_messages – ресурсы сервисов
Оба типа файлов основаны на стандартном механизме свойств Java – корневые файлы client_messages.properties и service_messages.properties, а также локализованые версии client_messages_ru.properties, client_messages_en.properties и т.п.
Необходимо обратить особое внимание на порядок поиска – сначала ищется файл, соответствующий требуемой локали, потом – локали по умолчанию, и только потом – корневой. Т.е. если корневой файл соответствует английской версии, которая и требуется, а по умолчанию стоит русская локаль – при отсутствии файла для английской локали (с окончанием “_en”), будут найдены русские значения. Чтобы этого избежать, достаточно создать пустой файл для английской локали.
Каждый файл содержит строки с парами ключ-значение. Пример приведен ниже:
SomeMessage=Hello message
Такой вид обусловлен тем, что файлы свойств создаются в модифицированной кодировке iso-8859-1, где все символы, не входящие в эту кодировку, заменяются на последовательности с кодами unicode. Для приведения файлов свойств, созданных в «родной» кодировке, в такому виду необходимо воспользоваться утилитой native2ascii, входящей в поставку Java SDK. Описание использования данной утилиты можно тайти тут: http://java.sun.com/j2se/1.5.0/docs/tooldocs/windows/native2ascii.html.
Для использования механизма ресурсов в прикладных сервисах создана библиотека commons-localization. Для работы с ресурсами служит класс ru.diasoft.fa.platform.lib.commons.localization.LocalizationManager, который содержит два публичных метода:
Map getBundle(String locale, String bundleType, String projectName)
Получение всех локализованных сообщений
locale - строка ресурса, например "ru", "en", "de" и т.п.
bundleType - один из типов service, client или form. Для удобства использования в классе LocalizationManager созданы три публичных константы BUNDLE_TYPE_CLIENT, BUNDLE_TYPE_FORM и BUNDLE_TYPE_SERVICE
projectName - системное имя проекта, из метаданных которого будет браться файл локализации.
Метод возвращает Map с ключем - именем локализуемого сообщения и значением - локализованным сообщением.
String getResourceBundle(String locale, String bundleType, String projectName, String bundleName)
Получение единичного локализованного сообщения
locale - строка ресурса, например "ru", "en", "de" и т.п.
bundleType - один из типов service, client или form. Для удобства использования в классе LocalizationManager созданы три публичных константы BUNDLE_TYPE_CLIENT, BUNDLE_TYPE_FORM и BUNDLE_TYPE_SERVICE
projectName - системное имя проекта, из метаданных которого будет браться файл локализации.
bundleName - имя интересующего нас параметра в файле локализации
Метод возвращает локализованную строку.
Пример использования:
LocalizationManager localization = LocalizationManager.getInstance();
String message = localization.getResourceBundle("ru", LocalizationManager.BUNDLE_TYPE_SERVICE, "other", "some.service.key");
Показано получение сообщения с ключом "some.service.key" из файла локализации BUNDLES\service_messages_ru.properties в метаданных проекта с системным именем "other".
Библиотека должна быть сконфигурирована посредством файла localization-config.xml с двумя обязательными параметрами:
http://localhost:8080/corews/corews>
600
Первый параметр corews - URL сервиса corews, от которого библиотека получает файлы локализации.
Второй параметр timeToLiveSeconds - продолжительность жизни в памяти сервера закешированных данных локализации в секнудах, по умолчанию 600 секунд.
5.Локализация форм и пейджфлоу
Для файлов ресурсов форм создается отдельный подкаталог BUNDLES\FORMS, в котором сохраняются файлы ресурсов, названия которых до знака «_» совпадают с названиями файлов форм (например, cashtest1_ru.properties). Ключи в этих файлах представляют собой полное наименование определенного визуального свойства компонента формы, например:
cashtest1.WPanel1.WCheckBox1.Caption=\u041e\u0448\u0438\u0431\u043a\u0430
Таким образом, если значение данного свойства не передается из процесса, можно переопределить его в соответствующем файле ресурсов.
Для использования в скриптах процессов и формах создана JavaScript функция getResourceBundle(key). Функция возвращает значение из файлов client_messages в зависимости от локали клиента по переданному ключу строке key.
6.Реализация
Для получения файлов ресурсов данных на формах в сервис corews в метод metadata добавлены два новых выходных параметра:
fileLocalizeList – список файлов ресурсов
fileSizeLocalizeList - список размеров файлов ресурсов в распакованном виде
Для получения файлов ресурсов скриптов и сервисов в сервис corews добавлен метод metadatabundle:
Входящие параметры:
project – системное имя проекта (CORE_PROJECT.PROJECTSYSNAME)
locale – строка ресурса, например "ru", "en", "de" и т.п.
bundleType – имя типа ресурса (на данный момент client или service)
Исходящие параметры:
fileList – список файлов ресурсов
fileSizeList - список размеров файлов ресурсов в распакованном виде
|