{
  "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",
      "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",
      "contentLength": "Content Length",
      "location": "Location",
      "webServer": "Web Server",
      "contentType": "Content Type",
      "technologies": "Technologies",
      "bodyPreview": "Body Preview",
      "vhost": "VHost",
      "gfPatterns": "GF Patterns",
      "responseTime": "Response Time"
    },
    "website": {
      "host": "Host"
    },
    "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": "仪表盘",
    "organization": "组织",
    "target": "目标",
    "vulnerabilities": "漏洞",
    "scan": "扫描",
    "scanHistory": "扫描历史",
    "scheduledScan": "定时扫描",
    "scanEngine": "扫描引擎",
    "tools": "工具",
    "wordlists": "字典管理",
    "fingerprints": "指纹管理",
    "nucleiTemplates": "Nuclei 模板",
    "settings": "系统设置",
    "workers": "扫描节点",
    "systemLogs": "系统日志",
    "notifications": "通知设置",
    "help": "获取帮助"
  },
  "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": "开始扫描"
    },
    "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": "暂无可用目标",
        "selected": "已选择"
      },
      "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": "快速扫描",
    "steps": {
      "enterTargets": "输入目标",
      "selectEngine": "选择引擎",
      "confirmScan": "确认扫描"
    },
    "step": "步骤 {current}/{total} · {title}",
    "targetPlaceholder": "每行输入一个目标，支持以下格式：\n\n域名: example.com, sub.example.com\nIP地址: 192.168.1.1, 10.0.0.1\nCIDR网段: 192.168.0.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": "上一步",
    "next": "下一步",
    "startScan": "开始扫描",
    "creating": "创建中...",
    "selectEngineHint": "选择左侧引擎查看配置详情",
    "moreErrors": "还有 {count} 个错误...",
    "lineError": "行 {lineNumber}: {error}",
    "toast": {
      "noValidTarget": "请输入至少一个有效目标",
      "hasInvalidInputs": "存在 {count} 个无效输入，请修正后继续",
      "selectEngine": "请选择扫描引擎",
      "getEnginesFailed": "获取引擎列表失败",
      "createFailed": "创建扫描任务失败",
      "createSuccess": "已创建 {count} 个扫描任务",
      "createSuccessDesc": "{created} 个目标成功，{failed} 个失败",
      "targetsFailed": "{count} 个目标处理失败"
    }
  },
  "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": "格式无效"
    }
  },
  "errors": {
    "unknown": "操作失败，请稍后重试",
    "validation": "输入数据无效",
    "notFound": "资源未找到",
    "permissionDenied": "权限不足",
    "serverError": "服务器错误，请稍后重试",
    "badRequest": "请求格式错误",
    "conflict": "资源冲突，请检查后重试",
    "unauthorized": "请先登录",
    "rateLimited": "请求过于频繁，请稍后重试"
  }
}
