【发布时间】:2021-09-24 09:04:40
【问题描述】:
使用 ngx-translate 库进行本地化。它在我放置的组件中运行良好。 场景: 我已经为选择语言下拉菜单创建了一个组件,我在 Login 组件中调用该组件并在那里使用。它工作正常。现在,我想在登录后将选择的语言转移到所有其他组件。
我不想在每个地方都使用选择语言选项。在登录页面中选择的语言也应该反映在其他页面上。我怎样才能做到这一点? (我现在没有其他模块)
i18nService.ts:
currentLang = 'en';
translateService: TranslateService;
setSelectedLanguage(language:any) {
this.currentLang = language;
this.applyLanguage(this.currentLang);
}
private applyLanguage(language:any) {
this.translateService.use(language);
}
getLanguages() {
return this.translateService.getLangs();
}
constructor(translateService: TranslateService) {
this.translateService = translateService;
}
setUpConf() {
this.translateService.addLangs(['en', 'te', 'kn', 'hi']);
this.translateService.setDefaultLang(this.currentLang);
this.applyLanguage(this.currentLang);
}
LanguageDropdown.ts
i18nConf: I18nConfigService;
constructor(i18nConf: I18nConfigService) {
this.i18nConf = i18nConf;
this.i18nConf.setUpConf();
}
LanguageDropdown.html
<select class="form-input col-md-2" #langSelect
(change)="i18nConf.setSelectedLanguage(langSelect.value)">
<option *ngFor="let lang of i18nConf.getLanguages()" [value]="lang"
[selected]="lang === this.i18nConf.currentLang">
{{ lang }}</option>
</select>
【问题讨论】:
标签: angular ngx-translate