You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@streampipes.apache.org by ze...@apache.org on 2026/08/25 12:15:31 UTC

(streampipes) branch dev updated: fix(#4847): render localized shortcut help (#4848)

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

tenthe pushed a commit to branch dev
in repository https://gitbox.apache.org/repos/asf/streampipes.git


The following commit(s) were added to refs/heads/dev by this push:
     new 6523d8c8cb fix(#4847): render localized shortcut help (#4848)
6523d8c8cb is described below

commit 6523d8c8cbb2a9378e839c095f3ec4fd4aac0805
Author: Philipp Zehnder <te...@users.noreply.github.com>
AuthorDate: Tue Aug 25 14:15:25 2026 +0200

    fix(#4847): render localized shortcut help (#4848)
---
 ui/deployment/i18n/de.json                         |  16 +++
 ui/deployment/i18n/en.json                         |  16 +++
 ui/deployment/i18n/pl.json                         |  16 +++
 .../components/shortcuts/shortcuts.component.ts    | 132 ++++++++-------------
 4 files changed, 99 insertions(+), 81 deletions(-)

diff --git a/ui/deployment/i18n/de.json b/ui/deployment/i18n/de.json
index c595a21000..ddaa8a20d9 100644
--- a/ui/deployment/i18n/de.json
+++ b/ui/deployment/i18n/de.json
@@ -2,6 +2,11 @@
   " items ": " Einträge",
   " of ": " von ",
   "# Provide OPC UA Node IDs below, one per line.\n# Format: ns=<namespace>;s=<node_id> (e.g., ns=3;s=SampleNodeId)\n": "# Geben Sie unten OPC UA Node-IDs ein, eine pro Zeile.\n# Format: ns=<namespace>;s=<node_id> (z. B. ns=3;s=SampleNodeId)\n",
+  "'Ctrl/Cmd + F' in table widget filter dropdown (charts type -> table)": "'Strg/Cmd + F' im Filter-Dropdown des Tabellen-Widgets (Diagrammtyp -> Tabelle)",
+  "'Ctrl/Cmd + S' in chart/dashboard/pipeline edit view or asset link dialog": "'Strg/Cmd + S' in der Bearbeitungsansicht für Diagramme, Dashboards und Pipelines oder im Dialog für Asset-Verknüpfungen",
+  "'Delete/Backspace' in pipeline editor": "'Entf/Rücktaste' im Pipeline-Editor",
+  "'E' in dashboard/pipeline panel": "'E' im Dashboard- oder Pipeline-Panel",
+  "'Esc' Dialog keyboard behavior": "'Esc' bei geöffneten Dialogen",
   "(This might crash the browser)": "(Dies kann zum Absturz des Browsers führen)",
   "(dynamic options cannot be saved and are hidden)": "(dynamische Optionen können nicht gespeichert werden und sind ausgeblendet)",
   "(if you don't see those pipelines, they are created by other users)": "(wenn Sie diese Pipelines nicht sehen, werden sie von anderen Benutzern erstellt)",
@@ -100,6 +105,7 @@
   "Angle where the gauge arc begins (in degrees).": "Winkel, bei dem der Tacho-Bogen beginnt (in Grad).",
   "Angle where the gauge arc ends (in degrees).": "Winkel, bei dem der Tacho-Bogen endet (in Grad).",
   "Any available service": "Jeder verfügbare Service",
+  "Anywhere": "Überall",
   "App Name": "App Name",
   "Appearance": "Darstellung",
   "Apply": "Anwenden",
@@ -205,6 +211,7 @@
   "Clone dashboard": "Dashboard klonen",
   "Clone options": "Optionen zum Klonen",
   "Close": "Schließen",
+  "Closes shared overlay dialogs/popups.": "Schließt geöffnete Dialoge und Pop-ups.",
   "Code": "Code",
   "Collapse chart selection panel": "Diagrammauswahlbereich einklappen",
   "Collapse preview": "Vorschau einklappen",
@@ -336,6 +343,7 @@
   "Delete user": "Benutzer löschen",
   "Deleted fields": "Gelöschte Felder",
   "Deleted instances of active pipelines or adapters will be redeployed by the health check.": "Gelöschte Instanzen aktiver Pipelines oder Adapter werden durch den Health Check erneut bereitgestellt.",
+  "Deletes the currently hovered pipeline element.": "Löscht das Pipeline-Element unter dem Mauszeiger.",
   "Deleting data...": "Daten löschen...",
   "Deleting pipeline...": "Löschen der Pipeline...",
   "Delimiter": "Trennzeichen",
@@ -415,6 +423,7 @@
   "Enter new alternate ID": "Neue alternative ID eingeben",
   "Enter password": "Passwort eingeben",
   "Enter your mail address and we'll send you a link to restore your password.": "Geben Sie Ihre E-Mail-Adresse ein und wir senden Ihnen einen Link, mit dem Sie Ihr Passwort wiederherstellen können.",
+  "Enters edit mode.": "Aktiviert den Bearbeitungsmodus.",
   "Error": "Fehler",
   "Error Details": "Fehler-Details",
   "Error in line {{rowNumber}}. Value for \"{{property}}\" is not set.": "Fehler in Zeile {{rowNumber}}. Wert für \"{{property}}\" ist nicht gesetzt.",
@@ -474,6 +483,7 @@
   "First row index to append data": "Erster Zeilenindex an denen Daten angehängt werden sollen",
   "Fixed value": "Fester Wert",
   "Focus map on last event": "Karte auf letztes Ereignis fokussieren",
+  "Focuses/selects the filter search input.": "Fokussiert das Suchfeld des Filters.",
   "Font Style": "Schriftstil",
   "For tile server, use placeholders for x, y and z coordinates": "Für Tile-Server Platzhalter für x-, y- und z-Koordinaten verwenden",
   "Force stop": "Stopp erzwingen",
@@ -522,6 +532,7 @@
   "High Color": "Hohe Farbe",
   "High Threshold": "Hoher Schwellenwert",
   "Histogram": "Histogramm",
+  "Home": "Startseite",
   "Host": "Host",
   "Host and Port": "Host und Port",
   "Hour": "Stunde",
@@ -704,6 +715,7 @@
   "Name + Value + Percent": "Name + Wert + Prozent",
   "Name used for the grouped remaining slices.": "Name, der für die gruppierten übrigen Segmente verwendet wird.",
   "Navigate": "navigieren.",
+  "Navigate to {{page}}": "Zu {{page}} navigieren",
   "Nested": "Verschachtelt",
   "Network Error": "Netzwerkfehler",
   "New": "Neu",
@@ -777,6 +789,7 @@
   "Output Topics": "Output-Topics",
   "Output stream": "Ausgabestream",
   "Outside": "Außen",
+  "Outside inputs and dialogs": "Außerhalb von Eingabefeldern und Dialogen",
   "Owner": "Eigentümer",
   "Page": "Seite",
   "Page size": "Seitengröße",
@@ -932,6 +945,7 @@
   "Save in a new data lake": "In einem neuen Data Lake speichern",
   "Save pipeline": "Pipeline speichern",
   "Save template": "Vorlage speichern",
+  "Saves the current state": "Speichert den aktuellen Zustand",
   "Saving metadata": "Metadaten speichern",
   "Saving pipeline": "Pipeline speichern",
   "Saving pipeline modifications": "Änderungen werden gespeichert",
@@ -998,6 +1012,7 @@
   "Show Last Seen Timestamp": "Letzten Zeitstempel anzeigen",
   "Show Pointer": "Zeiger anzeigen",
   "Show Value in Traffic Light": "Wert anzeigen",
+  "Show all keyboard shortcuts": "Alle Tastenkürzel anzeigen",
   "Show as Code": "Code anzeigen",
   "Show asset": "Asset anzeigen",
   "Show delta indicator": "Delta-Indikator anzeigen",
@@ -1161,6 +1176,7 @@
   "To delete a site, please remove the site from all assets": "Um einen Standort zu löschen, entfernen Sie diese bitte aus allen Assets",
   "To delete a site, please remove the site from all assets.": "Um einen Standort zu löschen, entfernen Sie den Standort bitte von allen Assets.",
   "To enable the map view, a map provider needs to be configured. Admins can configure map providers under Settings -> Sites.": "Um die Kartenansicht zu aktivieren, ist ein konfigurierter Kartenanbieter erforderlich. Administratoren können Kartenanbieter unter Einstellungen → Standorte verwalten.",
+  "Toggle sidebar menu": "Seitenleistenmenü ein- oder ausblenden",
   "Tooltip": "Tooltip",
   "Tooltip Content": "Tooltip-Inhalt",
   "Top N": "Top N",
diff --git a/ui/deployment/i18n/en.json b/ui/deployment/i18n/en.json
index e2206f2cda..512f8fc6c0 100644
--- a/ui/deployment/i18n/en.json
+++ b/ui/deployment/i18n/en.json
@@ -2,6 +2,11 @@
   " items ": null,
   " of ": null,
   "# Provide OPC UA Node IDs below, one per line.\n# Format: ns=<namespace>;s=<node_id> (e.g., ns=3;s=SampleNodeId)\n": null,
+  "'Ctrl/Cmd + F' in table widget filter dropdown (charts type -> table)": "'Ctrl/Cmd + F' in table widget filter dropdown (charts type -> table)",
+  "'Ctrl/Cmd + S' in chart/dashboard/pipeline edit view or asset link dialog": "'Ctrl/Cmd + S' in chart/dashboard/pipeline edit view or asset link dialog",
+  "'Delete/Backspace' in pipeline editor": "'Delete/Backspace' in pipeline editor",
+  "'E' in dashboard/pipeline panel": "'E' in dashboard/pipeline panel",
+  "'Esc' Dialog keyboard behavior": "'Esc' Dialog keyboard behavior",
   "(This might crash the browser)": null,
   "(dynamic options cannot be saved and are hidden)": null,
   "(if you don't see those pipelines, they are created by other users)": null,
@@ -100,6 +105,7 @@
   "Angle where the gauge arc begins (in degrees).": null,
   "Angle where the gauge arc ends (in degrees).": null,
   "Any available service": null,
+  "Anywhere": "Anywhere",
   "App Name": null,
   "Appearance": null,
   "Apply": null,
@@ -205,6 +211,7 @@
   "Clone dashboard": null,
   "Clone options": null,
   "Close": null,
+  "Closes shared overlay dialogs/popups.": "Closes shared overlay dialogs/popups.",
   "Code": null,
   "Collapse chart selection panel": null,
   "Collapse preview": null,
@@ -336,6 +343,7 @@
   "Delete user": null,
   "Deleted fields": null,
   "Deleted instances of active pipelines or adapters will be redeployed by the health check.": null,
+  "Deletes the currently hovered pipeline element.": "Deletes the currently hovered pipeline element.",
   "Deleting data...": null,
   "Deleting pipeline...": null,
   "Delimiter": null,
@@ -415,6 +423,7 @@
   "Enter new alternate ID": null,
   "Enter password": null,
   "Enter your mail address and we'll send you a link to restore your password.": null,
+  "Enters edit mode.": "Enters edit mode.",
   "Error": null,
   "Error Details": null,
   "Error in line {{rowNumber}}. Value for \"{{property}}\" is not set.": "Error in line {{rowNumber}}. Value for \"{{property}}\" is not set.",
@@ -474,6 +483,7 @@
   "First row index to append data": null,
   "Fixed value": null,
   "Focus map on last event": null,
+  "Focuses/selects the filter search input.": "Focuses/selects the filter search input.",
   "Font Style": null,
   "For tile server, use placeholders for x, y and z coordinates": null,
   "Force stop": null,
@@ -522,6 +532,7 @@
   "High Color": null,
   "High Threshold": null,
   "Histogram": null,
+  "Home": "Home",
   "Host": null,
   "Host and Port": null,
   "Hour": null,
@@ -704,6 +715,7 @@
   "Name + Value + Percent": null,
   "Name used for the grouped remaining slices.": null,
   "Navigate": null,
+  "Navigate to {{page}}": "Navigate to {{page}}",
   "Nested": null,
   "Network Error": null,
   "New": null,
@@ -777,6 +789,7 @@
   "Output Topics": null,
   "Output stream": null,
   "Outside": null,
+  "Outside inputs and dialogs": "Outside inputs and dialogs",
   "Owner": null,
   "Page": null,
   "Page size": null,
@@ -932,6 +945,7 @@
   "Save in a new data lake": null,
   "Save pipeline": null,
   "Save template": null,
+  "Saves the current state": "Saves the current state",
   "Saving metadata": null,
   "Saving pipeline": null,
   "Saving pipeline modifications": null,
@@ -998,6 +1012,7 @@
   "Show Last Seen Timestamp": null,
   "Show Pointer": null,
   "Show Value in Traffic Light": null,
+  "Show all keyboard shortcuts": "Show all keyboard shortcuts",
   "Show as Code": null,
   "Show asset": null,
   "Show delta indicator": null,
@@ -1161,6 +1176,7 @@
   "To delete a site, please remove the site from all assets": null,
   "To delete a site, please remove the site from all assets.": null,
   "To enable the map view, a map provider needs to be configured. Admins can configure map providers under Settings -> Sites.": null,
+  "Toggle sidebar menu": "Toggle sidebar menu",
   "Tooltip": null,
   "Tooltip Content": null,
   "Top N": null,
diff --git a/ui/deployment/i18n/pl.json b/ui/deployment/i18n/pl.json
index 56d0f38d61..08ec536f12 100644
--- a/ui/deployment/i18n/pl.json
+++ b/ui/deployment/i18n/pl.json
@@ -2,6 +2,11 @@
   " items ": " elementów ",
   " of ": " z ",
   "# Provide OPC UA Node IDs below, one per line.\n# Format: ns=<namespace>;s=<node_id> (e.g., ns=3;s=SampleNodeId)\n": "# Podaj poniżej identyfikatory węzłów OPC UA, po jednym w wierszu.\n# Format: ns=<namespace>;s=<node_id> (np. ns=3;s=SampleNodeId)\n",
+  "'Ctrl/Cmd + F' in table widget filter dropdown (charts type -> table)": "'Ctrl/Cmd + F' na liście filtrów widżetu tabeli (typ wykresu -> tabela)",
+  "'Ctrl/Cmd + S' in chart/dashboard/pipeline edit view or asset link dialog": "'Ctrl/Cmd + S' w widoku edycji wykresu, pulpitu lub strumienia albo w oknie dialogowym łącza zasobu",
+  "'Delete/Backspace' in pipeline editor": "'Delete/Backspace' w edytorze strumienia",
+  "'E' in dashboard/pipeline panel": "'E' w panelu pulpitu lub strumienia",
+  "'Esc' Dialog keyboard behavior": "'Esc' przy otwartych oknach dialogowych",
   "(This might crash the browser)": "(Może to spowodować awarię przeglądarki)",
   "(dynamic options cannot be saved and are hidden)": "(opcje dynamiczne nie mogą być zapisane i są ukryte)",
   "(if you don't see those pipelines, they are created by other users)": "(jeśli nie widzisz tych strumieni, zostały utworzone przez innych użytkowników)",
@@ -100,6 +105,7 @@
   "Angle where the gauge arc begins (in degrees).": "Kąt, pod którym zaczyna się łuk wskaźnika (w stopniach).",
   "Angle where the gauge arc ends (in degrees).": "Kąt, pod którym kończy się łuk wskaźnika (w stopniach).",
   "Any available service": "Dowolna dostępna usługa",
+  "Anywhere": "Wszędzie",
   "App Name": "Nazwa aplikacji",
   "Appearance": "Wygląd",
   "Apply": "Zastosuj",
@@ -205,6 +211,7 @@
   "Clone dashboard": "Sklonuj pulpit",
   "Clone options": "Opcje klonowania",
   "Close": "Zamknij",
+  "Closes shared overlay dialogs/popups.": "Zamyka otwarte okna dialogowe i wyskakujące.",
   "Code": "Kod",
   "Collapse chart selection panel": "Zwiń panel wyboru wykresu",
   "Collapse preview": "Zwiń podgląd",
@@ -336,6 +343,7 @@
   "Delete user": "Usuń użytkownika",
   "Deleted fields": "Usunięte pola",
   "Deleted instances of active pipelines or adapters will be redeployed by the health check.": "Usunięte instancje aktywnych strumieni lub adapterów zostaną ponownie wdrożone przez mechanizm sprawdzania stanu.",
+  "Deletes the currently hovered pipeline element.": "Usuwa element strumienia wskazany kursorem.",
   "Deleting data...": "Usuwanie danych...",
   "Deleting pipeline...": "Usuwanie strumienia...",
   "Delimiter": "Separator",
@@ -415,6 +423,7 @@
   "Enter new alternate ID": "Wprowadź nowe alternatywne ID",
   "Enter password": "Wprowadź hasło",
   "Enter your mail address and we'll send you a link to restore your password.": "Wpisz swój adres e-mail, a wyślemy Ci link do przywrócenia hasła.",
+  "Enters edit mode.": "Włącza tryb edycji.",
   "Error": "Błąd",
   "Error Details": "Szczegóły błędu",
   "Error in line {{rowNumber}}. Value for \"{{property}}\" is not set.": "Błąd w wierszu {{rowNumber}}. Wartość dla \",{{property}}\", nie została ustawiona.",
@@ -474,6 +483,7 @@
   "First row index to append data": "Indeks pierwszego wiersza, do którego dodać dane",
   "Fixed value": "Wartość stała",
   "Focus map on last event": "Skup mapę na ostatnim zdarzeniu",
+  "Focuses/selects the filter search input.": "Ustawia fokus na polu wyszukiwania filtra.",
   "Font Style": "Styl czcionki",
   "For tile server, use placeholders for x, y and z coordinates": "W przypadku serwera kafelków(serwer map cyfrowych) użyj placeholderów dla współrzędnych x, y i z",
   "Force stop": "Wymuś zatrzymanie",
@@ -522,6 +532,7 @@
   "High Color": "Kolor wysoki",
   "High Threshold": "Wysoki próg",
   "Histogram": "Histogram",
+  "Home": "Strona główna",
   "Host": "Host",
   "Host and Port": "Host i port",
   "Hour": "Godzina",
@@ -704,6 +715,7 @@
   "Name + Value + Percent": "Nazwa + Wartość + Procent",
   "Name used for the grouped remaining slices.": "Nazwa używana dla zgrupowanych pozostałych segmentów.",
   "Navigate": "Przejdź",
+  "Navigate to {{page}}": "Przejdź do: {{page}}",
   "Nested": "Zagnieżdżone",
   "Network Error": "Błąd sieci",
   "New": "Nowy",
@@ -777,6 +789,7 @@
   "Output Topics": "Tematy wyjściowe",
   "Output stream": "Strumień wyjściowy",
   "Outside": "Na zewnątrz",
+  "Outside inputs and dialogs": "Poza polami wprowadzania i oknami dialogowymi",
   "Owner": "Właściciel",
   "Page": "Strona",
   "Page size": "Rozmiar strony",
@@ -932,6 +945,7 @@
   "Save in a new data lake": "Zapisz w nowym Data Lake",
   "Save pipeline": "Zapisz strumień",
   "Save template": "Zapisz szablon",
+  "Saves the current state": "Zapisuje bieżący stan",
   "Saving metadata": "Zapisywanie metadanych",
   "Saving pipeline": "Zapisywanie potoku",
   "Saving pipeline modifications": "Zapisywanie zmian w strumieniu",
@@ -998,6 +1012,7 @@
   "Show Last Seen Timestamp": "Pokaż znacznik czasu ostatniego wystąpienia",
   "Show Pointer": "Pokaż wskaźnik",
   "Show Value in Traffic Light": "Pokaż wartość na sygnalizatorze",
+  "Show all keyboard shortcuts": "Pokaż wszystkie skróty klawiaturowe",
   "Show as Code": "Pokaż jako kod",
   "Show asset": "Pokaż zasób",
   "Show delta indicator": "Pokaż wskaźnik zmiany",
@@ -1161,6 +1176,7 @@
   "To delete a site, please remove the site from all assets": "Aby usunąć witrynę, należy usunąć ją ze wszystkich zasobów",
   "To delete a site, please remove the site from all assets.": "Aby usunąć witrynę, należy ją usunąć ze wszystkich zasobów.",
   "To enable the map view, a map provider needs to be configured. Admins can configure map providers under Settings -> Sites.": "Aby włączyć widok mapy, należy skonfigurować dostawcę map. Administratorzy mogą to zrobić w Ustawienia -> Lokalizacje.",
+  "Toggle sidebar menu": "Pokaż lub ukryj menu boczne",
   "Tooltip": "Podpowiedź",
   "Tooltip Content": "Zawartość podpowiedzi",
   "Top N": "Top N",
diff --git a/ui/src/app/help/components/shortcuts/shortcuts.component.ts b/ui/src/app/help/components/shortcuts/shortcuts.component.ts
index 2befdb08f3..d6108c48b3 100644
--- a/ui/src/app/help/components/shortcuts/shortcuts.component.ts
+++ b/ui/src/app/help/components/shortcuts/shortcuts.component.ts
@@ -29,27 +29,6 @@ interface ShortcutDefinition {
     description: string;
 }
 
-const SHORTCUT_TRANSLATION_KEYS = {
-    anywhere: 'Anywhere',
-    title: 'Shortcuts',
-    saveContext:
-        "'Ctrl/Cmd + S' in chart/dashboard/pipeline edit view or asset link dialog",
-    saveDescription: 'Saves the current state',
-    editContext: "'E' in dashboard/pipeline panel",
-    editDescription: 'Enters edit mode.',
-    deleteContext: "'Delete/Backspace' in pipeline editor",
-    deleteDescription: 'Deletes the currently hovered pipeline element.',
-    filterContext:
-        "'Ctrl/Cmd + F' in table widget filter dropdown (charts type -> table)",
-    filterDescription: 'Focuses/selects the filter search input.',
-    escapeContext: "'Esc' Dialog keyboard behavior",
-    escapeDescription: 'Closes shared overlay dialogs/popups.',
-    navigateTo: 'Navigate to {{page}}',
-    outsideInputsAndDialogs: 'Outside inputs and dialogs',
-    showAll: 'Show all keyboard shortcuts',
-    toggleSidebar: 'Toggle sidebar menu',
-} as const;
-
 @Component({
     selector: 'sp-shortcuts-tab',
     templateUrl: './shortcuts.component.html',
@@ -65,64 +44,61 @@ export class ShortcutsTabComponent {
 
     constructor() {
         this.translateService
-            .stream(Object.values(SHORTCUT_TRANSLATION_KEYS))
+            .stream('Shortcuts')
             .pipe(takeUntilDestroyed())
-            .subscribe(translations => {
-                this.title = translations[SHORTCUT_TRANSLATION_KEYS.title];
+            .subscribe(title => {
+                this.title = title;
                 this.shortcuts = [
                     {
                         combo: 'Ctrl/Cmd + S',
-                        context:
-                            translations[SHORTCUT_TRANSLATION_KEYS.saveContext],
-                        description:
-                            translations[
-                                SHORTCUT_TRANSLATION_KEYS.saveDescription
-                            ],
+                        context: this.translateService.instant(
+                            "'Ctrl/Cmd + S' in chart/dashboard/pipeline edit view or asset link dialog",
+                        ),
+                        description: this.translateService.instant(
+                            'Saves the current state',
+                        ),
                     },
                     {
                         combo: 'E',
-                        context:
-                            translations[SHORTCUT_TRANSLATION_KEYS.editContext],
+                        context: this.translateService.instant(
+                            "'E' in dashboard/pipeline panel",
+                        ),
                         description:
-                            translations[
-                                SHORTCUT_TRANSLATION_KEYS.editDescription
-                            ],
+                            this.translateService.instant('Enters edit mode.'),
                     },
                     {
                         combo: 'Delete/Backspace',
-                        context:
-                            translations[
-                                SHORTCUT_TRANSLATION_KEYS.deleteContext
-                            ],
-                        description:
-                            translations[
-                                SHORTCUT_TRANSLATION_KEYS.deleteDescription
-                            ],
+                        context: this.translateService.instant(
+                            "'Delete/Backspace' in pipeline editor",
+                        ),
+                        description: this.translateService.instant(
+                            'Deletes the currently hovered pipeline element.',
+                        ),
                     },
                     {
                         combo: 'Ctrl/Cmd + F',
-                        context:
-                            translations[
-                                SHORTCUT_TRANSLATION_KEYS.filterContext
-                            ],
-                        description:
-                            translations[
-                                SHORTCUT_TRANSLATION_KEYS.filterDescription
-                            ],
+                        context: this.translateService.instant(
+                            "'Ctrl/Cmd + F' in table widget filter dropdown (charts type -> table)",
+                        ),
+                        description: this.translateService.instant(
+                            'Focuses/selects the filter search input.',
+                        ),
                     },
                     {
                         combo: 'Esc',
-                        context:
-                            translations[
-                                SHORTCUT_TRANSLATION_KEYS.escapeContext
-                            ],
-                        description:
-                            translations[
-                                SHORTCUT_TRANSLATION_KEYS.escapeDescription
-                            ],
+                        context: this.translateService.instant(
+                            "'Esc' Dialog keyboard behavior",
+                        ),
+                        description: this.translateService.instant(
+                            'Closes shared overlay dialogs/popups.',
+                        ),
                     },
                 ];
 
+                const outsideInputsAndDialogs = this.translateService.instant(
+                    'Outside inputs and dialogs',
+                );
+                const homeTitle = this.translateService.instant('Home');
                 this.shortcuts.push(
                     ...this.navMenuService.items
                         .filter(
@@ -131,38 +107,32 @@ export class ShortcutsTabComponent {
                         )
                         .map(item => ({
                             combo: `Shift + ${item.shortcutKey.toUpperCase()}`,
-                            context:
-                                translations[
-                                    SHORTCUT_TRANSLATION_KEYS
-                                        .outsideInputsAndDialogs
-                                ],
+                            context: outsideInputsAndDialogs,
                             description: this.translateService.instant(
-                                SHORTCUT_TRANSLATION_KEYS.navigateTo,
+                                'Navigate to {{page}}',
                                 {
-                                    page: this.translateService.instant(
-                                        item.title,
-                                    ),
+                                    page:
+                                        item.title === 'Home'
+                                            ? homeTitle
+                                            : this.translateService.instant(
+                                                  item.title,
+                                              ),
                                 },
                             ),
                         })),
                     {
                         combo: 'Shift + ?',
-                        context:
-                            translations[
-                                SHORTCUT_TRANSLATION_KEYS
-                                    .outsideInputsAndDialogs
-                            ],
-                        description:
-                            translations[SHORTCUT_TRANSLATION_KEYS.showAll],
+                        context: outsideInputsAndDialogs,
+                        description: this.translateService.instant(
+                            'Show all keyboard shortcuts',
+                        ),
                     },
                     {
                         combo: 'Ctrl + B / Alt + B',
-                        context:
-                            translations[SHORTCUT_TRANSLATION_KEYS.anywhere],
-                        description:
-                            translations[
-                                SHORTCUT_TRANSLATION_KEYS.toggleSidebar
-                            ],
+                        context: this.translateService.instant('Anywhere'),
+                        description: this.translateService.instant(
+                            'Toggle sidebar menu',
+                        ),
                     },
                 );
             });