現在、 angular-translateを使用してプロジェクトに取り組んでいます。私の目標は、開発者が翻訳を壊さずにオブジェクト モデルを変更できる翻訳マップを作成することです。
たとえば、スコープ内に注文が保存されているとします。
$scope.order = {
numberOfItems: 5,
// ...
};
そして、項目数を表示するプロパティを持つ翻訳マップ:
var translationsEN = {
itemsNumber: "{{numberOfitems}} item(s)",
// ...
};
var translationsFR = {
itemsNumber: "{{numberOfItems}} article(s)",
// ...
};
このマップを使用すると、次のことが簡単にできます。
{{'itemsNumber' | translate:order}}
しかし、開発者がプロパティの名前を変更したい場合はnumberOfItems
、翻訳マップも変更する必要があります。これはかなり面倒です...そのため、翻訳マップを次のように変更しました。
var translationsEN = {
itemsNumber: "{{number}} item(s)",
// ...
};
var translationsFR = {
itemsNumber: "{{number}} article(s)",
// ...
};
これで、開発者は次のように、必要な値を含む単純なオブジェクトを送信するだけで済みます。
<span translate="order.misc.itemsNumber"
translate-values="{ number:{{order.numberOfItems}} }">
</span>
しかし、ご覧のとおり、フィルターではなくディレクティブを使用しています。私はこのようなことをする方法を見つけることができません:
{{'order.misc.itemsNumber' | translate:'{ number:{{order.numberOfItems}} }'}}
これも機能しません:
{{'order.misc.itemsNumber' | translate:'{ number:order.numberOfItems }'}}
フィルターを使用できるようにするソリューションはありますか、それともディレクティブを使用する必要がありますか?