diff --git a/src/panels/lovelace/ha-panel-lovelace.ts b/src/panels/lovelace/ha-panel-lovelace.ts index 1b9d3edbd0..f54c0a9b12 100644 --- a/src/panels/lovelace/ha-panel-lovelace.ts +++ b/src/panels/lovelace/ha-panel-lovelace.ts @@ -120,6 +120,18 @@ class LovelacePanel extends LitElement { this._updateColumns(); } + public connectedCallback(): void { + super.connectedCallback(); + if ( + this.lovelace && + this.hass && + this.lovelace.language !== this.hass.language + ) { + // language has been changed, rebuild UI + this._fetchConfig(false); + } + } + private _closeEditor() { this._state = "loaded"; } @@ -163,6 +175,7 @@ class LovelacePanel extends LitElement { config: conf, editMode: this.lovelace ? this.lovelace.editMode : false, mode: confMode, + language: this.hass!.language, enableFullEditMode: () => { if (!editorLoaded) { editorLoaded = true; diff --git a/src/panels/lovelace/types.ts b/src/panels/lovelace/types.ts index 54bb13bb50..85f36b1c33 100644 --- a/src/panels/lovelace/types.ts +++ b/src/panels/lovelace/types.ts @@ -12,6 +12,7 @@ export interface Lovelace { config: LovelaceConfig; editMode: boolean; mode: "generated" | "yaml" | "storage"; + language: string; enableFullEditMode: () => void; setEditMode: (editMode: boolean) => void; saveConfig: (newConfig: LovelaceConfig) => Promise;