我正在开发的 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)。因此,如果我们坚持以下两个要求:
- 使用 polymer
- 将整个字符串组合成一个资源字符串
然后似乎没有办法为字符串的某些部分设置样式。有人知道解决方案吗?
最佳答案
我通过将资源字符串设置为包含该字符串的元素的内部 HTML 使其工作。所以假设包含文本的 div 有 id="textElem"
,在 Javascript 中我设置内部 HTML 如下:
this.$.textElem.innerHTML = this.localize('user_created_document', 'username', this.username)
我想我应该在问题中说明我之前设置字符串的尝试只是 (a) 简单地将字符串绑定(bind)到对象的属性并在 HTML 中引用它,以及 (b) 直接本地化字符串在 HTML 中,两者都不起作用。
关于html - 如何合并 HTML 标签来为本地化字符串的某些部分设置样式(Polymer),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46333322/