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 = new Map(); public enMap: Map = new Map(); public lMap: Map = new Map(); 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; } } }