SAPUI5:xml 视图中 html 标记中的 i18n 属性内容

Posted

技术标签:

【中文标题】SAPUI5:xml 视图中 html 标记中的 i18n 属性内容【英文标题】:SAPUI5: i18n property content in html tags within xml views 【发布时间】:2015-03-19 13:53:51 【问题描述】:

如何在 xml 视图中的 html 标记中包含 i18n 属性内容,即 xml 视图中的“普通”文本标记如下所示:

<Text text="Lorem ipsum"/>

具有 i18n 属性,例如:

<Text text="i18n>LOREMIPSUM"/>

如何包含“i18n>LOREMIPSUM”?

<html:p> </html:p>

谢谢

【问题讨论】:

为什么要在 XML 视图中使用 html 标记?! @zyrex 你不认为在 sapui5 xml 视图中支持 html 标签是有原因的吗? @zyrex:看看这个:sapui5.netweaver.ondemand.com/sdk/explored.html#/entity/… 用例是什么,这是我的问题。 好吧,在我的例子中,我已经有大量的 html 代码想要转移到 xml 视图(xml 视图,因为这是标准并且它们作为其他视图类型更易于管理)。另外:我有兴趣看到一种更简单、更易于管理的创建方式,例如带有 xml(而不是 html)的 SAPUI5 xml 视图中的 ul/ol 等 【参考方案1】:

在您的 XML 视图中使用此代码...

<HTML xmlns="sap.ui.core" content="i18n>myHtmlContent" />

在你的 i18n.properties 中有类似的东西......

myHtmlContent=<p>This is an example of <b>internationalized HTML</b> text.</p>

将 HTML 字符串完全封装到某个外部标记(在本例中为 &lt;p&gt;...&lt;/p&gt;)中非常很重要。如果 HTML 控件包含标签之外的任何文本,它将无法正常工作。

这种方法的美妙之处在于,您不必转义 HTML 中的任何特殊字符。如果您将 HTML 直接放入 XML 的内容属性中,则转义实际上是必要的。将其放置在 i18n.properties 中会使整个 HTML 内容更易于管理。

【讨论】:

【参考方案2】:

您可以使用 core:html 标签来添加 HTML 。我不确定如何将其绑定到 html:p 。但是,以下代码有效。

<core:HTML
 content='&lt;div &gt;i18n&gt;LOREMIPSUM&lt;/div&gt;'>
</core:HTML>

【讨论】:

不幸的是,以下两个不起作用:

@ksc 只需在我的答案中使用 core:html 标签(没有 html:p 标签),并将您的 HTML 代码添加到 core:html 标签的内容中。这对我有用。 在没有尝试过的情况下,我可以说这(乍一看)不能满足我的要求,因为它超出了 - 不仅 p 标签受到影响,尤其是 ul/ol 中的 li 和其他人,除非我能以某种方式将这个核心 html 嵌套在这些不同的标签中(这会使它变得相当复杂,对吗?难道没有快速简便的解决方案吗?)。我在 xml 视图中有大量 html 标签,并且希望基本上将内容“外包”给 i18n 属性文件。 @ksc 您可以使用 HTML 视图并嵌入 xml 视图或使用 Handlebars 您好 stpc,您能帮帮我看看这些车把,因为我不熟悉。从您发布的链接中,我看到了这些关于 i18n 内容的示例:element tag="div" text="i18n>MY_TEXT" 或 text path="i18n>MY_TEXT" 我玩过有点绕,但是,我将如何在此处包含此示例:

或此处 。这对我不起作用: text path="i18n>MY_TEXT" thx

以上是关于SAPUI5:xml 视图中 html 标记中的 i18n 属性内容的主要内容,如果未能解决你的问题,请参考以下文章

XML基本知识介绍

SAPUI5 将数组行索引绑定到 xml 视图中的数组行数据

SAP UI5 如何在 xml 视图中附加 HTML

SAPUI5 XML 视图文本不可见

SAPUI5 何时将初始过滤器绑定到控件

从 xml 视图 SAPUI5 复制列表项