This is an automated email from the ASF dual-hosted git repository.

mfholz pushed a commit to branch ngx-translate
in repository https://gitbox.apache.org/repos/asf/streampipes.git


The following commit(s) were added to refs/heads/ngx-translate by this push:
     new 122ada415f Add german translation to data explorer shared  module
     new b1ab63554f Merge branch 'ngx-translate' of 
https://github.com/apache/streampipes into ngx-translate
122ada415f is described below

commit 122ada415fe3e985129c7172cc62b373c91ff37b
Author: Marcelfrueh <[email protected]>
AuthorDate: Fri Feb 14 14:09:45 2025 +0100

    Add german translation to data explorer shared  module
---
 ui/deployment/i18n/de.json                         | 129 ++++++++++++++++++---
 ui/deployment/i18n/en.json                         | 121 +++++++++++++++++--
 .../data-zoom-config.component.html                |  14 ++-
 ...echarts-widget-appearance-config.component.html |   8 +-
 .../select-axis-options-config.component.html      |   6 +-
 .../select-color-properties-config.component.html  |   6 +-
 .../time-series-item-config.component.html         |  32 +++--
 ...elect-multiple-properties-config.component.html |   4 +-
 .../select-multiple-properties-config.component.ts |  14 ++-
 .../visualization-config-outer.component.html      |   7 +-
 .../data-explorer-chart-container.component.html   |  14 +--
 .../invalid-configuration.component.html           |   8 +-
 .../no-data/no-data-in-date-range.component.html   |   4 +-
 .../too-much-data/too-much-data.component.html     |  13 ++-
 .../correlation-chart-widget-config.component.html |   6 +-
 .../config/gauge-widget-config.component.html      |   8 +-
 .../config/heatmap-widget-config.component.html    |   6 +-
 .../histogram-chart-widget-config.component.html   |  20 ++--
 .../config/image-widget-config.component.html      |   2 +-
 .../indicator-chart-widget-config.component.html   |   6 +-
 .../map/config/map-widget-config.component.html    |  38 +++---
 .../config/pie-chart-widget-config.component.html  |  16 +--
 .../config/status-widget-config.component.html     |  43 ++++---
 .../charts/status/status-widget.component.html     |   4 +-
 .../config/table-widget-config.component.html      |   6 +-
 .../charts/table/table-widget.component.html       |   4 +-
 .../time-series-chart-widget-config.component.html |  10 +-
 .../traffic-light-widget-config.component.html     |  26 +++--
 .../traffic-light-widget-config.component.ts       |  16 ++-
 ...alue-heatmap-chart-widget-config.component.html |   8 +-
 .../data-explorer-shared.module.ts                 |   2 +
 .../registry/data-explorer-chart-registry.ts       |  32 ++---
 .../services/data-explorer-shared.service.ts       |  10 +-
 33 files changed, 464 insertions(+), 179 deletions(-)

diff --git a/ui/deployment/i18n/de.json b/ui/deployment/i18n/de.json
index 1230d708db..46e370ccac 100644
--- a/ui/deployment/i18n/de.json
+++ b/ui/deployment/i18n/de.json
@@ -3,6 +3,101 @@
   "Start All Pipelines": "Alle Pipelines starten",
   "Stop all pipelines": "Alle Pipelines stoppen",
   "Last modified": "Zuletzt geändert",
+  "Field": "Feld",
+  "Settings": "Einstellungen",
+  "Resolution": "Auflösung",
+  "Threshold": "Schwellenwert",
+  "With Threshold being": "Schwellenwert entspricht",
+  "Upper Limit": "Obere Grenze",
+  "Lower Limit": "Untere Grenze",
+  "Warning Range (%)": "Warnbereich (%)",
+  "Show Value in Traffic Light": "Wert anzeigen",
+  "Axes": "Achsen",
+  "left axis": "linke Achse",
+  "right axis": "rechte Achse",
+  "Axis Pointer": "Achsen-Pointer",
+  "Enable": "Aktivieren",
+  "Time": "Zeit",
+  "Select Fields": "Felder auswählen",
+  "Search": "Suche",
+  "Filter": "Filter",
+  "Last seen:": "Zuletzt gesehen:",
+  "Select Value Type": "Größe auswählen",
+  "Numeric Value": "Numerischer Wert",
+  "Boolean Value": "Boolescher Wert",
+  "Interval in seconds in which an event must arrive": "Sekundenintervall, in 
dem ein Ereignis eintreffen muss",
+  "Interval [sec]": "Intervall [sec]",
+  "Show Last Seen Timestamp": "Letzten Zeitstempel anzeigen",
+  "Select Mapping": "Mapping auswählen",
+  "True": "Wahr",
+  "False": "Falsch",
+  "Rounding": "Rundung",
+  "Inner Radius": "Innerer Radius",
+  "Add custom color mapping": "Benutzerdefiniertes Mapping hinzufügen",
+  "Add Mapping": "Mapping hinzufügen",
+  "Value": "Wert",
+  "Remove Mapping": "Mapping entfernen",
+  "Fields": "Felder",
+  "Latitude": "Breitengrad",
+  "Longitude": "Längengrad",
+  "Map Zoom": "Karte vergrößern",
+  "Focus map on last event": "Karte auf letztes Ereignis fokussieren",
+  "Marker or Trace": "Markierung oder Spur",
+  "Marker": "Markierung",
+  "Trace": "Spur",
+  "Marker Type": "Markierungsart",
+  "Pin": "Pin",
+  "Car": "Auto",
+  "Tooltip": "Tooltip",
+  "Tooltip Content": "Tooltip-Inhalt",
+  "Show delta indicator": "Delta-Indikator anzeigen",
+  "Auto-compute number of bins": "Automatische Berechnung der Bins",
+  "Number of bins": "Anzahl der Bins",
+  "All values": "Alle Werte",
+  "Minimum value": "Minimaler Wert",
+  "Maximum value": "Maximaler Wert",
+  "Show values as labels": "Werte als Beschriftung anzeigen",
+  "Min": "Min",
+  "Max": "Max",
+  "X": "X",
+  "Y": "Y",
+  "Warning": "Warnung",
+  "This chart tries to load too much data (#Events:": "Dieses Diagramm 
versucht, zu viele Daten zu laden (#Events:",
+  "Please change the chart settings or decrease the time range": "Bitte ändern 
Sie die Diagramm-Einstellungen oder ändern Sie die Zeitintervall",
+  "Load anyway": "Trotzdem laden",
+  "(This might crash the browser)": "(Dies kann zum Absturz des Browsers 
führen)",
+  "Found no data in selected time range": "Keine Daten im ausgewählten 
Zeitintervall gefunden",
+  "Invalid configuration for": "Ungültige Konfiguration für",
+  "This chart is missing required fields - choose another chart type or add 
additional fields.": "In diesem Diagramm fehlen erforderliche Felder - wählen 
Sie einen anderen Diagrammtyp oder fügen Sie zusätzliche Felder hinzu.",
+  "More options": "Weitere Optionen",
+  "Download data": "Daten herunterladen",
+  "Edit Chart": "Diagramm bearbeiten",
+  "Options": "Optionen",
+  "Reset": "Zurücksetzen",
+  "Delete Chart": "Diagramm löschen",
+  "The current data selection can't be displayed by this chart.": "Die 
aktuelle Auswahl kann in diesem Diagramm nicht angezeigt werden.",
+  "Select all": "Alle auswählen",
+  "Deselect all": "Alle abwählen",
+  "Field settings": "Feldeinstellungen",
+  "Color": "Farbe",
+  "Label": "Label",
+  "Type": "Typ",
+  "Bar": "Balken",
+  "Line": "Linien",
+  "Scatter": "Streudiagramm",
+  "Scattered Line": "Streudiagramm-Linie",
+  "Axis": "Achse",
+  "Left": "Links",
+  "Right": "Rechts",
+  "Auto-scale {{title}}": "{{title}} automatisch skalieren",
+  "Chart settings": "Diagramm-Einstellungen",
+  "Show legend": "Legende anzeigen",
+  "Show toolbox": "Toolbox anzeigen",
+  "Show tooltip": "Tooltip anzeigen",
+  "Data Zoom": "Zoom",
+  "Active": "Aktiv",
+  "Wheel": "Rad",
+  "Slider": "Slider",
   "Charts": "Diagramme",
   "New chart": "Neues Diagramm",
   "Chart": "Diagramm",
@@ -13,7 +108,6 @@
   "Chart Name": "Diagrammname",
   "Save": "Speichern",
   "Discard": "Verwerfen",
-  "Download data": "Daten herunterladen",
   "Data": "Daten",
   "Visualization": "Visualisierung",
   "Appearance": "Darstellung",
@@ -40,36 +134,43 @@
   "Limit": "Limit",
   "Page": "Seite",
   "Aggregated": "Aggregiert",
-  "Aggregate raw data by time unit or value.": "Aggregieren von Rohdaten nach 
Zeiteinheit oder Wert.",
+  "Aggregate raw data by time unit or value.": "Rohdaten nach Zeiteinheit oder 
Wert aggregieren.",
   "Auto-Aggregate": "Auto-Aggregiert",
   "Single": "Einzeln",
-  "Show single data entry.": "Einzelne Dateneingabe anzeigen.",
+  "Show single data entry.": "Einzelne Dateneinträge anzeigen.",
   "Add Data Source": "Datenquelle hinzufügen",
   "Deactivate browser overload warning": "Warnung vor Browser-Überlastung 
deaktivieren",
-  "Ignore Events with missing values": "Ignorieren von Ereignissen mit 
fehlenden Werten",
+  "Ignore Events with missing values": "Ereignisse mit fehlenden Werten 
ignorieren",
   "Order": "Sortieren",
   "Newest (descending)": "Neueste zuerst (absteigend)",
-  "Oldest (ascending)": "Älteste zuerst(aufsteigend)",
+  "Oldest (ascending)": "Älteste zuerst (aufsteigend)",
   "Group by": "Gruppieren nach",
-  "Select all": "Alle auswählen",
-  "Deselect all": "Alle abwählen",
-  "Filter": "Filter",
   "Add Filter": "Filter hinzufügen",
