0

ember-cli-i18n在一个ember-cli应用程序中使用..

我有menuItems返回的财产..

[{
  text: 'leftnav_nonfollower',
  route: 'nonFollowers'
}, {
  text: 'leftnav_nonfans',
  route: 'fans'
}]

在模板中我menuItems用作..

{{#each menuItem in navItems}}
  <li {{action 'changeRoute' menuItem }} >
    <a href="#" class='nav-circle'>
     {{t menuItem.text}}
    </a>
  </li>
{{/each}}

现在,而不是寻找leftnav_nonfollower.. 的翻译,库实用程序t()实际上是寻找字符串的翻译menuItem.text.. 从而给出错误Assertion Failed: Missing translation for key "menuItem.text".

4

1 回答 1

1

t自动注入到控制器、组件、路由和模型中。

来源:https ://github.com/dockyard/ember-cli-i18n#utility

因此,与其在模板中执行此操作,不如在形成数组时执行此操作。像这样的东西:

var menu = [{
 text: 'leftnav_nonfollower',
 route: 'nonFollowers'
}, {
  text: 'leftnav_nonfans',
  route: 'fans'
}]

menu = menu.map(function(item) {
  item.text = this.t(item.text);
  return item;
});

这将为您提供可以直接在模板中使用的键中的翻译文本。

于 2015-02-21T10:18:11.240 回答