mirror of
https://github.com/catlog22/Claude-Code-Workflow.git
synced 2026-02-28 09:23:08 +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."
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user