给出了一个包含一些portlet和更改语言portlet的普通页面。是否可以隐藏特定语言的特定portlet? 也许通过Portlet prefrences(仅显示这些语言环境......)?
提前致谢。
答案 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。