我使用来自 @ngx-translate 的 TranslateService,我发现的每个教程都几乎相同。
问题是..我在根AppComponent中有这样的:
import { TranslateService } from '@ngx-translate/core';
constructor(private translate: TranslateService) {
translate.addLangs(["en", "fr"]);
translate.setDefaultLang('en');
let browserLang = translate.getBrowserLang();
translate.use(browserLang.match(/en|fr/) ? browserLang : 'en');
}
在更改语言的标题事件中:
<select #langSelect (change)="translate.use(langSelect.value)">
<option *ngFor="let lang of translate.getLangs()" [value]="lang" [selected]="lang === translate.currentLang">{{ lang }}</option>
</select>
我希望这是全局的,更改事件传播到我的所有模块、组件等中。有没有办法做到这一点,或者我必须在每个使用它的地方注入(inject)此服务?
谢谢。
最佳答案
您需要将其包装在一个模块中并包含在每个页面中,或者您可以将该组件完全分离到不同的 Controller 中并将其呈现为 header 的一部分,以便从布局中呈现它。
关于javascript - Angular 使翻译全局化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46510483/