我目前正在使用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 }'}}
是否有任何解决方案允许我使用过滤器,还是应该使用指令?
答案 0 :(得分:0)
尝试不加引号:
{{'order.misc.itemsNumber' | translate: {number: order.numberOfItems}}}