mirror of
https://github.com/Rain-kl/OpenFlare.git
synced 2026-09-28 05:46:36 +08:00
1085 lines
44 KiB
JSON
1085 lines
44 KiB
JSON
{
|
||
"waf": {
|
||
"title": "WAF",
|
||
"createRule": "新建规则",
|
||
"ruleGroups": "规则组",
|
||
"ruleGroupsDesc": "使用可视化流程编排 WAF 防护规则;全局规则始终应用到所有网站。",
|
||
"refresh": "刷新",
|
||
"loading": "加载 WAF 规则组中...",
|
||
"empty": "暂无规则组,系统通常会自动创建全局规则组。",
|
||
"created": "规则已创建",
|
||
"groupDeleted": "规则组已删除",
|
||
"deleteTitle": "确认删除规则组",
|
||
"deleteDesc": "确认删除规则组「{name}」吗?删除后无法恢复。",
|
||
"deleting": "删除中...",
|
||
"confirmDelete": "确认删除",
|
||
"operationFailed": "操作失败",
|
||
"autoConfigMustBeObject": "自动配置必须是 JSON 对象。",
|
||
"autoConfigInvalid": "自动配置格式错误",
|
||
"saveFailed": "保存失败",
|
||
"enabled": "已启用",
|
||
"disabled": "已停用",
|
||
"enable": "启用",
|
||
"disable": "停用",
|
||
"global": "全局",
|
||
"custom": "自定义",
|
||
"allSites": "全部网站",
|
||
"siteCount": "{count} 个网站",
|
||
"columns": {
|
||
"name": "名称",
|
||
"type": "类型",
|
||
"status": "状态",
|
||
"nodeCount": "节点数",
|
||
"scope": "应用范围",
|
||
"updatedAt": "更新时间",
|
||
"actions": "操作"
|
||
},
|
||
"actions": {
|
||
"compose": "编排",
|
||
"delete": "删除"
|
||
},
|
||
"createDialog": {
|
||
"title": "新建 WAF 规则",
|
||
"description": "创建后将进入编排页面,通过处理单元配置规则执行流程。",
|
||
"name": "规则名称",
|
||
"namePlaceholder": "例如:入口防护",
|
||
"submit": "创建并编排"
|
||
},
|
||
"editor": {
|
||
"missingId": "缺少有效的规则 ID。",
|
||
"loadFailed": "规则加载失败,请重试。",
|
||
"reload": "重新加载",
|
||
"back": "返回",
|
||
"graphValid": "图校验通过",
|
||
"issueCount": "{count} 个问题",
|
||
"unsaved": "未保存",
|
||
"enableRule": "启用规则",
|
||
"format": "格式化",
|
||
"formatTitle": "自动整理节点与连线布局",
|
||
"saving": "保存中...",
|
||
"save": "保存",
|
||
"saved": "规则图已保存",
|
||
"conflict": "规则已在其他页面更新,请重新加载",
|
||
"saveCheckNodes": "保存失败,请检查标记的节点和连线",
|
||
"ruleEnabled": "规则已启用",
|
||
"ruleDisabled": "规则已停用",
|
||
"leaveTitle": "未保存的更改",
|
||
"leaveDesc": "存在未保存的更改,确定离开吗?",
|
||
"leaveConfirm": "确定离开",
|
||
"deleteNode": "删除节点",
|
||
"systemNodeLocked": "系统节点不可删除",
|
||
"deleteEdge": "删除连线",
|
||
"propsTitle": "节点属性",
|
||
"propsDesc": "配置当前处理单元",
|
||
"systemNodeNoConfig": "系统节点无需配置。",
|
||
"displayName": "显示名称",
|
||
"ips": "IP 地址",
|
||
"cidrs": "CIDR 网段",
|
||
"ipGroups": "IP 组",
|
||
"countries": "国家代码",
|
||
"countriesDesc": "共 {count} 个国家/地区,显示国家名与 ISO 代码",
|
||
"regions": "地区代码",
|
||
"regionsDesc": "共 {count} 个一级行政区,输入名称或代码搜索",
|
||
"uaCheck": "UA 检查",
|
||
"enableUaCheck": "开启 UA 检查",
|
||
"enableUaCheckTip": "开启后如果请求头不携带 UA 将返回 False",
|
||
"block": "屏蔽",
|
||
"blockTip": "命中返回 false,优先级高于匹配",
|
||
"blockBots": "屏蔽常见爬虫 UA",
|
||
"blockBotsTip": "浏览器或操作系统分类为 Bot(含 bot / spider / crawler / slurp 等特征,如 Googlebot)",
|
||
"blockAbnormal": "屏蔽非正常 UA",
|
||
"blockAbnormalTip": "浏览器分类为 Other 或 Unknown(不含搜索引擎等爬虫 Bot,爬虫请用上方开关)",
|
||
"blockCustom": "屏蔽自定义 UA",
|
||
"blockCustomTip": "原始 User-Agent 命中任一条正则时返回 false(Lua 模式语法)",
|
||
"customUaPatterns": "自定义 UA 正则",
|
||
"customUaPatternsTip": "每行一条 Lua 模式正则,命中任一条即 false;最多 32 条",
|
||
"uaMatch": "UA 匹配",
|
||
"matchMode": "匹配模式",
|
||
"matchModeTip": "浏览器与操作系统两侧都有选择时生效",
|
||
"matchOr": "或(OR)",
|
||
"matchAnd": "且(AND)",
|
||
"browsers": "浏览器",
|
||
"os": "操作系统",
|
||
"security": "安全防护",
|
||
"securityTip": "命中任意已启用规则返回 False",
|
||
"basicProtection": "基础防护",
|
||
"help": "说明",
|
||
"oneValuePerLine": "每行一个值",
|
||
"selectedCount": "已选择 {count} 项",
|
||
"pleaseSelect": "请选择",
|
||
"createLabel": "新建{label}",
|
||
"searchNameOrCode": "搜索名称或代码",
|
||
"addCode": "添加代码",
|
||
"searchOptions": "输入名称或代码搜索 {count} 个选项",
|
||
"noMatchingOptions": "没有匹配的选项",
|
||
"algorithm": "算法",
|
||
"algorithmFast": "快速",
|
||
"algorithmSlow": "稳健",
|
||
"difficulty": "难度",
|
||
"sessionTtl": "会话 TTL(秒)",
|
||
"challengeTtl": "挑战 TTL(秒)",
|
||
"statusCode": "HTTP 状态码",
|
||
"responseBody": "HTML 响应体",
|
||
"bytes": "字节",
|
||
"securityRules": {
|
||
"path_traversal": {
|
||
"label": "路径穿越防护",
|
||
"tip": "检测 Path / Query / Body 中的 ../ 与编码变种"
|
||
},
|
||
"file_inclusion": {
|
||
"label": "文件包含(LFI/RFI)",
|
||
"tip": "检测 Path / Query / Body 中的 php://、file://、/etc/passwd 等"
|
||
},
|
||
"sql_injection": {
|
||
"label": "SQL 注入",
|
||
"tip": "检测 Query / Body / Header / Cookie 中的 SQL 注入特征"
|
||
},
|
||
"command_injection": {
|
||
"label": "命令注入",
|
||
"tip": "检测 Query / Body / Header 中的 OS 命令注入特征"
|
||
},
|
||
"xss": {
|
||
"label": "XSS",
|
||
"tip": "检测 Query / Body / Header 中的反射型 XSS 特征"
|
||
},
|
||
"ssrf": {
|
||
"label": "SSRF",
|
||
"tip": "检测 Query / Body 中的内网地址与危险协议"
|
||
},
|
||
"malicious_upload": {
|
||
"label": "恶意文件上传",
|
||
"tip": "检测 Multipart 文件名与危险扩展名"
|
||
},
|
||
"xxe": {
|
||
"label": "XXE",
|
||
"tip": "检测 XML Body 中的外部实体特征"
|
||
},
|
||
"crlf_injection": {
|
||
"label": "CRLF 注入",
|
||
"tip": "检测 Header / Query / Body 中的换行注入"
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"ipGroups": {
|
||
"title": "IP 组",
|
||
"create": "新建 IP 组",
|
||
"listTitle": "IP 组列表",
|
||
"listDesc": "维护可被 WAF IP 黑白名单引用的手动、自动与订阅 IP 集合。",
|
||
"refresh": "刷新",
|
||
"loading": "加载 IP 组中...",
|
||
"empty": "暂无 IP 组,请先创建一个。",
|
||
"updated": "IP 组已更新",
|
||
"created": "IP 组已创建",
|
||
"deleted": "IP 组已删除",
|
||
"synced": "同步完成",
|
||
"ipRemoved": "IP 已移除",
|
||
"testHit": "规则测试完成,命中 {count} 个 IP",
|
||
"testMiss": "规则测试完成,当前未命中任何 IP",
|
||
"deleteTitle": "确认删除 IP 组",
|
||
"deleteDesc": "确认删除 IP 组「{name}」吗?删除后无法恢复。",
|
||
"deleting": "删除中...",
|
||
"confirmDelete": "确认删除",
|
||
"operationFailed": "操作失败",
|
||
"types": {
|
||
"manual": "手动",
|
||
"automatic": "自动",
|
||
"subscription": "订阅"
|
||
},
|
||
"enabled": "启用",
|
||
"disabled": "停用",
|
||
"noSyncRecord": "尚无同步记录",
|
||
"columns": {
|
||
"name": "名称",
|
||
"type": "类型",
|
||
"status": "状态",
|
||
"ipCount": "IP 数",
|
||
"refCount": "引用次数",
|
||
"syncStatus": "同步状态",
|
||
"updatedAt": "更新时间",
|
||
"actions": "操作"
|
||
},
|
||
"actions": {
|
||
"view": "查看",
|
||
"edit": "编辑",
|
||
"test": "测试规则",
|
||
"runNow": "立即执行",
|
||
"syncNow": "立即同步",
|
||
"delete": "删除"
|
||
},
|
||
"ban": {
|
||
"permanent": "永久",
|
||
"expired": "已过期",
|
||
"minutesLater": "{count} 分钟后",
|
||
"hoursLater": "{count} 小时后"
|
||
},
|
||
"presets": {
|
||
"scan404": "单 IP 404 高频扫描",
|
||
"directAccess": "单 IP 直连访问异常"
|
||
},
|
||
"dialog": {
|
||
"editTitle": "编辑 {name}",
|
||
"createTitle": "新建 IP 组",
|
||
"description": "维护可被 WAF IP 黑白名单引用的手动、自动与订阅 IP 集合。",
|
||
"name": "IP 组名称",
|
||
"nameRequired": "请输入 IP 组名称",
|
||
"type": "类型",
|
||
"enable": "启用 IP 组",
|
||
"enableDesc": "关闭后保留配置,但发布时不会展开到 WAF 运行时名单。",
|
||
"subscriptionUrl": "订阅 URL",
|
||
"subscriptionUrlRequired": "订阅类型需要填写订阅 URL",
|
||
"subscriptionFormat": "订阅格式",
|
||
"formatText": "文本列表",
|
||
"syncInterval": "同步间隔(分钟)",
|
||
"syncIntervalDesc": "最小 1 分钟,默认 1440 分钟。",
|
||
"mappingRule": "JSON 映射规则",
|
||
"mappingPlaceholder": "留空表示根数组",
|
||
"autoIntervalDesc": "定时从请求日志挖掘恶意 IP 的周期。最小 1 分钟,默认 1440 分钟。",
|
||
"presetRules": "预设规则",
|
||
"autoConfigJson": "自动配置 JSON",
|
||
"ipList": "IP / IP 段",
|
||
"ipListSubscriptionHint": "订阅同步会覆盖此列表;也可以先手动保存当前内容。",
|
||
"ipListManualHint": "支持单个 IP 或 CIDR,每行一个。",
|
||
"saving": "保存中...",
|
||
"save": "保存 IP 组"
|
||
},
|
||
"testDialog": {
|
||
"title": "自动规则测试结果",
|
||
"description": "基于当前自动配置 JSON 对请求日志进行回看测试。",
|
||
"testing": "测试中...",
|
||
"summary": "回看 {lookback} · 规则 {rules} 条 · 命中 {matched} 个 IP",
|
||
"testedAt": "测试时间:{time}",
|
||
"noMatch": "当前没有匹配到任何 IP。",
|
||
"empty": "暂无测试结果。",
|
||
"close": "关闭"
|
||
},
|
||
"viewDialog": {
|
||
"titleNamed": "查看 {name}",
|
||
"title": "查看 IP 组",
|
||
"summary": "{type} · 共 {count} 条 IP",
|
||
"summaryFiltered": "{type} · 共 {count} 条 IP(匹配 {matched} 条)",
|
||
"searchPlaceholder": "搜索 IP 地址...",
|
||
"clearSearch": "清空搜索",
|
||
"noSearchResult": "未找到匹配的 IP 地址。",
|
||
"fallbackDesc": "查看当前 IP 组中的 IP 列表,并可移除不需要的条目。",
|
||
"loading": "加载 IP 列表...",
|
||
"noGroup": "未选择 IP 组。",
|
||
"emptyAuto": "该自动规则暂未抓取任何 IP,可点击「立即执行」手动触发抓取。",
|
||
"empty": "当前 IP 组暂无 IP 条目。",
|
||
"subscriptionHint": "订阅类型在下次同步时可能重新拉取已删除的 IP。",
|
||
"ipAddress": "IP 地址",
|
||
"capturedAt": "抓取时间",
|
||
"banRemaining": "封禁剩余",
|
||
"actions": "操作",
|
||
"deleteIp": "删除 {ip}",
|
||
"close": "关闭",
|
||
"deleteTitle": "确认删除 IP",
|
||
"deleteDesc": "确认从 IP 组「{name}」中移除 {ip} 吗?",
|
||
"deleting": "删除中...",
|
||
"confirmDelete": "确认删除"
|
||
},
|
||
"autoConfigMustBeObject": "自动配置必须是 JSON 对象。"
|
||
},
|
||
"rateLimits": {
|
||
"title": "限流",
|
||
"subtitle": "查看边缘请求压力,并配置站点默认并发与带宽限流。",
|
||
"loadingAuth": "加载权限信息...",
|
||
"forbiddenTitle": "权限不足",
|
||
"forbiddenDesc": "只有管理员可以访问限流设置。",
|
||
"tabAnalysis": "分析",
|
||
"tabConfig": "配置",
|
||
"loadingPage": "加载限流页面...",
|
||
"loadingPressure": "加载请求压力...",
|
||
"loadFailed": "加载失败",
|
||
"emptyTitle": "暂无数据",
|
||
"emptyDesc": "当前时间范围内没有可用的访问日志。",
|
||
"topHost": "平均 RPS 最高域名",
|
||
"topIp": "平均 RPS 最高 IP",
|
||
"avgRate": "{range}平均请求速率",
|
||
"range": {
|
||
"h24": "24 小时",
|
||
"h72": "3 天"
|
||
},
|
||
"chart": {
|
||
"title": "请求压力",
|
||
"empty": "暂无请求压力数据",
|
||
"requestRate": "请求速率",
|
||
"uniqueVisitors": "独立访客",
|
||
"visitorsPerBucket": "访客 / 桶"
|
||
},
|
||
"config": {
|
||
"saved": "限流参数已保存",
|
||
"saveFailed": "保存失败",
|
||
"loading": "加载限流参数...",
|
||
"preview": "查看配置预览",
|
||
"title": "全局默认限流",
|
||
"description": "0 或空表示默认关闭;站点未单独配置时继承此处设置。修改后需在版本发布中生效。",
|
||
"save": "保存",
|
||
"connPerServer": "默认并发限制(每站点)",
|
||
"connPerServerHint": "站点最大并发连接数默认值",
|
||
"connPerIp": "默认单 IP 并发",
|
||
"connPerIpHint": "单个 IP 最大并发连接数默认值",
|
||
"limitRate": "默认限速",
|
||
"limitRateHint": "单请求带宽默认值,例如 512k 或 1m",
|
||
"reqPerIp": "默认单 IP 请求频率限制",
|
||
"reqPerIpHint": "单个 IP 请求频率默认值,例如 10r/s 或 100r/m,留空关闭",
|
||
"invalidConn": "并发限制请输入非负整数,或留空表示关闭",
|
||
"invalidRate": "限速格式不合法,请使用 512k、1m、纯数字,或留空关闭",
|
||
"invalidReq": "请求频率限制格式不合法,请使用类似 10r/s、100r/m,或留空关闭"
|
||
}
|
||
},
|
||
"pages": {
|
||
"title": "Pages",
|
||
"subtitle": "边缘静态站点托管,上传静态资源部署包并在代理规则中选择 Pages 上游。",
|
||
"refresh": "刷新",
|
||
"create": "新建项目",
|
||
"loadFailed": "加载失败",
|
||
"emptyTitle": "还没有 Pages 项目",
|
||
"emptyDesc": "先创建一个项目,再上传静态资源部署包。",
|
||
"enabled": "已启用",
|
||
"disabled": "已停用",
|
||
"spaFallback": "SPA fallback",
|
||
"strict404": "严格 404",
|
||
"currentActive": "当前激活",
|
||
"none": "暂无",
|
||
"activatedAt": "激活时间:",
|
||
"notActivated": "未激活",
|
||
"viewDetail": "查看详情",
|
||
"saveFailed": "保存失败",
|
||
"updated": "项目已更新",
|
||
"created": "项目已创建",
|
||
"deleted": "项目已删除",
|
||
"deleteFailed": "删除失败",
|
||
"editTitle": "编辑 Pages 项目",
|
||
"createTitle": "新建 Pages 项目",
|
||
"editorDesc": "配置静态站点托管参数,上传部署包后在代理规则中选择 Pages 上游。",
|
||
"settingsDesc": "配置静态站点托管参数,保存后会同步到项目详情与代理引用。",
|
||
"reset": "重置",
|
||
"saving": "保存中...",
|
||
"saveChanges": "保存修改",
|
||
"createProject": "创建项目",
|
||
"form": {
|
||
"name": "项目名称",
|
||
"nameRequired": "请输入项目名称",
|
||
"slug": "项目标识",
|
||
"slugPlaceholder": "留空自动生成",
|
||
"entryFile": "入口文件",
|
||
"entryRequired": "请输入入口文件",
|
||
"rootDir": "根目录",
|
||
"optional": "可选",
|
||
"spaFallback": "SPA fallback",
|
||
"spaFallbackDesc": "未命中静态文件时回退到指定路径",
|
||
"fallbackPath": "回退路径",
|
||
"fallbackPathPrefix": "回退路径必须以 / 开头",
|
||
"apiProxy": "API 反向代理",
|
||
"apiProxyDesc": "为静态站点附加 API 反代规则",
|
||
"matchPath": "匹配路径",
|
||
"matchPathPrefix": "匹配路径必须以 / 开头",
|
||
"backend": "后端地址",
|
||
"backendPrefix": "后端地址必须以 http:// 或 https:// 开头",
|
||
"rewrite": "重写规则"
|
||
},
|
||
"detail": {
|
||
"invalidId": "缺少有效的 Pages 项目 ID。",
|
||
"loading": "加载项目详情...",
|
||
"loadFailed": "项目详情加载失败",
|
||
"back": "返回列表",
|
||
"notFound": "Pages 项目不存在或已被删除。",
|
||
"deploymentCount": "{count} 个部署",
|
||
"tabDeployments": "部署",
|
||
"tabSettings": "设置"
|
||
},
|
||
"danger": {
|
||
"title": "危险区域",
|
||
"deleteProject": "删除项目",
|
||
"deleteHint": "将永久删除 {name}({slug})及其全部部署。",
|
||
"confirmTitle": "删除 Pages 项目",
|
||
"confirmDesc": "确认删除项目 {name} 吗?此操作不可恢复。",
|
||
"confirm": "确认删除"
|
||
},
|
||
"upload": {
|
||
"selectFile": "请选择部署包",
|
||
"success": "部署包上传成功",
|
||
"failed": "上传失败",
|
||
"unsupported": "仅支持 zip、tar.gz、tar.xz、tar.bz2、tar、7z 格式的部署包",
|
||
"title": "上传部署包",
|
||
"description": "上传不可变的静态资源压缩包,完成后可在部署历史中激活。",
|
||
"localPackage": "本地部署包",
|
||
"dropHint": "拖拽部署包到此处,或点击选择文件",
|
||
"selected": "已选择 {name}({size})",
|
||
"chooseArchive": "请选择一个受支持的压缩包。",
|
||
"entry": "部署入口",
|
||
"entryHint": "入口来自项目设置;部署包上传不会覆盖该配置。",
|
||
"processing": "服务端处理中",
|
||
"progress": "上传进度",
|
||
"pleaseWait": "请稍候",
|
||
"uploading": "上传中...",
|
||
"submit": "上传并创建部署"
|
||
},
|
||
"files": {
|
||
"loadFailed": "文件清单加载失败",
|
||
"empty": "暂无文件记录",
|
||
"path": "路径",
|
||
"size": "大小"
|
||
},
|
||
"history": {
|
||
"source": {
|
||
"manual_upload": "本地上传",
|
||
"manual_url": "URL 导入"
|
||
},
|
||
"trigger": {
|
||
"manual_upload": "手动上传",
|
||
"manual_url": "手动导入",
|
||
"manual_sync": "手动同步",
|
||
"scheduled_auto_update": "定时更新"
|
||
},
|
||
"fileMeta": "{checksum} · {count} 个文件 · ",
|
||
"createdAt": "创建于 {time}",
|
||
"activatedAt": " · 激活于 {time}",
|
||
"collapseFiles": "收起文件清单",
|
||
"expandFiles": "展开文件清单",
|
||
"deploymentNumber": "部署 #{number}",
|
||
"activate": "激活",
|
||
"delete": "删除",
|
||
"activated": "历史部署已激活;自动更新(如已开启)已关闭",
|
||
"activateFailed": "激活失败",
|
||
"deleted": "部署已删除",
|
||
"deleteFailed": "删除失败",
|
||
"activateTitle": "激活历史部署",
|
||
"deleteTitle": "删除部署",
|
||
"activateDesc": "激活其它历史部署会终止当前来源任务;若已开启自动更新,将同时关闭自动更新。",
|
||
"deleteDesc": "确认删除部署 #{number} 吗?此操作不可恢复。",
|
||
"confirm": "确认",
|
||
"loading": "加载部署历史...",
|
||
"loadFailed": "部署历史加载失败",
|
||
"productionHint": "当前对外生效的生产部署;切换激活状态后会立即生效。",
|
||
"manualUpload": "手动上传",
|
||
"emptyProductionTitle": "暂无 Production 部署",
|
||
"emptyProductionDesc": "上传本地部署包,或配置 Remote URL / GitHub Release 来源后同步发布。",
|
||
"historyHint": "部署记录不可变,来源信息是创建部署时的安全快照。可从历史部署激活或删除。",
|
||
"emptyTitle": "暂无部署",
|
||
"emptyDesc": "上传本地部署包,或配置 Remote URL / GitHub Release 来源后同步发布。"
|
||
},
|
||
"source": {
|
||
"status": {
|
||
"idle": "空闲",
|
||
"checking": "检查中",
|
||
"update_available": "有可用更新",
|
||
"syncing": "同步中",
|
||
"failed": "最近同步失败",
|
||
"attention": "需要确认"
|
||
},
|
||
"check": "检查",
|
||
"syncPublish": "同步并发布",
|
||
"missingExecutionId": "缺少任务执行 ID",
|
||
"actionDone": "部署源{action}完成",
|
||
"actionFailed": "部署源{action}失败",
|
||
"checkQueued": "检查任务已提交",
|
||
"checkQueueFailed": "检查任务提交失败",
|
||
"syncQueued": "同步任务已提交",
|
||
"syncQueueFailed": "同步任务提交失败",
|
||
"title": "部署源",
|
||
"loadingDesc": "加载来源配置...",
|
||
"independentDesc": "来源配置与部署历史相互独立。",
|
||
"loadFailed": "部署源加载失败",
|
||
"configDesc": "配置远端来源并同步发布;发布结果见部署历史。",
|
||
"manualBadge": "手动部署",
|
||
"localPackage": "本地部署包",
|
||
"noRemote": "当前没有持久化远端来源。上传部署包后,再从部署历史显式激活。",
|
||
"submitFailed": "来源任务提交失败",
|
||
"statusFailed": "任务状态读取失败",
|
||
"waitStopped": "自动等待已停止,任务可能仍在后台运行。",
|
||
"refreshStatus": "刷新任务状态",
|
||
"configure": "配置",
|
||
"checkUpdate": "检查更新",
|
||
"refresh": "刷新",
|
||
"confirmTitle": "确认发布当前 GitHub revision",
|
||
"confirmLead": "这将发布卡片当前显示的精确 revision:",
|
||
"revisionUnavailable": "当前 revision 已不可用,请刷新后重试",
|
||
"confirmPublish": "确认并发布",
|
||
"updated": "部署源已更新",
|
||
"updateFailed": "部署源更新失败",
|
||
"switchedManual": "已切换回手动部署",
|
||
"switchFailed": "切换失败",
|
||
"urlRequired": "请输入 Remote URL",
|
||
"urlInvalid": "请输入有效的 HTTP(S) URL",
|
||
"githubUrlInvalid": "请输入 https://github.com/'{owner}'/'{repo}' 格式的公开仓库地址",
|
||
"tagInvalid": "Release tag 须为有效 Git ref(1–255 字节,可使用 /、#、&、=)",
|
||
"assetInvalid": "Asset 文件名须为 1–255 字节,且不能是路径或包含控制、换行、双向文本字符",
|
||
"intervalInvalid": "检查间隔须为 5–1440 分钟的整数",
|
||
"useManual": "使用手动部署",
|
||
"saveRemote": "保存 Remote 来源",
|
||
"saveGithub": "保存 GitHub 来源",
|
||
"settingsTitle": "部署源设置",
|
||
"settingsDesc": "选择部署来源。",
|
||
"mode": "来源类型",
|
||
"manual": "手动部署",
|
||
"manualHint": "保留现有部署与当前生产版本,后续通过“上传部署包”创建新部署。",
|
||
"urlHint": "填写可直接下载的部署包 HTTP(S) 地址。",
|
||
"allowInsecure": "允许不安全的连接",
|
||
"allowInsecureDesc": "默认允许公网与内网地址;开启后跳过 TLS 证书校验,适用于自签名或私有 CA。",
|
||
"switchManualTitle": "切换回手动部署",
|
||
"switchManualDesc": "当前来源配置将被删除,但已有部署与当前生产版本会保留。",
|
||
"githubUrl": "GitHub 仓库 URL",
|
||
"githubUrlHint": "仅支持公开 github.com 仓库。",
|
||
"releaseSelect": "Release 选择",
|
||
"latestRelease": "最新 Release",
|
||
"pinnedTag": "固定 Tag",
|
||
"pinnedTagHint": "精确检查并同步指定 tag。",
|
||
"autoUpdate": "自动更新",
|
||
"autoUpdateHint": "检查到新的 Release 后自动同步并发布。",
|
||
"checkInterval": "检查间隔(分钟)",
|
||
"checkIntervalHint": "可设置为 5–1440 分钟。",
|
||
"assetName": "Release Asset 文件名",
|
||
"noRecord": "尚无记录",
|
||
"address": "地址",
|
||
"verifyCert": "校验证书",
|
||
"lastSync": "最近同步",
|
||
"neverSynced": "尚未同步",
|
||
"applied": "已应用",
|
||
"latestReleaseLabel": "最新 Release",
|
||
"pinnedTagLabel": "固定 Tag · {tag}",
|
||
"tagMissing": "未提供",
|
||
"assetChangedTitle": "Release Asset 发生变化,需要显式确认",
|
||
"assetChangedDesc": "当前远端 revision 与已发布内容不一致。请核对版本和资源后,再确认发布这一精确 revision。",
|
||
"autoUpdateOn": "已开启",
|
||
"autoUpdateOff": "已关闭",
|
||
"intervalMinutes": "{count} 分钟",
|
||
"nextCheck": "下次检查",
|
||
"waitingSchedule": "等待调度",
|
||
"lastCheck": "最近检查",
|
||
"neverChecked": "尚未检查",
|
||
"remote": "远端"
|
||
}
|
||
},
|
||
"accessLogs": {
|
||
"title": "访问日志",
|
||
"subtitle": "查看访问概览、IP 明细与请求日志。",
|
||
"refresh": "刷新",
|
||
"cleanup": "清理日志",
|
||
"tabOverview": "概览",
|
||
"tabIps": "IP 明细",
|
||
"tabList": "日志明细",
|
||
"cleaned": "已清理 {count} 条日志",
|
||
"cleanupFailed": "清理失败",
|
||
"loadingTitle": "加载访问日志",
|
||
"loadingDesc": "正在准备页面...",
|
||
"loadFailed": "加载失败",
|
||
"range": {
|
||
"h24": "24 小时",
|
||
"h168": "7 天",
|
||
"h360": "15 天",
|
||
"h720": "30 天"
|
||
},
|
||
"rangeHint": {
|
||
"hours24": "近 24 小时",
|
||
"days": "近 {count} 天",
|
||
"hours": "近 {count} 小时"
|
||
},
|
||
"sort": {
|
||
"logged_at:desc": "时间从新到旧",
|
||
"logged_at:asc": "时间从旧到新",
|
||
"status_code:desc": "状态码从高到低",
|
||
"status_code:asc": "状态码从低到高",
|
||
"remote_addr:asc": "IP 正序",
|
||
"remote_addr:desc": "IP 倒序",
|
||
"total_requests:desc": "请求数从高到低",
|
||
"total_requests:asc": "请求数从低到高",
|
||
"request_length:desc": "入站从高到低",
|
||
"request_length:asc": "入站从低到高",
|
||
"bytes_sent:desc": "出站从高到低",
|
||
"bytes_sent:asc": "出站从低到高",
|
||
"success_ratio:desc": "2xx 比例从高到低",
|
||
"success_ratio:asc": "2xx 比例从低到高",
|
||
"last_seen_at:desc": "最后访问从新到旧",
|
||
"last_seen_at:asc": "最后访问从旧到新"
|
||
},
|
||
"cache": {
|
||
"hit": "命中",
|
||
"origin": "回源",
|
||
"uncached": "未缓存"
|
||
},
|
||
"filters": {
|
||
"pickTime": "选择时间",
|
||
"remoteAddr": "来源 IP",
|
||
"remoteAddrPlaceholder": "按 IP 搜索",
|
||
"host": "访问域名",
|
||
"hostPlaceholder": "按域名搜索",
|
||
"statusCode": "状态码",
|
||
"statusCodePlaceholder": "输入状态码,如 404",
|
||
"more": "更多筛选",
|
||
"nodeId": "节点 ID",
|
||
"nodeIdPlaceholder": "按 node_id 搜索",
|
||
"path": "请求路径",
|
||
"pathPlaceholder": "按路径搜索",
|
||
"timeRange": "时间范围",
|
||
"pageSize": "每页条数",
|
||
"pageSizeItem": "{count} 条",
|
||
"apply": "筛选",
|
||
"clear": "清空"
|
||
},
|
||
"cleanupDialog": {
|
||
"invalidDays": "保留天数必须大于 0",
|
||
"title": "清理访问日志",
|
||
"description": "删除早于指定保留天数的访问日志记录,操作不可恢复。",
|
||
"policy": "保留策略",
|
||
"keepDays": "保留最近 {days} 天",
|
||
"custom": "自定义天数",
|
||
"customDays": "自定义保留天数",
|
||
"cleaning": "清理中...",
|
||
"confirm": "确认清理"
|
||
},
|
||
"detail": {
|
||
"title": "访问日志详情",
|
||
"description": "本条请求的全部业务字段。IP 访问分析请前往「IP 明细」。",
|
||
"logId": "日志 ID",
|
||
"requestTime": "请求时间",
|
||
"storedAt": "入库时间",
|
||
"node": "节点",
|
||
"nodeId": "节点 ID",
|
||
"clientIp": "客户端 IP",
|
||
"region": "地区",
|
||
"host": "域名",
|
||
"status": "状态码",
|
||
"cache": "缓存",
|
||
"bytesSent": "出站流量",
|
||
"requestLength": "入站流量",
|
||
"duration": "请求耗时",
|
||
"path": "路径",
|
||
"page": "当前第 {page} 页",
|
||
"prev": "上一页",
|
||
"next": "下一页",
|
||
"listTitle": "日志明细",
|
||
"empty": "暂无访问日志",
|
||
"time": "时间",
|
||
"view": "查看详情"
|
||
},
|
||
"ip": {
|
||
"needRange": "请填写开始与结束时间",
|
||
"invalidTime": "时间格式无效",
|
||
"endAfterStart": "结束时间必须晚于开始时间",
|
||
"maxRange": "时间范围不能超过 30 天",
|
||
"page": "当前第 {page} 页",
|
||
"total": " · 共 {count} 个 IP",
|
||
"prev": "上一页",
|
||
"next": "下一页",
|
||
"customRange": "自定义区间",
|
||
"customPending": "自定义(未应用)",
|
||
"timeRange": "时间范围",
|
||
"current": "当前:{range}",
|
||
"custom": "自定义",
|
||
"start": "开始",
|
||
"end": "结束",
|
||
"apply": "应用",
|
||
"applyHint": "修改时间后点击「应用」再查询;详情分析窗口与列表时长对齐。",
|
||
"sort": "排序",
|
||
"pageSize": "每页",
|
||
"title": "IP 明细",
|
||
"empty": "暂无 IP 数据",
|
||
"region": "地区",
|
||
"requests": "请求数",
|
||
"successRatio": "2xx 比例",
|
||
"inbound": "入站",
|
||
"outbound": "出站",
|
||
"lastSeen": "最后访问",
|
||
"view": "查看 IP 详情",
|
||
"dialogTitle": "IP 详情",
|
||
"dialogDesc": "。查看该 IP 的访问趋势、分布与 WAF IP 组操作。"
|
||
},
|
||
"analysis": {
|
||
"emptySeries": "暂无 {title} 数据",
|
||
"selectGroup": "请选择要加入的 IP 组",
|
||
"added": "已将 {ip} 加入 IP 组「{name}」",
|
||
"addFailed": "加入 IP 组失败",
|
||
"removed": "已从 IP 组「{name}」移除 {ip}",
|
||
"removeFailed": "移除失败",
|
||
"joinTitle": "将 IP 加入 IP 组",
|
||
"targetIp": "目标 IP:",
|
||
"loadingGroups": "加载 IP 组",
|
||
"loadGroupsFailed": "加载 IP 组失败",
|
||
"alreadyIn": "该 IP 已存在于以下 IP 组",
|
||
"alreadyInHint": "可选择删除,或继续添加到其他 IP 组。",
|
||
"entryCount": "{type} · {count} 条",
|
||
"delete": "删除",
|
||
"cannotDelete": "不可手动删除",
|
||
"notInAny": "该 IP 尚未加入任何 IP 组。",
|
||
"addToOther": "添加到其他 IP 组",
|
||
"noWritable": "没有可写入的手动 IP 组(或已全部包含该 IP)。",
|
||
"selectManual": "选择手动 IP 组",
|
||
"close": "关闭",
|
||
"processing": "处理中...",
|
||
"joinSelected": "加入所选 IP 组",
|
||
"recentHours": "近 {hours} 小时",
|
||
"invalidIp": "没有有效 IP。",
|
||
"addToGroup": "将 IP 加入到 IP 组",
|
||
"loading": "加载 IP 分析",
|
||
"loadFailed": "加载 IP 分析失败",
|
||
"totalRequests": "总请求",
|
||
"errors": "错误数",
|
||
"bandwidth": "已提供带宽",
|
||
"received": "接收数据",
|
||
"uniqueHosts": "独立域名",
|
||
"uniquePaths": "独立路径",
|
||
"trend": "IP 请求趋势",
|
||
"trendMeta": "{ip} · {range} · {minutes} 分钟桶",
|
||
"refresh": "刷新",
|
||
"trendFailed": "加载趋势失败",
|
||
"trendEmpty": "该 IP 在{range}内没有访问记录。"
|
||
},
|
||
"overview": {
|
||
"loadingTitle": "加载访问概览",
|
||
"loadingDesc": "正在聚合请求量、访问量与带宽趋势...",
|
||
"loadFailed": "加载访问概览失败",
|
||
"emptyTitle": "暂无概览数据",
|
||
"emptyDesc": "当前时间范围内没有可展示的访问统计。",
|
||
"uniqueVisitors": "{hint} · 独立访客",
|
||
"served": "{hint} · 已提供数据",
|
||
"requestsHint": "观察请求量是否出现异常抬升或回落。",
|
||
"requests": "请求量",
|
||
"deviceDesc": "按设备类型统计请求占比。",
|
||
"deviceEmpty": "暂无设备类型数据",
|
||
"statusDesc": "按 HTTP 状态码统计请求占比。",
|
||
"statusEmpty": "暂无状态码分布数据",
|
||
"topPathsDesc": "访问量最高的请求路径。",
|
||
"topHostsDesc": "流量集中的访问域名。",
|
||
"topIpsDesc": "请求次数最多的来源 IP。",
|
||
"browsersDesc": "按浏览器聚合的请求排行。",
|
||
"osDesc": "按操作系统聚合的请求排行。",
|
||
"uaDesc": "原始 User-Agent 请求排行。"
|
||
},
|
||
"toolbar": {
|
||
"hostsFiltered": "已筛选 {count} 个域名",
|
||
"filterByHost": "按域名筛选",
|
||
"filterHosts": "筛选域名",
|
||
"clear": "清除",
|
||
"searchPlaceholder": "搜索 Zone 或域名",
|
||
"loadingHosts": "加载域名…",
|
||
"loadHostsFailed": "加载域名失败",
|
||
"retry": "重试",
|
||
"noRegistered": "暂无已登记域名",
|
||
"noMatch": "没有匹配的域名",
|
||
"selectZone": "选择 Zone {name}",
|
||
"selectHost": "选择域名 {name}",
|
||
"selectedCount": "已选 {count} 个域名"
|
||
}
|
||
},
|
||
"cloudflare": {
|
||
"title": "Cloudflare",
|
||
"connectionSettings": "连接设置",
|
||
"addGroup": "新增分组",
|
||
"loadingOverview": "加载 Cloudflare 总览中...",
|
||
"notReadyTitle": "Cloudflare 连接尚未就绪",
|
||
"notReadyDesc": "请先导入现有 Cloudflare DNS 账号,或录入独立 API Token 并完成连接测试。",
|
||
"configure": "配置连接",
|
||
"groupsTitle": "指向分组",
|
||
"groupsDesc": "管理 Cloudflare A 记录对应的节点与域名成员。",
|
||
"loadingGroups": "加载指向分组中...",
|
||
"emptyTitle": "暂无指向分组",
|
||
"emptyDesc": "创建分组后,可将域名成员同步到指定的边缘节点。",
|
||
"enabled": "已启用",
|
||
"disabled": "已停用",
|
||
"memberSummary": "成员 {count} 个 · 新成员默认{proxy}橙云",
|
||
"proxyOn": "开启",
|
||
"proxyOff": "关闭",
|
||
"manage": "管理",
|
||
"sync": "同步",
|
||
"delete": "删除",
|
||
"created": "指向分组已创建",
|
||
"syncQueued": "分组同步任务已入队",
|
||
"deleted": "指向分组及远端记录已删除",
|
||
"deleteTitle": "删除指向分组",
|
||
"deleteDesc": "将删除 {name} 的全部成员及本模块管理的远端 A 记录。此操作不可撤销。",
|
||
"confirmDelete": "确认删除",
|
||
"loadingDetail": "加载分组详情中...",
|
||
"groupUpdated": "分组配置已更新",
|
||
"memberAddedOne": "域名已加入并排队同步",
|
||
"memberAddedMany": "已添加 {count} 个域名并排队同步",
|
||
"memberAddFailed": "添加失败:{count} 个域名未能加入",
|
||
"memberPartial": "部分成功:{succeeded} 个已加入,{failed} 个失败",
|
||
"proxyUpdated": "橙云设置已更新并排队同步",
|
||
"memberSyncQueued": "成员同步任务已入队",
|
||
"memberDeleted": "成员及远端 A 记录已删除",
|
||
"back": "返回列表",
|
||
"refresh": "刷新",
|
||
"edit": "编辑",
|
||
"addDomain": "添加域名",
|
||
"currentPoint": "当前指向",
|
||
"activeNode": "生效节点 {name} · {ip}",
|
||
"syncEnabled": "同步已启用",
|
||
"syncDisabled": "同步已停用",
|
||
"primaryNode": "主节点 {name}",
|
||
"backupNode": "备用节点 {name}",
|
||
"backupUnset": "未设置",
|
||
"members": "域名成员",
|
||
"membersDesc": "成员级橙云是同步时的唯一依据。",
|
||
"noMembers": "暂无域名成员。",
|
||
"columns": {
|
||
"domain": "域名",
|
||
"desiredIp": "期望 IP",
|
||
"status": "状态",
|
||
"proxied": "橙云",
|
||
"actions": "操作"
|
||
},
|
||
"pendingSync": "待同步",
|
||
"remove": "移出",
|
||
"groupDialog": {
|
||
"editTitle": "编辑指向分组",
|
||
"createTitle": "新增指向分组",
|
||
"description": "一期使用主节点作为生效节点;备用节点仅保存,不会自动切换。",
|
||
"name": "分组名称",
|
||
"primary": "主节点",
|
||
"primaryPlaceholder": "选择带 IPv4 的边缘节点",
|
||
"noIp": "未配置 IP",
|
||
"backup": "备用节点",
|
||
"none": "不设置",
|
||
"defaultProxied": "新成员默认开启橙云",
|
||
"enableSync": "启用同步",
|
||
"save": "保存"
|
||
},
|
||
"memberDialog": {
|
||
"title": "添加域名成员",
|
||
"description": "支持搜索筛选与批量勾选;加入后会创建或接管唯一同名 A 记录,多条同名 A 会拒绝同步。",
|
||
"zoneDomain": "Zone 域名",
|
||
"searchPlaceholder": "搜索域名或顶级域…",
|
||
"selected": "已选 {count}",
|
||
"visible": "可见 {count}",
|
||
"unselectAll": "取消全选",
|
||
"selectVisible": "全选可见",
|
||
"clear": "清空",
|
||
"noAvailable": "暂无可用域名(均已加入分组,或尚未在网站管理中添加)。",
|
||
"noMatch": "没有匹配的域名",
|
||
"groupByZone": "按顶级域分组",
|
||
"selectZone": "选择顶级域 {name}",
|
||
"zone": "顶级域",
|
||
"proxied": "开启橙云代理",
|
||
"submitCount": "添加并同步({count})",
|
||
"submit": "添加并同步"
|
||
},
|
||
"tasks": {
|
||
"pending": "等待中",
|
||
"running": "执行中",
|
||
"succeeded": "成功",
|
||
"failed": "失败",
|
||
"system": "系统",
|
||
"manual": "手动",
|
||
"retry": "重试",
|
||
"schedule": "定时",
|
||
"retried": "同步任务已重新下发",
|
||
"newTaskId": "新任务 ID:{id}",
|
||
"retryFailed": "任务重试失败",
|
||
"unknownError": "未知错误",
|
||
"title": "同步任务",
|
||
"description": "仅展示 Cloudflare 域名同步(sync_member)与分组同步(sync_group)的执行记录。",
|
||
"statusPlaceholder": "状态",
|
||
"allStatus": "全部状态",
|
||
"refresh": "刷新",
|
||
"loadFailed": "加载同步任务失败",
|
||
"loading": "加载同步任务中...",
|
||
"emptyTitle": "暂无同步任务",
|
||
"emptyDesc": "添加域名或同步分组后,这里会显示 Cloudflare 域名 / 分组同步执行记录。",
|
||
"columns": {
|
||
"task": "任务",
|
||
"status": "状态",
|
||
"trigger": "触发",
|
||
"duration": "耗时",
|
||
"result": "结果/错误",
|
||
"createdAt": "创建时间"
|
||
},
|
||
"pageSummary": "共 {total} 条,第 {page}/{pages} 页",
|
||
"prev": "上一页",
|
||
"next": "下一页",
|
||
"detailTitle": "同步任务详情",
|
||
"defaultName": "Cloudflare 同步",
|
||
"loadingDetail": "加载任务详情中...",
|
||
"status": "状态",
|
||
"trigger": "触发",
|
||
"retries": "重试",
|
||
"duration": "耗时",
|
||
"taskId": "任务 ID",
|
||
"createdAt": "创建时间",
|
||
"finishedAt": "结束时间",
|
||
"result": "执行结果",
|
||
"error": "错误信息",
|
||
"logs": "执行日志",
|
||
"close": "关闭"
|
||
},
|
||
"settings": {
|
||
"saved": "Cloudflare 连接配置已保存",
|
||
"verified": "Cloudflare 连接验证成功",
|
||
"cleared": "Cloudflare 连接已清除",
|
||
"back": "返回列表",
|
||
"title": "Cloudflare 连接设置",
|
||
"sourceTitle": "凭据来源",
|
||
"sourceDesc": "Token 建议授予 Zone:Read 与 DNS:Edit 权限;Token 不会在 API 或页面中回显。",
|
||
"source": "连接来源",
|
||
"importDns": "导入现有 DNS 账号",
|
||
"standalone": "独立 API Token",
|
||
"dnsAccount": "Cloudflare DNS 账号",
|
||
"selectAccount": "选择 DNS 账号",
|
||
"dnsHint": "仅显示类型为 cloudflare 的 DNS 账号。可前往",
|
||
"dnsLink": "DNS 账号",
|
||
"dnsHintAfter": "新增。",
|
||
"tokenKeep": "留空不会回显现有 Token;保存将替换",
|
||
"tokenEnter": "输入 Cloudflare API Token",
|
||
"save": "保存配置",
|
||
"test": "测试连接",
|
||
"clear": "清除连接",
|
||
"statusTitle": "当前状态",
|
||
"ready": "Token 已验证,Cloudflare 指向同步可以执行。",
|
||
"notReady": "保存配置后仍需测试连接;未验证状态下同步任务会被拒绝。"
|
||
}
|
||
},
|
||
"openflareOps": {
|
||
"saved": "OpenFlare 运维设置已保存",
|
||
"saveFailed": "保存失败",
|
||
"tokenRotated": "Discovery Token 已重新生成",
|
||
"tokenRotateFailed": "Token 轮换失败",
|
||
"kumaSynced": "Uptime Kuma 同步任务已执行",
|
||
"syncFailed": "同步失败",
|
||
"invalidParams": "参数校验失败",
|
||
"loading": "加载 OpenFlare 运维设置...",
|
||
"loadFailed": "加载失败",
|
||
"save": "保存",
|
||
"agent": {
|
||
"title": "Agent 运行参数",
|
||
"description": "心跳间隔与离线阈值会在下个心跳周期同步到节点。",
|
||
"heartbeat": "心跳间隔 ({duration})",
|
||
"offline": "离线阈值 ({duration})",
|
||
"wsUpgrade": "开启 WS 连接升级",
|
||
"wsUpgradeDesc": "HTTP 心跳成功后尝试升级为 WebSocket,配置发布可即时通知。",
|
||
"updateRepo": "Agent 更新仓库"
|
||
},
|
||
"geo": {
|
||
"title": "IP 归属解析",
|
||
"description": "控制节点地图等场景的 GeoIP 来源;访客访问记录归属地固定使用 MaxMind mmdb。",
|
||
"mode": "归属方式",
|
||
"disabled": "关闭",
|
||
"testIp": "测试 IP",
|
||
"querying": "查询中...",
|
||
"query": "查询归属",
|
||
"country": "国家/地区"
|
||
},
|
||
"pages": {
|
||
"title": "Pages 静态托管",
|
||
"description": "配置部署包上传体积上限与每个项目的历史部署保留数量。",
|
||
"maxSize": "部署包大小上限 (MiB)",
|
||
"history": "历史部署保留数(0 不限制)",
|
||
"historyHint": "每个项目最多保留 N 条部署:激活部署始终保留,其余按从新到旧填充;超出的非激活部署会在上传成功后自动清理。支持 zip、tar.gz、tar.xz、tar.bz2、tar、7z 格式。"
|
||
},
|
||
"discovery": {
|
||
"title": "Discovery Token 与部署",
|
||
"description": "新节点首次接入使用 Discovery Token;轮换请前往节点管理或使用下方操作。",
|
||
"manageNodes": "节点管理",
|
||
"rotate": "轮换 Token",
|
||
"tokenReadonly": "Discovery Token(只读)",
|
||
"loading": "加载中...",
|
||
"notGenerated": "未生成",
|
||
"command": "一键部署命令",
|
||
"commandHint": "请先填写可访问的 Server URL 并获取 Token。",
|
||
"copied": "命令已复制",
|
||
"copy": "复制命令"
|
||
},
|
||
"kuma": {
|
||
"title": "Uptime Kuma 集成",
|
||
"description": "将反代站点差分同步至 Uptime Kuma 监控实例。",
|
||
"syncNow": "立即同步",
|
||
"enable": "开启 Uptime Kuma",
|
||
"url": "Uptime Kuma 地址",
|
||
"username": "用户名",
|
||
"password": "密码",
|
||
"passwordKeep": "留空表示不更新",
|
||
"syncInterval": "同步间隔 (分钟)",
|
||
"scope": "监控范围",
|
||
"allSites": "全部站点",
|
||
"selectedSites": "选择站点",
|
||
"selectedLabel": "已选站点",
|
||
"pickSites": "选择监控站点",
|
||
"noneSelected": "未选择任何站点",
|
||
"interval": "检测频率 (秒)",
|
||
"retry": "重试次数",
|
||
"retryInterval": "重试间隔 (秒)",
|
||
"timeout": "请求超时 (秒)"
|
||
},
|
||
"duration": {
|
||
"minutes": "{count} 分钟",
|
||
"seconds": "{count} 秒"
|
||
},
|
||
"errors": {
|
||
"heartbeatMin": "心跳间隔不能小于 1000 毫秒。",
|
||
"offlineMin": "离线阈值不能小于 10000 毫秒。",
|
||
"offlineRatio": "离线阈值建议至少为心跳间隔的 3 倍。",
|
||
"kumaUrl": "请输入 Uptime Kuma 地址。",
|
||
"kumaUser": "请输入 Uptime Kuma 用户名。",
|
||
"syncInterval": "同步间隔必须为正整数。",
|
||
"interval": "心跳间隔必须为正整数。",
|
||
"retry": "重试次数必须为非负整数。",
|
||
"retryInterval": "心跳重试间隔必须为正整数。",
|
||
"timeout": "请求超时必须为正整数。",
|
||
"pagesSize": "Pages 部署包大小上限必须为 1~2048 MiB。",
|
||
"pagesHistory": "Pages 历史保留数必须为大于等于 0 的整数(0 表示不限制)。"
|
||
},
|
||
"status": {
|
||
"title": "系统状态",
|
||
"loadFailed": "获取系统状态失败",
|
||
"unknownError": "请求时发生未知错误",
|
||
"autoRefresh": "自动刷新",
|
||
"refresh": "刷新",
|
||
"overview": "服务概览",
|
||
"overviewDesc": "服务的基础生命指标",
|
||
"uptime": "服务运行时间",
|
||
"goroutines": "当前 Goroutines 数量",
|
||
"heapObjects": "Heap 对象数量",
|
||
"memory": "内存统计",
|
||
"memoryDesc": "主内存消耗概览",
|
||
"alloc": "当前内存使用量",
|
||
"totalAlloc": "所有已分配的内存",
|
||
"sys": "内存占用量",
|
||
"nextGc": "下次 GC 内存回收量",
|
||
"usageRatio": "当前使用率 (Alloc / Sys)",
|
||
"heapStack": "堆/栈详情",
|
||
"heapStackDesc": "运行时堆栈内存空间细节",
|
||
"heapAlloc": "当前 Heap 内存使用量",
|
||
"heapSys": "Heap 内存占用量",
|
||
"heapIdle": "Heap 内存空闲量",
|
||
"heapInuse": "正在使用的 Heap 内存",
|
||
"heapReleased": "已释放的 Heap 内存",
|
||
"stackInuse": "启动 Stack 使用量",
|
||
"stackSys": "已分配的 Stack 内存",
|
||
"structs": "底层及结构体内存",
|
||
"structsDesc": "运行时底层管理结构体开销",
|
||
"mspanInuse": "MSpan 结构内存使用量",
|
||
"mspanSys": "已分配的 MSpan 结构内存",
|
||
"mcacheInuse": "MCache 结构内存使用量",
|
||
"mcacheSys": "已分配的 MCache 结构内存",
|
||
"buckHashSys": "已分配的剖析哈希表内存",
|
||
"gcSys": "已分配的 GC 元数据内存",
|
||
"otherSys": "其它已分配的系统内存",
|
||
"gc": "垃圾回收与分配计数",
|
||
"gcDesc": "GC 历史数据与分配频次",
|
||
"numGc": "GC 执行次数",
|
||
"lastGc": "距离上次 GC 时间",
|
||
"pauseTotal": "GC 暂停时间总量",
|
||
"lastPause": "上次 GC 暂停时间",
|
||
"mallocs": "内存分配次数",
|
||
"frees": "内存释放次数",
|
||
"lookups": "指针查找次数"
|
||
},
|
||
"siteModal": {
|
||
"title": "选择监控站点",
|
||
"description": "选择要同步到 Uptime Kuma 的反代站点,支持按站点名称和域名搜索。",
|
||
"search": "搜索站点",
|
||
"searchPlaceholder": "按名称或域名搜索...",
|
||
"selectFiltered": "全选过滤项",
|
||
"clearFiltered": "清空过滤项",
|
||
"loading": "加载站点列表...",
|
||
"loadFailed": "加载站点失败",
|
||
"noMatch": "无匹配的站点",
|
||
"select": "选择",
|
||
"siteName": "站点名称",
|
||
"primaryDomain": "主域名",
|
||
"selectedCount": "已选择 {count} 个监控站点",
|
||
"save": "保存选择"
|
||
}
|
||
}
|
||
}
|