-  "Value": "Wert",
-  "Field": "Feld",
-  "Fields": "Felder",
   "Mean": "Mittelwert",
   "First": "Erster",
   "Last": "Letzter",
-  "Min": "Min",
-  "Max": "Max",
   "Mode": "Modus",
   "Count": "Anzahl",
   "Sum": "Summe",
   "Unit": "Einheit",
-  "Color": "Farbe",
   "Background": "Hintergrund",
   "Text": "Text",
+  "Gauge": "Gauge",
+  "Table": "Tabelle",
+  "Traffic Light": "Ampel",
+  "Status": "Status",
+  "Map": "Karte",
+  "Time-Series Heatmap": "Zeitreihen-Heatmap",
+  "Time Series Chart": "Zeitreihen-Diagramm",
+  "Image": "Bild",
+  "Indicator": "Indikator",
+  "Histogram": "Histogramm",
+  "Pie": "Kreisdiagramm",
+  "Value Distribution Heatmap": "Wertverteilung-Heatmap",
+  "2D Density Contour": "2D-Dichterverteilung",
+  "No Warning Range defined": "Kein Warnbereich definiert",
+  "Current Warning Range: ": "Aktueller Warnbereich: ",
+  "to": "zu",
   "Are you sure you want to delete this chart?": "Sind Sie sicher, dass Sie 
dieses Diagramm löschen wollen?",
   "The chart will be removed from all dashboards as well. This action cannot 
be undone!": "Das Diagramm wird auch aus allen Dashboards entfernt. Diese 
Aktion kann nicht rückgängig gemacht werden!",
   "Cancel": "Abbrechen",
diff --git a/ui/deployment/i18n/en.json b/ui/deployment/i18n/en.json
index 537766076f..640292da1f 100644
--- a/ui/deployment/i18n/en.json
+++ b/ui/deployment/i18n/en.json
@@ -3,6 +3,101 @@
   "Start All Pipelines": null,
   "Stop all pipelines": null,
   "Last modified": null,
+  "Field": null,
+  "Settings": null,
+  "Resolution": null,
+  "Threshold": null,
+  "With Threshold being": null,
+  "Upper Limit": null,
+  "Lower Limit": null,
+  "Warning Range (%)": null,
+  "Show Value in Traffic Light": null,
+  "Axes": null,
+  "left axis": null,
+  "right axis": null,
+  "Axis Pointer": null,
+  "Enable": null,
+  "Time": null,
+  "Select Fields": null,
+  "Search": null,
+  "Filter": null,
+  "Last seen:": null,
+  "Select Value Type": null,
+  "Numeric Value": null,
+  "Boolean Value": null,
+  "Interval in seconds in which an event must arrive": null,
+  "Interval [sec]": null,
+  "Show Last Seen Timestamp": null,
+  "Select Mapping": null,
+  "True": null,
+  "False": null,
+  "Rounding": null,
+  "Inner Radius": null,
+  "Add custom color mapping": null,
+  "Add Mapping": null,
+  "Value": null,
+  "Remove Mapping": null,
+  "Fields": null,
+  "Latitude": null,
+  "Longitude": null,
+  "Map Zoom": null,
+  "Focus map on last event": null,
+  "Marker or Trace": null,
+  "Marker": null,
+  "Trace": null,
+  "Marker Type": null,
+  "Pin": null,
+  "Car": null,
+  "Tooltip": null,
+  "Tooltip Content": null,
+  "Show delta indicator": null,
+  "Auto-compute number of bins": null,
+  "Number of bins": null,
+  "All values": null,
+  "Minimum value": null,
+  "Maximum value": null,
+  "Show values as labels": null,
+  "Min": null,
+  "Max": null,
+  "X": null,
+  "Y": null,
+  "Warning": null,
+  "This chart tries to load too much data (#Events:": null,
+  "Please change the chart settings or decrease the time range": null,
+  "Load anyway": null,
+  "(This might crash the browser)": null,
+  "Found no data in selected time range": null,
+  "Invalid configuration for": null,
+  "This chart is missing required fields - choose another chart type or add 
additional fields.": null,
+  "More options": null,
+  "Download data": null,
+  "Edit Chart": null,
+  "Options": null,
+  "Reset": null,
+  "Delete Chart": null,
+  "The current data selection can't be displayed by this chart.": null,
+  "Select all": null,
+  "Deselect all": null,
+  "Field settings": null,
+  "Color": null,
+  "Label": null,
+  "Type": null,
+  "Bar": null,
+  "Line": null,
+  "Scatter": null,
+  "Scattered Line": null,
+  "Axis": null,
+  "Left": null,
+  "Right": null,
+  "Auto-scale {{title}}": "Auto-scale {{title}}",
+  "Chart settings": null,
+  "Show legend": null,
+  "Show toolbox": null,
+  "Show tooltip": null,
+  "Data Zoom": null,
+  "Active": null,
+  "Wheel": null,
+  "Slider": null,
   "Charts": null,
   "New chart": null,
   "Chart": null,
@@ -13,7 +108,6 @@
   "Chart Name": null,
   "Save": null,
   "Discard": null,
-  "Download data": null,
   "Data": null,
   "Visualization": null,
   "Appearance": null,
@@ -51,25 +145,32 @@
   "Newest (descending)": null,
   "Oldest (ascending)": null,
   "Group by": null,
-  "Select all": null,
-  "Deselect all": null,
-  "Filter": null,
   "Add Filter": null,
-  "Value": null,
-  "Field": null,
-  "Fields": null,
   "Mean": null,
   "First": null,
   "Last": null,
-  "Min": null,
-  "Max": null,
   "Mode": null,
   "Count": null,
   "Sum": null,
   "Unit": null,
-  "Color": null,
   "Background": null,
   "Text": null,
+  "Gauge": null,
+  "Table": null,
+  "Traffic Light": null,
+  "Status": null,
+  "Map": null,
+  "Time-Series Heatmap": null,
+  "Time Series Chart": null,
+  "Image": null,
+  "Indicator": null,
+  "Histogram": null,
+  "Pie": null,
+  "Value Distribution Heatmap": null,
+  "2D Density Contour": null,
+  "No Warning Range defined": null,
+  "Current Warning Range: ": null,
+  "to": null,
   "Are you sure you want to delete this chart?": null,
   "The chart will be removed from all dashboards as well. This action cannot 
be undone!": null,
   "Cancel": null,
diff --git 
a/ui/src/app/data-explorer-shared/components/chart-config/data-zoom-config/data-zoom-config.component.html
 
b/ui/src/app/data-explorer-shared/components/chart-config/data-zoom-config/data-zoom-config.component.html
index c5c4d4a684..a09890aa9e 100644
--- 
a/ui/src/app/data-explorer-shared/components/chart-config/data-zoom-config/data-zoom-config.component.html
+++ 
b/ui/src/app/data-explorer-shared/components/chart-config/data-zoom-config/data-zoom-config.component.html
@@ -16,17 +16,17 @@
   ~
   -->
 
-<sp-configuration-box title="Data Zoom">
+<sp-configuration-box [title]="'Data Zoom' | translate">
     <div fxLayout="column">
         <mat-checkbox
             [(ngModel)]="appearanceConfig.dataZoom.show"
             (ngModelChange)="configChangedEmitter.emit()"
-            >Active
+            >{{ 'Active' | translate }}
         </mat-checkbox>
 
         <div fxFlex="100" fxLayoutAlign="start center" class="ml-10">
             <div fxLayoutAlign="start center">
-                <span>Type</span>
+                <span>{{ 'Type' | translate }}</span>
             </div>
             <span fxFlex></span>
             <div class="form-field-small w-100" fxLayoutAlign="end center">
@@ -36,8 +36,12 @@
                         [(ngModel)]="appearanceConfig.dataZoom.type"
                         [disabled]="!appearanceConfig.dataZoom.show"
                     >
-                        <mat-option value="inside">Wheel</mat-option>
-                        <mat-option value="slider">Slider</mat-option>
+                        <mat-option value="inside">{{
+                            'Wheel' | translate
+                        }}</mat-option>
+                        <mat-option value="slider">{{
+                            'Slider' | translate
+                        }}</mat-option>
                     </mat-select>
                 </mat-form-field>
             </div>
diff --git 
a/ui/src/app/data-explorer-shared/components/chart-config/echarts-widget-appearance-config/echarts-widget-appearance-config.component.html
 
b/ui/src/app/data-explorer-shared/components/chart-config/echarts-widget-appearance-config/echarts-widget-appearance-config.component.html
index 894bdc0a68..db108d83c0 100644
--- 
a/ui/src/app/data-explorer-shared/components/chart-config/echarts-widget-appearance-config/echarts-widget-appearance-config.component.html
+++ 
b/ui/src/app/data-explorer-shared/components/chart-config/echarts-widget-appearance-config/echarts-widget-appearance-config.component.html
@@ -16,22 +16,22 @@
   ~
   -->
 
-<sp-configuration-box title="Chart settings">
+<sp-configuration-box [title]="'Chart settings' | translate">
     <div fxLayout="column">
         <mat-checkbox
             [(ngModel)]="appearanceConfig.chartAppearance.showLegend"
             (change)="triggerViewUpdate()"
-            >Show legend
+            >{{ 'Show legend' | translate }}
         </mat-checkbox>
         <mat-checkbox
             [(ngModel)]="appearanceConfig.chartAppearance.showToolbox"
             (change)="triggerViewUpdate()"
-            >Show toolbox
+            >{{ 'Show toolbox' | translate }}
         </mat-checkbox>
         <mat-checkbox
             [(ngModel)]="appearanceConfig.chartAppearance.showTooltip"
             (change)="triggerViewUpdate()"
-            >Show tooltip
+            >{{ 'Show tooltip' | translate }}
         </mat-checkbox>
     </div>
 </sp-configuration-box>
diff --git 
a/ui/src/app/data-explorer-shared/components/chart-config/select-axis-options-config/select-axis-options-config.component.html
 
