在Liferay Portal中隐藏或禁用特定语言的Portlet

时间:2012-01-23 08:57:30

标签: liferay portlet

给出了一个包含一些portlet和更改语言portlet的普通页面。是否可以隐藏特定语言的特定portlet? 也许通过Portlet prefrences(仅显示这些语言环境......)?

提前致谢。

2 个答案:

答案 0 :(得分:2)

您可以在portlet中使用if语句并使用以下代码:

<%ThemeDisplay themeDisplay = new ThemeDisplay();

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

或者为了获得更好的结果,您可以使用switch语句

答案 1 :(得分:0)

我假设您已经知道可以从

更改门户级别的可用区域设置
Portal Settings > Display > Available Languages 

或通过portal.properties中的属性“locales”(http://www.liferay.com/community/wiki/-/wiki/Main/Languagedisplay+customization#section-Languagedisplay+customization-Removing+unwanted+language)

在portlet级别,我不知道如何使用钩子,但是使用ext插件你可以尝试在PortletConfigImpl中覆盖/扩展getResourceBundle(Locale locale)并返回你自己的XResourceBundle来过滤语言环境覆盖方法handleGetObject,getKeys (),getResourceBundle(),因此如果区域设置不在集合中,则返回一个falback。