import { Injectable } from "@angular/core"; import { TranslateService } from '@ngx-translate/core'; import { zhCN, enUS, NzLocaleService } from 'ng-zorro-antd'; import { Observable } from 'rxjs/Observable'; import { Subject } from 'rxjs/Subject'; export { zhCN, enUS } from 'ng-zorro-antd'; export const zh: string = "zh"; export const en: string = "en"; @Injectable() export class CmI18nService { public defaultLang: string = zh; private langSource = new Subject(); public missionLang$: Observable = null; constructor(private translateService: TranslateService, private nzTranslateService: NzLocaleService) { this.missionLang$ = this.langSource.asObservable(); } public use(lang: string) { this.translateService.use(lang); if (lang == en) { this.nzTranslateService.setLocale(enUS); } else { this.nzTranslateService.setLocale(zhCN); } this.langSource.next(lang); } public get currentLang(): string { return this.translateService.currentLang; } }