【问题标题】:Add language support in liferay theme在 liferay 主题中添加语言支持
【发布时间】:2015-12-04 16:09:19
【问题描述】:

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

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

谁能建议一种解决方法来开发此功能?

【问题讨论】:

  • @crv 你能建议一些解决方法吗

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


【解决方案1】:

您可以添加所需的语言作为 URL 的一部分:例如在 liferay.com 上查看英文页面:http://www.liferay.com/en/radio。德语的同一页(嗯,内容未本地化,但导航元素是):http://www.liferay.com/de/radio。如果您有更狭窄的定义,这也适用,例如用 en_GB 表示英式英语。

【讨论】:

    【解决方案2】:

    在 Olaf 解决方案的附录中,您可以将 javascript sn-p 添加到主题中,类似这样

    var deutsch = "<a href='/de" + Liferay.currentURL + "'>De</a>";
    var spain = "<a href='/es" + Liferay.currentURL + "'>Es</a>";
    languagesDiv.html(deutsch + spain);
    

    【讨论】:

    • 感谢 Mark 和 Olaf 成功了。如何根据我选择的语言更改主题中的内容。我需要写一些属性文件吗?我该怎么做?
    【解决方案3】:

    我通过添加实现了这一点

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

    【讨论】:

      【解决方案4】:

      以下代码适用于 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>
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2023-04-08
        • 2017-06-04
        • 2020-02-10
        • 2017-01-16
        • 2017-12-30
        • 2018-03-02
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多