mirror of
https://github.com/Ed1s0nZ/CyberStrikeAI.git
synced 2026-07-06 04:27:55 +02:00
Add files via upload
This commit is contained in:
@@ -0,0 +1,925 @@
|
||||
{
|
||||
"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"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,925 @@
|
||||
{
|
||||
"common": {
|
||||
"ok": "确定",
|
||||
"cancel": "取消",
|
||||
"refresh": "刷新",
|
||||
"close": "关闭",
|
||||
"edit": "编辑",
|
||||
"delete": "删除",
|
||||
"save": "保存",
|
||||
"loading": "加载中…",
|
||||
"search": "搜索",
|
||||
"clearSearch": "清除搜索",
|
||||
"noData": "暂无数据",
|
||||
"confirm": "确认",
|
||||
"copy": "复制",
|
||||
"copied": "已复制",
|
||||
"copyFailed": "复制失败"
|
||||
},
|
||||
"header": {
|
||||
"title": "CyberStrikeAI",
|
||||
"apiDocs": "API 文档",
|
||||
"logout": "退出登录",
|
||||
"language": "界面语言",
|
||||
"backToDashboard": "返回仪表盘",
|
||||
"userMenu": "用户菜单",
|
||||
"version": "当前版本",
|
||||
"toggleSidebar": "折叠/展开侧边栏"
|
||||
},
|
||||
"login": {
|
||||
"title": "登录 CyberStrikeAI",
|
||||
"subtitle": "请输入配置中的访问密码",
|
||||
"passwordLabel": "密码",
|
||||
"passwordPlaceholder": "输入登录密码",
|
||||
"submit": "登录"
|
||||
},
|
||||
"nav": {
|
||||
"dashboard": "仪表盘",
|
||||
"chat": "对话",
|
||||
"infoCollect": "信息收集",
|
||||
"tasks": "任务管理",
|
||||
"vulnerabilities": "漏洞管理",
|
||||
"mcp": "MCP",
|
||||
"mcpMonitor": "MCP状态监控",
|
||||
"mcpManagement": "MCP管理",
|
||||
"knowledge": "知识",
|
||||
"knowledgeRetrievalLogs": "检索历史",
|
||||
"knowledgeManagement": "知识管理",
|
||||
"skills": "Skills",
|
||||
"skillsMonitor": "Skills状态监控",
|
||||
"skillsManagement": "Skills管理",
|
||||
"roles": "角色",
|
||||
"rolesManagement": "角色管理",
|
||||
"settings": "系统设置"
|
||||
},
|
||||
"dashboard": {
|
||||
"title": "仪表盘",
|
||||
"refresh": "刷新",
|
||||
"refreshData": "刷新数据",
|
||||
"runningTasks": "运行中任务",
|
||||
"vulnTotal": "漏洞总数",
|
||||
"toolCalls": "工具调用次数",
|
||||
"successRate": "工具执行成功率",
|
||||
"clickToViewTasks": "点击查看任务管理",
|
||||
"clickToViewVuln": "点击查看漏洞管理",
|
||||
"clickToViewMCP": "点击查看 MCP 监控",
|
||||
"severityDistribution": "漏洞严重程度分布",
|
||||
"severityCritical": "严重",
|
||||
"severityHigh": "高危",
|
||||
"severityMedium": "中危",
|
||||
"severityLow": "低危",
|
||||
"severityInfo": "信息",
|
||||
"runOverview": "运行概览",
|
||||
"batchQueues": "批量任务队列",
|
||||
"pending": "待执行",
|
||||
"executing": "执行中",
|
||||
"completed": "已完成",
|
||||
"toolInvocations": "工具调用",
|
||||
"callsUnit": "次调用",
|
||||
"toolsUnit": "个工具",
|
||||
"knowledgeLabel": "知识",
|
||||
"knowledgeItems": "项知识",
|
||||
"categoriesUnit": "个分类",
|
||||
"skillsLabel": "Skills",
|
||||
"skillUnit": "个 Skill",
|
||||
"quickLinks": "快捷入口",
|
||||
"toolsExecCount": "工具执行次数",
|
||||
"ctaTitle": "开始你的安全之旅",
|
||||
"ctaSub": "在对话中描述目标,AI 将协助执行扫描与漏洞分析",
|
||||
"goToChat": "前往对话",
|
||||
"noTasks": "暂无任务",
|
||||
"totalCount": "共 {{count}} 个",
|
||||
"notEnabled": "未启用",
|
||||
"enabled": "已启用",
|
||||
"toConfigure": "待配置",
|
||||
"toUse": "待使用",
|
||||
"active": "活跃",
|
||||
"highFreq": "高频",
|
||||
"noCallData": "暂无调用数据"
|
||||
},
|
||||
"chat": {
|
||||
"newChat": "新对话",
|
||||
"searchHistory": "搜索历史记录...",
|
||||
"conversationGroups": "对话分组",
|
||||
"addGroup": "新建分组",
|
||||
"recentConversations": "最近对话",
|
||||
"batchManage": "批量管理",
|
||||
"attackChain": "攻击链",
|
||||
"viewAttackChain": "查看攻击链",
|
||||
"selectRole": "选择角色",
|
||||
"defaultRole": "默认",
|
||||
"inputPlaceholder": "输入测试目标或命令... (输入 @ 选择工具 | Shift+Enter 换行,Enter 发送)",
|
||||
"selectFile": "选择文件",
|
||||
"uploadFile": "上传文件(可多选或拖拽到此处)",
|
||||
"send": "发送",
|
||||
"searchInGroup": "搜索分组中的对话...",
|
||||
"loadingTools": "正在加载工具...",
|
||||
"noMatchTools": "没有匹配的工具",
|
||||
"penetrationTestDetail": "渗透测试详情",
|
||||
"expandDetail": "展开详情",
|
||||
"noProcessDetail": "暂无过程详情(可能执行过快或未触发详细事件)",
|
||||
"copyMessageTitle": "复制消息内容",
|
||||
"emptyGroupConversations": "该分组暂无对话",
|
||||
"noMatchingConversationsInGroup": "未找到匹配的对话",
|
||||
"renameGroupPrompt": "请输入新名称:",
|
||||
"deleteGroupConfirm": "确定要删除此分组吗?分组中的对话不会被删除,但会从分组中移除。",
|
||||
"deleteConversationConfirm": "确定要删除此对话吗?",
|
||||
"renameFailed": "重命名失败",
|
||||
"viewAttackChainSelectConv": "请选择一个对话以查看攻击链",
|
||||
"viewAttackChainCurrentConv": "查看当前对话的攻击链",
|
||||
"executeFailed": "执行失败",
|
||||
"callOpenAIFailed": "调用OpenAI失败",
|
||||
"systemReadyMessage": "系统已就绪。请输入您的测试需求,系统将自动执行相应的安全测试。",
|
||||
"addNewGroup": "+ 新增分组"
|
||||
},
|
||||
"tasks": {
|
||||
"title": "任务管理",
|
||||
"newTask": "新建任务",
|
||||
"autoRefresh": "自动刷新",
|
||||
"historyHint": "提示:有已完成的任务历史,请勾选\"显示历史记录\"查看",
|
||||
"statusRunning": "执行中",
|
||||
"statusCancelling": "取消中",
|
||||
"statusFailed": "执行失败",
|
||||
"statusTimeout": "执行超时",
|
||||
"statusCancelled": "已取消",
|
||||
"statusCompleted": "已完成",
|
||||
"historyBadge": "历史记录",
|
||||
"duration": "执行时长",
|
||||
"completedAt": "完成时间",
|
||||
"startedAt": "开始时间",
|
||||
"clickToCopy": "点击复制",
|
||||
"unnamedTask": "未命名任务",
|
||||
"unknown": "未知",
|
||||
"unknownTime": "未知时间",
|
||||
"clearHistoryConfirm": "确定要清空所有任务历史记录吗?",
|
||||
"cancelTaskFailed": "取消任务失败",
|
||||
"copiedToast": "已复制!",
|
||||
"cancelling": "取消中...",
|
||||
"enterTaskPrompt": "请输入至少一个任务",
|
||||
"noValidTask": "没有有效的任务",
|
||||
"createBatchQueueFailed": "创建批量任务队列失败",
|
||||
"noBatchQueues": "当前没有批量任务队列",
|
||||
"recentCompletedTasks": "最近完成的任务(最近24小时)",
|
||||
"clearHistory": "清空历史",
|
||||
"cancelTask": "取消任务",
|
||||
"viewConversation": "查看对话",
|
||||
"conversationIdLabel": "对话ID",
|
||||
"statusPending": "待执行",
|
||||
"statusPaused": "已暂停",
|
||||
"confirmCancelTasks": "确定要取消 {{n}} 个任务吗?",
|
||||
"batchCancelResultPartial": "批量取消完成:成功 {{success}} 个,失败 {{fail}} 个",
|
||||
"batchCancelResultSuccess": "成功取消 {{n}} 个任务",
|
||||
"taskCount": "共 {{count}} 个任务",
|
||||
"queueIdLabel": "队列ID",
|
||||
"createdTimeLabel": "创建时间",
|
||||
"totalLabel": "总计",
|
||||
"pendingLabel": "待执行",
|
||||
"runningLabel": "执行中",
|
||||
"completedLabel": "已完成",
|
||||
"failedLabel": "失败",
|
||||
"cancelledLabel": "已取消",
|
||||
"loadingTasks": "加载中...",
|
||||
"loadFailedRetry": "加载失败",
|
||||
"loadTaskListFailed": "获取任务列表失败",
|
||||
"getQueueDetailFailed": "获取队列详情失败",
|
||||
"startBatchQueueFailed": "启动批量任务失败",
|
||||
"pauseQueueFailed": "暂停批量任务失败",
|
||||
"pauseQueueConfirm": "确定要暂停这个批量任务队列吗?当前正在执行的任务将被停止,后续任务将保留待执行状态。",
|
||||
"deleteQueueConfirm": "确定要删除这个批量任务队列吗?此操作不可恢复。",
|
||||
"deleteQueueFailed": "删除批量任务队列失败",
|
||||
"batchQueueTitle": "批量任务队列",
|
||||
"resumeExecute": "继续执行",
|
||||
"taskIncomplete": "任务信息不完整",
|
||||
"cannotGetTaskMessageInput": "无法获取任务消息输入框",
|
||||
"taskMessageRequired": "任务消息不能为空",
|
||||
"saveTaskFailed": "保存任务失败",
|
||||
"queueInfoMissing": "队列信息不存在",
|
||||
"addTaskFailed": "添加任务失败",
|
||||
"confirmDeleteTask": "确定要删除这个任务吗?\n\n任务内容: {{message}}\n\n此操作不可恢复。",
|
||||
"deleteTaskFailed": "删除任务失败",
|
||||
"paginationShow": "显示 {{start}}-{{end}} / 共 {{total}} 条",
|
||||
"paginationPerPage": "每页显示",
|
||||
"paginationFirst": "首页",
|
||||
"paginationPrev": "上一页",
|
||||
"paginationNext": "下一页",
|
||||
"paginationLast": "末页",
|
||||
"paginationPage": "第 {{current}} / {{total}} 页",
|
||||
"deleteQueue": "删除队列",
|
||||
"retry": "重试",
|
||||
"noMatchingTasks": "当前没有符合条件的任务",
|
||||
"updateTaskFailed": "更新任务失败",
|
||||
"durationSeconds": "秒",
|
||||
"durationMinutes": "分",
|
||||
"durationHours": "小时"
|
||||
},
|
||||
"infoCollect": {
|
||||
"enterFofaQuery": "请输入 FOFA 查询语法",
|
||||
"querying": "查询中...",
|
||||
"queryFailed": "查询失败",
|
||||
"enterNaturalLanguage": "请输入自然语言描述",
|
||||
"cancelParse": "取消解析",
|
||||
"clickToCancelParse": "点击取消 AI 解析",
|
||||
"parseToFofa": "将自然语言解析为 FOFA 查询语法",
|
||||
"parseResultEmpty": "解析结果为空:请在弹窗中补充/修改 FOFA 查询语法",
|
||||
"queryPlaceholder": "例如:app=\"Apache\" && country=\"CN\"",
|
||||
"selectAll": "全选/全不选",
|
||||
"selectRow": "选择该行",
|
||||
"copyTarget": "复制目标",
|
||||
"sendToChat": "发送到对话(可编辑;Ctrl/⌘+点击可直接发送)",
|
||||
"noTargetToCopy": "没有可复制的目标",
|
||||
"targetCopied": "已复制目标",
|
||||
"manualCopyHint": "复制失败,请手动复制:",
|
||||
"cannotInferTarget": "无法从该行推断扫描目标(建议在 fields 中包含 host/ip/port/domain)",
|
||||
"noSendMessage": "未找到 sendMessage(),请刷新页面后重试",
|
||||
"filledToInput": "已填入对话输入框,可编辑后发送",
|
||||
"noExportResult": "暂无可导出的结果",
|
||||
"xlsxNotLoaded": "未加载 XLSX 库,请刷新页面后重试",
|
||||
"noResults": "暂无结果",
|
||||
"selectRowsFirst": "请先勾选需要扫描的行",
|
||||
"noScanTarget": "未能从所选行推断任何可扫描目标(建议 fields 中包含 host/ip/port/domain)",
|
||||
"batchScanFailed": "批量扫描失败",
|
||||
"batchQueueCreated": "已创建批量扫描队列",
|
||||
"field": "字段",
|
||||
"parsePending": "AI 解析中...",
|
||||
"parsePendingClickCancel": "AI 解析中...(点击按钮可取消)",
|
||||
"parseSlow": "AI 解析耗时较长,仍在处理中…",
|
||||
"parseDone": "AI 解析完成",
|
||||
"parseCancelled": "已取消 AI 解析",
|
||||
"parseFailed": "AI 解析失败:",
|
||||
"parseResultTitle": "AI 解析结果",
|
||||
"naturalLanguageLabel": "自然语言",
|
||||
"fofaQueryEditable": "FOFA 查询语法(可编辑)",
|
||||
"confirmBeforeQuery": "请人工确认语法与范围无误后再执行查询。",
|
||||
"reminder": "提醒",
|
||||
"explanation": "解析说明",
|
||||
"actions": "操作",
|
||||
"batchScanTitle": "FOFA 批量扫描",
|
||||
"queueCreatedSkipped": "已创建队列(跳过 {{n}} 条无目标行)",
|
||||
"createQueueFailed": "创建批量队列失败",
|
||||
"loading": "加载中...",
|
||||
"none": "无",
|
||||
"truncated": "已截断",
|
||||
"resultsMeta": "共 {{total}} 条 · 本页 {{count}} 条 · page={{page}} · size={{size}}",
|
||||
"parseModalCancel": "取消",
|
||||
"parseModalApply": "填入查询框",
|
||||
"parseModalApplyRun": "填入并查询"
|
||||
},
|
||||
"vulnerability": {
|
||||
"title": "漏洞管理",
|
||||
"addVuln": "添加漏洞",
|
||||
"editVuln": "编辑漏洞",
|
||||
"loadFailed": "加载漏洞失败",
|
||||
"deleteConfirm": "确定要删除此漏洞吗?"
|
||||
},
|
||||
"mcp": {
|
||||
"monitorTitle": "MCP 状态监控",
|
||||
"execStats": "执行统计",
|
||||
"latestExecutions": "最新执行记录",
|
||||
"toolSearch": "工具搜索",
|
||||
"toolSearchPlaceholder": "输入工具名称...",
|
||||
"statusFilter": "状态筛选",
|
||||
"filterAll": "全部",
|
||||
"selectedCount": "已选择 {{count}} 项",
|
||||
"selectAll": "全选",
|
||||
"deselectAll": "全不选",
|
||||
"deleteSelected": "批量删除",
|
||||
"deleteExecConfirm": "确定要删除此执行记录吗?",
|
||||
"batchDeleteFailed": "批量删除执行记录失败",
|
||||
"managementTitle": "MCP 管理",
|
||||
"addExternal": "添加外部MCP",
|
||||
"toolConfig": "MCP 工具配置",
|
||||
"saveToolConfig": "保存工具配置",
|
||||
"externalConfig": "外部 MCP 配置",
|
||||
"loadingTools": "正在加载工具列表...",
|
||||
"loadToolsTimeout": "加载工具列表超时,可能是外部MCP连接较慢。请点击\"刷新\"按钮重试,或检查外部MCP连接状态。",
|
||||
"loadToolsFailed": "加载工具列表失败",
|
||||
"noTools": "暂无工具",
|
||||
"externalBadge": "外部",
|
||||
"externalFrom": "外部 ({{name}})",
|
||||
"externalToolFrom": "外部MCP工具 - 来源:{{name}}",
|
||||
"noDescription": "无描述",
|
||||
"paginationInfo": "显示 {{start}}-{{end}} / 共 {{total}} 个工具",
|
||||
"perPage": "每页:",
|
||||
"firstPage": "首页",
|
||||
"prevPage": "上一页",
|
||||
"nextPage": "下一页",
|
||||
"lastPage": "末页",
|
||||
"pageInfo": "第 {{page}} / {{total}} 页",
|
||||
"currentPageEnabled": "当前页已启用",
|
||||
"totalEnabled": "总计已启用",
|
||||
"toolsConfigSaved": "工具配置已成功保存!",
|
||||
"saveToolsConfigFailed": "保存工具配置失败",
|
||||
"getConfigFailed": "获取配置失败",
|
||||
"noExternalMCP": "暂无外部MCP配置",
|
||||
"clickToAddExternal": "点击\"添加外部MCP\"按钮开始配置",
|
||||
"connected": "已连接",
|
||||
"connecting": "连接中...",
|
||||
"connectionFailed": "连接失败",
|
||||
"disabled": "已禁用",
|
||||
"disconnected": "未连接",
|
||||
"stopConnection": "停止连接",
|
||||
"startConnection": "启动连接",
|
||||
"stop": "停止",
|
||||
"start": "启动",
|
||||
"editConfig": "编辑配置",
|
||||
"deleteConfig": "删除配置",
|
||||
"transportMode": "传输模式",
|
||||
"toolCount": "工具数量",
|
||||
"description": "描述",
|
||||
"timeout": "超时时间",
|
||||
"command": "命令",
|
||||
"addExternalMCP": "添加外部MCP",
|
||||
"editExternalMCP": "编辑外部MCP",
|
||||
"jsonEmpty": "JSON不能为空",
|
||||
"jsonError": "JSON格式错误",
|
||||
"configMustBeObject": "配置错误: 必须是JSON对象格式,key为配置名称,value为配置内容",
|
||||
"configNeedOne": "配置错误: 至少需要一个配置项",
|
||||
"configNameEmpty": "配置错误: 配置名称不能为空",
|
||||
"configMustBeObj": "配置错误: \"{{name}}\" 的配置必须是对象",
|
||||
"configNeedCommand": "配置错误: \"{{name}}\" 需要指定command(stdio模式)或url(http/sse模式)",
|
||||
"configStdioNeedCommand": "配置错误: \"{{name}}\" stdio模式需要command字段",
|
||||
"configHttpNeedUrl": "配置错误: \"{{name}}\" http模式需要url字段",
|
||||
"configSseNeedUrl": "配置错误: \"{{name}}\" sse模式需要url字段",
|
||||
"saveSuccess": "保存成功",
|
||||
"deleteSuccess": "删除成功",
|
||||
"deleteExternalConfirm": "确定要删除外部MCP \"{{name}}\" 吗?",
|
||||
"operationFailed": "操作失败",
|
||||
"connectionFailedCheck": "连接失败,请检查配置和网络连接",
|
||||
"connectionTimeout": "连接超时,请检查配置和网络连接",
|
||||
"totalCount": "总数",
|
||||
"enabledCount": "已启用",
|
||||
"disabledCount": "已停用",
|
||||
"connectedCount": "已连接"
|
||||
},
|
||||
"settings": {
|
||||
"title": "系统设置",
|
||||
"nav": {
|
||||
"basic": "基本设置",
|
||||
"robots": "机器人设置",
|
||||
"terminal": "终端",
|
||||
"security": "安全设置"
|
||||
},
|
||||
"robots": {
|
||||
"title": "机器人设置",
|
||||
"description": "配置企业微信、钉钉、飞书等机器人,在手机端直接与 CyberStrikeAI 对话,无需在服务器上打开网页。",
|
||||
"wecom": {
|
||||
"title": "企业微信",
|
||||
"enabled": "启用企业微信机器人"
|
||||
},
|
||||
"dingtalk": {
|
||||
"title": "钉钉",
|
||||
"enabled": "启用钉钉机器人"
|
||||
},
|
||||
"lark": {
|
||||
"title": "飞书 (Lark)",
|
||||
"enabled": "启用飞书机器人"
|
||||
}
|
||||
},
|
||||
"apply": {
|
||||
"button": "应用配置",
|
||||
"loadFailed": "加载配置失败",
|
||||
"fillRequired": "请填写所有必填字段(标记为 * 的字段)",
|
||||
"applyFailed": "应用配置失败",
|
||||
"applySuccess": "配置已成功应用!"
|
||||
},
|
||||
"security": {
|
||||
"changePassword": "修改密码",
|
||||
"fillPasswordHint": "请正确填写当前密码和新密码,新密码至少 8 位且需要两次输入一致。",
|
||||
"changePasswordFailed": "修改密码失败",
|
||||
"passwordUpdated": "密码已更新,请使用新密码重新登录。"
|
||||
}
|
||||
},
|
||||
"auth": {
|
||||
"sessionExpired": "认证已过期,请重新登录",
|
||||
"unauthorized": "未授权访问",
|
||||
"enterPassword": "请输入密码",
|
||||
"loginFailedCheck": "登录失败,请检查密码",
|
||||
"loginFailedRetry": "登录失败,请稍后重试",
|
||||
"loggedOut": "已退出登录"
|
||||
},
|
||||
"knowledge": {
|
||||
"title": "知识管理",
|
||||
"retrievalLogs": "检索历史",
|
||||
"totalItems": "总知识项",
|
||||
"categories": "分类数",
|
||||
"addKnowledge": "添加知识",
|
||||
"rebuildIndex": "重建索引",
|
||||
"rebuildIndexConfirm": "确定要重建索引吗?",
|
||||
"deleteItemConfirm": "确定要删除这个知识项吗?",
|
||||
"notEnabledTitle": "知识库功能未启用",
|
||||
"notEnabledHint": "请前往系统设置启用知识检索功能",
|
||||
"goToSettings": "前往设置"
|
||||
},
|
||||
"roles": {
|
||||
"title": "角色管理",
|
||||
"createRole": "创建角色",
|
||||
"searchPlaceholder": "搜索角色...",
|
||||
"deleteConfirm": "确定要删除角色..."
|
||||
},
|
||||
"skills": {
|
||||
"title": "Skills管理",
|
||||
"monitorTitle": "Skills状态监控",
|
||||
"createSkill": "创建Skill",
|
||||
"callStats": "调用统计",
|
||||
"addSkill": "添加Skill",
|
||||
"editSkill": "编辑Skill",
|
||||
"loadListFailed": "加载skills列表失败",
|
||||
"noSkills": "暂无skills,点击\"创建Skill\"创建第一个skill",
|
||||
"noMatch": "没有找到匹配的skills",
|
||||
"searchFailed": "搜索失败",
|
||||
"refreshed": "已刷新",
|
||||
"loadDetailFailed": "加载skill详情失败",
|
||||
"viewFailed": "查看skill失败",
|
||||
"saving": "保存中...",
|
||||
"saveFailed": "保存skill失败",
|
||||
"deleteFailed": "删除skill失败",
|
||||
"loadStatsFailed": "加载skills监控数据失败",
|
||||
"clearStatsConfirm": "确定要清空所有Skills统计数据吗?此操作不可恢复。",
|
||||
"statsCleared": "已清空所有Skills统计数据",
|
||||
"clearStatsFailed": "清空统计数据失败"
|
||||
},
|
||||
"apiDocs": {
|
||||
"curlCopied": "curl命令已复制到剪贴板!"
|
||||
},
|
||||
"chatGroup": {
|
||||
"search": "搜索",
|
||||
"edit": "编辑",
|
||||
"delete": "删除",
|
||||
"clearSearch": "清除搜索",
|
||||
"searchInGroupPlaceholder": "搜索分组中的对话...",
|
||||
"attackChain": "攻击链",
|
||||
"viewAttackChain": "查看攻击链",
|
||||
"selectRole": "选择角色",
|
||||
"close": "关闭",
|
||||
"selectFile": "选择文件",
|
||||
"uploadFile": "上传文件(可多选或拖拽到此处)",
|
||||
"send": "发送",
|
||||
"rolePanelTitle": "选择角色",
|
||||
"copyMessage": "复制消息内容",
|
||||
"remove": "移除"
|
||||
},
|
||||
"mcpMonitor": {
|
||||
"deselectAll": "取消全选",
|
||||
"statusPending": "等待中",
|
||||
"statusCompleted": "已完成",
|
||||
"statusRunning": "执行中",
|
||||
"statusFailed": "失败",
|
||||
"loading": "加载中...",
|
||||
"noStatsData": "暂无统计数据",
|
||||
"noExecutions": "暂无执行记录",
|
||||
"noRecordsWithFilter": "当前筛选条件下暂无记录",
|
||||
"paginationInfo": "显示 {{start}}-{{end}} / 共 {{total}} 条记录",
|
||||
"perPageLabel": "每页显示",
|
||||
"loadStatsError": "无法加载统计信息",
|
||||
"loadExecutionsError": "无法加载执行记录",
|
||||
"totalCalls": "总调用次数",
|
||||
"successFailed": "成功 {{success}} / 失败 {{failed}}",
|
||||
"successRate": "成功率",
|
||||
"statsFromAllTools": "统计自全部工具调用",
|
||||
"lastCall": "最近一次调用",
|
||||
"lastRefreshTime": "最后刷新时间",
|
||||
"noCallsYet": "暂无调用",
|
||||
"unknownTool": "未知工具",
|
||||
"successFailedRate": "成功 {{success}} / 失败 {{failed}} · 成功率 {{rate}}%",
|
||||
"columnTool": "工具",
|
||||
"columnStatus": "状态",
|
||||
"columnStartTime": "开始时间",
|
||||
"columnDuration": "耗时",
|
||||
"columnActions": "操作",
|
||||
"viewDetail": "查看详情",
|
||||
"delete": "删除",
|
||||
"deleteExecTitle": "删除此执行记录",
|
||||
"deleteExecConfirmSingle": "确定要删除此执行记录吗?此操作不可恢复。",
|
||||
"deleteExecFailed": "删除执行记录失败",
|
||||
"execDeleted": "执行记录已删除",
|
||||
"selectExecFirst": "请先选择要删除的执行记录",
|
||||
"batchDeleteConfirm": "确定要删除选中的 {{count}} 条执行记录吗?此操作不可恢复。",
|
||||
"batchDeleteSuccess": "成功删除 {{count}} 条执行记录",
|
||||
"unknown": "未知",
|
||||
"durationSeconds": "{{n}} 秒",
|
||||
"durationMinutes": "{{minutes}} 分 {{seconds}} 秒",
|
||||
"durationMinutesOnly": "{{minutes}} 分",
|
||||
"durationHours": "{{hours}} 小时 {{minutes}} 分",
|
||||
"durationHoursOnly": "{{hours}} 小时"
|
||||
},
|
||||
"knowledgePage": {
|
||||
"totalContent": "总内容",
|
||||
"categoryFilter": "分类筛选",
|
||||
"all": "全部",
|
||||
"searchPlaceholder": "搜索知识...",
|
||||
"loading": "加载中..."
|
||||
},
|
||||
"retrievalLogs": {
|
||||
"totalRetrievals": "总检索次数",
|
||||
"successRetrievals": "成功检索",
|
||||
"successRate": "成功率",
|
||||
"retrievedItems": "检索到知识项",
|
||||
"conversationId": "对话ID",
|
||||
"messageId": "消息ID",
|
||||
"filter": "筛选",
|
||||
"optionalConversation": "可选:筛选特定对话",
|
||||
"optionalMessage": "可选:筛选特定消息",
|
||||
"loading": "加载中...",
|
||||
"noRecords": "暂无检索记录",
|
||||
"noQuery": "无查询内容",
|
||||
"itemsUnit": "项",
|
||||
"hasResults": "有结果",
|
||||
"noResults": "无结果",
|
||||
"clickToCopy": "点击复制",
|
||||
"retrievalResult": "检索结果",
|
||||
"foundCount": "找到 {{count}} 个相关知识项",
|
||||
"foundUnknown": "找到相关知识项(数量未知)",
|
||||
"noMatch": "未找到匹配的知识项",
|
||||
"retrievedItemsLabel": "检索到的知识项:",
|
||||
"viewDetails": "查看详情",
|
||||
"loadError": "加载检索日志失败",
|
||||
"detailError": "无法获取检索详情",
|
||||
"deleteError": "删除检索日志失败",
|
||||
"detailsTitle": "检索详情",
|
||||
"queryInfo": "查询信息",
|
||||
"queryContent": "查询内容:",
|
||||
"retrievalInfo": "检索信息",
|
||||
"riskType": "风险类型",
|
||||
"retrievalTime": "检索时间",
|
||||
"noItemDetails": "未找到知识项详情",
|
||||
"noContentPreview": "无内容预览",
|
||||
"untitled": "未命名",
|
||||
"uncategorized": "未分类",
|
||||
"relatedInfo": "关联信息",
|
||||
"itemsCount": "{{count}} 个知识项",
|
||||
"deleteConfirm": "确定要删除这条检索记录吗?"
|
||||
},
|
||||
"infoCollectPage": {
|
||||
"title": "信息收集",
|
||||
"reset": "重置",
|
||||
"confirm": "确定",
|
||||
"fofaQuerySyntax": "FOFA 查询语法",
|
||||
"naturalLanguage": "自然语言(AI 解析为 FOFA 语法)",
|
||||
"returnCount": "返回数量",
|
||||
"pageNum": "页码",
|
||||
"returnFields": "返回字段名(逗号分隔)",
|
||||
"queryResults": "查询结果",
|
||||
"selectedRows": "已选择 {{count}} 条",
|
||||
"selectedRowsZero": "已选择 0 条",
|
||||
"columns": "列",
|
||||
"exportCsv": "导出 CSV",
|
||||
"exportJson": "导出 JSON",
|
||||
"exportXlsx": "导出 XLSX",
|
||||
"batchScan": "批量扫描",
|
||||
"showColumns": "显示字段",
|
||||
"columnsPanelAll": "全选",
|
||||
"columnsPanelNone": "全不选",
|
||||
"columnsPanelClose": "关闭",
|
||||
"formHint": "查询语法参考 FOFA 文档,支持 && / || / () 等。",
|
||||
"parseBtn": "AI 解析",
|
||||
"parseHint": "解析后会弹窗展示 FOFA 语法(可编辑),确认无误后再填入查询框并执行查询。",
|
||||
"minFields": "最小字段",
|
||||
"webCommon": "Web 常用",
|
||||
"intelEnhanced": "情报增强",
|
||||
"presetApache": "Apache + 中国",
|
||||
"presetLogin": "登录页 + 中国",
|
||||
"presetDomain": "指定域名",
|
||||
"presetIp": "指定 IP",
|
||||
"nlPlaceholder": "例如:找美国 Missouri 的 Apache 站点,标题包含 Home",
|
||||
"showHideColumns": "显示/隐藏字段",
|
||||
"exportCsvTitle": "导出当前结果为 CSV(UTF-8,兼容中文)",
|
||||
"exportJsonTitle": "导出当前结果为 JSON",
|
||||
"exportXlsxTitle": "导出当前结果为 Excel",
|
||||
"batchScanTitle": "将所选行创建为批量任务队列"
|
||||
},
|
||||
"vulnerabilityPage": {
|
||||
"statTotal": "总漏洞数",
|
||||
"filter": "筛选",
|
||||
"clear": "清除",
|
||||
"vulnId": "漏洞ID",
|
||||
"conversationId": "会话ID",
|
||||
"severity": "严重程度",
|
||||
"status": "状态",
|
||||
"statusOpen": "待处理",
|
||||
"statusConfirmed": "已确认",
|
||||
"statusFixed": "已修复",
|
||||
"statusFalsePositive": "误报",
|
||||
"searchVulnId": "搜索漏洞ID",
|
||||
"filterConversation": "筛选特定会话",
|
||||
"loading": "加载中...",
|
||||
"noRecords": "暂无漏洞记录"
|
||||
},
|
||||
"tasksPage": {
|
||||
"statusFilter": "状态筛选",
|
||||
"statusPending": "待执行",
|
||||
"statusPaused": "已暂停",
|
||||
"statusCancelled": "已取消",
|
||||
"searchQueuePlaceholder": "搜索队列ID、标题或创建时间",
|
||||
"searchKeywordPlaceholder": "输入关键字搜索..."
|
||||
},
|
||||
"skillsPage": {
|
||||
"clearStats": "清空统计",
|
||||
"clearStatsTitle": "清空所有统计数据",
|
||||
"skillsCallStats": "Skills调用统计",
|
||||
"searchPlaceholder": "搜索Skills...",
|
||||
"loading": "加载中..."
|
||||
},
|
||||
"settingsBasic": {
|
||||
"basicTitle": "基本设置",
|
||||
"openaiConfig": "OpenAI 配置",
|
||||
"fofaConfig": "FOFA 配置",
|
||||
"agentConfig": "Agent 配置",
|
||||
"knowledgeConfig": "知识库配置",
|
||||
"baseUrl": "Base URL",
|
||||
"apiKey": "API Key",
|
||||
"model": "模型",
|
||||
"openaiBaseUrlPlaceholder": "https://api.openai.com/v1",
|
||||
"openaiApiKeyPlaceholder": "输入OpenAI API Key",
|
||||
"modelPlaceholder": "gpt-4",
|
||||
"fofaBaseUrlPlaceholder": "https://fofa.info/api/v1/search/all(可选)",
|
||||
"fofaBaseUrlHint": "留空则使用默认地址。",
|
||||
"email": "Email",
|
||||
"fofaEmailPlaceholder": "输入 FOFA 账号邮箱",
|
||||
"fofaApiKeyPlaceholder": "输入 FOFA API Key",
|
||||
"fofaApiKeyHint": "仅保存在服务器配置中(`config.yaml`)。",
|
||||
"maxIterations": "最大迭代次数",
|
||||
"iterationsPlaceholder": "30",
|
||||
"enableKnowledge": "启用知识检索功能",
|
||||
"knowledgeBasePath": "知识库路径",
|
||||
"knowledgeBasePathPlaceholder": "knowledge_base",
|
||||
"knowledgeBasePathHint": "相对于配置文件所在目录的路径",
|
||||
"embeddingConfig": "嵌入模型配置",
|
||||
"provider": "提供商",
|
||||
"embeddingBaseUrlPlaceholder": "留空则使用OpenAI配置的base_url",
|
||||
"embeddingApiKeyPlaceholder": "留空则使用OpenAI配置的api_key",
|
||||
"modelName": "模型名称",
|
||||
"embeddingModelPlaceholder": "text-embedding-v4",
|
||||
"retrievalConfig": "检索配置",
|
||||
"topK": "Top-K 结果数量",
|
||||
"topKPlaceholder": "5",
|
||||
"topKHint": "检索返回的Top-K结果数量",
|
||||
"similarityThreshold": "相似度阈值",
|
||||
"similarityPlaceholder": "0.7",
|
||||
"similarityHint": "相似度阈值(0-1),低于此值的结果将被过滤",
|
||||
"hybridWeight": "混合检索权重",
|
||||
"hybridPlaceholder": "0.7",
|
||||
"hybridHint": "向量检索的权重(0-1),1.0表示纯向量检索,0.0表示纯关键词检索",
|
||||
"indexConfig": "索引配置",
|
||||
"chunkSize": "分块大小(Chunk Size)",
|
||||
"chunkSizePlaceholder": "512",
|
||||
"chunkSizeHint": "每个块的最大 token 数(默认 512),长文本会被分割成多个块",
|
||||
"chunkOverlap": "分块重叠(Chunk Overlap)",
|
||||
"chunkOverlapPlaceholder": "50",
|
||||
"chunkOverlapHint": "块之间的重叠 token 数(默认 50),保持上下文连贯性",
|
||||
"maxChunksPerItem": "单个知识项最大块数",
|
||||
"maxChunksPlaceholder": "0",
|
||||
"maxChunksHint": "单个知识项的最大块数量(0 表示不限制),防止单个文件消耗过多 API 配额",
|
||||
"maxRpm": "每分钟最大请求数(Max RPM)",
|
||||
"maxRpmPlaceholder": "0",
|
||||
"maxRpmHint": "每分钟最大请求数(默认 0 表示不限制),如 OpenAI 默认 200 RPM",
|
||||
"rateLimitDelay": "请求间隔延迟(毫秒)",
|
||||
"rateLimitPlaceholder": "300",
|
||||
"rateLimitHint": "请求间隔毫秒数(默认 300),用于避免 API 速率限制,设为 0 不限制",
|
||||
"maxRetries": "最大重试次数",
|
||||
"maxRetriesPlaceholder": "3",
|
||||
"maxRetriesHint": "最大重试次数(默认 3),遇到速率限制或服务器错误时自动重试",
|
||||
"retryDelay": "重试间隔(毫秒)",
|
||||
"retryDelayPlaceholder": "1000",
|
||||
"retryDelayHint": "重试间隔毫秒数(默认 1000),每次重试会递增延迟"
|
||||
},
|
||||
"settingsTerminal": {
|
||||
"title": "终端",
|
||||
"description": "在服务器上执行命令,便于运维与调试。命令在服务端执行,请勿执行敏感或破坏性操作。",
|
||||
"terminalTab": "终端 {{n}}",
|
||||
"close": "关闭",
|
||||
"newTerminal": "新终端"
|
||||
},
|
||||
"settingsSecurity": {
|
||||
"changePasswordTitle": "修改密码",
|
||||
"changePasswordDesc": "修改登录密码后,需要使用新密码重新登录。",
|
||||
"currentPassword": "当前密码",
|
||||
"currentPasswordPlaceholder": "输入当前登录密码",
|
||||
"newPassword": "新密码",
|
||||
"newPasswordPlaceholder": "设置新密码(至少 8 位)",
|
||||
"confirmPassword": "确认新密码",
|
||||
"confirmPasswordPlaceholder": "再次输入新密码",
|
||||
"clear": "清空",
|
||||
"changePasswordBtn": "修改密码"
|
||||
},
|
||||
"settingsRobotsExtra": {
|
||||
"botCommandsTitle": "机器人命令说明",
|
||||
"botCommandsDesc": "在对话中可发送以下命令(支持中英文):"
|
||||
},
|
||||
"mcpDetailModal": {
|
||||
"title": "工具调用详情",
|
||||
"execInfo": "执行信息",
|
||||
"tool": "工具",
|
||||
"status": "状态",
|
||||
"time": "时间",
|
||||
"executionId": "执行 ID",
|
||||
"requestParams": "请求参数",
|
||||
"copyJson": "复制 JSON",
|
||||
"responseResult": "响应结果",
|
||||
"copyContent": "复制内容",
|
||||
"correctInfo": "正确信息",
|
||||
"errorInfo": "错误信息",
|
||||
"copyError": "复制错误"
|
||||
},
|
||||
"attackChainModal": {
|
||||
"title": "攻击链可视化",
|
||||
"regenerate": "重新生成",
|
||||
"regenerateTitle": "重新生成攻击链(包含最新对话内容)",
|
||||
"exportPng": "导出为PNG",
|
||||
"exportSvg": "导出为SVG",
|
||||
"refreshTitle": "刷新当前攻击链(不重新生成)",
|
||||
"nodesEdges": "节点: {{nodes}} | 边: {{edges}}",
|
||||
"searchPlaceholder": "搜索节点...",
|
||||
"allTypes": "所有类型",
|
||||
"target": "目标",
|
||||
"action": "行动",
|
||||
"vulnerability": "漏洞",
|
||||
"allRisks": "所有风险",
|
||||
"highRisk": "高风险 (80-100)",
|
||||
"mediumHighRisk": "中高风险 (60-79)",
|
||||
"mediumRisk": "中风险 (40-59)",
|
||||
"lowRisk": "低风险 (0-39)",
|
||||
"resetFilter": "重置筛选",
|
||||
"loading": "加载中...",
|
||||
"riskLevel": "风险等级",
|
||||
"lineMeaning": "连接线含义",
|
||||
"blueLine": "蓝色线:行动发现漏洞",
|
||||
"redLine": "红色线:使能/促成关系",
|
||||
"grayLine": "灰色线:逻辑顺序",
|
||||
"nodeDetails": "节点详情",
|
||||
"closeDetails": "关闭详情"
|
||||
},
|
||||
"externalMcpModal": {
|
||||
"configJson": "配置JSON",
|
||||
"formatLabel": "配置格式:",
|
||||
"formatDesc": "JSON对象,key为配置名称,value为配置内容。状态通过\"启动/停止\"按钮控制,无需在JSON中配置。",
|
||||
"formatJson": "格式化JSON",
|
||||
"loadExample": "加载示例"
|
||||
},
|
||||
"skillModal": {
|
||||
"addSkill": "添加Skill",
|
||||
"editSkill": "编辑Skill",
|
||||
"skillName": "Skill名称",
|
||||
"skillNamePlaceholder": "例如: sql-injection-testing",
|
||||
"skillNameHint": "只能包含字母、数字、连字符和下划线",
|
||||
"description": "描述",
|
||||
"descriptionPlaceholder": "Skill的简短描述",
|
||||
"contentLabel": "内容(Markdown格式)",
|
||||
"contentPlaceholder": "输入skill内容,支持Markdown格式...",
|
||||
"contentHint": "支持YAML front matter格式(可选)"
|
||||
},
|
||||
"knowledgeItemModal": {
|
||||
"addKnowledge": "添加知识",
|
||||
"editKnowledge": "编辑知识",
|
||||
"category": "分类(风险类型)",
|
||||
"categoryPlaceholder": "例如:SQL注入",
|
||||
"title": "标题",
|
||||
"titlePlaceholder": "知识项标题",
|
||||
"contentLabel": "内容(Markdown格式)",
|
||||
"contentPlaceholder": "输入知识内容,支持Markdown格式..."
|
||||
},
|
||||
"batchManageModal": {
|
||||
"title": "管理对话记录·共{{count}}条",
|
||||
"searchPlaceholder": "搜索历史记录",
|
||||
"conversationName": "对话名称",
|
||||
"lastTime": "最近一次对话时间",
|
||||
"action": "操作",
|
||||
"selectAll": "全选",
|
||||
"deleteSelected": "删除所选",
|
||||
"confirmDeleteNone": "请先选择要删除的对话",
|
||||
"confirmDeleteN": "确定要删除选中的 {{count}} 条对话吗?",
|
||||
"deleteFailed": "删除失败",
|
||||
"unnamedConversation": "未命名对话"
|
||||
},
|
||||
"createGroupModal": {
|
||||
"title": "创建分组",
|
||||
"description": "分组功能可将对话集中归类管理,让对话更加井然有序。",
|
||||
"selectIcon": "点击选择图标",
|
||||
"groupNamePlaceholder": "请输入分组名称",
|
||||
"pickIcon": "选择图标",
|
||||
"customIcon": "自定义",
|
||||
"confirmIcon": "确定",
|
||||
"create": "创建",
|
||||
"cancel": "取消",
|
||||
"suggestionPenetrationTest": "渗透测试",
|
||||
"suggestionCtf": "CTF",
|
||||
"suggestionRedTeam": "红队",
|
||||
"suggestionVulnerabilityMining": "漏洞挖掘",
|
||||
"nameExists": "分组名称已存在,请使用其他名称",
|
||||
"createFailed": "创建失败",
|
||||
"unknownError": "未知错误"
|
||||
},
|
||||
"contextMenu": {
|
||||
"viewAttackChain": "查看攻击链",
|
||||
"rename": "重命名",
|
||||
"pinConversation": "置顶此对话",
|
||||
"unpinConversation": "取消置顶",
|
||||
"batchManage": "批量管理",
|
||||
"moveToGroup": "移动到分组",
|
||||
"deleteConversation": "删除此对话",
|
||||
"pinGroup": "置顶此分组",
|
||||
"unpinGroup": "取消置顶",
|
||||
"deleteGroup": "删除此分组"
|
||||
},
|
||||
"batchImportModal": {
|
||||
"title": "新建任务",
|
||||
"queueTitle": "任务标题",
|
||||
"queueTitlePlaceholder": "请输入任务标题(可选,用于标识和筛选)",
|
||||
"queueTitleHint": "为批量任务队列设置一个标题,方便后续查找和管理。",
|
||||
"role": "角色",
|
||||
"defaultRole": "默认",
|
||||
"roleHint": "选择一个角色,所有任务将使用该角色的配置(提示词和工具)执行。",
|
||||
"tasksList": "任务列表(每行一个任务)",
|
||||
"tasksListPlaceholder": "请输入任务列表,每行一个任务",
|
||||
"tasksListPlaceholderExample": "请输入任务列表,每行一个任务,例如:\n扫描 192.168.1.1 的开放端口\n检查 https://example.com 是否存在SQL注入\n枚举 example.com 的子域名",
|
||||
"tasksListHint": "每行输入一个任务指令,系统将依次执行这些任务。空行会被自动忽略。",
|
||||
"tasksListHintFull": "提示:每行输入一个任务指令,系统将依次执行这些任务。空行会被自动忽略。",
|
||||
"createQueue": "创建队列"
|
||||
},
|
||||
"batchQueueDetailModal": {
|
||||
"title": "批量任务队列详情",
|
||||
"addTask": "添加任务",
|
||||
"startExecute": "开始执行",
|
||||
"pauseQueue": "暂停队列",
|
||||
"deleteQueue": "删除队列",
|
||||
"queueTitle": "任务标题",
|
||||
"role": "角色",
|
||||
"defaultRole": "默认",
|
||||
"queueId": "队列ID",
|
||||
"status": "状态",
|
||||
"createdAt": "创建时间",
|
||||
"startedAt": "开始时间",
|
||||
"completedAt": "完成时间",
|
||||
"taskTotal": "任务总数",
|
||||
"taskList": "任务列表",
|
||||
"startLabel": "开始",
|
||||
"completeLabel": "完成",
|
||||
"errorLabel": "错误",
|
||||
"resultLabel": "结果"
|
||||
},
|
||||
"editBatchTaskModal": {
|
||||
"title": "编辑任务",
|
||||
"taskMessage": "任务消息",
|
||||
"taskMessagePlaceholder": "请输入任务消息"
|
||||
},
|
||||
"addBatchTaskModal": {
|
||||
"title": "添加任务",
|
||||
"taskMessage": "任务消息",
|
||||
"taskMessagePlaceholder": "请输入任务消息",
|
||||
"add": "添加"
|
||||
},
|
||||
"vulnerabilityModal": {
|
||||
"conversationId": "会话ID",
|
||||
"conversationIdPlaceholder": "输入会话ID",
|
||||
"title": "标题",
|
||||
"titlePlaceholder": "漏洞标题",
|
||||
"description": "描述",
|
||||
"descriptionPlaceholder": "漏洞详细描述",
|
||||
"severity": "严重程度",
|
||||
"pleaseSelect": "请选择",
|
||||
"severityCritical": "严重",
|
||||
"severityHigh": "高危",
|
||||
"severityMedium": "中危",
|
||||
"severityLow": "低危",
|
||||
"severityInfo": "信息",
|
||||
"status": "状态",
|
||||
"statusOpen": "待处理",
|
||||
"statusConfirmed": "已确认",
|
||||
"statusFixed": "已修复",
|
||||
"statusFalsePositive": "误报",
|
||||
"type": "漏洞类型",
|
||||
"typePlaceholder": "如:SQL注入、XSS、CSRF等",
|
||||
"target": "目标",
|
||||
"targetPlaceholder": "受影响的目标(URL、IP地址等)",
|
||||
"proof": "证明(POC)",
|
||||
"proofPlaceholder": "漏洞证明,如请求/响应、截图等",
|
||||
"impact": "影响",
|
||||
"impactPlaceholder": "漏洞影响说明",
|
||||
"recommendation": "修复建议",
|
||||
"recommendationPlaceholder": "修复建议"
|
||||
},
|
||||
"roleModal": {
|
||||
"addRole": "添加角色",
|
||||
"editRole": "编辑角色",
|
||||
"roleName": "角色名称",
|
||||
"roleNamePlaceholder": "输入角色名称",
|
||||
"roleDescription": "角色描述",
|
||||
"roleDescriptionPlaceholder": "输入角色描述",
|
||||
"roleIcon": "角色图标",
|
||||
"roleIconPlaceholder": "输入emoji图标,例如: 🏆",
|
||||
"roleIconHint": "输入一个emoji作为角色的图标,将显示在角色选择器中。",
|
||||
"userPrompt": "用户提示词",
|
||||
"userPromptPlaceholder": "输入用户提示词,会在用户消息前追加此提示词...",
|
||||
"userPromptHint": "此提示词会追加到用户消息前,用于指导AI的行为。注意:这不会修改系统提示词。",
|
||||
"relatedTools": "关联的工具(可选)",
|
||||
"defaultRoleToolsTitle": "默认角色使用所有工具",
|
||||
"defaultRoleToolsDesc": "默认角色会自动使用MCP管理中启用的所有工具,无需单独配置。",
|
||||
"searchToolsPlaceholder": "搜索工具...",
|
||||
"loadingTools": "正在加载工具列表...",
|
||||
"relatedToolsHint": "勾选要关联的工具,留空则使用MCP管理中的全部工具配置。",
|
||||
"relatedSkills": "关联的Skills(可选)",
|
||||
"searchSkillsPlaceholder": "搜索skill...",
|
||||
"loadingSkills": "正在加载skills列表...",
|
||||
"relatedSkillsHint": "勾选要关联的skills,这些skills的内容会在执行任务前注入到系统提示词中,帮助AI更好地理解相关专业知识。",
|
||||
"enableRole": "启用此角色"
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user