{ "dashboard": { "title": "总览", "generatedAt": "数据生成于 {time}", "refresh": "刷新", "loadingTitle": "加载总览数据", "loadingDesc": "正在聚合节点健康、流量与容量指标...", "loadFailed": "总览看板加载失败:{error}", "emptyTitle": "暂无总览数据", "emptyDesc": "系统已经启动,但还没有可展示的总览聚合结果。", "requestFailed": "请求失败,请稍后重试。", "stats": { "requests24h": "24h 请求量", "requestsMeta": "24h 独立访客 {visitors} · 错误 {errors} · 估算 QPS {qps}", "clusterCapacity": "集群容量", "avgMemoryHighLoad": "平均内存 {memory} · 高负载节点 CPU {cpu} / 内存 {memoryNodes} / 存储 {storage}", "nodeOverview": "节点概览", "onlineOf": "/ {total} 在线", "pending": "待接入 {count}", "unhealthyOffline": "异常 {unhealthy} · 离线 {offline}" }, "world": { "title": "全球态势板", "description": "汇总节点分布、来源国家热度与最近窗口运行状态。", "legendSource": "来源", "legendHealthy": "正常", "legendPressure": "承压", "legendUnhealthy": "异常", "modeVisitorSource": "访客来源", "modeNodeCoords": "节点坐标", "modeCoverage": "覆盖信号", "onlineCoverage": "在线覆盖", "onlineHint": "{online}/{total} 在线", "runHealth": "运行健康", "unhealthyCount": "{count} 个异常", "requests24h": "24小时请求", "qpsReported": "QPS {qps} · {count} 个节点上报", "nodeCoords": "节点坐标", "sourceCountries": "{count} 个来源国家", "fallbackPins": "未配置时使用预设落点", "avgCpu": "平均 CPU", "highCount": "{count} 个偏高", "avgMemory": "平均内存", "highStorage": "高存储", "offlinePending": "{offline} 离线 · {pending} 待接入", "mapPreparing": "地图准备中", "mapPreparingDesc": "进入可视区域后加载", "noNodesOverlay": "暂无节点,接入后将展示地理分布" }, "map": { "sourceRequests": "最近 24 小时来源请求 {count}", "presetPin": "预设落点", "requestsErrors": "请求量 {requests} · 错误数 {errors}", "eventsStatus": "活动事件 {events} · 节点状态 {status}", "openrestyStatus": "OpenResty 状态 {status}", "loadFailed": "全球地图加载失败", "loading": "全球地图加载中", "loadFailedDesc": "ECharts 世界地图资源未能成功注册,请稍后刷新重试。", "loadingDesc": "正在按需初始化全球地图,这一步会延后到首屏内容稳定后执行。", "measuring": "正在测量地图容器尺寸..." }, "trafficTrend": { "title": "24 小时请求趋势", "description": "按小时拆分请求总量与 2xx/4xx/5xx 状态码请求量,判断各状态是否异常抬升。", "summaryHint": "近 24 小时", "requests": "请求量", "status2xx": "2xx 请求", "status4xx": "4xx 请求", "status5xx": "5xx 请求" }, "capacityTrend": { "title": "24 小时容量趋势", "description": "按小时聚合 CPU 与内存使用率,判断整体容量是否持续紧张。", "avgCpu": "平均 CPU", "avgMemory": "平均内存" }, "trafficCapacity": { "title": "24 小时业务流量与容量趋势", "networkHint": "近 24 小时 · 来自访问日志", "received": "接收数据", "provided": "已提供数据", "capacityHint": "近 24 小时 · 宿主机容量 · 平均值" }, "distributions": { "sourceTitle": "来源分布", "sourceDesc": "聚合最近 24 小时主要来源国家。", "sourceEmpty": "暂无来源分布数据", "statusTitle": "状态码分布", "statusDesc": "快速判断成功响应是否仍是主流,以及错误码是否有抬升。", "statusEmpty": "暂无状态码分布", "httpLabel": "HTTP {code}", "domainTitle": "Top Domain", "domainDesc": "观察主要流量集中在哪些域名。", "domainEmpty": "暂无域名分布" }, "nodeHealth": { "title": "节点健康列表", "description": "按异常数量和资源压力排序。", "openNodes": "进入节点页", "emptyTitle": "暂无节点", "emptyDesc": "节点接入后,这里会展示系统健康与容量摘要。", "colNode": "节点", "colStatus": "状态", "colCpuMem": "CPU / 内存", "colReqErr": "请求 / 错误", "colEvents": "活动异常", "colHeartbeat": "最近心跳", "colActions": "操作", "noGeo": "未配置地图点位", "wsConnected": "WS 已连接", "na": "暂无", "detail": "详情" }, "nodeRank": { "title": "Top 节点榜单", "traffic": "流量最高节点", "trafficEmpty": "暂无流量榜单", "pressure": "容量压力节点", "pressureEmpty": "暂无容量压力数据" } }, "nodes": { "title": "节点管理", "applyLogs": "应用记录", "create": "新增节点", "listTitle": "节点列表", "refreshNow": "立即刷新", "loadingList": "加载节点列表中...", "emptyAll": "暂无节点,请先创建一个节点。", "emptyFilter": "当前筛选无结果", "updated": "节点已更新", "created": "节点已创建", "deleted": "节点已删除", "deleteTitle": "确认删除节点", "deleteDesc": "确认删除节点「{name}」吗?删除后该节点需要重新创建并重新接入。", "deleting": "删除中...", "confirmDelete": "确认删除", "edit": "编辑", "delete": "删除", "refresh": "刷新", "detail": "详情", "na": "暂无", "wsConnected": "WS 已连接", "wsEstablished": "WebSocket 长连接已建立", "requestFailed": "请求失败,请稍后重试。", "unknown": "未知", "running": "运行中", "liveConfig": "实时配置", "notApplied": "未应用", "enabled": "已启用", "manual": "手动", "lockedSuffix": "(已锁定)", "noGeo": "未配置地图点位", "notConfigured": "未配置", "ipLine": "IP:{ip}", "locationLine": "位置:{location}", "backToList": "返回节点列表", "missingId": "缺少节点 ID,请从节点列表进入详情页。", "loadingDetail": "加载节点详情中...", "notFound": "节点不存在,可能已被删除或 ID 无效。", "syncing": "同步中...", "forceSync": "强制同步", "dispatching": "下发中...", "viewUpgrade": "查看升级", "tabOverview": "概览", "tabManage": "状态与部署", "kpiNodeId": "节点 ID", "kpiLastSeen": "最近心跳", "kpiCurrentConfig": "当前配置", "filter": { "all": "全部节点", "descAll": "当前展示全部节点。", "descRelay": "当前仅展示 Relay 节点。", "descTunnel": "当前仅展示 Tunnel 节点。", "descEdge": "当前仅展示 Edge 节点。" }, "status": { "online": "在线", "pending": "待接入", "offline": "离线", "running": "运行中", "wsConnected": "WS 已连接" }, "apply": { "success": "成功", "warning": "警告", "failed": "失败", "none": "暂无" }, "health": { "healthy": "健康", "unhealthy": "异常", "unknown": "未知" }, "relative": { "justNow": "刚刚", "minutesAgo": "{count} 分钟前", "hoursAgo": "{count} 小时前", "daysAgo": "{count} 天前", "monthsAgo": "{count} 个月前" }, "uptime": { "daysHours": "{days} 天 {hours} 小时", "hoursMinutes": "{hours} 小时 {minutes} 分钟", "minutes": "{minutes} 分钟" }, "channel": { "preview": "预览版", "stable": "正式版" }, "table": { "node": "节点", "status": "状态", "version": "Version", "runHealth": "运行健康", "currentVersion": "当前版本", "latestApply": "最近应用", "lastSeen": "最近心跳", "actions": "操作" }, "editor": { "editTitle": "编辑节点", "createTitle": "新增节点", "description": "预创建节点后可在详情页查看专属 Token 与部署命令。", "nodeType": "节点类型", "typeEdge": "Edge 节点", "typeRelay": "Relay 节点", "typeTunnel": "Tunnel 节点", "name": "节点名称", "namePlaceholder": "例如 edge-hk-01", "ip": "节点 IP", "ipPlaceholder": "可选,接入后自动上报", "lockIp": "锁定 IP", "lockIpDesc": "启用后管理端不再自动覆盖 IP", "autoUpdate": "自动更新 Agent", "autoUpdateDesc": "启用后节点将自动拉取正式版更新", "bindPort": "绑定端口", "vhostPort": "VHost 端口", "manualGeo": "手动地图点位", "manualGeoDesc": "用于总览地图展示", "geoName": "位置名称", "latitude": "纬度", "longitude": "经度", "saving": "保存中...", "saveEdit": "保存修改", "createAction": "新增节点", "errName": "请输入节点名称", "errLockIp": "锁定 IP 时必须填写节点 IP", "errBindPort": "请输入有效的绑定端口", "errVhostPort": "请输入有效的 VHost 端口" }, "install": { "edgeTitle": "边缘节点部署", "edgeDesc": "使用 Agent Token 将边缘节点接入控制端。", "relayTitle": "中继部署命令", "relayDesc": "使用 Discovery Token 将 frps 中继节点接入控制端。", "tunnelTitle": "隧道部署命令", "tunnelDesc": "使用 Tunnel Token 将 openflared 客户端接入控制端。", "agentToken": "Agent Token", "discoveryToken": "Discovery Token", "tunnelToken": "Tunnel Token", "scriptLabel": "一键脚本部署 (Linux / macOS)", "dockerLabel": "Docker 容器部署", "copyFailed": "复制失败,请手动选择命令文本。", "copiedScript": "部署脚本命令已复制", "copiedDocker": "Docker 部署命令已复制", "copyScript": "复制脚本", "copyDocker": "复制 Docker", "nodeId": "Node ID", "serverUrl": "Server URL(控制端地址)", "serverUrlHint": "部署脚本和容器将使用此地址连接 OpenFlare 控制端。", "noToken": "节点尚未生成接入 Token,请稍后刷新。", "needServerUrl": "请填写有效的 Server URL 以生成部署命令。" }, "update": { "title": "Agent 升级", "description": "检查 GitHub 发布并向节点下发升级指令,节点将在下一次心跳后执行。", "currentVersion": "当前版本", "channel": "检查通道", "updateStatus": "更新状态", "waitingPreview": "等待预览更新", "waitingUpdate": "等待更新", "notRequested": "未下发", "checking": "检查发布版本中...", "hasUpdate": "发现可升级版本", "upToDate": "当前已是最新版本", "previewRelease": "Preview 发布", "stableRelease": "正式发布", "targetVersion": "目标版本", "notFound": "未找到", "publishedAt": "发布时间", "noNotes": "暂无更新说明", "viewRelease": "查看发布详情", "checkStable": "检查正式版", "checkPreview": "检查预览版", "upgradePreview": "升级到预览版", "upgradeStable": "升级到正式版" }, "edge": { "upgrade": "升级 Agent", "restartOpenresty": "重启 OpenResty", "runStatus": "运行状态", "runStatusDesc": "节点在线情况与 OpenResty 健康", "openrestyHealth": "OpenResty 健康", "lastSeen": "最近心跳", "ip": "IP 地址", "geo": "地图点位", "syncTitle": "配置同步", "syncDesc": "版本追平与应用结果摘要", "currentVersion": "当前配置版本", "latestApply": "最近应用", "latestApplyAt": "最近应用时间", "agentVersion": "Agent 版本", "nginxVersion": "Nginx 版本", "autoUpdate": "自动更新", "runtimeMessages": "运行消息", "runtimeMessagesDesc": "OpenResty 与 Agent 上报的状态说明", "openrestyMessage": "OpenResty 状态消息", "noExtraError": "当前未上报额外错误。", "restartPending": "已等待节点在下一次心跳后执行 OpenResty 重启。", "kpiAgent": "Agent 版本", "connectionHint": "OpenResty 当前连接", "toastUpdated": "节点已更新", "toastForceSync": "已向节点 {name} 下发强制同步指令", "toastRestart": "已向节点 {name} 下发 OpenResty 重启指令", "toastUpgrade": "已向节点 {name} 下发{channel}升级指令", "toastDeleted": "节点已删除" }, "relay": { "upgrade": "升级 Relay", "runStatus": "中继运行状态", "runStatusDesc": "frps 在线情况与负载摘要", "health": "中继健康", "connections": "活动连接 / 代理数", "portsTitle": "网络端口", "portsDesc": "frps 控制面与 HTTP 虚拟主机配置", "bindPort": "绑定控制端口", "vhostPort": "VHost HTTP 端口", "agentAddr": "Agent 接入地址", "relayVersion": "Relay 版本", "frpsVersion": "frps 核心版本", "webuiTitle": "FRPS WebUI", "webuiDesc": "控制 frps 内置 Web 管理界面是否启用及其监听端口", "enableWebui": "启用 Web 管理界面", "enableWebuiHint": "开启后,节点将启动 frps 的内置管理服务。", "webuiPort": "Web 管理界面端口", "webuiPortPlaceholder": "例如: 17500", "actualPort": "当前实际监听端口:{port} (修改后在下次节点心跳同步时生效,默认为绑定端口 + 500)。", "openWebui": "打开 FRPS WebUI", "copiedLink": "链接已复制到剪贴板", "copyLink": "复制链接", "webuiDisabled": "WebUI 已禁用或未配置绑定端口。", "metadata": "节点元数据", "createdAt": "创建时间", "updatedAt": "更新时间", "kpiFrps": "frps 核心", "connectionHint": "中继承载活动连接数", "invalidPort": "端口号必须在 1 ~ 65535 范围内", "portSaveFailed": "更新端口失败", "toastPortSaved": "FRPS WebUI 端口配置已更新", "toastUpdated": "中继节点已更新", "toastWebui": "FRPS WebUI 设置已更新", "toastForceSync": "已向中继节点 {name} 下发强制同步指令", "toastUpgrade": "已向中继节点 {name} 下发{channel}升级指令", "toastDeleted": "中继节点已删除", "deleteTitle": "确认删除中继节点", "deleteDesc": "确认删除中继节点「{name}」吗?删除后该节点需要重新创建并重新接入。" }, "tunnel": { "upgrade": "升级 openflared", "runStatus": "隧道运行状态", "runStatusDesc": "openflared 连接与在线情况", "flaredStatus": "flared 状态", "autoUpdate": "自动更新", "syncTitle": "配置同步", "syncDesc": "隧道客户端配置追平状态", "currentVersion": "当前配置版本", "latestApply": "最近应用", "latestApplyAt": "最近应用时间", "fileCount": "同步文件数", "fileCountValue": "{count} 个", "upgradeStatus": "升级状态", "credentials": "接入凭证", "credentialsDesc": "隧道客户端接入所需 Token", "tunnelToken": "Tunnel Token", "createdAt": "创建时间", "updatedAt": "更新时间", "kpiOpenflared": "openflared", "connectionHint": "隧道并发连接数", "toastUpdated": "隧道节点已更新", "toastForceSync": "已向隧道节点 {name} 下发强制同步指令", "toastUpgrade": "已向隧道节点 {name} 下发{channel}升级指令", "toastDeleted": "隧道节点已删除", "deleteTitle": "确认删除隧道节点", "deleteDesc": "确认删除隧道节点「{name}」吗?删除后该节点需要重新创建并重新接入。" }, "obs": { "hostname": "主机名", "os": "操作系统", "kernelArch": "内核 / 架构", "uptime": "在线时长", "cpu": "CPU", "cpuCores": "{count} 核", "totalMemory": "总内存", "totalStorage": "总存储", "reportedAt": "上报时间", "eventsTitle": "健康事件时间线", "eventsDesc": "保留活动与已恢复事件,帮助判断运行状态。", "cleanupLogs": "清理日志", "filterAll": "全部事件", "filterActive": "活动中", "filterResolved": "已恢复", "filterEmpty": "当前筛选下没有健康事件。", "noMessage": "暂无详细消息", "firstTriggered": "首次触发:", "lastTriggered": "最近触发:", "resolvedAt": "恢复时间:", "noEvents": "节点当前还没有上报健康事件记录。", "cleaned": "已清理 {count} 条健康事件日志", "nothingToClean": "当前没有可清理的健康事件日志", "loading": "加载运行观测数据中...", "diag": "运行诊断", "activeIssues": "{count} 个活动异常", "stable": "运行稳定", "noActiveEvents": "当前没有活动中的健康事件", "systemCore": "系统核心", "uptimeFromProfile": "来自节点系统画像上报", "profileTitle": "系统画像", "profileDesc": "节点上报的主机与硬件信息", "noProfile": "节点已接入,但尚未上报完整系统画像。", "noProfileLong": "节点已经接入,但还没有上报完整系统画像。", "snapshotTitle": "实时资源快照", "snapshotDesc": "最近一次 metrics 上报", "realtimeResources": "实时资源", "memory": "内存", "storage": "存储", "connections": "连接数", "snapshotAgo": "快照 {time}", "noSnapshot": "节点已接入,但尚未上报资源快照。", "noSnapshotLong": "节点已经接入,但还没有上报资源快照。", "cleanupTitle": "清理健康事件日志", "cleanupDesc": "该操作会删除此节点在控制端记录的所有健康诊断事件历史,不会影响后续新事件上报。", "cleaning": "清理中...", "confirmCleanup": "确认清理", "windowRequests": "查询窗口请求", "windowVisitorsHint": "查询窗口独立访客 {visitors} · 错误率 {rate}%", "noWindowSummary": "当前没有可展示的请求窗口摘要", "capacityPressure": "容量压力", "needsAttention": "需要关注", "normalRange": "正常范围", "cpuStorage": "CPU {cpu} · 存储 {storage}", "noResourceSnapshot": "当前没有资源快照", "sourceSignal": "来源信号", "requestTimes": "{count} 次请求", "noSourceDist": "当前没有来源分布数据", "systemInfo": "系统信息", "networkTraffic": "网络流量", "noActiveIssue": "无活动异常", "openrestyConn": "OpenResty 连接", "currentConn": "当前连接:", "throughputHint": "业务吞吐请看访问日志趋势(已提供/接收数据)", "windowVisitors": "查询窗口独立访客", "reqQps": "请求 {requests} · 估算 QPS {qps}", "noTrafficSummary": "暂无窗口流量摘要", "windowErrors": "查询窗口错误", "errorRate": "错误率 {rate}%", "noErrorSummary": "暂无错误率摘要", "noNetworkSnapshot": "节点已经接入,但还没有上报网络流量相关快照。", "trafficTrendDesc": "按小时聚合该节点的请求量和错误量。", "capacityTrendDesc": "观察该节点 CPU 与内存使用率在 24 小时内的变化。", "structureTitle": "请求结构分布", "structureDesc": "聚合最近 24 小时窗口上报,帮助判断错误集中在哪些状态码、流量集中在哪些域名。", "mainStatus": "主状态码", "times": "{count} 次", "noStatusDist": "暂无状态码分布", "topDomain": "Top Domain", "noDomainDist": "暂无域名分布", "resolvedEvents": "已恢复事件", "resolvedHint": "最近 24 小时已恢复健康事件", "statusDist": "状态码分布", "distEmpty": "暂无分布数据", "unknownLabel": "未知" }, "networkTrend": { "title": "24 小时网络趋势", "description": "按小时展示已提供/接收数据(访问日志);摘要为近 24 小时总量。", "summaryHint": "近 24 小时", "received": "接收数据", "provided": "已提供数据" }, "diskIo": { "title": "24 小时磁盘 IO 趋势", "description": "按小时展示磁盘读写速率(B/s),辅助判断日志放大、缓存抖动或磁盘压力。", "summaryHint": "近 24 小时 · 平均速率", "read": "磁盘读", "write": "磁盘写" } }, "performance": { "title": "性能", "description": "集中管理 OpenResty 全局性能参数,保存后进入统一配置发布链路。", "preview": "查看配置预览", "saved": "性能参数已保存", "saveFailed": "保存失败", "loadingAuth": "加载权限信息...", "forbiddenTitle": "权限不足", "forbiddenDesc": "只有管理员可以访问性能设置。", "loading": "加载性能参数...", "runtimeTitle": "连接与事件", "runtimeDesc": "worker、超时、请求体大小等运行参数", "proxyTitle": "反代缓冲与超时", "proxyDesc": "upstream 连接、缓冲与 WebSocket/HTTP3 开关", "gzipTitle": "压缩", "cacheTitle": "缓存", "cacheDesc": "单节点反代缓存优化场景", "errors": { "workerProcesses": "worker_processes 必须为 auto 或大于 0 的整数", "timeouts": "超时与连接参数必须为大于 0 的整数", "statusCode": "空白页面返回状态码必须在 100 到 999 之间", "bodySize": "client_max_body_size 格式不合法", "headerBuffers": "large_client_header_buffers 格式必须类似 \"4 16k\"", "proxyTimeouts": "代理超时参数必须为大于 0 的整数秒", "proxyBuffers": "proxy_buffers 格式必须类似 \"16 16k\"", "bufferSize": "缓冲大小必须为整数或带 k/m/g 单位的值", "gzipMinLength": "gzip_min_length 必须为大于 0 的整数", "gzipLevel": "gzip_comp_level 必须在 1 到 9 之间", "cachePath": "启用缓存时必须填写 proxy_cache_path 目录", "cacheFormat": "缓存 levels、inactive、max_size 或 lock_timeout 格式不合法", "cacheKey": "启用缓存时必须填写缓存 Key 模板" } }, "applyLogs": { "title": "应用日志", "description": "查看节点应用配置的成功、警告和失败记录,支持按 node_id 过滤。", "refresh": "刷新", "clear": "清空日志", "backToNodes": "返回节点", "totalRecords": "总记录数", "currentPage": "当前页", "totalPages": "总页数", "pageNodes": "当前页节点数", "nodeId": "Node ID", "nodePlaceholder": "输入 node_id 过滤应用日志", "pageSize": "每页条数", "pageSizeOption": "{count} 条", "filter": "筛选", "reset": "重置筛选", "emptyTitle": "暂无应用日志", "emptyDesc": "当前筛选条件下没有可展示的应用记录。", "colNodeId": "Node ID", "colVersion": "版本", "colResult": "结果", "colChecksum": "Checksum", "colTime": "时间", "colMessage": "消息", "colActions": "操作", "detail": "详情", "pageInfo": "第 {current} / {total} 页,共 {count} 条记录。", "prev": "上一页", "next": "下一页", "loadFailed": "加载失败", "cleared": "应用日志已清空", "clearedDesc": "共删除 {count} 条记录", "clearFailed": "清空应用日志失败", "unknownError": "未知错误", "clearTitle": "确认清空应用日志?", "clearDesc": "该操作将删除全部 {count} 条应用日志记录,且不可撤销。清空后节点仍会照常上报新的应用结果。", "clearing": "清空中...", "confirmClear": "确认清空", "success": "成功", "warning": "警告", "failed": "失败", "sheetTitle": "应用日志详情", "sheetDesc": "查看单条应用日志的完整结果与校验信息。", "versionBadge": "版本: {version}", "createdAt": "创建时间", "targetChecksum": "目标 Checksum", "mainChecksum": "主配置摘要", "routeChecksum": "路由配置摘要", "supportFiles": "支持文件数", "message": "消息", "close": "关闭" }, "configVersions": { "title": "配置版本", "description": "查看历史快照、预览待发布配置差异,并在需要时重新激活旧版本。", "refresh": "刷新", "cleanupOld": "清理旧版本", "viewDiff": "查看差异", "forcePublish": "强制发布", "previewPublish": "预览并发布", "emptyTitle": "暂无历史版本", "emptyDesc": "当前还没有可查看的发布记录,请先触发一次配置发布。", "colVersion": "版本号", "colStatus": "状态", "colAuthor": "创建人", "colChecksum": "Checksum", "colCreatedAt": "创建时间", "colActions": "操作", "active": "当前激活", "history": "历史版本", "system": "系统", "snapshot": "快照", "activate": "激活", "loadFailed": "加载失败", "previewLoadFailed": "加载预览失败", "diffLoadFailed": "加载差异失败", "publishSuccess": "发布成功", "publishSuccessDesc": "版本 {version}", "publishFailed": "发布失败", "activateSuccess": "激活成功", "activateSuccessDesc": "版本 {version}", "activateFailed": "激活失败", "cleanupDone": "清理完成", "cleanupDoneDesc": "已删除 {count} 个历史快照", "cleanupFailed": "清理失败", "unknownError": "未知错误", "confirmPublishTitle": "确认发布配置", "confirmPublishDesc": "将把当前待发布配置生成新版本并设为激活版本,节点将随后拉取更新。", "confirmPublish": "确认发布", "confirmForceTitle": "确认强制发布", "confirmForceDesc": "将忽略配置变化检查并立即生成一个新版本,请确认你确实需要重新发布。", "confirmActivateTitle": "确认激活版本", "confirmActivateDesc": "确认将版本 {version} 设为当前激活版本吗?", "confirmActivate": "确认激活", "previewTitle": "发布预览", "previewDesc": "查看待发布配置的渲染结果与支持文件。", "loadingPreview": "正在加载预览...", "routeCount": "规则 {count} 条", "websiteCount": "网站 {count} 个", "mainConfig": "主配置", "routeConfig": "路由配置", "supportFiles": "支持文件 ({count})", "noSupportFiles": "当前发布不需要额外支持文件。", "noChanges": "当前规则与已激活版本一致,无法重复发布。", "close": "关闭", "publishing": "发布中...", "diffTitle": "配置差异", "diffDesc": "对比当前待发布配置与已激活版本之间的差异。", "loadingDiff": "正在加载差异数据...", "activeVersion": "激活版本", "none": "无", "addedDomains": "新增域名", "removedDomains": "删除域名", "modifiedDomains": "修改域名", "itemCount": "{count} 项", "noChange": "无变更", "emptyValue": "空", "mainChanged": "主配置 已变化", "mainUnchanged": "主配置 无变化", "wafChanged": "WAF 已变化", "wafUnchanged": "WAF 无变化", "websiteDelta": "网站数 {from} → {to}", "optionKey": "参数", "activeValue": "激活值", "pendingValue": "待发布值", "noOptionChanges": "当前无 OpenResty 参数变化。", "snapshotTitle": "版本快照", "snapshotVersion": "版本 {version}", "snapshotDesc": "查看历史配置版本的完整快照内容。", "loadingSnapshot": "正在加载快照...", "createdBy": "创建人", "createdAt": "创建时间", "snapshotLoadFailed": "加载版本快照失败", "cleanupTitle": "清理历史快照", "cleanupDesc": "删除旧的历史快照配置,系统将始终保护当前已激活的版本不被删除。", "keepCount": "保留最近快照个数", "keepHint": "默认为 10 个,最少需保留 3 个。", "keepMin": "最少保留 3 个历史快照", "cleaning": "清理中...", "confirmCleanup": "确认清理" } }