From 8f61caa789b02cf418b578280f9924c7e0d49791 Mon Sep 17 00:00:00 2001 From: "plebeius.eth" Date: Fri, 1 Mar 2024 20:42:21 +0100 Subject: [PATCH] add default subplebbit addresses --- public/translations/ar/default.json | 3 +- public/translations/bn/default.json | 3 +- public/translations/cs/default.json | 3 +- public/translations/da/default.json | 3 +- public/translations/de/default.json | 3 +- public/translations/el/default.json | 3 +- public/translations/en/default.json | 3 +- public/translations/es/default.json | 3 +- public/translations/fa/default.json | 3 +- public/translations/fi/default.json | 3 +- public/translations/fil/default.json | 3 +- public/translations/fr/default.json | 3 +- public/translations/he/default.json | 3 +- public/translations/hi/default.json | 3 +- public/translations/hu/default.json | 3 +- public/translations/id/default.json | 3 +- public/translations/it/default.json | 3 +- public/translations/ja/default.json | 3 +- public/translations/ko/default.json | 3 +- public/translations/mr/default.json | 3 +- public/translations/nl/default.json | 3 +- public/translations/no/default.json | 3 +- public/translations/pl/default.json | 3 +- public/translations/pt/default.json | 3 +- public/translations/ro/default.json | 3 +- public/translations/ru/default.json | 3 +- public/translations/sq/default.json | 3 +- public/translations/sv/default.json | 3 +- public/translations/te/default.json | 3 +- public/translations/th/default.json | 3 +- public/translations/tr/default.json | 3 +- public/translations/uk/default.json | 3 +- public/translations/ur/default.json | 3 +- public/translations/vi/default.json | 3 +- public/translations/zh/default.json | 3 +- src/hooks/use-default-subplebbits.ts | 41 ++++++++++ src/hooks/use-theme.ts | 2 +- src/themes.css | 16 +++- src/views/home/home.module.css | 49 +++++++++++- src/views/home/home.tsx | 107 ++++++++++++++++++++------- 40 files changed, 253 insertions(+), 67 deletions(-) create mode 100644 src/hooks/use-default-subplebbits.ts diff --git a/public/translations/ar/default.json b/public/translations/ar/default.json index 75570ff2..38102ba8 100644 --- a/public/translations/ar/default.json +++ b/public/translations/ar/default.json @@ -5,5 +5,6 @@ "plebchan_description": "Plebchan هو بديل لـ 4chan موزع، بدون خادم، بدون مسؤولين، حيث يمكن لأي شخص إنشاء وامتلاك منتديات غير محدودة. جميع البيانات تأتي من بروتوكول <1>plebbit، كلها نصوص بما في ذلك الروابط التي يتم تضمين الوسائط فيها، مشتركة نقطة لنقطة. لا يحتاج المستخدمون إلى تسجيل حساب قبل المشاركة في المجتمع. لا تتردد في النقر فوق منتدى أدناه الذي يهمك والانضمام فورًا!", "no_global_rules_info": "لا توجد قواعد عالمية، كل منتدى مستقل تمامًا وصاحبه يقرر كيفية/ما إذا كان يعتد به.", "boards": "منتديات", - "popular_threads": "المواضيع الشائعة" + "popular_threads": "المواضيع الشائعة", + "options": "الخيارات" } \ No newline at end of file diff --git a/public/translations/bn/default.json b/public/translations/bn/default.json index 65842abb..421e0bcd 100644 --- a/public/translations/bn/default.json +++ b/public/translations/bn/default.json @@ -5,5 +5,6 @@ "plebchan_description": "Plebchan একটি সার্ভারলেস, অ্যাডমিনলেস, ডিসেন্ট্রালাইজড 4chan বিকল্প যেখানে কেউই অসীম বোর্ড তৈরি এবং মালিকত্ব করতে পারেন। সমস্ত তথ্য প্রোটোকল <1>plebbit থেকে এসেছে, যেমন সব টেক্সট, যেখানে মিডিয়া সংযুক্ত লিংক থেকে অবস্থান করে, শেয়ার পির-টু-পি। ব্যবহারকারীদের কোনও অ্যাকাউন্ট নিবন্ধন করতে হয় না যাতে কোম্যুনিটিতে অংশগ্রহণ করতে পারেন। আপনি যেটা আপনার সাথে আগ্রহী তার নিচে একটি বোর্ডে ক্লিক করে যথাযথভাবে যোগদান করতে পারেন!", "no_global_rules_info": "কোন গ্লোবাল নিয়ম নেই, প্রতিটি বোর্ড সম্পূর্ণভাবে স্বতন্ত্র এবং তার মালিক কীভাবে/যদি তা নিয়ন্ত্রণ করতে চায় তা নির্ধারণ করে।", "boards": "বোর্ডসমূহ", - "popular_threads": "জনপ্রিয় থ্রেডগুলি" + "popular_threads": "জনপ্রিয় থ্রেডগুলি", + "options": "বিকল্পগুলি" } \ No newline at end of file diff --git a/public/translations/cs/default.json b/public/translations/cs/default.json index b69c8ac2..e7760065 100644 --- a/public/translations/cs/default.json +++ b/public/translations/cs/default.json @@ -5,5 +5,6 @@ "plebchan_description": "Plebchan je decentralizovaná alternativa 4chan bez serveru, bez administrátorů, kde si každý pleb může vytvořit a vlastnit neomezené nástěnky. Všechna data pocházejí z protokolu <1>plebbit, jsou všechno texty včetně odkazů, ze kterých jsou média vložena, sdílená peer-to-peer. Uživatelé se nemusí registrovat před účastí v komunitě. Neváhejte kliknout na nástěnku níže, která vás zajímá, a okamžitě se připojit!", "no_global_rules_info": "Žádná globální pravidla neexistují, každá nástěnka je zcela nezávislá a její vlastník rozhoduje o tom, jak/či ji moderovat.", "boards": "nástěnky", - "popular_threads": "Oblíbená vlákna" + "popular_threads": "Oblíbená vlákna", + "options": "Možnosti" } \ No newline at end of file diff --git a/public/translations/da/default.json b/public/translations/da/default.json index 8f4a84dd..8ab2ae13 100644 --- a/public/translations/da/default.json +++ b/public/translations/da/default.json @@ -5,5 +5,6 @@ "plebchan_description": "Plebchan er et serverløst, adminløst, decentraliseret 4chan-alternativ, hvor enhver pleb kan oprette og eje ubegrænsede opslagstavler. Alle data kommer fra protokollen <1>plebbit, det hele er tekst inklusive links, hvorfra medier er indlejret, delt peer-to-peer. Brugere behøver ikke at registrere en konto før deltagelse i fællesskabet. Du er velkommen til at klikke på en opslagstavle nedenfor, der interesserer dig, og springe direkte ind!", "no_global_rules_info": "Der er ingen globale regler, hver opslagstavle er helt uafhængig, og dens ejer beslutter hvordan/om at moderere den.", "boards": "opslagstavler", - "popular_threads": "Populære tråde" + "popular_threads": "Populære tråde", + "options": "Indstillinger" } \ No newline at end of file diff --git a/public/translations/de/default.json b/public/translations/de/default.json index 31cdc970..ecd5d31b 100644 --- a/public/translations/de/default.json +++ b/public/translations/de/default.json @@ -5,5 +5,6 @@ "plebchan_description": "Plebchan ist eine serverlose, adminlose, dezentralisierte Alternative zu 4chan, bei der jeder Pleb unbegrenzte Foren erstellen und besitzen kann. Alle Daten stammen aus dem Protokoll <1>plebbit, es handelt sich ausschließlich um Texte einschließlich Links, aus denen Medien eingebettet werden, die peer-to-peer geteilt werden. Benutzer müssen sich nicht registrieren, bevor sie an der Community teilnehmen. Fühlen Sie sich frei, auf ein Forum unten zu klicken, das Sie interessiert, und steigen Sie direkt ein!", "no_global_rules_info": "Es gibt keine globalen Regeln, jedes Forum ist völlig unabhängig und sein Besitzer entscheidet, wie/ob es moderiert wird.", "boards": "Foren", - "popular_threads": "Beliebte Threads" + "popular_threads": "Beliebte Threads", + "options": "Optionen" } \ No newline at end of file diff --git a/public/translations/el/default.json b/public/translations/el/default.json index 995dd2c2..65399980 100644 --- a/public/translations/el/default.json +++ b/public/translations/el/default.json @@ -5,5 +5,6 @@ "plebchan_description": "Το Plebchan είναι μια αντικατάσταση του 4chan χωρίς διακομιστή, χωρίς διαχειριστές, αποκεντρωμένη, όπου οποιοσδήποτε pleb μπορεί να δημιουργήσει και να έχει απεριόριστα boards. Όλα τα δεδομένα προέρχονται από το πρωτόκολλο <1>plebbit, είναι όλα κείμενα συμπεριλαμβανομένων των συνδέσμων από τους οποίους ενσωματώνονται τα πολυμέσα, κοινοποιούνται peer-to-peer. Οι χρήστες δεν χρειάζεται να εγγραφούν πριν να συμμετάσχουν στην κοινότητα. Μη διστάσετε να κάνετε κλικ σε ένα board παρακάτω που σας ενδιαφέρει και να μπείτε αμέσως μέσα!", "no_global_rules_info": "Δεν υπάρχουν παγκόσμιοι κανόνες, κάθε Διαδικτυακή πίνακας είναι εντελώς ανεξάρτητος και ο ιδιοκτήτης του αποφασίζει πώς/εάν να τον ελέγξει.", "boards": "διαδικτυακές πινακίδες", - "popular_threads": "Δημοφιλή νήματα" + "popular_threads": "Δημοφιλή νήματα", + "options": "Επιλογές" } \ No newline at end of file diff --git a/public/translations/en/default.json b/public/translations/en/default.json index a4383fe5..68960192 100644 --- a/public/translations/en/default.json +++ b/public/translations/en/default.json @@ -5,5 +5,6 @@ "plebchan_description": "Plebchan is a serverless, adminless, decentralized 4chan alternative where any pleb can create and own unlimited boards. All data comes from the <1>plebbit protocol, it's all text including links from which media is embedded, shared peer-to-peer. Users do not need to register an account before participating in the community. Feel free to click on a board below that interests you and jump right in!", "no_global_rules_info": "There are no global rules, each board is completely independent and its owner decides how/if to moderate it.", "boards": "boards", - "popular_threads": "Popular threads" + "popular_threads": "Popular threads", + "options": "Options" } \ No newline at end of file diff --git a/public/translations/es/default.json b/public/translations/es/default.json index 3e0a82b7..c3371c11 100644 --- a/public/translations/es/default.json +++ b/public/translations/es/default.json @@ -5,5 +5,6 @@ "plebchan_description": "Plebchan es una alternativa descentralizada, sin servidor, sin administrador, de 4chan donde cualquier pleb puede crear y poseer foros ilimitados. Todos los datos provienen del protocolo <1>plebbit, son todo texto incluidos los enlaces desde los cuales se incrustan los medios, compartidos de igual a igual. Los usuarios no necesitan registrarse antes de participar en la comunidad. ¡Siéntete libre de hacer clic en un foro a continuación que te interese y únete de inmediato!", "no_global_rules_info": "No hay reglas globales, cada foro es completamente independiente y su propietario decide cómo/si moderarlo.", "boards": "foros", - "popular_threads": "Hilos populares" + "popular_threads": "Hilos populares", + "options": "Opciones" } \ No newline at end of file diff --git a/public/translations/fa/default.json b/public/translations/fa/default.json index ab89c164..d0dc3be5 100644 --- a/public/translations/fa/default.json +++ b/public/translations/fa/default.json @@ -5,5 +5,6 @@ "plebchan_description": "پلبچن یک جایگزین ۴چن بدون سرور، بدون مدیر و متمرکز است که هر پلب می‌تواند تالارهای نامحدودی را ایجاد و مالکیت کند. تمام داده‌ها از پروتکل <1>پلبیت گرفته می‌شود، همه متن‌اند از جمله پیوندهایی که رسانه‌ها از آنها جاسازی می‌شوند، به صورت همتا به همتا به اشتراک گذاشته می‌شوند. کاربران قبل از شرکت در این جامعه نیازی به ثبت نام ندارند. لطفاً روی یک تالار زیر که به شما علاقه‌مند است کلیک کنید و مستقیماً به آن بپیوندید!", "no_global_rules_info": "هیچ قانون جهانی وجود ندارد، هر تالار کاملا مستقل است و مالک آن تصمیم می‌گیرد چگونه/آیا آن را نظارت کند.", "boards": "تالارهای پیام", - "popular_threads": "نخستین موضوعات" + "popular_threads": "نخستین موضوعات", + "options": "گزینه ها" } \ No newline at end of file diff --git a/public/translations/fi/default.json b/public/translations/fi/default.json index 79542835..0adf723b 100644 --- a/public/translations/fi/default.json +++ b/public/translations/fi/default.json @@ -5,5 +5,6 @@ "plebchan_description": "Plebchan on palvelin- ja ylläpitovapaa hajautettu vaihtoehto 4chanille, jossa kuka tahansa pleb voi luoda ja omistaa rajoittamattomasti foorumeita. Kaikki tiedot tulevat <1>plebbit-protokollasta, ne ovat kaikki tekstiä mukaan lukien linkit, joista media upotetaan, jaettuna vertaisverkkona. Käyttäjien ei tarvitse rekisteröityä ennen osallistumista yhteisöön. Voit vapaasti klikata alla olevaa foorumia, joka kiinnostaa sinua, ja liittyä heti mukaan!", "no_global_rules_info": "Maailmanlaajuisia sääntöjä ei ole, jokainen foorumi on täysin itsenäinen ja sen omistaja päättää kuinka / onko se säännelty.", "boards": "foorumit", - "popular_threads": "Suositut langat" + "popular_threads": "Suositut langat", + "options": "Vaihtoehdot" } \ No newline at end of file diff --git a/public/translations/fil/default.json b/public/translations/fil/default.json index 8118a143..46ab6cf3 100644 --- a/public/translations/fil/default.json +++ b/public/translations/fil/default.json @@ -5,5 +5,6 @@ "plebchan_description": "Ang Plebchan ay isang serverless, adminless, decentralized na alternatibo sa 4chan kung saan maaaring lumikha at magmamay-ari ang sinumang pleb ng walang limitasyong boards. Lahat ng data ay nagmumula sa <1>plebbit protocol, ito ay lahat ng teksto kabilang ang mga link mula sa kung saan ang midya ay naka-embed, ibinahagi peer-to-peer. Hindi kailangang magparehistro ang mga gumagamit bago makilahok sa komunidad. Huwag mag-atubiling mag-click sa isang board sa ibaba na nais mong salihan at sumali na agad!", "no_global_rules_info": "Walang global na mga patakaran, bawat board ay lubusang independiyente at ang may-ari nito ang nagdedesisyon kung paano / kung ito ay isasakdal.", "boards": "mga board", - "popular_threads": "Mga popular na thread" + "popular_threads": "Mga popular na thread", + "options": "Mga opsyon" } \ No newline at end of file diff --git a/public/translations/fr/default.json b/public/translations/fr/default.json index 7165dce0..35b4f215 100644 --- a/public/translations/fr/default.json +++ b/public/translations/fr/default.json @@ -5,5 +5,6 @@ "plebchan_description": "Plebchan est une alternative décentralisée, sans serveur, sans administrateur à 4chan où n'importe quel pleb peut créer et posséder des forums illimités. Toutes les données proviennent du protocole <1>plebbit, elles sont toutes textuelles y compris les liens à partir desquels les médias sont intégrés, partagés de pair à pair. Les utilisateurs n'ont pas besoin de s'inscrire avant de participer à la communauté. N'hésitez pas à cliquer sur un forum ci-dessous qui vous intéresse et à vous joindre immédiatement !", "no_global_rules_info": "Il n'y a pas de règles globales, chaque forum est complètement indépendant et son propriétaire décide comment/s'il doit le modérer.", "boards": "forums", - "popular_threads": "Fils populaires" + "popular_threads": "Fils populaires", + "options": "Options" } \ No newline at end of file diff --git a/public/translations/he/default.json b/public/translations/he/default.json index 5e281752..39b9d09f 100644 --- a/public/translations/he/default.json +++ b/public/translations/he/default.json @@ -5,5 +5,6 @@ "plebchan_description": "פלבצ'ן הוא אלטרנטיבה חדשה, ללא שרת, ללא מנהל, וללא מרכזית ל־4chan, בה כל pleb יכול ליצור ולבעוט בלוחות ללא הגבלה. כל הנתונים מגיעים מפרוטוקול <1>plebbit, הם כולם טקסט כולל קישורים מהם מוטמעת מדיה, משותפת פר אחד פר אחד. המשתמשים אינם צריכים להירשם לחשבון לפני השתתפותם בקהילה. נכון ללחוץ על לוח מטה שמעניין אתכם ולהצטרף מיידית!", "no_global_rules_info": "אין כלל כללי, כל לוח הודעות הוא לחוד ובעליו מחליט איך/האם להודיע על זה.", "boards": "פורומים", - "popular_threads": "אשכולות פופולריים" + "popular_threads": "אשכולות פופולריים", + "options": "אפשרויות" } \ No newline at end of file diff --git a/public/translations/hi/default.json b/public/translations/hi/default.json index b892365e..adbbaf66 100644 --- a/public/translations/hi/default.json +++ b/public/translations/hi/default.json @@ -5,5 +5,6 @@ "plebchan_description": "प्लेबचान एक सर्वरलेस, एडमिनलेस, डीसेंट्रलाइज्ड 4chan का विकल्प है जहां कोई भी प्लेब असीमित बोर्ड बना सकता है और मालिक हो सकता है। सभी डेटा प्रोटोकॉल <1>प्लेबिट से आता है, यह सभी पाठ है जिसमें मीडिया एम्बेड है, पीयर-टू-पीर साझा किया जाता है, सहित लिंक। उपयोगकर्ताओं को समुदाय में भाग लेने से पहले खाता रजिस्टर करने की आवश्यकता नहीं है। आपको जो भी बोर्ड नीचे पसंद है, उसपर क्लिक करें और तुरंत शामिल हों!", "no_global_rules_info": "कोई वैश्विक नियम नहीं हैं, प्रत्येक मंच पूरी तरह से स्वतंत्र है और इसके मालिक यह तय करता है कि कैसे/क्या उसे नियंत्रित किया जाए।", "boards": "मंच", - "popular_threads": "लोकप्रिय थ्रेड्स" + "popular_threads": "लोकप्रिय थ्रेड्स", + "options": "विकल्प" } \ No newline at end of file diff --git a/public/translations/hu/default.json b/public/translations/hu/default.json index 4f5f02bb..14dccc19 100644 --- a/public/translations/hu/default.json +++ b/public/translations/hu/default.json @@ -5,5 +5,6 @@ "plebchan_description": "A Plebchan egy szerver nélküli, admin nélküli, decentralizált 4chan alternatíva, ahol bármelyik pleb létrehozhat és birtokolhat korlátlan fórumokat. Az adatok mindegyike a <1>plebbit protokollból származik, minden szöveg, beleértve a hivatkozásokat is, amelyekből a média be van ágyazva, peer-to-peer megosztással. A felhasználóknak nem kell fiókot regisztrálniuk a közösség részvételéhez. Kattints bármelyik lent lévő fórumra, amely érdekel, és csatlakozz azonnal!", "no_global_rules_info": "Nincsenek globális szabályok, minden fórum teljesen független, és tulajdonosa dönti el, hogyan/ha moderálja azt.", "boards": "fórumok", - "popular_threads": "Népszerű szálak" + "popular_threads": "Népszerű szálak", + "options": "Lehetőségek" } \ No newline at end of file diff --git a/public/translations/id/default.json b/public/translations/id/default.json index 4d76ede6..bd285558 100644 --- a/public/translations/id/default.json +++ b/public/translations/id/default.json @@ -5,5 +5,6 @@ "plebchan_description": "Plebchan adalah alternatif 4chan tanpa server, tanpa admin, terdesentralisasi di mana siapa pun pleb bisa membuat dan memiliki papan tak terbatas. Semua data berasal dari protokol <1>plebbit, semuanya teks termasuk tautan dari mana media disematkan, dibagikan peer-to-peer. Pengguna tidak perlu mendaftar akun sebelum berpartisipasi dalam komunitas. Jangan ragu untuk mengklik papan di bawah yang menarik bagi Anda dan bergabung segera!", "no_global_rules_info": "Tidak ada aturan global, setiap papan adalah sepenuhnya independen dan pemiliknya yang menentukan bagaimana/apa yang dimoderasi.", "boards": "papan pesan", - "popular_threads": "Benang populer" + "popular_threads": "Benang populer", + "options": "Pilihan" } \ No newline at end of file diff --git a/public/translations/it/default.json b/public/translations/it/default.json index d5c896c3..24a65c5b 100644 --- a/public/translations/it/default.json +++ b/public/translations/it/default.json @@ -5,5 +5,6 @@ "plebchan_description": "Plebchan è un'alternativa a 4chan decentralizzata, senza server, senza amministratori, in cui qualunque pleb può creare e possedere forum illimitati. Tutti i dati provengono dal protocollo <1>plebbit, sono tutti testo inclusi i link da cui sono incorporati i media, condivisi peer-to-peer. Gli utenti non devono registrare un account prima di partecipare alla community. Sentiti libero di cliccare su un forum qui sotto che ti interessa e unisciti subito!", "no_global_rules_info": "Non ci sono regole globali, ogni forum è completamente indipendente e il suo proprietario decide come/se moderarlo.", "boards": "forum", - "popular_threads": "Thread popolari" + "popular_threads": "Thread popolari", + "options": "Opzioni" } \ No newline at end of file diff --git a/public/translations/ja/default.json b/public/translations/ja/default.json index 7b12d34b..15052451 100644 --- a/public/translations/ja/default.json +++ b/public/translations/ja/default.json @@ -5,5 +5,6 @@ "plebchan_description": "Plebchan は、サーバーレス、管理者なし、分散型の 4chan の代替であり、どんな pleb も無制限のボードを作成して所有できます。すべてのデータは、<1>plebbit プロトコルから取得され、すべてのテキスト、埋め込まれるメディアが含まれるリンク、ピアツーピアで共有されます。ユーザーはコミュニティに参加する前にアカウントを登録する必要はありません。興味のあるボードをクリックして、すぐに参加してください!", "no_global_rules_info": "グローバルなルールはありません、各掲示板は完全に独立しており、その所有者がそれをどのように/どのようにモデレートするかを決定します。", "boards": "掲示板", - "popular_threads": "人気のあるスレッド" + "popular_threads": "人気のあるスレッド", + "options": "オプション" } \ No newline at end of file diff --git a/public/translations/ko/default.json b/public/translations/ko/default.json index 9c66dd04..cdb4b37f 100644 --- a/public/translations/ko/default.json +++ b/public/translations/ko/default.json @@ -5,5 +5,6 @@ "plebchan_description": "Plebchan은 서버 없이, 관리자 없이, 분산형인 4chan 대안으로 어떤 pleb도 무제한의 게시판을 생성하고 소유할 수 있습니다. 모든 데이터는 <1>plebbit 프로토콜에서 나온 것으로, 모두 텍스트이며, 그 안에 미디어가 포함된 링크를 통해 peer-to-peer로 공유됩니다. 사용자는 커뮤니티에 참여하기 전에 계정을 등록할 필요가 없습니다. 관심 있는 아래의 게시판을 클릭하고 바로 참여해보세요!", "no_global_rules_info": "전역 규칙이 없습니다. 각 게시판은 완전히 독립적이며 소유자가 어떻게/모디레이션할지를 결정합니다.", "boards": "게시판", - "popular_threads": "인기 있는 스레드" + "popular_threads": "인기 있는 스레드", + "options": "옵션" } \ No newline at end of file diff --git a/public/translations/mr/default.json b/public/translations/mr/default.json index 856cf6c4..48628090 100644 --- a/public/translations/mr/default.json +++ b/public/translations/mr/default.json @@ -5,5 +5,6 @@ "plebchan_description": "प्लेबचॅन हा सर्व्हरलेस, एडमिनलेस, डीसेंट्रलाइझ्ड ४चॅनचा पर्याय आहे ज्यात कोणत्याही प्लेबला अमित बोर्ड तयार करून ठेवू शकतात. सर्व डेटा <1>प्लेबिट प्रोटोकॉलपासून आला आहे, ते सर्व पाठ आहेत, त्यातून मीडिया एम्बेड केला जातो, पीयर-ते-पीयर सामायिक केला जातो. वापरकर्त्यांना समुदायात सहभाग घेण्यापूर्वी खाते नोंदविण्याची आवश्यकता नाही. आपल्याला आवडता असलेला खालील बोर्ड क्लिक करून प्रवेश करा आणि लवकरच ज्वाइन करा!", "no_global_rules_info": "कोणत्याही जागतिक कायद्या नाहीत, प्रत्येक बोर्ड पूर्णपणे स्वतंत्र आहे आणि त्याचा मालक कसा/आणि कशा प्रकारे याची नियमन करावी हे त्याच्याकडून ठरतो.", "boards": "संदेश फलक", - "popular_threads": "लोकप्रिय थ्रेड्स" + "popular_threads": "लोकप्रिय थ्रेड्स", + "options": "पर्याय" } \ No newline at end of file diff --git a/public/translations/nl/default.json b/public/translations/nl/default.json index 585ef712..09d12e95 100644 --- a/public/translations/nl/default.json +++ b/public/translations/nl/default.json @@ -5,5 +5,6 @@ "plebchan_description": "Plebchan is een serverloos, adminloos, gedecentraliseerd alternatief voor 4chan waar elke pleb onbeperkte forums kan maken en bezitten. Alle gegevens komen van het <1>plebbit-protocol, het is allemaal tekst inclusief links waaruit media is ingesloten, gedeeld peer-to-peer. Gebruikers hoeven geen account te registreren voordat ze deelnemen aan de community. Voel je vrij om op een forum hieronder te klikken dat je interesseert en spring er meteen in!", "no_global_rules_info": "Er zijn geen wereldwijde regels, elk forum is volledig onafhankelijk en de eigenaar beslist hoe/wel of niet te modereren.", "boards": "forums", - "popular_threads": "Populaire threads" + "popular_threads": "Populaire threads", + "options": "Opties" } \ No newline at end of file diff --git a/public/translations/no/default.json b/public/translations/no/default.json index b8c9e16b..e746d6aa 100644 --- a/public/translations/no/default.json +++ b/public/translations/no/default.json @@ -5,5 +5,6 @@ "plebchan_description": "Plebchan er et serverløst, adminløst, desentralisert alternativ til 4chan der hvilken som helst pleb kan opprette og eie ubegrensede fora. Alle data kommer fra protokollen <1>plebbit, det er all tekst inkludert lenker fra hvilke medier er innebygd, delt peer-to-peer. Brukere trenger ikke å registrere en konto før de deltar i fellesskapet. Ikke nøl med å klikke på et forum nedenfor som interesserer deg og bli med en gang!", "no_global_rules_info": "Det er ingen globale regler, hvert forum er helt uavhengig, og eieren bestemmer hvordan/om å moderere det.", "boards": "fora", - "popular_threads": "Populære tråder" + "popular_threads": "Populære tråder", + "options": "Alternativer" } \ No newline at end of file diff --git a/public/translations/pl/default.json b/public/translations/pl/default.json index 31e4b561..760f06d9 100644 --- a/public/translations/pl/default.json +++ b/public/translations/pl/default.json @@ -5,5 +5,6 @@ "plebchan_description": "Plebchan to serwer, admin, zdecentralizowana alternatywa dla 4chan, gdzie każdy pleb może tworzyć i posiadać nieograniczone fora. Wszystkie dane pochodzą z protokołu <1>plebbit, są to same teksty, w tym linki, z których osadzone są media, udostępniane w trybie peer-to-peer. Użytkownicy nie muszą rejestrować konta przed uczestnictwem w społeczności. Śmiało kliknij na forum poniżej, które Cię interesuje, i dołącz!", "no_global_rules_info": "Nie ma globalnych zasad, każda tablica jest całkowicie niezależna, a jej właściciel decyduje, w jaki sposób/czy ją moderować.", "boards": "fora", - "popular_threads": "Popularne wątki" + "popular_threads": "Popularne wątki", + "options": "Opcje" } \ No newline at end of file diff --git a/public/translations/pt/default.json b/public/translations/pt/default.json index e96a5216..af2636b5 100644 --- a/public/translations/pt/default.json +++ b/public/translations/pt/default.json @@ -5,5 +5,6 @@ "plebchan_description": "Plebchan é uma alternativa descentralizada, sem servidor, sem administradores ao 4chan onde qualquer plebeu pode criar e possuir fóruns ilimitados. Todos os dados vêm do protocolo <1>plebbit, são todos textos incluindo links dos quais a mídia é incorporada, compartilhada peer-to-peer. Os usuários não precisam se registrar antes de participar da comunidade. Sinta-se à vontade para clicar em um fórum abaixo que lhe interesse e participar imediatamente!", "no_global_rules_info": "Não existem regras globais, cada fórum é completamente independente e o seu proprietário decide como/se o moderar.", "boards": "fóruns", - "popular_threads": "Tópicos populares" + "popular_threads": "Tópicos populares", + "options": "Opções" } \ No newline at end of file diff --git a/public/translations/ro/default.json b/public/translations/ro/default.json index 5d309a59..124b16ef 100644 --- a/public/translations/ro/default.json +++ b/public/translations/ro/default.json @@ -5,5 +5,6 @@ "plebchan_description": "Plebchan este o alternativă descentralizată, fără server, fără administratori la 4chan, unde orice pleb poate crea și deține forumuri nelimitate. Toate datele vin de la protocolul <1>plebbit, sunt toate text inclusiv linkuri din care sunt încorporate media, distribuite peer-to-peer. Utilizatorii nu trebuie să-și înregistreze un cont înainte de a participa la comunitate. Nu ezitați să faceți clic pe un forum de mai jos care vă interesează și să vă alăturați imediat!", "no_global_rules_info": "Nu există reguli globale, fiecare forum este complet independent și proprietarul său decide cum/sau dacă să îl modereze.", "boards": "forumuri", - "popular_threads": "Threaduri populare" + "popular_threads": "Threaduri populare", + "options": "Opțiuni" } \ No newline at end of file diff --git a/public/translations/ru/default.json b/public/translations/ru/default.json index 7525f383..adf66637 100644 --- a/public/translations/ru/default.json +++ b/public/translations/ru/default.json @@ -5,5 +5,6 @@ "plebchan_description": "Plebchan - это безсерверная, безадминистративная, децентрализованная альтернатива 4chan, где любой плеб может создавать и владеть неограниченным количеством форумов. Все данные поступают из протокола <1>plebbit, это весь текст, включая ссылки, из которых встроены медиа, и распространяются по сети peer-to-peer. Пользователи не должны регистрировать учетную запись перед участием в сообществе. Не стесняйтесь нажимать на форум ниже, который вас интересует, и присоединяйтесь немедленно!", "no_global_rules_info": "Нет глобальных правил, каждая доска полностью независима, и ее владелец решает, как/если ее модерировать.", "boards": "форумы", - "popular_threads": "Популярные темы" + "popular_threads": "Популярные темы", + "options": "Опции" } \ No newline at end of file diff --git a/public/translations/sq/default.json b/public/translations/sq/default.json index 492e3430..cda01943 100644 --- a/public/translations/sq/default.json +++ b/public/translations/sq/default.json @@ -5,5 +5,6 @@ "plebchan_description": "Plebchan është një alternativë e 4chan decentralizuar, pa server, pa administratorë, ku çdo pleb mund të krijojë dhe të posedojë forume të pakufizuara. Të gjitha të dhënat vijnë nga protokoli <1>plebbit, janë të gjitha tekste duke përfshirë lidhjet nga të cilat mediat janë të mbështjellë, ndarë peer-to-peer. Përdoruesit nuk duhet të regjistrojnë një llogari para se të marrin pjesë në komunitet. Mos ngurroni të klikoni në një forum më poshtë që ju intereson dhe të bashkoheni menjëherë!", "no_global_rules_info": "Nuk ka rregulla globale, çdo forum është plotësisht i pavarur dhe pronari i tij vendos se si/nëse ta moderohet.", "boards": "forume", - "popular_threads": "Threadet e njohur" + "popular_threads": "Threadet e njohur", + "options": "Mundësitë" } \ No newline at end of file diff --git a/public/translations/sv/default.json b/public/translations/sv/default.json index e22b76b6..c9bf9353 100644 --- a/public/translations/sv/default.json +++ b/public/translations/sv/default.json @@ -5,5 +5,6 @@ "plebchan_description": "Plebchan är ett serverlöst, adminlöst, decentraliserat alternativ till 4chan där vilken pleb som helst kan skapa och äga obegränsade forum. Alla data kommer från protokollet <1>plebbit, det är all text inklusive länkar från vilka media bäddas in, delat peer-to-peer. Användare behöver inte registrera ett konto innan de deltar i gemenskapen. Tveka inte att klicka på ett forum nedan som intresserar dig och gå med direkt!", "no_global_rules_info": "Det finns inga globala regler, varje forum är helt oberoende och dess ägare bestämmer hur/om att moderera den.", "boards": "forum", - "popular_threads": "Populära trådar" + "popular_threads": "Populära trådar", + "options": "Alternativ" } \ No newline at end of file diff --git a/public/translations/te/default.json b/public/translations/te/default.json index 48977e29..3ac4e2b5 100644 --- a/public/translations/te/default.json +++ b/public/translations/te/default.json @@ -5,5 +5,6 @@ "plebchan_description": "ప్లెబ్చాన్ ఒక సర్వర్ లేని, అడ్మిన్ లేని, డిసెంట్రలైజ్‌డ్ 4చాన్ వైకల్పికం దీనిలో ఏ ప్లెబ్ యొక్క సర్వర్లేస్, అడ్మిన్‌లేస్, అసంబద్ధ బోర్డులు సృష్టించవచ్చు. అన్ని డేటా <1>ప్లెబిట్ ప్రోటోకాల్‌నుండి వస్తాయి, అది అన్ని లింక్‌లు జాబితానుండి మీడియా ఎంబెడ్ చేయబడినపుడు ఉంటుంది, అది పీయర్‌టు‌పీయర్ గా పంపబడుతుంది. వాడుకరు కమ్యూనిటీలో పాల్గొనుటకు ముందు ఎకౌంటు నమోదు చేయాల్సిన అవసరం లేదు. మీకు ఆసక్తి కలిగించే బోర్డుకు క్లిక్ చేసి ప్రత్యక్షంగా చేరవచ్చు!", "no_global_rules_info": "గ్లోబల్ నియమాలు లేవు, ప్రతి బోర్డు పూర్తిగా స్వతంత్రంగా ఉంటుంది మరియు అది మాలిక ఏమి/అయితే అని నిర్వచించండి.", "boards": "సందేశ బోర్డులు", - "popular_threads": "జనప్రియమైన థ్రెడ్‌లు" + "popular_threads": "జనప్రియమైన థ్రెడ్‌లు", + "options": "ఎంపికలు" } \ No newline at end of file diff --git a/public/translations/th/default.json b/public/translations/th/default.json index 4240ccdd..96a0a051 100644 --- a/public/translations/th/default.json +++ b/public/translations/th/default.json @@ -5,5 +5,6 @@ "plebchan_description": "Plebchan เป็นทางเลือกที่ไม่มีเซิร์ฟเวอร์ แอดมินไม่มี แบบกระจายสำหรับ 4chan ที่ใครก็สามารถสร้างและเป็นเจ้าของบอร์ดได้ไม่จำกัด ข้อมูลทั้งหมดมาจากโปรโตคอล <1>plebbit มันเป็นข้อความทั้งหมดที่รวมถึงลิงก์จากซึ่งมีสื่อที่ฝังอยู่ และแบ่งปันแบบ peer-to-peer ผู้ใช้ไม่จำเป็นต้องลงทะเบียนบัญชีก่อนที่จะเข้าร่วมชุมชน อย่าลังเลที่จะคลิกบอร์ดด้านล่างที่คุณสนใจและเข้าร่วมทันที!", "no_global_rules_info": "ไม่มีกฎทั่วโลกที่มีอยู่, แต่ละกระดานเป็นอิสระและเจ้าของกำหนดว่าจะ/จะไม่ต้องควบคุมมันอย่างไร", "boards": "กระดานข่าว", - "popular_threads": "กระทู้ยอดนิยม" + "popular_threads": "กระทู้ยอดนิยม", + "options": "ตัวเลือก" } \ No newline at end of file diff --git a/public/translations/tr/default.json b/public/translations/tr/default.json index 0608f4f1..3354e2c4 100644 --- a/public/translations/tr/default.json +++ b/public/translations/tr/default.json @@ -5,5 +5,6 @@ "plebchan_description": "Plebchan, herhangi bir plebin sınırsız tahtalar oluşturabileceği ve sahip olabileceği sunucusuz, yöneticisiz, merkezi olmayan 4chan alternatifidir. Tüm veriler, tüm metinler ve yerleştirilen medyaların içinde bulunduğu bağlantılar da dahil olmak üzere <1>plebbit protokolünden gelir ve eşler arası olarak paylaşılır. Kullanıcıların topluluğa katılmadan önce bir hesap kaydetmelerine gerek yoktur. Sizi ilgilendiren aşağıdaki tahtaya tıklayın ve hemen katılın!", "no_global_rules_info": "Küresel kurallar yoktur, her forum tamamen bağımsızdır ve sahibi nasıl/modere edileceğine karar verir.", "boards": "forumlar", - "popular_threads": "Popüler konular" + "popular_threads": "Popüler konular", + "options": "Seçenekler" } \ No newline at end of file diff --git a/public/translations/uk/default.json b/public/translations/uk/default.json index 1ac7c345..dfa080dd 100644 --- a/public/translations/uk/default.json +++ b/public/translations/uk/default.json @@ -5,5 +5,6 @@ "plebchan_description": "Plebchan - це безсерверний, безадміністративний, децентралізований альтернативний 4chan, де будь-який плеб може створити та володіти необмеженою кількістю форумів. Усі дані надходять з протоколу <1>plebbit, це весь текст, включаючи посилання, з яких вбудовані медіа, та розповсюджуються у режимі peer-to-peer. Користувачам не потрібно реєструвати обліковий запис перед участю в спільноті. Не соромтеся натискати на дошку нижче, яка цікавить вас, і приєднуйтеся одразу!", "no_global_rules_info": "Немає глобальних правил, кожна дошка цілком незалежна, і її власник вирішує, як/чи модерувати її.", "boards": "форуми", - "popular_threads": "Популярні теми" + "popular_threads": "Популярні теми", + "options": "Опції" } \ No newline at end of file diff --git a/public/translations/ur/default.json b/public/translations/ur/default.json index 8d486ba3..f5b1f3c3 100644 --- a/public/translations/ur/default.json +++ b/public/translations/ur/default.json @@ -5,5 +5,6 @@ "plebchan_description": "پلیبچان ایک سرور کم، ایڈمن کم، غیر مرکزی 4chan کی بدلتا ہے جہاں ہر کوئی پلیب بے حد بورڈ بنا سکتا ہے اور مالک ہو سکتا ہے۔ تمام ڈیٹا پروٹوکول <1>پلیبٹ سے آتا ہے، یہ سب ٹیکسٹ ہے جس میں میڈیا شامل ہے، پیر-سے-پیر اشتراک کیا گیا ہے۔ صارفین کو بہمت شامل ہونے سے پہلے اکاؤنٹ رجسٹر کرانے کی ضرورت نہیں ہے۔ نیچے کسی بھی بورڈ پر کلک کریں جو آپ کو دلچسپ لگتا ہے اور فوراً شامل ہوں!", "no_global_rules_info": "کوئی عالمی اصول نہیں ہیں، ہر بورڈ مکمل طور پر آزاد ہے اور اس کا مالک یہ فیصلہ کرتا ہے کہ وہ کیسے/کیا اسے موڈریٹ کرے گا۔", "boards": "پیغام بورڈز", - "popular_threads": "مقبول تھریڈز" + "popular_threads": "مقبول تھریڈز", + "options": "اختیارات" } \ No newline at end of file diff --git a/public/translations/vi/default.json b/public/translations/vi/default.json index d4fe8e57..d1975bdc 100644 --- a/public/translations/vi/default.json +++ b/public/translations/vi/default.json @@ -5,5 +5,6 @@ "plebchan_description": "Plebchan là một lựa chọn phi tập trung, không có máy chủ, không có quản trị viên cho 4chan nơi bất kỳ pleb nào cũng có thể tạo và sở hữu các bảng không giới hạn. Tất cả dữ liệu đều đến từ giao thức <1>plebbit, đó là toàn bộ văn bản bao gồm cả liên kết từ đó các phương tiện được nhúng, được chia sẻ ngang hàng. Người dùng không cần đăng ký tài khoản trước khi tham gia cộng đồng. Hãy thoải mái nhấp vào một bảng dưới đây mà bạn quan tâm và tham gia ngay!", "no_global_rules_info": "Không có quy tắc toàn cầu, mỗi diễn đàn là hoàn toàn độc lập và chủ sở hữu quyết định cách/nếu muốn kiểm duyệt nó.", "boards": "diễn đàn", - "popular_threads": "Chủ đề phổ biến" + "popular_threads": "Chủ đề phổ biến", + "options": "Tùy chọn" } \ No newline at end of file diff --git a/public/translations/zh/default.json b/public/translations/zh/default.json index 569dfec8..f4588f61 100644 --- a/public/translations/zh/default.json +++ b/public/translations/zh/default.json @@ -5,5 +5,6 @@ "plebchan_description": "Plebchan是4chan的无服务器,无管理员,去中心化替代品,任何平民都可以创建和拥有无限的板块。所有数据都来自<1>plebbit协议,所有内容都是文本,包括嵌入媒体的链接,采用对等方式共享。用户在参与社区之前无需注册帐户。随时点击下面您感兴趣的板块,立即加入吧!", "no_global_rules_info": "没有全球规则,每个板块都是完全独立的,其所有者决定如何/是否对其进行审查。", "boards": "论坛", - "popular_threads": "热门主题" + "popular_threads": "热门主题", + "options": "选项" } \ No newline at end of file diff --git a/src/hooks/use-default-subplebbits.ts b/src/hooks/use-default-subplebbits.ts new file mode 100644 index 00000000..4e2186c3 --- /dev/null +++ b/src/hooks/use-default-subplebbits.ts @@ -0,0 +1,41 @@ +import { useEffect, useMemo, useState } from 'react'; + +interface Subplebbit { + title?: string; + address: string; + tags?: string[]; + features?: string[]; +} + +let cache: Subplebbit[] | null = null; + +const useDefaultSubplebbits = () => { + const [subplebbits, setSubplebbits] = useState([]); + + useEffect(() => { + if (cache) { + return; + } + (async () => { + try { + const multisub = await fetch( + 'https://raw.githubusercontent.com/plebbit/temporary-default-subplebbits/master/multisub.json', + // { cache: 'no-cache' } + ).then((res) => res.json()); + cache = multisub.subplebbits; + setSubplebbits(multisub.subplebbits); + } catch (e) { + console.warn(e); + } + })(); + }, []); + + return cache || subplebbits; +}; + +export const useDefaultSubplebbitAddresses = () => { + const defaultSubplebbits = useDefaultSubplebbits(); + return useMemo(() => defaultSubplebbits.map((subplebbit: Subplebbit) => subplebbit.address), [defaultSubplebbits]); +}; + +export default useDefaultSubplebbits; diff --git a/src/hooks/use-theme.ts b/src/hooks/use-theme.ts index d3601bff..426a7d63 100644 --- a/src/hooks/use-theme.ts +++ b/src/hooks/use-theme.ts @@ -6,7 +6,7 @@ interface ThemeState { } const useThemeStore = create((set: StoreApi['setState']) => ({ - theme: localStorage.getItem('theme') || 'yotsuba', + theme: localStorage.getItem('theme') || 'yotsuba-b', setTheme: (theme: string) => { localStorage.setItem('theme', theme); set({ theme }); diff --git a/src/themes.css b/src/themes.css index 091291a0..125620c8 100644 --- a/src/themes.css +++ b/src/themes.css @@ -5,10 +5,16 @@ --secondary-color: #fca; --text-color-on-primary: #fff; --text-color-on-secondary: #800; + --text-color-on-secondary-hover: #c63; --text-color-standard: #000; --text-color-inverse: #fff; --background-text-color: #fff; - --link-text-color: #00f; + --external-link-text-color: #00f; + --external-link-text-decoration: underline; + --internal-link-text-color: #800; + --internal-link-text-color-hover: #e00; + --internal-link-text-decoration: none; + --internal-link-text-decoration-hover: underline; } :root .yotsuba-b { @@ -18,8 +24,14 @@ --secondary-color: #98e; --text-color-on-primary: #000; --text-color-on-secondary: #000; + --text-color-on-secondary-hover: #fff; --text-color-standard: #000; --text-color-inverse: #fff; --background-text-color: #fff; - --link-text-color: #00f; + --external-link-text-color: #00f; + --external-link-text-decoration: underline; + --internal-link-text-color: #34345c; + --internal-link-text-color-hover: #d00; + --internal-link-text-decoration: none; + --internal-link-text-decoration-hover: underline; } diff --git a/src/views/home/home.module.css b/src/views/home/home.module.css index dbe2efda..f45bb575 100644 --- a/src/views/home/home.module.css +++ b/src/views/home/home.module.css @@ -29,6 +29,7 @@ } .box { + position: relative; background: var(--background-text-color); color: var(--text-color-standard); border: 1px solid; @@ -56,6 +57,19 @@ font-weight: 700; } +.boxBar span { + position: absolute; + top: 0; + right: 0; + padding-right: 0.25em; + text-transform: lowercase; +} + +.boxBar span:hover { + cursor: pointer; + color: var(--text-color-on-secondary-hover); +} + .boxContent { line-height: 1.5em; font-size: 93%; @@ -65,7 +79,7 @@ } .boxContent a, .boxContent a:visited{ - color: var(--link-text-color); + color: var(--external-link-text-color); } .searchBar { @@ -102,6 +116,39 @@ text-transform: capitalize; } +.list a { + display: inline-block; + color: var(--internal-link-text-color); + text-decoration: var(--internal-link-text-decoration); +} + +.list a:hover { + color: var(--internal-link-text-color-hover); + text-decoration: var(--internal-link-text-decoration-hover); +} + +.boardsBoxContent { + font-size: 93%; + padding: 0.5em; + padding-top: 0.25em; + padding-bottom: 0; + line-height: 130%; + display: table; +} + +.boardsBoxContent .column { + float: left; + width: 163px; + margin-right: 20px; + overflow: hidden; +} + +.boardsBoxContent h3 { + font-size: 100%; + font-weight: 700; + text-decoration: underline; + color: var(--text-color-on-secondary); +} @media (max-width: 768px) { .content { diff --git a/src/views/home/home.tsx b/src/views/home/home.tsx index 0a46366a..4b4c7880 100644 --- a/src/views/home/home.tsx +++ b/src/views/home/home.tsx @@ -2,6 +2,7 @@ import styles from './home.module.css'; import useTheme from '../../hooks/use-theme'; import { Link } from 'react-router-dom'; import { Trans, useTranslation } from 'react-i18next'; +import { useDefaultSubplebbitAddresses } from '../../hooks/use-default-subplebbits'; // TODO: remove theme and languages selectors for debugging const ThemeSettings = () => { @@ -40,9 +41,82 @@ const LanguageSettings = () => { ); }; -const Home = () => { +const SearchBar = () => { const { t } = useTranslation(); + return ( +
+ + +
+ ); +}; +const InfoBox = () => { + const { t } = useTranslation(); + return ( +
+
+

{t('what_is_plebchan')}

+
+
+ }} /> +
+
+ {t('no_global_rules_info')} +
+
+ ); +}; + +const Boards = () => { + const { t } = useTranslation(); + const defaultSubplebbitAddresses = useDefaultSubplebbitAddresses(); + + return ( +
+
+

{t('boards')}

+ {t('options')} ▼ +
+
+
+

Default SFW

+
+ {defaultSubplebbitAddresses.map((address) => ( +
+ {address} +
+ ))} +
+
+
+

Default NSFW

+
+
+

Subscriptions

+
+
+

Moderating

+
+
+
+ ); +}; + +const PopularThreads = () => { + const { t } = useTranslation(); + return ( +
+
+

{t('popular_threads')}

+ {t('options')} ▼ +
+
+
+ ); +}; + +const Home = () => { return (
@@ -54,33 +128,10 @@ const Home = () => { plebchan
-
- - -
-
-
-

{t('what_is_plebchan')}

-
-
- }} /> -
-
- {t('no_global_rules_info')} -
-
-
-
-

{t('boards')}

-
-
-
-
-
-

{t('popular_threads')}

-
-
-
+ + + +
); };