Я использую 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
Я согласен, что это довольно странное поведение. Но, ссылаясь на ваше обходное решение, вы могли бы упростить решение для сброса языка.
просто позвоните
например