{
  "lang": {
    "zhCN": "中文",
    "enUS": "English"
  },
  "common": {
    "ok": "确定",
    "cancel": "取消",
    "refresh": "刷新",
    "close": "关闭",
    "edit": "编辑",
    "delete": "删除",
    "save": "保存",
    "loading": "加载中…",
    "search": "搜索",
    "clearSearch": "清除搜索",
    "noData": "暂无数据",
    "confirm": "确认",
    "copy": "复制",
    "copied": "已复制",
    "copyFailed": "复制失败",
    "view": "查看",
    "actions": "操作",
    "loadFailed": "加载失败",
    "untitled": "未命名",
    "justNow": "刚刚",
    "minutesAgo": "{{n}} 分钟前",
    "hoursAgo": "{{n}} 小时前",
    "daysAgo": "{{n}} 天前"
  },
  "header": {
    "title": "CyberStrikeAI",
    "apiDocs": "API 文档",
    "github": "GitHub",
    "logout": "退出登录",
    "language": "界面语言",
    "backToDashboard": "返回仪表盘",
    "userMenu": "用户菜单",
    "version": "当前版本",
    "toggleSidebar": "折叠/展开侧边栏"
  },
  "notifications": {
    "title": "事件通知",
    "empty": "暂无新事件",
    "markAllRead": "标记已读",
    "markSingleRead": "已读",
    "itemDefaultTitle": "通知"
  },
  "login": {
    "title": "登录 CyberStrikeAI",
    "subtitle": "请输入配置中的访问密码",
    "passwordLabel": "密码",
    "passwordPlaceholder": "输入登录密码",
    "submit": "登录"
  },
  "nav": {
    "dashboard": "仪表盘",
    "chat": "对话",
    "infoCollect": "信息收集",
    "tasks": "任务管理",
    "vulnerabilities": "漏洞管理",
    "webshell": "WebShell管理",
    "chatFiles": "文件管理",
    "mcp": "MCP",
    "mcpMonitor": "MCP状态监控",
    "mcpManagement": "MCP管理",
    "knowledge": "知识",
    "knowledgeRetrievalLogs": "检索历史",
    "knowledgeManagement": "知识管理",
    "skills": "Skills",
    "skillsMonitor": "Skills状态监控",
    "skillsManagement": "Skills管理",
    "agents": "Agents",
    "agentsManagement": "Agent管理",
    "roles": "角色",
    "rolesManagement": "角色管理",
    "settings": "系统设置",
    "hitl": "人机协同",
    "c2": "C2",
    "c2Manage": "C2 管理",
    "c2Listeners": "监听器",
    "c2Sessions": "会话",
    "c2Tasks": "任务",
    "c2Payloads": "载荷",
    "c2Events": "事件",
    "c2Profiles": "流量伪装"
  },
  "dashboard": {
    "title": "仪表盘",
    "refresh": "刷新",
    "refreshData": "刷新数据",
    "runningTasks": "运行中任务",
    "vulnTotal": "漏洞总数",
    "toolCalls": "工具调用次数",
    "successRate": "工具执行成功率",
    "clickToViewTasks": "点击查看任务管理",
    "clickToViewVuln": "点击查看漏洞管理",
    "clickToViewMCP": "点击查看 MCP 监控",
    "c2OverviewTitle": "C2 概览",
    "c2GoManage": "进入 C2 →",
    "c2ListenersRunning": "运行中监听器",
    "c2SessionsOnline": "在线会话",
    "c2TasksPending": "待审 / 排队任务",
    "c2ClickListeners": "查看监听器",
    "c2ClickSessions": "查看会话",
    "c2ClickTasks": "查看任务",
    "severityDistribution": "漏洞严重程度分布",
    "severityCritical": "严重",
    "severityHigh": "高危",
    "severityMedium": "中危",
    "severityLow": "低危",
    "severityInfo": "信息",
    "totalVulns": "总漏洞数",
    "riskLevel": "风险等级",
    "riskScore": "加权风险分",
    "riskSafe": "安全",
    "riskLow": "低",
    "riskMedium": "中",
    "riskHigh": "高",
    "riskSevere": "极高",
    "latestFound": "最近发现",
    "noneYet": "暂无",
    "runOverview": "运行概览",
    "batchQueues": "批量任务队列",
    "pending": "待执行",
    "executing": "执行中",
    "completed": "已完成",
    "toolInvocations": "工具调用",
    "callsUnit": "次调用",
    "toolsUnit": "个工具",
    "knowledgeLabel": "知识",
    "knowledgeItems": "项知识",
    "categoriesUnit": "个分类",
    "skillsLabel": "Skills",
    "skillUnit": "个 Skill",
    "quickLinks": "快捷入口",
    "toolsExecCount": "工具执行次数",
    "ctaTitle": "开始你的安全之旅",
    "ctaSub": "在对话中描述目标，AI 将协助执行扫描与漏洞分析",
    "goToChat": "前往对话",
    "noTasks": "暂无任务",
    "totalCount": "共 {{count}} 个",
    "notEnabled": "未启用",
    "enabled": "已启用",
    "toConfigure": "待配置",
    "toUse": "待使用",
    "active": "活跃",
    "highFreq": "高频",
    "noCallData": "暂无调用数据",
    "severityClickHint": "点击查看",
    "lastUpdated": "上次更新",
    "viewAll": "查看全部 →",
    "recentVulns": "最近漏洞",
    "noVulnYet": "暂无最近漏洞",
    "capabilities": "能力总览",
    "mcpTools": "MCP 工具",
    "rolesLabel": "角色",
    "agentsLabel": "Agents",
    "webshellLabel": "WebShell",
    "pendingCountLabel": "{{count}} 待执行",
    "highCountLabel": "高危 {{count}}",
    "toolsCountLabel": "{{count}} 个工具",
    "failedNCalls": "{{count}} 次失败",
    "noCallYet": "暂无调用",
    "allClear": "暂无新增风险",
    "allIdle": "系统空闲",
    "executingNow": "正在执行",
    "healthyStatus": "运行平稳",
    "normalStatus": "基本正常",
    "degradedStatus": "需要关注",
    "alertTitle": "需要关注",
    "alertWarningTitle": "需要关注",
    "alertDangerTitle": "需要立即处理",
    "alertCriticalReason": "存在 {{count}} 个待处理的严重漏洞，建议立即处置",
    "alertFailedReason": "工具调用成功率偏低（{{count}} 次失败），请检查 MCP 监控",
    "alertHitlReason": "有 {{count}} 个待审批的人机协同请求，Agent 正在等待你的决策",
    "alertMcpDownReason": "External MCP 服务器有 {{count}} 个未运行，相关工具不可用",
    "alertDismiss": "忽略此提醒（仅本次会话）",
    "openHighCountLabel": "待处理高危 {{count}}",
    "allHandled": "高严重度已全部处置",
    "viewVulns": "查看漏洞",
    "viewMonitor": "查看监控",
    "viewHitl": "前往审批",
    "viewMcpManagement": "管理 MCP",
    "statusOpen": "待处理",
    "statusConfirmed": "已确认",
    "statusFixed": "已修复",
    "statusFalsePositive": "误报",
    "fixRate": "修复率",
    "dataStale": "数据可能已过期，请手动刷新",
    "recommendedActions": "推荐操作",
    "recommendedActionsHint": "基于当前状态自动生成",
    "recoFixCritical": "修复 {{count}} 个待处理严重漏洞",
    "recoFixCriticalDesc": "严重等级的漏洞应优先处置",
    "recoApproveHitl": "审批 {{count}} 个 HITL 请求",
    "recoApproveHitlDesc": "Agent 正在等待你的决策才能继续",
    "recoRestartMcp": "检查 {{count}} 个未运行的 External MCP",
    "recoRestartMcpDesc": "相关工具在 MCP 服务恢复前不可用",
    "recoCheckMonitor": "排查 {{count}} 次工具调用失败",
    "recoCheckMonitorDesc": "在 MCP 监控中查看失败的请求详情",
    "recoSetupMcp": "配置首个 MCP 工具",
    "recoSetupMcpDesc": "安装 MCP 服务后 Agent 才能调用具体能力",
    "recoStartScan": "在对话中发起扫描",
    "recoStartScanDesc": "在对话中描述目标，让 AI 协助执行",
    "recentEvents": "最近事件",
    "eventUntitled": "事件",
    "externalMcpServers": "External MCP",
    "mcpAllRunning": "全部运行",
    "mcpPartialDown": "{{count}} 个未运行",
    "mcpAllDown": "全部未运行",
    "noVulnDesc": "此处展示近期漏洞记录；在对话中完成检测后，新结果会出现在这里",
    "startScanBtn": "前往对话发起扫描"
  },
  "chat": {
    "newChat": "新对话",
    "toggleConversationPanel": "折叠/展开对话列表",
    "searchHistory": "搜索历史记录...",
    "conversationGroups": "对话分组",
    "addGroup": "新建分组",
    "recentConversations": "最近对话",
    "batchManage": "批量管理",
    "attackChain": "攻击链",
    "viewAttackChain": "查看攻击链",
    "selectRole": "选择角色",
    "defaultRole": "默认",
    "inputPlaceholder": "输入测试目标或命令... (输入 @ 选择工具 | Shift+Enter 换行，Enter 发送)",
    "selectFile": "选择文件",
    "uploadFile": "上传文件（可多选或拖拽到此处）",
    "readingAttachmentsDetail": "读取附件 {{current}}/{{total}} · {{name}} · {{percent}}%",
    "uploadingAttachmentsDetail": "上传附件 · {{done}}/{{total}} 已完成 · 总进度 {{percent}}%",
    "waitingAttachmentsUpload": "正在等待附件上传完成…",
    "attachmentsUploadIncomplete": "部分附件未上传成功，请移除失败项或重新选择文件后再发送。",
    "attachmentUploading": "上传中…",
    "attachmentUploadFailed": "失败",
    "attachmentUploadAlert": "上传失败：{{name}}",
    "send": "发送",
    "searchInGroup": "搜索分组中的对话...",
    "loadingTools": "正在加载工具...",
    "noMatchTools": "没有匹配的工具",
    "penetrationTestDetail": "渗透测试详情",
    "expandDetail": "展开详情",
    "noProcessDetail": "暂无过程详情（可能执行过快或未触发详细事件）",
    "copyMessageTitle": "复制消息内容",
    "deleteTurnTitle": "删除本轮对话",
    "deleteTurnConfirm": "确定删除本轮对话？将同时删除该轮用户消息与助手回复，且无法恢复；下次模型回复将仅基于剩余消息（已保存的上下文快照会清空并按剩余内容重建）。",
    "deleteTurnFailed": "删除本轮失败",
    "emptyGroupConversations": "该分组暂无对话",
    "noMatchingConversationsInGroup": "未找到匹配的对话",
    "noHistoryConversations": "暂无历史对话",
    "renameGroupPrompt": "请输入新名称：",
    "deleteGroupConfirm": "确定要删除此分组吗？分组中的对话不会被删除，但会从分组中移除。",
    "deleteConversationConfirm": "确定要删除此对话吗？",
    "renameFailed": "重命名失败",
    "downloadConversationFailed": "下载对话失败",
    "viewAttackChainSelectConv": "请选择一个对话以查看攻击链",
    "viewAttackChainCurrentConv": "查看当前对话的攻击链",
    "executeFailed": "执行失败",
    "callOpenAIFailed": "调用OpenAI失败",
    "systemReadyMessage": "系统已就绪。请输入您的测试需求，系统将自动执行相应的安全测试。",
    "addNewGroup": "+ 新增分组",
    "callNumber": "调用 #{{n}}",
    "iterationRound": "第 {{n}} 轮迭代",
    "einoOrchestratorRound": "主代理 · 第 {{n}} 轮",
    "einoPlanExecuteRound": "Plan-Execute · 第 {{n}} 轮 · {{phase}}",
    "planExecuteStreamPlanner": "规划输出",
    "planExecuteStreamExecutor": "执行输出",
    "planExecuteStreamReplanning": "重规划输出",
    "planExecuteStreamPhase": "阶段输出",
    "einoSubAgentStep": "子代理 {{agent}} · 第 {{n}} 步",
    "aiThinking": "AI思考",
    "reasoningChain": "推理过程",
    "planning": "规划中",
    "assistantStreamPhase": "助手输出",
    "toolCallsDetected": "检测到 {{count}} 个工具调用",
    "callTool": "调用工具: {{name}} ({{index}}/{{total}})",
    "toolExecComplete": "工具 {{name}} 执行完成",
    "toolExecFailed": "工具 {{name}} 执行失败",
    "knowledgeRetrieval": "知识检索",
    "knowledgeRetrievalTag": "知识检索",
    "error": "错误",
    "streamNetworkErrorHint": "连接已中断（{{detail}}）。长时间任务可能仍在后端执行，请查看顶部「运行中」任务或稍后刷新本对话。",
    "taskCancelled": "任务已取消",
    "userInterruptContinueTitle": "⏸️ 用户中断并继续",
    "unknownTool": "未知工具",
    "einoAgentReplyTitle": "子代理回复",
    "einoStreamErrorTitle": "⚠️ Eino 流式中断（{{agent}}）",
    "einoStreamErrorMessage": "流式读取异常，系统将按策略重试或结束。",
    "iterationLimitReachedTitle": "⛔ 达到迭代上限",
    "iterationLimitReachedMessage": "已达到最大迭代次数，任务已停止继续自动迭代。",
    "einoPendingOrphanedTitle": "🧹 工具调用收尾补偿",
    "einoPendingOrphanedMessage": "检测到 {{count}} 个未闭合工具调用，已自动标记为失败并收尾。",
    "noDescription": "暂无描述",
    "noResponseData": "暂无响应数据",
    "loading": "加载中...",
    "loadFailed": "加载失败: {{message}}",
    "noAttackChainData": "暂无攻击链数据",
    "copyFailedManual": "复制失败，请手动选择内容复制",
    "searching": "搜索中...",
    "loadFailedRetry": "加载失败，请重试",
    "dataFormatError": "数据格式错误",
    "progressInProgress": "渗透测试进行中...",
    "executionFailed": "执行失败",
    "penetrationTestComplete": "渗透测试完成",
    "yesterday": "昨天",
    "historyGroupToday": "今天",
    "historyGroupLast7Days": "过去七天",
    "historyGroupEarlier": "更早",
    "agentModeSelectAria": "选择对话执行模式",
    "agentModePanelTitle": "对话模式",
    "agentModeReactNative": "原生 ReAct 模式",
    "agentModeReactNativeHint": "经典单代理 ReAct 与 MCP 工具",
    "agentModeEinoSingle": "Eino 单代理（ADK）",
    "agentModeEinoSingleHint": "Eino ChatModelAgent + Runner，MCP 工具（/api/eino-agent）",
    "agentModeDeep": "Deep（DeepAgent）",
    "agentModeDeepHint": "Eino DeepAgent，task 调度子代理",
    "agentModePlanExecuteLabel": "Plan-Execute",
    "agentModePlanExecuteHint": "规划 → 执行 → 重规划（单执行器带工具）",
    "agentModeSupervisorLabel": "Supervisor",
    "agentModeSupervisorHint": "监督者协调，transfer 委派子代理",
    "agentModeSingle": "单代理",
    "agentModeMulti": "多代理",
    "agentModeSingleHint": "单模型 ReAct 循环，适合常规对话与工具调用",
    "agentModeMultiHint": "Eino 预置编排（deep / plan_execute / supervisor），适合复杂任务",
    "reasoningModeLabel": "模型推理",
    "reasoningEffortLabel": "推理强度",
    "reasoningModeDefault": "跟随系统",
    "reasoningModeOff": "关闭",
    "reasoningModeOn": "开启",
    "reasoningModeAuto": "自动",
    "reasoningEffortUnset": "不指定",
    "reasoningCompactLabel": "推理",
    "reasoningCompactAria": "打开模型推理选项",
    "reasoningPanelTitle": "模型推理",
    "reasoningPanelHint": "仅 Eino 单代理与多代理请求会带上这些参数；与系统设置中的默认值合并。",
    "reasoningSummaryFollow": "系统",
    "reasoningSummaryDash": "—",
    "agentModeOrchPlanExecute": "Plan-Exec",
    "agentModeOrchSupervisor": "Supervisor",
    "hitlTitle": "人机协同",
    "hitlCardSubtitle": "审批与白名单",
    "hitlReviewer": "Review",
    "hitlConfigTitle": "协同模式配置",
    "hitlModeLabel": "模式",
    "hitlModeOff": "关闭",
    "hitlModeApproval": "审批模式",
    "hitlModeReviewEdit": "审查编辑",
    "hitlSensitiveTools": "敏感工具（逗号分隔）",
    "hitlWhitelistTools": "白名单工具（免审批，逗号分隔）",
    "hitlWhitelistPlaceholder": "例：read_file, grep 或每行一个工具名（与 config 全局白名单合并）",
    "hitlWhitelistHint": "每行一个或逗号分隔；与 config 中全局白名单合并展示。",
    "hitlApply": "应用",
    "hitlApplyOkSync": "人机协同配置已保存并同步到服务器。",
    "hitlApplyOkWhitelistYaml": "免审批工具已合并进 config.yaml 并生效。协同模式、超时等仍须选中会话后再点「应用」才会写入服务器。",
    "hitlApplyOkLocal": "已保存到本浏览器。",
    "hitlApplyFail": "同步到服务器失败",
    "hitlStatusOff": "人机协同：关闭"
  },
  "hitl": {
    "pageTitle": "人机协同审批",
    "pendingTitle": "待处理审批",
    "loading": "加载中...",
    "emptyState": "暂无待审批项",
    "dismiss": "忽略",
    "conversationLabel": "会话：",
    "reviewEditHelp": "审查编辑模式：可填写 JSON 对象覆盖参数。示例：{\"command\":\"ls -la\"}",
    "approvalHelp": "审批模式：仅通过/拒绝，不支持改参。",
    "commentHelp": "备注（可选）：建议写审批依据。",
    "commentPlaceholder": "例如：允许只读命令",
    "reject": "拒绝",
    "approve": "通过",
    "loadFailed": "加载失败",
    "invalidJson": "JSON 参数格式错误",
    "submitFailedPrefix": "提交失败："
  },
  "progress": {
    "callingAI": "正在调用AI模型...",
    "callingTool": "正在调用工具: {{name}}",
    "lastIterSummary": "最后一次迭代：正在生成总结和下一步计划...",
    "summaryDone": "总结生成完成",
    "generatingFinalReply": "正在生成最终回复...",
    "maxIterSummary": "达到最大迭代次数，正在生成总结...",
    "analyzingRequestShort": "正在分析您的请求...",
    "analyzingRequestPlanning": "开始分析请求并制定测试策略",
    "startingEinoDeepAgent": "正在启动 Eino 多代理（DeepAgent）...",
    "startingEinoMultiAgent": "正在启动 Eino 多代理...",
    "einoAgent": "Eino 代理：{{name}}",
    "peAgentPlanner": "规划器",
    "peAgentExecutor": "执行器",
    "peAgentReplanning": "重规划"
  },
  "timeline": {
    "params": "参数:",
    "executionResult": "执行结果:",
    "executionId": "执行ID:",
    "noResult": "无结果",
    "running": "执行中...",
    "completed": "已完成",
    "execFailed": "执行失败"
  },
  "tasks": {
    "title": "任务管理",
    "stopTask": "停止任务",
    "interruptModalTitle": "中断当前步骤",
    "interruptReasonLabel": "中断说明",
    "interruptModalHint": "有工具在执行时：与 MCP 监控页「终止工具」一致，仅结束当前这一次工具调用，本轮推理会继续；说明可写入工具返回（USER INTERRUPT NOTE）。无工具在执行时（模型纯思考/流式输出）：仍可「中断并继续」——会暂停当前输出，把你的说明合并进上下文并自动续跑；进度详情时间线会出现「用户中断并继续」条目。不需要整轮停止时请优先用本按钮；要结束整条任务请用「彻底停止」。",
    "interruptReasonPlaceholder": "例如：工具耗时过长，请先跳过并总结当前结果…",
    "interruptReasonRequired": "请填写中断说明，以便模型根据你的意图继续。",
    "interruptSubmitting": "提交中...",
    "interruptConfirmContinue": "中断并继续",
    "interruptHardStop": "彻底停止",
    "interruptModalClose": "关闭",
    "userInterruptTimelineTitle": "用户中断说明（继续迭代）",
    "collapseDetail": "收起详情",
    "newTask": "新建任务",
    "autoRefresh": "自动刷新",
    "historyHint": "提示：有已完成的任务历史，请勾选\"显示历史记录\"查看",
    "statusRunning": "执行中",
    "statusCancelling": "取消中",
    "statusFailed": "执行失败",
    "statusTimeout": "执行超时",
    "statusCancelled": "已取消",
    "statusCompleted": "已完成",
    "historyBadge": "历史记录",
    "duration": "执行时长",
    "completedAt": "完成时间",
    "startedAt": "开始时间",
    "clickToCopy": "点击复制",
    "unnamedTask": "未命名任务",
    "unknown": "未知",
    "unknownTime": "未知时间",
    "clearHistoryConfirm": "确定要清空所有任务历史记录吗？",
    "cancelTaskFailed": "取消任务失败",
    "cancelFailed": "取消失败",
    "taskInfoNotSynced": "任务信息尚未同步，请稍后再试。",
    "loadActiveTasksFailed": "获取活跃任务失败",
    "cannotGetTaskStatus": "无法获取任务状态",
    "copiedToast": "已复制!",
    "cancelling": "取消中...",
    "enterTaskPrompt": "请输入至少一个任务",
    "noValidTask": "没有有效的任务",
    "createBatchQueueFailed": "创建批量任务队列失败",
    "noBatchQueues": "当前没有批量任务队列",
    "recentCompletedTasks": "最近完成的任务（最近24小时）",
    "clearHistory": "清空历史",
    "cancelTask": "取消任务",
    "viewConversation": "查看对话",
    "viewVulnerabilities": "查看漏洞",
    "viewVulnerabilitiesQueueTitle": "查看漏洞：打开漏洞管理并筛选本队列",
    "retryTask": "重试",
    "conversationIdLabel": "对话ID",
    "statusPending": "待执行",
    "statusPaused": "已暂停",
    "statusCronCycleIdle": "本轮已完成 · 定时循环中",
    "statusCronRunning": "执行中 · 定时队列",
    "cronNextRunLine": "下次执行：{{time}}",
    "cronRoundDoneProgressHint": "定时队列：子任务已跑完，到点将自动下一轮",
    "cronRunningProgressHint": "本轮执行中；下一整轮仍按 Cron 与「下次执行时间」排程",
    "cronPendingScheduled": "Cron 已排程 · 下次 {{time}}",
    "cronPendingProgressNote": "到点将自动开始；也可手动点「开始执行」立即跑一轮",
    "cronRecurringCallout": "Cron 队列会在「下次执行时间」自动开始新一轮；关闭「允许 Cron 自动调度」即停止循环。",
    "confirmCancelTasks": "确定要取消 {{n}} 个任务吗？",
    "batchCancelResultPartial": "批量取消完成：成功 {{success}} 个，失败 {{fail}} 个",
    "batchCancelResultSuccess": "成功取消 {{n}} 个任务",
    "taskCount": "共 {{count}} 个任务",
    "queueIdLabel": "队列ID",
    "createdTimeLabel": "创建时间",
    "totalLabel": "总计",
    "pendingLabel": "待执行",
    "runningLabel": "执行中",
    "completedLabel": "已完成",
    "failedLabel": "失败",
    "cancelledLabel": "已取消",
    "loadingTasks": "加载中...",
    "loadFailedRetry": "加载失败",
    "loadTaskListFailed": "获取任务列表失败",
    "getQueueDetailFailed": "获取队列详情失败",
    "startBatchQueueFailed": "启动批量任务失败",
    "pauseQueueFailed": "暂停批量任务失败",
    "pauseQueueConfirm": "确定要暂停这个批量任务队列吗？当前正在执行的任务将被停止，后续任务将保留待执行状态。",
    "deleteQueueConfirm": "确定要删除这个批量任务队列吗？此操作不可恢复。",
    "deleteQueueFailed": "删除批量任务队列失败",
    "rerunQueueConfirm": "确定要重跑一轮吗？所有子任务将被重置为待执行状态并重新开始执行。",
    "rerunQueueFailed": "重跑批量任务失败",
    "batchQueueTitle": "批量任务队列",
    "batchQueueUntitled": "未命名队列",
    "resumeExecute": "继续执行",
    "taskIncomplete": "任务信息不完整",
    "cannotGetTaskMessageInput": "无法获取任务消息输入框",
    "taskMessageRequired": "任务消息不能为空",
    "saveTaskFailed": "保存任务失败",
    "queueInfoMissing": "队列信息不存在",
    "addTaskFailed": "添加任务失败",
    "confirmDeleteTask": "确定要删除这个任务吗？\n\n任务内容: {{message}}\n\n此操作不可恢复。",
    "deleteTaskFailed": "删除任务失败",
    "paginationShow": "显示 {{start}}-{{end}} / 共 {{total}} 条记录",
    "paginationPerPage": "每页显示",
    "paginationFirst": "首页",
    "paginationPrev": "上一页",
    "paginationNext": "下一页",
    "paginationLast": "末页",
    "paginationPage": "第 {{current}} / {{total}} 页",
    "deleteQueue": "删除队列",
    "retry": "重试",
    "noMatchingTasks": "当前没有符合条件的任务",
    "updateTaskFailed": "更新任务失败",
    "durationSeconds": "秒",
    "durationMinutes": "分",
    "durationHours": "小时"
  },
  "infoCollect": {
    "enterFofaQuery": "请输入 FOFA 查询语法",
    "querying": "查询中...",
    "queryFailed": "查询失败",
    "enterNaturalLanguage": "请输入自然语言描述",
    "cancelParse": "取消解析",
    "clickToCancelParse": "点击取消 AI 解析",
    "parseToFofa": "将自然语言解析为 FOFA 查询语法",
    "parseResultEmpty": "解析结果为空：请在弹窗中补充/修改 FOFA 查询语法",
    "queryPlaceholder": "例如：app=\"Apache\" && country=\"CN\"",
    "selectAll": "全选/全不选",
    "selectRow": "选择该行",
    "copyTarget": "复制目标",
    "sendToChat": "发送到对话（可编辑；Ctrl/⌘+点击可直接发送）",
    "noTargetToCopy": "没有可复制的目标",
    "targetCopied": "已复制目标",
    "manualCopyHint": "复制失败，请手动复制：",
    "cannotInferTarget": "无法从该行推断扫描目标（建议在 fields 中包含 host/ip/port/domain）",
    "noSendMessage": "未找到 sendMessage()，请刷新页面后重试",
    "filledToInput": "已填入对话输入框，可编辑后发送",
    "noExportResult": "暂无可导出的结果",
    "xlsxNotLoaded": "未加载 XLSX 库，请刷新页面后重试",
    "noResults": "暂无结果",
    "selectRowsFirst": "请先勾选需要扫描的行",
    "noScanTarget": "未能从所选行推断任何可扫描目标（建议 fields 中包含 host/ip/port/domain）",
    "batchScanFailed": "批量扫描失败",
    "batchQueueCreated": "已创建批量扫描队列",
    "field": "字段",
    "parsePending": "AI 解析中...",
    "parsePendingClickCancel": "AI 解析中...（点击按钮可取消）",
    "parseSlow": "AI 解析耗时较长，仍在处理中…",
    "parseDone": "AI 解析完成",
    "parseCancelled": "已取消 AI 解析",
    "parseFailed": "AI 解析失败：",
    "parseResultTitle": "AI 解析结果",
    "naturalLanguageLabel": "自然语言",
    "fofaQueryEditable": "FOFA 查询语法（可编辑）",
    "confirmBeforeQuery": "请人工确认语法与范围无误后再执行查询。",
    "reminder": "提醒",
    "explanation": "解析说明",
    "actions": "操作",
    "batchScanTitle": "FOFA 批量扫描",
    "queueCreatedSkipped": "已创建队列（跳过 {{n}} 条无目标行）",
    "createQueueFailed": "创建批量队列失败",
    "loading": "加载中...",
    "none": "无",
    "truncated": "已截断",
    "resultsMeta": "共 {{total}} 条 · 本页 {{count}} 条 · page={{page}} · size={{size}}",
    "parseModalCancel": "取消",
    "parseModalApply": "填入查询框",
    "parseModalApplyRun": "填入并查询"
  },
  "vulnerability": {
    "title": "漏洞管理",
    "addVuln": "添加漏洞",
    "editVuln": "编辑漏洞",
    "loadFailed": "加载漏洞失败",
    "deleteConfirm": "确定要删除此漏洞吗？"
  },
  "webshell": {
    "title": "WebShell 管理",
    "addConnection": "添加连接",
    "connections": "连接列表",
    "noConnections": "暂无连接，请点击「添加连接」",
    "selectOrAdd": "请从左侧选择连接，或添加新的 WebShell 连接",
    "url": "Shell 地址",
    "urlPlaceholder": "http(s)://target.com/shell.php",
    "password": "连接密码/密钥",
    "passwordPlaceholder": "如冰蝎/蚁剑的连接密码",
    "method": "请求方式",
    "methodPost": "POST",
    "methodGet": "GET",
    "type": "Shell 类型",
    "typePhp": "PHP",
    "typeAsp": "ASP",
    "typeAspx": "ASPX",
    "typeJsp": "JSP",
    "typeCustom": "自定义",
    "cmdParam": "命令参数名",
    "cmdParamPlaceholder": "不填默认为 cmd，如填 xxx 则请求为 xxx=命令",
    "encoding": "响应编码",
    "encodingAuto": "自动检测",
    "encodingUtf8": "UTF-8",
    "encodingGbk": "GBK（中文 Windows）",
    "encodingGb18030": "GB18030",
    "encodingHint": "中文 Windows 目标若出现乱码，请切换为 GBK 或 GB18030",
    "os": "目标系统",
    "osAuto": "自动（按 Shell 类型推断）",
    "osLinux": "Linux / Unix",
    "osWindows": "Windows",
    "osHint": "决定文件管理/上传使用 Linux 还是 Windows 命令；PHP/JSP 跑在 Windows 上请选 Windows",
    "remark": "备注",
    "remarkPlaceholder": "便于识别的备注名",
    "deleteConfirm": "确定要删除该连接吗？",
    "editConnection": "编辑",
    "editConnectionTitle": "编辑连接",
    "tabTerminal": "虚拟终端",
    "tabFileManager": "文件管理",
    "tabAiAssistant": "AI 助手",
    "tabDbManager": "数据库管理",
    "tabMemo": "备忘录",
    "dbType": "数据库类型",
    "dbHost": "主机",
    "dbPort": "端口",
    "dbUsername": "用户名",
    "dbPassword": "密码",
    "dbName": "数据库名",
    "dbSqlitePath": "SQLite 文件路径",
    "dbSqlPlaceholder": "输入 SQL，例如：SELECT version();",
    "dbRunSql": "执行 SQL",
    "dbTest": "测试连接",
    "dbOutput": "执行输出",
    "dbNoConn": "请先选择 WebShell 连接",
    "dbSqlRequired": "请输入 SQL",
    "dbRunning": "数据库命令执行中，请稍候",
    "dbCliHint": "如果提示命令不存在，请先在目标主机安装对应客户端（mysql/psql/sqlite3/sqlcmd）",
    "dbExecFailed": "数据库执行失败",
    "dbSchema": "数据库结构",
    "dbLoadSchema": "加载结构",
    "dbNoSchema": "暂无数据库结构，请先加载",
    "dbSelectTableHint": "点击表名可展开列信息并生成查询 SQL",
    "dbNoColumns": "暂无列信息",
    "dbResultTable": "结果表格",
    "dbClearSql": "清空 SQL",
    "dbTemplateSql": "示例 SQL",
    "dbRows": "行",
    "dbColumns": "列",
    "dbSchemaFailed": "加载数据库结构失败",
    "dbSchemaLoaded": "结构加载完成",
    "dbAddProfile": "新增连接",
    "dbExecSuccess": "SQL 执行成功",
    "dbNoOutput": "执行完成（无输出）",
    "dbRenameProfile": "重命名",
    "dbDeleteProfile": "删除连接",
    "dbDeleteProfileConfirm": "确定删除该数据库连接配置吗？",
    "dbProfileNamePrompt": "请输入连接名称",
    "dbProfileName": "连接名称",
    "dbProfiles": "数据库连接",
    "aiSystemReadyMessage": "系统已就绪。请输入您的测试需求，系统将自动执行相应的安全测试。",
    "aiNewConversation": "新对话",
    "aiPreviousConversation": "之前的对话",
    "aiDeleteConversation": "删除对话",
    "aiDeleteConversationConfirm": "确定删除当前对话记录？",
    "aiPlaceholder": "例如：列出当前目录下的文件",
    "aiSend": "发送",
    "aiMemo": "备忘录",
    "aiMemoPlaceholder": "记录关键命令、测试思路、复现步骤...",
    "aiMemoClear": "清空",
    "aiMemoSaving": "保存中...",
    "aiMemoSaved": "已保存到本地",
    "quickCommands": "快捷命令",
    "downloadFile": "下载",
    "terminalWelcome": "WebShell 虚拟终端 — 输入命令后按回车执行（Ctrl+L 清屏）",
    "filePath": "当前路径",
    "listDir": "列出目录",
    "readFile": "读取",
    "editFile": "编辑",
    "deleteFile": "删除",
    "saveFile": "保存",
    "cancelEdit": "取消",
    "parentDir": "上级目录",
    "execError": "执行失败",
    "testConnectivity": "测试连通性",
    "testSuccess": "连通性正常，Shell 可访问",
    "testFailed": "连通性测试失败",
    "testNoExpectedOutput": "Shell 返回了响应但未得到预期输出，请检查连接密码与命令参数名",
    "clearScreen": "清屏",
    "copyTerminalLog": "复制日志",
    "terminalIdle": "空闲",
    "terminalRunning": "执行中",
    "terminalCopyOk": "日志已复制",
    "terminalCopyFail": "复制失败",
    "terminalNewWindow": "新终端",
    "terminalWindowPrefix": "终端",
    "running": "执行中…",
    "waitFinish": "请等待当前命令执行完成",
    "newDir": "新建目录",
    "rename": "重命名",
    "upload": "上传",
    "newFile": "新建文件",
    "filterPlaceholder": "过滤文件名",
    "batchDelete": "批量删除",
    "batchDownload": "批量下载",
    "refresh": "刷新",
    "selectAll": "全选",
    "searchPlaceholder": "搜索连接...",
    "noMatchConnections": "暂无匹配连接",
    "breadcrumbHome": "根",
    "back": "返回",
    "moreActions": "更多操作",
    "batchProbe": "一键批量探活",
    "probeRunning": "探活中",
    "probeOnline": "在线",
    "probeOffline": "离线",
    "probeNoConnections": "暂无可探活连接",
    "colModifiedAt": "修改时间",
    "colPerms": "权限",
    "colOwner": "所有者",
    "colGroup": "用户组",
    "colType": "类型"
  },
  "mcp": {
    "monitorTitle": "MCP 状态监控",
    "execStats": "执行统计",
    "latestExecutions": "最新执行记录",
    "toolSearch": "工具搜索",
    "toolSearchPlaceholder": "输入工具名称...",
    "statusFilter": "状态筛选",
    "filterAll": "全部",
    "filterEnabled": "已启用",
    "filterDisabled": "已停用",
    "selectedCount": "已选择 {{count}} 项",
    "selectAll": "全选",
    "deselectAll": "全不选",
    "deleteSelected": "批量删除",
    "deleteExecConfirm": "确定要删除此执行记录吗？",
    "batchDeleteFailed": "批量删除执行记录失败",
    "managementTitle": "MCP 管理",
    "addExternal": "添加外部MCP",
    "toolConfig": "MCP 工具配置",
    "saveToolConfig": "保存工具配置",
    "alwaysVisibleLabel": "常驻",
    "alwaysVisibleHint": "始终常驻在 Tool Search 可见列表（不被 tool_search 隐藏）",
    "alwaysVisibleBuiltinLabel": "内置默认",
    "alwaysVisibleBuiltinHint": "后端内置工具默认常驻，不可关闭",
    "externalConfig": "外部 MCP 配置",
    "loadingTools": "正在加载工具列表...",
    "loadToolsTimeout": "加载工具列表超时，可能是外部MCP连接较慢。请点击\"刷新\"按钮重试，或检查外部MCP连接状态。",
    "loadToolsFailed": "加载工具列表失败",
    "noTools": "暂无工具",
    "externalBadge": "外部",
    "externalFrom": "外部 ({{name}})",
    "externalToolFrom": "外部MCP工具 - 来源：{{name}}",
    "noDescription": "无描述",
    "paginationInfo": "显示 {{start}}-{{end}} / 共 {{total}} 个工具",
    "perPage": "每页:",
    "firstPage": "首页",
    "prevPage": "上一页",
    "nextPage": "下一页",
    "lastPage": "末页",
    "pageInfo": "第 {{page}} / {{total}} 页",
    "currentPageEnabled": "当前页已启用",
    "totalEnabled": "总计已启用",
    "toolsConfigSaved": "工具配置已成功保存！",
    "saveToolsConfigFailed": "保存工具配置失败",
    "getConfigFailed": "获取配置失败",
    "noExternalMCP": "暂无外部MCP配置",
    "clickToAddExternal": "点击\"添加外部MCP\"按钮开始配置",
    "connected": "已连接",
    "connecting": "连接中...",
    "connectionFailed": "连接失败",
    "disabled": "已禁用",
    "disconnected": "未连接",
    "stopConnection": "停止连接",
    "startConnection": "启动连接",
    "stop": "停止",
    "start": "启动",
    "editConfig": "编辑配置",
    "deleteConfig": "删除配置",
    "transportMode": "传输模式",
    "toolCount": "工具数量",
    "description": "描述",
    "timeout": "超时时间",
    "command": "命令",
    "addExternalMCP": "添加外部MCP",
    "editExternalMCP": "编辑外部MCP",
    "jsonEmpty": "JSON不能为空",
    "jsonError": "JSON格式错误",
    "configMustBeObject": "配置错误: 必须是JSON对象格式，key为配置名称，value为配置内容",
    "configNeedOne": "配置错误: 至少需要一个配置项",
    "configNameEmpty": "配置错误: 配置名称不能为空",
    "configMustBeObj": "配置错误: \"{{name}}\" 的配置必须是对象",
    "configNeedCommand": "配置错误: \"{{name}}\" 需要指定command（stdio模式）或url（http/sse模式）",
    "configStdioNeedCommand": "配置错误: \"{{name}}\" stdio模式需要command字段",
    "configHttpNeedUrl": "配置错误: \"{{name}}\" http模式需要url字段",
    "configSseNeedUrl": "配置错误: \"{{name}}\" sse模式需要url字段",
    "configEditMustContainName": "配置错误: 编辑模式下，JSON必须包含配置名称 \"{{name}}\"",
    "saveSuccess": "保存成功",
    "deleteSuccess": "删除成功",
    "deleteExternalConfirm": "确定要删除外部MCP \"{{name}}\" 吗？",
    "operationFailed": "操作失败",
    "connectionFailedCheck": "连接失败，请检查配置和网络连接",
    "connectionTimeout": "连接超时，请检查配置和网络连接",
    "totalCount": "总数",
    "enabledCount": "已启用",
    "disabledCount": "已停用",
    "connectedCount": "已连接",
    "toolsCountValue": "🔧 {{count}} 个工具",
    "connectionErrorLabel": "连接错误：",
    "secondsUnit": "秒",
    "urlLabel": "URL",
    "loadExternalMCPFailed": "加载失败"
  },
  "settings": {
    "title": "系统设置",
    "nav": {
      "basic": "基本设置",
      "knowledge": "知识库",
      "c2": "C2",
      "robots": "机器人设置",
      "terminal": "终端",
      "security": "安全设置",
      "infocollect": "信息收集"
    },
    "infocollect": {
      "title": "信息收集"
    },
    "knowledge": {
      "title": "知识库设置"
    },
    "c2": {
      "title": "C2 设置",
      "sectionTitle": "内置 C2",
      "enableLabel": "启用内置 C2（监听器、会话、Payload、MCP 工具等）",
      "enableHint": "关闭后不再启动监听器、不注册 C2 相关 MCP 工具，侧栏 C2 入口将隐藏；仅本机使用对话与知识库时可关闭以节省资源。修改后请点击「应用配置」。"
    },
    "robots": {
      "title": "机器人设置",
      "description": "配置企业微信、钉钉、飞书等机器人，在手机端直接与 CyberStrikeAI 对话，无需在服务器上打开网页。",
      "wecom": {
        "title": "企业微信",
        "enabled": "启用企业微信机器人",
        "token": "Token",
        "tokenPlaceholder": "Token",
        "encodingAesKey": "EncodingAESKey",
        "encodingAesKeyPlaceholder": "EncodingAESKey（明文模式可留空）",
        "corpId": "CorpID",
        "corpIdPlaceholder": "企业 ID",
        "secret": "Secret",
        "secretPlaceholder": "应用 Secret",
        "agentId": "AgentID",
        "agentIdPlaceholder": "应用 AgentId"
      },
      "dingtalk": {
        "title": "钉钉",
        "enabled": "启用钉钉机器人",
        "clientIdLabel": "Client ID (AppKey)",
        "clientIdPlaceholder": "钉钉应用 AppKey",
        "clientSecretLabel": "Client Secret",
        "clientSecretPlaceholder": "钉钉应用 Secret",
        "streamHint": "需开启机器人能力并配置流式接入"
      },
      "lark": {
        "title": "飞书 (Lark)",
        "enabled": "启用飞书机器人",
        "appIdLabel": "App ID",
        "appIdPlaceholder": "飞书应用 App ID",
        "appSecretLabel": "App Secret",
        "appSecretPlaceholder": "飞书应用 App Secret",
        "verifyTokenLabel": "Verify Token（可选）",
        "verifyTokenPlaceholder": "事件订阅 Verification Token"
      }
    },
    "apply": {
      "button": "应用配置",
      "loadFailed": "加载配置失败",
      "fillRequired": "请填写所有必填字段（标记为 * 的字段）",
      "applyFailed": "应用配置失败",
      "applySuccess": "配置已成功应用！"
    },
    "security": {
      "changePassword": "修改密码",
      "fillPasswordHint": "请正确填写当前密码和新密码，新密码至少 8 位且需要两次输入一致。",
      "changePasswordFailed": "修改密码失败",
      "passwordUpdated": "密码已更新，请使用新密码重新登录。"
    }
  },
  "auth": {
    "sessionExpired": "认证已过期，请重新登录",
    "unauthorized": "未授权访问",
    "enterPassword": "请输入密码",
    "loginFailedCheck": "登录失败，请检查密码",
    "loginFailedRetry": "登录失败，请稍后重试",
    "loggedOut": "已退出登录"
  },
  "knowledge": {
    "title": "知识管理",
    "retrievalLogs": "检索历史",
    "totalItems": "总知识项",
    "categories": "分类数",
    "addKnowledge": "添加知识",
    "rebuildIndex": "重建索引",
    "rebuildIndexConfirm": "确定要重建索引吗？",
    "deleteItemConfirm": "确定要删除这个知识项吗？",
    "notEnabledTitle": "知识库功能未启用",
    "notEnabledHint": "请前往系统设置启用知识检索功能",
    "goToSettings": "前往设置"
  },
  "roles": {
    "title": "角色管理",
    "createRole": "创建角色",
    "searchPlaceholder": "搜索角色...",
    "deleteConfirm": "确定要删除角色...",
    "loadFailed": "加载角色失败",
    "noDescription": "暂无描述",
    "defaultRoleDescription": "默认角色，不额外携带用户提示词，使用默认MCP",
    "noMatchingRoles": "没有找到匹配的角色",
    "noRoles": "暂无角色",
    "enabled": "已启用",
    "disabled": "已禁用",
    "noDescriptionShort": "无描述"
  },
  "skills": {
    "title": "Skills管理",
    "monitorTitle": "Skills状态监控",
    "createSkill": "创建Skill",
    "callStats": "调用统计",
    "addSkill": "添加Skill",
    "editSkill": "编辑Skill",
    "loadListFailed": "加载skills列表失败",
    "noSkills": "暂无skills，点击\"创建Skill\"创建第一个skill",
    "noMatch": "没有找到匹配的skills",
    "searchFailed": "搜索失败",
    "refreshed": "已刷新",
    "loadDetailFailed": "加载skill详情失败",
    "viewFailed": "查看skill失败",
    "saving": "保存中...",
    "saveFailed": "保存skill失败",
    "deleteFailed": "删除skill失败",
    "loadStatsFailed": "加载skills监控数据失败",
    "clearStatsConfirm": "确定要清空所有Skills统计数据吗？此操作不可恢复。",
    "statsCleared": "已清空所有Skills统计数据",
    "clearStatsFailed": "清空统计数据失败",
    "noDescription": "无描述",
    "viewSkillTitle": "查看Skill: {{name}}",
    "descriptionLabel": "描述:",
    "pathLabel": "路径:",
    "modTimeLabel": "修改时间:",
    "contentLabel": "内容:",
    "cardVersion": "v{{version}}",
    "cardScripts": "{{count}} 个脚本",
    "cardFiles": "{{count}} 个文件",
    "versionLabel": "版本:",
    "scriptsHeading": "脚本:",
    "summaryHint": "（摘要 — 可加载完整正文）",
    "loadFullBody": "加载完整正文",
    "loadFullFailed": "加载完整正文失败",
    "nameRequired": "skill名称不能为空",
    "contentRequired": "skill内容不能为空",
    "nameInvalid": "目录名须为小写字母、数字与连字符（与 Agent Skills 的 name 一致）",
    "descriptionRequired": "描述不能为空（将写入 SKILL.md 的 front matter）",
    "saveSuccess": "skill已更新",
    "createdSuccess": "skill已创建",
    "deleteConfirm": "确定要删除skill \"{{name}}\" 吗？此操作不可恢复。",
    "deleteConfirmWithRoles": "确定要删除skill \"{{name}}\" 吗？\n\n⚠️ 该skill当前已被以下 {{count}} 个角色绑定：\n{{roles}}\n\n删除后，系统将自动从这些角色中移除该skill的绑定。\n\n此操作不可恢复，是否继续？",
    "deleteSuccess": "skill已删除",
    "deleteSuccessWithRoles": "skill已删除，已自动从 {{count}} 个角色中移除绑定：{{roles}}",
    "loadFailedShort": "加载失败",
    "totalSkillsCount": "总Skills数",
    "totalCallsCount": "总调用次数",
    "successfulCalls": "成功调用",
    "failedCalls": "失败调用",
    "successRate": "成功率",
    "skillName": "Skill名称",
    "totalCalls": "总调用",
    "success": "成功",
    "failure": "失败",
    "lastCallTime": "最后调用时间",
    "noCallRecords": "暂无Skills调用记录",
    "loadStatsErrorShort": "无法加载统计信息",
    "loadCallStatsError": "无法加载调用统计"
  },
  "apiDocs": {
    "pageTitle": "API 文档 - CyberStrikeAI",
    "title": "API 文档",
    "subtitle": "CyberStrikeAI 平台 API 接口文档，支持在线测试",
    "authTitle": "API 认证说明",
    "authAllNeedToken": "所有 API 接口都需要 Token 认证。",
    "authGetToken": "1. 获取 Token：",
    "authGetTokenDesc": "在前端页面登录后，Token 会自动保存。您也可以通过以下方式获取：",
    "authUseToken": "2. 使用 Token：",
    "authUseTokenDesc": "在请求头中添加 Authorization 字段：",
    "authTip": "💡 提示：本页面会自动使用您已登录的 Token，无需手动填写。",
    "tokenDetected": "✓ 已检测到 Token - 您可以直接测试 API 接口",
    "tokenNotDetected": "⚠ 未检测到 Token - 请先在前端页面登录，然后刷新此页面。测试接口时需要在请求头中添加 Authorization: Bearer token",
    "sidebarGroupTitle": "API 分组",
    "allApis": "全部接口",
    "loading": "加载中...",
    "loadingDesc": "正在加载 API 文档",
    "errorLoginRequired": "需要登录才能查看API文档。请先在前端页面登录，然后刷新此页面。",
    "errorLoadSpec": "加载API规范失败: ",
    "errorLoadFailed": "加载API文档失败: ",
    "errorSpecInvalid": "API规范格式错误",
    "loadFailed": "加载失败",
    "backToLogin": "返回首页登录",
    "noApis": "暂无API",
    "noEndpointsInGroup": "该分组下没有API端点",
    "sectionDescription": "描述",
    "viewDetailDesc": "查看详细说明",
    "hideDetailDesc": "隐藏详细说明",
    "noDescription": "无描述",
    "sectionParams": "参数",
    "paramName": "参数名",
    "type": "类型",
    "description": "描述",
    "required": "必需",
    "optional": "可选",
    "sectionRequestBody": "请求体",
    "example": "示例",
    "exampleJson": "示例JSON:",
    "sectionResponse": "响应",
    "testSection": "测试接口",
    "requestBodyJson": "请求体 (JSON)",
    "queryParams": "查询参数:",
    "sendRequest": "发送请求",
    "copyCurl": "复制curl",
    "clearResult": "清除结果",
    "copyCurlTitle": "复制curl命令",
    "clearResultTitle": "清除测试结果",
    "sendingRequest": "发送请求中...",
    "errorPathParamRequired": "路径参数 {{name}} 不能为空",
    "errorQueryParamRequired": "查询参数 {{name}} 不能为空",
    "errorTokenRequired": "未检测到 Token。请先在前端页面登录，然后刷新此页面。或者手动在请求头中添加 Authorization: Bearer your_token",
    "errorJsonInvalid": "请求体JSON格式错误: ",
    "requestFailed": "请求失败: ",
    "copied": "已复制",
    "curlCopied": "curl命令已复制到剪贴板！",
    "copyFailedManual": "复制失败，请手动复制:\n\n",
    "curlGenFailed": "生成curl命令失败: ",
    "requestBodyPlaceholder": "请输入JSON格式的请求体",
    "tags": {
      "auth": "认证",
      "conversationManagement": "对话管理",
      "conversationInteraction": "对话交互",
      "batchTasks": "批量任务",
      "conversationGroups": "对话分组",
      "vulnerabilityManagement": "漏洞管理",
      "roleManagement": "角色管理",
      "skillsManagement": "Skills管理",
      "monitoring": "监控",
      "configManagement": "配置管理",
      "externalMCPManagement": "外部MCP管理",
      "attackChain": "攻击链",
      "knowledgeBase": "知识库",
      "mcp": "MCP",
      "fofaRecon": "FOFA信息收集",
      "terminal": "终端",
      "webshellManagement": "WebShell管理",
      "chatUploads": "对话附件",
      "robotIntegration": "机器人集成",
      "markdownAgents": "多代理Markdown"
    },
    "summary": {
      "login": "用户登录",
      "logout": "用户登出",
      "changePassword": "修改密码",
      "validateToken": "验证Token",
      "createConversation": "创建对话",
      "listConversations": "列出对话",
      "getConversationDetail": "查看对话详情",
      "updateConversation": "更新对话",
      "deleteConversation": "删除对话",
      "getConversationResult": "获取对话结果",
      "sendMessageNonStream": "发送消息并获取AI回复（非流式）",
      "sendMessageStream": "发送消息并获取AI回复（流式）",
      "cancelTask": "取消任务",
      "listRunningTasks": "列出运行中的任务",
      "listCompletedTasks": "列出已完成的任务",
      "createBatchQueue": "创建批量任务队列",
      "listBatchQueues": "列出批量任务队列",
      "getBatchQueue": "获取批量任务队列",
      "deleteBatchQueue": "删除批量任务队列",
      "startBatchQueue": "启动批量任务队列",
      "pauseBatchQueue": "暂停批量任务队列",
      "addTaskToQueue": "添加任务到队列",
      "sqlInjectionScan": "SQL注入扫描",
      "portScan": "端口扫描",
      "updateBatchTask": "更新批量任务",
      "deleteBatchTask": "删除批量任务",
      "createGroup": "创建分组",
      "listGroups": "列出分组",
      "getGroup": "获取分组",
      "updateGroup": "更新分组",
      "deleteGroup": "删除分组",
      "getGroupConversations": "获取分组中的对话",
      "addConversationToGroup": "添加对话到分组",
      "removeConversationFromGroup": "从分组移除对话",
      "listVulnerabilities": "列出漏洞",
      "createVulnerability": "创建漏洞",
      "getVulnerabilityStats": "获取漏洞统计",
      "getVulnerability": "获取漏洞",
      "updateVulnerability": "更新漏洞",
      "deleteVulnerability": "删除漏洞",
      "listRoles": "列出角色",
      "createRole": "创建角色",
      "getRole": "获取角色",
      "updateRole": "更新角色",
      "deleteRole": "删除角色",
      "getAvailableSkills": "获取可用Skills列表",
      "listSkills": "列出Skills",
      "createSkill": "创建Skill",
      "getSkillStats": "获取Skill统计",
      "clearSkillStats": "清空Skill统计",
      "getSkill": "获取Skill",
      "updateSkill": "更新Skill",
      "deleteSkill": "删除Skill",
      "getBoundRoles": "获取绑定角色",
      "clearSkillStatsAlt": "清空Skill统计",
      "getMonitorInfo": "获取监控信息",
      "getExecutionRecords": "获取执行记录",
      "deleteExecutionRecord": "删除执行记录",
      "batchDeleteExecutionRecords": "批量删除执行记录",
      "getStats": "获取统计信息",
      "getConfig": "获取配置",
      "updateConfig": "更新配置",
      "getToolConfig": "获取工具配置",
      "applyConfig": "应用配置",
      "listExternalMCP": "列出外部MCP",
      "getExternalMCPStats": "获取外部MCP统计",
      "getExternalMCP": "获取外部MCP",
      "addOrUpdateExternalMCP": "添加或更新外部MCP",
      "stdioModeConfig": "stdio模式配置",
      "sseModeConfig": "SSE模式配置",
      "deleteExternalMCP": "删除外部MCP",
      "startExternalMCP": "启动外部MCP",
      "stopExternalMCP": "停止外部MCP",
      "getAttackChain": "获取攻击链",
      "regenerateAttackChain": "重新生成攻击链",
      "pinConversation": "设置对话置顶",
      "pinGroup": "设置分组置顶",
      "pinGroupConversation": "设置分组中对话的置顶",
      "getCategories": "获取分类",
      "listKnowledgeItems": "列出知识项",
      "createKnowledgeItem": "创建知识项",
      "getKnowledgeItem": "获取知识项",
      "updateKnowledgeItem": "更新知识项",
      "deleteKnowledgeItem": "删除知识项",
      "getIndexStatus": "获取索引状态",
      "rebuildIndex": "重建索引",
      "scanKnowledgeBase": "扫描知识库",
      "searchKnowledgeBase": "搜索知识库",
      "basicSearch": "基础搜索",
      "searchByRiskType": "按风险类型搜索",
      "getRetrievalLogs": "获取检索日志",
      "deleteRetrievalLog": "删除检索日志",
      "mcpEndpoint": "MCP端点",
      "listAllTools": "列出所有工具",
      "invokeTool": "调用工具",
      "initConnection": "初始化连接",
      "successResponse": "成功响应",
      "errorResponse": "错误响应",
      "deleteConversationTurn": "删除对话轮次",
      "getMessageProcessDetails": "获取消息过程详情",
      "rerunBatchQueue": "重跑批量任务队列",
      "updateBatchQueueMetadata": "修改队列元数据",
      "updateBatchQueueSchedule": "修改队列调度配置",
      "setBatchQueueScheduleEnabled": "开关Cron自动调度",
      "getAllGroupMappings": "获取所有分组映射",
      "fofaSearch": "FOFA搜索",
      "fofaParse": "自然语言解析为FOFA语法",
      "testOpenAI": "测试OpenAI API连接",
      "terminalRun": "执行终端命令",
      "terminalRunStream": "流式执行终端命令",
      "terminalWS": "WebSocket终端",
      "listWebshellConnections": "列出WebShell连接",
      "createWebshellConnection": "创建WebShell连接",
      "updateWebshellConnection": "更新WebShell连接",
      "deleteWebshellConnection": "删除WebShell连接",
      "getWebshellConnectionState": "获取连接状态",
      "saveWebshellConnectionState": "保存连接状态",
      "getWebshellAIHistory": "获取AI对话历史",
      "listWebshellAIConversations": "列出AI对话",
      "webshellExec": "执行WebShell命令",
      "webshellFileOp": "WebShell文件操作",
      "listChatUploads": "列出附件",
      "uploadChatFile": "上传附件",
      "deleteChatUpload": "删除附件",
      "downloadChatUpload": "下载附件",
      "getChatUploadContent": "获取附件文本内容",
      "putChatUploadContent": "写入附件文本内容",
      "mkdirChatUpload": "创建附件目录",
      "renameChatUpload": "重命名附件",
      "wecomCallbackVerify": "企业微信回调验证",
      "wecomCallbackMessage": "企业微信消息回调",
      "dingtalkCallback": "钉钉消息回调",
      "larkCallback": "飞书消息回调",
      "testRobot": "测试机器人消息处理",
      "listMarkdownAgents": "列出Markdown代理",
      "createMarkdownAgent": "创建Markdown代理",
      "getMarkdownAgent": "获取Markdown代理详情",
      "updateMarkdownAgent": "更新Markdown代理",
      "deleteMarkdownAgent": "删除Markdown代理",
      "listSkillPackageFiles": "列出技能包文件",
      "getSkillPackageFile": "获取技能包文件内容",
      "putSkillPackageFile": "写入技能包文件",
      "batchGetToolNames": "批量获取工具名称",
      "getKnowledgeStats": "获取知识库统计"
    },
    "response": {
      "getSuccess": "获取成功",
      "unauthorized": "未授权",
      "unauthorizedToken": "未授权，需要有效的Token",
      "createSuccess": "创建成功",
      "badRequest": "请求参数错误",
      "conversationNotFound": "对话不存在",
      "conversationOrResultNotFound": "对话不存在或结果不存在",
      "badRequestTaskEmpty": "请求参数错误（如task为空）",
      "badRequestGroupNameExists": "请求参数错误或分组名称已存在",
      "groupNotFound": "分组不存在",
      "badRequestConfig": "请求参数错误（如配置格式不正确、缺少必需字段等）",
      "badRequestQueryEmpty": "请求参数错误（如query为空）",
      "methodNotAllowed": "方法不允许（仅支持POST请求）",
      "loginSuccess": "登录成功",
      "invalidPassword": "密码错误",
      "logoutSuccess": "登出成功",
      "passwordChanged": "密码修改成功",
      "tokenValid": "Token有效",
      "tokenInvalid": "Token无效或已过期",
      "conversationCreated": "对话创建成功",
      "internalError": "服务器内部错误",
      "updateSuccess": "更新成功",
      "deleteSuccess": "删除成功",
      "queueNotFound": "队列不存在",
      "startSuccess": "启动成功",
      "pauseSuccess": "暂停成功",
      "addSuccess": "添加成功",
      "taskNotFound": "任务不存在",
      "conversationOrGroupNotFound": "对话或分组不存在",
      "cancelSubmitted": "取消请求已提交",
      "noRunningTask": "未找到正在执行的任务",
      "messageSent": "消息发送成功，返回AI回复",
      "streamResponse": "流式响应（Server-Sent Events）",
      "badRequestOrDeleteFailed": "参数错误或删除失败",
      "paramError": "参数错误",
      "onlyCompletedOrCancelledCanRerun": "仅已完成或已取消的队列可以重跑",
      "badRequestOrQueueRunning": "参数错误或队列正在运行中",
      "setSuccess": "设置成功",
      "searchSuccess": "搜索成功",
      "parseSuccess": "解析成功",
      "testResult": "测试结果",
      "executionDone": "执行完成",
      "sseEventStream": "SSE事件流",
      "wsEstablished": "WebSocket连接已建立",
      "fileDownload": "文件下载",
      "fileNotFound": "文件不存在",
      "writeSuccess": "写入成功",
      "renameSuccess": "重命名成功",
      "wecomVerifySuccess": "验证成功，返回解密后的echostr",
      "processSuccess": "处理成功",
      "agentNotFound": "代理不存在",
      "saveSuccess": "保存成功",
      "operationResult": "操作结果",
      "executionResult": "执行结果",
      "connectionNotFound": "连接不存在"
    }
  },
  "chatGroup": {
    "search": "搜索",
    "edit": "编辑",
    "delete": "删除",
    "clearSearch": "清除搜索",
    "searchInGroupPlaceholder": "搜索分组中的对话...",
    "attackChain": "攻击链",
    "viewAttackChain": "查看攻击链",
    "selectRole": "选择角色",
    "close": "关闭",
    "selectFile": "选择文件",
    "uploadFile": "上传文件（可多选或拖拽到此处）",
    "send": "发送",
    "rolePanelTitle": "选择角色",
    "copyMessage": "复制消息内容",
    "remove": "移除"
  },
  "mcpMonitor": {
    "deselectAll": "取消全选",
    "statusPending": "等待中",
    "statusCompleted": "已完成",
    "statusRunning": "执行中",
    "statusFailed": "失败",
    "statusCancelled": "已终止",
    "terminateExecution": "终止",
    "loading": "加载中...",
    "noStatsData": "暂无统计数据",
    "noExecutions": "暂无执行记录",
    "noRecordsWithFilter": "当前筛选条件下暂无记录",
    "paginationInfo": "显示 {{start}}-{{end}} / 共 {{total}} 条记录",
    "perPageLabel": "每页显示",
    "loadStatsError": "无法加载统计信息",
    "loadExecutionsError": "无法加载执行记录",
    "totalCalls": "总调用次数",
    "successFailed": "成功 {{success}} / 失败 {{failed}}",
    "successRate": "成功率",
    "statsFromAllTools": "统计自全部工具调用",
    "lastCall": "最近一次调用",
    "lastRefreshTime": "最后刷新时间",
    "noCallsYet": "暂无调用",
    "unknownTool": "未知工具",
    "successFailedRate": "成功 {{success}} / 失败 {{failed}} · 成功率 {{rate}}%",
    "topToolsTitle": "工具调用 Top {{n}}",
    "barVolumeLegend": "条长表示相对调用量，条内绿/红为成功/失败占比",
    "clickToFilterTool": "点击行筛选下方执行记录",
    "toolRowAriaLabel": "{{name}}，{{total}} 次调用，成功率 {{rate}}%，点击查看执行记录",
    "successRateAria": "成功率 {{rate}}%",
    "filterByToolTitle": "筛选工具：{{tool}}",
    "clearToolFilter": "清除工具筛选",
    "successCount": "成功 {{n}}",
    "failedCount": "失败 {{n}}",
    "rateHealthy": "运行平稳",
    "rateWarning": "存在失败调用",
    "rateCritical": "失败率偏高",
    "statsSubtitle": "最后刷新 {{time}} · 共 {{count}} 个工具",
    "distTitle": "调用分布",
    "distLegend": "扇区面积为占全部调用比例",
    "distClickHint": "点击图例或扇区筛选执行记录",
    "distHeaderHint": "共 {{n}} 次调用",
    "distSegmentAria": "{{name}}，占 {{pct}}%，{{calls}} 次",
    "distOthersNoFilter": "其他工具无法单独筛选",
    "distTotalCalls": "共 {{n}} 次调用",
    "distTop6Share": "Top {{n}} 占全部调用",
    "distOthers": "其他工具",
    "distCallsUnit": "{{n}} 次",
    "riskTitle": "失败提醒",
    "riskNone": "近期无失败调用",
    "riskItem": "{{name}}：失败 {{failed}} / {{total}} 次",
    "selectedToolTitle": "当前筛选",
    "selectedToolEmpty": "点击左侧工具行，可筛选下方执行记录",
    "selectedToolStats": "调用 {{total}} 次 · 成功 {{success}} · 失败 {{failed}} · 成功率 {{rate}}%",
    "columnTool": "工具",
    "columnStatus": "状态",
    "columnStartTime": "开始时间",
    "columnDuration": "耗时",
    "columnActions": "操作",
    "viewDetail": "查看详情",
    "delete": "删除",
    "deleteExecTitle": "删除此执行记录",
    "deleteExecConfirmSingle": "确定要删除此执行记录吗？此操作不可恢复。",
    "deleteExecFailed": "删除执行记录失败",
    "execDeleted": "执行记录已删除",
    "selectExecFirst": "请先选择要删除的执行记录",
    "batchDeleteConfirm": "确定要删除选中的 {{count}} 条执行记录吗？此操作不可恢复。",
    "batchDeleteSuccess": "成功删除 {{count}} 条执行记录",
    "unknown": "未知",
    "durationSeconds": "{{n}} 秒",
    "durationMinutes": "{{minutes}} 分 {{seconds}} 秒",
    "durationMinutesOnly": "{{minutes}} 分",
    "durationHours": "{{hours}} 小时 {{minutes}} 分",
    "durationHoursOnly": "{{hours}} 小时"
  },
  "knowledgePage": {
    "totalContent": "总内容",
    "categoryFilter": "分类筛选",
    "all": "全部",
    "searchPlaceholder": "搜索知识...",
    "loading": "加载中..."
  },
  "retrievalLogs": {
    "totalRetrievals": "总检索次数",
    "successRetrievals": "成功检索",
    "successRate": "成功率",
    "retrievedItems": "检索到知识项",
    "conversationId": "对话ID",
    "messageId": "消息ID",
    "filter": "筛选",
    "optionalConversation": "可选：筛选特定对话",
    "optionalMessage": "可选：筛选特定消息",
    "loading": "加载中...",
    "noRecords": "暂无检索记录",
    "noQuery": "无查询内容",
    "itemsUnit": "项",
    "hasResults": "有结果",
    "noResults": "无结果",
    "clickToCopy": "点击复制",
    "retrievalResult": "检索结果",
    "foundCount": "找到 {{count}} 个相关知识项",
    "foundUnknown": "找到相关知识项（数量未知）",
    "noMatch": "未找到匹配的知识项",
    "retrievedItemsLabel": "检索到的知识项:",
    "viewDetails": "查看详情",
    "loadError": "加载检索日志失败",
    "detailError": "无法获取检索详情",
    "deleteError": "删除检索日志失败",
    "detailsTitle": "检索详情",
    "queryInfo": "查询信息",
    "queryContent": "查询内容:",
    "retrievalInfo": "检索信息",
    "riskType": "风险类型",
    "retrievalTime": "检索时间",
    "noItemDetails": "未找到知识项详情",
    "noContentPreview": "无内容预览",
    "untitled": "未命名",
    "uncategorized": "未分类",
    "relatedInfo": "关联信息",
    "itemsCount": "{{count}} 个知识项",
    "deleteConfirm": "确定要删除这条检索记录吗？"
  },
  "infoCollectPage": {
    "title": "信息收集",
    "reset": "重置",
    "confirm": "确定",
    "fofaQuerySyntax": "FOFA 查询语法",
    "naturalLanguage": "自然语言（AI 解析为 FOFA 语法）",
    "returnCount": "返回数量",
    "pageNum": "页码",
    "returnFields": "返回字段名（逗号分隔）",
    "queryResults": "查询结果",
    "selectedRows": "已选择 {{count}} 条",
    "selectedRowsZero": "已选择 0 条",
    "columns": "列",
    "exportCsv": "导出 CSV",
    "exportJson": "导出 JSON",
    "exportXlsx": "导出 XLSX",
    "batchScan": "批量扫描",
    "showColumns": "显示字段",
    "columnsPanelAll": "全选",
    "columnsPanelNone": "全不选",
    "columnsPanelClose": "关闭",
    "formHint": "查询语法参考 FOFA 文档，支持 && / || / () 等。",
    "parseBtn": "AI 解析",
    "parseHint": "解析后会弹窗展示 FOFA 语法（可编辑），确认无误后再填入查询框并执行查询。",
    "minFields": "最小字段",
    "webCommon": "Web 常用",
    "intelEnhanced": "情报增强",
    "presetApache": "Apache + 中国",
    "presetLogin": "登录页 + 中国",
    "presetDomain": "指定域名",
    "presetIp": "指定 IP",
    "queryPresetsAria": "FOFA 查询示例",
    "fieldsPresetsAria": "FOFA 字段模板",
    "resultsToolbarAria": "结果工具条",
    "fillExample": "填入示例",
    "parseBtnTitle": "将自然语言解析为 FOFA 查询语法",
    "minFieldsTitle": "适合快速导出目标",
    "webCommonTitle": "适合浏览和筛选",
    "intelEnhancedTitle": "更偏指纹/情报",
    "fullLabel": "full",
    "nlPlaceholder": "例如：找美国 Missouri 的 Apache 站点，标题包含 Home",
    "showHideColumns": "显示/隐藏字段",
    "exportCsvTitle": "导出当前结果为 CSV（UTF-8，兼容中文）",
    "exportJsonTitle": "导出当前结果为 JSON",
    "exportXlsxTitle": "导出当前结果为 Excel",
    "batchScanTitle": "将所选行创建为批量任务队列"
  },
  "chatFilesPage": {
    "title": "文件管理",
    "intro": "管理在对话中上传的文件。需要让 AI 引用某文件时，在列表中点击「复制路径」，到对话里粘贴即可（路径为服务器上的绝对路径，与对话附件保存位置一致）。",
    "upload": "上传文件",
    "conversationFilter": "会话 ID",
    "conversationPlaceholder": "留空表示全部",
    "searchName": "文件名",
    "searchNamePlaceholder": "筛选文件名",
    "groupBy": "分组方式",
    "groupNone": "不分组（平铺）",
    "groupByDate": "按日期",
    "groupByConversation": "按会话",
    "groupByFolder": "按文件夹（路径浏览）",
    "browseRoot": "chat_uploads",
    "browseUp": "上级",
    "enterFolderTitle": "进入此文件夹",
    "copyFolderPathTitle": "复制该目录的相对路径（chat_uploads/…）",
    "folderPathCopied": "目录路径已复制，可粘贴到对话中",
    "folderEmpty": "此文件夹为空",
    "confirmDeleteFolder": "确定删除该文件夹及其中的全部文件？此操作不可恢复。",
    "folderRemovedStale": "服务器上已无该目录，列表已刷新。",
    "deleteFolderTitle": "删除文件夹",
    "uploadToFolderTitle": "上传文件到此文件夹",
    "newFolderButton": "新建文件夹",
    "newFolderTitle": "新建文件夹",
    "newFolderLocation": "位置",
    "newFolderNameLabel": "文件夹名称",
    "newFolderNamePlaceholder": "仅名称，不含 /",
    "mkdirOk": "文件夹已创建",
    "mkdirExists": "该名称已存在",
    "mkdirInvalidName": "名称无效：不能为空，且不能包含 /、\\ 或 . / ..",
    "colSubPath": "子路径",
    "folderRoot": "（根目录）",
    "groupCount": "{{count}} 个文件",
    "convManual": "手动上传",
    "convNew": "新对话",
    "colDate": "日期",
    "colConversation": "会话",
    "colName": "文件名",
    "colSize": "大小",
    "colModified": "修改时间",
    "colActions": "操作",
    "copyPath": "复制路径",
    "copyPathTitle": "复制服务器上的绝对路径，可粘贴到对话中让模型引用该文件",
    "pathCopied": "路径已复制，可到对话中粘贴使用",
    "uploadOkHint": "上传成功。点击「复制路径」可复制绝对路径到剪贴板。",
    "uploadingFile": "正在上传 {{name}} · {{percent}}%",
    "moreActions": "更多：打开对话、编辑、重命名、删除",
    "download": "下载",
    "edit": "编辑",
    "rename": "重命名",
    "openChat": "打开对话",
    "confirmDelete": "确定删除该文件？",
    "editTitle": "编辑文件",
    "renameTitle": "重命名",
    "newFileName": "新文件名",
    "empty": "暂无对话附件",
    "errorLoad": "加载失败",
    "editBinaryHint": "图片、压缩包等二进制文件无法在此以文本方式编辑，请使用「下载」后在本地查看或处理。",
    "editUnavailable": "不可编辑",
    "editTooLarge": "文件超过 2MB，无法在此编辑，请下载后本地处理。",
    "errorGeneric": "操作失败，请稍后重试。"
  },
  "vulnerabilityPage": {
    "statTotal": "总漏洞数",
    "statClickAll": "查看全部（清除严重度筛选）",
    "statClickFilter": "点击按此严重度筛选；再次点击清除",
    "advancedFilters": "高级筛选",
    "activeFilters": "已选条件",
    "chipRemove": "移除",
    "filter": "筛选",
    "clear": "清除",
    "vulnId": "漏洞ID",
    "conversationId": "会话ID",
    "taskOrQueueId": "任务ID/队列ID",
    "filterTaskOrQueue": "筛选任务ID或队列ID",
    "conversationTag": "对话标签",
    "filterConversationTag": "筛选对话标签",
    "taskTag": "任务标签",
    "filterTaskTag": "筛选任务标签",
    "severity": "严重程度",
    "status": "状态",
    "statusOpen": "待处理",
    "statusConfirmed": "已确认",
    "statusFixed": "已修复",
    "statusFalsePositive": "误报",
    "searchVulnId": "搜索漏洞ID",
    "filterConversation": "筛选特定会话",
    "loading": "加载中...",
    "loadListFailed": "加载失败",
    "noRecords": "暂无漏洞记录",
    "batchExport": "批量导出",
    "downloadMarkdownTitle": "下载 Markdown",
    "exportNoResults": "当前筛选条件下无可导出漏洞",
    "exportStarted": "已开始下载 {{count}} 份报告",
    "exportFailed": "导出失败",
    "saveRequiredFields": "请填写必填字段：会话ID、标题和严重程度",
    "saveFailed": "保存失败",
    "fetchFailed": "获取漏洞失败",
    "deleteFailed": "删除失败",
    "detailVulnId": "漏洞ID",
    "detailType": "类型",
    "detailTarget": "目标",
    "detailConversationId": "会话ID",
    "detailTaskId": "任务ID",
    "detailTaskQueueId": "任务队列ID",
    "detailConversationTag": "对话标签",
    "detailTaskTag": "任务标签",
    "detailProof": "证明",
    "detailImpact": "影响",
    "detailRecommendation": "修复建议",
    "downloadOkTitle": "下载成功",
    "exportFailedMessage": "导出失败",
    "downloadFailed": "下载失败"
  },
  "tasksPage": {
    "statusFilter": "状态筛选",
    "statusPending": "待执行",
    "statusPaused": "已暂停",
    "statusCancelled": "已取消",
    "searchQueuePlaceholder": "搜索队列ID、标题或创建时间",
    "searchKeywordPlaceholder": "输入关键字搜索..."
  },
  "skillsPage": {
    "clearStats": "清空统计",
    "clearStatsTitle": "清空所有统计数据",
    "skillsCallStats": "Skills调用统计",
    "searchPlaceholder": "搜索Skills...",
    "loading": "加载中...",
    "paginationShow": "显示 {{start}}-{{end}} / 共 {{total}} 条",
    "perPageLabel": "每页显示",
    "firstPage": "首页",
    "prevPage": "上一页",
    "pageOf": "第 {{current}} / {{total}} 页",
    "nextPage": "下一页",
    "lastPage": "尾页"
  },
  "agentsPage": {
    "title": "Agent 管理",
    "create": "新建 Agent",
    "hint": "Agent 在 agents 目录（config 中 agents_dir）下以 .md 维护：YAML front matter + 正文为系统提示词；主代理为 Deep 协调者，不参与 task 子代理列表。",
    "dirLabel": "目录",
    "loading": "加载中...",
    "empty": "暂无 Markdown 子 Agent，点击「新建 Agent」创建。",
    "noDesc": "暂无描述",
    "loadFailed": "加载列表失败",
    "loadOneFailed": "加载 Agent 失败",
    "createTitle": "新建 Agent",
    "editTitle": "编辑 Agent",
    "filename": "文件名（.md）",
    "filenamePlaceholder": "例如 code-reviewer.md",
    "fieldRole": "类型",
    "roleSub": "子代理",
    "roleOrchestrator": "主代理（Deep 协调者）",
    "roleHint": "主代理分模式：Deep 用 orchestrator.md（或 kind: orchestrator 的单个 .md）；plan_execute 用 orchestrator-plan-execute.md；supervisor 用 orchestrator-supervisor.md。每种至多一个。正文为空时分别回退 multi_agent.orchestrator_instruction / orchestrator_instruction_plan_execute / orchestrator_instruction_supervisor 或内置默认（PE/SV 不使用 Deep 的 orchestrator_instruction）。",
    "badgeOrchestrator": "主代理",
    "badgeSub": "子代理",
    "filenameInvalid": "文件名须为 .md，且仅含字母、数字、._-",
    "fieldId": "Agent ID（留空则从名称生成）",
    "fieldName": "显示名称",
    "namePlaceholder": "Code Reviewer",
    "fieldDesc": "描述",
    "descPlaceholder": "何时由协调者调度该子代理",
    "fieldTools": "可用工具（逗号分隔，与角色工具 key 一致）",
    "fieldBindRole": "绑定角色（可选）",
    "fieldMaxIter": "子代理最大迭代（0=使用全局默认）",
    "fieldInstruction": "系统提示词（Markdown 正文）",
    "instructionPlaceholder": "You are a specialist agent...",
    "nameRequired": "请填写显示名称",
    "instructionRequired": "请填写系统提示词正文",
    "saveOk": "已保存",
    "createOk": "已创建",
    "saveFailed": "保存失败",
    "deleteConfirm": "确定删除 {{name}} 吗？",
    "deleteOk": "已删除",
    "deleteFailed": "删除失败"
  },
  "settingsBasic": {
    "basicTitle": "基本设置",
    "openaiConfig": "OpenAI 配置",
    "fofaConfig": "FOFA 配置",
    "agentConfig": "Agent 配置",
    "knowledgeConfig": "知识库配置",
    "baseUrl": "Base URL",
    "apiKey": "API Key",
    "model": "模型",
    "openaiBaseUrlPlaceholder": "https://api.openai.com/v1",
    "openaiApiKeyPlaceholder": "输入OpenAI API Key",
    "modelPlaceholder": "gpt-4",
    "maxTotalTokens": "最大上下文 Token 数",
    "maxTotalTokensPlaceholder": "120000",
    "maxTotalTokensHint": "内存压缩和攻击链构建共用此配置，默认 120000",
    "openaiReasoningTitle": "模型推理（Eino）",
    "openaiReasoningHint": "仅 Eino 单代理与多代理请求生效；与对话页「模型推理」下拉配合使用。",
    "openaiReasoningProfile": "线路 profile",
    "openaiReasoningAllowClient": "允许对话页覆盖推理选项",
    "fofaBaseUrlPlaceholder": "https://fofa.info/api/v1/search/all（可选）",
    "fofaBaseUrlHint": "留空则使用默认地址。",
    "email": "Email",
    "fofaEmailPlaceholder": "输入 FOFA 账号邮箱",
    "fofaApiKeyPlaceholder": "输入 FOFA API Key",
    "fofaApiKeyHint": "仅保存在服务器配置中（`config.yaml`）。",
    "maxIterations": "最大迭代次数",
    "iterationsPlaceholder": "30",
    "enableMultiAgent": "启用 Eino 多代理",
    "enableMultiAgentHint": "开启后对话页可选「多代理」模式；子代理在 multi_agent.sub_agents 或 agents 目录配置；编排方式见下方「预置编排」。",
    "multiAgentOrchestration": "多代理预置编排",
    "multiAgentOrchestrationHint": "deep=DeepAgent+task；plan_execute=规划/执行/重规划（单执行器工具链）；supervisor=监督者+transfer。保存并应用后生效。",
    "multiAgentOrchDeep": "deep — DeepAgent（task 子代理）",
    "multiAgentOrchPlanExecute": "plan_execute — 规划 / 执行 / 重规划",
    "multiAgentOrchSupervisor": "supervisor — 监督者 + transfer",
    "multiAgentPeLoop": "plan_execute 外层循环上限",
    "multiAgentPeLoopPlaceholder": "0 表示 Eino 默认 10",
    "multiAgentPeLoopHint": "仅 plan_execute 有效；execute 与 replan 之间的最大轮次。",
    "multiAgentRobotUse": "企业微信 / 钉钉 / 飞书机器人也使用多代理",
    "multiAgentRobotUseHint": "需同时勾选「启用多代理」；调用量与成本更高。",
    "multiAgentBatchUse": "批量任务队列也使用多代理",
    "multiAgentBatchUseHint": "开启后，任务管理中按队列执行的每个子任务将走 Eino DeepAgent（需启用多代理）。",
    "enableKnowledge": "启用知识检索功能",
    "knowledgeBasePath": "知识库路径",
    "knowledgeBasePathPlaceholder": "knowledge_base",
    "knowledgeBasePathHint": "相对于配置文件所在目录的路径",
    "embeddingConfig": "嵌入模型配置",
    "provider": "提供商",
    "embeddingBaseUrlPlaceholder": "留空则使用OpenAI配置的base_url",
    "embeddingApiKeyPlaceholder": "留空则使用OpenAI配置的api_key",
    "modelName": "模型名称",
    "embeddingModelPlaceholder": "text-embedding-v4",
    "retrievalConfig": "检索配置",
    "topK": "Top-K 结果数量",
    "topKPlaceholder": "5",
    "topKHint": "检索返回的Top-K结果数量",
    "similarityThreshold": "相似度阈值",
    "similarityPlaceholder": "0.7",
    "similarityHint": "相似度阈值（0-1），低于此值的结果将被过滤",
    "subIndexFilter": "子索引过滤（可选）",
    "subIndexFilterPlaceholder": "如 prod，与索引 sub_indexes 一致",
    "subIndexFilterHint": "留空不过滤；填写后仅检索向量行 sub_indexes 中含该标签的结果（未打标旧行仍保留）。",
    "postRetrieveHeader": "检索后处理（去重 / 预算）",
    "postRetrieveDedupeAuto": "检索结果会自动按正文规范化去重（合并仅空白不同的重复片段），无需配置。",
    "prefetchTopK": "预取候选数（向量阶段）",
    "prefetchTopKPlaceholder": "0",
    "prefetchTopKHint": "0 表示与 Top-K 相同；大于 Top-K 时先多取候选再经去重/截断回到 Top-K（上限 200）。",
    "maxContextChars": "返回内容最大字符数（Unicode）",
    "maxContextCharsPlaceholder": "0",
    "maxContextCharsHint": "0 表示不限制；按检索顺序整段保留 chunk，超出则丢弃后续。",
    "maxContextTokens": "返回内容最大 Token 数",
    "maxContextTokensPlaceholder": "0",
    "maxContextTokensHint": "0 表示不限制；tiktoken 估算（与嵌入模型名一致，失败则用 cl100k_base）。",
    "indexConfig": "索引配置",
    "chunkStrategy": "分块策略",
    "chunkStrategyMarkdownRecursive": "Markdown 标题切分后递归（推荐）",
    "chunkStrategyRecursive": "仅递归切分",
    "chunkStrategyHint": "与 Eino 索引链一致：技术文档建议 Markdown 标题 + 递归；纯文本可仅用递归。",
    "requestTimeoutSeconds": "嵌入 HTTP 超时（秒）",
    "requestTimeoutPlaceholder": "120",
    "requestTimeoutHint": "0 表示使用默认 120 秒，与嵌入 HTTP 客户端一致。",
    "batchSize": "嵌入批大小",
    "batchSizePlaceholder": "64",
    "batchSizeHint": "单次嵌入请求的文本条数上限（SQLite 写入按此分批）。",
    "preferSourceFile": "索引时优先从磁盘源文件读取（Eino FileLoader）",
    "preferSourceFileHint": "开启后以 file_path 为准；读取失败时回退数据库中的 content。",
    "subIndexes": "Eino 子索引（逗号分隔）",
    "subIndexesPlaceholder": "例如: prod, knowledge",
    "subIndexesHint": "对应 indexer.WithSubIndexes，持久化到向量表 sub_indexes 字段。",
    "chunkSize": "分块大小（Chunk Size）",
    "chunkSizePlaceholder": "512",
    "chunkSizeHint": "每个块的最大 token 数（默认 512），长文本会被分割成多个块",
    "chunkOverlap": "分块重叠（Chunk Overlap）",
    "chunkOverlapPlaceholder": "50",
    "chunkOverlapHint": "块之间的重叠 token 数（默认 50），保持上下文连贯性",
    "maxChunksPerItem": "单个知识项最大块数",
    "maxChunksPlaceholder": "0",
    "maxChunksHint": "单个知识项的最大块数量（0 表示不限制），防止单个文件消耗过多 API 配额",
    "maxRpm": "每分钟最大请求数（Max RPM）",
    "maxRpmPlaceholder": "0",
    "maxRpmHint": "每分钟最大请求数（默认 0 表示不限制），如 OpenAI 默认 200 RPM",
    "rateLimitDelay": "请求间隔延迟（毫秒）",
    "rateLimitPlaceholder": "300",
    "rateLimitHint": "请求间隔毫秒数（默认 300），用于避免 API 速率限制，设为 0 不限制",
    "maxRetries": "最大重试次数",
    "maxRetriesPlaceholder": "3",
    "maxRetriesHint": "最大重试次数（默认 3），遇到速率限制或服务器错误时自动重试",
    "retryDelay": "重试间隔（毫秒）",
    "retryDelayPlaceholder": "1000",
    "retryDelayHint": "重试间隔毫秒数（默认 1000），每次重试会递增延迟",
    "testConnection": "测试连接",
    "testFillRequired": "请先填写 API Key 和模型",
    "testing": "测试中...",
    "testSuccess": "连接成功",
    "testFailed": "连接失败",
    "testError": "测试出错"
  },
  "settingsTerminal": {
    "title": "终端",
    "description": "在服务器上执行命令，便于运维与调试。命令在服务端执行，请勿执行敏感或破坏性操作。",
    "terminalTab": "终端 {{n}}",
    "welcomeLine": "CyberStrikeAI 终端 - 真实 Shell 会话，直接输入命令；Ctrl+L 清屏",
    "sessionClosed": "[会话已关闭]",
    "connectionError": "[终端连接出错]",
    "connectFailed": "[无法连接终端服务: {{msg}}]",
    "closeTabTitle": "关闭",
    "containerClickTitle": "点击此处后输入命令",
    "xtermNotLoaded": "未加载 xterm.js，请刷新页面或检查网络。",
    "close": "×",
    "newTerminal": "+"
  },
  "settingsSecurity": {
    "changePasswordTitle": "修改密码",
    "changePasswordDesc": "修改登录密码后，需要使用新密码重新登录。",
    "currentPassword": "当前密码",
    "currentPasswordPlaceholder": "输入当前登录密码",
    "newPassword": "新密码",
    "newPasswordPlaceholder": "设置新密码（至少 8 位）",
    "confirmPassword": "确认新密码",
    "confirmPasswordPlaceholder": "再次输入新密码",
    "clear": "清空",
    "changePasswordBtn": "修改密码"
  },
  "settingsRobotsExtra": {
    "botCommandsTitle": "机器人命令说明",
    "botCommandsDesc": "在对话中可发送以下命令（支持中英文）：",
    "botCmdHelp": "显示本帮助 | Show this help",
    "botCmdList": "列出所有对话标题与 ID | List conversations",
    "botCmdSwitch": "指定对话继续 | Switch to conversation",
    "botCmdNew": "开启新对话 | Start new conversation",
    "botCmdClear": "清空当前上下文 | Clear context",
    "botCmdCurrent": "显示当前对话 ID 与标题 | Show current conversation",
    "botCmdStop": "中断当前任务 | Stop running task",
    "botCmdRoles": "列出所有可用角色 | List roles",
    "botCmdRole": "切换当前角色 | Switch role",
    "botCmdDelete": "删除指定对话 | Delete conversation",
    "botCmdVersion": "显示当前版本号 | Show version",
    "botCommandsFooter": "除以上命令外，直接输入内容将发送给 AI 进行渗透测试/安全分析。Otherwise, send any text for AI penetration testing / security analysis."
  },
  "mcpDetailModal": {
    "title": "工具调用详情",
    "execInfo": "执行信息",
    "tool": "工具",
    "status": "状态",
    "statusPending": "等待中",
    "statusRunning": "执行中",
    "statusCompleted": "已完成",
    "statusFailed": "失败",
    "statusCancelled": "已终止",
    "unknown": "未知",
    "getDetailFailed": "获取详情失败",
    "runningNoResponseYet": "尚无返回，工具可能仍在执行。若长时间无响应，可使用下方「终止工具」结束本次调用。",
    "abortTitle": "运行控制",
    "abortHint": "仅中断当前这一次工具调用；对话与多步迭代任务会继续，不会等同于「停止任务」。",
    "abortBtn": "终止工具",
    "abortConfirm": "确定终止此次工具调用？整条对话或迭代任务不会因此停止。",
    "abortSuccess": "已发送终止请求，工具返回后状态将更新。",
    "abortFailed": "终止失败",
    "abortNoteModalTitle": "终止工具并补充说明",
    "abortNoteModalHint": "可选：说明为何终止或希望模型如何继续。提交后模型会先看到工具已输出内容（若有），再看到带「用户终止说明」标题的独立区块（中英标注，与命令行原文区分），最后是您的文字。留空则与原先仅终止一致。",
    "abortNoteLabel": "终止说明（可选）",
    "abortNotePlaceholder": "例如：输出已够判断，请停止等待并继续下一步…",
    "abortNoteSubmit": "提交终止",
    "abortNoteClose": "取消",
    "execSuccessNoContent": "执行成功，未返回可展示的文本内容。",
    "time": "时间",
    "executionId": "执行 ID",
    "requestParams": "请求参数",
    "copyJson": "复制 JSON",
    "responseResult": "响应结果",
    "copyContent": "复制内容",
    "correctInfo": "正确信息",
    "errorInfo": "错误信息",
    "copyError": "复制错误"
  },
  "attackChainModal": {
    "title": "攻击链可视化",
    "regenerate": "重新生成",
    "regenerateTitle": "重新生成攻击链（包含最新对话内容）",
    "exportPng": "导出为PNG",
    "exportSvg": "导出为SVG",
    "refreshTitle": "刷新当前攻击链（不重新生成）",
    "nodesEdges": "节点: {{nodes}} | 边: {{edges}}",
    "searchPlaceholder": "搜索节点...",
    "allTypes": "所有类型",
    "target": "目标",
    "action": "行动",
    "vulnerability": "漏洞",
    "allRisks": "所有风险",
    "highRisk": "高风险 (80-100)",
    "mediumHighRisk": "中高风险 (60-79)",
    "mediumRisk": "中风险 (40-59)",
    "lowRisk": "低风险 (0-39)",
    "resetFilter": "重置筛选",
    "loading": "加载中...",
    "riskLevel": "风险等级",
    "lineMeaning": "连接线含义",
    "blueLine": "蓝色线：行动发现漏洞",
    "redLine": "红色线：使能/促成关系",
    "grayLine": "灰色线：逻辑顺序",
    "nodeDetails": "节点详情",
    "closeDetails": "关闭详情"
  },
  "externalMcpModal": {
    "configJson": "配置JSON",
    "formatLabel": "配置格式：",
    "formatDesc": "JSON对象，key为配置名称，value为配置内容。状态通过\"启动/停止\"按钮控制，无需在JSON中配置。支持 ${VAR} 和 ${VAR:-默认值} 环境变量语法。",
    "configExample": "配置示例：",
    "stdioMode": "stdio模式：",
    "httpMode": "HTTP模式：",
    "sseMode": "SSE模式：",
    "placeholder": "{\n  \"my-server\": {\n    \"command\": \"python3\",\n    \"args\": [\"${HOME}/mcp/server.py\"],\n    \"env\": { \"API_KEY\": \"${API_KEY}\" },\n    \"timeout\": 300\n  }\n}",
    "exampleStdio": "{\n  \"my-server\": {\n    \"command\": \"python3\",\n    \"args\": [\"${HOME}/mcp/server.py\"],\n    \"env\": { \"API_KEY\": \"${API_KEY}\", \"LOG_LEVEL\": \"${LOG_LEVEL:-INFO}\" },\n    \"timeout\": 300\n  }\n}",
    "exampleHttp": "{\n  \"remote-mcp\": {\n    \"type\": \"http\",\n    \"url\": \"https://mcp.example.com/mcp\",\n    \"headers\": { \"Authorization\": \"Bearer ${MCP_TOKEN}\" }\n  }\n}",
    "exampleSse": "{\n  \"sse-mcp\": {\n    \"type\": \"sse\",\n    \"url\": \"http://127.0.0.1:8081/mcp/sse\"\n  }\n}",
    "exampleDescription": "示例描述",
    "formatJson": "格式化JSON",
    "loadExample": "加载示例"
  },
  "skillModal": {
    "addSkill": "添加Skill",
    "editSkill": "编辑Skill",
    "skillName": "Skill名称",
    "skillNamePlaceholder": "例如: sql-injection-testing",
    "skillNameHint": "小写字母、数字、连字符（与 Agent Skills 的 name 一致）",
    "description": "描述",
    "descriptionPlaceholder": "Skill的简短描述",
    "descriptionHint": "对应 SKILL.md 中 YAML 的 description 字段（创建/编辑 SKILL.md 时使用）",
    "packageFiles": "包内文件",
    "editingFile": "正在编辑",
    "newFile": "新建文件",
    "newFilePlaceholder": "新文件路径，如 FORMS.md 或 scripts/extra.sh",
    "newFilePathRequired": "请填写新文件路径",
    "newFilePathInvalid": "路径无效（禁止 .. 与绝对路径）",
    "noPackageFiles": "未列出文件",
    "unsavedSwitch": "当前文件有未保存修改，确定切换？",
    "contentLabel": "内容",
    "contentPlaceholder": "编辑当前选中的文件…",
    "contentPlaceholderAdd": "SKILL.md 正文（无需手写 YAML 头）…",
    "bodyHintEdit": "当前为 SKILL.md 的正文部分（不含 --- 头）；保存时会合并名称/描述生成标准 SKILL.md。",
    "contentHintAdd": "保存后生成标准 SKILL.md（YAML front matter + 正文）。开源技能目录可直接放入 skills/ 使用。",
    "contentHint": "标准格式见 Claude Agent Skills 文档"
  },
  "knowledgeItemModal": {
    "addKnowledge": "添加知识",
    "editKnowledge": "编辑知识",
    "category": "分类（风险类型）",
    "categoryPlaceholder": "例如：SQL注入",
    "title": "标题",
    "titlePlaceholder": "知识项标题",
    "contentLabel": "内容（Markdown格式）",
    "contentPlaceholder": "输入知识内容，支持Markdown格式..."
  },
  "batchManageModal": {
    "title": "管理对话记录·共{{count}}条",
    "searchPlaceholder": "搜索历史记录",
    "conversationName": "对话名称",
    "lastTime": "最近一次对话时间",
    "action": "操作",
    "selectAll": "全选",
    "deleteSelected": "删除所选",
    "confirmDeleteNone": "请先选择要删除的对话",
    "confirmDeleteN": "确定要删除选中的 {{count}} 条对话吗？",
    "deleteFailed": "删除失败",
    "unnamedConversation": "未命名对话"
  },
  "createGroupModal": {
    "title": "创建分组",
    "description": "分组功能可将对话集中归类管理，让对话更加井然有序。",
    "selectIcon": "点击选择图标",
    "groupNamePlaceholder": "请输入分组名称",
    "pickIcon": "选择图标",
    "customIcon": "自定义",
    "confirmIcon": "确定",
    "create": "创建",
    "cancel": "取消",
    "suggestionPenetrationTest": "渗透测试",
    "suggestionCtf": "CTF",
    "suggestionRedTeam": "红队",
    "suggestionVulnerabilityMining": "漏洞挖掘",
    "nameExists": "分组名称已存在，请使用其他名称",
    "createFailed": "创建失败",
    "unknownError": "未知错误"
  },
  "contextMenu": {
    "viewAttackChain": "查看攻击链",
    "viewVulnerabilities": "查看漏洞",
    "downloadMarkdown": "下载 Markdown",
    "downloadMarkdownSummary": "简版",
    "downloadMarkdownFull": "完整版",
    "rename": "重命名",
    "pinConversation": "置顶此对话",
    "unpinConversation": "取消置顶",
    "batchManage": "批量管理",
    "moveToGroup": "移动到分组",
    "deleteConversation": "删除此对话",
    "pinGroup": "置顶此分组",
    "unpinGroup": "取消置顶",
    "deleteGroup": "删除此分组"
  },
  "batchImportModal": {
    "title": "新建任务",
    "queueTitle": "任务标题",
    "queueTitlePlaceholder": "请输入任务标题（可选，用于标识和筛选）",
    "queueTitleHint": "为批量任务队列设置一个标题，方便后续查找和管理。",
    "role": "角色",
    "defaultRole": "默认",
    "roleHint": "选择一个角色，所有任务将使用该角色的配置（提示词和工具）执行。",
    "agentMode": "代理模式",
    "agentModeSingle": "单代理（ReAct）",
    "agentModeMulti": "多代理（Eino）",
    "agentModeHint": "与对话页一致：原生 ReAct、Eino 单代理（ADK），或 Deep / Plan-Execute / Supervisor（后三种需已启用多代理）。",
    "scheduleMode": "调度方式",
    "scheduleModeManual": "手工执行",
    "scheduleModeCron": "调度表达式（Cron）",
    "scheduleModeHint": "手工执行用于一次性任务；Cron 用于周期任务，建议先手工验证任务正确性。",
    "cronExpr": "Cron 表达式",
    "cronExprPlaceholder": "例如：0 */2 * * *（每2小时执行一次）",
    "cronExprHint": "采用标准 5 段 Cron：分 时 日 月 周，例如 `0 2 * * *` 表示每天 02:00 执行。",
    "cronExprRequired": "请选择 Cron 调度后填写 Cron 表达式",
    "cronExprInvalid": "Cron 表达式格式错误，需要 5 段（分 时 日 月 周），例如：0 */2 * * *",
    "executeNow": "创建后立即执行",
    "executeNowHint": "默认不立即执行；关闭后队列保持待执行，可在需要时手动开始。",
    "tasksList": "任务列表（每行一个任务）",
    "tasksListPlaceholder": "请输入任务列表，每行一个任务",
    "tasksListPlaceholderExample": "请输入任务列表，每行一个任务，例如：\n扫描 192.168.1.1 的开放端口\n检查 https://example.com 是否存在SQL注入\n枚举 example.com 的子域名",
    "tasksListHint": "每行输入一个任务指令，系统将依次执行这些任务。空行会被自动忽略。",
    "tasksListHintFull": "提示：每行输入一个任务指令，系统将依次执行这些任务。空行会被自动忽略。",
    "createQueue": "创建队列"
  },
  "batchQueueDetailModal": {
    "title": "批量任务队列详情",
    "addTask": "添加任务",
    "startExecute": "开始执行",
    "startExecuteNow": "立即执行一轮",
    "startExecuteNowConfirm": "这是 Cron 队列，点击后会立即执行当前这一轮，不会等待下次 Cron 时间。确定立即执行吗？",
    "pauseQueue": "暂停队列",
    "rerunQueue": "重跑一轮",
    "deleteQueue": "删除队列",
    "queueTitle": "任务标题",
    "role": "角色",
    "defaultRole": "默认",
    "queueId": "队列ID",
    "status": "状态",
    "createdAt": "创建时间",
    "startedAt": "开始时间",
    "nextRunAt": "下次执行时间",
    "scheduleCronAuto": "允许 Cron 自动调度",
    "scheduleCronAutoHint": "关闭后仅保留表达式配置，不会按时间自动跑；可随时手工点「开始执行」。",
    "editSchedule": "修改调度",
    "editScheduleTitle": "修改调度配置",
    "editScheduleSuccess": "调度配置已更新",
    "editScheduleError": "更新调度配置失败",
    "editMetadata": "编辑信息",
    "lastScheduleTriggerAt": "最近调度触发时间",
    "lastScheduleError": "最近调度失败原因",
    "lastRunError": "最近运行失败摘要",
    "cronSchedulePausedBadge": "调度已暂停",
    "scheduleToggleFailed": "更新调度开关失败",
    "completedAt": "完成时间",
    "taskTotal": "任务总数",
    "taskList": "任务列表",
    "startLabel": "开始",
    "completeLabel": "完成",
    "errorLabel": "错误",
    "resultLabel": "结果",
    "technicalDetails": "技术信息（ID / 时间 / 调度）"
  },
  "editBatchTaskModal": {
    "title": "编辑任务",
    "taskMessage": "任务消息",
    "taskMessagePlaceholder": "请输入任务消息"
  },
  "addBatchTaskModal": {
    "title": "添加任务",
    "taskMessage": "任务消息",
    "taskMessagePlaceholder": "请输入任务消息",
    "add": "添加"
  },
  "vulnerabilityModal": {
    "conversationId": "会话ID",
    "conversationIdPlaceholder": "输入会话ID",
    "conversationTag": "对话标签",
    "conversationTagPlaceholder": "如：红队演练A、客户A周报",
    "taskTag": "任务标签",
    "taskTagPlaceholder": "如：批量扫描Q2、专项复测",
    "title": "标题",
    "titlePlaceholder": "漏洞标题",
    "description": "描述",
    "descriptionPlaceholder": "漏洞详细描述",
    "severity": "严重程度",
    "pleaseSelect": "请选择",
    "severityCritical": "严重",
    "severityHigh": "高危",
    "severityMedium": "中危",
    "severityLow": "低危",
    "severityInfo": "信息",
    "status": "状态",
    "statusOpen": "待处理",
    "statusConfirmed": "已确认",
    "statusFixed": "已修复",
    "statusFalsePositive": "误报",
    "type": "漏洞类型",
    "typePlaceholder": "如：SQL注入、XSS、CSRF等",
    "target": "目标",
    "targetPlaceholder": "受影响的目标（URL、IP地址等）",
    "proof": "证明（POC）",
    "proofPlaceholder": "漏洞证明，如请求/响应、截图等",
    "impact": "影响",
    "impactPlaceholder": "漏洞影响说明",
    "recommendation": "修复建议",
    "recommendationPlaceholder": "修复建议"
  },
  "vulnerabilityMd": {
    "headingBasic": "基本信息",
    "labelId": "漏洞ID",
    "labelSeverity": "严重程度",
    "labelStatus": "状态",
    "labelType": "类型",
    "labelTarget": "目标",
    "labelConversationId": "会话ID",
    "labelTaskId": "任务ID",
    "labelTaskQueueId": "任务队列ID",
    "labelConversationTag": "对话标签",
    "labelTaskTag": "任务标签",
    "labelCreated": "创建时间",
    "labelUpdated": "更新时间",
    "headingDescription": "描述",
    "headingProof": "证明（POC）",
    "headingImpact": "影响",
    "headingRecommendation": "修复建议"
  },
  "roleModal": {
    "addRole": "添加角色",
    "editRole": "编辑角色",
    "roleName": "角色名称",
    "roleNamePlaceholder": "输入角色名称",
    "roleDescription": "角色描述",
    "roleDescriptionPlaceholder": "输入角色描述",
    "roleIcon": "角色图标",
    "roleIconPlaceholder": "输入emoji图标，例如: 🏆",
    "roleIconHint": "输入一个emoji作为角色的图标，将显示在角色选择器中。",
    "userPrompt": "用户提示词",
    "userPromptPlaceholder": "输入用户提示词，会在用户消息前追加此提示词...",
    "userPromptHint": "此提示词会追加到用户消息前，用于指导AI的行为。注意：这不会修改系统提示词。",
    "relatedTools": "关联的工具（可选）",
    "defaultRoleToolsTitle": "默认角色使用所有工具",
    "defaultRoleToolsDesc": "默认角色会自动使用MCP管理中启用的所有工具，无需单独配置。",
    "searchToolsPlaceholder": "搜索工具...",
    "loadingTools": "正在加载工具列表...",
    "relatedToolsHint": "上方「本角色已开/已关」按复选框筛选；留空工具清单表示不限制。MCP 全局开关请在 MCP 管理中操作。",
    "enableRole": "启用此角色",
    "selectAll": "全选",
    "deselectAll": "全不选",
    "roleNameRequired": "角色名称不能为空",
    "roleNotFound": "角色不存在",
    "firstRoleNoToolsHint": "检测到这是首次添加角色且未选择工具，将默认使用全部工具",
    "filterRoleAll": "全部",
    "filterRoleOn": "本角色已开",
    "filterRoleOff": "本角色已关",
    "statsPageLinked": "本页已勾选: {{current}} / {{total}}",
    "statsPageLinkedTitle": "勾选=关联到本角色；与 MCP 里是否开启无关",
    "statsRoleLinked": "本角色已勾选: {{current}} / {{max}}",
    "statsRoleLinkedTitle": "分子为全库勾选数（仅 MCP 为开的工具）；分母为 MCP 已开工具总数，与「MCP管理」里筛选 MCP已开 的条数一致",
    "statsRoleLinkedNoMax": "本角色已勾选: {{current}}（请先切到「全部」且无搜索，加载一页以同步上限）",
    "statsRoleLinkedNoMaxTitle": "尚未缓存 MCP 已开总数",
    "statsRoleUsesAll": "工具策略: 使用全部 MCP 已开工具（{{mcpOn}} 个）· 全库共 {{all}} 个（含 MCP 已关）",
    "statsRoleUsesAllTitle": "与 MCP 管理中「MCP已开」数量一致；未单独限定工具清单",
    "statsListScopeAll": "当前列表: 全部 {{n}} 条",
    "statsListScopeRoleOn": "当前列表: 本角色已关联 {{n}} 条",
    "statsListScopeRoleOff": "当前列表: 本角色未关联 {{n}} 条",
    "usingAllEnabledTools": "（使用所有已启用工具）",
    "loadToolsFailed": "加载工具列表失败",
    "cannotDeleteDefaultRole": "不能删除默认角色",
    "usingAllTools": "使用所有工具",
    "andNMore": " 等 {{count}} 个",
    "toolsLabel": "工具:",
    "noTools": "暂无工具",
    "paginationShow": "显示 {{start}}-{{end}} / 共 {{total}} 个工具",
    "paginationSearch": " (搜索: \"{{keyword}}\")",
    "firstPage": "首页",
    "prevPage": "上一页",
    "pageOf": "第 {{page}} / {{total}} 页",
    "nextPage": "下一页",
    "lastPage": "末页",
    "mcpDisabledBadge": "MCP已关",
    "mcpDisabledBadgeTitle": "MCP 管理里该工具为关闭；勾选只表示想关联到本角色，实际调用需先在 MCP 中打开",
    "roleFilterOnBanner": "以下为「已勾选、关联到本角色」的工具（与 MCP 管理里全局开/关无关）。",
    "roleFilterOffBanner": "以下为「未勾选、未关联到本角色」的工具。",
    "checkboxLinkTitle": "勾选表示本角色关联使用该工具"
  },
  "c2": {
    "title": "C2 管理",
    "welcomeTitle": "AI-Native C2 框架",
    "welcomeDesc": "以 MCP 工具为一等公民，让 LLM 可以像调用 nmap 一样调用 C2 完成「上线 → 控制 → 任务 → 横向 → 清场」全流程",
    "statListeners": "运行中监听器",
    "statSessions": "在线会话",
    "statPending": "待审任务",
    "goListeners": "管理监听器",
    "goSessions": "查看会话",
    "clipboardCopied": "已复制到剪贴板",
    "fmt": {
      "durationMs": "{{n}}ms",
      "durationSec": "{{n}}秒",
      "durationMin": "{{n}}分钟"
    },
    "files": {
      "parent": "上级目录",
      "refresh": "刷新",
      "loading": "加载中…",
      "timeout": "加载文件超时",
      "emptyDir": "空目录",
      "colName": "名称",
      "colSize": "大小",
      "colMode": "权限",
      "colActions": "操作",
      "open": "打开",
      "download": "下载",
      "failed": "失败"
    },
    "listeners": {
      "title": "监听器管理",
      "create": "创建监听器",
      "name": "名称",
      "type": "类型",
      "bindHost": "绑定地址",
      "bindPort": "绑定端口",
      "status": "状态",
      "remark": "备注",
      "actions": "操作",
      "start": "启动",
      "stop": "停止",
      "delete": "删除",
      "edit": "编辑",
      "running": "运行中",
      "stopped": "已停止",
      "placeholderName": "输入监听器名称",
      "placeholderHost": "默认 127.0.0.1",
      "placeholderPort": "输入端口号",
      "placeholderRemark": "可选备注",
      "emptyTitle": "暂无监听器",
      "emptyHint": "点击下方按钮创建第一个 C2 监听器",
      "headerCreateBtn": "+ 创建监听器",
      "modalCreateTitle": "创建监听器",
      "placeholderNameExample": "例如 http-beacon-01",
      "bindHintExternal": "使用 0.0.0.0 允许外部访问",
      "callbackHost": "回连地址（可选）",
      "callbackHostHint": "公网 IP 或域名，写入配置供 Payload/Beacon 使用；与「绑定地址」分离。不填则生成 Payload 时按绑定地址或自动探测。",
      "malleableProfile": "Malleable Profile",
      "malleableProfileHint": "可选；用于 HTTP/HTTPS Beacon 服务端响应头等流量伪装。修改后需停止并重新启动监听器才会生效。",
      "malleableProfileNone": "不使用",
      "malleableProfileNonHttpHint": "当前监听器类型不会使用 Profile；若之后改为 HTTP/HTTPS Beacon，可在此预先绑定。",
      "malleableProfileEmptyListHint": "暂无已保存的 Profile。请先到侧边栏「流量伪装 / Malleable Profile」页创建，再返回此处选择。",
      "placeholderRemarkLong": "可选的备注说明",
      "editTitle": "编辑监听器",
      "startedAt": "启动于 {{time}}",
      "startedAtPrefix": "启动于",
      "statusError": "异常",
      "bindEndpoint": "监听地址",
      "callbackShort": "回连",
      "profileBadgeTitle": "已绑定 Malleable Profile",
      "confirmDelete": "确定删除此监听器？相关会话与任务将被清除。",
      "toastFillRequired": "请填写必填项",
      "toastCreated": "监听器已创建",
      "toastStarted": "监听器已启动",
      "toastStopped": "监听器已停止",
      "toastDeleted": "监听器已删除",
      "toastUpdated": "监听器已更新",
      "loadingProfiles": "正在加载 Malleable Profile 列表…",
      "toastProfilesLoadFailed": "加载 Malleable Profile 列表失败",
      "submitCreate": "创建",
      "typeLabels": {
        "http_beacon": "HTTP Beacon",
        "https_beacon": "HTTPS Beacon",
        "tcp_reverse": "TCP 反向",
        "websocket": "WebSocket"
      }
    },
    "sessions": {
      "title": "会话管理",
      "hostname": "主机名",
      "username": "用户名",
      "os": "操作系统",
      "arch": "架构",
      "ip": "IP 地址",
      "status": "状态",
      "active": "活跃",
      "sleeping": "休眠",
      "dead": "离线",
      "isAdmin": "管理员",
      "pid": "进程ID",
      "sleep": "Sleep 间隔",
      "jitter": "Jitter",
      "firstSeen": "首次上线",
      "lastCheckIn": "上次心跳",
      "selectSession": "选择会话",
      "terminal": "终端",
      "files": "文件",
      "tasks": "任务",
      "info": "信息",
      "execute": "执行命令",
      "kill": "终止会话",
      "cardDeleteSession": "删除会话",
      "btnSleep": "Sleep",
      "emptyTitle": "暂无在线会话",
      "emptyHint": "启动监听器并在目标上执行 Payload",
      "unknownHost": "未知",
      "rootBadge": "ROOT",
      "curlBeaconTitle": "轻量级 Curl 信标",
      "curlBeaconBody": "此会话由 Curl Oneliner 建立，仅支持心跳保活和任务下发。\n交互式终端与文件管理需使用编译的 Beacon 可执行文件或 TCP 反向监听器。",
      "infoSessionId": "会话 ID",
      "infoImplantUuid": "植入体 UUID",
      "infoHostname": "主机名",
      "infoUsername": "用户名",
      "infoOs": "操作系统",
      "infoArch": "架构",
      "infoPid": "PID",
      "infoProcess": "进程",
      "infoAdmin": "管理员",
      "infoInternalIp": "内网 IP",
      "infoSleep": "Sleep",
      "infoSleepLine": "{{sec}} 秒（抖动 {{jitter}}%）",
      "infoFirstSeen": "首次上线",
      "infoLastCheckin": "上次心跳",
      "infoNote": "备注",
      "adminYes": "是",
      "adminNo": "否",
      "promptSleepSeconds": "Sleep 间隔（秒）",
      "promptJitterPercent": "抖动百分比（0–100）",
      "toastSleepUpdated": "Sleep 设置已更新",
      "confirmExitSession": "向该会话发送退出指令？",
      "confirmDeleteSession": "从服务器删除此会话及其关联任务与文件记录？（不会向植入体发送退出；若需退出目标进程请使用「终止会话」。）",
      "toastExitSent": "退出指令已发送",
      "toastSessionDeleted": "会话记录已删除",
      "terminalWelcome": "CyberStrikeAI C2 终端 — AI-Native 命令与控制",
      "termStatusReady": "就绪",
      "termStatusExec": "执行中…",
      "termStatusErr": "错误",
      "termStatusTimeout": "超时",
      "termNoSession": "错误：未选择会话",
      "termWaitTimeout": "[等待结果超时]",
      "termCleared": "终端已清屏",
      "termNoSelection": "未选中文本",
      "clearTerminal": "清屏"
    },
    "tasks": {
      "title": "任务管理",
      "taskId": "任务ID",
      "type": "类型",
      "status": "状态",
      "result": "结果",
      "error": "错误",
      "duration": "耗时",
      "createdAt": "创建时间",
      "queued": "队列中",
      "sent": "已发送",
      "running": "执行中",
      "success": "成功",
      "failed": "失败",
      "cancelled": "已取消",
      "viewResult": "查看结果",
      "cancel": "取消任务",
      "refresh": "刷新任务",
      "pending": "待处理",
      "emptyAll": "暂无任务",
      "emptySession": "该会话暂无任务",
      "colTask": "任务",
      "colSession": "会话",
      "colType": "类型",
      "colStatus": "状态",
      "colDuration": "耗时",
      "colCreated": "创建时间",
      "colActions": "操作",
      "view": "查看",
      "cancelBtn": "取消",
      "modalTitle": "任务详情",
      "labelId": "ID",
      "labelSession": "会话",
      "labelType": "类型",
      "labelStatus": "状态",
      "labelCreated": "创建时间",
      "labelSent": "发送时间",
      "labelCompleted": "完成时间",
      "labelDuration": "耗时",
      "labelError": "错误",
      "labelResult": "输出",
      "toastCancelled": "任务已取消",
      "batchDelete": "批量删除",
      "selectAll": "全选本页",
      "deleteOne": "删除任务",
      "deleteBtn": "删除",
      "confirmDeleteOne": "确定从服务器删除该任务记录吗？此操作不可恢复。",
      "confirmBatchDelete": "确定删除选中的 {{n}} 条任务记录吗？此操作不可恢复。",
      "toastSelectFirst": "请先勾选要删除的任务",
      "toastDeleted": "已删除 {{n}} 条",
      "paginationShow": "显示 {{start}}-{{end}} / 共 {{total}} 条记录",
      "paginationPerPage": "每页显示",
      "paginationFirst": "首页",
      "paginationPrev": "上一页",
      "paginationPage": "第 {{current}} / {{total}} 页",
      "paginationNext": "下一页",
      "paginationLast": "末页"
    },
    "payloads": {
      "title": "Payload 生成",
      "oneliner": "单行 Payload",
      "build": "编译 Beacon",
      "listener": "监听器",
      "kind": "类型",
      "host": "回连地址",
      "generate": "生成",
      "copy": "复制到剪贴板",
      "copied": "已复制",
      "os": "目标系统",
      "arch": "目标架构",
      "buildBtn": "构建",
      "building": "构建中...",
      "download": "下载",
      "linux": "Linux",
      "windows": "Windows",
      "darwin": "macOS",
      "amd64": "AMD64",
      "arm64": "ARM64",
      "386": "386",
      "arm": "ARM",
      "onelinerDesc": "快速生成可在目标机直接执行的反弹命令，支持 Bash / Python / PowerShell / Curl",
      "buildDesc": "交叉编译多平台完整 Beacon 可执行文件，支持 Linux / Windows / macOS",
      "hostOptional": "回连地址（可选）",
      "placeholderListenerHost": "留空则优先监听器「回连地址」，否则按绑定地址",
      "generateOnelinerBtn": "生成 Oneliner",
      "buildBeaconBtn": "构建 Beacon",
      "loopbackBeaconWarning": "127.0.0.1 仅适合「Beacon 与 C2 在同一台机、同一网络环境」本机自测。若 C2 跑在 Docker 里、Beacon 在宿主机直跑，127.0.0.1 会连到宿主而非容器，往往不上线，请改用映射端口 + 主机局域网 IP 或 host.docker.internal。远程目标请绑定 0.0.0.0 并重新编译。",
      "noBeaconListenersTcpOnly": "tcp_reverse 监听器现已支持编译 Beacon（反向 TCP + 魔数 CSB1 成帧）；经典 shell 仍可用上方单行 Payload",
      "noListenersOption": "暂无可用监听器",
      "noKindOption": "无可用类型",
      "toastLoadListenersFail": "加载监听器列表失败：{{msg}}",
      "toastPickListener": "请先选择一个监听器",
      "toastOnelinerFail": "生成 Oneliner 失败：{{msg}}",
      "toastBuildFail": "构建 Beacon 失败：{{msg}}",
      "toastBuildSuccess": "构建成功：{{bytes}} bytes",
      "buildSuccessTitle": "构建成功",
      "buildMetaOsArch": "系统：{{os}} | 架构：{{arch}}",
      "buildSize": "大小：{{bytes}} bytes",
      "clickToCopyTitle": "点击复制",
      "toastDownloadQueued": "下载任务已排队"
    },
    "events": {
      "title": "事件审计",
      "level": "级别",
      "category": "类别",
      "message": "消息",
      "time": "时间",
      "info": "信息",
      "warn": "警告",
      "critical": "严重",
      "listener": "监听器",
      "session": "会话",
      "task": "任务",
      "payload": "Payload",
      "opsec": "OPSEC",
      "refresh": "刷新",
      "empty": "暂无事件",
      "batchDelete": "批量删除",
      "selectAll": "全选本页",
      "deleteOne": "删除",
      "confirmDeleteOne": "确定删除该条事件吗？此操作不可恢复。",
      "confirmBatchDelete": "确定删除选中的 {{n}} 条事件吗？此操作不可恢复。",
      "toastSelectFirst": "请先勾选要删除的事件",
      "toastDeleted": "已删除 {{n}} 条",
      "paginationShow": "显示 {{start}}-{{end}} / 共 {{total}} 条记录",
      "paginationPerPage": "每页显示",
      "paginationFirst": "首页",
      "paginationPrev": "上一页",
      "paginationPage": "第 {{current}} / {{total}} 页",
      "paginationNext": "下一页",
      "paginationLast": "末页"
    },
    "profiles": {
      "title": "流量伪装",
      "name": "名称",
      "userAgent": "User-Agent",
      "uris": "URI 路径",
      "headers": "请求头",
      "jitter": "Jitter 范围",
      "create": "创建 Profile",
      "createBtn": "+ 创建 Profile",
      "delete": "删除",
      "empty": "暂无 Profile",
      "defaultValue": "默认",
      "modalCreateTitle": "创建 Malleable Profile",
      "profileNameLabel": "Profile 名称",
      "placeholderProfileName": "例如 cdn-fronting",
      "hintUa": "自定义 Beacon HTTP 请求中的 User-Agent 头",
      "labelBeaconUris": "Beacon URI（每行一个）",
      "hintUris": "Beacon 回连使用的 URI 路径",
      "labelJitterMin": "Jitter 最小值 (ms)",
      "labelJitterMax": "Jitter 最大值 (ms)",
      "labelRespHeaders": "自定义响应头 (JSON)",
      "hintHeaders": "用于伪装为合法服务的 HTTP 响应头",
      "toastNameRequired": "请填写 Profile 名称",
      "toastInvalidHeadersJson": "响应头 JSON 无效",
      "toastCreated": "Profile 已创建",
      "toastDeleted": "Profile 已删除",
      "confirmDelete": "确定删除此 Profile？",
      "submitCreate": "创建"
    }
  }
}
