目前,我正在为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>
有谁知道这个问题?
感谢您的帮助。
答案 0 :(得分:1)
过了一段时间,我自己想出来了。
您可以在ADT中的文章上调用两个函数。
getContent()
会显示您的默认语言。如果您的Web内容有翻译,那么此函数会以翻译的形式获取您的字段(在我的情况下:英文)getContentByLocale(string locale)
按照Liferay中设置的区域设置获取字段。这种方法是我正在寻找的解决方案感谢所有试图解决此问题的人。