Est-il possible de traduire des chaînes à l'intérieur du code source d'un composant dans Angular6.
F. e.
window.confirm("HELP me");
Je n'ai rien trouvé à part la traduction normale des fichiers HTML ( Angular Docs i18n ).
Merci d'avance
3 Réponses :
Il y a beaucoup d'informations intéressantes sur l'avenir d'Angular i18n dans ce numéro: https: //github.com/angular/angular/issues/16477
J'ai essayé une solution pour cela et cela fonctionne, voici comment je l'ai réussi à traduire mes alertes ngx-toaster qui sont appelées dans mon fichier ts, par exemple j'ai ceci:
<h2 i18n="@@testTitle" #test [hidden]="true">created successfully</h2>
je l'ai converti en ceci
@ViewChild('test') myDivElementRef: ElementRef;
...
constructor(private toastrService: ToastrService) {}
ngOnInit() {
this.toastrService.success(this.myDivElementRef.nativeElement.outerHTML, '', {
enableHtml : true
});
et dans mon modèle, je crée un div avec #test reference
ngOnInit() {
this.toastrService.success('created successfully', '');
}
p >
Dans Material Angular 6:
<pre>
<p [hidden]="true">
<span #espiontest>{{'Add_Profil_application_lang.Creationeffectuée' | translate}}
</span>
</p>
</pre>
Déclaration
this.toastr.successToastr(this.myDivElementRef.nativeElement.outerHTML, null, {enableHTML: true});
dans le constructeur
constructor(
public toastr: ToastrManager){
}
dans votre fonction ou OnInt
@ViewChild('espiontest') myDivElementRef: ElementRef;
En html, cet élément {{'Add_Profil_application_lang.Creationeffectuà © e' | translate}} est la traduction dans les fichiers ./i19n/en et ./i19n/fr
import { locale as english } from './i19n/en';
import { locale as français } from './i19n/fr';
import { ToastrManager } from 'ng6-toastr-notifications';
p>