私は現在、かなり長い間壊れていた Facebook の国際化 XFBML タグのフロントエンドの再実装に取り組んでいます。私はほぼ完成しましたが、ハングアップが 1 つあります: 子ノードの情報を失うことなく、トークン化された翻訳を置き換えます。
背景として、翻訳タグは次のようになります。
<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}
これを効果的に行う方法についてのアイデアはありますか?