Files
CyberStrikeAI/web/static/i18n/en-US.json
2026-04-03 23:23:58 +08:00

1613 lines
68 KiB
JSON
Raw Permalink Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
{
"lang": {
"zhCN": "中文",
"enUS": "English"
},
"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",
"view": "View",
"actions": "Actions"
},
"header": {
"title": "CyberStrikeAI",
"apiDocs": "API Docs",
"github": "GitHub",
"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",
"webshell": "WebShell Management",
"chatFiles": "File Management",
"mcp": "MCP",
"mcpMonitor": "MCP Monitor",
"mcpManagement": "MCP Management",
"knowledge": "Knowledge",
"knowledgeRetrievalLogs": "Retrieval history",
"knowledgeManagement": "Knowledge Management",
"skills": "Skills",
"skillsMonitor": "Skills monitor",
"skillsManagement": "Skills Management",
"agents": "Agents",
"agentsManagement": "Agent 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",
"toggleConversationPanel": "Collapse/expand conversation list",
"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)",
"readingAttachmentsDetail": "Reading attachment {{current}}/{{total}} · {{name}} · {{percent}}%",
"uploadingAttachmentsDetail": "Uploading attachments · {{done}}/{{total}} done · {{percent}}% overall",
"waitingAttachmentsUpload": "Waiting for attachments to finish uploading…",
"attachmentsUploadIncomplete": "Some attachments failed to upload. Remove the failed items or pick files again before sending.",
"attachmentUploading": "Uploading…",
"attachmentUploadFailed": "Failed",
"attachmentUploadAlert": "Upload failed: {{name}}",
"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",
"deleteTurnTitle": "Delete this turn",
"deleteTurnConfirm": "Delete this entire turn (user message and assistant reply)? This cannot be undone. The next reply will use only the remaining messages; saved context snapshots will be cleared.",
"deleteTurnFailed": "Failed to delete turn",
"emptyGroupConversations": "This group has no conversations yet.",
"noMatchingConversationsInGroup": "No matching conversations found.",
"noHistoryConversations": "No conversation history yet",
"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",
"downloadConversationFailed": "Failed to download conversation",
"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",
"callNumber": "Call #{{n}}",
"iterationRound": "Iteration {{n}}",
"einoOrchestratorRound": "Orchestrator · round {{n}}",
"einoSubAgentStep": "Sub-agent {{agent}} · step {{n}}",
"aiThinking": "AI thinking",
"planning": "Planning",
"toolCallsDetected": "Detected {{count}} tool call(s)",
"callTool": "Call tool: {{name}} ({{index}}/{{total}})",
"toolExecComplete": "Tool {{name}} completed",
"toolExecFailed": "Tool {{name}} failed",
"knowledgeRetrieval": "Knowledge retrieval",
"knowledgeRetrievalTag": "Knowledge retrieval",
"error": "Error",
"streamNetworkErrorHint": "Connection lost ({{detail}}). A long task may still be running on the server; check running tasks at the top or refresh this conversation later.",
"taskCancelled": "Task cancelled",
"unknownTool": "Unknown tool",
"einoAgentReplyTitle": "Sub-agent reply",
"einoRecoveryTitle": "🔄 Invalid tool JSON · run {{n}}/{{max}} (hint appended)",
"noDescription": "No description",
"noResponseData": "No response data",
"loading": "Loading...",
"loadFailed": "Load failed: {{message}}",
"noAttackChainData": "No attack chain data",
"copyFailedManual": "Copy failed, please select and copy manually",
"searching": "Searching...",
"loadFailedRetry": "Load failed, please retry",
"dataFormatError": "Data format error",
"progressInProgress": "Penetration test in progress...",
"executionFailed": "Execution failed",
"penetrationTestComplete": "Penetration test complete",
"yesterday": "Yesterday",
"agentModeSelectAria": "Choose single-agent or multi-agent",
"agentModePanelTitle": "Conversation mode",
"agentModeSingle": "Single-agent",
"agentModeMulti": "Multi-agent",
"agentModeSingleHint": "Single-model ReAct loop for chat and tool use",
"agentModeMultiHint": "Eino DeepAgent with sub-agents for complex tasks"
},
"progress": {
"callingAI": "Calling AI model...",
"callingTool": "Calling tool: {{name}}",
"lastIterSummary": "Last iteration: generating summary and next steps...",
"summaryDone": "Summary complete",
"generatingFinalReply": "Generating final reply...",
"maxIterSummary": "Max iterations reached, generating summary...",
"analyzingRequestShort": "Analyzing your request...",
"analyzingRequestPlanning": "Analyzing your request and planning test strategy...",
"startingEinoDeepAgent": "Starting Eino DeepAgent...",
"einoAgent": "Eino agent: {{name}}"
},
"timeline": {
"params": "Parameters:",
"executionResult": "Execution result:",
"executionId": "Execution ID:",
"noResult": "No result",
"running": "Running...",
"completed": "Completed",
"execFailed": "Execution failed"
},
"tasks": {
"title": "Task Management",
"stopTask": "Stop task",
"collapseDetail": "Collapse details",
"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",
"cancelFailed": "Cancel failed",
"taskInfoNotSynced": "Task info not synced yet, please try again later.",
"loadActiveTasksFailed": "Failed to load active tasks",
"cannotGetTaskStatus": "Cannot get task status",
"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?"
},
"webshell": {
"title": "WebShell Management",
"addConnection": "Add connection",
"connections": "Connections",
"noConnections": "No connections. Click \"Add connection\" to add one.",
"selectOrAdd": "Select a connection from the list or add a new WebShell connection.",
"url": "Shell URL",
"urlPlaceholder": "http(s)://target.com/shell.php",
"password": "Password / Key",
"passwordPlaceholder": "e.g. IceSword/AntSword connection password",
"method": "Request method",
"methodPost": "POST",
"methodGet": "GET",
"type": "Shell type",
"typePhp": "PHP",
"typeAsp": "ASP",
"typeAspx": "ASPX",
"typeJsp": "JSP",
"typeCustom": "Custom",
"cmdParam": "Command parameter name",
"cmdParamPlaceholder": "Leave empty for cmd; e.g. xxx for xxx=command",
"remark": "Remark",
"remarkPlaceholder": "Friendly name for this connection",
"deleteConfirm": "Delete this connection?",
"editConnection": "Edit",
"editConnectionTitle": "Edit connection",
"tabTerminal": "Virtual terminal",
"tabFileManager": "File manager",
"tabAiAssistant": "AI Assistant",
"tabDbManager": "Database Manager",
"tabMemo": "Memo",
"dbType": "Database type",
"dbHost": "Host",
"dbPort": "Port",
"dbUsername": "Username",
"dbPassword": "Password",
"dbName": "Database name",
"dbSqlitePath": "SQLite file path",
"dbSqlPlaceholder": "Enter SQL, e.g. SELECT version();",
"dbRunSql": "Run SQL",
"dbTest": "Test connection",
"dbOutput": "Output",
"dbNoConn": "Please select a WebShell connection first",
"dbSqlRequired": "Please enter SQL",
"dbRunning": "Database command is running, please wait",
"dbCliHint": "If command not found appears, install mysql/psql/sqlite3/sqlcmd on the target host first",
"dbExecFailed": "Database execution failed",
"dbSchema": "Database Schema",
"dbLoadSchema": "Load Schema",
"dbNoSchema": "No schema yet, click Load Schema",
"dbSelectTableHint": "Click a table to expand columns and generate SQL",
"dbNoColumns": "No column details",
"dbResultTable": "Result Table",
"dbClearSql": "Clear SQL",
"dbTemplateSql": "SQL Template",
"dbRows": "rows",
"dbColumns": "columns",
"dbSchemaFailed": "Failed to load schema",
"dbSchemaLoaded": "Schema loaded successfully",
"dbAddProfile": "Add connection",
"dbExecSuccess": "SQL executed successfully",
"dbNoOutput": "Execution completed (no output)",
"dbRenameProfile": "Rename",
"dbDeleteProfile": "Delete connection",
"dbDeleteProfileConfirm": "Delete this database connection profile?",
"dbProfileNamePrompt": "Enter profile name",
"dbProfiles": "Database connections",
"aiSystemReadyMessage": "System is ready. Please enter your test requirements, and the system will automatically perform the corresponding security tests.",
"aiNewConversation": "New conversation",
"aiPreviousConversation": "Previous conversation",
"aiDeleteConversation": "Delete conversation",
"aiDeleteConversationConfirm": "Delete this conversation?",
"aiPlaceholder": "e.g. List files in the current directory",
"aiSend": "Send",
"aiMemo": "Memo",
"aiMemoPlaceholder": "Save key commands, testing ideas, and repro steps...",
"aiMemoClear": "Clear",
"aiMemoSaving": "Saving...",
"aiMemoSaved": "Saved locally",
"quickCommands": "Quick commands",
"downloadFile": "Download",
"terminalWelcome": "WebShell virtual terminal — type a command and press Enter (Ctrl+L clear)",
"filePath": "Current path",
"listDir": "List directory",
"readFile": "Read",
"editFile": "Edit",
"deleteFile": "Delete",
"saveFile": "Save",
"cancelEdit": "Cancel",
"parentDir": "Parent directory",
"execError": "Execution failed",
"testConnectivity": "Test connectivity",
"testSuccess": "Connection OK, shell is reachable",
"testFailed": "Connectivity test failed",
"testNoExpectedOutput": "Shell responded but expected output was not found. Check password and command parameter name.",
"clearScreen": "Clear",
"copyTerminalLog": "Copy log",
"terminalIdle": "Idle",
"terminalRunning": "Running",
"terminalCopyOk": "Log copied",
"terminalCopyFail": "Copy failed",
"terminalNewWindow": "New terminal",
"terminalWindowPrefix": "Terminal",
"running": "Running…",
"waitFinish": "Please wait for the current command to finish",
"newDir": "New directory",
"rename": "Rename",
"upload": "Upload",
"newFile": "New file",
"filterPlaceholder": "Filter by name",
"batchDelete": "Batch delete",
"batchDownload": "Batch download",
"refresh": "Refresh",
"selectAll": "Select all",
"searchPlaceholder": "Search connections...",
"noMatchConnections": "No matching connections",
"breadcrumbHome": "Root",
"dirTree": "Directory tree",
"back": "Back",
"moreActions": "More actions",
"batchProbe": "Batch probe",
"probeRunning": "Probing",
"probeOnline": "Online",
"probeOffline": "Offline",
"probeNoConnections": "No connections to probe",
"colModifiedAt": "Modified",
"colPerms": "Permissions",
"colOwner": "Owner",
"colGroup": "Group",
"colType": "Type"
},
"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",
"configEditMustContainName": "Config error: In edit mode, JSON must contain config name \"{{name}}\"",
"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",
"toolsCountValue": "🔧 {{count}} tools",
"connectionErrorLabel": "Connection error:",
"secondsUnit": "s",
"urlLabel": "URL",
"loadExternalMCPFailed": "Load failed"
},
"settings": {
"title": "System settings",
"nav": {
"basic": "Basic",
"knowledge": "Knowledge base",
"robots": "Bots",
"terminal": "Terminal",
"security": "Security"
},
"knowledge": {
"title": "Knowledge base"
},
"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",
"token": "Token",
"tokenPlaceholder": "Token",
"encodingAesKey": "EncodingAESKey",
"encodingAesKeyPlaceholder": "EncodingAESKey (leave empty for plain mode)",
"corpId": "CorpID",
"corpIdPlaceholder": "Corp ID",
"secret": "Secret",
"secretPlaceholder": "App Secret",
"agentId": "AgentID",
"agentIdPlaceholder": "App AgentId"
},
"dingtalk": {
"title": "DingTalk",
"enabled": "Enable DingTalk bot",
"clientIdLabel": "Client ID (AppKey)",
"clientIdPlaceholder": "DingTalk App Key",
"clientSecretLabel": "Client Secret",
"clientSecretPlaceholder": "DingTalk App Secret",
"streamHint": "Enable bot capability and configure streaming access in the open platform."
},
"lark": {
"title": "Lark",
"enabled": "Enable Lark bot",
"appIdLabel": "App ID",
"appIdPlaceholder": "Lark/Feishu App ID",
"appSecretLabel": "App Secret",
"appSecretPlaceholder": "Lark/Feishu App Secret",
"verifyTokenLabel": "Verify Token (Optional)",
"verifyTokenPlaceholder": "Event subscription Verification Token"
}
},
"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?",
"loadFailed": "Failed to load roles",
"noDescription": "No description",
"defaultRoleDescription": "Default role, no extra user prompt, uses default MCP",
"noMatchingRoles": "No matching roles",
"noRoles": "No roles",
"enabled": "Enabled",
"disabled": "Disabled",
"noDescriptionShort": "No description"
},
"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",
"noDescription": "No description",
"viewSkillTitle": "View Skill: {{name}}",
"descriptionLabel": "Description:",
"pathLabel": "Path:",
"modTimeLabel": "Modified:",
"contentLabel": "Content:",
"nameRequired": "Skill name is required",
"contentRequired": "Skill content is required",
"nameInvalid": "Skill name can only contain letters, numbers, hyphens and underscores",
"saveSuccess": "Skill updated",
"createdSuccess": "Skill created",
"deleteConfirm": "Are you sure you want to delete skill \"{{name}}\"? This cannot be undone.",
"deleteConfirmWithRoles": "Are you sure you want to delete skill \"{{name}}\"?\n\n⚠ This skill is currently bound to {{count}} role(s):\n{{roles}}\n\nAfter deletion, the system will automatically remove this skill from those roles.\n\nThis cannot be undone. Continue?",
"deleteSuccess": "Skill deleted",
"deleteSuccessWithRoles": "Skill deleted and automatically removed from {{count}} role(s): {{roles}}",
"loadFailedShort": "Load failed",
"totalSkillsCount": "Total Skills",
"totalCallsCount": "Total Call Count",
"successfulCalls": "Successful Calls",
"failedCalls": "Failed Calls",
"successRate": "Success Rate",
"skillName": "Skill Name",
"totalCalls": "Total Calls",
"success": "Success",
"failure": "Failure",
"lastCallTime": "Last Call Time",
"noCallRecords": "No Skills call records yet",
"loadStatsErrorShort": "Failed to load statistics",
"loadCallStatsError": "Failed to load call statistics"
},
"apiDocs": {
"pageTitle": "API Docs - CyberStrikeAI",
"title": "API Docs",
"subtitle": "CyberStrikeAI platform API documentation with online testing",
"authTitle": "API Authentication",
"authAllNeedToken": "All API endpoints require Token authentication.",
"authGetToken": "1. Get Token:",
"authGetTokenDesc": "After logging in on the frontend, the Token is saved automatically. You can also get it via:",
"authUseToken": "2. Use Token:",
"authUseTokenDesc": "Add the Authorization header:",
"authTip": "💡 This page will use your logged-in Token automatically; no need to fill it manually.",
"tokenDetected": "✓ Token detected - You can test API endpoints directly",
"tokenNotDetected": "⚠ No Token detected - Please log in on the frontend first, then refresh this page. When testing, add Authorization: Bearer token in the request header",
"sidebarGroupTitle": "API Groups",
"allApis": "All APIs",
"loading": "Loading...",
"loadingDesc": "Loading API documentation",
"errorLoginRequired": "Login required to view API docs. Please log in on the frontend first, then refresh this page.",
"errorLoadSpec": "Failed to load API spec: ",
"errorLoadFailed": "Failed to load API docs: ",
"errorSpecInvalid": "Invalid API spec format",
"loadFailed": "Load failed",
"backToLogin": "Back to login",
"noApis": "No APIs",
"noEndpointsInGroup": "No API endpoints in this group",
"sectionDescription": "Description",
"viewDetailDesc": "View details",
"hideDetailDesc": "Hide details",
"noDescription": "No description",
"sectionParams": "Parameters",
"paramName": "Parameter",
"type": "Type",
"description": "Description",
"required": "Required",
"optional": "Optional",
"sectionRequestBody": "Request body",
"example": "Example",
"exampleJson": "Example JSON:",
"sectionResponse": "Response",
"testSection": "Test",
"requestBodyJson": "Request body (JSON)",
"queryParams": "Query parameters:",
"sendRequest": "Send request",
"copyCurl": "Copy cURL",
"clearResult": "Clear result",
"copyCurlTitle": "Copy cURL command",
"clearResultTitle": "Clear test result",
"sendingRequest": "Sending request...",
"errorPathParamRequired": "Path parameter {{name}} is required",
"errorQueryParamRequired": "Query parameter {{name}} is required",
"errorTokenRequired": "No Token detected. Please log in on the frontend and refresh, or add Authorization: Bearer your_token in the request header",
"errorJsonInvalid": "Invalid request body JSON: ",
"requestFailed": "Request failed: ",
"copied": "Copied",
"curlCopied": "curl command copied to clipboard!",
"copyFailedManual": "Copy failed, please copy manually:\n\n",
"curlGenFailed": "Failed to generate cURL command: ",
"requestBodyPlaceholder": "Enter request body in JSON format",
"tags": {
"auth": "Authentication",
"conversationManagement": "Conversation Management",
"conversationInteraction": "Conversation Interaction",
"batchTasks": "Batch Tasks",
"conversationGroups": "Conversation Groups",
"vulnerabilityManagement": "Vulnerability Management",
"roleManagement": "Role Management",
"skillsManagement": "Skills Management",
"monitoring": "Monitoring",
"configManagement": "Configuration Management",
"externalMCPManagement": "External MCP Management",
"attackChain": "Attack Chain",
"knowledgeBase": "Knowledge Base",
"mcp": "MCP"
},
"summary": {
"login": "User login",
"logout": "User logout",
"changePassword": "Change password",
"validateToken": "Validate Token",
"createConversation": "Create conversation",
"listConversations": "List conversations",
"getConversationDetail": "Get conversation detail",
"updateConversation": "Update conversation",
"deleteConversation": "Delete conversation",
"getConversationResult": "Get conversation result",
"sendMessageNonStream": "Send message and get AI reply (non-stream)",
"sendMessageStream": "Send message and get AI reply (stream)",
"cancelTask": "Cancel task",
"listRunningTasks": "List running tasks",
"listCompletedTasks": "List completed tasks",
"createBatchQueue": "Create batch task queue",
"listBatchQueues": "List batch task queues",
"getBatchQueue": "Get batch task queue",
"deleteBatchQueue": "Delete batch task queue",
"startBatchQueue": "Start batch task queue",
"pauseBatchQueue": "Pause batch task queue",
"addTaskToQueue": "Add task to queue",
"sqlInjectionScan": "SQL injection scan",
"portScan": "Port scan",
"updateBatchTask": "Update batch task",
"deleteBatchTask": "Delete batch task",
"createGroup": "Create group",
"listGroups": "List groups",
"getGroup": "Get group",
"updateGroup": "Update group",
"deleteGroup": "Delete group",
"getGroupConversations": "Get conversations in group",
"addConversationToGroup": "Add conversation to group",
"removeConversationFromGroup": "Remove conversation from group",
"listVulnerabilities": "List vulnerabilities",
"createVulnerability": "Create vulnerability",
"getVulnerabilityStats": "Get vulnerability statistics",
"getVulnerability": "Get vulnerability",
"updateVulnerability": "Update vulnerability",
"deleteVulnerability": "Delete vulnerability",
"listRoles": "List roles",
"createRole": "Create role",
"getRole": "Get role",
"updateRole": "Update role",
"deleteRole": "Delete role",
"getAvailableSkills": "Get available Skills list",
"listSkills": "List Skills",
"createSkill": "Create Skill",
"getSkillStats": "Get Skill statistics",
"clearSkillStats": "Clear Skill statistics",
"getSkill": "Get Skill",
"updateSkill": "Update Skill",
"deleteSkill": "Delete Skill",
"getBoundRoles": "Get bound roles",
"clearSkillStatsAlt": "Clear Skill statistics",
"getMonitorInfo": "Get monitoring info",
"getExecutionRecords": "Get execution records",
"deleteExecutionRecord": "Delete execution record",
"batchDeleteExecutionRecords": "Batch delete execution records",
"getStats": "Get statistics",
"getConfig": "Get configuration",
"updateConfig": "Update configuration",
"getToolConfig": "Get tool configuration",
"applyConfig": "Apply configuration",
"listExternalMCP": "List external MCP",
"getExternalMCPStats": "Get external MCP statistics",
"getExternalMCP": "Get external MCP",
"addOrUpdateExternalMCP": "Add or update external MCP",
"stdioModeConfig": "stdio mode config",
"sseModeConfig": "SSE mode config",
"deleteExternalMCP": "Delete external MCP",
"startExternalMCP": "Start external MCP",
"stopExternalMCP": "Stop external MCP",
"getAttackChain": "Get attack chain",
"regenerateAttackChain": "Regenerate attack chain",
"pinConversation": "Pin conversation",
"pinGroup": "Pin group",
"pinGroupConversation": "Pin conversation in group",
"getCategories": "Get categories",
"listKnowledgeItems": "List knowledge items",
"createKnowledgeItem": "Create knowledge item",
"getKnowledgeItem": "Get knowledge item",
"updateKnowledgeItem": "Update knowledge item",
"deleteKnowledgeItem": "Delete knowledge item",
"getIndexStatus": "Get index status",
"rebuildIndex": "Rebuild index",
"scanKnowledgeBase": "Scan knowledge base",
"searchKnowledgeBase": "Search knowledge base",
"basicSearch": "Basic search",
"searchByRiskType": "Search by risk type",
"getRetrievalLogs": "Get retrieval logs",
"deleteRetrievalLog": "Delete retrieval log",
"mcpEndpoint": "MCP endpoint",
"listAllTools": "List all tools",
"invokeTool": "Invoke tool",
"initConnection": "Initialize connection",
"successResponse": "Success response",
"errorResponse": "Error response"
},
"response": {
"getSuccess": "Success",
"unauthorized": "Unauthorized",
"unauthorizedToken": "Unauthorized, valid Token required",
"createSuccess": "Created successfully",
"badRequest": "Bad request",
"conversationNotFound": "Conversation not found",
"conversationOrResultNotFound": "Conversation or result not found",
"badRequestTaskEmpty": "Bad request (e.g. task is empty)",
"badRequestGroupNameExists": "Bad request or group name already exists",
"groupNotFound": "Group not found",
"badRequestConfig": "Bad request (e.g. invalid config or missing required fields)",
"badRequestQueryEmpty": "Bad request (e.g. query is empty)",
"methodNotAllowed": "Method not allowed (POST only)",
"loginSuccess": "Login successful",
"invalidPassword": "Invalid password",
"logoutSuccess": "Logout successful",
"passwordChanged": "Password changed successfully",
"tokenValid": "Token valid",
"tokenInvalid": "Token invalid or expired",
"conversationCreated": "Conversation created",
"internalError": "Internal server error",
"updateSuccess": "Updated successfully",
"deleteSuccess": "Deleted successfully",
"queueNotFound": "Queue not found",
"startSuccess": "Started successfully",
"pauseSuccess": "Paused successfully",
"addSuccess": "Added successfully",
"taskNotFound": "Task not found",
"conversationOrGroupNotFound": "Conversation or group not found",
"cancelSubmitted": "Cancel request submitted",
"noRunningTask": "No running task found",
"messageSent": "Message sent, AI reply returned",
"streamResponse": "Stream response (Server-Sent Events)"
}
},
"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",
"queryPresetsAria": "FOFA query presets",
"fieldsPresetsAria": "FOFA field presets",
"resultsToolbarAria": "Results toolbar",
"fillExample": "Fill example",
"parseBtnTitle": "Parse natural language to FOFA query",
"minFieldsTitle": "For quick export",
"webCommonTitle": "For browsing and filtering",
"intelEnhancedTitle": "More fingerprint/intel",
"fullLabel": "full",
"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"
},
"chatFilesPage": {
"title": "File Management",
"intro": "Files uploaded in chat appear here. Click “Copy path” to copy the server absolute path and paste it into a conversation so the model can reference the file.",
"upload": "Upload",
"conversationFilter": "Conversation ID",
"conversationPlaceholder": "Leave empty for all",
"searchName": "File name",
"searchNamePlaceholder": "Filter by file name",
"groupBy": "Group by",
"groupNone": "None (flat list)",
"groupByDate": "By date",
"groupByConversation": "By conversation",
"groupByFolder": "By folder (path navigation)",
"browseRoot": "chat_uploads",
"browseUp": "Up",
"enterFolderTitle": "Open folder",
"copyFolderPathTitle": "Copy relative path under chat_uploads/…",
"folderPathCopied": "Folder path copied — paste into chat if needed",
"folderEmpty": "This folder is empty",
"confirmDeleteFolder": "Delete this folder and everything inside it? This cannot be undone.",
"folderRemovedStale": "That folder is not on the server anymore; list refreshed.",
"deleteFolderTitle": "Delete folder",
"uploadToFolderTitle": "Upload file into this folder",
"newFolderButton": "New folder",
"newFolderTitle": "New folder",
"newFolderLocation": "Location",
"newFolderNameLabel": "Folder name",
"newFolderNamePlaceholder": "Name only, no slashes",
"mkdirOk": "Folder created",
"mkdirExists": "A file or folder with that name already exists",
"mkdirInvalidName": "Invalid name: cannot be empty or contain /, \\, or use . or ..",
"colSubPath": "Subfolder",
"folderRoot": "(root)",
"groupCount": "{{count}} files",
"convManual": "Manual upload",
"convNew": "New chat",
"colDate": "Date",
"colConversation": "Conversation",
"colName": "Name",
"colSize": "Size",
"colModified": "Modified",
"colActions": "Actions",
"copyPath": "Copy path",
"copyPathTitle": "Copy the absolute path on the server; paste into chat to reference this file",
"pathCopied": "Path copied — paste it into chat",
"uploadOkHint": "Uploaded. Use “Copy path” to copy the absolute path.",
"uploadingFile": "Uploading {{name}} · {{percent}}%",
"moreActions": "More: open chat, edit, rename, delete",
"download": "Download",
"edit": "Edit",
"rename": "Rename",
"openChat": "Open chat",
"confirmDelete": "Delete this file?",
"editTitle": "Edit file",
"renameTitle": "Rename",
"newFileName": "New file name",
"empty": "No chat uploads yet",
"errorLoad": "Failed to load",
"editBinaryHint": "Binary files (images, archives, etc.) cannot be edited as text here. Use Download and open locally.",
"editUnavailable": "N/A",
"editTooLarge": "File exceeds 2MB and cannot be edited here. Download and edit locally.",
"errorGeneric": "Something went wrong. Please try again."
},
"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...",
"paginationShow": "Show {{start}}-{{end}} of {{total}}",
"perPageLabel": "Per page",
"firstPage": "First",
"prevPage": "Previous",
"pageOf": "Page {{current}} / {{total}}",
"nextPage": "Next",
"lastPage": "Last"
},
"agentsPage": {
"title": "Agent management",
"create": "New agent",
"hint": "Agents are .md files under agents_dir (front matter + body as system prompt). The orchestrator is the Deep coordinator and is not listed as a task sub-agent.",
"dirLabel": "Directory",
"loading": "Loading...",
"empty": "No Markdown sub-agents yet. Click New agent to create one.",
"noDesc": "No description",
"loadFailed": "Failed to load list",
"loadOneFailed": "Failed to load agent",
"createTitle": "New agent",
"editTitle": "Edit agent",
"filename": "File name (.md)",
"filenamePlaceholder": "e.g. code-reviewer.md",
"fieldRole": "Type",
"roleSub": "Sub-agent",
"roleOrchestrator": "Orchestrator (Deep)",
"roleHint": "You can also use the fixed file name orchestrator.md. Only one orchestrator per directory. If the orchestrator body is empty, config orchestrator_instruction and Eino defaults apply.",
"badgeOrchestrator": "Orchestrator",
"badgeSub": "Sub-agent",
"filenameInvalid": "File name must end with .md and use only letters, digits, ._-",
"fieldId": "Agent id (optional; derived from name if empty)",
"fieldName": "Display name",
"namePlaceholder": "Code Reviewer",
"fieldDesc": "Description",
"descPlaceholder": "When the orchestrator should delegate to this agent",
"fieldTools": "Tools (comma-separated; same keys as role tools)",
"fieldBindRole": "Bind role (optional)",
"fieldMaxIter": "Max sub-agent iterations (0 = use global default)",
"fieldInstruction": "System prompt (Markdown body)",
"instructionPlaceholder": "You are a specialist agent...",
"nameRequired": "Display name is required",
"instructionRequired": "System prompt body is required",
"saveOk": "Saved",
"createOk": "Created",
"saveFailed": "Save failed",
"deleteConfirm": "Delete {{name}}?",
"deleteOk": "Deleted",
"deleteFailed": "Delete failed"
},
"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",
"enableMultiAgent": "Enable Eino multi-agent (DeepAgent)",
"enableMultiAgentHint": "After enabling, the chat page can use multi-agent mode; sub-agents are configured in config.yaml under multi_agent.sub_agents.",
"multiAgentDefaultMode": "Default mode on chat page",
"multiAgentModeSingle": "Single-agent (ReAct)",
"multiAgentModeMulti": "Multi-agent (Eino)",
"multiAgentRobotUse": "Use multi-agent for WeCom / DingTalk / Lark bots",
"multiAgentRobotUseHint": "Requires 'Enable multi-agent' to be checked; usage and cost will be higher.",
"multiAgentBatchUse": "Use multi-agent for batch task queues",
"multiAgentBatchUseHint": "When enabled, each sub-task executed by queue in Task Management will run through Eino DeepAgent (requires multi-agent).",
"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}}",
"welcomeLine": "CyberStrikeAI Terminal — real shell session; type commands directly. Ctrl+L to clear screen",
"sessionClosed": "[Session closed]",
"connectionError": "[Terminal connection error]",
"connectFailed": "[Cannot connect to terminal service: {{msg}}]",
"closeTabTitle": "Close",
"containerClickTitle": "Click here, then type commands",
"xtermNotLoaded": "xterm.js failed to load. Refresh the page or check your network.",
"close": "×",
"newTerminal": "+"
},
"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 command instructions",
"botCommandsDesc": "You can send the following commands in chat (Chinese and English supported):",
"botCmdHelp": "Show this help",
"botCmdList": "List conversations",
"botCmdSwitch": "Switch to conversation",
"botCmdNew": "Start new conversation",
"botCmdClear": "Clear context",
"botCmdCurrent": "Show current conversation",
"botCmdStop": "Stop running task",
"botCmdRoles": "List roles",
"botCmdRole": "Switch role",
"botCmdDelete": "Delete conversation",
"botCmdVersion": "Show version",
"botCommandsFooter": "Otherwise, send any text for AI penetration testing / security analysis."
},
"mcpDetailModal": {
"title": "Tool call details",
"execInfo": "Execution info",
"tool": "Tool",
"status": "Status",
"statusPending": "Pending",
"statusRunning": "Running",
"statusCompleted": "Completed",
"statusFailed": "Failed",
"unknown": "Unknown",
"getDetailFailed": "Failed to get details",
"execSuccessNoContent": "Execution succeeded with no displayable content.",
"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.",
"configExample": "Configuration example:",
"stdioMode": "stdio mode:",
"httpMode": "HTTP mode:",
"sseMode": "SSE mode:",
"placeholder": "{\n \"hexstrike-ai\": {\n \"command\": \"python3\",\n \"args\": [\"/path/to/script.py\"],\n \"description\": \"Description\",\n \"timeout\": 300\n }\n}",
"exampleStdio": "{\n \"hexstrike-ai\": {\n \"command\": \"python3\",\n \"args\": [\"/path/to/script.py\", \"--server\", \"http://example.com\"],\n \"description\": \"Description\",\n \"timeout\": 300\n }\n}",
"exampleHttp": "{\n \"cyberstrike-ai-http\": {\n \"transport\": \"http\",\n \"url\": \"http://127.0.0.1:8081/mcp\"\n }\n}",
"exampleSse": "{\n \"cyberstrike-ai-sse\": {\n \"transport\": \"sse\",\n \"url\": \"http://127.0.0.1:8081/mcp/sse\"\n }\n}",
"exampleDescription": "Example description",
"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), e.g.:"
},
"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",
"downloadMarkdown": "Download Markdown",
"downloadMarkdownSummary": "Summary",
"downloadMarkdownFull": "Full",
"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",
"selectAll": "Select All",
"deselectAll": "Deselect All",
"roleNameRequired": "Role name is required",
"roleNotFound": "Role not found",
"firstRoleNoToolsHint": "First role with no tools selected will use all tools by default.",
"currentPageSelected": "Current page: {{current}} / {{total}}",
"totalSelected": "Total selected: {{current}} / {{total}}",
"usingAllEnabledTools": "(Using all enabled tools)",
"currentPageSelectedTitle": "Selected on current page (enabled tools only)",
"totalSelectedTitle": "Total tools linked to this role",
"skillsSelectedCount": "Selected {{count}} / {{total}}",
"loadToolsFailed": "Failed to load tools",
"loadSkillsFailed": "Failed to load skills",
"cannotDeleteDefaultRole": "Cannot delete default role",
"noMatchingSkills": "No matching skills",
"noSkillsAvailable": "No skills available",
"usingAllTools": "Use all tools",
"andNMore": " and {{count}} more",
"toolsLabel": "Tools:",
"noTools": "No tools",
"paginationShow": "{{start}}-{{end}} of {{total}} tools",
"paginationSearch": " (search: \"{{keyword}}\")",
"firstPage": "First",
"prevPage": "Previous",
"pageOf": "Page {{page}} / {{total}}",
"nextPage": "Next",
"lastPage": "Last"
}
}