feat(settings): redesign the remove-encryption (decrypt) modal onto reference design
Migrate App::renderDecryptWalletDialog ("Remove Wallet Encryption") onto the
settings-modal reference design — presentation-only for a fund-critical dialog,
plus one deliberate secret-hygiene addition:
- struct-form BeginOverlayDialog(OverlayDialogSpec{BlurFloat, cardWidth 480,
idSuffix "decrypt"}) replacing the legacy positional overload
- Phase 0 amber TextWrapped warning -> material::DialogWarningHeader(decrypt_warning)
- drop the redundant Phase 0 Separator
- every rendered-chrome string across all 4 phases (PassphraseEntry / Working /
Success / Error) -> TR() (14 new decrypt_*/try_again keys added to the English
source + all 8 res/lang/*.json additively; the button reuses
settings_remove_encryption, the label reuses change_pass_current, cancel/close reused)
- HARDENING: wipe decrypt_pass_buf_ on BlurFloat dismiss (X/Esc/outside-click),
mirroring the change-passphrase fix; canClose() gates pOpen so this cannot fire
during the Working phase
The fund-moving async worker pyramid (unlock -> export -> stop -> backup ->
restart -> re-import, vault/PIN cleanup) is byte-for-byte unchanged; the three
in-worker toast notifications and the "Incorrect passphrase" status are left in
English to avoid touching the fund path (a separate service-layer i18n pass).
Verified: build + ctest + hygiene clean; i18n complete in 8 langs with no format
specifiers and the wallet.dat.encrypted.bak literal preserved; a 3-lens adversarial
review (secret-hygiene / fund-path-untouched / ui-i18n) returned zero findings, with
the fund-path lens proving the async pyramid diffs IDENTICAL against HEAD.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -333,6 +333,19 @@
|
||||
"date": "日付",
|
||||
"date_label": "日付:",
|
||||
"debug_logging": "デバッグログ",
|
||||
"decrypt_desc": "ウォレットがエクスポートされ、デーモンが新しい暗号化されていないウォレットで再起動し、すべての鍵が再インポートされます。ウォレットのサイズによっては数分かかる場合があります。",
|
||||
"decrypt_error_title": "復号に失敗しました",
|
||||
"decrypt_step_backup": "暗号化されたウォレットをバックアップしています",
|
||||
"decrypt_step_export": "ウォレットの鍵をエクスポートしています",
|
||||
"decrypt_step_restart": "デーモンを再起動しています",
|
||||
"decrypt_step_stop": "デーモンを停止しています",
|
||||
"decrypt_step_unlock": "ウォレットのロックを解除しています",
|
||||
"decrypt_success_desc": "ウォレットは暗号化されていない状態になりました。暗号化されたウォレットのバックアップが、データディレクトリに wallet.dat.encrypted.bak として保存されました。",
|
||||
"decrypt_success_title": "ウォレットの復号に成功しました!",
|
||||
"decrypt_title": "ウォレットの暗号化を解除",
|
||||
"decrypt_wait_general": "お待ちください。デーモンが鍵をエクスポートし、再起動して再インポートしています。数分かかる場合があります。",
|
||||
"decrypt_wait_restart": "デーモンの起動が完了するのを待っています...",
|
||||
"decrypt_warning": "ウォレットの暗号化が解除されます。秘密鍵は保護されずにディスクに保存されます。",
|
||||
"delete": "削除",
|
||||
"delete_blockchain": "ブロックチェーンを削除",
|
||||
"delete_blockchain_confirm": "削除して再同期",
|
||||
@@ -1269,6 +1282,7 @@
|
||||
"transfer_to": "送金先:",
|
||||
"transparent": "透明",
|
||||
"transparent_address": "トランスペアレントアドレス",
|
||||
"try_again": "再試行",
|
||||
"tt_addr_url": "ブロックエクスプローラーでアドレスを表示するためのベース URL",
|
||||
"tt_address_book": "クイック送信用の保存済みアドレスを管理",
|
||||
"tt_auto_lock": "この無操作時間後にウォレットをロック",
|
||||
|
||||
Reference in New Issue
Block a user