2016-02-24 24 views
7

Angular2 Renderer hakkında @yearofmoo tarafından very interesting article tarafından okudu. Bana Renderer ile i18n yapmanın mümkün olabileceği hakkında bir fikir verdi. Farklı bir dilde bunu eşleyerek value dönüşümü sadeceRender'ı i18n yapmak için mi kullanıyorsunuz?

createText(parentElement: any, value: string): any { 
    // this is called for every text node in the template 
    } 

ve: Temel olarak bu işlevi kullanın ben issues ve design docs kısaca inceledik

let es = { "Hello": "Hola" } 

value = "Hello" 
value = es[value] 

, ancak bu tavşan deliğinden aşağı gitmeden önce ben kontrol etmek istedim Bu konuda herhangi bir deneyimi varsa.

Bunun çalışmasını engelleyebilecek sorunlar var mı? Farkında olmadığım bazı değişiklikler değişiyor mu? Bu yaklaşım hakkındaki görüşleriniz?

+0

Renderer, web işçileri güvenli olduğu için kullanmamız gereken şeydir. Değişen değişiklikler ... kesin olarak söyleyemem, Renderer'ın zaman içinde büyük ölçüde değişeceğini sanmıyorum, eğer hiç değilse. i18n bana destek olacak, bu benim için bir "tıpa" gibi olurdu, ama bu benim düşüncem ve angular2 ile oynamak hiç de yanlış değil. –

+0

Günter ve Thierry ile katılıyorum, Sasxa'yı paylaştığınız için teşekkürler! – Langley

+0

np guys (; @EricMartinez, Resmi destek için iyi bir nokta, umarım çok karmaşık/sağlam yapmazlar. Şimdilik transliterasyon için Renderer ile oynamaya çalışacağım ... – Sasxa

cevap

1

Bir öznitelik tarafından sağlanan bir çeviri ayarlamak için Renderer'ı kullanıyoruz.

import { Directive, ElementRef, Input, Renderer, OnInit} from '@angular/core'; 
import { TranslateService } from './translate.service'; 

@Directive({ selector: '[translate]' }) 
export class TranslateDirective implements OnInit{ 

    @Input() translate :string; 

    constructor(private el: ElementRef, private renderer: Renderer, private _translateService : TranslateService) {} 

    ngOnInit(): void { 
     this.renderer.setText(this.el.nativeElement,this._translateService.instant(this.translate)); 
    } 
} 

Umarım bu nereye arayan ne

demo

için plunker bakınız.

İlgili konular