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

在Liferay Portal中隐藏或禁用特定语言的Portlet,liferay,portlet,Liferay,Portlet,假设有一个包含一些portlet和ChangeLanguageportlet的普通页面。是否可以隐藏特定语言的特定portlet? 可能通过Portlet首选项(仅针对这些区域设置显示…) 提前感谢。您可以在portlet中使用if语句并使用以下代码: <%ThemeDisplay themeDisplay = new ThemeDisplay(); String langid=null; if(LanguageUtil.getLanguageId(request).equals("fa

假设有一个包含一些portlet和ChangeLanguageportlet的普通页面。是否可以隐藏特定语言的特定portlet? 可能通过Portlet首选项(仅针对这些区域设置显示…)


提前感谢。

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

<%ThemeDisplay themeDisplay = new ThemeDisplay();

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


或者为了获得更好的结果,您可以使用switch语句,我假设您已经知道可以从

Portal Settings > Display > Available Languages 
或者通过portal.properties中的属性“locales”(http://www.liferay.com/community/wiki/-/wiki/Main/Languagedisplay+自定义#节语言显示+自定义删除+不需要的+语言)


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

我已经编写了自己的liferay钩子来解决这个问题。如果有人对代码感兴趣,请留言。这是关于现有的Liferay Portlet还是您自己的自定义Portlet?这适用于所有Portlet,因为我已钩住了look&feel模式窗口Hi Robert,您可以与我共享此钩子的代码吗?我有一个类似的问题。。。谢谢