refactor(settings): remove blocked addresses setting and block user/board feature

Obsolete with pseudonymity mode (user IDs randomized per board) and custom boards
requiring explicit search/subscribe. Unsubscribe suffices for boards.
This commit is contained in:
plebeius
2026-02-19 15:30:55 +08:00
parent 137241705a
commit 11697db1ec
43 changed files with 3 additions and 552 deletions
-10
View File
@@ -138,15 +138,6 @@
"posts_last_synced_info": "تمت مزامنة المشاركات آخر مرة {{time}}، قد يكون هذا المنتدى غير متصل وقد تفشل عملية النشر.",
"newer_than": "أحدث من",
"no_threads": "لا توجد مواضيع",
"unblock": "إلغاء الحظر",
"unblock_all": "إلغاء حظر الكل",
"blocked_addresses": "العناوين المحظورة",
"you_have_not_blocked": "لم تقم بحظر أي عنوان للمجلس أو عنوان مستخدم.",
"block_user": "حظر المستخدم",
"unblock_user": "إلغاء حظر المستخدم",
"block_board": "حظر المجلس",
"unblock_board": "إلغاء حظر المجلس",
"unblock_all_confirm": "هل أنت متأكد أنك تريد إلغاء حظر جميع عناوين المجالس وعناوين المستخدمين؟",
"hidden": "مخفي",
"save_options": "حفظ الخيارات",
"filters": "مرشحات",
@@ -220,7 +211,6 @@
"field_too_long": "الحقل طويل جدًا.",
"unsubscribe_all": "إلغاء الاشتراك من الكل",
"unsubscribe_all_confirm": "هل أنت متأكد أنك تريد إلغاء الاشتراك من جميع المجالس؟",
"you_have_blocked_this_board": "لقد حظرت هذه اللوحة",
"looking_for_more_posts": "البحث عن المزيد من المشاركات",
"loading_feed": "تحميل الخلاصة",
"loading_post": "جاري تحميل المنشور",
-10
View File
@@ -138,15 +138,6 @@
"posts_last_synced_info": "পোস্টগুলি শেষবার {{time}} সিঙ্ক করা হয়েছে, এই বোর্ডটি অফলাইনে থাকতে পারে এবং প্রকাশনা ব্যর্থ হতে পারে।",
"newer_than": "নতুন পরে",
"no_threads": "কোন থ্রেড নেই",
"unblock": "অনবন্ধ করুন",
"unblock_all": "সব আনবলক করুন",
"blocked_addresses": "অবরোধিত ঠিকানা",
"you_have_not_blocked": "আপনি কোনও বোর্ড ঠিকানা বা ব্যবহারকারী ঠিকানা বন্ধ করেন নি।",
"block_user": "ব্যবহারকারী ব্লক",
"unblock_user": "ব্যবহারকারী অনবন্ধ করুন",
"block_board": "ফোরাম ব্লক",
"unblock_board": "ফোরাম অনবন্ধ করুন",
"unblock_all_confirm": "আপনি কি নিশ্চিত যে আপনি সমস্ত বোর্ড ঠিকানা এবং ব্যবহারকারী ঠিকানা অনবন্ধ করতে চান?",
"hidden": "লুকানো",
"save_options": "অপশন সংরক্ষণ করুন",
"filters": "ফিল্টার",
@@ -220,7 +211,6 @@
"field_too_long": "ফিল্ডটি খুব লম্বা।",
"unsubscribe_all": "সব থেকে আনসাবস্ক্রাইব করুন",
"unsubscribe_all_confirm": "আপনি কি নিশ্চিত যে আপনি সমস্ত বোর্ড থেকে আনসাবস্ক্রাইব করতে চান?",
"you_have_blocked_this_board": "আপনি এই বোর্ডটি ব্লক করেছেন",
"looking_for_more_posts": "আরও পোস্ট খুঁজছি",
"loading_feed": "লোডিং ফিড",
"loading_post": "পোস্ট লোড হচ্ছে",
-10
View File
@@ -138,15 +138,6 @@
"posts_last_synced_info": "Příspěvky naposledy synchronizovány {{time}}, toto fórum může být offline a publikování může selhat.",
"newer_than": "novější než",
"no_threads": "Žádná témata",
"unblock": "Odblokovat",
"unblock_all": "Odblokovat všechny",
"blocked_addresses": "Blokované adresy",
"you_have_not_blocked": "Neblokovali jste žádnou adresu desky ani adresu uživatele.",
"block_user": "Blokovat uživatele",
"unblock_user": "Odblokovat uživatele",
"block_board": "Blokovat diskuzní fórum",
"unblock_board": "Odblokovat diskuzní fórum",
"unblock_all_confirm": "Jste si jisti, že chcete odblokovat všechny adresy diskuzních fór a adresy uživatelů?",
"hidden": "skrytý",
"save_options": "Uložit možnosti",
"filters": "filtry",
@@ -220,7 +211,6 @@
"field_too_long": "Pole je příliš dlouhé.",
"unsubscribe_all": "Odhlásit se ze všeho",
"unsubscribe_all_confirm": "Jste si jisti, že chcete zrušit odběr ze všech fór?",
"you_have_blocked_this_board": "Zablokovali jste tuto desku",
"looking_for_more_posts": "Hledání dalších příspěvků",
"loading_feed": "Načítání kanálu",
"loading_post": "Načítání příspěvku",
-10
View File
@@ -138,15 +138,6 @@
"posts_last_synced_info": "Indlæg sidst synkroniseret {{time}}, dette board kan være offline og publicering kan mislykkes.",
"newer_than": "nyere end",
"no_threads": "Ingen tråde",
"unblock": "Fjern blokering",
"unblock_all": "Fjern alle blokeringer",
"blocked_addresses": "Blokerede adresser",
"you_have_not_blocked": "Du har ikke blokeret nogen brætadresse eller brugeradresse.",
"block_user": "Bloker bruger",
"unblock_user": "Fjern blokering af bruger",
"block_board": "Bloker forum",
"unblock_board": "Fjern blokering af forum",
"unblock_all_confirm": "Er du sikker på, at du vil ophæve blokeringen af alle boardadresser og brugeradresser?",
"hidden": "skjult",
"save_options": "Gem indstillinger",
"filters": "filtre",
@@ -220,7 +211,6 @@
"field_too_long": "Feltene er for lange.",
"unsubscribe_all": "Afmeld fra alt",
"unsubscribe_all_confirm": "Er du sikker på, at du vil afmelde dig fra alle boards?",
"you_have_blocked_this_board": "Du har blokeret denne tavle",
"looking_for_more_posts": "Leder efter flere indlæg",
"loading_feed": "Indlæser feed",
"loading_post": "Indlæser indlæg",
-10
View File
@@ -138,15 +138,6 @@
"posts_last_synced_info": "Beiträge zuletzt synchronisiert {{time}}, dieses Board könnte offline sein und die Veröffentlichung könnte fehlschlagen.",
"newer_than": "neuer als",
"no_threads": "Keine Threads",
"unblock": "Entsperren",
"unblock_all": "Alle entsperren",
"blocked_addresses": "Blockierte Adressen",
"you_have_not_blocked": "Sie haben keine Board-Adresse oder Benutzeradresse blockiert.",
"block_user": "Benutzer blockieren",
"unblock_user": "Benutzer entsperren",
"block_board": "Forum blockieren",
"unblock_board": "Forum entsperren",
"unblock_all_confirm": "Möchten Sie wirklich alle Boardadressen und Benutzeradressen entsperren?",
"hidden": "versteckt",
"save_options": "Optionen speichern",
"filters": "Filter",
@@ -220,7 +211,6 @@
"field_too_long": "Das Feld ist zu lang.",
"unsubscribe_all": "Von allem abmelden",
"unsubscribe_all_confirm": "Sind Sie sicher, dass Sie sich von allen Boards abmelden möchten?",
"you_have_blocked_this_board": "Sie haben dieses Board blockiert",
"looking_for_more_posts": "Suche nach weiteren Beiträgen",
"loading_feed": "Lädt Feed",
"loading_post": "Beitrag wird geladen",
-10
View File
@@ -138,15 +138,6 @@
"posts_last_synced_info": "Οι δημοσιεύσεις συγχρονίστηκαν τελευταία {{time}}, αυτό το φόρουμ μπορεί να είναι εκτός σύνδεσης και η δημοσίευση μπορεί να αποτύχει.",
"newer_than": "πιο πρόσφατο από",
"no_threads": "Δεν υπάρχουν θέματα",
"unblock": "Ξεκλείδωμα",
"unblock_all": "Ξεκλειδώστε όλα",
"blocked_addresses": "Αποκλεισμένες διευθύνσεις",
"you_have_not_blocked": "Δεν έχετε αποκλείσει καμία διεύθυνση συμβουλίου ή χρήστη.",
"block_user": "Αποκλεισμός χρήστη",
"unblock_user": "Αποκλεισμός χρήστη αναίρεσης",
"block_board": "Αποκλεισμός συμβουλίου",
"unblock_board": "Αναίρεση αποκλεισμού συμβουλίου",
"unblock_all_confirm": "Είστε σίγουροι ότι θέλετε να ξεκλειδώσετε όλες τις διευθύνσεις συμβουλίων και χρηστών;",
"hidden": "κρυφός",
"save_options": "Αποθήκευση επιλογών",
"filters": "φίλτρα",
@@ -220,7 +211,6 @@
"field_too_long": "Το πεδίο είναι πολύ μεγάλο.",
"unsubscribe_all": "Ακύρωση εγγραφής από όλα",
"unsubscribe_all_confirm": "Είστε σίγουροι ότι θέλετε να ακυρώσετε την εγγραφή από όλα τα boards;",
"you_have_blocked_this_board": "Έχετε αποκλείσει αυτό το φόρουμ",
"looking_for_more_posts": "Ψάχνει για περισσότερες αναρτήσεις",
"loading_feed": "Φόρτωση ροής",
"loading_post": "Φόρτωση ανάρτησης",
-10
View File
@@ -141,15 +141,6 @@
"posts_last_synced_info": "Posts last synced {{time}}, this board might be offline and publishing might fail.",
"newer_than": "newer than",
"no_threads": "No threads",
"unblock": "Unblock",
"unblock_all": "Unblock all",
"blocked_addresses": "Blocked addresses",
"you_have_not_blocked": "You have not blocked any board address or user address.",
"block_user": "Block user",
"unblock_user": "Unblock user",
"block_board": "Block board",
"unblock_board": "Unblock board",
"unblock_all_confirm": "Are you sure you want to unblock all board addresses and user addresses?",
"hidden": "hidden",
"save_options": "Save Options",
"filters": "filters",
@@ -227,7 +218,6 @@
"field_too_long": "Field too long.",
"unsubscribe_all": "Unsubscribe From All",
"unsubscribe_all_confirm": "Are you sure you want to unsubscribe from all boards?",
"you_have_blocked_this_board": "You have blocked this board",
"looking_for_more_posts": "Looking for more posts",
"loading_feed": "Loading feed",
"loading_post": "Loading post",
-10
View File
@@ -138,15 +138,6 @@
"posts_last_synced_info": "Publicaciones sincronizadas por última vez {{time}}, este tablero podría estar offline y la publicación podría fallar.",
"newer_than": "más reciente que",
"no_threads": "No hay hilos",
"unblock": "Desbloquear",
"unblock_all": "Desbloquear todo",
"blocked_addresses": "Direcciones bloqueadas",
"you_have_not_blocked": "No has bloqueado ninguna dirección de tablero o dirección de usuario.",
"block_user": "Bloquear usuario",
"unblock_user": "Desbloquear usuario",
"block_board": "Bloquear foro",
"unblock_board": "Desbloquear foro",
"unblock_all_confirm": "¿Estás seguro de que quieres desbloquear todas las direcciones de foro y las direcciones de usuario?",
"hidden": "oculto",
"save_options": "Guardar opciones",
"filters": "filtros",
@@ -220,7 +211,6 @@
"field_too_long": "Campo demasiado largo.",
"unsubscribe_all": "Cancelar suscripción a todo",
"unsubscribe_all_confirm": "¿Está seguro de que desea cancelar la suscripción a todos los foros?",
"you_have_blocked_this_board": "Has bloqueado este tablero",
"looking_for_more_posts": "Buscando más publicaciones",
"loading_feed": "Cargando feed",
"loading_post": "Cargando publicación",
-10
View File
@@ -138,15 +138,6 @@
"posts_last_synced_info": "پست‌ها آخرین بار {{time}} همگام‌سازی شدند، این انجمن ممکن است آفلاین باشد و انتشار ممکن است با شکست مواجه شود.",
"newer_than": "جدیدتر از",
"no_threads": "هیچ موضوعی وجود ندارد",
"unblock": "رفع مسدودیت",
"unblock_all": "رفع مسدودیت همه",
"blocked_addresses": "آدرس‌های مسدود شده",
"you_have_not_blocked": "هیچ آدرس تالار یا آدرس کاربری را مسدود نکرده‌اید.",
"block_user": "بلاک کاربر",
"unblock_user": "آزاد کاربر",
"block_board": "بلاک تالار",
"unblock_board": "آزاد کردن تالار",
"unblock_all_confirm": "آیا از می خواهید تمام آدرس های بورد و آدرس های کاربر را از مسدودیت خارج کنید؟",
"hidden": "مخفی",
"save_options": "ذخیره گزینه‌ها",
"filters": "فیلترها",
@@ -220,7 +211,6 @@
"field_too_long": "فیلد خیلی طولانی است.",
"unsubscribe_all": "لغو اشتراک از همه",
"unsubscribe_all_confirm": "آیا مطمئن هستید که می‌خواهید از همه انجمن‌ها لغو اشتراک کنید؟",
"you_have_blocked_this_board": "شما این تابلو را مسدود کرده‌اید",
"looking_for_more_posts": "در جستجوی پست‌های بیشتر",
"loading_feed": "در حال بارگذاری فید",
"loading_post": "در حال بارگذاری پست",
-10
View File
@@ -138,15 +138,6 @@
"posts_last_synced_info": "Viestit viimeksi synkronoitu {{time}}, tämä taulu voi olla offline-tilassa ja julkaisu voi epäonnistua.",
"newer_than": "uudempi kuin",
"no_threads": "Ei ketjuja",
"unblock": "Poista estäminen",
"unblock_all": "Poista kaikki estot",
"blocked_addresses": "Estetyt osoitteet",
"you_have_not_blocked": "Et ole estänyt mitään hallituksen osoitetta tai käyttäjän osoitetta.",
"block_user": "Estä käyttäjä",
"unblock_user": "Estä käyttäjä",
"block_board": "Estä foorumi",
"unblock_board": "Poista foorumin esto",
"unblock_all_confirm": "Oletko varma, että haluat poistaa estoja kaikista foorumin osoitteista ja käyttäjien osoitteista?",
"hidden": "piilotettu",
"save_options": "Tallenna asetukset",
"filters": "suodattimet",
@@ -220,7 +211,6 @@
"field_too_long": "Kenttä liian pitkä.",
"unsubscribe_all": "Peruuta tilaus kaikilta",
"unsubscribe_all_confirm": "Oletko varma, että haluat peruuttaa tilauksen kaikilta foorumeilta?",
"you_have_blocked_this_board": "Olet estänyt tämän taulun",
"looking_for_more_posts": "Etsii lisää viestejä",
"loading_feed": "Ladataan syöte",
"loading_post": "Ladataan viestiä",
-10
View File
@@ -138,15 +138,6 @@
"posts_last_synced_info": "Huling na-sync ang mga post {{time}}, maaaring offline ang board na ito at maaaring mabigo ang pag-publish.",
"newer_than": "mas bago kaysa",
"no_threads": "Walang mga thread",
"unblock": "I-unblock",
"unblock_all": "I-unblock ang lahat",
"blocked_addresses": "Mga blocked na address",
"you_have_not_blocked": "Hindi mo na-block ang anumang address ng board o address ng user.",
"block_user": "I-block ang user",
"unblock_user": "I-unblock ang user",
"block_board": "I-block ang board",
"unblock_board": "I-unblock ang board",
"unblock_all_confirm": "Sigurado ka bang gusto mong i-unblock ang lahat ng mga board address at mga user address?",
"hidden": "nakatago",
"save_options": "I-save ang mga Opsyon",
"filters": "mga filter",
@@ -220,7 +211,6 @@
"field_too_long": "Ang field ay masyadong mahaba.",
"unsubscribe_all": "I-unsubscribe mula sa Lahat",
"unsubscribe_all_confirm": "Sigurado ka bang gusto mong mag-unsubscribe mula sa lahat ng boards?",
"you_have_blocked_this_board": "Ibinlock mo ang board na ito",
"looking_for_more_posts": "Naghahanap ng higit pang mga post",
"loading_feed": "Naglo-load ng feed",
"loading_post": "Naglo-load na post",
-10
View File
@@ -138,15 +138,6 @@
"posts_last_synced_info": "Publications synchronisées pour la dernière fois {{time}}, ce forum pourrait être hors ligne et la publication pourrait échouer.",
"newer_than": "plus récent que",
"no_threads": "Pas de fils",
"unblock": "Débloquer",
"unblock_all": "Débloquer tout",
"blocked_addresses": "Adresses bloquées",
"you_have_not_blocked": "Vous n'avez bloqué aucune adresse de board ou d'utilisateur.",
"block_user": "Bloquer l'utilisateur",
"unblock_user": "Débloquer l'utilisateur",
"block_board": "Bloquer le forum",
"unblock_board": "Débloquer le forum",
"unblock_all_confirm": "Êtes-vous sûr de vouloir débloquer toutes les adresses de forum et les adresses d'utilisateur ?",
"hidden": "caché",
"save_options": "Enregistrer les options",
"filters": "filtres",
@@ -220,7 +211,6 @@
"field_too_long": "Champ trop long.",
"unsubscribe_all": "Se désabonner de tout",
"unsubscribe_all_confirm": "Êtes-vous sûr de vouloir vous désabonner de tous les forums?",
"you_have_blocked_this_board": "Vous avez bloqué ce forum",
"looking_for_more_posts": "Recherche de plus de publications",
"loading_feed": "Chargement du flux",
"loading_post": "Chargement du message",
-10
View File
@@ -138,15 +138,6 @@
"posts_last_synced_info": "פוסטים סונכרנו לאחרונה {{time}}, פורום זה עשוי להיות לא מקוון והפרסום עלול להיכשל.",
"newer_than": "חדש יותר מ",
"no_threads": "אין נושאים",
"unblock": "בטל חסימה",
"unblock_all": "בטל את כל החסימות",
"blocked_addresses": "כתובות מובלגות",
"you_have_not_blocked": "לא חסמת שום כתובת לוח או כתובת משתמש.",
"block_user": "חסום משתמש",
"unblock_user": "ביטול חסימת משתמש",
"block_board": "חסום פורום",
"unblock_board": "ביטול חסימת פורום",
"unblock_all_confirm": "האם אתה בטוח שברצונך לבטל את חסימת כל כתובות הפורום וכתובות המשתמש?",
"hidden": "מוסתר",
"save_options": "שמירת האפשרויות",
"filters": "מסננים",
@@ -220,7 +211,6 @@
"field_too_long": "המשדה ארוך מדי.",
"unsubscribe_all": "הסרה מכולם",
"unsubscribe_all_confirm": "האם אתה בטוח שברצונך לבטל את ההרשמה מכל הפורומים?",
"you_have_blocked_this_board": "חסמת את הלוח הזה",
"looking_for_more_posts": "מחפש פוסטים נוספים",
"loading_feed": "טוען פיד",
"loading_post": "טוען פוסט",
-10
View File
@@ -138,15 +138,6 @@
"posts_last_synced_info": "पोस्ट अंतिम बार {{time}} सिंक की गईं, यह बोर्ड ऑफ़लाइन हो सकता है और प्रकाशन विफल हो सकता है।",
"newer_than": "से नई",
"no_threads": "कोई थ्रेड नहीं है",
"unblock": "अनब्लॉक",
"unblock_all": "सभी को अनब्लॉक करें",
"blocked_addresses": "ब्लॉक किए गए पते",
"you_have_not_blocked": "आपने कोई भी बोर्ड पता या उपयोगकर्ता पता ब्लॉक नहीं किया है।",
"block_user": "उपयोगकर्ता अवरोधित करें",
"unblock_user": "उपयोगकर्ता को अनब्लॉक करें",
"block_board": "फ़ोरम अवरोधित करें",
"unblock_board": "फ़ोरम को अनब्लॉक करें",
"unblock_all_confirm": "क्या आप सभी बोर्ड पतों और उपयोगकर्ता पतों को अनब्लॉक करना चाहते हैं, क्या आप सुनिश्चित हैं?",
"hidden": "छिपा हुआ",
"save_options": "विकल्प सहेजें",
"filters": "फिल्टर",
@@ -220,7 +211,6 @@
"field_too_long": "क्षेत्र बहुत लंबा है।",
"unsubscribe_all": "सभी से अनसब्सक्राइब करें",
"unsubscribe_all_confirm": "क्या आप सभी बोर्डों से अनसब्सक्राइब करना चाहते हैं, क्या आप सुनिश्चित हैं?",
"you_have_blocked_this_board": "आपने इस बोर्ड को ब्लॉक कर दिया है",
"looking_for_more_posts": "अधिक पोस्ट ढूंढ रहे हैं",
"loading_feed": "लोडिंग फीड",
"loading_post": "पोस्ट लोड हो रहा है",
-10
View File
@@ -138,15 +138,6 @@
"posts_last_synced_info": "Hozzászólások utoljára szinkronizálva {{time}}, ez a fórum offline lehet és a közzététel sikertelen lehet.",
"newer_than": "újabb, mint",
"no_threads": "Nincsenek témák",
"unblock": "Blokkolás feloldása",
"unblock_all": "Összes feloldása",
"blocked_addresses": "Blokkolt címek",
"you_have_not_blocked": "Nem tiltottál le egyetlen táblacímet vagy felhasználói címet sem.",
"block_user": "Felhasználó blokkolása",
"unblock_user": "Felhasználó feloldása",
"block_board": "Fórum blokkolása",
"unblock_board": "Fórum feloldása",
"unblock_all_confirm": "Biztos vagy benne, hogy fel akarod oldani az összes fórumcímet és felhasználói címet?",
"hidden": "rejtett",
"save_options": "Beállítások mentése",
"filters": "szűrők",
@@ -220,7 +211,6 @@
"field_too_long": "A mező túl hosszú.",
"unsubscribe_all": "Leiratkozás mindentől",
"unsubscribe_all_confirm": "Biztos, hogy le szeretnél iratkozni az összes fórumból?",
"you_have_blocked_this_board": "Blokkoltad ezt a táblát",
"looking_for_more_posts": "Több bejegyzés keresése",
"loading_feed": "Betöltés a hírcsatornára",
"loading_post": "Bejegyzés betöltése",
-10
View File
@@ -138,15 +138,6 @@
"posts_last_synced_info": "Posting terakhir disinkronkan {{time}}, papan ini mungkin offline dan publikasi mungkin gagal.",
"newer_than": "baru daripada",
"no_threads": "Tidak ada thread",
"unblock": "Buka blokir",
"unblock_all": "Buka semua blokir",
"blocked_addresses": "Alamat yang diblokir",
"you_have_not_blocked": "Anda belum memblokir alamat papan atau alamat pengguna apa pun.",
"block_user": "Blokir pengguna",
"unblock_user": "Buka blokir pengguna",
"block_board": "Blokir papan",
"unblock_board": "Buka blokir forum",
"unblock_all_confirm": "Apakah Anda yakin ingin membuka blokir semua alamat board dan alamat pengguna?",
"hidden": "tersembunyi",
"save_options": "Simpan Opsi",
"filters": "filter",
@@ -220,7 +211,6 @@
"field_too_long": "Kolom terlalu panjang.",
"unsubscribe_all": "Berhenti berlangganan dari semua",
"unsubscribe_all_confirm": "Apakah Anda yakin ingin berhenti berlangganan dari semua board?",
"you_have_blocked_this_board": "Anda telah memblokir papan ini",
"looking_for_more_posts": "Mencari lebih banyak pos",
"loading_feed": "Memuat feed",
"loading_post": "Memuat pos",
-10
View File
@@ -138,15 +138,6 @@
"posts_last_synced_info": "Post sincronizzati l'ultima volta {{time}}, questa bacheca potrebbe essere offline e la pubblicazione potrebbe fallire.",
"newer_than": "più recente di",
"no_threads": "Nessun thread",
"unblock": "Sblocca",
"unblock_all": "Sblocca tutti",
"blocked_addresses": "Indirizzi bloccati",
"you_have_not_blocked": "Non hai bloccato nessun indirizzo di board o utente.",
"block_user": "Blocca utente",
"unblock_user": "Sblocca utente",
"block_board": "Blocca board",
"unblock_board": "Sblocca board",
"unblock_all_confirm": "Sei sicuro di voler sbloccare tutti gli indirizzi della board e gli indirizzi degli utenti?",
"hidden": "nascosto",
"save_options": "Salva opzioni",
"filters": "filtri",
@@ -220,7 +211,6 @@
"field_too_long": "Campo troppo lungo.",
"unsubscribe_all": "Annulla iscrizione da tutto",
"unsubscribe_all_confirm": "Sei sicuro di voler annullare l'iscrizione da tutti i forum?",
"you_have_blocked_this_board": "Hai bloccato questa board",
"looking_for_more_posts": "Cercando più post",
"loading_feed": "Caricamento feed",
"loading_post": "Caricamento del post",
-10
View File
@@ -138,15 +138,6 @@
"posts_last_synced_info": "投稿は最後に {{time}} に同期されました。このボードはオフラインの可能性があり、公開が失敗する可能性があります。",
"newer_than": "より新しい",
"no_threads": "スレッドはありません",
"unblock": "ブロック解除",
"unblock_all": "すべてのブロックを解除",
"blocked_addresses": "ブロックされたアドレス",
"you_have_not_blocked": "ボードアドレスまたはユーザーアドレスをブロックしていません。",
"block_user": "ユーザーをブロックする",
"unblock_user": "ユーザーのブロックを解除する",
"block_board": "掲示板をブロックする",
"unblock_board": "掲示板のブロックを解除する",
"unblock_all_confirm": "すべての掲示板アドレスとユーザーアドレスを解除してもよろしいですか?",
"hidden": "隠し",
"save_options": "オプションを保存",
"filters": "フィルター",
@@ -220,7 +211,6 @@
"field_too_long": "フィールドが長すぎます。",
"unsubscribe_all": "すべての登録を解除する",
"unsubscribe_all_confirm": "すべての掲示板から解除してもよろしいですか?",
"you_have_blocked_this_board": "このボードをブロックしました",
"looking_for_more_posts": "さらに投稿を探しています",
"loading_feed": "フィードを読み込んでいます",
"loading_post": "投稿を読み込み中",
-10
View File
@@ -138,15 +138,6 @@
"posts_last_synced_info": "게시물이 마지막으로 {{time}}에 동기화되었습니다. 이 게시판이 오프라인일 수 있으며 게시가 실패할 수 있습니다.",
"newer_than": "이전보다 최신",
"no_threads": "스레드가 없습니다",
"unblock": "차단 해제",
"unblock_all": "모두 차단 해제",
"blocked_addresses": "차단된 주소",
"you_have_not_blocked": "게시판 주소나 사용자 주소를 차단하지 않았습니다.",
"block_user": "사용자 차단",
"unblock_user": "사용자 차단 해제",
"block_board": "게시판 차단",
"unblock_board": "게시판 차단 해제",
"unblock_all_confirm": "모든 게시판 주소와 사용자 주소를 해제하시겠습니까?",
"hidden": "숨겨진",
"save_options": "옵션 저장",
"filters": "필터",
@@ -220,7 +211,6 @@
"field_too_long": "필드가 너무 깁니다.",
"unsubscribe_all": "모두 구독 취소",
"unsubscribe_all_confirm": "모든 게시판에서 구독을 취소하시겠습니까?",
"you_have_blocked_this_board": "이 게시판을 차단했습니다",
"looking_for_more_posts": "더 많은 게시물을 찾고 있습니다",
"loading_feed": "피드를 로딩 중",
"loading_post": "게시물 로딩 중",
-10
View File
@@ -138,15 +138,6 @@
"posts_last_synced_info": "पोस्ट शेवटी {{time}} सिंक केल्या गेल्या, हे बोर्ड ऑफलाइन असू शकते आणि प्रकाशन अयशस्वी होऊ शकते.",
"newer_than": "नवीनतम आहे",
"no_threads": "कोणतेही थ्रेड्स नाहीत",
"unblock": "ब्लॉक सोडा",
"unblock_all": "सर्व ब्लॉक सोडा",
"blocked_addresses": "ब्लॉक केलेले पत्ते",
"you_have_not_blocked": "आपण कोणत्याही बोर्ड पत्ता किंवा वापरकर्ता पत्ता ब्लॉक केलेला नाही.",
"block_user": "वापरकर्ता अवरोधित करा",
"unblock_user": "वापरकर्ता अनब्लॉक करा",
"block_board": "फोरम अवरोधित करा",
"unblock_board": "फोरम अनब्लॉक करा",
"unblock_all_confirm": "आपल्याला सर्व बोर्ड पत्ते आणि वापरकर्ता पत्ते अनब्लॉक करायचं आहे का?",
"hidden": "लपवलेले",
"save_options": "विकल्प साठवा",
"filters": "फिल्टर",
@@ -220,7 +211,6 @@
"field_too_long": "फील्ड खूप लांब आहे.",
"unsubscribe_all": "सर्वांकडून अनसब्सक्राइब करा",
"unsubscribe_all_confirm": "तुम्हाला सर्व बोर्डमधून अनसब्सक्राइब करायचं आहे का?",
"you_have_blocked_this_board": "तुम्ही हा बोर्ड ब्लॉक केला आहेस",
"looking_for_more_posts": "अधिक पोस्ट शोधत आहे",
"loading_feed": "फीड लोड करत आहे",
"loading_post": "पोस्ट लोड होत आहे",
-10
View File
@@ -138,15 +138,6 @@
"posts_last_synced_info": "Berichten voor het laatst gesynchroniseerd {{time}}, dit bord kan offline zijn en publiceren kan mislukken.",
"newer_than": "nieuwer dan",
"no_threads": "Geen threads",
"unblock": "Deblokkeren",
"unblock_all": "Alles deblokkeren",
"blocked_addresses": "Geblokkeerde adressen",
"you_have_not_blocked": "U heeft geen enkel bordadres of gebruikersadres geblokkeerd.",
"block_user": "Gebruiker blokkeren",
"unblock_user": "Gebruiker deblokkeren",
"block_board": "Forum blokkeren",
"unblock_board": "Deblokkeer forum",
"unblock_all_confirm": "Weet u zeker dat u alle boardadressen en gebruikersadressen wilt deblokkeren?",
"hidden": "verborgen",
"save_options": "Opties opslaan",
"filters": "filters",
@@ -220,7 +211,6 @@
"field_too_long": "Veld te lang.",
"unsubscribe_all": "Afmelden voor alles",
"unsubscribe_all_confirm": "Weet je zeker dat je je wilt afmelden voor alle boards?",
"you_have_blocked_this_board": "Je hebt dit bord geblokkeerd",
"looking_for_more_posts": "Op zoek naar meer berichten",
"loading_feed": "Laad feed",
"loading_post": "Bericht wordt geladen",
-10
View File
@@ -138,15 +138,6 @@
"posts_last_synced_info": "Innlegg sist synkronisert {{time}}, dette brettet kan være offline og publisering kan mislykkes.",
"newer_than": "nyere enn",
"no_threads": "Ingen tråder",
"unblock": "Fjern blokkering",
"unblock_all": "Fjern alle blokkeringer",
"blocked_addresses": "Blokkerte adresser",
"you_have_not_blocked": "Du har ikke blokkert noen bordadresse eller brukeradresse.",
"block_user": "Blokker bruker",
"unblock_user": "Fjern blokkering av bruker",
"block_board": "Blokker forum",
"unblock_board": "Fjern blokkering av forum",
"unblock_all_confirm": "Er du sikker på at du vil fjerne blokkeringen av alle bordadresser og brukeradresser?",
"hidden": "skjult",
"save_options": "Lagre alternativer",
"filters": "filtre",
@@ -220,7 +211,6 @@
"field_too_long": "Feltet er for langt.",
"unsubscribe_all": "Avslutt abonnement fra alt",
"unsubscribe_all_confirm": "Er du sikker på at du vil melde deg av alle boards?",
"you_have_blocked_this_board": "Du har blokkert dette brettet",
"looking_for_more_posts": "Leter etter flere innlegg",
"loading_feed": "Laster feed",
"loading_post": "Laster innlegg",
-10
View File
@@ -138,15 +138,6 @@
"posts_last_synced_info": "Posty ostatnio zsynchronizowane {{time}}, to forum może być offline i publikacja może się nie powieść.",
"newer_than": "nowsze niż",
"no_threads": "Brak wątków",
"unblock": "Odblokuj",
"unblock_all": "Odblokuj wszystkie",
"blocked_addresses": "Zablokowane adresy",
"you_have_not_blocked": "Nie zablokowałeś żadnego adresu forum ani użytkownika.",
"block_user": "Zablokuj użytkownika",
"unblock_user": "Odblokuj użytkownika",
"block_board": "Zablokuj forum",
"unblock_board": "Odblokuj forum",
"unblock_all_confirm": "Jesteś pewien, że chcesz odblokować wszystkie adresy forum i adresy użytkowników?",
"hidden": "ukryty",
"save_options": "Zapisz opcje",
"filters": "filtry",
@@ -220,7 +211,6 @@
"field_too_long": "Pole jest za długie.",
"unsubscribe_all": "Wypisz się ze wszystkiego",
"unsubscribe_all_confirm": "Czy na pewno chcesz wypisać się ze wszystkich forów?",
"you_have_blocked_this_board": "Zablokowałeś tę tablicę",
"looking_for_more_posts": "Szukam więcej postów",
"loading_feed": "Ładowanie kanału",
"loading_post": "Ładowanie posta",
-10
View File
@@ -138,15 +138,6 @@
"posts_last_synced_info": "Publicações sincronizadas pela última vez {{time}}, este fórum pode estar offline e a publicação pode falhar.",
"newer_than": "mais recente que",
"no_threads": "Sem tópicos",
"unblock": "Desbloquear",
"unblock_all": "Desbloquear tudo",
"blocked_addresses": "Endereços bloqueados",
"you_have_not_blocked": "Você não bloqueou nenhum endereço de quadro ou endereço de usuário.",
"block_user": "Bloquear usuário",
"unblock_user": "Desbloquear usuário",
"block_board": "Bloquear fórum",
"unblock_board": "Desbloquear fórum",
"unblock_all_confirm": "Tem certeza de que deseja desbloquear todos os endereços de board e endereços de usuário?",
"hidden": "escondido",
"save_options": "Salvar opções",
"filters": "filtros",
@@ -220,7 +211,6 @@
"field_too_long": "Campo muito longo.",
"unsubscribe_all": "Cancelar inscrição em tudo",
"unsubscribe_all_confirm": "Tem certeza de que deseja cancelar a inscrição em todos os boards?",
"you_have_blocked_this_board": "Você bloqueou este quadro",
"looking_for_more_posts": "Procurando mais postagens",
"loading_feed": "Carregando feed",
"loading_post": "Carregando post",
-10
View File
@@ -138,15 +138,6 @@
"posts_last_synced_info": "Postări sincronizate ultima dată {{time}}, acest forum poate fi offline și publicarea poate eșua.",
"newer_than": "mai nou decât",
"no_threads": "Nu sunt subiecte",
"unblock": "Deblocare",
"unblock_all": "Deblocare toate",
"blocked_addresses": "Adrese blocate",
"you_have_not_blocked": "Nu ați blocat nicio adresă de bord sau adresă de utilizator.",
"block_user": "Blochează utilizatorul",
"unblock_user": "Deblochează utilizatorul",
"block_board": "Blochează forumul",
"unblock_board": "Deblochează forumul",
"unblock_all_confirm": "Sunteți sigur că doriți să deblocați toate adresele de board și adresele de utilizatori?",
"hidden": "ascuns",
"save_options": "Salvați opțiunile",
"filters": "filtre",
@@ -220,7 +211,6 @@
"field_too_long": "Câmp prea lung.",
"unsubscribe_all": "Dezabonare de la toate",
"unsubscribe_all_confirm": "Ești sigur că vrei să te dezabonezi de la toate forumurile?",
"you_have_blocked_this_board": "Ai blocat acest tablou",
"looking_for_more_posts": "Căutând mai multe postări",
"loading_feed": "Încărcare feed",
"loading_post": "Se încarcă postarea",
-10
View File
@@ -138,15 +138,6 @@
"posts_last_synced_info": "Посты последний раз синхронизированы {{time}}, этот форум может быть офлайн, и публикация может не удаться.",
"newer_than": "новее чем",
"no_threads": "Нет тем",
"unblock": "Разблокировать",
"unblock_all": "Разблокировать все",
"blocked_addresses": "Заблокированные адреса",
"you_have_not_blocked": "Вы не заблокировали ни одного адреса доски или пользователя.",
"block_user": "Заблокировать пользователя",
"unblock_user": "Разблокировать пользователя",
"block_board": "Заблокировать форум",
"unblock_board": "Разблокировать форум",
"unblock_all_confirm": "Вы уверены, что хотите разблокировать все адреса форума и адреса пользователей?",
"hidden": "скрытый",
"save_options": "Сохранить настройки",
"filters": "фильтры",
@@ -220,7 +211,6 @@
"field_too_long": "Поле слишком длинное.",
"unsubscribe_all": "Отписаться от всего",
"unsubscribe_all_confirm": "Вы уверены, что хотите отписаться от всех форумов?",
"you_have_blocked_this_board": "Вы заблокировали эту доску",
"looking_for_more_posts": "Ищу больше постов",
"loading_feed": "Загрузка ленты",
"loading_post": "Загрузка сообщения",
-10
View File
@@ -138,15 +138,6 @@
"posts_last_synced_info": "Postimet u sinkronizuan për herë të fundit {{time}}, ky forum mund të jetë offline dhe publikimi mund të dështojë.",
"newer_than": "më i ri se",
"no_threads": "Nuk ka tema",
"unblock": "Zhblloko",
"unblock_all": "Zhblloko të gjitha",
"blocked_addresses": "Adresat e bllokuara",
"you_have_not_blocked": "Ju nuk keni bllokuar asnjë adresë bordi ose adresë përdoruesi.",
"block_user": "Blloko përdoruesin",
"unblock_user": "Hiq bllokimin e përdoruesit",
"block_board": "Blloko bordi",
"unblock_board": "Hiq bllokimin e bordit",
"unblock_all_confirm": "A jeni i sigurt se doni të hiqni bllokimin e të gjitha adresave të bordit dhe adresave të përdoruesit?",
"hidden": "i fshehur",
"save_options": "Ruaj Cilësimet",
"filters": "filtrot",
@@ -220,7 +211,6 @@
"field_too_long": "Fusha është shumë e gjatë.",
"unsubscribe_all": "Çunsubscribe nga të gjitha",
"unsubscribe_all_confirm": "A jeni të sigurt se doni të hiqni bllokimin nga të gjitha forume?",
"you_have_blocked_this_board": "Keni bllokuar këtë bord",
"looking_for_more_posts": "Po kërkoni më shumë postime",
"loading_feed": "Po ngarkoni feed-in",
"loading_post": "Po ngarkohet postimi",
-10
View File
@@ -138,15 +138,6 @@
"posts_last_synced_info": "Inlägg senast synkroniserade {{time}}, detta forum kan vara offline och publicering kan misslyckas.",
"newer_than": "nyare än",
"no_threads": "Inga trådar",
"unblock": "Avblockera",
"unblock_all": "Avblockera alla",
"blocked_addresses": "Blockerade adresser",
"you_have_not_blocked": "Du har inte blockerat någon brädadress eller användaradress.",
"block_user": "Blockera användare",
"unblock_user": "Avblockera användare",
"block_board": "Blockera forum",
"unblock_board": "Avblockera forum",
"unblock_all_confirm": "Är du säker på att du vill låsa upp alla boardadresser och användaradresser?",
"hidden": "dold",
"save_options": "Spara alternativ",
"filters": "filter",
@@ -220,7 +211,6 @@
"field_too_long": "Fältet är för långt.",
"unsubscribe_all": "Avsluta prenumeration från allt",
"unsubscribe_all_confirm": "Är du säker på att du vill avsluta prenumerationen från alla boards?",
"you_have_blocked_this_board": "Du har blockerat denna tavla",
"looking_for_more_posts": "Letar efter fler inlägg",
"loading_feed": "Laddar flöde",
"loading_post": "Laddar inlägg",
-10
View File
@@ -138,15 +138,6 @@
"posts_last_synced_info": "పోస్ట్‌లు చివరిగా {{time}} సమకాలీకరించబడ్డాయి, ఈ బోర్డ్ ఆఫ్‌లైన్‌లో ఉండవచ్చు మరియు ప్రచురణ విఫలమవచ్చు.",
"newer_than": "కనునుగా",
"no_threads": "ఏ థ్రెడ్‌లు లేవు",
"unblock": "బ్లాక్‌ను తీసుకో",
"unblock_all": "అన్ని బ్లాక్ తీసుకో",
"blocked_addresses": "నిషేధింపబడిన చిరునామాలు",
"you_have_not_blocked": "మీరు ఏ బోర్డ్ చిరునామా లేదా వాడుకరి చిరునామాను నిలిచింది.",
"block_user": "వాడుకరిని నిలిపించు",
"unblock_user": "వాడుకరిని అన్‌బ్లాక్ చేయండి",
"block_board": "బోర్డును నిలిపించు",
"unblock_board": "బోర్డును అన్‌బ్లాక్ చేయండి",
"unblock_all_confirm": "మీరు అన్‌బ్లాక్ చేయడానికి అన్ని బోర్డు చిరునామాలను మరియు వాడుకరి చిరునామాలను ఖాళీ చేస్తున్నారా?",
"hidden": "దాగిన",
"save_options": "ఎంచుకోండి సేవ్ చేయండి",
"filters": "ఫిల్టర్లు",
@@ -220,7 +211,6 @@
"field_too_long": "ఫీల్డ్ చాలా పొడుగ్గా ఉంది.",
"unsubscribe_all": "అన్ని నుండి అన్‌సబ్స్క్రైబ్ చేయండి",
"unsubscribe_all_confirm": "మీరు అన్ని బోర్డ్స్ నుండి అన్‌సబ్స్క్రైబ్ చేయాలని ఖచ్చితంగా భావిస్తున్నారా?",
"you_have_blocked_this_board": "మీరు ఈ బోర్డును బ్లాక్ చేసారు",
"looking_for_more_posts": "మరింత పోస్ట్‌ల కోసం చూస్తున్నాను",
"loading_feed": "లోడింగ్ ఫీడ్",
"loading_post": "పోస్ట్ లోడవుతోంది",
-10
View File
@@ -138,15 +138,6 @@
"posts_last_synced_info": "โพสต์ซิงค์ครั้งล่าสุด {{time}} บอร์ดนี้อาจออฟไลน์และการเผยแพร่อาจล้มเหลว",
"newer_than": "ใหม่กว่า",
"no_threads": "ไม่มีกระทู้",
"unblock": "ยกเลิกการบล็อก",
"unblock_all": "ยกเลิกการบล็อกทั้งหมด",
"blocked_addresses": "ที่อยู่ที่ถูกบล็อก",
"you_have_not_blocked": "คุณยังไม่ได้บล็อกที่อยู่ของกระดานหรือที่อยู่ของผู้ใช้ใด ๆ",
"block_user": "บล็อกผู้ใช้",
"unblock_user": "ยกเลิกการบล็อกผู้ใช้",
"block_board": "บล็อกบอร์ด",
"unblock_board": "ยกเลิกการบล็อกบอร์ด",
"unblock_all_confirm": "คุณแน่ใจหรือไม่ว่าต้องการยกเลิกการบล็อกทุกที่อยู่ของบอร์ดและผู้ใช้?",
"hidden": "ซ่อน",
"save_options": "บันทึกตัวเลือก",
"filters": "ตัวกรอง",
@@ -220,7 +211,6 @@
"field_too_long": "ฟิลด์ยาวเกินไป",
"unsubscribe_all": "ยกเลิกการสมัครทั้งหมด",
"unsubscribe_all_confirm": "คุณแน่ใจหรือไม่ว่าต้องการยกเลิกการสมัครสมาชิกจากทุกบอร์ด?",
"you_have_blocked_this_board": "คุณได้บล็อกกระดานนี้",
"looking_for_more_posts": "กำลังมองหาบทความเพิ่มเติม",
"loading_feed": "กำลังโหลดฟีด",
"loading_post": "กำลังโหลดโพสต์",
-10
View File
@@ -138,15 +138,6 @@
"posts_last_synced_info": "Gönderiler son olarak {{time}} senkronize edildi, bu forum çevrimdışı olabilir ve yayınlama başarısız olabilir.",
"newer_than": "daha yeni",
"no_threads": "Hiç gönderi yok",
"unblock": "Engeli kaldır",
"unblock_all": "Tüm engelleri kaldır",
"blocked_addresses": "Engellenen adresler",
"you_have_not_blocked": "Herhangi bir board adresi veya kullanıcı adresi engellemediniz.",
"block_user": "Kullanıcıyı engelle",
"unblock_user": "Kullanıcı engelini kaldır",
"block_board": "Forumu engelle",
"unblock_board": "Forumu engeli kaldır",
"unblock_all_confirm": "Tüm forum adreslerini ve kullanıcı adreslerini engellemek istediğinizden emin misiniz?",
"hidden": "gizli",
"save_options": "Seçenekleri Kaydet",
"filters": "filtreler",
@@ -220,7 +211,6 @@
"field_too_long": "Alan çok uzun.",
"unsubscribe_all": "Hepsinden aboneliği iptal et",
"unsubscribe_all_confirm": "Tüm forumlardan aboneliği iptal etmek istediğinizden emin misiniz?",
"you_have_blocked_this_board": "Bu tahtayı engellediniz",
"looking_for_more_posts": "Daha fazla gönderi arıyorum",
"loading_feed": "Yükleniyor besleme",
"loading_post": "Gönderi yükleniyor",
-10
View File
@@ -138,15 +138,6 @@
"posts_last_synced_info": "Останній раз пости синхронізовано {{time}}, цей форум може бути офлайн, і публікація може не вдатися.",
"newer_than": "новіше ніж",
"no_threads": "Немає тем",
"unblock": "Розблокувати",
"unblock_all": "Розблокувати всі",
"blocked_addresses": "Заблоковані адреси",
"you_have_not_blocked": "Ви не заблокували жодної адреси дошки або користувача.",
"block_user": "Заблокувати користувача",
"unblock_user": "Розблокувати користувача",
"block_board": "Заблокувати форум",
"unblock_board": "Розблокувати форум",
"unblock_all_confirm": "Ви впевнені, що хочете розблокувати всі адреси форуму та адреси користувачів?",
"hidden": "прихований",
"save_options": "Зберегти налаштування",
"filters": "фільтри",
@@ -220,7 +211,6 @@
"field_too_long": "Поле занадто довге.",
"unsubscribe_all": "Відписатися від всього",
"unsubscribe_all_confirm": "Ви впевнені, що хочете скасувати підписку з усіх форумів?",
"you_have_blocked_this_board": "Ви заблокували цю дошку",
"looking_for_more_posts": "Шукаю більше дописів",
"loading_feed": "Завантаження потоку",
"loading_post": "Завантаження поста",
-10
View File
@@ -138,15 +138,6 @@
"posts_last_synced_info": "پوسٹس آخری بار {{time}} پر مطابقت پذیر ہوئیں، یہ بورڈ آف لائن ہو سکتا ہے اور اشاعت ناکام ہو سکتی ہے۔",
"newer_than": "نئی سے",
"no_threads": "کوئی تھریڈز نہیں ہیں",
"unblock": "بلاک ہٹائیں",
"unblock_all": "سب کو انبلاک کریں",
"blocked_addresses": "مسدود شدہ پتوں",
"you_have_not_blocked": "آپ نے کسی بھی بورڈ کا پتہ یا صارف کا پتہ بلاک نہیں کیا ہے۔",
"block_user": "صارف کو بلاک کریں",
"unblock_user": "صارف کو انبلاک کریں",
"block_board": "فورم کو بلاک کریں",
"unblock_board": "فورم کو انبلاک کریں",
"unblock_all_confirm": "کیا آپ بورڈ کے تمام پتے اور صارف پتے کھولنے کے لیے یقینی ہیں؟",
"hidden": "چھپا ہوا",
"save_options": "خیارات محفوظ کریں",
"filters": "فلٹر",
@@ -220,7 +211,6 @@
"field_too_long": "فیلڈ بہت طویل ہے۔",
"unsubscribe_all": "سب سے ان سبسکرائب کریں",
"unsubscribe_all_confirm": "کیا آپ کو یقین ہے کہ آپ تمام بورڈز سے ان سبسکرائب کرنا چاہتے ہیں؟",
"you_have_blocked_this_board": "آپ نے اس بورڈ کو بلاک کر دیا ہے",
"looking_for_more_posts": "مزید پوسٹس تلاش کر رہے ہیں",
"loading_feed": "لوڈ ہو رہا ہے فیڈ",
"loading_post": "پوسٹ لوڈ ہو رہی ہے",
-10
View File
@@ -138,15 +138,6 @@
"posts_last_synced_info": "Bài đăng được đồng bộ lần cuối {{time}}, bảng này có thể đang offline và việc xuất bản có thể thất bại.",
"newer_than": "mới hơn",
"no_threads": "Không có chủ đề",
"unblock": "Bỏ chặn",
"unblock_all": "Bỏ chặn tất cả",
"blocked_addresses": "Địa chỉ bị chặn",
"you_have_not_blocked": "Bạn chưa chặn bất kỳ địa chỉ bảng nào hoặc địa chỉ người dùng.",
"block_user": "Chặn người dùng",
"unblock_user": "Bỏ chặn người dùng",
"block_board": "Chặn diễn đàn",
"unblock_board": "Bỏ chặn diễn đàn",
"unblock_all_confirm": "Bạn có chắc chắn muốn bỏ chặn tất cả các địa chỉ diễn đàn và địa chỉ người dùng không?",
"hidden": "ẩn",
"save_options": "Lưu tùy chọn",
"filters": "bộ lọc",
@@ -220,7 +211,6 @@
"field_too_long": "Trường quá dài.",
"unsubscribe_all": "Hủy đăng ký tất cả",
"unsubscribe_all_confirm": "Bạn có chắc chắn muốn hủy đăng ký tất cả các diễn đàn không?",
"you_have_blocked_this_board": "Bạn đã chặn bảng này",
"looking_for_more_posts": "Tìm kiếm thêm bài viết",
"loading_feed": "Đang tải feed",
"loading_post": "Đang tải bài viết",
-10
View File
@@ -138,15 +138,6 @@
"posts_last_synced_info": "帖子最后同步于 {{time}},此看板可能处于离线状态,发布可能会失败。",
"newer_than": "新于",
"no_threads": "没有帖子",
"unblock": "解除封禁",
"unblock_all": "解除全部封禁",
"blocked_addresses": "被阻止的地址",
"you_have_not_blocked": "您尚未封锁任何板块地址或用户地址。",
"block_user": "封锁用户",
"unblock_user": "解除封锁用户",
"block_board": "封锁论坛",
"unblock_board": "解除封锁论坛",
"unblock_all_confirm": "您确定要解锁所有论坛地址和用户地址吗?",
"hidden": "隐藏",
"save_options": "保存选项",
"filters": "过滤器",
@@ -220,7 +211,6 @@
"field_too_long": "字段太长。",
"unsubscribe_all": "取消所有订阅",
"unsubscribe_all_confirm": "您确定要取消对所有板块的订阅吗?",
"you_have_blocked_this_board": "您已屏蔽此板块",
"looking_for_more_posts": "寻找更多帖子",
"loading_feed": "加载中...",
"loading_post": "正在加载帖子",
@@ -3,7 +3,6 @@ import { createPortal } from 'react-dom';
import { useLocation, useParams } from 'react-router-dom';
import { useTranslation } from 'react-i18next';
import { autoUpdate, flip, FloatingFocusManager, offset, shift, useClick, useDismiss, useFloating, useId, useInteractions, useRole } from '@floating-ui/react';
import { useBlock } from '@plebbit/plebbit-react-hooks';
import styles from './post-menu-desktop.module.css';
import { getCommentMediaInfo } from '../../../lib/utils/media-utils';
import { copyShareLinkToClipboard, isValidURL, type ShareLinkType } from '../../../lib/utils/url-utils';
@@ -117,26 +116,6 @@ const ImageSearchButton = ({ url, onClose }: { url: string; onClose: () => void
);
};
const BlockUserButton = ({ address }: { address: string }) => {
const { t } = useTranslation();
const { blocked, unblock, block } = useBlock({ address });
return (
<div className={styles.postMenuItem} onClick={blocked ? unblock : block}>
{blocked ? t('unblock_user') : t('block_user')}
</div>
);
};
const BlockBoardButton = ({ address }: { address: string }) => {
const { t } = useTranslation();
const { blocked, unblock, block } = useBlock({ address });
return (
<div className={styles.postMenuItem} onClick={blocked ? unblock : block}>
{blocked ? t('unblock_board') : t('block_board')}
</div>
);
};
type PostMenuDesktopProps = {
postMenu: PostMenuProps;
};
@@ -210,8 +189,6 @@ const PostMenuDesktop = ({ postMenu }: PostMenuDesktopProps) => {
</div>
)}
{link && isValidURL(link) && (type === 'image' || type === 'gif' || thumbnail) && url && <ImageSearchButton url={url} onClose={handleClose} />}
{authorAddress && <BlockUserButton address={authorAddress} />}
{(isInAllView || isInSubscriptionsView) && subplebbitAddress && <BlockBoardButton address={subplebbitAddress} />}
</div>
</FloatingFocusManager>,
document.body,
@@ -1,7 +1,7 @@
import { memo, useState } from 'react';
import { createPortal } from 'react-dom';
import { useTranslation } from 'react-i18next';
import { Comment, useBlock } from '@plebbit/plebbit-react-hooks';
import { Comment } from '@plebbit/plebbit-react-hooks';
import { autoUpdate, flip, FloatingFocusManager, offset, shift, useClick, useDismiss, useFloating, useId, useInteractions, useRole } from '@floating-ui/react';
import styles from './post-menu-mobile.module.css';
import { getCommentMediaInfo } from '../../../lib/utils/media-utils';
@@ -128,26 +128,6 @@ const HidePostButton = ({ cid, isReply, onClose, postCid }: HideButtonProps) =>
);
};
const BlockUserButton = ({ address }: { address: string }) => {
const { t } = useTranslation();
const { blocked, unblock, block } = useBlock({ address });
return (
<div className={styles.postMenuItem} onClick={blocked ? unblock : block}>
{blocked ? t('unblock_user') : t('block_user')}
</div>
);
};
const BlockBoardButton = ({ address }: { address: string }) => {
const { t } = useTranslation();
const { blocked, unblock, block } = useBlock({ address });
return (
<div className={styles.postMenuItem} onClick={blocked ? unblock : block}>
{blocked ? t('unblock_board') : t('block_board')}
</div>
);
};
type PostMenuMobileProps = {
postMenu: PostMenuProps;
editMenuPost: Comment;
@@ -201,8 +181,6 @@ const PostMenuMobile = ({ postMenu, editMenuPost }: PostMenuMobileProps) => {
{cid && <CopyContentIdButton cid={cid} onClose={handleClose} />}
{authorAddress && <CopyUserIdButton address={authorAddress} onClose={handleClose} />}
{cid && subplebbitAddress && <HidePostButton cid={cid} isReply={!!parentCid} postCid={postCid} onClose={handleClose} />}
{cid && subplebbitAddress && authorAddress && <BlockUserButton address={authorAddress} />}
{cid && subplebbitAddress && !isInBoardView && <BlockBoardButton address={subplebbitAddress} />}
{link && isValidURL(link) && (type === 'image' || type === 'gif' || thumbnail) && url && <ImageSearchButtons url={url} onClose={handleClose} />}
</div>
</FloatingFocusManager>,
@@ -1,31 +0,0 @@
.setting {
margin: 10px 10px 0 10px;
}
.blockedAddress {
padding-bottom: 5px;
margin-left: 20px;
}
.unblockAll {
padding-bottom: 10px;
}
.button {
text-transform: capitalize;
color: var(--button-desktop-text-color);
text-decoration: var(--button-text-decoration);
}
.unblockButton {
float: right;
}
.button:hover {
color: var(--button-desktop-text-color-hover);
cursor: pointer;
}
.notBlocked {
padding-bottom: 10px;
}
@@ -1,59 +0,0 @@
import { setAccount, useAccount, useBlock } from '@plebbit/plebbit-react-hooks';
import Plebbit from '@plebbit/plebbit-js';
import styles from './blocked-addresses-setting.module.css';
import { useTranslation } from 'react-i18next';
const UnblockButton = ({ address }: { address: string }) => {
const { t } = useTranslation();
const { unblock } = useBlock({ address });
return (
<span className={styles.unblockButton}>
[
<span className={styles.button} onClick={unblock}>
{t('unblock')}
</span>
]
</span>
);
};
const BlockedAddressesSetting = () => {
const { t } = useTranslation();
const { blockedAddresses } = useAccount() || {};
const addressList = blockedAddresses ? Object.keys(blockedAddresses) : [];
const account = useAccount();
const unblockAll = () => {
window.confirm(t('unblock_all_confirm')) && setAccount({ ...account, blockedAddresses: {} });
};
return (
<div className={styles.setting}>
{addressList.length > 0 ? (
<>
{addressList.length > 1 && (
<div className={styles.unblockAll}>
[
<span className={styles.button} onClick={unblockAll}>
{t('unblock_all')}
</span>
]
</div>
)}
<ul className={styles.blockedAddresses}>
{addressList.map((address: string) => (
<li key={address} className={styles.blockedAddress}>
{address && Plebbit.getShortAddress({ address })} <UnblockButton address={address} />
</li>
))}
</ul>
</>
) : (
<div className={styles.notBlocked}>{t('you_have_not_blocked')}</div>
)}
</div>
);
};
export default BlockedAddressesSetting;
@@ -1 +0,0 @@
export { default } from './blocked-addresses-setting';
@@ -4,7 +4,6 @@ import { useTranslation } from 'react-i18next';
import styles from './settings-modal.module.css';
import AccountSettings from './account-settings';
import AvatarSettings from './avatar-settings';
import BlockedAddressesSetting from './blocked-addresses-setting';
import CryptoAddressSetting from './crypto-address-setting';
import CryptoWalletsSetting from './crypto-wallets-setting';
import InterfaceSettings from './interface-settings';
@@ -43,7 +42,6 @@ const SettingsModal = () => {
const [showCryptoAddressSetting, setShowCryptoAddressSetting] = useState(false);
const [showCryptoWalletSettings, setShowCryptoWalletSettings] = useState(false);
const [showSubscriptionsSettings, setShowSubscriptionsSettings] = useState(false);
const [showBlockedAddressesSetting, setShowBlockedAddressesSetting] = useState(false);
const [showAdvancedSettings, setShowAdvancedSettings] = useState(false);
const [expandAll, setExpandAll] = useState(false);
@@ -56,7 +54,6 @@ const SettingsModal = () => {
Number(showCryptoAddressSetting) +
Number(showCryptoWalletSettings) +
Number(showSubscriptionsSettings) +
Number(showBlockedAddressesSetting) +
Number(showAdvancedSettings)
);
};
@@ -69,7 +66,6 @@ const SettingsModal = () => {
if (showCryptoAddressSetting && 'crypto-address-settings' !== excludeCategoryId) return 'crypto-address-settings';
if (showCryptoWalletSettings && 'crypto-wallet-settings' !== excludeCategoryId) return 'crypto-wallet-settings';
if (showSubscriptionsSettings && 'subscriptions-settings' !== excludeCategoryId) return 'subscriptions-settings';
if (showBlockedAddressesSetting && 'blocked-addresses-settings' !== excludeCategoryId) return 'blocked-addresses-settings';
if (showAdvancedSettings && 'advanced-settings' !== excludeCategoryId) return 'advanced-settings';
return null;
};
@@ -110,7 +106,6 @@ const SettingsModal = () => {
setShowCryptoAddressSetting(hash === 'crypto-address-settings');
setShowCryptoWalletSettings(hash === 'crypto-wallet-settings');
setShowSubscriptionsSettings(hash === 'subscriptions-settings');
setShowBlockedAddressesSetting(hash === 'blocked-addresses-settings');
setShowAdvancedSettings(hash === 'advanced-settings');
}
}, [hash]);
@@ -125,7 +120,6 @@ const SettingsModal = () => {
setShowCryptoAddressSetting(newExpandState);
setShowCryptoWalletSettings(newExpandState);
setShowSubscriptionsSettings(newExpandState);
setShowBlockedAddressesSetting(newExpandState);
setShowAdvancedSettings(newExpandState);
const baseSettingsPath = location.pathname.split('#')[0];
@@ -192,13 +186,6 @@ const SettingsModal = () => {
</label>
</div>
{showSubscriptionsSettings && <SubscriptionsSetting />}
<div id='blocked-addresses-settings' className={`${styles.setting} ${styles.category}`}>
<label onClick={() => handleCategoryClick('blocked-addresses-settings', showBlockedAddressesSetting, setShowBlockedAddressesSetting)}>
<span className={showBlockedAddressesSetting ? styles.hideButton : styles.showButton} />
{t('blocked_addresses')}
</label>
</div>
{showBlockedAddressesSetting && <BlockedAddressesSetting />}
<div id='advanced-settings' className={`${styles.setting} ${styles.category}`}>
<label onClick={() => handleCategoryClick('advanced-settings', showAdvancedSettings, setShowAdvancedSettings)}>
<span className={showAdvancedSettings ? styles.hideButton : styles.showButton} />
+1 -29
View File
@@ -1,6 +1,6 @@
import { useEffect, useMemo, useRef, useState } from 'react';
import { Link, useLocation, useNavigationType, useParams } from 'react-router-dom';
import { Comment, useAccount, useAccountComments, useAccountSubplebbits, useBlock, useFeed, useSubplebbit } from '@plebbit/plebbit-react-hooks';
import { Comment, useAccount, useAccountComments, useAccountSubplebbits, useFeed, useSubplebbit } from '@plebbit/plebbit-react-hooks';
import { useSubplebbitField } from '../../hooks/use-stable-subplebbit';
import { Virtuoso, VirtuosoHandle, StateSnapshot } from 'react-virtuoso';
import { Trans, useTranslation } from 'react-i18next';
@@ -41,8 +41,6 @@ interface BoardFooterProps {
subplebbitState: string | undefined;
subscriptionsLength: number;
accountSubplebbitAddressesLength: number;
blocked: boolean;
onUnblock: () => void;
}
// Defined outside Board to preserve component identity across renders (Virtuoso optimization)
@@ -67,8 +65,6 @@ const BoardFooter = ({
subplebbitState,
subscriptionsLength,
accountSubplebbitAddressesLength,
blocked,
onUnblock,
}: BoardFooterProps) => {
const { t } = useTranslation();
@@ -146,20 +142,9 @@ const BoardFooter = ({
<span className='red'>{t('not_subscribed_to_any_board')}</span>
) : isInModView && accountSubplebbitAddressesLength === 0 ? (
<span className='red'>{t('not_mod_of_any_board')}</span>
) : blocked ? (
<span className='red'>{t('you_have_blocked_this_board')}</span>
) : (
hasMore && <LoadingEllipsis string={loadingStateString} />
)}
{blocked && (
<>
&nbsp;&nbsp;[
<span className={styles.button} onClick={onUnblock}>
{t('unblock')}
</span>
]
</>
)}
</div>
</div>
);
@@ -296,8 +281,6 @@ const Board = ({ feedCacheKey, viewType, boardIdentifier: boardIdentifierProp, t
const { error: subplebbitError, state: subplebbitState } = subplebbit || {};
const title = isInAllView ? t('all') : isInSubscriptionsView ? t('subscriptions') : isInModView ? t('mod') : subplebbitTitle;
const { blocked, unblock } = useBlock({ address: subplebbitAddress });
const handleNewerPostsButtonClick = () => {
window.scrollTo({ top: 0, left: 0 });
setTimeout(() => {
@@ -341,11 +324,6 @@ const Board = ({ feedCacheKey, viewType, boardIdentifier: boardIdentifierProp, t
const currentTimeFilterName = timeFilterName || params?.timeFilterName;
const handleUnblock = () => {
unblock();
reset();
};
// Memoize footer component to preserve identity across renders (Virtuoso optimization)
// Note: useFeedStateString is called inside BoardFooter to isolate re-renders from backend state changes
const footerComponents = useMemo(
@@ -370,8 +348,6 @@ const Board = ({ feedCacheKey, viewType, boardIdentifier: boardIdentifierProp, t
subplebbitState={subplebbitState}
subscriptionsLength={subscriptions?.length || 0}
accountSubplebbitAddressesLength={accountSubplebbitAddresses?.length || 0}
blocked={blocked || false}
onUnblock={handleUnblock}
/>
),
}),
@@ -394,8 +370,6 @@ const Board = ({ feedCacheKey, viewType, boardIdentifier: boardIdentifierProp, t
subplebbitState,
subscriptions?.length,
accountSubplebbitAddresses?.length,
blocked,
handleUnblock,
],
);
@@ -499,8 +473,6 @@ const Board = ({ feedCacheKey, viewType, boardIdentifier: boardIdentifierProp, t
subplebbitState={subplebbitState}
subscriptionsLength={subscriptions?.length || 0}
accountSubplebbitAddressesLength={accountSubplebbitAddresses?.length || 0}
blocked={blocked || false}
onUnblock={handleUnblock}
/>
</>
)}
+1 -23
View File
@@ -1,7 +1,7 @@
import { useEffect, useMemo, useRef, useState, useCallback } from 'react';
import { Link, useLocation, useNavigationType, useParams } from 'react-router-dom';
import { Trans, useTranslation } from 'react-i18next';
import { Comment, useAccount, useFeed, useSubplebbit, useBlock, useAccountComments } from '@plebbit/plebbit-react-hooks';
import { Comment, useAccount, useFeed, useSubplebbit, useAccountComments } from '@plebbit/plebbit-react-hooks';
import { Virtuoso, VirtuosoHandle, StateSnapshot } from 'react-virtuoso';
import { getCommentMediaInfo, getHasThumbnail } from '../../lib/utils/media-utils';
import useCatalogFeedRows from '../../hooks/use-catalog-feed-rows';
@@ -142,7 +142,6 @@ interface CatalogLoadingProps {
yearlyFeedLength: number;
state: string | undefined;
subscriptionsLength: number;
blocked: boolean;
combinedFeedLength: number;
error: Error | undefined;
}
@@ -156,7 +155,6 @@ const CatalogLoading = ({
yearlyFeedLength,
state,
subscriptionsLength,
blocked,
combinedFeedLength,
error,
}: CatalogLoadingProps) => {
@@ -174,8 +172,6 @@ const CatalogLoading = ({
<span className='red'>{state}</span>
) : subscriptionsLength === 0 ? (
<span className='red'>{t('not_subscribed_to_any_board')}</span>
) : blocked ? (
t('you_have_blocked_this_board')
) : !hasMore && combinedFeedLength === 0 ? (
t('no_threads')
) : (
@@ -481,8 +477,6 @@ const Catalog = ({ feedCacheKey, viewType, boardIdentifier: boardIdentifierProp,
const subplebbit = useSubplebbit({ subplebbitAddress });
const { error, shortAddress, state, title } = subplebbit || {};
const { blocked, unblock } = useBlock({ address: subplebbitAddress });
const feedLength = feed.length;
const weeklyFeedLength = weeklyFeed.length;
const monthlyFeedLength = monthlyFeed.length;
@@ -702,25 +696,9 @@ const Catalog = ({ feedCacheKey, viewType, boardIdentifier: boardIdentifierProp,
yearlyFeedLength={yearlyFeedLength}
state={state}
subscriptionsLength={isInSubscriptionsView ? subscriptions?.length || 0 : 1}
blocked={blocked || false}
combinedFeedLength={combinedFeed.length}
error={error}
/>
{blocked && (
<>
&nbsp;&nbsp;[
<span
className={styles.button}
onClick={() => {
unblock();
reset();
}}
>
{t('unblock')}
</span>
]
</>
)}
</div>
)}
</div>