2016-12-19 18 views
2

私はAngular 2 i18nの2つの主要なプラットフォームを知っています:The official wayng2-translateです。私は公式のドキュメントが推奨するものを使用する方がはるかに傾いています。私にとっては、HTML文字列をどのように翻訳するかは非常に明確です。しかし、私がまだ得られなかったことが1つあります:Typescript文字列をどのように翻訳すればいいですか?翻訳されるHTMLに置かTypescript文字列をAngular 2アプリで翻訳するには?

import { Component } from '@angular/core'; 

@Component({ 
    moduleId: module.id, 
    selector: 'hello', 
    template: ` 
     <h1 i18n>Hello {{name}}!</h1> 
     <button (click)="notify()"></button> 
    ` 
}) 
export class HelloComponent { 

    private name = 'John Doe'; 

    notify() { 
     /* How do I translate this? */ 
     alert(`Hello ${this.name}!`); 
    } 
} 

文字列:

は例えば、私は、組み込みの国際化ソリューションを使用して、次のコンポーネントがあります。しかし、アラートに表示されている文字列をどのように翻訳すればよいですか?ネイティブな方法がない場合は、これを達成するための推奨方法は何ですか?

+1

ドキュメントを見ると、「i18n」は*コンポーネントテンプレートテキスト*のようです。 – jonrsharpe

+0

まだ公式な方法はありません。 https://github.com/angular/angular/issues/11405これを上書きして優先順位を付けましょう! –

+0

@SimonBriggs問題を指摘してくれてありがとう。 –

答えて

0

Angularチームは、他の人がオプションで使用できるいくつかの追加サービス(routingtranslationsなど)を使用してコア製品を作成することに非常に重点を置いています。地元の図書館を信用しないでください。そういうわけで、Angularはとても有用です!

あなたのニーズに応じて、私は非常にお勧めしますng2-translate。翻訳をあらかじめロードして、それらを同期または非同期に呼び出すことができ、テンプレート内またはコンポーネントクラス内のサービスを介してpipeとして使用できます。

+1

これはまだ変わっていますか? – cookya

+1

はい、まだ。文字列を使ってコンポーネントを実行し、サービスでそれらを取得して定数として使用するなど、何かをすることができます。現在の状態に関する詳細はこちら:https://github.com/angular/angular/issues/11405 – titusfx

関連する問題