diff --git a/dashboard/src/i18n/locales/en-US/features/persona.json b/dashboard/src/i18n/locales/en-US/features/persona.json
index 3dc865c02..301747be9 100644
--- a/dashboard/src/i18n/locales/en-US/features/persona.json
+++ b/dashboard/src/i18n/locales/en-US/features/persona.json
@@ -10,7 +10,9 @@
"cancel": "Cancel",
"save": "Save",
"move": "Move",
- "addDialogPair": "Add Dialog Pair"
+ "addDialogPair": "Add Dialog Pair",
+ "export": "Export",
+ "import": "Import Persona"
},
"labels": {
"presetDialogs": "Preset Dialogs ({count} pairs)",
@@ -83,7 +85,15 @@
"saveError": "Save failed",
"deleteConfirm": "Are you sure you want to delete persona \"{id}\"? This action cannot be undone.",
"deleteSuccess": "Deleted successfully",
- "deleteError": "Delete failed"
+ "deleteError": "Delete failed",
+ "exportConfirm": "Export only includes system prompt and preset dialogs, not tools and Skills config. Continue?",
+ "exportSuccess": "Exported successfully",
+ "exportError": "Export failed: {error}",
+ "importSuccess": "Persona imported successfully, please configure tools and Skills manually",
+ "importError": "Import failed: {error}",
+ "importFormatError": "Invalid file format, please select a valid persona export file",
+ "importMissingPrompt": "Incomplete file content, missing system prompt",
+ "importIdExists": "Persona name already exists, renamed to \"{id}\""
},
"persona": {
"personasTitle": "Personas",
diff --git a/dashboard/src/i18n/locales/ru-RU/features/persona.json b/dashboard/src/i18n/locales/ru-RU/features/persona.json
index f7e0aff25..78db7156d 100644
--- a/dashboard/src/i18n/locales/ru-RU/features/persona.json
+++ b/dashboard/src/i18n/locales/ru-RU/features/persona.json
@@ -10,7 +10,9 @@
"cancel": "Отмена",
"save": "Сохранить",
"move": "Переместить",
- "addDialogPair": "Добавить пример диалога"
+ "addDialogPair": "Добавить пример диалога",
+ "export": "Экспорт",
+ "import": "Импорт персонажа"
},
"labels": {
"presetDialogs": "Примеры диалогов ({count})",
@@ -83,7 +85,15 @@
"saveError": "Ошибка сохранения",
"deleteConfirm": "Вы уверены, что хотите удалить персонажа «{id}»? Это действие необратимо.",
"deleteSuccess": "Удалено",
- "deleteError": "Ошибка удаления"
+ "deleteError": "Ошибка удаления",
+ "exportConfirm": "Экспорт содержит только системный промпт и примеры диалогов, без инструментов и навыков. Продолжить?",
+ "exportSuccess": "Экспортировано",
+ "exportError": "Ошибка экспорта: {error}",
+ "importSuccess": "Персонаж импортирован, настройте инструменты и навыки вручную",
+ "importError": "Ошибка импорта: {error}",
+ "importFormatError": "Неверный формат файла, выберите корректный файл экспорта",
+ "importMissingPrompt": "Неполное содержимое файла, отсутствует системный промпт",
+ "importIdExists": "Имя персонажа уже существует, переименовано в «{id}»"
},
"persona": {
"personasTitle": "Персонаж",
diff --git a/dashboard/src/i18n/locales/zh-CN/features/persona.json b/dashboard/src/i18n/locales/zh-CN/features/persona.json
index e707a5d62..12a4fce4f 100644
--- a/dashboard/src/i18n/locales/zh-CN/features/persona.json
+++ b/dashboard/src/i18n/locales/zh-CN/features/persona.json
@@ -10,7 +10,9 @@
"cancel": "取消",
"save": "保存",
"move": "移动",
- "addDialogPair": "添加对话对"
+ "addDialogPair": "添加对话对",
+ "export": "导出",
+ "import": "导入人格"
},
"labels": {
"presetDialogs": "预设对话 ({count} 对)",
@@ -83,7 +85,15 @@
"saveError": "保存失败",
"deleteConfirm": "确定要删除人格 \"{id}\" 吗?此操作不可撤销。",
"deleteSuccess": "删除成功",
- "deleteError": "删除失败"
+ "deleteError": "删除失败",
+ "exportConfirm": "导出仅包含系统提示词和预设对话,不包含工具和 Skills 配置。是否继续导出?",
+ "exportSuccess": "导出成功",
+ "exportError": "导出失败:{error}",
+ "importSuccess": "人格导入成功,请手动配置工具和 Skills",
+ "importError": "导入失败:{error}",
+ "importFormatError": "文件格式错误,请选择有效的人格导出文件",
+ "importMissingPrompt": "文件内容不完整,缺少系统提示词",
+ "importIdExists": "人格名称已存在,已重命名为 \"{id}\""
},
"persona": {
"personasTitle": "人格",
diff --git a/dashboard/src/views/persona/PersonaCard.vue b/dashboard/src/views/persona/PersonaCard.vue
index 7cebb26a9..69e218ca9 100644
--- a/dashboard/src/views/persona/PersonaCard.vue
+++ b/dashboard/src/views/persona/PersonaCard.vue
@@ -20,6 +20,12 @@
{{ tm('persona.contextMenu.moveTo') }}
+
+
+ mdi-download
+
+ {{ tm('buttons.export') }}
+
@@ -75,6 +81,10 @@