Скрыть или отключить портлет для определенных языков в Liferay Portal - PullRequest
5 голосов
/ 23 января 2012

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

Заранее спасибо.

Ответы [ 2 ]

2 голосов
/ 04 апреля 2012

вы можете использовать оператор if в своем портлете и использовать следующий код:

<%ThemeDisplay themeDisplay = new ThemeDisplay();

String langid=null;
if(LanguageUtil.getLanguageId(request).equals("fa_IR"))
{
//display Farsi portlet
}
%>
<%=langid%>

или для лучшего результата вы можете использовать оператор switch

0 голосов
/ 29 сентября 2012

Полагаю, вы уже знаете, что можете изменить доступные локали на уровне портала с

Portal Settings > Display > Available Languages 

или через свойство "locales" в portal.properties (http://www.liferay.com/community/wiki/-/wiki/Main/Languagedisplay+customization#section-Languagedisplay+customization-Removing+unwanted+language).

На уровне портлета я не уверен, как это сделать с помощью ловушек, но с помощью плагина ext вы можете попытаться переопределить / расширить getResourceBundle (локаль локали) в PortletConfigImpl и вернуть свой собственный XResourceBundle, который фильтрует локали, переопределяющие методы handleGetObject, getKeys (), getResourceBundle (), поэтому, если локаль отсутствует в наборе, возвращается ошибочный.

...