|    
 
 Руководство администратора
 Описание локализации
 
 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 - список размеров файлов ресурсов в распакованном виде
 |