javascript - Angular 使翻译全局化

标签 javascript angular translate angular-translate

我使用来自 @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>

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

谢谢。

最佳答案

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

关于javascript - Angular 使翻译全局化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46510483/

相关文章:

mysql - 将此 mysql 转换为 couchdb View ?

javascript - 将 Jquery Toggle 转换为 Javascript

javascript - Uncaught ReferenceError : Invalid left-hand side in assignment "$(this).val() = parseInt($("#x_gen_income"). val());"

javascript - 使用 JS 生成 CSV 添加额外的空列

angular - 从服务更新组件 View ?

java - 将 java 对象和方法调用转换为 Clojure 代码

javascript - Angular Modal Service - 如何从外部关闭?

javascript - 如何在 JavaScript 中迭代 map 数组列表?

regex - 具有特殊字符的 Angular2 密码验证

json - 为什么 Angular 4 中的 httpclient 假设请求正在发送 json 数据