feat(migrate): daemon-update prompt + migrate-to-seed UX polish + i18n

Fixes the Windows migrate-to-seed failure (the old bundled daemon lacked
z_exportmnemonic) and rounds out the flow:

- seed_wallet_creator: actionable "daemon too old" message instead of the
  raw "Method not found" RPC error.
- Startup daemon-update prompt: if the wallet bundles a newer node than the
  installed one, offer to update it (once per version, keyed on a new
  daemon_update_prompted_size setting; never silently clobbers a custom
  node). "Install bundled" now also works when attached to an external /
  leftover daemon (RPC-stops it, then swaps + restarts).
- Migrate-to-seed Intro pre-flight: detect an already-mnemonic wallet
  (offer backup instead), an old daemon, or a locked/disconnected wallet
  before offering to create anything.
- No-funds path: a zero-balance wallet can adopt the new seed wallet
  directly (behind an acknowledgement checkbox) instead of a dead sweep.
- Loading spinners on the Working/Sweeping/Adopting steps; sweep coverage
  for the new intro / no-funds surfaces.
- Translations for all 18 new strings across 8 languages (+ rebuilt CJK
  subset font).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-07-07 22:16:47 -05:00
parent 48c79567d7
commit 82e61da62f
17 changed files with 418 additions and 22 deletions

View File

