ChangeCalendar/frontend/src/app/language.service.ts

263 lines
12 KiB
TypeScript

import { Injectable } from '@angular/core';
@Injectable({
providedIn: 'root'
})
/**
* The LanguageService manages the language (DE or EN) over all Components
* and returns and returns all textual attributes in the selected language
* By holding 2 languageMaps for german and english and one languageMap that can be set to the german or english map
*/
export class LanguageService {
public language: string = 'DE';
public languages: string[] = ['DE', 'EN'];
public deMap: Map<string, string> = new Map<string, string>();
public enMap: Map<string, string> = new Map<string, string>();
public lMap: Map<string, string> = new Map<string, string>();
public deColumns: any[];
public enColumns: any[];
public dePlanTimeColumns: any[];
public enPlanTimeColumns: any[];
public dePlanTimeResources: any[];
public enPlanTimeResources: any[];
/**
* The constructor sets all the language values and does the default mapping
*/
constructor() {
this.deMap.set('routeDraft', "Entwurf"); this.enMap.set('routeDraft', 'Draft');
this.deMap.set('routeRFA', "Atorisierungsanforderung"); this.enMap.set('routeRFA', 'Request for Authorization');
this.deMap.set('routePIP', "Planung in Bearbeitung"); this.enMap.set('routePIP', 'Planning in Progress');
this.deMap.set('routeScheduled', "Geplant"); this.enMap.set('routeScheduled', 'Scheduled');
this.deMap.set('routeCancelled', "Storniert"); this.enMap.set('routeCancelled', 'Cancelled');
this.deMap.set('routeCFRR', "Fertiggestellt (Endüberprüfung Erforderlich)"); this.enMap.set('routeCFRR', 'Completed (final review required)');
this.deMap.set('routeFRF', "Fertiggestellt (Endüberprüfung Abgeschlossen)"); this.enMap.set('routeFRF', 'Completed (final review finished)');
this.deMap.set('routeClosed', "Abgeschlossen"); this.enMap.set('routeClosed', 'Closed');
this.deMap.set('routeRB', "Abgelehnt (Beginn)"); this.enMap.set('routeRB', 'Rejected (begin)');
this.deMap.set('routeRE', "Abgelehnt (Ende)"); this.enMap.set('routeRE', 'Rejected (end)');
this.deMap.set('detailButton', 'Details anzeigen');
this.enMap.set('detailButton', 'Show Details');
this.deMap.set('filterButton', 'Filter anwenden');
this.enMap.set('filterButton', 'Apply Filters');
this.deMap.set('sortButton', 'Sortierung anwenden');
this.enMap.set('sortButton', 'Apply Sort');
this.deMap.set('field1', 'Kurzbeschreibung');
this.enMap.set('field1', 'Summary');
this.deMap.set('dateRangeLabel', 'Datumsbereich auswählen');
this.enMap.set('dateRangeLabel', 'Select Date Range');
this.deMap.set('language', 'Sprache');
this.enMap.set('language', 'Language');
this.deMap.set('clearFilter', 'Filter Löschen');
this.enMap.set('clearFilter', 'Clear Filter');
this.deMap.set('nttGanttFilterButton', 'Filtern');
this.enMap.set('nttGanttFilterButton', 'Filter');
this.deMap.set('tooltipSummary', 'Name');
this.enMap.set('tooltipSummary', 'Name');
this.deMap.set('tooltipState', 'Status');
this.enMap.set('tooltipState', 'State');
this.deMap.set('tooltipPaketType', 'Paket Typ');
this.enMap.set('tooltipPaketType', 'Package Type');
this.deMap.set('tooltipContract', 'Vertrag / Provider Cluster');
this.enMap.set('tooltipContract', 'Contract / Provider Cluster');
this.deMap.set('tooltipSupportGroupKv', 'KV SG');
this.enMap.set('tooltipSupportGroupKv', 'KV SG');
this.deMap.set('tooltipSupportGroupIh', 'IH SG');
this.enMap.set('tooltipSupportGroupIh', 'IH SG');
this.deMap.set('tooltipDate', 'Geplantes Start Datum');
this.enMap.set('tooltipDate', 'Planned Start Date');
this.deMap.set('genehmigen', 'Genehmigen');
this.enMap.set('genehmigen', 'Approve');
this.deMap.set('ablehnen', 'Ablehnen');
this.enMap.set('ablehnen', 'Reject');
this.deMap.set('stornieren', 'Stornieren');
this.enMap.set('stornieren', 'Cancel');
this.deMap.set('implementer', 'Arbeitsverantwortlichen Eintragen');
this.enMap.set('implementer', 'Enter Implementer');
this.deMap.set('stateChange', 'Statusübergang');
this.enMap.set('stateChange', 'State Transition');
this.deMap.set('stateDialogSnackBarMessageFailiure', 'Statusübergang fehlgeschlagen');
this.enMap.set('stateDialogSnackBarMessageFailiure', 'State Transition failed');
this.deMap.set('stateDialogSnackBarActionFailiure', 'Schließen');
this.enMap.set('stateDialogSnackBarActionFailiure', 'close');
this.deMap.set('stateDialogSnackBarMsg1Success', 'Statusübergang');
this.enMap.set('stateDialogSnackBarMsg1Success', 'State Transition');
this.deMap.set('stateDialogSnackBarMsg2Success', 'erfolgreich');
this.enMap.set('stateDialogSnackBarMsgsSuccess', 'successful');
this.deMap.set('stateDialogSnackBarActionSuccess', 'Schließen');
this.enMap.set('stateDialogSnackBarActionSuccess', 'close');
this.deMap.set('stateDialogStateTransition', 'Statusübergang');
this.enMap.set('stateDialogStateTransition', 'State Transition');
this.deMap.set('stateDialogSelectState', 'Status auswählen');
this.enMap.set('stateDialogSelectState', 'Select State');
this.deMap.set('stateDialogCancel', 'Abbrechen');
this.enMap.set('stateDialogCancel', 'Cancel');
this.deMap.set('stateDialogConfirm', 'Bestätigen');
this.enMap.set('stateDialogConfirm', 'Confirm');
this.deMap.set('filterDialogHeading', 'W&I Pakete filtern');
this.enMap.set('filterDialogHeading', 'Filter W&I Packages');
this.deMap.set('filterDialogShortDesc', 'Kurzbeschreibung');
this.deMap.set('filterDialogShortDescText', 'Eingabe eines Textteiles filtert alle passenden Pakete');
this.deMap.set('filterDilogSg', 'Support Gruppe');
this.deMap.set('filterDilogSgText', 'In der Rolle Planender IH oder Kostenverantwortlicher (eine)');
this.deMap.set('filterDilogState', 'Status');
this.deMap.set('filterDilogStateText', '(einer oder mehrere) des Pakets');
this.deMap.set('filterDilogContract', 'Vertrag');
this.deMap.set('filterDilogContractText', 'Vertrag / Provider-Cluster (einen oder mehrere)');
this.deMap.set('filterDilogPaketType', 'Paket-Typ');
this.deMap.set('filterDilogPaketTypeText', 'einen oder mehrere, exakte Eingabe');
this.deMap.set('filterDilogDate', 'Datum');
this.deMap.set('filterDilogDateText', 'Geplantes Start-Datum: Von / Bis');
this.deMap.set('filterDilogSearchText', 'Text durchsuchen');
this.deMap.set('filterDialogSearchSg', 'Supportgruppe suchen & auswählen');
this.deMap.set('filterDilogSearchState', 'Status suchen & auswählen');
this.deMap.set('filterDilogSearchContract', 'Vertrag suchen & auswählen');
this.deMap.set('filterDilogSearchPt', 'Paket-Typ suchen & auswählen');
this.deMap.set('filterDilogSearchFrom', 'Von');
this.deMap.set('filterDilogSearchTo', 'Bis');
this.enMap.set('filterDialogShortDesc', 'Short description');
this.enMap.set('filterDialogShortDescText', 'entering a text part filters all matching packages');
this.enMap.set('filterDilogSg', 'Support group');
this.enMap.set('filterDilogSgText', 'in the role of planning IH or cost manager (one)');
this.enMap.set('filterDilogState', 'State');
this.enMap.set('filterDilogStateText', '(one or more) of the package');
this.enMap.set('filterDilogContract', 'Contract');
this.enMap.set('filterDilogContractText', 'Contract / provider cluster (one or more)');
this.enMap.set('filterDilogPaketType', 'Package type');
this.enMap.set('filterDilogPaketTypeText', 'one or more, exact input');
this.enMap.set('filterDilogDate', 'Date');
this.enMap.set('filterDilogDateText', 'Planned start date: from / to');
this.enMap.set('filterDilogSearchText', 'Text search');
this.enMap.set('filterDialogSearchSg', 'Search & select support group');
this.enMap.set('filterDilogSearchState', 'Search & select state');
this.enMap.set('filterDilogSearchContract', 'Search & select contract');
this.enMap.set('filterDilogSearchPt', 'Search & select package type');
this.enMap.set('filterDilogSearchFrom', 'From');
this.enMap.set('filterDilogSearchTo', 'Until');
this.enMap.set('filterDilogButton', 'Apply Filters');
this.deMap.set('filterDilogButton', 'Filter anwenden');
this.deMap.set('filterDialogCancel', 'Abbrechen');
this.enMap.set('filterDialogCancel', 'Cancel');
this.deMap.set('implementerDialogHeading', 'Arbeitsverantwortlichen Eintragen');
this.enMap.set('implementerDialogHeading', 'Enter Implementer');
this.deMap.set('implementerDialogLabel', 'Arbeitsverantwortlichen auswählen');
this.enMap.set('implementerDialogLabel', 'Select Implementer');
this.deMap.set('implementerDialogCancel', 'Abbrechen');
this.enMap.set('implementerDialogCancel', 'Cancel');
this.deMap.set('implementerDialogApply', 'Bestätigen');
this.enMap.set('implementerDialogApply', 'Confirm');
this.deMap.set('planTimesHeading', 'Planzeit pro Woche');
this.enMap.set('planTimesHeading', 'Plantimes per Week');
this.deMap.set('planTimesResource', 'Planzeit Summen pro Woche');
this.enMap.set('planTimesResource', 'Plantime Sum per Week');
this.deMap.set('planTimesPlantime', 'Planzeit');
this.enMap.set('planTimesPlantime', 'Plantime');
this.deMap.set('planTimesStartDate', 'Start Datum');
this.enMap.set('planTimesStartDate', 'Start Date');
this.deMap.set('tooltipD', 'Datum Typ');
this.enMap.set('tooltipD', 'Date Type');
this.deMap.set('D1N', 'Generiertes Datum');
this.enMap.set('D1N', 'Generated Date');
this.deMap.set('D2N', 'Geplantes Start Datum');
this.enMap.set('D2N', 'Sheduled Start Date');
this.deMap.set('D3N', 'Tatsächliches Start Datum');
this.enMap.set('D3N', 'Real Start Date');
this.deMap.set('D4N', 'End Datum');
this.enMap.set('D4N', 'End Date');
this.dePlanTimeResources = [{ resourceId: 1, resourceName: 'Planzeit Summen pro Woche' }];
this.dePlanTimeColumns = [{ field: 'TaskName', headerText: 'Planzeiten pro Woche', width: 250 }];
this.enPlanTimeResources = [{ resourceId: 1, resourceName: 'Plantime Sum per Week' }];
this.enPlanTimeColumns = [{ field: 'TaskName', headerText: 'Planzeit pro Woche', width: 250 }];
this.deColumns = [
{ field: 'TaskName', headerText: 'Kurzbeschreibung', width: 230 },
{ field: 'stateName', headerText: 'Status', width: 250 },
{ field: 'vertragName', headerText: 'Vertrag / Provider Cluster', width: 150 },
{ field: 'supportGroup', headerText: 'Gewählte Support Gruppe' },
{ field: 'StartDate', headerText: 'Geplantes Start-Datum', format: { type: 'date', format: 'dd.MM.yyyy' } },
{ field: 'plantime', headerText: 'Planzeit in H', width: 100 },
{ field: 'changeNr', headerText: 'Change Nummer', width: 140 }
];
this.enColumns = [
{ field: 'TaskName', headerText: 'Summary', width: 230 },
{ field: 'stateName', headerText: 'State', width: 250 },
{ field: 'vertragName', headerText: 'Contract / Provider Cluster', width: 150 },
{ field: 'supportGroup', headerText: 'Selected Support Group' },
{ field: 'StartDate', headerText: 'Planned Start-Date', format: { type: 'date', format: 'dd.MM.yyyy' } },
{ field: 'plantime', headerText: 'Plantime in h', width: 100 },
{ field: 'changeNr', headerText: 'Change Number', width: 140 }
];
if (navigator.language == 'de-DE') {
this.language = 'DE';
this.lMap = this.deMap;
} else {
this.language = 'EN';
this.lMap = this.enMap;
}
}
/**
* The function languageChange set the language map to the german or english map depending on the selected language
* it is triggered by an language change from the NttGanttComponent
* @param args args with the selected language
*/
public languageChange(args: any) {
if (this.language == 'DE') {
this.lMap = this.deMap;
} else {
this.language = 'EN';
this.lMap = this.enMap;
}
}
/**
* The function getColumns delivers the gannt chart columns for the NttGanttComponent in the selected language
* it is triggered by an language change from the NttGanttComponent
*/
public getColumns() {
if (this.language == 'DE') {
return this.deColumns;
} else {
this.language = 'EN';
return this.enColumns;
}
}
}