// SPDX-License-Identifier: MIT
// Copyright (c) 2025-2026 SenWeaverCoding
// Licensed under the MIT License.

import type { TranslationKey } from './en'

export const zh: Record<TranslationKey, string> = {

  'common.cancel': '取消',
  'common.close': '关闭',
  'common.save': '保存',
  'common.saving': '保存中...',

  'settings.userGroup.title': '用户与内网',
  'settings.userGroup.description': '设置你的昵称和邮箱，查看用户 ID 与当前内网地址，并控制内网发现开关。',
  'settings.userGroup.nickname': '昵称',
  'settings.userGroup.email': '邮箱',
  'settings.userGroup.userId': '用户 ID',
  'settings.userGroup.localIp': '内网地址',
  'settings.userGroup.discoveryToggle': '内网发现',
  'settings.userGroup.discoveryEnabledHint': '已在局域网中可被发现，可与同网用户聊天和传输文件。',
  'settings.userGroup.discoveryDisabledHint': '开启后可发现同一网络中的用户并互相发送消息。',

  'lan.title': '联系人',
  'lan.online': '在线',
  'lan.noPeers': '尚未在你的网络中发现其他用户。',
  'lan.recentChats': '最近聊天',
  'lan.transfers': '传输',
  'lan.settings': '打开设置',
  'lan.discoveryOff': '内网发现已关闭。',
  'lan.enableDiscovery': '开启',
  'lan.offline': '离线',
  'lan.offlineSendDisabled': '对方不在线',
  'lan.noMessages': '还没有消息，打个招呼吧！',
  'lan.fileLabel': '文件',
  'lan.sendFile': '发送文件',
  'lan.sendFolder': '发送文件夹',
  'lan.messagePlaceholder': '输入消息...',
  'lan.send': '发送',
  'lan.pathPrompt': '请输入要发送的文件或文件夹的绝对路径',
  'lan.saveToLocal': '保存到本地',
  'lan.saving': '保存中…',
  'lan.saved': '已保存',
  'lan.saveFailed': '保存失败',
  'lan.saveDestPrompt': '请输入要保存到的本地目录绝对路径',
  'lan.imageLoading': '图片加载中…',
  'lan.imageFailed': '图片加载失败',
  'lanShare.title': '个人共享',
  'lanShare.subtitle': '把文件或文件夹共享给内网所有用户',
  'lanShare.network': '内网共享',
  'lanShare.mine': '我的共享',
  'lanShare.shareFile': '共享文件',
  'lanShare.shareFolder': '共享文件夹',
  'lanShare.unshare': '取消共享',
  'lanShare.download': '下载',
  'lanShare.requesting': '请求中…',
  'lanShare.received': '已接收',
  'lanShare.emptyMine': '你还没有共享任何文件或文件夹。',
  'lanShare.emptyNetwork': '当前内网还没有共享内容。',
  'lanShare.sharedToast': '已共享「{name}」到内网',
  'lanGroup.title': '项目群组',
  'lanGroup.subtitle': '在局域网内协作',
  'lanGroup.empty': '还没有项目群组，创建一个开始协作吧。',
  'lanGroup.create': '新建群组',
  'lanGroup.createTitle': '创建项目群组',
  'lanGroup.namePlaceholder': '群组名称',
  'lanGroup.descPlaceholder': '描述（可选）',
  'lanGroup.confirm': '确定',
  'lanGroup.cancel': '取消',
  'lanGroup.tabChat': '群聊',
  'lanGroup.tabDocuments': '文档',
  'lanGroup.tabBoard': '看板',
  'lanGroup.tabTimeline': '时间线',
  'lanGroup.tabMembers': '成员',
  'lanGroup.progress': '进度',
  'lanGroup.members': '名成员',
  'lanGroup.roleOwner': '项目经理',
  'lanGroup.roleManager': '管理员',
  'lanGroup.roleMember': '成员',
  'lanGroup.roleViewer': '只读',
  'lanGroup.invite': '邀请',
  'lanGroup.inviteHint': '邀请一位在线用户加入群组',
  'lanGroup.noOnlinePeers': '当前没有可邀请的在线用户。',
  'lanGroup.changeRole': '修改角色',
  'lanGroup.remove': '移除',
  'lanGroup.leave': '退出群组',
  'lanGroup.leaveConfirm': '确定退出该项目群组吗？',
  'lanGroup.you': '我',
  'lanGroup.offline': '离线',
  'lanGroup.upload': '上传',
  'lanGroup.uploadFile': '上传文件',
  'lanGroup.uploadFolder': '上传文件夹',
  'lanGroup.selectPhase': '阶段',
  'lanGroup.uncategorized': '未分类',
  'lanGroup.download': '下载',
  'lanGroup.downloading': '请求中…',
  'lanGroup.save': '保存到本地',
  'lanGroup.available': '已就绪',
  'lanGroup.notDownloaded': '未下载',
  'lanGroup.version': 'v',
  'lanGroup.noDocuments': '该阶段还没有文档。',
  'lanGroup.addPhase': '添加阶段',
  'lanGroup.phaseName': '阶段名称',
  'lanGroup.removePhase': '删除阶段',
  'lanGroup.addTask': '添加任务',
  'lanGroup.taskTitle': '任务标题',
  'lanGroup.taskDescription': '描述',
  'lanGroup.assignee': '负责人',
  'lanGroup.dueDate': '截止日期',
  'lanGroup.priority': '优先级',
  'lanGroup.status': '状态',
  'lanGroup.noTasks': '还没有任务。',
  'lanGroup.unassigned': '未分配',
  'lanGroup.statusTodo': '待办',
  'lanGroup.statusInProgress': '进行中',
  'lanGroup.statusDone': '已完成',
  'lanGroup.statusBlocked': '受阻',
  'lanGroup.phaseNotStarted': '未开始',
  'lanGroup.phaseInProgress': '进行中',
  'lanGroup.phaseDone': '已完成',
  'lanGroup.phaseBlocked': '受阻',
  'lanGroup.priorityLow': '低',
  'lanGroup.priorityMedium': '中',
  'lanGroup.priorityHigh': '高',
  'lanGroup.priorityUrgent': '紧急',
  'lanGroup.kindTask': '任务',
  'lanGroup.kindMilestone': '里程碑',
  'lanGroup.phaseRequirements': '需求分析',
  'lanGroup.phaseDesign': '设计',
  'lanGroup.phaseDevelopment': '开发',
  'lanGroup.phaseTesting': '测试',
  'lanGroup.phaseDeployment': '部署',
  'lanGroup.phaseMaintenance': '运维',
  'lanGroup.messagePlaceholder': '给群组发消息…',
  'lanGroup.send': '发送',
  'lanGroup.noMessages': '还没有消息，打个招呼吧！',
  'lanGroup.sharedDocument': '分享了一个文档',
  'lanGroup.imageLoading': '图片加载中…',
  'lanGroup.imageFailed': '图片加载失败',
  'lanGroup.pendingUploadTitle': '上传到项目群组',
  'lanGroup.pendingUploadHint': '为该文件选择群组和阶段',
  'lanGroup.noPhases': '尚未定义阶段。',
  'lanGroup.timelineEmpty': '没有可展示的计划任务。',
  'lanGroup.deleteDoc': '删除该文档？',
  'lanGroup.deleteTask': '删除该任务？',
  'lanGroup.uploadToGroup': '上传到项目群组',
  'common.delete': '删除',
  'common.edit': '编辑',
  'common.add': '添加',
  'common.run': '运行',
  'common.running': '运行中',
  'common.send': '发送',
  'common.stop': '停止',
  'common.rename': '重命名',
  'common.retry': '重试',
  'common.reload': '重新加载',
  'common.refresh': '刷新',
  'common.loading': '加载中...',
  'common.select': '选择',
  'common.enable': '启用',
  'common.disable': '禁用',
  'common.active': '已激活',
  'common.expand': '展开',
  'common.collapse': '收起',

  'sidebar.newSession': '新建智能体',
  'sidebar.scheduled': '定时任务',
  'sidebar.automations': '自动任务',
  'sidebar.settings': '设置',
  'sidebar.searchPlaceholder': '搜索会话...',
  'sidebar.noSessions': '暂无会话',
  'sidebar.noMatching': '没有匹配的会话',
  'sidebar.sessionListFailed': '会话列表加载失败',
  'sidebar.missingDir': '目录缺失',
  'sidebar.confirmDelete': '确定要删除这个会话吗？此操作不可撤销。',
  'sidebar.untitled': '新智能体',
  'sidebar.deleteAria': '删除会话',
  'sidebar.deleteWorkspaceAria': '删除工作区目录',
  'sidebar.newSessionInWorkspaceAria': '在此工作区目录新建智能体',
  'sidebar.deleteWorkspaceTitle': '删除工作区目录',
  'sidebar.confirmDeleteWorkspace': '确定要删除工作区 "{dir}" 下的全部 {count} 个会话吗？此操作不可撤销。',
  'sidebar.confirmDeleteWorkspaceRunning': '工作区 "{dir}" 下有 {running} 个会话的助手正在运行，删除将停止这些助手并永久删除该目录下全部 {count} 个会话数据。此操作不可撤销。',
  'sidebar.allProjects': '所有项目',
  'sidebar.other': '其他',
  'sidebar.collapse': '折叠侧边栏',
  'sidebar.expand': '展开侧边栏',
  'sidebar.expandWorkspace': '展开工作区',
  'sidebar.collapseWorkspace': '收起工作区',
  'sidebar.showMore': '再加载 {count} 条',
  'sidebar.showMoreWorkspaces': '再加载 {count} 个工作区',
  'sidebar.browserPanel': '内置浏览器',

  'browser.panel.title': '内置浏览器',
  'browser.panel.collapse': '收起浏览器',
  'browser.panel.close': '关闭',
  'browser.panel.empty': '正在加载浏览器…',
  'browser.panel.empty.title': '内置浏览器',
  'browser.panel.empty.hint': '在上方输入网址，或让助手通过浏览器进行操作',
  'browser.panel.urlPlaceholder': '输入网址或搜索…',
  'browser.panel.back': '后退',
  'browser.panel.forward': '前进',
  'browser.panel.reload': '刷新',
  'browser.panel.pickElement': '选择元素',
  'browser.panel.consoleShow': '显示控制台',
  'browser.panel.consoleHide': '隐藏控制台',
  'browser.panel.consoleTitle': '控制台',
  'browser.panel.consoleEmpty': '尚无控制台输出',
  'browser.panel.consoleClear': '清空',
  'browser.panel.inspectorShow': '显示 CSS 检查器',
  'browser.panel.inspectorHide': '隐藏 CSS 检查器',
  'browser.panel.inspectorTitle': 'CSS 检查器',
  'browser.panel.inspectorEmpty': '点击页面元素以检查计算样式',
  'browser.panel.more': '更多',
  'browser.panel.menu.screenshot': '截屏',
  'browser.panel.menu.areaScreenshot': '区域截屏',
  'browser.panel.menu.hardReload': '硬刷新',
  'browser.panel.menu.copyUrl': '复制当前网址',
  'browser.panel.menu.zoom': '缩放',
  'browser.panel.menu.zoomIn': '放大',
  'browser.panel.menu.zoomOut': '缩小',
  'browser.panel.menu.zoomReset': '重置缩放',
  'browser.panel.menu.clearHistory': '清除浏览记录',
  'browser.panel.menu.clearCookies': '清除 Cookies',
  'browser.panel.menu.clearCache': '清除缓存',
  'browser.panel.driver.title': '智能体操作记录',
  'browser.panel.driver.show': '显示智能体操作',
  'browser.panel.driver.hide': '隐藏智能体操作',
  'browser.panel.driver.empty': '尚未有智能体动作。',
  'browser.panel.driver.clear': '清空',
  'browser.panel.driver.live': '实时',
  'browser.panel.tabs.new': '新建标签页',
  'browser.panel.tabs.close': '关闭标签页',
  'browser.panel.tabs.untitled': '新标签页',
  'browser.panel.tabs.activate': '切换到此标签页',
  'browser.panel.tabs.agentActive': '助手正在此标签页操作',
  'browser.panel.toast.screenshotSaved': '截图已保存',
  'browser.panel.toast.screenshotCopied': '截图已复制到剪贴板',
  'browser.panel.toast.screenshotFailed': '截图失败',
  'browser.panel.toast.actionFailed': '浏览器操作失败：{action}',
  'browser.panel.action.navigate': '导航',
  'browser.panel.action.open': '打开浏览器',
  'browser.panel.action.toggle': '切换浏览器',
  'browser.panel.actor.user': '用户',
  'browser.panel.actor.agent': '助手',
  'browser.panel.cooperate.title': '共驾时间线',
  'browser.panel.cooperate.empty': '尚无用户或助手动作。',
  'browser.panel.cooperate.agentBubble': '助手 {kind}',
  'browser.panel.splitter.dragHorizontal': '拖动调整 控制台 / 检查器 高度',

  'rightSidebar.title': '工作区',
  'rightSidebar.toggleOpen': '打开文件浏览器',
  'rightSidebar.toggleClose': '关闭文件浏览器',
  'rightSidebar.empty': '当前会话暂无工作区目录',
  'rightSidebar.loading': '正在加载工作区文件...',
  'rightSidebar.refresh': '刷新',
  'files.refresh': '刷新',
  'files.newFile': '新建文件',
  'files.newFolder': '新建文件夹',
  'files.rename': '重命名',
  'files.delete': '删除',
  'files.deleteConfirm': '确定删除"{name}"吗？此操作不可撤销。',
  'files.deleteTitle': '删除项目',
  'files.deleteDescriptionDir': '该文件夹及其全部内容将从工作区移除。',
  'files.deleteDescriptionFile': '该文件将从工作区移除。',
  'files.deleteToTrashHint': '在支持的平台上会移动到系统回收站，通常可从那里恢复。',
  'files.upload': '上传',
  'files.searchPlaceholder': '按名称搜索文件...',
  'files.unsavedChanges': '有未保存的更改',
  'files.confirmDiscard': '放弃"{name}"的未保存更改吗？',
  'files.saveSuccess': '已保存',
  'files.saveError': '保存失败: {message}',
  'files.binaryNotPreviewable': '无法预览二进制文件',
  'files.preview.image': '图片',
  'files.preview.video': '视频',
  'files.preview.audio': '音频',
  'files.preview.pdf': 'PDF',
  'files.preview.binary': '二进制',
  'files.preview.zoomIn': '放大',
  'files.preview.zoomOut': '缩小',
  'files.preview.actualSize': '实际尺寸 (100%)',
  'files.preview.fit': '适应窗口',
  'files.modifiedAgo': '修改于 {time}',
  'files.outsideWorkspace': '路径超出工作区范围',
  'files.workspaceMissing': '工作区目录缺失或无法访问',
  'files.openFile': '打开',
  'files.empty': '此目录为空',
  'files.searchEmpty': '没有匹配的结果',
  'files.searchHint': '至少输入 1 个字符以开始搜索',
  'files.noFileSelected': '选择一个文件开始编辑',
  'files.editorLoading': '编辑器加载中...',
  'files.editorCrashed': '编辑器加载失败',
  'files.editorReload': '重新加载',
  'files.errorLoading': '加载文件失败: {message}',
  'files.errorLoadingTree': '加载目录失败: {message}',
  'files.uploadError': '上传失败: {message}',
  'files.uploadSuccess': '已上传 {count} 个文件',
  'files.confirmDelete': '删除',
  'files.dropToUpload': '拖动文件到此处上传',
  'files.dropTargetInvalid': '此处不可放置',
  'files.namePlaceholder': '名称...',
  'files.tab.close': '关闭',
  'files.tab.closeOthers': '关闭其他',
  'files.tab.closeAll': '全部关闭',
  'files.tab.aiBadge': 'AI 已修改',
  'files.tab.externalBadge': '在外部被修改',
  'files.outline.title': '大纲',
  'files.outline.empty': '当前文件没有符号',
  'files.outline.loading': '正在加载大纲...',
  'files.outline.unavailable': '当前语言未启用 LSP，暂不显示大纲',
  'files.problems.title': '问题',
  'files.problems.empty': '已打开文件中没有问题',
  'files.problems.errors': '{count} 个错误',
  'files.problems.warnings': '{count} 个警告',
  'files.problems.errorsOne': '1 个错误',
  'files.problems.warningsOne': '1 个警告',
  'files.problems.severityError': '错误',
  'files.problems.severityWarning': '警告',
  'files.problems.severityInfo': '信息',
  'files.problems.severityHint': '提示',
  'files.problems.severity.error': '错误',
  'files.problems.severity.warning': '警告',
  'files.problems.severity.info': '信息',
  'files.problems.severity.hint': '提示',
  'files.problems.scope.open': '已打开',
  'files.problems.scope.workspace': '工作区',
  'files.problems.openFile': '跳转到源代码',
  'files.statusBar.problems': '问题',
  'files.statusBar.problemsTooltip': '已打开文件中的错误 / 警告数量',
  'files.statusBar.lineCol': '行 {line}，列 {column}',
  'files.statusBar.indent': '缩进',
  'files.statusBar.encoding': '编码',
  'files.statusBar.language': '语言',
  'files.statusBar.lspReady': 'LSP 就绪',
  'files.statusBar.lspStarting': 'LSP 启动中',
  'files.statusBar.lspFailed': 'LSP 失败',
  'files.statusBar.lspIdle': 'LSP 空闲',
  'files.statusBar.lspOff': 'LSP 已停用',
  'editor.unsavedClose.title': '是否保存更改？',
  'editor.unsavedClose.body': '文件 {name} 中有未保存的更改，关闭前要保存吗？',
  'editor.unsavedClose.save': '保存',
  'editor.unsavedClose.discard': '不保存',
  'editor.unsavedClose.cancel': '取消',
  'debugReport.techDoc.screenshots': '截图',
  'debugReport.report.browserTrace': '浏览器调用轨迹',
  'finder.empty': '无匹配结果',
  'files.search.kindName': '名称',
  'files.search.kindContent': '内容',
  'finder.quickOpen.title': '打开文件',
  'finder.quickOpen.placeholder': '输入文件名以打开',
  'finder.quickOpen.empty': '输入字符即可在工作区中模糊匹配文件',
  'finder.searchInFiles.title': '在文件中搜索',
  'finder.searchInFiles.placeholder': '输入要在文件中搜索的文本',
  'finder.searchInFiles.empty': '输入字符即可搜索文件内容（优先使用 ripgrep）',
  'finder.workspaceSymbol.title': '跳转到工作区符号',
  'finder.workspaceSymbol.placeholder': '输入符号名',
  'finder.workspaceSymbol.empty': '输入字符即可通过 LSP 查询工作区符号',
  'finder.workspaceSymbol.unavailable': '当前没有可用的 LSP 服务器用于工作区符号查询',
  'files.collapseAll': '全部折叠',
  'files.filterPlaceholder': '过滤当前视图...',
  'files.filterClear': '清空过滤',
  'files.filterEmpty': '没有匹配的可见节点',
  'files.tree.copyMarkdown': '复制为 Markdown 引用块',
  'files.tree.copyMarkdownDone': '已复制为 Markdown 代码块',
  'files.tree.copyMarkdownFailed': '复制 Markdown 失败',
  'workspace.copy': '复制',
  'workspace.cut': '剪切',
  'workspace.paste': '粘贴',
  'workspace.copied': '已复制「{name}」',
  'workspace.cutToast': '已剪切「{name}」',
  'workspace.copying': '复制「{name}」到 {dir} {percent}%',
  'workspace.copyCancel': '取消复制',
  'workspace.copyFailed': '复制失败：{message}',
  'workspace.moveFailed': '移动失败：{message}',
  'workspace.moveIntoSelf': '无法将文件夹移动到其自身内部',
  'editor.action.copyAsMarkdown': '复制为 Markdown 引用块',
  'lsp.preferences.title': '编辑器功能',
  'lsp.preferences.inlayHints': '内联提示',
  'lsp.preferences.inlayHintsDescription': '在代码中显示语言服务返回的类型与参数提示。',
  'lsp.preferences.formatOnSave': '保存时格式化',
  'lsp.preferences.formatOnSaveDescription': '保存前调用语言服务自动格式化当前文件。',
  'lsp.preferences.hoverDelay': '悬浮提示延迟',
  'lsp.preferences.hoverDelayDescription': '鼠标停留多少毫秒后显示悬浮提示。',
  'lsp.preferences.saveSuccess': '设置已保存',
  'lsp.preferences.saveFailed': '设置保存失败：{message}',
  'lsp.codeAction.applied': '已对 {count} 个文件应用快速修复',
  'lsp.codeAction.partialFailure': '以下文件未能应用变更：{files}',
  'lsp.codeAction.commandFailed': '代码动作执行失败：{message}',
  'lsp.codeAction.skippedUndo': '{count} 个文件跳过了 undo 栈（关闭不保存可还原）',
  'codeViewer.showNext': '继续加载 {count} 行',
  'codeViewer.showAll': '全部加载（剩余 {count} 行）',
  'codeViewer.truncated': '已显示 {shown} / {total} 行',
  'codeViewer.showAllConfirm.title': '加载完整文件？',
  'codeViewer.showAllConfirm.body': '将一次性渲染 {total} 行，可能导致编辑器卡顿，是否继续？',
  'codeViewer.showAllConfirm.confirm': '全部加载',
  'codeViewer.showAllConfirm.cancel': '取消',
  'files.aiModifiedToast': 'AI 修改了 {count} 行',
  'files.aiModifiedToastViewDiff': '查看差异',
  'files.diffMode.title': 'AI 改动 vs. 旧内容',
  'files.diffMode.dismiss': '关闭对照',
  'files.externalChanged': '文件已在编辑器外被修改，请重新加载以查看最新内容。',
  'files.externalChangedReload': '重新加载',
  'files.externalChangedDismiss': '忽略',
  'files.tree.copyPath': '复制绝对路径',
  'files.tree.copyRelativePath': '复制相对路径',
  'files.tree.reveal': '在文件管理器中显示',
  'files.tree.openInTerminal': '在集成终端中打开',
  'files.tree.openTerminalFailed': '打开集成终端失败: {message}',
  'files.tree.sendToLan': '发送给内网用户',
  'files.tree.uploadToGroup': '上传到项目组',
  'files.tree.shareToLan': '共享到内网',
  'files.tree.lanNoPeers': '暂无在线设备',
  'files.tree.lanDiscoveryOff': '内网发现未开启',
  'files.tree.lanSendStarted': '已开始发送「{name}」',
  'files.tree.lanSendFailed': '发送失败：{message}',
  'files.tree.pathLabel': '路径',
  'files.tree.sizeLabel': '大小',
  'files.tree.modifiedLabel': '修改时间',
  'files.preview.copied': '已复制到剪贴板',
  'files.preview.copyFailed': '复制失败',
  'files.preview.revealFailed': '打开文件管理器失败: {message}',
  'files.preview.wordWrap': '切换自动换行',
  'files.preview.minimap': '切换缩略图',
  'files.preview.whitespace': '切换空白字符',
  'files.preview.copyPath': '复制绝对路径',
  'files.preview.copyRelativePath': '复制相对路径',
  'files.preview.reveal': '在文件管理器中显示',
  'files.preview.markdownSource': '源码',
  'files.preview.markdownPreview': '预览',
  'files.preview.largeFileTitle': '文件较大',
  'files.preview.largeFileBody': '此文件大小为 {size} ({lines} 行)，在编辑器中打开可能较慢。',
  'files.preview.largeFileOpen': '仍要打开',
  'files.preview.largeFileTruncate': '仅显示前 {count} 行',
  'files.preview.largeFileTruncated':
    '已显示 {total} 行中的前 {count} 行（只读）。',

  'titlebar.code': '代码',
  'titlebar.terminal': '终端',
  'titlebar.history': '历史',
  'titlebar.window.minimize': '最小化',
  'titlebar.window.maximize': '最大化',
  'titlebar.window.restore': '向下还原',
  'titlebar.window.close': '关闭',
  'titlebar.window.zoom': '缩放',
  'titlebar.computerUse.enter': '控制电脑',
  'titlebar.computerUse.exit': '返回编程',

  'computerUse.title': '控制电脑',
  'computerUse.subtitle': '让视觉模型自动操作你的桌面',
  'computerUse.taskPlaceholder': '描述你想在这台电脑上完成的任务…',
  'computerUse.run': '运行',
  'computerUse.stop': '停止',
  'computerUse.continue': '继续',
  'computerUse.replyPlaceholder': '回复智能体…',
  'computerUse.send': '发送',
  'computerUse.model': '视觉模型',
  'computerUse.noVisionModels': '未找到支持视觉的模型，请在 设置 > 供应商 中添加。',
  'computerUse.maxSteps': '最大步数',
  'computerUse.stepDelay': '步间延迟 (毫秒)',
  'computerUse.status.idle': '空闲',
  'computerUse.status.running': '执行中',
  'computerUse.status.thinking': '思考中…',
  'computerUse.status.finished': '已完成',
  'computerUse.status.callUser': '需要你的协助',
  'computerUse.status.error': '出错',
  'computerUse.status.stopped': '已停止',
  'computerUse.empty': '描述任务并点击运行，智能体会查看你的屏幕并逐步操作。',
  'computerUse.screenshot': '截图',
  'computerUse.steps': '步骤',
  'computerUse.thought': '思考',
  'computerUse.action': '动作',
  'computerUse.warning': '智能体会控制你真实的鼠标和键盘，请守在停止按钮旁。',
  'computerUse.connecting': '连接中…',

  'menu.file': '文件',
  'menu.edit': '编辑',
  'menu.view': '视图',
  'menu.help': '帮助',
  'menu.file.newSession': '新建智能体',
  'menu.file.openWorkspaceFolder': '打开工作区文件夹',
  'menu.file.settings': '设置',
  'menu.file.quit': '退出',
  'menu.file.workspaceUnavailable': '打开工作区文件夹需要使用桌面应用。',
  'menu.edit.undo': '撤销',
  'menu.edit.redo': '重做',
  'menu.edit.cut': '剪切',
  'menu.edit.copy': '复制',
  'menu.edit.paste': '粘贴',
  'menu.edit.selectAll': '全选',
  'menu.view.showLeftSidebar': '显示左侧边栏',
  'menu.view.hideLeftSidebar': '隐藏左侧边栏',
  'menu.view.showRightSidebar': '显示右侧边栏',
  'menu.view.hideRightSidebar': '隐藏右侧边栏',
  'menu.view.zoomIn': '放大',
  'menu.view.zoomOut': '缩小',
  'menu.view.resetZoom': '重置缩放',
  'menu.help.documentation': '文档',
  'menu.help.github': 'GitHub 仓库',
  'menu.help.checkForUpdates': '检查更新',

  'status.connected': '已连接',
  'status.connecting': '连接中...',
  'status.reconnecting': '重连中...',
  'status.disconnected': '已断开',

  'settings.title': '设置',
  'settings.backToHome': '返回主页',
  'settings.tab.providers': '服务商',
  'settings.tab.permissions': '权限',
  'settings.tab.general': '通用',
  'settings.tab.agents': '智能体',
  'settings.tab.skills': '规则、技能与子代理',
  'settings.tab.mcp': '工具与 MCP',
  'settings.tab.lsp': '语言服务器',
  'settings.tab.keyboard': '快捷键',
  'settings.tab.hooks': '钩子',
  'settings.tab.usage': '用量',
  'settings.tab.evolution': '自我进化',
  'settings.tab.plugins': '插件',
  'settings.tab.credentials': '凭据',
  'settings.integrations.title': '其他集成',
  'settings.integrations.description': '当前构建支持的其他供应商与外部服务，及其当前配置状态。',
  'settings.adapters.supportedChannels': '支持的渠道与状态',
  'settings.adapters.supportedChannelsDesc': '当前构建支持的聊天渠道及其当前配置状态。',
  'settings.integrations.empty': '暂无可用集成。',
  'settings.integrations.error': '加载集成失败：{error}',
  'settings.integrations.statusActive': '已启用',
  'settings.integrations.statusAvailable': '可用',
  'settings.integrations.statusComingSoon': '即将推出',
  'automations.page.title': '自动任务',
  'automations.page.subtitle': '按计划、按间隔、定时一次、系统空闲时或会话结束后自动运行智能体任务。',
  'automations.page.desktopNotice': '自动任务仅在桌面应用打开时运行。请保持应用持续运行，任务才能按时触发。',
  'automations.trigger.label': '触发方式',
  'automations.trigger.schedule': '按计划',
  'automations.trigger.idle': '系统空闲时',
  'automations.trigger.sessionEnd': '会话结束后',
  'automations.trigger.afterIdle': '空闲多久后运行（分钟）',
  'automations.trigger.idleHint': '仅在没有进行中的对话时于后台运行。',
  'automations.trigger.sessionEndHint': '每次活动会话结束后运行一次。',
  'automations.trigger.idleDesc': '空闲触发 · {duration}',
  'automations.trigger.sessionEndDesc': '会话结束后',
  'automations.trigger.intervalDesc': '每隔 {duration}',
  'automations.trigger.onceDesc': '定时一次 · {time}',
  'automations.trigger.minutesValue': '{n} 分钟',
  'automations.trigger.hoursValue': '{n} 小时',
  'automations.priority.label': '优先级',
  'automations.priority.high': '高',
  'automations.priority.normal': '中',
  'automations.priority.low': '低',
  'automations.requireIdle': '仅在空闲时运行',
  'automations.requireIdleHint': '将计划任务推迟到系统空闲一段时间后再执行。',
  'automations.minutesUnit': '分钟',
  'automations.maxDuration': '最长时长（分钟）',
  'automations.maxDurationHint': '任务运行超过该时长则中止。0 表示不限制。',
  'credentials.title': '凭据保管箱',
  'credentials.description': '在本机加密保存可复用的敏感信息（密码、令牌、URL）。凭据永不离开本机，对话中仅以凭据卡片的形式引用，真实值不会发送给 LLM。',
  'credentials.empty': '尚未配置任何凭据。',
  'credentials.add': '新增凭据',
  'credentials.edit': '编辑',
  'credentials.delete': '删除',
  'credentials.deleteConfirm': '确定删除凭据 “{name}” 吗？此操作不可撤销。',
  'credentials.name': '名称',
  'credentials.kind': '类型',
  'credentials.value': '值',
  'credentials.kind.username': '用户名',
  'credentials.kind.password': '密码',
  'credentials.kind.token': '令牌',
  'credentials.kind.url': '链接',
  'credentials.kind.other': '其他',
  'credentials.placeholder.insert': '插入凭据 {name}',
  'credentials.placeholder.hint': '点击凭据名称即可插入到光标位置，对话中会显示为凭据卡片。',
  'credentials.save': '保存凭据',
  'credentials.cancel': '取消',
  'credentials.show': '显示',
  'credentials.hide': '隐藏',
  'credentials.created': '创建时间',
  'credentials.updated': '更新时间',
  'credentials.nameInvalid': '名称只能包含字母、数字、下划线和短横线。',
  'credentials.valueRequired': '凭据值不能为空。',
  'debug.qa.panelTitle': '凭据',
  'debug.qa.insertCred': '插入凭据',
  'debug.qa.placeholder': '所有敏感信息请通过上方“凭据”按钮插入，禁止直接粘贴真实密码。',
  'debug.qa.reportReady': 'QA 报告已生成',
  'debug.qa.openReport': '打开报告',
  'debug.qa.takeover': '助手正在自动化测试此标签',
  'debug.qa.userAuthenticatedHint': '可直接描述要测的功能 / 助手会自动接管已登录的标签',
  'debug.qa.coverage.title': '覆盖率',
  'debug.qa.inputPlaceholder': '粘贴测试目标 URL（已登录可直接描述要测什么）；需要账号密码时点上方“凭据”插入',
  'settings.evolution.title': '自我进化',
  'settings.evolution.description': '自我强化编程学习能力。助手在对话中收集 turn 数据、提炼 lessons，并可导出标准数据集供外部训练或云端 RL 使用。',
  'settings.evolution.persistence.title': '训练数据本地持久化',
  'settings.evolution.persistence.description': '关闭后助手仅做 in-context 学习，不会向磁盘写入原始 turn 数据；lessons / playbooks 等"知识"始终保留。',
  'settings.evolution.persistence.toggleOn': '已开启',
  'settings.evolution.persistence.toggleOff': '已关闭',
  'settings.evolution.persistence.usage': '占用统计',
  'settings.evolution.persistence.purgeTitle': '清空本地训练数据',
  'settings.evolution.persistence.purgeWarning': '此操作不可逆，请输入 I_UNDERSTAND 确认。',
  'settings.evolution.persistence.purgeAll': '全部清空',
  'settings.evolution.persistence.purgeTurns': '清空原始 turn',
  'settings.evolution.persistence.purgeExports': '清空导出文件',
  'settings.evolution.persistence.purgeHistory': '清空推送回执',
  'settings.evolution.persistence.purgeEvents': '清空审计事件',
  'settings.evolution.metrics.title': '自我进化度量',
  'settings.evolution.metrics.totalTurns': '已记录 turn',
  'settings.evolution.metrics.lessons': 'lessons',
  'settings.evolution.metrics.lessonsActive': '启用中 lessons',
  'settings.evolution.metrics.lessonHits': '累计注入次数',
  'settings.evolution.metrics.exports': '导出数',
  'settings.evolution.metrics.pushes': '推送回执',
  'settings.evolution.metrics.toolSearch': 'tool_search 调用 / 激活 / 拒绝',
  'settings.evolution.metrics.toolSearchTooltip':
    'tool_search 调用次数 · 累计激活工具数 · 安全拦截次数 · 平均激活耗时。',
  'settings.evolution.metrics.deferredBuiltin': '{count} 个内建延迟桩',
  'settings.evolution.maintenance.title': '维护操作',
  'settings.evolution.maintenance.description': '手动触发课程蒸馏与全部 turn 的奖励重打分。',
  'settings.evolution.maintenance.persistRequired': '需要先开启训练数据本地持久化，否则后端没有原始 turn 可供操作。',
  'settings.evolution.maintenance.turnIdLabel': 'Turn ID',
  'settings.evolution.maintenance.distill': '蒸馏',
  'settings.evolution.maintenance.distillQueued': '已加入蒸馏队列：{turnId}',
  'settings.evolution.maintenance.distillFailed': '蒸馏失败，请检查 turn ID 与持久化状态。',
  'settings.evolution.maintenance.rescore': '全部重打分',
  'settings.evolution.maintenance.rescoreHint': '重新跑评估器并更新所有已存 turn 的奖励信号。',
  'settings.evolution.maintenance.rescoreDone': '完成：重打分 {rescored}，错误 {errors}，共扫描 {totalSeen}。',
  'settings.evolution.maintenance.rescoreFailed': '重打分失败，请稍后重试。',
  'settings.evolution.lessons.title': 'Lessons',
  'settings.evolution.lessons.empty': '暂无 lessons，助手成功完成 turn 后会自动生成。',
  'settings.evolution.config.title': '引擎设置',
  'settings.evolution.config.judgeEnabled': '异步 next-state PRM 评审',
  'settings.evolution.config.autoDistill': 'session 结束时自动 distill',
  'settings.evolution.config.maxLessons': 'prompt 中最多注入 lessons',
  'settings.evolution.config.tokenBudget': 'lesson token 预算',
  'settings.evolution.config.judgeModel': '评审模型覆盖',
  'settings.evolution.export.title': '导出数据集',
  'settings.evolution.export.description': '将原始 turn 投影成 6 种标准 JSONL 格式之一，供外部训练或云端 RL 使用。',
  'settings.evolution.export.disabled': '当前持久化已关闭。请先开启上方"训练数据本地持久化"，记录原始 turn 后再导出。',
  'settings.evolution.export.format': '格式',
  'settings.evolution.export.create': '创建导出',
  'settings.evolution.export.recent': '最近导出',
  'settings.evolution.export.empty': '暂无导出文件。',
  'settings.evolution.cloud.title': '云端 RL 目标',
  'settings.evolution.cloud.description': '配置云端目标（OpenAI Files / HuggingFace / RL Dataset Server / Tinker / Fireworks / 自定义 webhook）并推送导出文件。',
  'settings.evolution.cloud.empty': '暂未配置云端目标。',
  'settings.evolution.cloud.history': '最近推送记录',
  'settings.evolution.cloud.add': '新增目标',
  'settings.evolution.cloud.push': '推送',

  'settings.evolution.recycling.title': '经验回收',
  'settings.evolution.recycling.description':
    '采集、清洗并回放高价值的对话轮次。被选中的经验会注入下一轮 prompt，引导助手沿用已被验证有效的解题模式。',
  'settings.evolution.recycling.toggle': '启用经验回收',
  'settings.evolution.recycling.sampleRate': '采样率',
  'settings.evolution.recycling.sampleRateHelp': '一个合格轮次被采集的概率：0 表示关闭，1 表示全采。',
  'settings.evolution.recycling.minReward': '最低奖励阈值',
  'settings.evolution.recycling.minRewardHelp': '只保留最终奖励高于该阈值的轮次（设为负值可同时保留失败案例）。',
  'settings.evolution.recycling.maxRetained': '最多保留条数',
  'settings.evolution.recycling.maxReplayInPrompt': '单轮最多回放数',
  'settings.evolution.recycling.replayTokenBudget': '回放 token 预算',
  'settings.evolution.recycling.privacy': '隐私脱敏',
  'settings.evolution.recycling.redactPaths': '脱敏 workspace 绝对路径',
  'settings.evolution.recycling.redactSecrets': '脱敏密钥与环境变量',
  'settings.evolution.recycling.redactUserText': '脱敏用户原始文本',
  'settings.evolution.recycling.includeSuccesses': '采集成功轮次',
  'settings.evolution.recycling.includeFailures': '采集失败轮次',
  'settings.evolution.recycling.weights': '回放排序权重',
  'settings.evolution.recycling.weightQuality': '质量',
  'settings.evolution.recycling.weightRecency': '时效',
  'settings.evolution.recycling.weightDiversity': '多样性',
  'settings.evolution.recycling.recent': '最近回收经验',
  'settings.evolution.recycling.empty': '尚未回收到任何经验。',
  'settings.evolution.recycling.purge': '清空全部',
  'settings.evolution.recycling.total': '已存储：{count}',
  'settings.evolution.recycling.outcome.success': '成功',
  'settings.evolution.recycling.outcome.failure': '失败',
  'settings.evolution.recycling.outcome.neutral': '中性',

  'settings.evolution.reflection.title': '自我反思',
  'settings.evolution.reflection.description':
    '周期性或事件触发地调用 LLM 复盘最近的轮次，提炼可执行洞察，并写回到 Lessons、Skills、Rules 或 Memory。',
  'settings.evolution.reflection.toggle': '启用自我反思',
  'settings.evolution.reflection.triggerMode': '触发方式',
  'settings.evolution.reflection.triggerMode.manual': '仅手动触发',
  'settings.evolution.reflection.triggerMode.auto': '自动（事件驱动）',
  'settings.evolution.reflection.triggerMode.scheduled': '定时反思',
  'settings.evolution.reflection.depth': '反思深度',
  'settings.evolution.reflection.depth.quick': '快速',
  'settings.evolution.reflection.depth.deep': '深度',
  'settings.evolution.reflection.model': '反思模型（可选）',
  'settings.evolution.reflection.modelHelp': '留空则复用 judge / 主模型。',
  'settings.evolution.reflection.provider': '反思提供商（可选）',
  'settings.evolution.modelPicker.noModelsConfigured': '未添加模型',
  'settings.evolution.modelPicker.providerHasNoModels': '所选提供商尚未添加模型',
  'settings.evolution.modelPicker.addProviderFirst': '请先在适配器设置中添加提供商与模型',
  'settings.evolution.modelPicker.useDefault': '使用默认（不指定）',
  'settings.evolution.modelPicker.unregisteredHint': '{model}（未注册）',
  'settings.evolution.modelPicker.goToAdapterSettings': '请到「适配器设置」中添加并保存模型，才能在此选择。',
  'settings.evolution.modelPicker.providerAuto': '跟随 judge 默认提供商',
  'settings.evolution.modelPicker.providerDefaultTag': '默认',
  'settings.evolution.reflection.scheduleIntervalMinutes': '反思间隔（分钟）',
  'settings.evolution.reflection.minTurnsForAuto': '自动反思最少轮数',
  'settings.evolution.reflection.failureThreshold': '失败 N 次自动反思',
  'settings.evolution.reflection.includeUserThumbsDown': '将差评视为失败',
  'settings.evolution.reflection.lookbackTurns': '每次回看轮数',
  'settings.evolution.reflection.maxLessonsPerRun': '单次最多产出 lesson 数',
  'settings.evolution.reflection.maxTotalLessons': '总 lesson 上限',
  'settings.evolution.reflection.writeback': '写回目标',
  'settings.evolution.reflection.writeback.lessons': 'Lessons（数据库）',
  'settings.evolution.reflection.writeback.skills': 'Skill 知识库',
  'settings.evolution.reflection.writeback.rules': 'User Rules',
  'settings.evolution.reflection.writeback.memory': 'Memory 文件',
  'settings.evolution.reflection.runNow': '立即反思',
  'settings.evolution.reflection.runQueued': '反思已入队：{runId}',
  'settings.evolution.reflection.runFailed': '触发反思失败：{error}',
  'settings.evolution.reflection.recent': '最近反思记录',
  'settings.evolution.reflection.empty': '尚未运行过反思。',
  'settings.evolution.reflection.summary.totalRuns': '总运行次数',
  'settings.evolution.reflection.summary.completed': '已完成',
  'settings.evolution.reflection.summary.failed': '失败',
  'settings.evolution.reflection.summary.lessons': '产出 lesson 数',
  'settings.evolution.reflection.summary.lastRunAt': '上次运行',
  'settings.evolution.reflection.summary.lastStatus': '上次状态',
  'settings.evolution.reflection.summary.avgLessonsPerRun': '平均每次 lessons',

  'settings.evolution.reflection.persistRequired.title':
    '需要先开启持久化训练数据',
  'settings.evolution.reflection.persistRequired.body':
    '自我反思需要从历史回合中读取数据。请先在『自我进化』总卡片中开启『持久化训练数据』。',
  'settings.evolution.reflection.persistRequired.enable': '立即启用',
  'settings.evolution.reflection.persistAutoEnabledToast':
    '已为你自动开启『持久化训练数据』，以支持反思 / 经验回收。',

  'settings.evolution.reflection.runError.persistence_required':
    '请先开启『持久化训练数据』。',
  'settings.evolution.reflection.runError.no_turns_available':
    '尚无可用的回合记录，请先与模型对话后再触发反思。',
  'settings.evolution.reflection.runError.reflection_disabled':
    '自我反思尚未启用,请先打开开关。',
  'settings.evolution.reflection.runError.reflection_queue_full':
    '反思队列已满,请稍后再试。',
  'settings.evolution.reflection.runError.reflection_store_unavailable':
    '反思存储未就绪,请查看后端日志。',
  'settings.evolution.reflection.runError.reflection_worker_unavailable':
    '反思工作线程尚未就绪。',
  'settings.evolution.reflection.runError.model_not_registered':
    '选择的反思模型未在任何提供商中配置。',
  'settings.evolution.reflection.runError.provider_not_registered':
    '选择的反思提供商未配置。',

  'settings.evolution.reflection.run.status.queued': '排队中',
  'settings.evolution.reflection.run.status.running': '运行中',
  'settings.evolution.reflection.run.status.completed': '已完成',
  'settings.evolution.reflection.run.status.failed': '失败',
  'settings.evolution.reflection.run.status.skipped': '已跳过',

  'settings.evolution.reflection.skipReason.no_provider':
    '没有可用的反思提供商。',
  'settings.evolution.reflection.skipReason.no_provider_for_registered_model':
    '已配置的提供商中没有能服务于该反思模型的实例。',
  'settings.evolution.reflection.skipReason.model_not_registered':
    '选择的模型未在提供商设置中添加。',
  'settings.evolution.reflection.skipReason.writeback_skill_skipped':
    '技能写回被跳过（例如缺少 home 目录或标题为空）。',
  'settings.evolution.reflection.skipReason.writeback_rule_skipped':
    '规则写回被跳过（例如缺少 home 目录或标题为空）。',

  'settings.evolution.recycling.persistRequired.title':
    '需要先开启持久化训练数据',
  'settings.evolution.recycling.persistRequired.body':
    '经验回收会把采样的回合写入 SQLite,请先开启『持久化训练数据』。',
  'settings.evolution.recycling.persistRequired.enable': '立即启用',
  'settings.evolution.recycling.runtime.todayHarvested': '今日 {count}',
  'settings.evolution.recycling.runtime.totalHarvested': '累计 {count}',
  'settings.evolution.recycling.runtime.lastHarvestAt': '最近采样 {ts}',

  'settings.evolution.overview.judgeWorker.running': '裁判: 运行中',
  'settings.evolution.overview.judgeWorker.idle': '裁判: 空闲',
  'settings.evolution.overview.judgeWorker.error': '裁判: 异常',
  'settings.evolution.overview.reflectionScheduler.label': '反思调度',
  'settings.evolution.overview.reflectionScheduler.never': '尚未运行',
  'settings.evolution.overview.reflectionScheduler.intervalMinutes':
    '每 {minutes} 分钟',

  'settings.evolution.modelEmpty.gotoProviders': '前往提供商设置',

  'terminal.panel.newTab': '新建终端',
  'terminal.panel.closeTab': '关闭标签',
  'terminal.panel.clear': '清屏',
  'terminal.panel.hide': '隐藏面板',
  'terminal.panel.resize': '拖动调整高度',
  'terminal.tab.agentMirror': 'Agent',
  'terminal.tab.untitled': '终端',
  'terminal.status.idle': '空闲',
  'terminal.status.starting': '启动中',
  'terminal.status.running': '运行中',
  'terminal.status.exited': '已退出',
  'terminal.status.error': '错误',
  'terminal.status.unavailable': '不可用',

  'settings.providers.title': '服务商',
  'settings.providers.description': '管理 API 服务商以访问模型。',
  'settings.providers.addProvider': '添加服务商',
  'settings.providers.officialName': '默认服务商',
  'settings.providers.officialDesc': '尚未选择服务商',
  'settings.providers.empty': '尚未配置任何服务商，点击右上角添加。',
  'settings.providers.modelCount': '{count} 个模型',
  'settings.providers.modelsHeader': '模型',
  'settings.providers.modelsHelp': '第一项为该服务商的主模型；第二列为该模型的上下文上限（按 token 计数），用于输入框右下角的消耗环。留空则使用内置的启发式估算。',
  'settings.providers.noModels': '尚未添加任何模型',
  'settings.providers.primaryTag': '主模型',
  'settings.providers.addModel': '添加模型',
  'settings.providers.addModelPlaceholder': '输入模型 ID 后按回车添加',
  'settings.providers.modelTypeLabel': '模型类型',
  'settings.providers.modelTypeTooltip': '为该模型选择能力类型，可多选。输入区的模型选择会按当前功能（如图片/视频/音频生成）只显示匹配类型的模型。老模型未设置时默认按「文本生成」处理。',
  'settings.providers.modelTypeNone': '未选择类型，默认文本生成',
  'settings.modelTypes.text': '文本生成',
  'settings.modelTypes.image-generation': '图像生成',
  'settings.modelTypes.video-generation': '视频生成',
  'settings.modelTypes.audio-generation': '音频生成',
  'settings.modelTypes.image-understanding': '图像理解',
  'settings.modelTypes.video-understanding': '视频理解',
  'settings.modelTypes.speech-recognition': '语音识别',
  'settings.modelTypes.embedding': '嵌入',
  'settings.modelTypes.rerank': '重排',
  'settings.modelTypes.music-generation': '音乐生成',
  'settings.providers.contextWindowPlaceholder': '上下文上限（如 1000000）',
  'settings.providers.contextWindowTooltip': '该模型的最大上下文 token 数。输入框右下角的消耗环会使用此值作为上限。留空则使用内置的启发式估算。',
  'settings.providers.priceInputPlaceholder': '入 $/M',
  'settings.providers.priceInputTooltip': '输入 token 单价（美元/每百万 token），用于用量页的花费统计。留空则使用内置定价表，无匹配时花费计为 0。',
  'settings.providers.priceOutputPlaceholder': '出 $/M',
  'settings.providers.priceOutputTooltip': '输出 token 单价（美元/每百万 token），用于用量页的花费统计。留空则使用内置定价表，无匹配时花费计为 0。',
  'settings.providers.editModels': '编辑模型列表',
  'settings.providers.searchModels': '添加或搜索模型',
  'settings.providers.discoverTitle': '获取官方模型列表',
  'settings.providers.fetchModelList': '获取模型最新列表',
  'settings.providers.discoverError': '获取模型列表失败',
  'settings.providers.discoverEmpty': '未发现任何模型',
  'settings.providers.discoveredCount': '发现 {count} 个模型（来源: {source}）',
  'settings.providers.discoverSourceRemote': '在线获取',
  'settings.providers.discoverSourceCache': '本地缓存',
  'settings.providers.selectAll': '全选',
  'settings.providers.deselectAll': '取消全选',
  'settings.providers.allTab': '全部',
  'settings.providers.alreadyAdded': '已添加',
  'settings.providers.applySelected': '应用所选（{count}）',
  'settings.providers.searchAllModels': '按模型 ID 或服务商搜索',
  'settings.providers.globalModelsHelp': '跨所有服务商启用或禁用模型。已禁用的模型不会出现在模型选择器中。',
  'settings.providers.viewAllModels': '查看全部模型',
  'settings.providers.showLessModels': '收起列表',
  'settings.providers.modelsShowingCount': '显示 {shown} / {total} 个模型',
  'settings.providers.refreshModels': '刷新模型列表',
  'settings.providers.noModelsMatch': '没有匹配的模型',
  'settings.providers.noBaseUrl': '未配置接口地址',
  'settings.providers.connected': '已连接 ({latency}ms)',
  'settings.providers.failed': '失败: {error}',
  'settings.providers.connectivityOk': '① 连通 ({latency}ms)',
  'settings.providers.connectivityFailed': '① 连通失败: {error}',
  'settings.providers.proxyOk': '② 代理转换 ({latency}ms)',
  'settings.providers.proxyFailed': '② 代理转换失败: {error}',
  'settings.providers.confirmDelete': '删除服务商 "{name}"？此操作不可撤销。',
  'settings.providers.activate': '激活',
  'settings.providers.default': '默认',
  'settings.providers.setDefault': '设为默认',
  'settings.providers.test': '测试',
  'settings.providers.edit': '编辑',
  'settings.providers.requestFailed': '请求失败',
  'settings.providers.addTitle': '添加服务商',
  'settings.providers.editTitle': '编辑服务商',
  'settings.providers.preset': '预设',
  'settings.providers.name': '名称',
  'settings.providers.namePlaceholder': '服务商名称',
  'settings.providers.nameConflict': '该名称已被使用，若仍要新增请改用唯一名称（已自动允许，仅作提示）。',
  'settings.providers.nameConflictHint': '已存在同名服务商「{{name}}」。每个服务商使用独立 ID，可以保留相同显示名，但建议改用唯一名称便于区分。',
  'settings.providers.notes': '备注',
  'settings.providers.notesPlaceholder': '可选备注...',
  'settings.providers.baseUrl': '接口地址',
  'settings.providers.baseUrlPlaceholder': 'https://api.example.com/anthropic',
  'settings.providers.apiKey': 'API 密钥',
  'settings.providers.apiKeyKeep': 'API 密钥（留空保持不变）',
  'settings.providers.testConnection': '测试连接',
  'settings.providers.apiFormat': 'API 格式',
  'settings.providers.apiFormatAnthropic': 'Anthropic Messages',
  'settings.providers.apiFormatOpenaiChat': 'OpenAI Chat Completions',
  'settings.providers.apiFormatOpenaiResponses': 'OpenAI Responses API',

  'settings.providers.advanced.title': '高级设置',
  'settings.providers.advanced.customHeaders.title': '自定义 HTTP 请求头',
  'settings.providers.advanced.customHeaders.description': '附加在该提供商每次请求上的额外请求头（例如 anthropic-beta、HTTP-Referer、x-tenant）。已禁用的条目会保留但不会发送。',
  'settings.providers.advanced.customHeaders.add': '添加请求头',
  'settings.providers.advanced.customHeaders.nameLabel': '请求头名称',
  'settings.providers.advanced.customHeaders.valueLabel': '请求头值',
  'settings.providers.advanced.customHeaders.enabled': '启用',
  'settings.providers.advanced.customHeaders.remove': '删除请求头',
  'settings.providers.advanced.customHeaders.invalidName': '非法的请求头名称（仅允许 ASCII 字母/数字以及 ! # $ % & \' * + - . ^ _ ` | ~）。',
  'settings.providers.advanced.customHeaders.duplicateName': '重复的请求头名称，只会发送第一条。',
  'settings.providers.advanced.customHeaders.disallowed': '保留的请求头，由提供商自行管理，运行时将被忽略。',
  'settings.providers.advanced.customHeaders.empty': '尚未配置自定义请求头。点击「添加请求头」即可新增（例如 anthropic-beta、HTTP-Referer、X-Title）。',
  'settings.providers.advanced.customHeaders.show': '显示值',
  'settings.providers.advanced.customHeaders.hide': '隐藏值',

  'settings.permissions.title': '权限模式',
  'settings.permissions.description': '控制工具执行权限的处理方式。',
  'settings.permissions.default': '询问权限',
  'settings.permissions.defaultDesc': '执行工具前先询问',
  'settings.permissions.acceptEdits': '接受编辑',
  'settings.permissions.acceptEditsDesc': '自动批准文件编辑，其他操作仍询问',
  'settings.permissions.plan': '计划模式',
  'settings.permissions.planDesc': '仅思考和规划，不执行操作',
  'settings.permissions.bypass': '跳过全部',
  'settings.permissions.bypassDesc': '跳过所有权限检查（危险）',

  'settings.tab.adapters': '集成接入',
  'settings.adapters.description': '配置即时通讯适配器，通过 Telegram 或飞书与 SenWeaverCoding 对话。',
  'settings.adapters.telegram': 'Telegram',
  'settings.adapters.feishu': '飞书 (Feishu)',
  'settings.adapters.botToken': 'Bot Token',
  'settings.adapters.botTokenPlaceholder': '粘贴从 @BotFather 获取的 Token',
  'settings.adapters.appId': 'App ID',
  'settings.adapters.appIdPlaceholder': '如 cli_xxx',
  'settings.adapters.appSecret': 'App Secret',
  'settings.adapters.appSecretPlaceholder': '从飞书开放平台获取',
  'settings.adapters.encryptKey': 'Encrypt Key',
  'settings.adapters.encryptKeyPlaceholder': '可选',
  'settings.adapters.verificationToken': 'Verification Token',
  'settings.adapters.verificationTokenPlaceholder': '可选',
  'settings.adapters.allowedUsers': '允许的用户',
  'settings.adapters.allowedUsersHint': '逗号分隔。留空允许所有人。',
  'settings.adapters.tgAllowedUsersPlaceholder': '如 123456789, 987654321',
  'settings.adapters.fsAllowedUsersPlaceholder': '如 ou_xxx, ou_yyy',
  'settings.adapters.defaultProject': '默认项目',
  'settings.adapters.defaultProjectHint': '新 IM 会话的默认工作目录。留空则由 Bot 询问选择。',
  'settings.adapters.streamingCard': '流式卡片模式',
  'settings.adapters.streamingCardDesc': '实时更新消息内容，体验更好',
  'settings.adapters.serverUrl': '服务器地址',
  'settings.adapters.serverUrlPlaceholder': 'ws://127.0.0.1:42617',
  'settings.adapters.save': '保存',
  'settings.adapters.saved': '已保存',
  'settings.adapters.saving': '保存中...',
  'settings.adapters.startHint': '保存后运行适配器：cd adapters && bun run {platform}',
  'settings.adapters.pairing': '配对管理',
  'settings.adapters.pairingDesc': '生成配对码后在 IM 私聊中发送给 Bot，完成身份绑定。',
  'settings.adapters.generateCode': '生成配对码',
  'settings.adapters.regenerateCode': '重新生成',
  'settings.adapters.codeExpired': '已过期',
  'settings.adapters.codeExpiresIn': '有效期剩余',
  'settings.adapters.minutes': '分钟',
  'settings.adapters.pairingCodeHint': '请在飞书或 Telegram 私聊中发送此配对码给 Bot。',
  'settings.adapters.pairedUsers': '已配对用户',
  'settings.adapters.noPairedUsers': '暂无已配对用户',
  'settings.adapters.unbind': '解绑',
  'settings.adapters.unbindConfirm': '确定要解绑该用户吗？解绑后需重新配对才能使用。',
  'settings.adapters.platform.telegram': 'Telegram',
  'settings.adapters.platform.feishu': '飞书',

  'settings.adapters.descriptionFull': '配置 SenWeaverCoding 可以接入的所有消息、语音、邮件、Webhook 通道。每张卡片直接把凭据写入本地 config.toml。',
  'settings.adapters.generalSection': '通用设置',
  'settings.adapters.generalSectionDesc': '所有通道共享的工作区、会话存储与行为开关。',
  'settings.adapters.disable': '禁用',
  'settings.adapters.disableChannel': '禁用此通道',
  'settings.adapters.disableChannelConfirm': '将清除此通道在配置中的凭据并停止 adapter。任何时候重新填写表单都可重新启用。',
  'settings.adapters.featureMissing': '当前构建未启用此通道（缺少对应的 Cargo feature）。',
  'settings.adapters.status.configured': '已配置',
  'settings.adapters.status.empty': '未配置',
  'settings.adapters.status.unavailable': '不可用',
  'settings.adapters.tribool.follow': '跟随全局默认',
  'settings.adapters.tribool.on': '强制开启',
  'settings.adapters.tribool.off': '强制关闭',
  'settings.adapters.select.unset': '（使用默认）',

  'settings.adapters.categories.im': 'IM 与机器人',
  'settings.adapters.categories.whatsapp': 'WhatsApp 系列',
  'settings.adapters.categories.email': '邮件',
  'settings.adapters.categories.webhookSocial': 'Webhook 与社媒',
  'settings.adapters.categories.voice': '语音',

  'settings.adapters.channels.telegram.name': 'Telegram',
  'settings.adapters.channels.telegram.tagline': '通过 Bot API 接入 Telegram 机器人。',
  'settings.adapters.channels.discord.name': 'Discord',
  'settings.adapters.channels.discord.tagline': 'Discord 机器人 — 支持斜杠命令、@提及与子帖。',
  'settings.adapters.channels.discordHistory.name': 'Discord 历史',
  'settings.adapters.channels.discordHistory.tagline': '记录服务器全部消息并把 @提及转发给 Agent。',
  'settings.adapters.channels.slack.name': 'Slack',
  'settings.adapters.channels.slack.tagline': 'Slack 机器人 — Socket Mode 或 Events API。',
  'settings.adapters.channels.mattermost.name': 'Mattermost',
  'settings.adapters.channels.mattermost.tagline': '自托管的 Mattermost 团队服务器。',
  'settings.adapters.channels.lark.name': 'Lark（国际版）',
  'settings.adapters.channels.lark.tagline': '字节 Lark — 国际版应用域。',
  'settings.adapters.channels.feishu.name': '飞书（国内版）',
  'settings.adapters.channels.feishu.tagline': '字节飞书 — 中文开放平台。',
  'settings.adapters.channels.dingtalk.name': '钉钉',
  'settings.adapters.channels.dingtalk.tagline': '阿里钉钉 — Stream Mode 机器人。',
  'settings.adapters.channels.wecom.name': '企业微信',
  'settings.adapters.channels.wecom.tagline': '腾讯企业微信 — Bot Webhook。',
  'settings.adapters.channels.qq.name': 'QQ 官方机器人',
  'settings.adapters.channels.qq.tagline': '腾讯 QQ 官方机器人 SDK。',
  'settings.adapters.channels.matrix.name': 'Matrix',
  'settings.adapters.channels.matrix.tagline': '自托管的联邦化 Matrix homeserver。',
  'settings.adapters.channels.signal.name': 'Signal',
  'settings.adapters.channels.signal.tagline': '通过 signal-cli 守护进程接入 Signal。',
  'settings.adapters.channels.irc.name': 'IRC',
  'settings.adapters.channels.irc.tagline': '通过 TLS 接入 IRC 服务器。',
  'settings.adapters.channels.imessage.name': 'iMessage',
  'settings.adapters.channels.imessage.tagline': '苹果 iMessage — 仅 macOS 主机可用。',
  'settings.adapters.channels.nextcloudTalk.name': 'Nextcloud Talk',
  'settings.adapters.channels.nextcloudTalk.tagline': 'Nextcloud Talk webhook 机器人。',
  'settings.adapters.channels.mochat.name': 'Mochat',
  'settings.adapters.channels.mochat.tagline': '通过 Mochat 客服 API 接入。',
  'settings.adapters.channels.nostr.name': 'Nostr',
  'settings.adapters.channels.nostr.tagline': '去中心化社交 — NIP-04 / NIP-17 私信。',

  'settings.adapters.channels.whatsapp.name': 'WhatsApp',
  'settings.adapters.channels.whatsapp.tagline': '支持 Cloud API 与原生 Web 客户端（wa-rs）。',
  'settings.adapters.channels.linq.name': 'Linq',
  'settings.adapters.channels.linq.tagline': '通过 Linq Partner API 发送 iMessage / RCS / SMS。',
  'settings.adapters.channels.wati.name': 'WATI',
  'settings.adapters.channels.wati.tagline': '通过 WATI 服务商接入 WhatsApp Business。',

  'settings.adapters.channels.email.name': '邮件（IMAP/SMTP）',
  'settings.adapters.channels.email.tagline': '使用 IMAP IDLE 收信，SMTP 发信。',
  'settings.adapters.channels.gmailPush.name': 'Gmail 推送',
  'settings.adapters.channels.gmailPush.tagline': '通过 Pub/Sub 实时推送的 Gmail 通知。',

  'settings.adapters.channels.webhook.name': '通用 Webhook',
  'settings.adapters.channels.webhook.tagline': '万能 HTTP 适配器 — 收 POST、发 POST/PUT。',
  'settings.adapters.channels.twitter.name': 'X / Twitter',
  'settings.adapters.channels.twitter.tagline': 'X（Twitter）机器人 — API v2 Bearer Token。',
  'settings.adapters.channels.reddit.name': 'Reddit',
  'settings.adapters.channels.reddit.tagline': 'Reddit OAuth2 机器人（DM 与 subreddit 流）。',
  'settings.adapters.channels.bluesky.name': 'Bluesky',
  'settings.adapters.channels.bluesky.tagline': 'Bluesky / AT Protocol 应用密码。',

  'settings.adapters.channels.voiceCall.name': '电话语音（Twilio/Telnyx/Plivo）',
  'settings.adapters.channels.voiceCall.tagline': '实时电话通话，带 STT/TTS 流式播放。',
  'settings.adapters.channels.telnyx.name': 'Telnyx',
  'settings.adapters.channels.telnyx.tagline': '基于 Telnyx SIP 基础设施的 AI 语音通话。',
  'settings.adapters.channels.voiceWake.name': '语音唤醒词',
  'settings.adapters.channels.voiceWake.tagline': '本地麦克风 — 唤醒词触发拾音。',

  'settings.adapters.notices.signal': '需要先运行 signal-cli HTTP 守护进程并完成 Signal 账号绑定。这里只是保存 URL 与账号。',
  'settings.adapters.notices.imessage': '仅 macOS 主机可用。SenWeaverCoding 通过 AppleScript 与本地 Messages.app 通信。',
  'settings.adapters.notices.whatsapp': 'WhatsApp 有两种模式：Cloud API（填手机号 ID + Access Token + Verify Token）或 Web 模式（填 Session 路径）。两者只需任选其一。',
  'settings.adapters.notices.gmailPush': '先在 Google Cloud 创建 Pub/Sub Topic，给 gmail-api-push@system.gserviceaccount.com 授予 Publisher 权限，并配置一条指向 /webhook/gmail 的推送订阅。',
  'settings.adapters.notices.twitter': '需要 X（Twitter）开发者账号和具备 Elevated Access 的应用，并完成 User Authentication Settings。',
  'settings.adapters.notices.reddit': 'OAuth2 refresh-token 流程：先创建 Reddit 应用，走一次授权码流程，然后把得到的 refresh token 粘贴到这里。',
  'settings.adapters.notices.voiceCall': '选择运营商后填写对应凭据。Webhook 端口需要公网可达 — 本地开发可用 ngrok / Tailscale 隧道。',

  'settings.adapters.fields.botToken': '机器人 Token',
  'settings.adapters.fields.appId': 'App ID',
  'settings.adapters.fields.appSecret': 'App Secret',
  'settings.adapters.fields.appToken': 'App Token',
  'settings.adapters.fields.encryptKey': 'Encrypt Key',
  'settings.adapters.fields.verificationToken': 'Verification Token',
  'settings.adapters.fields.allowedUsers': '允许用户',
  'settings.adapters.fields.proxyUrl': '代理 URL',
  'settings.adapters.fields.mentionOnly': '仅在被 @ 时回复',
  'settings.adapters.fields.interruptOnNewMessage': '收到新消息时打断当前回复',
  'settings.adapters.fields.streamMode': '流式模式',
  'settings.adapters.fields.draftUpdateIntervalMs': '草稿刷新间隔（ms）',
  'settings.adapters.fields.multiMessageDelayMs': '多消息延迟（ms）',
  'settings.adapters.fields.ackReactionsOverride': '回执表情（覆盖全局）',
  'settings.adapters.fields.guildId': 'Guild（服务器）ID',
  'settings.adapters.fields.channelIds': '频道 ID',
  'settings.adapters.fields.listenToBots': '监听其他机器人消息',
  'settings.adapters.fields.storeDms': '存储私信',
  'settings.adapters.fields.respondToDms': '回复私信',
  'settings.adapters.fields.slackBotToken': 'Bot User OAuth Token',
  'settings.adapters.fields.slackAppToken': 'App-Level Token（Socket Mode）',
  'settings.adapters.fields.slackChannelId': '默认频道 ID',
  'settings.adapters.fields.slackChannelIds': '允许的频道 ID',
  'settings.adapters.fields.threadReplies': '在线程内回复',
  'settings.adapters.fields.useMarkdownBlocks': '把 Markdown 渲染为 Slack Blocks',
  'settings.adapters.fields.streamDrafts': '流式草稿（实时编辑）',
  'settings.adapters.fields.mattermostUrl': '服务器 URL',
  'settings.adapters.fields.mattermostChannelId': '频道 ID',
  'settings.adapters.fields.useFeishu': '使用飞书（国内）端点',
  'settings.adapters.fields.receiveMode': '接收模式',
  'settings.adapters.fields.webhookPort': 'Webhook 端口',
  'settings.adapters.fields.streamingCard': '流式卡片模式',
  'settings.adapters.fields.clientId': 'Client ID',
  'settings.adapters.fields.clientSecret': 'Client Secret',
  'settings.adapters.fields.refreshToken': 'Refresh Token',
  'settings.adapters.fields.webhookKey': 'Webhook Key',
  'settings.adapters.fields.matrixHomeserver': 'Homeserver URL',
  'settings.adapters.fields.accessToken': 'Access Token',
  'settings.adapters.fields.matrixUserId': 'User ID',
  'settings.adapters.fields.matrixDeviceId': 'Device ID',
  'settings.adapters.fields.matrixRoomId': 'Room ID',
  'settings.adapters.fields.matrixAllowedRooms': '允许的房间',
  'settings.adapters.fields.matrixRecoveryKey': 'Recovery Key（可选）',
  'settings.adapters.fields.signalHttpUrl': 'signal-cli HTTP URL',
  'settings.adapters.fields.signalAccount': 'Signal 账号（E.164）',
  'settings.adapters.fields.signalGroupId': '群组 ID 过滤',
  'settings.adapters.fields.signalAllowedFrom': '允许的发件人',
  'settings.adapters.fields.ignoreAttachments': '忽略仅附件消息',
  'settings.adapters.fields.ignoreStories': '忽略 Stories',
  'settings.adapters.fields.ircServer': 'IRC 服务器',
  'settings.adapters.fields.ircPort': '端口',
  'settings.adapters.fields.ircNickname': '昵称',
  'settings.adapters.fields.ircUsername': '用户名',
  'settings.adapters.fields.ircChannels': '加入的频道',
  'settings.adapters.fields.ircServerPassword': '服务器密码',
  'settings.adapters.fields.ircNickservPassword': 'NickServ 密码',
  'settings.adapters.fields.ircSaslPassword': 'SASL 密码',
  'settings.adapters.fields.ircVerifyTls': '校验 TLS 证书',
  'settings.adapters.fields.allowedContacts': '允许的联系人',
  'settings.adapters.fields.nextcloudBaseUrl': 'Nextcloud 基础 URL',
  'settings.adapters.fields.webhookSecret': 'Webhook 密钥',
  'settings.adapters.fields.botName': '机器人显示名',
  'settings.adapters.fields.apiUrl': 'API URL',
  'settings.adapters.fields.apiToken': 'API Token',
  'settings.adapters.fields.pollIntervalSecs': '轮询间隔（秒）',
  'settings.adapters.fields.nostrPrivateKey': '私钥（hex / nsec）',
  'settings.adapters.fields.nostrRelays': 'Relays',
  'settings.adapters.fields.nostrAllowedPubkeys': '允许的公钥',

  'settings.adapters.fields.whatsappAccessToken': 'Cloud API Access Token',
  'settings.adapters.fields.whatsappPhoneNumberId': 'Phone Number ID',
  'settings.adapters.fields.whatsappVerifyToken': 'Verify Token',
  'settings.adapters.fields.whatsappAppSecret': 'App Secret',
  'settings.adapters.fields.whatsappSessionPath': 'Web 会话路径',
  'settings.adapters.fields.whatsappPairPhone': '配对手机号（无需扫码）',
  'settings.adapters.fields.whatsappPairCode': '自定义配对码',
  'settings.adapters.fields.whatsappAllowedNumbers': '允许的号码',
  'settings.adapters.fields.whatsappMode': '模式',
  'settings.adapters.fields.whatsappSelfChat': '自聊（Notes to Self）始终回复',
  'settings.adapters.fields.whatsappDmPolicy': '私信策略',
  'settings.adapters.fields.whatsappGroupPolicy': '群聊策略',
  'settings.adapters.fields.whatsappDmMentionPatterns': '私信提及正则',
  'settings.adapters.fields.whatsappGroupMentionPatterns': '群聊提及正则',
  'settings.adapters.fields.fromPhone': '发件号码（E.164）',
  'settings.adapters.fields.signingSecret': '签名密钥',
  'settings.adapters.fields.allowedSenders': '允许的发件人',
  'settings.adapters.fields.tenantId': '租户 ID',

  'settings.adapters.fields.imapHost': 'IMAP 主机',
  'settings.adapters.fields.imapPort': 'IMAP 端口',
  'settings.adapters.fields.imapFolder': 'IMAP 文件夹',
  'settings.adapters.fields.idleTimeoutSecs': 'IDLE 超时（秒）',
  'settings.adapters.fields.smtpHost': 'SMTP 主机',
  'settings.adapters.fields.smtpPort': 'SMTP 端口',
  'settings.adapters.fields.smtpTls': 'SMTP 启用 TLS',
  'settings.adapters.fields.emailUsername': '用户名',
  'settings.adapters.fields.emailPassword': '密码',
  'settings.adapters.fields.fromAddress': '发件人地址',
  'settings.adapters.fields.defaultSubject': '默认主题',

  'settings.adapters.fields.enabled': '启用',
  'settings.adapters.fields.gmailTopic': 'Pub/Sub Topic',
  'settings.adapters.fields.gmailLabelFilter': '监听的标签',
  'settings.adapters.fields.oauthToken': 'OAuth2 Token',
  'settings.adapters.fields.webhookUrl': 'Webhook URL',

  'settings.adapters.fields.port': '监听端口',
  'settings.adapters.fields.listenPath': '监听路径',
  'settings.adapters.fields.sendUrl': '出站 URL',
  'settings.adapters.fields.sendMethod': '出站方法',
  'settings.adapters.fields.authHeader': 'Authorization Header',
  'settings.adapters.fields.bearerToken': 'Bearer Token',
  'settings.adapters.fields.redditUsername': 'Reddit 用户名',
  'settings.adapters.fields.redditSubreddit': 'Subreddit 过滤（可选）',
  'settings.adapters.fields.blueskyHandle': 'Bluesky Handle',
  'settings.adapters.fields.blueskyAppPassword': '应用密码',

  'settings.adapters.fields.voiceProvider': '运营商',
  'settings.adapters.fields.voiceFromNumber': '主叫号码',
  'settings.adapters.fields.voiceAccountId': '账户 ID / API Key',
  'settings.adapters.fields.voiceAuthToken': 'Auth Token',
  'settings.adapters.fields.voiceWebhookPort': '语音 Webhook 端口',
  'settings.adapters.fields.maxCallDurationSecs': '最大通话时长（秒）',
  'settings.adapters.fields.requireOutboundApproval': '主动外呼需审批',
  'settings.adapters.fields.transcriptionLogging': '把通话转写写入 workspace',
  'settings.adapters.fields.ttsVoice': 'TTS 语音（运营商专属）',
  'settings.adapters.fields.webhookBaseUrl': 'Webhook 基础 URL',
  'settings.adapters.fields.clawdApiKey': 'Telnyx API Key',
  'settings.adapters.fields.clawdConnectionId': 'SIP Connection ID',
  'settings.adapters.fields.allowedDestinations': '允许拨打的目的',
  'settings.adapters.fields.wakeWord': '唤醒词',
  'settings.adapters.fields.silenceTimeoutMs': '静音超时（ms）',
  'settings.adapters.fields.maxCaptureSecs': '最大录音时长（秒）',
  'settings.adapters.fields.energyThreshold': '能量阈值',

  'settings.adapters.fields.cli': '启用 CLI 通道',
  'settings.adapters.fields.messageTimeoutSecs': '消息超时（秒）',
  'settings.adapters.fields.ackReactions': '回执表情',
  'settings.adapters.fields.showToolCalls': '在聊天中展示工具调用',
  'settings.adapters.fields.sessionPersistence': '持久化通道会话',
  'settings.adapters.fields.sessionBackend': '会话后端',
  'settings.adapters.fields.sessionTtlHours': '会话 TTL（小时）',
  'settings.adapters.fields.debounceMs': '入站合并防抖（ms）',

  'settings.adapters.placeholders.telegramBotToken': '从 @BotFather 复制的 Token',
  'settings.adapters.placeholders.discordBotToken': 'Discord Developer Portal 的 Bot Token',
  'settings.adapters.placeholders.slackBotToken': 'xoxb-...',
  'settings.adapters.placeholders.slackAppToken': 'xapp-...（仅 Socket Mode）',
  'settings.adapters.placeholders.feishuAppId': 'cli_xxxxxxxxxxxx',
  'settings.adapters.placeholders.mattermostUrl': 'https://mattermost.example.com',
  'settings.adapters.placeholders.matrixHomeserver': 'https://matrix.org',
  'settings.adapters.placeholders.matrixRoomId': '!abc123:matrix.org',
  'settings.adapters.placeholders.signalHttpUrl': 'http://127.0.0.1:8686',
  'settings.adapters.placeholders.signalAccount': '+15551234567',
  'settings.adapters.placeholders.ircServer': 'irc.libera.chat',
  'settings.adapters.placeholders.ircChannels': '#sen, #ai',
  'settings.adapters.placeholders.allowedContacts': '+15551234567, friend@icloud.com',
  'settings.adapters.placeholders.nextcloudBaseUrl': 'https://cloud.example.com',
  'settings.adapters.placeholders.nostrPrivateKey': 'nsec1... 或 64 位 hex',
  'settings.adapters.placeholders.wecomWebhookKey': '企业微信机器人配置中的 Webhook Key',
  'settings.adapters.placeholders.gmailTopic': 'projects/your-project/topics/gmail-watch',
  'settings.adapters.placeholders.listenPath': '/webhook',
  'settings.adapters.placeholders.imapHost': 'imap.gmail.com',
  'settings.adapters.placeholders.smtpHost': 'smtp.gmail.com',
  'settings.adapters.placeholders.fromAddress': 'sen@example.com',
  'settings.adapters.placeholders.watiApiUrl': 'https://live-mt-server.wati.io',
  'settings.adapters.placeholders.blueskyHandle': 'mybot.bsky.social',
  'settings.adapters.placeholders.proxyUrl': 'socks5://127.0.0.1:1080',
  'settings.adapters.placeholders.e164': '+15551234567',
  'settings.adapters.placeholders.wakeWord': 'hey sen',

  'settings.adapters.hints.telegramAllowedUsers': '逗号分隔的 Telegram 用户 ID（数字）。留空 = 拒绝所有人。',
  'settings.adapters.hints.discordAllowedUsers': '逗号分隔的 Discord 用户 ID。留空 = 拒绝所有人。',
  'settings.adapters.hints.discordGuildId': '把机器人限制在单个 Guild（服务器）。可选。',
  'settings.adapters.hints.discordChannelIds': '只在这些频道 ID 内记录历史。留空 = 全部频道。',
  'settings.adapters.hints.feishuAllowedUsers': '逗号分隔的 Open ID / Union ID。"*" = 允许所有人。',
  'settings.adapters.hints.mentionOnly': '群聊中只在被 @ 时回复。私信总是处理。',
  'settings.adapters.hints.interruptOnNewMessage': '同一发件人发新消息会取消当前正在生成的回复。',
  'settings.adapters.hints.listenToBots': '处理来自其他机器人的消息。建议关闭以避免循环。',
  'settings.adapters.hints.useFeishu': '切换到中文飞书开放平台端点；关闭则走国际版 Lark。',
  'settings.adapters.hints.webhookPortLark': '只有 receive mode = "webhook" 时需要；WebSocket 模式忽略。',
  'settings.adapters.hints.streamingCard': '在飞书卡片中实时更新内容；关闭则发送增量消息。',
  'settings.adapters.hints.ackReactionsOverride': '为这个通道单独覆盖全局的回执表情设置。',
  'settings.adapters.hints.matrixRecoveryKey': '设置后启动时会自动恢复 Matrix 房间密钥与跨签名密钥。',
  'settings.adapters.hints.signalGroupId': '"dm" = 仅私信；具体群组 ID = 仅该群；留空 = 所有消息。',
  'settings.adapters.hints.allowedContacts': '手机号（E.164）或邮箱地址。空列表会拒绝所有人。',
  'settings.adapters.hints.botName': '用于过滤机器人自己发的消息，避免回声循环。',
  'settings.adapters.hints.nostrRelays': '逗号分隔的 wss:// relay URL。留空使用内置默认。',
  'settings.adapters.hints.whatsappCloudOnly': '只有 Cloud API 模式（Meta Business）才需要。',
  'settings.adapters.hints.whatsappWebOnly': '只有 Web 模式才需要 — 指向 wa-rs 会话数据库的路径。',
  'settings.adapters.hints.whatsappPairPhone': '国家区号 + 号码，例如 8615555550123。留空走扫码配对。',
  'settings.adapters.hints.idleTimeoutSecs': 'IMAP IDLE 重连窗口。RFC 2177 建议 1740 秒（29 分钟）。',
  'settings.adapters.hints.emailAllowedSenders': '逗号分隔。"*" = 允许所有人；"@example.com" = 整个域。',
  'settings.adapters.hints.gmailLabelFilter': '逗号分隔。默认监听 INBOX。',
  'settings.adapters.hints.sendUrl': '设置后回复会被 POST/PUT 到这里。留空 = 仅接收。',
  'settings.adapters.hints.webhookSecret': 'HMAC-SHA256 共享密钥。设置后入站请求必须匹配签名。',
  'settings.adapters.hints.redditUsername': '不要带 "u/" 前缀。',
  'settings.adapters.hints.voiceAccountId': 'Account SID（Twilio）/ API Key（Telnyx）/ Auth ID（Plivo）。',
  'settings.adapters.hints.ttsVoice': '运营商专属语音 ID。留空使用默认语音。',
  'settings.adapters.hints.webhookBaseUrl': '运营商可访问的公网 URL。本地开发可用 ngrok / Tailscale 隧道。',
  'settings.adapters.hints.allowedDestinations': '号码、前缀或 "*" 允许任何目的。',
  'settings.adapters.hints.energyThreshold': '低于该 RMS 能量视为静音。值越小越灵敏。',

  'settings.adapters.hints.cli': '启用后可在终端 CLI 直接与 Agent 对话。',
  'settings.adapters.hints.messageTimeoutSecs': '所有通道共用的单轮预算。工具循环嵌套时会按需放大到 4×。',
  'settings.adapters.hints.ackReactions': '收到时加 ⏳，完成时加 ✅。各通道可单独覆盖。',
  'settings.adapters.hints.showToolCalls': '把 "🔧 tool_name: ✓" 通知转发到聊天客户端。',
  'settings.adapters.hints.sessionPersistence': '把通道会话历史落盘，使会话可跨守护进程重启恢复。',
  'settings.adapters.hints.sessionTtlHours': '空闲时长超过该值的会话自动归档。0 = 关闭。',
  'settings.adapters.hints.debounceMs': '把同一发件人的连续消息合并为一轮。0 = 关闭。',

  'settings.adapters.streamMode.off': '关闭 — 单条消息',
  'settings.adapters.streamMode.partial': 'Partial — 实时编辑草稿',
  'settings.adapters.streamMode.multi': 'Multi-message — 按段落发送',
  'settings.adapters.whatsappMode.business': 'Business — 命中允许列表的所有人都回复',
  'settings.adapters.whatsappMode.personal': 'Personal — 应用 DM/群聊策略',
  'settings.adapters.whatsappPolicy.allowlist': '仅允许列表',
  'settings.adapters.whatsappPolicy.ignore': '忽略',
  'settings.adapters.whatsappPolicy.all': '全部',
  'settings.adapters.larkReceive.websocket': 'WebSocket（长连接）',
  'settings.adapters.larkReceive.webhook': 'Webhook（HTTP 回调）',
  'settings.adapters.voiceProvider.twilio': 'Twilio',
  'settings.adapters.voiceProvider.telnyx': 'Telnyx',
  'settings.adapters.voiceProvider.plivo': 'Plivo',
  'settings.adapters.sessionBackend.sqlite': 'SQLite（默认）',
  'settings.adapters.sessionBackend.jsonl': 'JSONL（旧版）',
  'settings.adapters.httpMethod.post': 'POST',
  'settings.adapters.httpMethod.put': 'PUT',

  'settings.mcp.title': 'MCP 服务',
  'settings.mcp.description': '在桌面端直接管理外部工具与数据源。你可以添加、编辑、重连或禁用 MCP 服务。',
  'settings.mcp.addServer': '添加服务',
  'settings.mcp.empty': '还没有配置 MCP 服务',
  'settings.mcp.emptyHint': '先添加一个自定义的 STDIO、HTTP 或 SSE MCP 服务。',
  'settings.mcp.stats.total': '服务总数',
  'settings.mcp.stats.connected': '当前已连接',
  'settings.mcp.stats.attention': '需要处理',
  'settings.mcp.scope.project': '项目共享',
  'settings.mcp.scope.local': '项目私有',
  'settings.mcp.scope.user': '全局用户',
  'settings.mcp.scope.plugin': '插件',
  'settings.mcp.scopeDesc.local': '只对你自己生效，但绑定到某一个项目。配置写在用户配置里，同时带上选中的项目上下文。',
  'settings.mcp.scopeDesc.project': '写入选中项目的 `.mcp.json`，项目成员共享。',
  'settings.mcp.scopeDesc.user': '写入你的全局 Sen 配置，对所有项目生效。',
  'settings.mcp.scope.dynamic': '内置',
  'settings.mcp.scope.enterprise': '企业托管',
  'settings.mcp.scope.claudeai': 'Sen.ai',
  'settings.mcp.scope.managed': '受管控',
  'settings.mcp.transport.http': 'Streamable HTTP',
  'settings.mcp.globalOnlyHint': '这个页面只管理全局用户 MCP，以保证速度和清晰度。项目级 MCP 将放到聊天页的斜杠命令体验里。',
  'settings.mcp.form.back': '返回服务列表',
  'settings.mcp.form.createTitle': '连接自定义 MCP',
  'settings.mcp.form.createHint': '按当前 SenWeaverCoding 支持的字段添加一个自定义 MCP 服务。',
  'settings.mcp.form.editTitle': '更新 {name} MCP',
  'settings.mcp.form.editHint': '查看连接信息、保存修改，或直接在桌面端重连这个服务。',
  'settings.mcp.form.transportLocked': '如果你想切换 MCP 服务类型，请先卸载后重新添加。',
  'settings.mcp.form.uninstall': '卸载',
  'settings.mcp.form.reconnect': '重连',
  'settings.mcp.form.save': '保存',
  'settings.mcp.form.name': '名称',
  'settings.mcp.form.namePlaceholder': 'MCP 服务名称',
  'settings.mcp.form.scope': '配置范围',
  'settings.mcp.form.transport': '传输方式',
  'settings.mcp.form.status': '状态',
  'settings.mcp.form.location': '配置位置',
  'settings.mcp.form.rawConfig': '原始配置',
  'settings.mcp.form.command': '启动命令',
  'settings.mcp.form.commandPlaceholder': 'npx',
  'settings.mcp.form.commandHostHint': 'STDIO MCP 命令会直接在宿主机上运行。像 Node.js、Python、Bun、uv 这类运行时需要用户自己安装，并确保这个命令在 PATH 里可用。',
  'settings.mcp.form.arguments': '参数',
  'settings.mcp.form.argumentPlaceholder': 'chrome-devtools-mcp@latest',
  'settings.mcp.form.addArgument': '添加参数',
  'settings.mcp.form.environmentVariables': '环境变量',
  'settings.mcp.form.addEnv': '添加环境变量',
  'settings.mcp.form.keyPlaceholder': '键',
  'settings.mcp.form.valuePlaceholder': '值',
  'settings.mcp.form.url': 'URL',
  'settings.mcp.form.sseUrl': 'SSE 地址',
  'settings.mcp.form.urlPlaceholder': 'https://mcp.example.com/mcp',
  'settings.mcp.form.headers': '请求头',
  'settings.mcp.form.addHeader': '添加请求头',
  'settings.mcp.form.oauthClientId': 'OAuth Client ID',
  'settings.mcp.form.oauthClientIdPlaceholder': '可选 Client ID',
  'settings.mcp.form.oauthCallbackPort': 'OAuth 回调端口',
  'settings.mcp.form.oauthCallbackPortPlaceholder': '可选固定回调端口',
  'settings.mcp.form.headersHelper': 'Headers Helper 脚本',
  'settings.mcp.form.headersHelperPlaceholder': '可选的辅助脚本路径',
  'settings.mcp.form.deleteTitle': '删除 MCP 服务',
  'settings.mcp.form.cancel': '取消',
  'settings.mcp.form.confirmDelete': '删除',
  'settings.mcp.form.deleteConfirm': '确定删除 MCP 服务 “{name}” 吗？此操作不可撤销。',
  'settings.mcp.form.deleteConfirmBody': '确定删除 MCP 服务 “{name}” 吗？此操作不可撤销。',
  'settings.mcp.targetProject.title': '目标项目',
  'settings.mcp.targetProject.selected': '当前展示的是这个项目下的私有/共享 MCP：{path}',
  'settings.mcp.targetProject.empty': '先选择一个项目，才能查看项目私有或项目共享的 MCP。',
  'settings.mcp.targetProject.emptyWithCurrent': '请先选择目标项目。当前激活会话的项目是：{path}',
  'settings.mcp.targetProject.localSelected': '这个 MCP 会作为“项目私有”安装到：{path}',
  'settings.mcp.targetProject.localEmpty': '请选择要安装这个私有 MCP 的项目。',
  'settings.mcp.targetProject.projectSelected': '这个 MCP 会写入：{path}/.mcp.json，作为项目共享配置。',
  'settings.mcp.targetProject.projectEmpty': '请选择要写入 `.mcp.json` 的项目。',
  'settings.mcp.targetProject.globalTitle': '全局安装目标',
  'settings.mcp.targetProject.globalHint': '全局用户不需要选择项目。它会写入你的全局 Sen 配置，并对所有项目生效。',
  'settings.mcp.toast.created': '已创建 MCP 服务 “{name}”',
  'settings.mcp.toast.saved': '已保存 MCP 服务 “{name}”',
  'settings.mcp.toast.deleted': '已删除 MCP 服务 “{name}”',
  'settings.mcp.toast.enabled': '已启用 MCP 服务 “{name}”',
  'settings.mcp.toast.disabled': '已禁用 MCP 服务 “{name}”',
  'settings.mcp.toast.reconnected': '已重连 MCP 服务 “{name}”',
  'settings.mcp.toast.saveFailed': '保存 MCP 服务失败',
  'settings.mcp.toast.deleteFailed': '删除 MCP 服务失败',
  'settings.mcp.toast.toggleFailed': '更新 MCP 服务状态失败',
  'settings.mcp.toast.reconnectFailed': '重连 MCP 服务失败',

  'settings.skills.title': '已安装技能',
  'settings.skills.description': '技能扩展 Sen 的能力。在 ~/.sen/skills/ 中管理技能。',
  'settings.skills.browserTitle': '浏览已安装技能',
  'settings.skills.browserEyebrow': '技能浏览器',
  'settings.skills.browserDescription': '查看内置、项目和用户技能，比较它们的来源与规模，并打开技能目录阅读文档和源码文件。',
  'settings.skills.entryEyebrow': '技能入口',
  'settings.skills.slashCommand': '/斜杠命令',
  'settings.skills.alwaysApplyBadge': '始终应用',
  'settings.skills.alwaysApplyHint':
    '该 skill 声明了 alwaysApply: true，即使在 compact 模式下也会被完整注入系统提示。',
  'settings.skills.newButton': '新建技能',
  'settings.skills.newDialogTitle': '新建用户技能',
  'settings.skills.fieldName': '技能名称（目录名）',
  'settings.skills.namePlaceholder': '例如 code-review',
  'settings.skills.nameHint':
    '仅支持字母、数字、横线和下划线。将创建为 ~/.senweavercoding/skills/<name>/SKILL.md。',
  'settings.skills.nameInvalid': '名称非法。仅支持 ASCII 字母、数字、"-" 或 "_"（不能包含空格或路径符号）。',
  'settings.skills.fieldContent': 'SKILL.md 内容',
  'settings.skills.createButton': '创建',
  'settings.skills.createdToast': '技能已创建。',
  'settings.skills.deletedToast': '技能已删除。',
  'settings.skills.deleteFailed': '删除技能失败',
  'settings.skills.dropHint':
    '提示：将一个 skill 目录（内含 SKILL.md）或单个 .md 文件拖到此处即可安装。',
  'settings.skills.dropOverlayTitle': '松开以安装技能',
  'settings.skills.dropOverlayHint':
    '可拖入完整 skill 目录（包含 SKILL.md）或单个 .md 文件',
  'settings.skills.installing': '安装中…',
  'settings.skills.installSummary': '已安装 {count} 个技能。',
  'settings.skills.installFailed': '技能安装失败',
  'settings.skills.conflictTitle': '同名技能已存在，是否覆盖？',
  'settings.skills.conflictTitlePlural': '存在多个同名技能，是否全部覆盖？',
  'settings.skills.conflictBody':
    '以下技能名称已存在于用户技能目录中，安装将覆盖原有内容：',
  'settings.skills.conflictOverwrite': '覆盖',
  'settings.skills.conflictKeepBoth': '保留双方',
  'settings.skills.renamedToast': '已重命名为 “{name}” 以避免与同名技能冲突。',
  'settings.skills.deleteConfirmTitle': '确定要删除该技能？',
  'settings.skills.deleteConfirmBody':
    '"{name}" 对应的目录将从 ~/.senweavercoding/skills 永久删除，此操作不可撤销。',
  'settings.skills.tokenEstimate': '约 {count} tokens',
  'settings.skills.tokenEstimateShort': '约 {count}',
  'settings.skills.summary.totalSkills': '技能总数',
  'settings.skills.summary.totalFiles': '文件数',
  'settings.skills.summary.sources': '来源类型',
  'settings.skills.summary.tokens': '预估 tokens',
  'settings.skills.summary.source': '来源',
  'settings.skills.summary.entry': '入口文件',
  'settings.skills.groupHint': '{source}中有 {count} 个技能可用',
  'settings.skills.ready': '可查看',
  'settings.skills.unavailable': '不可用',
  'settings.skills.empty': '暂无已安装技能',
  'settings.skills.emptyHint': '在 ~/.senweavercoding/skills/ 中添加技能即可开始',
  'settings.skills.openDirectory': '打开 Skills 目录',
  'settings.skills.openFailed': '打开 Skills 目录失败',
  'settings.skills.back': '返回列表',
  'settings.skills.files': '个文件',
  'settings.skills.entryFile': '入口文件',
  'settings.skills.metaTitle': '技能元数据',
  'settings.skills.filesPanel': '文件',
  'settings.skills.filesPanelHint': '浏览入口文件及其配套实现文件。',
  'settings.skills.readingMode': '当前为{mode}',
  'settings.skills.docMode': '文档模式',
  'settings.skills.codeMode': '代码模式',
  'settings.skills.source.user': '用户',
  'settings.skills.source.project': '项目',
  'settings.skills.source.plugin': '插件',
  'settings.skills.source.mcp': 'MCP',
  'settings.skills.source.bundled': '内置',

  'settings.plugins.title': '已安装插件',
  'settings.plugins.description': '查看已安装插件、运行状态，并把插件变更应用到桌面端运行时。',
  'settings.plugins.browserTitle': '浏览已安装插件',
  'settings.plugins.browserEyebrow': '插件管理',
  'settings.plugins.browserDescription': '插件会把技能、Agent、Hook、MCP 服务和语言工具打包在一起。这里先聚焦已安装插件、健康状态和应用变更反馈，不把 CLI 的整套复杂交互直接搬过来。',
  'settings.plugins.entryEyebrow': '插件详情',
  'settings.plugins.summary.total': '插件总数',
  'settings.plugins.summary.enabled': '已启用',
  'settings.plugins.summary.attention': '需关注',
  'settings.plugins.summary.marketplaces': '市场',
  'settings.plugins.summary.skills': '技能',
  'settings.plugins.summary.agents': 'Agents',
  'settings.plugins.summary.mcp': 'MCP',
  'settings.plugins.summary.hooks': 'Hooks',
  'settings.plugins.group.attention': '需关注',
  'settings.plugins.group.enabled': '已启用',
  'settings.plugins.group.disabled': '已禁用',
  'settings.plugins.groupHint': '此分组下共有 {count} 个插件',
  'settings.plugins.refresh': '刷新',
  'settings.plugins.apply': '应用变更',
  'settings.plugins.applyHint': '启用、禁用或更新后，需要把插件变更重新应用到当前桌面端运行时。',
  'settings.plugins.lastReload': '最近一次应用：{enabled} 个活跃插件，{skills} 个插件技能，{errors} 个错误。',
  'settings.plugins.reloadToast': '插件变更已应用：{enabled} 个活跃插件，{skills} 个技能，{errors} 个错误。',
  'settings.plugins.marketplacesTitle': '已知插件市场',
  'settings.plugins.marketplacesHint': '这里只展示当前机器已经配置好的 marketplace 来源摘要。',
  'settings.plugins.marketplaceAutoUpdateOn': '自动更新开',
  'settings.plugins.marketplaceAutoUpdateOff': '自动更新关',
  'settings.plugins.marketplaceInstalledCount': '已安装 {count} 个',
  'settings.plugins.marketplaceUpdatedAt': '更新于 {value}',
  'settings.plugins.status.enabled': '已启用',
  'settings.plugins.status.disabled': '已禁用',
  'settings.plugins.status.attention': '需关注',
  'settings.plugins.scope.user': '用户',
  'settings.plugins.scope.project': '项目',
  'settings.plugins.scope.local': '本地',
  'settings.plugins.scope.managed': '托管',
  'settings.plugins.scope.builtin': '内置',
  'settings.plugins.empty': '暂无已安装插件',
  'settings.plugins.emptyHint': '通过 SenWeaverCoding 安装插件，就可以在这里管理。',
  'settings.plugins.runtimeUnavailable': '当前构建未编译插件运行时',
  'settings.plugins.runtimeUnavailableHint': '此构建未启用 plugins-wasm 特性，因此无法在此加载或管理插件。',
  'settings.plugins.back': '返回列表',
  'settings.plugins.noDescription': '这个插件没有可用描述。',
  'settings.plugins.errorCount': '{count} 个错误',
  'settings.plugins.enable': '启用',
  'settings.plugins.disable': '禁用',
  'settings.plugins.update': '更新',
  'settings.plugins.uninstall': '卸载',
  'settings.plugins.confirmUninstall': '确定卸载插件“{name}”吗？会删除当前 scope 下的安装副本。',
  'settings.plugins.author': '作者：{value}',
  'settings.plugins.projectPath': '项目：{value}',
  'settings.plugins.installPath': '安装位置：{value}',
  'settings.plugins.managedHint': '这个插件由策略托管，不能在桌面端修改。',
  'settings.plugins.builtinHint': '内置插件支持在这里重新应用，但不开放安装和卸载操作。',
  'settings.plugins.errorsTitle': '插件错误',
  'settings.plugins.capabilitiesTitle': '打包能力',
  'settings.plugins.capabilitiesHint': '根据插件 manifest 和运行时集成解析出的能力列表。',
  'settings.plugins.sharedNavigationDisabled': '先启用插件并应用变更，才能在共享管理页中打开它的技能、Agent 或 MCP 条目。',
  'settings.plugins.capabilityEmpty': '没有暴露',
  'settings.plugins.capability.skills': '{count} 个技能',
  'settings.plugins.capability.agents': '{count} 个 Agent',
  'settings.plugins.capability.mcpServers': '{count} 个 MCP 服务',
  'settings.plugins.capabilityLabel.skills': '技能',
  'settings.plugins.capabilityLabel.commands': '命令',
  'settings.plugins.capabilityLabel.agents': 'Agents',
  'settings.plugins.capabilityLabel.hooks': 'Hooks',
  'settings.plugins.capabilityLabel.mcpServers': 'MCP 服务',
  'settings.plugins.capabilityLabel.lspServers': 'LSP 服务',

  'settings.general.appearanceTitle': '配色主题',
  'settings.general.appearanceDescription': '在亮色与暗色工作区之间切换，不影响原有亮色主题。',
  'settings.general.appearance.light': '亮色',
  'settings.general.appearance.dark': '暗色',
  'settings.general.languageTitle': '语言',
  'settings.general.languageDescription': '选择应用程序的显示语言。',
  'settings.general.effortTitle': '推理强度',
  'settings.general.effortDescription': '控制模型使用的计算量。',
  'settings.general.effort.low': '低',
  'settings.general.effort.medium': '中',
  'settings.general.effort.high': '高',
  'settings.general.effort.max': '最大',
  'settings.general.securityPolicyTitle': '安全策略',
  'settings.general.securityPolicyDescription': '关闭后将仅保留逐工具的执行权限审批。命令白名单、风险等级阻断、路径限制、输出重定向限制等约束都会被跳过。',
  'settings.general.securityPolicyToggle': '启用安全策略',
  'settings.general.securityPolicyEnabledHint': '已启用：命令白名单、风险等级、工作区边界等限制全部生效。',
  'settings.general.securityPolicyDisabledHint': '已关闭：仅保留执行权限的逐次审批，其余命令/路径限制全部跳过。',
  'settings.general.syncTitle': '设置同步',
  'settings.general.syncDescription': '将当前设置导出为 JSON 快照文件，或导入快照并应用到本设备。',
  'settings.general.syncExport': '导出快照',
  'settings.general.syncImport': '导入快照',
  'settings.general.syncExported': '设置快照已导出。',
  'settings.general.syncImported': '设置快照已导入。',
  'settings.general.closeBehaviorTitle': '关闭按钮行为',
  'settings.general.closeBehaviorDescription': '选择点击窗口关闭按钮时的行为。',
  'settings.general.closeBehavior.minimize': '最小化到托盘',
  'settings.general.closeBehavior.exit': '退出应用',
  'settings.general.closeBehavior.ask': '每次询问',
  'close.prompt.title': '关闭 SenWeaverCoding',
  'close.prompt.desc': '你想最小化到系统托盘，还是退出应用？',
  'close.prompt.minimize': '最小化到托盘',
  'close.prompt.minimizeHint': '应用将在后台继续运行，点击托盘图标可重新打开。',
  'close.prompt.exit': '退出应用',
  'close.prompt.exitHint': '退出前会停止正在运行的助手并保存其进度。',
  'close.prompt.dontAskAgain': '不再提示',
  'close.prompt.confirm': '确认',
  'close.prompt.cancel': '取消',
  'close.saving.title': '退出前正在保存',
  'close.saving.desc': '正在等待运行中的助手安全保存进度…',
  'close.saving.remaining': '仍有 {count} 个助手在运行',
  'close.saving.forceQuit': '强制退出',
  'tray.show': '显示主窗口',
  'tray.quit': '退出',
  'tray.tooltip': 'SenWeaverCoding',

  'empty.title': '新建智能体',
  'empty.subtitle': '启动一个新的智能体协助你完成编码任务。Sen 已准备好帮你构建、调试和架构你的项目。',
  'empty.placeholder': '规划、构建，输入 / 调用命令，输入 @ 引用上下文',
  'empty.addFiles': '添加文件或图片',
  'empty.slashCommands': '斜杠命令',
  'empty.failedToCreate': '创建智能体失败',

  'chat.placeholder': '规划、构建，输入 / 调用命令，输入 @ 引用上下文',
  'chat.scrollToLatest': '回到最新',
  'chat.scrollToLatestTooltip': '滚动到最新的消息',
  'chat.placeholderMissing': '此智能体指向的工作目录缺失。请新建智能体或选择其他项目。',
  'chat.addFiles': '添加文件或图片',
  'chat.slashCommands': '斜杠命令',
  'slash.mcp.title': '可用 MCP 工具',
  'slash.mcp.subtitle': '展示当前聊天上下文里的全局 MCP 和当前项目 MCP。',
  'slash.mcp.subtitleWithProject': '当前展示全局 MCP 以及这个项目的 MCP：{path}',
  'slash.mcp.emptyTitle': '没有可用的 MCP 服务',
  'slash.mcp.emptyBody': '当前聊天上下文里没有可用的全局或项目 MCP 服务。',
  'slash.mcp.projectBadge': '项目：{name}',
  'slash.skills.title': '可用技能',
  'slash.skills.subtitle': '展示当前上下文里可直接调用的技能。',
  'slash.skills.subtitleWithProject': '当前展示项目下的技能：{path}',
  'slash.skills.emptyTitle': '没有可用技能',
  'slash.skills.emptyBody': '当前上下文里没有找到可直接调用的技能。',
  'slash.plugins.title': '插件',
  'slash.plugins.subtitle': '插件管理后续会接到这个斜杠命令面板里。',
  'slash.plugins.emptyTitle': '插件面板即将接入',
  'slash.plugins.emptyBody': '这套共享的斜杠命令面板已经接通，插件数据下一步接进来。',
  'chat.navigate': '导航',
  'chat.select': '选择',
  'chat.dismiss': '关闭',
  'chat.stopTitle': '停止生成 (Cmd+.)',
  'chat.stopping': '正在停止...',
  'chat.willResumeWhenWorkersFinish': '子智能体完成后将自动继续',
  'chat.workers.runningCount': '{count} 个子智能体运行中',
  'chat.workers.openDetail': '查看详情',
  'chat.workers.stopWorker': '停止',
  'chat.workers.stopAll': '全部停止',
  'chat.workers.spawnVerb': '已创建',
  'chat.tokenRing.tooltip': '{pct}% · 已使用 {used} / {total} 上下文',
  'chat.tokenRing.tooltipCycled': '{pct}% · 已使用 {used} / {total} 上下文 · 第 {cycle} 轮',
  'chat.rewindAction': '回滚到这里',
  'chat.rewindModalTitle': '回滚对话',
  'chat.rewindConfirm': '执行回滚',
  'chat.rewindPromptLabel': '目标提示词',
  'chat.rewindAttachmentOnly': '这条消息只包含附件。',
  'chat.rewindLoading': '正在检查这一轮的文件检查点...',
  'chat.loadHistoryFailed': '加载会话历史失败,请检查连接后重新打开该会话。',
  'chat.connectionLost': '连接已断开，重连尝试已用尽。',
  'chat.persistLag': '会话持久化暂时滞后，最近的消息已排队，稍后会自动保存。',
  'chat.reconnect': '重新连接',
  'statusBar.reconnecting': '重连中',
  'statusBar.disconnected': '已断开',
  'chat.contextCompressed': '上下文已压缩以适配模型窗口',
  'chat.rewindConversationCardTitle': '对话回滚',
  'chat.rewindConversationCardBody': '移除这条提示词以及其后的 {count} 条活跃消息，并把输入框恢复到这个位置。',
  'chat.rewindCodeCardTitle': '代码回滚',
  'chat.rewindCodeFiles': '将恢复 {count} 个文件',
  'chat.rewindCodeInsertions': '将移除 {count} 行新增',
  'chat.rewindCodeDeletions': '将恢复 {count} 行删除',
  'chat.rewindCodeUnavailable': '这条提示词没有可用的文件检查点，仍然可以只回滚对话。',
  'chat.rewindFilesLabel': '受影响文件',
  'chat.rewindFilesMore': '另有 {count} 个',
  'chat.rewindSuccessWithCode': '已回滚 {count} 条消息，并恢复相关文件。',
  'chat.rewindSuccessConversationOnly': '已回滚 {count} 条消息。这一轮没有可用的文件检查点。',
  'chat.rewindActionShort': '回退到此处',
  'chat.rewindModalTitleSubmit': '从上一条消息处发送？',
  'chat.rewindModalBody': '从上一条消息处发送将把 {fileCount} 处文件修改回滚到该消息之前，并清除其后的 {messageCount} 条消息。',
  'chat.rewindModalBodyNoFiles': '从上一条消息处发送将清除其后的 {messageCount} 条消息。本次没有需要回滚的文件修改。',
  'chat.rewindContinueOnly': '继续，不回滚文件',
  'chat.rewindContinueAndRevert': '继续并回滚文件',
  'chat.editPromptHint': '点击编辑并重新发送',
  'chat.errorDetails': '查看详细错误',
  'chat.restoreLastConversation': '恢复到上次使用',
  'chat.restoreConfirmTitle': '恢复之前的对话',
  'chat.restoreConfirmBody': '此操作会重新应用 {fileCount} 处文件变更，并恢复刚才被取消的对话内容。',
  'chat.restoreConfirmBodyNoFiles': '此操作将恢复刚才被取消的对话内容，本次没有需要重新应用的文件变更。',
  'chat.restoreConfirmConfirm': '恢复',
  'chat.sendAfterRewindTitle': '确认放弃已取消的对话？',
  'chat.sendAfterRewindBody': '发送后将永久删除已取消的消息，并保留刚刚回滚的 {fileCount} 处文件变更，此操作无法撤销。',
  'chat.sendAfterRewindBodyNoFiles': '发送后将永久删除已取消的消息，此操作无法撤销。',
  'chat.sendAfterRewindConfirm': '发送并放弃',
  'chat.messageMoreActions': '消息操作',
  'chat.forkChat': '分叉会话',
  'chat.copyMessage': '复制消息',
  'chat.copyMessageToast': '已复制消息',
  'chat.copyFailedToast': '复制失败',
  'chat.forkChatToast': '已用相同工作区新建智能体',

  'streaming.thinking': '思考中',
  'streaming.running': '运行中',
  'streaming.working': '工作中',

  'permission.allowEditFile': '允许 Sen {toolName} {fileName}？',
  'permission.allowEditFileGeneric': '允许 Sen {toolName}此文件？',
  'permission.allowBash': '允许 Sen 执行此命令？',
  'permission.allowTool': '允许 Sen 使用 {toolName}？',
  'permission.awaitingApproval': '等待审批',
  'permission.responded': '已响应',
  'permission.allow': '允许',
  'permission.allowForSession': '本次会话允许',
  'permission.deny': '拒绝',
  'permission.switchToSession': '打开该会话',
  'permission.pendingApproval': '等待你的审批',
  'permission.hideDetails': '隐藏详情',
  'permission.showFullInput': '显示完整输入',
  'permission.replacingContent': '替换文件内容',

  'question.needsInput': 'Sen 需要你的输入',
  'question.answered': '已回答',
  'question.customResponse': '或输入自定义回复:',
  'question.typePlaceholder': '输入你的回答...',
  'question.submit': '提交',
  'question.answeredPrefix': '已回答: ',
  'question.unparsableTitle': '无法解析该问题，下方为原始请求内容。',

  'plan.questionsTitle': '问题',
  'plan.questionPagination': '第 {current} / {total}',
  'plan.skip': '跳过',
  'plan.continue': '继续',
  'plan.skipKey': 'Esc',
  'plan.continueKey': '\u23CE',
  'plan.multiSelectHint': '可多选',
  'composer.askDetailsPlaceholder': '补充更多可选信息',
  'composer.contextRef.remove': '移除引用',
  'composer.dropToReference': '释放以引用到此处',
  'composer.queue.title': '对话排队 {count} 条',
  'composer.queue.waitingFor': '等待 “{title}” 完成',
  'composer.queue.cancelAll': '全部取消',
  'composer.queue.autoSendHint': '将在当前对话结束后自动按顺序发送',
  'composer.queue.itemAttachments': '{count} 个附件',

  'plan.answersTitle': '回答',
  'plan.skippedAnswer': '（已跳过）',

  'plan.viewPlan': '查看计划',
  'plan.build': '构建',
  'plan.buildShortcut': 'Ctrl+\u23CE',
  'plan.writingPlan': '正在编写计划…',
  'plan.untitledPlan': '未命名计划',
  'plan.todosCount': '{count} 项待办',
  'plan.todosShowMore': '\u00B7\u00B7\u00B7 还有 {count} 项',

  'plan.executing': '执行中',
  'plan.hydrating': '同步中',
  'plan.hydratingDetail': '正在等待 Agent 确认实时计划列表。上方步骤数来自已保存的计划文档，第一次状态更新后会自动刷新为实际执行使用的步骤。',
  'plan.copyPath': '复制计划文件路径：\n{path}',
  'plan.copyPathDone': '路径已复制',
  'plan.completed': '已完成',
  'plan.progressCardTitle': '计划进度 · 已完成',
  'plan.stickyProgress': '{completed}/{total}',
  'plan.stickySucceeded': '({succeeded} 成功)',
  'plan.stickyProgressTitle': '{completed} 完成 + {cancelled} 跳过/取消，共 {total} 项',
  'plan.incomplete': '已停止',
  'plan.resume': '继续执行',
  'plan.resumeTitle': '从下一个未完成的步骤继续执行',

  'plan.modeSwitchTitle': 'Agent 模式',
  'plan.modeSwitchBody': '用户已确认开始实施，需要切换到 Agent 模式以执行代码修改、cargo check 等非只读操作。',
  'plan.modeSwitchSwitch': '切换',
  'plan.modeSwitchSwitchShortcut': '\u2303\u23CE',
  'plan.modeSwitchAlwaysAsk': '总是询问',
  'plan.modeSwitchSwitched': '已切换到 Agent 模式',
  'plan.modeSwitchDismissed': '已取消',

  'plan.blockedTitle': 'Plan 模式已拦截',
  'plan.blockedBody': '模型尝试调用 {tools}。Plan 模式仅允许只读探索 + update_plan / exit_plan_mode / ask_question，请求已在执行前被拒绝，未对任何文件造成改动。',

  'modeBlocked.readOnly.title': '只读模式已拦截',
  'modeBlocked.readOnly.body': '模型尝试调用 {tools}，但当前模式仅允许只读操作。请求已被拦截，未对任何文件或环境造成改动。如需写入，请切换到允许写入的编程模式。',
  'modeBlocked.toolNotAllowed.title': '当前模式不允许该工具',
  'modeBlocked.toolNotAllowed.body': '{tools} 不在当前编程模式的工具白名单内。请求已被拦截。请切换到包含该工具的模式，或选择其他工具完成任务。',

  'execTool.openFullLog': '在终端面板查看完整日志',
  'execTool.stop': '停止该命令',

  'thinking.wordThought': '思考',
  'thinking.wordThinking': '思考中',
  'thinking.durationForSeconds': ' {seconds} 秒',

  'chat.planningNextMoves': 'Planning next moves',

  'chat.retry.title': '正在重连（{label}），稍候即可恢复…',
  'chat.retry.attempt': '第 {attempt} 次',
  'chat.retry.engineOverloaded': '官方接口繁忙',
  'chat.retry.accountRateLimited': '账户配额恢复中',
  'chat.retry.transient': '网络波动',
  'chat.retry.stopButton': '停止',
  'chat.taskNotification.completed': '后台任务已完成',
  'chat.taskNotification.failed': '后台任务失败',
  'chat.taskNotification.stopped': '后台任务已停止',
  'chat.taskNotification.openResult': '打开结果',
  'chat.taskNotification.dismiss': '知道了',


  'tool.list.workspaceRoot': '工作区根目录',
  'tool.edit.multiFiles': '{count} 个文件',
  'tool.edit.globPattern': '匹配模式',
  'tool.edit.executing': '正在编辑 {path}…',
  'tool.edit.executingGeneric': '正在执行编辑…',
  'tool.edit.showDiff': '展开 diff',
  'tool.edit.hideDiff': '收起 diff',
  'tool.todo.summary': '{completed}/{total} 任务',
  'tool.todo.empty': '暂无任务',
  'tool.todo.emptyHint': '本次更新没有任务列表。',
  'tool.todo.inProgressBadge': '{count} 进行中',
  'tool.errorOutput': '错误输出',
  'tool.toolOutput': '工具输出',
  'tool.toolInput': '工具输入',
  'tool.readFileContents': '读取文件内容',
  'tool.createFile': '创建文件',
  'tool.updateFileContents': '更新文件内容',
  'tool.linesChanged': '{count} 行已更改',
  'tool.linesCreated': '{count} 行已创建',
  'tool.linesOutput': '{count} 行输出',
  'tool.result': '{toolName} 结果',
  'tool.resultGeneric': '工具结果',
  'tool.error': '错误',
  'tool.success': '成功',
  'tool.showLess': '收起',
  'tool.showMore': '展开 {count} 个字符',

  'tool.web.searchInProgress': '联网搜索中…',
  'tool.web.searchDone': '联网搜索完成',
  'tool.web.searchFailed': '联网搜索失败',
  'tool.web.readPages': '已阅读 {count} 个网页',
  'tool.web.noResults': '未找到结果',
  'tool.web.providerLabel': '搜索源：',
  'tool.web.enginesUsedLabel': '搜索引擎：',
  'tool.web.openInBuiltinBrowser': '在内置浏览器中打开',
  'tool.web.engineSourceLabel': '来源',
  'tool.web.publishedAtLabel': '发布时间',

  'tool.verb.read': 'Read',
  'tool.verb.listed': 'Listed',
  'tool.verb.searched': 'Grepped',
  'tool.verb.fetched': 'Fetched',
  'tool.verb.edited': 'Edited',
  'tool.verb.ran': 'Ran',
  'tool.verb.recalled': 'Recalled',
  'tool.verb.memory': 'Memory',
  'tool.verb.planned': 'Plan',
  'tool.verb.tasks': 'Tasks',
  'tool.verb.delegated': 'Delegated',
  'tool.verb.mcp': 'MCP',
  'tool.verb.tool': 'Tool',
  'tool.verb.git': 'Git',
  'tool.verb.diagnosed': 'Diagnosed',
  'tool.verb.sessionsed': 'Session',
  'tool.verb.communicated': 'Messaged',
  'tool.verb.flowed': 'Flow',
  'tool.verb.codeIntel': 'Code Intel',
  'tool.verb.modelConfig': 'Model',
  'tool.verb.integration': '集成',
  'tool.verb.ops': '运维',
  'tool.verb.hardware': '硬件',
  'task.subagent.running': '运行中',
  'task.subagent.completed': '已完成',
  'task.subagent.failed': '失败',
  'task.subagent.stop': '停止',
  'task.subagent.agentLabel': '子智能体',
  'task.subagent.finalOutput': '最终输出',
  'task.subagent.agentOutput': '子智能体输出',
  'task.subagent.waiting': '等待子智能体启动…',
  'task.subagent.empty': '暂无活动。',

  'explored.prefix': 'Explored',
  'explored.exploring': 'Exploring',
  'explored.empty': '没有观察',
  'explored.join': '、',
  'explored.readOne': '读取 1 个文件',
  'explored.readMany': '读取 {count} 个文件',
  'explored.listedOne': '列出 1 个目录',
  'explored.listedMany': '列出 {count} 个目录',
  'explored.searchedOne': '1 次搜索',
  'explored.searchedMany': '{count} 次搜索',
  'explored.recalledOne': '1 次记忆回溯',
  'explored.recalledMany': '{count} 次记忆回溯',
  'explored.thoughtOne': '1 段思考',
  'explored.thoughtMany': '{count} 段思考',

  'toolGroup.readOne': '读取了 1 个文件',
  'toolGroup.readMany': '读取了 {count} 个文件',
  'toolGroup.createdOne': '创建了一个文件',
  'toolGroup.createdMany': '创建了 {count} 个文件',
  'toolGroup.editedOne': '编辑了一个文件',
  'toolGroup.editedMany': '编辑了 {count} 个文件',
  'toolGroup.ranOne': '执行了一条命令',
  'toolGroup.ranMany': '执行了 {count} 条命令',
  'toolGroup.foundFiles': '查找到文件',
  'toolGroup.searchedOne': '搜索了代码',
  'toolGroup.searchedMany': '搜索了 {count} 个模式',
  'toolGroup.agentOne': '派遣了一个代理',
  'toolGroup.agentMany': '派遣了 {count} 个代理',
  'agentStatus.starting': '开始中',
  'agentStatus.running': '进行中',
  'agentStatus.done': '完成',
  'agentStatus.failed': '失败',
  'agentStatus.stopped': '已停止',
  'agentStatus.noActivity': '暂时还没有工具活动',
  'agentStatus.viewResult': '查看结果',
  'agentStatus.resultTitle': 'Agent 结果',
  'toolGroup.searchedWeb': '搜索了网页',
  'toolGroup.fetchedOne': '获取了一个页面',
  'toolGroup.fetchedMany': '获取了 {count} 个页面',

  'tasks.title': '任务',
  'tasks.completed': '已完成的任务',
  'tasks.dismissCompleted': '隐藏已完成任务',
  'tasks.expandList': '展开任务列表',
  'tasks.collapseList': '收起任务列表',
  'tasks.newTask': '+ 新建任务',
  'tasks.emptyTitle': '暂无定时任务。',
  'tasks.emptyDesc': '创建定时任务来自动化你的工程工作流。',
  'tasks.createNew': '创建新任务',
  'tasks.totalTasks': '总任务数',
  'tasks.active': '活跃',
  'tasks.disabled': '已禁用',

  'newTask.title': '新建定时任务',
  'newTask.localWarning': '本地任务仅在电脑唤醒时运行。',
  'newTask.name': '名称',
  'newTask.namePlaceholder': 'daily-code-review',
  'newTask.description': '描述',
  'newTask.descPlaceholder': '审查昨天的提交并标记可疑之处',
  'newTask.frequency': '频率',
  'newTask.everyNMinutes': '每 N 分钟',
  'newTask.everyNHours': '每 N 小时',
  'newTask.daily': '每天',
  'newTask.weekdays': '工作日（周一至周五）',
  'newTask.specificDays': '指定星期几',
  'newTask.monthly': '每月',
  'newTask.customCron': '自定义 Cron 表达式',
  'newTask.intervalMinutes': '每 {n} 分钟',
  'newTask.intervalHours': '每 {n} 小时',
  'newTask.atMinute': '在第 :{m} 分钟',
  'newTask.onMonthDay': '每月第 {d} 天',
  'newTask.cronFormatHint': '格式：分 时 日 月 星期',
  'newTask.invalidCron': '无效的 Cron 表达式',
  'newTask.daySun': '日',
  'newTask.dayMon': '一',
  'newTask.dayTue': '二',
  'newTask.dayWed': '三',
  'newTask.dayThu': '四',
  'newTask.dayFri': '五',
  'newTask.daySat': '六',
  'newTask.delayNote': '定时任务会使用随机延迟以优化服务器性能。',
  'newTask.create': '创建任务',
  'newTask.promptPlaceholder': '查看过去 24 小时的提交。总结变更内容，标记有风险的模式或缺失的测试，并记录值得跟进的事项。',
  'newTask.notification': '通知',
  'newTask.notifyOnComplete': '完成后推送通知',
  'newTask.notifyChannels': '通知渠道',
  'newTask.notifyHint': '任务完成后将标题和结果推送到 IM 渠道。',
  'newTask.notConfigured': '未配置',
  'newTask.noChannelConfigured': '尚未配置任何 IM 渠道，请前往 设置 → IM 接入 进行配置。',

  'cron.everyMinute': '每分钟执行',
  'cron.everyNMinutes': '每 {n} 分钟执行',
  'cron.everyHour': '每小时执行',
  'cron.everyNHours': '每 {n} 小时执行',
  'cron.everyNHoursAtMinute': '每 {n} 小时在第 :{m} 分钟执行',
  'cron.dailyAt': '每天 {time} 执行',
  'cron.weekdaysAt': '工作日 {time} 执行',
  'cron.specificDaysAt': '每{days} {time} 执行',
  'cron.monthlyAt': '每月 {day} 日 {time} 执行',
  'cron.customSchedule': '自定义：{cron}',
  'cron.dow.0': '周日',
  'cron.dow.1': '周一',
  'cron.dow.2': '周二',
  'cron.dow.3': '周三',
  'cron.dow.4': '周四',
  'cron.dow.5': '周五',
  'cron.dow.6': '周六',

  'tasks.runNow': '立即执行',
  'tasks.confirmRun': '确定要立即执行此任务吗？',
  'tasks.confirmDisable': '确定要禁用此定时任务吗？',
  'tasks.confirmEnable': '确定要启用此定时任务吗？',
  'tasks.confirmDelete': '确定要永久删除此任务及其所有日志吗？',
  'tasks.running': '执行中...',
  'tasks.viewLogs': '日志',
  'tasks.logsTitle': '执行记录',
  'tasks.noLogs': '暂无执行记录',
  'tasks.runStatus.running': '运行中',
  'tasks.runStatus.completed': '已完成',
  'tasks.runStatus.failed': '失败',
  'tasks.runStatus.timeout': '超时',
  'tasks.duration': '{s}秒',
  'tasks.viewOutput': '摘要',
  'tasks.hideOutput': '收起',
  'tasks.close': '关闭',
  'tasks.edit': '编辑',
  'tasks.editTitle': '编辑定时任务',
  'tasks.saveChanges': '保存修改',
  'tasks.openSession': '查看完整对话',
  'tasks.createdAt': '创建于 ',
  'tasks.lastRunAt': '上次执行 ',
  'tasks.outputHintSession': '点击「查看完整对话」可在会话中查看完整输出。',
  'tasks.noOutputText': '暂无输出内容。',

  'promptEditor.worktree': '工作树',
  'promptEditor.bypassWarning': '跳过模式将授予完整系统访问权限',
  'promptEditor.within': '范围',
  'promptEditor.selectFolder': '— 选择文件夹以限制范围',

  'permMode.executionPermissions': '执行权限',
  'permMode.askPermissions': '询问权限',
  'permMode.askPermDesc': 'CLI 请求时确认文件编辑和高风险命令',
  'permMode.autoAccept': '自动接受编辑',
  'permMode.autoAcceptDesc': 'Sen 无需询问即可写入磁盘',
  'permMode.planMode': '计划模式',
  'permMode.planModeDesc': '仅架构和推理，不操作文件',
  'permMode.bypass': '跳过权限',
  'permMode.bypassDesc': '对 Shell 和文件系统的完整工具访问',
  'permMode.dontAsk': '不询问',
  'permMode.enableBypassTitle': '启用跳过权限？',
  'permMode.enableBypassSubtitle': '这将授予对系统的完全访问权限',
  'permMode.enableBypassBody': 'Sen 将拥有<strong>不受限制的</strong>权限来执行 Shell 命令和修改以下目录中的文件:',
  'permMode.permReadWrite': '读取、写入和删除任何文件',
  'permMode.permShell': '执行任意 Shell 命令',
  'permMode.permPackages': '安装或移除软件包',
  'permMode.enableBypassBtn': '启用跳过',

  'permMode.label.default': '询问权限',
  'permMode.label.acceptEdits': '自动接受',
  'permMode.label.plan': '计划模式',
  'permMode.label.bypassPermissions': '跳过',
  'permMode.label.dontAsk': '不询问',

  'model.selectModel': '选择模型',
  'model.configuration': '模型配置',
  'model.effort': '推理强度',
  'model.unconfiguredPlaceholder': '未配置模型',
  'chat.noModel.banner': '尚未配置任何模型，无法发送消息。请先在「提供商」设置中添加至少一个模型。',
  'chat.noModel.warning': '尚未配置任何模型，无法发送。请先在「提供商」设置中添加至少一个模型。',
  'chat.noModel.shortToast': '请先添加模型',
  'chat.noModel.openSettings': '打开提供商设置',
  'chat.noModel.sendTooltip': '请先添加模型',

  'dirPicker.selectProject': '选择项目...',
  'dirPicker.recent': '最近',
  'dirPicker.more': '加载更多',
  'dirPicker.noRecent': '暂无最近项目',
  'dirPicker.chooseFolder': '选择其他文件夹',
  'dirPicker.chooseProjectFolder': '选择项目文件夹',
  'dirPicker.useThisFolder': '使用此文件夹',
  'dirPicker.noSubdirs': '无子目录',

  'fileSearch.searching': '搜索中...',
  'fileSearch.noMatch': '没有匹配的文件',
  'fileSearch.noFiles': '此目录下无文件',
  'fileSearch.accessDenied': '无法访问此目录',
  'fileSearch.loadFailed': '目录加载失败',
  'fileSearch.navigate': '导航',
  'fileSearch.attach': '附加',
  'fileSearch.attachFolder': '附加此文件夹',
  'fileSearch.close': '关闭',

  'teams.backToLeader': '\u2190 返回主控',
  'teams.viewing': '查看:',
  'teams.transcript': '记录',
  'teams.noMessages': '暂无消息',
  'teams.team': '团队:',
  'teams.members': '名成员',
  'teams.working': '正在工作中...',
  'teams.thinking': '正在思考中...',
  'teams.running': '运行中',
  'teams.leader': '主控',
  'teams.memberPlaceholder': '直接给这个 Agent 发消息...',
  'teams.memberSessionHint': '这里发送的消息会直接投递给该 Agent，同时继续刷新它的 transcript。',

  'scheduledPage.title': '定时任务',
  'scheduledPage.subtitle': '按计划或在需要时运行任务。在任意会话中输入 {code} 即可创建。',
  'scheduledPage.desktopNotice': '定时任务仅在桌面应用打开时运行。请确保应用持续运行以按时触发任务。',
  'scheduledPage.oldSubtitle': '管理自动化运维流程和后台维护任务。',
  'scheduledPage.executionMode': '执行模式',
  'scheduledPage.localMode': '本地模式',
  'scheduledPage.remoteMode': '远程模式',
  'scheduledPage.nextRun': '下次运行',
  'scheduledPage.systemHealth': '系统健康',
  'scheduledPage.activeSession': '活跃会话',
  'scheduledPage.colTaskName': '任务名称',
  'scheduledPage.colFrequency': '频率',
  'scheduledPage.colLastResult': '上次结果',
  'scheduledPage.colNextExecution': '下次执行',
  'scheduledPage.colActions': '操作',
  'scheduledPage.endOfList': '任务列表结束',
  'scheduledPage.pausedTasks': '另有 9 个任务当前已暂停或因维护而禁用。',
  'scheduledPage.recentLogs': '最近输出日志',
  'scheduledPage.viewArtifacts': '查看完整产物',
  'scheduledPage.resourceAllocation': '资源分配',
  'scheduledPage.cpuCapacity': 'CPU 容量',
  'scheduledPage.memoryLoad': '内存负载',
  'scheduledPage.connectedLocal': '已连接到本地节点',
  'scheduledPage.thisMonth': '本月 {count}',

  'update.available': 'v{version} 可用',
  'update.availableLabel': '可更新版本',
  'update.checking': '正在检查更新...',
  'update.checkNow': '检查更新',
  'update.checkedAt': '上次检查时间 {time}',
  'update.currentVersionUnknown': '未知版本',
  'update.newVersion': '新版本 v{version} 可用',
  'update.downloading': '下载中...',
  'update.idle': '点击检查更新，对比当前安装版本和 GitHub Releases 的最新版本。',
  'update.now': '立即更新',
  'update.later': '稍后',
  'update.progress': '正在下载更新... {progress}%',
  'update.progressBytes': '正在下载更新... 已下载 {downloaded}',
  'update.releaseNotes': '更新说明',
  'update.restarting': '正在重启以完成更新...',
  'update.upToDate': '当前已是最新版本 v{version}。',
  'update.failed': '更新失败: {error}',
  'update.toast.checking': '正在检查更新…',
  'update.toast.upToDate': '已是最新版本 v{version}',
  'update.toast.error': '检查更新失败：{error}',
  'update.toast.dismiss': '关闭',

  'session.untitled': '未命名会话',
  'session.active': '会话活跃中',
  'session.lastUpdated': '最后更新 {time}',
  'session.messages': '{count} 条消息',
  'session.workspaceUnavailable': '工作目录不可用: {dir}',
  'session.timeJustNow': '刚刚',
  'session.timeMinutes': '{n}分钟前',
  'session.timeHours': '{n}小时前',
  'session.timeDays': '{n}天前',

  'app.runtimeError': '发生运行时错误：{message}',
  'app.serverFailed': '本地服务启动失败',
  'app.serverFailedHint': '反馈这个问题时，请把这块诊断信息截图一起发到 issue 里。',
  'app.startupError': '启动错误',
  'app.serverLogs': '服务日志',
  'app.copyDiagnostics': '复制诊断信息',
  'app.copiedDiagnostics': '已复制',
  'app.launching': '正在启动本地工作区...',
  'app.launchingSlow': '本地服务正在初始化（已等待 {{seconds}} 秒）。首次启动或冷启动时可能需要更长时间。',
  'app.launchingTip': '若长时间没有响应，请检查是否有杀毒软件或防火墙在扫描可执行文件，或者关闭可能阻塞 MCP/LSP 服务启动的进程。',
  'app.launchingFailed': '本地工作区启动失败',
  'app.launchingFailedDetail': '本地后端在 {{seconds}} 秒内未就绪。请点击下方的「重试启动」或「打开日志目录」查看具体原因。',
  'app.retry': '重试启动',
  'app.retrying': '正在重试...',
  'app.openLogDir': '打开日志目录',
  'app.copyLaunchError': '复制启动错误',
  'app.copyLaunchErrorCopied': '已复制',

  'error.CLI_NOT_RUNNING': 'CLI 进程未运行。会话可能已结束或进程已崩溃。',
  'error.CLI_START_FAILED': 'CLI 进程启动失败。',
  'error.CLI_AUTH_REQUIRED': '需要认证。请先登录。',
  'error.CLI_SESSION_CONFLICT': '会话已被其他进程占用。',
  'error.CLI_SPAWN_FAILED': 'CLI 子进程启动失败。',
  'error.CLI_ERROR': '处理过程中发生错误。',
  'error.WORKDIR_INVALID': '工作目录无效或不存在。',
  'error.PARSE_ERROR': '消息格式无效。',
  'error.UNKNOWN_TYPE': '未知的消息类型。',
  'error.BAD_REQUEST': '请求无效。',
  'error.NOT_FOUND': '资源未找到。',
  'error.INTERNAL_ERROR': '内部服务器错误。',
  'error.NO_MODEL_CONFIGURED': '尚未配置可用模型。请在设置中添加 Provider 和模型。',
  'error.CONFIG_ERROR': '模型或 Provider 配置有误。请检查 API Key、接口地址和模型名称。',
  'error.CONNECTION_FAILED': '无法连接到模型服务。请检查网络连接和 Provider 接口地址。',
  'error.CONNECTION_TIMEOUT': '请求超时未完成。请检查网络后重试。',
  'error.INSUFFICIENT_BALANCE': '账户余额或配额不足。请充值或切换其他 Provider。',
  'error.GATEWAY_ERROR': '上游网关返回错误。请稍后重试或切换 Provider。',
  'error.AUTH_ERROR': '身份验证失败。请检查 API Key 和账户权限。',
  'error.RATE_LIMITED': '已触发限流。请稍候再试或切换其他 Provider。',
  'error.MODEL_UNAVAILABLE': '所选模型不可用。请更换支持的模型或 Provider。',
  'error.ENGINE_OVERLOADED': '上游模型引擎繁忙。请稍后重试或切换模型。',
  'error.PROVIDER_FAILOVER': '所有可用模型/通道均失败。请检查网络或切换 Provider/Model 后重试。',
  'error.AGENT_TURN_FAILED': '处理请求时出现问题。请重试。',
  'error.UNKNOWN_ERROR': '处理请求时出现问题。请重试。',
  'error.TURN_CANCELLED': '请求已取消。',
  'error.VALIDATION_ERROR': '请求无效。请检查输入后重试。',

  'serverVerb.Thinking': '思考中',
  'serverVerb.Task started': '任务已启动',
  'serverVerb.Task in progress': '任务进行中',

  'tabs.close': '关闭',
  'tabs.closeOthers': '关闭其他',
  'tabs.closeLeft': '关闭左侧',
  'tabs.closeRight': '关闭右侧',
  'tabs.closeAll': '关闭所有',
  'tabs.closeConfirmTitle': '会话运行中',
  'tabs.closeConfirmMessage': '此会话仍在运行，你想要怎么做？',
  'tabs.closeConfirmKeep': '保持运行',
  'tabs.closeConfirmStop': '停止并关闭',
  'tabs.close.queueWarning.title': '该会话还有 {count} 条排队消息',
  'tabs.close.queueWarning.body': '关闭标签页会影响这些排队消息的发送，请选择处理方式。',
  'tabs.close.queueWarning.discard': '放弃排队并关闭',
  'tabs.close.queueWarning.keep': '保留排队（后台继续发送）',
  'tabs.queuedBadge': '排队 {count}',
  'tabs.awaitingApproval': '等待你的审批',

  'settings.tab.codingMode': '编程模式',
  'settings.codingMode.title': '编程模式',
  'settings.codingMode.description':
    '选择 AI 编程工作流。每种模式会调整系统提示、可用工具与审批策略。',
  'settings.codingMode.derivedPermission': '推导出的审批策略：{mode}',
  'settings.codingMode.reorderHint': '拖动卡片即可调整模式顺序，新的顺序会实时同步到输入区的模式选择列表，并在重启后保留。',
  'settings.codingMode.dragHandle': '拖动以调整顺序',
  'settings.codingMode.loading': '正在加载可用编程模式…',
  'codingMode.title': '编程模式',
  'codingMode.selectorTitle': '选择一个编程工作流',
  'codingMode.tag.autonomous': '自主',
  'codingMode.tag.readOnly': '只读',
  'codingMode.confirmAutonomousTitle': '启用自主模式？',
  'codingMode.confirmAutonomousSubtitle': '智能体将无需询问即可执行写操作和 Shell 命令',
  'codingMode.confirmAutonomousBody':
    'Agent / Harness 模式下，助手会自动拆分任务并执行文件编辑、Shell 命令和工具调用。请只在你信任并已备份的工作区使用。',
  'codingMode.confirmAutonomousBtn': '启用自主模式',
  'codingMode.webSearchStatus': '联网搜索',
  'codingMode.webFetchStatus': '联网获取',
  'codingMode.webStatusOn': '已开启',
  'codingMode.webStatusOff': '已关闭',
  'codingMode.vibe.label': 'Vibe 自由',
  'codingMode.vibe.description':
    '完整工具权限、极简提示——适合快速原型与自由编码，让智能体放手快跑。',
  'codingMode.spec.label': 'Spec 规范',
  'codingMode.spec.description':
    '规范驱动——生成 SPEC.md，按追踪计划逐步执行，每一步都跑构建/测试命令验证。',
  'codingMode.plan.label': 'Plan 计划',
  'codingMode.plan.description':
    '计划撰写——分析需求后在 `.senweavercoding/plans/` 下生成或更新 `.plan.md` 文档，为下一步执行做准备；不修改源码、不执行 Shell。',
  'codingMode.ask.label': 'Ask 答疑',
  'codingMode.ask.description':
    '纯只读问答——带引用解释代码，零写入：不改文件、不执行 Shell、也不写计划文档。',
  'codingMode.tdd.label': 'TDD 测试驱动',
  'codingMode.tdd.description':
    '严格 红→绿→重构——先写失败测试，再以最小实现通过，再重构；每次修改后自动运行验证。',
  'codingMode.debug.label': 'Debug 调试',
  'codingMode.debug.description':
    '四阶段根因分析（复现 → 假设 → 隔离 → 修复）+ QA 自动化——驱动内置浏览器跑前后端端到端测试，复用你预先登录好的会话，在 LLM 边界自动脱敏隐私信息，并自动产出 report.md 与 tech_doc.md（含截图与浏览器调用轨迹）。',
  'codingMode.auto.label': 'Auto 自动',
  'codingMode.auto.description':
    '根据你每条消息的意图（调试、规划、设计、问答或通用智能体任务）自动选择最合适的编程模式。不会固定锁死某一种模式——每一轮都路由到最匹配的模式，且完全不改变其它任何模式的原有行为。',
  'codingMode.agent.label': 'Agent 智能体',
  'codingMode.agent.description':
    '自主编排器——自动批准所有工具调用，拆解任务、端到端执行文件编辑与 Shell 命令，并完成自我验证。',
  'codingMode.architect.label': 'Architect 架构',
  'codingMode.architect.description':
    '聚焦架构——大范围阅读做高层设计评审，再基于规范分析进行跨模块的精准修改。',
  'codingMode.pair.label': 'Pair 结对',
  'codingMode.pair.description':
    '结对编程协作——逐步推进，每个检查点都暂停等待你的确认才继续。',
  'codingMode.context.label': 'Context 上下文工程',
  'codingMode.context.description':
    '面向大型代码库的上下文工程——探索 → 测绘 → 规划 → 精准出击，每批修改后给出影响分析报告。',
  'codingMode.mvai.label': 'MVAI',
  'codingMode.mvai.description':
    'Model-View-Agent-Interface 架构——强制接口先行的契约，要求可观测、可测试、分层清晰。',
  'codingMode.harness.label': 'Harness 工程化',
  'codingMode.harness.description':
    '工程级流水线——规范生成、技能编排、会话检查点、多智能体委托，自动批准并自动验证。',
  'codingMode.curator.label': 'Curator 策展',
  'codingMode.curator.description':
    '研究策展模式——前期通过 Web 与本地工作区检索做大量证据收集，按照论文 / 解决方案 / 技术报告等标准模板撰写专业文档并导出 DOCX；文档落盘后即停留，等待用户切换到 Agent 模式按 impl_blueprint.md 严格落地。',
  'codingMode.designer.label': 'Designer 设计',
  'codingMode.designer.description':
    '设计工作室——十种 UI / 设计形态（原型、BI 看板、幻灯片、图表、图片、视频、HyperFrames、音频、来自 Figma、来自模板），由发现 → 规划 → 生成 → 评审流水线驱动；产物在右侧专属预览面板中渲染，所有模型与媒体调用均复用你已配置的模型提供商。',
  'designer.chips.title': '设计模式',
  'designer.panel.brief': '设计简介',
  'designer.panel.briefPlaceholder': '描述你想要的设计…',
  'designer.panel.generate': '开始生成',
  'designer.panel.cancel': '取消',
  'designer.panel.model': '模型',
  'designer.panel.modelPlaceholder': '选择或输入模型 id',
  'designer.preview.title': '设计预览',
  'designer.preview.toggle': '设计画布',
  'designer.preview.empty': '生成的设计产物会显示在这里',
  'designer.preview.openFile': '打开文件',
  'designer.preview.refresh': '刷新',
  'designer.preview.close': '关闭',
  'designer.canvas.title': '设计画布',
  'designer.canvas.toggle': '设计画布',
  'designer.canvas.empty': '本会话的设计稿会显示在这里。在 Designer 模式下生成后即可看到历史设计稿。',
  'designer.canvas.refresh': '刷新',
  'designer.canvas.close': '关闭',
  'designer.canvas.editUnit': '编辑源文件',
  'designer.canvas.fullscreenPreview': '全屏预览此单元',
  'designer.canvas.exitFullscreen': '退出全屏（Esc）',
  'designer.canvas.deleteUnit': '删除选中的设计单元',
  'designer.canvas.moveUnit': '拖动以在画布上移动',
  'designer.canvas.sendToComposer': '引用到输入框（可拖拽或点击）',
  'designer.deck.openPptx': '打开 PPTX 文件',
  'designer.deck.openPptxFailed': 'PPTX 文件尚未生成——等幻灯片编译完成后再试',
  'designer.deck.generating': '幻灯片正在生成…画布将随每页写入自动刷新',
  'designer.deck.prev': '上一页',
  'designer.deck.next': '下一页',
  'designer.deck.notes': '演讲备注',
  'designer.deck.thumbnails': '缩略图',
  'designer.deck.theme': '切换主题',
  'designer.deck.present': '放映（全屏）',
  'designer.deck.exitPresent': '退出放映',
  'designer.image.regionRect': '框选区域',
  'designer.image.regionLasso': '自由圈选区域',
  'designer.image.regionLabel': '选区 {w}%×{h}%',
  'designer.image.regionPicked': '选区已引用到输入框',
  'designer.image.maskSaveFailed': '选区蒙版保存失败，请重试',
  'designer.diagram.exportPng': '导出 PNG',
  'designer.diagram.exportSvg': '导出 SVG',
  'designer.diagram.copySource': '复制源码',
  'designer.diagram.sourceCopied': '图表源码已复制',
  'designer.diagram.exportFailed': '导出失败，请重试',
  'designer.diagram.renderError': '渲染失败——可引用该单元让助手按错误信息修复语法',
  'designer.canvas.renameUnit': '重命名（双击名称也可编辑）',
  'designer.canvas.zoomIn': '放大',
  'designer.canvas.zoomOut': '缩小',
  'designer.canvas.resetView': '重置视图',
  'designer.canvas.fitView': '适配并显示全部设计单元',
  'designer.canvas.editRefChip': '编辑设计稿',
  'designer.canvas.editRefRemove': '移除引用',
  'designer.canvas.selectMode': '点选元素改稿（在设计中点击某个部分）',
  'designer.canvas.device': '预览视口',
  'designer.canvas.deviceAuto': '自适应',
  'designer.canvas.tweaks': '微调',
  'designer.canvas.tweaksReset': '重置',
  'designer.canvas.tweakAccent': '主色',
  'designer.canvas.tweakScale': '字号比例',
  'designer.canvas.tweakDensity': '密度',
  'designer.canvas.tweakMotion': '动效',
  'designer.canvas.tweakMode': '模式',
  'designer.canvas.mode.auto': '自动',
  'designer.canvas.mode.light': '浅色',
  'designer.canvas.mode.dark': '深色',
  'designer.canvas.elementRef': '正在编辑元素',
  'designer.inline.requiredMissing': '请先填写必填参数「{label}」再生成',
  'designer.figma.invalidUrl': '这看起来不是 Figma 链接 — 请粘贴 figma.com 的文件/设计分享链接',
  'designer.canvas.exportHandoff': '导出交付包（ZIP + 清单 + React）',
  'designer.canvas.handoffDone': '交付包已生成（{n} 个文件）→ {path}',
  'designer.canvas.handoffFailed': '交付包导出失败',
  'designer.canvas.lint': '校验选中设计（反 AI-slop）',
  'designer.canvas.lintSelectHint': '请先选中一个 HTML 或幻灯片设计单元',
  'designer.canvas.lintResult': '校验 — P0: {p0} · P1: {p1} · P2: {p2}',
  'designer.canvas.lintFailed': '校验失败',
  'designer.canvas.exportPdf': '合并导出 PDF（用内置浏览器把所有 HTML 单元打印为一份 PDF）',
  'designer.canvas.pdfSelectHint': '当前画布没有可导出的 HTML 设计单元',
  'designer.canvas.pdfFailed': 'PDF 导出失败',
  'designer.canvas.pdfDone': '已合并 {n} 个单元并打开打印对话框',
  'designer.canvas.downloadFile': '下载文件',
  'designer.canvas.deleteConfirm': '再次点击删除将同时从磁盘移除该单元的文件',
  'designer.canvas.deleteFailed': '服务端删除设计单元失败',
  'designer.canvas.refreshFailed': '刷新设计单元失败，请检查网关连接',
  'designer.canvas.mediaLoadFailed': '媒体文件加载失败（可能已被移动或删除）',
  'designer.canvas.zoomReset': '重置缩放至 100%',
  'designer.canvas.addUnit': '新增 UI 单元',
  'designer.canvas.addFromTemplate': '从模板新增',
  'designer.canvas.addSketch': '手绘新增',
  'designer.canvas.addUnitDone': '已新增 UI 单元',
  'designer.canvas.addUnitFailed': '新增 UI 单元失败',
  'designer.canvas.sketchUndo': '撤销上一笔',
  'designer.canvas.sketchClear': '清空画板',
  'designer.canvas.sketchNamePlaceholder': '草图名称（可选）…',
  'designer.canvas.sketchSave': '添加到画布',
  'designer.canvas.sketchDefaultName': '手绘草图',
  'designer.designSystem.label': '设计体系',
  'designer.designSystem.auto': '自动',
  'designer.designSystem.autoHint': '根据当前 Prompt 自动匹配设计体系',
  'designer.designSystem.searchPlaceholder': '搜索设计体系…',
  'designer.designSystem.count': '{n} 个可用',
  'designer.inline.choose': '选择',
  'designer.inline.any': '任意',
  'designer.inline.auto': '自动',
  'designer.inline.none': '无',
  'designer.inline.modelPlaceholder': '选择或输入模型 id',
  'designer.promptTemplate.label': '提示词模板',
  'designer.promptTemplate.none': '不使用模板',
  'designer.promptTemplate.noneHint': '仅根据你的描述生成',
  'designer.promptTemplate.searchPlaceholder': '搜索提示词模板…',
  'designer.promptTemplate.count': '{n} 个可用',
  'designer.htmlTemplate.none': '不使用模板',
  'designer.htmlTemplate.noneHint': '仅根据你的描述从零构建',
  'designer.htmlTemplate.searchPlaceholder': '搜索内置模板…',
  'designer.htmlTemplate.count': '{n} 个内置模板',
  'curator.actions.buildSwitch': '构建 → Agent',
  'curator.statusWriting': '撰写中…',
  'curator.statusFailed': '未完成',
  'curator.failedHint': '文档尚未最终生成。请让助手继续完成，或根据下方原因修正后重试。',
  'curator.interrupted': '本轮在文档最终生成前结束了。点击“继续撰写”即可让助手接着完成并落盘。',
  'curator.continueWriting': '继续撰写',
  'curator.continueWritingPrompt': '继续完成并最终生成 Curator 文档',
  'curator.copyPath': '复制路径',
  'curator.viewDocument': '查看文档',
  'curator.untitled': '未命名文档',
  'curator.revealDocx': '在文件管理器中打开',
  'curator.renderingDiagrams': '正在将图表渲染进 DOCX…',
  'curator.progressCardTitle': '策展构建 · 已完成',
  'curator.modeSwitchTitle': '切换到 Agent · 按 impl_blueprint.md 落地完整工程',
  'curator.modeSwitchBody':
    '点击切换后，Agent 模式会读取 impl_blueprint.md，并按其工程化代码、配置与文档；Curator 阶段沉淀的资料会作为实施输入。',
  'review.curatorGroupLabel': 'Curator 会话产物',
  'review.completedGroupLabel': '已完成的策展产物',
  'pairCheckpoint.title': '协作检查点',
  'pairCheckpoint.awaiting': '等待输入',
  'pairCheckpoint.body':
    'Pair 模式在每一批工具调用之后都会主动暂停并把控制权交还给你。请审阅以上改动，然后输入下一条指令（继续或调整方向）以恢复执行。',
  'pairCheckpoint.hint': '输入下一条消息以继续执行或调整方向。',
  'quickMode.title': '切换编码模式',
  'quickMode.escHint': '按 Esc 关闭',
  'quickMode.footerKeys': '按 1–9 / 0 / Q / W 直接选择',
  'quickMode.footerHint': 'Ctrl+Shift+M 唤起 · Ctrl+Shift+P 进入 Plan',
  'settings.keyboard.title': '快捷键',
  'settings.keyboard.description':
    '自定义全局快捷键。点击"重新绑定"后按下新的组合键即可；按 Esc 取消。修改即时生效并持久保存。',
  'settings.keyboard.rebind': '重新绑定',
  'settings.keyboard.cancel': '取消',
  'settings.keyboard.recording': '请按下一个组合键…',
  'settings.keyboard.resetAll': '全部恢复默认',
  'settings.keyboard.resetOne': '恢复默认',
  'settings.keyboard.recordHint':
    '提示：单独的修饰键（Ctrl、Shift、Alt）会被忽略；与其他动作冲突的组合会被拒绝。',
  'shortcuts.conflict':
    '组合键「{shortcut}」已绑定到「{action}」，请选择其他组合。',
  'shortcuts.action.new-session.label': '新建智能体',
  'shortcuts.action.new-session.description': '在当前工作区中创建一个新的智能体。',
  'shortcuts.action.sidebar-search.label': '聚焦侧边栏搜索',
  'shortcuts.action.sidebar-search.description':
    '展开侧边栏（如已折叠）并聚焦会话搜索输入框。',
  'shortcuts.action.stop-generation.label': '停止生成',
  'shortcuts.action.stop-generation.description': '取消当前会话中正在进行的生成。',
  'shortcuts.action.toggle-terminal.label': '切换终端面板',
  'shortcuts.action.toggle-terminal.description':
    '显示或隐藏底部终端面板；若无终端则自动开启一个新 shell 标签页。',
  'shortcuts.action.quick-mode-switcher.label': '打开快捷模式切换器',
  'shortcuts.action.quick-mode-switcher.description':
    '弹出快捷编码模式切换面板，可按 1–9 / 0 / Q / W 直接选择。',
  'shortcuts.action.mode-plan.label': '切换到 Plan 模式',
  'shortcuts.action.mode-plan.description': '将当前会话直接切换到 Plan 模式以生成计划。',
  'shortcuts.action.close-modal.label': '关闭浮层 / 弹窗',
  'shortcuts.action.close-modal.description':
    '关闭最顶层的浮层或弹窗（设置、对话框、快捷切换器等）。',

  'settings.hooks.title': '钩子',
  'settings.hooks.description':
    '配置在工具调用过程中触发的生命周期钩子，用于审计、可观测性与策略落地。',
  'settings.hooks.runtimeSection': '运行时',
  'settings.hooks.enableLifecycle': '启用生命周期钩子',
  'settings.hooks.enableLifecycleHint': '启用后，每次工具调用都会触发已配置的钩子处理器。',
  'settings.hooks.commandLogger': '命令日志记录',
  'settings.hooks.commandLoggerHint': '将所有工具调用写入 tracing 管道用于审计。',
  'settings.hooks.webhookSection': 'Webhook 审计',
  'settings.hooks.webhookEnable': '启用 Webhook 审计',
  'settings.hooks.webhookEnableHint':
    '匹配到的工具调用会向远程地址发起 JSON POST 请求。',
  'settings.hooks.webhookUrl': 'Webhook URL',
  'settings.hooks.webhookPatterns': '工具匹配模式（逗号分隔）',
  'settings.hooks.webhookPatternsHint':
    '按工具名匹配的 Glob 模式，列表为空表示不审计任何工具。',
  'settings.hooks.webhookIncludeArgs': '包含调用参数',
  'settings.hooks.webhookIncludeArgsHint':
    '在审计内容中嵌入工具参数（可能含敏感数据）。',
  'settings.hooks.webhookMaxArgsBytes': '参数最大字节数',
  'settings.hooks.scriptSection': 'Cursor 风格钩子脚本',
  'settings.hooks.scriptDescription': '若以下路径存在 hook 脚本，会被自动加载（只读）。',
  'settings.hooks.savedToast': '钩子配置已保存。',

  'settings.agents.title': '智能体',
  'settings.agents.description':
    '全局智能体行为：工具循环、历史预算、上下文压缩、推理深度、运行时上限以及内置上下文工具（web_search / web_fetch）。',
  'settings.agents.savedToast': '设置已保存。',

  'settings.agents.section.core': '核心行为',
  'settings.agents.section.coreHint':
    '[agent] 配置块——工具循环上限、历史预算、调度器与并行工具执行。',
  'settings.agents.section.context': '上下文管理',
  'settings.agents.section.contextHint': '历史裁剪与对话自动压缩，确保不超出模型上下文长度。',
  'settings.agents.section.quality': '质量与思考',
  'settings.agents.section.qualityHint': '默认推理深度与回答后的评估闸门。',
  'settings.agents.section.directives': '指令与项目情报',
  'settings.agents.section.directivesHint': '注入到所有会话的全局指令以及项目自动索引。',
  'settings.agents.section.runtime': '运行时循环',
  'settings.agents.section.runtimeHint':
    '[agent_runtime] 配置块——单轮 Token 上下限、循环检测、子代理并发、Fast Apply、Self-Consistency。',
  'settings.agents.section.contextTools': '上下文工具',
  'settings.agents.section.contextToolsHint': '暴露给智能体的内置 web_search 与 web_fetch 工具。',
  'settings.agents.section.permission': '执行权限',
  'settings.agents.section.permissionHint': '全局默认执行权限级别，应用于所有会话。切换 CodingMode 时会自动派生覆盖此设置。',
  'settings.agents.permission.codingHint': '当前 CodingMode "{mode}" 会自动派生权限为 "{derived}"。',

  'settings.agents.autoRun.title': '自动运行',
  'settings.agents.autoRun.modeLabel': '自动运行模式',
  'settings.agents.autoRun.modeHint': '选择智能体如何运行命令执行、MCP 与文件写入等工具。',
  'settings.agents.autoRun.opt.askEveryTime': '每次询问',
  'settings.agents.autoRun.opt.askEveryTimeHint': '所有非只读工具都会弹窗确认，包括允许列表中的工具。',
  'settings.agents.autoRun.opt.acceptEdits': '自动接受文件编辑',
  'settings.agents.autoRun.opt.acceptEditsHint': '文件编辑静默执行；Shell 等系统工具仍弹窗。',
  'settings.agents.autoRun.opt.useAllowlist': '按允许列表',
  'settings.agents.autoRun.opt.useAllowlistHint': '允许列表内的工具静默执行，其它一律弹窗。',
  'settings.agents.autoRun.opt.runEverything': '全部放行',
  'settings.agents.autoRun.opt.runEverythingHint': '不弹窗、Shell 与文件系统全开。',

  'settings.agents.autoRun.allowlist.title': '允许列表',
  'settings.agents.autoRun.allowlist.hint': '"按允许列表"模式下，列表中的工具会静默执行。填入 "*" 表示放行所有工具。',
  'settings.agents.autoRun.allowlist.placeholder': '工具名（如 file_read）',
  'settings.agents.autoRun.allowlist.add': '添加',
  'settings.agents.autoRun.allowlist.empty': '暂无允许工具。添加一个工具名以自动放行。',
  'settings.agents.autoRun.allowlist.remove': '移除',

  'settings.agents.autoRun.modeTransitions.title': '自动批准模式切换',
  'settings.agents.autoRun.modeTransitions.hint': '勾选的目标 CodingMode，切换时不再弹窗确认。',

  'settings.agents.autoRun.browserProtection': '浏览器工具保护',
  'settings.agents.autoRun.browserProtectionHint': '阻止智能体自动运行浏览器类工具。',
  'settings.agents.autoRun.mcpProtection': 'MCP 工具保护',
  'settings.agents.autoRun.mcpProtectionHint': '阻止智能体自动运行 MCP 工具。',

  'settings.agents.loopEng.title': 'Loop Engineering · 自主闭环',
  'settings.agents.loopEng.hint':
    'Generator-Evaluator 质量闭环与自主护栏。所有选项默认关闭；开启独立评审器在下一次运行时生效。',
  'settings.agents.loopEng.reviewGroup': '独立评审器（写者 ≠ 判者）',
  'settings.agents.loopEng.selfEval': '启用独立评审器',
  'settings.agents.loopEng.selfEvalHint':
    '确定性校验通过后，由独立模型按固定 rubric 对高风险产出打分，并把结构化反馈回流给生成器重写。',
  'settings.agents.loopEng.evaluateCodeEdits': '评审代码编辑',
  'settings.agents.loopEng.evaluateCodeEditsHint':
    '在代码编辑流程中执行独立评审；评审驳回时复用现有的修复循环重写。',
  'settings.agents.loopEng.maxRetries': '评审最大重试次数',
  'settings.agents.loopEng.maxRetriesHint':
    '当本轮修改过文件且被评审驳回时，最多回流重写的次数。',
  'settings.agents.loopEng.evaluatorModel': '评审模型',
  'settings.agents.loopEng.evaluatorModelHint':
    '从所有已配置提供商的模型中选择独立评审模型，跨提供商会自动用对应密钥调用；不选则复用本次会话运行所用的主模型。',
  'settings.agents.loopEng.evaluatorModelDefault': '复用主模型（本次会话运行所用模型）',
  'settings.agents.loopEng.frozenRubric': '固定 Rubric 路径',
  'settings.agents.loopEng.frozenRubricHint':
    '可选的固定评审 rubric 文件路径。留空则使用内置代码评审 rubric。',
  'settings.agents.loopEng.frozenRubricPlaceholder': '例如 ./.sen/review-rubric.md（留空=内置）',
  'settings.agents.loopEng.guardGroup': '自主护栏',
  'settings.agents.loopEng.maxCost': '每日成本上限',
  'settings.agents.loopEng.maxCostHint':
    '自主 /goal 循环在当日花费达到此上限时停止（需开启成本追踪）。0 表示不限制。',
  'settings.agents.loopEng.cents': '美分/天',
  'settings.agents.loopEng.costTracking': '启用成本追踪',
  'settings.agents.loopEng.costTrackingHint':
    '记录 token 用量与花费，每日成本上限依赖此项。默认关闭。',
  'settings.agents.loopEng.estop': '启用紧急停止',
  'settings.agents.loopEng.estopHint':
    '允许紧急停止的全局停机/工具冻结来中止工具执行。已持久化的状态会在每次会话启动时被读取生效。',

  'settings.agents.autoRun.confirmTransition.title': '切换 CodingMode？',
  'settings.agents.autoRun.confirmTransition.body': '将切换到 "{target}" 模式。你可以在 Agents 设置中将该模式加入自动批准白名单。',
  'settings.agents.autoRun.confirmTransition.confirm': '切换',
  'settings.agents.autoRun.confirmTransition.cancel': '取消',

  'settings.agents.field.compactContext': '小模型上下文紧凑模式',
  'settings.agents.field.compactContextHint':
    '启用后：bootstrap_max_chars=6000，rag_chunk_limit=2，适用于 13B 及以下模型。',
  'settings.agents.field.maxToolIterations': '工具迭代上限',
  'settings.agents.field.maxToolIterationsHint':
    '单条用户消息内工具循环的软上限。0 视为默认值 200。',
  'settings.agents.field.maxHistoryMessages': '历史消息上限',
  'settings.agents.field.maxHistoryMessagesHint': '单个会话中保留的历史消息条数上限。',
  'settings.agents.field.maxContextTokens': '上下文 Token 预算',
  'settings.agents.field.maxContextTokensHint': '触发压缩前的预估 Token 预算（按 4 字符/Token 估算）。',
  'settings.agents.field.parallelTools': '并行工具调用',
  'settings.agents.field.parallelToolsHint': '允许在单次迭代内并行派发多个工具。',
  'settings.agents.field.toolDispatcher': '工具调度器',
  'settings.agents.field.toolDispatcherHint': '工具调用的调度策略（一般使用 “auto”）。',
  'settings.agents.field.contextAwareTools': '按上下文过滤工具',
  'settings.agents.field.contextAwareToolsHint': '按当前步骤只暴露相关工具，减少噪音。',

  'settings.agents.field.historyEnabled': '启用历史裁剪',
  'settings.agents.field.historyMaxTokens': '裁剪 Token 上限',
  'settings.agents.field.historyKeepRecent': '保留最近 N 条消息',
  'settings.agents.field.historyCollapseTools': '折叠工具结果',

  'settings.agents.field.compressionEnabled': '启用上下文压缩',
  'settings.agents.field.compressionThreshold': '触发阈值（占模型上下文比例）',
  'settings.agents.field.compressionThresholdHint':
    '历史达到模型上下文该比例时启动压缩（0–1）。',
  'settings.agents.field.compressionFirstN': '保护前 N 条消息',
  'settings.agents.field.compressionLastN': '保护最近 N 条消息',
  'settings.agents.field.compressionMaxPasses': '最大压缩遍数',
  'settings.agents.field.compressionSummaryChars': '摘要最大字符数',
  'settings.agents.field.compressionSourceChars': '源文本切片最大字符数',
  'settings.agents.field.compressionTimeout': '超时（秒）',
  'settings.agents.field.compressionSummaryModel': '摘要模型（可选）',
  'settings.agents.field.compressionSummaryModelHint': '覆盖摘要使用的模型；留空则使用默认模型。',

  'settings.agents.field.builtinToolDeferred': '内置工具按需加载',
  'settings.agents.field.builtinToolDeferredHint':
    '每轮仅发送核心工具的完整 schema（文件 / 搜索 / shell / 计划等），其余工具仅以 name+description 摘要列出，模型需要时通过 tool_search 主动激活。代价是极小的延迟，收益是每轮输入 token 大幅降低（通常每轮节省 25–30K tokens）。',

  'settings.agents.field.thinkingLevel': '默认推理深度',
  'settings.agents.field.thinkingLevelHint':
    '快速 = “off”/“minimal”，深度思考 = “high”/“max”，对应 Cursor 的 “Default Approach”。',
  'settings.agents.thinking.off': '关闭',
  'settings.agents.thinking.minimal': '极简',
  'settings.agents.thinking.low': '低',
  'settings.agents.thinking.medium': '中',
  'settings.agents.thinking.high': '高',
  'settings.agents.thinking.max': '最大',

  'settings.agents.field.evalEnabled': '启用回答评估器',
  'settings.agents.field.evalEnabledHint':
    '对应 Cursor “Agent Review”——质量分低于阈值时重跑。',
  'settings.agents.field.evalMinScore': '质量分阈值',
  'settings.agents.field.evalMaxRetries': '最大重试次数',

  'settings.agents.field.directives': '全局指令',
  'settings.agents.field.directivesHint':
    '应用到所有智能体会话的默认指令；项目级 AGENTS.md 仍优先生效。',
  'settings.agents.field.directiveContent': '指令内容',
  'settings.agents.field.directiveMode': '限定模式',
  'settings.agents.field.directiveModePlaceholder': '所有模式',
  'settings.agents.field.addDirective': '添加指令',
  'settings.agents.field.removeDirective': '删除',

  'settings.agents.field.runtimeMaxIters': '工具迭代上限（运行时）',
  'settings.agents.field.runtimeLoopThreshold': '循环检测阈值',
  'settings.agents.field.runtimeLoopThresholdHint': '相同工具调用达到此次数后强制终止本轮。',
  'settings.agents.field.runtimeParallel': '运行时并行工具派发',
  'settings.agents.field.runtimeSoftCap': '单轮 Token 软上限',
  'settings.agents.field.runtimeHardCap': '单轮 Token 硬上限',
  'settings.agents.field.runtimeMaxSubagents': '协调器子代理上限',
  'settings.agents.field.runtimeParallelConcurrency': '并行工具最大并发',
  'settings.agents.field.runtimeSubagentTimeout': '子代理调用超时（秒）',
  'settings.agents.field.fastApplyModel': 'Fast-apply 模型（可选）',
  'settings.agents.field.fastApplyModelHint':
    'apply_model 首次细化使用的更小/便宜模型；可留空使用默认。',
  'settings.agents.field.fastApplyTimeout': 'Fast-apply 超时（秒）',
  'settings.agents.field.selfConsistencyEnabled': '启用 Self-Consistency 投票',
  'settings.agents.field.selfConsistencyEnabledHint':
    '在最终答复轮并行执行 N 次，按一致性挑选答复。',
  'settings.agents.field.selfConsistencySamples': '采样数',
  'settings.agents.field.selfConsistencyTemperature': '采样温度',
  'settings.agents.field.selfConsistencyMaxConcurrent': '最大并发采样数',
  'settings.agents.field.selfConsistencyFinalOnly': '仅在最终答复轮启用',

  'settings.agents.field.webSearchEnabled': '启用 web_search 工具',
  'settings.agents.field.webSearchProvider': '提供方',
  'settings.agents.field.webSearchMaxResults': '最大结果数',
  'settings.agents.field.webSearchTimeout': '超时（秒）',
  'settings.agents.field.webSearchBraveKey': 'Brave API Key',
  'settings.agents.field.webSearchSearxng': 'SearXNG 实例 URL',
  'settings.agents.field.webSearchTavilyKey': 'Tavily API Key',
  'settings.agents.field.webSearchExaKey': 'Exa API Key',
  'settings.agents.field.webSearchSecretsHint': '保存在本地配置文件；留空保留原值。',

  'settings.agents.field.webFetchEnabled': '启用 web_fetch 工具',
  'settings.agents.field.webFetchAllowed': '允许域名（逗号分隔，* = 全部）',
  'settings.agents.field.webFetchBlocked': '黑名单域名（逗号分隔）',
  'settings.agents.field.webFetchPrivate': '允许的私有主机（逗号分隔）',
  'settings.agents.field.webFetchMaxSize': '最大响应字节数',
  'settings.agents.field.webFetchTimeout': '超时（秒）',

  'settings.usage.title': '用量',
  'settings.usage.description': '所有会话的 Token 用量，按模型与会话聚合；花费以美元作为次要指标显示。',
  'settings.usage.kpiSession': '本会话',
  'settings.usage.kpiSessionHint': '当前会话花费',
  'settings.usage.kpiDaily': '今日',
  'settings.usage.kpiDailyHint': '今日已花费',
  'settings.usage.kpiMonthly': '本月',
  'settings.usage.kpiMonthlyHint': '本月累计花费',
  'settings.usage.kpiTokens': '会话 Token',
  'settings.usage.kpiTokensHint': '本会话输入 + 输出 Token 总数',
  'settings.usage.kpiTotalTokens': '累计 Token',
  'settings.usage.kpiTotalTokensHint': '所有会话的 Token 总消耗。',
  'settings.usage.kpiRequests': '请求数',
  'settings.usage.kpiRequestsHint': '已记录的模型请求总数。',
  'settings.usage.kpiTokenRate': 'Token 速率',
  'settings.usage.kpiTokenRateHint': '最近吞吐（最近一小时，按分钟换算）。',
  'settings.usage.kpiAvgTokens': '平均每次请求 Token',
  'settings.usage.kpiAvgTokensHint': '总 Token 除以请求数。',
  'settings.usage.kpi24h': '近 24 小时',
  'settings.usage.kpi24hHint': '近 24 小时内的 Token / 请求 / 花费。',
  'settings.usage.kpi7d': '近 7 天',
  'settings.usage.kpi7dHint': '近 7 天内的 Token / 请求 / 花费。',
  'settings.usage.lifetimeSection': '按模型累计',
  'settings.usage.lifetimeHint': '聚合自 costs.jsonl',
  'settings.usage.providerSection': '按提供商',
  'settings.usage.providerHint': '按模型前缀归并的提供商汇总',
  'settings.usage.workspaceSection': '按工作区',
  'settings.usage.workspaceHint': '按会话所属工作目录聚合',
  'settings.usage.workspaceUnknown': '（未知工作区）',
  'settings.usage.sessionSection': '按会话',
  'settings.usage.sessionHint': '每个会话的 Token 消耗',
  'settings.usage.systemSection': '进程与网关',
  'settings.usage.systemHint': '来自 /api/runtime/snapshot 的实时信息',
  'settings.usage.systemLoading': '正在加载运行信息…',
  'settings.usage.systemVersion': '版本',
  'settings.usage.systemPlatform': '平台',
  'settings.usage.systemPid': '进程 ID',
  'settings.usage.systemCpu': 'CPU 核心',
  'settings.usage.systemUptime': '运行时长',
  'settings.usage.systemStartedAt': '启动时间',
  'settings.usage.systemGateway': '网关地址',
  'settings.usage.systemPathPrefix': '路径前缀',
  'settings.usage.systemWorkspace': '工作目录',
  'settings.usage.systemDefaultProvider': '默认提供商',
  'settings.usage.systemDefaultModel': '默认模型',
  'settings.usage.systemActiveSessions': '活动会话',
  'settings.usage.systemLiveTasks': '后台任务数',
  'settings.usage.tasksSection': '后台任务',
  'settings.usage.tasksLiveSuffix': '正在运行',
  'settings.usage.tasksEmpty': '当前没有受监督的后台任务在运行。',
  'settings.usage.codingModeSection': '按编程模式',
  'settings.usage.codingModeHint': '7 种可见编程工作流的请求级聚合',
  'settings.usage.codingModeKpiActive': '激活模式数',
  'settings.usage.codingModeKpiActiveHint': '至少有一次请求记录的模式数量',
  'settings.usage.codingModeKpiRequests': '模式请求数',
  'settings.usage.codingModeKpiRequestsHint': '归属到某个编程模式的 LLM 调用总数',
  'settings.usage.codingModeKpiTokens': '模式 Token',
  'settings.usage.codingModeKpiTokensHint': '归属到某个编程模式的 Token 总量',
  'settings.usage.codingModeKpiCost': '模式花费',
  'settings.usage.codingModeKpiCostHint': '归属到某个编程模式的累计花费',
  'settings.usage.codingModeNoData': '暂无数据',
  'settings.usage.codingMode.vibe': 'Vibe（自由发挥）',
  'settings.usage.codingMode.spec': 'Spec（规范驱动）',
  'settings.usage.codingMode.plan': 'Plan（结构化规划）',
  'settings.usage.codingMode.ask': 'Ask（问答模式）',
  'settings.usage.codingMode.tdd': 'TDD（测试驱动）',
  'settings.usage.codingMode.debug': 'Debug（系统调试）',
  'settings.usage.codingMode.agent': 'Agent（智能体）',
  'settings.usage.codingMode.architect': 'Architect（架构）',
  'settings.usage.codingMode.pair': 'Pair（结对）',
  'settings.usage.codingMode.context': 'Context（上下文工程）',
  'settings.usage.codingMode.mvai': 'MVAI（敏捷迭代）',
  'settings.usage.codingMode.harness': 'Harness（守护）',
  'settings.usage.colCodingMode': '编程模式',
  'settings.usage.empty': '暂无用量记录。',
  'settings.usage.colModel': '模型',
  'settings.usage.colProvider': '提供商',
  'settings.usage.colModelCount': '模型数',
  'settings.usage.colSession': '会话',
  'settings.usage.colSessionCount': '会话数',
  'settings.usage.colWorkspace': '工作区',
  'settings.usage.colRequests': '请求数',
  'settings.usage.colInputTokens': '输入',
  'settings.usage.colOutputTokens': '输出',
  'settings.usage.colTotalTokens': '总 Token',
  'settings.usage.colCost': '花费 (USD)',
  'settings.usage.colFirstUsed': '首次使用',
  'settings.usage.colLastUsed': '最近使用',
  'settings.usage.colTaskName': '任务',
  'settings.usage.colTaskCount': '运行数',
  'settings.usage.colTaskOldest': '最久存活',
  'settings.usage.deletedSession': '[已删除]',

  'settings.toolsAndMcps.title': '工具与 MCP',
  'settings.toolsAndMcps.description':
    '管理自定义脚本工具与外部 MCP Server 接入。',
  'settings.toolsAndMcps.subtabTools': '自定义工具',
  'settings.toolsAndMcps.subtabGuardrails': '工具策略',
  'settings.toolsAndMcps.subtabWeb': '联网研究',
  'settings.toolsAndMcps.subtabMcps': 'MCP Servers',

  'settings.web.title': '联网研究',
  'settings.web.description':
    '允许助手在解题前通过联网搜索 / 联网获取来核实第三方文档、API 版本、规范、错误信息等本地仓库无法回答的问题。两个开关默认都为开启，关闭后 agent 将仅使用本地上下文回答。',
  'settings.web.loading': '正在加载联网研究设置…',
  'settings.web.disabledHint':
    '当前为关闭状态。模型不会调用对应工具，运行期会通过系统提醒告知它仅用本地上下文作答。',
  'settings.web.providerHintNoKey':
    '当前提供商需要 API Key 但尚未配置 — 运行期会自动回退到 DuckDuckGo，直到你补齐密钥。',
  'settings.web.search.title': '联网搜索',
  'settings.web.search.description':
    '把查询发给搜索提供商，返回带排名的链接列表给 agent 作引证。',
  'settings.web.search.provider': '搜索提供商',
  'settings.web.search.maxResults': '结果数（1-10）',
  'settings.web.search.timeout': '超时（秒）',
  'settings.web.fetch.title': '联网获取',
  'settings.web.fetch.description':
    '允许 agent 获取并阅读指定 URL 的内容，与联网搜索配合使用以获得一手资料。',
  'settings.web.fetch.allowedDomains': '允许的域名',
  'settings.web.fetch.allowedDomainsHint':
    '使用英文逗号分隔；填入 "*" 表示放行任意 host。黑名单优先级高于白名单。',
  'settings.web.fetch.maxSize': '最大响应大小（字节）',
  'settings.web.fetch.timeout': '超时（秒）',

  'settings.userRules.title': '指令规则',
  'settings.userRules.description':
    '该目录中的 Markdown 文件会作为项目级指令追加到助手的系统提示中。',
  'settings.userRules.openDirectory': '打开目录',
  'settings.userRules.empty': '尚无规则文件',
  'settings.userRules.emptyHint':
    '点击「打开目录」可自动创建该文件夹，然后放入任意 *.md 或 *.mdc 规则文件。',
  'settings.userRules.createdHint': '目录已创建，请在其中添加规则文件后刷新。',
  'settings.userRules.openFailed': '打开目录失败',
  'settings.userRules.tierExplanation':
    '提示：在文件顶部添加 YAML frontmatter `alwaysApply: false` 可让该规则改为按需加载（助手判断相关时再载入完整内容）。无 frontmatter 或 `alwaysApply: true` 的文件会作为强制约束始终注入系统提示——这是最安全的默认值。',
  'settings.userRules.alwaysApplyBadge': '始终应用',
  'settings.userRules.alwaysApplyHint': '该规则全文每轮都会注入系统提示，作为强制约束。',
  'settings.userRules.onDemandBadge': '按需加载',
  'settings.userRules.onDemandHint':
    '系统提示中只保留元数据；助手判断相关时会调用 read_user_rule(name) 载入完整内容。',
  'settings.userRules.newButton': '新建',
  'settings.userRules.newDialogTitle': '新建指令规则',
  'settings.userRules.fieldName': '文件名',
  'settings.userRules.namePlaceholder': '例如 typescript-style.md',
  'settings.userRules.nameHint': '将保存为：{computed}',
  'settings.userRules.nameInvalid': '名称非法。请使用普通文件名，不要包含 / \\ 开头点号 或 ".."。',
  'settings.userRules.nameConflict': '已存在同名规则。',
  'settings.userRules.fieldContent': '规则正文（Markdown，可选 YAML frontmatter）',
  'settings.userRules.createButton': '创建',
  'settings.userRules.createdToast': '规则文件已创建。',
  'settings.userRules.savedToast': '规则文件已保存。',
  'settings.userRules.saveFailed': '保存规则失败',
  'settings.userRules.deletedToast': '规则文件已删除。',
  'settings.userRules.deleteFailed': '删除规则失败',
  'settings.userRules.deleteConfirmTitle': '确定要删除该规则？',
  'settings.userRules.deleteConfirmBody':
    '文件 “{name}” 将从规则目录中永久删除，此操作不可撤销。',
  'settings.userRules.editingHint':
    '提示：保留顶部 YAML frontmatter 可继续控制 alwaysApply、description、name。',
  'settings.userRules.revealFile': '在文件管理器中打开',

  'settings.tools.listDescription':
    '工具会以 custom_<name> 名称注册到运行时，禁用项不会注册。',
  'settings.tools.create': '新增自定义工具',
  'settings.tools.empty': '尚未配置任何自定义工具。',
  'settings.tools.disabled': '已禁用',
  'settings.tools.editTitle': '编辑自定义工具',
  'settings.tools.createTitle': '新增自定义工具',
  'settings.tools.fieldName': '名称',
  'settings.tools.fieldDescription': '描述',
  'settings.tools.fieldCommand': '命令',
  'settings.tools.fieldCommandHint': '每次调用时实际执行的可执行文件。',
  'settings.tools.fieldArgs': '参数（每行一个）',
  'settings.tools.fieldArgsHint':
    '使用 {json} 表示完整 JSON 参数，{字段名} 表示单个字段。',
  'settings.tools.fieldCwd': '工作目录',
  'settings.tools.fieldCwdHint': '相对于 workspace 根目录，留空使用 workspace。',
  'settings.tools.fieldEnv': '环境变量（KEY=value，每行一个）',
  'settings.tools.fieldEnvHint': '会与父进程环境合并。',
  'settings.tools.fieldTimeout': '超时（秒）',
  'settings.tools.fieldEnabled': '启用',
  'settings.tools.fieldSchema': '参数 JSON Schema',
  'settings.tools.fieldSchemaHint':
    '提供给 LLM 的严格 schema，保存前会校验为合法 JSON。',
  'settings.tools.errorNamePattern': '名称必须匹配 [a-z_][a-z0-9_]*',
  'settings.tools.errorCommandEmpty': '命令不能为空。',
  'settings.tools.errorTimeout': '超时必须大于 0。',
  'settings.tools.errorSchema': 'Schema 不是合法的 JSON。',
  'settings.tools.confirmDeleteTitle': '删除自定义工具',
  'settings.tools.confirmDeleteMessage':
    '确认要删除自定义工具 "{name}" 吗？此操作无法撤销。',
  'settings.tools.createdToast': '自定义工具已创建。',
  'settings.tools.updatedToast': '自定义工具已更新。',
  'settings.tools.deletedToast': '自定义工具已删除。',

  'settings.rsk.title': '规则、技能与子代理',
  'settings.rsk.description': '管理 Guardrail 策略、Agent 技能与委托子代理。',
  'settings.rsk.subtabRules': '规则',
  'settings.rsk.subtabSkills': '技能',
  'settings.rsk.subtabSubagents': '子代理',

  'settings.rules.engineEnable': '启用 Guardrails 引擎',
  'settings.rules.engineEnableHint': '关闭后，所有工具调用都会绕过策略评估。',
  'settings.rules.defaultPolicy': '默认策略',
  'settings.rules.policy.allow': '允许',
  'settings.rules.policy.deny': '拒绝',
  'settings.rules.policy.requireApproval': '需要审批',
  'settings.rules.policy.auditOnly': '仅审计',
  'settings.rules.listDescription': '规则按从上到下顺序匹配，命中第一条即生效。',
  'settings.rules.create': '新增规则',
  'settings.rules.empty': '尚未配置任何规则。',
  'settings.rules.editTitle': '编辑规则',
  'settings.rules.createTitle': '新增规则',
  'settings.rules.fieldPattern': '工具匹配模式',
  'settings.rules.fieldPatternHint': '按工具名匹配的 Glob 模式。',
  'settings.rules.fieldPolicy': '策略',
  'settings.rules.fieldReason': '原因说明',
  'settings.rules.fieldReasonHint': '审批/拒绝时展示给操作者。',
  'settings.rules.fieldContexts': '生效上下文（逗号分隔）',
  'settings.rules.fieldContextsHint':
    '限定规则仅在特定运行时上下文生效（留空表示总是生效）。',
  'settings.rules.errorPatternEmpty': '工具匹配模式不能为空。',
  'settings.rules.savedToast': 'Guardrails 已保存。',
  'settings.rules.deletedToast': '规则已删除。',
  'settings.rules.confirmDeleteTitle': '删除规则',
  'settings.rules.confirmDeleteMessage': '确认删除模式为 "{pattern}" 的规则吗？此操作无法撤销。',

  'settings.skills.disabledTitle': '禁用的技能',
  'settings.skills.disabledHint': '需要从 Agent prompt 中移除的技能名称（逗号分隔）。',
  'settings.skills.disabledSavedToast': '禁用技能列表已保存。',

  'settings.skills.promptModeTitle': '技能提示注入模式',
  'settings.skills.promptModeHint':
    '控制每轮发送给模型时如何呈现技能。Compact 仅注入摘要并让模型按需用 read_skill 拉取完整内容；Full 每轮预加载全部技能的完整指令与工具描述。',
  'settings.skills.promptMode.compactTitle': 'Compact（按需加载）',
  'settings.skills.promptMode.compactDesc':
    '仅注入 name + description + location。模型需要时通过 read_skill(name) 加载完整文件。每轮节省 5–15K 输入 tokens。',
  'settings.skills.promptMode.fullTitle': 'Full（全部预加载）',
  'settings.skills.promptMode.fullDesc':
    '每轮注入所有技能的完整指令与工具描述。token 成本较高，但模型立即拥有全部上下文。',
  'settings.skills.promptMode.recommended': '推荐',
  'settings.skills.promptModeSavedToast': '技能提示模式已更新。',

  'settings.subagents.listDescription': '委托子代理是主循环可派发任务的用户自定义智能体。',
  'settings.subagents.create': '新增子代理',
  'settings.subagents.empty': '尚未配置任何子代理。',
  'settings.subagents.editTitle': '编辑子代理',
  'settings.subagents.createTitle': '新增子代理',
  'settings.subagents.agenticBadge': 'Agentic',
  'settings.subagents.fieldName': '名称',
  'settings.subagents.fieldProvider': 'Provider',
  'settings.subagents.fieldModel': '模型',
  'settings.subagents.fieldTemperature': 'Temperature',
  'settings.subagents.fieldTemperatureHint': '取值 0.0–2.0。留空表示继承父级配置。',
  'settings.subagents.fieldSystemPrompt': '系统提示',
  'settings.subagents.fieldAllowedTools': '允许的工具（逗号分隔）',
  'settings.subagents.fieldAllowedToolsHint': '运行该子代理时仅暴露这些工具。',
  'settings.subagents.fieldMaxDepth': '最大递归深度',
  'settings.subagents.fieldMaxDepthHint': '防止嵌套委托失控，取值 1–10。',
  'settings.subagents.fieldMaxIterations': '最大迭代次数',
  'settings.subagents.fieldTimeout': '超时（秒）',
  'settings.subagents.fieldTimeoutHint': '单次调用超时。',
  'settings.subagents.fieldAgenticTimeout': 'Agentic 超时（秒）',
  'settings.subagents.fieldAgenticTimeoutHint': '多轮 agentic 循环超时。',
  'settings.subagents.fieldAgentic': 'Agentic 模式',
  'settings.subagents.fieldAgenticHint': '启用后允许多轮工具调用循环，否则只做单次完成。',
  'settings.subagents.fieldSkillsDir': '技能目录（相对路径）',
  'settings.subagents.fieldApiKey': 'API Key（可选）',
  'settings.subagents.fieldApiKeyHint': '为该子代理覆盖父级 Provider Key。',
  'settings.subagents.errorNameEmpty': '名称不能为空。',
  'settings.subagents.errorProviderEmpty': 'Provider 不能为空。',
  'settings.subagents.errorModelEmpty': '模型不能为空。',
  'settings.subagents.errorMaxDepth': '最大深度必须在 1 到 10 之间。',
  'settings.subagents.errorMaxIterations': '最大迭代次数必须 > 0。',
  'settings.subagents.errorTemperature': 'Temperature 必须在 [0.0, 2.0]。',
  'settings.subagents.createdToast': '子代理已创建。',
  'settings.subagents.updatedToast': '子代理已更新。',
  'settings.subagents.deletedToast': '子代理已删除。',
  'settings.subagents.confirmDeleteTitle': '删除子代理',
  'settings.subagents.confirmDeleteMessage': '确认删除子代理 "{name}" 吗？此操作无法撤销。',

  'mode.badge.auto': '自动',
  'mode.badge.supervised': '受监管',
  'mode.badge.readOnly': '只读',
  'mode.badge.checkpoint': '检查点',

  'tool.aboutToRun': '即将执行',
  'tool.batchId': '批次',

  'subagent.thinking': '思考',
  'subagent.status': '状态',

  'review.filesCount': '{count} 个文件',
  'review.keepAll': '全部保留',
  'review.undoAll': '全部撤销',
  'review.undoing': '撤销中…',
  'review.review': '审查',
  'review.stop': '停止',
  'review.stopShortcut': 'Ctrl+Shift+⌫',
  'review.undoFailed': '撤销文件改动失败',

  'settings.lsp.title': '语言服务器',
  'settings.lsp.description':
    '管理用于编辑器实时诊断、悬停提示、自动补全以及智能体代码情报工具的 LSP 服务器。可在托管安装与手动命令覆盖之间逐项切换。',
  'settings.lsp.globalEnable': '启用 LSP 集成',
  'settings.lsp.badge.disabled': '已停用',
  'settings.lsp.badge.stopped': '已停止',
  'settings.lsp.badge.install': '待安装',
  'settings.lsp.badge.installing': '安装中',
  'settings.lsp.badge.ready': '就绪',
  'settings.lsp.badge.starting': '启动中',
  'settings.lsp.badge.failed': '失败',
  'settings.lsp.addServer': '添加服务器',
  'settings.lsp.customTemplate': '自定义（手动）',
  'settings.lsp.customTemplateHint': '自行填写 command / args / env',
  'settings.lsp.empty': '从左侧选择一个语言服务器查看详情，或点击「添加服务器」新建一个。',
  'settings.lsp.recentDiagnostics': '最近诊断',
  'settings.lsp.mode.managed': '托管',
  'settings.lsp.mode.manual': '手动',
  'settings.lsp.field.id': '标识符',
  'settings.lsp.field.languageId': '语言 ID',
  'settings.lsp.field.displayName': '显示名称',
  'settings.lsp.field.command': '可执行文件',
  'settings.lsp.field.args': '参数',
  'settings.lsp.field.env': '环境变量（每行 KEY=VALUE）',
  'settings.lsp.field.fileExtensions': '文件后缀',
  'settings.lsp.field.initOptions': '初始化选项（JSON）',
  'settings.lsp.field.enabled': '启用该服务器',
  'settings.lsp.action.install': '安装',
  'settings.lsp.action.reinstall': '重新安装',
  'settings.lsp.action.retry': '重试安装',
  'settings.lsp.action.enable': '启用',
  'settings.lsp.action.disable': '停用',
  'settings.lsp.action.restart': '重启',
  'settings.lsp.installState.installed': '已安装',
  'settings.lsp.installState.installing': '安装中',
  'settings.lsp.installState.failed': '安装失败',
  'settings.lsp.installState.notInstalled': '未安装',
  'settings.lsp.toast.installFailed': '语言服务器安装失败',
  'settings.lsp.toast.installSucceeded': '语言服务器安装完成',
  'settings.lsp.toast.toggleFailed': '语言服务器启停失败',
  'settings.lsp.toast.restartFailed': '语言服务器重启失败',
  'settings.lsp.toast.deleteFailed': '语言服务器删除失败',
  'settings.lsp.toast.saveFailed': '语言服务器保存失败',
  'settings.lsp.toast.globalToggleFailed': 'LSP 集成开关更新失败',

  'wsManager.workspaceBusyToast': '工作区被其他会话占用，请稍后重试',
  'runtime.syncTimeout': '模型切换未获后端确认(已超时),可能未生效,请重新切换一次。',
  'runtime.syncFailed': '模型选择同步到后端失败，将在下次发送消息前自动重试。',

  'browser.panel.tabs.pinAsTestTarget': '钉为测试目标',
  'browser.panel.tabs.unpinTestTarget': '取消测试目标',
  'browser.panel.tabs.testTargetBadge': '测试目标（QA）',

  'debug.privacy.banner.collapsed':
    'Debug 模式已开启本地 PII 脱敏，您的身份证、手机号、密码、Token 等隐私信息不会被提交给 LLM。',
  'debug.privacy.banner.expanded':
    '这些类别会在调用 LLM 之前被识别并替换为稳定占位符，浏览器快照与工具结果同样会脱敏。',
  'debug.privacy.banner.empty': '本会话尚未检测到需脱敏的隐私信息。',
  'debug.privacy.banner.expand': '展开详情',
  'debug.privacy.banner.collapse': '收起详情',
  'debug.privacy.banner.totalLabel': '本会话脱敏次数',
  'debug.privacy.banner.clear': '清除统计',

  'debug.privacy.categories.id_card': '身份证号',
  'debug.privacy.categories.phone': '手机号',
  'debug.privacy.categories.email': '邮箱',
  'debug.privacy.categories.bank_card': '银行卡号',
  'debug.privacy.categories.jwt': 'JWT 令牌',
  'debug.privacy.categories.api_key': 'API 密钥',
  'debug.privacy.categories.bearer': 'Bearer 令牌',
  'debug.privacy.categories.auth_header': 'Authorization 头',
  'debug.privacy.categories.url_password': 'URL 密码',
  'debug.privacy.categories.kv_secret': '内联密钥',
  'debug.privacy.categories.private_key': '私钥',
  'debug.privacy.categories.ipv4': 'IPv4 地址',
  'debug.privacy.categories.mac': 'MAC 地址',

  'debug.qa.bindTab.button': 'Tab 绑定',
  'debug.qa.bindTab.hint': '选一个内置浏览器中的 Tab 绑定给智能体使用；新弹出的 Tab 会自动归属本会话。',
  'debug.qa.bindTab.refresh': '刷新 Tab 列表',
  'debug.qa.bindTab.empty': '当前 dock 中没有可绑定的 Tab — 请先在内置浏览器中打开页面。',
  'debug.qa.bindTab.ownerUser': '用户',
  'debug.qa.bindTab.ownerAgent': '智能体',
  'debug.qa.bindTab.unbind': '解除绑定',

  'debug.qa.prototypeRef.button': '原型参考',
  'debug.qa.prototypeRef.hint': '绑定一个已打开原型设计（墨刀、Figma等）的 Tab 作为 UI 验证参考；智能体测试时将对比原型效果进行专业验证。',
  'debug.qa.prototypeRef.empty': '当前没有可绑定的 Tab — 请先在内置浏览器中打开原型设计页面。',
  'debug.qa.prototypeRef.unbind': '解除原型绑定',
  'debug.qa.prototypeRef.figmaHint': '或直接粘贴 Figma 设计链接 — 智能体将通过 Figma API 获取精确的布局、配色与字体数据进行高精度对比。',
  'debug.qa.prototypeRef.figmaPlaceholder': '粘贴 figma.com 设计分享链接…',
  'debug.qa.prototypeRef.figmaBind': '绑定',

  'debug.qa.dock.agentBusy': 'Agent 正在测试 dock tab #{tabId}',

  'debug.qa.docs.title': 'QA 文档已生成',
  'debug.qa.docs.openReport': '打开 report.md',
  'debug.qa.docs.openAnalysis': '打开 analysis.md',
  'debug.qa.docs.openRunbook': '打开 runbook.md',

  'settings.debugPrivacy.title': 'Debug 隐私保护',
  'settings.debugPrivacy.description':
    '配置 Debug 模式下调用 LLM 前的出向 PII 脱敏策略。',
  'settings.debugPrivacy.enable': '启用 Debug PII 脱敏',
  'settings.debugPrivacy.enableHint':
    '开启后，发送给 LLM 的消息、工具结果和浏览器快照中的敏感信息将被替换为占位符。',
  'settings.debugPrivacy.sessionStats': '当前会话脱敏总数',
  'settings.debugPrivacy.clearStats': '清除会话统计',
  'settings.debugPrivacy.resetDefaults': '恢复默认设置',

  'debugReport.techDoc.title': '系统技术文档',

  'python.statusBar.notSet': 'Py：未配置',
  'python.statusBar.system': 'Py {version}（系统{pkg}）',
  'python.statusBar.systemNoVersion': 'Py（系统{pkg}）',
  'python.statusBar.venv': 'Py {version}（.venv{pkg}）',
  'python.statusBar.venvNoVersion': 'Py（.venv{pkg}）',
  'python.statusBar.creating': 'Py：正在创建 venv…',
  'python.statusBar.installing': 'Py：正在安装…',
  'python.statusBar.tooltip': '点击管理当前工作区的 Python 解释器',

  'python.picker.title': 'Python 解释器',
  'python.picker.current': '当前解释器',
  'python.picker.notConfigured': '当前工作区尚未配置解释器',
  'python.picker.versionLabel': '版本',
  'python.picker.toolLabel': '工具',
  'python.picker.pathLabel': '路径',
  'python.picker.packagesLabel': '已装包',
  'python.picker.requiredLabel': '项目要求',
  'python.picker.isolatedYes': '工作区隔离',
  'python.picker.isolatedNo': '系统解释器（未隔离）',
  'python.picker.createUv': '使用 uv 创建 .venv',
  'python.picker.createVenv': '使用 python -m venv 创建 .venv',
  'python.picker.selectOther': '选择其他解释器…',
  'python.picker.installRequirements': '安装 requirements.txt',
  'python.picker.installSmart': '安装依赖',
  'python.picker.openVenvDir': '在文件管理器中打开 .venv',
  'python.picker.openTerminal': '打开终端',
  'python.picker.purge': '删除 .venv',
  'python.picker.notInstalledNotice':
    '当前系统未检测到 Python 解释器，请先安装 Python 3.x 后再创建隔离环境。',
  'python.picker.openPythonDownload': '打开 python.org 下载页',
  'python.picker.openDirFailed': '打开 .venv 目录失败。',
  'python.picker.terminalOpened': '终端已打开，新建智能体将自动激活该工作区的 venv。',
  'python.picker.candidatesTitle': '检测到的解释器',
  'python.picker.candidatesEmpty': '当前系统未检测到可用的 Python 解释器',
  'python.picker.actionsTitle': '操作',
  'python.picker.refresh': '刷新',
  'python.picker.close': '关闭',
  'python.picker.jobCreating': '正在创建 .venv…',
  'python.picker.jobInstalling': '正在安装依赖…',
  'python.picker.jobNoOutputYet': '（暂无输出）',
  'python.picker.errorPrefix': '上次错误：',
  'python.picker.expand': '展开',
  'python.picker.collapse': '收起',

  'python.toast.detectedNoVenv':
    '检测到 Python 项目 — 建议为当前工作区创建独立的 .venv，避免依赖在不同工作区之间互相影响。',
  'python.toast.createCta': '使用 uv 创建',
  'python.toast.createFallbackCta': '使用 venv 创建',
  'python.toast.creationStarted': '正在工作区 .venv 中创建 Python 虚拟环境…',
  'python.toast.creationDone': '当前工作区 .venv 已就绪',
  'python.toast.creationFailed': '创建 .venv 失败：{error}',
  'python.toast.fallbackVenv': '未检测到 uv，已自动改用 python -m venv，工作区 .venv 已就绪。',
  'python.toast.interpreterSelected': '当前工作区的 Python 解释器已更新。',
  'python.toast.installDone': '依赖安装完成。',
  'python.toast.installFailed': '依赖安装失败：{error}',
  'python.toast.purgeDone': '工作区 .venv 已删除。',

  'agentMonitor.title': '智能体监控',
  'agentMonitor.expand': '展开智能体监控',
  'agentMonitor.collapse': '收起智能体监控',
  'agentMonitor.filter.active': '活跃',
  'agentMonitor.filter.errors': '异常',
  'agentMonitor.groupBy.workspace': '按工作区',
  'agentMonitor.groupBy.status': '按状态',
  'agentMonitor.groupBy.flat': '平铺',
  'agentMonitor.groupBy.menuLabel': '分组方式',
  'agentMonitor.empty': '暂无可显示的智能体。',
  'agentMonitor.emptyActive': '当前没有正在运行的智能体，历史会话见下方列表。',
  'agentMonitor.emptyErrors': '没有处于异常或工作区缺失的智能体。',
  'agentMonitor.unknownWorkspace': '其他',
  'agentMonitor.summary': '运行 {running} · 等待 {waiting} · 错误 {error}',
  'agentMonitor.summaryShort': '活跃 {active} · 共 {total}',
  'agentMonitor.clickToFocus': '点击切换到该智能体',
  'agentMonitor.queuedBadge': '排队 {count} 条',
  'agentMonitor.attached': '当前正在使用',
  'agentMonitor.status.running': '运行中',
  'agentMonitor.status.thinking': '思考中',
  'agentMonitor.status.tool': '工具执行中',
  'agentMonitor.status.waiting': '等待审批',
  'agentMonitor.status.queued': '排队中',
  'agentMonitor.status.error': '错误',
  'agentMonitor.status.disconnected': '已断开',
  'agentMonitor.status.missingWorkDir': '工作目录缺失',
  'agentMonitor.status.idle': '空闲',
  'agentMonitor.status.waiting_resource': '等待资源',
  'agentMonitor.status.waitingResource': '等待资源',
  'agentMonitor.waitingResourceCount': '正在等待 {count} 个资源',
  'agentMonitor.codingMode': '模式',
  'agentMonitor.detail.elapsed': '已运行 {time}',
  'agentMonitor.detail.tool': '工具 {name}',
  'agentMonitor.detail.streaming': '正在生成',
  'agentMonitor.detail.thinking': '思考中',
  'agentMonitor.detail.permissionPending': '等待审批',
  'agentMonitor.detail.waitingFile': '等待文件 {target}',
  'agentMonitor.detail.waitingShell': '等待终端',
  'agentMonitor.detail.waitingBrowser': '等待内置浏览器',
  'agentMonitor.detail.queued': '队列 {count} 条',
  'agentMonitor.detail.tokens': '累计 token {count}',
  'agentMonitor.detail.edits': '{count} 个文件待提交',
  'agentMonitor.detail.lastEdit': '最近编辑 {path}',
  'agentMonitor.detail.heldBy': '被「{holder}」占用',
  'agentMonitor.detail.connection.connecting': '连接中',
  'agentMonitor.detail.connection.reconnecting': '重连中',
  'agentMonitor.detail.connection.disconnected': '已断开',
  'chat.resourceWait.banner.title': '正在等待资源',
  'chat.resourceWait.file': '文件 {path}',
  'chat.resourceWait.shell': '终端',
  'chat.resourceWait.browser': '内置浏览器',
  'chat.resourceWait.heldBy': '被「{holder}」占用',
  'chat.resourceWait.heldByUnknown': '被其他会话占用',
  'chat.resourceWait.switchTo': '切换',
  'chat.resourceWait.collapse': '收起',
  'chat.resourceWait.expandMore': '查看其他 {count} 条等待',

  'templateLibrary.title': '模板库',
  'templateLibrary.subtitle': '浏览、预览并自定义内置的设计体系、模板与文档蓝本。',
  'templateLibrary.open': '模板库',
  'templateLibrary.close': '关闭',
  'templateLibrary.loading': '加载中…',
  'templateLibrary.empty': '暂无内容。',
  'templateLibrary.search': '搜索模板…',
  'templateLibrary.category.designSystems': '设计体系',
  'templateLibrary.category.designerTemplates': '设计模板',
  'templateLibrary.category.promptTemplates': '提示词模板',
  'templateLibrary.category.curatorTemplates': '文档模板',
  'templateLibrary.badge.builtin': '内置',
  'templateLibrary.badge.user': '自定义',
  'templateLibrary.badge.customized': '已自定义',
  'templateLibrary.badge.stale': '内置已更新',
  'templateLibrary.action.edit': '编辑',
  'templateLibrary.action.preview': '预览',
  'templateLibrary.action.save': '保存',
  'templateLibrary.action.saved': '已保存',
  'templateLibrary.action.reset': '重置为内置',
  'templateLibrary.action.diff': '查看差异',
  'templateLibrary.action.merge': '合并',
  'templateLibrary.action.delete': '删除',
  'templateLibrary.action.create': '新建',
  'templateLibrary.action.back': '返回',
  'templateLibrary.action.cancel': '取消',
  'templateLibrary.diff.title': '内置版本与你的版本对比',
  'templateLibrary.diff.builtin': '内置',
  'templateLibrary.diff.yours': '你的版本',
  'templateLibrary.staleBanner': '该文件的内置版本已更新。你可以查看差异、保留你的版本，或重置为内置。',
  'templateLibrary.create.title': '新建',
  'templateLibrary.create.id': '标识',
  'templateLibrary.create.name': '名称',
  'templateLibrary.create.description': '描述',
  'templateLibrary.create.category': '分类',
  'templateLibrary.create.surface': '媒介',
  'templateLibrary.create.baseKind': '基础类型',
  'templateLibrary.create.submit': '创建',
  'templateLibrary.confirmDelete': '删除该自定义条目？此操作不可撤销。',
  'templateLibrary.confirmReset': '将该文件重置为内置版本？你的修改将丢失。',
  'templateLibrary.toast.saved': '已保存，修改立即生效。',
  'templateLibrary.toast.reset': '已重置为内置。',
  'templateLibrary.toast.created': '已创建。',
  'templateLibrary.toast.deleted': '已删除。',
  'templateLibrary.toast.error': '操作失败。',
  'templateLibrary.preview.none': '该条目暂无可用预览。',
  'templateLibrary.preview.prompt': '提示词',
}
