2017-01-24 8 views
9

私は文字列のリストを受け取り、これらの文字列のためのラジオ・グループを作成しますAngularでシンプルな汎用コンポーネントを持っています。
公式i18ndocumentationAngularは静的HTMLについてのみ話します。角度国際化(i18n)と* ngFor

i18nテンプレート翻訳で動的なコンポーネント(*ngForのエントリなど)を国際化する方法はありますか?

私はngx-translateの方法を知っています、私は特にi18n方法に興味があります。

+0

これは.tsで行いますが、これはangular2 i18nの一部としてまだ利用できません。同様のリクエストhttps://github.com/angular/angular/issues/12008とhttps://github.com/angular/angular/issues/11405 – Bharat

答えて

3

私は非常に同じことを探していました。また、ngx-translateなしで動的な翻訳を行うオプションも探していました。 ocombeは、Angularのi18nに対して応答可能なようです。このGitHubの問題#16477では、i18nのロードマップをAngularで掲載しました。

▢テンプレートの外使用翻訳文字列 - #11405 [ランタイムの国際化によってブロック]

あなたが見ることができるように、この機能はまだ角度で実装されていませんが、それが計画されています。幸運なことに、この機能をブロックしている問題が進行中である:

▢ランタイムI18N(AOTを持つすべてのロケール用のバンドル) - [それに取り組ん]私が読んところ、私は覚えていない

それが、私はocombeが書いたと思いますが、彼らはそれが春2018の前に利用可能であるかもしれない角度5まだこの機能を実装したい(Angular roadmapは角6は春2018年に出版される予定だという)

日:月/ 2018年4月;安定版リリース:6.0.0

ocombeはちょうど今日this投稿:

私はこの機能に取り組ん1ないんだけど、それは休日が壊れるだ、私はあなたができるだけ早く知ってもらおう私はそれが残っているすべてはあなたが待つことができない、またはあなたはこれらのGitHubが#11405 & #16477を発行し、彼らはこの機能が利用できるようになるまで更新されますを購読することができればNGX-変換を使用することである

詳細を知ります。うまくいけば2018年の早い時期ですね:)

PS:私が理解する限り、ダイナミックな翻訳を実装したいと思いますが、Angular 6より前には利用できないと思います。

UPDATE:

今では公式です:ランタイムの国際化は文句を言わない角度6前のこと(参照:11405#issuecomment-358449205)を

EDIT:
私はそれを行うには汚いハックを発見しました。翻訳のための隠しdivタグを作成し、後で使用するためにViewChildren経由でマップに保存することができます。要素を更新して更新することもできます。

@ViewChildren('test') myChildren; // the class needs to implement AfterViewInit 
myMap = new Map(); 
ngAfterViewInit() { 
    this.myChildren.forEach(value => this.myMap.set(value.nativeElement.getAttribute('name'), value.nativeElement.innerHTML)); 
    console.log(this.myMap); 
} 
+0

新しいIvyレンダラの進捗状況に従うことができます。これにより、ランタイムi18n https://github.com/angular/angular/issues/21706からご利用いただけます。 –

関連する問題