【问题标题】:Angular make translation globalAngular 使翻译全球化
【发布时间】:2018-03-12 15:17:51
【问题描述】:

我使用 @ngx-translateTranslateService,我找到的每个教程都几乎相同。

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

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

谢谢。

【问题讨论】:

  • 您是否设法解决了这个问题?我也在为此苦苦挣扎
  • 是的。我将 Observable 与 Subject 一起使用,它可以工作。还有一个解决方案是 ng2-redux。下周我将尝试在此处粘贴示例。

标签: javascript angular translate angular-translate


【解决方案1】:

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

【讨论】:

  • 我觉得一定比你的方式更干净。我会进行研究并得出结果。感谢您的信息!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-12-28
  • 1970-01-01
  • 2022-01-07
  • 1970-01-01
  • 2017-09-06
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多