Sas*_*sxa 7 internationalization angular
我最近阅读了@yearofmoo关于Angular2 Renderer的非常有趣的文章.它给了我一个想法,可以用Renderer做i18n .基本上使用这个功能:
createText(parentElement: any, value: string): any {
// this is called for every text node in the template
}
Run Code Online (Sandbox Code Playgroud)
并value通过将其映射到不同的语言进行简单转换:
let es = { "Hello": "Hola" }
value = "Hello"
value = es[value]
Run Code Online (Sandbox Code Playgroud)
我简要地看了一下这些问题和设计文档,但在走下这个兔子洞之前,我想检查是否有人对此有任何经验.
是否有任何问题可能导致无法正常工作?在我不知道的方式上有一些突破性的变化?关于这种方法的意见?
小智 1
我们使用渲染器来设置由属性提供的翻译。
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));
}
}
Run Code Online (Sandbox Code Playgroud)
请参阅plunker的演示
希望这就是您正在寻找的东西。
| 归档时间: |
|
| 查看次数: |
160 次 |
| 最近记录: |