mirror of
https://github.com/yyhuni/xingrin.git
synced 2026-01-31 11:46:16 +08:00
2312 lines
87 KiB
JSON
2312 lines
87 KiB
JSON
{
|
|
"columns": {
|
|
"common": {
|
|
"name": "Name",
|
|
"description": "Description",
|
|
"createdAt": "Created At",
|
|
"updatedAt": "Updated At",
|
|
"status": "Status",
|
|
"actions": "Actions",
|
|
"type": "Type",
|
|
"url": "URL"
|
|
},
|
|
"scanHistory": {
|
|
"target": "Target",
|
|
"summary": "Summary",
|
|
"engineName": "Engine Name",
|
|
"workerName": "Worker Node",
|
|
"progress": "Progress",
|
|
"subdomains": "Subdomains",
|
|
"websites": "Websites",
|
|
"ipAddresses": "IP Addresses",
|
|
"endpoints": "Endpoints",
|
|
"vulnerabilities": "Vulnerabilities"
|
|
},
|
|
"vulnerability": {
|
|
"severity": "Severity",
|
|
"source": "Source",
|
|
"vulnType": "Vuln Type"
|
|
},
|
|
"organization": {
|
|
"organization": "Organization",
|
|
"totalTargets": "Total Targets",
|
|
"added": "Added"
|
|
},
|
|
"target": {
|
|
"target": "Target",
|
|
"addedOn": "Added On",
|
|
"lastScanned": "Last Scanned"
|
|
},
|
|
"subdomain": {
|
|
"subdomain": "Subdomain"
|
|
},
|
|
"ipAddress": {
|
|
"ipAddress": "IP Address",
|
|
"hosts": "Hosts",
|
|
"openPorts": "Open Ports",
|
|
"allHosts": "All Hosts",
|
|
"allOpenPorts": "All Open Ports"
|
|
},
|
|
"endpoint": {
|
|
"title": "Title",
|
|
"host": "Host",
|
|
"contentLength": "Content Length",
|
|
"location": "Location",
|
|
"webServer": "Web Server",
|
|
"contentType": "Content Type",
|
|
"technologies": "Technologies",
|
|
"responseBody": "Response Body",
|
|
"vhost": "VHost",
|
|
"gfPatterns": "GF Patterns",
|
|
"responseHeaders": "Response Headers",
|
|
"responseTime": "Response Time"
|
|
},
|
|
"website": {
|
|
"host": "Host",
|
|
"responseHeaders": "Response Headers"
|
|
},
|
|
"directory": {
|
|
"length": "Length",
|
|
"words": "Words",
|
|
"lines": "Lines",
|
|
"duration": "Duration"
|
|
},
|
|
"engine": {
|
|
"engineName": "Engine Name",
|
|
"subdomainDiscovery": "Subdomain Discovery",
|
|
"portScan": "Port Scan",
|
|
"siteScan": "Site Scan",
|
|
"directoryScan": "Directory Scan",
|
|
"urlFetch": "URL Fetch",
|
|
"osint": "OSINT",
|
|
"vulnerabilityScan": "Vulnerability Scan",
|
|
"wafDetection": "WAF Detection",
|
|
"screenshot": "Screenshot"
|
|
},
|
|
"scheduledScan": {
|
|
"taskName": "Task Name",
|
|
"scanEngine": "Scan Engine",
|
|
"cronExpression": "Cron Expression",
|
|
"scope": "Scope",
|
|
"nextRun": "Next Run",
|
|
"runCount": "Run Count",
|
|
"lastRun": "Last Run"
|
|
},
|
|
"fingerprint": {
|
|
"name": "Name",
|
|
"cats": "Categories",
|
|
"rules": "Rules",
|
|
"implies": "Implies",
|
|
"website": "Website",
|
|
"cpe": "CPE",
|
|
"created": "Created",
|
|
"logic": "Logic",
|
|
"ruleDetails": "Rule Details",
|
|
"cms": "CMS",
|
|
"method": "Method",
|
|
"keyword": "Keyword",
|
|
"type": "Type",
|
|
"important": "Important"
|
|
},
|
|
"command": {
|
|
"tool": "Tool",
|
|
"commandTemplate": "Command Template"
|
|
}
|
|
},
|
|
"tooltips": {
|
|
"targetDetails": "Target Details",
|
|
"viewProgress": "Click to view progress details",
|
|
"targetSummary": "Target Summary",
|
|
"initiateScan": "Initiate Scan",
|
|
"scheduleScan": "Schedule Scan",
|
|
"editEngine": "Edit Engine",
|
|
"viewDetails": "View Details",
|
|
"unlinkTarget": "Unlink Target",
|
|
"clickToCopy": "Click to copy",
|
|
"expand": "Expand",
|
|
"collapse": "Collapse",
|
|
"vulnDetails": "Vulnerability Details",
|
|
"copied": "Copied",
|
|
"allHosts": "All Hosts",
|
|
"allOpenPorts": "All Open Ports"
|
|
},
|
|
"severity": {
|
|
"critical": "Critical",
|
|
"high": "High",
|
|
"medium": "Medium",
|
|
"low": "Low",
|
|
"info": "Info"
|
|
},
|
|
"common": {
|
|
"actions": {
|
|
"save": "Save",
|
|
"saving": "Saving...",
|
|
"cancel": "Cancel",
|
|
"delete": "Delete",
|
|
"edit": "Edit",
|
|
"add": "Add",
|
|
"create": "Create",
|
|
"update": "Update",
|
|
"search": "Search",
|
|
"refresh": "Refresh",
|
|
"export": "Export",
|
|
"import": "Import",
|
|
"confirm": "Confirm",
|
|
"close": "Close",
|
|
"submit": "Submit",
|
|
"reset": "Reset",
|
|
"copy": "Copy",
|
|
"download": "Download",
|
|
"upload": "Upload",
|
|
"view": "View",
|
|
"details": "Details",
|
|
"back": "Back",
|
|
"next": "Next",
|
|
"previous": "Previous",
|
|
"start": "Start",
|
|
"stop": "Stop",
|
|
"pause": "Pause",
|
|
"resume": "Resume",
|
|
"retry": "Retry",
|
|
"snapshot": "Details",
|
|
"openMenu": "Open menu",
|
|
"selectAll": "Select all",
|
|
"deselectAll": "Deselect all",
|
|
"selectRow": "Select row",
|
|
"website": "Website",
|
|
"description": "Description",
|
|
"processing": "Processing...",
|
|
"confirmDelete": "Confirm Delete",
|
|
"deleteConfirmMessage": "Are you sure you want to delete {count} selected items? This action cannot be undone."
|
|
},
|
|
"yamlEditor": {
|
|
"syntaxError": "Syntax Error",
|
|
"syntaxValid": "Syntax Valid",
|
|
"errorLocation": "Line {line}, Column {column}",
|
|
"loading": "Loading editor...",
|
|
"duplicateKey": "Duplicate key '{key}' found. Later values will override earlier ones. Please remove duplicates."
|
|
},
|
|
"theme": {
|
|
"switchToLight": "Switch to light mode",
|
|
"switchToDark": "Switch to dark mode",
|
|
"switchLanguage": "Switch language",
|
|
"switchColor": "Switch theme color"
|
|
},
|
|
"download": {
|
|
"all": "Download All",
|
|
"selected": "Download Selected",
|
|
"important": "Download Important"
|
|
},
|
|
"ui": {
|
|
"toggleSidebar": "Toggle Sidebar",
|
|
"loading": "Loading",
|
|
"commandDialog": "Command Dialog"
|
|
},
|
|
"dropzone": {
|
|
"uploadFile": "Upload file",
|
|
"uploadFiles": "Upload files",
|
|
"dragOrClick": "Drag files here or click to select",
|
|
"dragOrClickReplace": "Drag or click to replace files",
|
|
"moreFiles": "{files} and {count} more files",
|
|
"supports": "Supports",
|
|
"minimum": "minimum",
|
|
"maximum": "maximum",
|
|
"sizeBetween": "size between {min} and {max}"
|
|
},
|
|
"status": {
|
|
"loading": "Loading...",
|
|
"pageLoading": "Loading page...",
|
|
"success": "Operation successful",
|
|
"error": "Operation failed",
|
|
"noData": "No data",
|
|
"pending": "Pending",
|
|
"running": "Running",
|
|
"completed": "Completed",
|
|
"failed": "Failed",
|
|
"cancelled": "Cancelled",
|
|
"active": "Active",
|
|
"inactive": "Inactive",
|
|
"enabled": "Enabled",
|
|
"disabled": "Disabled",
|
|
"creating": "Creating...",
|
|
"updating": "Updating...",
|
|
"deleting": "Deleting...",
|
|
"removing": "Removing...",
|
|
"unlinking": "Unlinking...",
|
|
"batchCreating": "Batch creating...",
|
|
"batchDeleting": "Batch deleting...",
|
|
"batchRemoving": "Batch removing...",
|
|
"updateSuccess": "Update successful",
|
|
"updateFailed": "Update failed",
|
|
"uploading": "Uploading..."
|
|
},
|
|
"pagination": {
|
|
"page": "Page {current} of {total}",
|
|
"rowsPerPage": "Rows per page",
|
|
"total": "{count} total",
|
|
"first": "First",
|
|
"last": "Last",
|
|
"previous": "Previous",
|
|
"next": "Next",
|
|
"goTo": "Go to"
|
|
},
|
|
"time": {
|
|
"justNow": "Just now",
|
|
"minutesAgo": "{count} minutes ago",
|
|
"hoursAgo": "{count} hours ago",
|
|
"daysAgo": "{count} days ago",
|
|
"weeksAgo": "{count} weeks ago",
|
|
"monthsAgo": "{count} months ago",
|
|
"yearsAgo": "{count} years ago"
|
|
},
|
|
"confirm": {
|
|
"title": "Confirm Action",
|
|
"deleteTitle": "Confirm Delete",
|
|
"deleteMessage": "Are you sure you want to delete? This action cannot be undone.",
|
|
"bulkDeleteTitle": "Confirm Bulk Delete",
|
|
"bulkDeleteMessage": "Are you sure you want to delete {count} selected items? This action cannot be undone.",
|
|
"unlinkTitle": "Confirm Unlink",
|
|
"unlinkMessage": "Are you sure you want to unlink? This will only remove the association, the data itself will not be deleted.",
|
|
"bulkUnlinkTitle": "Confirm Bulk Unlink",
|
|
"bulkUnlinkMessage": "Are you sure you want to unlink {count} selected items? The data itself will not be deleted.",
|
|
"stopTitle": "Confirm Stop",
|
|
"stopMessage": "Are you sure you want to stop this task?",
|
|
"yes": "Yes",
|
|
"no": "No",
|
|
"deleteVulnMessage": "This action cannot be undone. This will permanently delete vulnerability \"{name}\" and its related data.",
|
|
"bulkDeleteVulnMessage": "This action cannot be undone. This will permanently delete the following {count} vulnerabilities and their related data.",
|
|
"deleteVulnCount": "Delete {count} vulnerabilities",
|
|
"deleteScanMessage": "This action cannot be undone. This will permanently delete scan record \"{name}\" and its related data.",
|
|
"bulkDeleteScanMessage": "This action cannot be undone. This will permanently delete the following {count} scan records and their related data.",
|
|
"deleteScanCount": "Delete {count} records",
|
|
"stopScanTitle": "Confirm Stop Scan",
|
|
"stopScanMessage": "Are you sure you want to stop scan task \"{name}\"? The scan will be aborted, but collected data will be preserved.",
|
|
"stopScanAction": "Stop Scan",
|
|
"deleteOrgMessage": "This will permanently delete organization \"{name}\" and unlink its domains. The domains themselves will not be deleted.",
|
|
"bulkDeleteOrgMessage": "This will permanently delete the following {count} organizations and unlink their domains. The domains themselves will not be deleted.",
|
|
"deleteOrgCount": "Delete {count} organizations",
|
|
"deleting": "Deleting...",
|
|
"deleteToolMessage": "This action cannot be undone. This will permanently delete opensource tool \"{name}\" and its configuration.",
|
|
"deleteCustomToolMessage": "This action cannot be undone. This will permanently delete custom tool \"{name}\" and its configuration.",
|
|
"deleteTargetTitle": "Confirm Delete Target",
|
|
"deleteTargetMessage": "This action cannot be undone. This will permanently delete target \"{name}\" and all its associated data.",
|
|
"bulkDeleteTargetTitle": "Confirm Bulk Delete Targets",
|
|
"bulkDeleteTargetMessage": "This action cannot be undone. This will permanently delete the following {count} targets and all their associated data.",
|
|
"deleteTargetCount": "Confirm delete {count} targets",
|
|
"confirmDelete": "Confirm Delete",
|
|
"confirmUnlink": "Confirm Unlink",
|
|
"confirmUnlinkCount": "Confirm unlink {count} items",
|
|
"unlinkTargetMessage": "Are you sure you want to unlink target \"{name}\" from this organization? This will only remove the association, the target itself will not be deleted.",
|
|
"bulkUnlinkTargetMessage": "This will unlink the following {count} targets from this organization. The targets themselves will not be deleted.",
|
|
"deleteScheduledScanMessage": "Are you sure you want to delete scheduled scan task \"{name}\"? This action cannot be undone.",
|
|
"deleteEngineMessage": "Are you sure you want to delete engine \"{name}\"? This action cannot be undone.",
|
|
"deleteNucleiRepoMessage": "Are you sure you want to delete repository \"{name}\"? This action cannot be undone.",
|
|
"deleteWordlistMessage": "Are you sure you want to delete wordlist \"{name}\"? This action cannot be undone."
|
|
}
|
|
},
|
|
"navigation": {
|
|
"mainFeatures": "Main Features",
|
|
"dashboard": "Dashboard",
|
|
"search": "Search",
|
|
"organization": "Organization",
|
|
"target": "Targets",
|
|
"vulnerabilities": "Vulnerabilities",
|
|
"scan": "Scan",
|
|
"scanHistory": "Scan History",
|
|
"scheduledScan": "Scheduled Scan",
|
|
"scanEngine": "Scan Engine",
|
|
"tools": "Tools",
|
|
"wordlists": "Wordlists",
|
|
"fingerprints": "Fingerprints",
|
|
"nucleiTemplates": "Nuclei Templates",
|
|
"settings": "Settings",
|
|
"workers": "Workers",
|
|
"systemLogs": "System Logs",
|
|
"notifications": "Notifications",
|
|
"apiKeys": "API Keys",
|
|
"globalBlacklist": "Global Blacklist",
|
|
"about": "About"
|
|
},
|
|
"search": {
|
|
"title": "Asset Search",
|
|
"hint": "Click search box to view available fields and syntax. Plain text defaults to hostname search",
|
|
"searching": "Searching...",
|
|
"loading": "Loading...",
|
|
"resultsCount": "Found {count} results",
|
|
"error": "Search failed, please try again later",
|
|
"noResults": "No matching assets found",
|
|
"noResultsHint": "Try adjusting your search criteria",
|
|
"vulnLoadError": "Failed to load vulnerability details",
|
|
"recentSearches": "Recent Searches",
|
|
"export": "Export",
|
|
"exporting": "Exporting...",
|
|
"exportSuccess": "Export successful",
|
|
"exportFailed": "Export failed",
|
|
"stats": {
|
|
"vulnerabilities": "Vulnerabilities"
|
|
},
|
|
"assetTypes": {
|
|
"website": "Website",
|
|
"endpoint": "Endpoint"
|
|
},
|
|
"fields": {
|
|
"host": "Hostname",
|
|
"url": "URL address",
|
|
"title": "Page title",
|
|
"tech": "Technology stack",
|
|
"status": "HTTP status code",
|
|
"body": "Response body content",
|
|
"header": "Response header content"
|
|
},
|
|
"table": {
|
|
"url": "URL",
|
|
"host": "Host",
|
|
"title": "Title",
|
|
"status": "Status",
|
|
"technologies": "Technologies",
|
|
"contentLength": "Content Length",
|
|
"location": "Location",
|
|
"webserver": "Web Server",
|
|
"contentType": "Content Type",
|
|
"responseBody": "Response Body",
|
|
"responseHeaders": "Response Headers",
|
|
"vhost": "VHost",
|
|
"createdAt": "Created At",
|
|
"gfPatterns": "GF Patterns"
|
|
},
|
|
"card": {
|
|
"title": "Title",
|
|
"expand": "Expand",
|
|
"collapse": "Collapse",
|
|
"vulnerabilities": "Vulnerabilities ({count})",
|
|
"vulnName": "Vulnerability Name",
|
|
"severity": "Severity",
|
|
"source": "Source",
|
|
"vulnType": "Vuln Type"
|
|
},
|
|
"vulnDetail": {
|
|
"title": "Vulnerability Details",
|
|
"name": "Vulnerability Name",
|
|
"source": "Source",
|
|
"type": "Vulnerability Type",
|
|
"url": "Vulnerability URL"
|
|
}
|
|
},
|
|
"dashboard": {
|
|
"title": "Dashboard",
|
|
"stats": {
|
|
"totalTargets": "Total Targets",
|
|
"totalVulnerabilities": "Total Vulnerabilities",
|
|
"activeScans": "Active Scans",
|
|
"completedScans": "Completed Scans",
|
|
"totalOrganizations": "Total Organizations",
|
|
"totalSubdomains": "Total Subdomains",
|
|
"totalEndpoints": "Total Endpoints",
|
|
"totalWebsites": "Total Websites"
|
|
},
|
|
"statCards": {
|
|
"assetsFound": "Assets Found",
|
|
"vulnsFound": "Vulnerabilities Found",
|
|
"monitoredTargets": "Monitored Targets",
|
|
"runningScans": "Running Scans",
|
|
"assetsFooter": "Subdomains + IPs + Endpoints + Websites",
|
|
"vulnsFooter": "All vulnerabilities from scans",
|
|
"targetsFooter": "Total targets added",
|
|
"scansFooter": "Currently running tasks",
|
|
"updatedAt": "Updated at {time}",
|
|
"noData": "No data"
|
|
},
|
|
"assetTrend": {
|
|
"title": "Asset Trend",
|
|
"description": "Updated hourly · Click line or legend to hide/show",
|
|
"noData": "No historical data",
|
|
"current": "Current",
|
|
"subdomains": "Subdomains",
|
|
"ips": "IPs",
|
|
"endpoints": "Endpoints",
|
|
"websites": "Websites"
|
|
},
|
|
"assetDistribution": {
|
|
"title": "Asset Distribution",
|
|
"description": "Asset count by type",
|
|
"totalAssets": "Total Assets",
|
|
"subdomains": "Subdomains",
|
|
"ipAddresses": "IP Addresses",
|
|
"endpoints": "Endpoints",
|
|
"websites": "Websites",
|
|
"count": "Count"
|
|
},
|
|
"vulnDistribution": {
|
|
"title": "Vulnerability Distribution",
|
|
"description": "By severity level",
|
|
"noData": "No vulnerability data",
|
|
"vulns": "Vulns"
|
|
},
|
|
"recentVulns": {
|
|
"title": "Recent Vulnerabilities",
|
|
"description": "Recently discovered security vulnerabilities",
|
|
"viewAll": "View All",
|
|
"noData": "No vulnerability data"
|
|
}
|
|
},
|
|
"dataTable": {
|
|
"columns": "Columns",
|
|
"filter": "Filter",
|
|
"selected": "{count} selected",
|
|
"noResults": "No results found",
|
|
"selectAll": "Select all",
|
|
"deselectAll": "Deselect all",
|
|
"showColumns": "Show columns",
|
|
"hideColumns": "Hide columns",
|
|
"sortAsc": "Sort ascending",
|
|
"sortDesc": "Sort descending",
|
|
"clearSort": "Clear sort",
|
|
"clearFilter": "Clear filter"
|
|
},
|
|
"filter": {
|
|
"fields": {
|
|
"ip": "IP address",
|
|
"port": "Port number",
|
|
"host": "Hostname",
|
|
"domain": "Domain name",
|
|
"url": "Full URL",
|
|
"status": "HTTP status code",
|
|
"title": "Page title",
|
|
"source": "Data source",
|
|
"path": "URL path",
|
|
"severity": "Vulnerability severity",
|
|
"name": "Name",
|
|
"type": "Type"
|
|
},
|
|
"syntax": {
|
|
"operators": "Operators",
|
|
"containsFuzzy": "contains (fuzzy)",
|
|
"exactMatch": "exact match",
|
|
"notEquals": "not equals",
|
|
"logic": "Logic",
|
|
"matchAny": "match any",
|
|
"matchAll": "match all"
|
|
},
|
|
"groups": {
|
|
"activeFilters": "Active filters",
|
|
"availableFields": "Available fields",
|
|
"syntax": "Syntax",
|
|
"examples": "Examples"
|
|
},
|
|
"empty": "Type to filter...",
|
|
"descriptions": {
|
|
"directoryUrl": "Directory URL",
|
|
"subdomainName": "Subdomain name",
|
|
"endpointUrl": "Endpoint URL",
|
|
"vulnType": "Vulnerability type",
|
|
"scannerSource": "Scanner source"
|
|
}
|
|
},
|
|
"validation": {
|
|
"required": "This field is required",
|
|
"invalidEmail": "Please enter a valid email",
|
|
"invalidUrl": "Please enter a valid URL",
|
|
"invalidDomain": "Please enter a valid domain",
|
|
"invalidIp": "Please enter a valid IP address",
|
|
"minLength": "Minimum {min} characters required",
|
|
"maxLength": "Maximum {max} characters allowed",
|
|
"minValue": "Minimum value is {min}",
|
|
"maxValue": "Maximum value is {max}",
|
|
"pattern": "Invalid format"
|
|
},
|
|
"auth": {
|
|
"title": "XingRin",
|
|
"subtitle": "Automated Asset Discovery & Vulnerability Scanning Platform",
|
|
"login": "Login",
|
|
"pageTitle": "Login - XingRin | Attack Surface Management",
|
|
"pageDescription": "XingRin - Attack Surface Management (ASM) Platform, providing automated asset discovery and vulnerability scanning",
|
|
"loggingIn": "Logging in...",
|
|
"logout": "Logout",
|
|
"username": "Username",
|
|
"usernamePlaceholder": "Enter username",
|
|
"password": "Password",
|
|
"passwordPlaceholder": "Enter password",
|
|
"rememberMe": "Remember me",
|
|
"forgotPassword": "Forgot password",
|
|
"loginSuccess": "Login successful",
|
|
"loginFailed": "Login failed",
|
|
"logoutSuccess": "Logged out successfully",
|
|
"sessionExpired": "Session expired, please login again",
|
|
"changePassword": {
|
|
"title": "Change Password",
|
|
"desc": "Enter your current password and new password",
|
|
"currentPassword": "Current Password",
|
|
"newPassword": "New Password",
|
|
"confirmPassword": "Confirm New Password",
|
|
"passwordMismatch": "New password and confirmation do not match",
|
|
"passwordTooShort": "New password must be at least {min} characters",
|
|
"cancel": "Cancel",
|
|
"save": "Save",
|
|
"saving": "Saving..."
|
|
}
|
|
},
|
|
"organization": {
|
|
"title": "Organization Management",
|
|
"name": "Organization Name",
|
|
"description": "Description",
|
|
"addOrganization": "Add Organization",
|
|
"createOrganization": "Create Organization",
|
|
"editOrganization": "Edit Organization",
|
|
"deleteOrganization": "Delete Organization",
|
|
"searchPlaceholder": "Search organization name...",
|
|
"noResults": "No organizations",
|
|
"targetCount": "Target Count",
|
|
"notFound": "Organization Not Found",
|
|
"notFoundDesc": "Organization with ID {id} not found",
|
|
"noDescription": "No description",
|
|
"createdAt": "Created at {date}",
|
|
"targetCountLabel": "{count} targets",
|
|
"dialog": {
|
|
"addTitle": "Add New Organization",
|
|
"addDesc": "Fill in organization information to add to the system. You can also add targets. Fields marked with * are required.",
|
|
"editTitle": "Edit Organization",
|
|
"editDesc": "Modify organization basic information. Fields marked with * are required.",
|
|
"addButton": "Add Organization",
|
|
"orgName": "Organization Name",
|
|
"orgNamePlaceholder": "Enter organization name",
|
|
"orgDesc": "Organization Description",
|
|
"orgDescPlaceholder": "Enter organization description (optional)",
|
|
"addTargets": "Add Targets (optional)",
|
|
"targetsPlaceholder": "Enter targets, one per line\nSupports domain, IP, CIDR\nExample:\nexample.com\n192.168.1.1\n10.0.0.0/8",
|
|
"targetCount": "{count} targets",
|
|
"invalidCount": "{count} invalid",
|
|
"invalidExample": "e.g., Line {line}: \"{target}\" - {error}",
|
|
"cancel": "Cancel",
|
|
"create": "Create Organization",
|
|
"creating": "Creating organization...",
|
|
"creatingTargets": "Creating targets...",
|
|
"update": "Update Organization",
|
|
"updating": "Updating...",
|
|
"reset": "Reset",
|
|
"changesDetected": "Changes detected, click update to save",
|
|
"characters": "{count}/{max} characters"
|
|
},
|
|
"validation": {
|
|
"nameMin": "Organization name must be at least {min} characters",
|
|
"nameMax": "Organization name cannot exceed {max} characters",
|
|
"descMax": "Description cannot exceed {max} characters",
|
|
"targetInvalid": "Invalid target format"
|
|
},
|
|
"linkTarget": {
|
|
"title": "Add Targets to Organization",
|
|
"description": "Enter targets to link to \"{name}\". Supports batch adding, one target per line. Fields marked with * are required.",
|
|
"targetLabel": "Targets",
|
|
"organizationLabel": "Organization",
|
|
"placeholder": "Enter targets, one per line\nSupports domain, IP, CIDR\nExample:\nexample.com\n192.168.1.1\n10.0.0.0/8",
|
|
"targetCount": "{count} targets",
|
|
"invalidCount": "{count} invalid",
|
|
"invalidExample": "e.g., Line {line}: \"{target}\" - {error}",
|
|
"creating": "Creating...",
|
|
"createTarget": "Create Targets",
|
|
"validation": {
|
|
"required": "Please enter at least one target",
|
|
"invalidFormat": "Invalid target format"
|
|
}
|
|
}
|
|
},
|
|
"target": {
|
|
"title": "Target Management",
|
|
"name": "Target Name",
|
|
"domain": "Domain",
|
|
"description": "Description",
|
|
"addTarget": "Add Target",
|
|
"createTarget": "Create Target",
|
|
"editTarget": "Edit Target",
|
|
"deleteTarget": "Delete Target",
|
|
"organization": "Organization",
|
|
"types": {
|
|
"domain": "Domain",
|
|
"ip": "IP",
|
|
"cidr": "CIDR"
|
|
},
|
|
"dialog": {
|
|
"addTitle": "Add Target",
|
|
"addDesc": "Enter targets and link to organization. Supports batch adding, one target per line. Fields marked with * are required.",
|
|
"targetList": "Target List",
|
|
"targetPlaceholder": "Enter targets, one per line\nSupports domain, IP, CIDR\nExample:\nexample.com\n192.168.1.1\n10.0.0.0/8",
|
|
"targetCount": "{count} targets",
|
|
"invalidCount": "{count} invalid targets, e.g., Line {line}: \"{target}\" - {error}",
|
|
"invalidFormat": "Invalid target format",
|
|
"linkOrganization": "Link Organization (optional)",
|
|
"selectOrganization": "Select organization",
|
|
"searchOrganization": "Search organization...",
|
|
"noOrganization": "No organization found",
|
|
"loading": "Loading...",
|
|
"orgPagination": "{total} organizations · Page {page} / {totalPages}",
|
|
"perPage": "Per page:",
|
|
"creating": "Creating...",
|
|
"addTarget": "Add Target"
|
|
}
|
|
},
|
|
"scan": {
|
|
"title": "Scan",
|
|
"startScan": "Start Scan",
|
|
"stopScan": "Stop Scan",
|
|
"scanType": "Scan Type",
|
|
"scanStatus": "Scan Status",
|
|
"scanProgress": "Scan Progress",
|
|
"scanResult": "Scan Result",
|
|
"editTask": "Edit Task",
|
|
"initiate": {
|
|
"title": "Initiate Scan",
|
|
"targetDesc": "For target",
|
|
"orgDesc": "For organization",
|
|
"selectEngine": "select scan engine",
|
|
"selectEngineTitle": "Select Engine",
|
|
"selectEngineHint": "Select an engine on the left to view configuration",
|
|
"loading": "Loading...",
|
|
"loadFailed": "Failed to load",
|
|
"noEngines": "No engines available",
|
|
"capabilities": "{count} capabilities",
|
|
"noConfig": "No config",
|
|
"initiating": "Initiating...",
|
|
"startScan": "Start Scan",
|
|
"selectedCount": "{count} engines selected",
|
|
"configTitle": "Scan Configuration",
|
|
"configEdited": "Edited",
|
|
"stepIndicator": "Step {current}/{total}",
|
|
"back": "Back",
|
|
"next": "Next",
|
|
"steps": {
|
|
"selectEngine": "Select Engine",
|
|
"editConfig": "Edit Config"
|
|
},
|
|
"presets": {
|
|
"title": "Quick Select",
|
|
"fullScan": "Full Scan",
|
|
"fullScanDesc": "Complete security assessment covering asset discovery to vulnerability detection",
|
|
"recon": "Reconnaissance",
|
|
"reconDesc": "Discover and identify target assets including subdomains, ports, sites and fingerprints",
|
|
"vulnScan": "Vulnerability Scan",
|
|
"vulnScanDesc": "Detect security vulnerabilities on known assets",
|
|
"custom": "Custom",
|
|
"customDesc": "Manually select engine combination",
|
|
"customHint": "Click to manually select engines",
|
|
"selectHint": "Please select a scan preset",
|
|
"selectEngines": "Select Engines",
|
|
"enginesCount": "engines",
|
|
"capabilities": "Capabilities",
|
|
"usedEngines": "Used Engines",
|
|
"noCapabilities": "Please select engines"
|
|
},
|
|
"overwriteConfirm": {
|
|
"title": "Overwrite Configuration",
|
|
"description": "You have manually edited the configuration. Changing engines will overwrite your changes. Continue?",
|
|
"cancel": "Cancel",
|
|
"confirm": "Overwrite"
|
|
}
|
|
},
|
|
"cron": {
|
|
"everyMinute": "Every minute",
|
|
"everyNMinutes": "Every {n} minutes",
|
|
"everyHour": "Every hour at {minute}",
|
|
"everyNHours": "Every {n} hours at {minute}",
|
|
"everyDay": "Every day at {time}",
|
|
"everyWeek": "Every {day} at {time}",
|
|
"everyMonth": "Every month on day {day} at {time}",
|
|
"weekdays": ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"]
|
|
},
|
|
"history": {
|
|
"title": "Scan History",
|
|
"description": "View and manage all scan task records",
|
|
"startTime": "Start Time",
|
|
"endTime": "End Time",
|
|
"duration": "Duration",
|
|
"status": "Status",
|
|
"searchPlaceholder": "Search target name...",
|
|
"loadFailed": "Failed to load scan history",
|
|
"retry": "Retry",
|
|
"taskId": "Scan Task ID: {id}",
|
|
"breadcrumb": {
|
|
"scanHistory": "Scan History"
|
|
},
|
|
"tabs": {
|
|
"overview": "Overview",
|
|
"assets": "Assets",
|
|
"screenshots": "Screenshots",
|
|
"vulnerabilities": "Vulnerabilities"
|
|
},
|
|
"status": {
|
|
"completed": "Completed",
|
|
"running": "Running",
|
|
"failed": "Failed",
|
|
"pending": "Pending",
|
|
"cancelled": "Cancelled",
|
|
"initiated": "Waiting"
|
|
},
|
|
"overview": {
|
|
"loadError": "Failed to load scan data",
|
|
"startedAt": "Started",
|
|
"duration": "Duration",
|
|
"assetsTitle": "Discovered Assets",
|
|
"vulnerabilitiesTitle": "Vulnerabilities",
|
|
"stagesTitle": "Scan Progress",
|
|
"stagesCompleted": "completed",
|
|
"logsTitle": "Scan Logs",
|
|
"configTitle": "Configuration",
|
|
"autoRefresh": "Auto Refresh",
|
|
"noConfig": "No configuration available",
|
|
"noStages": "No stage progress available",
|
|
"totalFound": "total found",
|
|
"totalVulns": "{count} total",
|
|
"viewAll": "View All",
|
|
"cards": {
|
|
"websites": "Websites",
|
|
"subdomains": "Subdomains",
|
|
"ips": "IP Addresses",
|
|
"urls": "URLs",
|
|
"directories": "Directories",
|
|
"vulnerabilities": "Vulnerabilities"
|
|
},
|
|
"severity": {
|
|
"critical": "Critical",
|
|
"high": "High",
|
|
"medium": "Medium",
|
|
"low": "Low"
|
|
}
|
|
},
|
|
"stats": {
|
|
"totalScans": "Total Scans",
|
|
"running": "Running",
|
|
"vulnsFound": "Vulns Found",
|
|
"assetsFound": "Assets Found",
|
|
"allScanTasks": "All scan tasks",
|
|
"runningScans": "Running scans",
|
|
"completedScansFound": "Found in completed scans",
|
|
"assetTypes": "Subdomains + IPs + Endpoints + Websites",
|
|
"all": "All"
|
|
}
|
|
},
|
|
"progress": {
|
|
"title": "Scan Progress",
|
|
"target": "Target",
|
|
"engine": "Engine",
|
|
"startTime": "Start Time",
|
|
"status": "Status",
|
|
"errorReason": "Error Reason",
|
|
"totalProgress": "Total Progress",
|
|
"tab_stages": "Stages",
|
|
"tab_logs": "Logs",
|
|
"status_running": "Scanning",
|
|
"status_cancelled": "Cancelled",
|
|
"status_completed": "Completed",
|
|
"status_failed": "Failed",
|
|
"status_initiated": "Waiting",
|
|
"stage_running": "Running",
|
|
"stage_pending": "Pending",
|
|
"stage_failed": "Failed",
|
|
"stage_cancelled": "Cancelled",
|
|
"stages": {
|
|
"subdomainDiscovery": "Subdomain Discovery",
|
|
"portScan": "Port Scan",
|
|
"siteScan": "Site Scan",
|
|
"fingerprintDetect": "Fingerprint Detection",
|
|
"directoryScan": "Directory Scan",
|
|
"urlFetch": "URL Fetch",
|
|
"vulnScan": "Vulnerability Scan",
|
|
"subdomain_discovery": "Subdomain Discovery",
|
|
"port_scan": "Port Scan",
|
|
"site_scan": "Site Scan",
|
|
"fingerprint_detect": "Fingerprint Detection",
|
|
"directory_scan": "Directory Scan",
|
|
"url_fetch": "URL Fetch",
|
|
"vuln_scan": "Vulnerability Scan",
|
|
"screenshot": "Screenshot"
|
|
}
|
|
},
|
|
"scheduled": {
|
|
"title": "Scheduled Scan",
|
|
"description": "Configure and manage scheduled scan tasks",
|
|
"searchPlaceholder": "Search task name...",
|
|
"cronExpression": "Cron Expression",
|
|
"nextRun": "Next Run",
|
|
"lastRun": "Last Run",
|
|
"enabled": "Enabled",
|
|
"disabled": "Disabled",
|
|
"createTitle": "Create Scheduled Scan",
|
|
"createDesc": "Configure scheduled scan task and set execution plan",
|
|
"editTitle": "Edit Scheduled Scan",
|
|
"editDesc": "Modify scheduled scan task configuration",
|
|
"stepIndicator": "Step {current}/{total}",
|
|
"steps": {
|
|
"basicInfo": "Basic Info",
|
|
"scanMode": "Scan Mode",
|
|
"selectTarget": "Select Target",
|
|
"selectEngine": "Select Engine",
|
|
"editConfig": "Edit Config",
|
|
"scheduleSettings": "Schedule Settings"
|
|
},
|
|
"form": {
|
|
"taskName": "Task Name",
|
|
"taskNamePlaceholder": "e.g., Daily Security Scan",
|
|
"taskNameDesc": "Set an easily identifiable name for the scheduled task",
|
|
"taskNameRequired": "Please enter task name",
|
|
"scanEngine": "Scan Engine",
|
|
"scanEnginePlaceholder": "Select scan engine",
|
|
"scanEngineDesc": "Select engine to auto-fill configuration, or edit directly",
|
|
"scanEngineRequired": "Please select a scan engine",
|
|
"configuration": "Scan Configuration",
|
|
"configurationPlaceholder": "Enter YAML scan configuration...",
|
|
"configurationDesc": "YAML format scan configuration, select engine to auto-fill or edit manually",
|
|
"configurationRequired": "Please enter scan configuration",
|
|
"yamlInvalid": "Invalid YAML configuration, please check syntax",
|
|
"configEdited": "Edited",
|
|
"selectScanMode": "Select Scan Mode",
|
|
"organizationScan": "Organization Scan",
|
|
"organizationScanDesc": "Select organization, dynamically fetch all targets at execution",
|
|
"targetScan": "Target Scan",
|
|
"targetScanDesc": "Select fixed target list for scanning",
|
|
"organizationScanHint": "Organization Scan: Dynamically fetches all targets under the organization at each execution, newly added targets will also be scanned",
|
|
"targetScanHint": "Target Scan: Scans a fixed target list, newly added targets will not be scanned",
|
|
"selectOrganization": "Select Organization",
|
|
"selectTarget": "Select Scan Target",
|
|
"searchOrganization": "Search organization name...",
|
|
"searchTarget": "Search target name...",
|
|
"noOrganization": "No organization found",
|
|
"noTarget": "No target found",
|
|
"targetCount": "{count} targets",
|
|
"selectedOrganization": "Organization selected, will dynamically scan all targets under this organization at execution",
|
|
"selectedTarget": "Target selected",
|
|
"cronExpression": "Cron Expression",
|
|
"cronPlaceholder": "min hour day month week (e.g., 0 2 * * *)",
|
|
"cronFormat": "Format: min(0-59) hour(0-23) day(1-31) month(1-12) week(0-6, 0=Sunday)",
|
|
"cronRequired": "Invalid Cron expression format, requires 5 parts: min hour day month week",
|
|
"quickSelect": "Quick Select",
|
|
"executionPreview": "Execution Preview",
|
|
"valid": "Valid",
|
|
"nextExecutionTime": "Next execution time:",
|
|
"upcoming": "(upcoming)",
|
|
"invalidExpression": "Invalid expression",
|
|
"scanScope": "Scan Scope",
|
|
"organizationMode": "Organization Scan",
|
|
"organizationModeHint": "In organization scan mode, all targets under this organization will be dynamically fetched at execution",
|
|
"noAvailableTarget": "No available targets",
|
|
"noEngine": "No engines available",
|
|
"noConfig": "No config",
|
|
"capabilitiesCount": "{count} capabilities",
|
|
"selected": "Selected",
|
|
"selectedEngines": "{count} engines selected",
|
|
"scanTarget": "Scan Target",
|
|
"presetTargetHint": "Target is preset and cannot be changed. To scan other targets, create from the global scheduled scans page."
|
|
},
|
|
"presets": {
|
|
"everyHour": "Every Hour",
|
|
"daily2am": "Daily at 2 AM",
|
|
"daily4am": "Daily at 4 AM",
|
|
"weekly": "Weekly Monday at 2 AM",
|
|
"monthly": "Monthly 1st at 2 AM",
|
|
"everyMinute": "Every Minute",
|
|
"every5Minutes": "Every 5 Minutes"
|
|
},
|
|
"buttons": {
|
|
"previous": "Previous",
|
|
"next": "Next",
|
|
"createTask": "Create Task",
|
|
"saveChanges": "Save Changes",
|
|
"cancel": "Cancel"
|
|
},
|
|
"toast": {
|
|
"selectOrganization": "Please select an organization",
|
|
"selectTarget": "Please select a scan target",
|
|
"configConflict": "Configuration conflict"
|
|
},
|
|
"overwriteConfirm": {
|
|
"title": "Overwrite Configuration",
|
|
"description": "You have manually edited the configuration. Changing engines will overwrite your changes. Do you want to continue?",
|
|
"cancel": "Cancel",
|
|
"confirm": "Overwrite"
|
|
}
|
|
},
|
|
"engine": {
|
|
"title": "Scan Engine",
|
|
"name": "Engine Name",
|
|
"type": "Engine Type",
|
|
"config": "Configuration",
|
|
"searchPlaceholder": "Search engines...",
|
|
"createEngine": "Create Engine",
|
|
"engineList": "Engine List",
|
|
"noMatchingEngine": "No matching engine found",
|
|
"noEngines": "No engines yet, please create one",
|
|
"featuresEnabled": "{count} features enabled",
|
|
"featuresCount": "{count} features",
|
|
"updatedAt": "Updated at",
|
|
"enabledFeatures": "Enabled Features",
|
|
"configPreview": "Configuration Preview",
|
|
"editConfig": "Edit Config",
|
|
"selectEngineHint": "Select an engine from the left to view details",
|
|
"features": {
|
|
"subdomain_discovery": "Subdomain Discovery",
|
|
"port_scan": "Port Scan",
|
|
"site_scan": "Site Scan",
|
|
"fingerprint_detect": "Fingerprint Detection",
|
|
"directory_scan": "Directory Scan",
|
|
"screenshot": "Screenshot",
|
|
"url_fetch": "URL Fetch",
|
|
"vuln_scan": "Vulnerability Scan"
|
|
},
|
|
"create": {
|
|
"title": "Create Scan Engine",
|
|
"desc": "Create a new scan engine configuration using Monaco Editor to edit YAML config files with syntax highlighting, auto-completion and error hints.",
|
|
"engineName": "Engine Name",
|
|
"engineNamePlaceholder": "Enter engine name, e.g., Full Scan Engine",
|
|
"yamlConfig": "YAML Configuration",
|
|
"syntaxError": "Syntax Error",
|
|
"syntaxValid": "Syntax Valid",
|
|
"loadingEditor": "Loading editor...",
|
|
"errorLocation": "Line {line}, Column {column}",
|
|
"confirmClose": "You have unsaved changes, are you sure you want to close?",
|
|
"creating": "Creating...",
|
|
"createEngine": "Create Engine"
|
|
},
|
|
"edit": {
|
|
"title": "Edit Engine Config - {name}",
|
|
"desc": "Edit engine YAML configuration using Monaco Editor with syntax highlighting, auto-completion and error hints.",
|
|
"yamlConfig": "YAML Configuration",
|
|
"syntaxError": "Syntax Error",
|
|
"syntaxValid": "Syntax Valid",
|
|
"loadingEditor": "Loading editor...",
|
|
"errorLocation": "Line {line}, Column {column}",
|
|
"unsavedChanges": "You have unsaved changes",
|
|
"confirmClose": "You have unsaved changes, are you sure you want to close?",
|
|
"saving": "Saving...",
|
|
"saveConfig": "Save Configuration"
|
|
}
|
|
}
|
|
},
|
|
"vulnerability": {
|
|
"title": "Vulnerabilities",
|
|
"name": "Vulnerability Name",
|
|
"severity": "Severity",
|
|
"critical": "Critical",
|
|
"high": "High",
|
|
"medium": "Medium",
|
|
"low": "Low",
|
|
"info": "Info",
|
|
"status": "Status",
|
|
"open": "Open",
|
|
"confirmed": "Confirmed",
|
|
"fixed": "Fixed",
|
|
"falsePositive": "False Positive",
|
|
"description": "Description",
|
|
"solution": "Solution",
|
|
"reference": "Reference"
|
|
},
|
|
"tools": {
|
|
"title": "Tools",
|
|
"wordlists": {
|
|
"title": "Wordlists",
|
|
"name": "Wordlist Name",
|
|
"type": "Type",
|
|
"count": "Entry Count",
|
|
"upload": "Upload Wordlist",
|
|
"download": "Download Wordlist",
|
|
"uploadDialog": {
|
|
"title": "Upload Wordlist",
|
|
"desc": "Upload wordlist file, workers will download as needed after backend saves it",
|
|
"dragHint": "Drag file here",
|
|
"selectFile": "Select file",
|
|
"fileHint": "Supports .txt files, max 50MB",
|
|
"namePlaceholder": "e.g., Common directories",
|
|
"descPlaceholder": "e.g., Based on dirsearch",
|
|
"descLabel": "Description (optional)",
|
|
"cancel": "Cancel",
|
|
"uploading": "Uploading...",
|
|
"uploadButton": "Upload Wordlist"
|
|
},
|
|
"editDialog": {
|
|
"title": "Edit Wordlist - {name}",
|
|
"desc": "Edit wordlist content, one entry per line. Line count, file size and hash will be updated after saving.",
|
|
"content": "Wordlist Content",
|
|
"lines": "{count} lines",
|
|
"hash": "Hash",
|
|
"loading": "Loading wordlist content...",
|
|
"loadingEditor": "Loading editor...",
|
|
"unsavedChanges": "You have unsaved changes",
|
|
"confirmClose": "You have unsaved changes, are you sure you want to close?",
|
|
"cancel": "Cancel",
|
|
"saving": "Saving...",
|
|
"save": "Save Wordlist"
|
|
}
|
|
},
|
|
"fingerprints": {
|
|
"title": "Fingerprints",
|
|
"name": "Fingerprint Name",
|
|
"category": "Category",
|
|
"import": "Import Fingerprints",
|
|
"export": "Export Fingerprints",
|
|
"pageDescription": "Web fingerprint rule management",
|
|
"helpText": "• EHole: Red team asset identification tool, supports keyword, favicon hash and other identification methods\n• Goby: Attack surface mapping tool, contains a large number of web applications and device fingerprints\n• Wappalyzer: Browser extension that can identify the technology stack used by websites\n• Fingers: HTTP fingerprint library with detailed rule matching\n• FingerPrintHub: Nuclei-style fingerprint templates with HTTP matchers\n• ARL: Asset Reconnaissance Lighthouse fingerprint rules in YAML format",
|
|
"actions": {
|
|
"operations": "Actions",
|
|
"exportAll": "Export All Fingerprints",
|
|
"deleteSelected": "Delete Selected",
|
|
"deleteAll": "Delete All",
|
|
"addFingerprint": "Add Fingerprint",
|
|
"addSingle": "Add Single",
|
|
"importFile": "Import File"
|
|
},
|
|
"dialogs": {
|
|
"exportTitle": "Export All Fingerprints",
|
|
"exportDesc": "Export all {count} fingerprints as JSON file.",
|
|
"deleteSelectedTitle": "Delete Selected Fingerprints",
|
|
"deleteSelectedDesc": "Are you sure you want to delete {count} selected fingerprints? This action cannot be undone.",
|
|
"deleteAllTitle": "Delete All Fingerprints",
|
|
"deleteAllDesc": "Are you sure you want to delete all {count} fingerprints? This action cannot be undone.",
|
|
"confirmExport": "Confirm Export",
|
|
"confirmDelete": "Confirm Delete"
|
|
},
|
|
"ehole": {
|
|
"addTitle": "Add EHole Fingerprint",
|
|
"editTitle": "Edit EHole Fingerprint",
|
|
"addDesc": "Add a new fingerprint rule",
|
|
"editDesc": "Modify fingerprint rule configuration"
|
|
},
|
|
"goby": {
|
|
"addTitle": "Add Goby Fingerprint",
|
|
"editTitle": "Edit Goby Fingerprint",
|
|
"addDesc": "Add a new fingerprint rule",
|
|
"editDesc": "Modify fingerprint rule configuration"
|
|
},
|
|
"wappalyzer": {
|
|
"addTitle": "Add Wappalyzer Fingerprint",
|
|
"editTitle": "Edit Wappalyzer Fingerprint",
|
|
"addDesc": "Add a new fingerprint rule",
|
|
"editDesc": "Modify fingerprint rule configuration"
|
|
},
|
|
"fingers": {
|
|
"addTitle": "Add Fingers Fingerprint",
|
|
"editTitle": "Edit Fingers Fingerprint",
|
|
"addDesc": "Add a new HTTP fingerprint rule",
|
|
"editDesc": "Modify fingerprint rule configuration"
|
|
},
|
|
"fingerprinthub": {
|
|
"addTitle": "Add FingerPrintHub Fingerprint",
|
|
"editTitle": "Edit FingerPrintHub Fingerprint",
|
|
"addDesc": "Add a new Nuclei-style fingerprint template",
|
|
"editDesc": "Modify fingerprint template configuration"
|
|
},
|
|
"arl": {
|
|
"addTitle": "Add ARL Fingerprint",
|
|
"editTitle": "Edit ARL Fingerprint",
|
|
"addDesc": "Add a new ARL fingerprint rule",
|
|
"editDesc": "Modify fingerprint rule configuration"
|
|
},
|
|
"toast": {
|
|
"createSuccess": "Created successfully",
|
|
"updateSuccess": "Updated successfully",
|
|
"createFailed": "Failed to create",
|
|
"updateFailed": "Failed to update",
|
|
"exportSuccess": "Exported successfully",
|
|
"exportFailed": "Failed to export",
|
|
"deleteSuccess": "Deleted successfully: {count} items",
|
|
"deleteFailed": "Failed to delete"
|
|
},
|
|
"form": {
|
|
"cmsPlaceholder": "e.g., WordPress, Nginx",
|
|
"cmsRequired": "CMS name is required",
|
|
"keywordPlaceholder": "Multiple keywords separated by commas",
|
|
"keywordRequired": "Keyword is required",
|
|
"typePlaceholder": "e.g., CMS, Server",
|
|
"namePlaceholder": "e.g., Apache, Nginx",
|
|
"nameRequired": "Product name is required",
|
|
"logicPlaceholder": "e.g., a||b, (a&&b)||c",
|
|
"logicRequired": "Logic expression is required",
|
|
"featurePlaceholder": "Match feature",
|
|
"appNamePlaceholder": "e.g., WordPress, React",
|
|
"appNameRequired": "Application name is required",
|
|
"catsPlaceholder": "e.g., 1, 6, 12",
|
|
"descPlaceholder": "Application description",
|
|
"detectionRules": "Detection Rules",
|
|
"detectionRulesHint": "Use objects for JSON format, comma-separated for arrays",
|
|
"jsVariables": "JS Variables",
|
|
"metaTags": "Meta Tags",
|
|
"htmlContent": "HTML Content",
|
|
"implies": "Implies",
|
|
"cookies": "Cookies (JSON)",
|
|
"headers": "Headers (JSON)",
|
|
"scriptUrl": "Script URL",
|
|
"location": "Location",
|
|
"mark": "Mark",
|
|
"name": "Name",
|
|
"fpId": "Fingerprint ID",
|
|
"fpIdPlaceholder": "e.g., wordpress-detect",
|
|
"fpIdRequired": "Fingerprint ID is required",
|
|
"author": "Author",
|
|
"authorPlaceholder": "e.g., security-team",
|
|
"severity": "Severity",
|
|
"tags": "Tags",
|
|
"tagsPlaceholder": "e.g., cms, wordpress, php",
|
|
"http": "HTTP Matchers",
|
|
"httpPlaceholder": "JSON array of HTTP matching rules",
|
|
"httpRequired": "HTTP matchers are required",
|
|
"httpArrayRequired": "HTTP must be an array",
|
|
"httpJsonInvalid": "Invalid HTTP JSON format",
|
|
"metadata": "Metadata",
|
|
"metadataPlaceholder": "JSON object for metadata",
|
|
"metadataObjectRequired": "Metadata must be an object",
|
|
"metadataJsonInvalid": "Invalid metadata JSON format",
|
|
"sourceFile": "Source File",
|
|
"sourceFilePlaceholder": "e.g., wordpress.yaml",
|
|
"link": "Reference Link",
|
|
"linkPlaceholder": "e.g., https://example.com/docs",
|
|
"rule": "Match Rules",
|
|
"rulePlaceholder": "JSON array of matching rules",
|
|
"ruleRequired": "Match rules are required",
|
|
"ruleArrayRequired": "Rules must be an array",
|
|
"ruleJsonInvalid": "Invalid rule JSON format",
|
|
"tag": "Tags",
|
|
"tagPlaceholder": "e.g., cms, framework (comma-separated)",
|
|
"focusLabel": "Mark as focus",
|
|
"defaultPort": "Default Ports",
|
|
"defaultPortPlaceholder": "e.g., 80, 443, 8080 (comma-separated)",
|
|
"arlNamePlaceholder": "e.g., Nginx, Apache",
|
|
"arlRule": "ARL Rule",
|
|
"arlRulePlaceholder": "body=\"nginx\" || header=\"nginx\"",
|
|
"arlRuleRequired": "ARL rule is required",
|
|
"arlRuleHint": "Supports body, header, title matchers. Use || and && to combine conditions"
|
|
},
|
|
"loadFailed": "Failed to load",
|
|
"loadError": "Error loading fingerprint data",
|
|
"reload": "Reload",
|
|
"filter": {
|
|
"ehole": {
|
|
"cms": "Product/CMS name",
|
|
"method": "Match method (keyword, faviconhash...)",
|
|
"location": "Match location (body, header, title)",
|
|
"type": "Category",
|
|
"isImportant": "Is important asset (true/false)"
|
|
},
|
|
"goby": {
|
|
"product": "Product name",
|
|
"logic": "Logic expression"
|
|
},
|
|
"wappalyzer": {
|
|
"name": "Application name",
|
|
"description": "Application description",
|
|
"website": "Website URL",
|
|
"cpe": "CPE identifier",
|
|
"implies": "Dependencies (e.g., PHP, MySQL)"
|
|
},
|
|
"fingers": {
|
|
"name": "Fingerprint name",
|
|
"link": "Reference link",
|
|
"tag": "Tags",
|
|
"focus": "Focus flag (true/false)",
|
|
"defaultPort": "Default ports"
|
|
},
|
|
"fingerprinthub": {
|
|
"fpId": "Fingerprint ID",
|
|
"name": "Fingerprint name",
|
|
"author": "Author",
|
|
"tags": "Tags",
|
|
"severity": "Severity"
|
|
},
|
|
"arl": {
|
|
"name": "Fingerprint name",
|
|
"rule": "Rule content"
|
|
}
|
|
},
|
|
"import": {
|
|
"eholeTitle": "Import EHole Fingerprints",
|
|
"eholeDesc": "Upload EHole format fingerprint file",
|
|
"eholeFormatHint": "{\"fingerprint\": [...]}",
|
|
"eholeInvalidMissing": "Invalid EHole format: missing fingerprint field",
|
|
"eholeInvalidArray": "Invalid EHole format: fingerprint must be an array",
|
|
"eholeInvalidFields": "Invalid EHole format: fingerprint missing required fields (cms, keyword)",
|
|
"gobyTitle": "Import Goby Fingerprints",
|
|
"gobyDesc": "Upload Goby format fingerprint file",
|
|
"gobyFormatHint": "[{...}] or {...}",
|
|
"gobyInvalidFields": "Invalid Goby format: fingerprint missing required fields (product, rule)",
|
|
"gobyInvalidFormat": "Invalid Goby format: must be array or object",
|
|
"wappalyzerTitle": "Import Wappalyzer Fingerprints",
|
|
"wappalyzerDesc": "Upload Wappalyzer format fingerprint file",
|
|
"wappalyzerFormatHint": "{\"apps\": {...}} or [{...}]",
|
|
"wappalyzerInvalidApps": "Invalid Wappalyzer format: apps/technologies must be an object",
|
|
"wappalyzerInvalidFormat": "Invalid Wappalyzer format",
|
|
"fingersTitle": "Import Fingers Fingerprints",
|
|
"fingersDesc": "Upload Fingers format fingerprint file",
|
|
"fingersFormatHint": "[{\"name\": ..., \"rule\": [...]}]",
|
|
"fingersInvalidFormat": "Invalid Fingers format: must be an array",
|
|
"fingersInvalidArray": "Invalid Fingers format: must be an array",
|
|
"fingersInvalidFields": "Invalid Fingers format: fingerprint missing required fields (name, rule)",
|
|
"fingerprinthubTitle": "Import FingerPrintHub Fingerprints",
|
|
"fingerprinthubDesc": "Upload FingerPrintHub format fingerprint file",
|
|
"fingerprinthubFormatHint": "[{\"id\": ..., \"info\": {...}, \"http\": [...]}]",
|
|
"fingerprinthubInvalidFormat": "Invalid FingerPrintHub format: must be an array",
|
|
"fingerprinthubInvalidArray": "Invalid FingerPrintHub format: must be an array",
|
|
"fingerprinthubInvalidFields": "Invalid FingerPrintHub format: fingerprint missing required fields",
|
|
"arlTitle": "Import ARL Fingerprints",
|
|
"arlDesc": "Upload ARL format fingerprint file",
|
|
"arlFormatHint": "YAML format with name and rule fields",
|
|
"arlInvalidFormat": "Invalid ARL format",
|
|
"arlInvalidArray": "Invalid ARL format: must be an array",
|
|
"arlInvalidFields": "Invalid ARL format: fingerprint missing required fields (name, rule)",
|
|
"emptyData": "Fingerprint data is empty",
|
|
"supportedFormat": "Supported format:",
|
|
"importing": "Importing...",
|
|
"importSuccessDetail": "Import successful: {created} created, {failed} failed"
|
|
}
|
|
},
|
|
"nuclei": {
|
|
"title": "Nuclei Templates",
|
|
"templateName": "Template Name",
|
|
"author": "Author",
|
|
"severity": "Severity",
|
|
"tags": "Tags",
|
|
"selectTemplate": "Select a template on the left to view content",
|
|
"useSearch": "Or use search to locate quickly",
|
|
"back": "Back",
|
|
"searchPlaceholder": "Search templates...",
|
|
"syncing": "Syncing...",
|
|
"sync": "Sync",
|
|
"templateDirectory": "Template Directory",
|
|
"templateCount": "{count} templates",
|
|
"noMatchingTemplate": "No matching templates found",
|
|
"noTemplateOrLoadFailed": "No templates or failed to load",
|
|
"repoName": "Repository #{id}"
|
|
},
|
|
"config": {
|
|
"addTool": "Add Tool",
|
|
"editTool": "Edit Tool",
|
|
"addNewTool": "Add New Tool",
|
|
"addCustomTool": "Add Custom Tool",
|
|
"editCustomTool": "Edit Custom Tool",
|
|
"dialogDesc": "Configure scan tool basic info and commands. Fields marked with * are required.",
|
|
"customDialogDesc": "Configure custom scan tool basic info. Fields marked with * are required.",
|
|
"basicInfo": "Basic Info",
|
|
"commandConfig": "Command Config",
|
|
"toolName": "Tool Name",
|
|
"toolNamePlaceholder": "e.g., Nuclei, Subfinder, HTTPX",
|
|
"toolNameMin": "Tool name must be at least 2 characters",
|
|
"toolNameMax": "Tool name cannot exceed 255 characters",
|
|
"repoUrl": "Repository URL",
|
|
"repoUrlPlaceholder": "https://github.com/projectdiscovery/nuclei",
|
|
"currentVersion": "Current Installed Version",
|
|
"versionPlaceholder": "v3.0.0",
|
|
"toolDesc": "Tool Description",
|
|
"toolDescPlaceholder": "Describe the tool's features and use cases...",
|
|
"categoryTags": "Category Tags",
|
|
"noCategories": "No categories available",
|
|
"installCommand": "Install Command",
|
|
"installCommandPlaceholder": "git clone https://github.com/user/tool\nor\ngo install -v github.com/tool@latest",
|
|
"installCommandRequired": "Install command is required",
|
|
"installCommandHint": "Examples:",
|
|
"installCommandGit": "Using git:",
|
|
"installCommandGo": "Using go:",
|
|
"installCommandNote": "Note: go get is no longer supported, please use go install",
|
|
"updateCommand": "Update Command",
|
|
"updateCommandPlaceholder": "git pull\nor\ngo install -v github.com/tool@latest",
|
|
"updateCommandRequired": "Update command is required",
|
|
"updateCommandGitHint": "For tools installed via git clone, recommend using",
|
|
"updateCommandGoHint": "For tools installed via go install, recommend using the same install command",
|
|
"versionCommand": "Version Command",
|
|
"versionCommandPlaceholder": "toolname --version",
|
|
"versionCommandRequired": "Version command is required",
|
|
"versionCommandAutoGenerated": "Auto-generated",
|
|
"versionCommandHint": "System will use this command to check tool version. Common formats:",
|
|
"characters": "{count}/{max} characters",
|
|
"cancel": "Cancel",
|
|
"creating": "Creating...",
|
|
"saving": "Saving...",
|
|
"createTool": "Create Tool",
|
|
"saveChanges": "Save Changes",
|
|
"customToolNamePlaceholder": "e.g., Custom Port Scanner",
|
|
"customToolDescPlaceholder": "Describe the tool's features and use cases...",
|
|
"toolPath": "Tool Path",
|
|
"toolPathPlaceholder": "e.g., /opt/security-tools/port-scanner",
|
|
"toolPathHint": "Directory path where the script or tool is located",
|
|
"repository": "Repository",
|
|
"uncategorized": "Uncategorized",
|
|
"noDescription": "No description",
|
|
"checking": "Checking...",
|
|
"checkUpdate": "Check Update",
|
|
"noTools": "No tools",
|
|
"noCustomTools": "No custom tools",
|
|
"directory": "Directory"
|
|
},
|
|
"commands": {
|
|
"searchPlaceholder": "Search command name..."
|
|
}
|
|
},
|
|
"settings": {
|
|
"title": "Settings",
|
|
"workers": {
|
|
"title": "Workers",
|
|
"name": "Worker Name",
|
|
"status": "Status",
|
|
"online": "Online",
|
|
"offline": "Offline",
|
|
"lastSeen": "Last Seen",
|
|
"addWorker": "Add Worker",
|
|
"editWorker": "Edit Worker",
|
|
"addWorkerTitle": "Add Worker",
|
|
"addWorkerDesc": "Enter SSH connection info for remote VPS. After adding, you can deploy scanning environment via \"Manage Deployment\"",
|
|
"editWorkerDesc": "Modify SSH connection info",
|
|
"noWorkers": "No Workers",
|
|
"noWorkersDesc": "Add remote VPS servers as scan workers to enable distributed scanning",
|
|
"addFirstWorker": "Add First Worker",
|
|
"confirmDelete": "Confirm Delete",
|
|
"confirmDeleteDesc": "Are you sure you want to delete worker \"{name}\"? This action cannot be undone.",
|
|
"confirmUninstall": "Confirm Uninstall",
|
|
"confirmUninstallDesc": "Are you sure you want to uninstall Agent and delete related containers on the remote host? This will not uninstall Docker.",
|
|
"workerNodes": "Worker Nodes",
|
|
"workerNodesDesc": "Manage distributed scan workers, support remote deployment and monitoring",
|
|
"local": "Local",
|
|
"memory": "Memory",
|
|
"manageDeploy": "Manage Deployment",
|
|
"edit": "Edit",
|
|
"delete": "Delete",
|
|
"learnMore": "Learn More",
|
|
"gotIt": "Got It",
|
|
"stats": {
|
|
"total": "Total",
|
|
"online": "Online",
|
|
"offline": "Offline",
|
|
"pending": "Pending"
|
|
},
|
|
"status": {
|
|
"online": "Online",
|
|
"offline": "Offline",
|
|
"pending": "Pending Deploy",
|
|
"deploying": "Deploying",
|
|
"updating": "Updating",
|
|
"outdated": "Outdated"
|
|
},
|
|
"helpDialog": {
|
|
"title": "What is Distributed Scanning?",
|
|
"desc": "Distributed scanning allows you to distribute scan tasks to multiple remote servers (scan workers) for parallel execution, significantly improving scanning efficiency."
|
|
},
|
|
"banner": {
|
|
"title": "Distributed Scanning:",
|
|
"desc": "Add VPS Workers → One-click Deploy → Auto Task Distribution"
|
|
},
|
|
"steps": {
|
|
"step1Title": "Add Worker",
|
|
"step1Desc": "Click \"Add Worker\" button, fill in VPS SSH connection info (IP, port, username, password)",
|
|
"step2Title": "Deploy Environment",
|
|
"step2Desc": "Click \"Manage Deployment\" button, system will automatically install Docker and heartbeat agent via SSH",
|
|
"step3Title": "Auto Distribution",
|
|
"step3Desc": "After deployment, workers will report heartbeat automatically, scan tasks will be distributed based on load"
|
|
},
|
|
"form": {
|
|
"workerName": "Worker Name",
|
|
"workerNamePlaceholder": "e.g., Scanner-1",
|
|
"workerNameDesc": "Name to identify the worker",
|
|
"nameRequired": "Please enter worker name",
|
|
"nameTooLong": "Name cannot exceed 100 characters",
|
|
"hostIp": "IP Address",
|
|
"hostIpPlaceholder": "e.g., 192.168.1.100",
|
|
"ipRequired": "Please enter IP address",
|
|
"ipInvalid": "Please enter a valid IP address",
|
|
"ipNotEditable": "IP address cannot be modified",
|
|
"sshPort": "SSH Port",
|
|
"username": "Username",
|
|
"usernameRequired": "Please enter username",
|
|
"usernamePlaceholder": "e.g., root",
|
|
"password": "SSH Password",
|
|
"passwordPlaceholder": "Enter SSH password",
|
|
"passwordRequired": "Please enter SSH password",
|
|
"passwordKeepEmpty": "Leave empty to keep unchanged",
|
|
"passwordHint": "Password is only used for deployment and will not be stored in plain text",
|
|
"passwordEditHint": "Enter new password if you want to change it",
|
|
"creating": "Creating...",
|
|
"saving": "Saving...",
|
|
"createWorker": "Create Worker",
|
|
"saveChanges": "Save Changes"
|
|
},
|
|
"loadFailed": "Failed to load",
|
|
"loadError": "Error loading worker data",
|
|
"terminal": {
|
|
"connected": "Connected",
|
|
"disconnected": "Disconnected",
|
|
"connecting": "Establishing SSH connection...",
|
|
"wsConnected": "WebSocket connected",
|
|
"connectionClosed": "Connection closed",
|
|
"connectionFailed": "Connection failed",
|
|
"wsConnectionFailed": "WebSocket connection failed",
|
|
"waitingConnection": "Waiting for connection...",
|
|
"pendingHint": "Node not deployed, click the button on the right to start deploying scan environment",
|
|
"deployingHint": "Deploying, click to view progress",
|
|
"onlineHint": "Node running normally",
|
|
"offlineHint": "Node offline, try redeploying",
|
|
"updatingHint": "Auto-updating Agent...",
|
|
"outdatedHint": "Version outdated, needs update",
|
|
"reconnect": "Reconnect",
|
|
"startDeploy": "Start Deploy",
|
|
"viewProgress": "View Progress",
|
|
"redeploy": "Redeploy",
|
|
"uninstall": "Uninstall"
|
|
}
|
|
},
|
|
"systemLogs": {
|
|
"title": "System Logs",
|
|
"description": "Auto-refresh every 2 seconds (polling mode)",
|
|
"level": "Level",
|
|
"message": "Message",
|
|
"timestamp": "Timestamp",
|
|
"source": "Source",
|
|
"noContent": "(No log content)",
|
|
"toolbar": {
|
|
"logFile": "Log",
|
|
"selectFile": "Select log file",
|
|
"lines": "Lines",
|
|
"linesUnit": "lines",
|
|
"searchPlaceholder": "Search logs...",
|
|
"download": "Download",
|
|
"levelAll": "All Levels",
|
|
"autoRefresh": "Auto Refresh",
|
|
"systemLogsGroup": "System Logs",
|
|
"containerLogsGroup": "Container Logs"
|
|
}
|
|
},
|
|
"notifications": {
|
|
"title": "Notification Settings",
|
|
"email": "Email Notifications",
|
|
"webhook": "Webhook",
|
|
"enabled": "Enabled",
|
|
"disabled": "Disabled",
|
|
"pageTitle": "Notification Settings",
|
|
"pageDesc": "Configure notification channels and preferences",
|
|
"tabs": {
|
|
"channels": "Channels",
|
|
"preferences": "Preferences"
|
|
},
|
|
"discord": {
|
|
"title": "Discord",
|
|
"description": "Push notifications to your Discord channel",
|
|
"webhookLabel": "Webhook URL",
|
|
"webhookPlaceholder": "https://discord.com/api/webhooks/...",
|
|
"webhookHelp": "Create a Webhook in Discord channel settings and paste the URL",
|
|
"requiredError": "Webhook URL is required when Discord is enabled",
|
|
"urlInvalid": "Please enter a valid Discord Webhook URL"
|
|
},
|
|
"wecom": {
|
|
"title": "WeCom",
|
|
"description": "Push notifications to WeCom group bot",
|
|
"webhookLabel": "Webhook URL",
|
|
"webhookPlaceholder": "https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=...",
|
|
"webhookHelp": "Add a bot in WeCom group and copy the Webhook URL",
|
|
"requiredError": "Webhook URL is required when WeCom is enabled",
|
|
"urlInvalid": "Please enter a valid WeCom Webhook URL"
|
|
},
|
|
"emailChannel": {
|
|
"title": "Email",
|
|
"description": "Receive notifications via email",
|
|
"comingSoon": "Coming Soon"
|
|
},
|
|
"enterprise": {
|
|
"title": "Lark / DingTalk / WeCom",
|
|
"description": "Push to enterprise collaboration platforms"
|
|
},
|
|
"categories": {
|
|
"title": "Notification Categories",
|
|
"description": "Select notification types you want to receive",
|
|
"scan": "Scan Tasks",
|
|
"scanDesc": "Scan start, progress, completion, failure notifications",
|
|
"vulnerability": "Vulnerability Discovery",
|
|
"vulnerabilityDesc": "Notify when security vulnerabilities are found",
|
|
"asset": "Asset Discovery",
|
|
"assetDesc": "Notify when new subdomains, IPs, ports are found",
|
|
"system": "System Messages",
|
|
"systemDesc": "System-level notifications and announcements"
|
|
},
|
|
"saveSettings": "Save Settings"
|
|
}
|
|
},
|
|
"toast": {
|
|
"copied": "Copied",
|
|
"copyFailed": "Copy failed",
|
|
"downloadFailed": "Download failed",
|
|
"deleteSuccess": "Deleted successfully: {count} items",
|
|
"deleteFailed": "Delete failed, please retry",
|
|
"deletedScanRecord": "Deleted scan record: {name}",
|
|
"stoppedScan": "Stopped scan task: {name}",
|
|
"stopFailed": "Stop failed, please retry",
|
|
"bulkDeleteSuccess": "Deleted {count} scan records",
|
|
"bulkDeleteFailed": "Bulk delete failed, please retry",
|
|
"paramError": "Parameter error",
|
|
"paramErrorDesc": "Organization ID or Target ID is required",
|
|
"scanInitiated": "Scan initiated",
|
|
"scanInitiatedDesc": "Successfully created {count} scan tasks",
|
|
"initiateScanFailed": "Failed to initiate scan",
|
|
"noScansCreated": "No scan tasks were created",
|
|
"unknownError": "Unknown error",
|
|
"noEngineSelected": "Please select at least one scan engine",
|
|
"emptyConfig": "Scan configuration cannot be empty",
|
|
"engineNameRequired": "Please enter engine name",
|
|
"configRequired": "Configuration content is required",
|
|
"yamlSyntaxError": "YAML syntax error",
|
|
"engineCreateSuccess": "Engine created successfully",
|
|
"engineCreateSuccessDesc": "Engine \"{name}\" has been created",
|
|
"engineCreateFailed": "Failed to create engine",
|
|
"configSaveSuccess": "Configuration saved successfully",
|
|
"configSaveSuccessDesc": "Configuration for engine \"{name}\" has been updated",
|
|
"configSaveFailed": "Failed to save configuration",
|
|
"selectFileFirst": "Please select a file first",
|
|
"invalidJsonFile": "Invalid JSON file",
|
|
"importSuccess": "Import successful",
|
|
"importFailed": "Import failed",
|
|
"loadScanHistoryFailed": "Failed to load scan history",
|
|
"scan": {
|
|
"quick": {
|
|
"success": "Started {count} scan tasks",
|
|
"error": "Failed to start scan"
|
|
},
|
|
"stop": {
|
|
"success": "Scan stopped, {count} tasks cancelled"
|
|
},
|
|
"delete": {
|
|
"success": "Deleted scan task: {name}",
|
|
"bulkSuccess": "Deleted {count} scan tasks"
|
|
},
|
|
"initiate": {
|
|
"success": "Scan initiated successfully",
|
|
"error": "Failed to initiate scan"
|
|
}
|
|
},
|
|
"scheduledScan": {
|
|
"create": {
|
|
"success": "Scheduled scan created successfully",
|
|
"error": "Failed to create scheduled scan"
|
|
},
|
|
"update": {
|
|
"success": "Scheduled scan updated successfully",
|
|
"error": "Failed to update scheduled scan"
|
|
},
|
|
"delete": {
|
|
"success": "Scheduled scan deleted successfully",
|
|
"error": "Failed to delete scheduled scan"
|
|
},
|
|
"toggle": {
|
|
"enabled": "Scheduled scan enabled",
|
|
"disabled": "Scheduled scan disabled",
|
|
"error": "Failed to toggle scheduled scan"
|
|
}
|
|
},
|
|
"target": {
|
|
"create": {
|
|
"success": "Target created successfully",
|
|
"bulkSuccess": "Created {count} targets",
|
|
"error": "Failed to create target"
|
|
},
|
|
"update": {
|
|
"success": "Target updated successfully",
|
|
"error": "Failed to update target"
|
|
},
|
|
"delete": {
|
|
"success": "Target \"{name}\" deleted",
|
|
"bulkSuccess": "Deleted {count} targets",
|
|
"error": "Failed to delete target"
|
|
},
|
|
"link": {
|
|
"success": "Target linked to organization",
|
|
"error": "Failed to link target"
|
|
},
|
|
"unlink": {
|
|
"success": "Target unlinked from organization",
|
|
"bulkSuccess": "Unlinked {count} targets",
|
|
"error": "Failed to unlink target"
|
|
}
|
|
},
|
|
"organization": {
|
|
"create": {
|
|
"success": "Organization created successfully",
|
|
"error": "Failed to create organization"
|
|
},
|
|
"update": {
|
|
"success": "Organization updated successfully",
|
|
"error": "Failed to update organization"
|
|
},
|
|
"delete": {
|
|
"success": "Organization \"{name}\" deleted",
|
|
"bulkSuccess": "Deleted {count} organizations",
|
|
"error": "Failed to delete organization"
|
|
}
|
|
},
|
|
"asset": {
|
|
"subdomain": {
|
|
"create": {
|
|
"success": "Created {count} subdomains",
|
|
"partialSuccess": "Created {success} subdomains, skipped {skipped}",
|
|
"error": "Failed to create subdomains"
|
|
},
|
|
"delete": {
|
|
"success": "Subdomain deleted",
|
|
"bulkSuccess": "Deleted {count} subdomains",
|
|
"error": "Failed to delete subdomain"
|
|
}
|
|
},
|
|
"website": {
|
|
"create": {
|
|
"success": "Created {count} websites",
|
|
"partialSuccess": "Created {success} websites, skipped {skipped}",
|
|
"error": "Failed to create websites"
|
|
},
|
|
"delete": {
|
|
"success": "Website deleted",
|
|
"bulkSuccess": "Deleted {count} websites",
|
|
"error": "Failed to delete website"
|
|
}
|
|
},
|
|
"endpoint": {
|
|
"create": {
|
|
"success": "Created {count} endpoints",
|
|
"partialSuccess": "Created {success} endpoints, skipped {skipped}",
|
|
"error": "Failed to create endpoints"
|
|
},
|
|
"delete": {
|
|
"success": "Endpoint deleted",
|
|
"bulkSuccess": "Deleted {count} endpoints",
|
|
"error": "Failed to delete endpoint"
|
|
}
|
|
},
|
|
"directory": {
|
|
"create": {
|
|
"success": "Created {count} directories",
|
|
"partialSuccess": "Created {success} directories, skipped {skipped}",
|
|
"error": "Failed to create directories"
|
|
},
|
|
"delete": {
|
|
"success": "Directory deleted",
|
|
"bulkSuccess": "Deleted {count} directories",
|
|
"error": "Failed to delete directory"
|
|
}
|
|
}
|
|
},
|
|
"auth": {
|
|
"login": {
|
|
"success": "Login successful"
|
|
},
|
|
"logout": {
|
|
"success": "Logged out"
|
|
},
|
|
"changePassword": {
|
|
"success": "Password changed successfully",
|
|
"error": "Failed to change password"
|
|
}
|
|
},
|
|
"worker": {
|
|
"create": {
|
|
"success": "Worker created successfully",
|
|
"error": "Failed to create worker"
|
|
},
|
|
"update": {
|
|
"success": "Worker updated successfully",
|
|
"error": "Failed to update worker"
|
|
},
|
|
"delete": {
|
|
"success": "Worker deleted successfully",
|
|
"error": "Failed to delete worker"
|
|
},
|
|
"deploy": {
|
|
"success": "Worker deployment started",
|
|
"error": "Failed to deploy worker"
|
|
},
|
|
"restart": {
|
|
"success": "Worker is restarting",
|
|
"error": "Failed to restart worker"
|
|
},
|
|
"stop": {
|
|
"success": "Worker stopped",
|
|
"error": "Failed to stop worker"
|
|
}
|
|
},
|
|
"nucleiRepo": {
|
|
"create": {
|
|
"success": "Repository added successfully",
|
|
"error": "Failed to add repository"
|
|
},
|
|
"update": {
|
|
"success": "Repository updated successfully",
|
|
"error": "Failed to update repository"
|
|
},
|
|
"delete": {
|
|
"success": "Repository deleted successfully",
|
|
"error": "Failed to delete repository"
|
|
},
|
|
"sync": {
|
|
"success": "Repository synced successfully",
|
|
"error": "Failed to sync repository"
|
|
}
|
|
},
|
|
"wordlist": {
|
|
"upload": {
|
|
"success": "Wordlist uploaded successfully",
|
|
"error": "Failed to upload wordlist"
|
|
},
|
|
"update": {
|
|
"success": "Wordlist updated successfully",
|
|
"error": "Failed to update wordlist"
|
|
},
|
|
"delete": {
|
|
"success": "Wordlist deleted successfully",
|
|
"error": "Failed to delete wordlist"
|
|
}
|
|
},
|
|
"notification": {
|
|
"settings": {
|
|
"success": "Notification settings saved",
|
|
"error": "Failed to save notification settings"
|
|
},
|
|
"markRead": {
|
|
"success": "Marked as read",
|
|
"error": "Failed to mark as read"
|
|
},
|
|
"connection": {
|
|
"error": "Notification connection error: {message}"
|
|
}
|
|
},
|
|
"apiKeys": {
|
|
"settings": {
|
|
"success": "API key settings saved",
|
|
"error": "Failed to save API key settings"
|
|
}
|
|
},
|
|
"tool": {
|
|
"create": {
|
|
"success": "Tool created successfully",
|
|
"error": "Failed to create tool"
|
|
},
|
|
"update": {
|
|
"success": "Tool updated successfully",
|
|
"error": "Failed to update tool"
|
|
},
|
|
"delete": {
|
|
"success": "Tool deleted successfully",
|
|
"error": "Failed to delete tool"
|
|
}
|
|
},
|
|
"engine": {
|
|
"create": {
|
|
"success": "Engine created successfully",
|
|
"error": "Failed to create engine"
|
|
},
|
|
"update": {
|
|
"success": "Engine updated successfully",
|
|
"error": "Failed to update engine"
|
|
},
|
|
"delete": {
|
|
"success": "Engine deleted successfully",
|
|
"error": "Failed to delete engine"
|
|
}
|
|
},
|
|
"command": {
|
|
"create": {
|
|
"success": "Command created successfully",
|
|
"error": "Failed to create command"
|
|
},
|
|
"update": {
|
|
"success": "Command updated successfully",
|
|
"error": "Failed to update command"
|
|
},
|
|
"delete": {
|
|
"success": "Command deleted successfully",
|
|
"bulkSuccess": "Deleted {count} commands",
|
|
"error": "Failed to delete command"
|
|
}
|
|
},
|
|
"nucleiTemplate": {
|
|
"refresh": {
|
|
"loading": "Syncing templates...",
|
|
"success": "Templates synced successfully",
|
|
"error": "Failed to sync templates"
|
|
},
|
|
"upload": {
|
|
"success": "Template uploaded successfully",
|
|
"error": "Failed to upload template"
|
|
},
|
|
"save": {
|
|
"success": "Template saved successfully",
|
|
"error": "Failed to save template"
|
|
}
|
|
},
|
|
"nucleiGit": {
|
|
"settings": {
|
|
"success": "Git settings saved successfully",
|
|
"error": "Failed to save Git settings"
|
|
}
|
|
},
|
|
"systemLog": {
|
|
"fetch": {
|
|
"error": "Failed to fetch system logs, please check backend",
|
|
"recovered": "System log connection recovered"
|
|
}
|
|
},
|
|
"blacklist": {
|
|
"save": {
|
|
"success": "Blacklist rules saved",
|
|
"error": "Failed to save blacklist rules"
|
|
}
|
|
}
|
|
},
|
|
"quickScan": {
|
|
"title": "Quick Scan",
|
|
"description": "Quickly create scan tasks for multiple targets",
|
|
"steps": {
|
|
"enterTargets": "Enter Targets",
|
|
"selectEngine": "Select Engine",
|
|
"confirmScan": "Confirm Scan"
|
|
},
|
|
"step1Title": "Enter Targets",
|
|
"step2Title": "Select Engines",
|
|
"step3Title": "Edit Config",
|
|
"stepIndicator": "Step {current}/{total}",
|
|
"step1Hint": "Enter scan targets in the left input box, one per line",
|
|
"step": "Step {current}/{total} · {title}",
|
|
"targetPlaceholder": "Enter one target per line, supported formats:\n\nDomain: example.com, sub.example.com\nIP Address: 192.168.1.1, 10.0.0.1\nCIDR: 192.168.1.0/24, 10.0.0.0/8\nURL: https://example.com/api/v1",
|
|
"supportedFormats": "Supported: Domain, IP, CIDR, URL",
|
|
"validTargets": "{count} valid targets",
|
|
"invalidTargets": "{count} invalid",
|
|
"selectEngine": "Select Engine",
|
|
"noEngines": "No engines available",
|
|
"capabilities": "{count} capabilities",
|
|
"noConfig": "No config",
|
|
"scanTargets": "Scan Targets",
|
|
"totalTargets": "{count} targets total",
|
|
"previous": "Previous",
|
|
"back": "Back",
|
|
"next": "Next",
|
|
"startScan": "Start Scan",
|
|
"creating": "Creating...",
|
|
"selectEngineHint": "Select an engine on the left to view configuration",
|
|
"moreErrors": "{count} more errors...",
|
|
"lineError": "Line {lineNumber}: {error}",
|
|
"loading": "Loading...",
|
|
"loadFailed": "Failed to load",
|
|
"selectedCount": "{count} selected",
|
|
"confirmTargets": "{count} scan targets",
|
|
"andMore": "{count} more...",
|
|
"selectedEngines": "Selected Engines",
|
|
"confirmSummary": "Will scan {targetCount} targets with {engineCount} engines",
|
|
"configTitle": "Scan Configuration",
|
|
"configEdited": "Edited",
|
|
"overwriteConfirm": {
|
|
"title": "Overwrite Configuration",
|
|
"description": "You have manually edited the configuration. Changing engines will overwrite your changes. Continue?",
|
|
"cancel": "Cancel",
|
|
"confirm": "Overwrite"
|
|
},
|
|
"toast": {
|
|
"noValidTarget": "Please enter at least one valid target",
|
|
"hasInvalidInputs": "{count} invalid inputs, please fix before continuing",
|
|
"selectEngine": "Please select a scan engine",
|
|
"emptyConfig": "Scan configuration cannot be empty",
|
|
"getEnginesFailed": "Failed to get engine list",
|
|
"createFailed": "Failed to create scan task",
|
|
"createSuccess": "Created {count} scan tasks",
|
|
"createSuccessDesc": "{created} targets succeeded, {failed} failed",
|
|
"targetsFailed": "{count} targets failed",
|
|
"configConflict": "Engine configuration conflict"
|
|
}
|
|
},
|
|
"notificationDrawer": {
|
|
"title": "Notifications",
|
|
"markAllRead": "Mark All Read",
|
|
"markAllAsRead": "Mark all as read",
|
|
"empty": "No notifications",
|
|
"noNotifications": "No notifications",
|
|
"filters": {
|
|
"all": "All",
|
|
"scan": "Scan",
|
|
"vulnerability": "Vulnerability",
|
|
"asset": "Asset",
|
|
"system": "System"
|
|
},
|
|
"categories": {
|
|
"scan": "Scan Tasks",
|
|
"vulnerability": "Vulnerability Discovery",
|
|
"asset": "Asset Discovery",
|
|
"system": "System Messages"
|
|
},
|
|
"timeGroups": {
|
|
"today": "Today",
|
|
"yesterday": "Yesterday",
|
|
"earlier": "Earlier"
|
|
},
|
|
"status": {
|
|
"realtime": "Live",
|
|
"offline": "Offline"
|
|
},
|
|
"connection": {
|
|
"live": "Live",
|
|
"offline": "Offline"
|
|
}
|
|
},
|
|
"disk": {
|
|
"totalCapacity": "Total Capacity",
|
|
"used": "Used",
|
|
"available": "Available"
|
|
},
|
|
"subdomains": {
|
|
"loadFailed": "Load Failed",
|
|
"loadError": "Error loading subdomain data, please retry",
|
|
"reload": "Reload"
|
|
},
|
|
"vulnerabilities": {
|
|
"title": "Vulnerability Management",
|
|
"description": "View and manage all vulnerabilities found by scans",
|
|
"detail": {
|
|
"vulnUrl": "Vulnerability URL",
|
|
"tabs": {
|
|
"overview": "Overview",
|
|
"requestResponse": "Request/Response",
|
|
"evidence": "Evidence",
|
|
"reproduce": "Reproduce",
|
|
"rawData": "Raw Data"
|
|
},
|
|
"basicInfo": "Basic Info",
|
|
"createdAt": "Created At",
|
|
"severity": "Severity",
|
|
"source": "Source",
|
|
"httpMethod": "HTTP Method",
|
|
"param": "Parameter",
|
|
"classification": "Classification",
|
|
"noClassification": "No classification info",
|
|
"detailedDesc": "Detailed Description",
|
|
"references": "References",
|
|
"noEvidence": "No evidence data",
|
|
"curlCommand": "CURL Command",
|
|
"curlHint": "Copy the following command to terminal to reproduce this vulnerability",
|
|
"rawOutput": "Raw Output (JSON)",
|
|
"rawOutputHint": "Complete output data from scan tool",
|
|
"evidence": {
|
|
"payload": "Payload",
|
|
"evidence": "Evidence",
|
|
"httpRequest": "HTTP Request",
|
|
"httpResponse": "HTTP Response"
|
|
}
|
|
},
|
|
"severity": {
|
|
"critical": "Critical",
|
|
"high": "High",
|
|
"medium": "Medium",
|
|
"low": "Low",
|
|
"info": "Info"
|
|
}
|
|
},
|
|
"pages": {
|
|
"organization": {
|
|
"title": "Organizations",
|
|
"description": "Manage and view all organizations in the system"
|
|
},
|
|
"target": {
|
|
"title": "Targets",
|
|
"description": "Manage all targets in the system"
|
|
},
|
|
"workers": {
|
|
"title": "Workers",
|
|
"description": "Manage distributed scan workers, supports remote VPS auto-deployment"
|
|
},
|
|
"wordlists": {
|
|
"title": "Wordlist Management",
|
|
"searchPlaceholder": "Search wordlists...",
|
|
"listTitle": "Wordlist List",
|
|
"loading": "Loading...",
|
|
"noMatch": "No matching wordlists found",
|
|
"noData": "No wordlists yet, please upload first",
|
|
"lines": "lines",
|
|
"rows": "Rows",
|
|
"size": "Size",
|
|
"id": "ID",
|
|
"updatedAt": "Updated At",
|
|
"hash": "Hash",
|
|
"editContent": "Edit Content",
|
|
"delete": "Delete",
|
|
"selectHint": "Select a wordlist on the left to view details",
|
|
"idCopied": "ID copied to clipboard"
|
|
},
|
|
"nuclei": {
|
|
"title": "Nuclei Template Repositories",
|
|
"searchPlaceholder": "Search repositories...",
|
|
"addRepo": "Add Repository",
|
|
"listTitle": "Repository List",
|
|
"loading": "Loading...",
|
|
"loadFailed": "Load failed",
|
|
"noMatch": "No matching repositories found",
|
|
"noData": "No repositories yet, please add first",
|
|
"synced": "Synced",
|
|
"notSynced": "Not Synced",
|
|
"syncedAt": "Synced at",
|
|
"notSyncedYet": "Not synced yet",
|
|
"status": "Status",
|
|
"lastSync": "Last Sync",
|
|
"gitUrl": "Git URL",
|
|
"localPath": "Local Path",
|
|
"commit": "Commit",
|
|
"syncRepo": "Sync Repository",
|
|
"syncing": "Syncing...",
|
|
"editConfig": "Edit Config",
|
|
"manageTemplates": "Manage Templates",
|
|
"delete": "Delete",
|
|
"selectHint": "Select a repository on the left to view details",
|
|
"addDialog": {
|
|
"title": "Add Nuclei Template Repository",
|
|
"repoName": "Repository Name",
|
|
"repoNamePlaceholder": "e.g., Default Nuclei Official Templates",
|
|
"gitUrl": "Git Repository URL",
|
|
"gitUrlPlaceholder": "e.g., https://github.com/projectdiscovery/nuclei-templates.git",
|
|
"cancel": "Cancel",
|
|
"creating": "Creating...",
|
|
"confirm": "Confirm Add"
|
|
},
|
|
"editDialog": {
|
|
"title": "Edit Nuclei Repository Config",
|
|
"repoName": "Repository Name:",
|
|
"gitUrl": "Git Repository URL",
|
|
"gitUrlPlaceholder": "e.g., https://github.com/projectdiscovery/nuclei-templates.git",
|
|
"cancel": "Cancel",
|
|
"saving": "Saving...",
|
|
"save": "Save Config"
|
|
}
|
|
},
|
|
"tools": {
|
|
"title": "Tools",
|
|
"description": "Manage auxiliary resources related to scanning, such as wordlists",
|
|
"wordlists": {
|
|
"title": "Wordlist Management",
|
|
"description": "Manage wordlist files used for directory scanning, etc."
|
|
},
|
|
"nuclei": {
|
|
"title": "Nuclei Templates",
|
|
"description": "Browse local Nuclei template structure and content"
|
|
},
|
|
"comingSoon": "Coming Soon",
|
|
"stats": {
|
|
"total": "Total:",
|
|
"active": "Active:"
|
|
},
|
|
"enterManagement": "Enter Management",
|
|
"quickActions": {
|
|
"title": "Quick Actions",
|
|
"description": "Common tool operations"
|
|
}
|
|
},
|
|
"screenshots": {
|
|
"filterPlaceholder": "Filter by URL...",
|
|
"loadError": "Failed to load screenshots",
|
|
"noResults": "No screenshots match your filter",
|
|
"lightboxTitle": "Screenshot Preview",
|
|
"empty": {
|
|
"title": "No Screenshots",
|
|
"description": "Screenshots will appear here after running a site scan with screenshot enabled."
|
|
}
|
|
},
|
|
"targetDetail": {
|
|
"noDescription": "No description",
|
|
"breadcrumb": {
|
|
"targetDetail": "Target Detail"
|
|
},
|
|
"error": {
|
|
"title": "Load Failed",
|
|
"message": "An error occurred while fetching target data"
|
|
},
|
|
"notFound": {
|
|
"title": "Target Not Found",
|
|
"message": "Target with ID {id} not found"
|
|
},
|
|
"tabs": {
|
|
"overview": "Overview",
|
|
"assets": "Assets",
|
|
"screenshots": "Screenshots",
|
|
"vulnerabilities": "Vulnerabilities",
|
|
"settings": "Settings"
|
|
},
|
|
"settings": {
|
|
"loadError": "Failed to load settings",
|
|
"blacklist": {
|
|
"title": "Blacklist Rules",
|
|
"description": "Assets matching the following rules will be automatically excluded during scanning.",
|
|
"rulesTitle": "Supported Rule Types",
|
|
"rules": {
|
|
"domain": "Domain wildcard, matches specified suffix",
|
|
"domainShort": "Domain",
|
|
"keyword": "Keyword match, contains specified string",
|
|
"keywordShort": "Keyword",
|
|
"ip": "Exact IP address match",
|
|
"ipShort": "IP",
|
|
"cidr": "Matches IP range",
|
|
"cidrShort": "CIDR"
|
|
},
|
|
"placeholder": "Enter rules, one per line\n\nExamples:\n*.gov\n*.edu\n*cdn*\n192.168.0.0/16\n10.0.0.1",
|
|
"save": "Save Rules"
|
|
},
|
|
"scheduledScans": {
|
|
"title": "Scheduled Scans",
|
|
"description": "Configure automated scan tasks for this target",
|
|
"create": "New Scheduled Scan",
|
|
"empty": "No scheduled scans",
|
|
"emptyHint": "Click the button above to create a scheduled scan",
|
|
"enabled": "Enabled",
|
|
"disabled": "Disabled",
|
|
"nextRun": "Next run",
|
|
"runCount": "Run count",
|
|
"edit": "Edit",
|
|
"delete": "Delete",
|
|
"cronDaily": "Daily at {time}",
|
|
"cronWeekly": "Every {day} at {time}",
|
|
"cronMonthly": "Monthly on day {day} at {time}",
|
|
"weekdays": {
|
|
"sun": "Sunday",
|
|
"mon": "Monday",
|
|
"tue": "Tuesday",
|
|
"wed": "Wednesday",
|
|
"thu": "Thursday",
|
|
"fri": "Friday",
|
|
"sat": "Saturday"
|
|
},
|
|
"deleteConfirm": {
|
|
"title": "Confirm Delete",
|
|
"description": "Are you sure you want to delete the scheduled scan \"{name}\"? This action cannot be undone.",
|
|
"cancel": "Cancel",
|
|
"confirm": "Delete"
|
|
}
|
|
}
|
|
},
|
|
"overview": {
|
|
"loadError": "Failed to load target data",
|
|
"createdAt": "Created",
|
|
"lastScanned": "Last Scanned",
|
|
"assetsTitle": "Assets",
|
|
"vulnerabilitiesTitle": "Vulnerabilities",
|
|
"scanHistoryTitle": "Scan History",
|
|
"recentScans": "Recent Scans",
|
|
"noScans": "No scan records",
|
|
"viewAll": "View all",
|
|
"cards": {
|
|
"websites": "Websites",
|
|
"subdomains": "Subdomains",
|
|
"ips": "IP Addresses",
|
|
"urls": "URLs",
|
|
"directories": "Directories",
|
|
"vulnerabilities": "Total Vulnerabilities"
|
|
},
|
|
"severity": {
|
|
"critical": "Critical",
|
|
"high": "High",
|
|
"medium": "Medium",
|
|
"low": "Low"
|
|
},
|
|
"scanStatus": {
|
|
"completed": "Completed",
|
|
"running": "Running",
|
|
"failed": "Failed",
|
|
"cancelled": "Cancelled",
|
|
"initiated": "Pending"
|
|
},
|
|
"scheduledScans": {
|
|
"title": "Scheduled Scans",
|
|
"manage": "Manage",
|
|
"empty": "No scheduled scans",
|
|
"createFirst": "Create your first scheduled scan",
|
|
"configured": "Configured",
|
|
"enabled": "Enabled",
|
|
"nextRun": "Next run",
|
|
"today": "Today",
|
|
"tomorrow": "Tomorrow",
|
|
"more": "+{count} more"
|
|
},
|
|
"initiateScan": "Initiate Scan"
|
|
}
|
|
},
|
|
"nav": {
|
|
"scanEngine": "Scan Engine",
|
|
"wordlists": "Wordlist Management"
|
|
},
|
|
"settings": {
|
|
"blacklist": {
|
|
"title": "Global Blacklist",
|
|
"description": "Configure global blacklist rules. Matching assets will be automatically excluded during scans.",
|
|
"loadError": "Failed to load blacklist rules",
|
|
"card": {
|
|
"title": "Blacklist Rules",
|
|
"description": "These rules apply to all target scans. To configure blacklist for a specific target, go to the target settings page."
|
|
},
|
|
"rules": {
|
|
"title": "Supported rule types",
|
|
"domain": "Domain",
|
|
"keyword": "Keyword",
|
|
"ip": "IP",
|
|
"cidr": "CIDR"
|
|
},
|
|
"scopeHint": "Global rules apply to all targets. Target-level rules can be configured in Target → Settings.",
|
|
"placeholder": "Enter rules, one per line\n\nExamples:\n*.gov\n*.edu\n*cdn*\n192.168.0.0/16\n10.0.0.1",
|
|
"save": "Save Rules",
|
|
"toast": {
|
|
"saveSuccess": "Blacklist rules saved",
|
|
"saveError": "Failed to save blacklist rules"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"metadata": {
|
|
"title": "Xingrin - Attack Surface Management Platform | ASM",
|
|
"description": "Xingrin - Attack Surface Management (ASM) platform, providing automated asset discovery, vulnerability scanning, subdomain enumeration, port scanning, and more. Supports distributed scanning, Nuclei integration, and scheduled tasks.",
|
|
"keywords": "ASM, Attack Surface Management, Vulnerability Scanning, Asset Discovery, Bug Bounty, Penetration Testing, Nuclei, Subdomain Enumeration, Security Tools, EASM, Security",
|
|
"ogTitle": "Xingrin - Attack Surface Management Platform",
|
|
"ogDescription": "Attack Surface Management (ASM) platform providing automated asset discovery and vulnerability scanning"
|
|
},
|
|
"bulkAdd": {
|
|
"subdomain": {
|
|
"title": "Bulk Add Subdomains",
|
|
"description": "Enter subdomain list, one per line.",
|
|
"belongsTo": "Subdomains must belong to",
|
|
"label": "Subdomain List",
|
|
"placeholder": "Enter subdomains, one per line\nExample:\napi.example.com\nwww.example.com\nmail.example.com",
|
|
"valid": "Valid: {count}",
|
|
"duplicate": "Duplicate: {count}",
|
|
"invalid": "Invalid: {count}",
|
|
"lineError": "Line {line}: \"{value}\" - {error}",
|
|
"formatInvalid": "Invalid format",
|
|
"creating": "Creating...",
|
|
"bulkAdd": "Bulk Add"
|
|
},
|
|
"common": {
|
|
"cancel": "Cancel",
|
|
"bulkAdd": "Bulk Add",
|
|
"formatInvalid": "Invalid format"
|
|
}
|
|
},
|
|
"globalSearch": {
|
|
"search": "Search",
|
|
"placeholder": "Search assets... (host=\"api\" && tech=\"nginx\")",
|
|
"noResults": "No results found",
|
|
"searchFor": "Search for",
|
|
"recent": "Recent Searches",
|
|
"quickSearch": "Quick Search",
|
|
"hint": "Supports FOFA-style syntax",
|
|
"toSearch": "to search"
|
|
},
|
|
"errors": {
|
|
"unknown": "Operation failed, please try again later",
|
|
"validation": "Invalid input data",
|
|
"notFound": "Resource not found",
|
|
"permissionDenied": "Permission denied",
|
|
"serverError": "Server error, please try again later",
|
|
"badRequest": "Invalid request format",
|
|
"conflict": "Resource conflict, please check and try again",
|
|
"unauthorized": "Please login first",
|
|
"rateLimited": "Too many requests, please try again later"
|
|
},
|
|
"about": {
|
|
"title": "About XingRin",
|
|
"description": "Attack Surface Management Platform",
|
|
"currentVersion": "Current Version",
|
|
"latestVersion": "Latest Version",
|
|
"checkUpdate": "Check Update",
|
|
"checking": "Checking...",
|
|
"checkFailed": "Failed to check update, please try again later",
|
|
"updateAvailable": "Update Available",
|
|
"upToDate": "Up to Date",
|
|
"viewRelease": "View Release",
|
|
"updateHint": "Run the following command in project root to update:",
|
|
"changelog": "Changelog",
|
|
"feedback": "Feedback",
|
|
"docs": "Documentation"
|
|
}
|
|
}
|