mirror of
https://github.com/bitsocialnet/5chan.git
synced 2026-08-03 07:41:04 +02:00
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
This commit is contained in:
@@ -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": "إلغاء كتم الصوت تلقائياً عند تشغيل الفيديو"
|
||||
}
|
||||
|
||||
@@ -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": "ভিডিও চালানোর সময় স্বয়ংক্রিয়ভাবে সাউন্ড আনমিউট করুন"
|
||||
}
|
||||
|
||||
@@ -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"
|
||||
}
|
||||
|
||||
@@ -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"
|
||||
}
|
||||
|
||||
@@ -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"
|
||||
}
|
||||
|
||||
@@ -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": "Αυτόματη ενεργοποίηση ήχου κατά την αναπαραγωγή βίντεο"
|
||||
}
|
||||
|
||||
@@ -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",
|
||||
|
||||
@@ -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"
|
||||
}
|
||||
|
||||
@@ -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": "غیرفعال کردن بیصدا بهطور خودکار برای پخش ویدیو"
|
||||
}
|
||||
|
||||
@@ -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ä"
|
||||
}
|
||||
|
||||
@@ -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"
|
||||
}
|
||||
|
||||
@@ -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"
|
||||
}
|
||||
|
||||
@@ -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": "הפעל אוטומטית את הצליל בעת השמעת וידאו"
|
||||
}
|
||||
|
||||
@@ -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": "वीडियो चलाने पर स्वचालित रूप से साउंड अनम्यूट करें"
|
||||
}
|
||||
|
||||
@@ -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"
|
||||
}
|
||||
|
||||
@@ -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"
|
||||
}
|
||||
|
||||
@@ -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"
|
||||
}
|
||||
|
||||
@@ -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": "動画再生時に自動で音声をオンにする"
|
||||
}
|
||||
|
||||
@@ -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": "동영상 재생 시 자동으로 소리 켜기"
|
||||
}
|
||||
|
||||
@@ -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": "व्हिडिओ प्ले करताना आवाज स्वयंचलितपणे अनम्यूट करा"
|
||||
}
|
||||
|
||||
@@ -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"
|
||||
}
|
||||
|
||||
@@ -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"
|
||||
}
|
||||
|
||||
@@ -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"
|
||||
}
|
||||
|
||||
@@ -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"
|
||||
}
|
||||
|
||||
@@ -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"
|
||||
}
|
||||
|
||||
@@ -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": "Автоматически включать звук при воспроизведении видео"
|
||||
}
|
||||
|
||||
@@ -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"
|
||||
}
|
||||
|
||||
@@ -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"
|
||||
}
|
||||
|
||||
@@ -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": "వీడియో ప్లే చేసేటప్పుడు స్వయంచాలకంగా సౌండ్ అన్-మ్యూట్ చేయండి"
|
||||
}
|
||||
|
||||
@@ -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": "เปิดเสียงอัตโนมัติเมื่อเล่นวิดีโอ"
|
||||
}
|
||||
|
||||
@@ -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ç"
|
||||
}
|
||||
|
||||
@@ -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": "Автоматично вмикати звук під час відтворення відео"
|
||||
}
|
||||
|
||||
@@ -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": "ویڈیو پلے ہونے پر آواز خود بخود آن کریں"
|
||||
}
|
||||
|
||||
@@ -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"
|
||||
}
|
||||
|
||||
@@ -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": "视频播放时自动开启声音"
|
||||
}
|
||||
|
||||
@@ -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<HTMLVideoElement>('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<HTMLVideoElement>('video[src="https://cdn.example.com/video.mp4"]');
|
||||
expect(video).toBeTruthy();
|
||||
expect(video?.muted).toBe(true);
|
||||
});
|
||||
});
|
||||
|
||||
@@ -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' ? (
|
||||
<video src={url} controls autoPlay loop muted />
|
||||
<video src={url} controls autoPlay loop muted={!unmuteExpandedVideoSound} />
|
||||
) : type === 'webpage' ? (
|
||||
<img
|
||||
src={thumbnail}
|
||||
|
||||
+23
-1
@@ -19,6 +19,8 @@ const testState = vi.hoisted(() => ({
|
||||
fetchMock: vi.fn(),
|
||||
fitExpandedImagesToScreen: false,
|
||||
setFitExpandedImagesToScreenMock: vi.fn(),
|
||||
setUnmuteExpandedVideoSoundMock: vi.fn(),
|
||||
unmuteExpandedVideoSound: false,
|
||||
}));
|
||||
|
||||
vi.mock('react-i18next', () => ({
|
||||
@@ -32,6 +34,8 @@ vi.mock('../../../../stores/use-expanded-media-store', () => ({
|
||||
default: () => ({
|
||||
fitExpandedImagesToScreen: testState.fitExpandedImagesToScreen,
|
||||
setFitExpandedImagesToScreen: testState.setFitExpandedImagesToScreenMock,
|
||||
setUnmuteExpandedVideoSound: testState.setUnmuteExpandedVideoSoundMock,
|
||||
unmuteExpandedVideoSound: testState.unmuteExpandedVideoSound,
|
||||
}),
|
||||
}));
|
||||
|
||||
@@ -86,6 +90,8 @@ describe('InterfaceSettings', () => {
|
||||
testState.fetchMock.mockReset();
|
||||
testState.fitExpandedImagesToScreen = false;
|
||||
testState.setFitExpandedImagesToScreenMock.mockReset();
|
||||
testState.setUnmuteExpandedVideoSoundMock.mockReset();
|
||||
testState.unmuteExpandedVideoSound = false;
|
||||
useFeedViewSettingsStore.getState().setEnableInfiniteScroll(false);
|
||||
useAppUpdateStore.setState({
|
||||
needRefresh: false,
|
||||
@@ -131,12 +137,14 @@ describe('InterfaceSettings', () => {
|
||||
|
||||
await act(async () => {
|
||||
checkbox?.click();
|
||||
await Promise.resolve();
|
||||
await Promise.resolve();
|
||||
});
|
||||
|
||||
expect(useFeedViewSettingsStore.getState().enableInfiniteScroll).toBe(true);
|
||||
expect(checkbox?.checked).toBe(true);
|
||||
expect(container.querySelector('[data-testid="board-mode"]')?.textContent).toBe('infinite');
|
||||
expect(setItemSpy).toHaveBeenCalledWith(STORAGE_KEY, expect.stringContaining('"enableInfiniteScroll":true'));
|
||||
expect(localStorage.getItem(STORAGE_KEY)).toContain('"enableInfiniteScroll":true');
|
||||
});
|
||||
|
||||
it('toggles fit expanded images through the media store', async () => {
|
||||
@@ -153,6 +161,20 @@ describe('InterfaceSettings', () => {
|
||||
expect(testState.setFitExpandedImagesToScreenMock).toHaveBeenCalledWith(true);
|
||||
});
|
||||
|
||||
it('toggles unmute video sound through the media store', async () => {
|
||||
render(createElement(InterfaceSettings));
|
||||
|
||||
const label = Array.from(container.querySelectorAll('label')).find((candidate) => candidate.textContent?.toLowerCase().includes('unmute_video_sound'));
|
||||
const checkbox = label?.querySelector<HTMLInputElement>('input[type="checkbox"]');
|
||||
expect(checkbox).toBeTruthy();
|
||||
|
||||
await act(async () => {
|
||||
checkbox?.dispatchEvent(new MouseEvent('click', { bubbles: true }));
|
||||
});
|
||||
|
||||
expect(testState.setUnmuteExpandedVideoSoundMock).toHaveBeenCalledWith(true);
|
||||
});
|
||||
|
||||
it('changes the interface language from the language selector', async () => {
|
||||
render(createElement(InterfaceSettings));
|
||||
|
||||
|
||||
@@ -38,7 +38,7 @@
|
||||
}
|
||||
|
||||
.setting input[type="checkbox"] {
|
||||
margin-right: 2px;
|
||||
margin-right: 5px;
|
||||
}
|
||||
|
||||
.setting input[type="radio"] {
|
||||
|
||||
@@ -108,7 +108,7 @@ const InterfaceLanguage = () => {
|
||||
|
||||
const InterfaceSettings = () => {
|
||||
const { t } = useTranslation();
|
||||
const { fitExpandedImagesToScreen, setFitExpandedImagesToScreen } = useExpandedMediaStore();
|
||||
const { fitExpandedImagesToScreen, setFitExpandedImagesToScreen, setUnmuteExpandedVideoSound, unmuteExpandedVideoSound } = useExpandedMediaStore();
|
||||
const { enableInfiniteScroll, setEnableInfiniteScroll } = useFeedViewSettingsStore();
|
||||
|
||||
return (
|
||||
@@ -132,6 +132,13 @@ const InterfaceSettings = () => {
|
||||
</label>
|
||||
<div className={styles.settingTip}>{capitalize(t('fit_expanded_images_to_screen_tip'))}</div>
|
||||
</div>
|
||||
<div className={styles.setting}>
|
||||
<label>
|
||||
<input type='checkbox' checked={unmuteExpandedVideoSound} onChange={(e) => setUnmuteExpandedVideoSound(e.target.checked)} />
|
||||
{capitalize(t('unmute_video_sound'))}
|
||||
</label>
|
||||
<div className={styles.settingTip}>{capitalize(t('unmute_video_sound_tip'))}</div>
|
||||
</div>
|
||||
<div className={styles.setting}>
|
||||
<label>
|
||||
<input type='checkbox' checked={enableInfiniteScroll} onChange={(e) => setEnableInfiniteScroll(e.target.checked)} />
|
||||
|
||||
@@ -32,15 +32,19 @@ describe('ui state stores', () => {
|
||||
expect(store.getState().selectedText).toBe('');
|
||||
});
|
||||
|
||||
it('useExpandedMediaStore persists fitExpandedImagesToScreen', async () => {
|
||||
it('useExpandedMediaStore persists expanded media preferences', async () => {
|
||||
const store = (await import('../use-expanded-media-store')).default;
|
||||
|
||||
expect(store.getState().fitExpandedImagesToScreen).toBe(false);
|
||||
expect(store.getState().unmuteExpandedVideoSound).toBe(false);
|
||||
|
||||
store.getState().setFitExpandedImagesToScreen(true);
|
||||
store.getState().setUnmuteExpandedVideoSound(true);
|
||||
|
||||
expect(store.getState().fitExpandedImagesToScreen).toBe(true);
|
||||
expect(store.getState().unmuteExpandedVideoSound).toBe(true);
|
||||
expect(localStorage.getItem('expanded-media-store')).toContain('fitExpandedImagesToScreen');
|
||||
expect(localStorage.getItem('expanded-media-store')).toContain('unmuteExpandedVideoSound');
|
||||
});
|
||||
|
||||
it('useSubplebbitOfflineStore merges updates and clears initialLoad after the timeout', async () => {
|
||||
|
||||
@@ -3,14 +3,18 @@ import { persist } from 'zustand/middleware';
|
||||
|
||||
interface ExpandedMediaState {
|
||||
fitExpandedImagesToScreen: boolean;
|
||||
unmuteExpandedVideoSound: boolean;
|
||||
setFitExpandedImagesToScreen: (fit: boolean) => void;
|
||||
setUnmuteExpandedVideoSound: (unmute: boolean) => void;
|
||||
}
|
||||
|
||||
const useExpandedMediaStore = create<ExpandedMediaState>()(
|
||||
persist(
|
||||
(set) => ({
|
||||
fitExpandedImagesToScreen: false,
|
||||
unmuteExpandedVideoSound: false,
|
||||
setFitExpandedImagesToScreen: (fit) => set({ fitExpandedImagesToScreen: fit }),
|
||||
setUnmuteExpandedVideoSound: (unmute) => set({ unmuteExpandedVideoSound: unmute }),
|
||||
}),
|
||||
{
|
||||
name: 'expanded-media-store',
|
||||
|
||||
Reference in New Issue
Block a user