ProjectDetail 概览加工程列表(moduleApi.listProjectModules 显所有 module 名/路径,只读,多工程可见,不只项目级 bind_directory) ProjectCard list padding 1×(原 0.7× 紧凑文字贴边,panel 14/16px) openai_helpers apply_openai_sse usage 诊断 tracing(确认 deepseek 报 cache/usage 否,定位 completion 0) i18n projectDetail.modulesLabel zh/en
77 lines
2.8 KiB
TypeScript
77 lines
2.8 KiB
TypeScript
export default {
|
|
projectDetail: {
|
|
// Header
|
|
backToList: '← Projects',
|
|
notFound: 'Project not found or deleted',
|
|
sync: '🔄 Sync',
|
|
delete: '🗑 Delete',
|
|
newTask: '+ New Task',
|
|
// Stage pipeline
|
|
stageIdea: '💡 Idea',
|
|
stageRequirement: '📋 Requirement',
|
|
stageCoding: '💻 Coding',
|
|
stageTesting: '🧪 Testing',
|
|
stageRelease: '🚀 Release',
|
|
// New task modal
|
|
newTaskTitle: 'New Task',
|
|
taskTitleLabel: 'Task Title',
|
|
taskTitlePlaceholder: 'Enter task title',
|
|
descLabel: 'Description',
|
|
descPlaceholder: 'Brief description',
|
|
branchLabel: 'Branch Name',
|
|
confirmCreate: 'Create',
|
|
// Project info panel
|
|
infoTitle: '📋 Project Info',
|
|
sourceIdea: 'Source Idea',
|
|
viewIdea: 'View idea details',
|
|
ideaDeleted: 'Original idea deleted',
|
|
createdAt: 'Created',
|
|
updatedAt: 'Updated',
|
|
description: 'Description',
|
|
projectStatus: 'Status',
|
|
// Task list panel
|
|
taskListTitle: '🔀 Tasks',
|
|
taskCount: '{n} tasks',
|
|
emptyTasks: 'No tasks yet',
|
|
// Workflow log panel
|
|
workflowLogTitle: '📋 Workflow Log',
|
|
runDemoWorkflow: '▶ Run Demo Workflow',
|
|
emptyWorkflowLog: 'Click "Run Demo Workflow" to view live logs',
|
|
// Approval dialog
|
|
approvalTitle: 'Manual Approval Required',
|
|
approvalHint: 'Choose an action:',
|
|
approvalLater: 'Later',
|
|
// Delete confirm
|
|
confirmDelete: 'Delete project "{name}"? It will be moved to trash and can be restored.',
|
|
// Project directory
|
|
codeDirLabel: 'Code Directory',
|
|
noDirBound: 'Not bound',
|
|
relocateDir: 'Relocate',
|
|
bindDir: 'Bind Directory',
|
|
dirStatusLabel: 'Directory Status',
|
|
dirChecking: 'Checking…',
|
|
dirExists: '✓ Directory exists',
|
|
dirMissing: '⚠ Directory moved, recommend relocate',
|
|
dirConflict: 'This directory is already bound to project "{name}"',
|
|
relocateConfirmRelocate: 'Relocate project directory to:\n{dir}\n\nTech stack will be re-detected. Confirm?',
|
|
relocateConfirmBind: 'Bind project directory to:\n{dir}\n\nTech stack will be re-detected. Confirm?',
|
|
relocateFailed: 'Relocate failed: {msg}',
|
|
// Import directory
|
|
importDir: 'Import Directory',
|
|
importConfirm: 'Import as new project?\n{dir}\n\nThe directory name will be used as project name, tech stack will be detected, and README first section will fill description.',
|
|
importSuccess: 'Imported project "{name}"',
|
|
importFailed: 'Import failed: {msg}',
|
|
// Approval actions
|
|
approvalConfirm: 'Confirm ({count})',
|
|
approvalCancel: 'Cancel',
|
|
approvalSelectAll: 'Select all',
|
|
approvalInvert: 'Invert',
|
|
// Tech stack
|
|
techStackLabel: 'Tech Stack',
|
|
// Module list (multi-module read-only display)
|
|
modulesLabel: 'Modules ({n})',
|
|
// Tab navigation
|
|
tabOverview: '📋 Overview',
|
|
},
|
|
}
|