i18n翻译不使用ember - 断言失败:缺少关键字的翻译

时间:2015-02-21 10:08:14

标签: javascript ember.js ember-cli ember-i18n

我在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".

1 个答案:

答案 0 :(得分: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;
});

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