在liferay主题中添加语言支持

时间:2014-02-04 05:03:52

标签: java liferay liferay-6 multilingual liferay-theme

我正在使用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

我的要求是,当访客用户访问网站时,他可以更改语言,因此主题/网站页面/管理员/网站内容应更改为相应的语言。

任何人都可以建议一种解决方法来开发此功能吗?

4 个答案:

答案 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>