我想知道如何将链接传递给{{t}}
助手。我目前正在使用Ember i18n的v3.0.1。
显然你不能将链接帮助器传递给t帮助器(类似
{{ t "some-translation-string" link={{#link-to 'page' model}}page{{/link-to}} }}
当然不会工作。)
所以我在想,也许我可以创建一个返回整个链接的自定义道具。但话又说回来,我该如何创建该链接?有没有人知道一个方法与link-to
助手具有相同的参数,但只返回链接(在我的情况下'page'
和model
)?
答案 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"