Liferay Appilcation显示模板显示错误的语言

时间:2016-01-11 08:43:59

标签: freemarker liferay-6.2

目前,我正在为Asset Publisher开发一个ADT,显示每个Web内容的简短版本。在Web内容结构中,有一个名为" content"它只是一个简单的HTML字段。

<dynamic-element dataType="html" fieldNamespace="ddm" indexType="text" localizable="true" name="content" readOnly="true" repeatable="false" required="true" showLabel="true" type="ddm-text-html" width="25">
    <meta-data locale="de_DE">
        <entry name="label">
            <![CDATA[Content]]>
        </entry>
        <entry name="predefinedValue">
            <![CDATA[]]>
        </entry>
        <entry name="tip">
            <![CDATA[]]>
        </entry>
    </meta-data>
</dynamic-element>

创建Web内容时,创作者可以将翻译设置为英语(美国)。

有趣的是,如果他没有添加翻译,ADT会显示德语版本的Field&#34; content&#34; (这是正确的方法)。添加翻译时,ADT显示英文版(但它应显示德文版,因为德语被设置为默认语言)。

ADT的相关部分是:

<#assign aArticleXML = saxReaderUtil.read(aArticle.getContent()) >
<#assign content = aArticleXML.valueOf("//dynamic-element[@name='content']/dynamic-content/text()") />
...
<p>${content}</p>

有谁知道这个问题?

感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

过了一段时间,我自己想出来了。

您可以在ADT中的文章上调用两个函数。

    如果您的网络内容没有可用的翻译,
  • getContent()会显示您的默认语言。如果您的Web内容有翻译,那么此函数会以翻译的形式获取您的字段(在我的情况下:英文)
  • getContentByLocale(string locale)按照Liferay中设置的区域设置获取字段。这种方法是我正在寻找的解决方案

感谢所有试图解决此问题的人。