Ember i18n翻译里面的动态链接

时间:2015-06-10 14:30:38

标签: ember.js hyperlink ember-i18n

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

显然你不能将链接帮助器传递给t帮助器(类似

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

当然不会工作。)

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

2 个答案:

答案 0 :(得分:5)

您可以通过基本链接实现这一目标,但我怀疑您是否能够在翻译中折腾实时链接组件。

因此,将翻译字符串分成几部分:

{{t 'goToSettingPage-before'}}
{{link-to (t 'goToSettingPage-link') 'route.name'}}
{{t 'goToSettingPage-after'}}
'goToSettingPage-before': 'Go to'
'goToSettingPage-link':   'settings'
'goToSettingPage-after':  'page.'

答案 1 :(得分: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"