diff --git a/src/locales/en-US.json b/src/locales/en-US.json index e7ac00e667..b787345395 100644 --- a/src/locales/en-US.json +++ b/src/locales/en-US.json @@ -182,11 +182,20 @@ "title": "Import / Export", "button": { "import": "Import", - "export": "Export" + "export": "Export", + "cancel": "Cancel", + "confirm_import": "OK", + "confirm_export": "Export" + }, + "label": { + "confirm_import": "Import Notes", + "confirm_export": "Export Notes" }, "hints": { "import_success": "Import Successful", - "export_success": "Export Successful" + "export_success": "Export Successful", + "confirm_import": "Imported clipboard data will overwrite existing data, sure you want to proceed?", + "confirm_export": "The exported data contains all preferences and clipboard contents and is saved in plaintext, so please keep it safe." } } }, diff --git a/src/locales/ja-JP.json b/src/locales/ja-JP.json index 5488234e12..1fbb14532a 100644 --- a/src/locales/ja-JP.json +++ b/src/locales/ja-JP.json @@ -182,11 +182,20 @@ "title": "インポートとエクスポート", "button": { "import": "データをインポート", - "export": "データをエクスポート" + "export": "データをエクスポート", + "cancel": "キャンセル", + "confirm_import": "定義する", + "confirm_export": "導く" + }, + "label": { + "confirm_import": "インポートノート", + "confirm_export": "メモのエクスポート" }, "hints": { "import_success": "インポート成功", - "export_success": "エクスポート成功" + "export_success": "エクスポート成功", + "confirm_import": "インポートされたクリップボードのデータは既存のデータを上書きします。", + "confirm_export": "エクスポートされたデータには、すべての環境設定とクリップボードの内容が含まれ、平文で保存されますので、安全に保管してください。" } } }, diff --git a/src/locales/zh-CN.json b/src/locales/zh-CN.json index 9e1943a277..4363ab68a4 100644 --- a/src/locales/zh-CN.json +++ b/src/locales/zh-CN.json @@ -182,11 +182,20 @@ "title": "导入和导出", "button": { "import": "导入数据", - "export": "导出数据" + "export": "导出数据", + "cancel": "取消", + "confirm_import": "确定", + "confirm_export": "导出" + }, + "label": { + "confirm_import": "导入须知", + "confirm_export": "导出须知" }, "hints": { "import_success": "导入成功", - "export_success": "导出成功" + "export_success": "导出成功", + "confirm_import": "导入的剪贴板数据将覆盖现有数据,确定要继续吗?", + "confirm_export": "导出的数据包含所有偏好设置和剪贴板内容,且均以明文形式保存,请妥善保管。" } } }, diff --git a/src/locales/zh-TW.json b/src/locales/zh-TW.json index 607b8da553..ed1d452890 100644 --- a/src/locales/zh-TW.json +++ b/src/locales/zh-TW.json @@ -179,14 +179,23 @@ } }, "import_export": { - "title": "導入和導出", + "title": "導入和匯出", "button": { "import": "導入數據", - "export": "導出數據" + "export": "匯出數據", + "cancel": "取消", + "confirm_import": "確定", + "confirm_export": "匯出" + }, + "label": { + "confirm_import": "導入須知", + "confirm_export": "匯出須知" }, "hints": { "import_success": "導入成功", - "export_success": "匯出成功" + "export_success": "匯出成功", + "confirm_import": "導入的剪貼板數據將覆蓋現有數據,確定要繼續嗎?", + "confirm_export": "匯出的數據包含所有偏好設定和剪貼板內容,且均以明文形式保存,請妥善保管。" } } }, diff --git a/src/pages/Backup/components/Manual/index.tsx b/src/pages/Backup/components/Manual/index.tsx index 983ffab19f..ffb5372cd7 100644 --- a/src/pages/Backup/components/Manual/index.tsx +++ b/src/pages/Backup/components/Manual/index.tsx @@ -2,7 +2,7 @@ import Icon from "@/components/Icon"; import ProList from "@/components/ProList"; import { emit } from "@tauri-apps/api/event"; import { downloadDir } from "@tauri-apps/api/path"; -import { open } from "@tauri-apps/plugin-dialog"; +import { confirm, open } from "@tauri-apps/plugin-dialog"; import { Flex, List, message } from "antd"; import type { FC } from "react"; import type { State } from "../.."; @@ -19,6 +19,20 @@ const Manual: FC<{ state: State }> = (props) => { // 导入数据 const handleImport = async () => { try { + const confirmed = await confirm( + t("preference.data_backup.import_export.hints.confirm_import"), + { + kind: "warning", + title: t("preference.data_backup.import_export.label.confirm_import"), + okLabel: t( + "preference.data_backup.import_export.button.confirm_import", + ), + cancelLabel: t("preference.data_backup.import_export.button.cancel"), + }, + ); + + if (!confirmed) return; + const path = await open({ filters: [{ name: "", extensions: [extname()] }], }); @@ -52,6 +66,20 @@ const Manual: FC<{ state: State }> = (props) => { // 导出数据 const handleExport = async () => { try { + const confirmed = await confirm( + t("preference.data_backup.import_export.hints.confirm_export"), + { + kind: "warning", + title: t("preference.data_backup.import_export.hints.export_success"), + okLabel: t( + "preference.data_backup.import_export.button.confirm_export", + ), + cancelLabel: t("preference.data_backup.import_export.button.cancel"), + }, + ); + + if (!confirmed) return; + state.spinning = true; await saveStore(true);