我正在使用liferay 6.2创建主题。我需要在我的主题中添加语言支持。为此,我尝试使用
添加语言portlet$theme.language()
在portal_normal.vm中。通过此portlet添加到主题但它不起作用。
我也试过了 $velocityPortletPreferences.setValue("portletSetupShowBorders","false")
<menu class="nav-horizontal" id="language-navigation">
<ul>
<li>$theme.runtime("82", "", $velocityPortletPreferences.toString())</li>
</ul>
</menu>
$velocityPortletPreferences.reset()
此外,我注意到语言portlet不适用于访客(未授权)用户。问题已记录here。
我的要求是,当访客用户访问网站时,他可以更改语言,因此主题/网站页面/管理员/网站内容应更改为相应的语言。
任何人都可以建议一种解决方法来开发此功能吗?
答案 0 :(得分:2)
您可以在网址中添加所需的语言:例如查看liferay.com上的英文单页:http://www.liferay.com/en/radio。德语中的相同页面(嗯,内容是非本地化的,但导航元素是):http://www.liferay.com/de/radio。如果你有更窄的定义,例如en_GB为英国英语。
答案 1 :(得分:1)
在Olaf解决方案的附录中,您可以将javascript片段添加到主题中,类似这样的
var deutsch = "<a href='/de" + Liferay.currentURL + "'>De</a>";
var spain = "<a href='/es" + Liferay.currentURL + "'>Es</a>";
languagesDiv.html(deutsch + spain);
答案 2 :(得分:1)
我通过添加
实现了这一目标 <ul>
<li><a href="/en"+$theme_display.getURLCurrent() title="UK">UK</a></li>
<li><a href="/de"+$theme_display.getURLCurrent() title="Germen">Germen</a></li>
</ul>
在portal_normal.vm文件中。 为了本地化页脚,我创建了带有德语翻译的Web内容,并将其添加到页脚中
<footer id="footer" role="contentinfo">
#set ($VOID = $velocityPortletPreferences.setValue('portletSetupShowBorders', 'false'))
#set ($portlet_id = '56')
#set ($instance_id = "lw8tVGo0NyCB")
#set ($my_portlet_id = "${portlet_id}_INSTANCE_${instance_id}")
$theme.runtime($my_portlet_id, "", $velocityPortletPreferences.toString())
$velocityPortletPreferences.reset() </footer>
答案 3 :(得分:0)
以下代码在liferay 6.2社区版中为我工作。我在配置显示下拉列表中更改了它,并在设置中添加了需要语言。
<div >
$velocityPortletPreferences.setValue("portletSetupShowBorders", "false")
$velocityPortletPreferences.setValue("languageIds", "pt_BR,en_US")
$velocityPortletPreferences.setValue("displayStyle", "1")
$theme.runtime("82", "", $velocityPortletPreferences.toString())
$velocityPortletPreferences.reset()
</div>