feat(home): show platform-specific info message on homepage

Web users see the existing download prompt; native app users see a P2P encouragement message instead.

Closes #1096
This commit is contained in:
Tommaso Casaburi
2026-03-17 17:54:52 +08:00
parent c9bd6258b2
commit 1db0c625e8
36 changed files with 82 additions and 41 deletions
+2 -1
View File
@@ -317,5 +317,6 @@
"view": "عرض",
"report_post": "الإبلاغ عن المنشور",
"delete_post": "حذف المنشور",
"delete_post_confirm": "حذف هذا المنشور نهائياً؟ لا يمكن التراجع عن هذا."
"delete_post_confirm": "حذف هذا المنشور نهائياً؟ لا يمكن التراجع عن هذا.",
"app_p2p_info": "يمكنك دائمًا الاتصال بأي لوحة، بشكل كامل P2P، لا أحد يستطيع إيقافك. ما عليك سوى لصق عنوانها في حقل البحث أعلاه."
}
+2 -1
View File
@@ -317,5 +317,6 @@
"view": "দেখুন",
"report_post": "পোস্ট রিপোর্ট করুন",
"delete_post": "পোস্ট মুছুন",
"delete_post_confirm": "এই পোস্ট স্থায়ীভাবে মুছে ফেলবেন? এটি অপ্রত্যাবর্তনীয়।"
"delete_post_confirm": "এই পোস্ট স্থায়ীভাবে মুছে ফেলবেন? এটি অপ্রত্যাবর্তনীয়।",
"app_p2p_info": "আপনি যেকোনো বোর্ডে সর্বদা সংযোগ করতে পারেন, সম্পূর্ণ P2P, কেউ আপনাকে থামাতে পারবে না। উপরের অনুসন্ধান ক্ষেত্রে কেবল তার ঠিকানা পেস্ট করুন।"
}
+2 -1
View File
@@ -317,5 +317,6 @@
"view": "Zobrazit",
"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."
"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."
}
+2 -1
View File
@@ -317,5 +317,6 @@
"view": "Se",
"report_post": "Rapporter indlæg",
"delete_post": "Slet indlæg",
"delete_post_confirm": "Slet dette opslag permanent? Dette kan ikke fortrydes."
"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."
}
+2 -1
View File
@@ -317,5 +317,6 @@
"view": "Ansehen",
"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."
"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."
}
+2 -1
View File
@@ -317,5 +317,6 @@
"view": "Προβολή",
"report_post": "Αναφορά ανάρτησης",
"delete_post": "Διαγραφή ανάρτησης",
"delete_post_confirm": "Διαγραφή οριστικά αυτής της ανάρτησης; Δεν είναι δυνατή η αναίρεση."
"delete_post_confirm": "Διαγραφή οριστικά αυτής της ανάρτησης; Δεν είναι δυνατή η αναίρεση.",
"app_p2p_info": "Μπορείς πάντα να συνδεθείς σε οποιοδήποτε board, πλήρως P2P, κανείς δεν μπορεί να σε σταματήσει. Απλά επικόλλησε τη διεύθυνσή του στο πεδίο αναζήτησης παραπάνω."
}
+1
View File
@@ -3,6 +3,7 @@
"go": "go",
"5chan_description": "5chan is a fully decentralized and open-source imageboard, where anyone can create and cryptographically own unlimited boards. Board owners host and moderate their board, and set its <1>Rules</1>. All data is text-only and it's shared peer-to-peer, including links to embed images. Check out the <2>FAQs</2> to learn more. Feel free to click on a board below that interests you and jump right in!",
"no_global_rules_info": "5chan is a serverless app, this website is just one way to open it. To avoid relying on the website's uptime, <1>download the app</1>.",
"app_p2p_info": "You can always connect to any board, fully P2P, nobody can stop you. Simply paste its address in the search field above.",
"boards": "boards",
"popular_threads": "Popular threads",
"options": "Options",
+2 -1
View File
@@ -317,5 +317,6 @@
"view": "Ver",
"report_post": "Denunciar publicación",
"delete_post": "Eliminar publicación",
"delete_post_confirm": "¿Eliminar esta publicación permanentemente? Esto no se puede deshacer."
"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."
}
+2 -1
View File
@@ -317,5 +317,6 @@
"view": "مشاهده",
"report_post": "گزارش پست",
"delete_post": "حذف پست",
"delete_post_confirm": "این پست را برای همیشه حذف کن؟ این کار قابل بازگشت نیست."
"delete_post_confirm": "این پست را برای همیشه حذف کن؟ این کار قابل بازگشت نیست.",
"app_p2p_info": "همیشه می‌توانید به هر بوردی متصل شوید، کاملاً P2P، هیچ‌کس نمی‌تواند جلوی شما را بگیرد. کافی است آدرس آن را در فیلد جستجوی بالا بچسبانید."
}
+2 -1
View File
@@ -317,5 +317,6 @@
"view": "Katso",
"report_post": "Ilmoita viestistä",
"delete_post": "Poista viesti",
"delete_post_confirm": "Poistetaanko tämä julkaisu pysyvästi? Tätä ei voi perua."
"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."
}
+2 -1
View File
@@ -317,5 +317,6 @@
"view": "Tingnan",
"report_post": "I-report ang post",
"delete_post": "Tanggalin ang post",
"delete_post_confirm": "Permanenteng tanggalin ang post na ito? Hindi na ito maibabalik."
"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."
}
+2 -1
View File
@@ -317,5 +317,6 @@
"view": "Voir",
"report_post": "Signaler la publication",
"delete_post": "Supprimer la publication",
"delete_post_confirm": "Supprimer définitivement cette publication ? Cette action est irréversible."
"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."
}
+2 -1
View File
@@ -317,5 +317,6 @@
"view": "צפה",
"report_post": "דווח על פוסט",
"delete_post": "מחק פוסט",
"delete_post_confirm": "למחוק את הפוסט הזה לצמיתות? לא ניתן לבטל פעולה זו."
"delete_post_confirm": "למחוק את הפוסט הזה לצמיתות? לא ניתן לבטל פעולה זו.",
"app_p2p_info": "תמיד תוכל להתחבר לכל לוח, במלואו P2P, אף אחד לא יכול לעצור אותך. פשוט הדבק את הכתובת שלו בשדה החיפוש למעלה."
}
+2 -1
View File
@@ -317,5 +317,6 @@
"view": "देखें",
"report_post": "पोस्ट की रिपोर्ट करें",
"delete_post": "पोस्ट हटाएं",
"delete_post_confirm": "क्या इस पोस्ट को स्थायी रूप से हटाया जाए? इसे पूर्ववत नहीं किया जा सकता।"
"delete_post_confirm": "क्या इस पोस्ट को स्थायी रूप से हटाया जाए? इसे पूर्ववत नहीं किया जा सकता।",
"app_p2p_info": "आप किसी भी बोर्ड से हमेशा कनेक्ट हो सकते हैं, पूरी तरह P2P, कोई आपको रोक नहीं सकता। बस ऊपर दिए गए खोज क्षेत्र में उसका पता पेस्ट करें।"
}
+2 -1
View File
@@ -317,5 +317,6 @@
"view": "Megtekintés",
"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."
"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."
}
+2 -1
View File
@@ -317,5 +317,6 @@
"view": "Lihat",
"report_post": "Laporkan kiriman",
"delete_post": "Hapus kiriman",
"delete_post_confirm": "Hapus permanen postingan ini? Tindakan ini tidak dapat dibatalkan."
"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."
}
+2 -1
View File
@@ -317,5 +317,6 @@
"view": "Visualizza",
"report_post": "Segnala post",
"delete_post": "Elimina post",
"delete_post_confirm": "Eliminare definitivamente questo post? Non è possibile annullare questa operazione."
"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."
}
+2 -1
View File
@@ -317,5 +317,6 @@
"view": "表示",
"report_post": "投稿を報告",
"delete_post": "投稿を削除",
"delete_post_confirm": "この投稿を完全に削除しますか?元に戻せません。"
"delete_post_confirm": "この投稿を完全に削除しますか?元に戻せません。",
"app_p2p_info": "いつでもどのボードにも接続できます。完全にP2Pなので、誰にも止められません。上の検索欄にアドレスを貼り付けるだけです。"
}
+2 -1
View File
@@ -317,5 +317,6 @@
"view": "보기",
"report_post": "게시물 신고",
"delete_post": "게시물 삭제",
"delete_post_confirm": "이 게시물을 영구적으로 삭제하시겠습니까? 취소할 수 없습니다."
"delete_post_confirm": "이 게시물을 영구적으로 삭제하시겠습니까? 취소할 수 없습니다.",
"app_p2p_info": "언제든 어떤 보드에도 연결할 수 있습니다. 완전 P2P라 아무도 당신을 막을 수 없습니다. 위 검색창에 주소를 붙여넣기만 하면 됩니다."
}
+2 -1
View File
@@ -317,5 +317,6 @@
"view": "पहा",
"report_post": "पोस्ट निर्वेदन करा",
"delete_post": "पोस्ट हटवा",
"delete_post_confirm": "हे पोस्ट कायमचे हटवायचे? हे पूर्ववत करता येणार नाही."
"delete_post_confirm": "हे पोस्ट कायमचे हटवायचे? हे पूर्ववत करता येणार नाही.",
"app_p2p_info": "तुम्ही नेहमी कोणत्याही बोर्डशी कनेक्ट होऊ शकता, पूर्णपणे P2P, कोणीही तुम्हाला थांबवू शकत नाही. वरील शोध क्षेत्रात त्याचा पत्ता पेस्ट करा."
}
+2 -1
View File
@@ -317,5 +317,6 @@
"view": "Bekijken",
"report_post": "Bericht melden",
"delete_post": "Bericht verwijderen",
"delete_post_confirm": "Dit bericht permanent verwijderen? Dit kan niet ongedaan worden gemaakt."
"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."
}
+2 -1
View File
@@ -317,5 +317,6 @@
"view": "Se",
"report_post": "Rapporter innlegg",
"delete_post": "Slett innlegg",
"delete_post_confirm": "Slette dette innlegget permanent? Dette kan ikke angres."
"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."
}
+2 -1
View File
@@ -317,5 +317,6 @@
"view": "Zobacz",
"report_post": "Zgłoś post",
"delete_post": "Usuń post",
"delete_post_confirm": "Usunąć ten post na stałe? Tej operacji nie można cofnąć."
"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."
}
+2 -1
View File
@@ -317,5 +317,6 @@
"view": "Ver",
"report_post": "Denunciar publicação",
"delete_post": "Excluir publicação",
"delete_post_confirm": "Excluir esta publicação permanentemente? Isso não pode ser desfeito."
"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."
}
+2 -1
View File
@@ -317,5 +317,6 @@
"view": "Vizualizare",
"report_post": "Raportează postarea",
"delete_post": "Șterge postarea",
"delete_post_confirm": "Șterge definitiv această postare? Această acțiune nu poate fi anulată."
"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."
}
+2 -1
View File
@@ -317,5 +317,6 @@
"view": "Смотреть",
"report_post": "Пожаловаться на пост",
"delete_post": "Удалить пост",
"delete_post_confirm": "Удалить этот пост навсегда? Это действие нельзя отменить."
"delete_post_confirm": "Удалить этот пост навсегда? Это действие нельзя отменить.",
"app_p2p_info": "Ты всегда можешь подключиться к любому борду, полностью P2P, никто не сможет тебя остановить. Просто вставь его адрес в поле поиска выше."
}
+2 -1
View File
@@ -317,5 +317,6 @@
"view": "Shiko",
"report_post": "Raporto postimin",
"delete_post": "Fshi postimin",
"delete_post_confirm": "Fshini këtë postim përgjithmonë? Kjo nuk mund të zhbëhet."
"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."
}
+2 -1
View File
@@ -317,5 +317,6 @@
"view": "Visa",
"report_post": "Rapportera inlägg",
"delete_post": "Radera inlägg",
"delete_post_confirm": "Radera detta inlägg permanent? Detta kan inte ångras."
"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."
}
+2 -1
View File
@@ -317,5 +317,6 @@
"view": "చూడు",
"report_post": "పోస్ట్ రిపోర్ట్ చేయండి",
"delete_post": "పోస్ట్ తొలగించండి",
"delete_post_confirm": "ఈ పోస్ట్‌ను శాశ్వతంగా తొలగించాలా? దీన్ని రద్దు చేయలేము."
"delete_post_confirm": "ఈ పోస్ట్‌ను శాశ్వతంగా తొలగించాలా? దీన్ని రద్దు చేయలేము.",
"app_p2p_info": "మీరు ఎప్పుడైనా ఏ బోర్డ్‌కైనా కనెక్ట్ అవ్వవచ్చు, పూర్తిగా P2P, ఎవరూ మిమ్మల్ని ఆపలేరు. పైన ఉన్న సెర్చ్ ఫీల్డ్‌లో దాని అడ్రస్ పేస్ట్ చేయండి."
}
+2 -1
View File
@@ -317,5 +317,6 @@
"view": "ดู",
"report_post": "แจ้งรายงานโพสต์",
"delete_post": "ลบโพสต์",
"delete_post_confirm": "ลบกระทู้นี้อย่างถาวรหรือไม่? การดำเนินการนี้ไม่สามารถยกเลิกได้"
"delete_post_confirm": "ลบกระทู้นี้อย่างถาวรหรือไม่? การดำเนินการนี้ไม่สามารถยกเลิกได้",
"app_p2p_info": "คุณสามารถเชื่อมต่อกับบอร์ดใดก็ได้ตลอดเวลา แบบ P2P เต็มรูปแบบ ไม่มีใครหยุดคุณได้ แค่วางที่อยู่ของมันในช่องค้นหาด้านบน"
}
+2 -1
View File
@@ -317,5 +317,6 @@
"view": "Görüntüle",
"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."
"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."
}
+2 -1
View File
@@ -317,5 +317,6 @@
"view": "Переглянути",
"report_post": "Поскаржитися на пост",
"delete_post": "Видалити пост",
"delete_post_confirm": "Видалити цей пост назавжди? Цю дію не можна скасувати."
"delete_post_confirm": "Видалити цей пост назавжди? Цю дію не можна скасувати.",
"app_p2p_info": "Ти завжди можеш підключитися до будь-якого борду, повністю P2P, ніхто не зможе тебе зупинити. Просто встав його адресу в поле пошуку вище."
}
+2 -1
View File
@@ -317,5 +317,6 @@
"view": "دیکھیں",
"report_post": "پوسٹ ریپورٹ کریں",
"delete_post": "پوسٹ حذف کریں",
"delete_post_confirm": "کیا اس پوسٹ کو مستقل طور پر حذف کریں؟ یہ واپس نہیں لیا جا سکتا۔"
"delete_post_confirm": "کیا اس پوسٹ کو مستقل طور پر حذف کریں؟ یہ واپس نہیں لیا جا سکتا۔",
"app_p2p_info": "آپ ہمیشہ کسی بھی بورڈ سے جڑ سکتے ہیں، مکمل طور پر P2P، کوئی آپ کو روک نہیں سکتا۔ اوپر والے سرچ فیلڈ میں اس کا پتہ پیسٹ کریں۔"
}
+2 -1
View File
@@ -317,5 +317,6 @@
"view": "Xem",
"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."
"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."
}
+2 -1
View File
@@ -317,5 +317,6 @@
"view": "查看",
"report_post": "举报帖子",
"delete_post": "删除帖子",
"delete_post_confirm": "永久删除此帖子?此操作无法撤销。"
"delete_post_confirm": "永久删除此帖子?此操作无法撤销。",
"app_p2p_info": "你随时可以连接到任何看板,完全 P2P,没人能阻止你。只需将其地址粘贴到上方搜索框中即可。"
}
+13 -7
View File
@@ -12,6 +12,7 @@ import useDirectoryModalStore from '../../stores/use-directory-modal-store';
import DisclaimerModal from '../../components/disclaimer-modal';
import DirectoryModal from '../../components/directory-modal';
import { getBoardPath } from '../../lib/utils/route-utils';
import { isWebRuntime } from '../../lib/media-hosting/show-upload-controls';
import lowerCase from 'lodash/lowerCase';
// https://github.com/bitsocialnet/lists/blob/master/5chan-directories.json
@@ -51,6 +52,7 @@ const SearchBar = () => {
const InfoBox = () => {
const { t } = useTranslation();
const isWeb = isWebRuntime();
return (
<div className={`${styles.box} ${styles.infoBox}`}>
<div className={styles.infoboxBar}>
@@ -67,13 +69,17 @@ const InfoBox = () => {
/>
<br />
<br />
<Trans
i18nKey='no_global_rules_info'
shouldUnescape={true}
components={{
1: <a key='releases-link' href='https://github.com/bitsocialnet/5chan/releases/latest' target='_blank' rel='noopener noreferrer' />,
}}
/>
{isWeb ? (
<Trans
i18nKey='no_global_rules_info'
shouldUnescape={true}
components={{
1: <a key='releases-link' href='https://github.com/bitsocialnet/5chan/releases/latest' target='_blank' rel='noopener noreferrer' />,
}}
/>
) : (
t('app_p2p_info')
)}
</div>
</div>
);