Я использую ngx-translate для перевода моего Angular Web-приложения, и кажется, что ngx-translate имеет проблему с функцией getTranslation(language)
.Когда он вызывается, он меняет текущий язык? Временно?и тогда мой компонент не отображается на нужном языке.
export class InputRadioComponent extends FormComponentInput implements OnInit {
constructor(protected formDynamicS) {
}
public ngOnInit() {
this.translate.getTranslation("fr").subscribe(res => {
this.choose["fr"] = res['form-component']['choose-answer'];
});
this.translate.getTranslation("en").subscribe(res => {
this.choose["en"] = res['form-component']['choose-answer'];
});
this.translate.getTranslation("de").subscribe(res => {
this.choose["de"] = res['form-component']['choose-answer'];
});
}
}
В этом случае, как this.translate.getTranslation("de")
- последний вызов, мой компонент всегда отображается на немецком языке.Я нахожу обходной путь, но это не то, что я хочу сохранить в своем коде.Вот мой обходной путь:
let languages: string[] = ["fr", "en", "de"];
languages.splice(languages.indexOf(this.translate.currentLang));
languages.push(this.translate.currentLang);
languages.forEach((language) => {
this.translate.getTranslation(language).subscribe(res => {
this.choose[language] = res['form-component']['choose-answer'];
});
});
Это позволяет мне сохранить currentLang, потому что это будет последний вызов getTranslation