我目前正在使用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 }'}}
是否有任何解决方案允许我使用过滤器或者我应该只使用指令?