diff --git a/src/common/translations/localize.ts b/src/common/translations/localize.ts index 92cf302ffa..ebbdc97e7b 100644 --- a/src/common/translations/localize.ts +++ b/src/common/translations/localize.ts @@ -15,7 +15,6 @@ export type LocalizeKeys = | `ui.card.weather.cardinal_direction.${string}` | `ui.card.lawn_mower.actions.${string}` | `ui.components.calendar.event.rrule.${string}` - | `ui.components.logbook.${string}` | `ui.components.selectors.file.${string}` | `ui.dialogs.entity_registry.editor.${string}` | `ui.dialogs.more_info_control.lawn_mower.${string}` diff --git a/src/data/logbook.ts b/src/data/logbook.ts index 24c3cba6a1..80466f42ac 100644 --- a/src/data/logbook.ts +++ b/src/data/logbook.ts @@ -50,14 +50,23 @@ export interface LogbookEntry { // Localization mapping for all the triggers in core // in homeassistant.components.homeassistant.triggers // -const triggerPhrases = { - "numeric state of": "triggered_by_numeric_state_of", // number state trigger - "state of": "triggered_by_state_of", // state trigger - event: "triggered_by_event", // event trigger - time: "triggered_by_time", // time trigger - "time pattern": "triggered_by_time_pattern", // time trigger - "Home Assistant stopping": "triggered_by_homeassistant_stopping", // stop event - "Home Assistant starting": "triggered_by_homeassistant_starting", // start event +type TriggerPhraseKeys = + | "triggered_by_numeric_state_of" + | "triggered_by_state_of" + | "triggered_by_event" + | "triggered_by_time" + | "triggered_by_time_pattern" + | "triggered_by_homeassistant_stopping" + | "triggered_by_homeassistant_starting"; + +const triggerPhrases: Record = { + triggered_by_numeric_state_of: "numeric state of", // number state trigger + triggered_by_state_of: "state of", // state trigger + triggered_by_event: "event", // event trigger + triggered_by_time: "time", // time trigger + triggered_by_time_pattern: "time pattern", // time trigger + triggered_by_homeassistant_stopping: "Home Assistant stopping", // stop event + triggered_by_homeassistant_starting: "Home Assistant starting", // start event }; export const getLogbookDataForContext = async ( @@ -167,11 +176,14 @@ export const localizeTriggerSource = ( localize: LocalizeFunc, source: string ) => { - for (const triggerPhrase in triggerPhrases) { - if (source.startsWith(triggerPhrase)) { + for (const triggerPhraseKey of Object.keys( + triggerPhrases + ) as TriggerPhraseKeys[]) { + const phrase = triggerPhrases[triggerPhraseKey]; + if (source.startsWith(phrase)) { return source.replace( - triggerPhrase, - `${localize(`ui.components.logbook.${triggerPhrases[triggerPhrase]}`)}` + phrase, + `${localize(`ui.components.logbook.${triggerPhraseKey}`)}` ); } } diff --git a/src/panels/logbook/ha-logbook-renderer.ts b/src/panels/logbook/ha-logbook-renderer.ts index 32545466db..756cd68726 100644 --- a/src/panels/logbook/ha-logbook-renderer.ts +++ b/src/panels/logbook/ha-logbook-renderer.ts @@ -400,7 +400,7 @@ class HaLogbookRenderer extends LitElement { // Service call if (item.context_event_type === "call_service") { return html`${this.hass.localize( - "ui.components.logbook.triggered_by_service" + "ui.components.logbook.triggered_by_action" )} ${item.context_domain && item.context_service ? `${domainToName(this.hass.localize, item.context_domain)}: