{
  "common": {
    "confirm": "确认",
    "cancel": "取消",
    "close": "关闭",
    "refresh": "刷新",
    "refreshing": "刷新中...",
    "loading": "加载中...",
    "save": "保存",
    "saving": "保存中...",
    "error": "错误",
    "ok": "确定",
    "and": "和"
  },
  "nav": {
    "chat": "对话",
    "agent": "智能体",
    "sessions": "会话",
    "heartbeat": "心跳",
    "cron": "定时任务",
    "skills": "技能",
    "channels": "频道",
    "settings": "设置",
    "config": "配置信息",
    "browser": "浏览器服务",
    "logs": "日志"
  },
  "statusBar": {
    "cancel": "取消",
    "pause": "暂停",
    "resume": "恢复",
    "processing": "处理中...",
    "paused": "已暂停",
    "pausedWithTask": "已暂停: {{task}}..."
  },
  "chat": {
    "placeholder": "Enter 发送，Shift+Enter 换行，按住语音键开始录音",
    "placeholderProcessing": "处理中，输入新指令可中断...",
    "placeholderProcessingQueue": "处理中，输入新指令将加入等待队列...",
    "placeholderVoice": "正在听取语音...",
    "welcomeLogoAlt": "JiuwenClaw 标志",
    "welcomeHeading": "你好，我是JiuwenClaw，很高兴认识你！",
    "welcomeSubtext": "我可以帮你回答问题，解决疑惑，还可以帮你完成一些任务。",
    "welcomeSuggestions": {
      "journey": "让我们开启一段新的旅程吧！",
      "skills": "能告诉我你有哪些技能吗？"
    },
    "newSession": "新建会话",
    "sessionCreated": "已新建会话",
    "modePlan": "任务规划",
    "modeAgent": "智能执行",
    "recording": "正在录音...（松开按钮自动发送）",
    "waitingTasks": "等待任务",
    "waitingTasksCount": "等待任务 ({{count}})",
    "removeTask": "移除任务",
    "holdToSpeak": "按住说话",
    "send": "发送 (Enter)",
    "newSessionDisabled": "处理中或录音中不可新建"
  },
  "connection": {
    "connected": "已连接",
    "disconnected": "未连接",
    "connecting": "正在连接服务器...",
    "loadingConfig": "加载配置中..."
  },
  "toolPanel": {
    "status": "状态",
    "contextCompression": "上下文压缩",
    "memoryUsage": "内存占用",
    "message": "消息",
    "time": "时间",
    "heartbeatClick": "心跳消息，点击查看",
    "poweredBy": "Powered by openJiuwen"
  },
  "todoList": {
    "title": "任务列表",
    "empty": "暂无任务",
    "inProgress": "进行中",
    "pending": "待处理",
    "completed": "已完成"
  },
  "sessions": {
    "title": "会话管理",
    "subtitle": "浏览并管理会话与文件",
    "history": "历史会话",
    "count": "最多 20 条，当前 {{count}} 条",
    "empty": "暂无会话",
    "delete": "删除会话",
    "files": "会话文件",
    "selectFirst": "请先选择会话",
    "loadingFiles": "加载文件中...",
    "emptyFiles": "暂无文件",
    "folder": "文件夹",
    "notPreviewable": "不可预览",
    "selectFile": "请选择一个文件查看",
    "noneSelected": "未选择会话",
    "unknownSession": "未知会话-未知时间",
    "unknownTime": "未知时间",
    "deleteConfirm": "确认删除会话 {{session}} ?\n将删除该会话目录下所有文件。",
    "prefixes": {
      "session": "会话",
      "cron": "定时",
      "feishu": "飞书",
      "xiaoyi": "小艺",
      "dingtalk": "钉钉",
      "heartbeat": "心跳",
      "unknown": "未知"
    },
    "errors": {
      "loadSessions": "会话列表加载失败",
      "loadFiles": "会话文件列表加载失败",
      "deleteSession": "删除会话失败：{{sessionId}}"
    }
  },
  "sessionSidebar": {
    "newSession": "新会话"
  },
  "heartbeat": {
    "title": "心跳管理",
    "subtitle": "维护心跳参数与指令文件",
    "configTitle": "心跳参数配置",
    "configSubtitle": "配置心跳间隔、目标频道与生效时间",
    "loadingConfig": "正在加载心跳配置...",
    "saved": "心跳参数已保存",
    "badges": {
      "ok": "最近心跳正常",
      "alert": "最近心跳告警",
      "unknown": "尚无心跳结果"
    },
    "everyLabel": "间隔时间 (秒)",
    "targetLabel": "目标频道 (channel_id)",
    "enableActiveHours": "启用生效时间",
    "startTime": "开始时间",
    "endTime": "结束时间",
    "recentMessages": "最近 20 条心跳消息",
    "noHistory": "暂无历史心跳消息",
    "statusOk": "OK",
    "statusUnknown": "UNKNOWN",
    "latestTime": "最近心跳时间",
    "latestContent": "最近心跳内容",
    "none": "暂无",
    "channels": {
      "web": "网页 (web)",
      "feishu": "飞书 (feishu)",
      "xiaoyi": "小艺 (xiaoyi)",
      "dingtalk": "钉钉 (dingtalk)"
    },
    "errors": {
      "loadConfig": "加载心跳配置失败",
      "saveConfig": "保存心跳配置失败",
      "invalidEvery": "心跳间隔 every 必须是大于 0 的数字",
      "invalidActiveHours": "active_hours 需使用 HH:MM 格式（例如 08:00）",
      "invalidRange": "结束时间必须大于开始时间"
    }
  },
  "heartbeatModal": {
    "closeAria": "关闭心跳详情弹窗",
    "title": "心跳消息",
    "subtitle": "消息内容详情",
    "empty": "无详细内容"
  },
  "offloadFiles": {
    "title": "离线文件",
    "count": "{{count}} 个文件",
    "notConnected": "未连接会话",
    "empty": "暂无离线文件",
    "previewFallback": "离线文件内容",
    "previewTitle": "离线消息文件预览",
    "emptyContent": "文件内容为空",
    "errors": {
      "loadFiles": "获取离线文件失败",
      "loadContent": "加载失败"
    }
  },
  "userQuestion": {
    "title": "需要您的确认",
    "subtitle": "请回答以下问题以继续任务",
    "submit": "确认提交",
    "multiSelect": "（可多选）",
    "customOption": "其他（自定义输入）",
    "customPlaceholder": "请输入您的回答..."
  },
  "sourceManager": {
    "closeAria": "关闭源管理弹窗",
    "title": "源管理",
    "subtitle": "添加、删除或启用/禁用技能源",
    "addTitle": "添加源",
    "add": "添加",
    "configuredCount": "已配置源（{{count}} 个）",
    "empty": "暂无已配置源",
    "updatedAt": "更新于 {{time}}",
    "placeholders": {
      "name": "源名称",
      "url": "Git 仓库地址（https://...）"
    },
    "status": {
      "enabled": "已启用",
      "disabled": "已禁用"
    },
    "actions": {
      "enable": "启用",
      "disable": "禁用",
      "delete": "删除"
    },
    "messages": {
      "fillRequired": "请先填写源名称和仓库 URL",
      "addFailed": "添加源失败",
      "addFailedCheck": "添加源失败，请检查名称或 URL",
      "added": "已添加源：{{name}}（默认禁用）",
      "confirmDelete": "确认删除源 {{name}} ?",
      "removeFailed": "删除源失败",
      "removeFailedRetry": "删除源失败，请稍后重试",
      "removed": "已删除源：{{name}}",
      "toggleFailed": "切换源状态失败",
      "enabled": "已启用源：{{name}}",
      "disabled": "已禁用源：{{name}}",
      "enableFailed": "启用源失败，请检查网络或仓库地址",
      "disableFailed": "禁用源失败，请稍后重试",
      "loadFailed": "源列表加载失败，请重试"
    }
  },
  "channels": {
    "title": "频道管理",
    "subtitle": "查看并管理频道服务",
    "fetchFailed": "获取失败",
    "retry": "重试",
    "listTitle": "频道列表",
    "listMeta": "频道个数：{{status}}，刷新时间：{{time}}",
    "hideValue": "隐藏明文",
    "showValue": "显示明文",
    "labels": {
      "web": "网页",
      "xiaoyi": "小艺",
      "feishu": "飞书",
      "dingtalk": "钉钉"
    },
    "status": {
      "loadFailed": "加载失败",
      "enabledSummary": "{{enabledCount}}/{{total}} 已启用",
      "adapting": "适配中",
      "enabled": "已启用",
      "disabled": "未启用"
    },
    "config": {
      "webTitle": "网页频道参数配置",
      "webSubtitle": "配置网页频道服务相关参数",
      "webEmpty": "网页频道暂无配置，点击其他频道加载配置。",
      "xiaoyiTitle": "小艺频道参数配置",
      "xiaoyiSubtitle": "配置小艺频道服务相关参数",
      "dingtalkTitle": "钉钉频道参数配置",
      "dingtalkSubtitle": "配置钉钉频道服务相关参数",
      "feishuTitle": "飞书频道参数配置",
      "feishuSubtitle": "配置飞书频道服务相关参数"
    },
    "loading": {
      "xiaoyi": "正在加载小艺配置...",
      "dingtalk": "正在加载钉钉配置...",
      "feishu": "正在加载飞书配置..."
    },
    "placeholders": {
      "configValue": "请输入配置值",
      "appId": "请输入应用 ID",
      "appSecret": "请输入应用密钥",
      "employeeIds": "每行一个员工 ID（也支持逗号分隔）",
      "chatId": "请输入聊天 ID",
      "ids": "每行一个 ID（也支持逗号分隔）"
    },
    "saved": {
      "feishu": "飞书配置已保存",
      "xiaoyi": "小艺配置已保存",
      "dingtalk": "钉钉配置已保存"
    },
    "errors": {
      "loadChannels": "获取 channels 失败",
      "loadFeishu": "获取飞书配置失败",
      "loadXiaoyi": "获取小艺配置失败",
      "loadDingtalk": "获取钉钉配置失败",
      "saveGeneric": "保存失败，请稍后重试"
    }
  },
  "config": {
    "title": "配置信息",
    "subtitle": "修改后端服务配置，保存后后端将自动重启以加载最新配置。",
    "groupFallback": "参数分组",
    "itemsCount": "{{count}} 项",
    "groupsCount": "共 {{count}} 个配置组",
    "paramsCount": "{{count}} 项参数",
    "requiredIncomplete": "模型配置必填项未完成",
    "empty": "暂未获取到配置，请确认后端服务状态。",
    "selectModelProvider": "请选择模型提供商",
    "enterValue": "请输入配置值",
    "hideValue": "隐藏明文",
    "showValue": "显示明文",
    "groups": {
      "model": { "label": "模型配置", "hint": "模型服务与鉴权参数" },
      "embed": { "label": "Embed配置", "hint": "Embed 服务与鉴权参数" },
      "thirdParty": { "label": "第三方服务配置", "hint": "API Key 配置" },
      "evolution": { "label": "自演进配置", "hint": "Skills 在线自演进参数" },
      "email": { "label": "邮箱配置", "hint": "邮件账号与令牌参数" },
      "other": { "label": "其他配置", "hint": "未归类的扩展参数" }
    },
    "errors": {
      "requiredModelFields": "模型配置为必填：{{fields}}。请完整填写后再保存并重启。",
      "saveFailed": "保存失败，请稍后重试"
    }
  },
  "cron": {
    "title": "定时任务管理",
    "subtitle": "使用 cron 表达式管理定时任务，支持添加、启用和删除操作",
    "create": "创建任务",
    "cancelCreate": "取消创建",
    "update": "更新",
    "delete": "删除",
    "enable": "启动",
    "disable": "停用",
    "loading": "正在加载任务列表...",
    "empty": "暂无定时任务",
    "deleteConfirm": "确定要删除这个任务吗？",
    "status": {
      "enabled": "启用",
      "disabled": "禁用"
    },
    "columns": {
      "name": "任务名称",
      "cron": "Cron 表达式",
      "status": "状态",
      "description": "描述",
      "wakeOffset": "唤醒偏移秒数",
      "timezone": "时区",
      "target": "推送频道",
      "actions": "操作"
    },
    "placeholders": {
      "name": "输入任务名称",
      "cron": "5段式：分 时 日 月 周。例：每周一11时58分='58 11 * * 1'",
      "cronShort": "例：58 11 * * 1",
      "description": "输入描述",
      "wakeOffset": "唤醒偏移秒数"
    },
    "targets": {
      "web": "网页 (web)",
      "feishu": "飞书 (feishu)",
      "xiaoyi": "小艺 (xiaoyi)",
      "dingtalk": "钉钉 (dingtalk)"
    },
    "success": {
      "created": "任务创建成功",
      "updated": "任务更新成功",
      "deleted": "任务删除成功",
      "statusUpdated": "任务状态更新成功"
    },
    "errors": {
      "loadJobs": "加载定时任务失败",
      "createFailed": "创建任务失败",
      "updateFailed": "更新任务失败",
      "deleteFailed": "删除任务失败",
      "toggleFailed": "更新任务状态失败",
      "loadDetailFailed": "获取任务详情失败",
      "nameRequired": "任务名称不能为空",
      "cronRequired": "Cron 表达式不能为空",
      "timezoneRequired": "时区不能为空",
      "targetRequired": "推送频道不能为空",
      "descriptionRequired": "描述不能为空"
    }
  },
  "browser": {
    "title": "浏览器服务",
    "subtitle": "配置浏览器路径，启动浏览器服务。",
    "refreshPath": "刷新路径",
    "savePath": "保存路径",
    "startService": "启动浏览器服务",
    "starting": "启动中...",
    "pathConfigHelp": "CHROME 路径配置（Chrome地址栏输入：chrome://version查看，复制可执行文件路径）",
    "examplePath": "例如：/Applications/Google Chrome.app/Contents/MacOS/Google Chrome",
    "success": {
      "pathSaved": "Chrome 路径已保存",
      "started": "浏览器服务启动成功"
    },
    "tooltips": {
      "fillPath": "请先填写 Chrome 路径",
      "savePath": "请先保存 Chrome 路径"
    },
    "errors": {
      "loadPath": "加载 Chrome 路径失败",
      "savePath": "保存 Chrome 路径失败",
      "pathRequired": "Chrome 路径不能为空",
      "saveBeforeStart": "请先保存 Chrome 路径后再启动浏览器服务",
      "startFailed": "启动浏览器服务失败",
      "startFailedWithCode": "浏览器服务启动失败，返回码 {{code}}",
      "startFailedWithMessage": "浏览器服务启动失败：{{message}}"
    }
  },
  "logsPanel": {
    "title": "日志",
    "dataSource": "数据源",
    "debugSetting": "调试模式设置中...",
    "debugOn": "调试模式开",
    "debugOff": "调试模式关",
    "autoRefreshOn": "自动刷新开",
    "autoRefreshOff": "自动刷新关",
    "recentLogs": "最近日志（最多 300 条）",
    "countVisible": "{{count}} 条",
    "countVisibleTotal": "{{visible}} 条（总 {{total}} 条）",
    "empty": "暂无日志",
    "errors": {
      "readLogs": "读取日志失败",
      "readDebugConfig": "读取 WS 调试配置失败",
      "updateDebugConfig": "更新 WS 调试配置失败"
    }
  },
  "skills": {
    "title": "技能管理",
    "subtitle": "管理并安装智能体可用的技能。",
    "actions": {
      "install": "安装",
      "uninstall": "卸载",
      "importLocal": "导入本地技能",
      "sourceManager": "源管理",
      "backToList": "返回列表"
    },
    "builtIn": "内置",
    "status": {
      "installed": "已安装",
      "notInstalled": "未安装",
      "builtIn": "内置"
    },
    "source": {
      "local": "本地",
      "project": "项目",
      "unknown": "未知"
    },
    "sourceLabel": "来源",
    "statusLabel": "状态",
    "versionLabel": "版本",
    "authorLabel": "作者",
    "allowedTools": "允许工具",
    "unlimited": "无限制",
    "contentPreview": "内容预览",
    "noDescription": "暂无描述",
    "noContent": "暂无内容",
    "searchPlaceholder": "搜索技能名称、描述或标签",
    "totalCount": "共 {{count}} 个",
    "listError": "获取技能失败，请检查后端服务",
    "noMatches": "暂无匹配的技能",
    "detailLoading": "加载详情中...",
    "detailError": "加载详情失败",
    "marketplacesAvailable": "可用 marketplace: {{names}}",
    "marketplacesDefault": "默认 marketplace: anthropics",
    "installPrompt": "请输入插件规格 (plugin@marketplace)",
    "importPrompt": "请输入服务端本地 skill 路径（SKILL.md 或目录）",
    "uninstallConfirm": "确认卸载 {{pluginName}} ?",
    "messages": {
      "installed": "已安装：{{spec}}",
      "imported": "已导入：{{name}}",
      "uninstalled": "已卸载：{{pluginName}}"
    },
    "errors": {
      "installFailed": "安装失败",
      "installFailedHint": "安装失败，请检查插件规格或网络",
      "importFailed": "导入失败",
      "importFailedHint": "导入失败，请检查路径或权限",
      "uninstallFailed": "卸载失败",
      "uninstallFailedHint": "卸载失败，请稍后重试"
    }
  },
  "agent": {
    "title": "智能体管理",
    "subtitle": "查看智能体工作区文件与记忆内容",
    "root": "根目录",
    "workspace": "工作区",
    "workspaceMeta": "{{directories}} 个目录，{{files}} 个文件",
    "directoryCount": "{{count}} 个目录",
    "fileCount": "{{count}} 个文件",
    "previewableCount": "{{count}} 个可预览",
    "refresh": "刷新列表",
    "empty": "暂无文件",
    "notPreviewable": "不可预览",
    "contentPreview": "内容预览",
    "selectMarkdown": "选择左侧 Markdown 文件查看",
    "selectMarkdownContent": "请选择左侧 Markdown 文件查看内容",
    "markdownOnly": "仅支持 Markdown（.md/.mdx）预览",
    "errors": {
      "refreshFailed": "刷新失败：无法重建 agent 文件索引，请检查生成脚本日志。",
      "loadFailed": "无法读取 agent 文件列表，请检查 workspace/agent-data.json 是否已生成。"
    }
  },
  "fileViewer": {
    "edit": "编辑",
    "unknownError": "未知错误",
    "fileMissingPrefix": "文件不存在。请先在",
    "fileMissingSuffix": "创建该 Markdown 文件后再编辑。",
    "notPreviewable": "该文件无法预览，仅支持 Markdown（.md/.mdx）文件"
  },
  "chatUi": {
    "copyMessage": "复制消息",
    "stopReading": "停止朗读",
    "readMessage": "朗读消息",
    "parallelProgress": "并行任务执行中 ({{completedCount}}/{{total}} 完成)",
    "subtask": {
      "starting": "启动中...",
      "toolCall": "调用 {{tool}} (#{{count}})",
      "toolFallback": "工具",
      "toolResult": "处理结果...",
      "taskLabel": "任务 {{index}}: {{description}}",
      "callCount": "{{count}} 次调用"
    },
    "toolResult": {
      "success": "完成",
      "failed": "失败",
      "timeout": "执行超时",
      "arguments": "参数",
      "result": "结果",
      "truncated": "结果已截断"
    },
    "toolGroup": {
      "executed": "已执行 {{totalPairs}} 次工具调用",
      "pending": "{{pendingCount}} 个执行中",
      "timeout": "{{timeoutCount}} 个超时",
      "latest": "↓ 最新"
    },
    "inlineQuestion": {
      "header": "演进审批",
      "selected": "已选择",
      "accept": "接收",
      "reject": "拒绝"
    }
  },
  "network": {
    "wsError": "WebSocket 连接异常",
    "connectionClosedWithCode": "连接已关闭 ({{code}})",
    "connectionClosed": "连接已关闭",
    "connectionUnavailable": "连接不可用",
    "requestTimeout": "请求超时",
    "requestAborted": "请求已取消",
    "requestFailed": "请求失败",
    "sendMessageFailed": "发送消息失败",
    "interruptFailed": "中断失败",
    "pauseFailed": "暂停失败",
    "cancelFailed": "取消失败",
    "supplementFailed": "补充失败",
    "resumeFailed": "恢复失败",
    "submitAnswerFailed": "提交回答失败",
    "unknownError": "未知错误",
    "errorPrefix": "错误: {{message}}"
  },
  "speech": {
    "recognitionUnsupported": "浏览器不支持语音识别",
    "synthesisUnsupported": "浏览器不支持语音合成",
    "errors": {
      "noSpeech": "未检测到语音",
      "noMic": "未检测到麦克风",
      "notAllowed": "麦克风权限被拒绝",
      "network": "网络错误",
      "recognitionGeneric": "语音识别错误: {{error}}",
      "synthesisGeneric": "语音合成错误: {{error}}"
    }
  },
  "time": {
    "daysAgo": "{{count}}天前",
    "hoursAgo": "{{count}}小时前",
    "minutesAgo": "{{count}}分钟前",
    "justNow": "刚刚"
  },
  "version": "版本 {{version}}",
  "app": {
    "title": "JiuwenClaw",
    "subtitle": "AI Assistant",
    "errorTitle": "应用加载出错",
    "unknownError": "未知错误",
    "reload": "刷新页面",
    "themeSystem": "跟随系统",
    "themeDark": "深色模式",
    "themeLight": "浅色模式",
    "configError": "无法通过 WebSocket 获取后端配置，已使用默认配置",
    "configErrorHint": "请先启动 E2E 后端（如",
    "configErrorDefault": "，默认监听 19000）。若后端不在本机或端口不同，可在",
    "configErrorEnv": "设置",
    "heartbeatTitle": "心跳消息",
    "heartbeatClose": "关闭",
    "heartbeatViewFull": "点击查看完整心跳消息",
    "noContent": "无详细内容",
    "restarting": "正在重启服务",
    "restartSuccess": "重启成功",
    "configApplied": "配置已生效",
    "restartWaiting": "正在等待后端重新启动并恢复连接，请稍候...",
    "configAppliedDesc": "配置已热更新，窗口将在 5 秒后自动关闭。",
    "restartSuccessDesc": "后端已启动成功，窗口将在 5 秒后自动关闭。"
  }
}
