campaigns: make the donation-accept picker friendlier

Replace the three terse jargon pills (Accept All / Public Only /
Private Only, captioned with 'on-chain' and 'silent payment') with a
vertical stack of selectable option cards. Each card has a friendly
icon, a plain-language title, and a one-sentence reassurance written
for an anxious first-time creator, with the SP-dependent options
clearly disabled when the login can't support them.

Also softens the wallet hero card: drop the linked-icon trio for a
simple campaign-to-wallet arrow, and rewrite the copy without the
key/posts technical aside or em dashes. Updates all 16 locales.
This commit is contained in:
Chad Curtis
2026-06-02 01:52:01 -05:00
parent 5132141aa2
commit 977fd000ea
17 changed files with 247 additions and 213 deletions
+9 -10
View File
@@ -496,21 +496,20 @@
"wallet": "محفظة بيتكوين",
"myWalletLabel": "محفظة {{name}}",
"myWalletDefault": "محفظتي",
"walletHeroNote": "تتدفّق التبرّعات مباشرةً إلى محفظة Agora الخاصة بك — يفتحها المفتاح ذاته الذي يوقّع منشوراتك. لا وسيط، ولا إعداد للدفعات، ولا انتظار.",
"walletHeroNote": "تتدفّق التبرّعات مباشرةً إلى محفظة Agora الخاصة بك. لا وسيط، ولا إعداد للدفعات، ولا انتظار.",
"walletHeroReassurance": "أنت تملك المفتاح، إذًا أنت تملك الأموال. اسحبها في أي وقت من تبويب المحفظة.",
"walletChoose": "اختر محفظة",
"walletCustom": "مخصصة",
"walletUseCustom": "استخدم محفظة مخصصة بدلاً من ذلك",
"walletUseMine": "استخدم محفظة Agora الخاصة بي",
"acceptAll": "قبول جميع أنواع الدفع",
"acceptPublic": "قبول الدفعات العامة فقط",
"acceptPrivate": "قبول الدفعات الخاصة فقط",
"acceptAllShort": "قبول الكل",
"acceptPublicShort": "عامة فقط",
"acceptPrivateShort": "خاصة فقط",
"acceptAllHint": "قبول الدفعات العامة على السلسلة والدفعات الصامتة الخاصة.",
"acceptPublicHint": "قبول التبرعات على السلسلة إلى عنوان عام فقط.",
"acceptPrivateHint": "قبول الدفعات الصامتة فقط — تبقى عناوين المتبرعين خاصة.",
"acceptHeading": "ما نوع التبرعات التي ستقبلها؟",
"acceptUnavailable": "غير متاح مع تسجيل الدخول هذا.",
"acceptAllTitle": "أي تبرع",
"acceptPublicTitle": "التبرعات العامة فقط",
"acceptPrivateTitle": "التبرعات الخاصة فقط",
"acceptAllHint": "استقبل التبرعات العامة والخاصة معًا.",
"acceptPublicHint": "يتبرع المانحون إلى عنوان Bitcoin عادي. هذه التبرعات مرئية للجميع.",
"acceptPrivateHint": "يتبرع المانحون بشكل خاص، لذا تبقى هويتهم مخفية عن الجميع.",
"customWalletIntro": "أدخل عنوان بيتكوين، رمز دفع صامت، أو كليهما. يلزم واحد على الأقل.",
"bitcoinAddress": "عنوان بيتكوين",
"bitcoinAddressPlaceholder": "bc1q… أو bc1p…",
+9 -10
View File
@@ -934,21 +934,20 @@
"wallet": "Bitcoin wallet",
"myWalletLabel": "{{name}}'s wallet",
"myWalletDefault": "My wallet",
"walletHeroNote": "Donations flow straight into your own Agora wallet — unlocked by the same key that signs your posts. No middleman, no payout setup, no waiting.",
"walletHeroNote": "Donations flow straight into your own Agora wallet. No middleman, no payout setup, no waiting.",
"walletHeroReassurance": "You hold the key, so you hold the funds. Withdraw any time from the wallet tab.",
"walletChoose": "Choose a wallet",
"walletCustom": "Custom wallet",
"walletUseCustom": "Use a custom wallet instead",
"walletUseMine": "Use my Agora wallet",
"acceptAll": "Accept all payment types",
"acceptPublic": "Accept public payments only",
"acceptPrivate": "Accept private payments only",
"acceptAllShort": "Accept All",
"acceptPublicShort": "Public Only",
"acceptPrivateShort": "Private Only",
"acceptAllHint": "Accept both public on-chain and private silent payments.",
"acceptPublicHint": "Only accept on-chain donations to a public address.",
"acceptPrivateHint": "Only accept silent payments — donor addresses stay private.",
"acceptHeading": "What donations will you accept?",
"acceptUnavailable": "Not available with this login.",
"acceptAllTitle": "Any donation",
"acceptPublicTitle": "Public donations only",
"acceptPrivateTitle": "Private donations only",
"acceptAllHint": "Take both public and private donations.",
"acceptPublicHint": "Donors give to a regular Bitcoin address. These donations are visible to anyone.",
"acceptPrivateHint": "Donors give privately, so their identity stays hidden from the public.",
"customWalletIntro": "Enter a Bitcoin address, a silent-payment code, or both. At least one is required.",
"bitcoinAddress": "Bitcoin address",
"bitcoinAddressPlaceholder": "bc1q… or bc1p…",
+9 -10
View File
@@ -508,21 +508,20 @@
"wallet": "Cartera Bitcoin",
"myWalletLabel": "Cartera de {{name}}",
"myWalletDefault": "Mi cartera",
"walletHeroNote": "Las donaciones llegan directamente a tu propia cartera de Agora — desbloqueada por la misma clave que firma tus publicaciones. Sin intermediarios, sin configurar pagos, sin esperas.",
"walletHeroNote": "Las donaciones llegan directamente a tu propia cartera de Agora. Sin intermediarios, sin configurar pagos, sin esperas.",
"walletHeroReassurance": "Tú tienes la clave, así que tú tienes los fondos. Retíralos en cualquier momento desde la pestaña de la cartera.",
"walletChoose": "Elige una cartera",
"walletCustom": "Personalizada",
"walletUseCustom": "Usar una cartera personalizada",
"walletUseMine": "Usar mi cartera de Agora",
"acceptAll": "Aceptar todos los pagos",
"acceptPublic": "Aceptar solo pagos públicos",
"acceptPrivate": "Aceptar solo pagos privados",
"acceptAllShort": "Todos",
"acceptPublicShort": "Solo públicos",
"acceptPrivateShort": "Solo privados",
"acceptAllHint": "Acepta pagos públicos on-chain y pagos silenciosos privados.",
"acceptPublicHint": "Solo acepta donaciones on-chain a una dirección pública.",
"acceptPrivateHint": "Solo acepta pagos silenciosos — las direcciones de los donantes permanecen privadas.",
"acceptHeading": "¿Qué donaciones aceptarás?",
"acceptUnavailable": "No disponible con este inicio de sesión.",
"acceptAllTitle": "Cualquier donación",
"acceptPublicTitle": "Solo donaciones públicas",
"acceptPrivateTitle": "Solo donaciones privadas",
"acceptAllHint": "Recibe donaciones tanto públicas como privadas.",
"acceptPublicHint": "Los donantes envían a una dirección de Bitcoin normal. Estas donaciones son visibles para cualquier persona.",
"acceptPrivateHint": "Los donantes dan de forma privada, así su identidad permanece oculta del público.",
"customWalletIntro": "Ingresa una dirección de Bitcoin, un código de pago silencioso o ambos. Se requiere al menos uno.",
"bitcoinAddress": "Dirección de Bitcoin",
"bitcoinAddressPlaceholder": "bc1q… o bc1p…",
+9 -10
View File
@@ -508,21 +508,20 @@
"wallet": "کیف پول بیت‌کوین",
"myWalletLabel": "کیف پول {{name}}",
"myWalletDefault": "کیف پول من",
"walletHeroNote": "کمک‌های مالی مستقیماً به کیف پول Agora خودت سرازیر می‌شوند — با همان کلیدی که پست‌هایت را امضا می‌کند باز می‌شوند. بدون واسطه، بدون راه‌اندازی پرداخت، بدون انتظار.",
"walletHeroNote": "کمک‌های مالی مستقیماً به کیف پول Agora خودت سرازیر می‌شوند. بدون واسطه، بدون راه‌اندازی پرداخت، بدون انتظار.",
"walletHeroReassurance": "کلید در دست توست، پس پول هم در دست توست. هر زمان که خواستی از بخش کیف پول برداشت کن.",
"walletChoose": "یک کیف پول انتخاب کن",
"walletCustom": "سفارشی",
"walletUseCustom": "به جای آن از کیف پول سفارشی استفاده کن",
"walletUseMine": "از کیف پول Agora من استفاده کن",
"acceptAll": "پذیرش همهٔ نوع‌های پرداخت",
"acceptPublic": "پذیرش فقط پرداخت‌های عمومی",
"acceptPrivate": "پذیرش فقط پرداخت‌های خصوصی",
"acceptAllShort": "همه",
"acceptPublicShort": "فقط عمومی",
"acceptPrivateShort": "فقط خصوصی",
"acceptAllHint": "هم پرداخت‌های عمومی روی زنجیره و هم پرداخت‌های بی‌صدای خصوصی پذیرفته می‌شوند.",
"acceptPublicHint": "فقط اهداهای روی زنجیره به یک نشانی عمومی پذیرفته می‌شوند.",
"acceptPrivateHint": "فقط پرداخت‌های بی‌صدا — نشانی اهداکنندگان خصوصی می‌ماند.",
"acceptHeading": "چه نوع کمک‌های مالی را می‌پذیری؟",
"acceptUnavailable": "با این ورود در دسترس نیست.",
"acceptAllTitle": "هر نوع کمک مالی",
"acceptPublicTitle": "فقط کمک‌های مالی عمومی",
"acceptPrivateTitle": "فقط کمک‌های مالی خصوصی",
"acceptAllHint": "هم کمک‌های مالی عمومی و هم خصوصی را بپذیر.",
"acceptPublicHint": "اهداکنندگان به یک نشانی معمولی Bitcoin پرداخت می‌کنند. این کمک‌های مالی برای همه قابل مشاهده‌اند.",
"acceptPrivateHint": "اهداکنندگان به‌صورت خصوصی پرداخت می‌کنند، بنابراین هویت‌شان از دید عموم پنهان می‌ماند.",
"customWalletIntro": "یک نشانی بیت‌کوین، یک کد پرداخت بی‌صدا یا هر دو را وارد کن. حداقل یکی الزامی است.",
"bitcoinAddress": "نشانی بیت‌کوین",
"bitcoinAddressPlaceholder": "bc1q… یا bc1p…",
+9 -10
View File
@@ -939,21 +939,20 @@
"wallet": "Portefeuille Bitcoin",
"myWalletLabel": "Portefeuille de {{name}}",
"myWalletDefault": "Mon portefeuille",
"walletHeroNote": "Les dons arrivent directement dans votre propre portefeuille Agora — débloqué par la même clé qui signe vos publications. Pas d'intermédiaire, pas de configuration de versement, pas d'attente.",
"walletHeroNote": "Les dons arrivent directement dans votre propre portefeuille Agora. Pas d'intermédiaire, pas de configuration de versement, pas d'attente.",
"walletHeroReassurance": "Vous détenez la clé, donc vous détenez les fonds. Retirez à tout moment depuis l'onglet portefeuille.",
"walletChoose": "Choisir un portefeuille",
"walletCustom": "Personnalisé",
"walletUseCustom": "Utiliser un portefeuille personnalisé",
"walletUseMine": "Utiliser mon portefeuille Agora",
"acceptAll": "Accepter tous les types de paiement",
"acceptPublic": "Accepter uniquement les paiements publics",
"acceptPrivate": "Accepter uniquement les paiements privés",
"acceptAllShort": "Tous",
"acceptPublicShort": "Publics uniquement",
"acceptPrivateShort": "Privés uniquement",
"acceptAllHint": "Accepter les paiements publics on-chain et les paiements silencieux privés.",
"acceptPublicHint": "N'accepter que les dons on-chain vers une adresse publique.",
"acceptPrivateHint": "N'accepter que les paiements silencieux — les adresses des donateurs restent privées.",
"acceptHeading": "Quels dons souhaitez-vous accepter ?",
"acceptUnavailable": "Non disponible avec cette connexion.",
"acceptAllTitle": "Tout don",
"acceptPublicTitle": "Dons publics uniquement",
"acceptPrivateTitle": "Dons privés uniquement",
"acceptAllHint": "Recevez à la fois les dons publics et les dons privés.",
"acceptPublicHint": "Les donateurs versent sur une adresse Bitcoin classique. Ces dons sont visibles par tout le monde.",
"acceptPrivateHint": "Les donateurs versent en privé, afin que leur identité reste cachée du public.",
"customWalletIntro": "Saisissez une adresse Bitcoin, un code de paiement silencieux, ou les deux. Au moins un est obligatoire.",
"bitcoinAddress": "Adresse Bitcoin",
"bitcoinAddressPlaceholder": "bc1q… ou bc1p…",
+10 -9
View File
@@ -940,19 +940,20 @@
"wallet": "Bitcoin वॉलेट",
"myWalletLabel": "{{name}} का वॉलेट",
"myWalletDefault": "मेरा वॉलेट",
"walletHeroNote": "दान सीधे आपके अपने Agora वॉलेट में आता है। कोई बिचौलिया नहीं, कोई पेआउट सेटअप नहीं, कोई इंतज़ार नहीं।",
"walletHeroReassurance": "चाबी आपके पास रहती है, इसलिए पैसा भी आपके पास रहता है। वॉलेट टैब से किसी भी समय निकासी करें।",
"walletChoose": "वॉलेट चुनें",
"walletCustom": "कस्टम",
"walletUseCustom": "इसके बजाय कस्टम वॉलेट का उपयोग करें",
"walletUseMine": "मेरे Agora वॉलेट का उपयोग करें",
"acceptAll": "सभी भुगतान प्रकार स्वीकार करें",
"acceptPublic": "केवल सार्वजनिक भुगतान स्वीकार करें",
"acceptPrivate": "केवल निजी भुगतान स्वीकार करें",
"acceptAllShort": "सभी स्वीकारें",
"acceptPublicShort": "केवल सार्वजनिक",
"acceptPrivateShort": "केवल निजी",
"acceptAllHint": "सार्वजनिक ऑन-चेन और निजी साइलेंट पेमेंट दोनों स्वीकार करें।",
"acceptPublicHint": "केवल सार्वजनिक एड्रेस पर ऑन-चेन दान स्वीकार करें।",
"acceptPrivateHint": "केवल साइलेंट पेमेंट स्वीकार करें — दानदाता के एड्रेस निजी रहते हैं।",
"acceptHeading": "आप किस तरह के दान स्वीकार करेंगे?",
"acceptUnavailable": "इस लॉगिन के साथ उपलब्ध नहीं है।",
"acceptAllTitle": "कोई भी दान",
"acceptPublicTitle": "केवल सार्वजनिक दान",
"acceptPrivateTitle": "केवल निजी दान",
"acceptAllHint": "सार्वजनिक और निजी, दोनों तरह के दान लें।",
"acceptPublicHint": "दानदाता एक सामान्य Bitcoin एड्रेस पर देते हैं। ये दान किसी को भी दिखाई देते हैं।",
"acceptPrivateHint": "दानदाता निजी तौर पर देते हैं, ताकि उनकी पहचान सबसे छिपी रहे।",
"customWalletIntro": "एक Bitcoin एड्रेस, एक साइलेंट-पेमेंट कोड, या दोनों दर्ज करें। कम से कम एक ज़रूरी है।",
"bitcoinAddress": "Bitcoin एड्रेस",
"bitcoinAddressPlaceholder": "bc1q… या bc1p…",
+10 -9
View File
@@ -940,19 +940,20 @@
"wallet": "Dompet Bitcoin",
"myWalletLabel": "Dompet {{name}}",
"myWalletDefault": "Dompet saya",
"walletHeroNote": "Donasi langsung masuk ke dompet Agora Anda sendiri. Tanpa perantara, tanpa pengaturan pembayaran, tanpa menunggu.",
"walletHeroReassurance": "Anda yang memegang kuncinya, jadi Anda yang memegang dananya. Tarik kapan saja dari tab dompet.",
"walletChoose": "Pilih dompet",
"walletCustom": "Kustom",
"walletUseCustom": "Gunakan dompet kustom",
"walletUseMine": "Gunakan dompet Agora saya",
"acceptAll": "Terima semua jenis pembayaran",
"acceptPublic": "Hanya terima pembayaran publik",
"acceptPrivate": "Hanya terima pembayaran privat",
"acceptAllShort": "Semua",
"acceptPublicShort": "Hanya Publik",
"acceptPrivateShort": "Hanya Privat",
"acceptAllHint": "Terima pembayaran publik on-chain maupun silent-payment privat.",
"acceptPublicHint": "Hanya terima donasi on-chain ke alamat publik.",
"acceptPrivateHint": "Hanya terima silent-payment — alamat donatur tetap privat.",
"acceptHeading": "Donasi apa yang akan Anda terima?",
"acceptUnavailable": "Tidak tersedia dengan login ini.",
"acceptAllTitle": "Donasi apa pun",
"acceptPublicTitle": "Hanya donasi publik",
"acceptPrivateTitle": "Hanya donasi privat",
"acceptAllHint": "Terima donasi publik maupun privat.",
"acceptPublicHint": "Donatur memberi ke alamat Bitcoin biasa. Donasi ini terlihat oleh siapa saja.",
"acceptPrivateHint": "Donatur memberi secara privat, sehingga identitas mereka tetap tersembunyi dari publik.",
"customWalletIntro": "Masukkan alamat Bitcoin, kode silent-payment, atau keduanya. Setidaknya satu wajib diisi.",
"bitcoinAddress": "Alamat Bitcoin",
"bitcoinAddressPlaceholder": "bc1q… atau bc1p…",
+9 -10
View File
@@ -508,21 +508,20 @@
"wallet": "កាបូបប៊ីតខញ",
"myWalletLabel": "កាបូបរបស់ {{name}}",
"myWalletDefault": "កាបូបរបស់ខ្ញុំ",
"walletHeroNote": "ការបរិច្ចាគហូរចូលដោយផ្ទាល់ទៅក្នុងកាបូប Agora ផ្ទាល់ខ្លួនរបស់អ្នក — ដោះសោដោយកូនសោដូចគ្នាដែលចុះហត្ថលេខាលើការបង្ហោះរបស់អ្នក។ គ្មានអ្នកកណ្ដាល គ្មានការរៀបចំការទូទាត់ គ្មានការរង់ចាំ។",
"walletHeroNote": "ការបរិច្ចាគហូរចូលដោយផ្ទាល់ទៅក្នុងកាបូប Agora ផ្ទាល់ខ្លួនរបស់អ្នក។ គ្មានអ្នកកណ្ដាល គ្មានការរៀបចំការទូទាត់ គ្មានការរង់ចាំ។",
"walletHeroReassurance": "អ្នកកាន់កូនសោ ដូច្នេះអ្នកកាន់មូលនិធិ។ ដកប្រាក់បានគ្រប់ពេលពីផ្ទាំងកាបូប។",
"walletChoose": "ជ្រើសរើសកាបូប",
"walletCustom": "ផ្ទាល់ខ្លួន",
"walletUseCustom": "ប្រើកាបូបផ្ទាល់ខ្លួនជំនួសវិញ",
"walletUseMine": "ប្រើកាបូប Agora របស់ខ្ញុំ",
"acceptAll": "ទទួលយកការទូទាត់គ្រប់ប្រភេទ",
"acceptPublic": "ទទួលយការទូទាត់សាធារណៈតែប៉ុណ្ណោះ",
"acceptPrivate": "ទទួលយកការទូទាត់ឯកជនតែប៉ុណ្ណោះ",
"acceptAllShort": "ទាំងអស់",
"acceptPublicShort": "សាធារណៈតែប៉ុណ្ណោះ",
"acceptPrivateShort": "ឯកជនតែប៉ុណ្ណោះ",
"acceptAllHint": "ទទួលយកទាំងការទូទាត់ on-chain សាធារណៈ និងការបង់ប្រាក់ស្ងាត់ឯកជន។",
"acceptPublicHint": "ទទួលយកតែការបរិច្ចាគ on-chain ទៅកាន់អាសយដ្ឋានសាធារណៈប៉ុណ្ណោះ។",
"acceptPrivateHint": "ទទួលយកតែការបង់ប្រាក់ស្ងាត់ប៉ុណ្ណោះ — អាសយដ្ឋានរបស់អ្នកបរិច្ចាគនៅតែឯកជន។",
"acceptHeading": "តើអ្នកនឹងទទួលការបរិច្ចាគបែបណាខ្លះ?",
"acceptUnavailable": "មិនអាចប្រើបានជាមួយការចូលគណនីនេះទេ។",
"acceptAllTitle": "ការបរិច្ចាគគ្រប់ប្រភេទ",
"acceptPublicTitle": "ការបរិច្ចាគសាធារណៈតែប៉ុណ្ណោះ",
"acceptPrivateTitle": "ការបរិច្ចាគឯកជនតែប៉ុណ្ណោះ",
"acceptAllHint": "ទទួលយកការបរិច្ចាគទាំងសាធារណៈ និងឯកជន។",
"acceptPublicHint": "អ្នកបរិច្ចាគផ្ញើទៅកាន់អាសយដ្ឋាន Bitcoin ធម្មតា។ ការបរិច្ចាគទាំងនេះអ្នករាល់គ្នាអាចមើលឃើញ។",
"acceptPrivateHint": "អ្នកបរិច្ចាគផ្ញើដោយឯកជន ដូច្នេះអត្តសញ្ញាណរបស់ពួកគេនៅតែលាក់បាំងពីសាធារណៈ។",
"customWalletIntro": "បញ្ចូលអាសយដ្ឋានប៊ីតខញ លេខកូដបង់ប្រាក់ស្ងាត់ ឬទាំងពីរ។ ត្រូវការយ៉ាងហោចណាស់មួយ។",
"bitcoinAddress": "អាសយដ្ឋានប៊ីតខញ",
"bitcoinAddressPlaceholder": "bc1q… ឬ bc1p…",
+9 -10
View File
@@ -508,21 +508,20 @@
"wallet": "د بټ‌کوین پاکټ",
"myWalletLabel": "د {{name}} پاکټ",
"myWalletDefault": "زما پاکټ",
"walletHeroNote": "بسپنې مستقیماً ستاسو په خپل اګورا (Agora) پاکټ کې راتلونکې وي — د هماغه کلي په واسطه چې ستاسو لیکنې لاسلیک کوي خلاصېږي. نه منځګړی، نه د تادیې جوړونه، نه انتظار.",
"walletHeroNote": "بسپنې مستقیماً ستاسو په خپل اګورا (Agora) پاکټ کې راځي. نه منځګړی، نه د تادیې جوړونه، نه انتظار.",
"walletHeroReassurance": "تاسو کلی لرئ، نو پیسې هم تاسو لرئ. کله هم چې وغواړئ د پاکټ له ټوپ څخه یې وباسئ.",
"walletChoose": "پاکټ وټاکئ",
"walletCustom": "ګمرکي",
"walletUseCustom": "ګمرکي پاکټ وکاروئ",
"walletUseMine": "زما د اګورا پاکټ وکاروئ",
"acceptAll": "د ټولو پیسو ډولونو منل",
"acceptPublic": "یوازې د عامه پیسو منل",
"acceptPrivate": "یوازې د خصوصي پیسو منل",
"acceptAllShort": "ټول ومنه",
"acceptPublicShort": "یوازې عامه",
"acceptPrivateShort": "یوازې خصوصي",
"acceptAllHint": "د عامه آن‌چین او خصوصي چپ پیسو دواړه ومنه.",
"acceptPublicHint": "یوازې عامه پته ته آن‌چین مرستې ومنه.",
"acceptPrivateHint": "یوازې چپ پیسې ومنه — د مرسته‌کوونکو پتې پټې پاتې کیږي.",
"acceptHeading": "کومې بسپنې به ومنئ؟",
"acceptUnavailable": "د دې لاگ‌ین سره شتون نه لري.",
"acceptAllTitle": "هره بسپنه",
"acceptPublicTitle": "یوازې عامه بسپنې",
"acceptPrivateTitle": "یوازې پټې بسپنې",
"acceptAllHint": "عامه او پټې بسپنې دواړه ومنئ.",
"acceptPublicHint": "بسپنه‌ورکوونکي یوې عادي Bitcoin پتې ته ورکوي. دا بسپنې هر چا ته ښکاري.",
"acceptPrivateHint": "بسپنه‌ورکوونکي په پټه توګه ورکوي، نو د دوی پېژندنه له عامو خلکو پټه پاتې کیږي.",
"customWalletIntro": "د بټ‌کوین پته، د چپ پیسو کوډ، یا دواړه دننه کړئ. لږ تر لږه یو ته اړتیا ده.",
"bitcoinAddress": "د بټ‌کوین پته",
"bitcoinAddressPlaceholder": "bc1q… یا bc1p…",
+9 -10
View File
@@ -940,21 +940,20 @@
"wallet": "Carteira Bitcoin",
"myWalletLabel": "Carteira de {{name}}",
"myWalletDefault": "Minha carteira",
"walletHeroNote": "As doações vão direto para a sua própria carteira Agora — desbloqueada pela mesma chave que assina suas publicações. Sem intermediários, sem configuração de pagamento, sem espera.",
"walletHeroNote": "As doações vão direto para a sua própria carteira Agora. Sem intermediários, sem configuração de pagamento, sem espera.",
"walletHeroReassurance": "Você guarda a chave, então você guarda os fundos. Saque a qualquer momento na aba da carteira.",
"walletChoose": "Escolher uma carteira",
"walletCustom": "Personalizada",
"walletUseCustom": "Usar uma carteira personalizada",
"walletUseMine": "Usar minha carteira Agora",
"acceptAll": "Aceitar todos os tipos de pagamento",
"acceptPublic": "Aceitar apenas pagamentos públicos",
"acceptPrivate": "Aceitar apenas pagamentos privados",
"acceptAllShort": "Aceitar todos",
"acceptPublicShort": "Apenas públicos",
"acceptPrivateShort": "Apenas privados",
"acceptAllHint": "Aceitar pagamentos públicos on-chain e pagamentos silenciosos privados.",
"acceptPublicHint": "Aceitar apenas doações on-chain para um endereço público.",
"acceptPrivateHint": "Aceitar apenas pagamentos silenciosos — os endereços dos doadores permanecem privados.",
"acceptHeading": "Quais doações você vai aceitar?",
"acceptUnavailable": "Não disponível com este login.",
"acceptAllTitle": "Qualquer doação",
"acceptPublicTitle": "Somente doações públicas",
"acceptPrivateTitle": "Somente doações privadas",
"acceptAllHint": "Receber doações tanto públicas quanto privadas.",
"acceptPublicHint": "Os doadores enviam para um endereço Bitcoin comum. Essas doações ficam visíveis para qualquer pessoa.",
"acceptPrivateHint": "Os doadores enviam de forma privada, então a identidade deles fica oculta do público.",
"customWalletIntro": "Digite um endereço Bitcoin, um código de pagamento silencioso, ou ambos. Pelo menos um é obrigatório.",
"bitcoinAddress": "Endereço Bitcoin",
"bitcoinAddressPlaceholder": "bc1q… ou bc1p…",
+9 -10
View File
@@ -940,21 +940,20 @@
"wallet": "Bitcoin-кошелёк",
"myWalletLabel": "Кошелёк {{name}}",
"myWalletDefault": "Мой кошелёк",
"walletHeroNote": "Пожертвования поступают напрямую в ваш собственный кошелёк Agora — он открывается тем же ключом, которым подписываются ваши посты. Без посредников, без настройки выплат, без ожидания.",
"walletHeroNote": "Пожертвования поступают напрямую в ваш собственный кошелёк Agora. Без посредников, без настройки выплат, без ожидания.",
"walletHeroReassurance": "Ключ у вас, а значит, и средства у вас. Выводите их в любой момент на вкладке кошелька.",
"walletChoose": "Выбрать кошелёк",
"walletCustom": "Пользовательский",
"walletUseCustom": "Использовать пользовательский кошелёк",
"walletUseMine": "Использовать мой кошелёк Agora",
"acceptAll": "Принимать все типы платежей",
"acceptPublic": "Принимать только публичные платежи",
"acceptPrivate": "Принимать только приватные платежи",
"acceptAllShort": "Принимать все",
"acceptPublicShort": "Только публичные",
"acceptPrivateShort": "Только приватные",
"acceptAllHint": "Принимать как публичные ончейн-платежи, так и приватные тихие платежи.",
"acceptPublicHint": "Принимать только ончейн-пожертвования на публичный адрес.",
"acceptPrivateHint": "Принимать только тихие платежи — адреса донаторов остаются приватными.",
"acceptHeading": "Какие пожертвования вы готовы принимать?",
"acceptUnavailable": "Недоступно при этом способе входа.",
"acceptAllTitle": "Любые пожертвования",
"acceptPublicTitle": "Только публичные пожертвования",
"acceptPrivateTitle": "Только приватные пожертвования",
"acceptAllHint": "Принимать как публичные, так и приватные пожертвования.",
"acceptPublicHint": "Жертвователи отправляют средства на обычный Bitcoin-адрес. Такие пожертвования видны всем.",
"acceptPrivateHint": "Жертвователи отправляют средства приватно, поэтому их личность остаётся скрытой от посторонних.",
"customWalletIntro": "Введите Bitcoin-адрес, код тихого платежа или оба. Требуется хотя бы один.",
"bitcoinAddress": "Bitcoin-адрес",
"bitcoinAddressPlaceholder": "bc1q… или bc1p…",
+9 -10
View File
@@ -508,21 +508,20 @@
"wallet": "Chikwama cheBitcoin",
"myWalletLabel": "Chikwama cha{{name}}",
"myWalletDefault": "Chikwama changu",
"walletHeroNote": "Zvipo zvinopinda zvakananga muchikwama chako cheAgora — chinozarurwa nekiyi imwe chete inosaina zvinyorwa zvako. Hapana munhu ari pakati, hapana kugadzirira kubhadharwa, hapana kumirira.",
"walletHeroNote": "Zvipo zvinopinda zvakananga muchikwama chako cheAgora. Hapana munhu ari pakati, hapana kugadzirira kubhadharwa, hapana kumirira.",
"walletHeroReassurance": "Iwe ndiwe une kiyi, saka ndiwe une mari. Bvisa mari nguva ipi zvayo kubva mutabhu yechikwama.",
"walletChoose": "Sarudza chikwama",
"walletCustom": "Chenyu",
"walletUseCustom": "Shandisa chikwama chako pachako",
"walletUseMine": "Shandisa chikwama changu cheAgora",
"acceptAll": "Gamuchira mhando dzese dzemubhadharo",
"acceptPublic": "Gamuchira chete mibhadharo yepachena",
"acceptPrivate": "Gamuchira chete mibhadharo yakavanzika",
"acceptAllShort": "Zvose",
"acceptPublicShort": "Zvepachena Chete",
"acceptPrivateShort": "Zvakavanzika Chete",
"acceptAllHint": "Gamuchira mibhadharo yepachena yepa-on-chain neyakavanzika yemubhadharo unyararo.",
"acceptPublicHint": "Gamuchira chete zvipo zvepa-on-chain kukero yepachena.",
"acceptPrivateHint": "Gamuchira chete mubhadharo unyararo — makero evapi anoramba akavanzika.",
"acceptHeading": "Ndezvipi zvipo zvauchagamuchira?",
"acceptUnavailable": "Hazviwanikwi nekupinda uku.",
"acceptAllTitle": "Chipo chero chipi zvacho",
"acceptPublicTitle": "Zvipo zvepachena chete",
"acceptPrivateTitle": "Zvipo zvakavanzika chete",
"acceptAllHint": "Gamuchira zvipo zvepachena nezvakavanzika.",
"acceptPublicHint": "Vanopa vanopa kukero yeBitcoin yenguva dzose. Zvipo izvi zvinoonekwa nemunhu wese.",
"acceptPrivateHint": "Vanopa vanopa muchivande, saka zita ravo rinoramba rakavanzika kuruzhinji.",
"customWalletIntro": "Isa kero yeBitcoin, kodhi yemubhadharo unyararo, kana zvose. Imwechete inodikanwa zvirinani.",
"bitcoinAddress": "Kero yeBitcoin",
"bitcoinAddressPlaceholder": "bc1q… kana bc1p…",
+10 -9
View File
@@ -939,19 +939,20 @@
"wallet": "Pochi ya Bitcoin",
"myWalletLabel": "Pochi ya {{name}}",
"myWalletDefault": "Pochi yangu",
"walletHeroNote": "Michango huingia moja kwa moja kwenye pochi yako mwenyewe ya Agora. Hakuna mtu wa kati, hakuna usanidi wa malipo, hakuna kusubiri.",
"walletHeroReassurance": "Wewe ndiye unayeshikilia ufunguo, kwa hivyo wewe ndiye unayeshikilia pesa. Toa wakati wowote kupitia kichupo cha pochi.",
"walletChoose": "Chagua pochi",
"walletCustom": "Maalum",
"walletUseCustom": "Tumia pochi maalum badala yake",
"walletUseMine": "Tumia pochi yangu ya Agora",
"acceptAll": "Kubali aina zote za malipo",
"acceptPublic": "Kubali malipo ya umma pekee",
"acceptPrivate": "Kubali malipo ya faragha pekee",
"acceptAllShort": "Zote",
"acceptPublicShort": "Umma Pekee",
"acceptPrivateShort": "Faragha Pekee",
"acceptAllHint": "Kubali malipo ya umma kwenye mnyororo na malipo ya kimya ya faragha.",
"acceptPublicHint": "Kubali tu michango ya kwenye mnyororo kwa anwani ya umma.",
"acceptPrivateHint": "Kubali tu malipo ya kimya — anwani za wachangiaji zinabaki za faragha.",
"acceptHeading": "Utakubali michango ya aina gani?",
"acceptUnavailable": "Haipatikani kwa kuingia huku.",
"acceptAllTitle": "Mchango wowote",
"acceptPublicTitle": "Michango ya umma pekee",
"acceptPrivateTitle": "Michango ya faragha pekee",
"acceptAllHint": "Pokea michango ya umma na ya faragha vyote.",
"acceptPublicHint": "Wachangiaji hutoa kwa anwani ya kawaida ya Bitcoin. Michango hii inaonekana kwa mtu yeyote.",
"acceptPrivateHint": "Wachangiaji hutoa kwa faragha, kwa hivyo utambulisho wao unabaki umefichwa kutoka kwa umma.",
"customWalletIntro": "Weka anwani ya Bitcoin, msimbo wa malipo ya kimya, au zote mbili. Angalau moja inahitajika.",
"bitcoinAddress": "Anwani ya Bitcoin",
"bitcoinAddressPlaceholder": "bc1q… au bc1p…",
+10 -9
View File
@@ -939,19 +939,20 @@
"wallet": "Bitcoin cüzdanı",
"myWalletLabel": "{{name}} cüzdanı",
"myWalletDefault": "Cüzdanım",
"walletHeroNote": "Bağışlar doğrudan kendi Agora cüzdanınıza akar. Aracı yok, ödeme ayarı yok, bekleme yok.",
"walletHeroReassurance": "Anahtar sizde olduğu için para da sizde. Cüzdan sekmesinden istediğiniz zaman çekebilirsiniz.",
"walletChoose": "Bir cüzdan seçin",
"walletCustom": "Özel",
"walletUseCustom": "Bunun yerine özel bir cüzdan kullan",
"walletUseMine": "Agora cüzdanımı kullan",
"acceptAll": "Tüm ödeme türlerini kabul et",
"acceptPublic": "Yalnızca açık ödemeleri kabul et",
"acceptPrivate": "Yalnızca gizli ödemeleri kabul et",
"acceptAllShort": "Tümünü Kabul Et",
"acceptPublicShort": "Yalnızca Açık",
"acceptPrivateShort": "Yalnızca Gizli",
"acceptAllHint": "Hem açık zincir üstü hem de gizli sessiz ödemeleri kabul edin.",
"acceptPublicHint": "Yalnızca açık bir adrese yapılan zincir üstü bağışları kabul edin.",
"acceptPrivateHint": "Yalnızca sessiz ödemeleri kabul edin — bağışçı adresleri gizli kalır.",
"acceptHeading": "Hangi bağışları kabul edeceksiniz?",
"acceptUnavailable": "Bu girişle kullanılamaz.",
"acceptAllTitle": "Her türlü bağış",
"acceptPublicTitle": "Yalnızca açık bağışlar",
"acceptPrivateTitle": "Yalnızca gizli bağışlar",
"acceptAllHint": "Hem açık hem de gizli bağışları kabul edin.",
"acceptPublicHint": "Bağışçılar normal bir Bitcoin adresine gönderir. Bu bağışlar herkese görünür.",
"acceptPrivateHint": "Bağışçılar gizlice gönderir, böylece kimlikleri herkesten gizli kalır.",
"customWalletIntro": "Bir Bitcoin adresi, bir sessiz ödeme kodu ya da her ikisini birden girin. En az biri zorunludur.",
"bitcoinAddress": "Bitcoin adresi",
"bitcoinAddressPlaceholder": "bc1q… veya bc1p…",
+10 -9
View File
@@ -508,19 +508,20 @@
"wallet": "比特幣錢包",
"myWalletLabel": "{{name}} 的錢包",
"myWalletDefault": "我的錢包",
"walletHeroNote": "捐款會直接進入您自己的 Agora 錢包。沒有中間人,不必設定提領,也不用等待。",
"walletHeroReassurance": "您持有金鑰,因此您持有資金。隨時都可以從錢包分頁提領。",
"walletChoose": "選擇錢包",
"walletCustom": "自定義",
"walletUseCustom": "改用自定義錢包",
"walletUseMine": "使用我的 Agora 錢包",
"acceptAll": "接受所有支付型別",
"acceptPublic": "僅接受公開支付",
"acceptPrivate": "僅接受私密支付",
"acceptAllShort": "全部接受",
"acceptPublicShort": "僅公開",
"acceptPrivateShort": "僅私密",
"acceptAllHint": "同時接受公開的鏈上支付與私密的靜默支付。",
"acceptPublicHint": "僅接受發送至公開地址的鏈上捐款。",
"acceptPrivateHint": "僅接受靜默支付——捐款者的地址將保持私密。",
"acceptHeading": "您願意接受哪些捐款?",
"acceptUnavailable": "此登入方式無法使用。",
"acceptAllTitle": "任何捐款",
"acceptPublicTitle": "僅接受公開捐款",
"acceptPrivateTitle": "僅接受私密捐款",
"acceptAllHint": "同時接受公開與私密的捐款。",
"acceptPublicHint": "捐款者捐到一個一般的比特幣地址。這些捐款任何人都看得到。",
"acceptPrivateHint": "捐款者以私密方式捐款,因此他們的身分不會對外公開。",
"customWalletIntro": "輸入比特幣地址、靜默支付代碼或兩者皆可。至少需要一個。",
"bitcoinAddress": "比特幣地址",
"bitcoinAddressPlaceholder": "bc1q… 或 bc1p…",
+9 -10
View File
@@ -508,21 +508,20 @@
"wallet": "比特币钱包",
"myWalletLabel": "{{name}} 的钱包",
"myWalletDefault": "我的钱包",
"walletHeroNote": "捐款将直接进入你自己的 Agora 钱包——由签署你帖子的同一把密钥解锁。没有中间人,无需设置收款,也无需等待。",
"walletHeroNote": "捐款将直接进入你自己的 Agora 钱包。没有中间人,无需设置收款,也无需等待。",
"walletHeroReassurance": "你掌握密钥,就掌握资金。随时可在钱包标签页提现。",
"walletChoose": "选择钱包",
"walletCustom": "自定义",
"walletUseCustom": "改用自定义钱包",
"walletUseMine": "使用我的 Agora 钱包",
"acceptAll": "接受所有支付类型",
"acceptPublic": "仅接受公开支付",
"acceptPrivate": "仅接受私密支付",
"acceptAllShort": "全部接受",
"acceptPublicShort": "仅公开",
"acceptPrivateShort": "仅私密",
"acceptAllHint": "同时接受公开链上支付和私密静默支付。",
"acceptPublicHint": "仅接受发送至公开地址的链上捐款。",
"acceptPrivateHint": "仅接受静默支付——捐赠者地址保持私密。",
"acceptHeading": "你愿意接受哪些捐款?",
"acceptUnavailable": "此登录方式无法使用。",
"acceptAllTitle": "任何捐款",
"acceptPublicTitle": "仅接受公开捐款",
"acceptPrivateTitle": "仅接受私密捐款",
"acceptAllHint": "公开和私密捐款都接受。",
"acceptPublicHint": "捐赠者将款项发送到一个普通的 Bitcoin 地址。这些捐款任何人都能看到。",
"acceptPrivateHint": "捐赠者以私密方式捐款,因此他们的身份不会对外公开。",
"customWalletIntro": "输入比特币地址、静默支付代码或两者皆可。至少需要一个。",
"bitcoinAddress": "比特币地址",
"bitcoinAddressPlaceholder": "bc1q… 或 bc1p…",
+98 -58
View File
@@ -9,10 +9,13 @@ import { nip19 } from 'nostr-tools';
import {
AlertTriangle,
ArrowLeft,
ArrowRight,
Check,
ChevronDown,
EyeOff,
Globe,
HandHeart,
HelpCircle,
Link2,
Loader2,
ShieldCheck,
Upload,
@@ -33,7 +36,6 @@ import { Card, CardContent } from '@/components/ui/card';
import { Input } from '@/components/ui/input';
import { Skeleton } from '@/components/ui/skeleton';
import { Textarea } from '@/components/ui/textarea';
import { ToggleGroup, ToggleGroupItem } from '@/components/ui/toggle-group';
import { Tooltip, TooltipContent, TooltipTrigger } from '@/components/ui/tooltip';
import { useAppContext } from '@/hooks/useAppContext';
import { useAuthor } from '@/hooks/useAuthor';
@@ -1303,21 +1305,18 @@ function WalletPicker({
<div className="space-y-4">
{walletSource === 'mine' ? (
<>
{/* Hero coupling card. Modelled on the onboarding "Save your
key" surface: a primary-tinted card whose visual
centerpiece is the linked-icon trio (the campaign the
key ↔ the wallet) so a first-time creator instantly
grasps that donations land in their own Agora wallet,
unlocked by the same key that signs their posts. The
avatar + live balance below confirm the exact destination. */}
{/* Hero card. Modelled on the onboarding "Save your key"
surface: a primary-tinted card whose visual centerpiece
is an icon pair (the campaign -> the wallet) so a
first-time creator instantly grasps that donations land
in their own Agora wallet. The avatar + live balance
below confirm the exact destination. */}
<div className="rounded-xl border-2 border-primary/30 bg-primary/10 p-5 space-y-4">
<div className="flex items-center justify-center gap-3">
<div className="flex size-14 shrink-0 items-center justify-center rounded-full bg-background shadow-sm ring-2 ring-primary/30">
<HandHeart className="size-7 text-primary" />
</div>
<div className="flex size-7 shrink-0 items-center justify-center rounded-full bg-primary text-primary-foreground shadow">
<Link2 className="size-4" />
</div>
<ArrowRight className="size-5 shrink-0 text-primary rtl:rotate-180" />
<div className="flex size-14 shrink-0 items-center justify-center rounded-full bg-background shadow-sm ring-2 ring-primary/30">
<Wallet className="size-7 text-primary" />
</div>
@@ -1433,11 +1432,14 @@ function WalletPicker({
}
/**
* Segmented "Accept" picker for the HD-wallet branch. Three pill
* buttons (Accept All / Public Only / Private Only) with a one-line
* caption beneath that explains the current selection. Public is
* always available; the All and Private buttons disable when SP isn't
* supported (extension / bunker logins).
* "What donations will you accept?" picker for the HD-wallet branch.
*
* Written for a first-time, possibly anxious creator: instead of three
* terse jargon pills (Accept All / Public Only / Private Only) it
* presents three full-width selectable cards, each with a friendly
* icon, a plain-language title, and a one-line reassurance. The two
* SP-dependent options are disabled (with a short note) when silent
* payments aren't supported on this login (extension / bunker).
*/
function AcceptModePicker({
value,
@@ -1450,49 +1452,87 @@ function AcceptModePicker({
}) {
const { t } = useTranslation();
const caption = {
all: t('campaignsCreate.acceptAllHint'),
public: t('campaignsCreate.acceptPublicHint'),
private: t('campaignsCreate.acceptPrivateHint'),
}[value];
const options: {
key: 'all' | 'public' | 'private';
icon: typeof Globe;
title: string;
description: string;
requiresSp?: boolean;
}[] = [
{
key: 'all',
icon: HandHeart,
title: t('campaignsCreate.acceptAllTitle'),
description: t('campaignsCreate.acceptAllHint'),
requiresSp: true,
},
{
key: 'public',
icon: Globe,
title: t('campaignsCreate.acceptPublicTitle'),
description: t('campaignsCreate.acceptPublicHint'),
},
{
key: 'private',
icon: EyeOff,
title: t('campaignsCreate.acceptPrivateTitle'),
description: t('campaignsCreate.acceptPrivateHint'),
requiresSp: true,
},
];
return (
<div className="space-y-2">
<ToggleGroup
type="single"
value={value}
// Radix ToggleGroup emits '' when the user toggles off the
// selected item. Required campaigns can never be in "no
// mode" state — coerce empty back to the previous value.
onValueChange={(next) => {
if (!next) return;
onChange(next as 'all' | 'public' | 'private');
}}
variant="outline"
className="grid w-full grid-cols-3 gap-1.5"
>
<ToggleGroupItem
value="all"
disabled={!silentPaymentSupported}
className="h-auto justify-center rounded-full px-3 py-2 text-xs font-medium"
>
{t('campaignsCreate.acceptAllShort')}
</ToggleGroupItem>
<ToggleGroupItem
value="public"
className="h-auto justify-center rounded-full px-3 py-2 text-xs font-medium"
>
{t('campaignsCreate.acceptPublicShort')}
</ToggleGroupItem>
<ToggleGroupItem
value="private"
disabled={!silentPaymentSupported}
className="h-auto justify-center rounded-full px-3 py-2 text-xs font-medium"
>
{t('campaignsCreate.acceptPrivateShort')}
</ToggleGroupItem>
</ToggleGroup>
<p className="text-xs text-muted-foreground">{caption}</p>
<div className="space-y-3">
<p className="text-sm font-medium">{t('campaignsCreate.acceptHeading')}</p>
<div className="space-y-2" role="radiogroup" aria-label={t('campaignsCreate.acceptHeading')}>
{options.map((option) => {
const Icon = option.icon;
const selected = value === option.key;
const disabled = option.requiresSp && !silentPaymentSupported;
return (
<button
key={option.key}
type="button"
role="radio"
aria-checked={selected}
disabled={disabled}
onClick={() => onChange(option.key)}
className={cn(
'flex w-full items-start gap-3 rounded-xl border-2 p-4 text-left transition-colors',
'focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2',
selected
? 'border-primary bg-primary/10'
: 'border-border bg-background hover:border-primary/40 hover:bg-muted/40',
disabled && 'cursor-not-allowed opacity-50 hover:border-border hover:bg-background',
)}
>
<span
className={cn(
'flex size-10 shrink-0 items-center justify-center rounded-full',
selected ? 'bg-primary text-primary-foreground' : 'bg-muted text-muted-foreground',
)}
>
<Icon className="size-5" />
</span>
<span className="min-w-0 flex-1 space-y-0.5">
<span className="block text-sm font-semibold">{option.title}</span>
<span className="block text-xs leading-relaxed text-muted-foreground">
{disabled ? t('campaignsCreate.acceptUnavailable') : option.description}
</span>
</span>
<span
className={cn(
'mt-0.5 flex size-5 shrink-0 items-center justify-center rounded-full border-2 transition-colors',
selected ? 'border-primary bg-primary text-primary-foreground' : 'border-muted-foreground/30',
)}
aria-hidden="true"
>
{selected && <Check className="size-3" />}
</span>
</button>
);
})}
</div>
</div>
);
}