@@ -227,6 +227,11 @@
"copy_uri": "URI kopieren",
"current_price": "Aktueller Preis",
"custom_fees": "Benutzerdefinierte Gebühren",
"daemon_update_body": "Dieser Wallet-Build enthält einen neueren DragonX-Node als den derzeit installierten. Beim Aktualisieren wird der installierte dragonxd (sowie dragonx-cli/dragonx-tx) ersetzt und der Node anschließend gestoppt und neu gestartet, damit die neue Version wirksam wird. Empfohlen — ein neuerer Node kann Funktionen (z. B. Unterstützung für Wiederherstellungsphrasen) bieten, die der alte nicht hat.",
"daemon_update_keep": "Aktuellen behalten",
"daemon_update_now": "Jetzt aktualisieren",
"daemon_update_safe": "Ihre Wallet, Ihre Schlüssel und Ihre Blockchain-Daten bleiben unberührt — nur die Programmdateien des Daemons werden ersetzt. Wenn Sie bewusst einen eigenen Node betreiben, wählen Sie „Aktuellen behalten“.",
"daemon_update_title": "Node-Daemon aktualisieren?",
"daemon_version": "Daemon",
"dark": "Dunkel",
"date": "Datum",
@@ -384,21 +389,33 @@
"merge_started": "Zusammenführung gestartet",
"merge_title": "An Adresse zusammenführen",
"mig_adopt": "Dies zu meiner Wallet machen",
"mig_adopt_now": "Seed-Wallet übernehmen",
"mig_adopting": "Ihre neue Wallet wird installiert und neu gescannt…",
"mig_adopting_note": "Der Node startet mit Ihrer neuen Wallet neu und scannt die Chain neu — das kann einige Minuten dauern. Lassen Sie die Wallet laufen; sie verbindet sich automatisch wieder.",
"mig_already_mnemonic": "Ihre Wallet hat bereits eine 24-Wort-Wiederherstellungsphrase — es gibt nichts zu migrieren. Sichern Sie sie einfach und bewahren Sie die Wörter an einem sicheren Ort auf.",
"mig_backed_up": "Ich habe meine Wiederherstellungsphrase aufgeschrieben",
"mig_backup_instead": "Wiederherstellungsphrase sichern",
"mig_balance": "Aktuelles Wallet-Guthaben: %.8f DRGX (abzüglich einer kleinen Gebühr)",
"mig_check_failed": "Ihre Wallet konnte nicht geprüft werden. Stellen Sie sicher, dass sie entsperrt und verbunden ist, und prüfen Sie erneut.",
"mig_checking_balance": "Ihr Guthaben wird geprüft",
"mig_confirming": "Es wird auf die Bestätigung der Übertragung in der Blockchain gewartet, bevor die Wallet gewechselt wird — dies garantiert, dass Ihre Gelder tatsächlich verschoben wurden.",
"mig_confs": "Übertragungsbestätigungen: %d",
"mig_continue_sweep": "Weiter zur Übertragung",
"mig_copy_seed": "Phrase kopieren",
"mig_create": "Seed-Wallet erstellen",
"mig_daemon_too_old": "Ihr DragonX-Node ist zu alt, um eine Seed-Wallet zu erstellen — ihm fehlt die dafür nötige Unterstützung für Wiederherstellungsphrasen. Aktualisieren Sie den Node (Einstellungen → Node & Sicherheit → Gebündelten installieren, oder Nach Updates suchen) und versuchen Sie es erneut.",
"mig_discard": "Migration verwerfen",
"mig_done": "Migration abgeschlossen. Ihre Wallet ist nun durch Ihre Wiederherstellungsphrase gesichert.",
"mig_done_btn": "Fertig",
"mig_done_detail": "Der Daemon führt einen Neuscan durch, um Ihre Gelder anzuzeigen — das kann einige Minuten dauern. Ihre vorherige Wallet wurde als .bak im Datenordner gespeichert.",
"mig_intro": "Dies erstellt eine brandneue Wallet, die durch eine 24-Wort-Wiederherstellungsphrase gesichert ist, in einem isolierten Knoten, damit Sie Ihre Gelder dorthin übertragen können. Ihre aktuelle Wallet wird NICHT verändert und in diesem Schritt werden KEINE Gelder verschoben — Sie sichern zunächst die neue Wiederherstellungsphrase und übertragen Ihre Gelder dann in einem separaten, bestätigten Schritt.",
"mig_later": "Später",
"mig_no_funds": "Ihre Wallet hat keine Gelder zum Migrieren. Sie können die neue Seed-Wallet direkt übernehmen — sie ersetzt Ihre aktuelle (leere) Wallet durch die seed-gesicherte. Ihre alte Wallet wird für alle Fälle dennoch in eine mit Zeitstempel versehene Sicherung beiseitegelegt.",
"mig_nofunds_confirm": "Ich verstehe, dass dies meine aktuelle Wallet durch die neue Seed-Wallet ersetzt",
"mig_not_connected": "Verbinden Sie sich zuerst mit Ihrem Node und öffnen Sie dies dann erneut, um zu migrieren.",
"mig_precheck_checking": "Ihre Wallet wird geprüft",
"mig_receive_addr": "Empfangsadresse der neuen Wallet:",
"mig_recheck": "Erneut prüfen",
"mig_remainder": "Einige Gelder befinden sich noch in Ihrer alten Wallet (zu viele Eingänge für eine einzelne Transaktion) — übertragen Sie den Rest, bevor Sie wechseln.",
"mig_remaining": "Verbleibend in alter Wallet: %.8f DRGX",
"mig_seed_warning": "Schreiben Sie diese 24 Wörter der Reihe nach auf und bewahren Sie sie offline auf. Sie sind die einzige Sicherung Ihrer neuen Wallet — wenn Sie sie verlieren, sind die migrierten Gelder für immer verloren.",
@@ -411,6 +428,7 @@
"mig_to": "An: ",
"mig_txid": "txid: ",
"mig_unlock_first": "Entsperren Sie zuerst Ihre Wallet, um daraus auszugeben.",
"mig_unlock_to_migrate": "Entsperren Sie zuerst Ihre Wallet und öffnen Sie dies dann erneut, um zu migrieren.",
"mig_waiting_mine": "Es wird darauf gewartet, dass die Übertragungstransaktion geschürft wird…",
"mig_working": "Ihre neue Seed-Wallet wird in einem isolierten Knoten erstellt — das kann eine Minute dauern. Ihre Haupt-Wallet läuft weiter.",
"mine_when_idle": "Im Leerlauf minen",