null

Пишем hook-плагин, исправляющий локализацию Liferay Portal

В одной из предыдущих заметок я рассказывал о том, как исправить локализацию Liferay Portal. У описанного там способа есть один существенный недостаток - надо распаковывать war-файл портала и модифицировать его содержимое (либо собирать портал из исходников). Причём этим не слишком увлекательным занятием нам придётся заниматься, например, при каждой миграции на новую версию портала.

К счастью, разработчики Liferay создали механизм хуков (hooks), который поможет нам избавиться от этой рутины. Если коротко, то хуки - это плагины, позволяющие программисту модифицировать некоторые элементы внутренней модели Liferay в соответствии с собственными нуждами без необходимости модификации самого портала. В частности, с помощью хуков можно внести изменения в обработку событий на портале (логин / логаут, вызовы сервисов и т.д.), заменить JSP для интегрированных в состав портала портлетов, внести изменения в конфигурацию портала (подменить portal.properties) и (то, что нам и надо) модифицировать его локализацию. Рассмотрим на практическом примере, как это делается.

Для начала работы нам понадобится Eclipse IDE (с установленным Liferay IDE), а также установленные Liferay Portal и Liferay Plugins SDK (всё это можно скачать с www.liferay.com). Естественно, разрабатывать хуки для Liferay можно и в других IDE, но Eclipse очень хорошо интегрируется с Plugins SDK, так что использовать его для нас будет наиболее простым решением.

Далее всё очень просто:

1. Создаём новый проект - File -> New -> Liferay Project. В появившемся мастере создания проекта выбираем пункт "Hook":

New Liferay Plugin Project

2. Кликаем "Finish".

3. Создаём сам хук - File -> New -> Liferay Hook. В мастере создания отмечаем флажок "Language properties":

Create Liferay Hook

4. Кликаем "Next". В открывшемся окне добавляем файлы локализации. Файлы должны называться Language_$[localeId].properties - например, Language_en_US.properties для дефолтной английской (американской) локализации или Language_ru.properties для русской:

Create Language Properties

4. Исправляем локализацию - добавляем в бандлы те строки, которые мы хотим изменить. Например, если нам не нравится пункт "Cтарницы" в панели управления, то в файл русской локализации надо добавить такую строчку:

javax.portlet.title.156=Страницы

А если, к примеру, мы хотим заменить там "Доски сообщений" на "Форум", то такую:

javax.portlet.title.19=Форум

Локализацию удобнее всего править, имея перед глазами оба оригинальных файла локализации - русский и английский (их можно скачать по ссылкам из этой статьи).

5. Развёртываем наш плагин на сервере - кликаем "Run on server".

6. Проверяем, что локализация изменилась:

Liferay Control Panel

Дополнительные файлы:

Пример хука, исправляющего ошибки в русской локализации Liferay (src, war).

Оригинальная русская локализация Liferay

Оригинальная английская локализация Liferay

Коротко о себе:

Работаю ведущим программистом в компании Tune IT и ассистентом кафедры Вычислительной техники в Университете ИТМО .

Занимаюсь проектами, связанными с разработкой разного рода веб-приложений (порталы, CRM-системы, системы электронного документооборота), а также, в рамках научной работы на кафедре, изучаю возможности применения семантического анализа в задачах САПР.

Ничего не найдено. n is 0