b/ui/src/app/data-explorer-shared/components/chart-config/select-axis-options-config/select-axis-options-config.component.html
index da26fd557f..cc2ba04b4e 100644
--- 
a/ui/src/app/data-explorer-shared/components/chart-config/select-axis-options-config/select-axis-options-config.component.html
+++ 
b/ui/src/app/data-explorer-shared/components/chart-config/select-axis-options-config/select-axis-options-config.component.html
@@ -20,7 +20,7 @@
     <mat-checkbox
         [(ngModel)]="axisConfig.autoScaleActive"
         (change)="viewRefreshEmitter.emit()"
-        >Auto-scale {{ title }}
+        >{{ 'Auto-scale {{title}}' | translate:{ title: title } }}
     </mat-checkbox>
     <div
         fxFlex
@@ -28,7 +28,7 @@
         *ngIf="!axisConfig.autoScaleActive"
         class="ml-10 mb-10"
     >
-        <small>Min</small>
+        <small>{{ 'Min' | translate }}</small>
         <span fxFlex></span>
         <mat-form-field appearance="outline" color="accent" fxFlex="30">
             <input
@@ -45,7 +45,7 @@
         *ngIf="!axisConfig.autoScaleActive"
         class="ml-10 mb-10"
     >
-        <small>Max</small>
+        <small>{{ 'Max' | translate }}</small>
         <span fxFlex></span>
         <mat-form-field appearance="outline" color="accent" fxFlex="30">
             <input
diff --git 
a/ui/src/app/data-explorer-shared/components/chart-config/select-color-properties-config/select-color-properties-config.component.html
 
b/ui/src/app/data-explorer-shared/components/chart-config/select-color-properties-config/select-color-properties-config.component.html
index 5c0ee3bdb1..f9e720751f 100644
--- 
a/ui/src/app/data-explorer-shared/components/chart-config/select-color-properties-config/select-color-properties-config.component.html
+++ 
b/ui/src/app/data-explorer-shared/components/chart-config/select-color-properties-config/select-color-properties-config.component.html
@@ -16,7 +16,7 @@
   ~
   -->
 
-<sp-configuration-box title="Fields" marginTop="5px">
+<sp-configuration-box [title]="'Fields' | translate" marginTop="5px">
     <div header>
         <button
             mat-button
@@ -26,7 +26,7 @@
             style="margin-right: 10px"
             (click)="selectAllFields()"
         >
-            Select all
+            {{ 'Select all' | translate }}
         </button>
         <button
             mat-button
@@ -35,7 +35,7 @@
             style="margin-right: 10px"
             (click)="deselectAllFields()"
         >
-            Deselect all
+            {{ 'Deselect all' | translate }}
         </button>
     </div>
     <div
diff --git 
a/ui/src/app/data-explorer-shared/components/chart-config/select-color-properties-config/time-series-item-config/time-series-item-config.component.html
 
b/ui/src/app/data-explorer-shared/components/chart-config/select-color-properties-config/time-series-item-config/time-series-item-config.component.html
index c2ecb55588..947d97ecdc 100644
--- 
a/ui/src/app/data-explorer-shared/components/chart-config/select-color-properties-config/time-series-item-config/time-series-item-config.component.html
+++ 
b/ui/src/app/data-explorer-shared/components/chart-config/select-color-properties-config/time-series-item-config/time-series-item-config.component.html
@@ -45,7 +45,7 @@
         <button
             mat-icon-button
             color="accent"
-            matTooltip="Field settings"
+            [matTooltip]="'Field settings' | translate"
             data-cy="time-series-item-config-toggle"
             (click)="toggleExpand()"
             [disabled]="!isSelected(field)"
@@ -63,7 +63,9 @@
         class="ml-10"
     >
         <div fxLayout="row" fxFlex="100">
-            <div fxFlex="30"><small>Color</small></div>
+            <div fxFlex="30">
+                <small>{{ 'Color' | translate }}</small>
+            </div>
             <div fxFlex="70" fxLayoutAlign="start center">
                 <input
                     class="color-field"
@@ -89,7 +91,7 @@
         </div>
         <div fxLayout="row" fxFlex="100">
             <div fxFlex="30" fxLayoutAlign="start center">
-                <small>Label</small>
+                <small>{{ 'Label' | translate }}</small>
             </div>
             <div fxFlex="70" fxLayoutAlign="start center">
                 <mat-form-field
@@ -115,7 +117,7 @@
 
         <div fxLayout="row" fxFlex="100">
             <div fxFlex="30" fxLayoutAlign="start center">
-                <small>Type</small>
+                <small>{{ 'Type' | translate }}</small>
             </div>
             <div fxFlex="70" fxLayoutAlign="start center">
                 <mat-form-field
@@ -133,13 +135,17 @@
                         "
                         (selectionChange)="viewRefreshEmitter.emit()"
                     >
-                        <mat-option [value]="'bar'">Bar</mat-option>
-                        <mat-option [value]="'lines'">Line</mat-option>
+                        <mat-option [value]="'bar'">{{
+                            'Bar' | translate
+                        }}</mat-option>
+                        <mat-option [value]="'lines'">{{
+                            'Line' | translate
+                        }}</mat-option>
                         <mat-option [value]="'normal_markers'"
-                            >Scatter
+                            >{{ 'Scatter' | translate }}
                         </mat-option>
                         <mat-option [value]="'lines+markers'"
-                            >Scattered Line
+                            >{{ 'Scattered Line' | translate }}
                         </mat-option>
                     </mat-select>
                 </mat-form-field>
@@ -148,7 +154,7 @@
 
         <div fxLayout="row" fxFlex="100">
             <div fxFlex="30" fxLayoutAlign="start center">
-                <small>Axis</small>
+                <small>{{ 'Axis' | translate }}</small>
             </div>
             <div fxFlex="70" fxLayoutAlign="start center">
                 <mat-form-field
@@ -165,8 +171,12 @@
                         "
                         (selectionChange)="viewRefreshEmitter.emit()"
                     >
-                        <mat-option [value]="'left'">Left</mat-option>
-                        <mat-option [value]="'right'">Right</mat-option>
+                        <mat-option [value]="'left'">{{
+                            'Left' | translate
+                        }}</mat-option>
+                        <mat-option [value]="'right'">{{
+                            'Right' | translate
+                        }}</mat-option>
                     </mat-select>
                 </mat-form-field>
             </div>
diff --git 
a/ui/src/app/data-explorer-shared/components/chart-config/select-multiple-properties-config/select-multiple-properties-config.component.html
 
b/ui/src/app/data-explorer-shared/components/chart-config/select-multiple-properties-config/select-multiple-properties-config.component.html
index e4e0a6eed8..b8e35cee3e 100644
--- 
a/ui/src/app/data-explorer-shared/components/chart-config/select-multiple-properties-config/select-multiple-properties-config.component.html
+++ 
b/ui/src/app/data-explorer-shared/components/chart-config/select-multiple-properties-config/select-multiple-properties-config.component.html
@@ -26,7 +26,7 @@
             style="margin-right: 10px"
             (click)="selectAllFields()"
         >
-            Select all
+            {{ 'Select all' | translate }}
         </button>
         <button
             mat-button
@@ -35,7 +35,7 @@
             style="margin-right: 10px"
             (click)="deselectAllFields()"
         >
-            Deselect all
+            {{ 'Deselect all' | translate }}
         </button>
     </div>
     <div fxLayout="column" class="field-scroll-panel">
diff --git 
a/ui/src/app/data-explorer-shared/components/chart-config/select-multiple-properties-config/select-multiple-properties-config.component.ts
 
b/ui/src/app/data-explorer-shared/components/chart-config/select-multiple-properties-config/select-multiple-properties-config.component.ts
index a1e391c9ef..ece3364ff7 100644
--- 
a/ui/src/app/data-explorer-shared/components/chart-config/select-multiple-properties-config/select-multiple-properties-config.component.ts
+++ 
b/ui/src/app/data-explorer-shared/components/chart-config/select-multiple-properties-config/select-multiple-properties-config.component.ts
@@ -16,8 +16,16 @@
  *
  */
 
-import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';
+import {
+    Component,
+    EventEmitter,
+    inject,
+    Input,
+    OnInit,
+    Output,
+} from '@angular/core';
 import { DataExplorerField } from '@streampipes/platform-services';
