Skip to content
Snippets Groups Projects
Commit fdf71ebd authored by jojohoch's avatar jojohoch
Browse files

[editor] Add and configure `TranslationService`

* Add specific translation file for editor in assets/i18n
* Add first translations for toolbar
parent 44f674ba
No related branches found
No related tags found
No related merge requests found
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');
}
}
......@@ -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: []
})
......
<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>
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 }), {})
);
}
{
"loadUnit": "Unit laden",
"saveUnit": "Unit speichern"
}
......@@ -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 }), {})
);
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment