mirror of
https://github.com/Ed1s0nZ/CyberStrikeAI.git
synced 2026-07-13 23:47:24 +02:00
926 lines
36 KiB
JSON
926 lines
36 KiB
JSON
{
|
|
"common": {
|
|
"ok": "OK",
|
|
"cancel": "Cancel",
|
|
"refresh": "Refresh",
|
|
"close": "Close",
|
|
"edit": "Edit",
|
|
"delete": "Delete",
|
|
"save": "Save",
|
|
"loading": "Loading…",
|
|
"search": "Search",
|
|
"clearSearch": "Clear search",
|
|
"noData": "No data",
|
|
"confirm": "Confirm",
|
|
"copy": "Copy",
|
|
"copied": "Copied",
|
|
"copyFailed": "Copy failed"
|
|
},
|
|
"header": {
|
|
"title": "CyberStrikeAI",
|
|
"apiDocs": "API Docs",
|
|
"logout": "Sign out",
|
|
"language": "Interface language",
|
|
"backToDashboard": "Back to dashboard",
|
|
"userMenu": "User menu",
|
|
"version": "Current version",
|
|
"toggleSidebar": "Collapse/expand sidebar"
|
|
},
|
|
"login": {
|
|
"title": "Sign in to CyberStrikeAI",
|
|
"subtitle": "Enter the access password from config",
|
|
"passwordLabel": "Password",
|
|
"passwordPlaceholder": "Enter password",
|
|
"submit": "Sign in"
|
|
},
|
|
"nav": {
|
|
"dashboard": "Dashboard",
|
|
"chat": "Chat",
|
|
"infoCollect": "Recon",
|
|
"tasks": "Tasks",
|
|
"vulnerabilities": "Vulnerabilities",
|
|
"mcp": "MCP",
|
|
"mcpMonitor": "MCP Monitor",
|
|
"mcpManagement": "MCP Management",
|
|
"knowledge": "Knowledge",
|
|
"knowledgeRetrievalLogs": "Retrieval history",
|
|
"knowledgeManagement": "Knowledge management",
|
|
"skills": "Skills",
|
|
"skillsMonitor": "Skills monitor",
|
|
"skillsManagement": "Skills management",
|
|
"roles": "Roles",
|
|
"rolesManagement": "Roles management",
|
|
"settings": "System settings"
|
|
},
|
|
"dashboard": {
|
|
"title": "Dashboard",
|
|
"refresh": "Refresh",
|
|
"refreshData": "Refresh data",
|
|
"runningTasks": "Running tasks",
|
|
"vulnTotal": "Total vulnerabilities",
|
|
"toolCalls": "Tool invocations",
|
|
"successRate": "Tool success rate",
|
|
"clickToViewTasks": "Click to view tasks",
|
|
"clickToViewVuln": "Click to view vulnerabilities",
|
|
"clickToViewMCP": "Click to view MCP monitor",
|
|
"severityDistribution": "Vulnerability severity distribution",
|
|
"severityCritical": "Critical",
|
|
"severityHigh": "High",
|
|
"severityMedium": "Medium",
|
|
"severityLow": "Low",
|
|
"severityInfo": "Info",
|
|
"runOverview": "Run overview",
|
|
"batchQueues": "Batch task queues",
|
|
"pending": "Pending",
|
|
"executing": "Running",
|
|
"completed": "Completed",
|
|
"toolInvocations": "Tool invocations",
|
|
"callsUnit": "calls",
|
|
"toolsUnit": "tools",
|
|
"knowledgeLabel": "Knowledge",
|
|
"knowledgeItems": "items",
|
|
"categoriesUnit": "categories",
|
|
"skillsLabel": "Skills",
|
|
"skillUnit": "Skills",
|
|
"quickLinks": "Quick links",
|
|
"toolsExecCount": "Tool execution count",
|
|
"ctaTitle": "Start your security journey",
|
|
"ctaSub": "Describe your target in chat, AI will assist with scanning and vulnerability analysis",
|
|
"goToChat": "Go to chat",
|
|
"noTasks": "No tasks",
|
|
"totalCount": "{{count}} total",
|
|
"notEnabled": "Disabled",
|
|
"enabled": "Enabled",
|
|
"toConfigure": "To configure",
|
|
"toUse": "To use",
|
|
"active": "Active",
|
|
"highFreq": "High frequency",
|
|
"noCallData": "No call data"
|
|
},
|
|
"chat": {
|
|
"newChat": "New chat",
|
|
"searchHistory": "Search history...",
|
|
"conversationGroups": "Conversation groups",
|
|
"addGroup": "New group",
|
|
"recentConversations": "Recent conversations",
|
|
"batchManage": "Batch manage",
|
|
"attackChain": "Attack chain",
|
|
"viewAttackChain": "View attack chain",
|
|
"selectRole": "Select role",
|
|
"defaultRole": "Default",
|
|
"inputPlaceholder": "Enter target or command... (type @ to select tools | Shift+Enter newline, Enter send)",
|
|
"selectFile": "Select file",
|
|
"uploadFile": "Upload file (multi-select or drag & drop)",
|
|
"send": "Send",
|
|
"searchInGroup": "Search in group...",
|
|
"loadingTools": "Loading tools...",
|
|
"noMatchTools": "No matching tools",
|
|
"penetrationTestDetail": "Penetration test details",
|
|
"expandDetail": "Expand details",
|
|
"noProcessDetail": "No process details (execution may be too fast or no detailed events)",
|
|
"copyMessageTitle": "Copy message",
|
|
"emptyGroupConversations": "This group has no conversations yet.",
|
|
"noMatchingConversationsInGroup": "No matching conversations found.",
|
|
"renameGroupPrompt": "Please enter new name:",
|
|
"deleteGroupConfirm": "Are you sure you want to delete this group? Conversations in the group will not be deleted, but will be removed from the group.",
|
|
"deleteConversationConfirm": "Are you sure you want to delete this conversation?",
|
|
"renameFailed": "Rename failed",
|
|
"viewAttackChainSelectConv": "Please select a conversation to view attack chain",
|
|
"viewAttackChainCurrentConv": "View attack chain of current conversation",
|
|
"executeFailed": "Execution failed",
|
|
"callOpenAIFailed": "Call OpenAI failed",
|
|
"systemReadyMessage": "System is ready. Please enter your test requirements, and the system will automatically perform the corresponding security tests.",
|
|
"addNewGroup": "+ New group"
|
|
},
|
|
"tasks": {
|
|
"title": "Task management",
|
|
"newTask": "New task",
|
|
"autoRefresh": "Auto refresh",
|
|
"historyHint": "Tip: Completed task history available. Check \"Show history\" to view.",
|
|
"statusRunning": "Running",
|
|
"statusCancelling": "Cancelling",
|
|
"statusFailed": "Failed",
|
|
"statusTimeout": "Timeout",
|
|
"statusCancelled": "Cancelled",
|
|
"statusCompleted": "Completed",
|
|
"historyBadge": "History",
|
|
"duration": "Duration",
|
|
"completedAt": "Completed at",
|
|
"startedAt": "Started at",
|
|
"clickToCopy": "Click to copy",
|
|
"unnamedTask": "Unnamed task",
|
|
"unknown": "Unknown",
|
|
"unknownTime": "Unknown time",
|
|
"clearHistoryConfirm": "Clear all task history?",
|
|
"cancelTaskFailed": "Cancel task failed",
|
|
"copiedToast": "Copied!",
|
|
"cancelling": "Cancelling...",
|
|
"enterTaskPrompt": "Enter at least one task",
|
|
"noValidTask": "No valid tasks",
|
|
"createBatchQueueFailed": "Failed to create batch task queue",
|
|
"noBatchQueues": "Currently there are no batch task queues",
|
|
"recentCompletedTasks": "Recently completed tasks (last 24 hours)",
|
|
"clearHistory": "Clear history",
|
|
"cancelTask": "Cancel task",
|
|
"viewConversation": "View conversation",
|
|
"conversationIdLabel": "Conversation ID",
|
|
"statusPending": "Pending",
|
|
"statusPaused": "Paused",
|
|
"confirmCancelTasks": "Cancel {{n}} selected task(s)?",
|
|
"batchCancelResultPartial": "Batch cancel: {{success}} succeeded, {{fail}} failed",
|
|
"batchCancelResultSuccess": "Successfully cancelled {{n}} task(s)",
|
|
"taskCount": "{{count}} task(s)",
|
|
"queueIdLabel": "Queue ID",
|
|
"createdTimeLabel": "Created at",
|
|
"totalLabel": "Total",
|
|
"pendingLabel": "Pending",
|
|
"runningLabel": "Running",
|
|
"completedLabel": "Completed",
|
|
"failedLabel": "Failed",
|
|
"cancelledLabel": "Cancelled",
|
|
"loadingTasks": "Loading...",
|
|
"loadFailedRetry": "Load failed",
|
|
"loadTaskListFailed": "Failed to load task list",
|
|
"getQueueDetailFailed": "Failed to load queue details",
|
|
"startBatchQueueFailed": "Failed to start batch queue",
|
|
"pauseQueueFailed": "Failed to pause queue",
|
|
"pauseQueueConfirm": "Pause this batch queue? The current task will be stopped; remaining tasks will stay pending.",
|
|
"deleteQueueConfirm": "Delete this batch queue? This cannot be undone.",
|
|
"deleteQueueFailed": "Failed to delete batch queue",
|
|
"batchQueueTitle": "Batch task queue",
|
|
"resumeExecute": "Resume",
|
|
"taskIncomplete": "Task information incomplete",
|
|
"cannotGetTaskMessageInput": "Cannot get task message input",
|
|
"taskMessageRequired": "Task message is required",
|
|
"saveTaskFailed": "Failed to save task",
|
|
"queueInfoMissing": "Queue information not found",
|
|
"addTaskFailed": "Failed to add task",
|
|
"confirmDeleteTask": "Delete this task?\n\nTask: {{message}}\n\nThis cannot be undone.",
|
|
"deleteTaskFailed": "Failed to delete task",
|
|
"paginationShow": "{{start}}-{{end}} of {{total}}",
|
|
"paginationPerPage": "Per page",
|
|
"paginationFirst": "First",
|
|
"paginationPrev": "Previous",
|
|
"paginationNext": "Next",
|
|
"paginationLast": "Last",
|
|
"paginationPage": "Page {{current}} / {{total}}",
|
|
"deleteQueue": "Delete queue",
|
|
"retry": "Retry",
|
|
"noMatchingTasks": "No matching tasks",
|
|
"updateTaskFailed": "Failed to update task",
|
|
"durationSeconds": "s",
|
|
"durationMinutes": "m",
|
|
"durationHours": "h"
|
|
},
|
|
"infoCollect": {
|
|
"enterFofaQuery": "Enter FOFA query syntax",
|
|
"querying": "Querying...",
|
|
"queryFailed": "Query failed",
|
|
"enterNaturalLanguage": "Enter natural language description",
|
|
"cancelParse": "Cancel parse",
|
|
"clickToCancelParse": "Click to cancel AI parse",
|
|
"parseToFofa": "Parse natural language to FOFA query",
|
|
"parseResultEmpty": "Parse result empty: Please add/modify FOFA query in popup",
|
|
"queryPlaceholder": "e.g. app=\"Apache\" && country=\"CN\"",
|
|
"selectAll": "Select all/none",
|
|
"selectRow": "Select row",
|
|
"copyTarget": "Copy target",
|
|
"sendToChat": "Send to chat (editable; Ctrl/Cmd+click to send directly)",
|
|
"noTargetToCopy": "No target to copy",
|
|
"targetCopied": "Target copied",
|
|
"manualCopyHint": "Copy failed, please copy manually: ",
|
|
"cannotInferTarget": "Cannot infer scan target from row (include host/ip/port/domain in fields)",
|
|
"noSendMessage": "sendMessage() not found, please refresh and retry",
|
|
"filledToInput": "Filled to chat input, edit and send",
|
|
"noExportResult": "No results to export",
|
|
"xlsxNotLoaded": "XLSX library not loaded, please refresh and retry",
|
|
"noResults": "No results",
|
|
"selectRowsFirst": "Select rows to scan first",
|
|
"noScanTarget": "No scan targets inferred from selection (include host/ip/port/domain in fields)",
|
|
"batchScanFailed": "Batch scan failed",
|
|
"batchQueueCreated": "Batch scan queue created",
|
|
"field": "Field",
|
|
"parsePending": "AI parsing...",
|
|
"parsePendingClickCancel": "AI parsing... (click button to cancel)",
|
|
"parseSlow": "AI parse is taking a while, still processing…",
|
|
"parseDone": "AI parse complete",
|
|
"parseCancelled": "AI parse cancelled",
|
|
"parseFailed": "AI parse failed: ",
|
|
"parseResultTitle": "AI parse result",
|
|
"naturalLanguageLabel": "Natural language",
|
|
"fofaQueryEditable": "FOFA query (editable)",
|
|
"confirmBeforeQuery": "Confirm syntax and scope before running the query.",
|
|
"reminder": "Reminder",
|
|
"explanation": "Explanation",
|
|
"actions": "Actions",
|
|
"batchScanTitle": "FOFA batch scan",
|
|
"queueCreatedSkipped": "Queue created ({{n}} rows skipped, no target)",
|
|
"createQueueFailed": "Failed to create batch queue",
|
|
"loading": "Loading...",
|
|
"none": "None",
|
|
"truncated": "truncated",
|
|
"resultsMeta": "Total {{total}} · This page {{count}} · page={{page}} · size={{size}}",
|
|
"parseModalCancel": "Cancel",
|
|
"parseModalApply": "Fill into query",
|
|
"parseModalApplyRun": "Fill and query"
|
|
},
|
|
"vulnerability": {
|
|
"title": "Vulnerability management",
|
|
"addVuln": "Add vulnerability",
|
|
"editVuln": "Edit vulnerability",
|
|
"loadFailed": "Failed to load vulnerabilities",
|
|
"deleteConfirm": "Delete this vulnerability?"
|
|
},
|
|
"mcp": {
|
|
"monitorTitle": "MCP Status Monitor",
|
|
"execStats": "Execution stats",
|
|
"latestExecutions": "Latest executions",
|
|
"toolSearch": "Tool search",
|
|
"toolSearchPlaceholder": "Enter tool name...",
|
|
"statusFilter": "Status filter",
|
|
"filterAll": "All",
|
|
"selectedCount": "{{count}} selected",
|
|
"selectAll": "Select all",
|
|
"deselectAll": "Deselect all",
|
|
"deleteSelected": "Batch delete",
|
|
"deleteExecConfirm": "Delete this execution record?",
|
|
"batchDeleteFailed": "Batch delete failed",
|
|
"managementTitle": "MCP Management",
|
|
"addExternal": "Add external MCP",
|
|
"toolConfig": "MCP tool config",
|
|
"saveToolConfig": "Save tool config",
|
|
"externalConfig": "External MCP config",
|
|
"loadingTools": "Loading tools...",
|
|
"loadToolsTimeout": "Tools load timeout. External MCP may be slow. Click Refresh to retry or check connection.",
|
|
"loadToolsFailed": "Failed to load tools",
|
|
"noTools": "No tools",
|
|
"externalBadge": "External",
|
|
"externalFrom": "External ({{name}})",
|
|
"externalToolFrom": "External MCP - Source: {{name}}",
|
|
"noDescription": "No description",
|
|
"paginationInfo": "{{start}}-{{end}} of {{total}} tools",
|
|
"perPage": "Per page:",
|
|
"firstPage": "First",
|
|
"prevPage": "Previous",
|
|
"nextPage": "Next",
|
|
"lastPage": "Last",
|
|
"pageInfo": "Page {{page}} of {{total}}",
|
|
"currentPageEnabled": "Enabled on current page",
|
|
"totalEnabled": "Total enabled",
|
|
"toolsConfigSaved": "Tool configuration saved!",
|
|
"saveToolsConfigFailed": "Failed to save tool config",
|
|
"getConfigFailed": "Failed to get config",
|
|
"noExternalMCP": "No external MCP configured",
|
|
"clickToAddExternal": "Click \"Add external MCP\" to configure",
|
|
"connected": "Connected",
|
|
"connecting": "Connecting...",
|
|
"connectionFailed": "Connection failed",
|
|
"disabled": "Disabled",
|
|
"disconnected": "Disconnected",
|
|
"stopConnection": "Stop connection",
|
|
"startConnection": "Start connection",
|
|
"stop": "Stop",
|
|
"start": "Start",
|
|
"editConfig": "Edit config",
|
|
"deleteConfig": "Delete config",
|
|
"transportMode": "Transport",
|
|
"toolCount": "Tool count",
|
|
"description": "Description",
|
|
"timeout": "Timeout",
|
|
"command": "Command",
|
|
"addExternalMCP": "Add external MCP",
|
|
"editExternalMCP": "Edit external MCP",
|
|
"jsonEmpty": "JSON cannot be empty",
|
|
"jsonError": "JSON format error",
|
|
"configMustBeObject": "Config error: Must be JSON object with name as key",
|
|
"configNeedOne": "Config error: At least one config item required",
|
|
"configNameEmpty": "Config error: Name cannot be empty",
|
|
"configMustBeObj": "Config error: \"{{name}}\" must be object",
|
|
"configNeedCommand": "Config error: \"{{name}}\" needs command (stdio) or url (http/sse)",
|
|
"configStdioNeedCommand": "Config error: \"{{name}}\" stdio mode needs command",
|
|
"configHttpNeedUrl": "Config error: \"{{name}}\" http mode needs url",
|
|
"configSseNeedUrl": "Config error: \"{{name}}\" sse mode needs url",
|
|
"saveSuccess": "Saved",
|
|
"deleteSuccess": "Deleted",
|
|
"deleteExternalConfirm": "Delete external MCP \"{{name}}\"?",
|
|
"operationFailed": "Operation failed",
|
|
"connectionFailedCheck": "Connection failed. Check config and network.",
|
|
"connectionTimeout": "Connection timeout. Check config and network.",
|
|
"totalCount": "Total",
|
|
"enabledCount": "Enabled",
|
|
"disabledCount": "Disabled",
|
|
"connectedCount": "Connected"
|
|
},
|
|
"settings": {
|
|
"title": "System settings",
|
|
"nav": {
|
|
"basic": "Basic",
|
|
"robots": "Bots",
|
|
"terminal": "Terminal",
|
|
"security": "Security"
|
|
},
|
|
"robots": {
|
|
"title": "Bot settings",
|
|
"description": "Configure WeCom, DingTalk and Lark bots so you can chat with CyberStrikeAI on your phone without opening the web UI.",
|
|
"wecom": {
|
|
"title": "WeCom",
|
|
"enabled": "Enable WeCom bot"
|
|
},
|
|
"dingtalk": {
|
|
"title": "DingTalk",
|
|
"enabled": "Enable DingTalk bot"
|
|
},
|
|
"lark": {
|
|
"title": "Lark",
|
|
"enabled": "Enable Lark bot"
|
|
}
|
|
},
|
|
"apply": {
|
|
"button": "Apply configuration",
|
|
"loadFailed": "Failed to load configuration",
|
|
"fillRequired": "Please fill in all required fields (marked with *)",
|
|
"applyFailed": "Failed to apply configuration",
|
|
"applySuccess": "Configuration applied successfully!"
|
|
},
|
|
"security": {
|
|
"changePassword": "Change password",
|
|
"fillPasswordHint": "Fill current and new password correctly. New password at least 8 characters, must match twice.",
|
|
"changePasswordFailed": "Failed to change password",
|
|
"passwordUpdated": "Password updated. Please sign in again with new password."
|
|
}
|
|
},
|
|
"auth": {
|
|
"sessionExpired": "Session expired, please sign in again",
|
|
"unauthorized": "Unauthorized",
|
|
"enterPassword": "Please enter password",
|
|
"loginFailedCheck": "Sign-in failed, please check the password",
|
|
"loginFailedRetry": "Sign-in failed, please try again later",
|
|
"loggedOut": "Signed out"
|
|
},
|
|
"knowledge": {
|
|
"title": "Knowledge management",
|
|
"retrievalLogs": "Retrieval history",
|
|
"totalItems": "Total items",
|
|
"categories": "Categories",
|
|
"addKnowledge": "Add knowledge",
|
|
"rebuildIndex": "Rebuild index",
|
|
"rebuildIndexConfirm": "Rebuild index?",
|
|
"deleteItemConfirm": "Delete this knowledge item?",
|
|
"notEnabledTitle": "Knowledge base function not enabled",
|
|
"notEnabledHint": "Please go to system settings to enable knowledge retrieval.",
|
|
"goToSettings": "Go to settings"
|
|
},
|
|
"roles": {
|
|
"title": "Role management",
|
|
"createRole": "Create role",
|
|
"searchPlaceholder": "Search roles...",
|
|
"deleteConfirm": "Delete this role?"
|
|
},
|
|
"skills": {
|
|
"title": "Skills management",
|
|
"monitorTitle": "Skills monitor",
|
|
"createSkill": "Create Skill",
|
|
"callStats": "Call stats",
|
|
"addSkill": "Add Skill",
|
|
"editSkill": "Edit Skill",
|
|
"loadListFailed": "Failed to load skills list",
|
|
"noSkills": "No skills. Click \"Create Skill\" to add first.",
|
|
"noMatch": "No matching skills",
|
|
"searchFailed": "Search failed",
|
|
"refreshed": "Refreshed",
|
|
"loadDetailFailed": "Failed to load skill details",
|
|
"viewFailed": "Failed to view skill",
|
|
"saving": "Saving...",
|
|
"saveFailed": "Failed to save skill",
|
|
"deleteFailed": "Failed to delete skill",
|
|
"loadStatsFailed": "Failed to load skills monitor data",
|
|
"clearStatsConfirm": "Clear all Skills statistics? This cannot be undone.",
|
|
"statsCleared": "Skills statistics cleared",
|
|
"clearStatsFailed": "Failed to clear statistics"
|
|
},
|
|
"apiDocs": {
|
|
"curlCopied": "curl command copied to clipboard!"
|
|
},
|
|
"chatGroup": {
|
|
"search": "Search",
|
|
"edit": "Edit",
|
|
"delete": "Delete",
|
|
"clearSearch": "Clear search",
|
|
"searchInGroupPlaceholder": "Search in group...",
|
|
"attackChain": "Attack chain",
|
|
"viewAttackChain": "View attack chain",
|
|
"selectRole": "Select role",
|
|
"close": "Close",
|
|
"selectFile": "Select file",
|
|
"uploadFile": "Upload file (multi-select or drag & drop)",
|
|
"send": "Send",
|
|
"rolePanelTitle": "Select role",
|
|
"copyMessage": "Copy message",
|
|
"remove": "Remove"
|
|
},
|
|
"mcpMonitor": {
|
|
"deselectAll": "Deselect all",
|
|
"statusPending": "Pending",
|
|
"statusCompleted": "Completed",
|
|
"statusRunning": "Running",
|
|
"statusFailed": "Failed",
|
|
"loading": "Loading...",
|
|
"noStatsData": "No statistical data",
|
|
"noExecutions": "No execution records",
|
|
"noRecordsWithFilter": "No records with current filter",
|
|
"paginationInfo": "Show {{start}}-{{end}} of {{total}} records",
|
|
"perPageLabel": "Per page",
|
|
"loadStatsError": "Failed to load statistics",
|
|
"loadExecutionsError": "Failed to load execution records",
|
|
"totalCalls": "Total calls",
|
|
"successFailed": "Success {{success}} / Failed {{failed}}",
|
|
"successRate": "Success rate",
|
|
"statsFromAllTools": "From all tool calls",
|
|
"lastCall": "Last call",
|
|
"lastRefreshTime": "Last refresh",
|
|
"noCallsYet": "No calls yet",
|
|
"unknownTool": "Unknown tool",
|
|
"successFailedRate": "Success {{success}} / Failed {{failed}} · {{rate}}% success rate",
|
|
"columnTool": "Tool",
|
|
"columnStatus": "Status",
|
|
"columnStartTime": "Start time",
|
|
"columnDuration": "Duration",
|
|
"columnActions": "Actions",
|
|
"viewDetail": "View details",
|
|
"delete": "Delete",
|
|
"deleteExecTitle": "Delete this execution record",
|
|
"deleteExecConfirmSingle": "Are you sure you want to delete this execution record? This cannot be undone.",
|
|
"deleteExecFailed": "Failed to delete execution record",
|
|
"execDeleted": "Execution record deleted",
|
|
"selectExecFirst": "Please select execution record(s) to delete first",
|
|
"batchDeleteConfirm": "Are you sure you want to delete the selected {{count}} execution record(s)? This cannot be undone.",
|
|
"batchDeleteSuccess": "Successfully deleted {{count}} execution record(s)",
|
|
"unknown": "Unknown",
|
|
"durationSeconds": "{{n}} sec",
|
|
"durationMinutes": "{{minutes}} min {{seconds}} sec",
|
|
"durationMinutesOnly": "{{minutes}} min",
|
|
"durationHours": "{{hours}} hr {{minutes}} min",
|
|
"durationHoursOnly": "{{hours}} hr"
|
|
},
|
|
"knowledgePage": {
|
|
"totalContent": "Total content",
|
|
"categoryFilter": "Category filter",
|
|
"all": "All",
|
|
"searchPlaceholder": "Search knowledge...",
|
|
"loading": "Loading..."
|
|
},
|
|
"retrievalLogs": {
|
|
"totalRetrievals": "Total retrievals",
|
|
"successRetrievals": "Success",
|
|
"successRate": "Success rate",
|
|
"retrievedItems": "Items retrieved",
|
|
"conversationId": "Conversation ID",
|
|
"messageId": "Message ID",
|
|
"filter": "Filter",
|
|
"optionalConversation": "Optional: filter by conversation",
|
|
"optionalMessage": "Optional: filter by message",
|
|
"loading": "Loading...",
|
|
"noRecords": "No retrieval records yet",
|
|
"noQuery": "No query content",
|
|
"itemsUnit": "items",
|
|
"hasResults": "Has results",
|
|
"noResults": "No results",
|
|
"clickToCopy": "Click to copy",
|
|
"retrievalResult": "Retrieval result",
|
|
"foundCount": "Found {{count}} related knowledge item(s)",
|
|
"foundUnknown": "Found related knowledge (count unknown)",
|
|
"noMatch": "No matching knowledge items",
|
|
"retrievedItemsLabel": "Retrieved knowledge items:",
|
|
"viewDetails": "View details",
|
|
"loadError": "Failed to load retrieval logs",
|
|
"detailError": "Unable to get retrieval details",
|
|
"deleteError": "Failed to delete retrieval log",
|
|
"detailsTitle": "Retrieval details",
|
|
"queryInfo": "Query info",
|
|
"queryContent": "Query content:",
|
|
"retrievalInfo": "Retrieval info",
|
|
"riskType": "Risk type",
|
|
"retrievalTime": "Retrieval time",
|
|
"noItemDetails": "No knowledge item details found",
|
|
"noContentPreview": "No content preview",
|
|
"untitled": "Untitled",
|
|
"uncategorized": "Uncategorized",
|
|
"relatedInfo": "Related info",
|
|
"itemsCount": "{{count}} knowledge item(s)",
|
|
"deleteConfirm": "Delete this retrieval record?"
|
|
},
|
|
"infoCollectPage": {
|
|
"title": "Recon",
|
|
"reset": "Reset",
|
|
"confirm": "OK",
|
|
"fofaQuerySyntax": "FOFA query syntax",
|
|
"naturalLanguage": "Natural language (AI parses to FOFA)",
|
|
"returnCount": "Return count",
|
|
"pageNum": "Page",
|
|
"returnFields": "Return fields (comma-separated)",
|
|
"queryResults": "Query results",
|
|
"selectedRows": "{{count}} selected",
|
|
"selectedRowsZero": "0 selected",
|
|
"columns": "Columns",
|
|
"exportCsv": "Export CSV",
|
|
"exportJson": "Export JSON",
|
|
"exportXlsx": "Export XLSX",
|
|
"batchScan": "Batch scan",
|
|
"showColumns": "Show columns",
|
|
"columnsPanelAll": "Select all",
|
|
"columnsPanelNone": "Deselect all",
|
|
"columnsPanelClose": "Close",
|
|
"formHint": "See FOFA docs for query syntax; supports && / || / ().",
|
|
"parseBtn": "AI parse",
|
|
"parseHint": "Result will open in a popup for editing before running the query.",
|
|
"minFields": "Min fields",
|
|
"webCommon": "Web common",
|
|
"intelEnhanced": "Intel enhanced",
|
|
"presetApache": "Apache + China",
|
|
"presetLogin": "Login page + China",
|
|
"presetDomain": "By domain",
|
|
"presetIp": "By IP",
|
|
"nlPlaceholder": "e.g. Apache sites in Missouri, US, title contains Home",
|
|
"showHideColumns": "Show/hide columns",
|
|
"exportCsvTitle": "Export results as CSV (UTF-8)",
|
|
"exportJsonTitle": "Export results as JSON",
|
|
"exportXlsxTitle": "Export results as Excel",
|
|
"batchScanTitle": "Create batch task queue from selected rows"
|
|
},
|
|
"vulnerabilityPage": {
|
|
"statTotal": "Total",
|
|
"filter": "Filter",
|
|
"clear": "Clear",
|
|
"vulnId": "Vuln ID",
|
|
"conversationId": "Conversation ID",
|
|
"severity": "Severity",
|
|
"status": "Status",
|
|
"statusOpen": "Open",
|
|
"statusConfirmed": "Confirmed",
|
|
"statusFixed": "Fixed",
|
|
"statusFalsePositive": "False positive",
|
|
"searchVulnId": "Search vuln ID",
|
|
"filterConversation": "Filter by conversation",
|
|
"loading": "Loading...",
|
|
"noRecords": "No vulnerability records"
|
|
},
|
|
"tasksPage": {
|
|
"statusFilter": "Status filter",
|
|
"statusPending": "Pending",
|
|
"statusPaused": "Paused",
|
|
"statusCancelled": "Cancelled",
|
|
"searchQueuePlaceholder": "Search queue ID, title or created time",
|
|
"searchKeywordPlaceholder": "Enter keyword..."
|
|
},
|
|
"skillsPage": {
|
|
"clearStats": "Clear stats",
|
|
"clearStatsTitle": "Clear all statistics",
|
|
"skillsCallStats": "Skills call stats",
|
|
"searchPlaceholder": "Search Skills...",
|
|
"loading": "Loading..."
|
|
},
|
|
"settingsBasic": {
|
|
"basicTitle": "Basic settings",
|
|
"openaiConfig": "OpenAI config",
|
|
"fofaConfig": "FOFA config",
|
|
"agentConfig": "Agent config",
|
|
"knowledgeConfig": "Knowledge base config",
|
|
"baseUrl": "Base URL",
|
|
"apiKey": "API Key",
|
|
"model": "Model",
|
|
"openaiBaseUrlPlaceholder": "https://api.openai.com/v1",
|
|
"openaiApiKeyPlaceholder": "Enter OpenAI API Key",
|
|
"modelPlaceholder": "gpt-4",
|
|
"fofaBaseUrlPlaceholder": "https://fofa.info/api/v1/search/all (optional)",
|
|
"fofaBaseUrlHint": "Leave empty for default.",
|
|
"email": "Email",
|
|
"fofaEmailPlaceholder": "Enter FOFA email",
|
|
"fofaApiKeyPlaceholder": "Enter FOFA API Key",
|
|
"fofaApiKeyHint": "Stored in server config (config.yaml) only.",
|
|
"maxIterations": "Max iterations",
|
|
"iterationsPlaceholder": "30",
|
|
"enableKnowledge": "Enable knowledge retrieval",
|
|
"knowledgeBasePath": "Knowledge base path",
|
|
"knowledgeBasePathPlaceholder": "knowledge_base",
|
|
"knowledgeBasePathHint": "Relative to config file directory",
|
|
"embeddingConfig": "Embedding config",
|
|
"provider": "Provider",
|
|
"embeddingBaseUrlPlaceholder": "Leave empty to use OpenAI base_url",
|
|
"embeddingApiKeyPlaceholder": "Leave empty to use OpenAI api_key",
|
|
"modelName": "Model name",
|
|
"embeddingModelPlaceholder": "text-embedding-v4",
|
|
"retrievalConfig": "Retrieval config",
|
|
"topK": "Top-K results",
|
|
"topKPlaceholder": "5",
|
|
"topKHint": "Number of top-K results to return",
|
|
"similarityThreshold": "Similarity threshold",
|
|
"similarityPlaceholder": "0.7",
|
|
"similarityHint": "Results below this value are filtered (0-1)",
|
|
"hybridWeight": "Hybrid weight",
|
|
"hybridPlaceholder": "0.7",
|
|
"hybridHint": "Vector weight (0-1); 1.0 = vector only, 0.0 = keyword only",
|
|
"indexConfig": "Index config",
|
|
"chunkSize": "Chunk size",
|
|
"chunkSizePlaceholder": "512",
|
|
"chunkSizeHint": "Max tokens per chunk (default 512)",
|
|
"chunkOverlap": "Chunk overlap",
|
|
"chunkOverlapPlaceholder": "50",
|
|
"chunkOverlapHint": "Overlap tokens between chunks (default 50)",
|
|
"maxChunksPerItem": "Max chunks per item",
|
|
"maxChunksPlaceholder": "0",
|
|
"maxChunksHint": "Max chunks per knowledge item (0 = no limit)",
|
|
"maxRpm": "Max RPM",
|
|
"maxRpmPlaceholder": "0",
|
|
"maxRpmHint": "Max requests per minute (0 = no limit)",
|
|
"rateLimitDelay": "Rate limit delay (ms)",
|
|
"rateLimitPlaceholder": "300",
|
|
"rateLimitHint": "Delay between requests (ms); 0 = no limit",
|
|
"maxRetries": "Max retries",
|
|
"maxRetriesPlaceholder": "3",
|
|
"maxRetriesHint": "Retries on rate limit or server error",
|
|
"retryDelay": "Retry delay (ms)",
|
|
"retryDelayPlaceholder": "1000",
|
|
"retryDelayHint": "Delay between retries (ms)"
|
|
},
|
|
"settingsTerminal": {
|
|
"title": "Terminal",
|
|
"description": "Run commands on the server for ops and debugging. Commands run on the server; avoid sensitive or destructive operations.",
|
|
"terminalTab": "Terminal {{n}}",
|
|
"close": "Close",
|
|
"newTerminal": "New terminal"
|
|
},
|
|
"settingsSecurity": {
|
|
"changePasswordTitle": "Change password",
|
|
"changePasswordDesc": "After changing password, sign in again with the new password.",
|
|
"currentPassword": "Current password",
|
|
"currentPasswordPlaceholder": "Enter current password",
|
|
"newPassword": "New password",
|
|
"newPasswordPlaceholder": "New password (at least 8 characters)",
|
|
"confirmPassword": "Confirm new password",
|
|
"confirmPasswordPlaceholder": "Enter new password again",
|
|
"clear": "Clear",
|
|
"changePasswordBtn": "Change password"
|
|
},
|
|
"settingsRobotsExtra": {
|
|
"botCommandsTitle": "Bot commands",
|
|
"botCommandsDesc": "You can send these commands in chat (Chinese and English supported):"
|
|
},
|
|
"mcpDetailModal": {
|
|
"title": "Tool call details",
|
|
"execInfo": "Execution info",
|
|
"tool": "Tool",
|
|
"status": "Status",
|
|
"time": "Time",
|
|
"executionId": "Execution ID",
|
|
"requestParams": "Request params",
|
|
"copyJson": "Copy JSON",
|
|
"responseResult": "Response",
|
|
"copyContent": "Copy content",
|
|
"correctInfo": "Correct info",
|
|
"errorInfo": "Error info",
|
|
"copyError": "Copy error"
|
|
},
|
|
"attackChainModal": {
|
|
"title": "Attack chain",
|
|
"regenerate": "Regenerate",
|
|
"regenerateTitle": "Regenerate attack chain (include latest conversation)",
|
|
"exportPng": "Export PNG",
|
|
"exportSvg": "Export SVG",
|
|
"refreshTitle": "Refresh current attack chain",
|
|
"nodesEdges": "Nodes: {{nodes}} | Edges: {{edges}}",
|
|
"searchPlaceholder": "Search nodes...",
|
|
"allTypes": "All types",
|
|
"target": "Target",
|
|
"action": "Action",
|
|
"vulnerability": "Vulnerability",
|
|
"allRisks": "All risks",
|
|
"highRisk": "High (80-100)",
|
|
"mediumHighRisk": "Medium-high (60-79)",
|
|
"mediumRisk": "Medium (40-59)",
|
|
"lowRisk": "Low (0-39)",
|
|
"resetFilter": "Reset filter",
|
|
"loading": "Loading...",
|
|
"riskLevel": "Risk level",
|
|
"lineMeaning": "Line meaning",
|
|
"blueLine": "Blue: action finds vulnerability",
|
|
"redLine": "Red: enables/contributes",
|
|
"grayLine": "Gray: logical order",
|
|
"nodeDetails": "Node details",
|
|
"closeDetails": "Close details"
|
|
},
|
|
"externalMcpModal": {
|
|
"configJson": "Config JSON",
|
|
"formatLabel": "Format:",
|
|
"formatDesc": "JSON object; key = config name, value = config. Use Start/Stop buttons to control state.",
|
|
"formatJson": "Format JSON",
|
|
"loadExample": "Load example"
|
|
},
|
|
"skillModal": {
|
|
"addSkill": "Add Skill",
|
|
"editSkill": "Edit Skill",
|
|
"skillName": "Skill name",
|
|
"skillNamePlaceholder": "e.g. sql-injection-testing",
|
|
"skillNameHint": "Letters, numbers, hyphens and underscores only",
|
|
"description": "Description",
|
|
"descriptionPlaceholder": "Short description",
|
|
"contentLabel": "Content (Markdown)",
|
|
"contentPlaceholder": "Enter skill content in Markdown...",
|
|
"contentHint": "YAML front matter supported (optional)"
|
|
},
|
|
"knowledgeItemModal": {
|
|
"addKnowledge": "Add knowledge",
|
|
"editKnowledge": "Edit knowledge",
|
|
"category": "Category (risk type)",
|
|
"categoryPlaceholder": "e.g. SQL injection",
|
|
"title": "Title",
|
|
"titlePlaceholder": "Knowledge item title",
|
|
"contentLabel": "Content (Markdown)",
|
|
"contentPlaceholder": "Enter content in Markdown..."
|
|
},
|
|
"batchManageModal": {
|
|
"title": "Manage conversations · {{count}} total",
|
|
"searchPlaceholder": "Search history",
|
|
"conversationName": "Conversation name",
|
|
"lastTime": "Last activity",
|
|
"action": "Action",
|
|
"selectAll": "Select all",
|
|
"deleteSelected": "Delete selected",
|
|
"confirmDeleteNone": "Please select at least one conversation to delete",
|
|
"confirmDeleteN": "Delete {{count}} selected conversation(s)?",
|
|
"deleteFailed": "Delete failed",
|
|
"unnamedConversation": "Unnamed conversation"
|
|
},
|
|
"createGroupModal": {
|
|
"title": "Create group",
|
|
"description": "Group conversations for easier management.",
|
|
"selectIcon": "Click to choose icon",
|
|
"groupNamePlaceholder": "Enter group name",
|
|
"pickIcon": "Pick icon",
|
|
"customIcon": "Custom",
|
|
"confirmIcon": "OK",
|
|
"create": "Create",
|
|
"cancel": "Cancel",
|
|
"suggestionPenetrationTest": "Penetration Testing",
|
|
"suggestionCtf": "CTF",
|
|
"suggestionRedTeam": "Red Team",
|
|
"suggestionVulnerabilityMining": "Vulnerability Mining",
|
|
"nameExists": "Group name already exists, please use another name.",
|
|
"createFailed": "Create failed",
|
|
"unknownError": "Unknown error"
|
|
},
|
|
"contextMenu": {
|
|
"viewAttackChain": "View attack chain",
|
|
"rename": "Rename",
|
|
"pinConversation": "Pin conversation",
|
|
"unpinConversation": "Unpin",
|
|
"batchManage": "Batch manage",
|
|
"moveToGroup": "Move to group",
|
|
"deleteConversation": "Delete conversation",
|
|
"pinGroup": "Pin group",
|
|
"unpinGroup": "Unpin",
|
|
"deleteGroup": "Delete group"
|
|
},
|
|
"batchImportModal": {
|
|
"title": "New task",
|
|
"queueTitle": "Queue title",
|
|
"queueTitlePlaceholder": "Enter queue title (optional, for identification and filtering)",
|
|
"queueTitleHint": "Set a title for the batch task queue to make it easier to find and manage later.",
|
|
"role": "Role",
|
|
"defaultRole": "Default",
|
|
"roleHint": "Select a role; all tasks will be executed using that role's configuration (prompt and tools).",
|
|
"tasksList": "Task list (one task per line)",
|
|
"tasksListPlaceholder": "Enter task list, one per line",
|
|
"tasksListPlaceholderExample": "Enter task list, one per line, for example:\nScan open ports of 192.168.1.1\nCheck if https://example.com has SQL injection\nEnumerate subdomains of example.com",
|
|
"tasksListHint": "Enter one task command per line; the system will execute them in order. Empty lines are ignored.",
|
|
"tasksListHintFull": "Hint: Enter one task command per line; the system will execute these tasks in order. Empty lines are ignored.",
|
|
"createQueue": "Create queue"
|
|
},
|
|
"batchQueueDetailModal": {
|
|
"title": "Batch queue details",
|
|
"addTask": "Add task",
|
|
"startExecute": "Start",
|
|
"pauseQueue": "Pause queue",
|
|
"deleteQueue": "Delete queue",
|
|
"queueTitle": "Task title",
|
|
"role": "Role",
|
|
"defaultRole": "Default",
|
|
"queueId": "Queue ID",
|
|
"status": "Status",
|
|
"createdAt": "Created at",
|
|
"startedAt": "Started at",
|
|
"completedAt": "Completed at",
|
|
"taskTotal": "Total tasks",
|
|
"taskList": "Task list",
|
|
"startLabel": "Start",
|
|
"completeLabel": "Complete",
|
|
"errorLabel": "Error",
|
|
"resultLabel": "Result"
|
|
},
|
|
"editBatchTaskModal": {
|
|
"title": "Edit task",
|
|
"taskMessage": "Task message",
|
|
"taskMessagePlaceholder": "Enter task message"
|
|
},
|
|
"addBatchTaskModal": {
|
|
"title": "Add task",
|
|
"taskMessage": "Task message",
|
|
"taskMessagePlaceholder": "Enter task message",
|
|
"add": "Add"
|
|
},
|
|
"vulnerabilityModal": {
|
|
"conversationId": "Conversation ID",
|
|
"conversationIdPlaceholder": "Enter conversation ID",
|
|
"title": "Title",
|
|
"titlePlaceholder": "Vulnerability title",
|
|
"description": "Description",
|
|
"descriptionPlaceholder": "Detailed description",
|
|
"severity": "Severity",
|
|
"pleaseSelect": "Please select",
|
|
"severityCritical": "Critical",
|
|
"severityHigh": "High",
|
|
"severityMedium": "Medium",
|
|
"severityLow": "Low",
|
|
"severityInfo": "Info",
|
|
"status": "Status",
|
|
"statusOpen": "Open",
|
|
"statusConfirmed": "Confirmed",
|
|
"statusFixed": "Fixed",
|
|
"statusFalsePositive": "False positive",
|
|
"type": "Vulnerability type",
|
|
"typePlaceholder": "e.g. SQL injection, XSS, CSRF",
|
|
"target": "Target",
|
|
"targetPlaceholder": "Affected target (URL, IP, etc.)",
|
|
"proof": "Proof (POC)",
|
|
"proofPlaceholder": "Proof: request/response, screenshots, etc.",
|
|
"impact": "Impact",
|
|
"impactPlaceholder": "Impact description",
|
|
"recommendation": "Recommendation",
|
|
"recommendationPlaceholder": "Remediation"
|
|
},
|
|
"roleModal": {
|
|
"addRole": "Add role",
|
|
"editRole": "Edit role",
|
|
"roleName": "Role name",
|
|
"roleNamePlaceholder": "Enter role name",
|
|
"roleDescription": "Role description",
|
|
"roleDescriptionPlaceholder": "Enter role description",
|
|
"roleIcon": "Role icon",
|
|
"roleIconPlaceholder": "Enter emoji, e.g. 🏆",
|
|
"roleIconHint": "Emoji shown in role selector.",
|
|
"userPrompt": "User prompt",
|
|
"userPromptPlaceholder": "Appended before user message...",
|
|
"userPromptHint": "This prompt is appended before user message to guide AI. It does not change system prompt.",
|
|
"relatedTools": "Related tools (optional)",
|
|
"defaultRoleToolsTitle": "Default role uses all tools",
|
|
"defaultRoleToolsDesc": "Default role uses all tools enabled in MCP management.",
|
|
"searchToolsPlaceholder": "Search tools...",
|
|
"loadingTools": "Loading tools...",
|
|
"relatedToolsHint": "Select tools to link; empty = use all from MCP management.",
|
|
"relatedSkills": "Related Skills (optional)",
|
|
"searchSkillsPlaceholder": "Search skill...",
|
|
"loadingSkills": "Loading skills...",
|
|
"relatedSkillsHint": "Selected skills are injected into system prompt before task execution.",
|
|
"enableRole": "Enable this role"
|
|
}
|
|
}
|