From 2a2da10bf96b8960b60d5974c0b1fc6b5c03e46d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lukas=20Mau=C3=9F?= <lukas.mauss@mni.thm.de> Date: Mon, 5 Nov 2018 15:51:12 +0100 Subject: [PATCH] Fix translation for lazy-loaded modules in creator role --- src/app/app.module.ts | 5 +++++ src/app/components/creator/creator.module.ts | 7 ++----- .../home-creator-page/home-creator-page.component.ts | 7 +++++-- src/app/components/shared/header/header.component.ts | 7 +++++-- 4 files changed, 17 insertions(+), 9 deletions(-) diff --git a/src/app/app.module.ts b/src/app/app.module.ts index 4e344263d..708631139 100644 --- a/src/app/app.module.ts +++ b/src/app/app.module.ts @@ -24,6 +24,8 @@ import { EssentialsModule } from './components/essentials/essentials.module'; import { SharedModule } from './components/shared/shared.module'; import { BrowserModule } from '@angular/platform-browser'; import { BrowserAnimationsModule } from '@angular/platform-browser/animations'; +import { LanguageService } from './components/shared/LanguageService'; +import { MarkdownService, MarkedOptions } from 'ngx-markdown'; export function dialogClose(dialogResult: any) { } @@ -65,6 +67,9 @@ export function dialogClose(dialogResult: any) { CommentService, ContentService, ContentAnswerService, + LanguageService, + MarkdownService, + MarkedOptions, UserService, { provide: MatDialogRef, diff --git a/src/app/components/creator/creator.module.ts b/src/app/components/creator/creator.module.ts index a4aad05b7..002e7c2f9 100644 --- a/src/app/components/creator/creator.module.ts +++ b/src/app/components/creator/creator.module.ts @@ -10,7 +10,7 @@ import { ContentYesNoCreatorComponent } from './content-yes-no-creator/content-y import { HomeCreatorPageComponent } from './home-creator-page/home-creator-page.component'; import { MarkdownToolbarComponent } from './markdown-toolbar/markdown-toolbar.component'; import { RoomCreatorPageComponent } from './room-creator-page/room-creator-page.component'; -import { EssentialsModule } from '../essentials/essentials.module'; +import { EssentialsModule, HttpLoaderFactory} from '../essentials/essentials.module'; import { RoomCreateComponent } from './_dialogs/room-create/room-create.component'; import { RoomDeleteComponent } from './_dialogs/room-delete/room-delete.component'; import { RoomEditComponent } from './_dialogs/room-edit/room-edit.component'; @@ -31,7 +31,7 @@ import { TranslateHttpLoader } from '@ngx-translate/http-loader'; TranslateModule.forChild({ loader: { provide: TranslateLoader, - useFactory: (createTranslateLoader), + useFactory: (HttpLoaderFactory), deps: [HttpClient] }, isolate: true @@ -63,6 +63,3 @@ import { TranslateHttpLoader } from '@ngx-translate/http-loader'; export class CreatorModule { } -export function createTranslateLoader(http: HttpClient) { - return new TranslateHttpLoader(http, '../../../assets/i18n/', '.json'); -} diff --git a/src/app/components/creator/home-creator-page/home-creator-page.component.ts b/src/app/components/creator/home-creator-page/home-creator-page.component.ts index efbe9e1b4..a3f2aef64 100644 --- a/src/app/components/creator/home-creator-page/home-creator-page.component.ts +++ b/src/app/components/creator/home-creator-page/home-creator-page.component.ts @@ -1,7 +1,8 @@ import { Component, OnInit } from '@angular/core'; import { MatDialog } from '@angular/material'; import { RoomCreateComponent } from '../_dialogs/room-create/room-create.component'; -import { TranslateService} from '@ngx-translate/core'; +import { TranslateService } from '@ngx-translate/core'; +import { LanguageService } from '../../shared/LanguageService'; @Component({ selector: 'app-home-creator-page', @@ -11,7 +12,9 @@ import { TranslateService} from '@ngx-translate/core'; export class HomeCreatorPageComponent implements OnInit { constructor(public dialog: MatDialog, - private translateService: TranslateService) { + private translateService: TranslateService, + protected langService: LanguageService) { + langService.langEmitter.subscribe(lang => translateService.use(lang)); } ngOnInit() { diff --git a/src/app/components/shared/header/header.component.ts b/src/app/components/shared/header/header.component.ts index 9ceca5e8b..231a71fdc 100644 --- a/src/app/components/shared/header/header.component.ts +++ b/src/app/components/shared/header/header.component.ts @@ -1,4 +1,4 @@ -import { Component, OnInit } from '@angular/core'; +import { Component, EventEmitter, OnInit } from '@angular/core'; import { AuthenticationService } from '../../../services/http/authentication.service'; import { NotificationService } from '../../../services/util/notification.service'; import { Router } from '@angular/router'; @@ -6,6 +6,7 @@ import { User } from '../../../models/user'; import { UserRole } from '../../../models/user-roles.enum'; import { Location } from '@angular/common'; import { TranslateService } from '@ngx-translate/core'; +import { LanguageService } from '../LanguageService'; @Component({ selector: 'app-header', @@ -19,7 +20,8 @@ export class HeaderComponent implements OnInit { private authenticationService: AuthenticationService, private notificationService: NotificationService, public router: Router, - private translationService: TranslateService) { + private translationService: TranslateService, + private langService: LanguageService) { translationService.setDefaultLang(this.translationService.getBrowserLang()); sessionStorage.setItem('currentLang', this.translationService.getBrowserLang()); @@ -62,6 +64,7 @@ export class HeaderComponent implements OnInit { useLanguage(language: string) { this.translationService.use(language); sessionStorage.setItem('currentLang', this.translationService.currentLang); + this.langService.langEmitter.emit(language); } } -- GitLab