翻译 Angular 内的字符串 打字稿代码

Translate strings inside Angular Typescript code

是否可以在 Angular6 中翻译组件源代码中的字符串。

F. e.

window.confirm("HELP me");

除了 HTML 文件 (Angular Docs i18n) 的正常翻译外,我没有找到任何其他内容。

提前致谢

你可以使用https://github.com/ngx-translate/i18n-polyfill,直到Angular i18n 得到对它的内置支持,大概在版本9 左右。作者正在研究Angular i18n,所以我认为它是可以放心地相信他的期望,即它将接近 Angular i18n 中的未来功能。

本期有很多关于 Angular i18n 未来的有趣信息:https://github.com/angular/angular/issues/16477

我已经尝试了一个解决方案并且它有效,这就是我如何设法翻译在我的 ts 文件中调用的 ngx-toaster 警报,例如我有这个:

ngOnInit() {
 this.toastrService.success('created successfully', '');
}

我把它转换成了这个

@ViewChild('test') myDivElementRef: ElementRef;
...
constructor(private toastrService: ToastrService) {}
ngOnInit() {
this.toastrService.success(this.myDivElementRef.nativeElement.outerHTML, '', {
  enableHtml :  true
});

在我的模板中,我创建了一个 div 和 #test reference

<h2 i18n="@@testTitle" #test [hidden]="true">created successfully</h2>

在MaterialAngular6:

import { locale as english } from './i19n/en';
import { locale as français } from './i19n/fr';
import { ToastrManager } from 'ng6-toastr-notifications';

声明

     @ViewChild('espiontest') myDivElementRef: ElementRef;

在构造函数中

    constructor(
      public toastr: ToastrManager){
    }

在您的函数中或 OnInt

    this.toastr.successToastr(this.myDivElementRef.nativeElement.outerHTML, null, {enableHTML: true});

在 html 中,此元素 {{'Add_Profil_application_lang.Creationeffectuée' | translate}} 是文件 ./i19n/en./i19n/fr

中的翻译
<pre>
<p [hidden]="true">
   <span #espiontest>{{'Add_Profil_application_lang.Creationeffectuée' | translate}} 
</span>
</p>
</pre>