From 714c39cf47779fd759691c57a4bfefa15e6400ca Mon Sep 17 00:00:00 2001 From: Tommaso Casaburi Date: Tue, 17 Mar 2026 19:09:29 +0800 Subject: [PATCH] feat(settings): add expanded video auto-unmute preference (#1104) * feat(settings): add expanded video auto-unmute preference * fix(translations): add missing unmute labels * fix(translations): localize unmute label --- public/translations/ar/default.json | 4 ++- public/translations/bn/default.json | 4 ++- public/translations/cs/default.json | 4 ++- public/translations/da/default.json | 4 ++- public/translations/de/default.json | 4 ++- public/translations/el/default.json | 4 ++- public/translations/en/default.json | 2 ++ public/translations/es/default.json | 4 ++- public/translations/fa/default.json | 4 ++- public/translations/fi/default.json | 4 ++- public/translations/fil/default.json | 4 ++- public/translations/fr/default.json | 4 ++- public/translations/he/default.json | 4 ++- public/translations/hi/default.json | 4 ++- public/translations/hu/default.json | 4 ++- public/translations/id/default.json | 4 ++- public/translations/it/default.json | 4 ++- public/translations/ja/default.json | 4 ++- public/translations/ko/default.json | 4 ++- public/translations/mr/default.json | 4 ++- public/translations/nl/default.json | 4 ++- public/translations/no/default.json | 4 ++- public/translations/pl/default.json | 4 ++- public/translations/pt/default.json | 4 ++- public/translations/ro/default.json | 4 ++- public/translations/ru/default.json | 4 ++- public/translations/sq/default.json | 4 ++- public/translations/sv/default.json | 4 ++- public/translations/te/default.json | 4 ++- public/translations/th/default.json | 4 ++- public/translations/tr/default.json | 4 ++- public/translations/uk/default.json | 4 ++- public/translations/ur/default.json | 4 ++- public/translations/vi/default.json | 4 ++- public/translations/zh/default.json | 4 ++- .../__tests__/comment-media.test.tsx | 35 +++++++++++++++++++ .../comment-media/comment-media.tsx | 4 +-- .../__tests__/interface-settings.test.tsx | 24 ++++++++++++- .../interface-settings.module.css | 2 +- .../interface-settings/interface-settings.tsx | 9 ++++- src/stores/__tests__/ui-state-stores.test.ts | 6 +++- src/stores/use-expanded-media-store.ts | 4 +++ 42 files changed, 182 insertions(+), 40 deletions(-) diff --git a/public/translations/ar/default.json b/public/translations/ar/default.json index 2dab5c0f..e8c9e70f 100644 --- a/public/translations/ar/default.json +++ b/public/translations/ar/default.json @@ -318,5 +318,7 @@ "report_post": "الإبلاغ عن المنشور", "delete_post": "حذف المنشور", "delete_post_confirm": "حذف هذا المنشور نهائياً؟ لا يمكن التراجع عن هذا.", - "app_p2p_info": "يمكنك دائمًا الاتصال بأي لوحة، بشكل كامل P2P، لا أحد يستطيع إيقافك. ما عليك سوى لصق عنوانها في حقل البحث أعلاه." + "app_p2p_info": "يمكنك دائمًا الاتصال بأي لوحة، بشكل كامل P2P، لا أحد يستطيع إيقافك. ما عليك سوى لصق عنوانها في حقل البحث أعلاه.", + "unmute_video_sound_tip": "إلغاء كتم الصوت تلقائياً عند تشغيل الفيديو", + "unmute_video_sound": "إلغاء كتم الصوت تلقائياً عند تشغيل الفيديو" } diff --git a/public/translations/bn/default.json b/public/translations/bn/default.json index da0173e0..02867dad 100644 --- a/public/translations/bn/default.json +++ b/public/translations/bn/default.json @@ -318,5 +318,7 @@ "report_post": "পোস্ট রিপোর্ট করুন", "delete_post": "পোস্ট মুছুন", "delete_post_confirm": "এই পোস্ট স্থায়ীভাবে মুছে ফেলবেন? এটি অপ্রত্যাবর্তনীয়।", - "app_p2p_info": "আপনি যেকোনো বোর্ডে সর্বদা সংযোগ করতে পারেন, সম্পূর্ণ P2P, কেউ আপনাকে থামাতে পারবে না। উপরের অনুসন্ধান ক্ষেত্রে কেবল তার ঠিকানা পেস্ট করুন।" + "app_p2p_info": "আপনি যেকোনো বোর্ডে সর্বদা সংযোগ করতে পারেন, সম্পূর্ণ P2P, কেউ আপনাকে থামাতে পারবে না। উপরের অনুসন্ধান ক্ষেত্রে কেবল তার ঠিকানা পেস্ট করুন।", + "unmute_video_sound_tip": "ভিডিও চালানোর সময় স্বয়ংক্রিয়ভাবে সাউন্ড আনমিউট করুন", + "unmute_video_sound": "ভিডিও চালানোর সময় স্বয়ংক্রিয়ভাবে সাউন্ড আনমিউট করুন" } diff --git a/public/translations/cs/default.json b/public/translations/cs/default.json index 4f9721c1..37f7209d 100644 --- a/public/translations/cs/default.json +++ b/public/translations/cs/default.json @@ -318,5 +318,7 @@ "report_post": "Nahlásit příspěvek", "delete_post": "Smazat příspěvek", "delete_post_confirm": "Nadobro smazat tento příspěvek? Tuto akci nelze vrátit zpět.", - "app_p2p_info": "K jakékoli desce se můžete kdykoli připojit, plně P2P, nikdo vás nemůže zastavit. Stačí vložit její adresu do vyhledávacího pole výše." + "app_p2p_info": "K jakékoli desce se můžete kdykoli připojit, plně P2P, nikdo vás nemůže zastavit. Stačí vložit její adresu do vyhledávacího pole výše.", + "unmute_video_sound_tip": "Automaticky zapnout zvuk při přehrávání videa", + "unmute_video_sound": "Automaticky zapnout zvuk při přehrávání videa" } diff --git a/public/translations/da/default.json b/public/translations/da/default.json index 6cc58a6e..bd2471f4 100644 --- a/public/translations/da/default.json +++ b/public/translations/da/default.json @@ -318,5 +318,7 @@ "report_post": "Rapporter indlæg", "delete_post": "Slet indlæg", "delete_post_confirm": "Slet dette opslag permanent? Dette kan ikke fortrydes.", - "app_p2p_info": "Du kan altid forbinde til ethvert board, fuldt P2P, ingen kan stoppe dig. Indsæt blot dens adresse i søgefeltet ovenfor." + "app_p2p_info": "Du kan altid forbinde til ethvert board, fuldt P2P, ingen kan stoppe dig. Indsæt blot dens adresse i søgefeltet ovenfor.", + "unmute_video_sound_tip": "Slå automatisk lyd til under videoafspilning", + "unmute_video_sound": "Slå automatisk lyd til under videoafspilning" } diff --git a/public/translations/de/default.json b/public/translations/de/default.json index 8165d284..173eb239 100644 --- a/public/translations/de/default.json +++ b/public/translations/de/default.json @@ -318,5 +318,7 @@ "report_post": "Beitrag melden", "delete_post": "Beitrag löschen", "delete_post_confirm": "Diesen Beitrag dauerhaft löschen? Dies kann nicht rückgängig gemacht werden.", - "app_p2p_info": "Du kannst dich jederzeit mit jedem Board verbinden, vollständig P2P, niemand kann dich aufhalten. Füge einfach seine Adresse in das Suchfeld oben ein." + "app_p2p_info": "Du kannst dich jederzeit mit jedem Board verbinden, vollständig P2P, niemand kann dich aufhalten. Füge einfach seine Adresse in das Suchfeld oben ein.", + "unmute_video_sound_tip": "Ton beim Videowiedergabe automatisch aktivieren", + "unmute_video_sound": "Ton beim Videowiedergabe automatisch aktivieren" } diff --git a/public/translations/el/default.json b/public/translations/el/default.json index 65714a53..32788dee 100644 --- a/public/translations/el/default.json +++ b/public/translations/el/default.json @@ -318,5 +318,7 @@ "report_post": "Αναφορά ανάρτησης", "delete_post": "Διαγραφή ανάρτησης", "delete_post_confirm": "Διαγραφή οριστικά αυτής της ανάρτησης; Δεν είναι δυνατή η αναίρεση.", - "app_p2p_info": "Μπορείς πάντα να συνδεθείς σε οποιοδήποτε board, πλήρως P2P, κανείς δεν μπορεί να σε σταματήσει. Απλά επικόλλησε τη διεύθυνσή του στο πεδίο αναζήτησης παραπάνω." + "app_p2p_info": "Μπορείς πάντα να συνδεθείς σε οποιοδήποτε board, πλήρως P2P, κανείς δεν μπορεί να σε σταματήσει. Απλά επικόλλησε τη διεύθυνσή του στο πεδίο αναζήτησης παραπάνω.", + "unmute_video_sound_tip": "Αυτόματη ενεργοποίηση ήχου κατά την αναπαραγωγή βίντεο", + "unmute_video_sound": "Αυτόματη ενεργοποίηση ήχου κατά την αναπαραγωγή βίντεο" } diff --git a/public/translations/en/default.json b/public/translations/en/default.json index 320a4881..22ec059f 100644 --- a/public/translations/en/default.json +++ b/public/translations/en/default.json @@ -198,6 +198,8 @@ "delete_wallet": "Delete Wallet", "fit_expanded_images_to_screen": "Fit expanded images to screen", "fit_expanded_images_to_screen_tip": "Limit expanded images to both browser width and height", + "unmute_video_sound": "Un-mute video sound", + "unmute_video_sound_tip": "Un-mute sound automatically for video playback", "choose_file": "Choose File", "uploading": "uploading...", "no_file_chosen": "No file chosen", diff --git a/public/translations/es/default.json b/public/translations/es/default.json index 7c637fa1..b6232ba7 100644 --- a/public/translations/es/default.json +++ b/public/translations/es/default.json @@ -318,5 +318,7 @@ "report_post": "Denunciar publicación", "delete_post": "Eliminar publicación", "delete_post_confirm": "¿Eliminar esta publicación permanentemente? Esto no se puede deshacer.", - "app_p2p_info": "Siempre puedes conectarte a cualquier tablón, totalmente P2P, nadie puede impedírtelo. Simplemente pega su dirección en el campo de búsqueda de arriba." + "app_p2p_info": "Siempre puedes conectarte a cualquier tablón, totalmente P2P, nadie puede impedírtelo. Simplemente pega su dirección en el campo de búsqueda de arriba.", + "unmute_video_sound_tip": "Activar el sonido automáticamente al reproducir vídeo", + "unmute_video_sound": "Activar el sonido automáticamente al reproducir vídeo" } diff --git a/public/translations/fa/default.json b/public/translations/fa/default.json index 1b76b928..1542a945 100644 --- a/public/translations/fa/default.json +++ b/public/translations/fa/default.json @@ -318,5 +318,7 @@ "report_post": "گزارش پست", "delete_post": "حذف پست", "delete_post_confirm": "این پست را برای همیشه حذف کن؟ این کار قابل بازگشت نیست.", - "app_p2p_info": "همیشه می‌توانید به هر بوردی متصل شوید، کاملاً P2P، هیچ‌کس نمی‌تواند جلوی شما را بگیرد. کافی است آدرس آن را در فیلد جستجوی بالا بچسبانید." + "app_p2p_info": "همیشه می‌توانید به هر بوردی متصل شوید، کاملاً P2P، هیچ‌کس نمی‌تواند جلوی شما را بگیرد. کافی است آدرس آن را در فیلد جستجوی بالا بچسبانید.", + "unmute_video_sound_tip": "غیرفعال کردن بی‌صدا به‌طور خودکار برای پخش ویدیو", + "unmute_video_sound": "غیرفعال کردن بی‌صدا به‌طور خودکار برای پخش ویدیو" } diff --git a/public/translations/fi/default.json b/public/translations/fi/default.json index 7916e61c..3c6da236 100644 --- a/public/translations/fi/default.json +++ b/public/translations/fi/default.json @@ -318,5 +318,7 @@ "report_post": "Ilmoita viestistä", "delete_post": "Poista viesti", "delete_post_confirm": "Poistetaanko tämä julkaisu pysyvästi? Tätä ei voi perua.", - "app_p2p_info": "Voit aina yhdistää mihin tahansa boardiin, täysin P2P, kukaan ei voi estää sinua. Liitä vain sen osoite yllä olevaan hakukenttään." + "app_p2p_info": "Voit aina yhdistää mihin tahansa boardiin, täysin P2P, kukaan ei voi estää sinua. Liitä vain sen osoite yllä olevaan hakukenttään.", + "unmute_video_sound_tip": "Ota ääni automaattisesti päälle videotoiston yhteydessä", + "unmute_video_sound": "Ota ääni automaattisesti päälle videotoiston yhteydessä" } diff --git a/public/translations/fil/default.json b/public/translations/fil/default.json index 4888abc2..58cb0d30 100644 --- a/public/translations/fil/default.json +++ b/public/translations/fil/default.json @@ -318,5 +318,7 @@ "report_post": "I-report ang post", "delete_post": "Tanggalin ang post", "delete_post_confirm": "Permanenteng tanggalin ang post na ito? Hindi na ito maibabalik.", - "app_p2p_info": "Maaari mong palaging kumonekta sa anumang board, ganap na P2P, walang makakapigil sa iyo. I-paste lamang ang address nito sa search field sa itaas." + "app_p2p_info": "Maaari mong palaging kumonekta sa anumang board, ganap na P2P, walang makakapigil sa iyo. I-paste lamang ang address nito sa search field sa itaas.", + "unmute_video_sound_tip": "I-unmute ang tunog nang awtomatiko kapag nagpe-play ng video", + "unmute_video_sound": "I-unmute ang tunog nang awtomatiko kapag nagpe-play ng video" } diff --git a/public/translations/fr/default.json b/public/translations/fr/default.json index 7ef59b01..bb36e367 100644 --- a/public/translations/fr/default.json +++ b/public/translations/fr/default.json @@ -318,5 +318,7 @@ "report_post": "Signaler la publication", "delete_post": "Supprimer la publication", "delete_post_confirm": "Supprimer définitivement cette publication ? Cette action est irréversible.", - "app_p2p_info": "Tu peux toujours te connecter à n'importe quel board, entièrement P2P, personne ne peut t'en empêcher. Colle simplement son adresse dans le champ de recherche ci-dessus." + "app_p2p_info": "Tu peux toujours te connecter à n'importe quel board, entièrement P2P, personne ne peut t'en empêcher. Colle simplement son adresse dans le champ de recherche ci-dessus.", + "unmute_video_sound_tip": "Activer le son automatiquement lors de la lecture vidéo", + "unmute_video_sound": "Activer le son automatiquement lors de la lecture vidéo" } diff --git a/public/translations/he/default.json b/public/translations/he/default.json index c12963c0..8078c8ed 100644 --- a/public/translations/he/default.json +++ b/public/translations/he/default.json @@ -318,5 +318,7 @@ "report_post": "דווח על פוסט", "delete_post": "מחק פוסט", "delete_post_confirm": "למחוק את הפוסט הזה לצמיתות? לא ניתן לבטל פעולה זו.", - "app_p2p_info": "תמיד תוכל להתחבר לכל לוח, במלואו P2P, אף אחד לא יכול לעצור אותך. פשוט הדבק את הכתובת שלו בשדה החיפוש למעלה." + "app_p2p_info": "תמיד תוכל להתחבר לכל לוח, במלואו P2P, אף אחד לא יכול לעצור אותך. פשוט הדבק את הכתובת שלו בשדה החיפוש למעלה.", + "unmute_video_sound_tip": "הפעל אוטומטית את הצליל בעת השמעת וידאו", + "unmute_video_sound": "הפעל אוטומטית את הצליל בעת השמעת וידאו" } diff --git a/public/translations/hi/default.json b/public/translations/hi/default.json index 79854e8b..7c3f1f61 100644 --- a/public/translations/hi/default.json +++ b/public/translations/hi/default.json @@ -318,5 +318,7 @@ "report_post": "पोस्ट की रिपोर्ट करें", "delete_post": "पोस्ट हटाएं", "delete_post_confirm": "क्या इस पोस्ट को स्थायी रूप से हटाया जाए? इसे पूर्ववत नहीं किया जा सकता।", - "app_p2p_info": "आप किसी भी बोर्ड से हमेशा कनेक्ट हो सकते हैं, पूरी तरह P2P, कोई आपको रोक नहीं सकता। बस ऊपर दिए गए खोज क्षेत्र में उसका पता पेस्ट करें।" + "app_p2p_info": "आप किसी भी बोर्ड से हमेशा कनेक्ट हो सकते हैं, पूरी तरह P2P, कोई आपको रोक नहीं सकता। बस ऊपर दिए गए खोज क्षेत्र में उसका पता पेस्ट करें।", + "unmute_video_sound_tip": "वीडियो चलाने पर स्वचालित रूप से साउंड अनम्यूट करें", + "unmute_video_sound": "वीडियो चलाने पर स्वचालित रूप से साउंड अनम्यूट करें" } diff --git a/public/translations/hu/default.json b/public/translations/hu/default.json index e97a54ba..b54ca049 100644 --- a/public/translations/hu/default.json +++ b/public/translations/hu/default.json @@ -318,5 +318,7 @@ "report_post": "Bejegyzés jelentése", "delete_post": "Bejegyzés törlése", "delete_post_confirm": "Végleg törölni ezt a bejegyzést? Ez nem vonható vissza.", - "app_p2p_info": "Bármikor csatlakozhatsz bármely boardhoz, teljesen P2P, senki sem állíthat meg. Egyszerűen illeszd be a címét a fenti keresőmezőbe." + "app_p2p_info": "Bármikor csatlakozhatsz bármely boardhoz, teljesen P2P, senki sem állíthat meg. Egyszerűen illeszd be a címét a fenti keresőmezőbe.", + "unmute_video_sound_tip": "Hang automatikus bekapcsolása videólejátszáskor", + "unmute_video_sound": "Hang automatikus bekapcsolása videólejátszáskor" } diff --git a/public/translations/id/default.json b/public/translations/id/default.json index d21002ff..efdc8ed0 100644 --- a/public/translations/id/default.json +++ b/public/translations/id/default.json @@ -318,5 +318,7 @@ "report_post": "Laporkan kiriman", "delete_post": "Hapus kiriman", "delete_post_confirm": "Hapus permanen postingan ini? Tindakan ini tidak dapat dibatalkan.", - "app_p2p_info": "Anda selalu dapat terhubung ke board mana pun, sepenuhnya P2P, tidak ada yang bisa menghentikan Anda. Cukup tempel alamatnya di kolom pencarian di atas." + "app_p2p_info": "Anda selalu dapat terhubung ke board mana pun, sepenuhnya P2P, tidak ada yang bisa menghentikan Anda. Cukup tempel alamatnya di kolom pencarian di atas.", + "unmute_video_sound_tip": "Aktifkan suara secara otomatis saat memutar video", + "unmute_video_sound": "Aktifkan suara secara otomatis saat memutar video" } diff --git a/public/translations/it/default.json b/public/translations/it/default.json index 4702ded4..58de2ecf 100644 --- a/public/translations/it/default.json +++ b/public/translations/it/default.json @@ -318,5 +318,7 @@ "report_post": "Segnala post", "delete_post": "Elimina post", "delete_post_confirm": "Eliminare definitivamente questo post? Non è possibile annullare questa operazione.", - "app_p2p_info": "Puoi sempre connetterti a qualsiasi board, completamente P2P, nessuno può fermarti. Basta incollare il suo indirizzo nel campo di ricerca sopra." + "app_p2p_info": "Puoi sempre connetterti a qualsiasi board, completamente P2P, nessuno può fermarti. Basta incollare il suo indirizzo nel campo di ricerca sopra.", + "unmute_video_sound_tip": "Attiva l'audio automaticamente durante la riproduzione video", + "unmute_video_sound": "Attiva l'audio automaticamente durante la riproduzione video" } diff --git a/public/translations/ja/default.json b/public/translations/ja/default.json index 614bdb22..808c7aea 100644 --- a/public/translations/ja/default.json +++ b/public/translations/ja/default.json @@ -318,5 +318,7 @@ "report_post": "投稿を報告", "delete_post": "投稿を削除", "delete_post_confirm": "この投稿を完全に削除しますか?元に戻せません。", - "app_p2p_info": "いつでもどのボードにも接続できます。完全にP2Pなので、誰にも止められません。上の検索欄にアドレスを貼り付けるだけです。" + "app_p2p_info": "いつでもどのボードにも接続できます。完全にP2Pなので、誰にも止められません。上の検索欄にアドレスを貼り付けるだけです。", + "unmute_video_sound_tip": "動画再生時に自動で音声をオンにする", + "unmute_video_sound": "動画再生時に自動で音声をオンにする" } diff --git a/public/translations/ko/default.json b/public/translations/ko/default.json index a43b4b72..b48ff2ea 100644 --- a/public/translations/ko/default.json +++ b/public/translations/ko/default.json @@ -318,5 +318,7 @@ "report_post": "게시물 신고", "delete_post": "게시물 삭제", "delete_post_confirm": "이 게시물을 영구적으로 삭제하시겠습니까? 취소할 수 없습니다.", - "app_p2p_info": "언제든 어떤 보드에도 연결할 수 있습니다. 완전 P2P라 아무도 당신을 막을 수 없습니다. 위 검색창에 주소를 붙여넣기만 하면 됩니다." + "app_p2p_info": "언제든 어떤 보드에도 연결할 수 있습니다. 완전 P2P라 아무도 당신을 막을 수 없습니다. 위 검색창에 주소를 붙여넣기만 하면 됩니다.", + "unmute_video_sound_tip": "동영상 재생 시 자동으로 소리 켜기", + "unmute_video_sound": "동영상 재생 시 자동으로 소리 켜기" } diff --git a/public/translations/mr/default.json b/public/translations/mr/default.json index 4ec2fc1f..9a8fcf4f 100644 --- a/public/translations/mr/default.json +++ b/public/translations/mr/default.json @@ -318,5 +318,7 @@ "report_post": "पोस्ट निर्वेदन करा", "delete_post": "पोस्ट हटवा", "delete_post_confirm": "हे पोस्ट कायमचे हटवायचे? हे पूर्ववत करता येणार नाही.", - "app_p2p_info": "तुम्ही नेहमी कोणत्याही बोर्डशी कनेक्ट होऊ शकता, पूर्णपणे P2P, कोणीही तुम्हाला थांबवू शकत नाही. वरील शोध क्षेत्रात त्याचा पत्ता पेस्ट करा." + "app_p2p_info": "तुम्ही नेहमी कोणत्याही बोर्डशी कनेक्ट होऊ शकता, पूर्णपणे P2P, कोणीही तुम्हाला थांबवू शकत नाही. वरील शोध क्षेत्रात त्याचा पत्ता पेस्ट करा.", + "unmute_video_sound_tip": "व्हिडिओ प्ले करताना आवाज स्वयंचलितपणे अनम्यूट करा", + "unmute_video_sound": "व्हिडिओ प्ले करताना आवाज स्वयंचलितपणे अनम्यूट करा" } diff --git a/public/translations/nl/default.json b/public/translations/nl/default.json index bacbade9..63037e98 100644 --- a/public/translations/nl/default.json +++ b/public/translations/nl/default.json @@ -318,5 +318,7 @@ "report_post": "Bericht melden", "delete_post": "Bericht verwijderen", "delete_post_confirm": "Dit bericht permanent verwijderen? Dit kan niet ongedaan worden gemaakt.", - "app_p2p_info": "Je kunt altijd verbinding maken met elk board, volledig P2P, niemand kan je tegenhouden. Plak gewoon het adres in het zoekveld hierboven." + "app_p2p_info": "Je kunt altijd verbinding maken met elk board, volledig P2P, niemand kan je tegenhouden. Plak gewoon het adres in het zoekveld hierboven.", + "unmute_video_sound_tip": "Geluid automatisch aanzetten bij videoweergave", + "unmute_video_sound": "Geluid automatisch aanzetten bij videoweergave" } diff --git a/public/translations/no/default.json b/public/translations/no/default.json index 525fb9b4..ff0bdcee 100644 --- a/public/translations/no/default.json +++ b/public/translations/no/default.json @@ -318,5 +318,7 @@ "report_post": "Rapporter innlegg", "delete_post": "Slett innlegg", "delete_post_confirm": "Slette dette innlegget permanent? Dette kan ikke angres.", - "app_p2p_info": "Du kan alltid koble til hvilket som helst board, fullt P2P, ingen kan stoppe deg. Lim bare inn adressen i søkefeltet ovenfor." + "app_p2p_info": "Du kan alltid koble til hvilket som helst board, fullt P2P, ingen kan stoppe deg. Lim bare inn adressen i søkefeltet ovenfor.", + "unmute_video_sound_tip": "Slå på lyd automatisk ved videospilling", + "unmute_video_sound": "Slå på lyd automatisk ved videospilling" } diff --git a/public/translations/pl/default.json b/public/translations/pl/default.json index 73042c2d..37b3eff9 100644 --- a/public/translations/pl/default.json +++ b/public/translations/pl/default.json @@ -318,5 +318,7 @@ "report_post": "Zgłoś post", "delete_post": "Usuń post", "delete_post_confirm": "Usunąć ten post na stałe? Tej operacji nie można cofnąć.", - "app_p2p_info": "Zawsze możesz połączyć się z dowolnym boardem, w pełni P2P, nikt nie może cię powstrzymać. Wklej po prostu jego adres w pole wyszukiwania powyżej." + "app_p2p_info": "Zawsze możesz połączyć się z dowolnym boardem, w pełni P2P, nikt nie może cię powstrzymać. Wklej po prostu jego adres w pole wyszukiwania powyżej.", + "unmute_video_sound_tip": "Automatycznie włączaj dźwięk podczas odtwarzania wideo", + "unmute_video_sound": "Automatycznie włączaj dźwięk podczas odtwarzania wideo" } diff --git a/public/translations/pt/default.json b/public/translations/pt/default.json index db6f3848..093d181e 100644 --- a/public/translations/pt/default.json +++ b/public/translations/pt/default.json @@ -318,5 +318,7 @@ "report_post": "Denunciar publicação", "delete_post": "Excluir publicação", "delete_post_confirm": "Excluir esta publicação permanentemente? Isso não pode ser desfeito.", - "app_p2p_info": "Podes sempre conectar a qualquer board, totalmente P2P, ninguém te pode impedir. Basta colar o endereço no campo de pesquisa acima." + "app_p2p_info": "Podes sempre conectar a qualquer board, totalmente P2P, ninguém te pode impedir. Basta colar o endereço no campo de pesquisa acima.", + "unmute_video_sound_tip": "Ativar o som automaticamente na reprodução de vídeo", + "unmute_video_sound": "Ativar o som automaticamente na reprodução de vídeo" } diff --git a/public/translations/ro/default.json b/public/translations/ro/default.json index 5c84dd10..8606ad24 100644 --- a/public/translations/ro/default.json +++ b/public/translations/ro/default.json @@ -318,5 +318,7 @@ "report_post": "Raportează postarea", "delete_post": "Șterge postarea", "delete_post_confirm": "Șterge definitiv această postare? Această acțiune nu poate fi anulată.", - "app_p2p_info": "Poți oricând să te conectezi la orice board, complet P2P, nimeni nu te poate opri. Pur și simplu lipește adresa în câmpul de căutare de mai sus." + "app_p2p_info": "Poți oricând să te conectezi la orice board, complet P2P, nimeni nu te poate opri. Pur și simplu lipește adresa în câmpul de căutare de mai sus.", + "unmute_video_sound_tip": "Activează automat sunetul la redarea videoclipului", + "unmute_video_sound": "Activează automat sunetul la redarea videoclipului" } diff --git a/public/translations/ru/default.json b/public/translations/ru/default.json index d8b6c82e..be55d38e 100644 --- a/public/translations/ru/default.json +++ b/public/translations/ru/default.json @@ -318,5 +318,7 @@ "report_post": "Пожаловаться на пост", "delete_post": "Удалить пост", "delete_post_confirm": "Удалить этот пост навсегда? Это действие нельзя отменить.", - "app_p2p_info": "Ты всегда можешь подключиться к любому борду, полностью P2P, никто не сможет тебя остановить. Просто вставь его адрес в поле поиска выше." + "app_p2p_info": "Ты всегда можешь подключиться к любому борду, полностью P2P, никто не сможет тебя остановить. Просто вставь его адрес в поле поиска выше.", + "unmute_video_sound_tip": "Автоматически включать звук при воспроизведении видео", + "unmute_video_sound": "Автоматически включать звук при воспроизведении видео" } diff --git a/public/translations/sq/default.json b/public/translations/sq/default.json index 795723d8..5c7ef284 100644 --- a/public/translations/sq/default.json +++ b/public/translations/sq/default.json @@ -318,5 +318,7 @@ "report_post": "Raporto postimin", "delete_post": "Fshi postimin", "delete_post_confirm": "Fshini këtë postim përgjithmonë? Kjo nuk mund të zhbëhet.", - "app_p2p_info": "Mund të lidhesh gjithmonë me çdo board, plotësisht P2P, askush nuk mund të të ndalojë. Thjesht ngjite adresën e tij në fushën e kërkimit më sipër." + "app_p2p_info": "Mund të lidhesh gjithmonë me çdo board, plotësisht P2P, askush nuk mund të të ndalojë. Thjesht ngjite adresën e tij në fushën e kërkimit më sipër.", + "unmute_video_sound_tip": "Aktivizo zërin automatikisht gjatë riprodhimit të videos", + "unmute_video_sound": "Aktivizo zërin automatikisht gjatë riprodhimit të videos" } diff --git a/public/translations/sv/default.json b/public/translations/sv/default.json index d54f54bf..e22b386e 100644 --- a/public/translations/sv/default.json +++ b/public/translations/sv/default.json @@ -318,5 +318,7 @@ "report_post": "Rapportera inlägg", "delete_post": "Radera inlägg", "delete_post_confirm": "Radera detta inlägg permanent? Detta kan inte ångras.", - "app_p2p_info": "Du kan alltid ansluta till vilket board som helst, helt P2P, ingen kan stoppa dig. Klistra bara in dess adress i sökfältet ovan." + "app_p2p_info": "Du kan alltid ansluta till vilket board som helst, helt P2P, ingen kan stoppa dig. Klistra bara in dess adress i sökfältet ovan.", + "unmute_video_sound_tip": "Aktivera ljud automatiskt vid videouppspelning", + "unmute_video_sound": "Aktivera ljud automatiskt vid videouppspelning" } diff --git a/public/translations/te/default.json b/public/translations/te/default.json index d513ad7f..20544517 100644 --- a/public/translations/te/default.json +++ b/public/translations/te/default.json @@ -318,5 +318,7 @@ "report_post": "పోస్ట్ రిపోర్ట్ చేయండి", "delete_post": "పోస్ట్ తొలగించండి", "delete_post_confirm": "ఈ పోస్ట్‌ను శాశ్వతంగా తొలగించాలా? దీన్ని రద్దు చేయలేము.", - "app_p2p_info": "మీరు ఎప్పుడైనా ఏ బోర్డ్‌కైనా కనెక్ట్ అవ్వవచ్చు, పూర్తిగా P2P, ఎవరూ మిమ్మల్ని ఆపలేరు. పైన ఉన్న సెర్చ్ ఫీల్డ్‌లో దాని అడ్రస్ పేస్ట్ చేయండి." + "app_p2p_info": "మీరు ఎప్పుడైనా ఏ బోర్డ్‌కైనా కనెక్ట్ అవ్వవచ్చు, పూర్తిగా P2P, ఎవరూ మిమ్మల్ని ఆపలేరు. పైన ఉన్న సెర్చ్ ఫీల్డ్‌లో దాని అడ్రస్ పేస్ట్ చేయండి.", + "unmute_video_sound_tip": "వీడియో ప్లే చేసేటప్పుడు స్వయంచాలకంగా సౌండ్ అన్-మ్యూట్ చేయండి", + "unmute_video_sound": "వీడియో ప్లే చేసేటప్పుడు స్వయంచాలకంగా సౌండ్ అన్-మ్యూట్ చేయండి" } diff --git a/public/translations/th/default.json b/public/translations/th/default.json index 71ae9e6f..2abd0699 100644 --- a/public/translations/th/default.json +++ b/public/translations/th/default.json @@ -318,5 +318,7 @@ "report_post": "แจ้งรายงานโพสต์", "delete_post": "ลบโพสต์", "delete_post_confirm": "ลบกระทู้นี้อย่างถาวรหรือไม่? การดำเนินการนี้ไม่สามารถยกเลิกได้", - "app_p2p_info": "คุณสามารถเชื่อมต่อกับบอร์ดใดก็ได้ตลอดเวลา แบบ P2P เต็มรูปแบบ ไม่มีใครหยุดคุณได้ แค่วางที่อยู่ของมันในช่องค้นหาด้านบน" + "app_p2p_info": "คุณสามารถเชื่อมต่อกับบอร์ดใดก็ได้ตลอดเวลา แบบ P2P เต็มรูปแบบ ไม่มีใครหยุดคุณได้ แค่วางที่อยู่ของมันในช่องค้นหาด้านบน", + "unmute_video_sound_tip": "เปิดเสียงอัตโนมัติเมื่อเล่นวิดีโอ", + "unmute_video_sound": "เปิดเสียงอัตโนมัติเมื่อเล่นวิดีโอ" } diff --git a/public/translations/tr/default.json b/public/translations/tr/default.json index db064384..19819d70 100644 --- a/public/translations/tr/default.json +++ b/public/translations/tr/default.json @@ -318,5 +318,7 @@ "report_post": "Gönderiyi bildir", "delete_post": "Gönderiyi sil", "delete_post_confirm": "Bu gönderiyi kalıcı olarak silmek istiyor musunuz? Bu işlem geri alınamaz.", - "app_p2p_info": "Her zaman herhangi bir boarda bağlanabilirsin, tamamen P2P, kimse seni durduramaz. Sadece adresini yukarıdaki arama alanına yapıştır." + "app_p2p_info": "Her zaman herhangi bir boarda bağlanabilirsin, tamamen P2P, kimse seni durduramaz. Sadece adresini yukarıdaki arama alanına yapıştır.", + "unmute_video_sound_tip": "Video oynatırken sesi otomatik aç", + "unmute_video_sound": "Video oynatırken sesi otomatik aç" } diff --git a/public/translations/uk/default.json b/public/translations/uk/default.json index 43d162eb..089d0f24 100644 --- a/public/translations/uk/default.json +++ b/public/translations/uk/default.json @@ -318,5 +318,7 @@ "report_post": "Поскаржитися на пост", "delete_post": "Видалити пост", "delete_post_confirm": "Видалити цей пост назавжди? Цю дію не можна скасувати.", - "app_p2p_info": "Ти завжди можеш підключитися до будь-якого борду, повністю P2P, ніхто не зможе тебе зупинити. Просто встав його адресу в поле пошуку вище." + "app_p2p_info": "Ти завжди можеш підключитися до будь-якого борду, повністю P2P, ніхто не зможе тебе зупинити. Просто встав його адресу в поле пошуку вище.", + "unmute_video_sound_tip": "Автоматично вмикати звук під час відтворення відео", + "unmute_video_sound": "Автоматично вмикати звук під час відтворення відео" } diff --git a/public/translations/ur/default.json b/public/translations/ur/default.json index 0f74a692..5049f077 100644 --- a/public/translations/ur/default.json +++ b/public/translations/ur/default.json @@ -318,5 +318,7 @@ "report_post": "پوسٹ ریپورٹ کریں", "delete_post": "پوسٹ حذف کریں", "delete_post_confirm": "کیا اس پوسٹ کو مستقل طور پر حذف کریں؟ یہ واپس نہیں لیا جا سکتا۔", - "app_p2p_info": "آپ ہمیشہ کسی بھی بورڈ سے جڑ سکتے ہیں، مکمل طور پر P2P، کوئی آپ کو روک نہیں سکتا۔ اوپر والے سرچ فیلڈ میں اس کا پتہ پیسٹ کریں۔" + "app_p2p_info": "آپ ہمیشہ کسی بھی بورڈ سے جڑ سکتے ہیں، مکمل طور پر P2P، کوئی آپ کو روک نہیں سکتا۔ اوپر والے سرچ فیلڈ میں اس کا پتہ پیسٹ کریں۔", + "unmute_video_sound_tip": "ویڈیو پلے ہونے پر آواز خود بخود آن کریں", + "unmute_video_sound": "ویڈیو پلے ہونے پر آواز خود بخود آن کریں" } diff --git a/public/translations/vi/default.json b/public/translations/vi/default.json index b501fdeb..b1bf9d0d 100644 --- a/public/translations/vi/default.json +++ b/public/translations/vi/default.json @@ -318,5 +318,7 @@ "report_post": "Báo cáo bài viết", "delete_post": "Xóa bài viết", "delete_post_confirm": "Xóa bài viết này vĩnh viễn? Hành động này không thể hoàn tác.", - "app_p2p_info": "Bạn luôn có thể kết nối với bất kỳ board nào, hoàn toàn P2P, không ai có thể ngăn cản bạn. Chỉ cần dán địa chỉ của nó vào ô tìm kiếm phía trên." + "app_p2p_info": "Bạn luôn có thể kết nối với bất kỳ board nào, hoàn toàn P2P, không ai có thể ngăn cản bạn. Chỉ cần dán địa chỉ của nó vào ô tìm kiếm phía trên.", + "unmute_video_sound_tip": "Tự động bật tiếng khi phát video", + "unmute_video_sound": "Tự động bật tiếng khi phát video" } diff --git a/public/translations/zh/default.json b/public/translations/zh/default.json index 0b5e8b1e..ef7150aa 100644 --- a/public/translations/zh/default.json +++ b/public/translations/zh/default.json @@ -318,5 +318,7 @@ "report_post": "举报帖子", "delete_post": "删除帖子", "delete_post_confirm": "永久删除此帖子?此操作无法撤销。", - "app_p2p_info": "你随时可以连接到任何看板,完全 P2P,没人能阻止你。只需将其地址粘贴到上方搜索框中即可。" + "app_p2p_info": "你随时可以连接到任何看板,完全 P2P,没人能阻止你。只需将其地址粘贴到上方搜索框中即可。", + "unmute_video_sound_tip": "视频播放时自动开启声音", + "unmute_video_sound": "视频播放时自动开启声音" } diff --git a/src/components/comment-media/__tests__/comment-media.test.tsx b/src/components/comment-media/__tests__/comment-media.test.tsx index 9b6050e2..32342985 100644 --- a/src/components/comment-media/__tests__/comment-media.test.tsx +++ b/src/components/comment-media/__tests__/comment-media.test.tsx @@ -15,6 +15,7 @@ const testState = vi.hoisted(() => ({ gifFrameUrl: null as string | null, hostname: 'example.com', isMobile: false, + unmuteExpandedVideoSound: false, })); vi.mock('react-i18next', () => ({ @@ -36,6 +37,7 @@ vi.mock('../../../lib/utils/url-utils', () => ({ vi.mock('../../../stores/use-expanded-media-store', () => ({ default: () => ({ fitExpandedImagesToScreen: testState.fitExpandedImagesToScreen, + unmuteExpandedVideoSound: testState.unmuteExpandedVideoSound, }), })); @@ -76,6 +78,7 @@ describe('CommentMedia', () => { testState.gifFrameUrl = null; testState.hostname = 'example.com'; testState.isMobile = false; + testState.unmuteExpandedVideoSound = false; setShowThumbnailMock = vi.fn(); container = document.createElement('div'); @@ -252,4 +255,36 @@ describe('CommentMedia', () => { expect(setShowThumbnailMock).toHaveBeenCalledWith(false); }); + + it('unmutes expanded videos when the preference is enabled', async () => { + testState.unmuteExpandedVideoSound = true; + + await renderMedia({ + commentMediaInfo: { + type: 'video', + url: 'https://cdn.example.com/video.mp4', + }, + setShowThumbnail: setShowThumbnailMock, + showThumbnail: false, + }); + + const video = container.querySelector('video[src="https://cdn.example.com/video.mp4"]'); + expect(video).toBeTruthy(); + expect(video?.muted).toBe(false); + }); + + it('keeps expanded videos muted when the preference is disabled', async () => { + await renderMedia({ + commentMediaInfo: { + type: 'video', + url: 'https://cdn.example.com/video.mp4', + }, + setShowThumbnail: setShowThumbnailMock, + showThumbnail: false, + }); + + const video = container.querySelector('video[src="https://cdn.example.com/video.mp4"]'); + expect(video).toBeTruthy(); + expect(video?.muted).toBe(true); + }); }); diff --git a/src/components/comment-media/comment-media.tsx b/src/components/comment-media/comment-media.tsx index e669c543..423e9b27 100644 --- a/src/components/comment-media/comment-media.tsx +++ b/src/components/comment-media/comment-media.tsx @@ -199,7 +199,7 @@ const Media = ({ commentMediaInfo, disableToggle, isReply, setShowThumbnail }: M const { t } = useTranslation(); const { thumbnail, type, url } = commentMediaInfo || {}; const isMobile = useIsMobile(); - const { fitExpandedImagesToScreen } = useExpandedMediaStore(); + const { fitExpandedImagesToScreen, unmuteExpandedVideoSound } = useExpandedMediaStore(); const mediaClass = `${isMobile ? styles.mediaMobile : isReply ? styles.mediaDesktopReply : styles.mediaDesktopOp} ${ fitExpandedImagesToScreen ? styles.fitToScreen : '' }`; @@ -228,7 +228,7 @@ const Media = ({ commentMediaInfo, disableToggle, isReply, setShowThumbnail }: M onClick={disableToggle ? undefined : () => setShowThumbnail(true)} /> ) : type === 'video' ? ( -