diff --git a/src/app/app.module.ts b/src/app/app.module.ts index 4e344263d7193cca60fd85ae209de56b19e1ff70..7086311394794195b36616b02be30685be20a7dc 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 a4aad05b72b85320a615c8d2f336cbfcbe539006..002e7c2f904e09b04e6365c37af0ecb396fe87f2 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 efbe9e1b44711dc5f38da704acc466d33f5bfe19..a3f2aef64d54034662b943a600582bf728ae99f3 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 9ceca5e8b314e8b56052d060f6c8d700928e5abf..231a71fdc8e1ee3f812d590e659c0d6d706aef1e 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); } }