aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/locales/ar.json8
-rw-r--r--src/locales/bn.json8
-rw-r--r--src/locales/de.json8
-rw-r--r--src/locales/el.json8
-rw-r--r--src/locales/en.json20
-rw-r--r--src/locales/es.json8
-rw-r--r--src/locales/fa.json8
-rw-r--r--src/locales/fr.json8
-rw-r--r--src/locales/hi.json8
-rw-r--r--src/locales/it.json8
-rw-r--r--src/locales/ja.json8
-rw-r--r--src/locales/ko.json8
-rw-r--r--src/locales/nl.json8
-rw-r--r--src/locales/pl.json8
-rw-r--r--src/locales/pt.json8
-rw-r--r--src/locales/ru.json8
-rw-r--r--src/locales/th.json8
-rw-r--r--src/locales/tr.json8
-rw-r--r--src/locales/zh.json8
-rw-r--r--src/routes/(app)/settings/delete/+page.server.ts26
-rw-r--r--src/routes/(app)/settings/delete/+page@(app).svelte82
-rw-r--r--src/routes/(app)/settings/security/+page.svelte11
22 files changed, 258 insertions, 25 deletions
diff --git a/src/locales/ar.json b/src/locales/ar.json
index 234e076f..f4fc0ea6 100644
--- a/src/locales/ar.json
+++ b/src/locales/ar.json
@@ -386,7 +386,13 @@
"continueSettingUp": "إنشاء حساب",
"publishOffer": "النشر إلى نوستر",
"offerPublished": "نُشرت!",
- "offerPublishFailed": "عدم نشر العرض"
+ "offerPublishFailed": "عدم نشر العرض",
+ "deleteAccount": "الحساب",
+ "deleteAccountDescription": "دائماً أحذف حسابك وجميع بياناته.",
+ "deleteAccountWarning": "هذا يحذف دائما حسابك، تاريخ الدفع، الفواتير، الحسابات الفرعية، الاتصالات والتذاكر ذات الصلة. إسمك و عنوان البرق سيتوقفان عن العمل هذا لا يمكن أن يزول.",
+ "deleteAccountBalance": "سحب توازنك أولا. ولا يمكن حذف حسابات تحمل أكثر من 000 10 جلس.",
+ "deleteAccountConfirm": "قومي بتصنيف اسم مستخدمك لتأكيد",
+ "deleteAccountButton": "يحذف حسابي إلى الأبد"
},
"support": {
"header": "الدعم",
diff --git a/src/locales/bn.json b/src/locales/bn.json
index f6d4d87e..5a3baad5 100644
--- a/src/locales/bn.json
+++ b/src/locales/bn.json
@@ -386,7 +386,13 @@
"continueSettingUp": "অ্যাকাউন্ট সেটআপ",
"publishOffer": "চিহ্নিত স্থানে প্রকাশ করুন",
"offerPublished": "প্রকাশিত!",
- "offerPublishFailed": "প্রকাশ করতে ব্যর্থ"
+ "offerPublishFailed": "প্রকাশ করতে ব্যর্থ",
+ "deleteAccount": "অ্যাকাউন্ট মুছে ফেলুন",
+ "deleteAccountDescription": "আপনার অ্যাকাউন্ট ও এর তথ্য স্থায়ীরূপে মুছে ফেলুন।.",
+ "deleteAccountWarning": "এটি আপনার অ্যাকাউন্ট মুছে ফেলে, আপনার পেমেন্ট ইতিহাস, ভয়েসে, সাব- অভিভাবক, যোগাযোগ এবং সংযুক্ত অ্যাপগুলোর মধ্যে। আপনার ব্যবহারকারীর নাম এবং ঠিকানার ক্ষেত্রেও প্রযোজ্য । এই কাজ নাকচ করা যাবে না।.",
+ "deleteAccountBalance": "প্রথমে ভারসাম্য খুলে ফেলো। অ্যাকাউন্ট রাখা যাবে না ১০,০০০ এরও বেশি।.",
+ "deleteAccountConfirm": "নিশ্চিত করার জন্য আপনার ব্যবহারকারীর নাম লিখুন",
+ "deleteAccountButton": "আমার অ্যাকাউন্ট সর্বদা মুছে ফেলা হবে"
},
"support": {
"header": "সহায়তা",
diff --git a/src/locales/de.json b/src/locales/de.json
index 3dfa1300..9e92b242 100644
--- a/src/locales/de.json
+++ b/src/locales/de.json
@@ -336,7 +336,13 @@
"continueSettingUp": "Konto einrichten",
"publishOffer": "Veröffentlichen an nostr",
"offerPublished": "Veröffentlicht!",
- "offerPublishFailed": "Das Angebot konnte nicht veröffentlicht werden"
+ "offerPublishFailed": "Das Angebot konnte nicht veröffentlicht werden",
+ "deleteAccount": "Konto löschen",
+ "deleteAccountDescription": "Löschen Sie Ihr Konto und alle seine Daten dauerhaft.",
+ "deleteAccountWarning": "Dadurch werden Ihr Konto, Ihr Zahlungsverlauf, Rechnungen, Unterkonten, Kontakte und verbundene Apps dauerhaft gelöscht. Ihr Benutzername und Ihre Blitzadresse wird aufhören zu arbeiten. Das kann nicht rückgängig gemacht werden.",
+ "deleteAccountBalance": "Ziehen Sie zuerst Ihr Gleichgewicht. Konten mit mehr als 10.000 Sats können nicht gelöscht werden.",
+ "deleteAccountConfirm": "Geben Sie Ihren Benutzernamen ein, um zu bestätigen",
+ "deleteAccountButton": "Mein Konto für immer löschen"
},
"support": {
"header": "Support",
diff --git a/src/locales/el.json b/src/locales/el.json
index c6ab9878..ef6ba4e7 100644
--- a/src/locales/el.json
+++ b/src/locales/el.json
@@ -337,7 +337,13 @@
"continueSettingUp": "Setup λογαριασμού",
"publishOffer": "Δημοσίευση στη μύτη",
"offerPublished": "Εκδίδεται!",
- "offerPublishFailed": "Αποτυχία δημοσίευσης της προσφοράς"
+ "offerPublishFailed": "Αποτυχία δημοσίευσης της προσφοράς",
+ "deleteAccount": "Διαγραφή λογαριασμού",
+ "deleteAccountDescription": "Διαγράψτε μόνιμα το λογαριασμό σας και όλα τα δεδομένα του.",
+ "deleteAccountWarning": "Αυτό διαγράφει μόνιμα το λογαριασμό σας, το ιστορικό πληρωμών σας, τιμολόγια, υπολογαριασμούς, επαφές και συνδεδεμένες εφαρμογές. Το όνομα χρήστη και η διεύθυνση αστραπής θα σταματήσουν να λειτουργούν. Αυτό δεν μπορεί να αναιρεθεί.",
+ "deleteAccountBalance": "Αποσύρετε την ισορροπία σας πρώτα. Οι λογαριασμοί που κατέχουν περισσότερους από 10.000 λογαριασμούς δεν μπορούν να διαγραφούν.",
+ "deleteAccountConfirm": "Πληκτρολογήστε το όνομα χρήστη για επιβεβαίωση",
+ "deleteAccountButton": "Διαγραφή του λογαριασμού μου για πάντα"
},
"support": {
"header": "Υποστήριξη",
diff --git a/src/locales/en.json b/src/locales/en.json
index 39dc613c..f3e66bed 100644
--- a/src/locales/en.json
+++ b/src/locales/en.json
@@ -294,10 +294,10 @@
"placeholder": "Enter an address, invoice or username"
},
"settings": {
- "connectSquare": "Connect to Square",
- "revokeSquare": "Revoke Square Connection",
- "confirmAutoWithdrawal": "Confirm auto withdrawal settings",
- "confirmAutoWithdrawalDesc": "Your auto withdrawals have been disabled. Please double check your destination address before re-enabling them or remove the address to dismiss this message.",
+ "connectSquare": "Connect to Square",
+ "revokeSquare": "Revoke Square Connection",
+ "confirmAutoWithdrawal": "Confirm auto withdrawal settings",
+ "confirmAutoWithdrawalDesc": "Your auto withdrawals have been disabled. Please double check your destination address before re-enabling them or remove the address to dismiss this message.",
"tip": "Default tip",
"tipDesc": "Default tip percentage when auto-paying trusted users",
"nostr": "Nostr",
@@ -362,7 +362,7 @@
"yourUsername": "Your username is:",
"yourPassword": "Your password is:",
"welcome": "Welcome!",
- "continueSettingUp": "Account setup",
+ "continueSettingUp": "Account setup",
"clickBelow": "Click below to finish setting up your account",
"about": "About",
"aboutPlaceholder": "A little something about you or your business address and hours",
@@ -406,7 +406,13 @@
"disablePIN": "Disable PIN",
"publishNip5": "Publish nostr identity",
"nip5a": "Use",
- "nip5b": "as your publicly verified nostr address"
+ "nip5b": "as your publicly verified nostr address",
+ "deleteAccount": "Delete account",
+ "deleteAccountDescription": "Permanently delete your account and all of its data.",
+ "deleteAccountWarning": "This permanently deletes your account, your payment history, invoices, sub-accounts, contacts and connected apps. Your username and lightning address will stop working. This cannot be undone.",
+ "deleteAccountBalance": "Withdraw your balance first. Accounts holding more than 10,000 sats cannot be deleted.",
+ "deleteAccountConfirm": "Type your username to confirm",
+ "deleteAccountButton": "Delete my account forever"
},
"support": {
"fillForm": "Fill out this form or email us directly at",
@@ -421,7 +427,7 @@
}
},
"payments": {
- "custom": "Custom",
+ "custom": "Custom",
"trustUser": "Send and enable auto-pay",
"gift": "Gift all funds",
"giftLink": "Gift link",
diff --git a/src/locales/es.json b/src/locales/es.json
index f85cee80..6beeb57f 100644
--- a/src/locales/es.json
+++ b/src/locales/es.json
@@ -327,7 +327,13 @@
"continueSettingUp": "Configuración de la cuenta",
"publishOffer": "Publish to nostr",
"offerPublished": "¡Publicado!",
- "offerPublishFailed": "Failed to publish offer"
+ "offerPublishFailed": "Failed to publish offer",
+ "deleteAccount": "Suprimir la cuenta",
+ "deleteAccountDescription": "Eliminar permanentemente su cuenta y todos sus datos.",
+ "deleteAccountWarning": "Esto elimina permanentemente su cuenta, su historial de pagos, facturas, subcuentas, contactos y aplicaciones conectadas. Su nombre de usuario y dirección de relámpago dejarán de funcionar. Esto no puede ser deshecho.",
+ "deleteAccountBalance": "Retire su equilibrio primero. No se pueden eliminar las cuentas con más de 10.000 sats.",
+ "deleteAccountConfirm": "Escriba su nombre de usuario para confirmar",
+ "deleteAccountButton": "Suprimir mi cuenta para siempre"
},
"support": {
"header": "Soporte",
diff --git a/src/locales/fa.json b/src/locales/fa.json
index ddd4bcca..312366b0 100644
--- a/src/locales/fa.json
+++ b/src/locales/fa.json
@@ -325,7 +325,13 @@
"continueSettingUp": "تنظیم حساب",
"publishOffer": "انتشار به Nostr",
"offerPublished": "منتشر شده!",
- "offerPublishFailed": "شکست در انتشار پیشنهاد"
+ "offerPublishFailed": "شکست در انتشار پیشنهاد",
+ "deleteAccount": "حذف حساب",
+ "deleteAccountDescription": "به طور مداوم حساب خود و تمام داده های آن را حذف کنید.",
+ "deleteAccountWarning": "این به طور دائمی حساب شما، تاریخچه پرداخت، فاکتورها، حساب های فرعی، تماس ها و برنامه های متصل را حذف می کند. نام کاربری و آدرس رعد و برق شما کار را متوقف خواهد کرد. این را نمی توان رد کرد.",
+ "deleteAccountBalance": "ابتدا تعادل خود را برطرف کنید. حساب هایی که بیش از ۱۰۰۰۰ جلسه دارند، نمی توانند حذف شوند.",
+ "deleteAccountConfirm": "نام کاربری خود را برای تأیید",
+ "deleteAccountButton": "حذف حساب من برای همیشه"
},
"support": {
"header": "حمایت کردن",
diff --git a/src/locales/fr.json b/src/locales/fr.json
index 702bd3dc..994fca47 100644
--- a/src/locales/fr.json
+++ b/src/locales/fr.json
@@ -294,7 +294,13 @@
"continueSettingUp": "Configuration du compte",
"publishOffer": "Publier sur nosr",
"offerPublished": "Publié !",
- "offerPublishFailed": "Échec de la publication de l'offre"
+ "offerPublishFailed": "Échec de la publication de l'offre",
+ "deleteAccount": "Supprimer le compte",
+ "deleteAccountDescription": "Supprimer définitivement votre compte et toutes ses données.",
+ "deleteAccountWarning": "Cela supprime définitivement votre compte, votre historique de paiement, factures, sous-comptes, contacts et applications connectées. Votre nom d'utilisateur et votre adresse de foudre cesseront de fonctionner. Cela ne peut être annulé.",
+ "deleteAccountBalance": "Retirez d'abord votre équilibre. Les comptes de plus de 10 000 sats ne peuvent être supprimés.",
+ "deleteAccountConfirm": "Saisissez votre nom d'utilisateur pour confirmer",
+ "deleteAccountButton": "Supprimer mon compte pour toujours"
},
"support": {
"header": "Assistance",
diff --git a/src/locales/hi.json b/src/locales/hi.json
index 05049011..ad54d50c 100644
--- a/src/locales/hi.json
+++ b/src/locales/hi.json
@@ -386,7 +386,13 @@
"continueSettingUp": "खाता सेटअप",
"publishOffer": "Nostr को प्रकाशित करना",
"offerPublished": "प्रकाशित!",
- "offerPublishFailed": "प्रस्ताव को प्रकाशित करने में विफल"
+ "offerPublishFailed": "प्रस्ताव को प्रकाशित करने में विफल",
+ "deleteAccount": "खाता हटाएं",
+ "deleteAccountDescription": "अपने खाते और उसके सभी डेटा को स्थायी रूप से हटा दें।.",
+ "deleteAccountWarning": "यह स्थायी रूप से आपके खाते, आपके भुगतान इतिहास, चालान, उप-खाता, संपर्क और जुड़े ऐप्स को हटा देता है। आपका उपयोगकर्ता नाम और बिजली पता काम करना बंद कर देगा। यह नहीं हो सकता है।.",
+ "deleteAccountBalance": "पहले अपनी शेष राशि वापस लें। 10,000 से अधिक सत्संग रखने वाले खातों को हटाया नहीं जा सकता है।.",
+ "deleteAccountConfirm": "पुष्टि करने के लिए अपने उपयोगकर्ता नाम टाइप करें",
+ "deleteAccountButton": "मेरे खाते को हमेशा के लिए हटा दें"
},
"support": {
"header": "समर्थन",
diff --git a/src/locales/it.json b/src/locales/it.json
index 0bab970b..f6c3af6d 100644
--- a/src/locales/it.json
+++ b/src/locales/it.json
@@ -386,7 +386,13 @@
"continueSettingUp": "Configurazione account",
"publishOffer": "Pubblica a nostr",
"offerPublished": "Pubblicato!",
- "offerPublishFailed": "Non pubblicare l'offerta"
+ "offerPublishFailed": "Non pubblicare l'offerta",
+ "deleteAccount": "Cancella account",
+ "deleteAccountDescription": "Cancellare permanentemente il tuo account e tutti i suoi dati.",
+ "deleteAccountWarning": "Questo elimina definitivamente il tuo account, la cronologia dei pagamenti, fatture, sub-account, contatti e app collegate. Il tuo nome utente e il tuo indirizzo fulmine smetteranno di funzionare. Questo non può essere annullato.",
+ "deleteAccountBalance": "Ritira prima il tuo equilibrio. I conti con più di 10.000 sati non possono essere eliminati.",
+ "deleteAccountConfirm": "Digitare il nome utente per confermare",
+ "deleteAccountButton": "Cancella il mio account per sempre"
},
"support": {
"header": "Supporto",
diff --git a/src/locales/ja.json b/src/locales/ja.json
index 50bde442..4e0713c4 100644
--- a/src/locales/ja.json
+++ b/src/locales/ja.json
@@ -325,7 +325,13 @@
"continueSettingUp": "アカウント設定",
"publishOffer": "Nostr に公開",
"offerPublished": "掲載情報!",
- "offerPublishFailed": "オファーを公開できなかった"
+ "offerPublishFailed": "オファーを公開できなかった",
+ "deleteAccount": "アカウントの削除",
+ "deleteAccountDescription": "永続的にアカウントとすべてのデータを削除します.",
+ "deleteAccountWarning": "これにより、アカウント、支払い履歴、請求書、サブアカウント、連絡先、接続されたアプリが永久に削除されます。 ユーザー名と落雷アドレスは、作業を停止します。 これは元に戻すことができません.",
+ "deleteAccountBalance": "まずは残高を引き出します。 10,000以上のサットを保持するアカウントは削除できません.",
+ "deleteAccountConfirm": "ユーザー名を入力してください",
+ "deleteAccountButton": "アカウントを永遠に削除する"
},
"support": {
"header": "サポート",
diff --git a/src/locales/ko.json b/src/locales/ko.json
index f67191db..a497a23e 100644
--- a/src/locales/ko.json
+++ b/src/locales/ko.json
@@ -386,7 +386,13 @@
"continueSettingUp": "계정 설정",
"publishOffer": "Nostr에 게시",
"offerPublished": "이름 *!",
- "offerPublishFailed": "게시 제안에 실패"
+ "offerPublishFailed": "게시 제안에 실패",
+ "deleteAccount": "계정 삭제",
+ "deleteAccountDescription": "영구적으로 계정과 모든 데이터를 삭제합니다.",
+ "deleteAccountWarning": "이 영구적으로 계정, 지불 내역, 청구서, 하위 계정, 연락처 및 연결된 앱을 삭제합니다. 사용자 이름과 번개 주소가 작동 중지됩니다. 이것은 undone일 수 없습니다.",
+ "deleteAccountBalance": "첫 잔액을 인출하십시오. 10,000개 이상의 통계를 보유한 계정은 삭제할 수 없습니다.",
+ "deleteAccountConfirm": "사용자 정의",
+ "deleteAccountButton": "내 계정 삭제"
},
"support": {
"header": "지원하다",
diff --git a/src/locales/nl.json b/src/locales/nl.json
index 875ea696..aada1962 100644
--- a/src/locales/nl.json
+++ b/src/locales/nl.json
@@ -386,7 +386,13 @@
"continueSettingUp": "Accountinstellingen",
"publishOffer": "Publiceren naar nostr",
"offerPublished": "Gepubliceerd!",
- "offerPublishFailed": "Kon aanbod niet publiceren"
+ "offerPublishFailed": "Kon aanbod niet publiceren",
+ "deleteAccount": "Account verwijderen",
+ "deleteAccountDescription": "Verwijder permanent uw account en al zijn gegevens.",
+ "deleteAccountWarning": "Dit verwijdert permanent uw account, uw betalingsgeschiedenis, facturen, subrekeningen, contacten en verbonden apps. Uw gebruikersnaam en bliksem adres zal stoppen met werken. Dit kan niet ongedaan worden gemaakt.",
+ "deleteAccountBalance": "Trek eerst je balans terug. Rekeningen met meer dan 10.000 sats kunnen niet worden verwijderd.",
+ "deleteAccountConfirm": "Typ uw gebruikersnaam om te bevestigen",
+ "deleteAccountButton": "Mijn account voor altijd verwijderen"
},
"support": {
"header": "Ondersteuning",
diff --git a/src/locales/pl.json b/src/locales/pl.json
index 130df267..1bd264ee 100644
--- a/src/locales/pl.json
+++ b/src/locales/pl.json
@@ -386,7 +386,13 @@
"continueSettingUp": "Konfiguracja konta",
"publishOffer": "Publikuj do nostr",
"offerPublished": "Opublikowane!",
- "offerPublishFailed": "Nie udało się opublikować oferty"
+ "offerPublishFailed": "Nie udało się opublikować oferty",
+ "deleteAccount": "Usuń konto",
+ "deleteAccountDescription": "Na stałe usuń swoje konto i wszystkie jego dane.",
+ "deleteAccountWarning": "To na stałe usuwa konto, historię płatności, faktury, subkonta, kontakty i połączone aplikacje. Twoja nazwa użytkownika i adres błyskawicy przestaną działać. Tego nie da się cofnąć.",
+ "deleteAccountBalance": "Najpierw wycofaj równowagę. Konta posiadające więcej niż 10 000 sat nie mogą zostać usunięte.",
+ "deleteAccountConfirm": "Wpisz nazwę użytkownika, aby potwierdzić",
+ "deleteAccountButton": "Usuń moje konto na zawsze"
},
"support": {
"header": "Wsparcie",
diff --git a/src/locales/pt.json b/src/locales/pt.json
index 56139fd4..04e40172 100644
--- a/src/locales/pt.json
+++ b/src/locales/pt.json
@@ -346,7 +346,13 @@
"continueSettingUp": "Configuração da conta",
"publishOffer": "Publicar em nostr",
"offerPublished": "Publicado!",
- "offerPublishFailed": "Falha ao publicar a oferta"
+ "offerPublishFailed": "Falha ao publicar a oferta",
+ "deleteAccount": "Apagar conta",
+ "deleteAccountDescription": "Exclua permanentemente sua conta e todos os seus dados.",
+ "deleteAccountWarning": "Isso exclui permanentemente sua conta, seu histórico de pagamento, faturas, subcontas, contatos e aplicativos conectados. Seu nome de usuário e endereço relâmpago vai parar de funcionar. Isto não pode ser desfeito.",
+ "deleteAccountBalance": "Retira o teu equilíbrio primeiro. Contas com mais de 10.000 sats não podem ser apagadas.",
+ "deleteAccountConfirm": "Digite seu nome de usuário para confirmar",
+ "deleteAccountButton": "Apagar a minha conta para sempre"
},
"support": {
"header": "Suporte",
diff --git a/src/locales/ru.json b/src/locales/ru.json
index cd170ee3..4abf4945 100644
--- a/src/locales/ru.json
+++ b/src/locales/ru.json
@@ -325,7 +325,13 @@
"continueSettingUp": "Настройка аккаунта",
"publishOffer": "Опубликовать в Nostr",
"offerPublished": "Опубликовано!",
- "offerPublishFailed": "Не удалось опубликовать предложение"
+ "offerPublishFailed": "Не удалось опубликовать предложение",
+ "deleteAccount": "Удалить аккаунт",
+ "deleteAccountDescription": "Постоянно удаляйте свою учетную запись и все ее данные.",
+ "deleteAccountWarning": "Это навсегда удаляет вашу учетную запись, историю платежей, счета-фактуры, субсчета, контакты и подключенные приложения. Имя пользователя и адрес молнии перестанут работать. Это нельзя отменить.",
+ "deleteAccountBalance": "Сначала снимите свой баланс. Учетные записи, содержащие более 10 000 сат, не могут быть удалены.",
+ "deleteAccountConfirm": "Введите свое имя пользователя, чтобы подтвердить",
+ "deleteAccountButton": "Удалить свой аккаунт навсегда"
},
"support": {
"header": "Поддержка",
diff --git a/src/locales/th.json b/src/locales/th.json
index 1fc20cc3..207db8b4 100644
--- a/src/locales/th.json
+++ b/src/locales/th.json
@@ -386,7 +386,13 @@
"continueSettingUp": "ตั้งค่าบัญชีผู้ใช้",
"publishOffer": "เผยแพร่ไปยังโหนด",
"offerPublished": "ตีพิมพ์!",
- "offerPublishFailed": "ล้มเหลวในการเผยแพร่ข้อเสนอ"
+ "offerPublishFailed": "ล้มเหลวในการเผยแพร่ข้อเสนอ",
+ "deleteAccount": "ลบบัญชีผู้ใช้",
+ "deleteAccountDescription": "ลบบัญชีและข้อมูลทั้งหมดอย่างถาวร.",
+ "deleteAccountWarning": "นี่จะเป็นการลบบัญชีผู้ใช้ของคุณอย่างถาวร, ประวัติการจ่ายเงินของคุณ, ใบแจ้งหนี้, บัญชีย่อย, ที่อยู่ติดต่อ และโปรแกรมที่เชื่อมต่ออยู่ ชื่อผู้ใช้และที่อยู่ฟ้าผ่าของคุณจะหยุดการทํางาน นี่ไม่สามารถยกเลิกได้.",
+ "deleteAccountBalance": "ดึงความสมดุลของคุณก่อน บัญชี ที่ มี มาก กว่า 10,000 ที่นั่ง ไม่ อาจ ลบ ได้.",
+ "deleteAccountConfirm": "พิมพ์ชื่อผู้ใช้ของคุณเพื่อยืนยัน",
+ "deleteAccountButton": "ลบบัญชีผู้ใช้ของฉันตลอดไป"
},
"support": {
"header": "สนับสนุน",
diff --git a/src/locales/tr.json b/src/locales/tr.json
index 9bba1a45..a51877a1 100644
--- a/src/locales/tr.json
+++ b/src/locales/tr.json
@@ -386,7 +386,13 @@
"continueSettingUp": "Hesap kurulumu",
"publishOffer": "Nostr",
"offerPublished": "Yayınlanmış!",
- "offerPublishFailed": "Yayımlama teklifinde başarısız oldu"
+ "offerPublishFailed": "Yayımlama teklifinde başarısız oldu",
+ "deleteAccount": "Delete hesabı",
+ "deleteAccountDescription": "Sürekli olarak hesabınızı ve tüm verilerini sil.",
+ "deleteAccountWarning": "Bu, hesabınızı kalıcı olarak silir, ödeme tarihiniz, faturalar, alt hesaplar, kontaklar ve bağlantılı uygulamalar. Kullanıcınız ve yıldırım adresiniz çalışmayı durduracaktır. Bu geri alınmaz.",
+ "deleteAccountBalance": "İlk önce bakiyenizi çizin. 10.000'den fazla oturma tutan hesaplar silinemez.",
+ "deleteAccountConfirm": "Kullanıcı adınızı doğrulamak için",
+ "deleteAccountButton": "Hesabımı sonsuza dek"
},
"support": {
"header": "Destek Desteği Destek Desteği",
diff --git a/src/locales/zh.json b/src/locales/zh.json
index f72ac733..e899debf 100644
--- a/src/locales/zh.json
+++ b/src/locales/zh.json
@@ -325,7 +325,13 @@
"continueSettingUp": "账户设置",
"publishOffer": "发布到节点",
"offerPublished": "发表!",
- "offerPublishFailed": "发布要约失败"
+ "offerPublishFailed": "发布要约失败",
+ "deleteAccount": "删除账户",
+ "deleteAccountDescription": "永久删除您的账户和所有数据 .",
+ "deleteAccountWarning": "这将永久删除您的账户、 支付历史、 发票、 子账户、 联系人和连接的应用程序 。 您的用户名和闪电地址将停止工作 。 这一点是无法消除的.",
+ "deleteAccountBalance": "先收回你的余额 持有超过一万个卫星的账户不能被删除.",
+ "deleteAccountConfirm": "输入您的用户名以确认",
+ "deleteAccountButton": "永远删除我的账户"
},
"support": {
"header": "支持",
diff --git a/src/routes/(app)/settings/delete/+page.server.ts b/src/routes/(app)/settings/delete/+page.server.ts
new file mode 100644
index 00000000..05f4f026
--- /dev/null
+++ b/src/routes/(app)/settings/delete/+page.server.ts
@@ -0,0 +1,26 @@
+import { auth, post } from "$lib/utils";
+import { fail, redirect } from "@sveltejs/kit";
+
+export async function load({ parent, url }) {
+ const { user } = await parent();
+ if (!user) redirect(307, `/login?redirect=${encodeURIComponent(url.pathname)}`);
+}
+
+export const actions = {
+ default: async ({ cookies, request }) => {
+ const form = await request.formData();
+ const confirm = String(form.get("confirm") || "");
+ const pin = String(form.get("pin") || "");
+
+ try {
+ // The server wipes everything (lib/deluser), including disabling the
+ // account's bolt12 offers, and refuses while a real balance remains.
+ await post("/delete", { confirm, ...(pin ? { pin } : {}) }, auth(cookies));
+ } catch (e) {
+ return fail(400, { error: e?.message || String(e), confirm });
+ }
+
+ // The account is gone; /logout clears the session cookies.
+ redirect(303, "/logout");
+ },
+};
diff --git a/src/routes/(app)/settings/delete/+page@(app).svelte b/src/routes/(app)/settings/delete/+page@(app).svelte
new file mode 100644
index 00000000..e19a6604
--- /dev/null
+++ b/src/routes/(app)/settings/delete/+page@(app).svelte
@@ -0,0 +1,82 @@
+<script>
+ // Rendered outside the settings layout (+page@(app)) so this form isn't
+ // nested inside the settings save form.
+ import { enhance } from "$app/forms";
+ import { t } from "$lib/translations";
+
+ let { data, form } = $props();
+ let { user } = $derived(data);
+
+ let confirm = $state(form?.confirm || "");
+ let working = $state(false);
+ let matches = $derived(
+ confirm.trim().toLowerCase() === user.username.toLowerCase(),
+ );
+</script>
+
+<div class="container px-4 max-w-xl mx-auto space-y-5 mt-10">
+ <h1 class="text-3xl font-bold text-center">
+ {$t("user.settings.deleteAccount")}
+ </h1>
+
+ <div class="rounded-2xl border-2 border-error p-4 space-y-3">
+ <p class="flex gap-2">
+ <iconify-icon
+ noobserver
+ icon="ph:warning-bold"
+ width="24"
+ class="text-error shrink-0"
+ ></iconify-icon>
+ <span>{$t("user.settings.deleteAccountWarning")}</span>
+ </p>
+ <p class="text-secondary">{$t("user.settings.deleteAccountBalance")}</p>
+ </div>
+
+ {#if form?.error}<p class="text-error">{form.error}</p>{/if}
+
+ <form
+ method="POST"
+ class="space-y-3"
+ use:enhance={() => {
+ working = true;
+ return async ({ update }) => {
+ await update({ reset: false });
+ working = false;
+ };
+ }}
+ >
+ <label class="block space-y-1">
+ <span class="font-bold">{$t("user.settings.deleteAccountConfirm")}</span>
+ <input
+ class="input input-bordered w-full"
+ name="confirm"
+ autocomplete="off"
+ autocapitalize="off"
+ spellcheck="false"
+ placeholder={user.username}
+ bind:value={confirm}
+ />
+ </label>
+
+ {#if user.haspin}
+ <input
+ class="input input-bordered w-full"
+ type="password"
+ inputmode="numeric"
+ name="pin"
+ placeholder={$t("user.settings.securityPIN")}
+ />
+ {/if}
+
+ <button
+ class="btn btn-error w-full rounded-2xl"
+ disabled={!matches || working}
+ >
+ <iconify-icon noobserver icon="ph:trash-bold" width="24"></iconify-icon>
+ {$t("user.settings.deleteAccountButton")}
+ </button>
+ <a href="/settings/security" class="btn w-full rounded-2xl">
+ {$t("payments.cancel")}
+ </a>
+ </form>
+</div>
diff --git a/src/routes/(app)/settings/security/+page.svelte b/src/routes/(app)/settings/security/+page.svelte
index b774d919..b8c71aa6 100644
--- a/src/routes/(app)/settings/security/+page.svelte
+++ b/src/routes/(app)/settings/security/+page.svelte
@@ -288,3 +288,14 @@
</button>
</a>
</div>
+
+<div>
+ <span class="font-bold mb-1">{$t("user.settings.deleteAccount")}</span>
+ <p class="text-secondary mb-4">
+ {$t("user.settings.deleteAccountDescription")}
+ </p>
+ <a href="/settings/delete" class="btn btn-outline btn-error">
+ <iconify-icon noobserver icon="ph:trash-bold" width="32"></iconify-icon>
+ {$t("user.settings.deleteAccount")}
+ </a>
+</div>