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": "Copier l'URI",
"current_price": "Prix actuel",
"custom_fees": "Frais personnalisés",
"daemon_update_body": "Cette version du portefeuille inclut un nœud DragonX plus récent que celui actuellement installé. La mise à jour remplace le dragonxd installé (ainsi que dragonx-cli/dragonx-tx), puis arrête et redémarre le nœud pour que la nouvelle version prenne effet. Recommandé — un nœud plus récent peut ajouter des fonctionnalités (par exemple la prise en charge des phrases de récupération) que l'ancien n'a pas.",
"daemon_update_keep": "Conserver l'actuel",
"daemon_update_now": "Mettre à jour",
"daemon_update_safe": "Votre portefeuille, vos clés et vos données de blockchain ne sont pas touchés — seuls les fichiers du programme daemon sont remplacés. Si vous exécutez délibérément un nœud personnalisé, choisissez Conserver l'actuel.",
"daemon_update_title": "Mettre à jour le daemon du nœud ?",
"daemon_version": "Daemon",
"dark": "Sombre",
"date": "Date",
@@ -384,21 +389,33 @@
"merge_started": "Opération de fusion démarrée",
"merge_title": "Fusionner vers une adresse",
"mig_adopt": "Faire de ceci mon portefeuille",
"mig_adopt_now": "Adopter le portefeuille à phrase",
"mig_adopting": "Installation de votre nouveau portefeuille et rescan en cours…",
"mig_adopting_note": "Le nœud redémarre sur votre nouveau portefeuille et va rescanner la chaîne — cela peut prendre plusieurs minutes. Laissez le portefeuille en marche ; il se reconnecte automatiquement.",
"mig_already_mnemonic": "Votre portefeuille possède déjà une phrase de récupération de 24 mots — il n'y a rien à migrer. Sauvegardez-la simplement et conservez les mots en lieu sûr.",
"mig_backed_up": "J'ai noté ma phrase de récupération",
"mig_backup_instead": "Sauvegarder la phrase de récupération",
"mig_balance": "Solde du portefeuille actuel : %.8f DRGX (moins de faibles frais)",
"mig_check_failed": "Impossible de vérifier votre portefeuille. Assurez-vous qu'il est déverrouillé et connecté, puis relancez la vérification.",
"mig_checking_balance": "Vérification de votre solde",
"mig_confirming": "Attente de la confirmation du balayage sur la chaîne avant de changer de portefeuille — cela garantit que vos fonds ont bien bougé.",
"mig_confs": "Confirmations du balayage : %d",
"mig_continue_sweep": "Continuer vers le balayage",
"mig_copy_seed": "Copier la phrase",
"mig_create": "Créer le portefeuille à phrase",
"mig_daemon_too_old": "Votre nœud DragonX est trop ancien pour créer un portefeuille à phrase — il ne prend pas en charge les phrases mnémoniques nécessaires. Mettez à jour le nœud (Paramètres → NŒUD & SÉCURITÉ → Installer la version intégrée, ou Rechercher des mises à jour), puis réessayez.",
"mig_discard": "Abandonner la migration",
"mig_done": "Migration terminée. Votre portefeuille est désormais protégé par votre phrase de récupération.",
"mig_done_btn": "Terminé",
"mig_done_detail": "Le daemon effectue un rescan pour afficher vos fonds — cela peut prendre quelques minutes. Votre portefeuille précédent a été enregistré sous forme de fichier .bak dans le dossier de données.",
"mig_intro": "Ceci crée un tout nouveau portefeuille protégé par une phrase de récupération de 24 mots, dans un nœud isolé, afin que vous puissiez y transférer vos fonds. Votre portefeuille actuel n'est PAS modifié et AUCUN fonds ne bouge à cette étape — vous sauvegarderez d'abord la nouvelle phrase, puis vous y balaierez vos fonds lors d'une étape distincte et confirmée.",
"mig_later": "Plus tard",
"mig_no_funds": "Votre portefeuille n'a aucun fonds à migrer. Vous pouvez adopter directement le nouveau portefeuille à phrase — il remplace votre portefeuille actuel (vide) par celui protégé par une phrase de récupération. Votre ancien portefeuille est tout de même mis de côté dans une sauvegarde horodatée, au cas où.",
"mig_nofunds_confirm": "Je comprends que ceci remplace mon portefeuille actuel par le nouveau portefeuille à phrase",
"mig_not_connected": "Connectez-vous d'abord à votre nœud, puis rouvrez cette fenêtre pour migrer.",
"mig_precheck_checking": "Vérification de votre portefeuille",
"mig_receive_addr": "Adresse de réception du nouveau portefeuille :",
"mig_recheck": "Revérifier",
"mig_remainder": "Certains fonds sont encore dans votre ancien portefeuille (trop d'entrées pour une seule transaction) — balayez le reste avant de changer.",
"mig_remaining": "Restant dans l'ancien portefeuille : %.8f DRGX",
"mig_seed_warning": "Notez ces 24 mots dans l'ordre et conservez-les hors ligne. Ils constituent l'unique sauvegarde de votre nouveau portefeuille — si vous les perdez, les fonds que vous migrez sont perdus à jamais.",
@@ -411,6 +428,7 @@
"mig_to": "Vers : ",
"mig_txid": "txid : ",
"mig_unlock_first": "Déverrouillez d'abord votre portefeuille pour y dépenser des fonds.",
"mig_unlock_to_migrate": "Déverrouillez d'abord votre portefeuille, puis rouvrez cette fenêtre pour migrer.",
"mig_waiting_mine": "Attente du minage de la transaction de balayage…",
"mig_working": "Création de votre nouveau portefeuille à phrase dans un nœud isolé — cela peut prendre une minute. Votre portefeuille principal continue de fonctionner.",
"mine_when_idle": "Miner au repos",