后端: - 工作流推进链(D-03):advance_task/状态机/闸门走 df-nodes Node trait,conditions 条件引擎扩展 - 想法评估闭环:启发式评分+对抗评估,df-ideas/scoring + df-storage/idea_eval_repo + idea 前端打通 - 全局事件数据总线:df-ai/context+context_helpers+augmentation 跨模块解耦 - AI planner/plan_hint/intent:aichat B 路线并行多轮基础 - patch_file 加固(TD-03/04):读改写整体锁防 lost update,expected_hash 合约闭环 - 压缩超时兜底(F-15 卡死根治) - F-09 多会话并发:LlmConcurrency per-conv + streamingGuard 前端守护 + verify 脚本 - 知识注入 DRY/skills/audit 扩展 清理: - aichat 技术债(误报 allow/死导入/过时注释 30 项) - URGENT.md 删除(11 项加急全解决/迁 todo) - 文档整理(todo/待决策/待审查/ARCHITECTURE/INDEX + 总线/技术债审查新文档)
196 lines
8.4 KiB
TypeScript
196 lines
8.4 KiB
TypeScript
export default {
|
||
aiChat: {
|
||
// ── 对话侧栏 ──
|
||
sidebarTitle: '对话',
|
||
newConversation: '新对话',
|
||
doubleClickToRename: '双击重命名',
|
||
generating: '生成中…',
|
||
archive: '归档',
|
||
unarchive: '取消归档',
|
||
pinConversation: '置顶',
|
||
unpinConversation: '取消置顶',
|
||
moreActions: '更多操作',
|
||
archived: '已归档',
|
||
archivedCount: '已归档 ({n})',
|
||
emptyConversation: '暂无对话',
|
||
// UX-06 §3.1:对话搜索(实时过滤标题,Ctrl+K 聚焦)
|
||
searchPlaceholder: '搜索对话…',
|
||
searchEmpty: '无匹配对话',
|
||
searchShortcutHint: 'Ctrl+K',
|
||
|
||
// ── 时间分组(侧栏) ──
|
||
today: '今天',
|
||
yesterday: '昨天',
|
||
earlier: '更早',
|
||
groupEmpty: '暂无',
|
||
|
||
// ── Header 按钮 ──
|
||
conversationList: '对话列表',
|
||
maximize: '最大化',
|
||
pendingApprovalCount: '{n} 项待审批',
|
||
pendingApprovalHint: '点击跳转到第一个待审批项',
|
||
restoreSidebar: '还原侧栏',
|
||
sidebarResizeHint: '拖拽调整侧栏宽度',
|
||
detachWindow: '分离窗口',
|
||
closePanel: '关闭面板',
|
||
dockRight: '吸附到主窗口右侧',
|
||
undock: '取消吸附',
|
||
pinOnTop: '置顶',
|
||
unpin: '取消置顶',
|
||
closeWindow: '关闭窗口',
|
||
|
||
// ── Provider 状态 ──
|
||
clickToSwitchProvider: '点击切换 Provider',
|
||
providerNotConfigured: '未配置 AI 提供商,请在设置中添加',
|
||
notConfigured: '未配置',
|
||
|
||
// ── F-01 阶段6: 模型选择器(自动/指定 toggle + 下拉) ──
|
||
autoMode: '自动',
|
||
specifyMode: '指定',
|
||
autoModeHint: '自动模式:路由器按场景自动选最优模型',
|
||
specifyModeHint: '指定模式:使用下拉所选模型覆盖路由(仅主对话)',
|
||
selectModel: '选择模型',
|
||
noModels: '无可用模型,请在设置中拉取',
|
||
|
||
// ── 空状态(UX-2025-20:示例问题卡片 + 无 provider 引导) ──
|
||
emptyNoProvider: '未配置 AI 提供商',
|
||
emptyNoProviderHint: '请在设置中添加 Provider 后开始对话',
|
||
emptyTitle: '与 AI 助手对话',
|
||
emptyHint: '可以说"帮我创建一个项目"或"列出所有任务"',
|
||
// 示例问题卡片:点击自动填入并发送(4 条,DevFlow 场景相关)
|
||
examplePrompt1: '分析这个项目的依赖关系',
|
||
examplePrompt2: '帮我写一个工作流节点',
|
||
examplePrompt3: '列出当前所有任务',
|
||
examplePrompt4: '生成一个项目灵感',
|
||
goToSettings: '去设置',
|
||
goToSettingsHint: '分离窗口无法直接打开设置,请在主窗口的设置页配置 AI 提供商',
|
||
|
||
// ── Provider 切换反馈(UX-2025-14) ──
|
||
providerSwitched: '已切换到 {model}',
|
||
providerSwitchHint: '当前模型:{model}',
|
||
|
||
// ── 回到底部 ──
|
||
backToBottom: '回到底部',
|
||
|
||
// ── 待发送队列 ──
|
||
queueTitle: '待发送 {n}/10',
|
||
clearQueue: '清空',
|
||
// UX-260616-06/07:队列项编辑 + 立即发送
|
||
queueEdit: '编辑',
|
||
queueSave: '保存',
|
||
queueCancel: '取消',
|
||
queueSendNow: '立即发送',
|
||
|
||
// ── 技能 ──
|
||
clearSkill: '取消技能',
|
||
placeholderWithSkill: '已选技能,输入参数后回车',
|
||
placeholderDefault: "输入消息...(/ 触发技能,{'@'} 引用实体)",
|
||
skillNoMatch: '无匹配技能',
|
||
skillNotLoaded: '未读取到本机技能',
|
||
|
||
// ── UX-10: @ 实体引用(@ 触发 popover,选中插入 [类型:名] 标记) ──
|
||
mentionHint: "{'@'} 引用项目/任务",
|
||
mentionGroupProject: '项目',
|
||
mentionGroupTask: '任务',
|
||
mentionGroupIdea: '灵感',
|
||
mentionNoMatch: '无匹配实体',
|
||
mentionEmpty: '暂无可引用的项目/任务',
|
||
|
||
// ── 发送 ──
|
||
stopGenerating: '停止生成',
|
||
|
||
// ── 输入提示 ──
|
||
inputHint: 'Enter 发送 · Shift+Enter 换行',
|
||
|
||
// ── F-260614-05 Phase 2b: 图片输入(粘贴/拖拽) ──
|
||
// 粘贴/拖拽图片到输入框,发送时构造多模态 ContentPart[] 渲染到用户气泡
|
||
removeImage: '移除图片',
|
||
imagePreviewAlt: '待发送图片',
|
||
imageTooLarge: '图片过大(上限 10MB),已跳过',
|
||
imageLimit: '最多 {n} 张图片,已忽略多余的',
|
||
imageReadFailed: '图片读取失败',
|
||
|
||
// ── 确认弹层 ──
|
||
confirmDeleteConversation: '确定删除对话「{title}」?该操作不可恢复。',
|
||
// UX-260617-24:删除当前活跃对话的醒目提示(活跃对话误删会清空当前视图,影响更大)
|
||
confirmDeleteActiveConversation: '「{title}」是当前正在查看的对话,删除后将清空当前视图且不可恢复,确定继续?',
|
||
clearChat: '清空',
|
||
confirmClearChat: '确定清空当前对话的所有消息?此操作不可恢复。',
|
||
toastSendFail: '发送失败:{msg}',
|
||
|
||
// ── 消息拷贝(F-260615-13) ──
|
||
copyMsg: '复制消息',
|
||
copied: '已复制',
|
||
copyFailed: '复制失败',
|
||
|
||
// ── 消息操作栏(UX-02) ──
|
||
regenerate: '重新生成',
|
||
regenerateFailed: '重新生成失败:{msg}',
|
||
regenerateUnavailable: '没有可重新生成的回复',
|
||
|
||
// ── UX-09: 编辑末条 user 消息并重新生成 ──
|
||
editMessage: '编辑',
|
||
editMessageFailed: '编辑失败:{msg}',
|
||
editNotLastUser: '只能编辑最后一条用户消息',
|
||
placeholderEditing: '编辑消息后回车重新生成(Esc 取消)',
|
||
|
||
// ── 错误气泡操作入口(UX-03 / UX-260616-01) ──
|
||
retry: '重试',
|
||
goToSettingsAction: '去设置',
|
||
|
||
// ── F-260616-03: 达 max_iterations 暂停态操作卡 ──
|
||
maxRoundsReached: '已达最大轮次,是否继续?',
|
||
maxRoundsHint: '继续将再跑一轮上限;停止则按当前结果收尾',
|
||
continueLoop: '继续',
|
||
stopLoop: '停止',
|
||
continueLoopFailed: '继续失败:{msg}',
|
||
stopLoopFailed: '停止失败:{msg}',
|
||
|
||
// ── F-260619-03 Phase B: 路径授权弹窗(LLM 访问白名单外目录挂起) ──
|
||
dirAuthRequired: '需要路径授权',
|
||
dirAuthHint: '{tool} 想访问:{path}',
|
||
dirAuthOnce: '仅本次',
|
||
dirAuthAlways: '未来都允许',
|
||
dirAuthDeny: '拒绝',
|
||
dirAuthFailed: '授权失败:{msg}',
|
||
|
||
// ── Input Augmentation 层: mention/skill 注入反馈 ──
|
||
// search_files 盲搜被白名单兜底拒绝(不应弹授权窗,直接友好提示用户改用 @引用或绝对路径)
|
||
searchFilesBlocked: 'search_files 仅在已授权目录可用,请用 @[项目] 引用或提供绝对路径',
|
||
// /技能 热重载(ai_reload_skills IPC)成功后提示
|
||
skillReloaded: '技能已重新加载',
|
||
// @引用 实体 resolve 失败(id 指向的项目/任务/灵感/技能已被删除或不可用)
|
||
mentionUnresolved: '引用的 {kind} 已删除或不可用',
|
||
// 同名技能冲突(scan_skills 返回 conflicts,前端提示,注入按 skills>commands>plugins 优先级取首份)
|
||
skillConflict: '技能 {name} 存在多份定义,已采用 skills 优先级',
|
||
|
||
|
||
// ── F-15 阶段2: 手动上下文管理(清空 / 压缩) ──
|
||
// 按钮(Header 操作区:垃圾桶 + 压缩图标)
|
||
clearContext: '清空上下文',
|
||
compressContext: '压缩上下文',
|
||
// 二次确认(清空不可逆语义,防误触;历史归档保留不删)
|
||
// 标题「清空上下文」融入正文首句;强调不可逆 + 归档分段 + AI 不再看到历史
|
||
clearContextConfirm: '清空上下文?此操作不可逆,当前对话上下文将被归档为分段(AI 将不再看到这些历史消息)。新对话不受影响。',
|
||
// 二次确认弹窗的危险按钮文案(ConfirmDialog dangerLabel);不传则回退 common.confirm
|
||
clearContextDangerLabel: '清空',
|
||
// 折叠分隔条(连续同 status 合并一条;{n}=合并的消息条数)
|
||
contextArchived: '已归档 {n} 条消息',
|
||
compressed: '已压缩上下文',
|
||
compressing: '压缩中…',
|
||
clearSuccess: '上下文已清空',
|
||
compressSuccess: '上下文已压缩',
|
||
compressError: '压缩失败:{msg}',
|
||
clearError: '清空失败:{msg}',
|
||
// 折叠条展开 / 收起
|
||
expand: '展开',
|
||
collapse: '收起',
|
||
// 压缩摘要块标题(展开后 system 摘要消息前的标签)
|
||
compressedSummaryLabel: '上下文摘要',
|
||
|
||
// ── AE-2025-04 会话级信任(Session Trust) ──
|
||
// 自动放行 toast(同会话已批准过同类操作:同工具+同目录,轻量 info 非审批气泡)
|
||
autoApprovedToast: '已自动放行: {tool}({dir})',
|
||
},
|
||
}
|