Liferay 应用程序显示模板显示错误的语言
Liferay Appilcation Display Template showing wrong language
目前我正在为 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 的德语版本 "content"(这是正确的方式)。添加翻译时,ADT显示的是英文(但应该显示德文,因为德文被设置为默认语言)。
ADT的相关部分是这样的:
<#assign aArticleXML = saxReaderUtil.read(aArticle.getContent()) >
<#assign content = aArticleXML.valueOf("//dynamic-element[@name='content']/dynamic-content/text()") />
...
<p>${content}</p>
有人知道这个问题吗?
感谢您的帮助。
经过一段时间我自己弄明白了。
您可以在 ADT 中的文章上调用两个函数。
如果您的 Web 内容没有可用的翻译,getContent()
会显示您的默认语言。如果您的 Web 内容有翻译,那么此功能将以翻译形式获取您的字段(在我的例子中:英语)
getContentByLocale(string locale)
通过 Liferay 中设置的语言环境获取字段。而这种方法正是我一直在寻找的解决方案
感谢所有尝试解决此问题的人。
目前我正在为 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 的德语版本 "content"(这是正确的方式)。添加翻译时,ADT显示的是英文(但应该显示德文,因为德文被设置为默认语言)。
ADT的相关部分是这样的:
<#assign aArticleXML = saxReaderUtil.read(aArticle.getContent()) >
<#assign content = aArticleXML.valueOf("//dynamic-element[@name='content']/dynamic-content/text()") />
...
<p>${content}</p>
有人知道这个问题吗?
感谢您的帮助。
经过一段时间我自己弄明白了。
您可以在 ADT 中的文章上调用两个函数。
-
如果您的 Web 内容没有可用的翻译,
getContent()
会显示您的默认语言。如果您的 Web 内容有翻译,那么此功能将以翻译形式获取您的字段(在我的例子中:英语)getContentByLocale(string locale)
通过 Liferay 中设置的语言环境获取字段。而这种方法正是我一直在寻找的解决方案
感谢所有尝试解决此问题的人。