2017-01-24 21 views
9

Ben dizeleri listesini alır ve bu dizeleri için bir radyo grubu oluşturur Angular basit jenerik bileşeni var.
Angular numaralı i18ndocumentation resmi yalnızca statik HTML hakkında konuşuyor.Açısal uluslararası (i18n) ve * ngFor

i18n şablon çevirisi ile dinamik bileşenleri (*ngFor girişleri gibi) uluslararasılaştırmanın bir yolu var mı?

ngx-translate yolunun farkındayım, özellikle i18n yolu ile ilgileniyorum.

+0

Bunu daha iyi .ts içinde yapmak daha iyi olurdu, ancak bu angular2 i18n'nin bir parçası olarak henüz mevcut değildir. Benzer istek https://github.com/angular/angular/issues/12008 ve https://github.com/angular/angular/issues/11405 – Bharat

cevap

3

Aynı şeyi ve ngx-translate olmadan dinamik çeviri yapmak için bir seçenek arıyordum. Angular'de, i18n içinocombe gibi görünüyor. Bu GitHub sayısında #16477'da Angular'de i18n için bir çeşit yol haritası yayınladı.

▢ bir şablonun dışında kullanılması çeviri dizeleri - Bu özellik Açısal uygulanan henüz değil görebileceğiniz gibi #11405

[çalışma zamanı i18n tarafından bloke] ama planlanıyor. Neyse ki bu özelliği engelleyen sorunu devam ediyor:

▢ Süre i18n (AOT ile tüm yerel ayarlar için bir paket) - [üzerinde çalışıyoruz] Okudum nerede hatırlamıyorum

2018 Mart/Nisan: o ama bu kadar bahar 2018

Tarih (Angular roadmap 6 ilkbahar 2018 yılında yayınlanacaktır Açısal diyor) önce mevcut olabilir Açısal 5'inde hala bu özelliği uygulamak istiyoruz, ocombe yazdı düşünüyorum ; Kararlı Sürüm: 6.0.0

ocombe sadece this bugün yayınladı:

Bu özellik üzerinde çalışan biri değilim ve bu tatil kırmak, ben size en kısa sürede haber vereceğiz Ben

Yani tüm kalır kullanmaktır fazla beklemek istemiyorsanız eğer NGX-translate veya bu GitHub #11405 & #16477 sorunları ve bu özelliğin kullanılabilmesi kadar güncellenmesini abone biliyorum. Umarım 2018'in başlarında :)

PS: Anladığım kadarıyla onlar da dinamik çeviri yapmak istiyorlar, ama Angular 6'dan önce mevcut olmayacağını düşünüyorum.

GÜNCELLEME:

Şimdi resmi var:

DÜZENLEME:
Bunu yapmak için bir kirli kesmek bulundu: Açısal 6 (11405#issuecomment-358449205 bakınız) önce Runtime i18n alışkanlık olacak. Çevirileriniz için gizli div etiketleri oluşturabilir ve daha fazla kullanım için bir haritada ViewChildren aracılığıyla kaydedebilirsiniz. Güncellemek için öğelere bile abone olabilirsiniz.

@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

Çalışma zamanı i18n yapacak yeni Ivy işleyicisinin ilerleyişini takip edebilirsiniz burada bulabilirsiniz: https://github.com/angular/angular/issues/21706 –