From d873f26db3951b7377778cc47c9e60daf07bd687 Mon Sep 17 00:00:00 2001 From: Franck Nijhof Date: Wed, 17 May 2023 15:26:16 +0200 Subject: [PATCH] Add entity attribute value translations for humidifier (#16565) --- src/data/humidifier.ts | 7 ++----- .../more-info/controls/more-info-humidifier.ts | 12 +++++++++--- src/panels/lovelace/cards/hui-humidifier-card.ts | 11 ++++++++--- .../entity-rows/hui-humidifier-entity-row.ts | 13 ++++++++----- src/translations/en.json | 15 --------------- 5 files changed, 27 insertions(+), 31 deletions(-) diff --git a/src/data/humidifier.ts b/src/data/humidifier.ts index aaecf77e06..dbf0093c61 100644 --- a/src/data/humidifier.ts +++ b/src/data/humidifier.ts @@ -3,14 +3,11 @@ import { HassEntityBase, } from "home-assistant-js-websocket"; import { FIXED_DOMAIN_STATES } from "../common/entity/get_states"; -import { TranslationDict } from "../types"; import { UNAVAILABLE_STATES } from "./entity"; type HumidifierState = | (typeof FIXED_DOMAIN_STATES.humidifier)[number] | (typeof UNAVAILABLE_STATES)[number]; -type HumidifierMode = - keyof TranslationDict["state_attributes"]["humidifier"]["mode"]; export type HumidifierEntity = HassEntityBase & { state: HumidifierState; @@ -18,8 +15,8 @@ export type HumidifierEntity = HassEntityBase & { humidity?: number; min_humidity?: number; max_humidity?: number; - mode?: HumidifierMode; - available_modes?: HumidifierMode[]; + mode?: string; + available_modes?: string[]; }; }; diff --git a/src/dialogs/more-info/controls/more-info-humidifier.ts b/src/dialogs/more-info/controls/more-info-humidifier.ts index e7d32d8324..1e6d270d9d 100644 --- a/src/dialogs/more-info/controls/more-info-humidifier.ts +++ b/src/dialogs/more-info/controls/more-info-humidifier.ts @@ -10,6 +10,7 @@ import { import { property } from "lit/decorators"; import { classMap } from "lit/directives/class-map"; import { fireEvent } from "../../../common/dom/fire_event"; +import { computeAttributeValueDisplay } from "../../../common/entity/compute_attribute_display"; import { stopPropagation } from "../../../common/dom/stop_propagation"; import { supportsFeature } from "../../../common/entity/supports-feature"; import { computeRTLDirection } from "../../../common/util/compute_rtl"; @@ -78,9 +79,14 @@ class MoreInfoHumidifier extends LitElement { ${stateObj.attributes.available_modes!.map( (mode) => html` - ${hass.localize( - `state_attributes.humidifier.mode.${mode}` - ) || mode} + ${computeAttributeValueDisplay( + hass.localize, + stateObj, + hass.locale, + hass.entities, + "mode", + mode + )} ` )} diff --git a/src/panels/lovelace/cards/hui-humidifier-card.ts b/src/panels/lovelace/cards/hui-humidifier-card.ts index 72693eab12..a99331e67e 100644 --- a/src/panels/lovelace/cards/hui-humidifier-card.ts +++ b/src/panels/lovelace/cards/hui-humidifier-card.ts @@ -14,6 +14,7 @@ import { customElement, property, state } from "lit/decorators"; import { classMap } from "lit/directives/class-map"; import { applyThemesOnElement } from "../../../common/dom/apply_themes_on_element"; import { fireEvent } from "../../../common/dom/fire_event"; +import { computeAttributeValueDisplay } from "../../../common/entity/compute_attribute_display"; import { computeStateName } from "../../../common/entity/compute_state_name"; import { computeRTLDirection } from "../../../common/util/compute_rtl"; import "../../../components/ha-card"; @@ -135,9 +136,13 @@ export class HuiHumidifierCard extends LitElement implements LovelaceCard { ${stateObj.attributes.mode && !isUnavailableState(stateObj.state) ? html` - - ${this.hass!.localize( - `state_attributes.humidifier.mode.${stateObj.attributes.mode}` - ) || stateObj.attributes.mode} + ${computeAttributeValueDisplay( + this.hass.localize, + stateObj, + this.hass.locale, + this.hass.entities, + "mode" + )} ` : ""} diff --git a/src/panels/lovelace/entity-rows/hui-humidifier-entity-row.ts b/src/panels/lovelace/entity-rows/hui-humidifier-entity-row.ts index 20071fc947..f2666cfe99 100644 --- a/src/panels/lovelace/entity-rows/hui-humidifier-entity-row.ts +++ b/src/panels/lovelace/entity-rows/hui-humidifier-entity-row.ts @@ -5,6 +5,7 @@ import { HumidifierEntity } from "../../../data/humidifier"; import { HomeAssistant } from "../../../types"; import { hasConfigOrEntityChanged } from "../common/has-changed"; import "../components/hui-generic-entity-row"; +import { computeAttributeValueDisplay } from "../../../common/entity/compute_attribute_display"; import { createEntityNotFoundWarning } from "../components/hui-warning"; import { EntityConfig, LovelaceRow } from "./types"; @@ -49,11 +50,13 @@ class HuiHumidifierEntityRow extends LitElement implements LovelaceRow { ? `${this.hass!.localize("ui.card.humidifier.humidity")}: ${stateObj.attributes.humidity} %${ stateObj.attributes.mode - ? ` (${ - this.hass!.localize( - `state_attributes.humidifier.mode.${stateObj.attributes.mode}` - ) || stateObj.attributes.mode - })` + ? ` (${computeAttributeValueDisplay( + this.hass.localize, + stateObj, + this.hass.locale, + this.hass.entities, + "mode" + )})` : "" }` : ""} diff --git a/src/translations/en.json b/src/translations/en.json index a6231f37a3..af26725b52 100755 --- a/src/translations/en.json +++ b/src/translations/en.json @@ -21,21 +21,6 @@ "unavailable": "Unavailable" } }, - "state_attributes": { - "humidifier": { - "mode": { - "normal": "Normal", - "eco": "Eco", - "away": "Away", - "boost": "Boost", - "comfort": "Comfort", - "home": "Home", - "sleep": "Sleep", - "auto": "Auto", - "baby": "Baby" - } - } - }, "state_badge": { "default": { "unknown": "Unk",