diff --git a/projects/editor/src/app/app.component.ts b/projects/editor/src/app/app.component.ts index a891b67fcc2a9248c4d091de675a2777d73bfd8f..780534ec58fb607547f7ad3316c56eb40606c6a9 100644 --- a/projects/editor/src/app/app.component.ts +++ b/projects/editor/src/app/app.component.ts @@ -1,4 +1,5 @@ import { Component } from '@angular/core'; +import { TranslateService } from '@ngx-translate/core'; @Component({ selector: 'editor-aspect', @@ -14,4 +15,8 @@ import { Component } from '@angular/core'; }) export class AppComponent { title = 'verona-editor-aspect'; + constructor(private translateService: TranslateService) { + translateService.addLangs(['de']); + translateService.setDefaultLang('de'); + } } diff --git a/projects/editor/src/app/app.module.ts b/projects/editor/src/app/app.module.ts index 7e7e2ef1c2a9677c23cb3b267abbc162892aad32..242a58ad19d4194df4f4b4cd059aafb3cbadc080 100644 --- a/projects/editor/src/app/app.module.ts +++ b/projects/editor/src/app/app.module.ts @@ -7,6 +7,7 @@ import { createCustomElement } from '@angular/elements'; import { MatDialogModule } from '@angular/material/dialog'; import { MatButtonToggleModule } from '@angular/material/button-toggle'; +import { TranslateLoader, TranslateModule } from '@ngx-translate/core'; import { AppComponent } from './app.component'; import { ToolbarComponent } from './components/toolbar/toolbar.component'; import { UiElementToolboxComponent } from './components/unit-view/page-view/ui-element-toolbox/ui-element-toolbox.component'; @@ -20,6 +21,7 @@ import { CanvasSectionToolbarComponent } from './components/unit-view/page-view/ import { CanvasDragOverlayComponent } from './components/unit-view/page-view/canvas/canvas-drag-overlay.component'; import { SharedModule } from '../../../common/app.module'; import { ConfirmationDialog, MultilineTextEditDialog, TextEditDialog } from './dialog.service'; +import { EditorTranslateLoader } from './editor-translate-loader'; @NgModule({ declarations: [ @@ -44,7 +46,13 @@ import { ConfirmationDialog, MultilineTextEditDialog, TextEditDialog } from './d CommonModule, SharedModule, MatDialogModule, - MatButtonToggleModule + MatButtonToggleModule, + TranslateModule.forRoot({ + loader: { + provide: TranslateLoader, + useClass: EditorTranslateLoader + } + }) ], providers: [] }) diff --git a/projects/editor/src/app/components/toolbar/toolbar.component.html b/projects/editor/src/app/components/toolbar/toolbar.component.html index 709aa6d3c972174fce77af61077366b146105095..5d7da36cf86de6ec199e0b24f77a30d6198f5a64 100644 --- a/projects/editor/src/app/components/toolbar/toolbar.component.html +++ b/projects/editor/src/app/components/toolbar/toolbar.component.html @@ -1,10 +1,10 @@ <mat-toolbar> <button mat-raised-button (click)="load()"> - Unit laden + {{'loadUnit' | translate}} <mat-icon>file_upload</mat-icon> </button> <button mat-raised-button (click)="save()"> - Unit speichern + {{'saveUnit' | translate}} <mat-icon>file_download</mat-icon> </button> </mat-toolbar> diff --git a/projects/editor/src/app/editor-translate-loader.ts b/projects/editor/src/app/editor-translate-loader.ts new file mode 100644 index 0000000000000000000000000000000000000000..8b377dc063dc261850feeab72562cf311774c48b --- /dev/null +++ b/projects/editor/src/app/editor-translate-loader.ts @@ -0,0 +1,15 @@ +import { TranslateLoader } from '@ngx-translate/core'; +import { from, merge, Observable } from 'rxjs'; +import { reduce } from 'rxjs/operators'; + +export class EditorTranslateLoader implements TranslateLoader { + getTranslation = (lang: string): Observable<Record<string, string>> => merge( + from(import(`../assets/i18n/${lang}.json`)), + from(import(`../../../common/assets/i18n/${lang}.json`)) + ).pipe( + reduce(( + merged: Record<string, string>, + file: Record<string, string> + ): Record<string, string> => ({ ...merged, ...file }), {}) + ); +} diff --git a/projects/editor/src/assets/i18n/de.json b/projects/editor/src/assets/i18n/de.json new file mode 100644 index 0000000000000000000000000000000000000000..8056db49a72b855c60fcb6559cd6d483dc6bb59d --- /dev/null +++ b/projects/editor/src/assets/i18n/de.json @@ -0,0 +1,4 @@ +{ + "loadUnit": "Unit laden", + "saveUnit": "Unit speichern" +} diff --git a/projects/player/src/app/classes/player-translate-loader.ts b/projects/player/src/app/classes/player-translate-loader.ts index e4cd196467a3cd84cd38dd83213eab990ca8485e..4b4aede906206118603585cd34518d1136f9b409 100644 --- a/projects/player/src/app/classes/player-translate-loader.ts +++ b/projects/player/src/app/classes/player-translate-loader.ts @@ -7,6 +7,9 @@ export class PlayerTranslateLoader implements TranslateLoader { from(import(`../../assets/i18n/${lang}.json`)), from(import(`../../../../common/assets/i18n/${lang}.json`)) ).pipe( - reduce((merged, entity) => ({ ...merged, ...entity }), {}) + reduce(( + merged: Record<string, string>, + file: Record<string, string> + ): Record<string, string> => ({ ...merged, ...file }), {}) ); }