留言板
Переопределение имени базового портлета
Koryagin Andrey,修改在7 年前。
Переопределение имени базового портлета
New Member 帖子: 3 加入日期: 17-4-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); } }
- Модуль развернут на портале
После деплоя модуля на север, в админ панели (в левом боковом меню и в заголовке страницы) все равно подгружается старое имя, прописанное в исходниках портала. В чем может быть проблема?
Спасибо!
Alexey Kakunin,修改在7 年前。
RE: Переопределение имени базового портлета
Liferay Master 帖子: 621 加入日期: 08-7-7 最近的帖子
Добрый день! Сделал тестовый проект - https://github.com/akakunin/sample.hook.resourcebundle - у меня заработало и в Liferay DXP SP2 (+ fixpack-13) и в штатном Liferay CE 7.0.2
Сравните с вашим кодом
Сравните с вашим кодом
Koryagin Andrey,修改在7 年前。
RE: Переопределение имени базового портлета
New Member 帖子: 3 加入日期: 17-4-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.