feat(ui): 导出/备份 — otpauth URI 列表 + 加密备份导出/恢复

- qr/export.go: EntryToOtpAuth + OtpAuth.URI,将 config.Entry 反向
  转换为标准 otpauth:// URI(Battle.Net/Steam 标记为 partial)
- dialog_export.go: Tab 切换对话框,otpauth URI 列表可复制 +
  加密备份文件导出(独立密码,0o600 权限)
- dialog_restore_backup.go: 从 .winauth.bak 恢复,密码验证后合并
- settings_menu: 新增 Export / Restore Backup 菜单项
- i18n: en/zh-CN/de 三语翻译
This commit is contained in:
2026-06-12 10:44:51 +08:00
parent 133091a32e
commit fd4d756823
8 changed files with 722 additions and 0 deletions
+64
View File
@@ -511,3 +511,67 @@ other = "Change icon..."
[dialog_icon_picker_title]
other = "Choose icon"
# --- First-run welcome dialog ---
[dialog_welcome_title]
other = "Welcome to WinAuth"
[msg_welcome_intro]
other = "Choose whether to encrypt the list of authenticators stored on disk. Encryption protects the file with a password of your choice. You can change this later in Settings."
[btn_welcome_enable_password]
other = "Enable password protection"
[btn_welcome_skip]
other = "Skip for now"
# --- Export / backup ---
[menu_export]
other = "Export..."
[menu_restore_backup]
other = "Restore backup..."
[dialog_export_title]
other = "Export authenticators"
[export_tab_otpauth]
other = "otpauth:// URIs"
[export_tab_backup]
other = "Encrypted backup"
[export_otpauth_intro]
other = "Below are standard otpauth:// URIs for each entry. You can import them into other authenticator apps (Google Authenticator, Authy, etc.)."
[export_partial_warning]
other = "partial export — vendor-specific fields omitted"
[export_backup_intro]
other = "Write an encrypted backup file that can be restored on any machine. Choose a strong password — it is NOT linked to your current WinAuth password."
[label_backup_path]
other = "Backup file path"
[btn_export]
other = "Export"
[msg_empty_backup_path]
other = "Please enter a backup file path."
[msg_export_done]
other = "Backup exported successfully."
[msg_export_failed]
other = "Export failed: %s"
[dialog_restore_backup_title]
other = "Restore from backup"
[restore_backup_intro]
other = "Select an encrypted backup file (.winauth.bak) and enter the password that was set when it was created. Entries will be appended to your current list."
[msg_restore_done]
other = "Backup restored."