2

我想知道如何将链接传递给{{t}}助手。我目前正在使用Ember i18n的 v3.0.1。

显然,您不能将链接助手传递给 at 助手(类似于

{{ t "some-translation-string" link={{#link-to 'page' model}}page{{/link-to}} }}

当然不会工作)。

所以我在想,也许我可以创建一个返回整个链接的自定义道具。但话又说回来,我如何创建该链接?有谁知道与link-to助手具有相同参数但仅返回链接(在我的情况下为'page'and model)的方法?

4

2 回答 2

4

您可能可以通过基本链接来实现这一点,但我怀疑您是否能够在翻译中使用实时链接组件。

因此,改为将您的翻译字符串分成几部分:

{{t 'goToSettingPage-before'}}
{{link-to (t 'goToSettingPage-link') 'route.name'}}
{{t 'goToSettingPage-after'}}
'goToSettingPage-before': 'Go to'
'goToSettingPage-link':   'settings'
'goToSettingPage-after':  'page.'
于 2015-06-10T14:56:23.677 回答
1

您可以使用ember-href-to创建一个助手来执行您想要的操作。

帮手:

compute (params) {
  const i18n = this.get('i18n');
  const target = hrefTo(this, params[1]);
  // const targetParam = params[2]; //dynamic segment
  const text = i18n.t(params[0]);

  return Ember.String.htmlSafe('<a href='+ target +'>' + text +'</a>');
}

模板使用:

{{t "linkExample-learnMore" link=(helper-name 'linkExample-here' 'some.route')}}

翻译:

"linkExample-learnMore": "Click {{{link}}} to do something",
"linkExample-here":"here"
于 2017-05-12T19:17:46.213 回答