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 回答