Files
DevFlow/src/i18n/en/knowledge.ts
T
lxy f736f435bc 优化: 所有剩余UI/UX待办一批完成(持久化+AuditLog+解耦+total+原12大改+P2)
持久化(P1-c):新建 usePersistedRef composable,Tasks/AuditLog/ProjectDetail 等接入 localStorage

AuditLog(P1-d):后端 list_tool_executions 加 WHERE 筛选+返 {items,total,has_more},前端对接+长列折叠+筛选持久化

数据源解耦(P1-g):ProjectDetail projectTasks 按 project_id 独立加载 + ChatInput @项目联想独立加载(不读 store.tasks 当前页)

GitChanges(12a):后端 get_module_commits 加 git rev-list --count 返 total,前端显真实总数

原12大改:Dashboard 统计卡压底行(1)/Projects 列表卡片视图(2)/project_event 埋点排序(3)/TaskDetail 重设计(4)/IdeaDetail 重设计(5)/KnowledgeDetail 重设计(6)/界面持久化+侧栏Ctrl+B+审批数字键(7)/ProjectDetail 三栏改两栏(10)

P2打磨:文件浏览器(FileTree去重/FilePreview行号.md Diff/selectedFilePath归位)/settings反馈(假保存/端口校验)/AI会话(try-catch/scrollIntoView)/后端计数(move_queue事件/timeline total/workflow分页/import_batch分块)/杂项(TopBar/ConfirmDialog键盘/CIStatus i18n/ToolResultBody/ModuleNode/ApprovalDialog全选)
2026-08-02 13:11:06 +08:00

99 lines
3.1 KiB
TypeScript

export default {
knowledge: {
title: '📚 Knowledge Base',
add: '+ New Knowledge',
tab: {
library: 'Library',
// inbox = pending items (candidate + pending_review); library is published-only (F-260616-02 decision a)
inbox: 'Pending',
},
searchPlaceholder: 'Search title, tags, content...',
categoryAll: 'All',
emptyInbox: '✅ No pending items',
emptyLibrary: '📭 No matching knowledge',
edit: '✏️ Edit',
publish: 'Publish',
reject: 'Reject',
archive: 'Archive',
// ⑤ Operation feedback toast
savedToast: 'Saved',
publishedToast: 'Published to library',
rejectedToast: 'Rejected',
archivedToast: 'Archived',
createdToast: 'Created, moved to pending',
reuseCount: '🔄 Reused {n} times',
confidenceBadge: 'Confidence: {label}',
contentLabel: 'Content',
tagsLabel: 'Tags',
tagsNone: 'None',
tagsPlaceholder: 'comma separated',
traceTitle: '🔍 Provenance',
traceMethod: 'Origin',
traceSource: 'Source conversation',
traceTime: 'Created at',
originExtracted: '🤖 Extracted by AI',
originManual: '✍️ Manually added',
originUnknown: '—',
reasoningLabel: '🤖 AI Reasoning',
refTitle: '🔄 References ({n})',
refEmpty: 'Not referenced yet',
loadMore: 'Load more ({n} left)',
lifecycleTitle: '📅 Lifecycle',
detailEmptyHint: 'Select a knowledge on the left to view its full lifecycle',
createTitle: 'New Knowledge',
kindLabel: 'Type',
titleLabel: 'Title',
titlePlaceholder: 'Short title',
contentPlaceholder: 'Reusable content',
tagsFieldLabel: 'Tags (comma separated)',
tagsFieldPlaceholder: 'Go, concurrency, context',
confidenceLabel: 'Confidence',
confidenceNone: 'Not set',
create: 'Create',
timeline: {
extracted: 'AI extracted',
created: 'Manually added',
published: 'Approved',
archived: 'Archived',
enterReview: 'Entered review',
referenced: 'Referenced',
statusChanged: 'Status → {to}',
summarySource: 'Source: {title}',
summaryConv: 'Conversation: {title}',
},
status: {
candidate: 'Pending',
pending_review: 'Reviewing',
published: 'Published',
archived: 'Archived',
},
confidence: {
high: 'High',
medium: 'Medium',
low: 'Low',
},
kind: {
review_rule: 'Review Rule',
prompt_template: 'Prompt Template',
pitfall: 'Pitfall',
architecture_pattern: 'Architecture Pattern',
diagnosis: 'Diagnosis',
deployment_note: 'Deployment Note',
workflow_optimization: 'Workflow Optimization',
},
// Error fallbacks (user-visible via state.error)
err: {
loadFailed: 'Failed to load knowledge base',
loadInboxFailed: 'Failed to load inbox',
searchFailed: 'Search failed',
createFailed: 'Failed to create knowledge',
updateStatusFailed: 'Failed to update status',
archiveFailed: 'Failed to archive',
saveFailed: 'Failed to save',
loadConfigFailed: 'Failed to load config',
saveConfigFailed: 'Failed to save config',
extractFailed: 'Extraction failed',
},
},
}