diff --git a/ui/localization/messages/da.json b/ui/localization/messages/da.json index 13294268..4760b953 100644 --- a/ui/localization/messages/da.json +++ b/ui/localization/messages/da.json @@ -64,6 +64,18 @@ "audio_output_failed_enable": "Kunne ikke aktivere lydudgang: {error}", "audio_output_title": "Lydudgang", "audio_popover_title": "Lyd", + "audio_settings_description": "Konfigurer lydindgangs- og lydudgangsindstillinger for din JetKVM-enhed", + "audio_settings_hdmi_label": "HDMI", + "audio_settings_input_description": "Aktiver eller deaktiver mikrofon lyd til fjerncomputeren", + "audio_settings_input_title": "Lydindgang", + "audio_settings_output_description": "Aktiver eller deaktiver lyd fra fjerncomputeren", + "audio_settings_output_source_description": "Vælg lydoptagelsesenheden (HDMI eller USB)", + "audio_settings_output_source_failed": "Kunne ikke indstille lydudgangskilde: {error}", + "audio_settings_output_source_success": "Lydudgangskilde opdateret med succes", + "audio_settings_output_source_title": "Lydudgangskilde", + "audio_settings_output_title": "Lydudgang", + "audio_settings_title": "Lyd", + "audio_settings_usb_label": "USB", "action_bar_extension": "Udvidelse", "action_bar_fullscreen": "Fuldskærm", "action_bar_settings": "Indstillinger", diff --git a/ui/localization/messages/de.json b/ui/localization/messages/de.json index 5923252c..b6bd4308 100644 --- a/ui/localization/messages/de.json +++ b/ui/localization/messages/de.json @@ -64,6 +64,18 @@ "audio_output_failed_enable": "Fehler beim Aktivieren des Audioausgangs: {error}", "audio_output_title": "Audioausgang", "audio_popover_title": "Audio", + "audio_settings_description": "Konfigurieren Sie Audio-Eingangs- und Ausgangseinstellungen für Ihr JetKVM-Gerät", + "audio_settings_hdmi_label": "HDMI", + "audio_settings_input_description": "Mikrofonaudio zum entfernten Computer aktivieren oder deaktivieren", + "audio_settings_input_title": "Audioeingang", + "audio_settings_output_description": "Audio vom entfernten Computer aktivieren oder deaktivieren", + "audio_settings_output_source_description": "Wählen Sie das Audioaufnahmegerät (HDMI oder USB)", + "audio_settings_output_source_failed": "Fehler beim Festlegen der Audioausgabequelle: {error}", + "audio_settings_output_source_success": "Audioausgabequelle erfolgreich aktualisiert", + "audio_settings_output_source_title": "Audioausgabequelle", + "audio_settings_output_title": "Audioausgang", + "audio_settings_title": "Audio", + "audio_settings_usb_label": "USB", "action_bar_extension": "Verlängerung", "action_bar_fullscreen": "Vollbild", "action_bar_settings": "Einstellungen", diff --git a/ui/localization/messages/en.json b/ui/localization/messages/en.json index 9b3004ab..2e04dd96 100644 --- a/ui/localization/messages/en.json +++ b/ui/localization/messages/en.json @@ -64,6 +64,18 @@ "audio_output_failed_enable": "Failed to enable audio output: {error}", "audio_output_title": "Audio Output", "audio_popover_title": "Audio", + "audio_settings_description": "Configure audio input and output settings for your JetKVM device", + "audio_settings_hdmi_label": "HDMI", + "audio_settings_input_description": "Enable or disable microphone audio to the remote computer", + "audio_settings_input_title": "Audio Input", + "audio_settings_output_description": "Enable or disable audio from the remote computer", + "audio_settings_output_source_description": "Select the audio capture device (HDMI or USB)", + "audio_settings_output_source_failed": "Failed to set audio output source: {error}", + "audio_settings_output_source_success": "Audio output source updated successfully", + "audio_settings_output_source_title": "Audio Output Source", + "audio_settings_output_title": "Audio Output", + "audio_settings_title": "Audio", + "audio_settings_usb_label": "USB", "action_bar_extension": "Extension", "action_bar_fullscreen": "Fullscreen", "action_bar_settings": "Settings", diff --git a/ui/localization/messages/es.json b/ui/localization/messages/es.json index 16e9355f..46cce829 100644 --- a/ui/localization/messages/es.json +++ b/ui/localization/messages/es.json @@ -64,6 +64,18 @@ "audio_output_failed_enable": "Error al activar la salida de audio: {error}", "audio_output_title": "Salida de audio", "audio_popover_title": "Audio", + "audio_settings_description": "Configure los ajustes de entrada y salida de audio para su dispositivo JetKVM", + "audio_settings_hdmi_label": "HDMI", + "audio_settings_input_description": "Habilitar o deshabilitar el audio del micrófono a la computadora remota", + "audio_settings_input_title": "Entrada de audio", + "audio_settings_output_description": "Habilitar o deshabilitar el audio de la computadora remota", + "audio_settings_output_source_description": "Seleccione el dispositivo de captura de audio (HDMI o USB)", + "audio_settings_output_source_failed": "Error al configurar la fuente de salida de audio: {error}", + "audio_settings_output_source_success": "Fuente de salida de audio actualizada correctamente", + "audio_settings_output_source_title": "Fuente de salida de audio", + "audio_settings_output_title": "Salida de audio", + "audio_settings_title": "Audio", + "audio_settings_usb_label": "USB", "action_bar_extension": "Extensión", "action_bar_fullscreen": "Pantalla completa", "action_bar_settings": "Ajustes", diff --git a/ui/localization/messages/fr.json b/ui/localization/messages/fr.json index 95d0ba8e..14f359a7 100644 --- a/ui/localization/messages/fr.json +++ b/ui/localization/messages/fr.json @@ -64,6 +64,18 @@ "audio_output_failed_enable": "Échec de l'activation de la sortie audio : {error}", "audio_output_title": "Sortie audio", "audio_popover_title": "Audio", + "audio_settings_description": "Configurez les paramètres d'entrée et de sortie audio pour votre appareil JetKVM", + "audio_settings_hdmi_label": "HDMI", + "audio_settings_input_description": "Activer ou désactiver l'audio du microphone vers l'ordinateur distant", + "audio_settings_input_title": "Entrée audio", + "audio_settings_output_description": "Activer ou désactiver l'audio de l'ordinateur distant", + "audio_settings_output_source_description": "Sélectionnez le périphérique de capture audio (HDMI ou USB)", + "audio_settings_output_source_failed": "Échec de la configuration de la source de sortie audio : {error}", + "audio_settings_output_source_success": "Source de sortie audio mise à jour avec succès", + "audio_settings_output_source_title": "Source de sortie audio", + "audio_settings_output_title": "Sortie audio", + "audio_settings_title": "Audio", + "audio_settings_usb_label": "USB", "action_bar_extension": "Extension", "action_bar_fullscreen": "Plein écran", "action_bar_settings": "Paramètres", diff --git a/ui/localization/messages/it.json b/ui/localization/messages/it.json index a6bd9cac..61ca912b 100644 --- a/ui/localization/messages/it.json +++ b/ui/localization/messages/it.json @@ -64,6 +64,18 @@ "audio_output_failed_enable": "Impossibile abilitare l'uscita audio: {error}", "audio_output_title": "Uscita audio", "audio_popover_title": "Audio", + "audio_settings_description": "Configura le impostazioni di ingresso e uscita audio per il tuo dispositivo JetKVM", + "audio_settings_hdmi_label": "HDMI", + "audio_settings_input_description": "Abilita o disabilita l'audio del microfono al computer remoto", + "audio_settings_input_title": "Ingresso audio", + "audio_settings_output_description": "Abilita o disabilita l'audio dal computer remoto", + "audio_settings_output_source_description": "Seleziona il dispositivo di acquisizione audio (HDMI o USB)", + "audio_settings_output_source_failed": "Impossibile impostare la sorgente di uscita audio: {error}", + "audio_settings_output_source_success": "Sorgente di uscita audio aggiornata con successo", + "audio_settings_output_source_title": "Sorgente di uscita audio", + "audio_settings_output_title": "Uscita audio", + "audio_settings_title": "Audio", + "audio_settings_usb_label": "USB", "action_bar_extension": "Estensione", "action_bar_fullscreen": "A schermo intero", "action_bar_settings": "Impostazioni", diff --git a/ui/localization/messages/nb.json b/ui/localization/messages/nb.json index bfc0dbb9..694b8642 100644 --- a/ui/localization/messages/nb.json +++ b/ui/localization/messages/nb.json @@ -64,6 +64,18 @@ "audio_output_failed_enable": "Kunne ikke aktivere lydutgang: {error}", "audio_output_title": "Lydutgang", "audio_popover_title": "Lyd", + "audio_settings_description": "Konfigurer lydinngangs- og lydutgangsinnstillinger for JetKVM-enheten din", + "audio_settings_hdmi_label": "HDMI", + "audio_settings_input_description": "Aktiver eller deaktiver mikrofonlyd til den eksterne datamaskinen", + "audio_settings_input_title": "Lydinngang", + "audio_settings_output_description": "Aktiver eller deaktiver lyd fra den eksterne datamaskinen", + "audio_settings_output_source_description": "Velg lydopptaksenhet (HDMI eller USB)", + "audio_settings_output_source_failed": "Kunne ikke angi lydutgangskilde: {error}", + "audio_settings_output_source_success": "Lydutgangskilde oppdatert vellykket", + "audio_settings_output_source_title": "Lydutgangskilde", + "audio_settings_output_title": "Lydutgang", + "audio_settings_title": "Lyd", + "audio_settings_usb_label": "USB", "action_bar_extension": "Forlengelse", "action_bar_fullscreen": "Fullskjerm", "action_bar_settings": "Innstillinger", diff --git a/ui/localization/messages/sv.json b/ui/localization/messages/sv.json index 4ac63ee2..976031d9 100644 --- a/ui/localization/messages/sv.json +++ b/ui/localization/messages/sv.json @@ -64,6 +64,18 @@ "audio_output_failed_enable": "Det gick inte att aktivera ljudutgången: {error}", "audio_output_title": "Ljudutgång", "audio_popover_title": "Ljud", + "audio_settings_description": "Konfigurera ljudinmatnings- och ljudutgångsinställningar för din JetKVM-enhet", + "audio_settings_hdmi_label": "HDMI", + "audio_settings_input_description": "Aktivera eller inaktivera mikrofonljud till fjärrdatorn", + "audio_settings_input_title": "Ljudingång", + "audio_settings_output_description": "Aktivera eller inaktivera ljud från fjärrdatorn", + "audio_settings_output_source_description": "Välj ljudinspelningsenhet (HDMI eller USB)", + "audio_settings_output_source_failed": "Det gick inte att ställa in ljudutgångskälla: {error}", + "audio_settings_output_source_success": "Ljudutgångskälla uppdaterades framgångsrikt", + "audio_settings_output_source_title": "Ljudutgångskälla", + "audio_settings_output_title": "Ljudutgång", + "audio_settings_title": "Ljud", + "audio_settings_usb_label": "USB", "action_bar_extension": "Förlängning", "action_bar_fullscreen": "Helskärm", "action_bar_settings": "Inställningar", diff --git a/ui/localization/messages/zh.json b/ui/localization/messages/zh.json index 650a6ec6..ff40e36d 100644 --- a/ui/localization/messages/zh.json +++ b/ui/localization/messages/zh.json @@ -64,6 +64,18 @@ "audio_output_failed_enable": "启用音频输出失败:{error}", "audio_output_title": "音频输出", "audio_popover_title": "音频", + "audio_settings_description": "配置 JetKVM 设备的音频输入和输出设置", + "audio_settings_hdmi_label": "HDMI", + "audio_settings_input_description": "启用或禁用到远程计算机的麦克风音频", + "audio_settings_input_title": "音频输入", + "audio_settings_output_description": "启用或禁用来自远程计算机的音频", + "audio_settings_output_source_description": "选择音频捕获设备(HDMI 或 USB)", + "audio_settings_output_source_failed": "设置音频输出源失败:{error}", + "audio_settings_output_source_success": "音频输出源更新成功", + "audio_settings_output_source_title": "音频输出源", + "audio_settings_output_title": "音频输出", + "audio_settings_title": "音频", + "audio_settings_usb_label": "USB", "action_bar_extension": "扩展", "action_bar_fullscreen": "全屏", "action_bar_settings": "设置", diff --git a/ui/src/routes/devices.$id.settings.audio.tsx b/ui/src/routes/devices.$id.settings.audio.tsx index a994c9e3..2a242c22 100644 --- a/ui/src/routes/devices.$id.settings.audio.tsx +++ b/ui/src/routes/devices.$id.settings.audio.tsx @@ -6,6 +6,7 @@ import { useSettingsStore } from "@/hooks/stores"; import { JsonRpcResponse, useJsonRpc } from "@/hooks/useJsonRpc"; import { SelectMenuBasic } from "@components/SelectMenuBasic"; import Checkbox from "@components/Checkbox"; +import { m } from "@localizations/messages.js"; import notifications from "../notifications"; @@ -39,54 +40,66 @@ export default function SettingsAudioRoute() { }, [send]); const handleAudioOutputSourceChange = (source: string) => { + // Update UI immediately for better responsiveness + settings.setAudioOutputSource(source); + send("setAudioOutputSource", { source }, (resp: JsonRpcResponse) => { if ("error" in resp) { + // Revert on error by fetching current value from backend + send("getAudioOutputSource", {}, (getResp: JsonRpcResponse) => { + if ("result" in getResp) { + settings.setAudioOutputSource(getResp.result as string); + } + }); notifications.error( - `Failed to set audio output source: ${resp.error.data || "Unknown error"}`, + m.audio_settings_output_source_failed({ error: String(resp.error.data || m.unknown_error()) }), ); return; } - settings.setAudioOutputSource(source); - notifications.success("Audio output source updated successfully"); + notifications.success(m.audio_settings_output_source_success()); }); }; const handleAudioOutputEnabledChange = (enabled: boolean) => { send("setAudioOutputEnabled", { enabled }, (resp: JsonRpcResponse) => { if ("error" in resp) { - notifications.error( - `Failed to ${enabled ? "enable" : "disable"} audio output: ${resp.error.data || "Unknown error"}`, - ); + const errorMsg = enabled + ? m.audio_output_failed_enable({ error: String(resp.error.data || m.unknown_error()) }) + : m.audio_output_failed_disable({ error: String(resp.error.data || m.unknown_error()) }); + notifications.error(errorMsg); return; } settings.setAudioOutputEnabled(enabled); - notifications.success(`Audio output ${enabled ? "enabled" : "disabled"} successfully`); + const successMsg = enabled ? m.audio_output_enabled() : m.audio_output_disabled(); + notifications.success(successMsg); }); }; const handleAudioInputEnabledChange = (enabled: boolean) => { send("setAudioInputEnabled", { enabled }, (resp: JsonRpcResponse) => { if ("error" in resp) { - notifications.error( - `Failed to ${enabled ? "enable" : "disable"} audio input: ${resp.error.data || "Unknown error"}`, - ); + const errorMsg = enabled + ? m.audio_input_failed_enable({ error: String(resp.error.data || m.unknown_error()) }) + : m.audio_input_failed_disable({ error: String(resp.error.data || m.unknown_error()) }); + notifications.error(errorMsg); return; } settings.setAudioInputEnabled(enabled); - notifications.success(`Audio input ${enabled ? "enabled" : "disabled"} successfully`); + const successMsg = enabled ? m.audio_input_enabled() : m.audio_input_disabled(); + notifications.success(successMsg); }); }; return (