diff --git a/src/dialogs/shortcuts/dialog-shortcuts.ts b/src/dialogs/shortcuts/dialog-shortcuts.ts
index 415cdab476..4ab3cbbad3 100644
--- a/src/dialogs/shortcuts/dialog-shortcuts.ts
+++ b/src/dialogs/shortcuts/dialog-shortcuts.ts
@@ -11,20 +11,22 @@ import type { HomeAssistant } from "../../types";
import { isMac } from "../../util/is_mac";
interface Text {
- type: "text";
- key: LocalizeKeys;
+ textTranslationKey: LocalizeKeys;
}
-type ShortcutString = string | { key: LocalizeKeys };
+interface LocalizedShortcut {
+ shortcutTranslationKey: LocalizeKeys;
+}
+
+type ShortcutString = string | LocalizedShortcut;
interface Shortcut {
- type: "shortcut";
shortcut: ShortcutString[];
- key: LocalizeKeys;
+ descriptionTranslationKey: LocalizeKeys;
}
interface Section {
- key: LocalizeKeys;
+ titleTranslationKey: LocalizeKeys;
items: (Text | Shortcut)[];
}
@@ -32,105 +34,115 @@ const CTRL_CMD = "__CTRL_CMD__";
const _SHORTCUTS: Section[] = [
{
- key: "ui.dialogs.shortcuts.searching.title",
+ titleTranslationKey: "ui.dialogs.shortcuts.searching.title",
items: [
- { type: "text", key: "ui.dialogs.shortcuts.searching.on_any_page" },
{
- type: "shortcut",
+ textTranslationKey: "ui.dialogs.shortcuts.searching.on_any_page",
+ },
+ {
shortcut: ["C"],
- key: "ui.dialogs.shortcuts.searching.search_command",
+ descriptionTranslationKey:
+ "ui.dialogs.shortcuts.searching.search_command",
},
{
- type: "shortcut",
shortcut: ["E"],
- key: "ui.dialogs.shortcuts.searching.search_entities",
+ descriptionTranslationKey:
+ "ui.dialogs.shortcuts.searching.search_entities",
},
{
- type: "shortcut",
shortcut: ["D"],
- key: "ui.dialogs.shortcuts.searching.search_devices",
+ descriptionTranslationKey:
+ "ui.dialogs.shortcuts.searching.search_devices",
},
{
- type: "text",
- key: "ui.dialogs.shortcuts.searching.on_pages_with_tables",
+ textTranslationKey:
+ "ui.dialogs.shortcuts.searching.on_pages_with_tables",
},
{
- type: "shortcut",
shortcut: [CTRL_CMD, "F"],
- key: "ui.dialogs.shortcuts.searching.search_in_table",
+ descriptionTranslationKey:
+ "ui.dialogs.shortcuts.searching.search_in_table",
},
],
},
{
- key: "ui.dialogs.shortcuts.assist.title",
+ titleTranslationKey: "ui.dialogs.shortcuts.assist.title",
items: [
{
- type: "shortcut",
shortcut: ["A"],
- key: "ui.dialogs.shortcuts.assist.open_assist",
+ descriptionTranslationKey: "ui.dialogs.shortcuts.assist.open_assist",
},
],
},
{
- key: "ui.dialogs.shortcuts.automation_script.title",
+ titleTranslationKey: "ui.dialogs.shortcuts.automation_script.title",
items: [
{
- type: "shortcut",
shortcut: [CTRL_CMD, "C"],
- key: "ui.dialogs.shortcuts.automation_script.copy",
+ descriptionTranslationKey:
+ "ui.dialogs.shortcuts.automation_script.copy",
},
{
- type: "shortcut",
shortcut: [CTRL_CMD, "X"],
- key: "ui.dialogs.shortcuts.automation_script.cut",
+ descriptionTranslationKey: "ui.dialogs.shortcuts.automation_script.cut",
},
{
- type: "shortcut",
- shortcut: [CTRL_CMD, "del"],
- key: "ui.dialogs.shortcuts.automation_script.delete",
- },
- {
- type: "shortcut",
- shortcut: [CTRL_CMD, "V"],
- key: "ui.dialogs.shortcuts.automation_script.paste",
- },
- {
- type: "shortcut",
- shortcut: [CTRL_CMD, "S"],
- key: "ui.dialogs.shortcuts.automation_script.save",
- },
- ],
- },
- {
- key: "ui.dialogs.shortcuts.charts.title",
- items: [
- {
- type: "shortcut",
- shortcut: [CTRL_CMD, { key: "ui.dialogs.shortcuts.shortcuts.drag" }],
- key: "ui.dialogs.shortcuts.charts.drag_to_zoom",
- },
- {
- type: "shortcut",
shortcut: [
CTRL_CMD,
- { key: "ui.dialogs.shortcuts.shortcuts.scroll_wheel" },
+ { shortcutTranslationKey: "ui.dialogs.shortcuts.keys.del" },
],
- key: "ui.dialogs.shortcuts.charts.scroll_to_zoom",
+ descriptionTranslationKey:
+ "ui.dialogs.shortcuts.automation_script.delete",
},
{
- type: "shortcut",
- shortcut: [{ key: "ui.dialogs.shortcuts.shortcuts.double_click" }],
- key: "ui.dialogs.shortcuts.charts.double_click",
+ shortcut: [CTRL_CMD, "V"],
+ descriptionTranslationKey:
+ "ui.dialogs.shortcuts.automation_script.paste",
+ },
+ {
+ shortcut: [CTRL_CMD, "S"],
+ descriptionTranslationKey:
+ "ui.dialogs.shortcuts.automation_script.save",
},
],
},
{
- key: "ui.dialogs.shortcuts.other.title",
+ titleTranslationKey: "ui.dialogs.shortcuts.charts.title",
+ items: [
+ {
+ shortcut: [
+ CTRL_CMD,
+ { shortcutTranslationKey: "ui.dialogs.shortcuts.shortcuts.drag" },
+ ],
+ descriptionTranslationKey: "ui.dialogs.shortcuts.charts.drag_to_zoom",
+ },
+ {
+ shortcut: [
+ CTRL_CMD,
+ {
+ shortcutTranslationKey:
+ "ui.dialogs.shortcuts.shortcuts.scroll_wheel",
+ },
+ ],
+ descriptionTranslationKey: "ui.dialogs.shortcuts.charts.scroll_to_zoom",
+ },
+ {
+ shortcut: [
+ {
+ shortcutTranslationKey:
+ "ui.dialogs.shortcuts.shortcuts.double_click",
+ },
+ ],
+ descriptionTranslationKey: "ui.dialogs.shortcuts.charts.double_click",
+ },
+ ],
+ },
+ {
+ titleTranslationKey: "ui.dialogs.shortcuts.other.title",
items: [
{
- type: "shortcut",
shortcut: ["M"],
- key: "ui.dialogs.shortcuts.other.my_link",
+ descriptionTranslationKey: "ui.dialogs.shortcuts.other.my_link",
},
],
},
@@ -152,28 +164,28 @@ class DialogShortcuts extends LitElement {
}
private _renderShortcut(
- shortcuts: ShortcutString[],
- translationKey: LocalizeKeys
+ shortcutKeys: ShortcutString[],
+ descriptionKey: LocalizeKeys
) {
- const keys = shortcuts.map((shortcut) =>
- typeof shortcut === "string" ? shortcut : this.hass.localize(shortcut.key)
- );
-
return html`
- ${keys.map(
- (key) =>
+ ${shortcutKeys.map(
+ (shortcutKey) =>
html`${key === CTRL_CMD
+ >${shortcutKey === CTRL_CMD
? isMac
? html``
: this.hass.localize("ui.panel.config.automation.editor.ctrl")
- : key}`
)}
- ${this.hass.localize(translationKey)}
+ ${this.hass.localize(descriptionKey)}
`;
}
@@ -197,16 +209,18 @@ class DialogShortcuts extends LitElement {
${_SHORTCUTS.map(
(section) => html`
-
${this.hass.localize(section.key)}
+
${this.hass.localize(section.titleTranslationKey)}
${section.items.map((item) => {
- if (item.type === "text") {
- return html`
${this.hass.localize(item.key)}
`;
+ if ("shortcut" in item) {
+ return this._renderShortcut(
+ (item as Shortcut).shortcut,
+ (item as Shortcut).descriptionTranslationKey
+ );
}
- if (item.type === "shortcut") {
- return this._renderShortcut(item.shortcut, item.key);
- }
- return nothing;
+ return html`
+ ${this.hass.localize((item as Text).textTranslationKey)}
+
`;
})}
`
diff --git a/src/translations/en.json b/src/translations/en.json
index 88df677d1c..a963a520ec 100644
--- a/src/translations/en.json
+++ b/src/translations/en.json
@@ -2040,6 +2040,9 @@
"title": "Shortcuts",
"enable_shortcuts_hint": "For keyboard shortcuts to work, make sure you have them enabled in your {user_profile}.",
"enable_shortcuts_hint_user_profile": "user profile",
+ "keys": {
+ "del": "Del"
+ },
"shortcuts": {
"double_click": "Double-click",
"scroll_wheel": "Scroll",