如何合并 HTML 标签来为本地化字符串的某些部分设置样式(Polymer)
How to incorporate HTML tags for styling certain parts of localized strings (Polymer)
我正在处理的 Web 应用程序使用资源字符串进行本地化。我遇到的问题是对这些字符串的某些部分进行样式设置。假设我想显示这个字符串:
user1234 created a new document.
所以在资源文件中它会像这样被本地化:
{username} created a new document.
问题是我还需要 <b></b>
标签围绕 {username}
。我不能将这些标签放在 html 文件中,因为我需要它只应用于用户名,而不是整个本地化字符串。因此,除非我将字符串拆分为两个本地化字符串(我绝对应该 而不是 这样做,因为其他语言不一定具有相同的句子结构),我必须将这些 html 本地化字符串本身中的标记:
<b>{username}</b> created a new document.
即使我们暂时忽略最佳实践(我有 read briefly)并采用此方法,此解决方案对我也不起作用。我相信这是因为应用程序正在使用 Polymer(这似乎适用于 Angular)。因此,如果我们坚持以下两个要求:
- 使用聚合物
- 将整个字符串作为一个资源字符串
然后似乎没有办法为字符串的某些部分设置样式。有人知道解决方案吗?
我通过将资源字符串设置为包含该字符串的元素的内部 HTML 使其工作。所以假设包含文本的 div 有 id="textElem"
,在 Javascript 中我设置内部 HTML 像这样:
this.$.textElem.innerHTML = this.localize('user_created_document', 'username', this.username)
我想我应该在问题中指定我之前设置字符串的尝试只是 (a) 简单地将字符串绑定到对象的 属性 并在 [=16= 中引用它],以及 (b) 直接在 HTML 中本地化字符串,但都不起作用。
我正在处理的 Web 应用程序使用资源字符串进行本地化。我遇到的问题是对这些字符串的某些部分进行样式设置。假设我想显示这个字符串:
user1234 created a new document.
所以在资源文件中它会像这样被本地化:
{username} created a new document.
问题是我还需要 <b></b>
标签围绕 {username}
。我不能将这些标签放在 html 文件中,因为我需要它只应用于用户名,而不是整个本地化字符串。因此,除非我将字符串拆分为两个本地化字符串(我绝对应该 而不是 这样做,因为其他语言不一定具有相同的句子结构),我必须将这些 html 本地化字符串本身中的标记:
<b>{username}</b> created a new document.
即使我们暂时忽略最佳实践(我有 read briefly)并采用此方法,此解决方案对我也不起作用。我相信这是因为应用程序正在使用 Polymer(这似乎适用于 Angular)。因此,如果我们坚持以下两个要求:
- 使用聚合物
- 将整个字符串作为一个资源字符串
然后似乎没有办法为字符串的某些部分设置样式。有人知道解决方案吗?
我通过将资源字符串设置为包含该字符串的元素的内部 HTML 使其工作。所以假设包含文本的 div 有 id="textElem"
,在 Javascript 中我设置内部 HTML 像这样:
this.$.textElem.innerHTML = this.localize('user_created_document', 'username', this.username)
我想我应该在问题中指定我之前设置字符串的尝试只是 (a) 简单地将字符串绑定到对象的 属性 并在 [=16= 中引用它],以及 (b) 直接在 HTML 中本地化字符串,但都不起作用。