链接插值i18n

时间:2016-10-26 14:42:40

标签: ember.js handlebars.js

我使用ember-i18n来处理项目中的多个语言,我需要在翻译中插入一个链接(使用插值)。

有什么想法吗?

2 个答案:

答案 0 :(得分:7)

来自Github上@jamesarosen的

Response

  

您不能在翻译中使用// some-thing/component.js: import { hrefTo } from 'ember-href-to/helpers/href-to'; text: Ember.computed('i18n.locale', function() { const i18n = this.get('i18n'); const href = hrefTo(this, 'some.route'); const link = Ember.String.htmlSafe(`<a href="${href}">Link Text</a>`); return i18n.t('some.translation', { link }); }) 助手,因为它   发出一个DOM节点,而不是一个String。

但您可以使用ember-href-to插件生成网址。

在JavaScript中:

{{t 'some.translation'
  link=(htmlSafe (join '<a href="' (href-to 'some.route') '">Link Text</a>'))}}

或者在Handlebars中(你需要一个htmlSafe助手):

lenovo thinkpad

答案 1 :(得分:0)

我最近遇到了类似的问题,这就是我所做的:

翻译文件(en.json):

"some.message.key": "Successfully created <a href='{{userlink}}'> {{username}} </a>."

在相应的模板/ hbs文件中:

{{html-safe (t "some.message.key" userlink=link username=name)}}

html-safe是ember-cli-string-helpers添加提供的帮助。