{
  "common": {
    "save": "保存",
    "reset": "重置",
    "cancel": "取消",
    "confirm": "确认",
    "delete": "删除",
    "edit": "编辑",
    "create": "创建",
    "upload": "上传",
    "download": "下载",
    "refresh": "刷新",
    "retry": "重试",
    "search": "搜索",
    "enable": "启用",
    "disable": "禁用",
    "enabled": "已启用",
    "disabled": "已禁用",
    "preview": "预览",
    "view": "查看",
    "content": "内容",
    "loading": "加载中...",
    "copy": "复制",
    "copied": "已复制到剪贴板",
    "copyFailed": "复制到剪贴板失败",
    "contentPlaceholder": "输入内容...",
    "help": "帮助",
    "close": "关闭",
    "back": "返回",
    "actions": "操作",
    "total": "共 {{count}} 条",
    "clear": "清除",
    "paste": "粘贴",
    "yes": "是",
    "no": "否"
  },
  "desktop": {
    "closeWindow": {
      "title": "关闭窗口",
      "description": "关闭窗口时您希望执行什么操作？退出应用将停止所有正在运行的任务和定时任务。",
      "remember": "记住我的选择",
      "showWindow": "显示窗口",
      "minimizeToTray": "最小化到托盘",
      "quitApp": "退出应用",
      "preference": "关闭窗口",
      "askEveryTime": "每次询问"
    }
  },
  "chunkError": {
    "title": "页面加载失败",
    "subTitle": "可能由网络问题或应用更新导致，请稍后重试。",
    "genericTitle": "页面出现异常",
    "genericSubTitle": "渲染此页面时发生了意外错误。",
    "reload": "刷新页面"
  },
  "appCenter": {
    "backToList": "返回",
    "search": "搜索应用...",
    "allCategories": "全部",
    "noApps": "尚未安装任何应用",
    "noResults": "没有匹配的应用",
    "loadFailed": "加载应用失败，请重试。",
    "appNotLoaded": "该应用尚未加载，请先从侧边栏打开一次后重试。",
    "marketSectionTitle": "来自应用市场的更多内容",
    "uninstall": "卸载",
    "uninstallConfirmTitle": "卸载应用？",
    "uninstallConfirmContent": "这将删除应用 \"{{name}}\" 的目录，且不可撤销。",
    "uninstallSuccess": "应用已卸载",
    "uninstallFailed": "卸载失败",
    "installSuccess": "已安装",
    "installFailed": "安装失败",
    "searchMarket": "搜索应用市场...",
    "marketEmpty": "未找到应用",
    "install": "安装",
    "details": "详情",
    "featured": "精选",
    "featuredApps": "精选应用",
    "allApps": "全部应用",
    "refreshApp": "刷新应用",
    "appRefreshed": "应用已刷新",
    "aboutApp": "关于应用",
    "exitApp": "退出应用",
    "moreOptions": "更多选项",
    "backToListHint": "返回应用列表 (ESC)",
    "version": "版本",
    "id": "ID",
    "category": "分类",
    "description": "描述"
  },
  "nav": {
    "chat": "聊天",
    "control": "控制",
    "channels": "频道",
    "sessions": "会话",
    "inbox": "收件箱",
    "apps": "应用",
    "cronJobs": "定时任务",
    "heartbeat": "心跳",
    "agent": "工作区",
    "workspace": "文件",
    "skills": "技能",
    "skillPool": "技能池",
    "market": "技能市场",
    "tools": "工具",
    "mcp": "MCP",
    "acp": "ACP",
    "agentConfig": "运行配置",
    "agents": "智能体管理",
    "settings": "设置",
    "models": "模型",
    "environments": "环境变量",
    "security": "安全",
    "tokenUsage": "Token 消耗",
    "agentStats": "智能体统计",
    "voiceTranscription": "语音转写",
    "debug": "调试",
    "plugins": "插件",
    "backups": "备份",
    "pluginManager": "插件管理"
  },
  "sidebar": {
    "newVersion": "发现新版本 v{{version}}，点击前往升级",
    "updateModal": {
      "title": "发现新版本 v{{version}}",
      "viewReleases": "查看 Releases",
      "installDesktopUpdate": "现在更新",
      "desktopInstallHint": "QwenPaw 桌面端 {{version}} 已准备好安装，更新后应用将自动重启。",
      "checking": "检查更新中…",
      "checkingHint": "正在确认最新版本",
      "downloading": "正在下载更新",
      "downloadingTo": "正在更新到版本 {{version}}",
      "downloadProgress": "{{done}} / {{total}} · {{rate}}",
      "installing": "正在安装更新",
      "willRestart": "应用将在安装完成后自动重启,请稍候…",
      "stepPrepare": "准备",
      "stepDownloading": "下载",
      "stepInstalling": "安装",
      "failedTitle": "更新失败",
      "back": "返回",
      "retry": "重试",
      "errors": {
        "network": "连接不上更新服务器，请检查网络后重试。",
        "signature": "更新文件签名校验失败，请重新尝试下载。",
        "appLocation": "QwenPaw 正在从 macOS 只读位置运行。请先将 QwenPaw.app 移动到“应用程序”文件夹，从那里启动后再重试更新。",
        "other": "更新失败。"
      },
      "updateLater": "后台下载",
      "backgroundDownloading": "正在后台下载更新…",
      "readyToInstall": "更新已就绪",
      "readyToInstallHint": "v{{version}} 更新已下载，重启后将安装并启动新版本。",
      "restartNow": "现在更新",
      "backgroundFailed": "后台下载失败"
    },
    "settings": {
      "language": "语言",
      "theme": "主题",
      "mode": "模式"
    },
    "simpleMode": "精简模式",
    "fullMode": "完整模式"
  },
  "debug": {
    "title": "调试",
    "desc": "查看后端守护进程日志文件，便于排查问题。在此页面打开时日志会自动刷新。",
    "level": {
      "all": "全部"
    },
    "backend": {
      "title": "后端日志",
      "autoRefresh": "自动刷新",
      "newestFirst": "最新在前",
      "updatedAt": "更新时间",
      "path": "日志文件",
      "notFound": "暂未找到后端日志文件。",
      "placeholder": "后端日志会显示在这里。",
      "loadFailed": "加载后端日志失败",
      "searchPlaceholder": "搜索后端日志..."
    },
    "actions": {
      "refreshBackend": "刷新后端日志",
      "refreshSuccess": "日志已刷新",
      "copyBackend": "复制后端日志"
    }
  },
  "inbox": {
    "title": "收件箱",
    "tabApprovals": "审批",
    "tabPushMessages": "推送消息",
    "tabHarvests": "AI 收获",
    "summaryApprovals": "审批数",
    "summaryPushUnread": "未读推送",
    "summaryHarvests": "收获任务",
    "from": "来自：",
    "skillAutoUpdateTitle": "技能自动同步",
    "skillPoolSender": "技能池",
    "skillAutoUpdated": "{{skill}}技能发生修改，自动同步至以下智能体：{{agents}}",
    "skillAutoUpdateFailed": "{{skill}}技能自动同步失败，目标智能体：{{agents}}",
    "requestedBy": "请求方",
    "markRead": "标记已读",
    "markAllRead": "全部标记已读",
    "markAllReadNoUnread": "当前没有未读消息",
    "markAllReadSuccess": "已将 {{count}} 条消息标记为已读",
    "selectAllCurrentPage": "全选当前页",
    "selectedItems": "已选 {{count}} 项",
    "batchDeleteButton": "批量删除",
    "batchOperation": "批量操作",
    "exitBatch": "退出批量",
    "batchDeleteConfirm": "确定删除选中的 {{count}} 条推送消息吗？",
    "batchDeleteSuccess": "已删除 {{count}} 条推送消息",
    "pushCronHeader": "定时任务：{{name}}",
    "viewDetails": "查看详情",
    "deleteMessageConfirm": "确定删除这条推送消息吗？",
    "viewAll": "查看全部",
    "read": "已读",
    "approve": "同意",
    "reject": "拒绝",
    "ready": "已就绪",
    "harvestNow": "立即收获",
    "createHarvest": "创建 Harvest",
    "createFirstHarvest": "创建第一个 Harvest",
    "createSuccess": "Harvest 创建成功",
    "emptyApprovals": "暂无待审批项",
    "emptyPush": "暂无推送消息",
    "emptyHarvests": "暂无 Harvest 任务",
    "statusReadyToHarvest": "可立即收获",
    "statusGrowing": "生成中",
    "harvestedTimes": "已生成 {{count}} 次",
    "harvestSuccessRate": "成功率 {{rate}}%",
    "messageDetailComingSoon": "消息详情功能开发中",
    "harvestSettingsComingSoon": "Harvest 设置功能开发中",
    "messageDetailTitle": "执行详情",
    "detailCronTitle": "定时任务：{{name}}",
    "detailHeartbeatTitle": "心跳",
    "messageNotFound": "未找到该消息",
    "detailTaskName": "任务名称",
    "detailTaskId": "任务 ID",
    "detailStatus": "执行状态",
    "detailSeverity": "严重程度",
    "detailAgent": "所属 Agent",
    "detailSource": "来源",
    "detailSourceCronJob": "定时任务",
    "detailSourceHeartbeat": "心跳任务",
    "detailTrigger": "触发方式",
    "detailDuration": "耗时",
    "detailExecutedAt": "执行时间",
    "detailReceivedAt": "收件时间",
    "detailRunId": "运行 ID",
    "detailContent": "执行输出",
    "detailPayload": "附加信息",
    "detailExecutionTrace": "执行轨迹",
    "detailTraceEmpty": "暂无执行轨迹",
    "filterByAgent": "按 Agent 筛选",
    "filterBySourceType": "按来源筛选",
    "sourceTypeCron": "定时任务",
    "sourceTypeHeartbeat": "心跳",
    "sourceTypeMemory": "记忆"
  },
  "workspace": {
    "title": "文件",
    "workspacePath": "工作区路径：",
    "noFiles": "没有文件",
    "coreFiles": "核心文件",
    "coreFilesDesc": "引导角色、身份和工具指南。",
    "uploadTooltip": "仅支持 ZIP 文件",
    "uploadTooltipWithLimit": "仅支持 ZIP 文件，最大 {{limit}}MB",
    "selectFile": "选择文件进行编辑",
    "fileContent": "文件内容...",
    "uploadSuccess": "文件上传成功",
    "uploadFailed": "文件上传失败",
    "downloadPreparing": "正在准备工作区下载...",
    "downloadSuccess": "工作区下载成功",
    "downloadFailed": "工作区下载失败",
    "zipOnly": "仅支持上传 .zip 文件",
    "fileSizeExceeded": "文件大小超过 {{limit}}MB 限制。当前文件：{{size}}MB",
    "systemPromptToggleTooltip": "启用/禁用此文件加载到系统提示词",
    "memoryFileWarning": "MEMORY.md 一般是由 agent 主动调用工具按需查询和加载，放到 system prompt 里面可能会导致上下文过长",
    "configUpdated": "系统提示词配置已更新",
    "configUpdateFailed": "更新系统提示词配置失败",
    "attribution": "工作区设计部分灵感源自 OpenClaw 项目，在此表示感谢 🐾",
    "saveSuccess": "保存成功",
    "saveFailed": "保存失败",
    "saving": "保存中...",
    "saved": "已保存",
    "unsaved": "未保存"
  },
  "agent": {
    "parent": "设置",
    "agents": "智能体",
    "management": "智能体管理",
    "pageDescription": "创建、配置和管理多个 AI 智能体，支持自定义工作空间和身份。",
    "name": "名称",
    "id": "ID",
    "description": "描述",
    "workspace": "工作区路径",
    "create": "创建智能体",
    "createTitle": "创建新智能体",
    "createSuccess": "智能体创建成功",
    "createFailed": "智能体创建失败",
    "edit": "编辑",
    "editTitle": "编辑智能体 - {{name}}",
    "updateSuccess": "智能体更新成功",
    "updateFailed": "智能体更新失败",
    "delete": "删除",
    "deleteConfirm": "确认删除智能体",
    "deleteConfirmDesc": "删除后智能体将不可用，但工作区文件会保留",
    "deleteSuccess": "智能体删除成功",
    "deleteFailed": "智能体删除失败",
    "selectAgent": "选择智能体",
    "defaultDisplayName": "默认智能体",
    "currentWorkspace": "当前智能体",
    "switchSuccess": "智能体切换成功",
    "switchFailed": "智能体切换失败",
    "loadFailed": "加载智能体列表失败",
    "loadConfigFailed": "加载智能体配置失败",
    "saveFailed": "保存智能体失败",
    "idRequired": "请输入智能体ID",
    "idLabel": "智能体 ID（可选）",
    "idHelp": "留空则自动生成。仅允许字母、数字、连字符和下划线。",
    "idPattern": "ID只能包含字母、数字、下划线和连字符",
    "idPlaceholder": "例如：my-agent",
    "nameRequired": "请输入智能体名称",
    "namePlaceholder": "例如：我的智能体",
    "descriptionPlaceholder": "简要描述这个智能体的用途...",
    "workspaceHelp": "留空将自动生成在 ~/.qwenpaw/workspaces/<id> 目录",
    "dragHandleTooltip": "拖拽调整智能体顺序",
    "reorderSuccess": "智能体顺序已保存",
    "reorderFailed": "保存智能体顺序失败",
    "defaultNotEditable": "默认智能体不允许编辑",
    "defaultNotDeletable": "默认智能体不允许删除",
    "disable": "禁用",
    "enable": "启用",
    "disabled": "已禁用",
    "disableConfirm": "确认禁用智能体",
    "disableConfirmDesc": "禁用后该智能体不会启动运行实例，但仍可在列表中查看",
    "enableConfirm": "确认启用智能体",
    "enableConfirmDesc": "启用后该智能体将可以正常切换使用",
    "disableSuccess": "智能体已禁用",
    "enableSuccess": "智能体已启用",
    "toggleFailed": "切换智能体状态失败",
    "enableAgent": "启用 {{name}}",
    "disableAgent": "禁用 {{name}}",
    "disabledAgents": "已禁用 ({{count}})",
    "pinnedAgents": "已固定",
    "otherAgents": "其他智能体",
    "pinned": "已固定",
    "defaultPinned": "默认智能体始终固定",
    "longPressToPin": "长按固定",
    "longPressToUnpin": "长按取消固定",
    "pinAgent": "固定智能体",
    "unpinAgent": "取消固定智能体",
    "pinSuccess": "智能体已固定",
    "unpinSuccess": "智能体已取消固定",
    "pinFailed": "更新固定状态失败",
    "status": {
      "disabled": "已禁用",
      "pending": "等待启动",
      "starting": "启动中",
      "running": "运行中",
      "failed": "启动失败",
      "waitUntilStarted": "启动完成后可操作"
    },
    "defaultNotDisablable": "默认智能体不允许禁用",
    "currentAgentDeleted": "当前智能体已被删除，已自动切换到默认智能体",
    "currentAgentDisabled": "当前智能体已被禁用，已自动切换到默认智能体",
    "switchedToDefault": "已自动切换到默认智能体",
    "cannotSwitchToDisabled": "该智能体已被禁用，请先在管理页面启用",
    "initialSkills": "初始技能",
    "initialSkillsHelp": "从技能池选择要添加的技能。之后可以随时添加或移除。",
    "selectAll": "全选",
    "selectBuiltin": "内置",
    "selectNone": "清空",
    "noPoolSkills": "技能池中暂无可用技能",
    "addSkillsToAgent": "添加技能",
    "model": "模型",
    "modelHelp": "为此智能体指定特定的 LLM 模型。留空则使用全局默认模型。",
    "modelPlaceholder": "使用全局默认",
    "noConfiguredModels": "暂无已配置的模型",
    "modelColumn": "模型",
    "copyTooltip": "复制智能体配置",
    "copyDefaultTooltip": "以默认智能体配置为模板进行复制",
    "copyTitle": "复制智能体配置",
    "copyNameLabel": "新智能体名称",
    "copyOptionsLabel": "复制内容",
    "copyOptionAgentJson": "agent.json（必选）",
    "copyOptionAgentJsonHint": "始终复制解析后的源配置，并重置 ID、名称、workspace 与 channels；不是原样复制磁盘上的 agent.json。",
    "copyOptionMdFiles": "AGENTS / SOUL / PROFILE / HEARTBEAT / BOOTSTRAP.md",
    "copyOptionSkills": "skills/ + manifest",
    "copyOptionJobs": "jobs.json",
    "copyOptionJobsHint": "仅复制任务定义，不含历史；新智能体创建后会立即按计划执行。",
    "copySuccess": "智能体配置复制成功",
    "copyFailed": "智能体配置复制失败"
  },
  "acp": {
    "title": "ACP",
    "loading": "加载 ACP 配置中...",
    "builtin": "内置",
    "custom": "自定义",
    "create": "新增 Custom Agent",
    "createTitle": "新增 ACP Agent",
    "createSuccess": "ACP Agent 已创建",
    "editTitle": "编辑 ACP 配置",
    "agentKey": "Agent Key",
    "agentKeyRequired": "请输入 Agent Key",
    "agentKeyInvalid": "Agent Key 只能包含字母、数字、下划线和连字符",
    "agentKeyExists": "该 Agent Key 已存在",
    "enabled": "启用",
    "command": "命令",
    "commandRequired": "请输入命令",
    "args": "参数",
    "argsHelp": "每行一个参数",
    "env": "环境变量",
    "envHelp": "每行使用 KEY=VALUE 格式",
    "envInvalidLine": "无效环境变量格式：{{line}}",
    "trusted": "可信执行",
    "toolParseMode": "工具解析模式",
    "toolParseModeRequired": "请选择工具解析模式",
    "stdioBufferLimit": "Stdio 缓冲上限",
    "stdioBufferLimitHelp": "ACP 子进程 stdio 单行读取缓冲的最大字节数。",
    "stdioBufferLimitRequired": "请输入 stdio 缓冲上限",
    "stdioBufferLimitMin": "stdio 缓冲上限至少为 1 字节",
    "docs": "配置文档",
    "docsHelp": "打开 ACP 集成文档，并跳转到“如何配置外部 runner”章节",
    "notSet": "未设置",
    "configSaved": "ACP 配置已保存",
    "configFailed": "ACP 配置保存失败",
    "deleteTitle": "删除 {{name}}",
    "deleteConfirm": "确定删除该 ACP Agent 吗？此操作不可撤销。",
    "deleteSuccess": "ACP Agent 已删除",
    "deleteFailed": "ACP Agent 删除失败",
    "nodeSettings": "Node 设置",
    "nodePath": "Node 路径",
    "chooseOtherNode": "选择其他 Node...",
    "selectNodePath": "选择 Node 路径",
    "nodePathPrompt": "请输入 node 可执行文件路径",
    "nodeSaved": "Node 设置已保存",
    "nodeLoadFailed": "Node 设置加载失败",
    "nodeSaveFailed": "Node 路径不可用",
    "nodeRuntime": {
      "bundled": "内置 Node",
      "system": "系统 Node",
      "custom": "自定义 Node"
    },
    "nodeRuntimeReason": {
      "systemNodeMissing": "未检测到系统 Node",
      "nodeMissing": "Node 路径不存在",
      "npxMissing": "未找到 npx",
      "versionCheckFailed": "版本检查失败",
      "unavailable": "不可用"
    }
  },
  "skills": {
    "title": "技能",
    "description": "管理智能体技能和能力。",
    "importHub": "通过URL上传",
    "supportedSources": "支持的来源：",
    "importSkills": "导入技能",
    "enterSkillUrl": "输入技能URL",
    "supportedSkillUrlSources": "支持的技能市场：",
    "urlExamples": "URL 示例：",
    "urlValid": "来自 {{source}} 的有效 URL",
    "invalidUrl": "无效的 URL",
    "clickToFill": "点击填入 URL",
    "invalidSkillUrlSource": "请确认技能URL来自受支持的技能市场",
    "type": "类型",
    "installedFrom": "安装来源",
    "source": "来源",
    "path": "路径",
    "tags": "标签",
    "builtin": "内置",
    "custom": "自定义",
    "addSkill": "添加技能",
    "createSkill": "创建技能",
    "viewSkill": "查看技能",
    "editSkill": "编辑技能",
    "skillName": "技能名称",
    "skillContent": "技能内容",
    "pleaseInputName": "请输入技能名称",
    "pleaseInputContent": "请输入技能内容",
    "skillNamePlaceholder": "例如：weather_query",
    "contentPlaceholder": "【格式要求】\n---\nname: 技能名称（必填，英文小写下划线）\ndescription: 功能描述（必填，简洁清晰）\n---\n\n技能实现内容（Markdown格式）\n\n【示例】\n---\nname: weather_query\ndescription: 查询指定城市的天气信息\n---\n\n## 功能\n查询实时天气数据。\n\n## 使用\n用户输入城市名，返回天气信息。",
    "createSuccess": "技能创建成功",
    "createFailed": "技能创建失败",
    "deleteConfirm": "确定要删除此技能吗？",
    "deleteSuccess": "技能删除成功",
    "deleteFailed": "技能删除失败",
    "batchEnable": "启用",
    "batchDisable": "禁用",
    "batchEnableSuccess": "已启用 {{count}} 个技能",
    "batchEnablePartial": "{{enabled}} 个已启用，{{failed}} 个失败",
    "batchEnableFailed": "批量启用失败",
    "batchDisableSuccess": "已禁用 {{count}} 个技能",
    "batchDisablePartial": "{{disabled}} 个已禁用，{{failed}} 个失败",
    "batchDisableFailed": "批量禁用失败",
    "batchDeleteTitle": "删除 {{count}} 个技能？",
    "batchDeleteSuccess": "已删除 {{count}} 个技能",
    "batchDeletePartial": "{{deleted}} 个已删除，{{failed}} 个失败",
    "batchDeleteFailed": "批量删除失败",
    "selectedCount": "已选 {{count}} 个",
    "updateSuccess": "技能更新成功",
    "updateFailed": "技能更新失败",
    "frontmatterRequired": "Skills内容必须以 --- 开头和结尾",
    "frontmatterNameRequired": "Skills 中缺少必填字段：name",
    "frontmatterDescriptionRequired": "Skills 中缺少必填字段：description",
    "editNotSupported": "技能编辑失败",
    "editNote": "提示：这里可以编辑技能内容、频道范围和配置。",
    "create": "创建",
    "optimizeWithAI": "AI优化",
    "stopOptimize": "停止",
    "optimizeSuccess": "技能优化成功",
    "optimizeFailed": "技能优化失败",
    "noContentToOptimize": "没有可优化的内容",
    "cancelImport": "取消导入",
    "importCancelled": "已取消技能导入",
    "importTimeout": "技能导入超时，请重试或检查网络。",
    "uploadSkill": "上传技能",
    "uploadZip": "通过Zip上传",
    "uploadSuccess": "技能上传成功",
    "uploadFailed": "技能上传失败",
    "uploadNoChange": "没有导入新技能，可能已存在相同技能",
    "zipOnly": "仅支持上传 .zip 文件",
    "fileSizeExceeded": "文件大小超过 {{limit}}MB 限制。当前文件：{{size}}MB",
    "channels": "适用频道",
    "allChannels": "所有",
    "lastUpdated": "更新时间",
    "searchPlaceholder": "按名称筛选",
    "listView": "列表视图",
    "gridView": "卡片视图",
    "refreshHint": "从磁盘刷新技能",
    "poolSync": "同步状态",
    "uploadedToPool": "已上传至技能池",
    "downloadedToWorkspace": "已下载至当前工作区",
    "builtinUpgradeTitle": "升级内置技能",
    "builtinUpgradeContent": "技能池中有更新版本的内置技能 \"{{name}}\"，是否覆盖当前版本？",
    "languageSwitchTitle": "切换技能语言",
    "languageSwitchContent": "以下技能在池中有不同的语言版本，确认后将覆盖：",
    "overwriteExistingList": "以下技能已存在，确认后将直接覆盖：",
    "nameConflict": "检测到名称冲突，建议的重命名已填入。",
    "uploadToPoolHint": "将选中的工作区技能上传到共享本地技能池",
    "downloadFromPool": "从技能池载入",
    "uploadToPool": "同步到技能池",
    "selectWorkspaceSkill": "选择工作区技能",
    "selectPoolItem": "选择技能池项目",
    "renameOptional": "重命名（可选）",
    "renamePlaceholder": "冲突时建议的重命名将显示在此",
    "selectAll": "全选",
    "clearSelection": "清除",
    "downloadSkillPool": "下载技能池",
    "uploadSkillPool": "上传技能池",
    "config": "配置",
    "configPlaceholder": "{\"KEY\": \"value\"}",
    "configInvalidJson": "JSON 格式无效",
    "configSaved": "配置已保存",
    "emptyStateBadge": "新工作区默认是空的",
    "emptyStateTitle": "这个智能体还没有可用技能",
    "emptyStateText": "这是正常状态。新建的工作区不会自动带上技能。你可以先从技能池下载已有技能，或者直接创建一个新技能，再把这个智能体装备起来。",
    "emptyStateDownload": "从技能池载入",
    "emptyStateCreate": "创建第一个技能",
    "loadFailed": "加载技能失败",
    "refreshFailed": "刷新技能失败",
    "createdSuccessfully": "创建成功",
    "saveFailed": "保存失败",
    "importFailed": "导入失败",
    "disabledSuccessfully": "已禁用",
    "enabledSuccessfully": "已启用",
    "operationFailed": "操作失败",
    "provideUrl": "请提供技能库 URL",
    "validUrl": "请输入以 http:// 或 https:// 开头的有效 URL",
    "importedSkill": "已导入技能：{{name}}",
    "batchOperation": "批量操作",
    "exitBatch": "退出批量",
    "noSearchResults": "未找到匹配的技能",
    "filterByTag": "按标签筛选",
    "noTags": "暂无标签",
    "enabledSkills": "已激活的技能",
    "disabledSkills": "未激活的技能",
    "active": "个激活"
  },
  "skillPool": {
    "description": "共享本地技能池，包含内置技能和工作区上传。ClawHub 或 LobeHub 等外部导入为独立功能。",
    "broadcast": "广播到智能体",
    "broadcastHint": "将技能广播给选定的智能体",
    "refreshHint": "从磁盘刷新技能池",
    "deleteExternalConfirm": "将从磁盘删除外部技能文件:{{path}}。",
    "deleteExternalBatchWarning": "所选的外部技能将从磁盘永久删除。",
    "broadcastTitle": "广播 {{name}}",
    "autoUpdate": "自动同步",
    "autoUpdateOnHint": "已开启自动同步；内容变更会自动同步到关联的智能体。",
    "autoUpdateEnableHint": "开启自动同步：内容变更后推送到已安装该技能的智能体。",
    "autoUpdateDisableHint": "关闭该技能的自动同步。",
    "autoUpdateEnabled": "已为 {{name}} 开启自动同步",
    "autoUpdateDisabled": "已为 {{name}} 关闭自动同步",
    "autoUpdateFailed": "更新自动同步设置失败",
    "autoUpdateAgentsPlaceholder": "所有已安装该技能的智能体",
    "autoUpdateAgentsHint": "留空则同步到所有已安装该技能的智能体；选择智能体后仅同步到所选项（缺失时会自动安装）。",
    "renameAffectsTitle": "同时在智能体中重命名？",
    "renameAffectsContent": "“{{from}}”已安装在 {{count}} 个智能体中。重命名为“{{to}}”",
    "importBuiltin": "更新内置技能",
    "importBuiltinHint": "将内置技能更新到最新版本",
    "importBuiltinAlertHint": "有 {{count}} 项内置技能变更需要查看",
    "importBuiltinSuccess": "已导入内置技能：{{names}}",
    "importBuiltinConflicts": "以下名称冲突，已跳过：{{names}}",
    "importBuiltinNoChanges": "没有可导入的内置变更",
    "importBuiltinFailed": "导入内置技能失败",
    "importBuiltinConflictTitle": "检测到内置技能冲突",
    "importBuiltinConflictContent": "以下内置技能与当前池中副本不同。确认后将使用源码版本覆盖。",
    "sourceVersion": "源码版本",
    "currentVersion": "当前版本",
    "builtinLanguage": "语言",
    "langDefault": "默认",
    "langDefaultTooltip": "保持每个技能原有的语言",
    "langEn": "英文",
    "langZh": "中文",
    "builtinLanguageChangeTitle": "切换内置技能语言？",
    "builtinLanguageChangeContent": "确认用 {{language}} 版本的内置技能覆盖池中的“{{name}}”？",
    "builtinLanguageChangeSuccess": "已将“{{name}}”切换为 {{language}}",
    "builtinLanguageChangeFailed": "切换内置技能语言失败",
    "importStatusMissing": "池中缺失",
    "importStatusCurrent": "已是最新",
    "importStatusOutdated": "版本落后",
    "importStatusLanguageSwitchTo": "将覆盖为{{language}}版本",
    "importStatusConflict": "冲突",
    "builtinNoticeSummary": "检测到 {{count}} 项内置技能变更",
    "builtinNoticeLineAdded": "新增：{{names}}",
    "builtinNoticeLineMissing": "缺失：{{names}}",
    "builtinNoticeLineUpdated": "更新：{{names}}",
    "builtinNoticeLineRemoved": "移除：{{names}}",
    "zipImport": "ZIP 导入",
    "create": "创建",
    "edit": "编辑",
    "delete": "删除",
    "descriptionLabel": "描述",
    "tags": "标签",
    "tagsPlaceholder": "选择或输入标签",
    "tagTooLong": "标签长度不能超过 {{max}} 个字符",
    "filterByTag": "按标签筛选",
    "version": "版本",
    "createTitle": "创建技能池项目",
    "editTitle": "编辑 {{name}}",
    "skillNamePlaceholder": "技能名称",
    "contentPlaceholder": "SKILL.md 内容",
    "nameConflict": "检测到名称冲突，已应用建议的重命名。",
    "deletedFromPool": "已从技能池删除",
    "deleteBuiltinConfirm": "这会将内置技能从技能池中删除。之后仍可从源码重新导入。",
    "deleteConfirm": "此操作将从共享本地技能池中移除该技能。",
    "deleteTitle": "删除 {{name}}？",
    "batchDeleteTitle": "删除 {{count}} 个池技能？",
    "batchDeleteSuccess": "已删除 {{count}} 个池技能",
    "batchDeletePartial": "{{deleted}} 个已删除，{{failed}} 个失败",
    "batchDeleteFailed": "批量删除失败",
    "zipImportFailed": "ZIP 导入失败",
    "externalHubHint": "外部 Hub 导入与本地技能池是独立功能。",
    "imported": "已导入：{{names}}",
    "noNewImports": "无新技能导入",
    "allBuiltin": "全部内置",
    "selectWorkspaces": "广播到工作区",
    "allWorkspaces": "所有工作区",
    "optionalRename": "可选重命名",
    "back": "返回",
    "skillCount": "{{count}} 个技能",
    "skillName": "技能名称",
    "status": "状态",
    "installedFrom": "安装来源",
    "updateBuiltin": "更新",
    "updateConfirmTitle": "更新 {{name}}",
    "updateConfirmContent": "更新到版本 {{version}}？这将用最新内置版本替换当前池中的副本。",
    "updateSuccess": "更新成功",
    "updateFailed": "更新失败",
    "broadcastSuccess": "广播完成",
    "broadcastFailed": "广播失败",
    "overwriteConfirm": "覆盖已存在的技能？",
    "overwriteTargetsContent": "以下目标中已存在该技能，确认后将直接覆盖：",
    "builtinOverwriteTargetsContent": "以下目标中的内置技能版本不同，确认后将直接覆盖：",
    "renameAndRetry": "同名技能已存在，是否使用建议的名称？",
    "multiConflictTitle": "检测到多个冲突",
    "multiConflictDesc": "以下技能已存在，请逐一解决冲突后重试：",
    "singleConflictRename": "\"{{name}}\" 已存在。重命名为 \"{{suggested}}\" 以继续？",
    "statusUpToDate": "最新",
    "statusSynced": "已同步",
    "statusOutdated": "已过期",
    "statusNotSynced": "未同步",
    "statusConflict": "冲突",
    "renameEntry": "\"{{name}}\" 的新名称：",
    "builtin": "内置",
    "custom": "自定义"
  },
  "mcp": {
    "title": "MCP 客户端",
    "create": "创建客户端",
    "formatSupport": "支持的格式",
    "standardFormat": "标准（mcpServers 包裹）",
    "directFormat": "直连（键 → 配置对象）",
    "singleFormat": "单客户端（平铺字段）",
    "emptyState": "暂无配置的 MCP 客户端",
    "loadError": "加载 MCP 客户端失败",
    "createSuccess": "MCP 客户端创建成功",
    "createError": "MCP 客户端创建失败",
    "updateSuccess": "MCP 客户端更新成功",
    "updateError": "MCP 客户端更新失败",
    "enableSuccess": "MCP 客户端启用成功",
    "disableSuccess": "MCP 客户端禁用成功",
    "toggleError": "切换 MCP 客户端状态失败",
    "deleteConfirm": "确定要删除此 MCP 客户端吗？",
    "deleteSuccess": "MCP 客户端删除成功",
    "deleteError": "MCP 客户端删除失败",
    "maskedFieldHint": "敏感字段已用 *** 遮掩，不支持在遮掩值上直接编辑，如需修改请替换为完整新值。",
    "tools": "工具&权限",
    "noTools": "该 MCP 服务器暂无可用工具",
    "toolsLoadError": "获取 MCP 服务器工具列表失败",
    "toolsConnecting": "MCP 服务器正在连接中，请稍后重试",
    "toolSchema": "描述与参数",
    "access": {
      "title": "访问权限",
      "button": "权限",
      "summary": "MCP 访问策略",
      "clientSection": "整体权限",
      "toolSection": "工具权限",
      "default": "默认策略",
      "sourceType": "调用来源",
      "sourceValue": "来源值",
      "sourceValueAllChannels": "所有频道",
      "subjectType": "对象",
      "subjectValue": "对象值",
      "effectLabel": "策略",
      "source": {
        "channel": "频道"
      },
      "subjectTypeOption": {
        "all": "全部",
        "user": "用户"
      },
      "sourceValuePlaceholder": {
        "channel": "控制台 / 钉钉"
      },
      "subjectValuePlaceholder": "例如 alice",
      "subjectValuePlaceholderSelectedSource": "所选频道内的用户 ID",
      "subjectValuePlaceholderScoped": "{{source}} 内的用户 ID",
      "subjectValueAll": "全部",
      "recentUserPlaceholder": "用户 ID 仅在所选来源内有效；请重新输入或选择",
      "noRecentUsers": "该来源暂无近期用户，可手动输入用户 ID",
      "ambiguousUserSourceWarning": "用户 ID 仅在来源内唯一，请选择具体频道以避免跨频道误匹配。",
      "unknownUserValueWarning": "该用户 ID 未出现在近期活跃用户中，但仍可保存。",
      "validation": {
        "missingUserValue": "请选择具体来源并填写有效的用户 ID。",
        "ambiguousUserSource": "用户规则必须指定具体频道，不能选择所有频道。",
        "unknownUserValue": "该用户 ID 未出现在近期活跃用户中，但仍可保存。"
      },
      "addRule": "新增规则",
      "deleteRule": "删除规则",
      "noClientRules": "暂无规则",
      "noRules": "暂无规则，使用默认策略",
      "inherit": "继承（{{effect}}）",
      "stale": "当前不存在",
      "disabledTools": "该 MCP 客户端已禁用，仍可编辑已保存的访问规则。",
      "discardTitle": "放弃未保存的改动？",
      "discardContent": "未保存的访问策略改动将会丢失。",
      "loadError": "加载 MCP 访问策略失败",
      "saveSuccess": "MCP 访问策略已保存",
      "saveError": "保存 MCP 访问策略失败",
      "unmanagedRules": "{{count}} 条高级规则",
      "effect": {
        "allow": "允许",
        "ask": "审批",
        "deny": "拒绝"
      }
    },
    "tab": {
      "json": "JSON 导入",
      "form": "表单模式"
    },
    "form": {
      "key": "客户端标识符",
      "keyPlaceholder": "my-mcp-server",
      "keyRequired": "请填写客户端标识符",
      "name": "显示名称",
      "namePlaceholder": "My MCP Server",
      "nameRequired": "请填写显示名称",
      "transport": "传输方式",
      "url": "服务器 URL",
      "urlRequired": "远程 MCP 服务器需要填写 URL",
      "command": "启动命令",
      "commandRequired": "Stdio 模式需要填写启动命令",
      "args": "命令参数（空格或换行分隔）",
      "description": "描述",
      "descriptionPlaceholder": "可选描述",
      "env": "环境变量",
      "envPlaceholder": "KEY=VALUE（每行一个）"
    },
    "oauth": {
      "enableOAuth": "使用 OAuth 授权",
      "manage": "OAuth 授权",
      "authorized": "已授权",
      "notAuthorized": "未授权",
      "expired": "授权已过期",
      "failed": "授权失败",
      "waiting": "等待授权中...",
      "authorize": "点击授权",
      "reauthorize": "重新授权",
      "revoke": "撤销授权",
      "startFailed": "启动 OAuth 流程失败",
      "authFailed": "OAuth 授权失败",
      "popupBlocked": "弹窗被浏览器拦截，请允许弹窗后重试",
      "windowClosed": "授权窗口已关闭，请重试",
      "noUrl": "请先填写服务器 URL",
      "noClientKey": "请先创建客户端",
      "showAdvanced": "高级选项",
      "hideAdvanced": "收起高级选项",
      "clientId": "Client ID（可选）",
      "clientIdPlaceholder": "留空则使用动态客户端注册",
      "scope": "Scope（可选）",
      "scopePlaceholder": "openid profile email",
      "authEndpoint": "Authorization Endpoint（手动覆盖）",
      "tokenEndpoint": "Token Endpoint（手动覆盖）",
      "endpointHint": "留空将自动从 MCP 服务器发现端点，填写后将跳过自动发现"
    }
  },
  "heartbeat": {
    "title": "心跳",
    "description": "按固定间隔用 HEARTBEAT.md 内容执行自检。默认静默运行不影响当前对话，也可选择将回复发到上次对话频道。",
    "enabled": "开启心跳",
    "every": "执行间隔",
    "everyRequired": "请填写间隔",
    "everyMin": "间隔至少为 1",
    "timeoutSeconds": "执行超时（秒）",
    "timeoutRequired": "请填写执行超时",
    "timeoutMin": "执行超时至少为 1",
    "timeoutMax": "执行超时最多为 3600",
    "unitMinutes": "分钟",
    "unitHours": "小时",
    "target": "回复目标",
    "targetMain": "静默运行（默认，不发送到频道）",
    "targetLast": "发到上次对话频道",
    "targetInbox": "发送到收件箱",
    "activeHours": "活跃时段（可选）",
    "activeStart": "开始时间",
    "activeEnd": "结束时间",
    "loadFailed": "加载心跳配置失败",
    "saveSuccess": "保存成功，心跳已热重载",
    "saveFailed": "保存心跳配置失败",
    "runNow": "立即执行一次",
    "runNowSuccess": "已触发心跳执行，请稍后查看收件箱或目标渠道",
    "runNowFailed": "触发心跳执行失败"
  },
  "cronJobs": {
    "title": "定时任务",
    "description": "创建和管理在指定时间自动执行的定时任务。",
    "createJob": "创建任务",
    "createFromTemplate": "从模板创建",
    "editJob": "编辑任务",
    "templateModalTitle": "选择定时任务模板",
    "templateModalDescription": "先选内置模板，再在抽屉里微调关键参数后保存。",
    "useTemplate": "使用模板",
    "templateTagPersonal": "个人",
    "templateTagTeam": "团队",
    "templateTagReminder": "提醒",
    "templateTagCalendar": "日历",
    "templateTagCalendarRecommended": "推荐上日历",
    "confirmDelete": "确认删除",
    "deleteConfirm": "确定要删除此定时任务吗？",
    "okText": "确定",
    "cancelText": "取消",
    "deleteText": "删除",
    "id": "任务ID",
    "name": "任务名称",
    "enabled": "启用状态",
    "saveResultToInbox": "运行结果存进收件箱",
    "saveResultToInboxTooltip": "开启后，任务执行成功且投递成功时，会将结果写入收件箱；若投递失败，系统会自动兜底写入收件箱。",
    "scheduleType": "调度类型",
    "scheduleFilterAll": "全部调度类型",
    "scheduleTypeRecurring": "循环任务",
    "scheduleTypeOnce": "日程任务",
    "scheduleCron": "执行时间（Cron）",
    "scheduleCronLabel": "执行时间（Cron）",
    "onceRunAt": "执行时间",
    "repeatEnabled": "重复执行",
    "repeatEnabledTooltip": "从该开始时间按固定天数重复执行",
    "repeatFrequency": "重复频率",
    "repeatEveryDays": "重复频率（天）",
    "repeatEveryPrefix": "每",
    "repeatEverySuffix": "天",
    "repeatEndType": "结束重复",
    "repeatEndNever": "无限重复",
    "repeatEndUntil": "终止于某天",
    "repeatEndCount": "限定次数",
    "repeatUntil": "截止时间",
    "repeatCount": "执行次数",
    "scheduleTimezone": "时区",
    "cronType": "频率类型",
    "cronTypeHourly": "每小时",
    "cronTypeDaily": "每天",
    "cronTypeWeekly": "每周",
    "cronTypeCustom": "自定义",
    "cronTime": "执行时间",
    "cronDaysOfWeek": "星期",
    "cronDayMon": "周一",
    "cronDayTue": "周二",
    "cronDayWed": "周三",
    "cronDayThu": "周四",
    "cronDayFri": "周五",
    "cronDaySat": "周六",
    "cronDaySun": "周日",
    "cronCustomExpression": "Cron 表达式",
    "taskText": "消息内容",
    "action": "操作",
    "disable": "禁用",
    "executeNow": "立即执行",
    "edit": "编辑",
    "delete": "删除",
    "totalItems": "共 {{count}} 项",
    "perPage": "/ 页",
    "pleaseInputId": "请输入任务ID",
    "pleaseInputName": "请输入任务名称",
    "pleaseInputCron": "请输入Cron表达式",
    "pleaseSelectScheduleType": "请选择调度类型",
    "pleaseInputRunAt": "请选择执行时间",
    "pleaseInputRepeatEveryDays": "请输入重复频率（天）",
    "pleaseSelectRepeatEndType": "请选择结束方式",
    "pleaseInputRepeatUntil": "请选择截止时间",
    "pleaseInputRepeatCount": "请输入执行次数",
    "validation": {
      "cronRequired": "循环任务必须填写 Cron 表达式。",
      "runAtRequired": "日程任务必须填写执行时间。",
      "repeatUntilRequired": "选择“终止于某天”时，必须填写截止时间。",
      "repeatCountRequired": "选择“限定次数”时，必须填写执行次数。",
      "repeatUntilAfterRunAt": "截止时间必须晚于执行时间，请将截止时间设置为执行时间之后。",
      "textRequired": "任务类型为“消息内容”时，消息内容不能为空。",
      "requestRequired": "任务类型为“Agent”时，请求内容不能为空。",
      "invalidCronExpression": "Cron 表达式无效，请使用 5 段 Cron 格式。"
    },
    "pleaseSelectTaskType": "请选择任务类型",
    "pleaseInputRequest": "请输入请求内容",
    "pleaseInputMessageContent": "请输入消息内容",
    "pleaseInputChannel": "请输入目标频道",
    "pleaseInputUserId": "请输入目标用户ID",
    "pleaseInputSessionId": "请输入目标会话ID",
    "jobIdPlaceholder": "例如：daily-report-job",
    "jobNamePlaceholder": "例如：每日早报",
    "selectTimezone": "选择时区",
    "taskDescriptionPlaceholder": "简单消息任务时填写实际发送的正文...",
    "invalidJsonFormat": "JSON格式无效",
    "jsonFormatRequired": "需要JSON格式",
    "taskType": "任务类型",
    "text": "消息内容",
    "requestInput": "请求内容",
    "requestSessionId": "请求会话ID",
    "requestUserId": "请求用户ID",
    "dispatchChannel": "目标频道",
    "dispatchTargetUserId": "目标用户ID",
    "dispatchTargetSessionId": "目标会话ID",
    "dispatchMode": "分发模式",
    "silentDelivery": "静默投递",
    "runtimeShareSession": "共用会话",
    "runtimeMaxConcurrency": "最大并发数",
    "runtimeTimeoutSeconds": "超时时间（秒）",
    "runtimeMisfireGraceSeconds": "错过执行宽限期（秒）",
    "runtimeToolSafety": "工具执行安全检查",
    "idTooltip": "任务的唯一标识符（UUID）由系统在创建时自动分配，不可修改。",
    "nameTooltip": "任务的友好名称，便于识别。",
    "cronTooltip": "定义任务执行时间",
    "cronExample": "常用示例：'0 9 * * *' = 每天9点 | '*/30 * * * *' = 每30分钟 | '0 */2 * * *' = 每2小时 | '0 0 * * 0' = 每周日0点",
    "cronHelper": "不熟悉 Cron 表达式？",
    "cronHelperLink": "使用在线工具生成",
    "timezoneTooltip": "Cron 计划使用的时区。默认：UTC",
    "taskTypeTooltip": "选择 'text' 用于简单消息任务，选择 'agent' 用于复杂的智能体工作流。",
    "textTooltip": "简单消息任务：此处为实际的消息正文，任务类型为'text'时必填。",
    "requestInputTooltip": "JSON 格式的消息内容。这是智能体将接收和处理的内容，任务类型为'agent'时必填。",
    "requestInputExample": "格式：[{\"role\":\"user\",\"content\":[{\"type\":\"text\",\"text\":\"您的消息内容\"}]}]",
    "requestSessionIdTooltip": "请求上下文的会话ID。不确定时使用 'default'。",
    "requestUserIdTooltip": "发起请求的用户ID。自动化任务使用 'system'。",
    "dispatchChannelTooltip": "响应将发送到的目标频道（例如：'console'、'discord'、'imessage'）。",
    "dispatchTargetUserIdTooltip": "在目标频道中接收响应的用户ID。",
    "dispatchTargetSessionIdTooltip": "在目标频道中传递响应的会话ID。",
    "dispatchModeTooltip": "选择 'stream' 获取实时响应，或选择 'final' 仅获取完整响应。",
    "silentDeliveryTooltip": "完整执行 Agent 任务并保留会话和追踪记录，但不向渠道发送结果。",
    "shareSessionTooltip": "开启时，与目标用户共用会话。关闭时，每次运行创建独立的会话上下文，互不影响。适用于不需要记忆历史的独立任务。默认：开启",
    "maxConcurrencyTooltip": "此任务可以同时运行的最大数量。默认：1",
    "timeoutSecondsTooltip": "最大执行时间（秒）。超时将终止任务。",
    "misfireGraceSecondsTooltip": "错过执行的宽限期。如果任务错过计划时间超过此时长，将不会执行。",
    "toolSafetyTooltip": "开启时，高风险工具调用需要用户审批（可能阻塞无人值守的定时任务）。关闭时，所有工具调用直接执行，不弹审批窗口，适用于可信的自动化任务。默认：关闭",
    "executeNowTitle": "立即执行任务",
    "executeNowContent": "确定要立即执行任务 \"{{name}}\" 吗？",
    "executeNowConfirm": "立即执行",
    "listView": "列表视图",
    "calendarView": "日历视图",
    "calendarEmptyHint": "暂无日程任务。创建日程任务后会显示在日历中。",
    "calendarMoreItems": "还有 {{count}} 项",
    "calendarDayListTitle": "{{date}} 的日程任务",
    "executionHistory": "执行记录",
    "historyTitle": "执行记录 - {{name}}",
    "historyEmpty": "暂无执行记录。",
    "historyStatusSuccess": "成功",
    "historyStatusFailed": "失败",
    "historyStatusRunning": "执行中",
    "historyStatusCancelled": "已取消",
    "historyTriggerScheduled": "定时触发",
    "historyTriggerManual": "手动触发",
    "historyExpand": "展开全文",
    "historyCollapse": "收起",
    "templates": {
      "dailyTechNewsBrief": {
        "title": "工作日科技新闻早报",
        "description": "工作日 9:30 自动整理当日热门科技资讯并推送简报。",
        "frequency": "工作日 09:30（30 9 * * 1-5）"
      },
      "dailyEveningReflection": {
        "title": "每日收尾复盘",
        "description": "工作日 20:00 提醒回顾当日完成事项与待改进点。",
        "frequency": "工作日 20:00（0 20 * * 1-5）"
      },
      "weekendRelaxationReminder": {
        "title": "周末电影推荐",
        "description": "周末上午推送近期热门电影推荐。",
        "frequency": "周末 10:00（0 10 * * 6,0）"
      },
      "pomodoroBreakReminder": {
        "title": "休息提醒",
        "description": "工作时段每 25 分钟提醒起身喝水或远眺，减少疲劳。",
        "frequency": "工作日 9:00-17:59 每 25 分钟（*/25 9-17 * * 1-5）"
      },
      "petCareReminder": {
        "title": "宠物驱虫/疫苗提醒",
        "description": "每月 15 日晚提醒给宠物做体外驱虫。",
        "frequency": "每月 15 日 20:00（0 20 15 * *）"
      },
      "onceTextBirthdayReminder": {
        "title": "生日提醒",
        "description": "提醒xx于1月1日过生日。",
        "frequency": "执行时间：2026年1月1日 09:00"
      },
      "onceAgentBusinessTripPrep": {
        "title": "出差前天气与行程准备",
        "description": "查询目的地天气并给出行程准备建议。",
        "frequency": "执行时间：2026年1月1日 20:00"
      },
      "repeatCountTextMedicineReminder": {
        "title": "吃药提醒（14次）",
        "description": "提醒按时吃药，本疗程共14次。",
        "frequency": "首次执行：2026年1月1日 09:00｜每1天一次｜限定14次"
      },
      "repeatCountAgentDietPlan": {
        "title": "14天饮食计划",
        "description": "连续14天生成并发送当日饮食建议。",
        "frequency": "首次执行：2026年1月1日 08:00｜每1天一次｜限定14次"
      },
      "repeatUntilTextWeeklyMeeting": {
        "title": "两个月周会提醒",
        "description": "每周提醒参加周会，持续到设定截止时间。",
        "frequency": "首次执行：2026年1月2日 08:45｜每7天一次｜截止到2026年3月1日"
      },
      "repeatUntilAgentWeeklySummary": {
        "title": "周会前工作总结",
        "description": "每次周会前基于最近一周 memory 生成工作总结。",
        "frequency": "首次执行：2026年1月2日 08:30｜每7天一次｜截止到2026年3月1日"
      }
    }
  },
  "channels": {
    "title": "频道",
    "description": "管理和配置消息频道",
    "loading": "正在加载频道...",
    "configSaved": "配置保存成功",
    "configFailed": "配置保存失败",
    "channelType": "频道类型",
    "status": "状态",
    "totalItems": "共 {{count}} 项",
    "botPrefix": "机器人前缀",
    "showToolCalls": "显示工具调用信息",
    "showToolCallsTooltip": "向用户显示工具调用信息（关闭则隐藏）",
    "showToolResults": "显示工具结果信息",
    "showToolResultsTooltip": "向用户显示工具结果信息（关闭则隐藏）",
    "toolCallMaxLength": "工具调用最大显示长度",
    "toolResultMaxLength": "工具结果最大显示长度",
    "toolMaxLengthTooltip": "设置为 0 表示不截断",
    "showThinking": "显示思考过程",
    "showThinkingTooltip": "向用户显示模型的思考/推理内容（关闭则隐藏）",
    "noTextDebounce": "无文本消息防抖",
    "noTextDebounceTooltip": "开启后，仅含媒体（图片/视频/文件）的消息会暂存，等待后续文本消息合并处理；关闭则所有消息立即处理。语音消息始终立即处理",
    "streamingEnabled": "流式输出",
    "streamingEnabledDingtalkHint": "仅在消息类型为 Card 时生效",
    "streamingEnabledFeishuHint": "需要在飞书开放平台权限管理界面开通 cardkit:card:write 权限",
    "ackMessage": "即时确认消息",
    "ackMessageTooltip": "收到消息后立即发送一条确认回复，在 Agent 处理之前。留空则禁用。",
    "ackMessagePlaceholder": "⏳ 正在处理中...",
    "notSet": "未设置",
    "clickCardToEdit": "点击卡片进行编辑",
    "settings": "设置",
    "channelSettings": "频道设置",
    "channelNames": {
      "console": "控制台",
      "dingtalk": "钉钉",
      "feishu": "飞书",
      "discord": "Discord",
      "telegram": "Telegram",
      "qq": "QQ",
      "imessage": "iMessage",
      "mattermost": "Mattermost",
      "matrix": "Matrix",
      "onebot": "OneBot",
      "mqtt": "MQTT",
      "voice": "语音",
      "sip": "SIP",
      "wecom": "企业微信",
      "wechat": "微信",
      "xiaoyi": "小艺",
      "yuanbao": "元宝",
      "slack": "Slack"
    },
    "pleaseInputDbPath": "请输入数据库路径",
    "pleaseInputPollInterval": "请输入轮询间隔",
    "discordBotToken": "Discord机器人令牌",
    "acceptBotMessages": "接收机器人消息",
    "acceptBotMessagesTooltip": "开启后，将接收来自其他机器人的消息",
    "httpProxyPlaceholder": "http://127.0.0.1:18118",
    "httpProxyAuthPlaceholder": "用户名:密码",
    "dbPathPlaceholder": "~/Library/Messages/chat.db",
    "botPrefixPlaceholder": "@bot",
    "dmPolicy": "私聊策略",
    "dmPolicyTooltip": "控制谁可以通过私聊与机器人交互。开放：所有人；白名单：仅限授权用户",
    "groupPolicy": "群聊策略",
    "groupPolicyTooltip": "控制谁可以在群聊中与机器人交互。开放：所有人；白名单：仅限授权用户",
    "requireMention": "需要 @提及",
    "requireMentionTooltip": "开启后，群聊中仅在被 @提及 时才会回复",
    "policyOpen": "开放",
    "policyAllowlist": "白名单",
    "allowFrom": "白名单用户",
    "allowFromTooltip": "允许与机器人交互的用户 ID 列表。启用白名单后，用户私聊机器人即可在拒绝消息中看到自己的 ID",
    "allowFromPlaceholder": "输入用户ID后按回车添加",
    "denyMessage": "拒绝访问消息",
    "denyMessageTooltip": "自定义消息，当用户被拒绝访问时显示",
    "twilioAccountSid": "Twilio 账户 SID",
    "twilioAuthToken": "Twilio 认证令牌",
    "phoneNumber": "电话号码",
    "phoneNumberSid": "电话号码 SID",
    "phoneNumberSidHelp": "可在 Twilio 控制台的 Phone Numbers → Active Numbers 中找到。",
    "ttsProvider": "TTS 提供商",
    "ttsVoice": "TTS 语音",
    "sttProvider": "STT 提供商",
    "language": "语言",
    "welcomeGreeting": "欢迎语",
    "welcomeText": "欢迎消息",
    "welcomeTextTooltip": "用户当天首次进入机器人单聊会话时机器人自动发送的消息",
    "welcomeTextPlaceholder": "例如：你好！我是 QwenPaw，有什么可以帮你的？",
    "loginWeCom": "获取企业微信二维码",
    "wecomSetupGuide": "使用二维码创建机器人时，授权机器人可使用的能力时请选择「暂不授权」。如果选择了「确认授权」，除了机器人创建者，其他用户可能无法与机器人交互。",
    "wecomScanAuth": "扫码授权",
    "wecomAuthHint": "请使用企业微信扫描上方二维码完成授权，授权成功后 Bot ID 与 Secret 将自动填入。",
    "wecomAuthSuccess": "企业微信机器人授权成功，Bot ID 与 Secret 已自动填入",
    "wecomQrcodeFailed": "获取企业微信二维码失败，请重试",
    "dingtalkSetupGuide": "使用钉钉扫码一键创建机器人。扫码后将自动创建钉钉应用并获取 Client ID 和 Client Secret。",
    "dingtalkScanAuth": "扫码创建机器人",
    "dingtalkGetQrcode": "获取钉钉二维码",
    "dingtalkScanHint": "请使用钉钉扫描上方二维码，完成授权后 Client ID 与 Client Secret 将自动填入。",
    "dingtalkAuthSuccess": "钉钉机器人创建成功，Client ID 与 Client Secret 已自动填入",
    "dingtalkQrcodeFailed": "获取钉钉二维码失败，请稍后重试",
    "dingtalkQrcodeExpired": "二维码已过期，请重新获取",
    "qqSetupGuide": "使用 QQ 扫码授权机器人，扫码后将自动获取 APP ID 和 Client Secret 并填入。",
    "qqScanAuth": "扫码授权机器人",
    "qqGetQrcode": "获取 QQ 二维码",
    "qqScanHint": "请使用 QQ 扫描上方二维码，完成授权后 APP ID 和 Client Secret 将自动填入。",
    "qqAuthSuccess": "QQ 机器人授权成功，APP ID 和 Client Secret 已自动填入",
    "qqQrcodeFailed": "获取 QQ 二维码失败，请稍后重试",
    "qqQrcodeExpired": "二维码已过期，请重新获取",
    "atSenderOnReply": "回复时@发送者",
    "atSenderOnReplyTooltip": "开启后，机器人在群聊中回复时会在第一条消息中@发送者。注意：卡片模式下，@功能仅对企业内部成员生效。",
    "dingtalkEndpoint": "API 地址",
    "dingtalkEndpointTooltip": "用于钉钉私有化部署的自定义 API 地址。留空则使用官方默认地址。",
    "wecomCancelled": "授权已取消",
    "wecomAuthFailed": "授权失败：{{msg}}",
    "slackBotToken": "Bot Token",
    "slackBotTokenTooltip": "Slack Bot User OAuth Token，以 xoxb- 开头",
    "slackAppToken": "App Token",
    "slackAppTokenTooltip": "Slack App-Level Token（Socket Mode），以 xapp- 开头",
    "slackProxyTooltip": "HTTP 代理地址，用于连接 Slack API",
    "voiceSetupGuide": "请先注册 Twilio 账户并购买电话号码，然后在下方填写凭据。Account SID 和 Auth Token 可在 Twilio 控制台首页找到。Phone Number SID 在 Phone Numbers → Active Numbers 中查看。",
    "voiceSetupLink": "打开 Twilio 控制台",
    "sipSetupGuide": "配置 SIP 注册服务器（如 Asterisk、FreeSWITCH），然后在下方填写 SIP 凭据。Dev 模式使用 pyVoIP 在本地处理 SIP/RTP；Production 模式使用 LiveKit SIP Server。",
    "sipMode": "SIP 模式",
    "sipModeTooltip": "Dev：纯 Python pyVoIP，适合本地开发测试。Production：LiveKit SIP Server，适合高并发生产环境。",
    "sipServer": "SIP 服务器",
    "sipServerPlaceholder": "留空使用内置注册服务器",
    "sipServerPlaceholderLivekit": "LiveKit 模式无需填写",
    "sipUsername": "SIP 用户名",
    "sipPassword": "SIP 密码",
    "sipPort": "SIP 端口",
    "sipTransport": "传输协议",
    "sipDashscopeApiKey": "DashScope API Key",
    "sipDashscopeApiKeyTooltip": "阿里云 DashScope STT/TTS 的 API Key。留空则回退到 DASHSCOPE_API_KEY 环境变量。",
    "livekitUrl": "LiveKit URL",
    "livekitApiKey": "LiveKit API Key",
    "livekitApiSecret": "LiveKit API Secret",
    "livekitSipTrunkId": "LiveKit SIP Trunk ID",
    "livekitRoomName": "LiveKit 房间名称",
    "livekitRoomNameTooltip": "Agent 连入并等待 SIP 来电的 LiveKit 房间名称，需与 SIP Dispatch Rule 中配置的房间名一致。",
    "xiaoyiSetupGuide": "请在华为开发者平台创建智能体并获取 AK/SK 和 Agent ID。AK/SK 可在凭证管理页面找到。",
    "filterAll": "全部",
    "builtin": "内置",
    "custom": "自定义",
    "feishuRegion": "地区",
    "feishuRegionTooltip": "国内用户选择飞书，海外用户选择 Lark",
    "feishuChina": "飞书（国内）",
    "feishuInternational": "Lark（海外）",
    "feishuScanGuide": "使用飞书扫码一键创建机器人。扫码后将自动创建飞书应用并获取 App ID 和 App Secret。",
    "feishuScanLogin": "扫码创建机器人",
    "feishuGetQrcode": "获取飞书二维码",
    "feishuScanHint": "请使用飞书扫描上方二维码，完成授权后 App ID 与 App Secret 将自动填入。",
    "feishuAuthSuccess": "飞书机器人创建成功，App ID 与 App Secret 已自动填入",
    "feishuQrcodeExpired": "二维码已过期，请重新获取",
    "feishuQrcodeFailed": "获取飞书二维码失败，请稍后重试",
    "wechatSetupGuide": "微信个人账号 Bot（iLink 协议）。首次启动时若未配置 Bot Token，系统将打印二维码链接，请扫码登录；Token 将自动保存到本地文件供后续使用。",
    "wechatContextTokenLimit": "微信 iLink 平台限制：每条用户消息对应的 context_token 最多只能回复 10 条消息，这是平台侧的硬性限制。建议关闭思考及工具输出，或者使用消息合并功能以避免超出限制导致消息发送失败。",
    "wechatBotToken": "Bot Token",
    "wechatBotTokenTooltip": "扫码登录后获取的 Bearer Token。留空时将在启动时引导扫码登录。",
    "wechatBotTokenPlaceholder": "扫码登录后自动填入，也可手动粘贴",
    "wechatBotTokenFile": "Token 文件路径",
    "wechatBotTokenFileTooltip": "Token 持久化存储路径，默认为 ~/.qwenpaw/wechat_bot_token",
    "wechatMediaDir": "媒体文件目录",
    "wechatMessageMerge": "消息合并",
    "wechatMessageMergeTooltip": "将多条回复消息合并为更少的消息发送，避免触发微信 context_token 10 条消息的限制。开启并设置延时为 0 时，所有文本回复将在请求结束后合并为一条消息发送。设置正数延时（毫秒）则合并该时间窗口内的相邻消息。",
    "wechatMessageMergeDelayMs": "合并延时（毫秒）",
    "wechatMessageMergeDelayMsTooltip": "相邻消息合并的时间窗口。设为 0 表示将所有消息合并为一条最终回复。设为正数（如 1000）则缓冲该时间段内的消息后发送。",
    "wechatMessageMergeDelayMsValidation": "请输入有效的非负整数",
    "wechatScanLogin": "扫码登录",
    "wechatGetQrcode": "获取登录二维码",
    "wechatScanHint": "请用微信扫描二维码，扫码成功后点击保存",
    "wechatQrcodeFailed": "获取二维码失败，请稍后重试",
    "wechatLoginSuccess": "微信扫码登录成功，Token 已填入",
    "wechatQrcodeExpired": "二维码已过期，请重新获取",
    "shareSessionInGroup": "群聊共享上下文",
    "shareSessionInGroupTooltip": "启用时，群内所有成员共享同一会话上下文；禁用时，每位成员维护各自独立的会话。",
    "accessControlEnabled": "访问控制",
    "accessControlEnabledTooltip": "开启后，只有白名单用户可以与机器人互动。未知用户会收到自己的ID提示，并被添加到待审批列表。",
    "accessControlDm": "私聊访问控制",
    "accessControlDmTooltip": "开启后，只有白名单用户可以通过私聊与机器人互动",
    "accessControlGroup": "群聊访问控制",
    "accessControlGroupTooltip": "开启后，只有白名单用户可以在群聊中与机器人互动",
    "dmDisabled": "禁用私聊",
    "dmDisabledTooltip": "开启后，机器人将完全忽略所有私聊消息",
    "groupDisabled": "禁用群聊",
    "groupDisabledTooltip": "开启后，机器人将完全忽略所有群聊消息",
    "manageAccessControl": "访问控制",
    "pendingApprovals": "待审批",
    "whitelist": "白名单",
    "blacklist": "黑名单",
    "addUser": "添加用户",
    "addUserPlaceholder": "输入用户 ID",
    "userId": "用户 ID",
    "channel": "频道",
    "firstMessage": "首条消息",
    "time": "时间",
    "actions": "操作",
    "approve": "加入白名单",
    "deny": "加入黑名单",
    "dismiss": "忽略",
    "noWhitelistUsers": "暂无白名单用户",
    "noBlacklistUsers": "暂无黑名单用户",
    "noPendingApprovals": "暂无待审批",
    "userAdded": "用户添加成功",
    "userRemoved": "用户删除成功",
    "approveSuccess": "已加入白名单",
    "denySuccess": "已加入黑名单",
    "dismissSuccess": "已忽略",
    "operationFailed": "操作失败",
    "remark": "备注",
    "usernamePlaceholder": "输入用户名称（可选）",
    "remarkPlaceholder": "输入备注（可选）",
    "filterByChannel": "按渠道筛选",
    "selectToOperate": "选择项目进行操作",
    "selectedCount": "已选 {{count}} 项",
    "batchApprove": "批量通过",
    "batchDeny": "批量拉黑",
    "batchDismiss": "批量忽略",
    "batchApproveConfirm": "确认通过 {{count}} 位用户？",
    "batchDenyConfirm": "确认将 {{count}} 位用户加入黑名单？",
    "batchDismissConfirm": "确认忽略 {{count}} 位用户？",
    "batchSuccess": "已成功处理 {{count}} 位用户",
    "batchRemove": "删除",
    "batchRemoveConfirm": "确认删除 {{count}} 位用户？",
    "enabledSection": "已激活",
    "enabledCount": "{{count}} 个",
    "availableSection": "未激活",
    "enableAction": "启用",
    "noEnabledChannels": "暂无已激活频道",
    "goEnableChannels": "去启用频道"
  },
  "sessions": {
    "title": "会话",
    "description": "查看和管理活动聊天会话",
    "loading": "正在加载会话...",
    "confirmDelete": "确认删除",
    "deleteConfirm": "确定要删除此会话吗？",
    "batchDeleteConfirm": "确定要删除选中的 {{count}} 个会话吗？",
    "deleteSuccess": "会话删除成功",
    "deleteFailed": "会话删除失败",
    "batchDeleteSuccess": "成功删除 {{count}} 个会话",
    "batchDeleteFailed": "批量删除会话失败",
    "saveSuccess": "会话保存成功",
    "saveFailed": "会话保存失败",
    "batchDeleteButton": "批量删除",
    "filterTitle": "按标题筛选",
    "filterUserId": "按用户ID筛选",
    "filterChannel": "按频道筛选",
    "allChannels": "全部频道",
    "totalItems": "共 {{count}} 项",
    "selectedItems": "已选 {{count}} 项",
    "editSession": "编辑会话",
    "pleaseInputName": "请输入会话名称",
    "sessionNamePlaceholder": "会话名称",
    "activeTab": "活跃",
    "archivedTab": "已归档",
    "archivedAtColumn": "归档时间",
    "archive": {
      "action": "归档",
      "unaction": "取消归档",
      "batchAction": "批量归档",
      "success": "会话已归档",
      "successHint": "会话已归档，可在「控制-会话-已归档」查看",
      "failed": "归档失败",
      "unarchiveSuccess": "已取消归档",
      "unarchiveFailed": "取消归档失败",
      "batchSuccess": "已归档 {{count}} 个会话",
      "batchFailed": "批量归档失败",
      "batchUnaction": "批量取消归档",
      "batchUnarchiveSuccess": "已取消归档 {{count}} 个会话",
      "batchUnarchiveFailed": "批量取消归档失败",
      "groupLabel": "已归档 ({{count}})",
      "modalTitle": "已归档的聊天记录",
      "unarchiveAll": "全部取消归档",
      "noArchived": "暂无已归档的会话"
    }
  },
  "environments": {
    "parent": "设置",
    "environments": "环境变量",
    "title": "环境变量",
    "description": "为智能体和技能配置键值环境变量。",
    "key": "键",
    "value": "值",
    "variableNamePlaceholder": "VARIABLE_NAME",
    "valuePlaceholder": "值",
    "insertRowBelow": "在下方插入行",
    "deleteRow": "删除行",
    "deleteVariable": "删除变量",
    "deleteConfirm": "删除 \"{{name}}\"?",
    "deleteSelected": "删除选中项",
    "deleteSelectedConfirm": "删除 {{label}}?",
    "keyRequired": "键为必填项",
    "invalidKeyFormat": "键格式无效",
    "duplicateKey": "键重复",
    "saveSuccess": "环境变量已保存",
    "saveFailed": "保存失败",
    "deleteSuccess": "\"{{name}}\" 已删除",
    "deleteFailed": "删除失败",
    "noVariables": "尚未配置环境变量。",
    "addVariable": "添加变量",
    "loading": "加载中…",
    "retry": "重试",
    "of": "共",
    "selected": "已选",
    "variable": "变量",
    "variables": "变量",
    "showValue": "显示值",
    "hideValue": "隐藏值"
  },
  "tokenUsage": {
    "title": "Token 消耗",
    "totalTokens": "总 Token",
    "totalCalls": "总调用次数",
    "promptTokens": "输入 Token",
    "completionTokens": "输出 Token",
    "byModel": "按模型",
    "byDate": "按日期",
    "model": "模型",
    "date": "日期",
    "loadFailed": "加载 Token 消耗数据失败",
    "noData": "所选时间段内暂无 Token 消耗数据",
    "modelTrend": "模型用量趋势",
    "tokenTypeChart": "Token 类型趋势",
    "selectAll": "全选",
    "allSelected": "全部",
    "itemsSelected": "已选 {{count}} 项",
    "selectModels": "选择模型",
    "selectTokenTypes": "选择 Token 类型"
  },
  "agentStats": {
    "title": "智能体统计",
    "description": "查看当前智能体在指定时间段内的统计数据。",
    "totalSessions": "总会话数",
    "totalMessages": "总消息数",
    "userMessages": "用户消息",
    "assistantMessages": "智能体消息",
    "promptTokens": "输入 Token",
    "completionTokens": "输出 Token",
    "llmCalls": "LLM 调用",
    "toolCalls": "工具调用",
    "channel": "频道",
    "sessionCount": "会话数",
    "sessions": "会话",
    "newSessions": "新建会话",
    "activeSessions": "活跃会话",
    "messages": "消息",
    "messageTrend": "消息趋势",
    "sessionTrend": "会话趋势",
    "tokenTrend": "Token 趋势",
    "llmAndToolTrend": "LLM & 工具调用趋势",
    "sessionsByChannel": "按渠道会话统计",
    "messagesByChannel": "按渠道消息统计",
    "totalSessionsTooltip": "创建的会话总数，每个会话对应一次独立聊天上下文",
    "totalMessagesTooltip": "所有会话中的消息总数，含用户消息和智能体消息",
    "promptTokensTooltip": "调用 LLM 时发送的提示词 Token 总数",
    "completionTokensTooltip": "LLM 生成回复的 Token 总数",
    "llmCallsTooltip": "调用 LLM API 的次数，每次请求计为一次调用",
    "toolCallsTooltip": "智能体决定调用工具的次数，单次 LLM 调用可能产生多个工具意图",
    "messageTrendTooltip": "用户消息与智能体消息的数量对比趋势",
    "sessionTrendTooltip": "新建会话与活跃会话的对比趋势，橙色为当天创建的会话，蓝色为当天产生过消息的会话",
    "tokenTrendTooltip": "输入 Token 与输出 Token 的消耗趋势",
    "llmAndToolTrendTooltip": "LLM 调用次数与工具调用次数的对比趋势",
    "sessionsByChannelTooltip": "按消息渠道分布的会话数量占比，未关联渠道的会话默认归为 Console",
    "messagesByChannelTooltip": "按消息渠道分布的消息总数占比",
    "loadFailed": "加载统计数据失败",
    "noData": "所选时间段内暂无统计数据",
    "retry": "重试"
  },
  "modelSelector": {
    "selectModel": "选择模型",
    "noConfiguredModels": "暂无已配置模型",
    "noFreeModels": "暂无可用的免费模型",
    "switchFailed": "切换模型失败",
    "searchModels": "搜索模型...",
    "noModelsFound": "未找到匹配的模型",
    "free": "免费",
    "vision": "视觉",
    "freeBannerText": "免费模型可能存在服务不稳定及用量限制的情况，详情请参考提供商说明。",
    "moreProviders": "更多免费提供商（需配置 API Key）",
    "proBannerText": "仅显示在设置页已配置的模型。",
    "connectToUse": "连接 {{provider}} 以使用免费模型",
    "configureApiKey": "配置 {{provider}} API Key 以使用免费模型",
    "configureApiKeyTitle": "前往配置页",
    "configureApiKeyConfirm": "即将跳转到模型配置页面，配置 {{provider}} 的 API Key。是否继续？",
    "goToConfigure": "前往配置",
    "noModelsDiscovered": "已连接，模型加载中...",
    "oauthTitle": "连接 {{provider}}",
    "oauthDescription": "将打开一个新的浏览器窗口以授权访问 {{provider}}，API 密钥将自动保存。",
    "oauthContinue": "继续",
    "oauthWaiting": "等待授权中...",
    "oauthWaitingDescription": "请在浏览器窗口中完成授权。",
    "oauthConnected": "已成功连接 {{provider}}",
    "oauthFailed": "授权失败，请重试",
    "viewMore": "显示更多 ({{count}})"
  },
  "models": {
    "llmConfiguration": "LLM 配置",
    "providersTitle": "提供商",
    "providersDescription": "为每个提供商配置 API 密钥和端点。",
    "llmTitle": "模型",
    "defaultLlm": "默认LLM",
    "notConfiguredYet": "尚未配置",
    "llmDescription": "在这里设置全局默认的 LLM 模型。你也可以在聊天页面为具体 Agent 单独选择使用的模型。",
    "configureProvider": "配置 {{name}}",
    "baseURL": "基础 URL",
    "apiKey": "API 密钥",
    "advancedConfig": "进阶配置",
    "authMode": "鉴权方式",
    "authModeApiKey": "API Key（x-api-key）",
    "authModeAuthToken": "Auth Token（Authorization: Bearer）",
    "customHeaders": "自定义 Headers",
    "customHeadersHint": "会附加到每次 API 请求中，例如 x-app: cli",
    "customHeaderKey": "Header 名称",
    "customHeaderValue": "Header 值",
    "addHeader": "+ 添加 Header",
    "generateConfig": "生成参数配置",
    "generateConfigHint": "使用 JSON 格式表示的生成参数配置项，会被展开传入到生成请求（`openai.chat.completions` 或 `anthropic.messages`）中。",
    "generateConfigInvalidJson": "请输入有效的 JSON",
    "generateConfigMustBeObject": "生成参数配置必须是 JSON 对象",
    "modelAdvancedConfig": "模型进阶配置",
    "modelGenerateConfig": "模型生成参数",
    "modelGenerateConfigHint": "使用 JSON 格式表示的该模型专属生成参数配置项，会被展开传入到生成请求中。优先级高于提供商级别的进阶配置。",
    "modelConfigSaved": "模型 {{name}} 的配置已保存",
    "modelConfigSaveFailed": "保存模型配置失败",
    "modelConfigLabel": "模型配置",
    "maxTokensLabel": "最大输出 Tokens",
    "maxTokensHint": "每次响应的最大输出 token 数",
    "maxInputLengthLabel": "最大上下文长度",
    "maxInputLengthHint": "模型上下文窗口大小，控制上下文压缩阈值（≥1000）",
    "relayReasoningLabel": "转发推理内容",
    "relayReasoningHint": "将推理内容（reasoning contents）回传至后续对话轮次",
    "thinkingModeLabel": "启用思考",
    "thinkingModeHint": "开启以启用模型思考/推理，关闭以禁用思考。",
    "thinkingBudgetLabel": "思考预算",
    "thinkingBudgetHint": "使用模型默认思考预算",
    "switchToManual": "手动设置",
    "switchToAuto": "自动",
    "reasoningEffortLabel": "推理深度",
    "reasoningEffortHint": "控制推理深度（OpenAI 系列）",
    "protocol": "协议",
    "protocolHint": "为当前配置选择提供商 API 协议。",
    "selectProtocol": "请选择协议",
    "protocolOpenAI": "OpenAI 兼容（Chat Completions）",
    "protocolOpenAIResponse": "OpenAI 兼容（Response API）",
    "protocolAnthropic": "Anthropic（Messages API）",
    "currentKey": "当前密钥：{{key}}",
    "startsWith": "以 \"{{prefix}}\" 开头",
    "optionalSelfHosted": "自托管服务可选",
    "leaveBlankKeep": "留空以保持当前密钥",
    "enterApiKey": "输入 API 密钥 ({{prefix}}...)",
    "enterApiKeyOptional": "输入 API 密钥（可选）",
    "openAIEndpoint": "OpenAI 端点，例如 https://api.openai.com/v1",
    "openAICompatibleEndpoint": "OpenAI 兼容端点，例如 https://api.example.com（仅在你的服务要求时再追加 /v1）",
    "azureEndpointHint": "Azure OpenAI 端点，例如 https://<resource>.openai.azure.com/openai/v1",
    "anthropicEndpointHint": "Anthropic 端点，例如 https://api.anthropic.com",
    "ollamaEndpointHint": "Ollama 端点，例如 http://localhost:11434",
    "lmstudioEndpointHint": "LM Studio 端点，例如 http://localhost:1234/v1",
    "apiEndpointHint": "API 端点，例如 https://api.example.com",
    "pleaseEnterBaseURL": "请输入 API 基础 URL",
    "selectBaseURL": "请选择基础 URL",
    "selectBaseURLHint": "选择该服务商的区域接入点",
    "pleaseEnterValidURL": "请输入有效的 URL",
    "apiKeyShouldStart": "API 密钥应以 \"{{prefix}}\" 开头",
    "configurationSaved": "{{name}} 配置已保存",
    "failedToSaveConfig": "保存配置失败",
    "revokeAuthorization": "撤销授权",
    "revokeConfirmContent": "确定要移除 {{name}} 的 API 密钥吗？当前 LLM 模型配置也将被清除。",
    "revokeConfirmSimple": "确定要移除 {{name}} 的 API 密钥吗？",
    "authorizationRevoked": "{{name}} 授权已撤销，LLM 模型已清除",
    "authorizationRevokedSimple": "{{name}} 授权已撤销",
    "failedToRevoke": "撤销授权失败",
    "active": "活动：{{provider}} / {{model}}",
    "provider": "提供商",
    "model": "模型",
    "selectProvider": "选择提供商（必须已授权）",
    "selectModel": "选择模型",
    "llmModelUpdated": "LLM 模型已更新",
    "failedToSave": "保存失败",
    "freeModelWarningTitle": "免费模型提示",
    "freeModelWarningMessage": "免费模型可能存在服务不稳定的情况，详情请参考提供商服务条款：",
    "freeModelWarningDontShowAgain": "今后不再提示",
    "saved": "已保存",
    "save": "保存",
    "cancel": "取消",
    "loading": "加载中...",
    "retry": "重试",
    "notSet": "未设置",
    "notRequired": "无需配置",
    "available": "可用",
    "unavailable": "不可用",
    "providerAvailable": "可用（有模型）",
    "providerNoModels": "未就绪（无模型）",
    "providerNotConfigured": "未就绪（未配置）",
    "settings": "设置",
    "actions": "操作",
    "search": "搜索",
    "searchPlaceholder": "搜索提供商...",
    "searchModelPlaceholder": "搜索模型...",
    "custom": "自定义",
    "builtin": "内置",
    "freeTierGroup": "免费",
    "paidGroup": "付费",
    "localCustomGroup": "本地 & 自定义",
    "cloudGroup": "云端提供商",
    "configuredGroup": "已配置",
    "configuredOnline": "个提供商在线",
    "noConfigured": "尚未配置任何提供商，请在下方选择一个开始使用",
    "goConfigureBtn": "去配置",
    "availableGroup": "可用提供商",
    "clickToConfigure": "点击配置",
    "configureAction": "配置 →",
    "endpointCount": "{{count}} 个端点",
    "connect": "OAuth 认证",
    "saveApiKey": "保存",
    "addProvider": "添加提供商",
    "addProviderTitle": "添加自定义提供商",
    "providerIdLabel": "提供商 ID",
    "providerIdPlaceholder": "例如 openai, google, anthropic",
    "providerIdHint": "小写字母、数字、连字符、下划线，创建后不可更改。",
    "providerNameLabel": "显示名称",
    "providerNamePlaceholder": "例如 OpenAI, Google Gemini",
    "defaultBaseUrlLabel": "默认 Base URL",
    "defaultBaseUrlPlaceholder": "例如 https://api.example.com",
    "apiKeyPrefixLabel": "API Key 前缀（可选）",
    "apiKeyPrefixPlaceholder": "例如 sk-",
    "providerCreated": "提供商 \"{{name}}\" 已创建",
    "providerCreateFailed": "创建提供商失败",
    "deleteProvider": "删除提供商",
    "deleteProviderConfirm": "确定删除自定义提供商 \"{{name}}\" 及其所有模型？此操作不可撤销。",
    "providerDeleted": "提供商 \"{{name}}\" 已删除",
    "providerDeleteFailed": "删除提供商失败",
    "disableProvider": "停用提供商",
    "disableProviderConfirm": "确定清除 \"{{name}}\" 的 API Key？该提供商将变为未配置状态。",
    "disableBtn": "停用",
    "changeApiKey": "修改",
    "selectVariant": "选择 {{name}} 的版本",
    "providerDisabled": "提供商 \"{{name}}\" 已停用",
    "manageModels": "模型",
    "models": "模型",
    "manageModelsTitle": "{{provider}} — 模型管理",
    "userAdded": "用户添加",
    "addModel": "添加模型",
    "addModels": "添加模型",
    "autoDiscoverModels": "自动发现模型",
    "addModelTitle": "为 {{provider}} 添加模型",
    "modelIdLabel": "模型 ID",
    "modelIdPlaceholder": "例如 gpt-4o, gemini-2.0-flash",
    "modelDiscoveryUnavailableHint": "未发现可用模型。该供应商可能不支持模型列表查询，请手动输入模型 ID。",
    "modelNameLabel": "模型名称",
    "modelNameRequired": "请输入模型名称",
    "modelNamePlaceholder": "例如 GPT-4o, Gemini 2.0 Flash",
    "modelAdded": "模型 \"{{name}}\" 已添加",
    "modelAddFailed": "添加模型失败",
    "modelAlreadyExists": "模型 ID \"{{id}}\" 已存在",
    "autoDiscoverModelsSuccess": "自动发现完成，新增 {{count}} 个模型",
    "autoDiscoverModelsNoNew": "自动发现完成，未新增模型",
    "autoDiscoverModelsFailed": "自动发现模型失败",
    "removeModel": "移除",
    "removeModelConfirm": "确定从 {{provider}} 中移除模型 \"{{name}}\"？",
    "modelRemoved": "模型 \"{{name}}\" 已移除",
    "modelRemoveFailed": "移除模型失败",
    "loadMore": "加载更多 ({{count}})",
    "modelsCount": "{{count}} 个模型",
    "noModels": "暂无模型",
    "addModelFirst": "请先添加模型",
    "modelList": "模型列表",
    "clearAll": "清除全部",
    "filteredModelsLoaded": "已加载过滤模型：{{count}}",
    "filterFailed": "过滤模型失败",
    "clearAllModels": "清除所有模型",
    "clearAllModelsConfirm": "清除所有 {{count}} 个额外模型？此操作不可撤销。",
    "allModelsCleared": "已清除 {{count}} 个模型",
    "filterModels": "过滤模型",
    "filterByProvider": "供应商：",
    "searchProviderPlaceholder": "搜索供应商名称",
    "selectAllProviders": "全选",
    "clearProviderSelection": "全不选",
    "noMatchingProviders": "没有匹配的供应商",
    "filterByModality": "输入模态：",
    "filterFreeOnly": "仅免费模型：",
    "getModels": "获取模型",
    "discovered": "可用模型：",
    "add": "添加",
    "local": "本地",
    "localType": "类型",
    "localEmbedded": "嵌入式（进程内）",
    "localDownloadFirst": "未启动模型服务",
    "localDownloadModel": "下载模型",
    "localModelsTitle": "{{provider}} — 本地模型",
    "localNoModels": "暂无已下载的模型",
    "localRepoId": "模型仓库 ID",
    "localRepoIdRequired": "请输入模型仓库 ID",
    "localRepoIdPlaceholder": "例如 Qwen/Qwen3-0.6B-GGUF",
    "localFilename": "文件名（可选）",
    "localFilenamePlaceholder": "例如 mistral-7b.Q4_K_M.gguf",
    "localFilenameHint": "留空将自动选择最佳量化版本",
    "localSource": "来源",
    "localDownloadSuccess": "模型下载成功",
    "localDownloadFailed": "模型下载失败",
    "localDeleteModel": "删除模型",
    "localDeleteConfirm": "确定删除本地模型 \"{{name}}\"？模型文件将从磁盘中删除。",
    "localModelDeleted": "模型 \"{{name}}\" 已删除",
    "localDeleteFailed": "删除模型失败",
    "localDownloadPending": "准备下载...",
    "localDownloading": "正在下载 {{repo}}... 可能需要几分钟。",
    "localDownloadNavigateHint": "您可以离开此页面，下载将在后台继续进行。",
    "localDownloadInProgress": "已有下载任务正在进行",
    "localDownloaded": "已下载",
    "localNotDownloaded": "未下载",
    "localNoRecommendedModels": "当前机器配置较低，不适合运行本地模型",
    "localCancelDownloadTitle": "取消下载",
    "localCancelDownloadAction": "取消下载",
    "localCancelDownloadConfirm": "确定取消下载 \"{{repo}}\"？",
    "localDownloadCancelled": "下载已取消",
    "localCancelDownloadFailed": "取消下载失败",
    "localLlamacppName": "推理引擎",
    "localLlamacppInstallHint": "需要先安装本地运行时，才能下载或启动模型。",
    "localInstallLlamacpp": "安装 llama.cpp",
    "localLlamacppInstallStarted": "已开始下载 llama.cpp",
    "localLlamacppInstallSuccess": "llama.cpp 安装成功",
    "localLlamacppInstallFailed": "llama.cpp 安装失败",
    "localRuntimeSectionTitle": "Inference Engine",
    "localRuntimeSectionDescription": "Powered by Llama.cpp",
    "localRuntimeComputeHint": "默认使用 CPU，如需 GPU 加速功能，请使用 Ollama 或 LM Studio",
    "localRuntimeInstalled": "已安装",
    "localRuntimeUpdateAvailable": "可更新",
    "localRuntimeUpdateAction": "点击下载最新版本",
    "localRuntimeUpdateConfirmTitle": "确认更新 llama.cpp",
    "localRuntimeUpdateConfirmContent": "更新会覆盖当前已安装的 llama.cpp 版本。确认后将开始下载并安装最新版本。",
    "localRuntimeUpdateConfirmContentWithServer": "更新会覆盖当前已安装的 llama.cpp 版本，并关闭当前正在运行的模型服务（{{model}}）。确认后将开始下载并安装最新版本。",
    "localRuntimeUnsupported": "当前环境不支持",
    "localRuntimeMissing": "未安装",
    "localServerRunningTitle": "当前本地服务",
    "localServerOnline": "运行中",
    "localServerIdle": "不可用",
    "localServerUnavailable": "异常",
    "localNoActiveModel": "暂无运行中的模型",
    "localNoDownloadedModelsHint": "请先下载合适的模型，再启动本地推理服务。",
    "localDownloadModelFirst": "请先下载模型",
    "localEngineInstallStateLabel": "安装",
    "localEngineRunStateLabel": "状态",
    "localEngineCurrentModelLabel": "当前服务模型",
    "localEngineNextStepLabel": "下一步",
    "localEngineHealthLabel": "引擎状态",
    "localEngineStatusHint": "请在下方列表中下载并启动合适的模型",
    "localStartServer": "启动",
    "localStopServer": "停止",
    "localServerStartFailed": "启动本地服务失败",
    "localServerStopFailed": "停止本地服务失败",
    "localServerSwitchTitle": "切换运行中的模型",
    "localServerSwitchConfirm": "当前服务正在运行 {{current}}。确认切换到 {{next}}？",
    "localSwitchModel": "切换",
    "localModelPathMissing": "该已下载模型缺少本地路径信息。",
    "localModelsSectionTitle": "本地模型",
    "localModelsSectionDescription": "下载后即可启动；当前只允许一个模型下载任务和一个本地服务实例。",
    "localModelsLockedHint": "请先安装 llama.cpp",
    "localAlternativeRuntimeHint": "请尝试使用 Ollama 或 LM Studio",
    "localModelsCount": "已下载 {{downloaded}} / {{total}}",
    "localCurrentDownloadTitle": "当前下载",
    "localAdvancedConfigTitle": "本地模型进阶配置",
    "localAdvancedConfigDescription": "这些设置会应用到内置本地推理运行时。其中最大上下文长度会在下一次启动本地服务时生效",
    "localAdvancedConfigSaved": "本地模型进阶配置已保存",
    "localAdvancedConfigSaveFailed": "保存本地模型进阶配置失败",
    "localMaxContextLengthLabel": "最大上下文长度",
    "localMaxContextLengthHint": "模型上下文窗口的最大 token 数，决定每次请求可携带的历史长度，在下一次启动本地服务时生效",
    "localMaxContextLengthRequired": "请输入最大上下文长度",
    "localMaxContextLengthMin": "最大上下文长度必须大于等于 {{min}}",
    "localMaxContextLengthPlaceholder": "请输入最大上下文长度",
    "localServerPortLabel": "服务端口",
    "localServerPortHint": "留空时，llama.cpp 会在启动时自动选择一个可用端口；填写端口号则会在后续启动时复用该固定端口，配置会在下一次启动本地服务时生效",
    "localServerPortRange": "服务端口必须在 {{min}} 到 {{max}} 之间",
    "localServerPortPlaceholder": "留空则自动选择端口",
    "localGenerateConfigHint": "使用 JSON 格式表示的生成参数配置项，会被展开传入到生成请求中",
    "localCustomModelTitle": "自定义模型下载",
    "localCustomModelHint": "输入模型仓库 ID，仅支持 GGUF 格式。",
    "localSourceHuggingFace": "Hugging Face",
    "localSourceModelScope": "ModelScope",
    "ollamaModelNamePlaceholder": "例如 mistral:7b, qwen3:8b",
    "testConnection": "测试连接",
    "testConnectionSuccess": "连接测试成功",
    "testConnectionFailed": "连接测试失败",
    "testConnectionFailedWithMessage": "连接测试失败：{{message}}",
    "testConnectionError": "测试连接时发生错误",
    "discoverModels": "自动获取模型",
    "discoverModelsFailed": "自动获取模型失败",
    "ollamaFetchModelsFailed": "获取 Ollama 模型列表失败，请查看错误详情。",
    "modelTestFailed": "模型验证失败，请检查模型ID是否正确",
    "modelTestFailedConfirm": "模型连接测试失败：{{message}}。是否仍要添加此模型？",
    "autoDiscoveredAndAdded": "已自动获取 {{count}} 个模型，并新增 {{added}} 个到可选列表",
    "autoDiscoveredNoNew": "已自动获取 {{count}} 个模型，当前列表已是最新",
    "autoDiscoverFailed": "自动获取模型失败，可在模型管理中手动添加",
    "tagImage": "图片",
    "tagVideo": "视频",
    "tagTextOnly": "纯文本",
    "tagMultimodal": "多模态",
    "tagVision": "视觉",
    "tagText": "文本",
    "free": "免费",
    "probeMultimodal": "测试多模态",
    "probeImage": "图片",
    "probeVideo": "视频",
    "probeSupported": "支持: {{types}}",
    "probeNotSupported": "该模型不支持多模态输入",
    "probeFailed": "探测失败",
    "tagNotProbed": "未检测",
    "modalityVision": "图片",
    "modalityAudio": "音频",
    "modalityVideo": "视频",
    "modalityFile": "文件",
    "modalityText": "仅文本",
    "perMillionIn": "/1M 输入",
    "perMillionOut": "/1M 输出"
  },
  "agentConfig": {
    "title": "运行配置",
    "description": "配置智能体运行参数",
    "reactAgentTitle": "ReAct 智能体",
    "llmRetryTitle": "LLM 自动重试",
    "llmRetryEnabled": "启用自动重试",
    "llmRetryEnabledTooltip": "对限流、超时、连接中断等瞬时 LLM API 错误自动重试。保存后对新的请求生效。",
    "llmMaxRetries": "最大重试次数",
    "llmMaxRetriesTooltip": "单次 LLM 请求在遇到可重试错误时，最多额外重试多少次。",
    "llmMaxRetriesPlaceholder": "请输入最大重试次数",
    "llmMaxRetriesRequired": "最大重试次数为必填项",
    "llmMaxRetriesMin": "最大重试次数必须大于等于 1",
    "llmBackoffBase": "退避基础延迟（秒）",
    "llmBackoffBaseTooltip": "第一次重试前的基础等待时间，后续会按指数退避增长。",
    "llmBackoffBasePlaceholder": "请输入基础延迟",
    "llmBackoffBaseRequired": "退避基础延迟为必填项",
    "llmBackoffBaseMin": "退避基础延迟必须大于等于 0.1 秒",
    "llmBackoffCap": "退避最大延迟（秒）",
    "llmBackoffCapTooltip": "指数退避的最大等待上限，避免重试间隔无限增大。",
    "llmBackoffCapPlaceholder": "请输入最大延迟",
    "llmBackoffCapRequired": "退避最大延迟为必填项",
    "llmBackoffCapMin": "退避最大延迟必须大于等于 0.5 秒",
    "llmBackoffCapGteBase": "退避最大延迟必须大于等于基础延迟",
    "llmRateLimiterTitle": "LLM 并发限流",
    "llmMaxConcurrent": "最大并发请求数",
    "llmMaxConcurrentTooltip": "允许同时发出的 LLM 请求上限，所有 Agent 共享。仅首次初始化时生效，修改后需重启服务。",
    "llmMaxConcurrentPlaceholder": "请输入最大并发数",
    "llmMaxConcurrentRequired": "最大并发请求数为必填项",
    "llmMaxConcurrentRange": "最大并发请求数必须大于等于 1",
    "llmMaxQpm": "每分钟最大请求数（QPM）",
    "llmMaxQpmTooltip": "60 秒滑动窗口内允许的最大请求数。超出上限的请求在发送前会等待，从源头预防 429 限流。0 表示不限制。",
    "llmMaxQpmPlaceholder": "请输入每分钟最大请求数（0 = 不限制）",
    "llmMaxQpmRequired": "每分钟最大请求数为必填项",
    "llmMaxQpmRange": "每分钟最大请求数必须大于等于 0",
    "llmRateLimitPause": "限流暂停时长（秒）",
    "llmRateLimitPauseTooltip": "收到 429 限流响应时全局暂停的默认时长（秒）。若 API 返回 Retry-After 头，则以其为准。",
    "llmRateLimitPausePlaceholder": "请输入暂停时长",
    "llmRateLimitPauseRequired": "限流暂停时长为必填项",
    "llmRateLimitPauseMin": "限流暂停时长必须大于等于 1 秒",
    "llmRateLimitJitter": "抖动范围（秒）",
    "llmRateLimitJitterTooltip": "在暂停时长基础上叠加的随机抖动范围（秒），使并发等待者错开唤醒时间，避免新的请求突刺。",
    "llmRateLimitJitterPlaceholder": "请输入抖动范围",
    "llmRateLimitJitterRequired": "抖动范围为必填项",
    "llmRateLimitJitterMin": "抖动范围必须大于等于 0 秒",
    "llmAcquireTimeout": "槽位获取超时（秒）",
    "llmAcquireTimeoutTooltip": "等待获取限流槽位的最长时间（秒），超时后将抛出错误而非无限等待。",
    "llmAcquireTimeoutPlaceholder": "请输入超时时间",
    "llmAcquireTimeoutRequired": "槽位获取超时为必填项",
    "llmAcquireTimeoutMin": "槽位获取超时必须大于等于 10 秒",
    "llmAcquireTimeoutGtPauseJitter": "槽位获取超时必须大于限流暂停时长与抖动范围之和",
    "contextManagementTitle": "上下文管理",
    "memoryManagerBackend": "长期记忆管理后端",
    "memoryManagerBackendTooltip": "记忆管理器的后端类型，可选 remelight（本地文件）、adbpg（云端数据库）或 none（关闭记忆）",
    "memoryManagerBackendRestartWarning": "切换长期记忆管理后端不支持热更新，保存后需要重启 QwenPaw 才能生效",
    "maxIters": "最大迭代次数",
    "maxItersTooltip": "ReAct 智能体的最大推理-行动迭代次数",
    "maxItersPlaceholder": "请输入最大迭代次数",
    "maxItersRequired": "最大迭代次数为必填项",
    "maxItersMin": "最大迭代次数必须大于等于 1",
    "agentLoopTitle": "智能体 Loop 设置",
    "loopMode": {
      "builtIn": "内置",
      "builtInNote": "流程已锁定 · 参数可编辑",
      "templateSectionTitle": "Loop 模板",
      "templateSectionDescription": "选择内置模板，或添加自己的模板。",
      "defaultTab": "默认",
      "goalTab": "目标",
      "missionTab": "任务",
      "defaultDescription": "未启用显式模式时使用的标准受控 ReAct Loop。",
      "goalDescription": "面向具体、可验证目标的有界持续 Loop。",
      "missionDescription": "面向长时、多步骤任务的持续执行流程。",
      "gatePipeline": "Gate 流程",
      "repetitionTitle": "重复行为保护",
      "repetitionDescription": "检测重复工具调用并进行干预。",
      "iterationTitle": "迭代次数限制",
      "iterationDescription": "限制 ReAct 的最大迭代次数。",
      "retryTitle": "定性完成度检查",
      "retryDescription": "仅在 Agent 给出不包含工具调用的文本答复时触发。",
      "goalTurnTitle": "目标轮次限制",
      "goalTurnDescription": "限制单个活动目标内的执行轮次。",
      "maxGoalTurns": "最大目标轮次",
      "goalBudgetTitle": "目标 Token 预算",
      "goalBudgetDescription": "完整目标达到预算时停止。",
      "maxGoalTokens": "最大目标 Token 数",
      "goalCompletionTitle": "目标完成检查",
      "goalCompletionDescription": "停止前读取明确的目标状态。",
      "goalCompletionReadOnly": "完成状态由内置目标状态协议控制。",
      "missionProgressTitle": "任务进度检查",
      "missionProgressDescription": "持续执行，直到任务故事全部通过或达到上限。",
      "missionProgressReadOnly": "完成状态由内置 Mission Story 状态控制。",
      "missionIterationTitle": "任务轮次限制",
      "missionIterationDescription": "设置新 Mission 默认允许的最大执行轮次。",
      "workerAttemptsTitle": "Worker 尝试次数",
      "workerAttemptsDescription": "限制 Story 验证未通过后 Worker 的重试次数。",
      "missionVerificationTitle": "任务验证策略",
      "missionVerificationDescription": "设置默认验证指导和测试命令。",
      "defaultMaxMissionIterations": "默认最大执行轮次",
      "defaultMaxMissionIterationsTooltip": "当 /mission 未指定 --max-iterations 时使用。",
      "maxRetriesPerStory": "每个 Story 最大重试次数",
      "maxRetriesPerStoryTooltip": "Verifier 返回失败或部分完成后，Worker 可重试的次数。",
      "defaultVerificationInstructions": "验证指导（可选）",
      "defaultVerificationInstructionsHelp": "应用于每个 Mission Verifier 的自然语言验证要求。",
      "defaultVerificationInstructionsPlaceholder": "例如：检查 Windows 路径兼容性，并检查实际渲染界面。",
      "defaultVerifyCommand": "默认测试命令（可选）",
      "defaultVerifyCommandHelp": "Verifier 会通过正常工具和权限尝试执行；/mission --verify 可临时覆盖。",
      "defaultVerifyCommandPlaceholder": "例如：pytest -q",
      "enableRepetitionProtection": "启用重复行为保护",
      "removeRule": "删除规则",
      "custom": "自定义",
      "customDescription": "使用 QwenPaw 内置 Gate 构建并保存执行流程。",
      "duplicate": "复制",
      "delete": "删除",
      "displayName": "显示名称",
      "duplicateModeName": "已存在同名的 Loop 模式。",
      "slashCommand": "斜杠命令",
      "description": "描述",
      "availableToAgent": "允许当前智能体使用",
      "runsTopToBottom": "按从上到下的顺序执行",
      "addGate": "添加 Gate",
      "emptyPipeline": "至少添加一个 Gate 后，此模式即可使用。",
      "iterationGateTitle": "迭代次数限制",
      "iterationGateDescription": "达到固定 Loop 迭代次数后停止。",
      "doomGateTitle": "重复行为保护",
      "doomGateDescription": "检测重复工具调用并调整策略。",
      "tokenGateTitle": "Token 预算",
      "tokenGateDescription": "限制提示和生成内容的 Token 用量。",
      "timeoutGateTitle": "Loop 时间限制",
      "timeoutGateDescription": "达到时间上限后在下一个 Loop 边界停止，不会中断正在执行的内容。",
      "toolBudgetGateTitle": "工具调用预算",
      "toolBudgetGateDescription": "限制全部调用及指定工具的调用次数。",
      "retryGateTitle": "提前停止重试",
      "retryGateDescription": "结束前提示智能体再次验证。",
      "rubricGateTitle": "完成度量表",
      "rubricGateDescription": "评估明确的完成标准，并在需要时修订。",
      "qualitativeRubricTitle": "定性完成度检查",
      "qualitativeRubricDescription": "仅在 Agent 给出不包含工具调用的文本答复时，按自然语言标准检查完成度。",
      "qualitativeRubric": "自然语言完成标准",
      "qualitativeRubricHelp": "仅在不包含工具调用的文本答复时触发；仍有工作时要求 Agent 继续。",
      "completionRubricTitle": "完成信号检查",
      "completionRubricDescription": "仅在 Agent 给出不包含工具调用的文本答复时检查完成信号。",
      "completionRubricHelp": "在不包含工具调用的文本答复后触发。完成时 Agent 输出完成信号；未完成时继续工作，直到达到最多判断轮数。",
      "completionPrompt": "完成判断 Prompt",
      "completionPromptHelp": "描述结果何时算完成，QwenPaw 会自动注入完成信号的输出要求。",
      "completionSignal": "完成信号",
      "completionSignalHelp": "QwenPaw 会将此信号及“只能输出该信号”的要求自动注入完成判断 Prompt。清理首尾空白并忽略大小写后，只有完整匹配才会结束 Loop。",
      "removeCriterion": "删除标准 {{number}}",
      "totalTokensHelp": "本轮输入和输出 Token 的合计上限。",
      "promptTokensHelp": "包含系统指令、对话上下文、工具定义和工具结果。",
      "completionTokensHelp": "本轮模型生成内容的 Token 上限。",
      "maxIterations": "最大迭代次数",
      "historyWindow": "历史窗口",
      "similarityThreshold": "相似度阈值",
      "totalTokens": "最大总 Token",
      "promptTokens": "最大输入 Token",
      "completionTokens": "最大输出 Token",
      "maxSeconds": "最长秒数",
      "maxSecondsHelp": "当前模型响应或工具调用完成后才检查耗时，不会强行中断正在执行的内容。",
      "allToolCalls": "全部工具调用",
      "perToolLimits": "单个工具限制",
      "toolName": "工具名称",
      "callLimitAria": "{{name}} 调用上限",
      "removeToolLimitAria": "删除 {{name}} 的限制",
      "addToolLimit": "添加单个工具限制",
      "maxRetries": "最大重试次数",
      "retryInstruction": "重试指令",
      "passThreshold": "通过阈值",
      "maxEvaluations": "最多判断轮数",
      "graderError": "评分器错误",
      "stopSafely": "安全停止",
      "verifyOnceMore": "再验证一次",
      "completionCriteria": "完成标准",
      "criterionPlaceholder": "描述可观察的完成结果",
      "required": "必需",
      "weight": "权重",
      "addCriterion": "添加标准",
      "moveGateAria": "移动 {{title}}",
      "removeGate": "删除 Gate",
      "newModeName": "新 Loop 模式",
      "defaultCustomDescription": "自定义 Gate 流程。",
      "copyName": "{{name}} 副本",
      "createModeAria": "创建自定义 Loop 模式",
      "createModeTitle": "创建自定义 Loop 模式",
      "startingTemplate": "初始模板",
      "startingPipeline": "初始 Gate 流程",
      "blankPipelineHint": "从空流程开始，稍后添加 Gate",
      "safeTemplate": "安全运行",
      "researchTemplate": "预算研究",
      "qualityTemplate": "质量优先",
      "blankTemplate": "空白流程"
    },
    "doomLoopEnabled": "重复行为保护",
    "doomLoopEnabledTooltip": "当 Agent 陷入重复相同操作时自动介入",
    "doomLoopAfter": "连续重复",
    "doomLoopRepetitions": "次相同操作后",
    "doomLoopStopAction": "暂停并等待确认",
    "doomLoopWarnAction": "发送提醒",
    "doomLoopSimpleMode": "简单",
    "doomLoopAdvancedMode": "高级",
    "doomLoopWindowSize": "检测范围",
    "doomLoopWindowSizeTooltip": "检查最近多少次操作是否重复",
    "doomLoopSimilarity": "匹配灵敏度",
    "doomLoopSimilarityTooltip": "操作相似度超过此值视为重复（越低越严格）",
    "doomLoopStages": "干预规则",
    "doomLoopAction": "动作",
    "doomLoopPrompt": "提示语",
    "doomLoopPromptPlaceholder": "提醒内容或暂停原因...",
    "doomLoopAddStage": "添加规则",
    "iterationTitle": "迭代限制",
    "iterationEnabled": "启用迭代限制",
    "iterationEnabledTooltip": "在固定轮次后停止 Agent 循环",
    "iterationMaxIterations": "最大迭代次数",
    "iterationMaxIterationsTooltip": "循环执行的最大轮次",
    "rubricTitle": "定性完成度检查",
    "rubricEnabled": "启用定性完成度检查",
    "rubricEnabledTooltip": "仅在 Agent 给出不包含工具调用的文本答复时触发。",
    "rubricPrompt": "自然语言完成标准",
    "rubricPromptTooltip": "注入的提示语，要求 Agent 评估任务完成情况",
    "rubricDesc": "当 Agent 给出不包含工具调用的文本答复时，按自然语言完成标准检查，并在仍有工作时要求 Agent 继续。",
    "rubricPromptPlaceholder": "你上一轮没有调用任何工具。如果任务已完成请确认，否则请继续使用工具完成。",
    "rubricMaxInterventions": "最多判断轮数",
    "rubricMaxInterventionsTooltip": "单个 Turn 内，对不包含工具调用的文本答复最多进行多少轮完成度检查。",
    "inLoopModes": "在 /goal、/mission 模式中启用",
    "inLoopModesTooltip": "当 /goal 或 /mission 循环模式激活时也启用此功能",
    "comingSoonEditable": "自定义配置将在未来版本中开放。",
    "simpleMode": "简单",
    "advancedMode": "高级",
    "comingSoon": "即将推出",
    "reactModeTab": "Loop模板 - 默认",
    "goalModeTab": "Loop模板 - Goal模式",
    "missionModeTab": "Loop模板 - Mission模式",
    "goalModeInfoTitle": "Goal模式 vs 默认模式",
    "goalModeInfo": "默认模式在产生回复后即停止。Goal模式让 Agent 围绕目标持续循环执行，通过 Rubric 评估自动判断是否完成，未完成则继续推进。所有操作在当前 Agent 上下文中进行。",
    "missionModeInfoTitle": "Mission模式 vs Goal模式",
    "missionModeInfo": "Mission模式将复杂任务自动分解为子任务，由 Worker 子Agent独立执行，Verifier 子Agent验证结果。每个子任务有独立上下文，不会污染主会话历史。适合需要长时间、多步骤协作的复杂工程任务。",
    "goalIterationGate": "目标迭代 Gate",
    "goalIterationGateDesc": "限制目标会话中的 Agent 执行轮次，跟踪迭代次数和 Token 使用量。",
    "goalBudgetGate": "Token 预算 Gate",
    "goalBudgetGateDesc": "为目标会话设置 Token 消耗上限，超出预算时停止 Agent。",
    "goalRubricGate": "目标完成度评估",
    "goalRubricGateDesc": "通过检查会话状态评估目标是否已完成。",
    "goalDoomGate": "重复行为保护",
    "goalDoomGateDesc": "在目标执行过程中检测重复模式并触发干预。",
    "missionProgressGate": "任务进度 Gate",
    "missionProgressGateDesc": "跟踪 PRD 用户故事的完成情况，直到所有故事通过或达到最大迭代次数。",
    "missionIterBypass": "迭代绕行",
    "missionIterBypassDesc": "在任务执行期间临时取消 ReAct 迭代限制，允许长时间运行的阶段。",
    "customLoopTitle": "自定义循环模式",
    "customLoopDesc": "使用自定义 Gate 组合创建您自己的循环模式，即将推出。",
    "autoGenerateSessionTitle": "自动生成会话标题",
    "autoGenerateSessionTitleTooltip": "新会话首条用户消息发送后，后台触发一次轻量 LLM 调用，把截断的占位标题替换为更贴切的短标题。每个新会话会多一次 LLM 调用；关闭后保留占位标题、不产生该开销。",
    "shellCommandTimeout": "Shell 命令超时（秒）",
    "shellCommandTimeoutTooltip": "execute_shell_command 工具的默认超时时间（秒）。LLM 在单次调用时仍可通过 timeout 参数覆盖此值。适用于编译、数据处理等耗时任务。",
    "shellCommandTimeoutPlaceholder": "请输入超时时间",
    "shellCommandTimeoutRequired": "Shell 命令超时为必填项",
    "shellCommandTimeoutMin": "Shell 命令超时至少为 1 秒",
    "shellCommandExecutable": "Shell 可执行程序",
    "shellCommandExecutableTooltip": "execute_shell_command 使用的 shell 路径。Linux/macOS：如 /bin/bash、/bin/zsh。Windows：支持 powershell.exe、pwsh.exe 或类 POSIX shell（如 Git Bash）。留空时依次回退到 $SHELL 环境变量，再回退到平台默认值（Unix 为 /bin/sh，Windows 为 cmd.exe）。",
    "shellCommandExecutablePlaceholder": "例如 /bin/bash 或 powershell.exe（留空 = 自动检测）",
    "maxInputLength": "最大输入长度",
    "maxInputLengthTooltip": "模型上下文窗口的最大输入长度（token 数）",
    "maxInputLengthPlaceholder": "请输入最大输入长度",
    "maxInputLengthRequired": "最大输入长度为必填项",
    "maxInputLengthMin": "最大输入长度必须大于等于 1000",
    "contextCompactRatio": "上下文压缩阈值比例",
    "contextCompactRatioTooltip": "当上下文长度达到最大上下文长度的该比例时，触发自动压缩",
    "contextCompactRatioRequired": "上下文压缩比例为必填项",
    "contextCompactThreshold": "压缩触发阈值（tokens）",
    "contextCompactThresholdTooltip": "根据最大上下文长度与压缩阈值比例自动计算，上下文超过此 token 数时触发压缩",
    "contextCompactThresholdPlaceholder": "自动计算",
    "contextCompactReserveRatio": "上下文保留阈值比例",
    "contextCompactReserveRatioTooltip": "用于计算 recent tail 的目标预算；Scroll 模式会再应用最小 recent 预算和 40K 上限，并始终完整保留 active turn",
    "contextCompactReserveRatioRequired": "上下文保留比例为必填项",
    "contextCompactReserveThreshold": "保留阈值（tokens）",
    "contextCompactReserveThresholdTooltip": "实际用于切分 recent tail 的目标 token 数；这是软目标，边界消息和完整 active turn 可能使实际保留量更大",
    "contextCompactReserveThresholdPlaceholder": "自动计算",
    "toolResultCompactRecentN": "最新工具结果范围",
    "toolResultCompactRecentNTooltip": "Native 上下文模式下，最近 N 条包含工具结果的消息使用较大的最近预览字节上限",
    "toolResultCompactRecentNRequired": "最新工具结果范围为必填项",
    "toolResultCompactOldThreshold": "旧工具结果预览字节数",
    "toolResultCompactOldThresholdTooltip": "Native 上下文模式下，旧工具结果使用的最大预览字节数",
    "toolResultCompactOldThresholdPlaceholder": "请输入预览字节上限",
    "toolResultCompactOldThresholdRequired": "旧工具结果预览字节数为必填项",
    "toolResultCompactRecentThreshold": "最近工具结果预览字节数",
    "toolResultCompactRecentThresholdTooltip": "工具结果进入 agent context 前使用的最大预览字节数；Scroll 模式下也作为 recall_history 单页和 read_file 单次读取的字节上限",
    "toolResultCompactRecentThresholdPlaceholder": "请输入预览字节上限",
    "toolResultCompactRecentThresholdRequired": "最近工具结果预览字节数为必填项",
    "toolResultCompactRetentionDays": "完整工具结果文件保留天数",
    "toolResultCompactRetentionDaysTooltip": "完整工具结果 artifact 的独立保留天数；到期后自动清理，history.db 中仍可能保留有限预览",
    "toolResultCompactRetentionDaysRequired": "完整工具结果文件保留天数为必填项",
    "historyRetentionDays": "历史记录保留天数",
    "historyRetentionDaysTooltip": "持久化聊天历史的保留天数。超期记录会在启动和 Agent 关闭时自动清理。",
    "historyRetentionDaysRequired": "历史记录保留天数为必填项",
    "historyRetentionDaysForeverWarning": "设为 0 将永久保留历史，存储会无限增长。",
    "historyRetentionDaysLargeWarning": "保留天数过大可能占用较多存储空间。",
    "exemptFileExtensions": "豁免文件后缀",
    "exemptFileExtensionsTooltip": "Native 上下文模式下，这些文件后缀的 read_file 结果始终使用较大的最近预览字节上限",
    "exemptFileExtensionsPlaceholder": ".md, .txt, .json",
    "exemptToolNames": "豁免工具名称",
    "exemptToolNamesTooltip": "Native 上下文模式下，这些工具的调用结果始终使用较大的最近预览字节上限",
    "exemptToolNamesPlaceholder": "chat_with_agent, list_agents",
    "language": "智能体语言",
    "languageTooltip": "智能体人设文件（SOUL.md、AGENTS.md 等）使用的语言。切换语言后将自动重新复制对应语言的 MD 文件。",
    "languageConfirmTitle": "切换智能体语言",
    "languageConfirmContent": "切换语言将会覆盖以下文件为新语言的默认版本：\n\n  SOUL.md、AGENTS.md、PROFILE.md、MEMORY.md、BOOTSTRAP.md、HEARTBEAT.md\n\n如果您已对这些文件进行过自定义修改，请提前备份。您自行添加的其他文件不受影响。",
    "languageConfirmOk": "切换语言",
    "languageSaveSuccess": "语言更新成功",
    "languageSaveSuccessWithFiles": "语言已更新，已复制 {{count}} 个 MD 文件",
    "languageSaveFailed": "语言更新失败",
    "timezone": "用户时区",
    "timezoneTooltip": "用于定时任务、时间显示和 Agent 上下文，默认使用系统时区。",
    "timezoneRequired": "请选择时区",
    "selectTimezone": "选择时区",
    "timezoneSaveSuccess": "时区更新成功",
    "timezoneSaveFailed": "时区更新失败",
    "saveSuccess": "配置保存成功",
    "saveFailed": "配置保存失败",
    "loadFailed": "配置加载失败",
    "historyMaxLength": "历史记录最大长度",
    "historyMaxLengthTooltip": "/history 命令输出的最大长度（字符数）",
    "historyMaxLengthRequired": "历史记录最大长度为必填项",
    "historyMaxLengthMin": "历史记录最大长度必须大于等于 1000",
    "historyMaxLengthPlaceholder": "请输入最大长度",
    "contextCompactTitle": "上下文压缩配置",
    "contextCompactEnabled": "启用上下文压缩",
    "contextCompactEnabledTooltip": "自动压缩上下文，防止上下文窗口溢出",
    "tokenCountModel": "Token 计数模型",
    "tokenCountModelTooltip": "用于精确计算 token 数量的模型名称，填 default 使用内置估算",
    "tokenCountModelPlaceholder": "填写模型名称或 default",
    "tokenCountUseMirror": "使用 HuggingFace 镜像",
    "tokenCountUseMirrorTooltip": "下载 tokenizer 时是否使用 HuggingFace 国内镜像",
    "tokenCountEstimateDivisor": "byte/Token 估算除数",
    "tokenCountEstimateDivisorTooltip": "基于字节数估算 token 数的除数（token 数 ≈ 字节数 / 除数）。推荐值：3.75 ~ 4。",
    "tokenCountEstimateDivisorRequired": "估算除数为必填项",
    "tokenCountEstimateDivisorMin": "估算除数范围为 2 ~ 5",
    "toolResultCompactTitle": "工具结果压缩配置",
    "toolResultCompactEnabled": "启用工具结果压缩",
    "toolResultCompactEnabledTooltip": "对过长的工具调用结果进行压缩，节省上下文空间",
    "memorySummaryTitle": "长期记忆配置",
    "memorySummaryEnabled": "启动记忆总结",
    "memorySummaryEnabledTooltip": "在上下文压缩时自动生成并保存记忆总结",
    "dreamCronEnabled": "启用梦境任务",
    "dreamCronEnabledTooltip": "启用按 Cron 定时执行的梦境记忆优化任务",
    "dreamCron": "梦境定时",
    "dreamCronTooltip": "设置梦境任务自动整理和优化长期记忆。定时触发后会随机延迟 0–60 秒再启动，以避免集中调用；是否执行由上方开关控制",
    "dreamCronPlaceholder": "0 23 * * *",
    "dreamCronRequired": "启用梦境任务时请输入 Cron 表达式",
    "dreamCronInvalid": "请输入有效的 5 段 Cron 表达式",
    "autoMemorySearch": "自动记忆搜索(Beta)",
    "autoMemorySearchTooltip": "每轮对话都自动触发记忆搜索。每次 query 进来都会自动调用记忆搜索能力，让 QwenPaw 更懂你，但会增加 token 消耗。",
    "autoMaxResults": "自动搜索最大结果数",
    "autoMaxResultsTooltip": "自动记忆搜索时返回的最大结果数",
    "autoMaxResultsRequired": "最大结果数为必填项",
    "autoMaxResultsMin": "最大结果数必须大于等于 1",
    "embeddingConfigTitle": "向量模型配置",
    "embeddingBackend": "向量模型 SDK 类型",
    "embeddingBackendTooltip": "选择用于调用向量模型的 SDK 类型",
    "embeddingBackendPlaceholder": "请选择 SDK 类型",
    "embeddingApiKey": "API Key",
    "embeddingApiKeyTooltip": "向量模型提供方的 API Key，无需认证时留空",
    "embeddingApiKeyPlaceholder": "无需认证时留空",
    "embeddingBaseUrl": "Base URL",
    "embeddingBaseUrlTooltip": "向量模型 API 的 Base URL。OpenAI 兼容后端中该自定义地址为可选项，API Key 和模型名称为必填项",
    "embeddingBaseUrlPlaceholder": "https://dashscope.aliyuncs.com/compatible-mode/v1",
    "embeddingHost": "Host",
    "embeddingHostTooltip": "Ollama 服务地址。留空时使用 Ollama 默认地址",
    "embeddingHostPlaceholder": "http://localhost:11434",
    "embeddingModelName": "模型名称",
    "embeddingModelNameTooltip": "向量模型名称，所有向量后端都需要填写",
    "embeddingModelNamePlaceholder": "text-embedding-v4",
    "embeddingEnableCache": "启用 Embedding 缓存",
    "embeddingEnableCacheTooltip": "缓存向量结果，减少重复计算",
    "embeddingMaxCacheSize": "最大缓存条目数",
    "embeddingMaxCacheSizeTooltip": "向量缓存的最大条目数",
    "embeddingMaxCacheSizeRequired": "最大缓存条目数为必填项",
    "embeddingUseDimensions": "使用自定义维度",
    "embeddingUseDimensionsTooltip": "是否使用自定义向量维度（仅部分模型支持）",
    "embeddingDimensions": "向量维度",
    "embeddingDimensionsTooltip": "向量嵌入的维度数，启用自定义维度后生效",
    "embeddingDimensionsRequired": "向量维度为必填项",
    "embeddingDimensionsMin": "向量维度必须大于等于 1",
    "embeddingMaxInputLength": "最大输入长度",
    "embeddingMaxInputLengthTooltip": "向量模型单次输入的最大长度（token 数）",
    "embeddingMaxInputLengthRequired": "最大输入长度为必填项",
    "embeddingMaxBatchSize": "最大批处理大小",
    "embeddingMaxBatchSizeTooltip": "单次批量向量化请求的最大条目数",
    "embeddingMaxBatchSizeRequired": "最大批处理大小为必填项",
    "embeddingRestartWarning": "向量模型配置不支持热更新，保存后需要重启服务才能生效",
    "toolExecutionLevelTitle": "工具执行安全",
    "toolExecutionLevel": {
      "title": "工具执行安全",
      "alertMessage": "配置工具调用的审批策略，控制智能体执行工具时的安全级别",
      "strict": "严格模式",
      "strictDesc": "所有工具调用都需要审批，最高安全级别",
      "smart": "智能模式",
      "smartDesc": "低风险工具自动放行，中高风险工具需要审批",
      "auto": "自动模式",
      "autoDesc": "仅被明确标记为需要审批的工具才会要求审批（默认）",
      "off": "关闭模式",
      "offDesc": "关闭所有工具审批，所有工具自动执行"
    },
    "saveLevelSuccess": "工具执行安全级别已保存",
    "saveLevelFailed": "保存工具执行安全级别失败",
    "maxContextLength": "最大上下文长度",
    "maxContextLengthTooltip": "模型上下文窗口的最大 token 数，决定每次请求能携带的最大历史长度",
    "maxContextLengthRequired": "最大上下文长度为必填项",
    "maxContextLengthMin": "最大上下文长度必须大于等于 1000",
    "maxContextLengthPlaceholder": "请输入最大上下文长度",
    "embeddingActivationNote": "所选后端的必要字段填写完整后才会开启向量模型功能",
    "embeddingEnableHint": "所选后端的必要字段填写完整后启用向量模型功能：OpenAI 兼容或 Gemini 后端需要模型名称和 API Key；Ollama 需要模型名称。",
    "rebuildMemoryIndex": "重建记忆索引",
    "rebuildMemoryIndexWarning": "此操作会清空并重建记忆搜索索引，期间会消耗较多 CPU 和内存。仅建议在索引损坏或搜索结果异常时用于修复。",
    "rebuildMemoryIndexConfirmTitle": "确认重建记忆索引？",
    "rebuildMemoryIndexConfirm": "重建期间 CPU 和内存占用可能明显升高。除非索引损坏或需要修复，否则不建议执行。",
    "rebuildMemoryIndexSuccess": "记忆索引重建完成",
    "rebuildMemoryIndexFailed": "记忆索引重建失败：{{error}}",
    "toolResultCompactRecentGtOld": "最近工具结果预览字节数必须大于或等于 compact 预览字节数",
    "lightContextTitle": "上下文管理",
    "remeLightMemoryTitle": "长期记忆",
    "dialogPath": "对话存储路径",
    "dialogPathTooltip": "对话记录持久化存储的相对路径（相对于 working_dir）",
    "dialogPathPlaceholder": "dialog",
    "contextCompactCollapseLabel": "上下文压缩",
    "toolResultPruningCollapseLabel": "工具结果压缩",
    "autoMemorySearchCollapseLabel": "自动记忆搜索",
    "embeddingConfigCollapseLabel": "向量模型配置",
    "summarizeWhenCompact": "压缩时记忆",
    "summarizeWhenCompactTooltip": "在上下文压缩时自动生成并保存记忆",
    "inboxPushEnabled": "记忆结果收件箱通知",
    "inboxPushEnabledTooltip": "将自动记忆、自动梦境和自动资源任务结果推送到收件箱。关闭后仅停止通知，不影响记忆任务运行。",
    "autoMemoryInterval": "自动记忆间隔",
    "autoMemoryIntervalTooltip": "每隔 N 次用户查询触发一次自动记忆。0 表示禁用定期自动记忆，1 表示每次查询后自动记忆，推荐设置 2-5；设置 1 需要注意高 token 消耗。",
    "autoMemoryIntervalPlaceholder": "输入 0 禁用定期自动记忆",
    "autoMemoryIntervalRequired": "请输入自动记忆间隔",
    "autoMemoryIntervalMin": "自动记忆间隔必须大于等于 0",
    "contextManagerBackend": "上下文管理后端",
    "contextManagerBackendTooltip": "上下文管理器的后端类型，目前仅支持 Light",
    "contextStrategy": "上下文策略",
    "contextStrategyTooltip": "智能体如何管理长上下文。Scroll（推荐）将驱逐的对话轮次持久化到历史库并按需召回；Native 使用就地压缩。更改后需重启 QwenPaw 生效。",
    "contextStrategyScroll": "Scroll",
    "contextStrategyNative": "Native",
    "backendRestartWarning": "切换后端不支持热更新，保存后需要重启 QwenPaw 才能生效",
    "adbpgMemoryTitle": "ADBPG 长期记忆",
    "adbpgConfig": {
      "title": "ADBPG 记忆配置",
      "restBaseUrl": "REST Base URL",
      "restApiKey": "REST API Key",
      "memoryIsolation": "记忆隔离（按 Agent）",
      "searchTimeout": "搜索超时"
    }
  },
  "tools": {
    "title": "内置工具",
    "description": "管理内置工具及其启用状态。禁用的工具将不会提供给智能体使用。",
    "emptyState": "暂无工具配置",
    "loadError": "加载工具失败",
    "enableSuccess": "工具启用成功",
    "disableSuccess": "工具禁用成功",
    "toggleError": "切换工具状态失败",
    "enableAll": "全部启用",
    "disableAll": "全部禁用",
    "enableAllSuccess": "全部工具已启用",
    "disableAllSuccess": "全部工具已禁用",
    "allEnabled": "所有工具已处于启用状态",
    "allDisabled": "所有工具已处于禁用状态",
    "asyncExecution": "异步执行",
    "asyncExecutionEnabled": "异步执行已启用",
    "asyncExecutionDisabled": "异步执行已禁用",
    "configure": "配置",
    "configured": "已配置",
    "requiresConfig": "需要配置",
    "configSaved": "配置已保存",
    "configSaveError": "配置保存失败",
    "active": "个已激活",
    "available": "可用",
    "noEnabled": "暂无已启用的工具",
    "goEnableBtn": "去启用",
    "configureAction": "配置 →",
    "enableAction": "启用 →"
  },
  "modelConfig": {
    "promptTitle": "需要配置 LLM 模型，配置模型后在 Chat 页面选择",
    "promptMessage": "聊天功能需要 LLM 模型才能运行。请先配置模型，配置完成后在 Chat 页面顶部的模型选择器中选择即可使用。",
    "configureButton": "配置模型",
    "skipButton": "跳过",
    "chatDisabledTitle": "聊天已禁用",
    "chatDisabledMessage": "聊天功能已禁用，因为未配置模型。请配置模型以启用聊天功能。",
    "configureNow": "配置模型",
    "modelNotConfigured": "请先在设置中配置模型后再使用聊天功能"
  },
  "header": {
    "changelog": "更新日志",
    "docs": "文档",
    "tutorial": "教程",
    "featureDemos": "功能演示",
    "faq": "常见问题",
    "github": "GitHub",
    "resources": "文档资料",
    "updateAvailable": "有可用更新"
  },
  "theme": {
    "dark": "深色",
    "light": "浅色",
    "system": "跟随系统"
  },
  "chat": {
    "modelSelectTooltip": "模型选择",
    "newChatTooltip": "新建聊天",
    "searchTooltip": "搜索所有聊天",
    "chatHistoryTooltip": "聊天历史",
    "wideModeTooltip": "宽屏模式",
    "normalModeTooltip": "正常模式",
    "allChats": "全部聊天",
    "createNewChat": "创建新聊天",
    "pinDrawer": "固定",
    "unpinDrawer": "取消固定",
    "statusIdle": "空闲",
    "statusInProgress": "进行中",
    "disclaimer": "懂你所需，伴你左右",
    "greeting": "你好，我今天能帮你做什么？",
    "description": "我是一个智能助手，可以帮助你解答问题。",
    "prompt1": "让我们开启一段新的旅程吧！",
    "prompt2": "能告诉我你有哪些技能吗？",
    "inputPlaceholder": "\"↑↓\" 浏览消息 · \"/\" 快捷指令（审批时 \"/approve\" 或 \"/deny\"）",
    "longTextUploadPrompt": "请读取已上传的提示词文件，并根据文件内容回答。",
    "emptyOutputError": "助手返回了空响应。",
    "commands": {
      "clear": {
        "description": "清空对话上下文"
      },
      "compact": {
        "description": "压缩对话上下文并生成摘要，支持附带说明"
      },
      "approve": {
        "description": "批准待执行的工具操作并继续执行"
      },
      "deny": {
        "description": "拒绝待执行的工具操作"
      },
      "mission": {
        "description": "Mission模式 — 分解任务委派子Agent，独立上下文不污染主会话"
      },
      "skills": {
        "description": "列出当前对话可用的技能，并显示可显式调用的技能命令"
      },
      "plan": {
        "description": "创建结构化计划，将任务分解为多个子任务"
      },
      "goal": {
        "description": "Goal循环 — Agent围绕目标持续执行，通过Rubric评估自动判断完成"
      }
    },
    "attachments": {
      "tooltip": "支持文档、图片、视频、音频等多种格式",
      "tooltipImageOnly": "当前模型仅支持图片上传",
      "tooltipNoMultimodal": "当前模型未检测到多模态能力，图片或视频可能无法被正确处理",
      "fileSizeLimit": "单文件不超过 {{limit}}MB",
      "fileSizeExceeded": "文件大小超过 {{limit}}MB 限制。当前文件：{{size}}MB",
      "multimodalDisabled": "当前模型不支持文件上传",
      "multimodalWarning": "当前模型未检测到多模态能力，图片或视频可能无法被正确处理",
      "imageOnlyAccept": "当前模型仅支持图片文件",
      "imageOnlyWarning": "当前模型仅检测到图片支持，视频等非图片文件可能无法被正确处理"
    },
    "rateLimitHit": "当前模型已触发限流，请尝试切换其他免费模型。",
    "turnUsagePopover": {
      "ariaLabel": "查看本轮 Token 与上下文用量",
      "turn": "本轮",
      "turnEstimated": "本轮约",
      "tok": "tok",
      "inOut": "in {{inTok}} · out {{outTok}}",
      "contextLabel": "上下文窗口：",
      "manageContext": "上下文管理",
      "compact": "压缩",
      "new": "新对话"
    },
    "rateLimitMessage": "已触发限流，切换其他免费模型：",
    "rateLimitSwitched": "已切换至 {{model}}",
    "speech": {
      "startRecording": "开始语音录制 (Ctrl+Shift+M)",
      "stopRecording": "停止录制 (Ctrl+Shift+M)",
      "transcribing": "正在转录...",
      "transcriptionDisabled": "语音转录已禁用。请在设置 > 语音转写中配置转录服务。",
      "transcriptionFailed": "语音转录失败",
      "microphoneError": "无法访问麦克风",
      "fileTooLarge": "录音文件过大（{{size}}MB），最大支持 {{limit}}MB",
      "recordingTooLong": "录音时长超过限制（{{limit}}秒）"
    },
    "search": {
      "title": "搜索聊天",
      "tooltip": "搜索当前聊天",
      "placeholder": "搜索消息...",
      "noResults": "未找到结果",
      "resultsCount": "找到 {{count}} 个结果",
      "searching": "正在搜索 {{progress}}...",
      "loading": "加载中...",
      "userMessage": "用户",
      "assistantMessage": "助手",
      "titleMatch": "标题"
    },
    "contextMenu": {
      "open": "打开",
      "rename": "重命名",
      "pin": "置顶",
      "unpin": "取消置顶",
      "delete": "删除"
    },
    "queue": {
      "title": "消息队列",
      "paused": "已暂停",
      "sendFailed": "发送失败",
      "resume": "继续发送队列",
      "pause": "暂停发送队列",
      "clear": "清空队列",
      "dragSort": "拖动排序",
      "edit": "编辑",
      "retry": "重试",
      "skip": "跳过",
      "interruptAndSend": "打断并发送",
      "delete": "删除",
      "file": "文件",
      "noChatWarning": "请先发送一条消息创建对话，再使用队列功能",
      "queueFull": "队列已满（最多 {{max}} 条），请先发送或删除部分消息",
      "otherTabOwner": "当前标签页仅入队，发送由其他标签页完成"
    },
    "group": {
      "pinned": "置顶",
      "today": "今天",
      "week": "7天内",
      "month": "30天内",
      "older": "更早"
    },
    "sessionPanel": {
      "searchConversations": "搜索对话…",
      "noResults": "无匹配结果",
      "noConversations": "暂无对话",
      "loadingConversations": "加载中…"
    },
    "conversationHistory": "历史对话",
    "history": {
      "empty": "暂无聊天记录"
    },
    "sessionGroup": {
      "today": "今天",
      "recent": "近 7 天",
      "earlier": "更早"
    }
  },
  "security": {
    "parent": "设置",
    "security": "安全",
    "title": "安全",
    "description": "管理工具和技能的安全功能。",
    "toolGuardTitle": "工具防护",
    "toolGuardDescription": "配置工具调用的安全扫描。危险操作将在执行前需要你的明确批准。",
    "enabled": "启用工具防护",
    "enabledTooltip": "启用后，工具调用在执行前会被扫描是否包含危险模式",
    "sandboxEnabled": "启用沙箱执行",
    "sandboxEnabledTooltip": "启用后，无匹配规则的 shell 命令会在沙箱内静默执行；关闭后，此类命令将不经沙箱直接执行（无需审批）。无论开关如何，密钥文件读取与危险命令（如 rm -rf /、sudo）等仍会被拦截或要求审批。",
    "sandboxDegradedWarning": "沙箱已配置为开启，但当前未以管理员身份运行，沙箱本次会话不会生效。如需使用沙箱，请以管理员身份重新启动 QwenPaw。",
    "guardedTools": "受保护的工具",
    "guardedToolsTooltip": "检测到危险模式时需要审批的工具。留空则使用内置默认集合。",
    "guardedToolsPlaceholder": "选择工具或输入自定义工具名",
    "deniedTools": "禁止的工具",
    "deniedToolsTooltip": "始终被拒绝的工具，无需审批直接拦截",
    "deniedToolsPlaceholder": "选择要始终禁止的工具",
    "saveSuccess": "工具防护设置已保存",
    "saveFailed": "保存工具防护设置失败",
    "loadFailed": "加载工具防护设置失败",
    "rules": {
      "title": "检测规则",
      "description": "规则定义了触发安全警告的正则表达式模式。内置规则可以禁用；自定义规则可以添加、编辑或删除。",
      "id": "规则 ID",
      "severity": "严重程度",
      "descriptionCol": "描述",
      "source": "来源",
      "actions": "操作",
      "builtin": "内置",
      "custom": "自定义",
      "enable": "启用",
      "disable": "禁用",
      "edit": "编辑",
      "delete": "删除",
      "add": "添加规则",
      "addTitle": "添加自定义规则",
      "editTitle": "编辑自定义规则",
      "ruleId": "规则 ID",
      "ruleIdRequired": "规则 ID 不能为空",
      "duplicateId": "已存在相同 ID 的规则",
      "tools": "目标工具",
      "toolsPlaceholder": "留空匹配所有工具",
      "params": "目标参数",
      "paramsPlaceholder": "留空匹配所有参数",
      "severityLabel": "严重程度",
      "categoryLabel": "分类",
      "patterns": "正则模式",
      "patternsRequired": "至少需要一个正则模式",
      "patternsTooltip": "每行一个正则表达式，匹配工具参数值（不区分大小写）。",
      "excludePatterns": "排除模式",
      "excludePatternsTooltip": "每行一个正则表达式。如果匹配，则跳过该规则。",
      "descriptionLabel": "描述",
      "descriptionPlaceholder": "该规则检测什么？",
      "remediationLabel": "修复建议",
      "remediationPlaceholder": "触发规则时建议的操作",
      "preview": "预览",
      "previewTitle": "规则详情",
      "actionLabel": "触发行为",
      "actionApproval": "等待审批",
      "autoDeny": "自动拒绝",
      "autoDenyTooltip": "启用后，匹配此规则的工具调用将被自动拒绝，无需人工审批",
      "autoDenyEnable": "启用此规则的自动拒绝",
      "autoDenyDisable": "关闭此规则的自动拒绝",
      "allTools": "所有工具",
      "allParams": "所有参数",
      "descriptions": {
        "TOOL_CMD_CONTROL_CHARS": "检测包含不可打印控制字符的命令，可能绕过安全检查",
        "TOOL_CMD_DANGEROUS_MV": "检测可能意外移动或覆盖文件的 mv 命令",
        "TOOL_CMD_DANGEROUS_RM": "检测可能导致数据丢失的 rm 命令",
        "TOOL_CMD_DOS_FORK_BOMB": "检测经典 Bash Fork 炸弹和批量进程终止",
        "TOOL_CMD_FIND_DELETE": "检测可能导致数据丢失的 find -delete 命令",
        "TOOL_CMD_FS_DESTRUCTION": "检测低级别磁盘格式化或擦除命令",
        "TOOL_CMD_IFS_INJECTION": "检测使用 $IFS 变量绕过安全验证的命令",
        "TOOL_CMD_JQ_FILE_FLAGS": "检测使用标志位读取任意文件或执行外部代码的 jq 命令",
        "TOOL_CMD_JQ_SYSTEM": "检测包含 system() 函数可执行任意 Shell 命令的 jq 命令",
        "TOOL_CMD_OBFUSCATED_EXEC": "检测将 base64 编码字符串直接传递给 Shell 解释器执行的行为",
        "TOOL_CMD_PIPE_TO_SHELL": "检测通过 'curl | bash' 模式下载并立即执行远程载荷的行为",
        "TOOL_CMD_PRIVILEGE_ESCALATION": "检测使用 sudo、su、doas、pkexec 或 runas 的权限提升尝试",
        "TOOL_CMD_PROCESS_KILL": "检测可能终止关键进程的进程终止命令",
        "TOOL_CMD_PROC_ENVIRON": "检测访问 /proc/*/environ 可能泄露敏感环境变量的命令",
        "TOOL_CMD_REVERSE_SHELL": "检测建立反向 Shell 或未授权网络隧道的行为",
        "TOOL_CMD_SERVICE_RESTART": "检测可能中断系统服务的服务管理命令",
        "TOOL_CMD_SYSTEM_REBOOT": "检测将终止主机系统的系统重启或关机命令",
        "TOOL_CMD_SYSTEM_TAMPERING": "检测对定时任务、SSH 密钥或 sudo 权限的访问（包括读取和修改）",
        "TOOL_CMD_UNICODE_WHITESPACE": "检测包含可能导致解析不一致的 Unicode 空白字符的命令",
        "TOOL_CMD_UNSAFE_PERMISSIONS": "检测全局权限降级（chmod 777）或设置不可变标志的操作",
        "TOOL_CMD_ZSH_DANGEROUS": "检测使用 Zsh 特有内置命令可能绕过安全检查的命令"
      },
      "categories": {
        "command_injection": "命令注入",
        "code_execution": "代码执行",
        "data_exfiltration": "数据外泄",
        "path_traversal": "路径穿越",
        "sensitive_file_access": "敏感文件访问",
        "network_abuse": "网络滥用",
        "credential_exposure": "凭证泄露",
        "resource_abuse": "资源滥用",
        "privilege_escalation": "权限提升",
        "prompt_injection": "提示注入",
        "other": "其他"
      }
    },
    "shellEvasion": {
      "title": "Shell 逃逸检测",
      "description": "配置启用哪些 Shell 逃逸和混淆检测。这些检测能够发现试图绕过简单正则检测来隐藏恶意意图的技术手段。",
      "checks": {
        "command_substitution": {
          "name": "命令替换",
          "description": "检测 $()、反引号、进程替换等命令替换模式"
        },
        "obfuscated_flags": {
          "name": "混淆标志",
          "description": "检测 ANSI-C 引号、本地化引号和空引号标志混淆"
        },
        "backslash_escaped_whitespace": {
          "name": "反斜杠转义空白",
          "description": "检测可能改变命令解析的反斜杠转义空格/制表符"
        },
        "backslash_escaped_operators": {
          "name": "反斜杠转义操作符",
          "description": "检测 Shell 操作符 (;|&<>) 前的反斜杠，可隐藏命令结构"
        },
        "newlines": {
          "name": "隐藏换行符",
          "description": "检测可能分隔隐藏命令的换行符和回车符"
        },
        "comment_quote_desync": {
          "name": "注释引号失同步",
          "description": "检测 # 注释中的引号字符，可导致引号追踪失同步"
        },
        "quoted_newline": {
          "name": "引号内换行",
          "description": "检测引号字符串中的换行符后跟 # 行，可隐藏参数"
        }
      }
    },
    "fileGuard": {
      "title": "文件防护",
      "description": "保护敏感文件和目录，防止被 Agent 工具访问。添加的路径将在所有工具调用中被拦截。",
      "enableLabel": "启用文件防护",
      "path": "路径",
      "actions": "操作",
      "add": "添加",
      "inputPlaceholder": "输入文件或目录路径（如 ~/.ssh/ 或 /etc/passwd）",
      "empty": "未配置自定义敏感路径",
      "directory": "目录",
      "removeConfirm": "从保护列表中移除该路径？",
      "duplicate": "该路径已存在",
      "saveSuccess": "文件防护设置已保存",
      "saveFailed": "保存文件防护设置失败",
      "loadFailed": "加载文件防护设置失败",
      "allowPreviewOutsideWorkspace": "允许控制台预览工作区外文件",
      "allowPreviewOutsideWorkspaceDesc": "允许在控制台中预览工作区目录之外的文件，敏感文件防护仍然生效。"
    },
    "allowNoAuthHosts": {
      "title": "免认证主机白名单",
      "warningTitle": "安全警告",
      "warningDescription": "此列表中的 IP 地址可以无需认证访问 API 端点。默认情况下，本地主机（127.0.0.1 和 ::1）允许 CLI 访问。仅添加可信任的 IP 地址。警告：添加不受信任的 IP 会带来严重的安全风险。",
      "ipAddress": "IP 地址",
      "actions": "操作",
      "add": "添加",
      "inputPlaceholder": "输入 IP 地址（例如：192.168.1.100 或 ::1）",
      "empty": "未配置 IP 地址",
      "default": "默认",
      "removeConfirm": "从白名单中移除该 IP 地址？",
      "duplicate": "该 IP 地址已存在",
      "invalidIP": "无效的 IP 地址格式",
      "saveSuccess": "免认证主机白名单设置已保存",
      "saveFailed": "保存免认证主机白名单设置失败",
      "loadFailed": "加载免认证主机白名单设置失败"
    },
    "skillScanner": {
      "title": "技能扫描器",
      "description": "在启用或安装技能前，自动扫描安全威胁。不安全的技能可以被拦截或加入白名单。",
      "mode": "扫描模式",
      "modeTooltip": "控制扫描器如何处理不安全的技能：拦截、仅提醒或关闭",
      "modeBlock": "拦截",
      "modeWarn": "仅提醒",
      "modeOff": "关闭",
      "timeout": "扫描超时（秒）",
      "timeoutTooltip": "等待扫描完成的最长时间（5-300秒）",
      "saveSuccess": "技能扫描器设置已保存",
      "saveFailed": "保存技能扫描器设置失败",
      "scanAlerts": {
        "title": "扫描告警",
        "empty": "暂无安全告警",
        "clearAll": "清除全部",
        "clearConfirm": "确定清除所有扫描告警吗？",
        "skillName": "技能",
        "action": "动作",
        "actionBlocked": "已拦截",
        "actionWarned": "已提醒",
        "time": "时间",
        "actions": "操作",
        "allowSkill": "加入白名单",
        "remove": "删除",
        "viewFindings": "查看详情"
      },
      "whitelist": {
        "title": "白名单",
        "empty": "暂无白名单技能",
        "skillName": "技能",
        "addedAt": "添加时间",
        "contentHash": "内容哈希",
        "actions": "操作",
        "remove": "移除",
        "removeConfirm": "确定将此技能从白名单中移除？",
        "addSuccess": "技能已加入白名单",
        "removeSuccess": "技能已从白名单移除",
        "addFailed": "加入白名单失败",
        "removeFailed": "从白名单移除失败",
        "removeWillDisable": "移除后该技能将同时被禁用。",
        "removeAndDisabled": "技能已从白名单移除并已禁用"
      },
      "scanError": {
        "title": "检测到安全问题",
        "description": "发现以下安全问题：",
        "warnDescription": "发现安全问题，但技能仍已启用（仅提醒模式）：",
        "goToWhitelist": "前往白名单",
        "moreFindings": "另有 {{count}} 条未列出（完整列表见 设置 → 安全 → 技能扫描）。"
      }
    }
  },
  "login": {
    "title": "登录 QwenPaw",
    "registerTitle": "创建账户",
    "firstUserHint": "创建管理员账户以开始使用",
    "usernamePlaceholder": "用户名",
    "passwordPlaceholder": "密码",
    "usernameRequired": "请输入用户名",
    "passwordRequired": "请输入密码",
    "submit": "登录",
    "register": "注册",
    "failed": "登录失败，请检查您的凭据",
    "registerSuccess": "注册成功",
    "registerFailed": "注册失败",
    "authNotEnabled": "认证未启用",
    "logout": "退出登录",
    "logoutSuccess": "已成功退出",
    "sessionExpired": "会话已过期，请重新登录",
    "unauthorized": "未授权，请登录"
  },
  "account": {
    "title": "账户管理",
    "currentPassword": "当前密码",
    "currentPasswordRequired": "请输入当前密码",
    "newUsername": "新用户名",
    "newUsernamePlaceholder": "留空则保持不变",
    "newPassword": "新密码",
    "newPasswordPlaceholder": "留空则保持不变",
    "confirmPassword": "确认新密码",
    "confirmPasswordPlaceholder": "再次输入新密码",
    "passwordMismatch": "两次输入的密码不一致",
    "save": "保存更改",
    "updateSuccess": "账户更新成功",
    "updateFailed": "账户更新失败",
    "wrongPassword": "当前密码不正确",
    "nothingToUpdate": "请输入新用户名或新密码",
    "passwordEmpty": "密码不能为空白",
    "usernameEmpty": "用户名不能为空白"
  },
  "voiceTranscription": {
    "title": "语音转写",
    "description": "配置如何处理收到的音频和语音消息。",
    "loadFailed": "加载音频模式设置失败",
    "saveSuccess": "音频模式已保存",
    "saveFailed": "保存音频模式失败",
    "audioModeLabel": "音频模式",
    "audioModeDescription": "选择来自频道（Discord、Telegram 等）的语音消息在发送给模型之前如何处理。",
    "modeAuto": "自动（推荐）",
    "modeAutoDesc": "使用所选转写提供商将音频转写为文字后发送给模型。如果转写未启用或不可用，则显示文件上传占位消息。此模式下音频不会直接发送给模型。适用于所有模型。",
    "modeNative": "原生音频",
    "modeNativeDesc": "直接将音频文件发送给模型，不进行转写。这是唯一会将音频发送给模型的模式。仅适用于特定的音频模型（如 gpt-4o-audio），大多数模型不支持此模式。",
    "ffmpegReady": "ffmpeg 已安装。原生模式音频格式转换可用。",
    "ffmpegMissing": "ffmpeg 未安装。",
    "ffmpegMissingDesc": "原生音频模式需要 ffmpeg 来转换音频格式（如 .ogg 转 .wav）。请安装 ffmpeg 系统包以启用此模式。",
    "providerTypeLabel": "转写提供商",
    "providerTypeDescription": "选择转写后端。如果不需要语音转写，请选择「已禁用」。",
    "providerTypeDisabled": "已禁用",
    "providerTypeDisabledDesc": "不进行转写。语音消息将显示为文件上传占位消息。",
    "providerTypeWhisperApi": "Whisper API",
    "providerTypeWhisperApiDesc": "使用已配置提供商（如 OpenAI、Ollama）的 OpenAI 兼容 Whisper API 端点。",
    "providerTypeLocalWhisper": "本地 Whisper",
    "providerTypeLocalWhisperDesc": "使用本地安装的 openai-whisper Python 库进行转写。需要同时安装 ffmpeg 和 openai-whisper。",
    "localWhisperReady": "本地 Whisper 已就绪。ffmpeg 和 openai-whisper 均已安装。",
    "localWhisperMissing": "本地 Whisper 未就绪，缺少必要依赖。",
    "localWhisperMissingDesc": "ffmpeg: {{ffmpeg}} | openai-whisper: {{whisper}}。请安装缺少的依赖：ffmpeg（系统包）和 openai-whisper（uv pip install openai-whisper，或使用 [whisper] 额外依赖安装 QwenPaw）。",
    "providerLabel": "Whisper API 提供商",
    "providerDescription": "选择用于 Whisper API 音频转写的提供商。仅显示支持 Whisper 端点的提供商。",
    "providerPlaceholder": "选择提供商...",
    "noProvidersWarning": "未找到支持转写的提供商。请配置一个 OpenAI 提供商以启用语音转写。",
    "transcriptionInfoTitle": "转写工作原理",
    "transcriptionInfoDesc": "Whisper API 转写使用 OpenAI 兼容的 /v1/audio/transcriptions 端点。需要配置一个支持 Whisper 端点的提供商（如 OpenAI）。请在上方选择具体的提供商以启用转写。",
    "transcriptionInfoDescLocal": "本地 Whisper 转写直接在您的设备上运行 openai-whisper 库。需要同时安装 ffmpeg（用于音频解码）和 openai-whisper Python 包。无需 API Key 或网络连接。安装命令：uv pip install 'qwenpaw[whisper]'。"
  },
  "backup": {
    "title": "备份",
    "description": "备份和恢复智能体工作区及配置。",
    "create": "创建备份",
    "import": "导入",
    "export": "导出",
    "restore": "恢复",
    "delete": "删除",
    "batchDelete": "批量删除",
    "batchDeleteConfirm": "确定要删除 {{count}} 个备份吗？此操作不可恢复。",
    "deleteConfirm": "确定要删除此备份吗？此操作不可恢复。",
    "name": "名称",
    "createdAt": "创建时间",
    "scopeSummary": "备份范围",
    "descriptionLabel": "描述",
    "noBackups": "暂无备份。创建一个备份来保存当前配置。",
    "loadFailed": "加载备份列表失败",
    "createTitle": "创建备份",
    "backupMode": "备份模式",
    "fullBackup": "完整备份",
    "fullBackupDesc": "备份所有内容，包括所有智能体工作区、全局设置、技能池和密钥信息",
    "customBackup": "自定义备份",
    "partialBackup": "部分备份",
    "partialBackupDesc": "自定义选择要备份的内容",
    "nameRequired": "备份名称不能为空",
    "namePlaceholder": "输入备份名称",
    "descriptionPlaceholder": "可选的描述信息...",
    "scopeAgents": "智能体工作区",
    "scopeGlobalConfig": "全局设置",
    "scopeSkillPool": "技能池",
    "scopeSecrets": "密钥信息",
    "scopeSecretsHint": "包含模型供应商密钥（API Key）和环境变量等敏感信息",
    "securityNotice": "此备份可能包含敏感凭证信息。智能体工作区包含渠道凭证（如 bot token、app secret 等），模型供应商密钥包含 API Key。请勿将备份文件分享给他人。",
    "searchPlaceholder": "按名称或 ID 搜索备份...",
    "total": "共 {{count}} 条",
    "agentsPlaceholder": "请选择智能体工作区（留空表示全部）",
    "selectAll": "全选",
    "deselectAll": "取消全选",
    "createSuccess": "备份创建成功",
    "createFailed": "备份创建失败",
    "restoreTitle": "恢复备份",
    "restoreScope": "恢复范围",
    "restoreFullWarning": "整体恢复将完全替换当前实例的所有内容（包括所有智能体、全局配置、技能池和密钥），操作不可撤销。恢复期间相关功能不可用，恢复完成后请重启服务。",
    "agentGroupExisting": "已存在",
    "agentGroupNew": "新增",
    "agentExists": "已存在",
    "agentNew": "新增",
    "agentActionReplace": "替换已有",
    "agentActionAdd": "新增",
    "agentColumnName": "智能体",
    "agentColumnWorkspace": "工作目录",
    "agentTotal": "共 {{count}} 个智能体",
    "noAgentsInBackup": "备份中没有智能体工作区",
    "loadingAgents": "正在加载智能体列表...",
    "agentSearchPlaceholder": "按名称或 ID 搜索智能体...",
    "agentSearchTotal": "搜索到 {{count}} 个，共 {{total}} 个",
    "restoreCustomSummary": "已选 {{existing}} 个已存在 · {{added}} 个新增",
    "defaultWorkspaceDirUnused": "无新增智能体，不生效",
    "otherOptions": "其他选项",
    "defaultWorkspaceDirDefault": "<默认路径>/{{aid}}",
    "restoreWarningModify": "恢复操作会修改当前配置，此操作不可撤销。",
    "restoreWarningRestart": "恢复期间相关功能不可用，恢复完成后请重启服务。",
    "preRestoreBackupTitle": "创建恢复前备份",
    "preRestoreBackupContent": "恢复操作不可逆。是否先创建当前状态的备份？这样如果恢复出现问题，您可以回退到当前状态。",
    "preRestoreBackupYes": "是，先创建备份",
    "preRestoreBackupNo": "否，直接恢复",
    "preRestoreBackupDesc": "恢复前自动创建的备份",
    "preRestoreBackupFailed": "创建恢复前备份失败",
    "preRestoreBackupSuccess": "恢复前备份创建成功，ID：{{id}}",
    "creatingPreRestoreBackup": "正在创建恢复前备份...",
    "skipAndRestore": "跳过并继续恢复",
    "restoreConfirm": "我确认要恢复此备份",
    "restoreMode": "恢复模式",
    "restoreModeFull": "整体恢复",
    "restoreModeFullDesc": "完全替换当前实例的所有内容，包括所有智能体、全局配置、技能池和密钥",
    "restoreModeCustom": "自定义恢复",
    "restoreModeCustomDesc": "选择要恢复的内容，如部分智能体、配置等；当前已有但不在本次恢复范围内的其他智能体不会被移除",
    "restoreModeFullDisabled": "仅完整备份可用",
    "defaultWorkspaceDir": "智能体默认工作目录",
    "defaultWorkspaceDirPlaceholder": "留空时将使用 ~/.qwenpaw/workspaces",
    "defaultWorkspaceDirHint": "待恢复的智能体的工作路径不存在时，智能体将保存在 <默认路径>/<智能体ID> 下，存在时则使用智能体的原始工作路径。",
    "restoreStrategy": "恢复策略",
    "restoreStrategyPreserve": "保留本地安全和 MCP 配置",
    "restoreStrategyPreserveDesc": "保留当前实例的安全防护和 MCP 配置。",
    "restoreStrategyRestore": "从备份恢复这些设置",
    "restoreStrategyRestoreDesc": "使用备份中的安全和 MCP 配置。",
    "restoreSuccess": "备份恢复成功，请您重启服务。",
    "restoreSuccessPreserved": "备份恢复成功。已保留本地设置：{{keys}}。请重启服务。",
    "restoreSuccessWithBackup": "备份恢复成功，恢复前备份 ID：{{preRestoreId}}，请您重启服务。",
    "restoreFailed": "备份恢复失败",
    "restoreTargetBusy": "备份恢复失败：以下目录仍被占用。请关闭正在使用这些目录的浏览器或进程后重试；如果仍然被锁定，请重启系统后再试。",
    "detailLoadFailed": "备份详情加载失败，无法进行恢复操作",
    "trustLocalBanner": "本地备份 - 默认完整恢复",
    "trustForeignBanner": "导入的备份 - 默认保留本地安全和 MCP 配置",
    "trustLegacyBanner": "历史备份 - 恢复前需要确认信任",
    "trustForeignTitle": "信任此备份？",
    "trustLegacyTitle": "信任历史备份？",
    "unknownBackupName": "备份归档",
    "trustForeignDesc": "此备份不是由当前实例签名。仅在信任来源时继续；恢复时默认保留本地安全和 MCP 配置。",
    "trustLegacyDesc": "此旧版备份没有本地签名。仅在信任来源时继续；确认后会使用当前实例签名再恢复。",
    "deleteSuccess": "备份删除成功",
    "deleteFailed": "备份删除失败",
    "exportFailed": "导出备份失败",
    "exportWarningTitle": "敏感信息警告",
    "exportWarningContent": "此备份可能包含敏感凭证信息。智能体工作区包含渠道凭证（如 bot token、app secret 等），模型供应商密钥包含 API Key。请勿将备份文件分享给他人。",
    "exportConfirm": "确认导出",
    "importTitle": "导入备份",
    "importSuccess": "备份导入成功",
    "importFailed": "备份导入失败",
    "importConflictTitle": "备份已存在",
    "importConflictDesc": "导入的备份与系统中已有的备份 ID 相同，是否覆盖已有备份？",
    "importReplace": "覆盖",
    "agents": "{{count}} 个 Agent",
    "allAgents": "全部 Agent",
    "globalConfig": "全局设置",
    "skillPool": "技能池",
    "secrets": "密钥",
    "selected": "已选择 {{count}} 个",
    "fileCount": "{{count}} 个文件",
    "totalSize": "{{size}}",
    "progressStarting": "正在初始化备份...",
    "progressAgent": "正在备份第 {{index}} / {{total}} 个 Agent...",
    "progressSaving": "正在写入备份文件...",
    "progressDone": "备份完成",
    "localModelsNotice": "备份文件不包含本地模型文件。如需跨设备迁移，请在目标设备上重新下载所需的本地模型。"
  },
  "approval": {
    "title": "安全审批",
    "ownerAgent": "归属Agent",
    "executingAgent": "执行Agent",
    "tool": "工具",
    "severity": "严重性",
    "findings": "发现",
    "parameters": "参数",
    "approve": "批准",
    "deny": "拒绝",
    "source": "来源",
    "builtinSource": "内置",
    "subSession": "子Agent",
    "approved": "已批准工具调用",
    "denied": "已拒绝工具调用",
    "approveFailed": "批准失败",
    "denyFailed": "拒绝失败",
    "timeoutAutoDenied": "已超时，自动拒绝",
    "acknowledge": "我知道了",
    "approvePattern": "总是允许",
    "strictModeHint": "严格模式下无法总是允许",
    "approveExact": "仅本次",
    "approvalScope": "批准范围",
    "details": "详细信息"
  },
  "pluginManager": {
    "title": "插件管理",
    "description": "安装、管理和卸载插件，无需重启服务。",
    "installed": "已安装插件",
    "noPlugins": "暂无已安装插件",
    "installBtn": "安装插件",
    "publishBtn": "发布插件",
    "installTitle": "安装插件",
    "dropPrimary": "拖入文件夹或 ZIP 文件",
    "dropSecondary": "或点击选择 ZIP 文件",
    "orFromUrl": "或通过 URL 安装",
    "installFromUrl": "从 URL 安装",
    "urlPlaceholder": "https://example.com/plugin.zip",
    "zipOnly": "直接拖入文件时仅支持 ZIP，如需安装文件夹请直接拖入文件夹",
    "dropFailed": "读取拖入的文件夹失败",
    "restartHint": "部分插件（如 hook、monkey-patch 类型）安装或卸载后可能需要重启应用才能完全生效。",
    "installing": "安装中...",
    "installSuccess": "插件安装成功",
    "installFailed": "插件安装失败",
    "uninstall": "卸载",
    "uninstallConfirm": "确定要卸载插件 \"{{name}}\"？操作无法撤销。部分插件可能需要重启应用才能完全移除。",
    "uninstalling": "卸载中...",
    "uninstallSuccess": "插件卸载成功",
    "uninstallFailed": "插件卸载失败",
    "statusLoaded": "运行中",
    "statusUnloaded": "未加载",
    "type": "类型",
    "version": "版本",
    "author": "作者",
    "unknown": "未知",
    "loadFailed": "加载插件列表失败",
    "confirmTitle": "确认卸载",
    "officialTitle": "官方插件",
    "officialDesc": "从下载站获取已发布的插件，一键安装到本机。",
    "catalogRefresh": "刷新",
    "catalogEmpty": "暂无官方插件（请确认已发布到下载 CDN）",
    "catalogLoadFailed": "加载官方插件列表失败",
    "catalogInstall": "安装",
    "catalogReinstall": "重新安装",
    "catalogUpgrade": "可升级",
    "catalogUpgradeBtn": "升级",
    "catalogInstalled": "已安装",
    "catalogSha256": "SHA256",
    "kindBundle": "插件包",
    "kindTool": "工具",
    "filterByName": "按名称筛选",
    "filterByKind": "按标签筛选",
    "marketTitle": "插件市场",
    "marketEmpty": "暂无市场插件",
    "marketLoadFailed": "加载插件市场失败",
    "marketUnavailable": "插件市场正在维护中，请稍后再试",
    "marketSearch": "搜索插件...",
    "marketAll": "全部",
    "marketCategory": "按类别筛选",
    "marketSearchResult": "\"{{keyword}}\" 相关插件共搜索到 {{count}} 个结果",
    "marketDetails": "详情",
    "marketDownloads": "下载量",
    "marketDeveloper": "开发者",
    "marketSortLabel": "插件排序",
    "marketSortDownloads": "下载量最多",
    "marketSortUpdated": "最近更新",
    "marketSortFavorites": "收藏量最多",
    "compatWarningTitle": "兼容性警告",
    "compatWarningContent": "该插件标注适配 QwenPaw {{labels}}，而您当前的 QwenPaw 版本为 {{version}}。安装后可能出现错误，是否确认继续？",
    "compatWarningConfirm": "仍然安装"
  },
  "codingMode": {
    "title": "编程模式",
    "experimental": "实验性功能",
    "experimentalDesc": "编程模式将 QwenPaw 转变为一个轻量级 Web IDE，提供代码编辑器、文件树、Git 集成和 AI 辅助编程能力。",
    "experimentalNote": "该功能目前为实验性阶段，仍在持续开发中，部分功能可能受限或在后续版本中有所变动。",
    "confirmBtn": "确认",
    "enterTooltip": "进入编程模式",
    "exitTooltip": "退出编程模式",
    "btnCode": "代码",
    "btnChat": "聊天",
    "selectProject": "选择编程项目",
    "selectProjectDesc": "选择一个项目开始工作，或使用默认工作区",
    "tabWorkspace": "默认工作区",
    "tabClone": "克隆仓库",
    "tabLocal": "导入本地项目",
    "tabNew": "新建项目",
    "workspaceDesc": "使用当前 Agent 的工作区目录",
    "cloneUrl": "Git 仓库地址",
    "cloneUrlPlaceholder": "https://github.com/user/repo.git",
    "cloneName": "项目名称（可选）",
    "cloneNamePlaceholder": "留空则自动从 URL 获取",
    "cloneBtn": "开始克隆",
    "cloning": "克隆中...",
    "localPath": "本地目录路径",
    "localPathPlaceholder": "/Users/yourname/my-project",
    "localPathHint": "输入本地项目的绝对路径",
    "openBtn": "导入",
    "newName": "项目名称",
    "newNamePlaceholder": "my-project",
    "createBtn": "创建项目",
    "switchProject": "切换项目",
    "currentProject": "当前项目",
    "resetToWorkspace": "重置为默认工作区",
    "dropPrimary": "拖入文件夹，或点击浏览",
    "dropSecondary": "支持从 Finder 直接拖入",
    "pathHint": "请输入完整的绝对路径（以 / 或 ~ 开头）",
    "importing": "导入中...",
    "dropFailed": "读取文件夹失败",
    "workingDir": "工作区目录",
    "importCopyNote": "文件夹将被复制到 coding_projects/ 目录下（不会修改原始文件）",
    "importCopyDesc": "导入会将文件夹复制为副本，Agent 在副本上工作，不会修改原始文件。如需直接操作原目录，请使用「打开目录」",
    "tabOpenDir": "打开目录",
    "openDirDesc": "直接打开本机上已有的目录，不会复制任何文件",
    "openDirBtn": "打开此目录",
    "openDirLoading": "加载中...",
    "openDirEmpty": "此目录下没有子目录",
    "openDirHome": "主目录",
    "openDirRefresh": "刷新",
    "openDirHiddenFolders": "隐藏文件夹"
  },
  "market": {
    "searchPlaceholder": "在多平台中搜索技能",
    "categoryAll": "全部",
    "categoryPlaceholder": "搜索分类",
    "searchResult": "\"{{keyword}}\" 相关技能共搜索到 {{count}} 个结果",
    "providerUnavailable": "数据源不可用",
    "noResults": "没有找到结果",
    "startTyping": "在上方输入关键字以搜索技能市场",
    "browseHint": "选择分类或输入关键词以浏览 {{providers}} 中的技能",
    "noDescription": "暂无描述",
    "browseMarket": "浏览市场",
    "installQueue": "安装队列",
    "clearCompleted": "清空",
    "retry": "重试",
    "status": {
      "queued": "排队中",
      "installing": "安装中",
      "completed": "已完成",
      "failed": "失败",
      "cancelled": "已取消"
    },
    "loadMore": "加载更多",
    "noMoreResults": "没有更多了",
    "detail": {
      "title": "技能详情",
      "version": "版本",
      "author": "作者",
      "sourceUrl": "安装地址",
      "slug": "标识",
      "missing": "—"
    },
    "stats": {
      "downloads": "下载量",
      "stars": "星标",
      "installs": "安装量",
      "likes": "点赞",
      "views": "浏览量",
      "category": "分类",
      "updatedAt": "更新时间"
    },
    "queueMsg": {
      "timedOut": "安装超时",
      "failedPrefix": "失败：{{msg}}"
    }
  },
  "startup": {
    "starting": "正在启动后端服务...",
    "checking": "正在连接后端...",
    "error": "后端服务启动失败。",
    "errorHint": "无法启动后端进程，请检查应用日志了解详情。",
    "errorDetails": "显示错误详情",
    "timeout": "后端服务在 {{seconds}} 秒内未能启动。",
    "timeoutHint": "后端启动失败，请重试，或检查应用日志了解详情。",
    "retry": "重试"
  },
  "tool": {
    "readFile": "阅读 {{file}}",
    "readFileDefault": "阅读 文件",
    "writeFile": "创建 {{file}}",
    "writeFileDefault": "创建 文件",
    "editFile": "编辑 {{file}}",
    "editFileDefault": "编辑 文件",
    "appendFile": "追加 {{file}}",
    "appendFileDefault": "追加 文件",
    "grepSearch": "文本匹配 {{pattern}}",
    "grepSearchDefault": "文本匹配",
    "globSearch": "文件匹配 {{pattern}}",
    "globSearchDefault": "文件匹配",
    "viewImage": "查看图片 {{file}}",
    "viewImageDefault": "查看图片",
    "viewVideo": "查看视频 {{file}}",
    "viewVideoDefault": "查看视频",
    "desktopScreenshot": "截图 桌面",
    "sendFile": "发送 {{file}}",
    "sendFileDefault": "发送 文件",
    "browserUse": "浏览 {{detail}}",
    "browserNavigate": "浏览 打开 {{url}}",
    "browserNavigateDefault": "浏览 打开页面",
    "browserClick": "浏览 点击",
    "browserType": "浏览 输入",
    "browserSnapshot": "浏览 快照",
    "browserScroll": "浏览 滚动",
    "getCurrentTime": "获取 当前时间",
    "setTimezone": "设置 {{timezone}}",
    "getTokenUsage": "查询 Token 用量",
    "memorySearch": "搜索记忆 {{query}}",
    "memorySearchDefault": "搜索 记忆",
    "listAgents": "列出 代理",
    "chatWithAgent": "对话 {{agent}}",
    "chatWithAgentDefault": "对话 代理",
    "submitToAgent": "提交 {{agent}}{{task}}",
    "submitToAgentDefault": "提交 任务",
    "checkAgentTask": "检查 {{agent}} #{{taskId}}",
    "checkAgentTaskAgent": "检查 {{agent}}",
    "checkAgentTaskDefault": "检查 任务",
    "delegateExternalAgent": "委派 {{runner}}",
    "delegateExternalAgentDefault": "委派 外部代理",
    "materializeSkill": "创建 {{skill}}",
    "materializeSkillDefault": "创建 技能",
    "shell": "执行 {{command}}",
    "shellDefault": "执行 命令",
    "formatTable": {
      "file": "文件",
      "lineNumber": "行号",
      "score": "分数",
      "summary": "摘要",
      "name": "名称",
      "id": "ID",
      "description": "描述",
      "status": "状态"
    },
    "loading": "处理中...",
    "inputProgress": "已接收 {{count}} 个字符",
    "rawInputPreview": "实时原始参数（最后 4096 个字符）",
    "browserAction": {
      "startHeaded": "启动浏览器(有界面)",
      "start": "启动浏览器",
      "stop": "关闭浏览器",
      "open": "打开 {{url}}",
      "openDefault": "打开页面",
      "navigate": "导航 {{url}}",
      "navigateDefault": "导航页面",
      "navigateBack": "返回上一页",
      "click": "点击 {{selector}}",
      "clickDefault": "点击元素",
      "type": "输入 {{text}}",
      "typeDefault": "输入文本",
      "snapshot": "获取快照",
      "screenshot": "截图 {{path}}",
      "screenshotDefault": "截图",
      "eval": "执行 {{code}}",
      "evalDefault": "执行代码",
      "runCode": "运行 {{code}}",
      "runCodeDefault": "运行代码",
      "closePage": "关闭页面",
      "tabs": "标签页 {{action}}",
      "tabsDefault": "管理标签页",
      "fillForm": "填写表单",
      "fileUpload": "上传 {{filename}}",
      "fileUploadDefault": "上传文件",
      "fileDownload": "下载 {{target}}",
      "fileDownloadDefault": "下载文件",
      "pressKey": "按键 {{key}}",
      "pressKeyDefault": "按键",
      "hover": "悬停 {{selector}}",
      "hoverDefault": "悬停元素",
      "drag": "拖拽",
      "selectOption": "选择选项",
      "waitFor": "等待 {{target}}",
      "waitForDefault": "等待元素",
      "resize": "调整大小 {{w}}x{{h}}",
      "resizeDefault": "调整窗口大小",
      "pdf": "导出PDF {{path}}",
      "pdfDefault": "导出PDF",
      "install": "安装",
      "batch": "批量操作"
    },
    "lineBadge": {
      "lines": "{{count}}行",
      "addLines": "+{{count}}行",
      "delLines": "-{{count}}行",
      "matches": "{{count}}匹配",
      "files": "{{count}}文件"
    },
    "inlineResult": {
      "taskId": "任务 #{{id}}",
      "submitted": "已提交"
    },
    "execute": "执行 {{tool}}",
    "executeDefault": "执行 工具"
  },
  "preview": {
    "error": {
      "SENSITIVE_FILE_BLOCKED": "该文件被文件防护拦截（敏感文件保护）。",
      "OUTSIDE_WORKSPACE": "该文件位于工作区范围之外。请在 设置 → 安全 → 文件防护 中启用「允许控制台预览工作区外文件」。",
      "FORBIDDEN": "访问被拒绝：没有预览此文件的权限。",
      "NOT_FOUND": "文件未找到，可能已被移动或删除。如果使用了相对路径，请尝试使用绝对路径。",
      "LOAD_FAILED": "加载文件预览失败。",
      "LOAD_FAILED_DETAIL": "加载文件预览失败：{{detail}}"
    }
  },
  "loop": {
    "budget": {
      "low": "低",
      "medium": "中",
      "high": "高"
    },
    "status": {
      "pause": "暂停",
      "resume": "继续",
      "stop": "停止"
    },
    "gotoSettings": "智能体 Loop 设置",
    "selectorTitle": "Loop 模式",
    "selectorHint": "选择智能体接下来的工作方式",
    "selectorAria": "选择 Loop 模式",
    "builtInModes": "内置",
    "customModes": "自定义与插件",
    "starting": "正在启动",
    "running": "运行中",
    "awaiting_user": "等待你的回复",
    "activePersistentDescription": "该模式会在当前会话中持续生效，直到任务结束或重新开始会话。",
    "activeCustomDescription": "该自定义模式会持续生效，直到使用 /mode off、/clear 或 /new。",
    "loadError": "部分 Loop 模式加载失败。",
    "retry": "重试",
    "modes": {
      "default": {
        "name": "默认",
        "description": "标准的受控智能体 Loop。"
      },
      "goal": {
        "name": "目标",
        "description": "持续推进一个具体且可验证的目标。"
      },
      "mission": {
        "name": "任务",
        "description": "运行结构化、可持续的多步骤任务。"
      }
    }
  }
}
