mirror of
https://github.com/yyhuni/xingrin.git
synced 2026-01-31 11:46:16 +08:00
- Add optional limit parameter to AssetSearchService.search() method for controlling result set size - Implement AssetSearchExportView for exporting search results as CSV files with UTF-8 BOM encoding - Add CSV export endpoint at GET /api/assets/search/export/ with configurable MAX_EXPORT_ROWS limit (10000) - Support both website and endpoint asset types with type-specific column mappings in CSV export - Format array fields (tech, matched_gf_patterns) and dates appropriately in exported CSV - Update URL routing to include new search export endpoint - Update views __init__.py to export AssetSearchExportView - Add CSV generation with streaming response for efficient memory usage on large exports - Update frontend search service to support export functionality - Add internationalization strings for export feature in en.json and zh.json - Update smart-filter-input and search-results-table components to support export UI - Update installation and Docker startup scripts for deployment compatibility
2000 lines
72 KiB
JSON
2000 lines
72 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": "目标详情",
|
||
"viewProgress": "点击查看进度详情",
|
||
"targetSummary": "目标摘要",
|
||
"initiateScan": "发起扫描",
|
||
"scheduleScan": "计划扫描",
|
||
"editEngine": "编辑引擎",
|
||
"viewDetails": "查看详情",
|
||
"unlinkTarget": "解除关联",
|
||
"clickToCopy": "点击复制",
|
||
"expand": "展开",
|
||
"collapse": "收起",
|
||
"vulnDetails": "漏洞详情",
|
||
"copied": "已复制",
|
||
"allHosts": "所有主机",
|
||
"allOpenPorts": "所有开放端口"
|
||
},
|
||
"severity": {
|
||
"critical": "严重",
|
||
"high": "高危",
|
||
"medium": "中危",
|
||
"low": "低危",
|
||
"info": "信息"
|
||
},
|
||
"common": {
|
||
"actions": {
|
||
"save": "保存",
|
||
"saving": "保存中...",
|
||
"cancel": "取消",
|
||
"delete": "删除",
|
||
"edit": "编辑",
|
||
"add": "添加",
|
||
"create": "创建",
|
||
"update": "更新",
|
||
"search": "搜索",
|
||
"refresh": "刷新",
|
||
"export": "导出",
|
||
"import": "导入",
|
||
"confirm": "确认",
|
||
"close": "关闭",
|
||
"submit": "提交",
|
||
"reset": "重置",
|
||
"copy": "复制",
|
||
"download": "下载",
|
||
"upload": "上传",
|
||
"view": "查看",
|
||
"details": "详情",
|
||
"back": "返回",
|
||
"next": "下一步",
|
||
"previous": "上一步",
|
||
"start": "开始",
|
||
"stop": "停止",
|
||
"pause": "暂停",
|
||
"resume": "继续",
|
||
"retry": "重试",
|
||
"snapshot": "快照",
|
||
"openMenu": "打开菜单",
|
||
"selectAll": "全选",
|
||
"selectRow": "选择行",
|
||
"website": "官网",
|
||
"description": "描述"
|
||
},
|
||
"theme": {
|
||
"switchToLight": "切换到亮色模式",
|
||
"switchToDark": "切换到暗色模式",
|
||
"switchLanguage": "切换语言",
|
||
"switchColor": "切换主题色"
|
||
},
|
||
"download": {
|
||
"all": "下载全部",
|
||
"selected": "下载选中",
|
||
"important": "下载重点"
|
||
},
|
||
"ui": {
|
||
"toggleSidebar": "切换侧边栏",
|
||
"loading": "加载中",
|
||
"commandDialog": "命令对话框"
|
||
},
|
||
"dropzone": {
|
||
"uploadFile": "上传文件",
|
||
"uploadFiles": "上传文件",
|
||
"dragOrClick": "拖拽文件到此处或点击选择",
|
||
"dragOrClickReplace": "拖拽或点击替换文件",
|
||
"moreFiles": "{files} 等 {count} 个文件",
|
||
"supports": "支持",
|
||
"minimum": "最小",
|
||
"maximum": "最大",
|
||
"sizeBetween": "大小在 {min} 到 {max} 之间"
|
||
},
|
||
"status": {
|
||
"loading": "加载中...",
|
||
"pageLoading": "页面加载中...",
|
||
"success": "操作成功",
|
||
"error": "操作失败",
|
||
"noData": "暂无数据",
|
||
"pending": "等待中",
|
||
"running": "运行中",
|
||
"completed": "已完成",
|
||
"failed": "失败",
|
||
"cancelled": "已取消",
|
||
"active": "活跃",
|
||
"inactive": "未激活",
|
||
"enabled": "已启用",
|
||
"disabled": "已禁用",
|
||
"creating": "正在创建...",
|
||
"updating": "正在更新...",
|
||
"deleting": "正在删除...",
|
||
"removing": "正在移除...",
|
||
"unlinking": "正在解除关联...",
|
||
"batchCreating": "正在批量创建...",
|
||
"batchDeleting": "正在批量删除...",
|
||
"batchRemoving": "正在批量移除...",
|
||
"updateSuccess": "更新成功",
|
||
"updateFailed": "更新失败",
|
||
"uploading": "正在上传..."
|
||
},
|
||
"pagination": {
|
||
"page": "第 {current} 页,共 {total} 页",
|
||
"rowsPerPage": "每页显示",
|
||
"total": "共 {count} 条",
|
||
"first": "首页",
|
||
"last": "末页",
|
||
"previous": "上一页",
|
||
"next": "下一页",
|
||
"goTo": "跳转到"
|
||
},
|
||
"time": {
|
||
"justNow": "刚刚",
|
||
"minutesAgo": "{count} 分钟前",
|
||
"hoursAgo": "{count} 小时前",
|
||
"daysAgo": "{count} 天前",
|
||
"weeksAgo": "{count} 周前",
|
||
"monthsAgo": "{count} 个月前",
|
||
"yearsAgo": "{count} 年前"
|
||
},
|
||
"confirm": {
|
||
"title": "确认操作",
|
||
"deleteTitle": "确认删除",
|
||
"deleteMessage": "确定要删除吗?此操作不可撤销。",
|
||
"bulkDeleteTitle": "确认批量删除",
|
||
"bulkDeleteMessage": "确定要删除选中的 {count} 项吗?此操作不可撤销。",
|
||
"unlinkTitle": "确认解除关联",
|
||
"unlinkMessage": "确定要解除关联吗?此操作只会解除关联关系,数据本身不会被删除。",
|
||
"bulkUnlinkTitle": "确认批量解除关联",
|
||
"bulkUnlinkMessage": "确定要解除选中的 {count} 项的关联吗?数据本身不会被删除。",
|
||
"stopTitle": "确认停止",
|
||
"stopMessage": "确定要停止此任务吗?",
|
||
"yes": "是",
|
||
"no": "否",
|
||
"deleteVulnMessage": "此操作无法撤销。这将永久删除漏洞 \"{name}\" 及其相关数据。",
|
||
"bulkDeleteVulnMessage": "此操作无法撤销。这将永久删除以下 {count} 个漏洞及其相关数据。",
|
||
"deleteVulnCount": "删除 {count} 个漏洞",
|
||
"deleteScanMessage": "此操作无法撤销。这将永久删除扫描记录 \"{name}\" 及其相关数据。",
|
||
"bulkDeleteScanMessage": "此操作无法撤销。这将永久删除以下 {count} 个扫描记录及其相关数据。",
|
||
"deleteScanCount": "删除 {count} 个记录",
|
||
"stopScanTitle": "确认停止扫描",
|
||
"stopScanMessage": "确定要停止扫描任务 \"{name}\" 吗?扫描将会中止,已收集的数据将会保留。",
|
||
"stopScanAction": "停止扫描",
|
||
"deleteOrgMessage": "此操作将永久删除组织 \"{name}\" 并解除其与域名的关联。域名本身不会被删除,仍可正常使用。",
|
||
"bulkDeleteOrgMessage": "此操作将永久删除以下 {count} 个组织并解除其与域名的关联。域名本身不会被删除,仍可正常使用。",
|
||
"deleteOrgCount": "删除 {count} 个组织",
|
||
"deleting": "删除中...",
|
||
"deleteToolMessage": "此操作无法撤销。这将永久删除开源工具 \"{name}\" 及其相关配置。",
|
||
"deleteCustomToolMessage": "此操作无法撤销。这将永久删除自定义工具 \"{name}\" 及其相关配置。",
|
||
"deleteTargetTitle": "确认删除目标",
|
||
"deleteTargetMessage": "此操作无法撤销。这将永久删除目标 \"{name}\" 及其所有关联数据。",
|
||
"bulkDeleteTargetTitle": "确认批量删除目标",
|
||
"bulkDeleteTargetMessage": "此操作无法撤销。这将永久删除以下 {count} 个目标及其所有关联数据。",
|
||
"deleteTargetCount": "确认删除 {count} 个目标",
|
||
"confirmDelete": "确认删除",
|
||
"confirmUnlink": "确认解除",
|
||
"confirmUnlinkCount": "确认解除 {count} 个关联",
|
||
"unlinkTargetMessage": "确定要解除目标 \"{name}\" 与此组织的关联吗?此操作只会解除关联关系,目标本身不会被删除。",
|
||
"bulkUnlinkTargetMessage": "此操作将解除以下 {count} 个目标与此组织的关联。目标本身不会被删除,仍可正常使用。",
|
||
"deleteScheduledScanMessage": "确定要删除定时扫描任务 \"{name}\" 吗?此操作无法撤销。",
|
||
"deleteEngineMessage": "确定要删除引擎「{name}」吗?此操作无法撤销。",
|
||
"deleteNucleiRepoMessage": "确定要删除仓库「{name}」吗?此操作无法撤销。",
|
||
"deleteWordlistMessage": "确定要删除字典「{name}」吗?此操作无法撤销。"
|
||
}
|
||
},
|
||
"navigation": {
|
||
"mainFeatures": "主要功能",
|
||
"dashboard": "仪表盘",
|
||
"search": "搜索",
|
||
"organization": "组织",
|
||
"target": "目标",
|
||
"vulnerabilities": "漏洞",
|
||
"scan": "扫描",
|
||
"scanHistory": "扫描历史",
|
||
"scheduledScan": "定时扫描",
|
||
"scanEngine": "扫描引擎",
|
||
"tools": "工具",
|
||
"wordlists": "字典管理",
|
||
"fingerprints": "指纹管理",
|
||
"nucleiTemplates": "Nuclei 模板",
|
||
"settings": "系统设置",
|
||
"workers": "扫描节点",
|
||
"systemLogs": "系统日志",
|
||
"notifications": "通知设置",
|
||
"help": "获取帮助",
|
||
"feedback": "反馈建议"
|
||
},
|
||
"search": {
|
||
"title": "资产搜索",
|
||
"hint": "点击搜索框查看可用字段和语法,直接输入文本默认搜索主机名",
|
||
"searching": "搜索中...",
|
||
"loading": "加载中...",
|
||
"resultsCount": "找到 {count} 条结果",
|
||
"error": "搜索失败,请稍后重试",
|
||
"noResults": "未找到匹配的资产",
|
||
"noResultsHint": "请尝试调整搜索条件",
|
||
"vulnLoadError": "加载漏洞详情失败",
|
||
"recentSearches": "最近搜索",
|
||
"export": "导出",
|
||
"exporting": "导出中...",
|
||
"exportSuccess": "导出成功",
|
||
"exportFailed": "导出失败",
|
||
"stats": {
|
||
"vulnerabilities": "漏洞"
|
||
},
|
||
"assetTypes": {
|
||
"website": "网站",
|
||
"endpoint": "URL"
|
||
},
|
||
"fields": {
|
||
"host": "主机名",
|
||
"url": "URL 地址",
|
||
"title": "页面标题",
|
||
"tech": "技术栈",
|
||
"status": "HTTP 状态码",
|
||
"body": "响应体内容",
|
||
"header": "响应头内容"
|
||
},
|
||
"table": {
|
||
"url": "URL",
|
||
"host": "主机名",
|
||
"title": "标题",
|
||
"status": "状态码",
|
||
"technologies": "技术栈",
|
||
"contentLength": "内容长度",
|
||
"location": "跳转地址",
|
||
"webserver": "Web 服务器",
|
||
"contentType": "内容类型",
|
||
"responseBody": "响应体",
|
||
"responseHeaders": "响应头",
|
||
"vhost": "VHost",
|
||
"createdAt": "创建时间",
|
||
"gfPatterns": "GF 模式"
|
||
},
|
||
"card": {
|
||
"title": "标题",
|
||
"expand": "展开",
|
||
"collapse": "收起",
|
||
"vulnerabilities": "关联漏洞 ({count})",
|
||
"vulnName": "漏洞名称",
|
||
"severity": "严重程度",
|
||
"source": "来源",
|
||
"vulnType": "漏洞类型"
|
||
},
|
||
"vulnDetail": {
|
||
"title": "漏洞详情",
|
||
"name": "漏洞名称",
|
||
"source": "来源",
|
||
"type": "漏洞类型",
|
||
"url": "漏洞 URL"
|
||
}
|
||
},
|
||
"dashboard": {
|
||
"title": "仪表盘",
|
||
"stats": {
|
||
"totalTargets": "目标总数",
|
||
"totalVulnerabilities": "漏洞总数",
|
||
"activeScans": "进行中扫描",
|
||
"completedScans": "已完成扫描",
|
||
"totalOrganizations": "组织总数",
|
||
"totalSubdomains": "子域名总数",
|
||
"totalEndpoints": "端点总数",
|
||
"totalWebsites": "网站总数"
|
||
},
|
||
"statCards": {
|
||
"assetsFound": "发现资产",
|
||
"vulnsFound": "发现漏洞",
|
||
"monitoredTargets": "监控目标",
|
||
"runningScans": "正在扫描",
|
||
"assetsFooter": "子域名 + IP + 端点 + 网站",
|
||
"vulnsFooter": "所有扫描发现的漏洞",
|
||
"targetsFooter": "已添加的目标总数",
|
||
"scansFooter": "当前运行中的任务",
|
||
"updatedAt": "统计更新于 {time}",
|
||
"noData": "暂无数据"
|
||
},
|
||
"assetTrend": {
|
||
"title": "资产趋势",
|
||
"description": "每小时更新 · 点击折线或图例可隐藏/显示",
|
||
"noData": "暂无历史数据",
|
||
"current": "当前",
|
||
"subdomains": "子域名",
|
||
"ips": "IP",
|
||
"endpoints": "端点",
|
||
"websites": "网站"
|
||
},
|
||
"assetDistribution": {
|
||
"title": "资产分布",
|
||
"description": "各类资产数量统计",
|
||
"totalAssets": "资产总计",
|
||
"subdomains": "子域名",
|
||
"ipAddresses": "IP地址",
|
||
"endpoints": "端点",
|
||
"websites": "网站",
|
||
"count": "数量"
|
||
},
|
||
"vulnDistribution": {
|
||
"title": "漏洞分布",
|
||
"description": "按严重程度统计",
|
||
"noData": "暂无漏洞数据",
|
||
"vulns": "漏洞"
|
||
},
|
||
"recentVulns": {
|
||
"title": "最近漏洞",
|
||
"description": "最近发现的安全漏洞",
|
||
"viewAll": "查看全部",
|
||
"noData": "暂无漏洞数据"
|
||
}
|
||
},
|
||
"dataTable": {
|
||
"columns": "列",
|
||
"filter": "筛选",
|
||
"selected": "已选择 {count} 项",
|
||
"noResults": "没有找到结果",
|
||
"selectAll": "全选",
|
||
"deselectAll": "取消全选",
|
||
"showColumns": "显示列",
|
||
"hideColumns": "隐藏列",
|
||
"sortAsc": "升序",
|
||
"sortDesc": "降序",
|
||
"clearSort": "清除排序",
|
||
"clearFilter": "清除筛选"
|
||
},
|
||
"filter": {
|
||
"fields": {
|
||
"ip": "IP 地址",
|
||
"port": "端口号",
|
||
"host": "主机名",
|
||
"domain": "域名",
|
||
"url": "完整 URL",
|
||
"status": "HTTP 状态码",
|
||
"title": "页面标题",
|
||
"source": "数据来源",
|
||
"path": "URL 路径",
|
||
"severity": "漏洞严重程度",
|
||
"name": "名称",
|
||
"type": "类型"
|
||
},
|
||
"syntax": {
|
||
"operators": "操作符",
|
||
"containsFuzzy": "包含(模糊)",
|
||
"exactMatch": "精确匹配",
|
||
"notEquals": "不等于",
|
||
"logic": "逻辑",
|
||
"matchAny": "匹配任意",
|
||
"matchAll": "匹配全部"
|
||
},
|
||
"groups": {
|
||
"activeFilters": "当前过滤条件",
|
||
"availableFields": "可用字段",
|
||
"syntax": "语法",
|
||
"examples": "示例"
|
||
},
|
||
"empty": "输入以过滤...",
|
||
"descriptions": {
|
||
"directoryUrl": "目录 URL",
|
||
"subdomainName": "子域名",
|
||
"endpointUrl": "端点 URL",
|
||
"vulnType": "漏洞类型",
|
||
"scannerSource": "扫描器来源"
|
||
}
|
||
},
|
||
"validation": {
|
||
"required": "此字段为必填项",
|
||
"invalidEmail": "请输入有效的邮箱地址",
|
||
"invalidUrl": "请输入有效的 URL",
|
||
"invalidDomain": "请输入有效的域名",
|
||
"invalidIp": "请输入有效的 IP 地址",
|
||
"minLength": "最少需要 {min} 个字符",
|
||
"maxLength": "最多允许 {max} 个字符",
|
||
"minValue": "最小值为 {min}",
|
||
"maxValue": "最大值为 {max}",
|
||
"pattern": "格式不正确"
|
||
},
|
||
"auth": {
|
||
"title": "XingRin - 星环",
|
||
"subtitle": "自动化资产发现与漏洞扫描平台",
|
||
"login": "登录",
|
||
"pageTitle": "登录 - 星环 | 攻击面管理平台",
|
||
"pageDescription": "星环 (XingRin) - 攻击面管理平台 (ASM),提供自动化资产发现与漏洞扫描",
|
||
"loggingIn": "登录中...",
|
||
"logout": "退出登录",
|
||
"username": "用户名",
|
||
"usernamePlaceholder": "请输入账户名",
|
||
"password": "密码",
|
||
"passwordPlaceholder": "请输入密码",
|
||
"rememberMe": "记住我",
|
||
"forgotPassword": "忘记密码",
|
||
"loginSuccess": "登录成功",
|
||
"loginFailed": "登录失败",
|
||
"logoutSuccess": "已退出登录",
|
||
"sessionExpired": "会话已过期,请重新登录",
|
||
"changePassword": {
|
||
"title": "修改密码",
|
||
"desc": "请输入当前密码和新密码",
|
||
"currentPassword": "当前密码",
|
||
"newPassword": "新密码",
|
||
"confirmPassword": "确认新密码",
|
||
"passwordMismatch": "新密码与确认密码不一致",
|
||
"passwordTooShort": "新密码长度至少 {min} 位",
|
||
"cancel": "取消",
|
||
"save": "保存",
|
||
"saving": "保存中..."
|
||
}
|
||
},
|
||
"organization": {
|
||
"title": "组织管理",
|
||
"name": "组织名称",
|
||
"description": "描述",
|
||
"addOrganization": "添加组织",
|
||
"createOrganization": "创建组织",
|
||
"editOrganization": "编辑组织",
|
||
"deleteOrganization": "删除组织",
|
||
"searchPlaceholder": "搜索组织名称...",
|
||
"noResults": "暂无组织",
|
||
"targetCount": "目标数量",
|
||
"notFound": "组织不存在",
|
||
"notFoundDesc": "未找到ID为 {id} 的组织",
|
||
"noDescription": "暂无描述",
|
||
"createdAt": "创建于 {date}",
|
||
"targetCountLabel": "{count} 个目标",
|
||
"dialog": {
|
||
"addTitle": "添加新组织",
|
||
"addDesc": "填写组织信息以添加到系统中。可以同时添加目标。标有 * 的字段为必填项。",
|
||
"editTitle": "编辑组织",
|
||
"editDesc": "修改组织的基本信息。标有 * 的字段为必填项。",
|
||
"addButton": "添加组织",
|
||
"orgName": "组织名称",
|
||
"orgNamePlaceholder": "请输入组织名称",
|
||
"orgDesc": "组织描述",
|
||
"orgDescPlaceholder": "请输入组织描述(可选)",
|
||
"addTargets": "添加目标(可选)",
|
||
"targetsPlaceholder": "请输入目标,每行一个\n支持域名、IP、CIDR\n例如:\nexample.com\n192.168.1.1\n10.0.0.0/8",
|
||
"targetCount": "{count} 个目标",
|
||
"invalidCount": "{count} 个无效",
|
||
"invalidExample": "例如 第 {line} 行: \"{target}\" - {error}",
|
||
"cancel": "取消",
|
||
"create": "创建组织",
|
||
"creating": "创建组织中...",
|
||
"creatingTargets": "批量创建目标中...",
|
||
"update": "更新组织",
|
||
"updating": "更新中...",
|
||
"reset": "重置",
|
||
"changesDetected": "检测到变更,点击更新保存修改",
|
||
"characters": "{count}/{max} 字符"
|
||
},
|
||
"validation": {
|
||
"nameMin": "组织名称至少需要 {min} 个字符",
|
||
"nameMax": "组织名称不能超过 {max} 个字符",
|
||
"descMax": "描述不能超过 {max} 个字符",
|
||
"targetInvalid": "目标格式无效"
|
||
},
|
||
"linkTarget": {
|
||
"title": "添加目标到组织",
|
||
"description": "输入目标并关联到 \"{name}\"。支持批量添加,每行一个目标。标有 * 的字段为必填项。",
|
||
"targetLabel": "目标",
|
||
"organizationLabel": "所属组织",
|
||
"placeholder": "请输入目标,每行一个\n支持域名、IP、CIDR\n例如:\nexample.com\n192.168.1.1\n10.0.0.0/8",
|
||
"targetCount": "{count} 个目标",
|
||
"invalidCount": "{count} 个无效",
|
||
"invalidExample": "例如 第 {line} 行: \"{target}\" - {error}",
|
||
"creating": "创建中...",
|
||
"createTarget": "创建目标",
|
||
"validation": {
|
||
"required": "请输入至少一个目标",
|
||
"invalidFormat": "目标格式无效"
|
||
}
|
||
}
|
||
},
|
||
"target": {
|
||
"title": "目标管理",
|
||
"name": "目标名称",
|
||
"domain": "域名",
|
||
"description": "描述",
|
||
"addTarget": "添加目标",
|
||
"createTarget": "创建目标",
|
||
"editTarget": "编辑目标",
|
||
"deleteTarget": "删除目标",
|
||
"organization": "所属组织",
|
||
"types": {
|
||
"domain": "域名",
|
||
"ip": "IP",
|
||
"cidr": "CIDR"
|
||
},
|
||
"dialog": {
|
||
"addTitle": "添加目标",
|
||
"addDesc": "输入目标并关联到组织。支持批量添加,每行一个目标。标有 * 的字段为必填项。",
|
||
"targetList": "目标列表",
|
||
"targetPlaceholder": "请输入目标,每行一个\n支持域名、IP、CIDR\n例如:\nexample.com\n192.168.1.1\n10.0.0.0/8",
|
||
"targetCount": "{count} 个目标",
|
||
"invalidCount": "{count} 个无效目标,例如 第 {line} 行: \"{target}\" - {error}",
|
||
"invalidFormat": "目标格式无效",
|
||
"linkOrganization": "关联组织(可选)",
|
||
"selectOrganization": "请选择组织",
|
||
"searchOrganization": "搜索组织...",
|
||
"noOrganization": "未找到组织",
|
||
"loading": "加载中...",
|
||
"orgPagination": "共 {total} 个组织 · 第 {page} / {totalPages} 页",
|
||
"perPage": "每页:",
|
||
"creating": "创建中...",
|
||
"addTarget": "添加目标"
|
||
}
|
||
},
|
||
"scan": {
|
||
"title": "扫描",
|
||
"startScan": "开始扫描",
|
||
"stopScan": "停止扫描",
|
||
"scanType": "扫描类型",
|
||
"scanStatus": "扫描状态",
|
||
"scanProgress": "扫描进度",
|
||
"scanResult": "扫描结果",
|
||
"editTask": "编辑任务",
|
||
"initiate": {
|
||
"title": "发起扫描",
|
||
"targetDesc": "为目标",
|
||
"orgDesc": "为组织",
|
||
"selectEngine": "选择扫描引擎",
|
||
"selectEngineTitle": "选择引擎",
|
||
"selectEngineHint": "选择左侧引擎查看配置详情",
|
||
"loading": "加载中...",
|
||
"loadFailed": "加载失败",
|
||
"noEngines": "暂无可用引擎",
|
||
"capabilities": "{count} 项能力",
|
||
"noConfig": "无配置",
|
||
"initiating": "发起中...",
|
||
"startScan": "开始扫描",
|
||
"selectedCount": "已选择 {count} 个引擎"
|
||
},
|
||
"cron": {
|
||
"everyMinute": "每分钟",
|
||
"everyNMinutes": "每 {n} 分钟",
|
||
"everyHour": "每小时 {minute}分",
|
||
"everyNHours": "每 {n} 小时 {minute}分",
|
||
"everyDay": "每天 {time}",
|
||
"everyWeek": "每{day} {time}",
|
||
"everyMonth": "每月{day}号 {time}",
|
||
"weekdays": ["周日", "周一", "周二", "周三", "周四", "周五", "周六"]
|
||
},
|
||
"history": {
|
||
"title": "扫描历史",
|
||
"description": "查看和管理所有扫描任务记录",
|
||
"startTime": "开始时间",
|
||
"endTime": "结束时间",
|
||
"duration": "耗时",
|
||
"status": "状态",
|
||
"searchPlaceholder": "搜索目标名称...",
|
||
"loadFailed": "加载扫描历史失败",
|
||
"retry": "重试",
|
||
"taskId": "扫描任务 ID:{id}",
|
||
"stats": {
|
||
"totalScans": "总扫描数",
|
||
"running": "进行中",
|
||
"vulnsFound": "发现漏洞",
|
||
"assetsFound": "发现资产",
|
||
"allScanTasks": "所有扫描任务",
|
||
"runningScans": "正在执行的扫描",
|
||
"completedScansFound": "已完成扫描发现",
|
||
"assetTypes": "子域名 + IP + 端点 + 网站",
|
||
"all": "全部"
|
||
}
|
||
},
|
||
"progress": {
|
||
"title": "扫描进度",
|
||
"target": "目标",
|
||
"engine": "引擎",
|
||
"startTime": "开始时间",
|
||
"status": "状态",
|
||
"errorReason": "错误原因",
|
||
"totalProgress": "总进度",
|
||
"status_running": "扫描中",
|
||
"status_cancelled": "已取消",
|
||
"status_completed": "已完成",
|
||
"status_failed": "失败",
|
||
"status_initiated": "等待中",
|
||
"stage_running": "进行中",
|
||
"stage_pending": "等待中",
|
||
"stage_failed": "失败",
|
||
"stage_cancelled": "已取消",
|
||
"stages": {
|
||
"subdomainDiscovery": "子域名发现",
|
||
"portScan": "端口扫描",
|
||
"siteScan": "站点扫描",
|
||
"fingerprintDetect": "指纹识别",
|
||
"directoryScan": "目录扫描",
|
||
"urlFetch": "URL 抓取",
|
||
"vulnScan": "漏洞扫描",
|
||
"subdomain_discovery": "子域名发现",
|
||
"port_scan": "端口扫描",
|
||
"site_scan": "站点扫描",
|
||
"fingerprint_detect": "指纹识别",
|
||
"directory_scan": "目录扫描",
|
||
"url_fetch": "URL 抓取",
|
||
"vuln_scan": "漏洞扫描"
|
||
}
|
||
},
|
||
"scheduled": {
|
||
"title": "定时扫描",
|
||
"description": "配置和管理定时扫描任务",
|
||
"searchPlaceholder": "搜索任务名称...",
|
||
"cronExpression": "Cron 表达式",
|
||
"nextRun": "下次执行",
|
||
"lastRun": "上次执行",
|
||
"enabled": "已启用",
|
||
"disabled": "已禁用",
|
||
"createTitle": "新建定时扫描",
|
||
"createDesc": "配置定时扫描任务,设置执行计划",
|
||
"editTitle": "编辑定时扫描",
|
||
"editDesc": "修改定时扫描任务配置",
|
||
"steps": {
|
||
"basicInfo": "基本信息",
|
||
"scanMode": "扫描模式",
|
||
"selectTarget": "选择目标",
|
||
"scheduleSettings": "调度设置"
|
||
},
|
||
"form": {
|
||
"taskName": "任务名称",
|
||
"taskNamePlaceholder": "例如:每日安全巡检",
|
||
"taskNameDesc": "为定时任务设置一个易于识别的名称",
|
||
"taskNameRequired": "请输入任务名称",
|
||
"scanEngine": "扫描引擎",
|
||
"scanEnginePlaceholder": "选择扫描引擎",
|
||
"scanEngineDesc": "选择要使用的扫描引擎配置",
|
||
"scanEngineRequired": "请选择扫描引擎",
|
||
"selectScanMode": "选择扫描模式",
|
||
"organizationScan": "组织扫描",
|
||
"organizationScanDesc": "选择组织,执行时动态获取其下所有目标",
|
||
"targetScan": "目标扫描",
|
||
"targetScanDesc": "选择固定的目标列表进行扫描",
|
||
"organizationScanHint": "组织扫描:每次执行时会动态获取组织下的所有目标,新增的目标也会被扫描",
|
||
"targetScanHint": "目标扫描:扫描固定的目标列表,后续新增的目标不会被扫描",
|
||
"selectOrganization": "选择组织",
|
||
"selectTarget": "选择扫描目标",
|
||
"searchOrganization": "搜索组织名称...",
|
||
"searchTarget": "搜索目标名称...",
|
||
"noOrganization": "未找到组织",
|
||
"noTarget": "未找到目标",
|
||
"targetCount": "{count} 个目标",
|
||
"selectedOrganization": "已选择组织,执行时将动态扫描该组织下所有目标",
|
||
"selectedTarget": "已选择目标",
|
||
"cronExpression": "Cron 表达式",
|
||
"cronPlaceholder": "分 时 日 月 周(如:0 2 * * *)",
|
||
"cronFormat": "格式:分(0-59) 时(0-23) 日(1-31) 月(1-12) 周(0-6,0=周日)",
|
||
"cronRequired": "Cron 表达式格式错误,需要 5 个部分:分 时 日 月 周",
|
||
"quickSelect": "快捷选择",
|
||
"executionPreview": "执行预览",
|
||
"valid": "有效",
|
||
"nextExecutionTime": "下次执行时间:",
|
||
"upcoming": "(即将执行)",
|
||
"invalidExpression": "无效的表达式",
|
||
"scanScope": "扫描范围",
|
||
"organizationMode": "组织扫描",
|
||
"organizationModeHint": "组织扫描模式下,执行时将动态获取该组织下所有目标",
|
||
"noAvailableTarget": "暂无可用目标",
|
||
"noEngine": "暂无可用引擎",
|
||
"selected": "已选择",
|
||
"selectedEngines": "已选择 {count} 个引擎"
|
||
},
|
||
"presets": {
|
||
"everyHour": "每小时",
|
||
"daily2am": "每天凌晨2点",
|
||
"daily4am": "每天凌晨4点",
|
||
"weekly": "每周一凌晨2点",
|
||
"monthly": "每月1号凌晨2点",
|
||
"everyMinute": "每分钟",
|
||
"every5Minutes": "每5分钟"
|
||
},
|
||
"buttons": {
|
||
"previous": "上一步",
|
||
"next": "下一步",
|
||
"createTask": "创建任务",
|
||
"saveChanges": "保存修改",
|
||
"cancel": "取消"
|
||
},
|
||
"toast": {
|
||
"selectOrganization": "请选择一个组织",
|
||
"selectTarget": "请选择一个扫描目标"
|
||
}
|
||
},
|
||
"engine": {
|
||
"title": "扫描引擎",
|
||
"name": "引擎名称",
|
||
"type": "引擎类型",
|
||
"config": "配置",
|
||
"searchPlaceholder": "搜索引擎...",
|
||
"createEngine": "新建引擎",
|
||
"engineList": "引擎列表",
|
||
"noMatchingEngine": "未找到匹配的引擎",
|
||
"noEngines": "暂无引擎,请先新建",
|
||
"featuresEnabled": "{count} 个功能已启用",
|
||
"featuresCount": "{count} 个功能",
|
||
"updatedAt": "更新于",
|
||
"enabledFeatures": "已启用功能",
|
||
"configPreview": "配置预览",
|
||
"editConfig": "编辑配置",
|
||
"selectEngineHint": "选择左侧引擎查看详情",
|
||
"features": {
|
||
"subdomain_discovery": "子域名发现",
|
||
"port_scan": "端口扫描",
|
||
"site_scan": "站点扫描",
|
||
"fingerprint_detect": "指纹识别",
|
||
"directory_scan": "目录扫描",
|
||
"url_fetch": "URL 抓取",
|
||
"vuln_scan": "漏洞扫描"
|
||
},
|
||
"create": {
|
||
"title": "新建扫描引擎",
|
||
"desc": "创建新的扫描引擎配置,使用 Monaco Editor 编辑 YAML 配置文件,支持语法高亮、自动补全和错误提示。",
|
||
"engineName": "引擎名称",
|
||
"engineNamePlaceholder": "请输入引擎名称,例如:全面扫描引擎",
|
||
"yamlConfig": "YAML 配置",
|
||
"syntaxError": "语法错误",
|
||
"syntaxValid": "语法正确",
|
||
"loadingEditor": "加载编辑器...",
|
||
"errorLocation": "第 {line} 行,第 {column} 列",
|
||
"confirmClose": "您有未保存的更改,确定要关闭吗?",
|
||
"creating": "创建中...",
|
||
"createEngine": "创建引擎"
|
||
},
|
||
"edit": {
|
||
"title": "编辑引擎配置 - {name}",
|
||
"desc": "使用 Monaco Editor 编辑引擎的 YAML 配置文件,支持语法高亮、自动补全和错误提示。",
|
||
"yamlConfig": "YAML 配置",
|
||
"syntaxError": "语法错误",
|
||
"syntaxValid": "语法正确",
|
||
"loadingEditor": "加载编辑器...",
|
||
"errorLocation": "第 {line} 行,第 {column} 列",
|
||
"unsavedChanges": "您有未保存的更改",
|
||
"confirmClose": "您有未保存的更改,确定要关闭吗?",
|
||
"saving": "保存中...",
|
||
"saveConfig": "保存配置"
|
||
}
|
||
}
|
||
},
|
||
"vulnerability": {
|
||
"title": "漏洞",
|
||
"name": "漏洞名称",
|
||
"severity": "严重程度",
|
||
"critical": "严重",
|
||
"high": "高危",
|
||
"medium": "中危",
|
||
"low": "低危",
|
||
"info": "信息",
|
||
"status": "状态",
|
||
"open": "待处理",
|
||
"confirmed": "已确认",
|
||
"fixed": "已修复",
|
||
"falsePositive": "误报",
|
||
"description": "描述",
|
||
"solution": "解决方案",
|
||
"reference": "参考链接"
|
||
},
|
||
"tools": {
|
||
"title": "工具",
|
||
"wordlists": {
|
||
"title": "字典管理",
|
||
"name": "字典名称",
|
||
"type": "类型",
|
||
"count": "条目数",
|
||
"upload": "上传字典",
|
||
"download": "下载字典",
|
||
"uploadDialog": {
|
||
"title": "上传字典",
|
||
"desc": "上传字典文件,后端保存后由各个 Worker 按需下载使用",
|
||
"dragHint": "拖拽文件到此处",
|
||
"selectFile": "选择文件",
|
||
"fileHint": "支持 .txt 文件,最大 50MB",
|
||
"namePlaceholder": "例如:常用目录字典",
|
||
"descPlaceholder": "例如:基于 dirsearch",
|
||
"descLabel": "描述(可选)",
|
||
"cancel": "取消",
|
||
"uploading": "上传中...",
|
||
"uploadButton": "上传字典"
|
||
},
|
||
"editDialog": {
|
||
"title": "编辑字典 - {name}",
|
||
"desc": "编辑字典内容,每行一个条目。保存后会自动更新行数、文件大小和 Hash 值。",
|
||
"content": "字典内容",
|
||
"lines": "共 {count} 行",
|
||
"hash": "Hash",
|
||
"loading": "加载字典内容...",
|
||
"loadingEditor": "加载编辑器...",
|
||
"unsavedChanges": "您有未保存的更改",
|
||
"confirmClose": "您有未保存的更改,确定要关闭吗?",
|
||
"cancel": "取消",
|
||
"saving": "保存中...",
|
||
"save": "保存字典"
|
||
}
|
||
},
|
||
"fingerprints": {
|
||
"title": "指纹管理",
|
||
"name": "指纹名称",
|
||
"category": "分类",
|
||
"import": "导入指纹",
|
||
"export": "导出指纹",
|
||
"pageDescription": "Web 指纹识别规则管理",
|
||
"helpText": "• EHole: 红队资产识别工具,支持关键词、favicon hash 等识别方式\n• Goby: 攻击面测绘工具,包含大量 Web 应用和设备指纹\n• Wappalyzer: 浏览器扩展,可识别网站使用的技术栈\n• Fingers: HTTP 指纹库,包含详细的规则匹配\n• FingerPrintHub: Nuclei 风格指纹模板,使用 HTTP 匹配器\n• ARL: 资产侦察灯塔指纹规则,YAML 格式",
|
||
"actions": {
|
||
"operations": "操作",
|
||
"exportAll": "导出所有指纹",
|
||
"deleteSelected": "删除选中",
|
||
"deleteAll": "删除所有",
|
||
"addFingerprint": "添加指纹",
|
||
"addSingle": "单条添加",
|
||
"importFile": "文件导入"
|
||
},
|
||
"dialogs": {
|
||
"exportTitle": "导出所有指纹",
|
||
"exportDesc": "将导出所有 {count} 条指纹数据为 JSON 文件。",
|
||
"deleteSelectedTitle": "删除选中指纹",
|
||
"deleteSelectedDesc": "确定要删除选中的 {count} 条指纹吗?此操作不可撤销。",
|
||
"deleteAllTitle": "删除所有指纹",
|
||
"deleteAllDesc": "确定要删除所有 {count} 条指纹吗?此操作不可撤销。",
|
||
"confirmExport": "确认导出",
|
||
"confirmDelete": "确认删除"
|
||
},
|
||
"ehole": {
|
||
"addTitle": "添加 EHole 指纹",
|
||
"editTitle": "编辑 EHole 指纹",
|
||
"addDesc": "添加新的指纹规则",
|
||
"editDesc": "修改指纹规则配置"
|
||
},
|
||
"goby": {
|
||
"addTitle": "添加 Goby 指纹",
|
||
"editTitle": "编辑 Goby 指纹",
|
||
"addDesc": "添加新的指纹规则",
|
||
"editDesc": "修改指纹规则配置"
|
||
},
|
||
"wappalyzer": {
|
||
"addTitle": "添加 Wappalyzer 指纹",
|
||
"editTitle": "编辑 Wappalyzer 指纹",
|
||
"addDesc": "添加新的指纹规则",
|
||
"editDesc": "修改指纹规则配置"
|
||
},
|
||
"fingers": {
|
||
"addTitle": "添加 Fingers 指纹",
|
||
"editTitle": "编辑 Fingers 指纹",
|
||
"addDesc": "添加新的 HTTP 指纹规则",
|
||
"editDesc": "修改指纹规则配置"
|
||
},
|
||
"fingerprinthub": {
|
||
"addTitle": "添加 FingerPrintHub 指纹",
|
||
"editTitle": "编辑 FingerPrintHub 指纹",
|
||
"addDesc": "添加新的 Nuclei 风格指纹模板",
|
||
"editDesc": "修改指纹模板配置"
|
||
},
|
||
"arl": {
|
||
"addTitle": "添加 ARL 指纹",
|
||
"editTitle": "编辑 ARL 指纹",
|
||
"addDesc": "添加新的 ARL 指纹规则",
|
||
"editDesc": "修改指纹规则配置"
|
||
},
|
||
"toast": {
|
||
"createSuccess": "创建成功",
|
||
"updateSuccess": "更新成功",
|
||
"createFailed": "创建失败",
|
||
"updateFailed": "更新失败",
|
||
"exportSuccess": "导出成功",
|
||
"exportFailed": "导出失败",
|
||
"deleteSuccess": "删除成功:{count} 条",
|
||
"deleteFailed": "删除失败"
|
||
},
|
||
"form": {
|
||
"cmsPlaceholder": "如:WordPress、Nginx",
|
||
"cmsRequired": "CMS 名称不能为空",
|
||
"keywordPlaceholder": "多个关键词用逗号分隔",
|
||
"keywordRequired": "关键词不能为空",
|
||
"typePlaceholder": "如:CMS、Server",
|
||
"namePlaceholder": "如:Apache、Nginx",
|
||
"nameRequired": "产品名称不能为空",
|
||
"logicPlaceholder": "如:a||b、(a&&b)||c",
|
||
"logicRequired": "逻辑表达式不能为空",
|
||
"featurePlaceholder": "匹配特征",
|
||
"appNamePlaceholder": "如:WordPress、React",
|
||
"appNameRequired": "应用名称不能为空",
|
||
"catsPlaceholder": "如:1, 6, 12",
|
||
"descPlaceholder": "应用描述",
|
||
"detectionRules": "检测规则",
|
||
"detectionRulesHint": "JSON 格式使用对象,数组格式用逗号分隔",
|
||
"jsVariables": "JS 变量",
|
||
"metaTags": "Meta 标签",
|
||
"htmlContent": "HTML 内容",
|
||
"implies": "依赖",
|
||
"cookies": "Cookies (JSON)",
|
||
"headers": "Headers (JSON)",
|
||
"scriptUrl": "脚本 URL",
|
||
"location": "位置",
|
||
"mark": "标记",
|
||
"name": "名称",
|
||
"fpId": "指纹 ID",
|
||
"fpIdPlaceholder": "如:wordpress-detect",
|
||
"fpIdRequired": "指纹 ID 不能为空",
|
||
"author": "作者",
|
||
"authorPlaceholder": "如:security-team",
|
||
"severity": "严重程度",
|
||
"tags": "标签",
|
||
"tagsPlaceholder": "如:cms, wordpress, php",
|
||
"http": "HTTP 匹配规则",
|
||
"httpPlaceholder": "JSON 数组格式的 HTTP 匹配规则",
|
||
"httpRequired": "HTTP 匹配规则不能为空",
|
||
"httpArrayRequired": "HTTP 必须是数组格式",
|
||
"httpJsonInvalid": "HTTP JSON 格式无效",
|
||
"metadata": "元数据",
|
||
"metadataPlaceholder": "JSON 对象格式的元数据",
|
||
"metadataObjectRequired": "元数据必须是对象格式",
|
||
"metadataJsonInvalid": "元数据 JSON 格式无效",
|
||
"sourceFile": "来源文件",
|
||
"sourceFilePlaceholder": "如:wordpress.yaml",
|
||
"link": "参考链接",
|
||
"linkPlaceholder": "如:https://example.com/docs",
|
||
"rule": "匹配规则",
|
||
"rulePlaceholder": "JSON 数组格式的匹配规则",
|
||
"ruleRequired": "匹配规则不能为空",
|
||
"ruleArrayRequired": "规则必须是数组格式",
|
||
"ruleJsonInvalid": "规则 JSON 格式无效",
|
||
"tag": "标签",
|
||
"tagPlaceholder": "如:cms, framework(逗号分隔)",
|
||
"focusLabel": "标记为重点",
|
||
"defaultPort": "默认端口",
|
||
"defaultPortPlaceholder": "如:80, 443, 8080(逗号分隔)",
|
||
"arlNamePlaceholder": "如:Nginx、Apache",
|
||
"arlRule": "ARL 规则",
|
||
"arlRulePlaceholder": "body=\"nginx\" || header=\"nginx\"",
|
||
"arlRuleRequired": "ARL 规则不能为空",
|
||
"arlRuleHint": "支持 body、header、title 等匹配方式,使用 || 和 && 组合条件"
|
||
},
|
||
"loadFailed": "加载失败",
|
||
"loadError": "加载指纹数据时出现错误",
|
||
"reload": "重新加载",
|
||
"filter": {
|
||
"ehole": {
|
||
"cms": "产品/CMS名称",
|
||
"method": "匹配方式 (keyword, faviconhash...)",
|
||
"location": "匹配位置 (body, header, title)",
|
||
"type": "分类",
|
||
"isImportant": "是否重点资产 (true/false)"
|
||
},
|
||
"goby": {
|
||
"product": "产品名称",
|
||
"logic": "逻辑表达式"
|
||
},
|
||
"wappalyzer": {
|
||
"name": "应用名称",
|
||
"description": "应用描述",
|
||
"website": "官网地址",
|
||
"cpe": "CPE 标识符",
|
||
"implies": "依赖项 (如 PHP, MySQL)"
|
||
},
|
||
"fingers": {
|
||
"name": "指纹名称",
|
||
"link": "参考链接",
|
||
"tag": "标签",
|
||
"focus": "重点标记 (true/false)",
|
||
"defaultPort": "默认端口"
|
||
},
|
||
"fingerprinthub": {
|
||
"fpId": "指纹 ID",
|
||
"name": "指纹名称",
|
||
"author": "作者",
|
||
"tags": "标签",
|
||
"severity": "严重程度"
|
||
},
|
||
"arl": {
|
||
"name": "指纹名称",
|
||
"rule": "规则内容"
|
||
}
|
||
},
|
||
"import": {
|
||
"eholeTitle": "导入 EHole 指纹",
|
||
"eholeDesc": "上传 EHole 格式的指纹文件",
|
||
"eholeFormatHint": "{\"fingerprint\": [...]}",
|
||
"eholeInvalidMissing": "无效的 EHole 格式:缺少 fingerprint 字段",
|
||
"eholeInvalidArray": "无效的 EHole 格式:fingerprint 必须是数组",
|
||
"eholeInvalidFields": "无效的 EHole 格式:指纹缺少必要字段 (cms, keyword)",
|
||
"gobyTitle": "导入 Goby 指纹",
|
||
"gobyDesc": "上传 Goby 格式的指纹文件",
|
||
"gobyFormatHint": "[{...}] 或 {...}",
|
||
"gobyInvalidFields": "无效的 Goby 格式:指纹缺少必要字段 (product, rule)",
|
||
"gobyInvalidFormat": "无效的 Goby 格式:必须是数组或对象",
|
||
"wappalyzerTitle": "导入 Wappalyzer 指纹",
|
||
"wappalyzerDesc": "上传 Wappalyzer 格式的指纹文件",
|
||
"wappalyzerFormatHint": "{\"apps\": {...}} 或 [{...}]",
|
||
"wappalyzerInvalidApps": "无效的 Wappalyzer 格式:apps/technologies 必须是对象",
|
||
"wappalyzerInvalidFormat": "无效的 Wappalyzer 格式",
|
||
"fingersTitle": "导入 Fingers 指纹",
|
||
"fingersDesc": "上传 Fingers 格式的指纹文件",
|
||
"fingersFormatHint": "[{\"name\": ..., \"rule\": [...]}]",
|
||
"fingersInvalidFormat": "无效的 Fingers 格式:必须是数组",
|
||
"fingersInvalidArray": "无效的 Fingers 格式:必须是数组",
|
||
"fingersInvalidFields": "无效的 Fingers 格式:指纹缺少必要字段 (name, rule)",
|
||
"fingerprinthubTitle": "导入 FingerPrintHub 指纹",
|
||
"fingerprinthubDesc": "上传 FingerPrintHub 格式的指纹文件",
|
||
"fingerprinthubFormatHint": "[{\"id\": ..., \"info\": {...}, \"http\": [...]}]",
|
||
"fingerprinthubInvalidFormat": "无效的 FingerPrintHub 格式:必须是数组",
|
||
"fingerprinthubInvalidArray": "无效的 FingerPrintHub 格式:必须是数组",
|
||
"fingerprinthubInvalidFields": "无效的 FingerPrintHub 格式:指纹缺少必要字段",
|
||
"arlTitle": "导入 ARL 指纹",
|
||
"arlDesc": "上传 ARL 格式的指纹文件",
|
||
"arlFormatHint": "YAML 格式,包含 name 和 rule 字段",
|
||
"arlInvalidFormat": "无效的 ARL 格式",
|
||
"arlInvalidArray": "无效的 ARL 格式:必须是数组",
|
||
"arlInvalidFields": "无效的 ARL 格式:指纹缺少必要字段 (name, rule)",
|
||
"emptyData": "指纹数据为空",
|
||
"supportedFormat": "支持的格式:",
|
||
"importing": "导入中...",
|
||
"importSuccessDetail": "导入成功:创建 {created} 条,失败 {failed} 条"
|
||
}
|
||
},
|
||
"nuclei": {
|
||
"title": "Nuclei 模板",
|
||
"templateName": "模板名称",
|
||
"author": "作者",
|
||
"severity": "严重程度",
|
||
"tags": "标签",
|
||
"selectTemplate": "选择左侧模板查看内容",
|
||
"useSearch": "或使用搜索快速定位",
|
||
"back": "返回",
|
||
"searchPlaceholder": "搜索模板...",
|
||
"syncing": "同步中...",
|
||
"sync": "同步",
|
||
"templateDirectory": "模板目录",
|
||
"templateCount": "{count} 个模板",
|
||
"noMatchingTemplate": "未找到匹配的模板",
|
||
"noTemplateOrLoadFailed": "暂无模板或加载失败",
|
||
"repoName": "仓库 #{id}"
|
||
},
|
||
"config": {
|
||
"addTool": "添加工具",
|
||
"editTool": "编辑工具",
|
||
"addNewTool": "添加新工具",
|
||
"addCustomTool": "添加自定义工具",
|
||
"editCustomTool": "编辑自定义工具",
|
||
"dialogDesc": "配置扫描工具的基本信息和执行命令。标有 * 的字段为必填项。",
|
||
"customDialogDesc": "配置自定义扫描工具的基本信息。标有 * 的字段为必填项。",
|
||
"basicInfo": "基本信息",
|
||
"commandConfig": "命令配置",
|
||
"toolName": "工具名称",
|
||
"toolNamePlaceholder": "例如: Nuclei, Subfinder, HTTPX",
|
||
"toolNameMin": "工具名称至少需要 2 个字符",
|
||
"toolNameMax": "工具名称不能超过 255 个字符",
|
||
"repoUrl": "仓库地址",
|
||
"repoUrlPlaceholder": "https://github.com/projectdiscovery/nuclei",
|
||
"currentVersion": "当前安装版本",
|
||
"versionPlaceholder": "v3.0.0",
|
||
"toolDesc": "工具描述",
|
||
"toolDescPlaceholder": "描述工具的功能、特点和使用场景...",
|
||
"categoryTags": "分类标签",
|
||
"noCategories": "暂无可用分类",
|
||
"installCommand": "安装命令",
|
||
"installCommandPlaceholder": "git clone https://github.com/user/tool\n或\ngo install -v github.com/tool@latest",
|
||
"installCommandRequired": "安装命令不能为空",
|
||
"installCommandHint": "示例:",
|
||
"installCommandGit": "使用 git:",
|
||
"installCommandGo": "使用 go:",
|
||
"installCommandNote": "注意:go get 已不再支持,请使用 go install",
|
||
"updateCommand": "更新命令",
|
||
"updateCommandPlaceholder": "git pull\n或\ngo install -v github.com/tool@latest",
|
||
"updateCommandRequired": "更新命令不能为空",
|
||
"updateCommandGitHint": "使用 git clone 安装的工具,推荐使用",
|
||
"updateCommandGoHint": "使用 go install 安装的工具,推荐使用相同的安装命令",
|
||
"versionCommand": "版本查询命令",
|
||
"versionCommandPlaceholder": "toolname --version",
|
||
"versionCommandRequired": "版本查询命令不能为空",
|
||
"versionCommandAutoGenerated": "已自动生成",
|
||
"versionCommandHint": "系统会使用此命令检查工具版本并提示更新。常见格式:",
|
||
"characters": "{count}/{max} 字符",
|
||
"cancel": "取消",
|
||
"creating": "创建中...",
|
||
"saving": "保存中...",
|
||
"createTool": "创建工具",
|
||
"saveChanges": "保存修改",
|
||
"customToolNamePlaceholder": "例如:自定义端口扫描",
|
||
"customToolDescPlaceholder": "描述工具的功能和用途...",
|
||
"toolPath": "工具路径",
|
||
"toolPathPlaceholder": "例如:/opt/security-tools/port-scanner",
|
||
"toolPathHint": "脚本或工具所在的目录路径",
|
||
"repository": "仓库",
|
||
"uncategorized": "未分类",
|
||
"noDescription": "暂无描述",
|
||
"checking": "检查中...",
|
||
"checkUpdate": "检查更新",
|
||
"noTools": "暂无工具",
|
||
"noCustomTools": "暂无自定义工具",
|
||
"directory": "目录"
|
||
},
|
||
"commands": {
|
||
"searchPlaceholder": "搜索命令名称..."
|
||
}
|
||
},
|
||
"settings": {
|
||
"title": "设置",
|
||
"workers": {
|
||
"title": "扫描节点",
|
||
"name": "节点名称",
|
||
"status": "状态",
|
||
"online": "在线",
|
||
"offline": "离线",
|
||
"lastSeen": "最后在线",
|
||
"addWorker": "添加节点",
|
||
"editWorker": "编辑扫描节点",
|
||
"addWorkerTitle": "添加扫描节点",
|
||
"addWorkerDesc": "输入远程 VPS 的 SSH 连接信息,添加后可通过「管理部署」一键部署扫描环境",
|
||
"editWorkerDesc": "修改节点的 SSH 连接信息",
|
||
"noWorkers": "暂无扫描节点",
|
||
"noWorkersDesc": "添加远程 VPS 服务器作为扫描节点,开始使用分布式扫描功能,提升扫描效率",
|
||
"addFirstWorker": "添加第一个节点",
|
||
"confirmDelete": "确认删除",
|
||
"confirmDeleteDesc": "确定要删除 Worker 节点 \"{name}\" 吗?此操作不可恢复。",
|
||
"confirmUninstall": "确认卸载",
|
||
"confirmUninstallDesc": "确定要在远程主机上卸载 Agent 并删除相关容器吗?此操作不会卸载 Docker。",
|
||
"workerNodes": "Worker 节点",
|
||
"workerNodesDesc": "管理分布式扫描节点,支持远程部署和监控",
|
||
"local": "本地",
|
||
"memory": "内存",
|
||
"manageDeploy": "管理部署",
|
||
"edit": "编辑",
|
||
"delete": "删除",
|
||
"learnMore": "了解更多",
|
||
"gotIt": "知道了",
|
||
"stats": {
|
||
"total": "总节点",
|
||
"online": "在线",
|
||
"offline": "离线",
|
||
"pending": "等待部署"
|
||
},
|
||
"status": {
|
||
"online": "在线",
|
||
"offline": "离线",
|
||
"pending": "等待部署",
|
||
"deploying": "部署中",
|
||
"updating": "更新中",
|
||
"outdated": "版本过低"
|
||
},
|
||
"helpDialog": {
|
||
"title": "什么是分布式扫描?",
|
||
"desc": "分布式扫描允许你将扫描任务分发到多个远程服务器(扫描节点)上并行执行,显著提高扫描效率。"
|
||
},
|
||
"banner": {
|
||
"title": "分布式扫描:",
|
||
"desc": "添加 VPS 节点 → 一键部署 → 任务自动分发"
|
||
},
|
||
"steps": {
|
||
"step1Title": "添加扫描节点",
|
||
"step1Desc": "点击\"添加节点\"按钮,填写 VPS 服务器的 SSH 连接信息(IP、端口、用户名、密码)",
|
||
"step2Title": "部署扫描环境",
|
||
"step2Desc": "点击\"管理部署\"按钮,系统会自动通过 SSH 在远程服务器上安装 Docker 和心跳agent",
|
||
"step3Title": "自动任务分发",
|
||
"step3Desc": "部署完成后节点会自动上报心跳,扫描任务将根据负载自动分发到各节点并行执行"
|
||
},
|
||
"form": {
|
||
"workerName": "节点名称",
|
||
"workerNamePlaceholder": "例如: 扫描节点-1",
|
||
"workerNameDesc": "用于识别节点的名称",
|
||
"nameRequired": "请输入节点名称",
|
||
"nameTooLong": "名称不能超过100个字符",
|
||
"hostIp": "IP 地址",
|
||
"hostIpPlaceholder": "例如: 192.168.1.100",
|
||
"ipRequired": "请输入 IP 地址",
|
||
"ipInvalid": "请输入有效的 IP 地址",
|
||
"ipNotEditable": "IP 地址不可修改",
|
||
"sshPort": "SSH 端口",
|
||
"username": "用户名",
|
||
"usernameRequired": "请输入用户名",
|
||
"usernamePlaceholder": "例如: root",
|
||
"password": "SSH 密码",
|
||
"passwordPlaceholder": "输入 SSH 密码",
|
||
"passwordRequired": "请输入 SSH 密码",
|
||
"passwordKeepEmpty": "留空保持不变",
|
||
"passwordHint": "密码仅用于部署,不会明文存储",
|
||
"passwordEditHint": "如需修改密码请输入新密码",
|
||
"creating": "创建中...",
|
||
"saving": "保存中...",
|
||
"createWorker": "创建节点",
|
||
"saveChanges": "保存修改"
|
||
},
|
||
"loadFailed": "加载失败",
|
||
"loadError": "加载节点数据时出现错误",
|
||
"terminal": {
|
||
"connected": "已连接",
|
||
"disconnected": "未连接",
|
||
"connecting": "正在建立 SSH 连接...",
|
||
"wsConnected": "WebSocket 已连接",
|
||
"connectionClosed": "连接已关闭",
|
||
"connectionFailed": "连接失败",
|
||
"wsConnectionFailed": "WebSocket 连接失败",
|
||
"waitingConnection": "等待连接...",
|
||
"pendingHint": "节点未部署,点击右侧按钮开始部署扫描环境",
|
||
"deployingHint": "正在部署中,点击查看进度",
|
||
"onlineHint": "节点运行正常",
|
||
"offlineHint": "节点离线,可尝试重新部署",
|
||
"updatingHint": "正在自动更新 Agent...",
|
||
"outdatedHint": "版本过低,需要更新",
|
||
"reconnect": "重新连接",
|
||
"startDeploy": "开始部署",
|
||
"viewProgress": "查看进度",
|
||
"redeploy": "重新部署",
|
||
"uninstall": "卸载"
|
||
}
|
||
},
|
||
"systemLogs": {
|
||
"title": "系统日志",
|
||
"description": "每 2 秒自动刷新一次(轮询模式)",
|
||
"level": "级别",
|
||
"message": "消息",
|
||
"timestamp": "时间",
|
||
"source": "来源",
|
||
"noContent": "(暂无日志内容)",
|
||
"toolbar": {
|
||
"logFile": "日志",
|
||
"selectFile": "选择日志文件",
|
||
"lines": "行数",
|
||
"autoRefresh": "自动刷新",
|
||
"systemLogsGroup": "系统日志",
|
||
"containerLogsGroup": "容器日志"
|
||
}
|
||
},
|
||
"notifications": {
|
||
"title": "通知设置",
|
||
"email": "邮件通知",
|
||
"webhook": "Webhook",
|
||
"enabled": "启用",
|
||
"disabled": "禁用",
|
||
"pageTitle": "通知设置",
|
||
"pageDesc": "配置系统通知的推送渠道和接收偏好",
|
||
"tabs": {
|
||
"channels": "推送渠道",
|
||
"preferences": "通知偏好"
|
||
},
|
||
"discord": {
|
||
"title": "Discord",
|
||
"description": "将通知推送到你的 Discord 频道",
|
||
"webhookLabel": "Webhook URL",
|
||
"webhookPlaceholder": "https://discord.com/api/webhooks/...",
|
||
"webhookHelp": "在 Discord 频道设置中创建 Webhook 并粘贴地址",
|
||
"requiredError": "启用 Discord 时必须填写 Webhook URL",
|
||
"urlInvalid": "请输入有效的 Discord Webhook URL"
|
||
},
|
||
"emailChannel": {
|
||
"title": "邮件",
|
||
"description": "通过邮件接收通知",
|
||
"comingSoon": "即将支持"
|
||
},
|
||
"enterprise": {
|
||
"title": "飞书 / 钉钉 / 企微",
|
||
"description": "推送到企业协作平台"
|
||
},
|
||
"categories": {
|
||
"title": "通知分类",
|
||
"description": "选择你想要接收的通知类型",
|
||
"scan": "扫描任务",
|
||
"scanDesc": "扫描启动、进度、完成、失败等通知",
|
||
"vulnerability": "漏洞发现",
|
||
"vulnerabilityDesc": "发现安全漏洞时通知",
|
||
"asset": "资产发现",
|
||
"assetDesc": "发现新子域名、IP、端口等资产",
|
||
"system": "系统消息",
|
||
"systemDesc": "系统级通知和公告"
|
||
},
|
||
"saveSettings": "保存设置"
|
||
}
|
||
},
|
||
"toast": {
|
||
"copied": "已复制",
|
||
"copyFailed": "复制失败",
|
||
"downloadFailed": "下载失败",
|
||
"deletedScanRecord": "已删除扫描记录: {name}",
|
||
"deleteFailed": "删除失败,请重试",
|
||
"stoppedScan": "已停止扫描任务: {name}",
|
||
"stopFailed": "停止失败,请重试",
|
||
"bulkDeleteSuccess": "已删除 {count} 个扫描记录",
|
||
"bulkDeleteFailed": "批量删除失败,请重试",
|
||
"paramError": "参数错误",
|
||
"paramErrorDesc": "必须提供组织ID或目标ID",
|
||
"scanInitiated": "扫描已发起",
|
||
"scanInitiatedDesc": "成功创建 {count} 个扫描任务",
|
||
"initiateScanFailed": "发起扫描失败",
|
||
"noScansCreated": "未创建任何扫描任务",
|
||
"unknownError": "未知错误",
|
||
"engineNameRequired": "请输入引擎名称",
|
||
"configRequired": "配置内容不能为空",
|
||
"yamlSyntaxError": "YAML 语法错误",
|
||
"engineCreateSuccess": "引擎创建成功",
|
||
"engineCreateSuccessDesc": "引擎 \"{name}\" 已成功创建",
|
||
"engineCreateFailed": "引擎创建失败",
|
||
"configSaveSuccess": "配置保存成功",
|
||
"configSaveSuccessDesc": "引擎 \"{name}\" 的配置已更新",
|
||
"configSaveFailed": "配置保存失败",
|
||
"selectFileFirst": "请先选择文件",
|
||
"invalidJsonFile": "无效的 JSON 文件",
|
||
"importSuccess": "导入成功",
|
||
"importFailed": "导入失败",
|
||
"loadScanHistoryFailed": "加载扫描历史失败",
|
||
"scan": {
|
||
"quick": {
|
||
"success": "已启动 {count} 个扫描任务",
|
||
"error": "启动扫描失败"
|
||
},
|
||
"stop": {
|
||
"success": "扫描已停止,已撤销 {count} 个任务"
|
||
},
|
||
"delete": {
|
||
"success": "已删除扫描任务: {name}",
|
||
"bulkSuccess": "已删除 {count} 个扫描任务"
|
||
},
|
||
"initiate": {
|
||
"success": "扫描发起成功",
|
||
"error": "发起扫描失败"
|
||
}
|
||
},
|
||
"scheduledScan": {
|
||
"create": {
|
||
"success": "定时扫描创建成功",
|
||
"error": "创建定时扫描失败"
|
||
},
|
||
"update": {
|
||
"success": "定时扫描更新成功",
|
||
"error": "更新定时扫描失败"
|
||
},
|
||
"delete": {
|
||
"success": "定时扫描删除成功",
|
||
"error": "删除定时扫描失败"
|
||
},
|
||
"toggle": {
|
||
"enabled": "定时扫描已启用",
|
||
"disabled": "定时扫描已禁用",
|
||
"error": "切换定时扫描状态失败"
|
||
}
|
||
},
|
||
"target": {
|
||
"create": {
|
||
"success": "目标创建成功",
|
||
"bulkSuccess": "已创建 {count} 个目标",
|
||
"error": "创建目标失败"
|
||
},
|
||
"update": {
|
||
"success": "目标更新成功",
|
||
"error": "更新目标失败"
|
||
},
|
||
"delete": {
|
||
"success": "目标 \"{name}\" 已删除",
|
||
"bulkSuccess": "已删除 {count} 个目标",
|
||
"error": "删除目标失败"
|
||
},
|
||
"link": {
|
||
"success": "目标已关联到组织",
|
||
"error": "关联目标失败"
|
||
},
|
||
"unlink": {
|
||
"success": "目标已从组织解除关联",
|
||
"bulkSuccess": "已解除 {count} 个目标的关联",
|
||
"error": "解除关联失败"
|
||
}
|
||
},
|
||
"organization": {
|
||
"create": {
|
||
"success": "组织创建成功",
|
||
"error": "创建组织失败"
|
||
},
|
||
"update": {
|
||
"success": "组织更新成功",
|
||
"error": "更新组织失败"
|
||
},
|
||
"delete": {
|
||
"success": "组织 \"{name}\" 已删除",
|
||
"bulkSuccess": "已删除 {count} 个组织",
|
||
"error": "删除组织失败"
|
||
}
|
||
},
|
||
"asset": {
|
||
"subdomain": {
|
||
"create": {
|
||
"success": "已创建 {count} 个子域名",
|
||
"partialSuccess": "已创建 {success} 个子域名,跳过 {skipped} 个",
|
||
"error": "创建子域名失败"
|
||
},
|
||
"delete": {
|
||
"success": "子域名已删除",
|
||
"bulkSuccess": "已删除 {count} 个子域名",
|
||
"error": "删除子域名失败"
|
||
}
|
||
},
|
||
"website": {
|
||
"create": {
|
||
"success": "已创建 {count} 个网站",
|
||
"partialSuccess": "已创建 {success} 个网站,跳过 {skipped} 个",
|
||
"error": "创建网站失败"
|
||
},
|
||
"delete": {
|
||
"success": "网站已删除",
|
||
"bulkSuccess": "已删除 {count} 个网站",
|
||
"error": "删除网站失败"
|
||
}
|
||
},
|
||
"endpoint": {
|
||
"create": {
|
||
"success": "已创建 {count} 个端点",
|
||
"partialSuccess": "已创建 {success} 个端点,跳过 {skipped} 个",
|
||
"error": "创建端点失败"
|
||
},
|
||
"delete": {
|
||
"success": "端点已删除",
|
||
"bulkSuccess": "已删除 {count} 个端点",
|
||
"error": "删除端点失败"
|
||
}
|
||
},
|
||
"directory": {
|
||
"create": {
|
||
"success": "已创建 {count} 个目录",
|
||
"partialSuccess": "已创建 {success} 个目录,跳过 {skipped} 个",
|
||
"error": "创建目录失败"
|
||
},
|
||
"delete": {
|
||
"success": "目录已删除",
|
||
"bulkSuccess": "已删除 {count} 个目录",
|
||
"error": "删除目录失败"
|
||
}
|
||
}
|
||
},
|
||
"auth": {
|
||
"login": {
|
||
"success": "登录成功"
|
||
},
|
||
"logout": {
|
||
"success": "已登出"
|
||
},
|
||
"changePassword": {
|
||
"success": "密码修改成功",
|
||
"error": "修改密码失败"
|
||
}
|
||
},
|
||
"worker": {
|
||
"create": {
|
||
"success": "节点创建成功",
|
||
"error": "创建节点失败"
|
||
},
|
||
"update": {
|
||
"success": "节点更新成功",
|
||
"error": "更新节点失败"
|
||
},
|
||
"delete": {
|
||
"success": "节点删除成功",
|
||
"error": "删除节点失败"
|
||
},
|
||
"deploy": {
|
||
"success": "节点部署已启动",
|
||
"error": "部署节点失败"
|
||
},
|
||
"restart": {
|
||
"success": "节点正在重启",
|
||
"error": "重启节点失败"
|
||
},
|
||
"stop": {
|
||
"success": "节点已停止",
|
||
"error": "停止节点失败"
|
||
}
|
||
},
|
||
"nucleiRepo": {
|
||
"create": {
|
||
"success": "仓库添加成功",
|
||
"error": "添加仓库失败"
|
||
},
|
||
"update": {
|
||
"success": "仓库更新成功",
|
||
"error": "更新仓库失败"
|
||
},
|
||
"delete": {
|
||
"success": "仓库删除成功",
|
||
"error": "删除仓库失败"
|
||
},
|
||
"sync": {
|
||
"success": "仓库同步成功",
|
||
"error": "同步仓库失败"
|
||
}
|
||
},
|
||
"wordlist": {
|
||
"upload": {
|
||
"success": "字典上传成功",
|
||
"error": "上传字典失败"
|
||
},
|
||
"update": {
|
||
"success": "字典更新成功",
|
||
"error": "更新字典失败"
|
||
},
|
||
"delete": {
|
||
"success": "字典删除成功",
|
||
"error": "删除字典失败"
|
||
}
|
||
},
|
||
"notification": {
|
||
"settings": {
|
||
"success": "通知设置已保存",
|
||
"error": "保存通知设置失败"
|
||
},
|
||
"markRead": {
|
||
"success": "已标记为已读",
|
||
"error": "标记已读失败"
|
||
},
|
||
"connection": {
|
||
"error": "通知连接错误: {message}"
|
||
}
|
||
},
|
||
"tool": {
|
||
"create": {
|
||
"success": "工具创建成功",
|
||
"error": "创建工具失败"
|
||
},
|
||
"update": {
|
||
"success": "工具更新成功",
|
||
"error": "更新工具失败"
|
||
},
|
||
"delete": {
|
||
"success": "工具删除成功",
|
||
"error": "删除工具失败"
|
||
}
|
||
},
|
||
"engine": {
|
||
"create": {
|
||
"success": "引擎创建成功",
|
||
"error": "创建引擎失败"
|
||
},
|
||
"update": {
|
||
"success": "引擎更新成功",
|
||
"error": "更新引擎失败"
|
||
},
|
||
"delete": {
|
||
"success": "引擎删除成功",
|
||
"error": "删除引擎失败"
|
||
}
|
||
},
|
||
"command": {
|
||
"create": {
|
||
"success": "命令创建成功",
|
||
"error": "创建命令失败"
|
||
},
|
||
"update": {
|
||
"success": "命令更新成功",
|
||
"error": "更新命令失败"
|
||
},
|
||
"delete": {
|
||
"success": "命令删除成功",
|
||
"bulkSuccess": "已删除 {count} 个命令",
|
||
"error": "删除命令失败"
|
||
}
|
||
},
|
||
"nucleiTemplate": {
|
||
"refresh": {
|
||
"loading": "正在同步模板...",
|
||
"success": "模板同步成功",
|
||
"error": "同步模板失败"
|
||
},
|
||
"upload": {
|
||
"success": "模板上传成功",
|
||
"error": "上传模板失败"
|
||
},
|
||
"save": {
|
||
"success": "模板保存成功",
|
||
"error": "保存模板失败"
|
||
}
|
||
},
|
||
"nucleiGit": {
|
||
"settings": {
|
||
"success": "Git 设置保存成功",
|
||
"error": "保存 Git 设置失败"
|
||
}
|
||
},
|
||
"systemLog": {
|
||
"fetch": {
|
||
"error": "系统日志获取失败,请检查后端接口",
|
||
"recovered": "系统日志连接已恢复"
|
||
}
|
||
}
|
||
},
|
||
"quickScan": {
|
||
"title": "快速扫描",
|
||
"description": "快速创建扫描任务,批量扫描多个目标",
|
||
"steps": {
|
||
"enterTargets": "输入目标",
|
||
"selectEngine": "选择引擎",
|
||
"confirmScan": "确认扫描"
|
||
},
|
||
"step1Title": "输入目标",
|
||
"step2Title": "选择引擎",
|
||
"step3Title": "确认",
|
||
"step1Hint": "在左侧输入框中输入扫描目标,每行一个",
|
||
"step": "步骤 {current}/{total} · {title}",
|
||
"targetPlaceholder": "每行输入一个目标,支持以下格式:\n\n域名: example.com, sub.example.com\nIP地址: 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": "支持 域名、IP、CIDR、URL",
|
||
"validTargets": "{count} 个有效目标",
|
||
"invalidTargets": "{count} 个无效",
|
||
"selectEngine": "选择引擎",
|
||
"noEngines": "暂无可用引擎",
|
||
"capabilities": "{count} 项能力",
|
||
"noConfig": "无配置",
|
||
"scanTargets": "扫描目标",
|
||
"totalTargets": "共 {count} 个目标",
|
||
"previous": "上一步",
|
||
"back": "上一步",
|
||
"next": "下一步",
|
||
"startScan": "开始扫描",
|
||
"creating": "创建中...",
|
||
"selectEngineHint": "选择左侧引擎查看配置详情",
|
||
"moreErrors": "还有 {count} 个错误...",
|
||
"lineError": "行 {lineNumber}: {error}",
|
||
"loading": "加载中...",
|
||
"loadFailed": "加载失败",
|
||
"selectedCount": "已选择 {count} 个",
|
||
"confirmTargets": "共 {count} 个扫描目标",
|
||
"andMore": "还有 {count} 个...",
|
||
"selectedEngines": "已选引擎",
|
||
"confirmSummary": "将使用 {engineCount} 个引擎扫描 {targetCount} 个目标",
|
||
"toast": {
|
||
"noValidTarget": "请输入至少一个有效目标",
|
||
"hasInvalidInputs": "存在 {count} 个无效输入,请修正后继续",
|
||
"selectEngine": "请选择扫描引擎",
|
||
"getEnginesFailed": "获取引擎列表失败",
|
||
"createFailed": "创建扫描任务失败",
|
||
"createSuccess": "已创建 {count} 个扫描任务",
|
||
"createSuccessDesc": "{created} 个目标成功,{failed} 个失败",
|
||
"targetsFailed": "{count} 个目标处理失败",
|
||
"configConflict": "引擎配置冲突"
|
||
}
|
||
},
|
||
"notificationDrawer": {
|
||
"title": "通知",
|
||
"markAllRead": "全部已读",
|
||
"markAllAsRead": "全部标记为已读",
|
||
"empty": "暂无通知",
|
||
"noNotifications": "暂无通知",
|
||
"filters": {
|
||
"all": "全部",
|
||
"scan": "扫描",
|
||
"vulnerability": "漏洞",
|
||
"asset": "资产",
|
||
"system": "系统"
|
||
},
|
||
"categories": {
|
||
"scan": "扫描任务",
|
||
"vulnerability": "漏洞发现",
|
||
"asset": "资产发现",
|
||
"system": "系统消息"
|
||
},
|
||
"timeGroups": {
|
||
"today": "今天",
|
||
"yesterday": "昨天",
|
||
"earlier": "更早"
|
||
},
|
||
"status": {
|
||
"realtime": "实时",
|
||
"offline": "离线"
|
||
},
|
||
"connection": {
|
||
"live": "实时",
|
||
"offline": "离线"
|
||
}
|
||
},
|
||
"disk": {
|
||
"totalCapacity": "总容量",
|
||
"used": "已使用",
|
||
"available": "可用空间"
|
||
},
|
||
"subdomains": {
|
||
"loadFailed": "加载失败",
|
||
"loadError": "加载域名数据时出现错误,请重试",
|
||
"reload": "重新加载"
|
||
},
|
||
"vulnerabilities": {
|
||
"title": "漏洞管理",
|
||
"description": "查看和管理所有扫描发现的漏洞",
|
||
"detail": {
|
||
"vulnUrl": "漏洞 URL",
|
||
"tabs": {
|
||
"overview": "概览",
|
||
"requestResponse": "请求/响应",
|
||
"evidence": "证据",
|
||
"reproduce": "复现",
|
||
"rawData": "原始数据"
|
||
},
|
||
"basicInfo": "基本信息",
|
||
"createdAt": "创建时间",
|
||
"severity": "严重性",
|
||
"source": "来源",
|
||
"httpMethod": "HTTP 方法",
|
||
"param": "参数",
|
||
"classification": "漏洞分类",
|
||
"noClassification": "暂无分类信息",
|
||
"detailedDesc": "详细描述",
|
||
"references": "参考链接",
|
||
"noEvidence": "暂无证据数据",
|
||
"curlCommand": "CURL 命令",
|
||
"curlHint": "复制以下命令到终端执行,即可复现此漏洞",
|
||
"rawOutput": "原始输出 (JSON)",
|
||
"rawOutputHint": "扫描工具的完整输出数据",
|
||
"evidence": {
|
||
"payload": "Payload",
|
||
"evidence": "证据",
|
||
"httpRequest": "HTTP 请求",
|
||
"httpResponse": "HTTP 响应"
|
||
}
|
||
},
|
||
"severity": {
|
||
"critical": "严重",
|
||
"high": "高危",
|
||
"medium": "中危",
|
||
"low": "低危",
|
||
"info": "信息"
|
||
}
|
||
},
|
||
"pages": {
|
||
"organization": {
|
||
"title": "组织",
|
||
"description": "管理和查看系统中的所有组织信息"
|
||
},
|
||
"target": {
|
||
"title": "目标",
|
||
"description": "管理系统中的所有目标信息"
|
||
},
|
||
"workers": {
|
||
"title": "扫描节点",
|
||
"description": "管理分布式扫描节点,支持远程 VPS 自动部署"
|
||
},
|
||
"wordlists": {
|
||
"title": "字典管理",
|
||
"searchPlaceholder": "搜索字典...",
|
||
"listTitle": "字典列表",
|
||
"loading": "加载中...",
|
||
"noMatch": "未找到匹配的字典",
|
||
"noData": "暂无字典,请先上传",
|
||
"lines": "行",
|
||
"rows": "行数",
|
||
"size": "大小",
|
||
"id": "ID",
|
||
"updatedAt": "更新时间",
|
||
"hash": "Hash",
|
||
"editContent": "编辑内容",
|
||
"delete": "删除",
|
||
"selectHint": "选择左侧字典查看详情",
|
||
"idCopied": "ID 已复制到剪贴板"
|
||
},
|
||
"nuclei": {
|
||
"title": "Nuclei 模板仓库",
|
||
"searchPlaceholder": "搜索仓库...",
|
||
"addRepo": "新增仓库",
|
||
"listTitle": "仓库列表",
|
||
"loading": "加载中...",
|
||
"loadFailed": "加载失败",
|
||
"noMatch": "未找到匹配的仓库",
|
||
"noData": "暂无仓库,请先新增",
|
||
"synced": "已同步",
|
||
"notSynced": "未同步",
|
||
"syncedAt": "同步于",
|
||
"notSyncedYet": "尚未同步",
|
||
"status": "状态",
|
||
"lastSync": "最后同步",
|
||
"gitUrl": "Git 地址",
|
||
"localPath": "本地路径",
|
||
"commit": "Commit",
|
||
"syncRepo": "同步仓库",
|
||
"syncing": "同步中...",
|
||
"editConfig": "编辑配置",
|
||
"manageTemplates": "管理模板",
|
||
"delete": "删除",
|
||
"selectHint": "选择左侧仓库查看详情",
|
||
"addDialog": {
|
||
"title": "新增 Nuclei 模板仓库",
|
||
"repoName": "仓库名称",
|
||
"repoNamePlaceholder": "例如:默认 Nuclei 官方模板",
|
||
"gitUrl": "Git 仓库地址",
|
||
"gitUrlPlaceholder": "例如:https://github.com/projectdiscovery/nuclei-templates.git",
|
||
"cancel": "取消",
|
||
"creating": "创建中...",
|
||
"confirm": "确认新增"
|
||
},
|
||
"editDialog": {
|
||
"title": "编辑 Nuclei 仓库配置",
|
||
"repoName": "仓库名称:",
|
||
"gitUrl": "Git 仓库地址",
|
||
"gitUrlPlaceholder": "例如:https://github.com/projectdiscovery/nuclei-templates.git",
|
||
"cancel": "取消",
|
||
"saving": "保存中...",
|
||
"save": "保存配置"
|
||
}
|
||
},
|
||
"tools": {
|
||
"title": "工具",
|
||
"description": "管理与扫描相关的辅助资源,如字典等",
|
||
"wordlists": {
|
||
"title": "字典管理",
|
||
"description": "管理目录扫描等使用的字典文件"
|
||
},
|
||
"nuclei": {
|
||
"title": "Nuclei 模板",
|
||
"description": "浏览本地 Nuclei 模板结构及内容"
|
||
},
|
||
"comingSoon": "敬请期待",
|
||
"stats": {
|
||
"total": "总数:",
|
||
"active": "活跃:"
|
||
},
|
||
"enterManagement": "进入管理",
|
||
"quickActions": {
|
||
"title": "快速操作",
|
||
"description": "常用的工具操作"
|
||
}
|
||
},
|
||
"targetDetail": {
|
||
"noDescription": "暂无描述",
|
||
"error": {
|
||
"title": "加载失败",
|
||
"message": "获取目标数据时出现错误"
|
||
},
|
||
"notFound": {
|
||
"title": "目标不存在",
|
||
"message": "未找到ID为 {id} 的目标"
|
||
}
|
||
},
|
||
"nav": {
|
||
"scanEngine": "扫描引擎",
|
||
"wordlists": "字典管理"
|
||
}
|
||
},
|
||
"metadata": {
|
||
"title": "星环 (Xingrin) - 攻击面管理平台 | ASM",
|
||
"description": "星环 - 攻击面管理平台 (ASM),提供自动化资产发现、漏洞扫描、子域名枚举、端口扫描等功能。支持分布式扫描、Nuclei 集成、定时任务。",
|
||
"keywords": "ASM, 攻击面管理, 漏洞扫描, 资产发现, Bug Bounty, 渗透测试, Nuclei, 子域名枚举, 安全工具, EASM, 安全",
|
||
"ogTitle": "星环 (Xingrin) - 攻击面管理平台",
|
||
"ogDescription": "攻击面管理平台 (ASM),提供自动化资产发现与漏洞扫描"
|
||
},
|
||
"bulkAdd": {
|
||
"subdomain": {
|
||
"title": "批量添加子域名",
|
||
"description": "输入子域名列表,每行一个。",
|
||
"belongsTo": "子域名必须属于",
|
||
"label": "子域名列表",
|
||
"placeholder": "请输入子域名,每行一个\n例如:\napi.example.com\nwww.example.com\nmail.example.com",
|
||
"valid": "有效: {count} 个",
|
||
"duplicate": "重复: {count} 个",
|
||
"invalid": "无效: {count} 个",
|
||
"lineError": "第 {line} 行: \"{value}\" - {error}",
|
||
"formatInvalid": "格式无效",
|
||
"creating": "创建中...",
|
||
"bulkAdd": "批量添加"
|
||
},
|
||
"common": {
|
||
"cancel": "取消",
|
||
"bulkAdd": "批量添加",
|
||
"formatInvalid": "格式无效"
|
||
}
|
||
},
|
||
"globalSearch": {
|
||
"search": "搜索",
|
||
"placeholder": "搜索资产... (host=\"api\" && tech=\"nginx\")",
|
||
"noResults": "未找到结果",
|
||
"searchFor": "搜索",
|
||
"recent": "最近搜索",
|
||
"quickSearch": "快捷搜索",
|
||
"hint": "支持 FOFA 风格语法",
|
||
"toSearch": "搜索"
|
||
},
|
||
"errors": {
|
||
"unknown": "操作失败,请稍后重试",
|
||
"validation": "输入数据无效",
|
||
"notFound": "资源未找到",
|
||
"permissionDenied": "权限不足",
|
||
"serverError": "服务器错误,请稍后重试",
|
||
"badRequest": "请求格式错误",
|
||
"conflict": "资源冲突,请检查后重试",
|
||
"unauthorized": "请先登录",
|
||
"rateLimited": "请求过于频繁,请稍后重试"
|
||
}
|
||
}
|