2016-02-24 16 views
7

Tôi đã đọc gần đây very interesting article bởi @yearofmoo về Angular2 Renderer. Nó đã cho tôi một ý tưởng rằng nó có thể có thể làm i18n với Renderer. Về cơ bản sử dụng chức năng này:Sử dụng Trình kết xuất để thực hiện i18n?

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

và chỉ đơn giản là chuyển đổi value bằng cách ánh xạ nó sang ngôn ngữ khác nhau:

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

value = "Hello" 
value = es[value] 

Tôi nhìn một thời gian ngắn tại issuesdesign docs, nhưng trước khi đi xuống hang thỏ này, tôi muốn kiểm tra nếu có ai có kinh nghiệm với điều này.

Có bất kỳ sự cố nào có thể ngăn việc này hoạt động không? Một số thay đổi phá vỡ trên con đường tôi không biết? Ý kiến ​​về cách tiếp cận này?

+0

Không nên có vấn đề như Trình kết xuất đồ họa là những gì chúng tôi nên sử dụng vì người làm việc web an toàn. Thay đổi đột phá ... không thể nói chắc chắn, tôi không nghĩ rằng Renderer sẽ thay đổi đáng kể theo thời gian, nếu có. i18n sẽ được hỗ trợ một cách chính thức, đó sẽ giống như một "nút" với tôi, nhưng đó là ý kiến ​​của tôi và chơi với angular2 là không sai chút nào. –

+0

Đồng ý với Günter và Thierry, cảm ơn bạn đã chia sẻ Sasxa! – Langley

+0

np guys (; @EricMartinez, điểm tốt cho hỗ trợ chính thức, hy vọng họ không làm cho nó quá phức tạp/mạnh mẽ.Tôi sẽ cố gắng để chơi với Renderer cho transliteration cho bây giờ ... – Sasxa

Trả lời

1

Chúng tôi sử dụng Trình kết xuất để đặt bản dịch do thuộc tính cung cấp.

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

Xem plunker cho bản demo

Hy vọng rằng đây là những gì bạn nơi tìm kiếm.

Các vấn đề liên quan