feat(sql-editor): 关闭应用时提示保存未保存SQL

- 关闭应用前拦截 Wails 退出事件,前端弹出确认退出、保存退出和取消三按钮\n- 保存退出支持外部 SQL 文件和已保存查询,未命名临时查询保留草稿恢复语义\n- 补充退出保护后端测试、前端保存目标测试和多语言文案
This commit is contained in:
Syngnat
2026-06-29 11:16:55 +08:00
parent 8e857b9aee
commit ea4f88a20d
15 changed files with 634 additions and 23 deletions

View File

@@ -2560,6 +2560,16 @@
"app.proxy.title": "Globale Proxy-Einstellungen",
"app.proxy.type": "Proxy-Typ",
"app.proxy.username_optional": "Benutzername (optional)",
"app.quit.message.quit_failed": "Anwendung konnte nicht beendet werden: {{detail}}",
"app.quit.unsaved_sql.cancel": "Abbrechen",
"app.quit.unsaved_sql.confirm_exit": "Trotzdem beenden",
"app.quit.unsaved_sql.content_multiple": "{{label}} SQL-Editoren enthalten ungespeicherte Änderungen. Speichern Sie vor dem Beenden oder beenden Sie und verwerfen die ungespeicherten Änderungen.",
"app.quit.unsaved_sql.content_single": "{{label}} enthält ungespeichertes SQL. Speichern Sie vor dem Beenden oder beenden Sie und verwerfen die ungespeicherten Änderungen.",
"app.quit.unsaved_sql.inspect_failed": "Ungespeichertes SQL konnte nicht geprüft werden. Beenden wurde abgebrochen: {{detail}}",
"app.quit.unsaved_sql.save_exit": "Speichern und beenden",
"app.quit.unsaved_sql.save_failed_cancel_exit": "Speichern fehlgeschlagen. Beenden wurde abgebrochen: {{detail}}",
"app.quit.unsaved_sql.saved": "SQL-Änderungen gespeichert, Anwendung wird beendet",
"app.quit.unsaved_sql.title": "Ungespeichertes SQL",
"app.security_update.error.capability_unavailable": "Sicherheitsupdate-Funktion ist nicht verfügbar",
"app.security_update.message.completed": "Gespeicherte Konfigurationen haben das Sicherheitsupdate abgeschlossen",
"app.security_update.message.needs_attention": "Das Update ist noch nicht abgeschlossen. Einige Konfigurationen erfordern Aufmerksamkeit.",

View File

@@ -2560,6 +2560,16 @@
"app.proxy.title": "Global Proxy Settings",
"app.proxy.type": "Proxy Type",
"app.proxy.username_optional": "Username (optional)",
"app.quit.message.quit_failed": "Failed to quit application: {{detail}}",
"app.quit.unsaved_sql.cancel": "Cancel",
"app.quit.unsaved_sql.confirm_exit": "Quit anyway",
"app.quit.unsaved_sql.content_multiple": "{{label}} SQL editors have unsaved changes. Save before quitting, or quit and discard the unsaved changes.",
"app.quit.unsaved_sql.content_single": "{{label}} has unsaved SQL. Save before quitting, or quit and discard the unsaved changes.",
"app.quit.unsaved_sql.inspect_failed": "Failed to inspect unsaved SQL. Quit was cancelled: {{detail}}",
"app.quit.unsaved_sql.save_exit": "Save and quit",
"app.quit.unsaved_sql.save_failed_cancel_exit": "Save failed. Quit was cancelled: {{detail}}",
"app.quit.unsaved_sql.saved": "SQL changes saved, quitting",
"app.quit.unsaved_sql.title": "Unsaved SQL",
"app.security_update.error.capability_unavailable": "Security update capability is unavailable",
"app.security_update.message.completed": "Saved configurations have completed the security update",
"app.security_update.message.needs_attention": "The update is not complete yet. A few configurations need your attention.",

View File

@@ -2560,6 +2560,16 @@
"app.proxy.title": "グローバルプロキシ設定",
"app.proxy.type": "プロキシ種別",
"app.proxy.username_optional": "ユーザー名 (任意)",
"app.quit.message.quit_failed": "アプリケーションを終了できませんでした: {{detail}}",
"app.quit.unsaved_sql.cancel": "キャンセル",
"app.quit.unsaved_sql.confirm_exit": "終了する",
"app.quit.unsaved_sql.content_multiple": "{{label}} 件の SQL エディターに未保存の変更があります。終了前に保存するか、未保存の変更を破棄して終了できます。",
"app.quit.unsaved_sql.content_single": "{{label}} には未保存の SQL があります。終了前に保存するか、未保存の変更を破棄して終了できます。",
"app.quit.unsaved_sql.inspect_failed": "未保存 SQL の確認に失敗したため、終了をキャンセルしました: {{detail}}",
"app.quit.unsaved_sql.save_exit": "保存して終了",
"app.quit.unsaved_sql.save_failed_cancel_exit": "保存に失敗したため、終了をキャンセルしました: {{detail}}",
"app.quit.unsaved_sql.saved": "SQL の変更を保存しました。終了します",
"app.quit.unsaved_sql.title": "未保存の SQL があります",
"app.security_update.error.capability_unavailable": "安全更新機能は利用できません",
"app.security_update.message.completed": "保存済み設定の安全更新が完了しました",
"app.security_update.message.needs_attention": "更新はまだ完了していません。一部の設定に対応が必要です。",

