Files
DevFlow/src/i18n/en/aiTool.ts
绝尘 db129fd78f 修复: AI 消息卡片友好展示
- update_task 卡片后端补返 title + 前端 title 优先 + i18n 文案对齐(UX-260619-04,防裸 UUID id 辨识度低)
- anthropic_compat 合并连续 user 块,修 GLM 1214 协议交替违规(B-260619-03)
2026-06-19 18:58:49 +08:00

167 lines
7.1 KiB
TypeScript

export default {
aiTool: {
running: 'Running…',
approve: 'Approve',
reject: 'Reject',
approveAll: 'Approve All ({n})',
rejectAll: 'Reject All',
rejectedHint: 'User rejected this action',
// B-260616-12: tool execution slow hint (frontend fallback, no backend cancel IPC)
executionSlow: 'Tool "{name}" is taking longer than expected, please wait…',
// UX-260616-01: tool execution failure marker (AR-6 keeps status=completed, red to distinguish from success)
executionFailed: 'Failed',
executionFailedHint: 'Tool execution failed, see details below',
// Singular expand/collapse (ToolCard single-card content, command output toggle; expandAll/collapseAll are for ToolCardList global multi-group)
expand: 'Expand',
collapse: 'Collapse',
expandAll: 'Expand all',
collapseAll: 'Collapse all',
written: 'written',
items: 'items',
lines: 'lines',
// UX-260618-08/11: truncation hints (read_file paged truncation / list_directory 1000-entry cap)
linesTruncated: '{shown}/{total} lines, truncated',
dirTruncated: 'Truncated, first {n} items only',
readPrefix: 'Read',
readFallback: 'Read File',
dirPrefix: 'Dir',
dirFallback: 'List Directory',
writePrefix: 'Write',
writeFallback: 'Write File',
// CRUD tool display names (delete/restore/purge/update_project resolve project name by id; fallback when no id or unresolved)
deletePrefix: 'Delete Project',
deleteFallback: 'Delete Project',
restorePrefix: 'Restore Project',
restoreFallback: 'Restore Project from Trash',
purgePrefix: 'Purge Project',
purgeFallback: 'Purge Project',
updatePrefix: 'Update Project',
updateFallback: 'Update Project',
createTask: 'Create Task',
createProject: 'Create Project',
taskCount: '{n} tasks',
projectCount: '{n} projects',
ideaCount: '{n} ideas',
// UX-260618-10/12: list_trash collapsed header count + paged has_more hint (backend returns {items,total,has_more} object)
trashCount: '{n} in trash',
listHasMore: '({n} shown, more available)',
createdWithName: 'Created: {name}',
created: 'Created',
updatedField: 'Updated {field}',
updated: 'Updated',
deleted: 'Deleted',
deleteIneffective: 'Delete ineffective',
restored: 'Restored',
restoreIneffective: 'Restore ineffective (not in trash)',
purged: 'Purged',
purgeIneffective: 'Purge ineffective',
workflowHint: 'Run it on the workflow page',
// UX-260618-05: run_workflow tool_result shows execution_id (workflowHint misleading — workflow already triggered; old key kept for other refs)
workflowTriggered: 'Task {id} triggered workflow (advancing to {status}, execution {exec})',
workflowTriggeredShort: 'Execution {exec}',
// UX-260616-04: formatToolResult covers all tools with human-readable summaries (missing keys)
updatedTaskField: 'Task「{title}」 updated field {field}',
advancedTask: 'Task「{title}」 advanced to {status}',
// UX-260618-09: advance_task return-round accumulation (shown only when >0); UX-260618-14: {title} = task name (TaskRecord), fallback id
advancedTaskWithRounds: 'Task「{title}」 advanced to {status} (returned {n} times)',
commandOk: 'Command succeeded ({ms} ms)',
commandFailed: 'Command failed (exit code {code})',
commandOutputLines: '{n} lines of output',
patchedFile: 'Patched {path} ({diff} bytes)',
// UX-260618-06: patch_file multi-match hint + size_diff unit
patchedMatches: 'matched {n} places',
bytesUnit: 'bytes',
patchedNoChange: '{path} no change',
appendedTo: 'Appended {bytes} to {path}',
renamedFile: 'Renamed {from} → {to}',
// UX-260618-12: rename_file bytes/cross-volume + write_file overwrite/encoding hints
renamedWithBytes: 'Renamed {from} → {to} ({bytes})',
renamedCrossVolume: 'Moved {from} → {to} (cross-volume, {bytes})',
writeOverwrite: 'overwrote {old} → {neww}',
encodingLabel: 'encoding: {enc}',
// http_request result summary (method + status + elapsed; body in expanded view)
httpOk: '{method} {status} OK ({ms} ms)',
httpFailed: '{method} {status} failed',
httpTruncated: 'Response truncated ({bytes}), see details',
httpRequestFallback: 'HTTP Request',
foundN: 'Found {n}',
boundDir: 'Bound directory "{path}" stack: {stack}',
deleteFilePermanent: 'Permanently deleted {path}',
// UX-260618-07: soft-delete adds backup_path (trash filename so user knows where to recover from)
deleteFileSoft: 'Soft-deleted {path} (backed up, recover from: {backup_path})',
fileInfoSize: '{path} {size}',
// UX-260618-12: file_info modified time (epoch_ms → client toLocaleString)
fileInfoModified: ' · modified {time}',
fileInfoLines: ' · {n} lines',
fileInfoBinary: ' · binary',
fileInfoDir: ' · directory',
fileInfoMissing: '{path} does not exist',
projectLabel: '"{name}"',
projectIdNotFound: '(project not found, id={id})',
// UX-260618-14: advance_task/run_workflow task_id → task title (store.tasks lookup; fallback id)
taskLabel: '"{name}"',
taskIdNotFound: '(task not in current list, id={id})',
// AE-2025-05: High-risk approval second confirm (ask once more before approve; misclick cancellable)
confirmHighDelete: 'Permanently delete? This action cannot be undone',
confirmHighExec: 'Run this command?',
confirmHighGeneric: 'Proceed with this high-risk action?',
// Tool result detail format (plain-text result + approval placeholder appends arg summary)
resultDetail: '{raw} ({detail})',
// UX-260617-17: ToolCardList group header (shown when 2+ same-name tools; was hardcoded zh)
toolGroup: {
readFile: 'Read File',
writeFile: 'Write File',
listDirectory: 'List Directory',
createTask: 'Create Task',
createProject: 'Create Project',
createIdea: 'Create Idea',
listTasks: 'List Tasks',
listProjects: 'List Projects',
listIdeas: 'List Ideas',
deleteProject: 'Delete Project',
restoreProject: 'Restore Project',
purgeProject: 'Purge Project',
updateProject: 'Update Project',
runWorkflow: 'Run Workflow',
httpRequest: 'HTTP Request',
},
// UX-260617-14: approval loading fallback timeout notice (no backend ack, card still pending_approval → reset + prompt)
approveLoadingTimeout: 'Approval response timed out, please retry or check the backend',
// UX-260617-18: tool failure detection copy (regex narrowed to line-anchored err_msg prefix)
// (reuse executionFailed/executionFailedHint, no new key)
// http_request High-risk confirm: external network call, data may leak via URL/body
confirmHighHttp: 'Send this HTTP request to an external server?',
// Approval argument key labels
argLabel: {
id: 'ID',
projectId: 'Project ID',
name: 'Name',
title: 'Title',
description: 'Description',
field: 'Field',
value: 'Value',
path: 'Path',
priority: 'Priority',
tags: 'Tags',
source: 'Source',
method: 'Method',
url: 'URL',
body: 'Body',
headers: 'Headers',
timeout_secs: 'Timeout (s)',
parse: 'Parse',
},
},
}