/** * Generated by frontend/src/i18n/extract-i18n.mjs from openai4s/server/webui/app.js. * Do not edit by hand. Re-run: node frontend/src/i18n/extract-i18n.mjs */ const dict: Record = { "cust.general.language": "语言", "cust.general.languageDesc": "界面显示语言(保存在本机浏览器)", "cust.general.themeName": "外观主题", "cust.general.themeDesc": "浅色 / 深色 / 跟随系统(保存在本机浏览器)", "theme.light": "浅色", "theme.dark": "深色", "theme.system": "系统", "theme.toggle": "切换主题", "toast.theme": "主题:{0}", "annot.added": "已添加标注 · 发送消息时会一并提交给智能体", "annot.artifactFallback": "artifact", "annot.attachCount": " 附带 {0} 条图像标注", "annot.chip.title": "点击查看待发送的图像标注(发送消息时一并提交给智能体)", "annot.comment.plural": " 条评论", "annot.comment.singular": " 条评论", "annot.deleted": "已删除标注", "annot.discard.title": "取消待发送评论", "annot.discarded": "已取消待发送评论", "annot.draft.placeholder": "添加标注…", "annot.list.head": "待发送标注 · {0}", "annot.noSession": "请先打开一个会话", "annot.remove.err": "移除失败:{0}", "annot.save.err": "标注保存失败:{0}", "annot.save.err404": "保存失败:后端未加载标注接口,请重启服务(python3 -m openai4s serve)", "annot.status.open": "待发送", "annot.status.pending": "发送中", "annot.status.unknown": "状态未知", "annot.status.resolved": "已处理", "annot.status.sent": "已发送", "app.title": "OpenAI4S", "art.default.filename": "制品", "artifact.delete.confirm": "确定删除该文件?此操作不可撤销。", "artifact.deleted": "已删除:{0}", "artifact.hidden": "已隐藏", "artifact.linkCopied": "已复制链接", "artifact.metadataExported": "已导出元数据 JSON", "artifact.notEditable": "该文件类型不可编辑", "artifact.priority.err": "操作失败:{0}", "artifact.rename.prompt": "重命名文件", "artifact.renamed": "已重命名", "artifact.save.err": "保存失败:{0}", "artifact.saved": "已保存:{0}", "artifact.starred": "已收藏 ⭐", "artifact.unstarred": "已取消收藏", "btn.remove": "移除", "code.copied": "已复制", "code.copy.title": "复制代码", "code.lang.text": "text", "common.add": "添加", "common.cancel": "取消", "common.close": "关闭", "common.delete": "删除", "common.download": "下载", "common.edit": "编辑", "common.loading": "加载中…", "common.nameRequired": "请填写名称", "common.retry": "重试", "common.save": "保存", "common.saving": "保存中…", "common.settings": "设置", "common.view": "查看", "composer.attach": "上传文件", "composer.addToMessage": "添加到消息", "composer.sessionOptions": "会话选项", "composer.menu.attachFiles": "附加文件", "composer.menu.contextUsage": "上下文用量", "composer.menu.requestReview": "请求审核", "composer.menu.saveAsSkill": "另存为技能", "composer.menu.yourFiles": "你的文件", "composer.option.autoReview": "自动审核", "composer.option.compute": "计算环境", "composer.option.delegation": "委派", "composer.option.memory": "记忆", "composer.option.reviewerModel": "Reviewer 模型", "composer.option.sameModel": "跟随主模型", "composer.option.specialist": "专家", "composer.model": "模型", "composer.placeholder": "输入任何内容 — @ 引用制品,# 引用会话,/ 使用技能,⌘K 搜索…", "composer.placeholderQueue": "当前任务运行中 — 现在发送将排入队列…", "queue.accepted": "已排入队列,将在当前任务之后运行", "queue.waiting": "{0} 条排队中", "queue.noPreview": "(无文本)", "queue.underProfile": "配置 {0} · 版本 {1}", "queue.onBranch": "分支 {0}", "queue.cancelOne": "取消这一条(不影响正在运行的任务)", "queue.cancelled": "已取消该排队消息", "queue.cancelFailed": "取消排队消息失败:{0}", "composer.planMode": "计划模式", "composer.exploreMode": "自主探索", "composer.voice": "语音输入", "confirm.deleteSession": "确定删除该会话?此操作不可撤销。", "conv.dockToggle": "侧栏面板", "conv.jumpLast": "跳到最后一条", "conv.jumpLastLabel": "最新", "conv.loadEarlier": "加载更早的消息", "conv.loadEarlierFailed": "加载更早的消息失败:{0}", "conv.exportTruncated": "(导出被长度上限截断:更早的消息未包含在内)", "output.binaryElided": "已省略二进制输出({0})", "skill.invokeDirective": "请使用技能「{0}」:先调用 host.load_skill(\"{0}\") 载入其完整协议,然后严格按照该协议完成任务。", "skill.useInChat": "在对话中使用", "skill.insertedToast": "已插入 /{0},回车即可调用该技能", "resizer.drag": "拖动调整宽度", "zoom.in": "放大", "zoom.out": "缩小", "zoom.reset": "适应窗口(点击百分比重置)", "zoom.hint": "⌘/Ctrl+滚轮或双指捏合缩放 · 放大后拖动平移 · 点击图片添加批注", "conv.resuming.hint": "此会话仍在后台运行,正在恢复…", "conv.title.default": "会话", "conv.title.rename": "重命名会话(回车保存)", "cust.compute.desc": "本地内核环境、预装包与加速器", "environment.readiness.bannerTitle": "standard 科研环境尚未就绪", "environment.readiness.bannerMissing": "缺少 {0} 个环境、{1} 个软件包;首个科研 Cell 运行前需要处理。", "environment.readiness.bannerUnavailable": "当前无法确认科研环境是否就绪;未知状态不会被显示成就绪。", "environment.readiness.openCompute": "查看缺项与修复命令", "environment.readiness.cardTitle": "Standard profile readiness", "environment.readiness.ready": "就绪:Python 与 R 的 standard 依赖均已核对。", "environment.readiness.needsSetup": "需要创建缺失的 standard 环境。", "environment.readiness.needsRepair": "环境存在,但缺少 standard 清单中的软件包。", "environment.readiness.unavailable": "无法完成本地 readiness 检查;系统未将它猜测为就绪。", "environment.readiness.missingEnvironments": "缺少环境", "environment.readiness.missingPackages": "{0} 缺少的软件包", "environment.readiness.remediation": "受管修复命令", "environment.readiness.explicitOnly": "仅复制;必须由你显式运行,不会自动安装。", "environment.readiness.copy": "复制命令", "environment.readiness.copied": "修复命令已复制", "environment.readiness.refresh": "刷新 readiness", "environment.readiness.sendBlocked": "首个科研 Cell 已在启动前停止。请先完成 standard 环境配置。", "cust.compute.gpuAvailable": "可用", "cust.compute.gpuName": "GPU", "cust.compute.gpuUnavailable": "不可用(本地无 GPU;重型模型以标注的 CPU 近似替代,或走 Modal/SSH 远程算力)", "cust.compute.host": "本机", "cust.compute.hostDetail": "Python {0} · {1} · {2} CPU · {3} GB 内存 · {4} GB 空闲", "cust.compute.installBtn": "安装", "cust.compute.installExtraName": "安装额外的包", "cust.compute.installPlaceholder": "如 scanpy anndata(空格分隔)", "cust.compute.installingBtn": "安装中…", "cust.compute.kernelInstalling": "预装中…", "cust.compute.kernelLabel": "{0} 内核 · {1}", "cust.compute.kernelReady": "就绪", "cust.compute.kernelRestarted": "(内核已重启)", "cust.compute.localName": "本机", "cust.compute.remoteName": "远程 GPU(结构预测)", "cust.compute.remoteDetail": "{0} · {1} · {2} · 由 host.fold() 实时调用", "cust.compute.remoteOnline": "在线", "cust.compute.remoteUnreachable": "已配置(当前不可达)", "cust.remote.title": "远程 GPU", "cust.remote.desc": "把 ~/.ssh/config 里的主机作为远端算力;服务按需在其上部署,并记入记忆以便复用。", "cust.remote.services": "服务:", "cust.remote.noservices": "尚未部署服务", "cust.remote.unreachable": "当前不可达", "cust.remote.addName": "添加远程 GPU(来自 ~/.ssh/config)", "cust.remote.pickAlias": "选择一个 SSH 主机…", "cust.remote.noAlias": "~/.ssh/config 里没有可用主机", "cust.remote.testing": "连接测试中…", "cust.remote.added": "已添加 {0}({1})", "cust.remote.addedUnreachable": "已添加 {0},但当前不可达", "cust.remote.confirmRemove": "从远程算力中移除 {0}?", "common.remove": "移除", "cust.compute.preinstalledDetail": "已预装 {0} 个科学/联网包:{1}", "cust.compute.title": "计算", "cust.connectors.cmdPlaceholder": "启动命令,如 npx -y @modelcontextprotocol/server-filesystem .", "cust.connectors.editTitle": "编辑连接器 — {0}", "cust.connectors.commandLabel": "启动命令(JSON 字符串或字符串数组)", "cust.connectors.argsLabel": "附加参数(JSON 数组)", "cust.connectors.envConfigured": "已配置的环境变量:{0}", "cust.connectors.envNone": "尚未配置环境变量", "cust.connectors.envUpdatesLabel": "新增或替换环境变量", "cust.connectors.envUpdatesPlaceholder": "每行 NAME=value;留空表示保留现有值", "cust.connectors.envRemoveLabel": "删除环境变量", "cust.connectors.envRemovePlaceholder": "每行一个 NAME;只有列出的变量会被删除", "cust.connectors.invalidJson": "命令或参数不是有效的 JSON", "cust.connectors.invalidEnv": "环境变量更新必须使用 NAME=value 格式", "cust.connectors.saved": "已保存连接器 {0}", "cust.connectors.customAddName": "添加自定义(命令行 MCP 服务器)", "cust.connectors.deleteConfirm": "删除连接器 {0}?", "cust.connectors.desc": "MCP 工具服务器:连接外部工具,智能体用 host.mcp.call(id, tool, args) 调用", "cust.connectors.fromDirectory": "从目录添加", "cust.connectors.namePlaceholder": "名称", "cust.connectors.test": "测试", "cust.connectors.testing": "测试中…", "cust.datapro.title": "火山方舟专业数据集 DataPro", "cust.datapro.desc": "保存 Agent Plan Key 后直接调用 dataPro_search;已配置的 Ark API Key 会自动复用。", "cust.datapro.connectorToggle": "启用/停用 DataPro 连接器", "cust.datapro.connectorOn": "已启用 DataPro 连接器。", "cust.datapro.connectorOff": "已停用 DataPro 连接器,智能体不再访问该服务。", "cust.datapro.keyLabel": "Agent Plan Key", "cust.datapro.keyPlaceholder": "输入 Agent Plan Key", "cust.datapro.keyPlaceholderSet": "已保存;输入新 Key 可替换", "cust.datapro.keyPlaceholderArk": "已复用 Ark API Key;输入新 Key 可替换", "cust.datapro.keyConfigured": "凭证已保存", "cust.datapro.keyArkReused": "已复用 Ark API Key", "cust.datapro.keyMissing": "尚未配置 Agent Plan Key", "cust.datapro.saveKey": "保存凭证", "cust.datapro.keyRequired": "请输入 Agent Plan Key", "cust.datapro.keySaved": "Agent Plan Key 已安全保存", "cust.datapro.queryLabel": "查询专业数据集", "cust.datapro.queryPlaceholder": "输入要检索的问题", "cust.datapro.search": "调用专业数据集", "cust.datapro.searching": "查询中…", "cust.datapro.queryRequired": "请输入查询文本", "cust.datapro.available": "专业数据集可用", "cust.datapro.indexed": "已完整索引本次返回的 {0} 条记录({1} 个内容叶节点)", "cust.datapro.indexFailed": "本次返回内容索引失败,专业数据集暂不可用", "cust.datapro.auth4011": "Key 无效、额度不足,或者专业数据集 Harness 未开启。", "cust.datapro.unavailable": "专业数据集不可用(code {0})", "cust.datapro.requestFailed": "专业数据集查询失败:{0}", "cust.datapro.result": "查询结果", "cust.datapro.noResult": "尚未查询。", "cust.datapro.enableSkill": "导入/启用 volcengine-datapro Skill", "cust.datapro.enablingSkill": "启用中…", "cust.datapro.skillEnabled": "volcengine-datapro Skill 已启用", "cust.datapro.skillEnabledToast": "volcengine-datapro Skill 与 DataPro connector 已启用", "cust.datapro.artifact": "已保存:{0}", "cust.doubao.title": "豆包搜索 Custom 版", "cust.doubao.primary": "主选", "cust.doubao.desc": "联网搜索主选项;与 Ark 和 DataPro 共用同一个 Agent Plan Key。只有真实返回非空豆包结果才会标记可用。", "cust.doubao.keyLabel": "Agent Plan Key(一次授权)", "cust.doubao.keyPlaceholder": "输入 Agent Plan Key", "cust.doubao.keyPlaceholderSet": "已保存;输入新 Key 可替换", "cust.doubao.keyPlaceholderArk": "已复用 Ark API Key;输入新 Key 可替换", "cust.doubao.keyConfigured": "凭证已保存", "cust.doubao.keyArkReused": "已复用 Ark API Key", "cust.doubao.keyMissing": "尚未配置 Agent Plan Key", "cust.doubao.saveKey": "保存凭证", "cust.doubao.keyRequired": "请输入 Agent Plan Key", "cust.doubao.keySaved": "Agent Plan Key 已安全保存,可同时用于豆包搜索和 DataPro", "cust.doubao.queryLabel": "查询豆包搜索", "cust.doubao.queryPlaceholder": "输入要联网检索的问题(最多 100 个字符)", "cust.doubao.search": "调用豆包搜索", "cust.doubao.searching": "搜索中…", "cust.doubao.queryRequired": "请输入查询文本", "cust.doubao.available": "豆包搜索可用", "cust.doubao.empty": "豆包搜索未返回可用结果", "cust.doubao.requestFailed": "豆包搜索失败:{0}", "cust.doubao.result": "搜索结果", "cust.doubao.noResult": "尚未搜索。", "cust.general.apiKeyConfigured": "✅ 已配置", "cust.general.apiKeyMissing": "⚠️ 尚未配置 API Key — 发送消息会失败", "cust.general.configureBtn": "配置 →", "cust.general.desc": "全局外观与偏好(保存在本机浏览器)", "cust.general.layout.comfortable": "舒适", "cust.general.layout.compact": "紧凑", "cust.general.layout.wide": "宽屏", "cust.general.layoutDesc": "调整界面的间距与内容宽度", "cust.general.layoutName": "布局密度", "cust.general.modelKeyName": "模型与 API Key", "cust.general.title": "通用", "cust.load.timeout": "设置加载超时。请检查本地服务后重试。", "cust.importing": "导入中…", "cust.jobs.cmdPlaceholder": "bash: 如 \"for i in 1 2 3; do echo $i; sleep 1; done\";python: 一段脚本", "cust.jobs.desc": "把长命令/脚本作为后台任务运行,可查看输出、取消", "cust.jobs.dropped": "· 已丢弃 {0} 字节", "cust.jobs.empty": "还没有任务。", "cust.jobs.runBtn": "运行", "cust.jobs.submitName": "提交任务", "cust.jobs.title": "计算任务 Jobs", "cust.jobs.viewOutput": "输出", "cust.memory.addName": "添加记忆", "cust.memory.categories": "分类", "cust.memory.contentPlaceholder": "如 用户偏好 Python,专注嗜极菌系统发育…", "cust.memory.desc": "跨会话长期记忆(启用后自动注入后续会话的上下文)", "cust.memory.disabledDesc": "未启用", "cust.memory.empty": "还没有记忆。添加后会在启用时注入每次会话。", "cust.memory.enableName": "启用记忆", "cust.memory.enabledDesc": "已启用 — 保存的记忆会注入每次会话", "cust.memory.injectedCounts": "已注入 {0} 条 · 省略 {1} 条 · 继承自全局 {2} 条 · 被本项目同类记忆覆盖 {3} 条", "cust.memory.injectedInto": "注入到 {0}", "cust.memory.scope.global": "全局(所有项目)", "cust.memory.scopeName": "范围", "cust.memory.title": "记忆", "cust.models.activePill": "当前", "cust.models.addBtn": "新增", "cust.models.addHeading": "新增模型 / API", "cust.models.available": "可选模型", "cust.models.baseUrl.placeholder": "Base URL(留空用该协议默认)", "cust.models.baseUrlPlaceholder": "Base URL(留空用该协议默认)", "cust.models.cancelEdit": "取消编辑", "cust.models.configuredHeading": "已配置的模型 / API", "cust.models.editHeading": "编辑:{0}", "cust.models.empty2": "还没有模型配置。用上面的表单新增一个。", "cust.models.hasKey": "🔑 已配置 Key", "cust.models.reachable": "端点已响应一次最小请求", "cust.models.test": "测试连接", "cust.models.testing": "正在联系该端点…", "cust.models.unreachable": "未能联系上该端点", "cust.models.key.configured": "✅ API Key 已配置", "cust.models.key.missing": "⚠️ 尚未配置 API Key — 发送消息会失败", "cust.models.key.placeholder.set": "API Key(已配置,留空则不改动)", "cust.models.key.placeholder.unset": "API Key(尚未配置,请填写)", "cust.models.keyPlaceholderSet": "API Key(已配置,留空则保留)", "cust.models.keyPlaceholderUnset": "API Key(未配置,可填写)", "cust.models.label.apiKey": "API Key", "cust.models.label.baseUrl": "Base URL", "cust.models.label.defaultModel": "默认模型", "cust.models.label.provider": "兼容协议", "cust.models.label.protocol": "兼容协议", "cust.models.model.placeholder": "模型 id(留空用该协议默认)", "cust.models.modelPlaceholder2": "模型 id(留空用该协议默认)", "cust.models.namePlaceholder": "名称(如 DeepSeek 生产 / 本地 vLLM)", "cust.models.local.title": "本地推理服务", "cust.models.local.desc": "点击下方按钮扫描本机固定端口上的 Ollama、LM Studio、vLLM 与 llama.cpp;扫描不会修改当前模型,未知能力默认走保守的 Code-as-Action。", "cust.models.local.scan": "扫描本机", "cust.models.local.idle": "尚未扫描。点击上方按钮检测本机的 Ollama、LM Studio、vLLM 与 llama.cpp。", "cust.models.local.scanning": "正在扫描本机…", "cust.models.local.none": "没有发现可用的本地 OpenAI-compatible endpoint。", "cust.models.local.models": "{0} 个模型", "cust.models.local.add": "添加配置", "cust.models.local.configured": "已配置", "cust.models.local.added": "已添加本地模型:{0}", "cust.models.local.error": "本地模型扫描失败:{0}", "cust.models.local.keyless": "本机 · 无需 API Key", "cust.models.noKey": "⚠️ 无 Key", "cust.models.protocol.openai": "OpenAI 兼容协议", "cust.models.protocol.anthropic": "Anthropic 兼容协议", "cust.models.protocol.ark": "ark 兼容协议", "cust.models.protocol.gemini": "Gemini 兼容协议", "cust.models.protocol.openaiResponses": "OpenAI Responses 协议", "cust.search.name": "备用搜索 API Key(Tavily)", "cust.search.desc": "Tavily 是备用搜索选项;接入点固定为 api.tavily.com。豆包搜索的专用测试不会回退到这里。", "cust.search.set": "已配置", "cust.search.unset": "未配置", "cust.search.ph": "输入 Tavily API Key", "cust.search.saved": "搜索 Key 已保存", "art.uploaded": "上传", "art.generated": "生成", "cust.models.save": "保存并生效", "cust.models.setActive": "设为当前", "cust.models.setDefault": "设为默认", "cust.models.subtitle": "配置 LLM 兼容协议、Base URL、模型与 API Key(保存后立即生效)", "cust.models.subtitle2": "配置多套 LLM API(兼容协议 / Base URL / 模型 / Key),随时新增、切换或删除,方便对接不同接口", "cust.models.updateBtn": "更新", "cust.volc.title": "火山方舟", "cust.volc.notInstalled": "Ark Connector 未安装", "cust.volc.getConnector": "获取 Ark Connector", "cust.volc.disconnected": "未连接", "cust.volc.expired": "登录已过期", "cust.volc.connect": "使用火山引擎登录", "cust.volc.loginPrep": "点击登录后会在浏览器打开火山官方授权页。完成授权后,复制页面显示的完整授权字符串(不要只复制其中的 code),再粘贴回这里;OpenAI4S 不会打开系统终端。", "cust.volc.reconnectPrep": "点击重新登录后会在浏览器打开火山官方授权页。完成授权后,复制页面显示的完整授权字符串(不要只复制其中的 code),再粘贴回这里;已有 Project 通常会继续复用。", "cust.volc.connecting": "正在提交授权并检查账号…", "cust.volc.authTitle": "火山授权已准备好", "cust.volc.authBody": "授权页会在浏览器新标签页打开。完成火山账号授权后,复制页面显示的完整授权字符串(通常是一段 Base64 文本,包含 code 和 state),再粘贴回这里;不要只复制其中的 code。如果没有看到新页面,请点击下方按钮重新打开。", "cust.volc.projectHint": "Project 决定 OpenAI4S 可访问的火山资源。已有 Profile 会继续复用;首次登录如果存在多个 Project,Ark CLI 会要求选择一次。", "cust.volc.cancel": "取消", "cust.volc.failed": "连接失败,请重试", "cust.volc.projectRequiredTitle": "账号授权已完成,还差 Project 设置", "cust.volc.projectRequiredBody": "授权已完成,但当前 Ark CLI 还需要 Project 设置。请在本机终端运行 arkcli auth login volc-sso,完成后返回这里重新检查。", "cust.volc.cliSetupTitle": "需要完成一次 Ark CLI 设置", "cust.volc.cliSetupBody": "请在本机终端运行 arkcli auth login volc-sso,完成授权和 Project 设置后再重新检查。", "cust.volc.retrySetup": "重新开始登录", "cust.volc.openAuth": "打开授权页面", "cust.volc.codePlaceholder": "粘贴完整授权码", "cust.volc.complete": "完成授权", "cust.volc.connected": "已连接", "cust.volc.project": "Project:{0}", "cust.volc.connectedNoAccessTitle": "火山账号已连接,但还不能调用模型", "cust.volc.noPlanBody": "当前账号没有 Agent Plan、Coding Plan 或可用的 API Key。可以购买套餐,或创建平台 API Key;创建后 OpenAI4S 会自动检查。", "cust.volc.keyMissingTitle": "账号已连接,套餐尚未准备好", "cust.volc.keyMissingBody": "已找到套餐,但没有可用于模型调用的 API Key。请在火山控制台创建 Key,返回后 OpenAI4S 会自动继续;不需要复制 Key。", "cust.volc.keyWaiting": "正在等待新的 API Key…创建完成后会自动继续。", "cust.volc.keyChoiceTitle": "选择用于 OpenAI4S 的 API Key", "cust.volc.keyChoiceBody": "当前 Profile 中有多把可用 Key,且没有唯一的默认项。选择一次即可,Key 内容不会发送到浏览器。", "cust.volc.apiKey": "API Key", "cust.volc.keyName": "{0}(末四位 {1})", "cust.volc.profileMissingTitle": "账号已连接,Ark 配置尚未完成", "cust.volc.profileMissingBody": "套餐存在,但 Ark CLI 没有对应的 Profile。重新进行一次登录设置即可补齐。", "cust.volc.planInactiveTitle": "账号已连接,但套餐当前不可用", "cust.volc.planInactiveBody": "检测到套餐,但它尚未生效或已经过期。处理套餐状态后重新检查即可,无需重新登录。", "cust.volc.seatTitle": "账号已连接,还需要团队席位", "cust.volc.seatBody": "检测到团队套餐,但当前用户没有可用席位。请让管理员分配席位后重新检查。", "cust.volc.quotaTitle": "套餐额度已用尽", "cust.volc.quotaBody": "登录和配置仍然有效。额度恢复、续费或切换套餐后重新检查即可,无需重新登录。", "cust.volc.platformTitle": "已找到平台 API Key,还需要模型 Endpoint", "cust.volc.platformBody": "这个账号可以走按量调用,但需要先在方舟控制台选择模型并创建 Endpoint。完成后再返回配置。", "cust.volc.platformReadyTitle": "已找到可用 Endpoint", "cust.volc.platformReadyBody": "OpenAI4S 已找到当前 Project 下唯一可调用的 Endpoint,可以直接完成配置。", "cust.volc.endpointChoiceTitle": "选择用于 OpenAI4S 的 Endpoint", "cust.volc.endpointChoiceBody": "当前 Project 下有多个可调用 Endpoint。选择一个后,OpenAI4S 会将它设为当前模型。", "cust.volc.endpoint": "Endpoint", "cust.volc.useEndpoint": "使用此 Endpoint", "cust.volc.choiceTitle": "选择要用于 OpenAI4S 的套餐", "cust.volc.choiceBody": "这个账号有多个可用套餐。请选择一个,OpenAI4S 只会配置所选套餐。", "cust.volc.checkFailedTitle": "账号已连接,但资源检查未完成", "cust.volc.checkFailedBody": "暂时无法读取套餐或 API Key 状态。可以重新检查;登录状态不会受影响。", "cust.volc.viewPlans": "查看套餐", "cust.volc.createKey": "创建 API Key", "cust.volc.openEndpoints": "打开 Endpoint 控制台", "cust.volc.recheck": "重新检查", "cust.volc.rechecking": "正在检查账号资源…", "cust.volc.rechecked": "检查完成,已同步最新资源", "cust.volc.plan": "套餐", "cust.volc.usePlan": "使用此套餐", "cust.volc.ready": "已可使用", "cust.volc.switch": "切换账号", "cust.volc.disconnect": "从 OpenAI4S 断开", "cust.volc.disconnectConfirm": "从 OpenAI4S 移除此火山配置?Ark CLI 本身仍会保持登录。", "cust.volc.quota": "套餐额度", "cust.volc.reset": "重置:{0}", "cust.volc.configureFailed": "自动配置失败:{0}", "cust.volc.refreshFailed": "刷新失败:{0}", "cust.network.allowName": "允许联网", "cust.network.desc": "联网访问(智能体的 web_search / web_fetch / bash 与代码请求)", "cust.network.disabledDesc": "已禁用 — 智能体仅用本地知识与已有文件", "cust.network.enabledDesc": "已启用 — 智能体可实时检索文献、抓取数据库、下载数据包", "cust.network.title": "网络", "cust.telemetry.name": "匿名用量统计", "cust.telemetry.off": "已关闭 — 没有任何数据离开这台机器", "cust.telemetry.on": "已开启 — 仅发送匿名计数(版本、系统、成功/失败),绝不含提示词、文件名或数据", "cust.telemetry.envlock": "已被环境变量 OPENAI4S_TELEMETRY 关闭", "cust.perm.decision.ask": "询问", "cust.perm.desc": "控制哪些工具需要你的批准。优先级:越具体越优先;同等具体时 本对话 > 本项目 > 全局。默认安全优先:读取放行,写入 / 命令 / 联网 / 装包 需批准,.env 读取被拒。", "cust.perm.noRules": "(无规则)", "cust.perm.noSessionNote": "打开一个会话后可管理该对话与项目的规则。下面仅显示全局默认。", "cust.perm.patternPlaceholder": "模式(git * / *.csv / *)", "cust.perm.resetBtn": "恢复默认", "cust.perm.resetConfirm": "恢复内置安全默认规则?", "cust.perm.resetDesc": "重新写入内置的全局默认规则(不会删除你已添加的规则)", "cust.perm.resetName": "恢复安全默认", "cust.perm.scope.conversation": "本对话", "cust.perm.scope.global": "全局(所有项目)", "cust.perm.scope.project": "本项目", "cust.perm.title": "权限", "cust.perm.toolPlaceholder": "工具(bash / write_file / *)", "cust.skills.collection": "{0} 合集({1} 个技能)", "cust.skills.collectionDesc": "固定版本、只读的第三方配方,默认收起;展开后可逐个启用或停用。", "cust.skills.collectionHide": "收起", "cust.skills.collectionShow": "展开", "cust.skills.deleteConfirm": "删除技能 {0}?", "cust.skills.desc": "{0} 个科研技能;开关控制智能体是否可用,也可新建/导入自己的技能", "cust.skills.importBtn": "导入 SKILL.md", "cust.skills.newBtn": "+ 新建技能", "cust.skills.yourSkills": "你的技能", "cust.specialists.builtinRoles": "内置角色", "cust.specialists.deleteConfirm": "删除专家 {0}?", "cust.specialists.desc": "可委派的专家智能体:内置角色 + 你自定义的专家(用 host.delegate(task, name=…) 调用)", "cust.specialists.newBtn": "+ 新建专家", "cust.specialists.yours": "你的专家", "cust.tab.connectors": "连接器", "cust.tab.models": "模型", "cust.tab.specialists": "专家", "dash.badge.running": "运行中", "dash.brand.beta": "Beta", "dash.col.projects": "项目", "dash.col.recentSessions": "最近会话", "dash.meta.session": "{0} 个会话", "dash.meta.sessions": "{0} 个会话", "dash.project.runningCount": "{0} 个会话运行中", "dash.project.untitled": "未命名项目", "dash.projects.empty": "还没有项目。点右上角 +New project 创建。", "dash.running.activeNow": "活跃中", "dash.running.count": "{0} 个运行中", "dash.sessions.empty": "还没有会话。", "ac.fromOtherSession": "来自其他会话,发送时会复制进来", "refs.problemsTitle": "有 {0} 处引用没能解析(这一轮仍在继续)", "refs.unresolvedChip": "这个引用现在解析不到任何文件;发送后这一轮会照常继续。", "cust.memory.edited": "已修改", "cust.memory.editPrompt": "修改这条记忆的内容:", "versions.retrievalSource": "数据来源(只读)", "versions.retrievalTruncated": "以下字段过长已截断:{0}", "versions.retrievalWithheld": "另有 {0} 个字段未展示", "dash.example.cta": "运行示例分析", "dash.example.hint": "一次真实的 NIF3/DUF34 分析:调用 UniProt 与 RCSB PDB 接口、执行 6 个 Python Cell、产出图表与报告。启动时不会自动运行——只有你点它才跑。", "dash.example.running": "正在运行示例分析……", "dash.example.failed": "示例分析失败:", "dash.tag.example": "Example", "data.col.data": "数据", "data.column.plural": " 列", "data.column.singular": " 列", "data.rows.plural": " 行 · ", "data.rows.singular": " 行 · ", "date.bucket.older": "更早", "date.bucket.thisWeek": "本周", "date.bucket.today": "今天", "date.bucket.yesterday": "昨天", "dock.artifact.fallback": "工件", "dock.collapse": "收起", "dock.files.heading": "文件 · 制品", "dock.files.scope.frame": "本会话", "dock.files.scope.project": "本项目", "dock.notes.placeholder": "添加一条笔记…", "dock.tab.files": "文件", "dock.tab.notebook": "笔记本", "dock.tab.timeline": "行动时间线", "edac.keyword": "关键字", "editor.label": "编辑 {0}", "empty.sub": "描述你的科研任务,智能体会写 Python、联网检索、调用技能并产出图表/报告/结构文件。可试试:", "empty.title": "开始一个新分析", "review.badge.candidate": "候选 · 未验证", "review.badge.verified": "已验证", "review.badge.completed_with_issues": "完成 · 未验证", "review.badge.review_unavailable": "审核不可用 · 未验证", "export.artifactsHeading": "## 产物", "export.messageAssistant": "🤖 助手", "export.messageUser": "🧑 用户", "files.empty": "任务产出的文件、表格、图表会显示在这里。", "files.emptyProject": "本项目所有会话都还没产出文件。", "files.fromSession": "来自 {0}", "folder.assigned.in": "已移入文件夹", "folder.assigned.out": "已移出文件夹", "folder.create.failed": "创建失败:{0}", "folder.delete.confirm": "删除文件夹「{0}」?其中的会话会移出但不会被删除。", "folder.menu.delete": "删除文件夹", "folder.menu.rename": "重命名", "folder.move.failed": "移动失败:{0}", "folder.new.prompt": "文件夹名称", "folder.rename.prompt": "重命名文件夹", "gen.label": "已生成 · {0}", "gen.more": "+{0} 更多", "job.outputEmpty": "(无输出)", "job.outputLoadFailed": "加载失败", "job.outputTitle": "任务输出 — {0}", "kernel.envChanged": "已切换到 {0} 环境", "kernel.envChanged.default": "新", "kernel.restarted": "内核已重启(第 {0} 代)", "kernel.started": "内核已启动", "kernel.stopped": "内核已停止(会话保留,可随时启动以恢复)", "ketcher.modalTitle": "Ketcher — 化学结构编辑器", "wb.table.filter": "筛选 col:值", "wb.table.prev": "上一页", "wb.table.next": "下一页", "wb.table.meta": "{0} 行 · 显示 {1}–{2}", "wb.ketcher.edit": "在 Ketcher 中编辑", "wb.locator.title": "按位置评论(进入下一轮)", "wb.locator.pdfPage": "PDF 页码", "wb.locator.pdfPrev": "上一页", "wb.locator.pdfNext": "下一页", "wb.locator.quote": "选中的原文", "wb.locator.selector": "CSS 选择器,如 #hit", "wb.locator.body": "评论…", "wb.locator.saved": "评论已保存", "wb.locator.err": "评论失败:{0}", "key.banner.goConfigure": "去配置 →", "key.banner.notConfigured": " 尚未配置 API Key,发送消息会失败。", "label.apiKey": "API Key", "label.baseUrl": "Base URL", "label.model": "模型", "label.provider": "Provider", "menu.copyLink": "复制链接", "menu.exportMetadata": "导出元数据", "menu.hideFromList": "从列表隐藏", "menu.provenance": "溯源", "menu.star": "收藏", "menu.unstar": "取消收藏", "menu.versionHistory": "版本历史", "modal.title.preview": "预览", "model.delete.confirm": "删除模型配置「{0}」?", "model.rebind.confirm": "该会话固定的模型配置已不存在。是否改绑到当前启用的配置以继续?", "model.rebind.done": "已改绑到当前启用的模型配置", "models.none": "无模型", "mol.foot": "拖动旋转 • 滚动缩放 • Shift+拖动平移", "mol.style.cartoon": "卡通", "mol.style.line": "线条", "mol.style.sphere": "球状", "mol.style.stick": "棍状", "mol.style.surface": "表面", "mol.styleLabel": "样式:", "mol.tag": "使用 3Dmol.js 查看器", "moveFolder.newFolderAndMove": "+ 新建文件夹并移入", "moveFolder.removeFromFolder": "(移出文件夹)", "msgAction.copy": "复制", "msgAction.thumbsDown": "踩", "msgAction.thumbsUp": "赞", "nb.badge.idle": "Idle", "nb.badge.live": "Live", "nb.badge.ready": "就绪", "nb.cell.statusOk": "ok", "nb.cell.statusRunning": "running", "nb.kernel.shared": "与 Agent 共享", "nb.owner.agent": "Agent", "nb.owner.user_repl": "用户 REPL", "nb.owner.repair": "Repair", "nb.owner.review_scratch": "Review scratch", "nb.owner.generation": "generation {0}", "nb.chips.all": "全部", "nb.empty": "运行任务后,这里会显示 Notebook 代码单元与输出。", "nb.env.placeholder": "环境…", "nb.env.rSuffix": " · R", "nb.env.selectTitle": "选择运行环境(内置 conda 环境;切换会重启内核并清空变量,Notebook 与文件保留)", "nb.error.default": "执行出错", "nb.kernel.envSwitchFailed": "切换环境失败:{0}", "nb.kernel.envSwitched": "已切换到 {0} 环境(变量已清空,Notebook 与文件保留)", "nb.kernel.generation": " · 第{0}代", "nb.kernel.noSession": "无会话", "nb.kernel.opFailed": "内核操作失败:{0}", "nb.kernel.pendingSwitch": "(将切换到 {0})", "nb.kernel.restartConfirm": "重启内核会清空所有变量与内存状态(Notebook 历史保留)。继续?", "nb.kernel.restartLabel": "重启", "nb.kernel.restartTitle": "重启内核(清空变量、载入新装的包;保留 Notebook 历史)", "nb.kernel.startLabel": "启动", "nb.kernel.startTitle": "启动/复活内核(保留对话,可继续跑)", "nb.kernel.stateActive": "活跃", "nb.kernel.stateLoading": "…", "nb.kernel.stateNone": "未启动", "nb.kernel.stateStopped": "已停止", "nb.kernel.stopConfirm": "停止内核会清空变量与内存状态(会话、Notebook 与文件保留,可再启动恢复)。继续?", "nb.kernel.stopLabel": "停止", "nb.kernel.stopTitle": "停止内核并释放资源(会话、Notebook 与文件保留,可再启动以恢复)", "nb.kernel.title": "kernel", "nb.repl.body": "已连接到与 Agent 共享的实时内核。上方下拉可切换内置运行环境(python / struct / phylo / r,免安装);确需额外的包时 `pip install` 后点“重启内核”。", "nb.repl.execFailed": "执行失败:{0}", "nb.repl.inputPlaceholder": "在此内核中运行代码…", "nb.repl.interruptSent": "已发送中断", "nb.repl.interruptTitle": "中断执行", "nb.revive.startBtn": "▶ 启动内核", "nb.revive.text": "内核已停止 — 直接输入命令即可复活,或", "nb.status.ended": "{0} · 已结束 — 仅供查看;该内核的内存命名空间已不存在。", "nb.status.hint": "发送消息即可继续。你的下一条消息会在此环境中恢复运行 — 工作区文件保留;内存中的变量仅在内核存活时恢复。", "nb.status.live": "运行中 · {0}", "nb.status.ready": "就绪 · {0}", "nb.revisions.summary": "共 {0} 次尝试 · 展开查看 {1} 个失败版本", "nb.table.rowsHidden": "… {0} 行未显示", "nb.table.colsHidden": "… {0} 列未显示", "nb.table.bothHidden": "… {0} 行、{1} 列未显示", "nb.action.copy": "复制", "nb.action.copied": "已复制代码", "nb.action.rerun": "作为新单元运行", "nb.action.fork": "从此前 Fork", "nb.action.promote": "提升为 Artifact", "nb.action.promoted": "已提升为制品 · {0}", "nb.action.unavailable": "当前服务尚未提供此操作;历史单元不会被修改。", "nb.action.failed": "Notebook 操作失败:{0}", "nb.interrupt.noOwner": "当前没有可精确中断的 execution owner。", "nb.action.queued": "已追加为新的 {0} 单元", "nb.cell.current": "Current", "nb.cell.drafting": "模型草稿 · 正在更新", "nb.cell.stale": "Stale", "nb.cell.nonReplayable": "Non-replayable", "nb.cell.historical": "历史版本 · 只读", "nb.repl.language": "语言", "nb.repl.run": "Shift+Enter 运行", "nb.repl.multilineHint": "多行 Python/R 输入只会追加新单元;已执行历史始终只读。", "nb.variables.title": "Variable Inspector", "nb.variables.language": "命名空间", "nb.variables.refresh": "刷新变量", "nb.variables.loading": "正在读取当前命名空间…", "nb.variables.notLoaded": "选择 Python 或 R,然后手动刷新。读取不会运行 Cell。", "nb.variables.empty": "当前命名空间没有可显示的用户变量。", "nb.variables.error": "变量读取失败:{0}", "nb.variables.generation": "Generation {0}", "nb.variables.revision": "State revision S{0}", "nb.variables.stale": "可能已过期 · 请刷新", "nb.variables.truncated": "只显示前 {0} 个变量", "nb.variables.length": "长度 {0}", "nb.variables.fingerprint": "指纹 {0}", "nb.variables.state.busy": "内核正在执行,Variable Inspector 暂不可用。", "nb.variables.state.ended": "该内核 generation 已结束;不会为检查变量而重启。", "nb.variables.state.not_started": "该语言内核从未启动;不会为检查变量而启动。", "nb.variables.state.restoring": "内核正在恢复,完成后再刷新。", "nb.variables.state.unsupported": "当前内核不支持安全变量检查。", "nb.variables.state.failed": "变量检查已安全失败;命名空间未被修改。", "runtime.branch": "Branch", "runtime.python": "Python", "runtime.r": "R", "runtime.revision": "Revision", "runtime.owner": "Owner", "runtime.queue": "Queue", "runtime.none": "—", "runtime.status.live": "Live", "runtime.status.busy": "Busy", "runtime.status.ended": "Ended · 仅供查看", "runtime.status.restoring": "Restoring", "runtime.status.partial": "Partial", "runtime.status.failed": "Failed", "runtime.trust.quarantined": "隔离导入", "runtime.trust": "信任", "runtime.quarantineHint": "这是未受信任的导入会话,当前仅供查看。请在恢复面板明确确认“全新重启”后再继续。", "timeline.title": "Action Timeline", "timeline.subtitle": "来自持久 Action Ledger 的安全投影;不显示原始参数或 wire state。", "timeline.refresh": "刷新", "timeline.loading": "正在读取行动记录…", "timeline.loadEarlier": "加载更早记录", "timeline.loadingEarlier": "正在加载更早记录…", "timeline.loadEarlierFailed": "无法加载更早记录:{0}", "timeline.empty": "还没有可显示的行动。Notebook 仅保留科研 cell,完整控制流程会出现在这里。", "timeline.owner": "Owner", "timeline.permission": "权限", "timeline.resources": "资源", "timeline.generation": "Generation", "timeline.replay": "Replay", "timeline.duration": "耗时", "timeline.artifacts": "产物", "timeline.tokens": "Tokens", "timeline.tokensValue": "{0} 输入 · {1} 输出", "timeline.cost": "成本", "timeline.column.ordinal": "#", "timeline.column.kind": "类型", "timeline.column.action": "行动", "timeline.turnBoundary": "Turn", "timeline.inspector": "行动详情", "timeline.inspector.close": "关闭详情", "timeline.row.open": "查看行动 #{0} 的详情:{1}", "timeline.search.label": "搜索已加载记录", "timeline.search.placeholder": "搜索标题、类型、资源和产物", "timeline.search.scope": "仅搜索当前已加载的 {0} 条记录;未加载的更早记录不在结果中。搜索时会暂时展开 Turn,清空后恢复折叠。", "timeline.search.loaded": "已加载 {0} 条记录", "timeline.search.matches": "{0} 条匹配(已加载 {1} 条)", "timeline.search.matchesInSelection": "当前选区显示 {0} 条(搜索命中 {1} / 已加载 {2} 条)", "timeline.search.clear": "清除搜索", "timeline.search.empty": "当前已加载范围内没有匹配记录", "timeline.search.emptySelection": "当前时间选区内没有搜索命中;已加载范围内共有 {0} 条命中。", "timeline.turn.collapse": "收起 Turn {0},{1} 条当前可见记录,总耗时 {2}", "timeline.turn.expand": "展开 Turn {0},{1} 条当前可见记录,总耗时 {2}", "timeline.turn.summary": "Turn · {0} 条当前可见记录", "timeline.ledger.keyboard": "键盘:在账本区域按 Enter、向下键或 Home 进入记录;用方向键、Page Up、Page Down、Home 和 End 浏览。", "timeline.overview": "时间线概览", "timeline.overview.help": "悬停查看精确时刻;拖选过滤;滚轮缩放;右键拖拽平移。", "timeline.overview.keyboard": "键盘:上下键浏览行动,Enter 打开,Shift+Enter 按该行动的已知活动区间筛选。", "timeline.overview.queue": "排队", "timeline.overview.ttft": "首响应", "timeline.overview.decode": "解码", "timeline.overview.allocated": "分配", "timeline.overview.started": "开始", "timeline.overview.response": "首响应", "timeline.overview.finished": "结束", "timeline.overview.running": "运行中 · 仅显示真实起点", "timeline.overview.omitted": "加载被省略的更早记录", "timeline.overview.omittedLoading": "正在加载被省略的更早记录", "timeline.overview.clear": "清除时间选区", "timeline.overview.zoomIn": "放大时间域", "timeline.overview.zoomOut": "缩小时间域", "timeline.overview.panEarlier": "向较早时间平移", "timeline.overview.panLater": "向较晚时间平移", "timeline.overview.selection": "已选 {0} — {1}", "timeline.overview.emptySelection": "选区内没有行动", "timeline.kind.native_tool": "Native Tool", "timeline.kind.python": "Python Cell", "timeline.kind.r": "R Cell", "timeline.kind.dynamic_tool": "Dynamic Tool", "timeline.kind.delegate": "Delegated Agent", "timeline.kind.background": "Background / Remote Job", "timeline.kind.permission": "Permission Pause", "timeline.kind.recovery": "Recovery Event", "timeline.kind.finalize": "FinalizeAction", "timeline.kind.action": "Action", "timeline.panel.branches": "Branch · Checkpoint", "timeline.panel.context": "Context composition", "timeline.panel.security": "Sandbox · Permission", "timeline.panel.delegation": "子代理树", "timeline.panel.compute": "远程计算任务", "attach.problemsTitle": "有 {0} 张图没有随本轮发送", "attach.tooLarge": "单张 {0},超过上限 {1};请缩小分辨率后重新钉图。", "attach.budget": "本轮图片总量已达上限 {0};请减少图钉数量或分几轮发送。", "attach.tooMany": "本轮最多附带 {0} 张图。", "attach.versionChanged": "图钉之后该图被重新绘制覆盖,你标注的那一版已不存在——请在新图上重新钉图。", "attach.notFound": "该图文件已被删除或移动,无法随本轮发送。", "attach.unsupported": "该文件的实际内容不是位图(按文件头判断),无法作为图片发送。", "attach.decodeFailed": "该图无法解码(文件损坏,或服务端缺少 Pillow)。", "delegation.stop": "停止这个子代理及其下级", "delegation.steer": "在下一个回合边界给它一句话", "delegation.steerPrompt": "要在下一个回合边界告诉这个子代理什么?", "delegation.steerQueued": "已排队,将在该子代理的下一个回合边界送达。", "delegation.stopFailed": "停止失败", "delegation.steerFailed": "引导失败", "compute.none": "本会话还没有远程计算任务。", "compute.live": "进行中 {0}", "compute.fromRecord": "来自本地记录,未联网核对", "compute.checked": "刚刚向远端核对过", "compute.refresh": "向远端核对并回收产物", "compute.refreshFailed": "核对失败", "compute.outputs": "产物 {0} 个 · {1}", "compute.status.unknown": "未知(联系不上远端)", "timeline.noBranch": "尚无 branch/checkpoint 投影。", "timeline.noContext": "尚无 context composition 投影。", "timeline.noSecurity": "尚无 sandbox/permission 状态投影。", "timeline.noDelegation": "本会话尚未创建子代理。", "delegation.budget": "预算 {0}/{1}", "delegation.active": "活动 {0}", "delegation.turns": "边界 {0}/{1}", "delegation.steering": "消息:{0} 待投递 · {1} 已投递", "delegation.childFrame": "帧 {0}", "branch.current": "当前", "branch.viewOnly": "未激活 · 仅查看", "branch.currentSummary": "当前分支:{0}", "branch.head": "Head {0}", "branch.checkpoint": "创建 checkpoint", "branch.fork": "Fork", "branch.forkName": "为新分支命名(可以留空)", "branch.forkDefault": "Fork {0}", "branch.forked": "已从 checkpoint {0} 创建分支", "branch.activate": "激活", "branch.activating": "正在切换…", "branch.activated": "已切换到分支 {0}", "branch.activatedPartial": "已切换到分支 {0},但部分状态需要修复;请查看 Recovery。", "branch.internalCheckpoints": "内部游标 checkpoint({0})", "branch.preview": "预览回滚", "branch.revert": "回滚并继续", "branch.undo": "撤销上次回滚", "branch.undone": "已撤销上次回滚", "branch.actionFailed": "Branch 操作失败:{0}", "branch.conflict": "检测到外部文件冲突,不能直接应用。", "branch.previewTitle": "Revert preview", "branch.diff": "消息 {0} · Notebook {1} · 文件写入 {2} / 删除 {3} · Artifact +{4}/-{5}", "recovery.title": "Kernel Recovery", "recovery.checkpoint": "Checkpoint {0}", "recovery.action.restore": "恢复 checkpoint", "recovery.action.retry": "重试恢复", "recovery.action.restart_fresh": "全新重启", "recovery.action.ready": "可以执行", "recovery.action.loading": "正在执行…", "recovery.action.unavailable": "当前服务未提供此 Recovery 操作。", "recovery.action.currentOnly": "Recovery 只允许用于当前会话已激活的分支。", "recovery.action.failed": "Recovery 操作失败:{0}", "recovery.action.done": "Recovery 操作已完成;状态与 journal 已刷新。", "recovery.freshConfirm": "全新重启会清空当前 Python/R 内存变量,不会把 checkpoint 当作已恢复的命名空间。对话、Notebook、工作区文件与 Artifact 会保留。确定继续吗?", "context.tokens": "{0} tokens", "context.outputReserve": "输出预留 {0}", "context.messages": "{0} 条消息", "context.compressed": "已压缩", "context.handoff": "Handoff", "context.history": "压缩历史({0})", "context.compaction": "Compaction", "context.savings": "{0} → {1} tokens", "context.omitted.memory": "记忆(未注入)", "context.omittedCount": "略去 {0} 条", "context.reason.too_long": "单条过长", "context.reason.too_many": "超出条数", "context.reason.budget_exhausted": "超出总量", "context.artifacts": "{0} 个 Artifact 引用", "security.sandbox": "Sandbox", "security.generation": "Generation", "security.generationEnded": "{0} 已结束({1})", "security.permission": "Permission", "security.selfTest": "Self-test", "security.network": "Network", "security.pending": "{0} 个待审批", "notes.empty": "还没有笔记。", "notes.emptyNoProject": "在某个项目下可添加笔记。", "palette.action.backHome": "返回主页", "palette.action.customize": "自定义", "palette.action.newProject": "新建项目", "palette.action.search": "搜索", "palette.action.newSession": "新建会话", "palette.action.openNotebook": "打开 Notebook", "palette.empty": "没有匹配项", "palette.group.artifacts": "产物", "palette.group.commands": "命令", "palette.group.datapro": "专业数据集", "palette.group.sessions": "会话", "palette.group.skills": "技能", "palette.datapro.result": "DataPro 查询结果", "palette.searchPlaceholder": "搜索会话、产物、专业数据集、技能,或执行命令…", "perm.badge.subAgent": "子智能体", "perm.badge.dangerous": "高风险", "perm.btn.allow": "允许", "perm.btn.continueReplan": "继续并重新规划", "perm.btn.deny": "拒绝", "perm.continuePrompt": "继续。刚才批准的是守护进程重启前被中断的操作;请先重新评估当前状态,只在仍有必要时发起新的操作,不要假设原操作已经执行。", "perm.lbl.rememberRule": "记住规则(可用 * 通配)", "perm.lbl.rememberScope": "记住范围", "perm.lbl.resolvedPath": "解析后路径:{0}", "perm.placeholder.denyReason": "(可选)拒绝原因,会反馈给智能体", "perm.scope.conversation": "本对话", "perm.scope.global": "全局", "perm.scope.once": "仅此一次", "perm.scope.project": "本项目", "perm.status.allowed": "已允许", "perm.status.allowedScope": "已允许({0})", "perm.status.afterRestartAllowed": "批准已记录;守护进程重启后,原操作未执行。", "perm.status.afterRestartDenied": "已拒绝;守护进程重启后,原操作未执行。", "perm.status.denied": "已拒绝", "perm.sub.approvalNeeded": "智能体请求执行下面的操作,需要你的批准。", "perm.review.credential_path": "解析后的目标命中了凭据路径规则。允许前请核对实际路径。", "perm.review.dynamic_file_search": "此搜索会在开始后才确定要读取的文件。允许前请核对搜索范围。", "perm.review.unreviewable_path": "自动复核无法确定目标路径,需要人工确认。", "perm.review.verification_failed": "自动文件安全复核失败,需要人工确认。", "perm.title.run": "运行 {0}", "plan.approve": "批准并执行", "plan.approveFailed": "批准失败:{0}", "plan.autoExecuting": "按计划自动执行中…", "plan.confidenceSuffix": "{0} 置信度", "plan.discard": "放弃", "plan.eyebrow.completed": "计划已完成", "plan.eyebrow.default": "计划", "plan.eyebrow.draft": "计划已就绪,等待您审阅", "plan.eyebrow.executing": "正在执行计划", "plan.eyebrow.failed": "计划已中断", "plan.eyebrow.paused": "计划已暂停,还有步骤没跑完", "plan.status.paused": "已暂停:{0}/{1} 步完成,还剩 {2} 步", "plan.resume": "继续执行剩余步骤", "plan.resumeFailed": "无法继续执行:{0}", "plan.resuming": "正在继续执行剩余步骤…", "plan.legacy.approvedPrompt": "已批准。请严格按上面的计划执行:运行代码、使用相应技能,并产出结果文件。", "plan.legacy.intro": "以上是执行计划。批准后将按计划运行并产出结果文件。", "plan.prompt.intro": "[计划模式] 请先不要执行、不要调用任何工具。为下面的任务制定一个结构化执行计划,并只输出两部分:\n", "plan.prompt.jsonSchema": "{\"title\":\"计划标题\",\"rationale\":\"一句话理由\",\"confidence\":\"high|medium|low\",\"steps\":[{\"id\":\"s1\",\"title\":\"步骤标题\",\"detail\":\"这一步做什么\",\"deliverables\":[\"中间结果.csv\",\"图.png\"]}]}\n", "plan.prompt.part1": "1) 一段简短的方案说明(散文,说明你选择的目标/思路与分析主线);\n", "plan.prompt.part2": "2) 紧接着一个 ```json 代码块,严格使用如下结构:\n", "plan.prompt.part3": "每个步骤要有唯一 id、清晰标题、简要说明,以及该步预期产出的结果文件名列表;尽量让每一步都产出一个可查看的中间结果——一张表格(.csv)或一张图(.png)作为 deliverable,若该步确实不适合制表/画图则可省略。等待用户批准后再执行。\n\n任务:", "plan.revise.placeholder": "描述对计划的修改…(回车提交)", "plan.status.completed": "计划已执行完成({0}/{1})", "plan.status.executing": "正在按计划执行…({0}/{1})", "plan.status.failed": "执行中断({0}/{1})", "plan.step.default": "步骤", "plan.title.default": "执行计划", "plan.toggle.on": "计划模式:先出计划,批准后执行", "explore.toggle.on": "自主探索:AI 自动完成端到端研究", "proj.current.allSessions": "所有会话", "proj.delete.confirm": "确定删除该项目?此操作不可撤销。", "proj.fallbackName": "项目", "proj.menu.allProjects": "所有项目", "proj.menu.downloadArtifacts": "下载产物", "proj.menu.settings": "项目设置", "proj.menu.newProject": "新建项目", "projectResearch.menu": "项目研究图谱", "projectResearch.title": "{0} · 全局研究视图", "projectResearch.timeline": "Timeline", "projectResearch.lineage": "Lineage", "projectResearch.timelineSummary": "{0} 个会话 · {1} 个行动", "projectResearch.lineageSummary": "{0} 个 Artifact · {1} 个版本 · {2} 条边", "projectResearch.latest": "latest", "projectResearch.noLineage": "还没有项目级血缘数据。", "projectResearch.edges": "血缘边({0})", "share.menu": "分享(只读链接)", "share.title": "分享此会话", "share.scope": "将公开:对话、Notebook 代码与输出、产物文件、环境清单。任何持有链接的人均可查看,内容经你的 relay 明文中转。", "share.create": "创建分享链接", "share.copy": "复制", "share.copied": "已复制链接", "share.update": "更新快照", "share.updated": "快照已更新", "share.revoke": "撤销", "share.revokeConfirm": "确定撤销该分享链接?撤销后立即失效。", "share.revoked": "已撤销", "share.disabled": "分享功能未启用。", "share.enable": "启用分享", "share.expiry": "有效期:", "share.expiry.never": "永不过期", "share.expiry.1d": "1 天", "share.expiry.7d": "7 天", "share.expiry.30d": "30 天", "share.expiresAt": "过期于", "share.neverExpires": "永不过期", "share.unconfigured": "分享未配置(需设置 relay URL 与 token,见 docs/webshare.md)。", "share.close": "关闭", "sessionPackage.import": "导入会话包", "sessionPackage.export": "导出会话包", "sessionPackage.imported": "会话包已安全导入;Kernel 保持结束状态,需显式恢复", "sessionPackage.tooLarge": "会话包超过客户端 128 MiB 限制", "sessionPackage.verified": "校验通过:{0} 个文件与包内清单一致,正在导入", "sessionPackage.verifyFailed": "校验未通过,已拒绝导入:{0}", "projModal.create": "创建", "projModal.editTitle": "项目设置", "projModal.ctx.label": "智能体上下文", "projModal.ctx.placeholder": "包含在此项目每个智能体的提示词中", "projModal.desc.placeholder": "显示在项目列表中", "projModal.name.placeholder": "项目名称", "projModal.title": "新建项目", "prov.code.generating": "正在生成复现代码…", "prov.env.chipEnvironment": "Environment", "prov.env.chipPackages": "Packages", "prov.env.chipPython": "Python", "prov.env.liveFallback": "实时快照 — 此产物未记录生产时环境(上传文件或早于该功能生成)", "prov.env.loadFailed": "无法加载环境:{0}", "prov.env.loadingSnapshot": "加载环境快照…", "prov.env.noPackages": "没有可报告的包。", "prov.env.recorded": "已记录于该产物生产时的内核环境", "prov.env.recordedUnverified": "环境已记录,但无法确认它只属于这一次生产运行", "prov.env.remoteTitle": "远程 GPU 计算(可复现)", "prov.env.remoteHost": "主机", "prov.env.remoteEnv": "环境", "prov.env.remotePkgs": "依赖", "prov.env.remoteCode": "代码版本", "prov.env.remoteModel": "模型/权重", "prov.env.remoteRun": "运行时间(UTC)", "prov.env.thPackage": "Package", "prov.env.thVersion": "Version", "prov.exec.downloadNotebook": "下载 Notebook(打包)", "prov.exec.downloadPython": "只下载 Python Notebook (.ipynb)", "prov.exec.downloadR": "只下载 R Notebook (.ipynb)", "prov.exec.downloadMarkdown": "下载 Markdown 记录 (.md)", "prov.exec.downloadSources": "下载已执行代码(sources.zip,含子代理)", "prov.exec.downloadMore": "其他导出格式", "prov.exec.noRecords": "暂无执行记录。", "nb.exec.toggle": "已执行代码", "nb.exec.title": "已执行代码(执行历史)", "nb.exec.note": "这是主会话与被委派子代理实际执行过的代码——含失败与中断的单元。它是执行历史,不是 Artifacts / 交付物。", "nb.exec.root": "主会话", "nb.exec.empty": "该 frame 尚无已执行代码。", "nb.exec.loadFailed": "无法加载已执行代码:{0}", "nb.exec.cellCount": "{0} 个单元", "nb.exec.failCount": "{0} 个失败", "prov.msg.loadFailed": "无法加载对话:{0}", "prov.msg.loading": "加载对话…", "prov.msg.noRecords": "暂无对话记录。", "prov.msg.roleAssistant": "Assistant", "prov.msg.roleSystem": "System", "prov.msg.roleUser": "User", "prov.review.noLineage": "暂无溯源信息(execution log 为空或未记录文件 I/O)。", "prov.review.producedBy": "由单元 {0} 生成", "prov.review.producedByIdentity": "由 Cell {0} 生成", "prov.review.producerFrame": "{0} frame · {1}", "prov.review.nonCellProducer": "由非 Cell 动作生成", "prov.review.sameBytesCapture": "相同字节 · capture observation", "prov.review.versionCapture": "版本捕获 · capture observation", "prov.review.readsInputs": "读取 / 输入", "prov.review.saved": "已保存 · {0}", "prov.review.viewCode": "查看产生它的代码", "prov.review.wrote": "写入", "prov.sub.code": "Code", "prov.sub.environment": "Environment", "prov.sub.exec": "Execution Log", "prov.sub.messages": "Messages", "prov.sub.review": "Review", "send.imageAnnotationFallback": "(图像标注反馈)", "session.badge.liveTip": "内核活跃(可随时恢复)", "session.badge.runningTip": "任务仍在后台运行 — 点击恢复", "session.duplicateSuffix": "(副本)", "session.empty.label": "还没有会话", "session.loadMore": "加载更多会话", "session.loadMoreLimit": "已达列表上限,更早的会话请用搜索查找", "session.menu.tip": "会话操作", "session.newFolder": "+ 文件夹", "session.untitled": "未命名会话", "sessionMenu.duplicate": "复制会话", "sessionMenu.cancel": "取消任务", "sessionMenu.downloadArtifacts": "下载产物", "sessionMenu.exportMarkdown": "导出为 Markdown", "sessionMenu.viewNotebook": "查看 Notebook", "compute.menu.runLocation": "运行位置", "compute.location.local": "本机(守护进程)", "compute.location.localHint": "内核跑在这台运行 daemon 的机器上。", "compute.dialog.title": "这个会话在哪里运行", "compute.dialog.notConfigured": "本 daemon 未开启 worker 监听,无法在集群上运行会话。", "compute.dialog.release": "释放集群资源", "compute.badge.local": "本机", "compute.blocked.allocation": "排队等待资源", "compute.blocked.workspace": "准备工作区", "compute.blocked.worker": "等待 worker 连回", "compute.blocked.kernel": "启动内核", "compute.badge.ready": "集群就绪", "compute.lost.title": "内核状态已丢失", "compute.lost.body": "这个会话的资源被回收,内核的内存随之丢失(变量、import、已加载的数据都不在了)。会话已在新的 epoch 上继续,但之前定义的东西需要重新执行。", "compute.lost.dismiss": "知道了", "sessionMenu.moveToFolder": "移动到文件夹", "skill.bodyPlaceholder": "SKILL.md 正文(Markdown 配方:步骤、代码、注意事项…)", "skill.descPlaceholder": "一句话描述(用于技能检索)", "skill.editTitle": "编辑技能 — {0}", "skill.importBtn": "导入", "skill.importLabel": "SKILL.md 内容", "skill.importPlaceholder": "粘贴完整的 SKILL.md(含 --- name / description --- 前置元数据)", "skill.importTitle": "导入技能(粘贴 SKILL.md)", "skill.label.body": "正文", "skill.label.desc": "描述", "skill.label.name": "名称", "skill.namePlaceholder": "技能名(英文短横线,如 my-analysis)", "skill.newTitle": "新建技能", "skill.readiness.needsSetup": "本机缺少:{0}", "skill.readiness.unknown": "本机无法确认:{0}", "skill.saveBtn": "保存技能", "skill.historyBtn": "版本历史", "skill.historyTitle": "技能版本 — {0}", "skill.historyEmpty": "这个作用域还没有可回滚的版本。", "skill.scope.personal": "个人", "skill.scope.project": "项目", "skill.scope.bundled": "内置", "skill.versionActive": "当前版本", "skill.rollbackBtn": "回滚到此版本", "skill.rollbackConfirm": "将 {0} 回滚到版本 {1}?当前版本仍会保留。", "skill.rollbackDone": "已将 {0} 回滚到所选版本", "skill.versionSidecar": "Sidecar:{0}", "specialist.descPlaceholder": "一句话描述", "specialist.editTitle": "编辑专家 — {0}", "specialist.label.systemPrompt": "系统提示", "specialist.namePlaceholder": "专家名(如 Biostatistician)", "specialist.newTitle": "新建专家", "specialist.promptPlaceholder": "系统提示 / 人设:描述这个专家的专长、方法、风格与约束…", "specialist.saveBtn": "保存专家", "starter.dataAnalysis.prompt": "读取我上传的 CSV,做探索性数据分析:统计摘要、相关性热图、关键变量分布图,输出图表和结论。", "starter.dataAnalysis.title": "分析我上传的数据", "starter.litReview.prompt": "用 web_search 检索关于 CRISPR 碱基编辑脱靶效应的近三年进展,综合成一份带引用的 Markdown 简报。", "starter.litReview.title": "检索并综述文献", "starter.phylo.prompt": "对一组同源蛋白做多序列比对与进化树重建,输出比对总览图、树图和保守位点表。", "starter.phylo.title": "系统发育分析", "starter.proteinModel.prompt": "为一段蛋白序列构建一个可在 3D 查看器打开的结构模型(.pdb),并画出每残基置信度曲线。", "starter.proteinModel.title": "蛋白结构建模", "step.artifact.hideOutput": "隐藏输出", "step.artifact.openArtifact": "打开产物", "step.artifact.showOutput": "显示输出", "step.card.defaultTitle": "步骤", "step.delegate.artifacts": "产物", "step.delegate.children": "{0} 个子任务", "step.delegate.hideDetails": "隐藏详情", "step.delegate.limitations": "局限", "step.delegate.missingArtifacts": "缺少必需产物", "step.delegate.showDetails": "显示详情", "step.delegate.status.blocked": "受阻", "step.delegate.status.completed": "已完成", "step.delegate.status.failed": "失败", "step.delegate.status.partial": "部分完成", "step.delegate.status.pending": "已启动", "step.delegate.status.stopped": "已停止", "step.delegate.turns": "轮次 {0}/{1}", "step.env.installed": "已安装:{0}", "step.env.missing": "缺少:{0}", "step.env.ready": "就绪", "step.fig.altFallback": "图", "step.label.code": "代码", "step.search.emptyResult": "(结果)", "step.skill.list": "技能:{0}", "step.status.failed": "失败", "time.justNow": "刚刚", "toast.addFailed": "添加失败:{0}", "toast.compute.installFailed": "安装失败:{0}", "toast.compute.installSeeLogs": "见日志", "toast.compute.installedKernelRestart": "已安装:{0}", "toast.connectors.added": "已添加:{0}", "toast.connectors.probeOk": "连接成功,工具:{0}", "toast.connectors.testFailed": "测试失败:{0}", "toast.deleteFailed": "删除失败:{0}", "toast.deleted": "已删除", "toast.duplicateFailed": "复制失败:{0}", "toast.exportFailed": "导出失败:{0}", "toast.exportedMarkdown": "已导出会话 Markdown", "toast.failed": "失败:{0}", "toast.feedbackCancelled": "已取消反馈", "toast.feedbackDown": "已记录:踩 👎", "toast.feedbackUp": "已记录:赞 👍", "toast.importFailed": "导入失败:{0}", "toast.layout": "布局:{0}", "toast.llmSaved": "已保存 LLM 配置", "toast.llmSaved.noKey": "(仍缺 API Key)", "toast.memory.disabled": "记忆已关闭", "toast.memory.enabled": "记忆已启用", "toast.micError": "语音识别出错:{0}", "toast.micListening": "正在聆听…再次点击麦克风停止", "toast.micStartFailed": "无法启动语音识别", "toast.micUnsupported": "此浏览器不支持语音输入(请用 Chrome/Edge/Safari)", "toast.models.added": "已新增:{0}", "toast.models.switched": "已切换到:{0}", "toast.models.updated": "已更新:{0}", "toast.network.disabled": "联网已禁用", "toast.network.enabled": "联网已启用", "toast.telemetry.on": "匿名统计已开启", "toast.telemetry.off": "匿名统计已关闭,身份一并删除", "toast.telemetry.failed": "统计开关未能保存,已恢复原状态:{0}", "toast.perm.enterTool": "请填写工具名", "toast.perm.resetDone": "已恢复默认规则", "toast.perm.ruleUpdated": "已更新规则", "toast.perm.updateFailed": "更新失败:{0}", "toast.planDiscarded": "已放弃该计划", "toast.planRevising": "正在根据你的修改重拟计划…", "toast.renameFailed": "重命名失败:{0}", "toast.reviseFailed": "修改失败:{0}", "toast.running": "运行中…", "toast.sendFailed": "发送失败:{0}", "toast.skill.enterName": "请填写技能名", "toast.skill.imported": "已导入技能:{0}", "toast.skill.saved": "已保存技能:{0}", "toast.specialist.enterName": "请填写名称", "toast.specialist.saved": "已保存专家:{0}", "toast.submitFailed": "提交失败:{0}", "toast.switchFailed": "切换失败:{0}", "toolLabel.delegate": "委派给子智能体", "toolLabel.listFiles": "列出文件中", "toolLabel.readFile": "读取文件中", "toolLabel.readSkill": "读取技能中", "toolLabel.runBash": "运行命令中", "toolLabel.runPython": "运行代码中", "toolLabel.searchSkills": "搜索技能中", "toolLabel.writeFile": "写入文件中", "turn.failed": "这一轮失败了,请重试。", "turn.stopping": "正在停止…", "turn.failedCommitted": "这一轮失败了,但它已经产出了输出或执行过工具——直接重试会重复已经发生的操作。请先检查结果再决定。", "turn.failure.llmRequestBurst": "模型服务触发了突发流量保护。这不是 API Key 配置问题,请稍后在当前会话继续,或临时切换模型。", "turn.failure.llmRateLimited": "模型服务正在限流。请稍后在当前会话继续,或临时切换模型。", "turn.failure.llmUpstreamOverloaded": "模型服务当前过载。这不是 API Key 配置问题,请稍后在当前会话继续,或临时切换模型。", "turn.supportId": "支持 ID:{0}", "upload.dropping": "正在上传拖入的文件…", "upload.failed": "上传失败:{0}", "upload.pasting": "正在上传粘贴的文件…", "upload.pendingSend": "正在等待附件上传完成…", "upload.stalled": "附件上传时间过长,这条消息没有发出。请重试或重新选择文件。", "upload.uploaded": "已上传:{0}", "versions.badge.current": "当前", "versions.empty": "暂无版本历史。", "versions.load.err": "加载失败:{0}", "versions.modal.title": "版本历史 — {0}", "versions.diff": "比较 v{0} ↔ v{1}", "versions.diff.title": "v{0} ↔ v{1} 文本差异", "versions.diff.loading": "正在加载差异…", "versions.diff.empty": "这两个版本的文本内容相同。", "versions.diff.err": "差异加载失败:{0}", "versions.diff.truncated": "差异过长,仅显示前 {0} 个字符。", "versions.restore": "恢复此版本", "versions.restore.err": "恢复失败:{0}", "versions.restored": "已恢复到 v{0}", "versions.restoring": "恢复中…", "viewer.act.fullscreen": "全屏", "viewer.act.more": "更多", "viewer.chem.fallback": "当前文件没有可安全绘制的二维坐标,下面保留原始化学表示。", "viewer.chem.source": "原始化学表示", "viewer.downloadOnly": "该二进制产物没有安全的内置预览器。", "viewer.empty": "在会话里点击一个文件以查看。", "viewer.genome.features": "{0} 个特征 · {1} 条染色体/序列", "viewer.genome.invalid": "忽略 {0} 条无效记录", "viewer.genome.list": "特征描述", "viewer.latex.preview": "安全预览", "viewer.latex.source": "LaTeX 源码", "viewer.loading": "正在选择安全渲染器…", "viewer.msa.summary": "{0} 条序列 · {1} 列 · {2}", "viewer.renderer.compat": "兼容模式", "viewer.renderer.error": "无法预览此产物,可继续下载原文件。", "viewer.renderer.matched": "匹配:{0}", "viewer.renderer.version": "版本 {0}", "viewer.renderer.noscript": "预览不执行脚本。交互式报表请下载后在本地打开。", "viewer.renderer.interactive": "交互式预览运行在隔离的备用 loopback 源上。若一直空白,请重新打开该文件或下载报表。", "viewer.sequence.omitted": "为保持界面流畅,其余 {0} 个残基未展开。", "viewer.sequence.summary": "{0} 条序列 · {1} 个残基 · {2}", "viewer.table.shape": "共 {0} 行 × {1} 列", "ws.nav.files": "文件", "ws.nav.new": "新建", "ws.sidebar.collapse": "收起侧栏 (⌘B)", "ws.sidebar.expand": "展开侧栏 (⌘B)", }; export default dict;