diff --git a/src/dialogs/voice-assistant-setup/voice-assistant-setup-step-success.ts b/src/dialogs/voice-assistant-setup/voice-assistant-setup-step-success.ts index 939d76be5e..9f0dbf202b 100644 --- a/src/dialogs/voice-assistant-setup/voice-assistant-setup-step-success.ts +++ b/src/dialogs/voice-assistant-setup/voice-assistant-setup-step-success.ts @@ -24,6 +24,7 @@ import "../../panels/lovelace/entity-rows/hui-select-entity-row"; import type { HomeAssistant } from "../../types"; import { AssistantSetupStyles } from "./styles"; import { STEP } from "./voice-assistant-setup-dialog"; +import { getTranslation } from "../../util/common-translation"; @customElement("ha-voice-assistant-setup-step-success") export class HaVoiceAssistantSetupStepSuccess extends LitElement { @@ -213,8 +214,24 @@ export class HaVoiceAssistantSetupStepSuccess extends LitElement { }); } - private _testTts() { - this._announce("Hello, how can I help you?"); + private async _testTts() { + const [pipeline] = await this._getPipeline(); + + if (!pipeline) { + return; + } + + if (pipeline.language !== this.hass.locale.language) { + try { + const result = await getTranslation(null, pipeline.language, false); + this._announce(result.data["ui.dialogs.tts-try.message_example"]); + return; + } catch (e) { + // ignore fallback to user language + } + } + + this._announce(this.hass.localize("ui.dialogs.tts-try.message_example")); } private async _announce(message: string) { diff --git a/src/util/common-translation.ts b/src/util/common-translation.ts index d8d18b82e4..7cae549c0a 100644 --- a/src/util/common-translation.ts +++ b/src/util/common-translation.ts @@ -135,14 +135,15 @@ export function getLocalLanguage() { export async function getTranslation( fragment: string | null, - language: string + language: string, + fallback = true ) { const metadata = translationMetadata.translations[language]; if (!metadata?.hash) { - if (language !== "en") { + if (fallback && language !== "en") { return getTranslation(fragment, "en"); } - throw new Error("Language en is not found in metadata"); + throw new Error(`Language '${language}' is not found in metadata`); } // nl-abcd.jon or logbook/nl-abcd.json