View File

@@ -2560,6 +2560,16 @@
"app.proxy.title": "Настройки глобального прокси",
"app.proxy.type": "Тип прокси",
"app.proxy.username_optional": "Имя пользователя (необязательно)",
"app.quit.message.quit_failed": "Не удалось выйти из приложения: {{detail}}",
"app.quit.unsaved_sql.cancel": "Отмена",
"app.quit.unsaved_sql.confirm_exit": "Выйти",
"app.quit.unsaved_sql.content_multiple": "В {{label}} SQL-редакторах есть несохраненные изменения. Сохраните перед выходом или выйдите с потерей несохраненных изменений.",
"app.quit.unsaved_sql.content_single": "В {{label}} есть несохраненный SQL. Сохраните перед выходом или выйдите с потерей несохраненных изменений.",
"app.quit.unsaved_sql.inspect_failed": "Не удалось проверить несохраненный SQL. Выход отменен: {{detail}}",
"app.quit.unsaved_sql.save_exit": "Сохранить и выйти",
"app.quit.unsaved_sql.save_failed_cancel_exit": "Сохранить не удалось. Выход отменен: {{detail}}",
"app.quit.unsaved_sql.saved": "Изменения SQL сохранены, выполняется выход",
"app.quit.unsaved_sql.title": "Есть несохраненный SQL",
"app.security_update.error.capability_unavailable": "Функция безопасного обновления недоступна",
"app.security_update.message.completed": "Безопасное обновление сохраненных конфигураций завершено",
"app.security_update.message.needs_attention": "Обновление еще не завершено. Несколько конфигураций требуют внимания.",

View File

@@ -2560,6 +2560,16 @@
"app.proxy.title": "全局代理设置",
"app.proxy.type": "代理类型",
"app.proxy.username_optional": "用户名(可选)",
"app.quit.message.quit_failed": "退出应用失败:{{detail}}",
"app.quit.unsaved_sql.cancel": "取消",
"app.quit.unsaved_sql.confirm_exit": "确认退出",
"app.quit.unsaved_sql.content_multiple": "当前有 {{label}} 个 SQL 编辑器存在未保存修改。退出前可以保存,或确认退出并丢弃未保存修改。",
"app.quit.unsaved_sql.content_single": "{{label}} 存在未保存 SQL。退出前可以保存或确认退出并丢弃未保存修改。",
"app.quit.unsaved_sql.inspect_failed": "检查未保存 SQL 失败,已取消退出:{{detail}}",
"app.quit.unsaved_sql.save_exit": "保存退出",
"app.quit.unsaved_sql.save_failed_cancel_exit": "保存失败,已取消退出:{{detail}}",
"app.quit.unsaved_sql.saved": "SQL 修改已保存,正在退出",
"app.quit.unsaved_sql.title": "当前有未保存的 SQL",
"app.security_update.error.capability_unavailable": "安全更新能力不可用",
"app.security_update.message.completed": "已保存配置已完成安全更新",
"app.security_update.message.needs_attention": "更新尚未完成,有少量配置需要你处理",

View File

@@ -2560,6 +2560,16 @@
"app.proxy.title": "全局代理設定",
"app.proxy.type": "代理类型",
"app.proxy.username_optional": "使用者名(可选)",
"app.quit.message.quit_failed": "退出應用程式失敗:{{detail}}",
"app.quit.unsaved_sql.cancel": "取消",
"app.quit.unsaved_sql.confirm_exit": "確認退出",
"app.quit.unsaved_sql.content_multiple": "目前有 {{label}} 個 SQL 編輯器存在未儲存修改。退出前可以儲存,或確認退出並丟棄未儲存修改。",
"app.quit.unsaved_sql.content_single": "{{label}} 存在未儲存 SQL。退出前可以儲存或確認退出並丟棄未儲存修改。",
"app.quit.unsaved_sql.inspect_failed": "檢查未儲存 SQL 失敗,已取消退出:{{detail}}",
"app.quit.unsaved_sql.save_exit": "儲存退出",
"app.quit.unsaved_sql.save_failed_cancel_exit": "儲存失敗,已取消退出:{{detail}}",
"app.quit.unsaved_sql.saved": "SQL 修改已儲存,正在退出",
"app.quit.unsaved_sql.title": "目前有未儲存的 SQL",
"app.security_update.error.capability_unavailable": "安全更新能力無法使用",
"app.security_update.message.completed": "已儲存設定已完成安全更新",
"app.security_update.message.needs_attention": "更新尚未完成,有少量設定需要你處理",