Mustache 仕様と互換性のある Hogan.js を使用しています。そして、複数形化を行う確実な方法を実装するのに苦労しています。今後も Hogan を使用し、i18n の取り扱いにはhttp://i18next.com/を使用したいと思います
このようなことをすると、単純なケースで機能します
タイトル:
{{#plural(count)}}
I have {{count}} apples!
{{/plural(count)}}
データ:
{
count: 2,
'plural(count)': function () {
return function () {
return _t[arguments[0].trim()][this['count']]
}
}
}
これには、必要な複数のメソッド (plural(key.val) など) をすべて生成できるように、別の手順で解析/スキャン/レンダリングする必要がありますが、サーバーの起動時に 1 回だけ実行する必要があります。
これは次のようなもので壊れます
{{#plural(key.nested)}}
データが次のように見える場合、それは一致します
{
'plural(key': {
'val)': ...
}
}
これには、コンテキストから値を手動で検索する必要もありますが、大きな問題ではありませんが、解決できない可能性のあるラムダ/パーシャルのケースがいくつかあります
デフォルトの翻訳マッピングの場合、物事はそれほど複雑ではなく、扱いも簡単です