fix(setup): stop repeating the consent and dictation step titles

STEP_SUBTITLES.consent and STEP_SUBTITLES.dictation reused the exact
same i18n key as the step's title/label, and each step's body then
rendered a SectionHead with that same key again, on top of the step's
own content component rendering its own heading — showing the same
phrase 2-3 times on screen.

Give both steps a genuine short description (consent.desc,
setup.try_dictation_desc) for the header subtitle, matching the
system/models steps' existing pattern, and drop the now-redundant
SectionHead in each step's body since the content component
(AnalyticsConsentCard, DictationDemo) already renders its own title.

The two new keys are translated into all 21 locales to hold the
locale-parity ratchet (tests/test_locale_parity.py) at its current
baseline.

Closes #1855
This commit is contained in:
Som
2026-09-08 15:26:11 +00:00
parent 8f140e550d
commit 56a420a898
23 changed files with 57 additions and 6 deletions
+2
View File
@@ -717,6 +717,7 @@
},
"consent": {
"title": "المساعدة في تحسين VoiceStudio؟",
"desc": "إحصاءات استخدام مجهولة الهوية وخالية من المحتوى تساعدنا على إصلاح الأخطاء بشكل أسرع — اختيارية تمامًا ومعطّلة افتراضيًا.",
"step_label": "تحسين VoiceStudio",
"body": "إحصاءات استخدام مجهولة الهوية وخالية من المحتوى: أي المحركات تُستخدم، وكم تستغرق عمليات التوليد، ونوع الأخطاء. لن يُرسل أبدًا نصك أو صوتك أو ملفاتك أو أي شيء يحدد هويتك. لا يُرسل أي شيء ما لم توافق، ويمكنك تغيير رأيك في أي وقت من الإعدادات ← الخصوصية.",
"learn_more": "ما الذي يُرسل بالضبط؟",
@@ -1553,6 +1554,7 @@
"open": "مفتوح",
"install_required_models": "قم بتثبيت النماذج المطلوبة أعلاه للمتابعة.",
"try_dictation": "حاول الإملاء",
"try_dictation_desc": "اضغط على اختصارك مرة واحدة للتأكد من أن الإملاء يعمل قبل إنهاء الإعداد.",
"next_try_dictation": "التالي: حاول الإملاء",
"step_aria": "الخطوة {{num}}: {{label}}",
"step_completed": "مكتملة",
+2
View File
@@ -717,6 +717,7 @@
},
"consent": {
"title": "VoiceStudio verbessern helfen?",
"desc": "Anonyme, inhaltsfreie Nutzungsstatistiken, die uns helfen, Fehler schneller zu beheben — völlig optional und standardmäßig deaktiviert.",
"step_label": "VoiceStudio verbessern",
"body": "Anonyme, inhaltsfreie Nutzungsstatistiken: welche Engines verwendet werden, wie lange Generierungen dauern und die Art von Fehlern. Niemals Ihr Text, Ihr Audio, Ihre Dateien oder etwas, das Sie identifiziert. Es wird nichts gesendet, solange Sie nicht zustimmen — und Sie können Ihre Entscheidung jederzeit unter Einstellungen → Datenschutz ändern.",
"learn_more": "Was genau wird gesendet?",
@@ -1553,6 +1554,7 @@
"open": "Offen",
"install_required_models": "Installieren Sie die oben genannten erforderlichen Modelle, um fortzufahren.",
"try_dictation": "Versuchen Sie es mit Diktat",
"try_dictation_desc": "Drücke einmal deine Tastenkombination, um sicherzugehen, dass die Diktierfunktion funktioniert, bevor du die Einrichtung abschließt.",
"next_try_dictation": "Als nächstes: Versuchen Sie es mit dem Diktat",
"step_aria": "Schritt {{num}}: {{label}}",
"step_completed": "abgeschlossen",
+2
View File
@@ -1020,6 +1020,7 @@
},
"consent": {
"title": "Help improve VoiceStudio?",
"desc": "Anonymous, content-free usage stats that help us fix bugs faster — entirely optional, off by default.",
"step_label": "Improve VoiceStudio",
"body": "Anonymous, content-free usage stats: which engines are used, how long generations take, and the type of errors. Never your text, your audio, your files, or anything identifying you. Nothing is sent unless you say yes, and you can change your mind anytime in Settings → Privacy.",
"learn_more": "What exactly is sent?",
@@ -1831,6 +1832,7 @@
"open": "Open",
"install_required_models": "Install the required models above to continue.",
"try_dictation": "Try dictation",
"try_dictation_desc": "Press your shortcut once so you know dictation works before you finish setup.",
"next_try_dictation": "Next: Try dictation",
"step_aria": "Step {{num}}: {{label}}",
"step_completed": "completed",
+2
View File
@@ -717,6 +717,7 @@
},
"consent": {
"title": "¿Ayudar a mejorar VoiceStudio?",
"desc": "Estadísticas de uso anónimas y sin contenido que nos ayudan a corregir errores más rápido — totalmente opcional y desactivado de forma predeterminada.",
"step_label": "Mejorar VoiceStudio",
"body": "Estadísticas de uso anónimas y sin contenido: qué motores se usan, cuánto tardan las generaciones y el tipo de errores. Nunca tu texto, tu audio, tus archivos ni nada que te identifique. No se envía nada a menos que digas que sí, y puedes cambiar de opinión en cualquier momento en Ajustes → Privacidad.",
"learn_more": "¿Qué se envía exactamente?",
@@ -1553,6 +1554,7 @@
"open": "Abierto",
"install_required_models": "Instale los modelos requeridos arriba para continuar.",
"try_dictation": "Prueba el dictado",
"try_dictation_desc": "Pulsa tu atajo una vez para comprobar que el dictado funciona antes de terminar la configuración.",
"next_try_dictation": "Siguiente: Prueba el dictado",
"step_aria": "Paso {{num}}: {{label}}",
"step_completed": "completado",
+2
View File
@@ -717,6 +717,7 @@
},
"consent": {
"title": "Aider à améliorer VoiceStudio ?",
"desc": "Statistiques d'utilisation anonymes et sans contenu qui nous aident à corriger les bugs plus vite — entièrement facultatif, désactivé par défaut.",
"step_label": "Améliorer VoiceStudio",
"body": "Statistiques d'utilisation anonymes, sans contenu : quels moteurs sont utilisés, la durée des générations et le type d'erreurs. Jamais votre texte, votre audio, vos fichiers ni rien qui vous identifie. Rien n'est envoyé sans votre accord, et vous pouvez changer d'avis à tout moment dans Réglages → Confidentialité.",
"learn_more": "Qu'est-ce qui est envoyé exactement ?",
@@ -1553,6 +1554,7 @@
"open": "Ouvert",
"install_required_models": "Installez les modèles requis ci-dessus pour continuer.",
"try_dictation": "Essayez la dictée",
"try_dictation_desc": "Appuyez une fois sur votre raccourci pour vérifier que la dictée fonctionne avant de terminer la configuration.",
"next_try_dictation": "Suivant : Essayez la dictée",
"step_aria": "Étape {{num}} : {{label}}",
"step_completed": "terminée",
+2
View File
@@ -717,6 +717,7 @@
},
"consent": {
"title": "VoiceStudio को बेहतर बनाने में मदद करें?",
"desc": "गुमनाम, सामग्री-रहित उपयोग आँकड़े जो हमें बग जल्दी ठीक करने में मदद करते हैं — पूरी तरह वैकल्पिक, डिफ़ॉल्ट रूप से बंद।",
"step_label": "VoiceStudio को बेहतर बनाएँ",
"body": "गुमनाम, सामग्री-रहित उपयोग आँकड़े: कौन से इंजन उपयोग होते हैं, जनरेशन में कितना समय लगता है, और त्रुटियों का प्रकार। कभी भी आपका टेक्स्ट, ऑडियो, फ़ाइलें या आपकी पहचान बताने वाली कोई चीज़ नहीं। जब तक आप हाँ नहीं कहते, कुछ भी नहीं भेजा जाता, और आप कभी भी सेटिंग्स → गोपनीयता में अपना निर्णय बदल सकते हैं।",
"learn_more": "वास्तव में क्या भेजा जाता है?",
@@ -1553,6 +1554,7 @@
"open": "खुला",
"install_required_models": "जारी रखने के लिए उपरोक्त आवश्यक मॉडल स्थापित करें।",
"try_dictation": "श्रुतलेख का प्रयास करें",
"try_dictation_desc": "सेटअप पूरा करने से पहले यह जांचने के लिए अपना शॉर्टकट एक बार दबाएँ कि डिक्टेशन काम कर रहा है।",
"next_try_dictation": "अगला: श्रुतलेख का प्रयास करें",
"step_aria": "चरण {{num}}: {{label}}",
"step_completed": "पूर्ण",
+2
View File
@@ -717,6 +717,7 @@
},
"consent": {
"title": "Bantu meningkatkan VoiceStudio?",
"desc": "Statistik penggunaan anonim dan bebas konten yang membantu kami memperbaiki bug lebih cepat — sepenuhnya opsional, nonaktif secara default.",
"step_label": "Tingkatkan VoiceStudio",
"body": "Statistik penggunaan anonim tanpa konten: mesin mana yang digunakan, berapa lama proses pembuatan, dan jenis kesalahan. Tidak pernah teks Anda, audio Anda, file Anda, atau apa pun yang mengidentifikasi Anda. Tidak ada yang dikirim kecuali Anda setuju, dan Anda dapat berubah pikiran kapan saja di Pengaturan → Privasi.",
"learn_more": "Apa saja yang sebenarnya dikirim?",
@@ -1553,6 +1554,7 @@
"open": "Buka",
"install_required_models": "Instal model yang diperlukan di atas untuk melanjutkan.",
"try_dictation": "Coba dikte",
"try_dictation_desc": "Tekan pintasan Anda sekali untuk memastikan dikte berfungsi sebelum menyelesaikan penyiapan.",
"next_try_dictation": "Berikutnya: Coba dikte",
"step_aria": "Langkah {{num}}: {{label}}",
"step_completed": "selesai",
+2
View File
@@ -717,6 +717,7 @@
},
"consent": {
"title": "Aiutare a migliorare VoiceStudio?",
"desc": "Statistiche di utilizzo anonime e prive di contenuti che ci aiutano a correggere i bug più velocemente — del tutto facoltative, disattivate per impostazione predefinita.",
"step_label": "Migliora VoiceStudio",
"body": "Statistiche d'uso anonime e prive di contenuti: quali motori vengono usati, quanto durano le generazioni e il tipo di errori. Mai il tuo testo, il tuo audio, i tuoi file o qualcosa che ti identifichi. Non viene inviato nulla senza il tuo consenso, e puoi cambiare idea in qualsiasi momento in Impostazioni → Privacy.",
"learn_more": "Cosa viene inviato esattamente?",
@@ -1553,6 +1554,7 @@
"open": "Aperto",
"install_required_models": "Installa i modelli richiesti sopra per continuare.",
"try_dictation": "Prova la dettatura",
"try_dictation_desc": "Premi la tua scorciatoia una volta per verificare che la dettatura funzioni prima di completare la configurazione.",
"next_try_dictation": "Successiva: Prova la dettatura",
"step_aria": "Passaggio {{num}}: {{label}}",
"step_completed": "completato",
+2
View File
@@ -717,6 +717,7 @@
},
"consent": {
"title": "VoiceStudio の改善に協力しますか?",
"desc": "バグをより早く修正するのに役立つ、匿名でコンテンツを含まない利用統計 — 完全に任意で、デフォルトではオフです。",
"step_label": "VoiceStudio の改善",
"body": "匿名でコンテンツを含まない使用統計です。使用したエンジン、生成にかかった時間、エラーの種類のみを送信します。あなたのテキスト、音声、ファイル、あなたを特定できる情報は決して送信されません。同意しない限り何も送信されず、設定 → プライバシーでいつでも変更できます。",
"learn_more": "実際に送信される内容は?",
@@ -1553,6 +1554,7 @@
"open": "開く",
"install_required_models": "続行するには、上記の必要なモデルをインストールしてください。",
"try_dictation": "ディクテーションを試してみる",
"try_dictation_desc": "セットアップを完了する前に、ショートカットを一度押してディクテーションが機能することを確認してください。",
"next_try_dictation": "次へ: ディクテーションを試してみる",
"step_aria": "ステップ {{num}}: {{label}}",
"step_completed": "完了",
+2
View File
@@ -960,6 +960,7 @@
},
"consent": {
"title": "VoiceStudio 개선에 참여하시겠어요?",
"desc": "버그를 더 빨리 해결하는 데 도움이 되는 익명의 콘텐츠 없는 사용 통계 — 완전히 선택 사항이며 기본적으로 꺼져 있습니다.",
"step_label": "VoiceStudio 개선",
"body": "익명의 콘텐츠 없는 사용 통계입니다: 어떤 엔진이 사용되는지, 생성에 걸리는 시간, 오류 유형만 전송됩니다. 당신의 텍스트, 오디오, 파일, 신원을 알 수 있는 정보는 절대 전송되지 않습니다. 동의하지 않는 한 아무것도 전송되지 않으며, 설정 → 개인정보에서 언제든지 변경할 수 있습니다.",
"learn_more": "정확히 무엇이 전송되나요?",
@@ -1856,6 +1857,7 @@
"open": "열기",
"install_required_models": "계속하려면 위의 필수 모델을 설치하세요.",
"try_dictation": "받아쓰기를 시도해보세요",
"try_dictation_desc": "설정을 마치기 전에 단축키를 한 번 눌러 받아쓰기가 작동하는지 확인하세요.",
"next_try_dictation": "다음: 받아쓰기 사용해 보기",
"step_aria": "{{num}}단계: {{label}}",
"step_completed": "완료됨",
+2
View File
@@ -717,6 +717,7 @@
},
"consent": {
"title": "Helpen VoiceStudio te verbeteren?",
"desc": "Anonieme, inhoudsvrije gebruiksstatistieken die ons helpen bugs sneller op te lossen — volledig optioneel en standaard uitgeschakeld.",
"step_label": "VoiceStudio verbeteren",
"body": "Anonieme gebruiksstatistieken zonder inhoud: welke engines worden gebruikt, hoelang generaties duren en het type fouten. Nooit je tekst, je audio, je bestanden of iets dat jou identificeert. Er wordt niets verzonden tenzij je ja zegt, en je kunt je keuze altijd wijzigen in Instellingen → Privacy.",
"learn_more": "Wat wordt er precies verzonden?",
@@ -1553,6 +1554,7 @@
"open": "Openen",
"install_required_models": "Installeer de vereiste modellen hierboven om door te gaan.",
"try_dictation": "Probeer dicteren",
"try_dictation_desc": "Druk één keer op je sneltoets om te controleren of dictee werkt voordat je de installatie voltooit.",
"next_try_dictation": "Volgende: Probeer dicteren",
"step_aria": "Stap {{num}}: {{label}}",
"step_completed": "voltooid",
+2
View File
@@ -717,6 +717,7 @@
},
"consent": {
"title": "Pomóc ulepszyć VoiceStudio?",
"desc": "Anonimowe statystyki użytkowania bez treści, które pomagają nam szybciej naprawiać błędy — całkowicie opcjonalne, domyślnie wyłączone.",
"step_label": "Ulepsz VoiceStudio",
"body": "Anonimowe statystyki użycia bez treści: które silniki są używane, jak długo trwa generowanie i jaki jest typ błędów. Nigdy Twój tekst, dźwięk, pliki ani nic, co Cię identyfikuje. Nic nie jest wysyłane, dopóki nie wyrazisz zgody, a decyzję możesz zmienić w każdej chwili w Ustawienia → Prywatność.",
"learn_more": "Co dokładnie jest wysyłane?",
@@ -1553,6 +1554,7 @@
"open": "Otwórz",
"install_required_models": "Aby kontynuować, zainstaluj wymagane modele powyżej.",
"try_dictation": "Spróbuj dyktowania",
"try_dictation_desc": "Naciśnij swój skrót raz, aby upewnić się, że dyktowanie działa, zanim zakończysz konfigurację.",
"next_try_dictation": "Dalej: Wypróbuj dyktowanie",
"step_aria": "Krok {{num}}: {{label}}",
"step_completed": "ukończono",
+2
View File
@@ -717,6 +717,7 @@
},
"consent": {
"title": "Ajudar a melhorar o VoiceStudio?",
"desc": "Estatísticas de uso anônimas e sem conteúdo que nos ajudam a corrigir bugs mais rápido — totalmente opcional, desativado por padrão.",
"step_label": "Melhorar o VoiceStudio",
"body": "Estatísticas de uso anônimas e sem conteúdo: quais mecanismos são usados, quanto tempo as gerações levam e o tipo de erros. Nunca o seu texto, o seu áudio, os seus arquivos ou qualquer coisa que o identifique. Nada é enviado a menos que você aceite, e você pode mudar de ideia a qualquer momento em Configurações → Privacidade.",
"learn_more": "O que exatamente é enviado?",
@@ -1553,6 +1554,7 @@
"open": "Abrir",
"install_required_models": "Instale os modelos necessários acima para continuar.",
"try_dictation": "Experimente o ditado",
"try_dictation_desc": "Pressione seu atalho uma vez para confirmar que o ditado funciona antes de concluir a configuração.",
"next_try_dictation": "Próximo: Experimente o ditado",
"step_aria": "Etapa {{num}}: {{label}}",
"step_completed": "concluída",
+2
View File
@@ -717,6 +717,7 @@
},
"consent": {
"title": "Помочь улучшить VoiceStudio?",
"desc": "Анонимная, не содержащая контента статистика использования, которая помогает нам быстрее исправлять ошибки — полностью необязательно, по умолчанию отключено.",
"step_label": "Улучшить VoiceStudio",
"body": "Анонимная статистика использования без содержимого: какие движки используются, сколько длится генерация и тип ошибок. Никогда — ваш текст, аудио, файлы или что-либо, идентифицирующее вас. Ничего не отправляется без вашего согласия, и вы можете изменить решение в любой момент в Настройки → Конфиденциальность.",
"learn_more": "Что именно отправляется?",
@@ -1553,6 +1554,7 @@
"open": "Открыть",
"install_required_models": "Установите необходимые модели, указанные выше, чтобы продолжить.",
"try_dictation": "Попробуйте диктовку",
"try_dictation_desc": "Нажмите сочетание клавиш один раз, чтобы убедиться, что надиктовка работает, прежде чем завершить настройку.",
"next_try_dictation": "Далее: Попробуйте диктовку",
"step_aria": "Шаг {{num}}: {{label}}",
"step_completed": "завершён",
+2
View File
@@ -717,6 +717,7 @@
},
"consent": {
"title": "Hjälpa till att förbättra VoiceStudio?",
"desc": "Anonym användningsstatistik utan innehåll som hjälper oss att fixa buggar snabbare — helt valfritt, avstängt som standard.",
"step_label": "Förbättra VoiceStudio",
"body": "Anonym användningsstatistik utan innehåll: vilka motorer som används, hur lång tid genereringar tar och typen av fel. Aldrig din text, ditt ljud, dina filer eller något som identifierar dig. Inget skickas om du inte säger ja, och du kan ändra dig när som helst i Inställningar → Integritet.",
"learn_more": "Vad skickas egentligen?",
@@ -1553,6 +1554,7 @@
"open": "Öppna",
"install_required_models": "Installera de modeller som krävs ovan för att fortsätta.",
"try_dictation": "Prova diktering",
"try_dictation_desc": "Tryck på din genväg en gång för att se att diktering fungerar innan du slutför installationen.",
"next_try_dictation": "Nästa: Prova diktering",
"step_aria": "Steg {{num}}: {{label}}",
"step_completed": "klart",
+2
View File
@@ -717,6 +717,7 @@
},
"consent": {
"title": "ช่วยปรับปรุง VoiceStudio ไหม?",
"desc": "สถิติการใช้งานแบบไม่ระบุตัวตนและไม่มีเนื้อหา ที่ช่วยให้เราแก้ไขบั๊กได้เร็วขึ้น — เป็นทางเลือกทั้งหมด ปิดอยู่โดยค่าเริ่มต้น",
"step_label": "ปรับปรุง VoiceStudio",
"body": "สถิติการใช้งานแบบไม่ระบุตัวตนและไม่มีเนื้อหา: ใช้เอนจินใด การสร้างใช้เวลานานเท่าใด และประเภทของข้อผิดพลาด ไม่มีวันส่งข้อความ เสียง ไฟล์ของคุณ หรือสิ่งใดที่ระบุตัวตนของคุณ จะไม่มีการส่งข้อมูลใด ๆ เว้นแต่คุณจะตอบตกลง และคุณเปลี่ยนใจได้ทุกเมื่อใน การตั้งค่า → ความเป็นส่วนตัว",
"learn_more": "ส่งอะไรบ้างกันแน่?",
@@ -1553,6 +1554,7 @@
"open": "เปิด",
"install_required_models": "ติดตั้งรุ่นที่จำเป็นด้านบนเพื่อดำเนินการต่อ",
"try_dictation": "ลองเขียนตามคำบอก",
"try_dictation_desc": "กดปุ่มลัดของคุณหนึ่งครั้งเพื่อให้แน่ใจว่าการสั่งงานด้วยเสียงทำงานก่อนที่คุณจะตั้งค่าเสร็จ",
"next_try_dictation": "ถัดไป: ลองใช้การเขียนตามคำบอก",
"step_aria": "ขั้นตอนที่ {{num}}: {{label}}",
"step_completed": "เสร็จสิ้น",
+2
View File
@@ -717,6 +717,7 @@
},
"consent": {
"title": "VoiceStudio'un gelişmesine yardım eder misiniz?",
"desc": "Hataları daha hızlı düzeltmemize yardımcı olan, anonim ve içerik barındırmayan kullanım istatistikleri — tamamen isteğe bağlı, varsayılan olarak kapalı.",
"step_label": "VoiceStudio'u geliştir",
"body": "Anonim, içerik barındırmayan kullanım istatistikleri: hangi motorların kullanıldığı, üretimlerin ne kadar sürdüğü ve hata türleri. Asla metniniz, sesiniz, dosyalarınız veya sizi tanımlayan hiçbir şey gönderilmez. Evet demedikçe hiçbir şey gönderilmez ve kararınızı istediğiniz zaman Ayarlar → Gizlilik'ten değiştirebilirsiniz.",
"learn_more": "Tam olarak ne gönderiliyor?",
@@ -1553,6 +1554,7 @@
"open": "Açık",
"install_required_models": "Devam etmek için yukarıdaki gerekli modelleri yükleyin.",
"try_dictation": "Dikte etmeyi deneyin",
"try_dictation_desc": "Kurulumu bitirmeden önce dikteyi çalıştığından emin olmak için kısayolunuza bir kez basın.",
"next_try_dictation": "Sonraki: Dikteyi deneyin",
"step_aria": "Adım {{num}}: {{label}}",
"step_completed": "tamamlandı",
+2
View File
@@ -717,6 +717,7 @@
},
"consent": {
"title": "Допомогти покращити VoiceStudio?",
"desc": "Анонімна статистика використання без вмісту, яка допомагає нам швидше виправляти помилки — повністю необов'язково, вимкнено за замовчуванням.",
"step_label": "Покращити VoiceStudio",
"body": "Анонімна статистика використання без вмісту: які рушії використовуються, скільки триває генерація та тип помилок. Ніколи — ваш текст, аудіо, файли чи будь-що, що вас ідентифікує. Нічого не надсилається без вашої згоди, і ви можете змінити рішення будь-коли в Налаштування → Приватність.",
"learn_more": "Що саме надсилається?",
@@ -1553,6 +1554,7 @@
"open": "відкритий",
"install_required_models": "Щоб продовжити, установіть необхідні моделі вище.",
"try_dictation": "Спробуйте диктант",
"try_dictation_desc": "Натисніть своє поєднання клавіш один раз, щоб переконатися, що диктування працює, перш ніж завершити налаштування.",
"next_try_dictation": "Далі: спробуйте надиктувати",
"step_aria": "Крок {{num}}: {{label}}",
"step_completed": "завершено",
+2
View File
@@ -717,6 +717,7 @@
},
"consent": {
"title": "Giúp cải thiện VoiceStudio?",
"desc": "Số liệu thống kê sử dụng ẩn danh, không chứa nội dung, giúp chúng tôi sửa lỗi nhanh hơn — hoàn toàn tùy chọn, mặc định tắt.",
"step_label": "Cải thiện VoiceStudio",
"body": "Thống kê sử dụng ẩn danh, không chứa nội dung: engine nào được dùng, thời gian tạo mất bao lâu và loại lỗi. Không bao giờ gửi văn bản, âm thanh, tệp của bạn hay bất cứ thứ gì nhận dạng bạn. Không có gì được gửi trừ khi bạn đồng ý, và bạn có thể đổi ý bất cứ lúc nào trong Cài đặt → Quyền riêng tư.",
"learn_more": "Chính xác thì những gì được gửi?",
@@ -1553,6 +1554,7 @@
"open": "Mở",
"install_required_models": "Cài đặt các mô hình cần thiết ở trên để tiếp tục.",
"try_dictation": "Thử đọc chính tả",
"try_dictation_desc": "Nhấn phím tắt của bạn một lần để chắc chắn tính năng đọc chính tả hoạt động trước khi hoàn tất thiết lập.",
"next_try_dictation": "Tiếp theo: Thử đọc chính tả",
"step_aria": "Bước {{num}}: {{label}}",
"step_completed": "đã hoàn thành",
+2
View File
@@ -674,6 +674,7 @@
},
"consent": {
"title": "帮助改进 VoiceStudio",
"desc": "匿名且不含内容的使用统计,可帮助我们更快修复问题——完全可选,默认关闭。",
"step_label": "改进 VoiceStudio",
"body": "匿名且不含内容的使用统计:使用了哪些引擎、生成耗时多久,以及错误的类型。绝不会发送你的文本、音频、文件或任何可识别你身份的信息。除非你同意,否则不会发送任何数据;你可以随时在 设置 → 隐私 中更改选择。",
"learn_more": "究竟会发送什么?",
@@ -1512,6 +1513,7 @@
"open": "打开",
"install_required_models": "请先安装以上必需模型。",
"try_dictation": "试用听写",
"try_dictation_desc": "完成设置前,按一次快捷键确认听写功能可以正常使用。",
"next_try_dictation": "下一步:试用听写",
"step_aria": "第 {{num}} 步:{{label}}",
"step_completed": "已完成",
+2
View File
@@ -717,6 +717,7 @@
},
"consent": {
"title": "協助改進 VoiceStudio",
"desc": "匿名且不含內容的使用統計,能協助我們更快修正錯誤——完全可選,預設為關閉。",
"step_label": "改進 VoiceStudio",
"body": "匿名且不含內容的使用統計:使用了哪些引擎、生成花費多久,以及錯誤的類型。絕不會傳送你的文字、音訊、檔案或任何可識別你身分的資訊。除非你同意,否則不會傳送任何資料;你可以隨時在 設定 → 隱私 中變更選擇。",
"learn_more": "究竟會傳送什麼?",
@@ -1553,6 +1554,7 @@
"open": "打開",
"install_required_models": "安裝上面所需的模型以繼續。",
"try_dictation": "試著聽寫",
"try_dictation_desc": "完成設定前,按一次快捷鍵確認聽寫功能可以正常運作。",
"next_try_dictation": "下一步:嘗試聽寫",
"step_aria": "第 {{num}} 步:{{label}}",
"step_completed": "已完成",
+8 -4
View File
@@ -284,8 +284,14 @@ export default function SetupWizard({ onReady }) {
const STEP_SUBTITLES = {
system: t('setup.system_check_desc'),
models: t('setup.install_models_desc'),
consent: t('consent.title', 'Help improve VoiceStudio?'),
dictation: t('setup.try_dictation'),
consent: t(
'consent.desc',
'Anonymous, content-free usage stats that help us fix bugs faster — entirely optional, off by default.'
),
dictation: t(
'setup.try_dictation_desc',
'Press your shortcut once so you know dictation works before you finish setup.'
),
};
const STEP_LABELS = {
system: t('setup.system_check'),
@@ -440,7 +446,6 @@ export default function SetupWizard({ onReady }) {
className="fr-rise flex min-h-0 flex-1 flex-col gap-2.5"
style={{ '--rise': 1 }}
>
<SectionHead>{t('consent.title', 'Help improve VoiceStudio?')}</SectionHead>
<div className="min-h-0 flex-1 overflow-y-auto pt-2">
<AnalyticsConsentCard onDone={() => setStep(step + 1)} />
</div>
@@ -464,7 +469,6 @@ export default function SetupWizard({ onReady }) {
className="fr-rise flex min-h-0 flex-1 flex-col gap-2.5"
style={{ '--rise': 1 }}
>
<SectionHead>{t('setup.try_dictation')}</SectionHead>
<div className="max-h-[min(58vh,640px)] min-w-0 overflow-y-auto rounded-lg">
<DictationDemo />
</div>
@@ -75,8 +75,9 @@ describe('SetupWizard analytics consent step', () => {
expect(await screen.findByText(/Improve VoiceStudio/i)).toBeInTheDocument();
await advancePastModels();
// Headline appears (masthead subtitle + section head + card title).
expect((await screen.findAllByText(/Help improve VoiceStudio\?/i)).length).toBeGreaterThan(0);
// The title renders exactly once (the card's own heading) the masthead
// subtitle and the section head no longer repeat it (#1855).
expect(await screen.findAllByText(/Help improve VoiceStudio\?/i)).toHaveLength(1);
// Two equal-weight choices, no preselected default.
expect(screen.getByTestId('analytics-consent-yes')).toBeInTheDocument();
expect(screen.getByTestId('analytics-consent-no')).toBeInTheDocument();
@@ -144,6 +145,10 @@ describe('SetupWizard analytics consent step', () => {
expect(await screen.findByText(/Enter studio/i)).toBeInTheDocument();
expect(screen.queryByText(/Help improve VoiceStudio\?/i)).not.toBeInTheDocument();
expect(apiFetch).not.toHaveBeenCalled();
// The dictation step's title renders exactly once (the step-rail label)
// the masthead subtitle no longer repeats it, and the redundant
// section head above the demo was removed (#1855).
expect(screen.getAllByText(/Try dictation/i)).toHaveLength(1);
});
it('shows NO consent step when the user was already asked', async () => {