From 4da0eef3e4f83df5b8bb1b1db8335c478ad41b80 Mon Sep 17 00:00:00 2001 From: Adam Soltys Date: Wed, 24 Jun 2026 17:50:10 -0700 Subject: Rename "Lock all" to "Clear all" with confirmation; editable wallet names MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - The Accounts action is now "Clear all", which prompts a confirmation warning that any wallet whose recovery phrase/key isn't backed up will be lost. Confirming wipes everything from the device: session accounts, the encrypted vault, and saved watch-only accounts. - Each account has a rename (✎) control: edit the label inline and save. Persists to the session, the watch-only store, and the vault as needed. New strings translated across all 19 locales. Co-Authored-By: Claude Opus 4.8 (1M context) --- src/app.js | 53 ++++++++++++++++++++++++++++++++++++++++++++++++++++- src/i18n.js | 4 +++- src/locales/ar.json | 5 ++++- src/locales/bn.json | 5 ++++- src/locales/de.json | 5 ++++- src/locales/es.json | 5 ++++- src/locales/fr.json | 5 ++++- src/locales/hi.json | 5 ++++- src/locales/id.json | 5 ++++- src/locales/ja.json | 5 ++++- src/locales/ko.json | 5 ++++- src/locales/mr.json | 5 ++++- src/locales/pt.json | 5 ++++- src/locales/ru.json | 5 ++++- src/locales/sw.json | 5 ++++- src/locales/ta.json | 5 ++++- src/locales/te.json | 5 ++++- src/locales/tr.json | 5 ++++- src/locales/ur.json | 5 ++++- src/locales/vi.json | 5 ++++- src/locales/zh.json | 5 ++++- 21 files changed, 131 insertions(+), 21 deletions(-) diff --git a/src/app.js b/src/app.js index 71e5185..ecd8cd4 100644 --- a/src/app.js +++ b/src/app.js @@ -33,6 +33,9 @@ const ui = { pw: null, // { purpose, accId, mode, v1, v2, error } — vault password prompt vaultPw: '', // on-open vault unlock input vaultError: '', + confirmClear: false, // "Clear all" confirmation shown + editId: null, // account being renamed + editLabel: '', createStep: 'gen', // 'gen' | 'confirm' draftMnemonic: '', confirm: [], // [{ index, value }] @@ -809,6 +812,9 @@ function lock() { ui.pw = null; ui.vaultPw = ''; ui.vaultError = ''; + ui.confirmClear = false; + ui.editId = null; + ui.editLabel = ''; ui.createStep = 'gen'; ui.draftMnemonic = ''; ui.importText = ''; @@ -1266,6 +1272,19 @@ function claimScreen() { // Account switcher: pick a wallet, add another, or lock the session. function accountsScreen() { if (ui.pw) return h('div', { class: 'col', style: 'gap:16px' }, brandHeader(false), pwPromptCard()); + if (ui.confirmClear) { + return h('div', { class: 'col', style: 'gap:16px' }, + brandHeader(false), + h('div', { class: 'card col' }, + h('h3', {}, t('clearAll')), + h('div', { class: 'warn-box' }, t('clearAllWarn')), + h('div', { class: 'row gap6' }, + h('button', { class: 'btn-ghost grow', onClick: () => { ui.confirmClear = false; render(); } }, t('back')), + h('button', { class: 'btn-primary grow', onClick: clearAll }, t('clearAll')) + ) + ) + ); + } return h( 'div', { class: 'col', style: 'gap:16px' }, @@ -1276,12 +1295,22 @@ function accountsScreen() { accounts.map((a) => { const isActive = a.id === activeId; const tag = a.type === 'watch' ? ' · ' + t('watchOnlyTag') : a.persisted ? ' · ' + t('savedTag') : ''; + if (ui.editId === a.id) { + return h('div', { class: 'row gap6', style: 'padding:10px 0; border-bottom:1px solid var(--line)' }, + h('input', { type: 'text', style: 'flex:1', value: ui.editLabel, autofocus: true, + onInput: (e) => (ui.editLabel = e.target.value), + onKeyDown: (e) => { if (e.key === 'Enter') renameAccount(a.id); } }), + h('button', { class: 'btn-sm', onClick: () => renameAccount(a.id) }, t('save')), + h('button', { class: 'btn-sm', onClick: () => { ui.editId = null; render(); } }, t('back')) + ); + } return h('div', { class: 'col', style: 'gap:4px; padding:10px 0; border-bottom:1px solid var(--line)' }, h('div', { class: 'row between' }, h('button', { class: 'linklike', style: 'text-align:left;flex:1;font-size:15px;' + (isActive ? 'font-weight:600' : ''), onClick: () => { if (isActive) { ui.screen = 'wallet'; render(); } else switchAccount(a.id); }, }, (isActive ? '● ' : '○ ') + a.label + tag), + h('button', { class: 'btn-sm', title: t('rename'), onClick: () => { ui.editId = a.id; ui.editLabel = a.label; render(); } }, '✎'), h('button', { class: 'btn-sm', title: t('remove'), onClick: () => removeAccount(a.id) }, '✕') ), a.type === 'full' @@ -1292,12 +1321,34 @@ function accountsScreen() { }) ), h('button', { class: 'btn-block', onClick: () => { ui.screen = 'unlock'; ui.unlockTab = 'create'; ui.fromWallet = true; ui.unlockError = ''; render(); } }, t('addWallet')), - h('button', { class: 'btn-ghost btn-block', onClick: lock }, t('lockAll')) + h('button', { class: 'btn-ghost btn-block', onClick: () => { ui.confirmClear = true; render(); } }, t('clearAll')) ), h('button', { class: 'btn-ghost btn-block', onClick: () => { ui.screen = 'wallet'; render(); } }, t('back')) ); } +function renameAccount(id) { + const acc = accounts.find((a) => a.id === id); + if (acc) { + const v = (ui.editLabel || '').trim(); + if (v) acc.label = v; + persistAccounts(); + if (acc.type === 'watch') saveWatchAccounts(); + if (acc.persisted) writeVault(); + } + ui.editId = null; + render(); +} + +// Wipe every wallet from this device: session accounts, the encrypted vault, +// and saved watch-only accounts. Unbacked-up seeds are unrecoverable after this. +function clearAll() { + try { localStorage.removeItem(VAULT_KEY); } catch {} + try { localStorage.removeItem(WATCH_KEY); } catch {} + ui.confirmClear = false; + lock(); +} + function pwPromptCard() { const p = ui.pw; return h('div', { class: 'card col' }, diff --git a/src/i18n.js b/src/i18n.js index 0615ec9..78d3798 100644 --- a/src/i18n.js +++ b/src/i18n.js @@ -38,7 +38,9 @@ const STR = { logout: 'Logout', accounts: 'Accounts', addWallet: 'Add wallet', - lockAll: 'Lock all', + clearAll: 'Clear all', + clearAllWarn: '⚠ This removes every wallet from this device. Any wallet whose recovery phrase or key you have not backed up will be lost for good.', + rename: 'Rename', remove: 'Remove', watchOnly: 'Watch-only', watchOnlyTag: 'watch-only', diff --git a/src/locales/ar.json b/src/locales/ar.json index ccbcfa7..c3d220a 100644 --- a/src/locales/ar.json +++ b/src/locales/ar.json @@ -210,5 +210,8 @@ "importPlaceholder": "كلماتك الـ 12 أو 24، أو xpub / xprv", "invalidImport": "هذه ليست عبارة استرداد أو xpub أو xprv صالحة.", "importedKey": "مفتاح مُستورد", - "importedKeyNote": "تم استيراد هذه المحفظة من مفتاح خاص ممتد، لذا لا توجد عبارة استرداد. احتفظ بنسخة من هذا المفتاح نفسه للحفاظ على المحفظة." + "importedKeyNote": "تم استيراد هذه المحفظة من مفتاح خاص ممتد، لذا لا توجد عبارة استرداد. احتفظ بنسخة من هذا المفتاح نفسه للحفاظ على المحفظة.", + "clearAll": "مسح الكل", + "clearAllWarn": "⚠ يؤدي هذا إلى إزالة كل المحافظ من هذا الجهاز. أي محفظة لم تنسخ احتياطيًا عبارة استردادها أو مفتاحها ستُفقد إلى الأبد.", + "rename": "إعادة تسمية" } \ No newline at end of file diff --git a/src/locales/bn.json b/src/locales/bn.json index 2d9d8ca..386ca85 100644 --- a/src/locales/bn.json +++ b/src/locales/bn.json @@ -208,5 +208,8 @@ "importPlaceholder": "আপনার 12 বা 24টি শব্দ, অথবা একটি xpub / xprv", "invalidImport": "এটি বৈধ রিকভারি ফ্রেজ, xpub বা xprv নয়।", "importedKey": "আমদানি করা কী", - "importedKeyNote": "এই ওয়ালেটটি একটি বর্ধিত প্রাইভেট কী থেকে আমদানি করা হয়েছে, তাই কোনো রিকভারি ফ্রেজ নেই। ওয়ালেট রাখতে সেই কী-টিরই ব্যাকআপ নিন।" + "importedKeyNote": "এই ওয়ালেটটি একটি বর্ধিত প্রাইভেট কী থেকে আমদানি করা হয়েছে, তাই কোনো রিকভারি ফ্রেজ নেই। ওয়ালেট রাখতে সেই কী-টিরই ব্যাকআপ নিন।", + "clearAll": "সব মুছুন", + "clearAllWarn": "⚠ এটি এই ডিভাইস থেকে সব ওয়ালেট সরিয়ে দেয়। যে ওয়ালেটের রিকভারি ফ্রেজ বা কী আপনি ব্যাকআপ করেননি, তা চিরতরে হারিয়ে যাবে।", + "rename": "নাম পরিবর্তন" } \ No newline at end of file diff --git a/src/locales/de.json b/src/locales/de.json index 6c73d09..4c3d729 100644 --- a/src/locales/de.json +++ b/src/locales/de.json @@ -210,5 +210,8 @@ "importPlaceholder": "Deine 12 oder 24 Wörter oder ein xpub / xprv", "invalidImport": "Das ist keine gültige Wiederherstellungsphrase, kein xpub oder xprv.", "importedKey": "Importierter Schlüssel", - "importedKeyNote": "Diese Wallet wurde aus einem erweiterten privaten Schlüssel importiert und hat daher keine Wiederherstellungsphrase. Sichere diesen Schlüssel selbst, um die Wallet zu behalten." + "importedKeyNote": "Diese Wallet wurde aus einem erweiterten privaten Schlüssel importiert und hat daher keine Wiederherstellungsphrase. Sichere diesen Schlüssel selbst, um die Wallet zu behalten.", + "clearAll": "Alle löschen", + "clearAllWarn": "⚠ Dies entfernt alle Wallets von diesem Gerät. Jede Wallet, deren Wiederherstellungsphrase oder Schlüssel du nicht gesichert hast, ist für immer verloren.", + "rename": "Umbenennen" } \ No newline at end of file diff --git a/src/locales/es.json b/src/locales/es.json index d88cc22..7096f69 100644 --- a/src/locales/es.json +++ b/src/locales/es.json @@ -210,5 +210,8 @@ "importPlaceholder": "Tus 12 o 24 palabras, o un xpub / xprv", "invalidImport": "Eso no es una frase de recuperación, xpub o xprv válida.", "importedKey": "Clave importada", - "importedKeyNote": "Esta cartera se importó desde una clave privada extendida, así que no tiene frase de recuperación. Guarda esa clave para conservar la cartera." + "importedKeyNote": "Esta cartera se importó desde una clave privada extendida, así que no tiene frase de recuperación. Guarda esa clave para conservar la cartera.", + "clearAll": "Borrar todo", + "clearAllWarn": "⚠ Esto elimina todas las carteras de este dispositivo. Cualquier cartera cuya frase de recuperación o clave no hayas respaldado se perderá para siempre.", + "rename": "Renombrar" } \ No newline at end of file diff --git a/src/locales/fr.json b/src/locales/fr.json index 72acc0c..f0a3546 100644 --- a/src/locales/fr.json +++ b/src/locales/fr.json @@ -210,5 +210,8 @@ "importPlaceholder": "Vos 12 ou 24 mots, ou un xpub / xprv", "invalidImport": "Ce n’est pas une phrase de récupération, un xpub ou un xprv valide.", "importedKey": "Clé importée", - "importedKeyNote": "Ce portefeuille a été importé depuis une clé privée étendue, il n’a donc pas de phrase de récupération. Sauvegardez cette clé pour conserver le portefeuille." + "importedKeyNote": "Ce portefeuille a été importé depuis une clé privée étendue, il n’a donc pas de phrase de récupération. Sauvegardez cette clé pour conserver le portefeuille.", + "clearAll": "Tout effacer", + "clearAllWarn": "⚠ Ceci supprime tous les portefeuilles de cet appareil. Tout portefeuille dont vous n’avez pas sauvegardé la phrase de récupération ou la clé sera perdu définitivement.", + "rename": "Renommer" } \ No newline at end of file diff --git a/src/locales/hi.json b/src/locales/hi.json index 8a37f15..23f585c 100644 --- a/src/locales/hi.json +++ b/src/locales/hi.json @@ -210,5 +210,8 @@ "importPlaceholder": "आपके 12 या 24 शब्द, या xpub / xprv", "invalidImport": "यह मान्य रिकवरी वाक्यांश, xpub या xprv नहीं है।", "importedKey": "आयातित कुंजी", - "importedKeyNote": "यह वॉलेट एक विस्तारित निजी कुंजी से आयात किया गया था, इसलिए कोई रिकवरी वाक्यांश नहीं है। वॉलेट बनाए रखने के लिए उस कुंजी का बैकअप लें।" + "importedKeyNote": "यह वॉलेट एक विस्तारित निजी कुंजी से आयात किया गया था, इसलिए कोई रिकवरी वाक्यांश नहीं है। वॉलेट बनाए रखने के लिए उस कुंजी का बैकअप लें।", + "clearAll": "सब हटाएँ", + "clearAllWarn": "⚠ यह इस डिवाइस से सभी वॉलेट हटा देता है। जिस भी वॉलेट का रिकवरी वाक्यांश या कुंजी आपने बैकअप नहीं किया है, वह हमेशा के लिए खो जाएगा।", + "rename": "नाम बदलें" } \ No newline at end of file diff --git a/src/locales/id.json b/src/locales/id.json index 7690eae..789bbe8 100644 --- a/src/locales/id.json +++ b/src/locales/id.json @@ -210,5 +210,8 @@ "importPlaceholder": "12 atau 24 kata Anda, atau xpub / xprv", "invalidImport": "Itu bukan frasa pemulihan, xpub, atau xprv yang valid.", "importedKey": "Kunci yang diimpor", - "importedKeyNote": "Dompet ini diimpor dari kunci privat yang diperluas, jadi tidak ada frasa pemulihan. Cadangkan kunci itu sendiri untuk menyimpan dompet." + "importedKeyNote": "Dompet ini diimpor dari kunci privat yang diperluas, jadi tidak ada frasa pemulihan. Cadangkan kunci itu sendiri untuk menyimpan dompet.", + "clearAll": "Hapus semua", + "clearAllWarn": "⚠ Ini menghapus semua dompet dari perangkat ini. Dompet mana pun yang frasa pemulihan atau kuncinya belum Anda cadangkan akan hilang selamanya.", + "rename": "Ganti nama" } \ No newline at end of file diff --git a/src/locales/ja.json b/src/locales/ja.json index dc6017d..94366ec 100644 --- a/src/locales/ja.json +++ b/src/locales/ja.json @@ -210,5 +210,8 @@ "importPlaceholder": "12 または 24 個の単語、または xpub / xprv", "invalidImport": "有効な復元フレーズ、xpub、xprv ではありません。", "importedKey": "インポートした鍵", - "importedKeyNote": "このウォレットは拡張秘密鍵からインポートされたため、復元フレーズはありません。ウォレットを保持するにはその鍵自体をバックアップしてください。" + "importedKeyNote": "このウォレットは拡張秘密鍵からインポートされたため、復元フレーズはありません。ウォレットを保持するにはその鍵自体をバックアップしてください。", + "clearAll": "すべて消去", + "clearAllWarn": "⚠ この端末からすべてのウォレットを削除します。復元フレーズまたは鍵をバックアップしていないウォレットは永久に失われます。", + "rename": "名前を変更" } \ No newline at end of file diff --git a/src/locales/ko.json b/src/locales/ko.json index 6ef7917..dbd3c66 100644 --- a/src/locales/ko.json +++ b/src/locales/ko.json @@ -210,5 +210,8 @@ "importPlaceholder": "12개 또는 24개 단어, 또는 xpub / xprv", "invalidImport": "유효한 복구 문구, xpub 또는 xprv가 아닙니다.", "importedKey": "가져온 키", - "importedKeyNote": "이 지갑은 확장 개인 키에서 가져왔으므로 복구 문구가 없습니다. 지갑을 유지하려면 그 키 자체를 백업하세요." + "importedKeyNote": "이 지갑은 확장 개인 키에서 가져왔으므로 복구 문구가 없습니다. 지갑을 유지하려면 그 키 자체를 백업하세요.", + "clearAll": "모두 지우기", + "clearAllWarn": "⚠ 이 기기에서 모든 지갑을 제거합니다. 복구 문구나 키를 백업하지 않은 지갑은 영구히 사라집니다.", + "rename": "이름 변경" } \ No newline at end of file diff --git a/src/locales/mr.json b/src/locales/mr.json index 4505c45..6f747ae 100644 --- a/src/locales/mr.json +++ b/src/locales/mr.json @@ -210,5 +210,8 @@ "importPlaceholder": "तुमचे 12 किंवा 24 शब्द, किंवा xpub / xprv", "invalidImport": "हा वैध पुनर्प्राप्ती वाक्यांश, xpub किंवा xprv नाही.", "importedKey": "आयात केलेली की", - "importedKeyNote": "हे वॉलेट विस्तारित खाजगी कीवरून आयात केले होते, त्यामुळे पुनर्प्राप्ती वाक्यांश नाही. वॉलेट टिकवण्यासाठी तीच की बॅकअप करा." + "importedKeyNote": "हे वॉलेट विस्तारित खाजगी कीवरून आयात केले होते, त्यामुळे पुनर्प्राप्ती वाक्यांश नाही. वॉलेट टिकवण्यासाठी तीच की बॅकअप करा.", + "clearAll": "सर्व साफ करा", + "clearAllWarn": "⚠ हे या डिव्हाइसवरील सर्व वॉलेट काढून टाकते. ज्या वॉलेटचा रिकव्हरी वाक्यांश किंवा की तुम्ही बॅकअप घेतलेला नाही, तो कायमचा गमावला जाईल.", + "rename": "नाव बदला" } \ No newline at end of file diff --git a/src/locales/pt.json b/src/locales/pt.json index 83d5fb7..d3137ff 100644 --- a/src/locales/pt.json +++ b/src/locales/pt.json @@ -210,5 +210,8 @@ "importPlaceholder": "Suas 12 ou 24 palavras, ou um xpub / xprv", "invalidImport": "Isso não é uma frase de recuperação, xpub ou xprv válida.", "importedKey": "Chave importada", - "importedKeyNote": "Esta carteira foi importada de uma chave privada estendida, então não há frase de recuperação. Faça backup dessa chave para manter a carteira." + "importedKeyNote": "Esta carteira foi importada de uma chave privada estendida, então não há frase de recuperação. Faça backup dessa chave para manter a carteira.", + "clearAll": "Apagar tudo", + "clearAllWarn": "⚠ Isto remove todas as carteiras deste dispositivo. Qualquer carteira cuja frase de recuperação ou chave você não tenha feito backup será perdida para sempre.", + "rename": "Renomear" } \ No newline at end of file diff --git a/src/locales/ru.json b/src/locales/ru.json index 0cc1e49..dc451f8 100644 --- a/src/locales/ru.json +++ b/src/locales/ru.json @@ -210,5 +210,8 @@ "importPlaceholder": "Ваши 12 или 24 слова, либо xpub / xprv", "invalidImport": "Это недействительная фраза восстановления, xpub или xprv.", "importedKey": "Импортированный ключ", - "importedKeyNote": "Этот кошелёк импортирован из расширенного приватного ключа, поэтому у него нет фразы восстановления. Сохраните сам этот ключ, чтобы не потерять кошелёк." + "importedKeyNote": "Этот кошелёк импортирован из расширенного приватного ключа, поэтому у него нет фразы восстановления. Сохраните сам этот ключ, чтобы не потерять кошелёк.", + "clearAll": "Очистить всё", + "clearAllWarn": "⚠ Это удалит все кошельки с этого устройства. Любой кошелёк, фразу восстановления или ключ которого вы не сохранили, будет потерян навсегда.", + "rename": "Переименовать" } \ No newline at end of file diff --git a/src/locales/sw.json b/src/locales/sw.json index 6480d5b..b948aaf 100644 --- a/src/locales/sw.json +++ b/src/locales/sw.json @@ -210,5 +210,8 @@ "importPlaceholder": "Maneno yako 12 au 24, au xpub / xprv", "invalidImport": "Hiyo si kifungu sahihi cha kurejesha, xpub, au xprv.", "importedKey": "Ufunguo ulioagizwa", - "importedKeyNote": "Pochi hii iliagizwa kutoka kwa ufunguo wa faragha uliopanuliwa, kwa hiyo hakuna kifungu cha kurejesha. Hifadhi ufunguo huo wenyewe ili kuendelea kuwa na pochi." + "importedKeyNote": "Pochi hii iliagizwa kutoka kwa ufunguo wa faragha uliopanuliwa, kwa hiyo hakuna kifungu cha kurejesha. Hifadhi ufunguo huo wenyewe ili kuendelea kuwa na pochi.", + "clearAll": "Futa zote", + "clearAllWarn": "⚠ Hii inaondoa pochi zote kwenye kifaa hiki. Pochi yoyote ambayo kifungu chake cha kurejesha au ufunguo haukuhifadhi nakala itapotea milele.", + "rename": "Badilisha jina" } \ No newline at end of file diff --git a/src/locales/ta.json b/src/locales/ta.json index a8c8f57..1e72f70 100644 --- a/src/locales/ta.json +++ b/src/locales/ta.json @@ -210,5 +210,8 @@ "importPlaceholder": "உங்கள் 12 அல்லது 24 சொற்கள், அல்லது xpub / xprv", "invalidImport": "அது செல்லுபடியாகும் மீட்பு சொற்றொடர், xpub அல்லது xprv அல்ல.", "importedKey": "இறக்குமதி செய்த விசை", - "importedKeyNote": "இந்த வாலெட் ஒரு நீட்டிக்கப்பட்ட தனிப்பட்ட விசையிலிருந்து இறக்குமதி செய்யப்பட்டது, எனவே மீட்பு சொற்றொடர் இல்லை. வாலெட்டை வைத்திருக்க அந்த விசையையே காப்புப் பிரதி எடுக்கவும்." + "importedKeyNote": "இந்த வாலெட் ஒரு நீட்டிக்கப்பட்ட தனிப்பட்ட விசையிலிருந்து இறக்குமதி செய்யப்பட்டது, எனவே மீட்பு சொற்றொடர் இல்லை. வாலெட்டை வைத்திருக்க அந்த விசையையே காப்புப் பிரதி எடுக்கவும்.", + "clearAll": "அனைத்தையும் அழி", + "clearAllWarn": "⚠ இது இந்த சாதனத்திலிருந்து அனைத்து வாலெட்களையும் நீக்குகிறது. மீட்பு சொற்றொடர் அல்லது விசையை நீங்கள் காப்புப் பிரதி எடுக்காத எந்த வாலெட்டும் நிரந்தரமாக இழக்கப்படும்.", + "rename": "பெயர் மாற்று" } \ No newline at end of file diff --git a/src/locales/te.json b/src/locales/te.json index 9e7534c..4990f30 100644 --- a/src/locales/te.json +++ b/src/locales/te.json @@ -208,5 +208,8 @@ "importPlaceholder": "మీ 12 లేదా 24 పదాలు, లేదా ఒక xpub / xprv", "invalidImport": "అది చెల్లుబాటు అయ్యే రికవరీ పదబంధం, xpub లేదా xprv కాదు.", "importedKey": "దిగుమతి చేసిన కీ", - "importedKeyNote": "ఈ వాలెట్ విస్తరించిన ప్రైవేట్ కీ నుండి దిగుమతి చేయబడింది, కాబట్టి రికవరీ పదబంధం లేదు. వాలెట్‌ను ఉంచుకోవడానికి ఆ కీనే బ్యాకప్ చేయండి." + "importedKeyNote": "ఈ వాలెట్ విస్తరించిన ప్రైవేట్ కీ నుండి దిగుమతి చేయబడింది, కాబట్టి రికవరీ పదబంధం లేదు. వాలెట్‌ను ఉంచుకోవడానికి ఆ కీనే బ్యాకప్ చేయండి.", + "clearAll": "అన్నీ తొలగించు", + "clearAllWarn": "⚠ ఇది ఈ పరికరం నుండి అన్ని వాలెట్‌లను తొలగిస్తుంది. మీరు రికవరీ పదబంధం లేదా కీని బ్యాకప్ చేయని ఏ వాలెట్ అయినా శాశ్వతంగా పోతుంది.", + "rename": "పేరు మార్చు" } \ No newline at end of file diff --git a/src/locales/tr.json b/src/locales/tr.json index 1fa5880..e9ef8ce 100644 --- a/src/locales/tr.json +++ b/src/locales/tr.json @@ -210,5 +210,8 @@ "importPlaceholder": "12 veya 24 kelimeniz ya da bir xpub / xprv", "invalidImport": "Bu geçerli bir kurtarma ifadesi, xpub veya xprv değil.", "importedKey": "İçe aktarılan anahtar", - "importedKeyNote": "Bu cüzdan genişletilmiş bir özel anahtardan içe aktarıldı, bu yüzden kurtarma ifadesi yok. Cüzdanı korumak için o anahtarın kendisini yedekleyin." + "importedKeyNote": "Bu cüzdan genişletilmiş bir özel anahtardan içe aktarıldı, bu yüzden kurtarma ifadesi yok. Cüzdanı korumak için o anahtarın kendisini yedekleyin.", + "clearAll": "Tümünü temizle", + "clearAllWarn": "⚠ Bu, bu cihazdaki tüm cüzdanları kaldırır. Kurtarma ifadesini veya anahtarını yedeklemediğiniz her cüzdan kalıcı olarak kaybolur.", + "rename": "Yeniden adlandır" } \ No newline at end of file diff --git a/src/locales/ur.json b/src/locales/ur.json index cddfcc6..a2e15b5 100644 --- a/src/locales/ur.json +++ b/src/locales/ur.json @@ -210,5 +210,8 @@ "importPlaceholder": "آپ کے 12 یا 24 الفاظ، یا ایک xpub / xprv", "invalidImport": "یہ درست ریکوری فقرہ، xpub یا xprv نہیں ہے۔", "importedKey": "درآمد شدہ کلید", - "importedKeyNote": "یہ والیٹ ایک توسیعی نجی کلید سے درآمد کیا گیا تھا، اس لیے کوئی ریکوری فقرہ نہیں ہے۔ والیٹ برقرار رکھنے کے لیے اسی کلید کا بیک اپ رکھیں۔" + "importedKeyNote": "یہ والیٹ ایک توسیعی نجی کلید سے درآمد کیا گیا تھا، اس لیے کوئی ریکوری فقرہ نہیں ہے۔ والیٹ برقرار رکھنے کے لیے اسی کلید کا بیک اپ رکھیں۔", + "clearAll": "سب صاف کریں", + "clearAllWarn": "⚠ یہ اس ڈیوائس سے تمام والیٹ ہٹا دیتا ہے۔ جس بھی والیٹ کا ریکوری فقرہ یا کلید آپ نے بیک اپ نہیں کیا، وہ ہمیشہ کے لیے کھو جائے گا۔", + "rename": "نام تبدیل کریں" } \ No newline at end of file diff --git a/src/locales/vi.json b/src/locales/vi.json index 87ab44f..ae39f1a 100644 --- a/src/locales/vi.json +++ b/src/locales/vi.json @@ -210,5 +210,8 @@ "importPlaceholder": "12 hoặc 24 từ của bạn, hoặc một xpub / xprv", "invalidImport": "Đó không phải là cụm từ khôi phục, xpub hoặc xprv hợp lệ.", "importedKey": "Khóa đã nhập", - "importedKeyNote": "Ví này được nhập từ một khóa riêng tư mở rộng, nên không có cụm từ khôi phục. Hãy sao lưu chính khóa đó để giữ ví." + "importedKeyNote": "Ví này được nhập từ một khóa riêng tư mở rộng, nên không có cụm từ khôi phục. Hãy sao lưu chính khóa đó để giữ ví.", + "clearAll": "Xóa tất cả", + "clearAllWarn": "⚠ Thao tác này xóa mọi ví khỏi thiết bị này. Bất kỳ ví nào mà bạn chưa sao lưu cụm từ khôi phục hoặc khóa sẽ mất vĩnh viễn.", + "rename": "Đổi tên" } \ No newline at end of file diff --git a/src/locales/zh.json b/src/locales/zh.json index 35bd3a5..dc77028 100644 --- a/src/locales/zh.json +++ b/src/locales/zh.json @@ -210,5 +210,8 @@ "importPlaceholder": "你的 12 或 24 个单词,或 xpub / xprv", "invalidImport": "这不是有效的恢复短语、xpub 或 xprv。", "importedKey": "导入的密钥", - "importedKeyNote": "该钱包是从扩展私钥导入的,因此没有恢复短语。请备份该密钥本身以保留钱包。" + "importedKeyNote": "该钱包是从扩展私钥导入的,因此没有恢复短语。请备份该密钥本身以保留钱包。", + "clearAll": "清除全部", + "clearAllWarn": "⚠ 这将从此设备移除所有钱包。任何你尚未备份恢复短语或密钥的钱包都将永久丢失。", + "rename": "重命名" } \ No newline at end of file -- cgit v1.2.3