0

現在、 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 }'}}

フィルターを使用できるようにするソリューションはありますか、それともディレクティブを使用する必要がありますか?

4

1 に答える 1

0

引用符なしで試してください:

{{'order.misc.itemsNumber' | translate: {number: order.numberOfItems}}}
于 2013-09-17T09:28:30.497 に答える