From 888d66332521f4f9b5e6d27838809a25d561a723 Mon Sep 17 00:00:00 2001 From: fkwp Date: Fri, 11 Sep 2026 10:20:12 +0200 Subject: [PATCH] Interpolate the default output's name rather than concatenating it The menu built the label for a default output by joining a translated "Default" to the device name, which leaves a translator no say over word order, spacing or the brackets. It now interpolates a string of its own. Not `default_named`, whose markup styles the parenthetical for the settings dialog: a menu item's label is plain text. Co-Authored-By: Claude Opus 5 (1M context) --- locales/en/app.json | 1 + src/components/MediaMuteAndSwitchButton.tsx | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/locales/en/app.json b/locales/en/app.json index e0bc72db1..7c277b811 100644 --- a/locales/en/app.json +++ b/locales/en/app.json @@ -227,6 +227,7 @@ "change_device_button": "Change audio device", "default": "Default", "default_named": "Default <2>({{name}})", + "default_named_plain": "Default ({{name}})", "handset": "Handset", "loudspeaker": "Loudspeaker", "microphone": "Microphone", diff --git a/src/components/MediaMuteAndSwitchButton.tsx b/src/components/MediaMuteAndSwitchButton.tsx index b41abc53f..226c3d02b 100644 --- a/src/components/MediaMuteAndSwitchButton.tsx +++ b/src/components/MediaMuteAndSwitchButton.tsx @@ -374,7 +374,7 @@ function SpeakerSection({ case "default": return label.name === null ? t("settings.devices.default") - : `${t("settings.devices.default")} (${label.name})`; + : t("settings.devices.default_named_plain", { name: label.name }); } }; const icon = (