mirror of
https://github.com/catlog22/Claude-Code-Workflow.git
synced 2026-02-13 02:41:50 +08:00
Add E2E tests for internationalization across multiple pages
- Implemented navigation.spec.ts to test language switching and translation of navigation elements. - Created sessions-page.spec.ts to verify translations on the sessions page, including headers, status badges, and date formatting. - Developed settings-page.spec.ts to ensure settings page content is translated and persists across sessions. - Added skills-page.spec.ts to validate translations for skill categories, action buttons, and empty states.
This commit is contained in:
127
ccw/frontend/src/locales/en/cli-manager.json
Normal file
127
ccw/frontend/src/locales/en/cli-manager.json
Normal file
@@ -0,0 +1,127 @@
|
||||
{
|
||||
"cliEndpoints": {
|
||||
"title": "CLI Endpoints",
|
||||
"description": "Manage LiteLLM endpoints, custom CLI endpoints, and CLI wrapper configurations",
|
||||
"type": {
|
||||
"litellm": "LiteLLM",
|
||||
"custom": "Custom",
|
||||
"wrapper": "Wrapper"
|
||||
},
|
||||
"status": {
|
||||
"enabled": "Enabled",
|
||||
"disabled": "Disabled"
|
||||
},
|
||||
"stats": {
|
||||
"total": "Total Endpoints",
|
||||
"enabled": "Enabled"
|
||||
},
|
||||
"id": "ID",
|
||||
"config": "Configuration",
|
||||
"filters": {
|
||||
"type": "Type",
|
||||
"allTypes": "All Types",
|
||||
"searchPlaceholder": "Search endpoints by name or ID..."
|
||||
},
|
||||
"actions": {
|
||||
"add": "Add Endpoint",
|
||||
"edit": "Edit Endpoint",
|
||||
"delete": "Delete Endpoint",
|
||||
"toggle": "Toggle Endpoint"
|
||||
},
|
||||
"deleteConfirm": "Are you sure you want to delete the endpoint \"{id}\"?",
|
||||
"emptyState": {
|
||||
"title": "No CLI Endpoints Found",
|
||||
"message": "Add a CLI endpoint to configure custom API endpoints and wrappers."
|
||||
}
|
||||
},
|
||||
"cliInstallations": {
|
||||
"title": "CLI Installations",
|
||||
"description": "Manage CCW CLI tool installations, upgrades, and removals",
|
||||
"status": {
|
||||
"active": "Active",
|
||||
"inactive": "Inactive",
|
||||
"error": "Error"
|
||||
},
|
||||
"stats": {
|
||||
"total": "Total Tools",
|
||||
"installed": "Installed",
|
||||
"available": "Available"
|
||||
},
|
||||
"installed": "Installed",
|
||||
"lastChecked": "Last Checked",
|
||||
"filters": {
|
||||
"status": "Status",
|
||||
"all": "All",
|
||||
"installed": "Installed",
|
||||
"notInstalled": "Not Installed",
|
||||
"searchPlaceholder": "Search tools by name or version..."
|
||||
},
|
||||
"actions": {
|
||||
"install": "Install",
|
||||
"uninstall": "Uninstall",
|
||||
"upgrade": "Upgrade"
|
||||
},
|
||||
"uninstallConfirm": "Are you sure you want to uninstall \"{name}\"?",
|
||||
"emptyState": {
|
||||
"title": "No CLI Tools Found",
|
||||
"message": "No CLI tools are available for installation at this time."
|
||||
}
|
||||
},
|
||||
"cliHooks": {
|
||||
"title": "Git Hooks",
|
||||
"description": "Manage Git hooks for automated workflows",
|
||||
"trigger": {
|
||||
"pre-commit": "Pre-commit",
|
||||
"post-commit": "Post-commit",
|
||||
"pre-push": "Pre-push",
|
||||
"custom": "Custom"
|
||||
},
|
||||
"stats": {
|
||||
"total": "Total Hooks",
|
||||
"enabled": "Enabled"
|
||||
},
|
||||
"filters": {
|
||||
"trigger": "Trigger",
|
||||
"allTriggers": "All Triggers",
|
||||
"searchPlaceholder": "Search hooks by name..."
|
||||
},
|
||||
"actions": {
|
||||
"add": "Add Hook",
|
||||
"edit": "Edit Hook",
|
||||
"delete": "Delete Hook",
|
||||
"toggle": "Toggle Hook"
|
||||
},
|
||||
"emptyState": {
|
||||
"title": "No Git Hooks Found",
|
||||
"message": "Add a Git hook to automate tasks during Git workflows."
|
||||
}
|
||||
},
|
||||
"cliRules": {
|
||||
"title": "Rules",
|
||||
"description": "Manage code quality rules and linting configurations",
|
||||
"severity": {
|
||||
"error": "Error",
|
||||
"warning": "Warning",
|
||||
"info": "Info"
|
||||
},
|
||||
"stats": {
|
||||
"total": "Total Rules",
|
||||
"enabled": "Enabled"
|
||||
},
|
||||
"filters": {
|
||||
"severity": "Severity",
|
||||
"allSeverities": "All Severities",
|
||||
"searchPlaceholder": "Search rules by name..."
|
||||
},
|
||||
"actions": {
|
||||
"add": "Add Rule",
|
||||
"edit": "Edit Rule",
|
||||
"delete": "Delete Rule",
|
||||
"toggle": "Toggle Rule"
|
||||
},
|
||||
"emptyState": {
|
||||
"title": "No Rules Found",
|
||||
"message": "Add a rule to enforce code quality standards."
|
||||
}
|
||||
}
|
||||
}
|
||||
43
ccw/frontend/src/locales/en/commands.json
Normal file
43
ccw/frontend/src/locales/en/commands.json
Normal file
@@ -0,0 +1,43 @@
|
||||
{
|
||||
"title": "Commands Manager",
|
||||
"description": "Manage custom slash commands for Claude Code",
|
||||
"actions": {
|
||||
"create": "New Command",
|
||||
"edit": "Edit Command",
|
||||
"delete": "Delete Command",
|
||||
"refresh": "Refresh",
|
||||
"expandAll": "Expand All",
|
||||
"collapseAll": "Collapse All",
|
||||
"copy": "Copy"
|
||||
},
|
||||
"source": {
|
||||
"builtin": "Built-in",
|
||||
"custom": "Custom"
|
||||
},
|
||||
"filters": {
|
||||
"allCategories": "All Categories",
|
||||
"allSources": "All Sources",
|
||||
"category": "Category",
|
||||
"source": "Source",
|
||||
"searchPlaceholder": "Search commands by name, description, or alias..."
|
||||
},
|
||||
"card": {
|
||||
"name": "Name",
|
||||
"description": "Description",
|
||||
"usage": "Usage",
|
||||
"examples": "Examples",
|
||||
"aliases": "Aliases",
|
||||
"triggers": "Triggers",
|
||||
"noDescription": "No description"
|
||||
},
|
||||
"emptyState": {
|
||||
"title": "No Commands Found",
|
||||
"message": "Try adjusting your search or filters."
|
||||
},
|
||||
"table": {
|
||||
"name": "Name",
|
||||
"description": "Description",
|
||||
"scope": "Scope",
|
||||
"status": "Status"
|
||||
}
|
||||
}
|
||||
180
ccw/frontend/src/locales/en/common.json
Normal file
180
ccw/frontend/src/locales/en/common.json
Normal file
@@ -0,0 +1,180 @@
|
||||
{
|
||||
"aria": {
|
||||
"toggleNavigation": "Toggle navigation menu",
|
||||
"refreshWorkspace": "Refresh workspace",
|
||||
"switchToLightMode": "Switch to light mode",
|
||||
"switchToDarkMode": "Switch to dark mode",
|
||||
"userMenu": "User menu",
|
||||
"actions": "Actions"
|
||||
},
|
||||
"actions": {
|
||||
"save": "Save",
|
||||
"cancel": "Cancel",
|
||||
"delete": "Delete",
|
||||
"edit": "Edit",
|
||||
"create": "Create",
|
||||
"refresh": "Refresh",
|
||||
"loading": "Loading...",
|
||||
"retry": "Retry",
|
||||
"search": "Search...",
|
||||
"searchIssues": "Search issues...",
|
||||
"searchLoops": "Search loops...",
|
||||
"clear": "Clear",
|
||||
"close": "Close",
|
||||
"copy": "Copy",
|
||||
"view": "View",
|
||||
"viewAll": "View All",
|
||||
"update": "Update",
|
||||
"add": "Add",
|
||||
"new": "New",
|
||||
"remove": "Remove",
|
||||
"confirm": "Confirm",
|
||||
"back": "Back",
|
||||
"next": "Next",
|
||||
"previous": "Previous",
|
||||
"submit": "Submit",
|
||||
"reset": "Reset",
|
||||
"resetDesc": "Reset all user preferences to their default values. This cannot be undone.",
|
||||
"resetConfirm": "Reset all settings to defaults?",
|
||||
"resetToDefaults": "Reset to Defaults",
|
||||
"enable": "Enable",
|
||||
"disable": "Disable",
|
||||
"expand": "Expand All",
|
||||
"expandAll": "Expand All",
|
||||
"collapse": "Collapse All",
|
||||
"collapseAll": "Collapse All",
|
||||
"filter": "Filter",
|
||||
"filters": "Filters",
|
||||
"clearFilters": "Clear filters",
|
||||
"clearAll": "Clear all",
|
||||
"select": "Select",
|
||||
"selectAll": "Select All",
|
||||
"deselectAll": "Deselect All"
|
||||
},
|
||||
"status": {
|
||||
"active": "Active",
|
||||
"inactive": "Inactive",
|
||||
"pending": "Pending",
|
||||
"inProgress": "In Progress",
|
||||
"completed": "Completed",
|
||||
"failed": "Failed",
|
||||
"blocked": "Blocked",
|
||||
"cancelled": "Cancelled",
|
||||
"paused": "Paused",
|
||||
"archived": "Archived",
|
||||
"unknown": "Unknown",
|
||||
"draft": "Draft",
|
||||
"published": "Published",
|
||||
"creating": "Creating...",
|
||||
"deleting": "Deleting...",
|
||||
"label": "Status",
|
||||
"openIssues": "Open Issues"
|
||||
},
|
||||
"priority": {
|
||||
"low": "Low",
|
||||
"medium": "Medium",
|
||||
"high": "High",
|
||||
"critical": "Critical",
|
||||
"label": "Priority"
|
||||
},
|
||||
"time": {
|
||||
"seconds": "seconds",
|
||||
"minutes": "minutes",
|
||||
"hours": "hours",
|
||||
"days": "days",
|
||||
"weeks": "weeks",
|
||||
"months": "months",
|
||||
"years": "years",
|
||||
"ago": "ago",
|
||||
"justNow": "just now"
|
||||
},
|
||||
"buttons": {
|
||||
"new": "New",
|
||||
"create": "Create",
|
||||
"edit": "Edit",
|
||||
"delete": "Delete",
|
||||
"save": "Save",
|
||||
"cancel": "Cancel",
|
||||
"confirm": "Confirm",
|
||||
"retry": "Retry",
|
||||
"refresh": "Refresh",
|
||||
"close": "Close",
|
||||
"back": "Back",
|
||||
"next": "Next",
|
||||
"submit": "Submit"
|
||||
},
|
||||
"form": {
|
||||
"required": "Required",
|
||||
"optional": "optional",
|
||||
"placeholder": "Enter...",
|
||||
"search": "Search...",
|
||||
"select": "Select...",
|
||||
"noResults": "No results found",
|
||||
"loading": "Loading...",
|
||||
"sessionId": "Session ID",
|
||||
"title": "Title",
|
||||
"description": "Description",
|
||||
"sessionIdPlaceholder": "e.g., WFS-feature-auth",
|
||||
"titlePlaceholder": "e.g., Authentication System",
|
||||
"descriptionPlaceholder": "Brief description of the session"
|
||||
},
|
||||
"emptyState": {
|
||||
"noData": "No data found",
|
||||
"noResults": "No results found",
|
||||
"noItems": "No items",
|
||||
"createFirst": "Create your first item to get started",
|
||||
"searchEmpty": "Try adjusting your search or filters",
|
||||
"filterEmpty": "No items match your current filters"
|
||||
},
|
||||
"errors": {
|
||||
"generic": "An error occurred",
|
||||
"network": "Network error. Please check your connection.",
|
||||
"timeout": "Request timed out. Please try again.",
|
||||
"notFound": "Resource not found",
|
||||
"unauthorized": "Unauthorized access",
|
||||
"forbidden": "Access forbidden",
|
||||
"validation": "Validation error",
|
||||
"server": "Server error. Please try again later.",
|
||||
"loadingFailed": "Failed to load data",
|
||||
"loadFailed": "Failed to load data",
|
||||
"saveFailed": "Failed to save",
|
||||
"deleteFailed": "Failed to delete",
|
||||
"updateFailed": "Failed to update",
|
||||
"unknownError": "An unexpected error occurred"
|
||||
},
|
||||
"success": {
|
||||
"saved": "Saved successfully",
|
||||
"created": "Created successfully",
|
||||
"updated": "Updated successfully",
|
||||
"deleted": "Deleted successfully",
|
||||
"copied": "Copied to clipboard"
|
||||
},
|
||||
"messages": {
|
||||
"confirmDelete": "Are you sure you want to delete this item?",
|
||||
"confirmArchive": "Are you sure you want to archive this item?",
|
||||
"unsavedChanges": "You have unsaved changes. Are you sure you want to leave?",
|
||||
"noPermission": "You don't have permission to perform this action"
|
||||
},
|
||||
"stats": {
|
||||
"todayActivity": "Today's Activity",
|
||||
"totalCommands": "Total Commands",
|
||||
"totalSkills": "Total Skills",
|
||||
"categories": "Categories"
|
||||
},
|
||||
"dialog": {
|
||||
"createSession": "Create New Session",
|
||||
"createSessionDesc": "Create a new workflow session to track your development tasks.",
|
||||
"deleteSession": "Delete Session",
|
||||
"deleteConfirm": "Are you sure you want to delete this session? This action cannot be undone."
|
||||
},
|
||||
"help": {
|
||||
"title": "Help & Documentation",
|
||||
"description": "Learn how to use CCW Dashboard and get the most out of your workflows",
|
||||
"support": {
|
||||
"title": "Need more help?",
|
||||
"description": "Check the project documentation or reach out for support.",
|
||||
"documentation": "Documentation",
|
||||
"tutorials": "Tutorials"
|
||||
}
|
||||
}
|
||||
}
|
||||
44
ccw/frontend/src/locales/en/fix-session.json
Normal file
44
ccw/frontend/src/locales/en/fix-session.json
Normal file
@@ -0,0 +1,44 @@
|
||||
{
|
||||
"progress": {
|
||||
"title": "Fix Progress"
|
||||
},
|
||||
"tasks": {
|
||||
"title": "Fix Tasks"
|
||||
},
|
||||
"stats": {
|
||||
"total": "Total",
|
||||
"fixed": "Fixed",
|
||||
"failed": "Failed",
|
||||
"pending": "Pending"
|
||||
},
|
||||
"status": {
|
||||
"fixed": "Fixed",
|
||||
"failed": "Failed",
|
||||
"inProgress": "In Progress",
|
||||
"pending": "Pending"
|
||||
},
|
||||
"filter": {
|
||||
"all": "All",
|
||||
"pending": "Pending",
|
||||
"inProgress": "In Progress",
|
||||
"fixed": "Fixed",
|
||||
"failed": "Failed"
|
||||
},
|
||||
"task": {
|
||||
"untitled": "Untitled Task",
|
||||
"attempts": "{count} attempts"
|
||||
},
|
||||
"info": {
|
||||
"created": "Created",
|
||||
"updated": "Updated",
|
||||
"description": "Description"
|
||||
},
|
||||
"notFound": {
|
||||
"title": "Session Not Found",
|
||||
"message": "The fix session you're looking for doesn't exist or has been deleted."
|
||||
},
|
||||
"empty": {
|
||||
"title": "No Tasks Found",
|
||||
"message": "No fix tasks match the current filter."
|
||||
}
|
||||
}
|
||||
29
ccw/frontend/src/locales/en/history.json
Normal file
29
ccw/frontend/src/locales/en/history.json
Normal file
@@ -0,0 +1,29 @@
|
||||
{
|
||||
"title": "CLI Execution History",
|
||||
"description": "View and manage your CLI execution history",
|
||||
"searchPlaceholder": "Search executions...",
|
||||
"filterAllTools": "All Tools",
|
||||
"deleteOptions": "Delete Options",
|
||||
"deleteBy": "Delete By Tool",
|
||||
"deleteAllTool": "Delete All {tool}",
|
||||
"deleteAll": "Delete All History",
|
||||
"actions": {
|
||||
"view": "View Details",
|
||||
"delete": "Delete",
|
||||
"copyId": "Copy ID",
|
||||
"copied": "Copied!"
|
||||
},
|
||||
"dialog": {
|
||||
"deleteTitle": "Confirm Delete",
|
||||
"deleteAllTitle": "Delete All History",
|
||||
"deleteMessage": "Are you sure you want to delete this execution? This action cannot be undone.",
|
||||
"deleteToolMessage": "Are you sure you want to delete all {tool} executions? This action cannot be undone.",
|
||||
"deleteAllMessage": "Are you sure you want to delete all execution history? This action cannot be undone."
|
||||
},
|
||||
"empty": {
|
||||
"title": "No Executions Found",
|
||||
"message": "CLI execution history will appear here when you run CLI commands.",
|
||||
"filtered": "No Matching Results",
|
||||
"filteredMessage": "No executions match your current filter. Try adjusting your search or filter."
|
||||
}
|
||||
}
|
||||
37
ccw/frontend/src/locales/en/home.json
Normal file
37
ccw/frontend/src/locales/en/home.json
Normal file
@@ -0,0 +1,37 @@
|
||||
{
|
||||
"title": "Home",
|
||||
"description": "Dashboard overview and statistics",
|
||||
"stats": {
|
||||
"activeSessions": "Active Sessions",
|
||||
"totalTasks": "Total Tasks",
|
||||
"completedTasks": "Completed",
|
||||
"pendingTasks": "Pending",
|
||||
"runningLoops": "Running Loops",
|
||||
"openIssues": "Open Issues"
|
||||
},
|
||||
"sections": {
|
||||
"statistics": "Statistics",
|
||||
"recentSessions": "Recent Sessions",
|
||||
"activeLoops": "Active Loops",
|
||||
"openIssues": "Open Issues",
|
||||
"quickActions": "Quick Actions"
|
||||
},
|
||||
"emptyState": {
|
||||
"noSessions": {
|
||||
"title": "No Sessions Found",
|
||||
"message": "No workflow sessions match your current filter."
|
||||
},
|
||||
"noLoops": {
|
||||
"title": "No Active Loops",
|
||||
"message": "Start a new development loop to begin monitoring progress."
|
||||
},
|
||||
"noIssues": {
|
||||
"title": "No Open Issues",
|
||||
"message": "Create an issue to track bugs or feature requests."
|
||||
}
|
||||
},
|
||||
"errors": {
|
||||
"loadFailed": "Failed to load dashboard data",
|
||||
"retry": "Retry"
|
||||
}
|
||||
}
|
||||
64
ccw/frontend/src/locales/en/index.ts
Normal file
64
ccw/frontend/src/locales/en/index.ts
Normal file
@@ -0,0 +1,64 @@
|
||||
/**
|
||||
* English translations
|
||||
* Consolidated exports for all English translation files
|
||||
*/
|
||||
|
||||
import common from './common.json';
|
||||
import navigation from './navigation.json';
|
||||
import sessions from './sessions.json';
|
||||
import issues from './issues.json';
|
||||
import home from './home.json';
|
||||
import orchestrator from './orchestrator.json';
|
||||
import loops from './loops.json';
|
||||
import commands from './commands.json';
|
||||
import memory from './memory.json';
|
||||
import settings from './settings.json';
|
||||
import fixSession from './fix-session.json';
|
||||
import history from './history.json';
|
||||
import liteTasks from './lite-tasks.json';
|
||||
import projectOverview from './project-overview.json';
|
||||
import reviewSession from './review-session.json';
|
||||
import sessionDetail from './session-detail.json';
|
||||
|
||||
/**
|
||||
* Flattens nested JSON object to dot-separated keys
|
||||
* e.g., { actions: { save: 'Save' } } => { 'actions.save': 'Save' }
|
||||
*/
|
||||
function flattenMessages(obj: Record<string, unknown>, prefix = ''): Record<string, string> {
|
||||
const result: Record<string, string> = {};
|
||||
|
||||
for (const key in obj) {
|
||||
const fullKey = prefix ? `${prefix}.${key}` : key;
|
||||
const value = obj[key];
|
||||
|
||||
if (typeof value === 'object' && value !== null && !Array.isArray(value)) {
|
||||
Object.assign(result, flattenMessages(value as Record<string, unknown>, fullKey));
|
||||
} else if (typeof value === 'string') {
|
||||
result[fullKey] = value;
|
||||
}
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
/**
|
||||
* Consolidated and flattened English messages
|
||||
*/
|
||||
export default {
|
||||
...flattenMessages(common),
|
||||
...flattenMessages(navigation),
|
||||
...flattenMessages(sessions),
|
||||
...flattenMessages(issues),
|
||||
...flattenMessages(home),
|
||||
...flattenMessages(orchestrator),
|
||||
...flattenMessages(loops),
|
||||
...flattenMessages(commands),
|
||||
...flattenMessages(memory),
|
||||
...flattenMessages(settings),
|
||||
...flattenMessages(fixSession),
|
||||
...flattenMessages(history),
|
||||
...flattenMessages(liteTasks),
|
||||
...flattenMessages(projectOverview),
|
||||
...flattenMessages(reviewSession),
|
||||
...flattenMessages(sessionDetail),
|
||||
} as Record<string, string>;
|
||||
64
ccw/frontend/src/locales/en/issues.json
Normal file
64
ccw/frontend/src/locales/en/issues.json
Normal file
@@ -0,0 +1,64 @@
|
||||
{
|
||||
"title": "Issues",
|
||||
"description": "Track and manage issues",
|
||||
"status": {
|
||||
"open": "Open",
|
||||
"inProgress": "In Progress",
|
||||
"resolved": "Resolved",
|
||||
"closed": "Closed",
|
||||
"completed": "Completed"
|
||||
},
|
||||
"priority": {
|
||||
"low": "Low",
|
||||
"medium": "Medium",
|
||||
"high": "High",
|
||||
"critical": "Critical"
|
||||
},
|
||||
"actions": {
|
||||
"create": "New Issue",
|
||||
"edit": "Edit",
|
||||
"delete": "Delete",
|
||||
"viewDetails": "View Details",
|
||||
"changeStatus": "Change Status",
|
||||
"changePriority": "Change Priority",
|
||||
"startProgress": "Start Progress",
|
||||
"markResolved": "Mark Resolved",
|
||||
"github": "Pull from GitHub"
|
||||
},
|
||||
"filters": {
|
||||
"all": "All",
|
||||
"open": "Open",
|
||||
"inProgress": "In Progress",
|
||||
"resolved": "Resolved",
|
||||
"closed": "Closed",
|
||||
"byPriority": "By Priority"
|
||||
},
|
||||
"emptyState": {
|
||||
"title": "No Issues Found",
|
||||
"message": "No issues match your current filter.",
|
||||
"createFirst": "Create your first issue to get started"
|
||||
},
|
||||
"createDialog": {
|
||||
"title": "Create New Issue",
|
||||
"labels": {
|
||||
"title": "Title",
|
||||
"context": "Context",
|
||||
"priority": "Priority"
|
||||
},
|
||||
"placeholders": {
|
||||
"title": "Enter issue title...",
|
||||
"context": "Describe the issue context..."
|
||||
},
|
||||
"buttons": {
|
||||
"create": "Create",
|
||||
"cancel": "Cancel",
|
||||
"creating": "Creating..."
|
||||
}
|
||||
},
|
||||
"card": {
|
||||
"id": "ID",
|
||||
"createdAt": "Created",
|
||||
"updatedAt": "Updated",
|
||||
"solutions": "{count, plural, one {solution} other {solutions}}"
|
||||
}
|
||||
}
|
||||
26
ccw/frontend/src/locales/en/lite-tasks.json
Normal file
26
ccw/frontend/src/locales/en/lite-tasks.json
Normal file
@@ -0,0 +1,26 @@
|
||||
{
|
||||
"title": "Lite Tasks",
|
||||
"subtitle": "{count} session(s)",
|
||||
"type": {
|
||||
"plan": "Lite Plan",
|
||||
"fix": "Lite Fix",
|
||||
"multiCli": "Multi-CLI"
|
||||
},
|
||||
"rounds": "rounds",
|
||||
"empty": {
|
||||
"title": "No {type} sessions",
|
||||
"message": "Create a new session to get started."
|
||||
},
|
||||
"flowchart": "Flowchart",
|
||||
"implementationFlow": "Implementation Flow",
|
||||
"focusPaths": "Focus Paths",
|
||||
"acceptanceCriteria": "Acceptance Criteria",
|
||||
"emptyDetail": {
|
||||
"title": "No tasks in this session",
|
||||
"message": "This session does not contain any tasks yet."
|
||||
},
|
||||
"notFound": {
|
||||
"title": "Lite Task Not Found",
|
||||
"message": "The requested lite task session could not be found."
|
||||
}
|
||||
}
|
||||
68
ccw/frontend/src/locales/en/loops.json
Normal file
68
ccw/frontend/src/locales/en/loops.json
Normal file
@@ -0,0 +1,68 @@
|
||||
{
|
||||
"title": "Loop Monitor",
|
||||
"description": "Monitor and control running development loops",
|
||||
"status": {
|
||||
"created": "Pending",
|
||||
"running": "Running",
|
||||
"paused": "Paused",
|
||||
"completed": "Completed",
|
||||
"failed": "Failed"
|
||||
},
|
||||
"actions": {
|
||||
"create": "New Loop",
|
||||
"pause": "Pause",
|
||||
"resume": "Resume",
|
||||
"stop": "Stop",
|
||||
"restart": "Restart",
|
||||
"viewDetails": "View Details"
|
||||
},
|
||||
"emptyState": {
|
||||
"title": "No Active Loops",
|
||||
"message": "Start a new development loop to begin monitoring progress.",
|
||||
"createFirst": "Start New Loop"
|
||||
},
|
||||
"card": {
|
||||
"step": "Step",
|
||||
"of": "of",
|
||||
"progress": "Progress",
|
||||
"prompt": "Prompt",
|
||||
"tool": "Tool",
|
||||
"iteration": "Iteration",
|
||||
"error": "Error"
|
||||
},
|
||||
"createDialog": {
|
||||
"title": "Start New Loop",
|
||||
"labels": {
|
||||
"prompt": "Prompt",
|
||||
"tool": "CLI Tool (optional)"
|
||||
},
|
||||
"placeholders": {
|
||||
"prompt": "Enter your development loop prompt...",
|
||||
"tool": "e.g., gemini, qwen, codex"
|
||||
},
|
||||
"buttons": {
|
||||
"create": "Start",
|
||||
"cancel": "Cancel"
|
||||
}
|
||||
},
|
||||
"monitor": {
|
||||
"title": "Loop Monitor",
|
||||
"loops": "Loops",
|
||||
"tasks": "Tasks",
|
||||
"iterations": "Iterations",
|
||||
"timeline": "Timeline"
|
||||
},
|
||||
"taskStatus": {
|
||||
"pending": "Pending",
|
||||
"inProgress": "In Progress",
|
||||
"blocked": "Blocked",
|
||||
"done": "Done"
|
||||
},
|
||||
"columns": {
|
||||
"pending": "Pending",
|
||||
"running": "Running",
|
||||
"paused": "Paused",
|
||||
"completed": "Completed",
|
||||
"failed": "Failed"
|
||||
}
|
||||
}
|
||||
37
ccw/frontend/src/locales/en/mcp-manager.json
Normal file
37
ccw/frontend/src/locales/en/mcp-manager.json
Normal file
@@ -0,0 +1,37 @@
|
||||
{
|
||||
"title": "MCP Servers",
|
||||
"description": "Manage Model Context Protocol (MCP) servers for cross-CLI integration",
|
||||
"scope": {
|
||||
"global": "Global",
|
||||
"project": "Project"
|
||||
},
|
||||
"status": {
|
||||
"enabled": "Enabled",
|
||||
"disabled": "Disabled"
|
||||
},
|
||||
"stats": {
|
||||
"total": "Total Servers",
|
||||
"enabled": "Enabled",
|
||||
"global": "Global",
|
||||
"project": "Project"
|
||||
},
|
||||
"command": "Command",
|
||||
"args": "Arguments",
|
||||
"env": "Environment Variables",
|
||||
"filters": {
|
||||
"all": "All",
|
||||
"searchPlaceholder": "Search servers by name or command..."
|
||||
},
|
||||
"actions": {
|
||||
"add": "Add Server",
|
||||
"edit": "Edit Server",
|
||||
"delete": "Delete Server",
|
||||
"toggle": "Toggle Server",
|
||||
"expand": "View Details"
|
||||
},
|
||||
"deleteConfirm": "Are you sure you want to delete the MCP server \"{name}\"?",
|
||||
"emptyState": {
|
||||
"title": "No MCP Servers Found",
|
||||
"message": "Add an MCP server to enable cross-CLI integration with tools like Claude, Codex, and Qwen."
|
||||
}
|
||||
}
|
||||
65
ccw/frontend/src/locales/en/memory.json
Normal file
65
ccw/frontend/src/locales/en/memory.json
Normal file
@@ -0,0 +1,65 @@
|
||||
{
|
||||
"title": "Memory",
|
||||
"description": "Manage core memory, context, and knowledge base",
|
||||
"actions": {
|
||||
"add": "Add Memory",
|
||||
"edit": "Edit",
|
||||
"delete": "Delete",
|
||||
"copy": "Copy",
|
||||
"refresh": "Refresh",
|
||||
"expand": "Expand",
|
||||
"collapse": "Collapse"
|
||||
},
|
||||
"stats": {
|
||||
"totalSize": "Total Size",
|
||||
"count": "Count",
|
||||
"claudeMdCount": "CLAUDE.md Files",
|
||||
"totalEntries": "Total Entries"
|
||||
},
|
||||
"filters": {
|
||||
"search": "Search memories...",
|
||||
"tags": "Tags",
|
||||
"clear": "Clear",
|
||||
"all": "All"
|
||||
},
|
||||
"card": {
|
||||
"id": "ID",
|
||||
"content": "Content",
|
||||
"summary": "Summary",
|
||||
"tags": "Tags",
|
||||
"createdAt": "Created",
|
||||
"updatedAt": "Updated",
|
||||
"size": "Size",
|
||||
"favorite": "Favorite",
|
||||
"archived": "Archived"
|
||||
},
|
||||
"emptyState": {
|
||||
"title": "No Memories Stored",
|
||||
"message": "Add context and knowledge to help Claude understand your project better.",
|
||||
"createFirst": "Add First Memory"
|
||||
},
|
||||
"createDialog": {
|
||||
"title": "Add Memory",
|
||||
"editTitle": "Edit Memory",
|
||||
"labels": {
|
||||
"content": "Content",
|
||||
"tags": "Tags"
|
||||
},
|
||||
"placeholders": {
|
||||
"content": "Enter memory content...",
|
||||
"tags": "e.g., project, config, api"
|
||||
},
|
||||
"buttons": {
|
||||
"create": "Add Memory",
|
||||
"update": "Update Memory",
|
||||
"cancel": "Cancel",
|
||||
"creating": "Creating...",
|
||||
"updating": "Updating..."
|
||||
}
|
||||
},
|
||||
"types": {
|
||||
"coreMemory": "Core Memory",
|
||||
"workflow": "Workflow",
|
||||
"cliHistory": "CLI History"
|
||||
}
|
||||
}
|
||||
38
ccw/frontend/src/locales/en/navigation.json
Normal file
38
ccw/frontend/src/locales/en/navigation.json
Normal file
@@ -0,0 +1,38 @@
|
||||
{
|
||||
"main": {
|
||||
"home": "Home",
|
||||
"sessions": "Sessions",
|
||||
"liteTasks": "Lite Tasks",
|
||||
"project": "Project",
|
||||
"history": "History",
|
||||
"orchestrator": "Orchestrator",
|
||||
"loops": "Loop Monitor",
|
||||
"issues": "Issues",
|
||||
"skills": "Skills",
|
||||
"commands": "Commands",
|
||||
"memory": "Memory",
|
||||
"settings": "Settings",
|
||||
"mcp": "MCP Servers",
|
||||
"endpoints": "CLI Endpoints",
|
||||
"installations": "Installations",
|
||||
"help": "Help"
|
||||
},
|
||||
"sidebar": {
|
||||
"collapse": "Collapse",
|
||||
"expand": "Expand sidebar",
|
||||
"collapseAria": "Collapse sidebar"
|
||||
},
|
||||
"header": {
|
||||
"brand": "Claude Code Workflow",
|
||||
"brandShort": "CCW",
|
||||
"noProject": "No project selected",
|
||||
"settings": "Settings",
|
||||
"logout": "Logout"
|
||||
},
|
||||
"breadcrumbs": {
|
||||
"home": "Home",
|
||||
"sessions": "Sessions",
|
||||
"detail": "Details",
|
||||
"settings": "Settings"
|
||||
}
|
||||
}
|
||||
63
ccw/frontend/src/locales/en/orchestrator.json
Normal file
63
ccw/frontend/src/locales/en/orchestrator.json
Normal file
@@ -0,0 +1,63 @@
|
||||
{
|
||||
"title": "Orchestrator",
|
||||
"description": "Manage and execute workflow flows",
|
||||
"flow": {
|
||||
"title": "Flow",
|
||||
"flows": "Flows",
|
||||
"create": "New Flow",
|
||||
"edit": "Edit Flow",
|
||||
"delete": "Delete Flow",
|
||||
"duplicate": "Duplicate Flow",
|
||||
"export": "Export Flow",
|
||||
"import": "Import Flow"
|
||||
},
|
||||
"execution": {
|
||||
"title": "Execution",
|
||||
"status": "Status",
|
||||
"start": "Start",
|
||||
"pause": "Pause",
|
||||
"resume": "Resume",
|
||||
"stop": "Stop",
|
||||
"restart": "Restart",
|
||||
"viewLogs": "View Logs"
|
||||
},
|
||||
"status": {
|
||||
"pending": "Pending",
|
||||
"running": "Running",
|
||||
"paused": "Paused",
|
||||
"completed": "Completed",
|
||||
"failed": "Failed"
|
||||
},
|
||||
"node": {
|
||||
"title": "Node",
|
||||
"nodes": "Nodes",
|
||||
"add": "Add Node",
|
||||
"edit": "Edit Node",
|
||||
"delete": "Delete Node",
|
||||
"status": "Node Status",
|
||||
"result": "Result"
|
||||
},
|
||||
"actions": {
|
||||
"execute": "Execute",
|
||||
"validate": "Validate",
|
||||
"save": "Save",
|
||||
"cancel": "Cancel"
|
||||
},
|
||||
"emptyState": {
|
||||
"noFlows": {
|
||||
"title": "No Flows Found",
|
||||
"message": "Create your first workflow flow to get started."
|
||||
},
|
||||
"noExecution": {
|
||||
"title": "No Execution History",
|
||||
"message": "Execute a flow to see the execution history."
|
||||
}
|
||||
},
|
||||
"monitor": {
|
||||
"title": "Execution Monitor",
|
||||
"logs": "Logs",
|
||||
"timeline": "Timeline",
|
||||
"variables": "Variables",
|
||||
"realtime": "Real-time Updates"
|
||||
}
|
||||
}
|
||||
52
ccw/frontend/src/locales/en/project-overview.json
Normal file
52
ccw/frontend/src/locales/en/project-overview.json
Normal file
@@ -0,0 +1,52 @@
|
||||
{
|
||||
"noDescription": "No description available",
|
||||
"header": {
|
||||
"initialized": "Initialized"
|
||||
},
|
||||
"techStack": {
|
||||
"title": "Technology Stack",
|
||||
"languages": "Languages",
|
||||
"frameworks": "Frameworks",
|
||||
"buildTools": "Build Tools",
|
||||
"testFrameworks": "Test Frameworks",
|
||||
"primary": "Primary",
|
||||
"noLanguages": "No languages detected",
|
||||
"noFrameworks": "No frameworks detected"
|
||||
},
|
||||
"architecture": {
|
||||
"title": "Architecture",
|
||||
"style": "Style",
|
||||
"layers": "Layers",
|
||||
"patterns": "Patterns"
|
||||
},
|
||||
"components": {
|
||||
"title": "Key Components",
|
||||
"importance": {
|
||||
"high": "High",
|
||||
"medium": "Medium",
|
||||
"low": "Low"
|
||||
}
|
||||
},
|
||||
"devIndex": {
|
||||
"title": "Development History",
|
||||
"categories": "Categories",
|
||||
"timeline": "Timeline"
|
||||
},
|
||||
"guidelines": {
|
||||
"title": "Project Guidelines",
|
||||
"conventions": "Conventions",
|
||||
"constraints": "Constraints",
|
||||
"qualityRules": "Quality Rules",
|
||||
"learnings": "Session Learnings",
|
||||
"scope": "Scope"
|
||||
},
|
||||
"stats": {
|
||||
"title": "Statistics",
|
||||
"totalFeatures": "Total Features",
|
||||
"lastUpdated": "Last Updated"
|
||||
},
|
||||
"empty": {
|
||||
"title": "No Project Overview",
|
||||
"message": "Run /workflow:init to initialize project analysis"
|
||||
}
|
||||
}
|
||||
41
ccw/frontend/src/locales/en/review-session.json
Normal file
41
ccw/frontend/src/locales/en/review-session.json
Normal file
@@ -0,0 +1,41 @@
|
||||
{
|
||||
"title": "Review Session",
|
||||
"type": "Review",
|
||||
"severity": {
|
||||
"critical": "Critical",
|
||||
"high": "High",
|
||||
"medium": "Medium",
|
||||
"low": "Low"
|
||||
},
|
||||
"stats": {
|
||||
"total": "Total Findings",
|
||||
"dimensions": "Dimensions"
|
||||
},
|
||||
"search": {
|
||||
"placeholder": "Search findings..."
|
||||
},
|
||||
"sort": {
|
||||
"severity": "By Severity",
|
||||
"dimension": "By Dimension",
|
||||
"file": "By File"
|
||||
},
|
||||
"selection": {
|
||||
"count": "{count} selected",
|
||||
"selectAll": "Select All",
|
||||
"clearAll": "Clear All",
|
||||
"clear": "Clear"
|
||||
},
|
||||
"export": "Export Fix JSON",
|
||||
"codeContext": "Code Context",
|
||||
"rootCause": "Root Cause",
|
||||
"impact": "Impact",
|
||||
"recommendations": "Recommendations",
|
||||
"empty": {
|
||||
"title": "No findings found",
|
||||
"message": "Try adjusting your filters or search query."
|
||||
},
|
||||
"notFound": {
|
||||
"title": "Review Session Not Found",
|
||||
"message": "The requested review session could not be found."
|
||||
}
|
||||
}
|
||||
54
ccw/frontend/src/locales/en/session-detail.json
Normal file
54
ccw/frontend/src/locales/en/session-detail.json
Normal file
@@ -0,0 +1,54 @@
|
||||
{
|
||||
"notFound": {
|
||||
"title": "Session Not Found",
|
||||
"message": "The session you're looking for doesn't exist or has been deleted."
|
||||
},
|
||||
"tabs": {
|
||||
"tasks": "Tasks",
|
||||
"context": "Context",
|
||||
"summary": "Summary"
|
||||
},
|
||||
"tasks": {
|
||||
"completed": "completed",
|
||||
"inProgress": "in progress",
|
||||
"pending": "pending",
|
||||
"blocked": "blocked",
|
||||
"status": {
|
||||
"pending": "Pending",
|
||||
"inProgress": "In Progress",
|
||||
"completed": "Completed",
|
||||
"blocked": "Blocked",
|
||||
"skipped": "Skipped"
|
||||
},
|
||||
"untitled": "Untitled Task",
|
||||
"empty": {
|
||||
"title": "No Tasks Found",
|
||||
"message": "This session has no tasks yet."
|
||||
}
|
||||
},
|
||||
"context": {
|
||||
"requirements": "Requirements",
|
||||
"focusPaths": "Focus Paths",
|
||||
"artifacts": "Artifacts",
|
||||
"sharedContext": "Shared Context",
|
||||
"techStack": "Tech Stack",
|
||||
"conventions": "Conventions",
|
||||
"empty": {
|
||||
"title": "No Context Available",
|
||||
"message": "This session has no context information."
|
||||
}
|
||||
},
|
||||
"summary": {
|
||||
"title": "Session Summary",
|
||||
"empty": {
|
||||
"title": "No Summary Available",
|
||||
"message": "This session has no summary yet."
|
||||
}
|
||||
},
|
||||
"info": {
|
||||
"created": "Created",
|
||||
"updated": "Updated",
|
||||
"tasks": "Tasks",
|
||||
"description": "Description"
|
||||
}
|
||||
}
|
||||
48
ccw/frontend/src/locales/en/sessions.json
Normal file
48
ccw/frontend/src/locales/en/sessions.json
Normal file
@@ -0,0 +1,48 @@
|
||||
{
|
||||
"title": "Sessions",
|
||||
"description": "Manage your workflow sessions and track progress",
|
||||
"status": {
|
||||
"planning": "Planning",
|
||||
"inProgress": "In Progress",
|
||||
"completed": "Completed",
|
||||
"archived": "Archived",
|
||||
"paused": "Paused"
|
||||
},
|
||||
"actions": {
|
||||
"viewDetails": "View Details",
|
||||
"archive": "Archive",
|
||||
"delete": "Delete",
|
||||
"restore": "Restore",
|
||||
"pause": "Pause",
|
||||
"resume": "Resume"
|
||||
},
|
||||
"filters": {
|
||||
"all": "All",
|
||||
"active": "Active",
|
||||
"planning": "Planning",
|
||||
"completed": "Completed",
|
||||
"archived": "Archived",
|
||||
"paused": "Paused"
|
||||
},
|
||||
"searchPlaceholder": "Search sessions...",
|
||||
"emptyState": {
|
||||
"title": "No Sessions Found",
|
||||
"message": "No workflow sessions match your current filter.",
|
||||
"createFirst": "Create your first session to get started"
|
||||
},
|
||||
"card": {
|
||||
"tasks": "tasks",
|
||||
"findings": "findings",
|
||||
"dimensions": "dimensions",
|
||||
"progress": "Progress",
|
||||
"createdAt": "Created",
|
||||
"updatedAt": "Updated"
|
||||
},
|
||||
"detail": {
|
||||
"overview": "Overview",
|
||||
"tasks": "Tasks",
|
||||
"summary": "Summary",
|
||||
"metadata": "Metadata",
|
||||
"timeline": "Timeline"
|
||||
}
|
||||
}
|
||||
42
ccw/frontend/src/locales/en/skills.json
Normal file
42
ccw/frontend/src/locales/en/skills.json
Normal file
@@ -0,0 +1,42 @@
|
||||
{
|
||||
"title": "Skills",
|
||||
"description": "Manage and configure skills",
|
||||
"source": {
|
||||
"builtin": "Built-in",
|
||||
"custom": "Custom",
|
||||
"community": "Community"
|
||||
},
|
||||
"actions": {
|
||||
"viewDetails": "View Details",
|
||||
"configure": "Configure",
|
||||
"enable": "Enable",
|
||||
"disable": "Disable",
|
||||
"toggle": "Toggle",
|
||||
"install": "Install Skill"
|
||||
},
|
||||
"state": {
|
||||
"enabled": "Enabled",
|
||||
"disabled": "Disabled",
|
||||
"on": "On",
|
||||
"off": "Off"
|
||||
},
|
||||
"card": {
|
||||
"triggers": "Triggers",
|
||||
"category": "Category",
|
||||
"author": "Author",
|
||||
"version": "Version"
|
||||
},
|
||||
"filters": {
|
||||
"all": "All",
|
||||
"enabled": "Enabled",
|
||||
"disabled": "Disabled"
|
||||
},
|
||||
"view": {
|
||||
"grid": "Grid View",
|
||||
"compact": "Compact View"
|
||||
},
|
||||
"emptyState": {
|
||||
"title": "No Skills Found",
|
||||
"message": "No skills match your current filter."
|
||||
}
|
||||
}
|
||||
127
ccw/frontend/src/locales/zh/cli-manager.json
Normal file
127
ccw/frontend/src/locales/zh/cli-manager.json
Normal file
@@ -0,0 +1,127 @@
|
||||
{
|
||||
"cliEndpoints": {
|
||||
"title": "CLI 端点",
|
||||
"description": "管理 LiteLLM 端点、自定义 CLI 端点和 CLI 包装器配置",
|
||||
"type": {
|
||||
"litellm": "LiteLLM",
|
||||
"custom": "自定义",
|
||||
"wrapper": "包装器"
|
||||
},
|
||||
"status": {
|
||||
"enabled": "已启用",
|
||||
"disabled": "已禁用"
|
||||
},
|
||||
"stats": {
|
||||
"total": "端点总数",
|
||||
"enabled": "已启用"
|
||||
},
|
||||
"id": "ID",
|
||||
"config": "配置",
|
||||
"filters": {
|
||||
"type": "类型",
|
||||
"allTypes": "全部类型",
|
||||
"searchPlaceholder": "按名称或 ID 搜索端点..."
|
||||
},
|
||||
"actions": {
|
||||
"add": "添加端点",
|
||||
"edit": "编辑端点",
|
||||
"delete": "删除端点",
|
||||
"toggle": "切换端点"
|
||||
},
|
||||
"deleteConfirm": "确定要删除端点 \"{id}\" 吗?",
|
||||
"emptyState": {
|
||||
"title": "未找到 CLI 端点",
|
||||
"message": "添加 CLI 端点以配置自定义 API 端点和包装器。"
|
||||
}
|
||||
},
|
||||
"cliInstallations": {
|
||||
"title": "CLI 安装",
|
||||
"description": "管理 CCW CLI 工具的安装、升级和卸载",
|
||||
"status": {
|
||||
"active": "活动",
|
||||
"inactive": "未活动",
|
||||
"error": "错误"
|
||||
},
|
||||
"stats": {
|
||||
"total": "工具总数",
|
||||
"installed": "已安装",
|
||||
"available": "可用"
|
||||
},
|
||||
"installed": "已安装",
|
||||
"lastChecked": "上次检查",
|
||||
"filters": {
|
||||
"status": "状态",
|
||||
"all": "全部",
|
||||
"installed": "已安装",
|
||||
"notInstalled": "未安装",
|
||||
"searchPlaceholder": "按名称或版本搜索工具..."
|
||||
},
|
||||
"actions": {
|
||||
"install": "安装",
|
||||
"uninstall": "卸载",
|
||||
"upgrade": "升级"
|
||||
},
|
||||
"uninstallConfirm": "确定要卸载 \"{name}\" 吗?",
|
||||
"emptyState": {
|
||||
"title": "未找到 CLI 工具",
|
||||
"message": "目前没有可用于安装的 CLI 工具。"
|
||||
}
|
||||
},
|
||||
"cliHooks": {
|
||||
"title": "Git 钩子",
|
||||
"description": "管理用于自动化工作流的 Git 钩子",
|
||||
"trigger": {
|
||||
"pre-commit": "提交前",
|
||||
"post-commit": "提交后",
|
||||
"pre-push": "推送前",
|
||||
"custom": "自定义"
|
||||
},
|
||||
"stats": {
|
||||
"total": "钩子总数",
|
||||
"enabled": "已启用"
|
||||
},
|
||||
"filters": {
|
||||
"trigger": "触发器",
|
||||
"allTriggers": "全部触发器",
|
||||
"searchPlaceholder": "按名称搜索钩子..."
|
||||
},
|
||||
"actions": {
|
||||
"add": "添加钩子",
|
||||
"edit": "编辑钩子",
|
||||
"delete": "删除钩子",
|
||||
"toggle": "切换钩子"
|
||||
},
|
||||
"emptyState": {
|
||||
"title": "未找到 Git 钩子",
|
||||
"message": "添加 Git 钩子以在 Git 工作流期间自动化任务。"
|
||||
}
|
||||
},
|
||||
"cliRules": {
|
||||
"title": "规则",
|
||||
"description": "管理代码质量规则和检查配置",
|
||||
"severity": {
|
||||
"error": "错误",
|
||||
"warning": "警告",
|
||||
"info": "信息"
|
||||
},
|
||||
"stats": {
|
||||
"total": "规则总数",
|
||||
"enabled": "已启用"
|
||||
},
|
||||
"filters": {
|
||||
"severity": "严重程度",
|
||||
"allSeverities": "全部严重程度",
|
||||
"searchPlaceholder": "按名称搜索规则..."
|
||||
},
|
||||
"actions": {
|
||||
"add": "添加规则",
|
||||
"edit": "编辑规则",
|
||||
"delete": "删除规则",
|
||||
"toggle": "切换规则"
|
||||
},
|
||||
"emptyState": {
|
||||
"title": "未找到规则",
|
||||
"message": "添加规则以强制执行代码质量标准。"
|
||||
}
|
||||
}
|
||||
}
|
||||
43
ccw/frontend/src/locales/zh/commands.json
Normal file
43
ccw/frontend/src/locales/zh/commands.json
Normal file
@@ -0,0 +1,43 @@
|
||||
{
|
||||
"title": "命令管理",
|
||||
"description": "管理 Claude Code 自定义斜杠命令",
|
||||
"actions": {
|
||||
"create": "新建命令",
|
||||
"edit": "编辑命令",
|
||||
"delete": "删除命令",
|
||||
"refresh": "刷新",
|
||||
"expandAll": "全部展开",
|
||||
"collapseAll": "全部收起",
|
||||
"copy": "复制"
|
||||
},
|
||||
"source": {
|
||||
"builtin": "内置",
|
||||
"custom": "自定义"
|
||||
},
|
||||
"filters": {
|
||||
"allCategories": "所有类别",
|
||||
"allSources": "所有来源",
|
||||
"category": "类别",
|
||||
"source": "来源",
|
||||
"searchPlaceholder": "按名称、描述或别名搜索命令..."
|
||||
},
|
||||
"card": {
|
||||
"name": "名称",
|
||||
"description": "描述",
|
||||
"usage": "用法",
|
||||
"examples": "示例",
|
||||
"aliases": "别名",
|
||||
"triggers": "触发器",
|
||||
"noDescription": "无描述"
|
||||
},
|
||||
"emptyState": {
|
||||
"title": "未找到命令",
|
||||
"message": "尝试调整搜索或筛选条件。"
|
||||
},
|
||||
"table": {
|
||||
"name": "名称",
|
||||
"description": "描述",
|
||||
"scope": "作用域",
|
||||
"status": "状态"
|
||||
}
|
||||
}
|
||||
180
ccw/frontend/src/locales/zh/common.json
Normal file
180
ccw/frontend/src/locales/zh/common.json
Normal file
@@ -0,0 +1,180 @@
|
||||
{
|
||||
"aria": {
|
||||
"toggleNavigation": "切换导航菜单",
|
||||
"refreshWorkspace": "刷新工作区",
|
||||
"switchToLightMode": "切换到浅色模式",
|
||||
"switchToDarkMode": "切换到深色模式",
|
||||
"userMenu": "用户菜单",
|
||||
"actions": "操作"
|
||||
},
|
||||
"actions": {
|
||||
"save": "保存",
|
||||
"cancel": "取消",
|
||||
"delete": "删除",
|
||||
"edit": "编辑",
|
||||
"create": "创建",
|
||||
"refresh": "刷新",
|
||||
"loading": "加载中...",
|
||||
"retry": "重试",
|
||||
"search": "搜索...",
|
||||
"searchIssues": "搜索问题...",
|
||||
"searchLoops": "搜索循环...",
|
||||
"clear": "清除",
|
||||
"close": "关闭",
|
||||
"copy": "复制",
|
||||
"view": "查看",
|
||||
"viewAll": "查看全部",
|
||||
"update": "更新",
|
||||
"add": "添加",
|
||||
"new": "新建",
|
||||
"remove": "移除",
|
||||
"confirm": "确认",
|
||||
"back": "返回",
|
||||
"next": "下一步",
|
||||
"previous": "上一步",
|
||||
"submit": "提交",
|
||||
"reset": "重置",
|
||||
"resetDesc": "将所有用户偏好重置为默认值。此操作无法撤销。",
|
||||
"resetConfirm": "确定要将所有设置重置为默认值吗?",
|
||||
"resetToDefaults": "重置为默认值",
|
||||
"enable": "启用",
|
||||
"disable": "禁用",
|
||||
"expand": "全部展开",
|
||||
"expandAll": "全部展开",
|
||||
"collapse": "全部收起",
|
||||
"collapseAll": "全部收起",
|
||||
"filter": "筛选",
|
||||
"filters": "筛选",
|
||||
"clearFilters": "清除筛选",
|
||||
"clearAll": "清除全部",
|
||||
"select": "选择",
|
||||
"selectAll": "全选",
|
||||
"deselectAll": "取消全选"
|
||||
},
|
||||
"status": {
|
||||
"active": "活跃",
|
||||
"inactive": "未激活",
|
||||
"pending": "待处理",
|
||||
"inProgress": "进行中",
|
||||
"completed": "已完成",
|
||||
"failed": "失败",
|
||||
"blocked": "已阻塞",
|
||||
"cancelled": "已取消",
|
||||
"paused": "已暂停",
|
||||
"archived": "已归档",
|
||||
"unknown": "未知",
|
||||
"draft": "草稿",
|
||||
"published": "已发布",
|
||||
"creating": "创建中...",
|
||||
"deleting": "删除中...",
|
||||
"label": "状态",
|
||||
"openIssues": "开放问题"
|
||||
},
|
||||
"priority": {
|
||||
"low": "低",
|
||||
"medium": "中",
|
||||
"high": "高",
|
||||
"critical": "紧急",
|
||||
"label": "优先级"
|
||||
},
|
||||
"time": {
|
||||
"seconds": "秒",
|
||||
"minutes": "分钟",
|
||||
"hours": "小时",
|
||||
"days": "天",
|
||||
"weeks": "周",
|
||||
"months": "月",
|
||||
"years": "年",
|
||||
"ago": "前",
|
||||
"justNow": "刚刚"
|
||||
},
|
||||
"buttons": {
|
||||
"new": "新建",
|
||||
"create": "创建",
|
||||
"edit": "编辑",
|
||||
"delete": "删除",
|
||||
"save": "保存",
|
||||
"cancel": "取消",
|
||||
"confirm": "确认",
|
||||
"retry": "重试",
|
||||
"refresh": "刷新",
|
||||
"close": "关闭",
|
||||
"back": "返回",
|
||||
"next": "下一步",
|
||||
"submit": "提交"
|
||||
},
|
||||
"form": {
|
||||
"required": "必填",
|
||||
"optional": "可选",
|
||||
"placeholder": "输入...",
|
||||
"search": "搜索...",
|
||||
"select": "选择...",
|
||||
"noResults": "未找到结果",
|
||||
"loading": "加载中...",
|
||||
"sessionId": "会话ID",
|
||||
"title": "标题",
|
||||
"description": "描述",
|
||||
"sessionIdPlaceholder": "例如:WFS-feature-auth",
|
||||
"titlePlaceholder": "例如:认证系统",
|
||||
"descriptionPlaceholder": "会话简短描述"
|
||||
},
|
||||
"emptyState": {
|
||||
"noData": "未找到数据",
|
||||
"noResults": "未找到结果",
|
||||
"noItems": "暂无项目",
|
||||
"createFirst": "创建第一个项目以开始",
|
||||
"searchEmpty": "尝试调整搜索或筛选条件",
|
||||
"filterEmpty": "没有项目符合当前筛选条件"
|
||||
},
|
||||
"errors": {
|
||||
"generic": "发生错误",
|
||||
"network": "网络错误,请检查连接。",
|
||||
"timeout": "请求超时,请重试。",
|
||||
"notFound": "未找到资源",
|
||||
"unauthorized": "未授权访问",
|
||||
"forbidden": "访问被禁止",
|
||||
"validation": "验证错误",
|
||||
"server": "服务器错误,请稍后重试。",
|
||||
"loadingFailed": "加载数据失败",
|
||||
"loadFailed": "加载数据失败",
|
||||
"saveFailed": "保存失败",
|
||||
"deleteFailed": "删除失败",
|
||||
"updateFailed": "更新失败",
|
||||
"unknownError": "发生意外错误"
|
||||
},
|
||||
"success": {
|
||||
"saved": "保存成功",
|
||||
"created": "创建成功",
|
||||
"updated": "更新成功",
|
||||
"deleted": "删除成功",
|
||||
"copied": "已复制到剪贴板"
|
||||
},
|
||||
"messages": {
|
||||
"confirmDelete": "确定要删除此项目吗?",
|
||||
"confirmArchive": "确定要归档此项目吗?",
|
||||
"unsavedChanges": "您有未保存的更改,确定要离开吗?",
|
||||
"noPermission": "您没有执行此操作的权限"
|
||||
},
|
||||
"stats": {
|
||||
"todayActivity": "今日活动",
|
||||
"totalCommands": "总命令数",
|
||||
"totalSkills": "总技能数",
|
||||
"categories": "分类"
|
||||
},
|
||||
"dialog": {
|
||||
"createSession": "创建新会话",
|
||||
"createSessionDesc": "创建新的工作流会话以跟踪您的开发任务。",
|
||||
"deleteSession": "删除会话",
|
||||
"deleteConfirm": "确定要删除此会话吗?此操作无法撤销。"
|
||||
},
|
||||
"help": {
|
||||
"title": "帮助与文档",
|
||||
"description": "了解如何使用 CCW 仪表板并充分利用您的工作流",
|
||||
"support": {
|
||||
"title": "需要更多帮助?",
|
||||
"description": "查看项目文档或联系支持。",
|
||||
"documentation": "文档",
|
||||
"tutorials": "教程"
|
||||
}
|
||||
}
|
||||
}
|
||||
44
ccw/frontend/src/locales/zh/fix-session.json
Normal file
44
ccw/frontend/src/locales/zh/fix-session.json
Normal file
@@ -0,0 +1,44 @@
|
||||
{
|
||||
"progress": {
|
||||
"title": "修复进度"
|
||||
},
|
||||
"tasks": {
|
||||
"title": "修复任务"
|
||||
},
|
||||
"stats": {
|
||||
"total": "总计",
|
||||
"fixed": "已修复",
|
||||
"failed": "失败",
|
||||
"pending": "待处理"
|
||||
},
|
||||
"status": {
|
||||
"fixed": "已修复",
|
||||
"failed": "失败",
|
||||
"inProgress": "进行中",
|
||||
"pending": "待处理"
|
||||
},
|
||||
"filter": {
|
||||
"all": "全部",
|
||||
"pending": "待处理",
|
||||
"inProgress": "进行中",
|
||||
"fixed": "已修复",
|
||||
"failed": "失败"
|
||||
},
|
||||
"task": {
|
||||
"untitled": "无标题任务",
|
||||
"attempts": "{count} 次尝试"
|
||||
},
|
||||
"info": {
|
||||
"created": "创建时间",
|
||||
"updated": "更新时间",
|
||||
"description": "描述"
|
||||
},
|
||||
"notFound": {
|
||||
"title": "会话未找到",
|
||||
"message": "您要查找的修复会话不存在或已被删除。"
|
||||
},
|
||||
"empty": {
|
||||
"title": "未找到任务",
|
||||
"message": "没有匹配当前筛选条件的修复任务。"
|
||||
}
|
||||
}
|
||||
29
ccw/frontend/src/locales/zh/history.json
Normal file
29
ccw/frontend/src/locales/zh/history.json
Normal file
@@ -0,0 +1,29 @@
|
||||
{
|
||||
"title": "CLI 执行历史",
|
||||
"description": "查看和管理 CLI 执行历史",
|
||||
"searchPlaceholder": "搜索执行记录...",
|
||||
"filterAllTools": "全部工具",
|
||||
"deleteOptions": "删除选项",
|
||||
"deleteBy": "按工具删除",
|
||||
"deleteAllTool": "删除所有 {tool}",
|
||||
"deleteAll": "删除全部历史",
|
||||
"actions": {
|
||||
"view": "查看详情",
|
||||
"delete": "删除",
|
||||
"copyId": "复制 ID",
|
||||
"copied": "已复制!"
|
||||
},
|
||||
"dialog": {
|
||||
"deleteTitle": "确认删除",
|
||||
"deleteAllTitle": "删除全部历史",
|
||||
"deleteMessage": "确定要删除此执行记录吗?此操作无法撤销。",
|
||||
"deleteToolMessage": "确定要删除所有 {tool} 执行记录吗?此操作无法撤销。",
|
||||
"deleteAllMessage": "确定要删除全部执行历史吗?此操作无法撤销。"
|
||||
},
|
||||
"empty": {
|
||||
"title": "未找到执行记录",
|
||||
"message": "运行 CLI 命令后,执行历史将显示在这里。",
|
||||
"filtered": "没有匹配结果",
|
||||
"filteredMessage": "没有匹配当前筛选条件的执行记录。请尝试调整搜索或筛选条件。"
|
||||
}
|
||||
}
|
||||
37
ccw/frontend/src/locales/zh/home.json
Normal file
37
ccw/frontend/src/locales/zh/home.json
Normal file
@@ -0,0 +1,37 @@
|
||||
{
|
||||
"title": "首页",
|
||||
"description": "仪表板概览与统计",
|
||||
"stats": {
|
||||
"activeSessions": "活跃会话",
|
||||
"totalTasks": "总任务",
|
||||
"completedTasks": "已完成",
|
||||
"pendingTasks": "待处理",
|
||||
"runningLoops": "运行中的循环",
|
||||
"openIssues": "开放问题"
|
||||
},
|
||||
"sections": {
|
||||
"statistics": "统计",
|
||||
"recentSessions": "最近会话",
|
||||
"activeLoops": "活跃循环",
|
||||
"openIssues": "开放问题",
|
||||
"quickActions": "快速操作"
|
||||
},
|
||||
"emptyState": {
|
||||
"noSessions": {
|
||||
"title": "未找到会话",
|
||||
"message": "没有符合当前筛选条件的工作流会话。"
|
||||
},
|
||||
"noLoops": {
|
||||
"title": "无活跃循环",
|
||||
"message": "启动新的开发循环以开始监控进度。"
|
||||
},
|
||||
"noIssues": {
|
||||
"title": "无开放问题",
|
||||
"message": "创建问题以跟踪错误或功能请求。"
|
||||
}
|
||||
},
|
||||
"errors": {
|
||||
"loadFailed": "加载仪表板数据失败",
|
||||
"retry": "重试"
|
||||
}
|
||||
}
|
||||
64
ccw/frontend/src/locales/zh/index.ts
Normal file
64
ccw/frontend/src/locales/zh/index.ts
Normal file
@@ -0,0 +1,64 @@
|
||||
/**
|
||||
* Chinese (Simplified) translations
|
||||
* Consolidated exports for all Chinese translation files
|
||||
*/
|
||||
|
||||
import common from './common.json';
|
||||
import navigation from './navigation.json';
|
||||
import sessions from './sessions.json';
|
||||
import issues from './issues.json';
|
||||
import home from './home.json';
|
||||
import orchestrator from './orchestrator.json';
|
||||
import loops from './loops.json';
|
||||
import commands from './commands.json';
|
||||
import memory from './memory.json';
|
||||
import settings from './settings.json';
|
||||
import fixSession from './fix-session.json';
|
||||
import history from './history.json';
|
||||
import liteTasks from './lite-tasks.json';
|
||||
import projectOverview from './project-overview.json';
|
||||
import reviewSession from './review-session.json';
|
||||
import sessionDetail from './session-detail.json';
|
||||
|
||||
/**
|
||||
* Flattens nested JSON object to dot-separated keys
|
||||
* e.g., { actions: { save: 'Save' } } => { 'actions.save': 'Save' }
|
||||
*/
|
||||
function flattenMessages(obj: Record<string, unknown>, prefix = ''): Record<string, string> {
|
||||
const result: Record<string, string> = {};
|
||||
|
||||
for (const key in obj) {
|
||||
const fullKey = prefix ? `${prefix}.${key}` : key;
|
||||
const value = obj[key];
|
||||
|
||||
if (typeof value === 'object' && value !== null && !Array.isArray(value)) {
|
||||
Object.assign(result, flattenMessages(value as Record<string, unknown>, fullKey));
|
||||
} else if (typeof value === 'string') {
|
||||
result[fullKey] = value;
|
||||
}
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
/**
|
||||
* Consolidated and flattened Chinese messages
|
||||
*/
|
||||
export default {
|
||||
...flattenMessages(common),
|
||||
...flattenMessages(navigation),
|
||||
...flattenMessages(sessions),
|
||||
...flattenMessages(issues),
|
||||
...flattenMessages(home),
|
||||
...flattenMessages(orchestrator),
|
||||
...flattenMessages(loops),
|
||||
...flattenMessages(commands),
|
||||
...flattenMessages(memory),
|
||||
...flattenMessages(settings),
|
||||
...flattenMessages(fixSession),
|
||||
...flattenMessages(history),
|
||||
...flattenMessages(liteTasks),
|
||||
...flattenMessages(projectOverview),
|
||||
...flattenMessages(reviewSession),
|
||||
...flattenMessages(sessionDetail),
|
||||
} as Record<string, string>;
|
||||
64
ccw/frontend/src/locales/zh/issues.json
Normal file
64
ccw/frontend/src/locales/zh/issues.json
Normal file
@@ -0,0 +1,64 @@
|
||||
{
|
||||
"title": "问题",
|
||||
"description": "跟踪和管理问题",
|
||||
"status": {
|
||||
"open": "开放",
|
||||
"inProgress": "进行中",
|
||||
"resolved": "已解决",
|
||||
"closed": "已关闭",
|
||||
"completed": "已完成"
|
||||
},
|
||||
"priority": {
|
||||
"low": "低",
|
||||
"medium": "中",
|
||||
"high": "高",
|
||||
"critical": "紧急"
|
||||
},
|
||||
"actions": {
|
||||
"create": "新建问题",
|
||||
"edit": "编辑",
|
||||
"delete": "删除",
|
||||
"viewDetails": "查看详情",
|
||||
"changeStatus": "更改状态",
|
||||
"changePriority": "更改优先级",
|
||||
"startProgress": "开始处理",
|
||||
"markResolved": "标记为已解决",
|
||||
"github": "从 GitHub 拉取"
|
||||
},
|
||||
"filters": {
|
||||
"all": "全部",
|
||||
"open": "开放",
|
||||
"inProgress": "进行中",
|
||||
"resolved": "已解决",
|
||||
"closed": "已关闭",
|
||||
"byPriority": "按优先级"
|
||||
},
|
||||
"emptyState": {
|
||||
"title": "未找到问题",
|
||||
"message": "没有符合当前筛选条件的问题。",
|
||||
"createFirst": "创建第一个问题以开始"
|
||||
},
|
||||
"createDialog": {
|
||||
"title": "创建新问题",
|
||||
"labels": {
|
||||
"title": "标题",
|
||||
"context": "上下文",
|
||||
"priority": "优先级"
|
||||
},
|
||||
"placeholders": {
|
||||
"title": "输入问题标题...",
|
||||
"context": "描述问题上下文..."
|
||||
},
|
||||
"buttons": {
|
||||
"create": "创建",
|
||||
"cancel": "取消",
|
||||
"creating": "创建中..."
|
||||
}
|
||||
},
|
||||
"card": {
|
||||
"id": "ID",
|
||||
"createdAt": "创建时间",
|
||||
"updatedAt": "更新时间",
|
||||
"solutions": "{count, plural, one {解决方案} other {解决方案}}"
|
||||
}
|
||||
}
|
||||
26
ccw/frontend/src/locales/zh/lite-tasks.json
Normal file
26
ccw/frontend/src/locales/zh/lite-tasks.json
Normal file
@@ -0,0 +1,26 @@
|
||||
{
|
||||
"title": "轻量任务",
|
||||
"subtitle": "{count} 个会话",
|
||||
"type": {
|
||||
"plan": "轻量规划",
|
||||
"fix": "轻量修复",
|
||||
"multiCli": "多 CLI 规划"
|
||||
},
|
||||
"rounds": "轮",
|
||||
"empty": {
|
||||
"title": "没有 {type} 会话",
|
||||
"message": "创建新会话以开始使用。"
|
||||
},
|
||||
"flowchart": "流程图",
|
||||
"implementationFlow": "实现流程",
|
||||
"focusPaths": "关注路径",
|
||||
"acceptanceCriteria": "验收标准",
|
||||
"emptyDetail": {
|
||||
"title": "此会话中没有任务",
|
||||
"message": "此会话尚不包含任何任务。"
|
||||
},
|
||||
"notFound": {
|
||||
"title": "未找到轻量任务",
|
||||
"message": "无法找到请求的轻量任务会话。"
|
||||
}
|
||||
}
|
||||
68
ccw/frontend/src/locales/zh/loops.json
Normal file
68
ccw/frontend/src/locales/zh/loops.json
Normal file
@@ -0,0 +1,68 @@
|
||||
{
|
||||
"title": "循环监控",
|
||||
"description": "监控和控制运行中的开发循环",
|
||||
"status": {
|
||||
"created": "待处理",
|
||||
"running": "运行中",
|
||||
"paused": "已暂停",
|
||||
"completed": "已完成",
|
||||
"failed": "失败"
|
||||
},
|
||||
"actions": {
|
||||
"create": "新建循环",
|
||||
"pause": "暂停",
|
||||
"resume": "继续",
|
||||
"stop": "停止",
|
||||
"restart": "重新开始",
|
||||
"viewDetails": "查看详情"
|
||||
},
|
||||
"emptyState": {
|
||||
"title": "无活跃循环",
|
||||
"message": "启动新的开发循环以开始监控进度。",
|
||||
"createFirst": "启动新循环"
|
||||
},
|
||||
"card": {
|
||||
"step": "步骤",
|
||||
"of": "/",
|
||||
"progress": "进度",
|
||||
"prompt": "提示词",
|
||||
"tool": "工具",
|
||||
"iteration": "迭代",
|
||||
"error": "错误"
|
||||
},
|
||||
"createDialog": {
|
||||
"title": "启动新循环",
|
||||
"labels": {
|
||||
"prompt": "提示词",
|
||||
"tool": "CLI 工具(可选)"
|
||||
},
|
||||
"placeholders": {
|
||||
"prompt": "输入开发循环提示词...",
|
||||
"tool": "例如:gemini、qwen、codex"
|
||||
},
|
||||
"buttons": {
|
||||
"create": "启动",
|
||||
"cancel": "取消"
|
||||
}
|
||||
},
|
||||
"monitor": {
|
||||
"title": "循环监控",
|
||||
"loops": "循环",
|
||||
"tasks": "任务",
|
||||
"iterations": "迭代",
|
||||
"timeline": "时间线"
|
||||
},
|
||||
"taskStatus": {
|
||||
"pending": "待处理",
|
||||
"inProgress": "进行中",
|
||||
"blocked": "已阻塞",
|
||||
"done": "完成"
|
||||
},
|
||||
"columns": {
|
||||
"pending": "待处理",
|
||||
"running": "运行中",
|
||||
"paused": "已暂停",
|
||||
"completed": "已完成",
|
||||
"failed": "失败"
|
||||
}
|
||||
}
|
||||
37
ccw/frontend/src/locales/zh/mcp-manager.json
Normal file
37
ccw/frontend/src/locales/zh/mcp-manager.json
Normal file
@@ -0,0 +1,37 @@
|
||||
{
|
||||
"title": "MCP 服务器",
|
||||
"description": "管理模型上下文协议 (MCP) 服务器以实现跨 CLI 集成",
|
||||
"scope": {
|
||||
"global": "全局",
|
||||
"project": "项目"
|
||||
},
|
||||
"status": {
|
||||
"enabled": "已启用",
|
||||
"disabled": "已禁用"
|
||||
},
|
||||
"stats": {
|
||||
"total": "服务器总数",
|
||||
"enabled": "已启用",
|
||||
"global": "全局",
|
||||
"project": "项目"
|
||||
},
|
||||
"command": "命令",
|
||||
"args": "参数",
|
||||
"env": "环境变量",
|
||||
"filters": {
|
||||
"all": "全部",
|
||||
"searchPlaceholder": "按名称或命令搜索服务器..."
|
||||
},
|
||||
"actions": {
|
||||
"add": "添加服务器",
|
||||
"edit": "编辑服务器",
|
||||
"delete": "删除服务器",
|
||||
"toggle": "切换服务器",
|
||||
"expand": "查看详情"
|
||||
},
|
||||
"deleteConfirm": "确定要删除 MCP 服务器 \"{name}\" 吗?",
|
||||
"emptyState": {
|
||||
"title": "未找到 MCP 服务器",
|
||||
"message": "添加 MCP 服务器以启用与 Claude、Codex 和 Qwen 等工具的跨 CLI 集成。"
|
||||
}
|
||||
}
|
||||
65
ccw/frontend/src/locales/zh/memory.json
Normal file
65
ccw/frontend/src/locales/zh/memory.json
Normal file
@@ -0,0 +1,65 @@
|
||||
{
|
||||
"title": "记忆",
|
||||
"description": "管理核心记忆、上下文和知识库",
|
||||
"actions": {
|
||||
"add": "添加记忆",
|
||||
"edit": "编辑",
|
||||
"delete": "删除",
|
||||
"copy": "复制",
|
||||
"refresh": "刷新",
|
||||
"expand": "展开",
|
||||
"collapse": "收起"
|
||||
},
|
||||
"stats": {
|
||||
"totalSize": "总大小",
|
||||
"count": "数量",
|
||||
"claudeMdCount": "CLAUDE.md 文件",
|
||||
"totalEntries": "总条目"
|
||||
},
|
||||
"filters": {
|
||||
"search": "搜索记忆...",
|
||||
"tags": "标签",
|
||||
"clear": "清除",
|
||||
"all": "全部"
|
||||
},
|
||||
"card": {
|
||||
"id": "ID",
|
||||
"content": "内容",
|
||||
"summary": "摘要",
|
||||
"tags": "标签",
|
||||
"createdAt": "创建时间",
|
||||
"updatedAt": "更新时间",
|
||||
"size": "大小",
|
||||
"favorite": "收藏",
|
||||
"archived": "已归档"
|
||||
},
|
||||
"emptyState": {
|
||||
"title": "未存储记忆",
|
||||
"message": "添加上下文和知识以帮助 Claude 更好地理解您的项目。",
|
||||
"createFirst": "添加第一条记忆"
|
||||
},
|
||||
"createDialog": {
|
||||
"title": "添加记忆",
|
||||
"editTitle": "编辑记忆",
|
||||
"labels": {
|
||||
"content": "内容",
|
||||
"tags": "标签"
|
||||
},
|
||||
"placeholders": {
|
||||
"content": "输入记忆内容...",
|
||||
"tags": "例如:project、config、api"
|
||||
},
|
||||
"buttons": {
|
||||
"create": "添加记忆",
|
||||
"update": "更新记忆",
|
||||
"cancel": "取消",
|
||||
"creating": "创建中...",
|
||||
"updating": "更新中..."
|
||||
}
|
||||
},
|
||||
"types": {
|
||||
"coreMemory": "核心记忆",
|
||||
"workflow": "工作流",
|
||||
"cliHistory": "CLI 历史"
|
||||
}
|
||||
}
|
||||
38
ccw/frontend/src/locales/zh/navigation.json
Normal file
38
ccw/frontend/src/locales/zh/navigation.json
Normal file
@@ -0,0 +1,38 @@
|
||||
{
|
||||
"main": {
|
||||
"home": "首页",
|
||||
"sessions": "会话",
|
||||
"liteTasks": "轻量任务",
|
||||
"project": "项目",
|
||||
"history": "历史",
|
||||
"orchestrator": "编排器",
|
||||
"loops": "循环监控",
|
||||
"issues": "问题",
|
||||
"skills": "技能",
|
||||
"commands": "命令",
|
||||
"memory": "记忆",
|
||||
"settings": "设置",
|
||||
"mcp": "MCP 服务器",
|
||||
"endpoints": "CLI 端点",
|
||||
"installations": "安装",
|
||||
"help": "帮助"
|
||||
},
|
||||
"sidebar": {
|
||||
"collapse": "收起",
|
||||
"expand": "展开侧边栏",
|
||||
"collapseAria": "收起侧边栏"
|
||||
},
|
||||
"header": {
|
||||
"brand": "Claude Code Workflow",
|
||||
"brandShort": "CCW",
|
||||
"noProject": "未选择项目",
|
||||
"settings": "设置",
|
||||
"logout": "退出"
|
||||
},
|
||||
"breadcrumbs": {
|
||||
"home": "首页",
|
||||
"sessions": "会话",
|
||||
"detail": "详情",
|
||||
"settings": "设置"
|
||||
}
|
||||
}
|
||||
63
ccw/frontend/src/locales/zh/orchestrator.json
Normal file
63
ccw/frontend/src/locales/zh/orchestrator.json
Normal file
@@ -0,0 +1,63 @@
|
||||
{
|
||||
"title": "编排器",
|
||||
"description": "管理和执行工作流",
|
||||
"flow": {
|
||||
"title": "流程",
|
||||
"flows": "流程列表",
|
||||
"create": "新建流程",
|
||||
"edit": "编辑流程",
|
||||
"delete": "删除流程",
|
||||
"duplicate": "复制流程",
|
||||
"export": "导出流程",
|
||||
"import": "导入流程"
|
||||
},
|
||||
"execution": {
|
||||
"title": "执行",
|
||||
"status": "状态",
|
||||
"start": "开始",
|
||||
"pause": "暂停",
|
||||
"resume": "继续",
|
||||
"stop": "停止",
|
||||
"restart": "重新开始",
|
||||
"viewLogs": "查看日志"
|
||||
},
|
||||
"status": {
|
||||
"pending": "待处理",
|
||||
"running": "运行中",
|
||||
"paused": "已暂停",
|
||||
"completed": "已完成",
|
||||
"failed": "失败"
|
||||
},
|
||||
"node": {
|
||||
"title": "节点",
|
||||
"nodes": "节点列表",
|
||||
"add": "添加节点",
|
||||
"edit": "编辑节点",
|
||||
"delete": "删除节点",
|
||||
"status": "节点状态",
|
||||
"result": "结果"
|
||||
},
|
||||
"actions": {
|
||||
"execute": "执行",
|
||||
"validate": "验证",
|
||||
"save": "保存",
|
||||
"cancel": "取消"
|
||||
},
|
||||
"emptyState": {
|
||||
"noFlows": {
|
||||
"title": "未找到流程",
|
||||
"message": "创建第一个工作流流程以开始。"
|
||||
},
|
||||
"noExecution": {
|
||||
"title": "无执行历史",
|
||||
"message": "执行流程以查看执行历史。"
|
||||
}
|
||||
},
|
||||
"monitor": {
|
||||
"title": "执行监控",
|
||||
"logs": "日志",
|
||||
"timeline": "时间线",
|
||||
"variables": "变量",
|
||||
"realtime": "实时更新"
|
||||
}
|
||||
}
|
||||
52
ccw/frontend/src/locales/zh/project-overview.json
Normal file
52
ccw/frontend/src/locales/zh/project-overview.json
Normal file
@@ -0,0 +1,52 @@
|
||||
{
|
||||
"noDescription": "暂无描述",
|
||||
"header": {
|
||||
"initialized": "初始化时间"
|
||||
},
|
||||
"techStack": {
|
||||
"title": "技术栈",
|
||||
"languages": "编程语言",
|
||||
"frameworks": "框架",
|
||||
"buildTools": "构建工具",
|
||||
"testFrameworks": "测试框架",
|
||||
"primary": "主要",
|
||||
"noLanguages": "未检测到编程语言",
|
||||
"noFrameworks": "未检测到框架"
|
||||
},
|
||||
"architecture": {
|
||||
"title": "架构",
|
||||
"style": "架构风格",
|
||||
"layers": "分层",
|
||||
"patterns": "设计模式"
|
||||
},
|
||||
"components": {
|
||||
"title": "核心组件",
|
||||
"importance": {
|
||||
"high": "高",
|
||||
"medium": "中",
|
||||
"low": "低"
|
||||
}
|
||||
},
|
||||
"devIndex": {
|
||||
"title": "开发历史",
|
||||
"categories": "分类",
|
||||
"timeline": "时间线"
|
||||
},
|
||||
"guidelines": {
|
||||
"title": "项目规范",
|
||||
"conventions": "约定",
|
||||
"constraints": "约束",
|
||||
"qualityRules": "质量规则",
|
||||
"learnings": "学习总结",
|
||||
"scope": "范围"
|
||||
},
|
||||
"stats": {
|
||||
"title": "统计",
|
||||
"totalFeatures": "总功能数",
|
||||
"lastUpdated": "最后更新"
|
||||
},
|
||||
"empty": {
|
||||
"title": "暂无项目概览",
|
||||
"message": "运行 /workflow:init 初始化项目分析"
|
||||
}
|
||||
}
|
||||
41
ccw/frontend/src/locales/zh/review-session.json
Normal file
41
ccw/frontend/src/locales/zh/review-session.json
Normal file
@@ -0,0 +1,41 @@
|
||||
{
|
||||
"title": "审查会话",
|
||||
"type": "审查",
|
||||
"severity": {
|
||||
"critical": "严重",
|
||||
"high": "高",
|
||||
"medium": "中",
|
||||
"low": "低"
|
||||
},
|
||||
"stats": {
|
||||
"total": "总发现",
|
||||
"dimensions": "维度"
|
||||
},
|
||||
"search": {
|
||||
"placeholder": "搜索发现..."
|
||||
},
|
||||
"sort": {
|
||||
"severity": "按严重程度",
|
||||
"dimension": "按维度",
|
||||
"file": "按文件"
|
||||
},
|
||||
"selection": {
|
||||
"count": "已选择 {count} 项",
|
||||
"selectAll": "全选",
|
||||
"clearAll": "清除全部",
|
||||
"clear": "清除"
|
||||
},
|
||||
"export": "导出修复 JSON",
|
||||
"codeContext": "代码上下文",
|
||||
"rootCause": "根本原因",
|
||||
"impact": "影响",
|
||||
"recommendations": "建议",
|
||||
"empty": {
|
||||
"title": "未找到发现",
|
||||
"message": "尝试调整筛选条件或搜索查询。"
|
||||
},
|
||||
"notFound": {
|
||||
"title": "未找到审查会话",
|
||||
"message": "无法找到请求的审查会话。"
|
||||
}
|
||||
}
|
||||
54
ccw/frontend/src/locales/zh/session-detail.json
Normal file
54
ccw/frontend/src/locales/zh/session-detail.json
Normal file
@@ -0,0 +1,54 @@
|
||||
{
|
||||
"notFound": {
|
||||
"title": "会话未找到",
|
||||
"message": "您要查找的会话不存在或已被删除。"
|
||||
},
|
||||
"tabs": {
|
||||
"tasks": "任务",
|
||||
"context": "上下文",
|
||||
"summary": "摘要"
|
||||
},
|
||||
"tasks": {
|
||||
"completed": "已完成",
|
||||
"inProgress": "进行中",
|
||||
"pending": "待处理",
|
||||
"blocked": "已阻塞",
|
||||
"status": {
|
||||
"pending": "待处理",
|
||||
"inProgress": "进行中",
|
||||
"completed": "已完成",
|
||||
"blocked": "已阻塞",
|
||||
"skipped": "已跳过"
|
||||
},
|
||||
"untitled": "无标题任务",
|
||||
"empty": {
|
||||
"title": "未找到任务",
|
||||
"message": "该会话暂无任务。"
|
||||
}
|
||||
},
|
||||
"context": {
|
||||
"requirements": "需求",
|
||||
"focusPaths": "关注路径",
|
||||
"artifacts": "产物",
|
||||
"sharedContext": "共享上下文",
|
||||
"techStack": "技术栈",
|
||||
"conventions": "约定",
|
||||
"empty": {
|
||||
"title": "暂无上下文",
|
||||
"message": "该会话暂无上下文信息。"
|
||||
}
|
||||
},
|
||||
"summary": {
|
||||
"title": "会话摘要",
|
||||
"empty": {
|
||||
"title": "暂无摘要",
|
||||
"message": "该会话暂无摘要。"
|
||||
}
|
||||
},
|
||||
"info": {
|
||||
"created": "创建时间",
|
||||
"updated": "更新时间",
|
||||
"tasks": "任务",
|
||||
"description": "描述"
|
||||
}
|
||||
}
|
||||
48
ccw/frontend/src/locales/zh/sessions.json
Normal file
48
ccw/frontend/src/locales/zh/sessions.json
Normal file
@@ -0,0 +1,48 @@
|
||||
{
|
||||
"title": "会话",
|
||||
"description": "管理工作流会话并跟踪进度",
|
||||
"status": {
|
||||
"planning": "规划中",
|
||||
"inProgress": "进行中",
|
||||
"completed": "已完成",
|
||||
"archived": "已归档",
|
||||
"paused": "已暂停"
|
||||
},
|
||||
"actions": {
|
||||
"viewDetails": "查看详情",
|
||||
"archive": "归档",
|
||||
"delete": "删除",
|
||||
"restore": "恢复",
|
||||
"pause": "暂停",
|
||||
"resume": "继续"
|
||||
},
|
||||
"filters": {
|
||||
"all": "全部",
|
||||
"active": "活跃",
|
||||
"planning": "规划中",
|
||||
"completed": "已完成",
|
||||
"archived": "已归档",
|
||||
"paused": "已暂停"
|
||||
},
|
||||
"searchPlaceholder": "搜索会话...",
|
||||
"emptyState": {
|
||||
"title": "未找到会话",
|
||||
"message": "没有符合当前筛选条件的工作流会话。",
|
||||
"createFirst": "创建第一个会话以开始"
|
||||
},
|
||||
"card": {
|
||||
"tasks": "任务",
|
||||
"findings": "发现",
|
||||
"dimensions": "维度",
|
||||
"progress": "进度",
|
||||
"createdAt": "创建时间",
|
||||
"updatedAt": "更新时间"
|
||||
},
|
||||
"detail": {
|
||||
"overview": "概览",
|
||||
"tasks": "任务",
|
||||
"summary": "摘要",
|
||||
"metadata": "元数据",
|
||||
"timeline": "时间线"
|
||||
}
|
||||
}
|
||||
42
ccw/frontend/src/locales/zh/skills.json
Normal file
42
ccw/frontend/src/locales/zh/skills.json
Normal file
@@ -0,0 +1,42 @@
|
||||
{
|
||||
"title": "技能",
|
||||
"description": "管理和配置技能",
|
||||
"source": {
|
||||
"builtin": "内置",
|
||||
"custom": "自定义",
|
||||
"community": "社区"
|
||||
},
|
||||
"actions": {
|
||||
"viewDetails": "查看详情",
|
||||
"configure": "配置",
|
||||
"enable": "启用",
|
||||
"disable": "禁用",
|
||||
"toggle": "切换",
|
||||
"install": "安装技能"
|
||||
},
|
||||
"state": {
|
||||
"enabled": "已启用",
|
||||
"disabled": "已禁用",
|
||||
"on": "开启",
|
||||
"off": "关闭"
|
||||
},
|
||||
"card": {
|
||||
"triggers": "触发器",
|
||||
"category": "类别",
|
||||
"author": "作者",
|
||||
"version": "版本"
|
||||
},
|
||||
"filters": {
|
||||
"all": "全部",
|
||||
"enabled": "已启用",
|
||||
"disabled": "已禁用"
|
||||
},
|
||||
"view": {
|
||||
"grid": "网格视图",
|
||||
"compact": "紧凑视图"
|
||||
},
|
||||
"emptyState": {
|
||||
"title": "未找到技能",
|
||||
"message": "没有符合当前筛选条件的技能。"
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user