mirror of
https://github.com/bitsocialnet/5chan.git
synced 2026-08-03 07:41:04 +02:00
feat: add copy user ID menu item and rename copy link to copy direct link
Add 'Copy user ID' button to both desktop and mobile post menus, allowing users to copy the full author address. This provides a way to verify authenticity against the 8-char display ID. Also rename 'Copy link' to 'Copy direct link' for clarity. Update security comments to reflect the new approach and add translations for all 35 languages.
This commit is contained in:
@@ -99,7 +99,6 @@
|
||||
"interface": "واجهة",
|
||||
"invalid_url": "رابط غير صالح",
|
||||
"image_search": "البحث عن صورة",
|
||||
"copy_link": "نسخ الرابط",
|
||||
"hide_post": "إخفاء المنشور",
|
||||
"hide_thread": "إخفاء الموضوع",
|
||||
"unhide_post": "إظهار المنشور",
|
||||
@@ -276,5 +275,7 @@
|
||||
"type": "Type",
|
||||
"yes": "Yes",
|
||||
"no": "No",
|
||||
"pending_mod_approval": "Pending mod approval, not visible to users"
|
||||
"pending_mod_approval": "Pending mod approval, not visible to users",
|
||||
"copy_user_id": "نسخ معرف المستخدم",
|
||||
"copy_direct_link": "نسخ الرابط المباشر"
|
||||
}
|
||||
|
||||
@@ -99,7 +99,6 @@
|
||||
"interface": "ইন্টারফেস",
|
||||
"invalid_url": "অবৈধ ইউআরএল",
|
||||
"image_search": "চিত্র অনুসন্ধান",
|
||||
"copy_link": "লিংক অনুলিপি করুন",
|
||||
"hide_post": "পোস্ট লুকাও",
|
||||
"hide_thread": "থ্রেড লুকাও",
|
||||
"unhide_post": "পোস্ট প্রদর্শন করুন",
|
||||
@@ -276,5 +275,7 @@
|
||||
"type": "Type",
|
||||
"yes": "Yes",
|
||||
"no": "No",
|
||||
"pending_mod_approval": "Pending mod approval, not visible to users"
|
||||
"pending_mod_approval": "Pending mod approval, not visible to users",
|
||||
"copy_user_id": "ইউজার আইডি কপি করুন",
|
||||
"copy_direct_link": "সরাসরি লিংক অনুলিপি করুন"
|
||||
}
|
||||
|
||||
@@ -99,7 +99,6 @@
|
||||
"interface": "rozhraní",
|
||||
"invalid_url": "Neplatná adresa URL",
|
||||
"image_search": "hledání obrázku",
|
||||
"copy_link": "kopírovat odkaz",
|
||||
"hide_post": "skrýt příspěvek",
|
||||
"hide_thread": "skrýt vlákno",
|
||||
"unhide_post": "zobrazit příspěvek",
|
||||
@@ -276,5 +275,7 @@
|
||||
"type": "Type",
|
||||
"yes": "Yes",
|
||||
"no": "No",
|
||||
"pending_mod_approval": "Pending mod approval, not visible to users"
|
||||
"pending_mod_approval": "Pending mod approval, not visible to users",
|
||||
"copy_user_id": "kopírovat ID uživatele",
|
||||
"copy_direct_link": "kopírovat přímý odkaz"
|
||||
}
|
||||
|
||||
@@ -99,7 +99,6 @@
|
||||
"interface": "interface",
|
||||
"invalid_url": "Ugyldig webadresse",
|
||||
"image_search": "billedsøgning",
|
||||
"copy_link": "kopier link",
|
||||
"hide_post": "skjul post",
|
||||
"hide_thread": "skjul tråd",
|
||||
"unhide_post": "vis indlæg",
|
||||
@@ -276,5 +275,7 @@
|
||||
"type": "Type",
|
||||
"yes": "Yes",
|
||||
"no": "No",
|
||||
"pending_mod_approval": "Pending mod approval, not visible to users"
|
||||
"pending_mod_approval": "Pending mod approval, not visible to users",
|
||||
"copy_user_id": "kopier bruger-ID",
|
||||
"copy_direct_link": "kopier direkte link"
|
||||
}
|
||||
|
||||
@@ -99,7 +99,6 @@
|
||||
"interface": "Schnittstelle",
|
||||
"invalid_url": "Ungültige URL",
|
||||
"image_search": "Bildersuche",
|
||||
"copy_link": "Link kopieren",
|
||||
"hide_post": "Beitrag ausblenden",
|
||||
"hide_thread": "Thread ausblenden",
|
||||
"unhide_post": "Beitrag anzeigen",
|
||||
@@ -276,5 +275,7 @@
|
||||
"type": "Typ",
|
||||
"yes": "Ja",
|
||||
"no": "Nein",
|
||||
"pending_mod_approval": "Ausstehende Moderatorgenehmigung, für Benutzer nicht sichtbar"
|
||||
"pending_mod_approval": "Ausstehende Moderatorgenehmigung, für Benutzer nicht sichtbar",
|
||||
"copy_user_id": "Benutzer-ID kopieren",
|
||||
"copy_direct_link": "Direktlink kopieren"
|
||||
}
|
||||
|
||||
@@ -99,7 +99,6 @@
|
||||
"interface": "διεπαφή",
|
||||
"invalid_url": "Μη έγκυρη διεύθυνση URL",
|
||||
"image_search": "αναζήτηση εικόνων",
|
||||
"copy_link": "αντιγραφή συνδέσμου",
|
||||
"hide_post": "απόκρυψη ανάρτησης",
|
||||
"hide_thread": "απόκρυψη νήματος",
|
||||
"unhide_post": "εμφάνιση ανάρτησης",
|
||||
@@ -276,5 +275,7 @@
|
||||
"type": "Type",
|
||||
"yes": "Yes",
|
||||
"no": "No",
|
||||
"pending_mod_approval": "Pending mod approval, not visible to users"
|
||||
"pending_mod_approval": "Pending mod approval, not visible to users",
|
||||
"copy_user_id": "αντιγραφή ID χρήστη",
|
||||
"copy_direct_link": "αντιγραφή άμεσου συνδέσμου"
|
||||
}
|
||||
|
||||
@@ -99,7 +99,6 @@
|
||||
"interface": "interface",
|
||||
"invalid_url": "Invalid URL",
|
||||
"image_search": "image search",
|
||||
"copy_link": "Copy link",
|
||||
"hide_post": "Hide post",
|
||||
"hide_thread": "Hide thread",
|
||||
"unhide_post": "Unhide post",
|
||||
@@ -276,5 +275,7 @@
|
||||
"type": "Type",
|
||||
"yes": "Yes",
|
||||
"no": "No",
|
||||
"pending_mod_approval": "Pending mod approval, not visible to users"
|
||||
"pending_mod_approval": "Pending mod approval, not visible to users",
|
||||
"copy_user_id": "Copy user ID",
|
||||
"copy_direct_link": "Copy direct link"
|
||||
}
|
||||
|
||||
@@ -99,7 +99,6 @@
|
||||
"interface": "interfaz",
|
||||
"invalid_url": "URL no válida",
|
||||
"image_search": "búsqueda de imágenes",
|
||||
"copy_link": "Copiar enlace",
|
||||
"hide_post": "Ocultar publicación",
|
||||
"hide_thread": "Ocultar hilo",
|
||||
"unhide_post": "Mostrar publicación",
|
||||
@@ -276,5 +275,7 @@
|
||||
"type": "Tipo",
|
||||
"yes": "Sí",
|
||||
"no": "No",
|
||||
"pending_mod_approval": "Pendiente de aprobación del moderador, no visible para los usuarios"
|
||||
"pending_mod_approval": "Pendiente de aprobación del moderador, no visible para los usuarios",
|
||||
"copy_user_id": "Copiar ID de usuario",
|
||||
"copy_direct_link": "Copiar enlace directo"
|
||||
}
|
||||
|
||||
@@ -99,7 +99,6 @@
|
||||
"interface": "رابط",
|
||||
"invalid_url": "آدرس اینترنتی نامعتبر است",
|
||||
"image_search": "جستجوی تصویر",
|
||||
"copy_link": "رونوشت لینک",
|
||||
"hide_post": "پنهان کردن پست",
|
||||
"hide_thread": "پنهان کردن موضوع",
|
||||
"unhide_post": "نمایش پست",
|
||||
@@ -276,5 +275,7 @@
|
||||
"type": "Type",
|
||||
"yes": "Yes",
|
||||
"no": "No",
|
||||
"pending_mod_approval": "Pending mod approval, not visible to users"
|
||||
"pending_mod_approval": "Pending mod approval, not visible to users",
|
||||
"copy_user_id": "کپی شناسه کاربر",
|
||||
"copy_direct_link": "رونوشت لینک مستقیم"
|
||||
}
|
||||
|
||||
@@ -99,7 +99,6 @@
|
||||
"interface": "liitäntä",
|
||||
"invalid_url": "Virheellinen URL-osoite",
|
||||
"image_search": "kuvahaku",
|
||||
"copy_link": "kopioi linkki",
|
||||
"hide_post": "piilota viesti",
|
||||
"hide_thread": "piilota keskustelu",
|
||||
"unhide_post": "näytä viesti",
|
||||
@@ -276,5 +275,7 @@
|
||||
"type": "Type",
|
||||
"yes": "Yes",
|
||||
"no": "No",
|
||||
"pending_mod_approval": "Pending mod approval, not visible to users"
|
||||
"pending_mod_approval": "Pending mod approval, not visible to users",
|
||||
"copy_user_id": "kopioi käyttäjätunnus",
|
||||
"copy_direct_link": "kopioi suora linkki"
|
||||
}
|
||||
|
||||
@@ -99,7 +99,6 @@
|
||||
"interface": "interface",
|
||||
"invalid_url": "Hindi wastong URL",
|
||||
"image_search": "paghahanap ng larawan",
|
||||
"copy_link": "kopyahin ang link",
|
||||
"hide_post": "itago ang post",
|
||||
"hide_thread": "itago ang thread",
|
||||
"unhide_post": "ipakita ang post",
|
||||
@@ -276,5 +275,7 @@
|
||||
"type": "Type",
|
||||
"yes": "Yes",
|
||||
"no": "No",
|
||||
"pending_mod_approval": "Pending mod approval, not visible to users"
|
||||
"pending_mod_approval": "Pending mod approval, not visible to users",
|
||||
"copy_user_id": "kopyahin ang user ID",
|
||||
"copy_direct_link": "kopyahin ang direct link"
|
||||
}
|
||||
|
||||
@@ -99,7 +99,6 @@
|
||||
"interface": "interface",
|
||||
"invalid_url": "URL non valide",
|
||||
"image_search": "recherche d'images",
|
||||
"copy_link": "Copier le lien",
|
||||
"hide_post": "Masquer la publication",
|
||||
"hide_thread": "Masquer le fil",
|
||||
"unhide_post": "Afficher la publication",
|
||||
@@ -276,5 +275,7 @@
|
||||
"type": "Type",
|
||||
"yes": "Oui",
|
||||
"no": "Non",
|
||||
"pending_mod_approval": "En attente d'approbation du modérateur, non visible pour les utilisateurs"
|
||||
"pending_mod_approval": "En attente d'approbation du modérateur, non visible pour les utilisateurs",
|
||||
"copy_user_id": "Copier l'ID utilisateur",
|
||||
"copy_direct_link": "Copier le lien direct"
|
||||
}
|
||||
|
||||
@@ -99,7 +99,6 @@
|
||||
"interface": "ממשק",
|
||||
"invalid_url": "כתובת אינטרנט לא תקינה",
|
||||
"image_search": "חיפוש תמונות",
|
||||
"copy_link": "העתק קישור",
|
||||
"hide_post": "הסתר פוסט",
|
||||
"hide_thread": "הסתר ת’רד",
|
||||
"unhide_post": "הצג פוסט",
|
||||
@@ -276,5 +275,7 @@
|
||||
"type": "Type",
|
||||
"yes": "Yes",
|
||||
"no": "No",
|
||||
"pending_mod_approval": "Pending mod approval, not visible to users"
|
||||
"pending_mod_approval": "Pending mod approval, not visible to users",
|
||||
"copy_user_id": "העתק מזהה משתמש",
|
||||
"copy_direct_link": "העתק קישור ישיר"
|
||||
}
|
||||
|
||||
@@ -99,7 +99,6 @@
|
||||
"interface": "इंटरफेस",
|
||||
"invalid_url": "अमान्य URL",
|
||||
"image_search": "चित्र खोज",
|
||||
"copy_link": "लिंक कॉपी करें",
|
||||
"hide_post": "पोस्ट छुपाएं",
|
||||
"hide_thread": "धागा छुपाएं",
|
||||
"unhide_post": "पोस्ट प्रदर्शित करें",
|
||||
@@ -276,5 +275,7 @@
|
||||
"type": "Type",
|
||||
"yes": "Yes",
|
||||
"no": "No",
|
||||
"pending_mod_approval": "Pending mod approval, not visible to users"
|
||||
"pending_mod_approval": "Pending mod approval, not visible to users",
|
||||
"copy_user_id": "यूज़र ID कॉपी करें",
|
||||
"copy_direct_link": "डायरेक्ट लिंक कॉपी करें"
|
||||
}
|
||||
|
||||
@@ -99,7 +99,6 @@
|
||||
"interface": "felület",
|
||||
"invalid_url": "Érvénytelen URL-cím",
|
||||
"image_search": "képkeresés",
|
||||
"copy_link": "link másolása",
|
||||
"hide_post": "bejegyzés elrejtése",
|
||||
"hide_thread": "szál elrejtése",
|
||||
"unhide_post": "bejegyzés megjelenítése",
|
||||
@@ -276,5 +275,7 @@
|
||||
"type": "Type",
|
||||
"yes": "Yes",
|
||||
"no": "No",
|
||||
"pending_mod_approval": "Pending mod approval, not visible to users"
|
||||
"pending_mod_approval": "Pending mod approval, not visible to users",
|
||||
"copy_user_id": "felhasználói ID másolása",
|
||||
"copy_direct_link": "közvetlen link másolása"
|
||||
}
|
||||
|
||||
@@ -99,7 +99,6 @@
|
||||
"interface": "antarmuka",
|
||||
"invalid_url": "URL tidak valid",
|
||||
"image_search": "pencarian gambar",
|
||||
"copy_link": "salin tautan",
|
||||
"hide_post": "sembunyikan pos",
|
||||
"hide_thread": "sembunyikan utas",
|
||||
"unhide_post": "tampilkan pos",
|
||||
@@ -276,5 +275,7 @@
|
||||
"type": "Type",
|
||||
"yes": "Yes",
|
||||
"no": "No",
|
||||
"pending_mod_approval": "Pending mod approval, not visible to users"
|
||||
"pending_mod_approval": "Pending mod approval, not visible to users",
|
||||
"copy_user_id": "salin ID pengguna",
|
||||
"copy_direct_link": "salin tautan langsung"
|
||||
}
|
||||
|
||||
@@ -99,7 +99,6 @@
|
||||
"interface": "interfaccia",
|
||||
"invalid_url": "URL non valido",
|
||||
"image_search": "ricerca immagini",
|
||||
"copy_link": "Copia link",
|
||||
"hide_post": "Nascondi post",
|
||||
"hide_thread": "Nascondi thread",
|
||||
"unhide_post": "Mostra post",
|
||||
@@ -276,5 +275,7 @@
|
||||
"type": "Tipo",
|
||||
"yes": "Sì",
|
||||
"no": "No",
|
||||
"pending_mod_approval": "In attesa di approvazione del moderatore, non visibile agli utenti"
|
||||
"pending_mod_approval": "In attesa di approvazione del moderatore, non visibile agli utenti",
|
||||
"copy_user_id": "Copia ID utente",
|
||||
"copy_direct_link": "Copia link diretto"
|
||||
}
|
||||
|
||||
@@ -99,7 +99,6 @@
|
||||
"interface": "インターフェース",
|
||||
"invalid_url": "無効なURL",
|
||||
"image_search": "画像検索",
|
||||
"copy_link": "リンクをコピー",
|
||||
"hide_post": "投稿を非表示",
|
||||
"hide_thread": "スレッドを非表示",
|
||||
"unhide_post": "投稿を表示",
|
||||
@@ -276,5 +275,7 @@
|
||||
"type": "タイプ",
|
||||
"yes": "はい",
|
||||
"no": "いいえ",
|
||||
"pending_mod_approval": "モデレーターの承認待ち、ユーザーには表示されません"
|
||||
"pending_mod_approval": "モデレーターの承認待ち、ユーザーには表示されません",
|
||||
"copy_user_id": "ユーザーIDをコピー",
|
||||
"copy_direct_link": "直接リンクをコピー"
|
||||
}
|
||||
|
||||
@@ -99,7 +99,6 @@
|
||||
"interface": "인터페이스",
|
||||
"invalid_url": "잘못된 URL",
|
||||
"image_search": "이미지 검색",
|
||||
"copy_link": "링크 복사",
|
||||
"hide_post": "게시물 숨기기",
|
||||
"hide_thread": "스레드 숨기기",
|
||||
"unhide_post": "게시물 숨기기 해제",
|
||||
@@ -276,5 +275,7 @@
|
||||
"type": "Type",
|
||||
"yes": "Yes",
|
||||
"no": "No",
|
||||
"pending_mod_approval": "Pending mod approval, not visible to users"
|
||||
"pending_mod_approval": "Pending mod approval, not visible to users",
|
||||
"copy_user_id": "사용자 ID 복사",
|
||||
"copy_direct_link": "직접 링크 복사"
|
||||
}
|
||||
|
||||
@@ -99,7 +99,6 @@
|
||||
"interface": "इंटरफेस",
|
||||
"invalid_url": "अवैध URL",
|
||||
"image_search": "प्रतिमा शोध",
|
||||
"copy_link": "लिंक कॉपी करा",
|
||||
"hide_post": "पोस्ट लपवा",
|
||||
"hide_thread": "थ्रेड लपवा",
|
||||
"unhide_post": "पोस्ट दाखवा",
|
||||
@@ -276,5 +275,7 @@
|
||||
"type": "Type",
|
||||
"yes": "Yes",
|
||||
"no": "No",
|
||||
"pending_mod_approval": "Pending mod approval, not visible to users"
|
||||
"pending_mod_approval": "Pending mod approval, not visible to users",
|
||||
"copy_user_id": "यूजर ID कॉपी करा",
|
||||
"copy_direct_link": "डायरेक्ट लिंक कॉपी करा"
|
||||
}
|
||||
|
||||
@@ -99,7 +99,6 @@
|
||||
"interface": "interface",
|
||||
"invalid_url": "Ongeldige URL",
|
||||
"image_search": "afbeeldingen zoeken",
|
||||
"copy_link": "link kopiëren",
|
||||
"hide_post": "bericht verbergen",
|
||||
"hide_thread": "thread verbergen",
|
||||
"unhide_post": "bericht weergeven",
|
||||
@@ -276,5 +275,7 @@
|
||||
"type": "Type",
|
||||
"yes": "Yes",
|
||||
"no": "No",
|
||||
"pending_mod_approval": "Pending mod approval, not visible to users"
|
||||
"pending_mod_approval": "Pending mod approval, not visible to users",
|
||||
"copy_user_id": "gebruikers-ID kopiëren",
|
||||
"copy_direct_link": "directe link kopiëren"
|
||||
}
|
||||
|
||||
@@ -99,7 +99,6 @@
|
||||
"interface": "grensesnitt",
|
||||
"invalid_url": "Ugyldig URL",
|
||||
"image_search": "bilde søk",
|
||||
"copy_link": "kopier lenke",
|
||||
"hide_post": "skjul innlegg",
|
||||
"hide_thread": "skjul tråd",
|
||||
"unhide_post": "vis innlegg",
|
||||
@@ -276,5 +275,7 @@
|
||||
"type": "Type",
|
||||
"yes": "Yes",
|
||||
"no": "No",
|
||||
"pending_mod_approval": "Pending mod approval, not visible to users"
|
||||
"pending_mod_approval": "Pending mod approval, not visible to users",
|
||||
"copy_user_id": "kopier bruker-ID",
|
||||
"copy_direct_link": "kopier direkte lenke"
|
||||
}
|
||||
|
||||
@@ -99,7 +99,6 @@
|
||||
"interface": "interfejs",
|
||||
"invalid_url": "Nieprawidłowy adres URL",
|
||||
"image_search": "wyszukiwanie obrazów",
|
||||
"copy_link": "skopiuj link",
|
||||
"hide_post": "ukryj post",
|
||||
"hide_thread": "ukryj wątek",
|
||||
"unhide_post": "pokaż post",
|
||||
@@ -276,5 +275,7 @@
|
||||
"type": "Type",
|
||||
"yes": "Yes",
|
||||
"no": "No",
|
||||
"pending_mod_approval": "Pending mod approval, not visible to users"
|
||||
"pending_mod_approval": "Pending mod approval, not visible to users",
|
||||
"copy_user_id": "skopiuj ID użytkownika",
|
||||
"copy_direct_link": "skopiuj bezpośredni link"
|
||||
}
|
||||
|
||||
@@ -99,7 +99,6 @@
|
||||
"interface": "interface",
|
||||
"invalid_url": "URL inválida",
|
||||
"image_search": "pesquisa de imagens",
|
||||
"copy_link": "Copiar link",
|
||||
"hide_post": "Ocultar postagem",
|
||||
"hide_thread": "Ocultar tópico",
|
||||
"unhide_post": "Mostrar postagem",
|
||||
@@ -276,5 +275,7 @@
|
||||
"type": "Tipo",
|
||||
"yes": "Sim",
|
||||
"no": "Não",
|
||||
"pending_mod_approval": "Aguardando aprovação do moderador, não visível para os usuários"
|
||||
"pending_mod_approval": "Aguardando aprovação do moderador, não visível para os usuários",
|
||||
"copy_user_id": "Copiar ID do usuário",
|
||||
"copy_direct_link": "Copiar link direto"
|
||||
}
|
||||
|
||||
@@ -99,7 +99,6 @@
|
||||
"interface": "interfață",
|
||||
"invalid_url": "URL invalid",
|
||||
"image_search": "căutare de imagini",
|
||||
"copy_link": "copiați linkul",
|
||||
"hide_post": "ascundeți postarea",
|
||||
"hide_thread": "ascundeți firul",
|
||||
"unhide_post": "afișează postarea",
|
||||
@@ -276,5 +275,7 @@
|
||||
"type": "Type",
|
||||
"yes": "Yes",
|
||||
"no": "No",
|
||||
"pending_mod_approval": "Pending mod approval, not visible to users"
|
||||
"pending_mod_approval": "Pending mod approval, not visible to users",
|
||||
"copy_user_id": "copiați ID-ul utilizatorului",
|
||||
"copy_direct_link": "copiați linkul direct"
|
||||
}
|
||||
|
||||
@@ -99,7 +99,6 @@
|
||||
"interface": "интерфейс",
|
||||
"invalid_url": "Недействительный URL",
|
||||
"image_search": "поиск изображений",
|
||||
"copy_link": "копировать ссылку",
|
||||
"hide_post": "скрыть пост",
|
||||
"hide_thread": "скрыть ветку",
|
||||
"unhide_post": "показать пост",
|
||||
@@ -276,5 +275,7 @@
|
||||
"type": "Тип",
|
||||
"yes": "Да",
|
||||
"no": "Нет",
|
||||
"pending_mod_approval": "Ожидает одобрения модератора, не видно пользователям"
|
||||
"pending_mod_approval": "Ожидает одобрения модератора, не видно пользователям",
|
||||
"copy_user_id": "копировать ID пользователя",
|
||||
"copy_direct_link": "копировать прямую ссылку"
|
||||
}
|
||||
|
||||
@@ -99,7 +99,6 @@
|
||||
"interface": "ndërfaqe",
|
||||
"invalid_url": "URL jo e vlefshëm",
|
||||
"image_search": "kërkim imazhesh",
|
||||
"copy_link": "kopjo linkun",
|
||||
"hide_post": "fsheh postën",
|
||||
"hide_thread": "fsheh fijen",
|
||||
"unhide_post": "shfaq postën",
|
||||
@@ -276,5 +275,7 @@
|
||||
"type": "Type",
|
||||
"yes": "Yes",
|
||||
"no": "No",
|
||||
"pending_mod_approval": "Pending mod approval, not visible to users"
|
||||
"pending_mod_approval": "Pending mod approval, not visible to users",
|
||||
"copy_user_id": "kopjo ID e përdoruesit",
|
||||
"copy_direct_link": "kopjo lidhjen e drejtpërdrejtë"
|
||||
}
|
||||
|
||||
@@ -99,7 +99,6 @@
|
||||
"interface": "gränssnitt",
|
||||
"invalid_url": "Ogiltig URL",
|
||||
"image_search": "bildsökning",
|
||||
"copy_link": "kopiera länk",
|
||||
"hide_post": "dölj inlägg",
|
||||
"hide_thread": "dölj tråd",
|
||||
"unhide_post": "visa inlägg",
|
||||
@@ -276,5 +275,7 @@
|
||||
"type": "Type",
|
||||
"yes": "Yes",
|
||||
"no": "No",
|
||||
"pending_mod_approval": "Pending mod approval, not visible to users"
|
||||
"pending_mod_approval": "Pending mod approval, not visible to users",
|
||||
"copy_user_id": "kopiera användar-ID",
|
||||
"copy_direct_link": "kopiera direktlänk"
|
||||
}
|
||||
|
||||
@@ -99,7 +99,6 @@
|
||||
"interface": "అంతరాఫ్సు",
|
||||
"invalid_url": "చెల్లని URL",
|
||||
"image_search": "చిత్రాల శోధన",
|
||||
"copy_link": "లింక్ ను కాపీ చేయండి",
|
||||
"hide_post": "పోస్ట్ దాచు",
|
||||
"hide_thread": "థ్రెడ్ దాచు",
|
||||
"unhide_post": "పోస్ట్ చూపించు",
|
||||
@@ -276,5 +275,7 @@
|
||||
"type": "Type",
|
||||
"yes": "Yes",
|
||||
"no": "No",
|
||||
"pending_mod_approval": "Pending mod approval, not visible to users"
|
||||
"pending_mod_approval": "Pending mod approval, not visible to users",
|
||||
"copy_user_id": "యూజర్ ID కాపీ చేయండి",
|
||||
"copy_direct_link": "డైరెక్ట్ లింక్ కాపీ చేయండి"
|
||||
}
|
||||
|
||||
@@ -99,7 +99,6 @@
|
||||
"interface": "อินเทอร์เฟซ",
|
||||
"invalid_url": "URL ไม่ถูกต้อง",
|
||||
"image_search": "ค้นหารูปภาพ",
|
||||
"copy_link": "คัดลอกลิงก์",
|
||||
"hide_post": "ซ่อนโพสต์",
|
||||
"hide_thread": "ซ่อนเธรด",
|
||||
"unhide_post": "แสดงโพสต์",
|
||||
@@ -276,5 +275,7 @@
|
||||
"type": "Type",
|
||||
"yes": "Yes",
|
||||
"no": "No",
|
||||
"pending_mod_approval": "Pending mod approval, not visible to users"
|
||||
"pending_mod_approval": "Pending mod approval, not visible to users",
|
||||
"copy_user_id": "คัดลอก ID ผู้ใช้",
|
||||
"copy_direct_link": "คัดลอกลิงก์โดยตรง"
|
||||
}
|
||||
|
||||
@@ -99,7 +99,6 @@
|
||||
"interface": "arayüz",
|
||||
"invalid_url": "Geçersiz URL",
|
||||
"image_search": "resim arama",
|
||||
"copy_link": "bağlantıyı kopyala",
|
||||
"hide_post": "gönderiyi gizle",
|
||||
"hide_thread": "konuyu gizle",
|
||||
"unhide_post": "gönderiyi göster",
|
||||
@@ -276,5 +275,7 @@
|
||||
"type": "Type",
|
||||
"yes": "Yes",
|
||||
"no": "No",
|
||||
"pending_mod_approval": "Pending mod approval, not visible to users"
|
||||
"pending_mod_approval": "Pending mod approval, not visible to users",
|
||||
"copy_user_id": "kullanıcı ID'sini kopyala",
|
||||
"copy_direct_link": "doğrudan bağlantıyı kopyala"
|
||||
}
|
||||
|
||||
@@ -99,7 +99,6 @@
|
||||
"interface": "інтерфейс",
|
||||
"invalid_url": "Недійсний URL",
|
||||
"image_search": "пошук зображень",
|
||||
"copy_link": "копіювати посилання",
|
||||
"hide_post": "сховати допис",
|
||||
"hide_thread": "сховати нитку",
|
||||
"unhide_post": "показати допис",
|
||||
@@ -276,5 +275,7 @@
|
||||
"type": "Type",
|
||||
"yes": "Yes",
|
||||
"no": "No",
|
||||
"pending_mod_approval": "Pending mod approval, not visible to users"
|
||||
"pending_mod_approval": "Pending mod approval, not visible to users",
|
||||
"copy_user_id": "копіювати ID користувача",
|
||||
"copy_direct_link": "копіювати пряме посилання"
|
||||
}
|
||||
|
||||
@@ -99,7 +99,6 @@
|
||||
"interface": "انٹرفیس",
|
||||
"invalid_url": "غیر درست یو آر ایل",
|
||||
"image_search": "تصویر کی تلاش",
|
||||
"copy_link": "لنک کاپی کریں",
|
||||
"hide_post": "پوسٹ چھپائیں",
|
||||
"hide_thread": "دھاگہ چھپائیں",
|
||||
"unhide_post": "پوسٹ دکھائیں",
|
||||
@@ -276,5 +275,7 @@
|
||||
"type": "Type",
|
||||
"yes": "Yes",
|
||||
"no": "No",
|
||||
"pending_mod_approval": "Pending mod approval, not visible to users"
|
||||
"pending_mod_approval": "Pending mod approval, not visible to users",
|
||||
"copy_user_id": "صارف کی شناخت کاپی کریں",
|
||||
"copy_direct_link": "براہ راست لنک کاپی کریں"
|
||||
}
|
||||
|
||||
@@ -99,7 +99,6 @@
|
||||
"interface": "giao diện",
|
||||
"invalid_url": "URL không hợp lệ",
|
||||
"image_search": "tìm kiếm hình ảnh",
|
||||
"copy_link": "sao chép liên kết",
|
||||
"hide_post": "Ẩn bài viết",
|
||||
"hide_thread": "Ẩn chủ đề",
|
||||
"unhide_post": "Hiện bài viết",
|
||||
@@ -276,5 +275,7 @@
|
||||
"type": "Type",
|
||||
"yes": "Yes",
|
||||
"no": "No",
|
||||
"pending_mod_approval": "Pending mod approval, not visible to users"
|
||||
"pending_mod_approval": "Pending mod approval, not visible to users",
|
||||
"copy_user_id": "sao chép ID người dùng",
|
||||
"copy_direct_link": "sao chép liên kết trực tiếp"
|
||||
}
|
||||
|
||||
@@ -99,7 +99,6 @@
|
||||
"interface": "界面",
|
||||
"invalid_url": "无效的网址",
|
||||
"image_search": "图像搜索",
|
||||
"copy_link": "复制链接",
|
||||
"hide_post": "隐藏帖子",
|
||||
"hide_thread": "隐藏主题",
|
||||
"unhide_post": "显示帖子",
|
||||
@@ -276,5 +275,7 @@
|
||||
"type": "类型",
|
||||
"yes": "是",
|
||||
"no": "否",
|
||||
"pending_mod_approval": "等待版主批准,用户不可见"
|
||||
"pending_mod_approval": "等待版主批准,用户不可见",
|
||||
"copy_user_id": "复制用户ID",
|
||||
"copy_direct_link": "复制直接链接"
|
||||
}
|
||||
|
||||
@@ -197,7 +197,7 @@ const PostInfo = ({
|
||||
const alertThresholdSeconds = getAlertThresholdSeconds();
|
||||
const isOverThreshold = isAwaitingApproval && timeWaiting > alertThresholdSeconds;
|
||||
|
||||
const userID = address && Plebbit.getShortAddress({ address }); // should not be shortened to less than 12 characters, because users can create unlimited addresses/IDs before authenticating or passing challenges, so if the ID is short enough they can spoof it to troll users with the same ID
|
||||
const userID = address && Plebbit.getShortAddress({ address }); // shortened to 8 chars for display; users can verify the full user ID via "Copy user ID" in the post menu to guard against spoofing
|
||||
const userIDBackgroundColor = hashStringToColor(userID);
|
||||
const userIDTextColor = getTextColorForBackground(userIDBackgroundColor);
|
||||
|
||||
|
||||
@@ -39,7 +39,7 @@ const CopyLinkButton = ({ cid, subplebbitAddress, linkType, onClose }: CopyLinkB
|
||||
}
|
||||
}}
|
||||
>
|
||||
<div className={styles.postMenuItem}>{t('copy_link')}</div>
|
||||
<div className={styles.postMenuItem}>{t('copy_direct_link')}</div>
|
||||
</div>
|
||||
);
|
||||
};
|
||||
@@ -63,6 +63,25 @@ const CopyContentIdButton = ({ cid, onClose }: { cid: string; onClose: () => voi
|
||||
);
|
||||
};
|
||||
|
||||
const CopyUserIdButton = ({ address, onClose }: { address: string; onClose: () => void }) => {
|
||||
const { t } = useTranslation();
|
||||
return (
|
||||
<div
|
||||
onClick={async () => {
|
||||
try {
|
||||
await copyToClipboard(address);
|
||||
} catch (error) {
|
||||
console.error('Failed to copy user id', error);
|
||||
} finally {
|
||||
onClose();
|
||||
}
|
||||
}}
|
||||
>
|
||||
<div className={styles.postMenuItem}>{t('copy_user_id')}</div>
|
||||
</div>
|
||||
);
|
||||
};
|
||||
|
||||
const ImageSearchButton = ({ url, onClose }: { url: string; onClose: () => void }) => {
|
||||
const { t } = useTranslation();
|
||||
const [isImageSearchMenuOpen, setIsImageSearchMenuOpen] = useState(false);
|
||||
@@ -178,6 +197,7 @@ const PostMenuDesktop = ({ postMenu }: PostMenuDesktopProps) => {
|
||||
<div className={styles.postMenu} ref={refs.setFloating} style={floatingStyles} aria-labelledby={headingId} {...getFloatingProps()}>
|
||||
{cid && subplebbitAddress && <CopyLinkButton cid={cid} subplebbitAddress={subplebbitAddress} linkType='thread' onClose={handleClose} />}
|
||||
{cid && <CopyContentIdButton cid={cid} onClose={handleClose} />}
|
||||
{authorAddress && <CopyUserIdButton address={authorAddress} onClose={handleClose} />}
|
||||
{!(isInPostPageView && postCid === cid) && (
|
||||
<div
|
||||
className={styles.postMenuItem}
|
||||
|
||||
@@ -47,7 +47,7 @@ const CopyLinkButton = ({ cid, subplebbitAddress, linkType, onClose }: CopyLinkB
|
||||
}
|
||||
}}
|
||||
>
|
||||
<div className={styles.postMenuItem}>{t('copy_link')}</div>
|
||||
<div className={styles.postMenuItem}>{t('copy_direct_link')}</div>
|
||||
</div>
|
||||
);
|
||||
};
|
||||
@@ -71,6 +71,25 @@ const CopyContentIdButton = ({ cid, onClose }: { cid: string; onClose: () => voi
|
||||
);
|
||||
};
|
||||
|
||||
const CopyUserIdButton = ({ address, onClose }: { address: string; onClose: () => void }) => {
|
||||
const { t } = useTranslation();
|
||||
return (
|
||||
<div
|
||||
onClick={async () => {
|
||||
try {
|
||||
await copyToClipboard(address);
|
||||
} catch (error) {
|
||||
console.error('Failed to copy user id', error);
|
||||
} finally {
|
||||
onClose();
|
||||
}
|
||||
}}
|
||||
>
|
||||
<div className={styles.postMenuItem}>{t('copy_user_id')}</div>
|
||||
</div>
|
||||
);
|
||||
};
|
||||
|
||||
const ImageSearchButtons = ({ url, onClose }: { url: string; onClose: () => void }) => {
|
||||
const { t } = useTranslation();
|
||||
return (
|
||||
@@ -180,6 +199,7 @@ const PostMenuMobile = ({ postMenu, editMenuPost }: PostMenuMobileProps) => {
|
||||
<div className={styles.postMenu} ref={refs.setFloating} style={floatingStyles} aria-labelledby={headingId} {...getFloatingProps()}>
|
||||
{cid && subplebbitAddress && <CopyLinkButton cid={cid} subplebbitAddress={subplebbitAddress} linkType='thread' onClose={handleClose} />}
|
||||
{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} />}
|
||||
|
||||
@@ -173,7 +173,7 @@ const PostInfoAndMedia = ({ post, postReplyCount = 0, roles, threadNumber }: Pos
|
||||
const pseudonymityMode = useSubplebbitField(subplebbitAddress, (sub) => sub?.features?.pseudonymityMode);
|
||||
const showUserID = pseudonymityMode !== 'per-reply';
|
||||
|
||||
const userID = address && Plebbit.getShortAddress({ address }); // should not be shortened to less than 12 characters, because users can create unlimited addresses/IDs before authenticating or passing challenges, so if the ID is short enough they can spoof it to troll users with the same ID
|
||||
const userID = address && Plebbit.getShortAddress({ address }); // shortened to 8 chars for display; users can verify the full user ID via "Copy user ID" in the post menu to guard against spoofing
|
||||
const userIDBackgroundColor = hashStringToColor(userID);
|
||||
const userIDTextColor = getTextColorForBackground(userIDBackgroundColor);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user