我目前正在重新实现 Facebook 的国际化 XFBML 标签的前端,该标签已经被破坏了一段时间。我快完成了,但有一个问题:在不丢失子节点信息的情况下替换标记化的翻译。
对于背景,翻译标签看起来像这样:
<fb:intl>
Text goes here and you can have {a-token} like this.
<fb:intl-token name="a-token">parameters</fb:intl>
</fb:intl>
你给他们传递一个这样的字符串:
Text goes here and you can have {a-token} like this.
你会得到一个这样的翻译字符串:El texto va aquí y usted puede tener {a-token} como ésta.
即使您可以输入动态数据,这也可以让您只翻译一次字符串。很酷的部分(和问题)是您可以嵌套这些字符串。因此,除了令牌内部的“参数”纯文本之外,它内部可能还有另一个嵌套fb:intl
标签(其中可能有另一个嵌套标签,等等)。
我想要做的是在不丢失子节点上下文的情况下进行替换。因此,我只想获取<fb:intl-token>
标签并将其移动以替换{token}
代表其在字符串中的位置的标签。
关于如何有效地做到这一点的任何想法?