+ (supportedLanguages: string[]) =>
[
{
name: "name",
@@ -133,7 +145,9 @@ export class DialogVoiceAssistantPipelineDetail extends LitElement {
name: "language",
required: true,
selector: {
- text: {},
+ language: {
+ languages: supportedLanguages,
+ },
},
},
{
diff --git a/src/panels/config/voice-assistants/ha-config-voice-assistants-assistants.ts b/src/panels/config/voice-assistants/ha-config-voice-assistants-assistants.ts
index 4d8c1d7c1c..76ae8707d8 100644
--- a/src/panels/config/voice-assistants/ha-config-voice-assistants-assistants.ts
+++ b/src/panels/config/voice-assistants/ha-config-voice-assistants-assistants.ts
@@ -1,4 +1,5 @@
import "@polymer/paper-item/paper-item";
+import "@polymer/paper-item/paper-item-body";
import { css, html, LitElement, nothing } from "lit";
import { customElement, property } from "lit/decorators";
import { isComponentLoaded } from "../../../common/config/is_component_loaded";
diff --git a/src/panels/profile/ha-pick-language-row.ts b/src/panels/profile/ha-pick-language-row.ts
index 7bab38abdc..d33eb48941 100644
--- a/src/panels/profile/ha-pick-language-row.ts
+++ b/src/panels/profile/ha-pick-language-row.ts
@@ -1,10 +1,9 @@
-import "@material/mwc-list/mwc-list-item";
-import { css, html, LitElement, PropertyValues } from "lit";
-import { customElement, property, state } from "lit/decorators";
+import { css, html, LitElement } from "lit";
+import { customElement, property } from "lit/decorators";
import { fireEvent } from "../../common/dom/fire_event";
-import "../../components/ha-select";
+import "../../components/ha-language-picker";
import "../../components/ha-settings-row";
-import { HomeAssistant, Translation } from "../../types";
+import { HomeAssistant } from "../../types";
@customElement("ha-pick-language-row")
export class HaPickLanguageRow extends LitElement {
@@ -12,13 +11,6 @@ export class HaPickLanguageRow extends LitElement {
@property() public narrow!: boolean;
- @state() private _languages: (Translation & { key: string })[] = [];
-
- protected firstUpdated(changedProps: PropertyValues) {
- super.firstUpdated(changedProps);
- this._computeLanguages();
- }
-
protected render() {
return html`
@@ -33,43 +25,25 @@ export class HaPickLanguageRow extends LitElement {
>${this.hass.localize("ui.panel.profile.language.link_promo")}
-
- ${this._languages.map(
- (language) => html`
- ${language.nativeName}
- `
- )}
-
+
`;
}
- private _computeLanguages() {
- if (!this.hass.translationMetadata?.translations) {
- return;
- }
- this._languages = Object.keys(
- this.hass.translationMetadata.translations
- ).map((key) => ({
- key,
- ...this.hass.translationMetadata.translations[key],
- }));
- }
-
private _languageSelectionChanged(ev) {
// Only fire event if language was changed. This prevents select updates when
// responding to hass changes.
- if (ev.target.value !== this.hass.language) {
+ if (ev.detail.value !== this.hass.language) {
fireEvent(this, "hass-language-select", ev.target.value);
}
}
diff --git a/src/resources/compatibility.ts b/src/resources/compatibility.ts
index 5e89e2f11a..e9c678c9fc 100644
--- a/src/resources/compatibility.ts
+++ b/src/resources/compatibility.ts
@@ -15,6 +15,8 @@ import "@formatjs/intl-relativetimeformat/locale-data/en";
import "@formatjs/intl-datetimeformat/polyfill";
import "@formatjs/intl-datetimeformat/locale-data/en";
import "@formatjs/intl-datetimeformat/add-all-tz";
+import "@formatjs/intl-displaynames/polyfill";
+import "@formatjs/intl-displaynames/locale-data/en";
// To use comlink under ES5
import "proxy-polyfill";
diff --git a/yarn.lock b/yarn.lock
index 4c9a8ac08f..70c816befe 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -1582,6 +1582,17 @@ __metadata:
languageName: node
linkType: hard
+"@formatjs/intl-displaynames@npm:6.3.1":
+ version: 6.3.1
+ resolution: "@formatjs/intl-displaynames@npm:6.3.1"
+ dependencies:
+ "@formatjs/ecma402-abstract": 1.14.3
+ "@formatjs/intl-localematcher": 0.2.32
+ tslib: ^2.4.0
+ checksum: a8f43cda125adf8ac34d890f6b2c8b77525d5dd1452fecc5053b16dc40142d5b00b4f0dfc26c73fdf03b38e84ed2936fe4eb453414f611f79e260374f8afb642
+ languageName: node
+ linkType: hard
+
"@formatjs/intl-enumerator@npm:1.2.1":
version: 1.2.1
resolution: "@formatjs/intl-enumerator@npm:1.2.1"
@@ -9448,6 +9459,7 @@ __metadata:
"@codemirror/view": 6.9.5
"@egjs/hammerjs": 2.0.17
"@formatjs/intl-datetimeformat": 6.5.1
+ "@formatjs/intl-displaynames": 6.3.1
"@formatjs/intl-getcanonicallocales": 2.1.0
"@formatjs/intl-locale": 3.1.1
"@formatjs/intl-numberformat": 8.3.5