掲示板
Переопределение имени базового портлета
7年前 に Koryagin Andrey によって更新されました。
Переопределение имени базового портлета
New Member 投稿: 3 参加年月日: 17/04/24 最新の投稿
Добрый день!
При попытке доработать русскую локализацию в LideRay версии 7.0-ga3 не получается переопределить имя базового портлета.
Порядок действий (на примере SocialActivityPortlet):
После деплоя модуля на север, в админ панели (в левом боковом меню и в заголовке страницы) все равно подгружается старое имя, прописанное в исходниках портала. В чем может быть проблема?
Спасибо!
При попытке доработать русскую локализацию в LideRay версии 7.0-ga3 не получается переопределить имя базового портлета.
Порядок действий (на примере SocialActivityPortlet):
- Создан модуль ServiceWrapper
- Создан ресурс content.Language_ru.properties. В нем переопределен заголовок портлета SocialActivityPortlet: javax.portlet.title.com_liferay_social_activity_web_portlet_SocialActivityPortlet=Социальная активность пользователей
- Реализован класс, наследованный от ResourceBundleLoader.
package com.test.localization; import java.util.ResourceBundle; import org.osgi.service.component.annotations.Component; import org.osgi.service.component.annotations.Reference; import com.liferay.portal.kernel.util.AggregateResourceBundleLoader; import com.liferay.portal.kernel.util.CacheResourceBundleLoader; import com.liferay.portal.kernel.util.ClassResourceBundleLoader; import com.liferay.portal.kernel.util.ResourceBundleLoader; @Component( immediate = true, property = { "bundle.symbolic.name=com.liferay.social.activity.web", "resource.bundle.base.name=content.Language_ru", "servlet.context.name=social-activity-web", } ) public class RussianLanguageSocialActivityPortlet implements ResourceBundleLoader { private AggregateResourceBundleLoader _resourceBundleLoader; @Override public ResourceBundle loadResourceBundle(String languageId) { return _resourceBundleLoader.loadResourceBundle(languageId); } @Reference(target = "(bundle.symbolic.name=com.liferay.social.activity.web)") public void setResourceBundleLoader( ResourceBundleLoader resourceBundleLoader) { _resourceBundleLoader = new AggregateResourceBundleLoader( new CacheResourceBundleLoader( new ClassResourceBundleLoader( "content.Language_ru", RussianLanguage.class.getClassLoader())), resourceBundleLoader); } }
- Модуль развернут на портале
После деплоя модуля на север, в админ панели (в левом боковом меню и в заголовке страницы) все равно подгружается старое имя, прописанное в исходниках портала. В чем может быть проблема?
Спасибо!
7年前 に Alexey Kakunin によって更新されました。
RE: Переопределение имени базового портлета
Liferay Master 投稿: 621 参加年月日: 08/07/07 最新の投稿
Добрый день! Сделал тестовый проект - https://github.com/akakunin/sample.hook.resourcebundle - у меня заработало и в Liferay DXP SP2 (+ fixpack-13) и в штатном Liferay CE 7.0.2
Сравните с вашим кодом
Сравните с вашим кодом
7年前 に Koryagin Andrey によって更新されました。
RE: Переопределение имени базового портлета
New Member 投稿: 3 参加年月日: 17/04/24 最新の投稿
Спасибо большое! Проблема оказалась в отсутствии параметра component.name в аннотации @Reference и в неправильном указании имени bundle (было Language_ru вместо Language).
Не подскажите еще, как быть с портлетом Application Display Templates (класс com_liferay_dynamic_data_mapping_web_portlet_PortletDisplayTemplatePortlet)? Для него отсутствует параметр Web-ContextPath, при просмотре в Felix GOGO, и не понятно, что нужно указать в параметре servlet.context.name при определении @Component.
Не подскажите еще, как быть с портлетом Application Display Templates (класс com_liferay_dynamic_data_mapping_web_portlet_PortletDisplayTemplatePortlet)? Для него отсутствует параметр Web-ContextPath, при просмотре в Felix GOGO, и не понятно, что нужно указать в параметре servlet.context.name при определении @Component.