+import { TranslateService } from '@ngx-translate/core';
 
 @Component({
     selector: 'sp-select-properties-config',
@@ -28,11 +36,13 @@ export class SelectMultiplePropertiesConfigComponent 
implements OnInit {
     @Output() changeSelectedProperties: EventEmitter<DataExplorerField[]> =
         new EventEmitter();
 
+    translateService: TranslateService = inject(TranslateService);
+
     @Input() availableProperties: DataExplorerField[];
     @Input() selectedProperties: DataExplorerField[];
     @Input() label: string;
     @Input() multiple: boolean;
-    @Input() title = 'Fields';
+    @Input() title = this.translateService.instant('Fields');
 
     constructor() {}
 
diff --git 
a/ui/src/app/data-explorer-shared/components/chart-config/visualization-config-outer/visualization-config-outer.component.html
 
b/ui/src/app/data-explorer-shared/components/chart-config/visualization-config-outer/visualization-config-outer.component.html
index c53b765bea..f648c5af1c 100644
--- 
a/ui/src/app/data-explorer-shared/components/chart-config/visualization-config-outer/visualization-config-outer.component.html
+++ 
b/ui/src/app/data-explorer-shared/components/chart-config/visualization-config-outer/visualization-config-outer.component.html
@@ -18,7 +18,12 @@
 
 <div fxFlex="100" class="h-100 form-field-small" fxLayout="column">
     <div *ngIf="!configurationValid" fxLayoutAlign="center center">
-        <h5>The current data selection can't be displayed by this chart.</h5>
+        <h5>
+            {{
+                "The current data selection can't be displayed by this chart."
+                    | translate
+            }}
+        </h5>
     </div>
     <div fxFlex="100" *ngIf="configurationValid">
         <ng-content></ng-content>
diff --git 
a/ui/src/app/data-explorer-shared/components/chart-container/data-explorer-chart-container.component.html
 
b/ui/src/app/data-explorer-shared/components/chart-container/data-explorer-chart-container.component.html
index 41ff1319f9..21edefca05 100644
--- 
a/ui/src/app/data-explorer-shared/components/chart-container/data-explorer-chart-container.component.html
+++ 
b/ui/src/app/data-explorer-shared/components/chart-container/data-explorer-chart-container.component.html
@@ -63,8 +63,8 @@
                 <button
                     mat-icon-button
                     [matMenuTriggerFor]="menu"
-                    aria-label="More options"
-                    matTooltip="More options"
+                    [aria-label]="'More options' | translate"
+                    [matTooltip]="'More options' | translate"
                     *ngIf="!dataViewMode"
                     [attr.data-cy]="
                         'more-options-' +
@@ -79,7 +79,7 @@
                 <mat-menu #menu="matMenu">
                     <button mat-menu-item (click)="downloadDataAsFile()">
                         <mat-icon>get_app</mat-icon>
-                        <span>Download data</span>
+                        <span>{{ 'Download data' | translate }}</span>
                     </button>
                     <button
                         mat-menu-item
@@ -94,14 +94,14 @@
                         "
                     >
                         <mat-icon>edit</mat-icon>
-                        <span>Edit Widget</span>
+                        <span>{{ 'Edit Chart' | translate }}</span>
                     </button>
                 </mat-menu>
                 <button
                     mat-icon-button
                     [matMenuTriggerFor]="optMenu"
                     *ngIf="!globalTimeEnabled"
-                    aria-label="Options"
+                    [aria-label]="'Options' | translate"
                     data-cy="options-data-explorer"
                     #menuTrigger="matMenuTrigger"
                     [matTooltip]="tooltipText"
@@ -129,14 +129,14 @@
                             class="mat-basic"
                             (click)="resetWidgetTimeSettings()"
                         >
-                            Reset
+                            {{ 'Reset' | translate }}
                         </button>
                     </sp-time-selector-menu>
                 </mat-menu>
                 <button
                     mat-icon-button
                     (click)="removeWidget()"
-                    matTooltip="Delete widget"
+                    [matTooltip]="'Delete Chart' | translate"
                     *ngIf="editMode && hasDataExplorerWritePrivileges"
                     [attr.data-cy]="
                         'remove-' +
diff --git 
a/ui/src/app/data-explorer-shared/components/charts/base/invalid-configuration/invalid-configuration.component.html
 
b/ui/src/app/data-explorer-shared/components/charts/base/invalid-configuration/invalid-configuration.component.html
index 0496baf80a..b98508dd7c 100644
--- 
a/ui/src/app/data-explorer-shared/components/charts/base/invalid-configuration/invalid-configuration.component.html
+++ 
b/ui/src/app/data-explorer-shared/components/charts/base/invalid-configuration/invalid-configuration.component.html
@@ -27,11 +27,13 @@
     </div>
     <div fxLayout="column" fxLayoutAlign="center center">
         <div class="default-text">
-            Invalid configuration for {{ widgetTypeLabel }}
+            {{ 'Invalid configuration for' | translate }} {{ widgetTypeLabel }}
         </div>
         <div class="default-text date-range-text">
-            This chart is missing required fields - choose another chart type 
or
-            add additional fields.
+            {{
+                'This chart is missing required fields - choose another chart 
type or add additional fields.'
+                    | translate
+            }}
         </div>
     </div>
 </div>
diff --git 
a/ui/src/app/data-explorer-shared/components/charts/base/no-data/no-data-in-date-range.component.html
 
b/ui/src/app/data-explorer-shared/components/charts/base/no-data/no-data-in-date-range.component.html
index b053ba3187..24d96a8b9d 100644
--- 
a/ui/src/app/data-explorer-shared/components/charts/base/no-data/no-data-in-date-range.component.html
+++ 
b/ui/src/app/data-explorer-shared/components/charts/base/no-data/no-data-in-date-range.component.html
@@ -26,7 +26,9 @@
         <i class="material-icons warning-icon">warning</i>
     </div>
     <div fxLayout="column" fxLayoutAlign="center center">
-        <div class="default-text">Found no data in selected time range</div>
+        <div class="default-text">
+            {{ 'Found no data in selected time range' | translate }}
+        </div>
         <div class="default-text date-range-text">
             {{ viewDateRange.startTime | date: 'MM/dd/yyyy HH:mm' }} -
             {{ viewDateRange.endTime | date: 'MM/dd/yyyy HH:mm' }}
diff --git 
a/ui/src/app/data-explorer-shared/components/charts/base/too-much-data/too-much-data.component.html
 
b/ui/src/app/data-explorer-shared/components/charts/base/too-much-data/too-much-data.component.html
index e5aa24570d..d70cc400ba 100644
--- 
a/ui/src/app/data-explorer-shared/components/charts/base/too-much-data/too-much-data.component.html
+++ 
b/ui/src/app/data-explorer-shared/components/charts/base/too-much-data/too-much-data.component.html
@@ -18,7 +18,7 @@
 <div fxLayout="column" fxLayoutAlign="center center" fxFlex="100">
     <div fxLayout="row" fxLayoutAlign="center center">
         <i class="material-icons" style="margin-top: 8px">warning</i>
-        <h2>&nbsp;Warning</h2>
+        <h2>&nbsp;{{ 'Warning' | translate }}</h2>
     </div>
     <div
         fxLayout="column"
@@ -26,11 +26,14 @@
         style="margin-top: 10px"
     >
         <div class="default-text">
-            This widget tries to load too much data (#Events:
+            {{ 'This chart tries to load too much data (#Events:' | translate 
}}
             {{ amountOfEvents }})
         </div>
         <div class="default-text date-range-text">
-            Please change the widget settings or decrease the time range
+            {{
+                'Please change the chart settings or decrease the time range'
+                    | translate
+            }}
         </div>
 
         <button
@@ -39,10 +42,10 @@
             style="margin-top: 30px"
             (click)="loadDataWithTooManyEvents()"
         >
-            <label>Load anyway</label>
+            <label>{{ 'Load anyway' | translate }}</label>
         </button>
         <div class="default-text warning-text">
-            (This might crash the browser)
+            {{ '(This might crash the browser)' | translate }}
         </div>
     </div>
 </div>
diff --git 
a/ui/src/app/data-explorer-shared/components/charts/correlation-chart/config/correlation-chart-widget-config.component.html
 
b/ui/src/app/data-explorer-shared/components/charts/correlation-chart/config/correlation-chart-widget-config.component.html
index efc25816b8..3e2cfd7ff4 100644
--- 
a/ui/src/app/data-explorer-shared/components/charts/correlation-chart/config/correlation-chart-widget-config.component.html
+++ 
b/ui/src/app/data-explorer-shared/components/charts/correlation-chart/config/correlation-chart-widget-config.component.html
@@ -21,7 +21,7 @@
         currentlyConfiguredWidget.visualizationConfig.configurationValid
     "
 >
-    <sp-configuration-box title="Fields">
+    <sp-configuration-box [title]="'Fields' | translate">
         <div fxLayout="column" fxLayoutGap="10px">
             <div
                 fxLayout="row"
@@ -29,7 +29,7 @@
                 fxLayoutGap="10px"
                 fxLayoutAlign="start center"
             >
-                <small>X</small>
+                <small>{{ 'X' | translate }}</small>
                 <sp-select-single-property-config
                     fxFlex
                     [availableProperties]="fieldProvider.numericFields"
@@ -46,7 +46,7 @@
                 fxLayoutGap="10px"
                 fxLayoutAlign="start center"
             >
-                <small>Y</small>
+                <small>{{ 'Y' | translate }}</small>
                 <sp-select-single-property-config
                     fxFlex
                     [availableProperties]="fieldProvider.numericFields"
diff --git 
a/ui/src/app/data-explorer-shared/components/charts/gauge/config/gauge-widget-config.component.html
 
b/ui/src/app/data-explorer-shared/components/charts/gauge/config/gauge-widget-config.component.html
index 69bcf7b86b..5a7c10e2ab 100644
--- 
a/ui/src/app/data-explorer-shared/components/charts/gauge/config/gauge-widget-config.component.html
+++ 
b/ui/src/app/data-explorer-shared/components/charts/gauge/config/gauge-widget-config.component.html
@@ -21,7 +21,7 @@
         currentlyConfiguredWidget.visualizationConfig.configurationValid
     "
 >
-    <sp-configuration-box title="Field">
+    <sp-configuration-box [title]="'Field' | translate">
         <sp-select-single-property-config
             [availableProperties]="fieldProvider.numericFields"
             [selectedProperty]="
@@ -32,7 +32,7 @@
         </sp-select-single-property-config>
     </sp-configuration-box>
     <sp-configuration-box
-        title="Settings"
+        [title]="'Settings' | translate"
         *ngIf="
             currentlyConfiguredWidget.visualizationConfig.selectedProperty
                 ?.fieldCharacteristics.numeric
@@ -40,7 +40,7 @@
     >
         <div fxLayout="column">
             <div fxFlex fxLayoutAlign="start center" class="ml-10 mb-10">
-                <small>Min</small>
+                <small>{{ 'Min' | translate }}</small>
                 <span fxFlex></span>
                 <mat-form-field appearance="outline" color="accent" 
fxFlex="30">
                     <input
@@ -54,7 +54,7 @@
                 </mat-form-field>
             </div>
             <div fxFlex fxLayoutAlign="start center" class="ml-10 mb-10">
-                <small>Max</small>
+                <small>{{ 'Max' | translate }}</small>
                 <span fxFlex></span>
                 <mat-form-field appearance="outline" color="accent" 
fxFlex="30">
                     <input
diff --git 
a/ui/src/app/data-explorer-shared/components/charts/heatmap/config/heatmap-widget-config.component.html
 
b/ui/src/app/data-explorer-shared/components/charts/heatmap/config/heatmap-widget-config.component.html
index 0f05fe2fdc..0a1f9182d7 100644
--- 
a/ui/src/app/data-explorer-shared/components/charts/heatmap/config/heatmap-widget-config.component.html
+++ 
b/ui/src/app/data-explorer-shared/components/charts/heatmap/config/heatmap-widget-config.component.html
@@ -21,7 +21,7 @@
         currentlyConfiguredWidget.visualizationConfig.configurationValid
     "
 >
-    <sp-configuration-box title="Field">
+    <sp-configuration-box [title]="'Field' | translate">
         <sp-select-single-property-config
             [availableProperties]="fieldProvider.numericFields"
             [selectedProperty]="
@@ -32,13 +32,13 @@
         >
         </sp-select-single-property-config>
     </sp-configuration-box>
-    <sp-configuration-box title="Settings">
+    <sp-configuration-box [title]="'Settings' | translate">
         <mat-checkbox
             [(ngModel)]="
                 
currentlyConfiguredWidget.visualizationConfig.showLabelsProperty
             "
             (change)="setShowLabelsProperty($event)"
-            >Show values as labels
+            >{{ 'Show values as labels' | translate }}
         </mat-checkbox>
     </sp-configuration-box>
 </sp-visualization-config-outer>
diff --git 
a/ui/src/app/data-explorer-shared/components/charts/histogram/config/histogram-chart-widget-config.component.html
 
b/ui/src/app/data-explorer-shared/components/charts/histogram/config/histogram-chart-widget-config.component.html
index 10cd2fed77..f453ad1870 100644
--- 
a/ui/src/app/data-explorer-shared/components/charts/histogram/config/histogram-chart-widget-config.component.html
+++ 
b/ui/src/app/data-explorer-shared/components/charts/histogram/config/histogram-chart-widget-config.component.html
@@ -21,7 +21,7 @@
         currentlyConfiguredWidget.visualizationConfig.configurationValid
     "
 >
-    <sp-configuration-box title="Field">
+    <sp-configuration-box [title]="'Field' | translate">
         <sp-select-single-property-config
             [availableProperties]="fieldProvider.allFields"
             [selectedProperty]="
@@ -31,7 +31,7 @@
         >
         </sp-select-single-property-config>
     </sp-configuration-box>
-    <sp-configuration-box title="Settings">
+    <sp-configuration-box [title]="'Settings' | translate">
         <div fxLayoutGap="10px" fxLayout="column">
             <mat-checkbox
                 [(ngModel)]="
@@ -39,7 +39,7 @@
                 "
                 (change)="triggerViewRefresh()"
             >
-                Auto-compute number of bins
+                {{ 'Auto-compute number of bins' | translate }}
             </mat-checkbox>
             <mat-form-field
                 fxFlex="100"
@@ -47,7 +47,9 @@
                 appearance="outline"
                 *ngIf="!currentlyConfiguredWidget.visualizationConfig.autoBin"
             >
-                <mat-label><span>Number of bins</span></mat-label>
+                <mat-label
+                    ><span>{{ 'Number of bins' | translate }}</span></mat-label
+                >
                 <input
                     [(ngModel)]="
                         currentlyConfiguredWidget.visualizationConfig
@@ -63,7 +65,7 @@
                 "
                 (change)="triggerViewRefresh()"
             >
-                All values
+                {{ 'All values' | translate }}
             </mat-checkbox>
             <mat-form-field
                 fxFlex="100"
@@ -73,7 +75,9 @@
                     !currentlyConfiguredWidget.visualizationConfig.autoDomain
                 "
             >
-                <mat-label><span>Minimum value</span></mat-label>
+                <mat-label
+                    ><span>{{ 'Minimum value' | translate }}</span></mat-label
+                >
                 <input
                     [(ngModel)]="
                         currentlyConfiguredWidget.visualizationConfig.domainMin
@@ -90,7 +94,9 @@
                     !currentlyConfiguredWidget.visualizationConfig.autoDomain
                 "
             >
-                <mat-label><span>Maximum value</span></mat-label>
+                <mat-label
+                    ><span>{{ 'Maximum value' | translate }}</span></mat-label
+                >
                 <input
                     [(ngModel)]="
                         currentlyConfiguredWidget.visualizationConfig.domainMax
diff --git 
a/ui/src/app/data-explorer-shared/components/charts/image/config/image-widget-config.component.html
 
b/ui/src/app/data-explorer-shared/components/charts/image/config/image-widget-config.component.html
index 220a1e1137..7fda73a695 100644
--- 
a/ui/src/app/data-explorer-shared/components/charts/image/config/image-widget-config.component.html
+++ 
b/ui/src/app/data-explorer-shared/components/charts/image/config/image-widget-config.component.html
@@ -21,7 +21,7 @@
         currentlyConfiguredWidget.visualizationConfig.configurationValid
     "
 >
-    <sp-configuration-box title="Field">
+    <sp-configuration-box [title]="'Field' | translate">
         <sp-select-single-property-config
             [availableProperties]="imageFields"
             [selectedProperty]="
diff --git 
a/ui/src/app/data-explorer-shared/components/charts/indicator/config/indicator-chart-widget-config.component.html
 
b/ui/src/app/data-explorer-shared/components/charts/indicator/config/indicator-chart-widget-config.component.html
index 5dfe471a05..8f3e449f19 100644
--- 
a/ui/src/app/data-explorer-shared/components/charts/indicator/config/indicator-chart-widget-config.component.html
+++ 
b/ui/src/app/data-explorer-shared/components/charts/indicator/config/indicator-chart-widget-config.component.html
@@ -21,7 +21,7 @@
         currentlyConfiguredWidget.visualizationConfig.configurationValid
     "
 >
-    <sp-configuration-box title="Field">
+    <sp-configuration-box [title]="'Field' | translate">
         <sp-select-single-property-config
             [availableProperties]="fieldProvider.allFields"
             [selectedProperty]="
@@ -31,14 +31,14 @@
         >
         </sp-select-single-property-config>
     </sp-configuration-box>
-    <sp-configuration-box title="Settings">
+    <sp-configuration-box [title]="'Settings' | translate">
         <mat-checkbox
             data-cy="data-explorer-select-delta-checkbox"
             (change)="updateDelta($event)"
             [(ngModel)]="
                 currentlyConfiguredWidget.visualizationConfig.showDelta
             "
-            >Show delta indicator
+            >{{ 'Show delta indicator' | translate }}
         </mat-checkbox>
     </sp-configuration-box>
 </sp-visualization-config-outer>
diff --git 
a/ui/src/app/data-explorer-shared/components/charts/map/config/map-widget-config.component.html
 
b/ui/src/app/data-explorer-shared/components/charts/map/config/map-widget-config.component.html
index d310c414e6..58063ae49f 100644
--- 
a/ui/src/app/data-explorer-shared/components/charts/map/config/map-widget-config.component.html
+++ 
b/ui/src/app/data-explorer-shared/components/charts/map/config/map-widget-config.component.html
@@ -22,7 +22,7 @@
     "
 >
     <div fxLayout="column">
-        <sp-configuration-box title="Fields">
+        <sp-configuration-box [title]="'Fields' | translate">
             <div fxLayout="column" fxLayoutGap="10px">
                 <div
                     fxLayout="row"
@@ -30,7 +30,7 @@
                     fxLayoutGap="10px"
                     fxLayoutAlign="start center"
                 >
-                    <small fxFlex="30">Latitude</small>
+                    <small fxFlex="30">{{ 'Latitude' | translate }}</small>
                     <sp-select-single-property-config
                         fxFlex
                         [availableProperties]="fieldProvider.numericFields"
@@ -51,7 +51,7 @@
                     fxLayoutGap="10px"
                     fxLayoutAlign="start center"
                 >
-                    <small fxFlex="30">Longitude</small>
+                    <small fxFlex="30">{{ 'Longitude' | translate }}</small>
                     <sp-select-single-property-config
                         fxFlex
                         [availableProperties]="fieldProvider.numericFields"
@@ -68,7 +68,7 @@
                 </div>
             </div>
         </sp-configuration-box>
-        <sp-configuration-box title="Settings">
+        <sp-configuration-box [title]="'Settings' | translate">
             <div fxLayout="column" fxLayoutGap="10px">
                 <div
                     fxLayout="row"
@@ -76,7 +76,7 @@
                     fxLayoutAlign="start center"
                     fxFlex="100"
                 >
-                    <small fxFlex="30">Map Zoom</small>
+                    <small fxFlex="30">{{ 'Map Zoom' | translate }}</small>
                     <mat-form-field color="accent" appearance="outline" fxFlex>
                         <mat-label> <span>enter zoom value</span></mat-label>
                         <input
@@ -102,7 +102,7 @@
                                 .useLastEventCoordinates
                         "
                         (change)="setUseLastEventCoordinations($event)"
-                        >Focus map on last event
+                        >{{ 'Focus map on last event' | translate }}
                     </mat-checkbox>
                 </div>
 
@@ -112,7 +112,9 @@
                     fxLayoutAlign="start center"
                     fxFlex="100"
                 >
-                    <small fxFlex="30">Marker or Trace</small>
+                    <small fxFlex="30">{{
+                        'Marker or Trace' | translate
+                    }}</small>
                     <mat-form-field color="accent" appearance="outline" fxFlex>
                         <!-- <mat-label>Marker or Trace</mat-label> -->
                         <mat-select
@@ -123,8 +125,12 @@
                             (selectionChange)="triggerViewRefresh()"
                             data-cy="data-view-map-select-marker-or-trace"
                         >
-                            <mat-option [value]="'marker'">Marker</mat-option>
-                            <mat-option [value]="'trace'">Trace</mat-option>
+                            <mat-option [value]="'marker'">{{
+                                'Marker' | translate
+                            }}</mat-option>
+                            <mat-option [value]="'trace'">{{
+                                'Trace' | translate
+                            }}</mat-option>
                         </mat-select>
                     </mat-form-field>
                 </div>
@@ -139,7 +145,7 @@
                             .selectedMarkerOrTrace === 'marker'
                     "
                 >
-                    <small fxFlex="30">Marker Type</small>
+                    <small fxFlex="30">{{ 'Marker Type' | translate }}</small>
                     <mat-form-field fxFlex color="accent" appearance="outline">
                         <mat-select
                             [(value)]="
@@ -148,8 +154,12 @@
                             "
                             (selectionChange)="triggerViewRefresh()"
                         >
-                            <mat-option [value]="'pin'">Pin</mat-option>
-                            <mat-option [value]="'car'">Car</mat-option>
+                            <mat-option [value]="'pin'">{{
+                                'Pin' | translate
+                            }}</mat-option>
+                            <mat-option [value]="'car'">{{
+                                'Car' | translate
+                            }}</mat-option>
                         </mat-select>
                     </mat-form-field>
                 </div>
@@ -157,8 +167,8 @@
         </sp-configuration-box>
 
         <sp-select-properties-config
-            title="Tooltip"
-            label="Tooltip Content"
+            [title]="'Tooltip' | translate"
+            [label]="'Tooltip Content' | translate"
             multiple="true"
             (changeSelectedProperties)="setSelectedToolTipContent($event)"
             [availableProperties]="fieldProvider.allFields"
diff --git 
a/ui/src/app/data-explorer-shared/components/charts/pie/config/pie-chart-widget-config.component.html
 
b/ui/src/app/data-explorer-shared/components/charts/pie/config/pie-chart-widget-config.component.html
index 35df275c26..f0fa2e4eef 100644
--- 
a/ui/src/app/data-explorer-shared/components/charts/pie/config/pie-chart-widget-config.component.html
+++ 
b/ui/src/app/data-explorer-shared/components/charts/pie/config/pie-chart-widget-config.component.html
@@ -21,7 +21,7 @@
         currentlyConfiguredWidget.visualizationConfig.configurationValid
     "
 >
-    <sp-configuration-box title="Field">
+    <sp-configuration-box [title]="'Field' | translate">
         <sp-select-single-property-config
             [availableProperties]="fieldProvider.allFields"
             [selectedProperty]="
@@ -32,7 +32,7 @@
         </sp-select-single-property-config>
     </sp-configuration-box>
 
-    <sp-configuration-box title="Settings">
+    <sp-configuration-box [title]="'Settings' | translate">
         <div fxLayout="column" fxLayoutGap="10px">
             <div
                 fxFlex="100"
@@ -44,7 +44,7 @@
                         .selectedProperty?.fieldCharacteristics.numeric
                 "
             >
-                <small>Rounding</small>
+                <small>{{ 'Rounding' | translate }}</small>
                 <mat-form-field
                     appearance="outline"
                     class="marginColorField"
@@ -73,7 +73,7 @@
                 fxLayoutAlign="start center"
                 fxLayoutGap="10px"
             >
-                <small>Inner Radius</small>
+                <small>{{ 'Inner Radius' | translate }}</small>
                 <mat-slider min="0" max="80" step="1" fxFlex="65">
                     <input
                         matSliderThumb
@@ -103,7 +103,7 @@
                     (ngModelChange)="showCustomColorMapping($event)"
                 >
                 </mat-checkbox>
-                <small>Add custom color mapping</small>
+                <small>{{ 'Add custom color mapping' | translate }}</small>
             </div>
 
             <div
@@ -114,7 +114,7 @@
             >
                 <button mat-raised-button color="accent" 
(click)="addMapping()">
                     <i class="material-icons">add</i
-                    ><span>&nbsp;Add Mapping</span>
+                    ><span>&nbsp;{{ 'Add Mapping' | translate }}</span>
                 </button>
             </div>
 
@@ -143,7 +143,7 @@
                                 color="accent"
                                 appearance="outline"
                             >
-                                <mat-label>Value</mat-label>
+                                <mat-label>{{ 'Value' | translate 
}}</mat-label>
                                 <input
                                     matInput
                                     [(ngModel)]="mapping.value"
@@ -169,7 +169,7 @@
                         <div fxLayoutAlign="end center">
                             <button
                                 mat-icon-button
-                                matTooltip="Remove Mapping"
+                                [matTooltip]="'Remove Mapping' | translate"
                                 color="accent"
                                 (click)="removeMapping(i)"
                             >
diff --git 
a/ui/src/app/data-explorer-shared/components/charts/status/config/status-widget-config.component.html
 
b/ui/src/app/data-explorer-shared/components/charts/status/config/status-widget-config.component.html
index 8102a7ac42..25d57bef3c 100644
--- 
a/ui/src/app/data-explorer-shared/components/charts/status/config/status-widget-config.component.html
+++ 
b/ui/src/app/data-explorer-shared/components/charts/status/config/status-widget-config.component.html
@@ -21,7 +21,7 @@
         currentlyConfiguredWidget.visualizationConfig.configurationValid
     "
 >
-    <sp-configuration-box title="Settings">
+    <sp-configuration-box [title]="'Settings' | translate">
         <div fxLayout="column" fxLayoutGap="10px">
             <div
                 fxLayout="row"
@@ -29,7 +29,7 @@
                 fxLayoutAlign="start center"
                 fxFlex="100"
             >
-                <small fxFlex="30">Select Value Type</small>
+                <small fxFlex="30">{{ 'Select Value Type' | translate 
}}</small>
                 <mat-radio-group
                     [(ngModel)]="
                         currentlyConfiguredWidget.visualizationConfig
@@ -37,12 +37,12 @@
                     "
                     (change)="selectDataType($event.source.value)"
                 >
-                    <mat-radio-button [value]="'number'"
-                        >Numeric Value</mat-radio-button
-                    >
-                    <mat-radio-button [value]="'boolean'"
-                        >Boolean Value</mat-radio-button
-                    >
+                    <mat-radio-button [value]="'number'">{{
+                        'Numeric Value' | translate
+                    }}</mat-radio-button>
+                    <mat-radio-button [value]="'boolean'">{{
+                        'Boolean Value' | translate
+                    }}</mat-radio-button>
                 </mat-radio-group>
             </div>
 
@@ -62,9 +62,12 @@
                 >
                     <small
                         fxFlex="30"
-                        matTooltip="Interval in seconds in which an event must 
arrive"
+                        [matTooltip]="
+                            'Interval in seconds in which an event must arrive'
+                                | translate
+                        "
                         matTooltipPosition="above"
-                        >Interval [sec]</small
+                        >{{ 'Interval [sec]' | translate }}</small
                     >
                     <mat-form-field color="accent" appearance="outline" fxFlex>
                         <input
@@ -85,7 +88,7 @@
                     fxLayoutAlign="start center"
                     fxFlex="100"
                 >
-                    <small>Show Last Seen Timestamp</small>
+                    <small>{{ 'Show Last Seen Timestamp' | translate }}</small>
                     <mat-checkbox
                         color="accent"
                         [(ngModel)]="
@@ -112,7 +115,7 @@
                     fxLayoutAlign="start center"
                     fxFlex="100"
                 >
-                    <small fxFlex="30">Field</small>
+                    <small fxFlex="30">{{ 'Field' | translate }}</small>
                     <sp-select-single-property-config
                         [availableProperties]="fieldProvider.booleanFields"
                         [selectedProperty]="
@@ -132,7 +135,9 @@
                     fxLayoutAlign="start center"
                     fxFlex="100"
                 >
-                    <small fxFlex="30">Select Mapping</small>
+                    <small fxFlex="30">{{
+                        'Select Mapping' | translate
+                    }}</small>
                     <mat-radio-group
                         [(ngModel)]="
                             currentlyConfiguredWidget.visualizationConfig
@@ -141,14 +146,18 @@
                         (change)="selectMappingGreenTrue($event.source.value)"
                     >
                         <mat-radio-button [value]="true">
-                            <span class="color-box green-box"></span> True
+                            <span class="color-box green-box"></span>
+                            {{ 'True' | translate }}
                             <span class="spacing"></span>
-                            <span class="color-box red-box"></span> False
+                            <span class="color-box red-box"></span>
+                            {{ 'False' | translate }}
                         </mat-radio-button>
                         <mat-radio-button [value]="false">
-                            <span class="color-box red-box"></span> True
+                            <span class="color-box red-box"></span>
+                            {{ 'True' | translate }}
                             <span class="spacing"></span>
-                            <span class="color-box green-box"></span> False
+                            <span class="color-box green-box"></span>
+                            {{ 'False' | translate }}
                         </mat-radio-button>
                     </mat-radio-group>
                 </div>
diff --git 
a/ui/src/app/data-explorer-shared/components/charts/status/status-widget.component.html
 
b/ui/src/app/data-explorer-shared/components/charts/status/status-widget.component.html
index ad01626a9f..85ee363cd9 100644
--- 
a/ui/src/app/data-explorer-shared/components/charts/status/status-widget.component.html
+++ 
b/ui/src/app/data-explorer-shared/components/charts/status/status-widget.component.html
@@ -55,6 +55,8 @@
         </div>
     </div>
     <div *ngIf="selectedDataType === 'number' && showLastSeen">
-        <h5>Last seen: {{ lastTimestamp | date: 'short' }}</h5>
+        <h5>
+            {{ 'Last seen:' | translate }} {{ lastTimestamp | date: 'short' }}
+        </h5>
     </div>
 </div>
diff --git 
a/ui/src/app/data-explorer-shared/components/charts/table/config/table-widget-config.component.html
 
b/ui/src/app/data-explorer-shared/components/charts/table/config/table-widget-config.component.html
index 25c265350b..fcf23dd30b 100644
--- 
a/ui/src/app/data-explorer-shared/components/charts/table/config/table-widget-config.component.html
+++ 
b/ui/src/app/data-explorer-shared/components/charts/table/config/table-widget-config.component.html
@@ -22,7 +22,7 @@
     "
 >
     <sp-select-properties-config
-        label="Select Fields"
+        [label]="'Select Fields' | translate"
         multiple="true"
         (changeSelectedProperties)="setSelectedColumn($event)"
         [availableProperties]="fieldProvider.allFields"
@@ -31,9 +31,9 @@
         "
     >
     </sp-select-properties-config>
-    <sp-configuration-box title="Search" marginTop="5px">
+    <sp-configuration-box [title]="'Search' | translate" marginTop="5px">
         <mat-form-field appearance="outline" fxFlex="100" color="accent">
-            <mat-label>Filter</mat-label>
+            <mat-label>{{ 'Filter' | translate }}</mat-label>
             <input
                 [(ngModel)]="
                     currentlyConfiguredWidget.visualizationConfig.searchValue
diff --git 
a/ui/src/app/data-explorer-shared/components/charts/table/table-widget.component.html
 
b/ui/src/app/data-explorer-shared/components/charts/table/table-widget.component.html
index 51ee888d4a..73681ff0ad 100644
--- 
a/ui/src/app/data-explorer-shared/components/charts/table/table-widget.component.html
+++ 
b/ui/src/app/data-explorer-shared/components/charts/table/table-widget.component.html
@@ -64,7 +64,9 @@
                                 .textColor
                         }"
                     >
-                        <label class="column-header">Timestamp</label>
+                        <label class="column-header">{{
+                            'Time' | translate
+                        }}</label>
                     </th>
                     <td
                         mat-cell
diff --git 
a/ui/src/app/data-explorer-shared/components/charts/time-series-chart/config/time-series-chart-widget-config.component.html
 
b/ui/src/app/data-explorer-shared/components/charts/time-series-chart/config/time-series-chart-widget-config.component.html
index 87105646e9..59db333f6a 100644
--- 
a/ui/src/app/data-explorer-shared/components/charts/time-series-chart/config/time-series-chart-widget-config.component.html
+++ 
b/ui/src/app/data-explorer-shared/components/charts/time-series-chart/config/time-series-chart-widget-config.component.html
@@ -32,10 +32,10 @@
     >
     </sp-select-color-properties-config>
 
-    <sp-configuration-box title="Axes" marginTop="5px">
+    <sp-configuration-box [title]="'Axes' | translate" marginTop="5px">
         <sp-select-axis-options-config
             (viewRefreshEmitter)="triggerViewRefresh()"
-            title="left axis"
+            [title]="'left axis' | translate"
             [axisConfig]="
                 currentlyConfiguredWidget.visualizationConfig.leftAxis
             "
@@ -44,7 +44,7 @@
 
         <sp-select-axis-options-config
             (viewRefreshEmitter)="triggerViewRefresh()"
-            title="right axis"
+            [title]="'right axis' | translate"
             [axisConfig]="
                 currentlyConfiguredWidget.visualizationConfig.rightAxis
             "
@@ -52,13 +52,13 @@
         </sp-select-axis-options-config>
     </sp-configuration-box>
 
-    <sp-configuration-box title="Axis Pointer">
+    <sp-configuration-box [title]="'Axis Pointer' | translate">
         <mat-checkbox
             [(ngModel)]="
                 currentlyConfiguredWidget.visualizationConfig.showSpike
             "
             (change)="setShowSpikeProperty($event)"
-            >Enable
+            >{{ 'Enable' | translate }}
         </mat-checkbox>
     </sp-configuration-box>
 </sp-visualization-config-outer>
diff --git 
a/ui/src/app/data-explorer-shared/components/charts/traffic-light/config/traffic-light-widget-config.component.html
 
b/ui/src/app/data-explorer-shared/components/charts/traffic-light/config/traffic-light-widget-config.component.html
index d0a061df0e..554f391c90 100644
--- 
a/ui/src/app/data-explorer-shared/components/charts/traffic-light/config/traffic-light-widget-config.component.html
+++ 
b/ui/src/app/data-explorer-shared/components/charts/traffic-light/config/traffic-light-widget-config.component.html
@@ -21,7 +21,7 @@
         currentlyConfiguredWidget.visualizationConfig.configurationValid
     "
 >
-    <sp-configuration-box title="Field">
+    <sp-configuration-box [title]="'Field' | translate">
         <sp-select-single-property-config
             [availableProperties]="fieldProvider.numericFields"
             [selectedProperty]="
@@ -33,7 +33,7 @@
         </sp-select-single-property-config>
     </sp-configuration-box>
 
-    <sp-configuration-box title="Settings">
+    <sp-configuration-box [title]="'Settings' | translate">
         <div fxLayout="column" fxLayoutGap="10px">
             <div
                 fxLayout="row"
@@ -41,7 +41,7 @@
                 fxLayoutAlign="start center"
                 fxFlex="100"
             >
-                <small fxFlex="30">Threshold</small>
+                <small fxFlex="30">{{ 'Threshold' | translate }}</small>
                 <mat-form-field color="accent" appearance="outline" fxFlex>
                     <input
                         type="text"
@@ -63,7 +63,9 @@
                 fxLayoutAlign="start center"
                 fxFlex="100"
             >
-                <small fxFlex="30">With Threshold being</small>
+                <small fxFlex="30">{{
+                    'With Threshold being' | translate
+                }}</small>
                 <mat-radio-group
                     [(ngModel)]="
                         currentlyConfiguredWidget.visualizationConfig
@@ -71,12 +73,12 @@
                     "
                     (change)="selectUpperLimit($event.source.value)"
                 >
-                    <mat-radio-button [value]="true"
-                        >Upper Limit</mat-radio-button
-                    >
-                    <mat-radio-button [value]="false"
-                        >Lower Limit</mat-radio-button
-                    >
+                    <mat-radio-button [value]="true">{{
+                        'Upper Limit' | translate
+                    }}</mat-radio-button>
+                    <mat-radio-button [value]="false">{{
+                        'Lower Limit' | translate
+                    }}</mat-radio-button>
                 </mat-radio-group>
             </div>
 
@@ -86,7 +88,7 @@
                 fxLayoutAlign="start center"
                 fxFlex="100"
             >
-                <small fxFlex="30">Warning Range (%)</small>
+                <small fxFlex="30">{{ 'Warning Range (%)' | translate 
}}</small>
                 <mat-form-field color="accent" appearance="outline" fxFlex>
                     <input
                         [(ngModel)]="
@@ -114,7 +116,7 @@
                 fxFlex="100"
                 class="checkbox-container"
             >
-                <small>Show Value in Traffic Light</small>
+                <small>{{ 'Show Value in Traffic Light' | translate }}</small>
                 <mat-checkbox
                     color="accent"
                     [(ngModel)]="
diff --git 
a/ui/src/app/data-explorer-shared/components/charts/traffic-light/config/traffic-light-widget-config.component.ts
 
b/ui/src/app/data-explorer-shared/components/charts/traffic-light/config/traffic-light-widget-config.component.ts
index 7cde8a65f3..4797d2d430 100644
--- 
a/ui/src/app/data-explorer-shared/components/charts/traffic-light/config/traffic-light-widget-config.component.ts
+++ 
b/ui/src/app/data-explorer-shared/components/charts/traffic-light/config/traffic-light-widget-config.component.ts
@@ -16,7 +16,7 @@
  *
  */
 
-import { Component } from '@angular/core';
+import { Component, inject } from '@angular/core';
 import { BaseWidgetConfig } from '../../base/base-widget-config';
 import { ChartConfigurationService } from 
'../../../../services/chart-configuration.service';
 import {
@@ -25,6 +25,7 @@ import {
 } from '../model/traffic-light-widget.model';
 import { DataExplorerFieldProviderService } from 
'../../../../services/data-explorer-field-provider-service';
 import { DataExplorerField } from '@streampipes/platform-services';
+import { TranslateService } from '@ngx-translate/core';
 
 @Component({
     selector: 'sp-data-explorer-traffic-light-widget-config',
@@ -35,6 +36,7 @@ export class TrafficLightWidgetConfigComponent extends 
BaseWidgetConfig<
     TrafficLightWidgetModel,
     TrafficLightVisConfig
 > {
+    translateService: TranslateService = inject(TranslateService);
     constructor(
         widgetConfigurationService: ChartConfigurationService,
         fieldService: DataExplorerFieldProviderService,
@@ -157,7 +159,9 @@ export class TrafficLightWidgetConfigComponent extends 
BaseWidgetConfig<
                 this.currentlyConfiguredWidget.visualizationConfig
                     .selectedWarningRange === 0
             ) {
-                this.warningRangeInterval = 'No Warning Range defined';
+                this.warningRangeInterval = this.translateService.instant(
+                    'No Warning Range defined',
+                );
             } else if (
                 this.currentlyConfiguredWidget.visualizationConfig
                     .selectedUpperLimit
@@ -166,15 +170,15 @@ export class TrafficLightWidgetConfigComponent extends 
BaseWidgetConfig<
                     this.currentlyConfiguredWidget.visualizationConfig
                         .selectedThreshold - rangeValue;
                 this.warningRangeInterval =
-                    'Current Warning Range: ' +
-                    `${lowerBound} to 
${this.currentlyConfiguredWidget.visualizationConfig.selectedThreshold}`;
+                    this.translateService.instant('Current Warning Range: ') +
+                    `${lowerBound} ${this.translateService.instant('to')} 
${this.currentlyConfiguredWidget.visualizationConfig.selectedThreshold}`;
             } else {
                 const upperBound =
                     this.currentlyConfiguredWidget.visualizationConfig
                         .selectedThreshold + rangeValue;
                 this.warningRangeInterval =
-                    'Current Warning Range: ' +
-                    
`${this.currentlyConfiguredWidget.visualizationConfig.selectedThreshold} to 
${upperBound}`;
+                    this.translateService.instant('Current Warning Range: ') +
+                    
`${this.currentlyConfiguredWidget.visualizationConfig.selectedThreshold} 
${this.translateService.instant('to')} ${upperBound}`;
             }
         } else {
             this.warningRangeInterval = '';
diff --git 
a/ui/src/app/data-explorer-shared/components/charts/value-heatmap/config/value-heatmap-chart-widget-config.component.html
 
b/ui/src/app/data-explorer-shared/components/charts/value-heatmap/config/value-heatmap-chart-widget-config.component.html
index 22b299916e..684bd27901 100644
--- 
a/ui/src/app/data-explorer-shared/components/charts/value-heatmap/config/value-heatmap-chart-widget-config.component.html
+++ 
b/ui/src/app/data-explorer-shared/components/charts/value-heatmap/config/value-heatmap-chart-widget-config.component.html
@@ -21,7 +21,7 @@
         currentlyConfiguredWidget.visualizationConfig.configurationValid
     "
 >
-    <sp-configuration-box title="Field" marginTop="5px">
+    <sp-configuration-box [title]="'Field' | translate" marginTop="5px">
         <sp-select-single-property-config
             [availableProperties]="fieldProvider.numericFields"
             [selectedProperty]="
@@ -31,10 +31,12 @@
         >
         </sp-select-single-property-config>
     </sp-configuration-box>
-    <sp-configuration-box title="Settings" marginTop="5px">
+    <sp-configuration-box [title]="'Settings' | translate" marginTop="5px">
         <div class="mt-10">
             <mat-form-field fxFlex="100" color="accent" appearance="outline">
-                <mat-label><span>Resolution</span></mat-label>
+                <mat-label
+                    ><span>{{ 'Resolution' | translate }}</span></mat-label
+                >
                 <input
                     [(ngModel)]="
                         
currentlyConfiguredWidget.visualizationConfig.resolution
diff --git a/ui/src/app/data-explorer-shared/data-explorer-shared.module.ts 
b/ui/src/app/data-explorer-shared/data-explorer-shared.module.ts
index b30d640fa5..fa32f6acd5 100644
--- a/ui/src/app/data-explorer-shared/data-explorer-shared.module.ts
+++ b/ui/src/app/data-explorer-shared/data-explorer-shared.module.ts
@@ -95,6 +95,7 @@ import { SpTimeseriesItemConfigComponent } from 
'./components/chart-config/selec
 import { SpEchartsWidgetAppearanceConfigComponent } from 
'./components/chart-config/echarts-widget-appearance-config/echarts-widget-appearance-config.component';
 import { SpTimeSeriesAppearanceConfigComponent } from 
'./components/charts/time-series-chart/appearance-config/time-series-appearance-config.component';
 import { SpDataZoomConfigComponent } from 
'./components/chart-config/data-zoom-config/data-zoom-config.component';
+import { TranslateModule } from '@ngx-translate/core';
 
 @NgModule({
     imports: [
@@ -140,6 +141,7 @@ import { SpDataZoomConfigComponent } from 
'./components/chart-config/data-zoom-c
         MatChipsModule,
         PlatformServicesModule,
         SharedUiModule,
+        TranslateModule.forChild(),
         NgxEchartsModule.forChild(),
     ],
     declarations: [
diff --git 
a/ui/src/app/data-explorer-shared/registry/data-explorer-chart-registry.ts 
b/ui/src/app/data-explorer-shared/registry/data-explorer-chart-registry.ts
index f8ee00e76d..9a25dc1e19 100644
--- a/ui/src/app/data-explorer-shared/registry/data-explorer-chart-registry.ts
+++ b/ui/src/app/data-explorer-shared/registry/data-explorer-chart-registry.ts
@@ -56,6 +56,7 @@ import { TrafficLightWidgetConfigComponent } from 
'../components/charts/traffic-
 import { TrafficLightWidgetComponent } from 
'../components/charts/traffic-light/traffic-light-widget.component';
 import { StatusWidgetConfigComponent } from 
'../components/charts/status/config/status-widget-config.component';
 import { StatusWidgetComponent } from 
'../components/charts/status/status-widget.component';
+import { TranslateService } from '@ngx-translate/core';
 
 @Injectable({ providedIn: 'root' })
 export class DataExplorerChartRegistry {
@@ -71,11 +72,12 @@ export class DataExplorerChartRegistry {
         private densityRenderer: SpDensityRendererService,
         private indicatorRenderer: SpIndicatorRendererService,
         private timeseriesRenderer: SpTimeseriesRendererService,
+        private translateService: TranslateService,
     ) {
         this.chartTypes = [
             {
                 id: 'gauge',
-                label: 'Gauge',
+                label: this.translateService.instant('Gauge'),
                 widgetAppearanceConfigurationComponent:
                     SpEchartsWidgetAppearanceConfigComponent,
                 widgetConfigurationComponent: GaugeWidgetConfigComponent,
@@ -84,31 +86,31 @@ export class DataExplorerChartRegistry {
             },
             {
                 id: 'table',
-                label: 'Table',
+                label: this.translateService.instant('Table'),
                 widgetConfigurationComponent: TableWidgetConfigComponent,
                 widgetComponent: TableWidgetComponent,
             },
             {
                 id: 'traffic-Light',
-                label: 'Traffic Light',
+                label: this.translateService.instant('Traffic Light'),
                 widgetConfigurationComponent: 
TrafficLightWidgetConfigComponent,
                 widgetComponent: TrafficLightWidgetComponent,
             },
             {
                 id: 'status',
-                label: 'Status',
+                label: this.translateService.instant('Status'),
                 widgetConfigurationComponent: StatusWidgetConfigComponent,
                 widgetComponent: StatusWidgetComponent,
             },
             {
                 id: 'map',
-                label: 'Map',
+                label: this.translateService.instant('Map'),
                 widgetConfigurationComponent: MapWidgetConfigComponent,
                 widgetComponent: MapWidgetComponent,
             },
             {
                 id: 'heatmap',
-                label: 'Time-Series Heatmap',
+                label: this.translateService.instant('Time-Series Heatmap'),
                 widgetAppearanceConfigurationComponent:
                     SpEchartsWidgetAppearanceConfigComponent,
                 widgetConfigurationComponent: HeatmapWidgetConfigComponent,
@@ -117,7 +119,7 @@ export class DataExplorerChartRegistry {
             },
             {
                 id: 'time-series-chart',
-                label: 'Time Series Chart',
+                label: this.translateService.instant('Time Series Chart'),
                 widgetAppearanceConfigurationComponent:
                     SpTimeSeriesAppearanceConfigComponent,
                 widgetConfigurationComponent:
@@ -128,13 +130,13 @@ export class DataExplorerChartRegistry {
             },
             {
                 id: 'image',
-                label: 'Image',
+                label: this.translateService.instant('Image'),
                 widgetConfigurationComponent: ImageWidgetConfigComponent,
                 widgetComponent: ImageWidgetComponent,
             },
             {
                 id: 'indicator-chart',
-                label: 'Indicator',
+                label: this.translateService.instant('Indicator'),
                 widgetAppearanceConfigurationComponent:
                     SpEchartsWidgetAppearanceConfigComponent,
                 widgetConfigurationComponent: IndicatorWidgetConfigComponent,
@@ -144,7 +146,7 @@ export class DataExplorerChartRegistry {
             },
             {
                 id: 'scatter-chart',
-                label: 'Scatter',
+                label: this.translateService.instant('Scatter'),
                 widgetAppearanceConfigurationComponent:
                     SpEchartsWidgetAppearanceConfigComponent,
                 widgetConfigurationComponent: CorrelationWidgetConfigComponent,
@@ -155,7 +157,7 @@ export class DataExplorerChartRegistry {
             },
             {
                 id: 'histogram-chart',
-                label: 'Histogram',
+                label: this.translateService.instant('Histogram'),
                 widgetAppearanceConfigurationComponent:
                     SpEchartsWidgetAppearanceConfigComponent,
                 widgetConfigurationComponent:
@@ -167,7 +169,7 @@ export class DataExplorerChartRegistry {
             },
             {
                 id: 'pie-chart',
-                label: 'Pie',
+                label: this.translateService.instant('Pie'),
                 widgetAppearanceConfigurationComponent:
                     SpEchartsWidgetAppearanceConfigComponent,
                 widgetConfigurationComponent: SpPieChartWidgetConfigComponent,
@@ -176,7 +178,9 @@ export class DataExplorerChartRegistry {
             },
             {
                 id: 'value-heatmap-chart',
-                label: 'Value Distribution Heatmap',
+                label: this.translateService.instant(
+                    'Value Distribution Heatmap',
+                ),
                 widgetAppearanceConfigurationComponent:
                     SpEchartsWidgetAppearanceConfigComponent,
                 widgetConfigurationComponent:
@@ -187,7 +191,7 @@ export class DataExplorerChartRegistry {
             },
             {
                 id: 'density-chart',
-                label: '2D Density Contour',
+                label: this.translateService.instant('2D Density Contour'),
                 widgetAppearanceConfigurationComponent:
                     SpEchartsWidgetAppearanceConfigComponent,
                 widgetConfigurationComponent: CorrelationWidgetConfigComponent,
diff --git 
a/ui/src/app/data-explorer-shared/services/data-explorer-shared.service.ts 
b/ui/src/app/data-explorer-shared/services/data-explorer-shared.service.ts
index ad85f31bf9..b3d77875c7 100644
--- a/ui/src/app/data-explorer-shared/services/data-explorer-shared.service.ts
+++ b/ui/src/app/data-explorer-shared/services/data-explorer-shared.service.ts
@@ -29,15 +29,19 @@ import {
     PanelType,
 } from '@streampipes/shared-ui';
 import { ObjectPermissionDialogComponent } from 
'../../core-ui/object-permission-dialog/object-permission-dialog.component';
+import { TranslateService } from '@ngx-translate/core';
 
 @Injectable({ providedIn: 'root' })
 export class DataExplorerSharedService {
-    constructor(private dialogService: DialogService) {}
+    constructor(
+        private dialogService: DialogService,
+        private translateService: TranslateService,
+    ) {}
 
     openPermissionsDialog(elementId: string, headerTitle: string) {
         return this.dialogService.open(ObjectPermissionDialogComponent, {
             panelType: PanelType.SLIDE_IN_PANEL,
-            title: 'Manage permissions',
+            title: this.translateService.instant('Manage permissions'),
             width: '50vw',
             data: {
                 objectInstanceId: elementId,
@@ -52,7 +56,7 @@ export class DataExplorerSharedService {
     ) {
         this.dialogService.open(DataDownloadDialogComponent, {
             panelType: PanelType.SLIDE_IN_PANEL,
-            title: 'Download data',
+            title: this.translateService.instant('Download data'),
             width: '50vw',
             data: {
                 dataDownloadDialogModel: {

Reply via email to