2016-10-26 9 views
2

私はプロジェクトで複数の言語を扱うためにember-i18nを使用しています。補間を使用して翻訳内にリンクを挿入する必要があります。リンク補間i18n

Githubの上@jamesarosenから

答えて

6

Response

それ は、DOMノードではなく、文字列を発するので、あなたが翻訳内{{link-to}}ヘルパーを使用することはできません。

しかし、ember-href-toアドオンを使用してURLを生成することができます。 JavaScriptで

// 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 }); 
}) 

またはハンドルバーで(あなたがhtmlSafeヘルパーが必要です):

{{t 'some.translation' 
    link=(htmlSafe (join '<a href="' (href-to 'some.route') '">Link Text</a>'))}} 
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セーフは、アドオンember-cli-string-helpersが提供するヘルパーです。