1

我正在使用 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 不适用于来宾(未经授权的)用户。该问题已在此处记录。

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

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

4

4 回答 4

2

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

于 2014-02-04T08:00:14.833 回答
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);
于 2014-02-04T12:22:30.147 回答
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>
于 2014-02-06T09:03:27.527 回答
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>
于 2014-09-12T06:49:56.580 回答