mirror of
https://github.com/bytedance/deer-flow.git
synced 2026-09-25 14:06:18 +00:00
* feat(frontend): move capability management out of settings * fix(frontend): address capability center review feedback
1479 lines
59 KiB
TypeScript
1479 lines
59 KiB
TypeScript
import {
|
||
CompassIcon,
|
||
GraduationCapIcon,
|
||
ImageIcon,
|
||
MicroscopeIcon,
|
||
PenLineIcon,
|
||
ShapesIcon,
|
||
SparklesIcon,
|
||
VideoIcon,
|
||
} from "lucide-react";
|
||
|
||
import type { Translations } from "./types";
|
||
|
||
export const zhCN: Translations = {
|
||
// Locale meta
|
||
locale: {
|
||
localName: "中文",
|
||
},
|
||
|
||
capabilities: {
|
||
integrationSkills: "来自插件",
|
||
sharedSkills: "共享技能",
|
||
title: "能力中心",
|
||
description: "为你的工作添加工具与技能,让 DeerFlow 更懂你的工作方式。",
|
||
plugins: "插件",
|
||
skills: "技能",
|
||
searchPlugins: "搜索插件名称或用途",
|
||
searchSkills: "搜索技能名称或用途",
|
||
allPlugins: "全部插件",
|
||
installed: "已安装",
|
||
enabled: "已启用",
|
||
disabled: "未启用",
|
||
configure: "配置",
|
||
details: "查看详情",
|
||
addPlugin: "添加 MCP 插件",
|
||
builtin: "官方内置",
|
||
community: "社区",
|
||
custom: "我的技能",
|
||
allSkills: "全部技能",
|
||
availablePlugins: "可用插件",
|
||
availableSkills: "可用技能",
|
||
pluginHint: "连接常用应用,让 Agent 直接访问资料、处理工作。",
|
||
skillHint: "把常用方法变成技能,在对话中按需使用。",
|
||
noResults: "没有找到匹配的内容",
|
||
larkName: "飞书 / Lark",
|
||
larkDescription: "连接飞书文档、消息、日历与多维表格,在对话中协同办公。",
|
||
larkTag: "办公协作",
|
||
connect: "连接",
|
||
notInstalled: "未安装",
|
||
mcpDescription: "让 Agent 调用此插件提供的工具。",
|
||
mcpLabel: "MCP 插件",
|
||
pluginSettings: "插件配置",
|
||
communityTitle: "从社区带来新的技能",
|
||
communityDescription:
|
||
"导入你找到的 .skill 文件,即可在「我的技能」中管理和使用。",
|
||
skillEnabled: "启用技能",
|
||
manage: "管理",
|
||
},
|
||
|
||
// Common
|
||
common: {
|
||
home: "首页",
|
||
settings: "设置",
|
||
delete: "删除",
|
||
edit: "编辑",
|
||
rename: "重命名",
|
||
renameFailed: "重命名会话失败。",
|
||
share: "分享",
|
||
openInNewWindow: "在新窗口打开",
|
||
close: "关闭",
|
||
more: "更多",
|
||
search: "搜索",
|
||
loadMore: "加载更多",
|
||
download: "下载",
|
||
thinking: "思考",
|
||
artifacts: "文件",
|
||
public: "公共",
|
||
custom: "自定义",
|
||
notAvailableInDemoMode: "在演示模式下不可用",
|
||
loading: "加载中...",
|
||
error: "错误:",
|
||
version: "版本",
|
||
lastUpdated: "最后更新",
|
||
code: "代码",
|
||
preview: "预览",
|
||
cancel: "取消",
|
||
save: "保存",
|
||
install: "安装",
|
||
create: "创建",
|
||
import: "导入",
|
||
export: "导出",
|
||
exportAsMarkdown: "导出为 Markdown",
|
||
exportAsJSON: "导出为 JSON",
|
||
exportSuccess: "对话已导出",
|
||
exportFailed: "导出对话失败。",
|
||
regenerate: "重新生成",
|
||
editAndRerun: "编辑并重新运行",
|
||
updateAndRerun: "更新并重新运行",
|
||
editRerunWarning:
|
||
"重新运行只恢复对话状态,不会撤销文件、Memory 或外部操作。",
|
||
branch: "分叉",
|
||
showArtifacts: "查看此对话的文件",
|
||
browser: "浏览器",
|
||
showBrowser: "打开浏览器面板",
|
||
},
|
||
|
||
runDuration: {
|
||
reasoning: "思考过程",
|
||
working: "执行中…",
|
||
completedIn: (duration) => `本次任务耗时 ${duration}`,
|
||
description: "任务总耗时,包括模型推理、工具调用和等待时间。",
|
||
lessThanSecond: "不足 1 秒",
|
||
hours: (value) => `${value} 小时`,
|
||
minutes: (value) => `${value} 分`,
|
||
seconds: (value) => `${value} 秒`,
|
||
separator: " ",
|
||
},
|
||
|
||
// Home
|
||
home: {
|
||
docs: "文档",
|
||
blog: "博客",
|
||
},
|
||
|
||
// Welcome
|
||
welcome: {
|
||
greeting: "你好,欢迎回来!",
|
||
description:
|
||
"欢迎使用 🦌 DeerFlow,一个完全开源的超级智能体。通过内置和自定义的 Skills,\nDeerFlow 可以帮你搜索网络、分析数据,还能为你生成幻灯片、\n图片、视频、播客及网页等,几乎可以做任何事情。",
|
||
|
||
createYourOwnSkill: "创建你自己的 Agent SKill",
|
||
createYourOwnSkillDescription:
|
||
"创建你的 Agent Skill 来释放 DeerFlow 的潜力。通过自定义技能,DeerFlow\n可以帮你搜索网络、分析数据,还能为你生成幻灯片、\n网页等作品,几乎可以做任何事情。",
|
||
},
|
||
|
||
// Clipboard
|
||
clipboard: {
|
||
copyToClipboard: "复制到剪贴板",
|
||
copiedToClipboard: "已复制到剪贴板",
|
||
failedToCopyToClipboard: "复制到剪贴板失败",
|
||
linkCopied: "链接已复制到剪贴板",
|
||
},
|
||
|
||
artifactEditing: {
|
||
unsaved: "未保存",
|
||
saving: "正在保存...",
|
||
saved: "文件已保存",
|
||
exit: "退出编辑",
|
||
discard: "放弃修改",
|
||
discardChanges: "要放弃对此文件的未保存修改吗?",
|
||
conflict: "开始编辑后文件已发生变化。请放弃草稿并重新加载后再保存。",
|
||
conflictShort: "远端已更新",
|
||
runInProgress: "请等待当前 Agent 运行结束后再保存。",
|
||
saveFailed: "保存文件失败",
|
||
},
|
||
|
||
artifactPreview: {
|
||
limited: (previewSize, totalSize) =>
|
||
totalSize
|
||
? `当前显示 ${totalSize} 中的前 ${previewSize}。`
|
||
: `当前显示前 ${previewSize}。`,
|
||
loadFullFile: "加载完整文件",
|
||
loadingFullFile: "正在加载完整文件...",
|
||
previewFailed: "无法预览此文件,但仍可下载原始文件。",
|
||
viewSource: "查看原始文件",
|
||
missingTarget: "该链接没有指明要展示哪个文件。",
|
||
},
|
||
|
||
artifactTable: {
|
||
title: "表格预览",
|
||
header: "首行作为表头",
|
||
column: (index) => `列 ${index}`,
|
||
total: (count) => `共 ${count} 行`,
|
||
sample: (count) => `预览前 ${count} 行`,
|
||
range: (start, end, limited) =>
|
||
`${limited ? "预览 " : ""}${start}–${end} 行`,
|
||
columnsLimited: "仅展示预览样本的前 50 列。",
|
||
uneven: "部分行的字段数量不同,缺失字段已标记。",
|
||
empty: "文件为空。",
|
||
incomplete: "当前预览范围内没有完整记录,请查看源码或下载文件。",
|
||
failed: "无法可靠预览此表格,请查看源码或下载文件。",
|
||
retry: "重新预览",
|
||
previous: "上一页",
|
||
next: "下一页",
|
||
cell: (row, column) => `查看第 ${row} 行、第 ${column} 列`,
|
||
cellValue: "单元格内容",
|
||
missing: "缺失",
|
||
savedVersion: "打开或下载的是已保存文件,当前草稿尚未保存。",
|
||
},
|
||
|
||
artifactArchive: {
|
||
downloadCurrent: (count) => `下载当前版本(${count} 个文件)`,
|
||
currentVersionNotice:
|
||
"文件列表来自此回复;内容为当前版本,可能已发生变化。",
|
||
downloadFailed: "文件压缩包下载失败。",
|
||
},
|
||
|
||
// Citations
|
||
citations: {
|
||
sourcesSummary: (count) => `使用了 ${count} 个来源`,
|
||
citeCount: (count) => `${count} 次引用`,
|
||
copyReference: (title) => `复制 ${title} 引用`,
|
||
copiedReference: (title) => `已复制 ${title} 引用`,
|
||
},
|
||
|
||
// Workspace Changes
|
||
workspaceChanges: {
|
||
title: "工作区变更",
|
||
editedTitle: (count) => `已编辑 ${count} 个文件`,
|
||
badge: (count, additions, deletions) =>
|
||
`${count} 个文件已更改 +${additions} -${deletions}`,
|
||
viewChanges: "查看更改",
|
||
created: "新增",
|
||
modified: "修改",
|
||
deleted: "删除",
|
||
openFile: "打开文件",
|
||
loading: "正在加载工作区变更...",
|
||
noChanges: "没有记录到工作区变更。",
|
||
diffUnavailable: "无法展示 diff",
|
||
binaryUnavailable: "二进制文件,无法展示 diff。",
|
||
largeUnavailable: "文件过大,已省略 diff。",
|
||
sensitiveUnavailable: "敏感路径,已隐藏内容。",
|
||
truncatedUnavailable: "变更集过大,已省略 diff。",
|
||
symlinkUnavailable: "符号链接变更,无法展示 diff。",
|
||
truncatedSummary: "部分变更已被截断。",
|
||
},
|
||
|
||
// Input Box
|
||
inputBox: {
|
||
placeholder: "今天我能为你做些什么?",
|
||
disclaimer: "内容由AI生成,重要信息请务必核查",
|
||
createSkillPrompt:
|
||
"我们一起用 skill-creator 技能来创建一个技能吧。先问问我希望这个技能能做什么。",
|
||
addAttachments: "添加附件",
|
||
inputPolish: "优化输入",
|
||
inputPolishing: "正在优化输入...",
|
||
inputPolishNoChanges: "当前输入已经足够清晰。",
|
||
inputPolishFailed: "优化输入失败。",
|
||
inputPolishUndo: "撤销优化",
|
||
inputPolishCancel: "取消优化",
|
||
voiceInputStartLabel: "语音输入",
|
||
voiceInputStopLabel: "停止语音输入",
|
||
voiceInputStart:
|
||
"语音输入。DeerFlow 只接收转写文本,音频由浏览器或系统语音服务处理。",
|
||
voiceInputStop: "停止语音输入",
|
||
voiceInputListening: "正在聆听... 点击停止语音输入。",
|
||
voiceInputUnsupported:
|
||
"当前浏览器不支持语音输入。建议使用 Chrome 或 Edge。",
|
||
voiceInputPermissionDenied: "麦克风权限被拒绝。请允许麦克风访问后重试。",
|
||
voiceInputMicrophoneUnavailable: "未检测到麦克风。请检查设备输入后重试。",
|
||
voiceInputUnsupportedLanguage: "当前浏览器不支持该语言的语音输入。",
|
||
voiceInputNetworkError: "无法连接浏览器语音识别服务。",
|
||
voiceInputNoSpeech: "没有检测到语音,请重试。",
|
||
voiceInputFailed: "语音输入失败,请重试。",
|
||
mode: "模式",
|
||
flashMode: "闪速",
|
||
flashModeDescription: "快速且高效的完成任务,但可能不够精准",
|
||
reasoningMode: "思考",
|
||
reasoningModeDescription: "思考后再行动,在时间与准确性之间取得平衡",
|
||
proMode: "Pro",
|
||
proModeDescription: "思考、计划再执行,获得更精准的结果,可能需要更多时间",
|
||
ultraMode: "Ultra",
|
||
ultraModeDescription:
|
||
"继承自 Pro 模式,可调用子代理分工协作,适合复杂多步骤任务,能力最强",
|
||
reasoningEffort: "推理深度",
|
||
reasoningEffortMinimal: "最低",
|
||
reasoningEffortMinimalDescription: "检索 + 直接输出",
|
||
reasoningEffortLow: "低",
|
||
reasoningEffortLowDescription: "简单逻辑校验 + 浅层推演",
|
||
reasoningEffortMedium: "中",
|
||
reasoningEffortMediumDescription: "多层逻辑分析 + 基础验证",
|
||
reasoningEffortHigh: "高",
|
||
reasoningEffortHighDescription: "全维度逻辑推演 + 多路径验证 + 反推校验",
|
||
searchModels: "搜索模型...",
|
||
surpriseMe: "小惊喜",
|
||
surpriseMePrompt: "给我一个小惊喜吧",
|
||
followupLoading: "正在生成可能的后续问题...",
|
||
followupConfirmTitle: "发送建议问题?",
|
||
followupConfirmDescription: "当前输入框已有内容,选择发送方式。",
|
||
followupConfirmAppend: "追加并发送",
|
||
followupConfirmReplace: "替换并发送",
|
||
suggestionPlaceholderRequired: "发送前请先填写建议模板中的占位内容。",
|
||
goalCommandDescription: "设置、查看或清除当前目标",
|
||
compactCommandDescription: "压缩早期上下文,保留完整聊天记录",
|
||
goalLabel: "目标",
|
||
goalContinuing: "续跑中 {count}/{max}",
|
||
goalContinuationTooltip:
|
||
"为达成目标已自动续跑 {count}/{max} 次,达上限后自动停止",
|
||
goalSet: "目标已设置。",
|
||
goalCleared: "目标已清除。",
|
||
goalNone: "当前没有目标。",
|
||
goalActive: "当前目标:{goal}",
|
||
goalFailed: "目标命令执行失败。",
|
||
goalTooLong: "目标过长,请控制在 {max} 个字符以内。",
|
||
goalLengthCounter: "目标长度:{length}/{max} 字符",
|
||
compactSuccess:
|
||
"已压缩早期上下文。完整聊天记录仍保留,后续模型将基于摘要和最近消息继续。",
|
||
compactSkipped: "当前上下文还不需要压缩。",
|
||
compactFailed: "上下文压缩失败。",
|
||
suggestions: [
|
||
{
|
||
suggestion: "写作",
|
||
prompt: "撰写一篇关于[主题]的博客文章",
|
||
icon: PenLineIcon,
|
||
},
|
||
{
|
||
suggestion: "研究",
|
||
prompt: "深入浅出的研究一下[主题],并总结发现。",
|
||
icon: MicroscopeIcon,
|
||
},
|
||
{
|
||
suggestion: "收集",
|
||
prompt: "从[来源]收集数据并创建报告。",
|
||
icon: ShapesIcon,
|
||
},
|
||
{
|
||
suggestion: "学习",
|
||
prompt: "学习关于[主题]并创建教程。",
|
||
icon: GraduationCapIcon,
|
||
},
|
||
],
|
||
suggestionsCreate: [
|
||
{
|
||
suggestion: "网页",
|
||
prompt: "生成一个关于[主题]的网页",
|
||
icon: CompassIcon,
|
||
},
|
||
{
|
||
suggestion: "图片",
|
||
prompt: "生成一个关于[主题]的图片",
|
||
icon: ImageIcon,
|
||
},
|
||
{
|
||
suggestion: "视频",
|
||
prompt: "生成一个关于[主题]的视频",
|
||
icon: VideoIcon,
|
||
},
|
||
{
|
||
type: "separator",
|
||
},
|
||
{
|
||
suggestion: "技能",
|
||
prompt:
|
||
"我们一起用 skill-creator 技能来创建一个技能吧。先问问我希望这个技能能做什么。",
|
||
icon: SparklesIcon,
|
||
},
|
||
],
|
||
pleaseWaitStreaming: "请等待当前响应完成。",
|
||
stopStreamingUnavailable: "你的角色无权停止正在运行的回合。",
|
||
},
|
||
|
||
// Sidebar
|
||
sidebar: {
|
||
newChat: "新对话",
|
||
chats: "对话",
|
||
channels: "渠道",
|
||
recentChats: "最近的对话",
|
||
demoChats: "演示对话",
|
||
agents: "智能体",
|
||
scheduledTasks: "定时任务",
|
||
agentsDisabledTooltip: "功能未启用",
|
||
},
|
||
// Sidebar projects section
|
||
projects: {
|
||
title: "项目",
|
||
newProject: "新建项目",
|
||
namePlaceholder: "项目名称",
|
||
moveToProject: "移动到项目",
|
||
moveToProjectHint: "移动对话不会移除其中已有的内容。",
|
||
removeFromProject: "移出项目",
|
||
archive: "归档",
|
||
restore: "恢复",
|
||
deleteProject: "删除项目",
|
||
deleteProjectConfirm:
|
||
"删除项目将解除其对话的关联。对话、历史记录及文件均不会被删除。",
|
||
archived: "已归档",
|
||
empty: "该项目下还没有对话。",
|
||
newChat: "新建对话",
|
||
create: "创建",
|
||
createFailed: "创建项目失败",
|
||
moveFailed: "移动对话失败",
|
||
archiveFailed: "归档项目失败",
|
||
restoreFailed: "恢复项目失败",
|
||
deleteFailed: "删除项目失败",
|
||
switchToGrouped: "按项目分组对话",
|
||
switchToFlat: "显示平铺对话列表",
|
||
threads: "对话",
|
||
threadsLoadFailed: "无法加载项目对话",
|
||
untitled: "未命名",
|
||
settings: "设置",
|
||
notFound: "项目不存在或已被删除。",
|
||
projectUnavailable: "无法关联到该项目,消息未发送。请重试。",
|
||
},
|
||
|
||
backgroundTasks: {
|
||
label: "后台任务",
|
||
title: "后台任务",
|
||
description: "当前对话中的 MCP 长程任务。",
|
||
active: "进行中",
|
||
recent: "最近任务",
|
||
empty: "暂无后台任务",
|
||
emptyHint: "在当前对话中启动的 MCP 长程任务会显示在这里。",
|
||
loadFailed: "无法加载后台任务",
|
||
retry: "重试",
|
||
cancel: "取消任务",
|
||
cancelling: "正在取消…",
|
||
cancelFailed: "取消任务失败",
|
||
cancellationRetrying: (attempt) =>
|
||
`第 ${attempt} 次取消失败;DeerFlow 将继续重试。`,
|
||
notificationRetrying: (attempt) =>
|
||
`第 ${attempt} 次聊天通知失败;DeerFlow 将退避后重试。`,
|
||
notificationStopped: "聊天通知因反复失败或永久拒绝,已停止重试。",
|
||
trackingDegraded: "状态检查有所延迟,DeerFlow 仍在重试。",
|
||
viewDetails: "查看详情",
|
||
hideDetails: "收起详情",
|
||
detailsFailed: "无法加载任务详情",
|
||
result: "结果",
|
||
resultArtifact: "结果产物",
|
||
inputRequired: "需要输入",
|
||
inputUnavailable: "当前集成暂时无法将你的回复发回远端任务。",
|
||
lastPollError: "最近一次状态错误",
|
||
created: (time) => `开始于${time}`,
|
||
updated: (time) => `更新于${time}`,
|
||
status: {
|
||
submitted: "已提交",
|
||
working: "进行中",
|
||
inputRequired: "需要输入",
|
||
completed: "已完成",
|
||
failed: "已失败",
|
||
cancelled: "已取消",
|
||
},
|
||
},
|
||
|
||
subagentBatches: {
|
||
label: "批处理",
|
||
title: "子智能体批处理",
|
||
description: "面向大量独立条目的持久化、可恢复执行。",
|
||
workerUnavailable:
|
||
"批处理 worker 未运行。历史批次仍可查看和导出,当前为只读模式。",
|
||
empty: "暂无子智能体批处理",
|
||
emptyHint: "当前对话通过 batch_task 提交的批处理会显示在这里。",
|
||
loadFailed: "无法加载子智能体批处理",
|
||
active: "进行中",
|
||
recent: "最近任务",
|
||
pause: "暂停",
|
||
resume: "继续",
|
||
cancel: "取消",
|
||
retryItem: "重试",
|
||
exportResults: "导出 JSONL",
|
||
viewItems: "查看条目",
|
||
hideItems: "收起条目",
|
||
itemsFailed: "无法加载批处理条目",
|
||
progress: (completed, total) => `${completed}/${total} 已结束`,
|
||
limits: (live, running) => `存活 ${live} · 运行 ${running}`,
|
||
status: {
|
||
queued: "排队中",
|
||
running: "运行中",
|
||
paused: "已暂停",
|
||
completed: "已完成",
|
||
failed: "已失败",
|
||
cancelled: "已取消",
|
||
},
|
||
},
|
||
|
||
// 定时任务
|
||
scheduledTasks: {
|
||
scheduleType: {
|
||
cron: "重复",
|
||
once: "单次",
|
||
interval: "间隔",
|
||
},
|
||
preset: {
|
||
label: "重复方式",
|
||
hourly: "每小时",
|
||
daily: "每天",
|
||
weekly: "每周",
|
||
monthly: "每月",
|
||
custom: "自定义 cron",
|
||
},
|
||
fields: {
|
||
minute: "分钟",
|
||
time: "时间",
|
||
weekday: "在",
|
||
dayOfMonth: "几号",
|
||
cron: "cron 表达式",
|
||
cronPlaceholder: "0 9 * * *",
|
||
runAt: "运行时间",
|
||
timezone: "时区",
|
||
intervalAmount: "每",
|
||
intervalUnitSeconds: "秒",
|
||
intervalUnitMinutes: "分钟",
|
||
intervalUnitHours: "小时",
|
||
intervalMinHint: "最短 60 秒(默认服务端下限)。",
|
||
},
|
||
weekdays: {
|
||
mon: "周一",
|
||
tue: "周二",
|
||
wed: "周三",
|
||
thu: "周四",
|
||
fri: "周五",
|
||
sat: "周六",
|
||
sun: "周日",
|
||
},
|
||
preview: "预览",
|
||
cronHelp: "打开 crontab.guru",
|
||
create: {
|
||
title: "创建定时任务",
|
||
taskTitle: "任务标题",
|
||
prompt: "提示词",
|
||
agent: "Agent",
|
||
leadAgent: "默认 Agent(lead_agent)",
|
||
submit: "创建",
|
||
fillRequired: "请填写所有必填项",
|
||
},
|
||
context: {
|
||
fresh: "新线程",
|
||
reuse: "复用线程",
|
||
threadIdPlaceholder: "线程 ID",
|
||
reuseNoticeTitle: "使用该线程的历史对话",
|
||
reuseNoticeDescription:
|
||
"如果触发时该线程正在运行,DeerFlow 会将本次执行排队,并在线程空闲后启动;超过配置的最长等待时间后会标记为失败。",
|
||
},
|
||
filters: {
|
||
allStatuses: "全部状态",
|
||
enabled: "已启用",
|
||
paused: "已暂停",
|
||
completed: "已完成",
|
||
failed: "已失败",
|
||
allTypes: "全部类型",
|
||
cron: "定时",
|
||
once: "单次",
|
||
interval: "间隔",
|
||
},
|
||
detail: {
|
||
contextMode: "上下文模式",
|
||
agent: "Agent",
|
||
thread: "线程",
|
||
lastThread: "上个线程",
|
||
schedule: "调度",
|
||
nextRun: "下次运行",
|
||
lastRun: "上次运行",
|
||
lastRunId: "上次运行 ID",
|
||
lastError: "上次错误",
|
||
runsCount: "{count} 次运行",
|
||
runsCountOne: "{count} 次运行",
|
||
noRuns: "暂无运行",
|
||
noSelection: "未选择定时任务",
|
||
filteredByThread: "按线程筛选:{id}",
|
||
loadFailed: "加载定时任务失败",
|
||
},
|
||
actions: {
|
||
edit: "编辑",
|
||
cancelEdit: "取消编辑",
|
||
pause: "暂停",
|
||
resume: "恢复",
|
||
trigger: "立即触发",
|
||
duplicate: "复制",
|
||
duplicateTitleSuffix: "(副本)",
|
||
delete: "删除",
|
||
},
|
||
deleteConfirm: "确定要删除该定时任务吗?此操作不可撤销。",
|
||
errors: {
|
||
create: "创建定时任务失败",
|
||
update: "更新定时任务失败",
|
||
pause: "暂停定时任务失败",
|
||
resume: "恢复定时任务失败",
|
||
trigger: "触发定时任务失败",
|
||
delete: "删除定时任务失败",
|
||
},
|
||
edit: {
|
||
titlePlaceholder: "编辑标题",
|
||
promptPlaceholder: "编辑提示词",
|
||
submit: "保存编辑",
|
||
},
|
||
status: {
|
||
enabled: "已启用",
|
||
paused: "已暂停",
|
||
running: "运行中",
|
||
completed: "已完成",
|
||
failed: "已失败",
|
||
cancelled: "已取消",
|
||
},
|
||
history: {
|
||
navigation: "执行记录分页",
|
||
newer: "较新记录",
|
||
older: "更早记录",
|
||
latest: "最新记录",
|
||
page: "第 {page} 页",
|
||
paused: "浏览历史页时暂停自动刷新,返回最新记录可查看当前执行情况。",
|
||
loading: "正在加载执行记录…",
|
||
loadFailed: "无法加载执行记录。",
|
||
retry: "重试加载",
|
||
},
|
||
runTrigger: { scheduled: "定时", manual: "手动" },
|
||
runStatus: {
|
||
queued: "排队中",
|
||
launching: "启动中",
|
||
running: "运行中",
|
||
success: "成功",
|
||
failed: "失败",
|
||
skipped: "跳过",
|
||
interrupted: "已中断",
|
||
},
|
||
recipes: {
|
||
label: "快速创建",
|
||
trending: {
|
||
title: "GitHub Trending 日榜",
|
||
desc: "总结今日 Trending 前十仓库",
|
||
},
|
||
news: {
|
||
title: "每日科技新闻摘要",
|
||
desc: "收集并总结当日科技要闻",
|
||
},
|
||
issues: {
|
||
title: "GitHub Issue 分诊",
|
||
desc: "分诊某仓库的 open issues(填入 {{repo}})",
|
||
},
|
||
weekly: {
|
||
title: "每周周报",
|
||
desc: "每周一汇总一周工作",
|
||
},
|
||
},
|
||
},
|
||
|
||
// Agents
|
||
agents: {
|
||
title: "智能体",
|
||
description: "创建和管理具有专属 Prompt 与能力的自定义智能体。",
|
||
newAgent: "新建智能体",
|
||
emptyTitle: "还没有自定义智能体",
|
||
emptyDescription: "创建你的第一个自定义智能体,设置专属系统提示词。",
|
||
featureDisabledTitle: "智能体功能未启用",
|
||
featureDisabledDescription: "该功能未在此服务器上启用,请联系管理员。",
|
||
chat: "对话",
|
||
delete: "删除",
|
||
deleteConfirm: "确定要删除该智能体吗?此操作不可撤销。",
|
||
deleteSuccess: "智能体已删除",
|
||
newChat: "新对话",
|
||
createPageTitle: "设计你的智能体",
|
||
createPageSubtitle: "描述你想要的智能体,我来帮你通过对话创建。",
|
||
nameStepTitle: "给新智能体起个名字",
|
||
nameStepHint:
|
||
"只允许字母、数字和连字符,存储时自动转为小写(例如 code-reviewer)",
|
||
nameStepPlaceholder: "例如 code-reviewer",
|
||
nameStepContinue: "继续",
|
||
nameStepInvalidError: "名称无效,只允许字母、数字和连字符",
|
||
nameStepAlreadyExistsError: "已存在同名智能体",
|
||
nameStepNetworkError: "网络请求失败,请检查网络或后端连接",
|
||
nameStepCheckError: "无法验证名称可用性,请稍后重试",
|
||
nameStepCheckErrorWithDetail: "名称校验失败:{detail}",
|
||
nameStepApiDisabledError:
|
||
"服务器未开启自定义智能体管理功能,请联系管理员。",
|
||
nameStepBootstrapMessage:
|
||
"新智能体的名称是 {name}。请先帮我设计它的用途、行为方式和 SOUL.md,再保存它。",
|
||
save: "保存智能体",
|
||
saving: "正在保存智能体...",
|
||
saveRequested:
|
||
"已提交保存请求,DeerFlow 正在根据当前对话生成并保存初版智能体。",
|
||
saveHint:
|
||
"你可以在右上角的菜单里随时保存这个智能体,就算目前还只是初稿也可以。",
|
||
saveCommandMessage:
|
||
"请现在根据我们目前已经讨论的全部内容保存这个自定义智能体。这就是我明确的保存确认。如果仍有少量细节缺失,请根据上下文做出合理假设,生成一份简洁的英文初始 SOUL.md,并直接调用 setup_agent,不要再向我索要额外确认。",
|
||
agentCreatedPendingRefresh:
|
||
"智能体已创建,但 DeerFlow 暂时还无法读取到它。请稍后刷新当前页面。",
|
||
more: "更多操作",
|
||
agentCreated: "智能体已创建!",
|
||
startChatting: "开始对话",
|
||
backToGallery: "返回 Gallery",
|
||
settings: "智能体设置",
|
||
settingsTitle: "智能体设置",
|
||
settingsDisplayName: "显示名称",
|
||
settingsDisplayNameTooLong: "显示名称不能超过 100 个 Unicode 码点。",
|
||
settingsDisplayNameHint: "支持中文等 Unicode 字符,留空时使用智能体标识",
|
||
settingsDescription:
|
||
"为该智能体设置显示名称和默认模型,模型修改在下一条消息生效。",
|
||
settingsModel: "默认模型",
|
||
settingsModelDefault: "使用全局默认",
|
||
settingsTemperature: "温度",
|
||
settingsTemperatureHint: "0 = 确定性输出,越高越发散(0–2)。",
|
||
settingsMaxTokens: "最大输出 token",
|
||
settingsMaxTokensPlaceholder: "继承模型配置",
|
||
settingsThinking: "思考模式",
|
||
settingsThinkingOn: "开启",
|
||
settingsThinkingOff: "关闭",
|
||
settingsReasoningEffort: "推理强度",
|
||
settingsInherit: "继承",
|
||
settingsSaved: "智能体设置已保存",
|
||
settingsInvalidTemperature: "温度必须在 0 到 2 之间",
|
||
settingsInvalidMaxTokens: "最大输出 token 必须为不超过 200,000 的正整数",
|
||
},
|
||
|
||
// Breadcrumb
|
||
breadcrumb: {
|
||
workspace: "工作区",
|
||
chats: "对话",
|
||
},
|
||
|
||
// Workspace
|
||
workspace: {
|
||
officialWebsite: "访问 DeerFlow 官方网站",
|
||
githubTooltip: "访问 DeerFlow 的 GitHub 仓库",
|
||
settingsAndMore: "设置和更多",
|
||
visitGithub: "在 GitHub 上查看 DeerFlow",
|
||
reportIssue: "报告问题",
|
||
contactUs: "联系我们",
|
||
about: "关于 DeerFlow",
|
||
logout: "退出登录",
|
||
gatewayUnavailable: "网关暂时不可用。",
|
||
gatewayUnavailableRetrying: "正在后台重试…",
|
||
modelLoadFailed:
|
||
"模型列表加载失败,模型选择和 Token 用量信息可能暂时不可用。",
|
||
modelLoadRetry: "重试",
|
||
modelLoadRetrying: "正在重试…",
|
||
},
|
||
|
||
// Conversation
|
||
conversation: {
|
||
noMessages: "还没有消息",
|
||
startConversation: "开始新的对话以查看消息",
|
||
branchCreated: "已创建分叉对话",
|
||
branchFailed: "创建分叉对话失败。",
|
||
streamReplayGap: "部分实时更新已过期,已从持久化状态恢复对话。",
|
||
outlineLabel: "对话章节",
|
||
outlineAttachmentFallback: "图片或文件消息",
|
||
},
|
||
|
||
// Chats
|
||
chats: {
|
||
deleteChat: "删除对话",
|
||
deleteConfirm: (title) =>
|
||
`确定删除“${title}”吗?这将删除对话及其文件,此操作不可撤销。`,
|
||
deleteFailed: "删除对话失败,请重试。",
|
||
noActiveChats: "暂无近期会话",
|
||
activeChats: "近期会话",
|
||
archivedChats: "已归档",
|
||
archiveChat: "归档",
|
||
restoreChat: "恢复",
|
||
archiveSuccess: "已归档",
|
||
restoreSuccess: "已恢复",
|
||
archiveFailed: "更新会话归档状态失败",
|
||
archiveDescription:
|
||
"归档会保留消息和文件,不会停止运行中的任务或暂停定时任务。",
|
||
undoArchive: "撤销",
|
||
noArchivedChats: "暂无已归档会话",
|
||
noMatchingChats: "已加载的会话中没有匹配结果",
|
||
loadChatsFailed: "加载会话失败",
|
||
retryLoadChats: "重试",
|
||
searchChats: "搜索对话",
|
||
branchLabel: (title, parentTitle) => `${title},分叉自 ${parentTitle}`,
|
||
loadMoreToSearch: "加载更多以搜索更早的对话",
|
||
loadingMore: "正在加载...",
|
||
loadOlderChats: "加载更早的对话",
|
||
pinChat: "置顶对话",
|
||
unpinChat: "取消置顶",
|
||
pinChatFailed: "更新对话置顶状态失败",
|
||
},
|
||
|
||
// Sidecar
|
||
sidecar: {
|
||
title: "侧边对话",
|
||
open: "打开侧边对话",
|
||
close: "关闭侧边对话",
|
||
delete: "删除侧边对话",
|
||
deleteConfirm:
|
||
"确定要删除该侧边对话吗?此操作不可撤销。如果只是想隐藏,请使用顶部的侧边对话开关。",
|
||
deleteSuccess: "侧边对话已删除",
|
||
deleteFailed: "删除侧边对话失败。",
|
||
addToConversation: "添加到对话",
|
||
askInSideChat: "在侧边聊天中提问",
|
||
reference: "引用",
|
||
selectedTextFragment: "{count} 个已选文本片段",
|
||
selectedTextFragments: "{count} 个已选文本片段",
|
||
clearReferences: "清除已选引用",
|
||
emptyTitle: "继续深入追问",
|
||
emptyDescription: "基于引用内容单独追问。",
|
||
placeholder: "继续深入追问...",
|
||
send: "发送",
|
||
sendFailed: "侧边对话发送失败。",
|
||
noContext: "未选择上下文",
|
||
continuing: "继续当前侧边对话",
|
||
selectionCrossesMessages:
|
||
"选区跨越了多条消息,请在同一条回复内选择要引用的文本。",
|
||
},
|
||
|
||
// Channels
|
||
channels: {
|
||
title: "渠道",
|
||
connect: "连接",
|
||
modify: "修改",
|
||
reconnect: "重新连接",
|
||
disconnect: "断开连接",
|
||
connected: "已连接",
|
||
notConnected: "未连接",
|
||
pending: "待完成",
|
||
revoked: "已断开",
|
||
disabled: "已停用",
|
||
unconfigured: "未配置",
|
||
unavailable: "当前无法使用渠道连接。",
|
||
unavailableShort: "不可用",
|
||
setupTitle: (name: string) => `连接 ${name}`,
|
||
setupEditTitle: (name: string) => `修改 ${name}`,
|
||
setupDescription:
|
||
"填写当前服务进程需要的配置值。这些内容不会写入 config.yaml。",
|
||
saveAndConnect: "保存并连接",
|
||
saveChanges: "保存修改",
|
||
descriptions: {
|
||
buzz: "通过 DeerFlow 智能体接收 Buzz 频道消息和私聊。",
|
||
telegram: "通过 DeerFlow Bot 接收 Telegram 私聊消息。",
|
||
slack: "接收 Slack 工作区消息和提及。",
|
||
discord: "通过 DeerFlow Bot 接收 Discord 服务器消息。",
|
||
feishu: "通过 DeerFlow 应用接收飞书和 Lark 消息。",
|
||
dingtalk: "通过 DeerFlow Bot 接收钉钉 Stream Push 消息。",
|
||
wechat: "通过 DeerFlow Bot 接收微信 iLink 消息。",
|
||
wecom: "通过 DeerFlow AI Bot 接收企业微信消息。",
|
||
},
|
||
connectedAs: (name: string) => `已连接为 ${name}。`,
|
||
},
|
||
|
||
// Page titles (document title)
|
||
pages: {
|
||
appName: "DeerFlow",
|
||
chats: "对话",
|
||
newChat: "新对话",
|
||
untitled: "未命名",
|
||
},
|
||
|
||
// Tool calls
|
||
toolCalls: {
|
||
details: "工具详情",
|
||
toolName: "工具名称",
|
||
callId: "调用 ID",
|
||
input: "输入",
|
||
result: "结果",
|
||
error: "错误",
|
||
noResult: "尚未收到结果",
|
||
emptyResult: "空结果",
|
||
truncated: "预览已截断;复制仅包含当前显示的内容。",
|
||
moreSteps: (count: number) => `查看其他 ${count} 个步骤`,
|
||
lessSteps: "隐藏步骤",
|
||
executeCommand: "执行命令",
|
||
presentFiles: "展示文件",
|
||
needYourHelp: "需要你的协助",
|
||
useTool: (toolName: string) => `使用 “${toolName}” 工具`,
|
||
searchFor: (query: string) => `搜索 “${query}”`,
|
||
searchForRelatedInfo: "搜索相关信息",
|
||
searchForRelatedImages: "搜索相关图片",
|
||
searchForRelatedImagesFor: (query: string) => `搜索相关图片 “${query}”`,
|
||
searchOnWebFor: (query: string) => `在网络上搜索 “${query}”`,
|
||
viewWebPage: "查看网页",
|
||
listFolder: "列出文件夹",
|
||
readFile: "读取文件",
|
||
writeFile: "写入文件",
|
||
clickToViewContent: "点击查看文件内容",
|
||
writeTodos: "更新 To-do 列表",
|
||
skillInstallTooltip: "安装技能并使其可在 DeerFlow 中使用",
|
||
browserNavigate: (url: string) => `在浏览器中打开 ${url}`,
|
||
browserNavigateGeneric: "在浏览器中打开页面",
|
||
browserClick: "在浏览器中点击元素",
|
||
browserType: "在浏览器中输入内容",
|
||
browserSnapshot: "在浏览器中读取页面",
|
||
browserGetText: "在浏览器中读取页面文本",
|
||
browserBack: "在浏览器中返回上一页",
|
||
browserScreenshot: "浏览器截图",
|
||
browserClose: "关闭浏览器",
|
||
},
|
||
|
||
humanInput: {
|
||
answered: "已回答",
|
||
pending: "发送中...",
|
||
readOnly: "只读",
|
||
otherLabel: "其他回答",
|
||
otherPlaceholder: "输入其他回答...",
|
||
submit: "提交",
|
||
emptyError: "请输入回答后再提交。",
|
||
requiredError: "请填写所有必填字段后再提交。",
|
||
requiredA11yLabel: "必填",
|
||
selectPlaceholder: "请选择...",
|
||
answeredValue: (value: string) => `已回答:${value}`,
|
||
},
|
||
|
||
uploads: {
|
||
uploading: "上传中...",
|
||
uploadingFiles: "文件上传中,请稍候...",
|
||
limitsHint: (maxFiles: number, maxFileSize: string, maxTotalSize: string) =>
|
||
`添加附件(最多 ${maxFiles} 个,单文件不超过 ${maxFileSize},总计不超过 ${maxTotalSize})。支持常规文件类型;macOS .app 应先压缩。`,
|
||
filesTooLarge: (files: string, maxFileSize: string) =>
|
||
`${files} 超过单文件 ${maxFileSize} 的限制,未被添加。`,
|
||
tooManyFiles: (count: number, maxFiles: number) =>
|
||
`有 ${count} 个文件未被添加;一次最多添加 ${maxFiles} 个文件。`,
|
||
totalSizeTooLarge: (count: number, maxTotalSize: string) =>
|
||
`有 ${count} 个文件未被添加;附件总大小不能超过 ${maxTotalSize}。`,
|
||
},
|
||
|
||
subtasks: {
|
||
subtask: "子任务",
|
||
executing: (count: number) =>
|
||
`${count > 1 ? "并行" : ""}执行 ${count} 个子任务`,
|
||
in_progress: "子任务运行中",
|
||
completed: "子任务已完成",
|
||
failed: "子任务失败",
|
||
},
|
||
|
||
// Token Usage
|
||
tokenUsage: {
|
||
title: "Token 用量",
|
||
label: "Tokens",
|
||
input: "输入",
|
||
output: "输出",
|
||
total: "总计",
|
||
view: "显示方式",
|
||
unavailable:
|
||
"暂无 Token 用量。只有模型成功返回且供应商提供 usage_metadata 时才会显示。",
|
||
unavailableShort: "未返回用量",
|
||
collecting: "统计中",
|
||
note: "顶部总量优先使用后端持久化的线程用量;当当前回复仍在流式返回时,还会叠加可见的进行中用量。每轮和调试用量只来自当前可见消息,可能与平台账单页不完全一致。",
|
||
presets: {
|
||
off: "关闭",
|
||
summary: "总览",
|
||
perTurn: "每轮",
|
||
debug: "调试",
|
||
},
|
||
presetDescriptions: {
|
||
off: "隐藏顶部和会话内的 token 展示。",
|
||
summary: "只在顶部显示当前对话累计 token。",
|
||
perTurn: "显示顶部累计,并为每轮 assistant 回复显示一条汇总 token。",
|
||
debug: "显示顶部累计,并展示按步骤归类的 token 调试信息。",
|
||
},
|
||
finalAnswer: "最终回复",
|
||
stepTotal: "步骤总计",
|
||
sharedAttribution: "该 token 由此步骤中的多个动作共同消耗",
|
||
subagent: (description: string) => `子任务:${description}`,
|
||
startTodo: (content: string) => `开始 To-do:${content}`,
|
||
completeTodo: (content: string) => `完成 To-do:${content}`,
|
||
updateTodo: (content: string) => `更新 To-do:${content}`,
|
||
removeTodo: (content: string) => `移除 To-do:${content}`,
|
||
},
|
||
|
||
contextUsage: {
|
||
label: "上下文",
|
||
title: "上下文窗口",
|
||
badgeAriaLabel: (percentage: string) => `上下文窗口已使用 ${percentage}%`,
|
||
},
|
||
|
||
// Shortcuts
|
||
shortcuts: {
|
||
searchActions: "搜索操作...",
|
||
noResults: "未找到结果。",
|
||
actions: "操作",
|
||
keyboardShortcuts: "键盘快捷键",
|
||
keyboardShortcutsDescription: "使用键盘快捷键更快地操作 DeerFlow。",
|
||
openCommandPalette: "打开命令面板",
|
||
toggleSidebar: "切换侧边栏",
|
||
},
|
||
|
||
// Settings
|
||
settings: {
|
||
title: "设置",
|
||
description: "根据你的偏好调整 DeerFlow 的界面和行为。",
|
||
sections: {
|
||
account: "账号",
|
||
appearance: "外观",
|
||
channels: "渠道",
|
||
memory: "记忆",
|
||
subagents: "子智能体",
|
||
notification: "通知",
|
||
about: "关于",
|
||
},
|
||
memory: {
|
||
title: "记忆",
|
||
description:
|
||
"DeerFlow 会在后台不断从你的对话中自动学习。这些记忆能帮助 DeerFlow 更好地理解你,并提供更个性化的体验。",
|
||
empty: "暂无可展示的记忆数据。",
|
||
rawJson: "原始 JSON",
|
||
exportButton: "导出记忆",
|
||
exportSuccess: "记忆已导出",
|
||
importButton: "导入记忆",
|
||
importConfirmTitle: "导入记忆?",
|
||
importConfirmDescription: "这会用选中的 JSON 备份覆盖当前记忆。",
|
||
importFileLabel: "已选择文件",
|
||
importInvalidFile: "读取记忆文件失败,请选择有效的 JSON 导出文件。",
|
||
importSuccess: "记忆已导入",
|
||
manualFactSource: "手动添加",
|
||
addFact: "添加事实",
|
||
addFactTitle: "添加记忆事实",
|
||
editFactTitle: "编辑记忆事实",
|
||
addFactSuccess: "事实已创建",
|
||
editFactSuccess: "事实已更新",
|
||
clearAll: "清空全部记忆",
|
||
clearAllConfirmTitle: "要清空全部记忆吗?",
|
||
clearAllConfirmDescription:
|
||
"这会删除所有已保存的摘要和事实。此操作无法撤销。",
|
||
clearAllSuccess: "已清空全部记忆",
|
||
factDeleteConfirmTitle: "要删除这条事实吗?",
|
||
factDeleteConfirmDescription:
|
||
"这条事实会立即从记忆中删除。此操作无法撤销。",
|
||
factDeleteSuccess: "事实已删除",
|
||
factContentLabel: "内容",
|
||
factCategoryLabel: "类别",
|
||
factConfidenceLabel: "置信度",
|
||
factContentPlaceholder: "描述你想保存的记忆事实",
|
||
factCategoryPlaceholder: "context",
|
||
factConfidenceHint: "请输入 0 到 1 之间的数字。",
|
||
factSave: "保存事实",
|
||
factValidationContent: "事实内容不能为空。",
|
||
factValidationConfidence: "置信度必须是 0 到 1 之间的数字。",
|
||
noFacts: "还没有保存的事实。",
|
||
summaryReadOnly:
|
||
"摘要分区当前仍为只读。现在你可以清空全部记忆或删除单条事实。",
|
||
memoryFullyEmpty: "还没有保存任何记忆。",
|
||
factPreviewLabel: "即将删除的事实",
|
||
searchPlaceholder: "搜索记忆",
|
||
filterAll: "全部",
|
||
filterFacts: "事实",
|
||
filterSummaries: "摘要",
|
||
noMatches: "没有找到匹配的记忆。",
|
||
markdown: {
|
||
overview: "概览",
|
||
userContext: "用户上下文",
|
||
work: "工作",
|
||
personal: "个人",
|
||
topOfMind: "近期关注(Top of mind)",
|
||
historyBackground: "历史背景",
|
||
recentMonths: "近几个月",
|
||
earlierContext: "更早上下文",
|
||
longTermBackground: "长期背景",
|
||
updatedAt: "更新于",
|
||
facts: "事实",
|
||
empty: "(空)",
|
||
table: {
|
||
category: "类别",
|
||
confidence: "置信度",
|
||
confidenceLevel: {
|
||
veryHigh: "极高",
|
||
high: "较高",
|
||
normal: "一般",
|
||
unknown: "未知",
|
||
},
|
||
content: "内容",
|
||
source: "来源",
|
||
createdAt: "创建时间",
|
||
view: "查看",
|
||
},
|
||
},
|
||
},
|
||
appearance: {
|
||
themeTitle: "主题",
|
||
themeDescription: "跟随系统或选择固定的界面模式。",
|
||
system: "系统",
|
||
light: "浅色",
|
||
dark: "深色",
|
||
systemDescription: "自动跟随系统主题。",
|
||
lightDescription: "更明亮的配色,适合日间使用。",
|
||
darkDescription: "更暗的配色,减少眩光方便专注。",
|
||
languageTitle: "语言",
|
||
languageDescription: "在不同语言之间切换。",
|
||
},
|
||
tools: {
|
||
adminRequired: "需要管理员权限才能管理 MCP 工具。",
|
||
empty: "暂无 MCP 工具。",
|
||
addServer: "添加服务器",
|
||
addServerDescription:
|
||
"粘贴 MCP 服务器提供的 JSON 定义。直接的服务器映射和带 `mcpServers` 外层的写法都可以。已有名称请通过“编辑”修改。",
|
||
addServerPlaceholder: `{
|
||
"mcpServers": {
|
||
"my-server": {
|
||
"command": "npx",
|
||
"args": ["-y", "@my-org/my-mcp-server"]
|
||
}
|
||
}
|
||
}`,
|
||
serverDefinitionLabel: "MCP 服务器 JSON 定义",
|
||
definitionEmpty: "请粘贴 MCP 服务器定义。",
|
||
definitionInvalidJson: "请输入有效的 JSON。",
|
||
definitionRootNotObject: "请输入描述一个或多个 MCP 服务器的 JSON 对象。",
|
||
definitionNoServers: "定义中未找到 MCP 服务器。",
|
||
definitionServerNotObject: "服务器“{name}”的配置必须是 JSON 对象。",
|
||
editServer: "编辑 MCP 服务器",
|
||
editServerDescription:
|
||
"编辑“{name}”的完整 JSON 定义。服务器名称不可修改;如需重命名,请添加新服务器后移除当前服务器。",
|
||
editSingleServer: "每次只能编辑一个 MCP 服务器。",
|
||
editServerNameMismatch: "编辑时请保留现有服务器名称“{name}”。",
|
||
serverAlreadyExists: "MCP 服务器“{name}”已存在,请使用“编辑”。",
|
||
removeServer: "移除 MCP 服务器",
|
||
removeServerDescription:
|
||
"确定从 MCP 配置中移除“{name}”吗?它的工具将不再提供给智能体。",
|
||
unnamedServer: "(空名称)",
|
||
},
|
||
subagents: {
|
||
title: "子智能体",
|
||
description:
|
||
"可由 Lead Agent 和已授权 Custom Agent 派遣、执行边界明确任务的复用型工作智能体。",
|
||
executionNote:
|
||
"每次调用都使用全新的临时上下文,没有独立持久会话或记忆,也不能向用户追问。系统提示词只改变工作方式;工具和技能才提供实际能力。",
|
||
adminNote:
|
||
"你可以查看目录;只有管理员可以添加、编辑、启停或删除子智能体。",
|
||
create: "添加子智能体",
|
||
empty: "暂无可用子智能体。",
|
||
sourceBuiltin: "内置",
|
||
sourceConfig: "config.yaml",
|
||
sourceManaged: "设置页管理",
|
||
conflict: "名称冲突,已从运行时排除",
|
||
overridden: "部分运行参数已被 config.yaml 覆盖",
|
||
createTitle: "添加子智能体",
|
||
editTitle: "编辑子智能体",
|
||
name: "名称",
|
||
nameHint: "仅可使用字母、数字和连字符。",
|
||
displayName: "显示名称",
|
||
descriptionLabel: "派遣说明",
|
||
systemPrompt: "系统提示词",
|
||
model: "模型",
|
||
inheritModel: "继承调用者模型",
|
||
tools: "允许的工具(逗号分隔)",
|
||
skills: "技能(逗号分隔)",
|
||
listModeAll: "继承全部可用项",
|
||
listModeNone: "全部禁用",
|
||
listModeSelected: "仅允许指定名称",
|
||
listNamesPlaceholder: "多个名称用逗号分隔",
|
||
maxTurns: "最大轮次",
|
||
timeout: "超时时间(秒)",
|
||
created: "子智能体已创建",
|
||
saved: "子智能体已保存",
|
||
deleted: "子智能体已删除",
|
||
deleteConfirm:
|
||
"确定删除这个子智能体吗?Custom Agent 可能仍保留对该名称的引用;以同名重建后,这些绑定会重新生效。此操作无法撤销。",
|
||
bindingTitle: "子智能体权限",
|
||
bindingDescription:
|
||
"选择这个 Custom Agent 可以派遣哪些子智能体;服务端会强制执行该范围。",
|
||
allAllowed: "全部已启用子智能体",
|
||
noneAllowed: "不允许使用子智能体",
|
||
selectedAllowed: "仅允许选中的子智能体",
|
||
missing: "已缺失或不可用;取消勾选后移除",
|
||
},
|
||
channels: {
|
||
title: "渠道",
|
||
description: "连接可在浏览器外向 DeerFlow 发送消息的即时通讯账号。",
|
||
disabled:
|
||
"当前服务器未启用渠道连接。请联系管理员开启 channel_connections。",
|
||
},
|
||
integrations: {
|
||
title: "集成",
|
||
description: "连接第三方工具和办公生态,让 Agent 能直接使用对应能力。",
|
||
refresh: "刷新",
|
||
install: "安装",
|
||
reinstall: "重新安装",
|
||
installing: "安装中...",
|
||
ready: "就绪",
|
||
pending: "待处理",
|
||
available: "可用",
|
||
unavailable: "不可用",
|
||
connected: "已连接",
|
||
loadFailed: "加载集成状态失败",
|
||
adminRequired: "需要管理员权限才能安装集成。",
|
||
lark: {
|
||
title: "Lark / 飞书 CLI",
|
||
description:
|
||
"安装官方 Lark/Feishu Agent Skills,并在授权后让 Agent 直接使用飞书能力。",
|
||
skillPack: "技能包",
|
||
gatewayCli: "Gateway CLI",
|
||
auth: "授权",
|
||
sandboxRuntime: "沙箱运行时",
|
||
sandboxRuntimeInitContainer: "由 init container 提供",
|
||
sandboxRuntimeBroker: "由 broker sidecar 提供",
|
||
sandboxRuntimeGatewayDownload: "由 Gateway 提供",
|
||
sandboxRuntimeNotReady: "未就绪 —— 对话时 lark-cli 可能不可用",
|
||
notInstalled: "尚未安装",
|
||
skillsInstalled: (installed, expected) =>
|
||
`已安装 ${installed}/${expected} 个技能`,
|
||
installedVersion: (version) => `已安装版本:${version}`,
|
||
updateAvailable: (version) =>
|
||
`有新版本:${version} —— 管理员重新安装会更新 managed Gateway CLI 和技能包`,
|
||
runtimeVersionMismatch:
|
||
"技能包版本与 Gateway 运行时 lark-cli 不一致;管理员重新安装会尝试更新 managed Gateway CLI 并重新对齐技能包",
|
||
authNotConfigured: "尚未连接",
|
||
authConfigured: "凭证已配置(未实时验证)",
|
||
authConfiguredFor: (user) => `${user} · 凭证已配置(未实时验证)`,
|
||
connect: "连接飞书",
|
||
authStarting: "正在打开连接链接...",
|
||
checkingConnection: "正在检查连接状态...",
|
||
connectedAction: "重新连接飞书",
|
||
requestPermissions: "申请新权限",
|
||
alreadyConnected:
|
||
"飞书已连接,无需重复授权。如果授权已过期,刷新状态后可重新连接。",
|
||
changeAppButton: "切换飞书 Bot",
|
||
changeAppTitle: "切换到其他飞书 App",
|
||
changeAppDescription:
|
||
"把你的 DeerFlow 账号指向另一个 Lark/飞书 App。只影响你自己的账号,不影响其他用户。",
|
||
changeAppIdLabel: "App ID",
|
||
changeAppSecretLabel: "App Secret",
|
||
changeAppAuthResetNote:
|
||
"切换时会撤销旧 App 的授权,随后需要授权新 App。",
|
||
changeAppSubmit: "切换 App",
|
||
changeAppReRegister: "在浏览器重新注册",
|
||
changeAppSwitched: "已切换飞书 App。请重新连接以授权新 App。",
|
||
brandFeishu: "飞书",
|
||
brandLark: "Lark",
|
||
connectionStarted: "连接链接已打开",
|
||
connectionReady: "连接准备已完成,正在打开授权链接",
|
||
authStarted: "授权页已打开,DeerFlow 会自动检测授权结果。",
|
||
authorizationStillPending:
|
||
"还没有检测到授权完成。请在浏览器完成授权;DeerFlow 会继续自动检测。如果页面没有更新,可点击“我已完成授权”。",
|
||
permissionTitle: "授权范围",
|
||
permissionDescription:
|
||
"默认只完成基础登录,不会申请任何业务权限。按需在这里勾选要授权的业务域;已连接用户可以重新授权继续追加(scope 会累积)。",
|
||
authDomains: {
|
||
calendar: {
|
||
label: "日历",
|
||
description: "日程、忙闲、日程回复与会议室预定。",
|
||
},
|
||
im: {
|
||
label: "消息",
|
||
description: "收发/回复消息、管理群聊、搜索记录、下载媒体。",
|
||
},
|
||
docs: {
|
||
label: "文档",
|
||
description: "创建、读取、编辑和搜索云文档。",
|
||
},
|
||
drive: {
|
||
label: "云空间",
|
||
description: "上传/下载文件、搜索文档与知识库、管理评论。",
|
||
},
|
||
sheets: {
|
||
label: "电子表格",
|
||
description: "读取、写入、追加、查找和导出电子表格。",
|
||
},
|
||
base: {
|
||
label: "多维表格",
|
||
description: "多维表格的表、字段、记录、视图、仪表盘与工作流。",
|
||
},
|
||
wiki: {
|
||
label: "知识库",
|
||
description: "知识空间、节点与知识库文档。",
|
||
},
|
||
task: {
|
||
label: "任务",
|
||
description: "任务、清单、子任务、评论与提醒。",
|
||
},
|
||
mail: {
|
||
label: "邮件",
|
||
description: "浏览、搜索、阅读、发送、回复、转发与管理草稿。",
|
||
},
|
||
vc: {
|
||
label: "视频会议",
|
||
description: "会议记录、纪要产物与录制。",
|
||
},
|
||
minutes: {
|
||
label: "妙记",
|
||
description: "会议纪要内容与逐字稿。",
|
||
},
|
||
note: {
|
||
label: "笔记",
|
||
description: "会议笔记及相关内容。",
|
||
},
|
||
slides: {
|
||
label: "幻灯片",
|
||
description: "演示文稿与幻灯片内容。",
|
||
},
|
||
markdown: {
|
||
label: "Markdown",
|
||
description: "创建、获取、局部修改和覆盖云盘原生 .md 文件。",
|
||
},
|
||
mindnotes: {
|
||
label: "思维笔记",
|
||
description: "思维笔记内容。",
|
||
},
|
||
contact: {
|
||
label: "通讯录",
|
||
description: "按姓名/邮箱/电话查用户并读取资料。",
|
||
},
|
||
approval: {
|
||
label: "审批",
|
||
description: "查询和处理审批任务、撤销与抄送实例。",
|
||
},
|
||
attendance: {
|
||
label: "考勤",
|
||
description: "查询个人考勤打卡记录。",
|
||
},
|
||
okr: {
|
||
label: "OKR",
|
||
description: "目标、关键结果、对齐、指标与进展。",
|
||
},
|
||
event: {
|
||
label: "实时事件",
|
||
description: "订阅并消费平台实时事件。",
|
||
},
|
||
apps: {
|
||
label: "妙搭应用",
|
||
description: "创建 Spark/妙搭应用、发布站点并管理可见范围。",
|
||
},
|
||
all: {
|
||
label: "全部",
|
||
description:
|
||
"申请 lark-cli 支持的全部业务域权限。仅在不确定缺哪个权限时使用。",
|
||
},
|
||
},
|
||
customScopeLabel: "具体 OAuth scope",
|
||
customScopePlaceholder: "例如 calendar:calendar.event:read",
|
||
customScopeDescription:
|
||
"高级用法:如果错误里给出了缺失 scope,可直接填在这里。例如 calendar:calendar.event:read、calendar:calendar.free_busy:read。",
|
||
openConnectionLinkTitle: "继续完成飞书连接",
|
||
openConnectionLinkDescription:
|
||
"首次连接需要在浏览器里完成一次飞书确认。打开下面的链接按提示完成;完成后回到这里继续授权。",
|
||
openAuthLinkTitle: "在浏览器中完成飞书授权",
|
||
openAuthLinkDescription:
|
||
"打开下面的链接完成授权。DeerFlow 会持续自动检测,并在授权通过后保存连接状态。",
|
||
waitingAuthTitle: "等待飞书授权完成",
|
||
waitingAuthDescription:
|
||
"请在刚打开的浏览器页面完成授权。DeerFlow 会自动更新这里的状态;下方按钮只是兜底操作。",
|
||
openAuthLink: "打开链接",
|
||
copyAuthLink: "复制链接",
|
||
completeAuth: "我已完成授权",
|
||
continueAuth: "我已完成浏览器确认,继续授权",
|
||
preparingAuthorization: "正在准备授权...",
|
||
completingAuth: "确认中...",
|
||
authExpiresIn: (seconds) => `链接将在约 ${seconds} 秒后过期。`,
|
||
installingTitle: "正在安装官方技能包",
|
||
installingDescription:
|
||
"通常 30 秒内完成,网络较慢时可能需要约 1 分钟。安装完成后会自动刷新状态。",
|
||
installNextTitle: "先安装官方技能包",
|
||
installNextDescription:
|
||
"安装后,/lark-doc、/lark-im、/lark-sheets 等技能会出现在技能索引中。",
|
||
cliNextTitle: "需要安装 Gateway CLI",
|
||
cliNextDescription:
|
||
"技能包已安装,但 Gateway 找不到 lark-cli。管理员重新安装集成会尝试下载 managed Gateway CLI;离线部署可使用内置 @larksuite/cli 的镜像。",
|
||
configuredTitle: "飞书凭证已在本地配置",
|
||
configuredDescription:
|
||
"当前只确认本地存在凭证,尚未向飞书实时验证有效性。重新连接可刷新并实时验证授权。",
|
||
connectedTitle: "飞书授权已实时验证",
|
||
connectedDescription:
|
||
"本次连接流程已向飞书验证当前用户授权。需要刷新授权或追加权限时,可重新连接。",
|
||
authNextTitle: "下一步完成浏览器授权",
|
||
authNextDescription:
|
||
"点击“连接飞书”后,DeerFlow 会先检查当前状态;未连接或授权过期时会拉起浏览器授权。",
|
||
},
|
||
},
|
||
skills: {
|
||
exportPrevious: "上 50 项",
|
||
exportNotices: {
|
||
skill_export_yaml_alias:
|
||
"导出暂不支持 YAML 别名,请在 SKILL.md 中改为明确的值。",
|
||
skill_export_yaml_complexity:
|
||
"YAML 声明的嵌套层级或结构复杂度超出导出限制。",
|
||
skill_export_invalid_declaration:
|
||
"已忽略格式无效的凭据声明,请检查 SKILL.md。",
|
||
skill_export_link: "外链文件或目录暂不支持导出。",
|
||
skill_export_unsupported_node:
|
||
"仅支持普通文件和目录;硬链接和特殊文件无法导出。",
|
||
skill_export_invalid_path: "此路径不符合跨平台要求,或与其他路径重名。",
|
||
skill_export_nested_skill: "安装器不接受嵌套的 SKILL.md 文件。",
|
||
skill_export_executable_binary: "安装器不接受可执行二进制文件。",
|
||
skill_export_invalid_frontmatter:
|
||
"SKILL.md 的声明必须有效,且名称须与技能目录一致。",
|
||
skill_export_sensitive_filename:
|
||
"此文件名可能对应本地凭据或代码仓库元数据。",
|
||
skill_export_platform_declarations:
|
||
"请在目标环境重新配置已声明的工具和凭据。",
|
||
},
|
||
exportSkill: "导出",
|
||
exportTitle: "导出技能",
|
||
exportDescription: "将当前已保存的技能下载为 .skill 文件。",
|
||
exportLoading: "正在准备文件清单…",
|
||
exportFiles: "文件",
|
||
exportDirectories: "目录",
|
||
exportSize: "未压缩体积",
|
||
exportContents: "包内文件",
|
||
exportMore: "下 50 项",
|
||
exportRequirements: "已声明的环境要求",
|
||
exportCompatibility: "运行环境",
|
||
exportTools: "允许的工具",
|
||
exportSecrets: "凭据名称",
|
||
exportOptional: "可选",
|
||
exportRequired: "必需",
|
||
exportUndeclared: "未声明",
|
||
exportScope:
|
||
"包含此技能目录内的全部文件。账号配置、对话和目录外的历史不会导出;目标环境需重新配置工具与凭据。",
|
||
exportWarnings: "请检查包内文件",
|
||
exportWarningDescription:
|
||
"以下提示来自文件名和声明。写在包内文件中的秘密也会原样导出;此操作不进行安全扫描。",
|
||
exportBlocked: "此技能包暂时无法导出",
|
||
exportDownload: "下载 .skill",
|
||
exportDownloading: "正在准备下载…",
|
||
exportHandedOff: "文件已交给浏览器下载。",
|
||
exportChanged: "技能已修改,请刷新文件清单后下载。",
|
||
exportRefresh: "刷新文件清单",
|
||
exportFailed: "导出失败,请重试。",
|
||
exportBusy: "当前导出任务已满,请稍后重试。",
|
||
exportTimeout: "准备技能包超时,请稍后重试。",
|
||
exportLimit: "技能包超出导出的大小、数量或路径限制。",
|
||
exportNotFound: "此自定义技能已不存在,请刷新技能列表。",
|
||
createSkill: "新建技能",
|
||
emptyTitle: "还没有技能",
|
||
emptyDescription:
|
||
"将你的 Agent Skill 文件夹放在 DeerFlow 根目录下的 `/skills/custom` 文件夹中。",
|
||
emptyButton: "创建你的第一个技能",
|
||
adminRequired: "需要管理员权限才能管理 Agent Skill。",
|
||
installAdminRequired: "需要管理员权限才能安装 Agent Skill。",
|
||
installFromFile: "安装 .skill",
|
||
installingArchive: "正在安装…",
|
||
invalidArchive: "请选择扩展名为 .skill 的文件。",
|
||
archiveTooLarge: "技能包大小不能超过 100 MiB。",
|
||
installFailed: "安装技能包失败。",
|
||
},
|
||
notification: {
|
||
title: "通知",
|
||
description:
|
||
"DeerFlow 只会在窗口不活跃时发送完成通知,特别适合长时间任务:你可以先去做别的事,完成后会收到提醒。",
|
||
requestPermission: "请求通知权限",
|
||
deniedHint:
|
||
"通知权限已被拒绝。可在浏览器的网站设置中重新开启,以接收完成提醒。",
|
||
testButton: "发送测试通知",
|
||
testTitle: "DeerFlow",
|
||
testBody: "这是一条测试通知。",
|
||
notSupported: "当前浏览器不支持通知功能。",
|
||
disableNotification: "关闭通知",
|
||
},
|
||
account: {
|
||
profileTitle: "个人信息",
|
||
email: "邮箱",
|
||
role: "角色",
|
||
ssoProvider: "SSO",
|
||
changePasswordTitle: "修改密码",
|
||
changePasswordDescription: "更新你的账号密码。",
|
||
ssoPasswordDescription: "密码由你的 SSO 提供商管理。",
|
||
ssoPasswordMessage:
|
||
"此账号通过 {provider} 登录,DeerFlow 无法在此管理或修改密码。请前往你的 SSO 提供商账号设置中进行操作。",
|
||
currentPassword: "当前密码",
|
||
newPassword: "新密码",
|
||
confirmNewPassword: "确认新密码",
|
||
passwordMismatch: "两次输入的新密码不一致",
|
||
passwordTooShort: "密码长度至少为 8 个字符",
|
||
passwordChangedSuccess: "密码修改成功",
|
||
networkError: "网络错误,请重试。",
|
||
updating: "更新中...",
|
||
updatePassword: "修改密码",
|
||
signOut: "退出登录",
|
||
},
|
||
acknowledge: {
|
||
emptyTitle: "致谢",
|
||
emptyDescription: "相关的致谢信息会展示在这里。",
|
||
},
|
||
},
|
||
login: {
|
||
signInTitle: "登录你的账号",
|
||
createAccountTitle: "创建新账号",
|
||
email: "邮箱",
|
||
emailPlaceholder: "you@example.com",
|
||
password: "密码",
|
||
passwordPlaceholder: "•••••••",
|
||
rememberMe: "保持登录",
|
||
rememberMeDescription:
|
||
"下次打开 DeerFlow 时尽量保持当前会话,仅保存邮箱,不保存密码。",
|
||
pleaseWait: "请稍候...",
|
||
signIn: "登录",
|
||
createAccount: "创建账号",
|
||
createAdminAccount: "创建管理员账号",
|
||
adminSetupRequiredTitle: "需要先完成管理员初始化",
|
||
adminSetupRequiredDescription:
|
||
"DeerFlow 需要先创建管理员账号,然后才能创建新的普通账号。",
|
||
orContinueWith: "或使用以下方式登录",
|
||
ssoHint: "如果你的账号使用单点登录(SSO),请改用下方的选项登录。",
|
||
continueWith: (provider: string) => `使用 ${provider} 登录`,
|
||
noAccountSignUp: "还没有账号?立即注册",
|
||
haveAccountSignIn: "已有账号?立即登录",
|
||
backToHome: "← 返回首页",
|
||
networkError: "网络错误,请重试。",
|
||
serviceUnavailableTitle: "服务暂时不可用",
|
||
serviceUnavailableDescription:
|
||
"网关响应时间过长。请确认服务正在运行,然后重试。",
|
||
retry: "重试",
|
||
authFailed: "身份验证失败。",
|
||
errors: {
|
||
sso_failed: "SSO 登录失败,请重试或使用邮箱登录。",
|
||
sso_cancelled: "SSO 登录已取消。",
|
||
sso_account_exists:
|
||
"该邮箱对应的账号已存在。请使用密码登录或联系管理员。",
|
||
sso_not_allowed: "你的账号不允许使用 SSO 登录。请联系管理员。",
|
||
},
|
||
},
|
||
};
|