角度使翻译全球化

时间:2017-10-01 08:14:59

标签: javascript angular translate angular-translate

我使用 @ ngx-translate 中的 TranslateService ,我找到的每个教程都差不多。

问题是..我在root 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>

我希望这是全局的,将更改事件传播到我的所有模块,组件等。有没有办法做到这一点,或者我必须在每个使用它的地方注入此服务?

感谢。

1 个答案:

答案 0 :(得分:0)

您需要将其包装在一个模块中并包含在每个页面中,或者您可以将该组件完全分离到另一个控制器中,并将其作为标题的一部分呈现,以便从布局中呈现。