tl; dr:Jadeテンプレートで国際化を行うための洗練された方法を探しています。本質的に問題は、逐語的なコードではなく、変数の文字列の補間を行わなければならないということです。Express/Jadeを使用したI18N:埋め込みタグと補間を使用した文字列
問題の詳細:
モノリンガルジェイドテンプレートで私はそうのように埋め込まれたタグや変数を持つ要素を加えることができます。
p Posted by
span.author= post.author
| on
span.date= post.author
が
<p>Posted by <span style="author">The Author</span> on
<span style="date">2012-03-08</span></p>
しかし、ときのような何かを得るために私はこれを国際化したい、私は単語の順序はすべての言語で同じではないので、私は単一の文字列が必要です。また、私は翻訳者からのhtmlの詳細を非表示にしたいと思い、ちょうど彼らにこのような行を与える:
Posted by #{author} on #{date}
今私はi18n.posted_by_onとしてジェイドテンプレートにこの文字列の国際化-EDバージョンを渡すとき、それをその上で補間を行うので、私はできる最善はありません:私は手動ですべての補間を行う必要があり、これは主に、素敵なジェイドのテンプレートのポイントを敗北
- var author = '<span class="author">$</span>'.replace('$',post.author);
- var date = '<span class="date">$</span>'.replace('$',post.date);
- var header = i18n.posted_by_on
.replace('#{author}',author)
.replace('#{date}',date);
p!= header
。もっとうまくコンパクトに読める方法はありますか?
私は答えを見つけたことはありませんでした(優先順位がシフトされました)が、これは収まると思われるので、私はそれを受け入れるでしょう:) –