Java 在liferay主题中添加语言支持

Java 在liferay主题中添加语言支持,java,liferay,liferay-6,multilingual,liferay-theme,Java,Liferay,Liferay 6,Multilingual,Liferay Theme,我正在使用liferay 6.2创建主题。我需要在我的主题中添加语言支持。为此,我尝试使用 $theme.language() 在portal_normal.vm中。这个portlet被添加到主题中,但它不起作用。 我也试过了 $velocityPortletPreferences.setValue("portletSetupShowBorders","false") <menu class="nav-horizontal" id="language-navigati

我正在使用liferay 6.2创建主题。我需要在我的主题中添加语言支持。为此,我尝试使用

$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()
$velocityPortletPreferences.setValue(“portletSetupShowBorders”,“false”)
  • $theme.runtime(“82”,”,$velocityPortletPreferences.toString())
$velocityPortletPreferences.reset()
我还注意到语言portlet不适用于来宾(未经授权)用户。该问题已被记录

我的要求是,无论何时访客用户来到站点,他都可以更改语言,相应地,主题/站点页面/管理员/web内容应更改为相应的语言


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

您可以将所需的语言添加到URL中:例如,在liferay.com上查看一个英文页面:。相同的德语页面(内容是非本地化的,但导航元素是):。如果您有更狭义的定义,例如英式英语的en_GB,这也适用

您可以添加所需语言作为URL的一部分:例如,在liferay.com上以英语查看一个页面:。相同的德语页面(内容是非本地化的,但导航元素是):。如果您有更狭义的定义,例如英式英语的en_GB,这也适用

在Olaf解决方案的附录中,您可以将javascript代码片段添加到主题中,如下所示

var deutsch = "<a href='/de" + Liferay.currentURL + "'>De</a>";
var spain = "<a href='/es" + Liferay.currentURL + "'>Es</a>";
languagesDiv.html(deutsch + spain);
<footer id="footer" role="contentinfo">
var deutsch=”“;
var西班牙=”;
html(德语+西班牙语);

在Olaf解决方案的附录中,您可以将javascript代码片段添加到主题中,如下所示

var deutsch = "<a href='/de" + Liferay.currentURL + "'>De</a>";
var spain = "<a href='/es" + Liferay.currentURL + "'>Es</a>";
languagesDiv.html(deutsch + spain);
<footer id="footer" role="contentinfo">
var deutsch=”“;
var西班牙=”;
html(德语+西班牙语);

我通过添加

             <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内容,并将其添加到页脚中,如下所示

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

#set($VOID=$velocityPortletPreferences.setValue('portletSetupShowBorders','false'))
#set($portlet\u id='56')
#设置($instance_id=“lw8tVGo0NyCB”)
#set($my\u portlet\u id=“${portlet\u id}{u实例\u${INSTANCE\u id}”)
$theme.runtime($my_portlet_id,“,$velocityPortletPreferences.toString())
$velocityPortletPreferences.reset()

我通过添加

             <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内容,并将其添加到页脚中,如下所示

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

#set($VOID=$velocityPortletPreferences.setValue('portletSetupShowBorders','false'))
#set($portlet\u id='56')
#设置($instance_id=“lw8tVGo0NyCB”)
#set($my\u portlet\u id=“${portlet\u id}{u实例\u${INSTANCE\u id}”)
$theme.runtime($my_portlet_id,“,$velocityPortletPreferences.toString())
$velocityPortletPreferences.reset()

下面的代码在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>

$velocityPortletPreferences.setValue(“portletSetupShowBorders”,“false”)
$velocityPortletPreferences.setValue(“LanguageId”,“pt\u BR,en\u US”)
$velocityPortletPreferences.setValue(“displayStyle”、“1”)
$theme.runtime(“82”,”,$velocityPortletPreferences.toString())
$velocityPortletPreferences.reset()

下面的代码在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>

$velocityPortletPreferences.setValue(“portletSetupShowBorders”,“false”)
$velocityPortletPreferences.setValue(“LanguageId”,“pt\u BR,en\u US”)
$velocityPortletPreferences.setValue(“displayStyle”、“1”)
$theme.runtime(“82”,”,$velocityPortletPreferences.toString())
$velocityPortletPreferences.reset()

@crv您能为该项目提出一些解决方案吗same@crv你能为sameThanks Mark和Olaf提出一些解决方案吗。如何根据我选择的语言更改主题中的内容。我需要写一些属性文件吗。我该怎么做呢?谢谢马克和奥拉夫,成功了。如何根据我选择的语言更改主题中的内容。我需要写一些属性文件吗。我该怎么做?