{
  "agents": {
    "sessionNotFound": "找不到 session：{{sessionId}}"
  },
  "notFound": "找不到",
  "needPath": "请指定路径",
  "needName": "请填写名称",
  "needHost": "请填写主机",
  "needDomain": "请填写域名",
  "needProjectName": "请填写项目名称",
  "needServerIp": "请指定服务器 IP",
  "passwordMin8": "密码至少 8 个字符",
  "invalidPath": "无效路径",
  "invalidIp": "无效 IP",
  "invalidIp46": "无效 IPv4／IPv6",
  "invalidPackageName": "软件包名称无效",
  "fileMissing": "文件不存在",
  "notRegularFile": "不是普通文件",
  "readFailed": "读取失败",
  "pathResolveFailed": "路径解析失败",
  "fieldInvalid": "字段 {{field}} 无效：{{value}}",
  "apt": {
    "updateIndex": "更新软件包索引"
  },
  "state": {
    "closed": "已关闭",
    "active": "运行中"
  },
  "cat": {
    "security": "安全",
    "mail": "邮件",
    "database": "数据库",
    "runtime": "执行环境"
  },
  "ssh": {
    "identityNotFound": "找不到 identity",
    "registrationNotFound": "找不到登记",
    "keyOkNologin": "Key accepted. Account has no login shell (nologin) — use SFTP. Treated as PASS.",
    "keyOkSftp": "SSH shell 被拒绝后，SFTP pwd 成功。"
  },
  "cdn": {
    "siteNotFound": "找不到 CDN 站点",
    "nodeMissing": "节点不存在",
    "loopbackOriginRemote": "来源是 127.0.0.1 — 这是该主机，而不是远程边缘。设置可达的源IP或bind_ip。",
    "originRemoteRewrite": "远程边缘将使用可达源 {{url}} 而不是环回。",
    "originRemoteUnknown": "来源是环回，并且没有已知的公共/LAN IP 或bind_ip — apply 将拒绝远程边缘，直到设置为止。",
    "needSshOrFleet": "远程边缘需要出站 SSH 身份（或用户名）或 /agents 队列会话。仅健康 URL 不适用传输。",
    "probe": {
      "timeout": "连接超时 {{ms}}ms（{{detail}}）。对端可能被防火墙挡住。",
      "dns": "DNS 查询失败（{{detail}}）。",
      "refused": "连接被拒 {{ms}}ms（{{detail}}）。端口未开或单向封锁。",
      "tls": "TLS 验证失败（{{detail}}）。",
      "unreach": "主机不可达 {{ms}}ms（{{detail}}）。",
      "http": "HTTP 探活失败 {{ms}}ms（{{detail}}）。"
    }
  },
  "backup": {
    "testUnsaved": "正在测试未保存的表单（尚未写入设置）。",
    "testIdentity": "ssh (identity) to {{spec}} ok",
    "sshAuthFailed": "SSH 密钥或密码被拒绝（公钥）。选择出站身份或安装 sshpass。",
    "remotePathIsFile": "远程路径 {{path}} 是一个文件。使用目录。",
    "remoteMkdirFailed": "无法创建远程目录：{{detail}}",
    "sidecarPushed": "还推送了 SQL sidecar {{name}}",
    "fileNotFound": "找不到备份文件",
    "resticNoPassword": "restic 已启用但未设置 password",
    "resticNotInPath": "restic 不在 PATH",
    "dbEnvUnreadable": "无法读取 .db.env，跳过 SQL 导出。",
    "dbEnvNoName": ".db.env 没有数据库名称，跳过 SQL 导出。",
    "targetOutside": "还原目标必须在项目家目录或公开文件根目录之内。",
    "controlPlaneDryRun": "仅预览 - 没有写任何东西。在面板中，使用“恢复”并确认要写入的短语。",
    "controlPlaneNeedConfirm": "完全控制平面恢复需要确认短语 RESTORE-CONTROL-PLANE。",
    "controlPlaneRestartAfter": "恢复成功后重新启动API。",
    "movedToTrash": "已将 {{name}} 移至回收区。{{days}} 日后永久删除。",
    "restoreNameExists": "无法还原 {{name}} — 已有同名备份档。",
    "restoredFromTrash": "已从回收区还原 {{name}}。",
    "trashEmptied": "已从回收区永久删除 {{n}} 个备份档。",
    "partialOk": "部分成功 — 略过 {{n}} 个专案"
  },
  "health": {
    "portListening": "埠 {{port}} 正在监听",
    "portNotListening": "埠 {{port}} 未在监听",
    "httpOk": "HTTP 正常 {{status}}",
    "httpFail": "HTTP 失败：{{detail}}"
  },
  "redis": {
    "cliMissing": "未安装 redis-cli",
    "requirepassAlreadySet": "Redis 已有 requirepass — 未覆写。",
    "requirepassApplied": "已在执行中套用 requirepass",
    "requirepassApplyFailed": "无法 CONFIG SET requirepass（将靠重启与设定档）",
    "generatedRequirepass": "已产生 Redis 密码（只显示一次）：{{password}}"
  },
  "nginx": {
    "reloaded": "nginx 已 reload",
    "configOk": "Nginx 配置检查通过",
    "reloadExit": "Nginx reload 结束码={{code}}",
    "managedDir": "管理配置目录：{{path}}",
    "includeHint": "在 Nginx 加入：include {{path}}/*.conf;",
    "removedOrphan": "已删除幽灵 Nginx conf {{path}}",
    "keptLiveSsl": "保留 {{path}} 的 HTTPS 区块（受管范本没有 listen 443）",
    "orphanCleanupFailed": "清理幽灵 Nginx conf 失败：{{detail}}",
    "settingsWritten": "已写入 Nginx 全局 snippet",
    "settingsNeedExecute": "应用需 YSK_EXECUTE",
    "reloadFailed": "nginx reload 失败"
  },
  "ssl": {
    "requestCert": "申请证书"
  },
  "ftp": {
    "startVsftpd": "启动 vsftpd",
    "writeVsftpd": "写入 vsftpd 配置",
    "vsftpdStarted": "vsftpd 已启动",
    "openPortsStep": "防火墙端口（需手动）",
    "openPortsReminder": "请在主机防火墙和云安全组放行 TCP：{{ports}}。套用 FTPS 不会代你开端口。",
    "openPortsPasvHint": "若登录成功但列目录 LIST 超时，多半是 PASV 数据端口被挡——要开齐 PASV 范围，不是只开 21。",
    "publicPlaintextBlocked": "拒绝在未启用 FTPS 时对外启动 FTP。请改为仅本机监听、选凭证启用 FTPS，或输入 PLAINTEXT 确认后才公开明文服务。"
  },
  "deploy": {
    "nodeMissingIsolated": "隔离部署找不到 Node：{{path}} — 请先安装 Node {{version}} toolchain 再部署。拒绝写入会 203/EXEC 的 unit。",
    "nodeMissing": "找不到 Node：{{path}} — 请安装 toolchain（Node {{version}}）再部署",
    "nodeRejectedPath": "project user 不能执行此 Node 路径：{{path}} — 应使用 {{planned}}",
    "unitUnhealthy": "systemd unit 不健康（{{detail}}）。journalctl -u {{unit}} — 203/EXEC 多半是 binary 对 project user 无权限",
    "skippedPanelNode": "已跳过 panel Node {{path}}（project user 无法执行，会导致 systemd 203/EXEC）",
    "usingFallback": "Node binary：使用 {{path}}（计划路径 {{planned}} 不存在）",
    "usingPanelExec": "Node binary：回退 panel execPath {{path}}",
    "usingPanelDegraded": "Node binary：degraded 部署使用 panel {{path}}（不适用于 systemd User=ysks_*）",
    "nodeNotFoundPlanned": "主机未找到 Node {{version}} — unit 将使用 {{planned}}；请安装 toolchain 再部署"
  },
  "files": {
    "needSrcDst": "请指定来源与目标路径",
    "pathOutsideSandbox": "路径超出沙箱范围：{{target}}",
    "notFoundRel": "找不到：{{relPath}}",
    "fileNotFoundRel": "找不到文件：{{relPath}}",
    "notFoundFrom": "找不到：{{fromPath}}",
    "alreadyExists": "已有同名项目：{{name}}"
  },
  "dns": {
    "needZoneServerIp": "请填写 zone 与 server IP",
    "noClusterPeer": "尚未登记集群 peer",
    "planOnly": "仅计划 — 需 apply=true（root + YSK_EXECUTE）写入 /etc/powerdns 并 rediscover",
    "needRootNamed": "需要 root + EXECUTE 才能更新 named.conf 并 rediscover",
    "noManagedZonesClear": "dataDir/dns/zones 无区域文件 — 将清空 PowerDNS YSK include",
    "bindRegistered": "PowerDNS BIND：已注册 {{count}} 个 zone（list-zones 已确认）",
    "listZonesIncomplete": "named.conf 已更新但 list-zones 未确认全部 zone — 不标 loaded",
    "noLaunchDefaultBind": "未找到 launch= — 默认走 bind 路径",
    "writeNotAnswerDig": "只写 zone 文件不会响应 dig — 需载入 PowerDNS（named.conf + rediscover）",
    "bindDigFailed": "zone 已列出但 dig SOA 失败 — 不标 loaded",
    "bindLoadedOk": "Zone {{zone}} 已挂入 PowerDNS BIND 且 dig OK",
    "bindSyncFailed": "BIND named.conf 同步失败或 dig 无应答",
    "bindSkipPdnsutil": "跳过 BIND 路径（后端偏好 pdnsutil）",
    "pdnsCtlNoConfirm": "有 pdns_control 但 zone 未确认；检查 named.conf 或用 pdnsutil 后端",
    "usingExistingZone": "使用现有 zone 文件：{{path}}",
    "healNeedRoot": "需要 root + EXECUTE 才能改写 pdns local-address",
    "pdnsUnitActive": "pdns 单元：active",
    "pdnsUnitInactive": "pdns 单元：非 active",
    "udp53Listening": "UDP/53：监听中",
    "udp53NotListening": "UDP/53：仍未监听",
    "healResyncOk": "已修复 listener 并重新同步 zone 到 PowerDNS BIND",
    "healResyncPartial": "listener 已修好但 zone 同步未完 — 请点「写入并加载区域」",
    "installAfterLoad": "安装后请 apply DNS zones（写 named.conf + rediscover）或 POST powerdns/load",
    "bindFileNotEnough": "BIND 后端：只写 zone 文件不够，需 named.conf include 才会响应 dig",
    "zeroDomainsHint": "PowerDNS list-zones: 0 — 磁盘有 zone 文件但未加载",
    "localAFailed": "本机 A 探测失败（www/ftp/@）zone={{zone}}",
    "publicNsCloudflare": "公网 NS 是第三方 DNS/CDN（例如 Cloudflare）— 公网 dig 不会用本机 zone",
    "publicNsOther": "公网 NS 不是本机 — 全球查询会忽略本机 PowerDNS，直到改注册商 NS",
    "publicNsHere": "公网 NS 似 in-zone（ns1/ns2.zone）— 外网可能查询你",
    "firewall53Hint": "ss 看不到 UDP/53 — 若外网 dig 失败请开放防火墙 53 both（TCP+UDP）",
    "applyDigOk": "PowerDNS BIND：list-zones + dig OK",
    "applyDigFail": "conf 已注册但 dig 仍空/REFUSED — 不标 applied",
    "applySyncIncomplete": "PowerDNS bind 同步未完 — 仅写盘。请检查 EXECUTE/root 或 pdns 日志",
    "writeOnlyHint": "仅写了 zone 文件 — 需 load/apply 挂 named.conf 才会应答",
    "noActiveUnit": "没有运行中的 named／bind9／pdns 单元",
    "pdnsUnitRestarts": "pdns 单元状态／重启次数：{{detail}}",
    "port53LoopbackOnly": "53 埠只绑在 loopback（systemd-resolved 127.0.0.53）— 不是产品权威 nameserver",
    "port53Closed": "53 埠未在听（UDP／TCP）",
    "udp53NotPublic": "UDP/53 未绑公网位址",
    "tcp53NotPublic": "TCP/53 未绑公网位址",
    "noManagedZones": "dataDir/dns/zones 没有管理中的 zone 档",
    "pdnsListZones": "PowerDNS list-zones：{{n}}",
    "lookupIgnoredAt": "dig 不可用 — 已忽略 @{{server}}。不会把系统 resolver 当成该服务器的答案。",
    "digNotInstalled": "dig 未安装",
    "digEmpty": "dig 无答案",
    "localAOk": "本机 A {{name}} → {{ip}}"
  },
  "db": {
    "needExecuteCreate": "服务器未开启系统变更权限，无法在管理面板创建数据库",
    "dryRunMysql": "dry-run：未创建数据库。加 --execute 且 YSK_EXECUTE=1 才真正 provision",
    "remoteNoCreds": "未存账号／密码——只测 TCP（登记 ≠ 已登录）。",
    "remoteReachable": "TCP {{host}}:{{port}} 可达（{{ms}}ms）。",
    "remoteUnreachable": "TCP {{host}}:{{port}} 关闭或被过滤（{{ms}}ms）。"
  },
  "net": {
    "invalidIface": "接口名称无效",
    "invalidDev": "dev 名称无效",
    "needNmActive": "无法持久化：需要 NetworkManager 活动连接"
  },
  "project": {
    "notFound": "找不到项目：{{id}}",
    "docRootMustBeRelative": "文档根必须为相对路径（相对于项目家目录），不可用绝对路径。",
    "docRootInvalid": "文档根路径无效（不可含 .. 或非法字符）。",
    "domainInvalid": "域名格式无效：{{domain}}",
    "domainInUse": "域名 {{domain}} 已被项目「{{other}}」使用。"
  },
  "email": {
    "domainNotFound": "找不到邮件域名：{{id}}",
    "wroteNginx": "已写入 Nginx 配置：{{nginxPath}}",
    "wrotePath": "已写入 {{path}}",
    "domainDeleted": "已删除域名 {{domain}}（邮箱 {{mailboxes}}、别名 {{aliases}}）",
    "domainDataDirRemoved": "已移除本机数据目录 {{path}}",
    "domainDataDirRemoveFailed": "无法移除数据目录 {{path}}：{{detail}}",
    "domainDeleteSystemHint": "控制面已删除；系统 MTA 映射若仍存在请重新应用其余域名或手动清理",
    "mailboxDeleted": "已删除邮箱 {{address}}",
    "mailboxNotFound": "找不到邮箱",
    "mailboxDataRemoved": "已移除本机目录 {{path}}",
    "domainDeleteConfirmMismatch": "确认字符串与域名不符，已拒绝删除",
    "domainDataKept": "已保留本机 dataDir 邮件数据（removeData=false）",
    "mailboxPasswordUpdated": "已更新 {{address}} 的密码",
    "mailboxStatusUpdated": "已将 {{address}} 状态设为 {{status}}",
    "mailboxUpdateEmpty": "没有可更新项 — 请提供密码和/或状态",
    "mailboxStatusInvalid": "无效的邮箱状态",
    "mailboxNoChanges": "没有变更",
    "dovecotApplyNeedRoot": "套用 Dovecot 虚拟邮箱认证需要 root + YSK_EXECUTE",
    "dovecotNotInstalled": "本机未安装 Dovecot",
    "dovecotNoPassdbSnippets": "dataDir/email 下找不到域名 passdb snippet",
    "dovecotApplyFailed": "套用 Dovecot 虚拟邮箱认证失败：{{detail}}",
    "dovecotApplyOk": "已安装 Dovecot 虚拟邮箱认证（{{conf}}，{{count}} 个域名）",
    "dovecotPassdbWrittenNeedApply": "已写入 passwd-file（dataDir）— 需 EXECUTE+root 套用到 Dovecot 才可登录",
    "postqueueSetgidBroken": "Postfix 队列工具失败：main.cf 中 setgid_group 为空。应设为 postdrop（有 YSK_EXECUTE 时面板会尝试自动修复）。",
    "postqueueMailDown": "Postfix 未运行（showq 不可用）。有 YSK_EXECUTE 时面板会尝试启动 — 请检查软件分页或 systemctl status postfix。",
    "postqueueSpoolMissing": "Postfix 队列目录缺失（例如 hold/）。有 YSK_EXECUTE 时面板会尝试创建 spool 并启动 Postfix。",
    "invalidDomain": "请输入有效邮件域名",
    "invalidServerIp": "请输入有效服务器 IP",
    "mailboxLocalPartInvalid": "邮箱本机部分只可用英文字母、数字与 . _ + -",
    "passwordTooShort": "密码至少 8 个字元"
  },
  "software": {
    "startUnit": "启动 {{u}}",
    "installedSpec": "已安装 {{title}}",
    "installPkg": "安装 {{p}}",
    "npmGlobal": "npm install -g {{pkgs}}",
    "needNodeForNpm": "未找到 node／npm — 请先安装 Node.js 再安装 {{title}}",
    "uninstallNoTargets": "未选择要卸载的软件",
    "uninstallNothingInstalled": "所选范围内没有已安装项目",
    "uninstallProtected": "已跳过受保护组件：{{ids}}",
    "uninstallConfirmMismatch": "确认短语不匹配",
    "uninstallOk": "已卸载 {{n}} 个组件",
    "uninstallPartial": "卸载完成但有错误 — 请查看步骤"
  },
  "php": {
    "aptPackages": "将安装 {{count}} 个软件包：{{list}}"
  },
  "runtime": {
    "plugins": "一并安装工具：{{list}}",
    "pluginsOk": "选定工具已安装",
    "pluginsFailed": "部分工具安装失败或跳过：{{list}}",
    "pluginsUninstall": "卸载工具：{{list}}",
    "pluginsUninstallOk": "选定工具已卸载",
    "pluginsUninstallFailed": "部分工具卸载失败或跳过：{{list}}",
    "pluginsNoneToUninstall": "没有可卸载的工具（可能已移除或属必装）"
  },
  "approval": {
    "notFound": "找不到审批：{{id}}"
  },
  "readiness": {
    "core": "控制面",
    "security": "安全",
    "binaries": "二进制／软件包",
    "hosting": "托管",
    "dns": "域名系统",
    "email": "邮件",
    "isolation": "项目隔离",
    "ops": "运维",
    "runtimesNode": "Node.js",
    "runtimesPhp": "PHP",
    "runtimesPython": "Python",
    "runtimesGo": "Go",
    "pm2": "PM2",
    "runtimesNodeFix": "从 /runtimes/node 安装 Node",
    "runtimesPhpFix": "从 /runtimes/php 安装 PHP",
    "runtimesPythonFix": "从 /runtimes/python 安装 Python",
    "runtimesGoFix": "从 /runtimes/go 安装 Go",
    "pm2Fix": "从 Node 运行时页面安装 PM2"
  },
  "needAdmin": "需要管理员权限",
  "notInstalled": "未安装",
  "unknown": "未知",
  "failed": "失败",
  "running": "运行中",
  "stopped": "已停止",
  "probe": "探测",
  "install": "安装",
  "port": "端口",
  "git": {
    "missingBin": "git 不在路径上",
    "auth": "认证失败。添加部署密钥或 HTTPS 令牌。",
    "hostkey": "SSH 主机密钥验证失败。确认并固定主机密钥。",
    "dirty": "工作树有 {{count}} 个本地更改。拉动被阻止。",
    "diverged": "无法快进。如果您打算丢弃本地 Git 历史记录，请重置为远程引用。",
    "missingRef": "该分支、标签或提交不在远程上。",
    "shallow": "这个克隆很浅。在固定旧提交之前获取完整历史记录。",
    "notRepo": "app/ 还不是 Git 存储库。",
    "diffEmpty": "没有未暂存的差异（受保护的 .env 被排除）。",
    "unrelated": "无关的历史。仅在确认后重新克隆 - 自定义文件将丢失。",
    "lock": "Git index.lock 存在。仅当没有 git 进程正在运行时才将其删除。",
    "disk": "磁盘已满或超出配额。",
    "timeout": "Git 超时。",
    "network": "与远程通信时出现网络错误。",
    "lfs": "此存储库使用 Git LFS 并且 git-lfs 不可用。",
    "submodule": "子模块更新失败。",
    "unknown": "吉特失败了。查看命令输出。",
    "fetchOk": "从原产地获取。",
    "checkoutOk": "签出{{ref}}。",
    "resetOk": "硬重置为{{ref}}。",
    "envRestored": "从控制平面恢复了 app/.env。",
    "needPinHost": "SSH 主机密钥未固定。在克隆或获取之前扫描并固定它。",
    "tokenSaved": "已存储 HTTPS 令牌（不再显示）。",
    "tokenCleared": "HTTPS 令牌已删除。",
    "tokenInvalid": "令牌必须至少包含 8 个字符。",
    "deployKeyCreated": "已创建部署密钥。在 Git 主机上添加公钥。",
    "deployKeyCleared": "部署与该项目分离的密钥。",
    "hostPinned": "{{host}} 的固定 SSH 主机密钥。",
    "hostUnpinned": "清除固定的 SSH 主机密钥。",
    "hostScanFailed": "ssh-keyscan 没有返回该主机的密钥。",
    "hookEnabled": "入站 Git 挂钩已打开。自行将 URL 粘贴到 GitHub、Gitea 或 GitLab 中。",
    "hookDisabled": "入站 Git 挂钩已关闭。 URL 将不会同步。",
    "hookSecretOnce": "现在复制这个钩子秘密。它不再显示。",
    "refsNeedUrl": "首先输入 Git URL。",
    "refsOk": "已加载 {{branches}} 分支和 {{tags}} 标签。",
    "refsEmpty": "远程没有发布任何分支或标签。"
  },
  "auto": {
    "n0001": "状态：applied",
    "n0002": "找不到用户",
    "n0003": "blocked: 需要 YSK_EXECUTE=1",
    "n0004": "找不到資源",
    "n0005": "无法应用系統：需 YSK_EXECUTE + root",
    "n0006": "需要系統变更权限",
    "n0007": "状态：written",
    "n0008": "需要系統管理员（root）权限才能完成",
    "n0009": "创建账户数据库",
    "n0010": "完成",
    "n0011": "找不到账户",
    "n0012": "状态：failed",
    "n0013": "未运行",
    "n0014": "启动中",
    "n0015": "未安装 mysql 客戶端",
    "n0016": "未安装 psql",
    "n0017": "UFW 防火墙",
    "n0018": "运行环境",
    "n0019": "找不到 cron 工作",
    "n0020": "已匯入",
    "n0021": "以 root 执行",
    "n0022": "管理员双重验证",
    "n0023": "错误日誌路径",
    "n0024": "找不到站点",
    "n0025": "系统变更未开启",
    "n0026": "自动 ban 已熔断",
    "n0027": "請指定 agentId",
    "n0028": "找不到项目",
    "n0029": "需要 name",
    "n0030": "緊急",
    "n0031": "自動 ban 未开启",
    "n0032": "dry-run：此計劃未改系統",
    "n0033": "dry-run：未改系統",
    "n0034": "建議至少 1 個 replica",
    "n0035": "無节点 probe 成功",
    "n0036": "服务器未开启系統变更权限，无法 rsync",
    "n0037": "reapply 關鍵步驟失败",
    "n0038": "无法 bootstrap：未开启 YSK_EXECUTE",
    "n0039": "bootstrap 需要 YSK_EXECUTE=1",
    "n0040": "最大连接數",
    "n0041": "綁定位址",
    "n0042": "站点無域名",
    "n0043": "略過 draining",
    "n0044": "找不到 CDN 节点",
    "n0045": "每日（GitHub Releases latest）",
    "n0046": "execute 模式（仍需 YSK_EXECUTE 才能寫系統目录）",
    "n0047": "dry-run 默认：加 --execute 先同步到系統 nginx",
    "n0048": "需要管理员",
    "n0049": "projectId 與 name 必填",
    "n0050": "            ^.*账号或密码不正確.*$",
    "n0051": "            ^.*需要有效的双重验证碼.*$",
    "n0052": "  echo \"pdnsutil 找不到\" >&2",
    "n0053": " : ''}（重開可能消失；要持久請用「保存」）",
    "n0054": "# rsa_cert_file= (尚未选择有效证书)",
    "n0055": "$_GET / $_POST / $_COOKIE 變數上限",
    "n0056": "--password 需值，或設 YSK_MIGRATE_SSH_PASSWORD",
    "n0057": "-1 关闭；0 全部记录",
    "n0058": "/proc/meminfo 不可讀",
    "n0059": "/proc/stat 不可讀 — CPU% 无法計算",
    "n0060": "0 = 不限制；可設 256mb",
    "n0061": "0 = 使用全部 CPU",
    "n0062": "0（关闭）",
    "n0063": "1 分钟 load 超过 CPU×2",
    "n0064": "1. 於面板创建 MySQL 数据库",
    "n0065": "1=最安全；2=效能較佳",
    "n0066": "2. 下载 WordPress 到 app/public",
    "n0067": "3. 设置 wp-config.php",
    "n0068": "4. 部署 PHP + 發布 Nginx／SSL",
    "n0069": "A 记录值必須是 IPv4",
    "n0070": "A 记录必須是 IPv4",
    "n0071": "AAAA 记录值必須是 IPv6",
    "n0072": "AAAA 记录必須是 IPv6",
    "n0073": "AOF 持久化",
    "n0074": "Adminer 文件不存在；請 download:true",
    "n0075": "Agent 无法在全域範圍执行高風險写入",
    "n0076": "Agent 运行時",
    "n0077": "Allowlist 工具清單",
    "n0078": "Axum + Tokio；需 cargo build 下载 crates（需外網）",
    "n0079": "Axum 範本：cargo build --release 需外網 crates.io",
    "n0080": "Binlog 保留（天）",
    "n0081": "Binlog 保留（秒）",
    "n0082": "Binlog 格式",
    "n0083": "Bootstrap 第一個节点（僅一次）",
    "n0084": "Bot 扫描",
    "n0085": "CLI 啟用 OPcache",
    "n0086": "CONFIG SET databases 未成功（可能需重啟後生效）",
    "n0087": "CPU 配額須為 1–10000",
    "n0088": "Cloudflare UA 未成功",
    "n0089": "Cloudflare Under Attack 已請求",
    "n0090": "Cookie Secure（僅 HTTPS）",
    "n0091": "DB index 必須為 0–15",
    "n0092": "DB 標記已隔離但 home 目录不存在",
    "n0093": "DB 標記已隔離但 id 找不到用户 — 請重新创建系統用户",
    "n0094": "DB_PASSWORD 為空 — 請在資源頁创建 MySQL 後填入或設 WP_DB_* 環境變數",
    "n0095": "DDoS 啟發式",
    "n0096": "DKIM 公鑰",
    "n0097": "DMARC 政策",
    "n0098": "DNS written ≠ 公網 resolver 立即生效（受 TTL／上游快取影響）",
    "n0099": "DS 在 registrar 發佈前，請勿宣稱已上線。",
    "n0100": "Django 骨架：部署時 pip install django/gunicorn",
    "n0101": "Down 需 confirmName 等於接口名",
    "n0102": "EmailService 無 dataDir — 只寫数据库（需 dataDir 才建 Maildir）",
    "n0103": "FPM 重载失败",
    "n0104": "FTPS 需要域名",
    "n0105": "FastAPI + uvicorn；requirements.txt；/ 與 /health",
    "n0106": "Flask 最小 app.py；requirements.txt；/ 與 /health",
    "n0107": "GTID 模式：兩邊 conf 已開 gtid_mode=ON",
    "n0108": "Galera 僅支援 mariadb 引擎",
    "n0109": "Git URL 无效",
    "n0110": "GitHub package.json 缺少 version",
    "n0111": "GitHub release 缺少 tag",
    "n0112": "Go 运行时",
    "n0113": "Go 多版本",
    "n0114": "HTTP conf with ACME webroot（尚未掛 TLS）",
    "n0115": "HTTP 基本認證失败",
    "n0116": "HTTPS 站点建議开启",
    "n0117": "IMAP／POP 登入失败",
    "n0118": "IP 准入政策未啟用（只影響查詢／enrich）",
    "n0119": "IP 无效",
    "n0120": "IPv4 前綴須 0–32",
    "n0121": "IPv6 前綴須 0–128",
    "n0122": "InnoDB 提交刷盤",
    "n0123": "InnoDB 日志檔大小",
    "n0124": "InnoDB 緩衝池",
    "n0125": "Install and publish via admin panel (Webmail 安装).",
    "n0126": "L7 爆量／异常流量",
    "n0127": "LLM 回應格式异常（缺少安全標記）",
    "n0128": "Let’s Encrypt HTTP-01 需要 80 可達；DNS-01 則需 API token。",
    "n0129": "LimitNOFILE 須為 64–10000000",
    "n0130": "MTU 須在 68–65535",
    "n0131": "MX 指向邮件主機名",
    "n0132": "MX 格式：優先級 主機（例如 10 mail.example.com.）",
    "n0133": "MariaDB 服务器",
    "n0134": "MariaDB 特有：one-thread-per-connection / pool-of-threads",
    "n0135": "MySQL 服务器",
    "n0136": "MySQL/MariaDB 客户端",
    "n0137": "NetworkManager 不可用，无法写入 DNS",
    "n0138": "Nginx 收緊限速（約 8 req/s）",
    "n0139": "Nginx 極嚴限速（約 3 req/s）",
    "n0140": "Nginx 溫和限速（約 20 req/s）",
    "n0141": "Node 多版本",
    "n0142": "Node 安装失败",
    "n0143": "Node.js 起步",
    "n0144": "OPcache 内存（MB）",
    "n0145": "PHP docroot + wp-config 範例（核心需另下载）",
    "n0146": "PHP 多版本",
    "n0147": "PHP 进程启动後未取得进程編號",
    "n0148": "PHP 隔離 degraded — 未以项目 Linux 用户（需 root + 创建系統用户）",
    "n0149": "PID 必須為正整數",
    "n0150": "PID 无效",
    "n0151": "PING 成功",
    "n0152": "PM2 启动失败 — 改用 pidfile 启动",
    "n0153": "PM2 进程管理",
    "n0154": "POST 體積上限",
    "n0155": "Per-sender：依 envelope sender domain 計 msgs/hour；超限 DEFER_IF_PERMIT",
    "n0156": "Postfix suspend map 已应用（check_recipient_access REJECT）",
    "n0157": "PostgreSQL 服务器",
    "n0158": "PostgreSQL 服务器尚未安装",
    "n0159": "PostgreSQL 客户端",
    "n0160": "PostgreSQL 服务未运行",
    "n0161": "PowerDNS 工具",
    "n0162": "Primary：创建 replication 用户（SQL 腳本）",
    "n0163": "Python Django（骨架）",
    "n0164": "Python 多版本",
    "n0165": "Python 行为",
    "n0166": "RDB 快照规则",
    "n0167": "RDB 檔名",
    "n0168": "RUSTFLAGS（构建）",
    "n0169": "Redis dbIndex 須為 0–15",
    "n0170": "Redis dump 需要 YSK_EXECUTE=1",
    "n0171": "Redis 服务器",
    "n0172": "Redis 服务器尚未安装或无法连接",
    "n0173": "Redis 启动後仍无法 PING",
    "n0174": "Redis 客户端",
    "n0175": "Redis 已启动",
    "n0176": "Redis 还原需要 YSK_EXECUTE",
    "n0177": "Renewal via certbot.timer（dns-01 續期需自動化插件）",
    "n0178": "Rust 构建／运行",
    "n0179": "S3 bucket/path 未设置",
    "n0180": "SFTP .ssh chown 需 root + YSK_EXECUTE",
    "n0181": "SIGKILL 需 confirmKill: true",
    "n0182": "SMTP 濫用／暴力",
    "n0183": "SPF 政策",
    "n0184": "SRV 建議格式：priority weight port target",
    "n0185": "SSH 暴力破解",
    "n0186": "SSH 连接失败",
    "n0187": "SSH 需要 YSK_EXECUTE=1",
    "n0188": "SSO 已验证（單次）· 含自動登入密码",
    "n0189": "SSO 已验证（單次）· 無密码",
    "n0190": "SST=mariabackup：各节点需 mariadb-backup",
    "n0191": "Session 保存方式",
    "n0192": "Session 嚴格模式",
    "n0193": "Session 存活秒數",
    "n0194": "TCP 連接 (inuse)",
    "n0195": "TOTP 确认成功",
    "n0196": "TasksMax 須為 1–1000000",
    "n0197": "UFW 未安装",
    "n0198": "UFW 状态读取失败",
    "n0199": "VACUUM 工作程序數",
    "n0200": "WAL 等級",
    "n0201": "Web + 邮件",
    "n0202": "Web UI:  找不到 (build apps/web or set YSK_WEB_ROOT)\\n",
    "n0203": "Web 主機",
    "n0204": "Web 接口建置",
    "n0205": "WebAuthn 註冊验证失败",
    "n0206": "WebDAV 未啟用",
    "n0207": "Webmail 域名无效",
    "n0208": "Wildcard／dns-01：certbot 需手動 TXT；面板會启动流程但 DS/TXT 需於 DNS 提供商完成",
    "n0209": "WordPress（PHP 骨架）",
    "n0210": "YSK PHP OK — WordPress 尚未安装\\\\n",
    "n0211": "YSK_EXECUTE 已开但进程非 root — 部分 systemctl／nginx reload 会被 blocked",
    "n0212": "YSK_EXECUTE 已开启",
    "n0213": "YSK_EXECUTE 未开 — written ≠ applied",
    "n0214": "YSK_EXECUTE 未开 — 应用到系统的操作会被 blocked",
    "n0215": "access log 解析失败",
    "n0216": "access=fleet 需要 fleetAgentId",
    "n0217": "action 須為 reboot | poweroff | cancel",
    "n0218": "apex + www（多 edge 預留）+ cdn 主機名佔位",
    "n0219": "apex CNAME 在多數授權服务器不建議／不相容",
    "n0220": "app.py 已存在 — 已略過",
    "n0221": "applied ≠ healthy — 請跑 probe 确认 wsrep",
    "n0222": "apply 後需 reload sshd；错误 Match 可能鎖死 — 先 dry-run",
    "n0223": "applySystem 已傳但本次無 suspend/autoreply 变更",
    "n0224": "apply_status=written（控制面成功 ≠ 系統 MTA 已生效；加 applySystem:true 先应用）",
    "n0225": "apps/web/dist 已存在",
    "n0226": "apt list --upgradable：無輸出（可能無更新或 apt 未就绪）",
    "n0227": "apt 安装失败",
    "n0228": "apt-get 可用",
    "n0229": "auto vacuum 关闭",
    "n0230": "blocked: 需要 HostExecutor + YSK_EXECUTE=1",
    "n0231": "bootstrap 中止：Node 失败",
    "n0232": "bootstrap 中止：apt 失败",
    "n0233": "bootstrap 關鍵步驟失败",
    "n0234": "candidateVersion 含非法字符",
    "n0235": "cargo 可执行檔",
    "n0236": "certbot exit 0 — 检查 /etc/letsencrypt/live/",
    "n0237": "chown 需要 YSK_EXECUTE + root",
    "n0238": "clone 前已清除佔位應用檔（YSK scaffold / stub）",
    "n0239": "cluster_size 未知或 0",
    "n0240": "command 含 ysk-server / ysk-server 特徵",
    "n0241": "control plane 文件不完整",
    "n0242": "cwd 不可讀",
    "n0243": "dataDir 不存在",
    "n0244": "dataDir 缺 ysk.json — 控制面状态不完整",
    "n0245": "dataDir/email 已存在",
    "n0246": "dataDir/web 已存在",
    "n0247": "database 找不到",
    "n0248": "db-util（FTP 账户库）",
    "n0249": "deployNode 只適用於 Node 项目",
    "n0250": "df 無可用 mount（或全被過濾）",
    "n0251": "dig 不可用，改用 node dns",
    "n0252": "dig 無答案（NXDOMAIN 或空）",
    "n0253": "dns-01：面板唔代填公網 TXT — 完成後再「分發 SSL」",
    "n0254": "dnssec-dsfromkey 未能產生 DS",
    "n0255": "dnssec-keygen 不在 PATH（apt install bind9-dnsutils）",
    "n0256": "dnssec-keygen 失败",
    "n0257": "dnssec-signzone 不可用 — 只保留密钥／DS",
    "n0258": "dnssec-signzone 未產生 .signed 檔",
    "n0259": "domain 必填",
    "n0260": "domain 找不到",
    "n0261": "dovecot reload 失败或服务未裝（sieve 檔已寫；唔標假 reload 成功）",
    "n0262": "预览试行机群派送（未入队列）",
    "n0263": "dry-run peer push 計劃（未 scp）",
    "n0264": "dry-run remote install（未 ssh）",
    "n0265": "dry-run transfer 完成（略過 full bootstrap）",
    "n0266": "dry-run — pass apply/execute 才寫 home 檔",
    "n0267": "dry-run — pass apply/execute 才真正 ssh",
    "n0268": "dry-run — 未写入 /etc",
    "n0269": "dry-run 默认：加 --execute 先应用 ufw",
    "n0270": "dry-run：inventory + preflight 通过，未 package/transfer",
    "n0271": "dry-run：僅探测／計劃。加 --execute 且 YSK_EXECUTE=1 先真正 provision",
    "n0272": "dry-run：已写入管理檔（dataDir）。加 execute + YSK_EXECUTE=1 + root 先裝系統 drop-in",
    "n0273": "dry-run：未封禁。加 --execute 且 YSK_EXECUTE=1 先真正 ban",
    "n0274": "dry-run：未解封。加 --execute 且 YSK_EXECUTE=1 先真正 unban",
    "n0275": "dryRun=true — 不實際变更 API",
    "n0276": "dryRun：未写入磁盘",
    "n0277": "dump 已写入 dataDir，尚未 transfer",
    "n0278": "enable 失败",
    "n0279": "execute 模式（仍需 YSK_EXECUTE=1 + root）",
    "n0280": "execute 需要 enqueue 回調",
    "n0281": "export 僅限 admin",
    "n0282": "fail2ban 应用指令失败",
    "n0283": "fail2ban 服务",
    "n0284": "fail2ban 未 active",
    "n0285": "fail2ban 未在跑",
    "n0286": "fail2ban 活躍封禁",
    "n0287": "fail2ban 状态读取失败",
    "n0288": "fail2ban：sshd、nginx-http-auth 等標準 jail",
    "n0289": "fd 計數不可用",
    "n0290": "files（文件）",
    "n0291": "fleet purge blocked — 需 enqueue 或 SSH",
    "n0292": "fleet 成員請用 db-cluster fleet --op probe --execute",
    "n0293": "fromPanel 僅限 admin",
    "n0294": "fromPanel 需要先 step-up：POST /api/v1/auth/totp/step-up",
    "n0295": "fullchain 必須是 PEM 证书",
    "n0296": "gateway 須為純 IP",
    "n0297": "geo apex：無 EDNS 時写入所有 geo 健康 edge 的 multi-A（唔係真·用户就近 Anycast）",
    "n0298": "geoMap 內無健康 edge — 回退全部健康 edge",
    "n0299": "geo：未设置 geoMap — 等同 multi_a（全部健康 edge）。請在站点 dns.geoMap 填 region→nodeIds",
    "n0300": "git binary 找不到 on PATH",
    "n0301": "git 可执行檔",
    "n0302": "go 可执行檔",
    "n0303": "healthUrl 必須是 http(s) URL",
    "n0304": "http-01 webroot — 需 80 端口可達且 ACME conf 已 fan-out",
    "n0305": "identity 未綁定 linuxUser/project — 无法寫 authorized_keys",
    "n0306": "ignoreip 來源：dataDir/fail2ban/ignoreip.txt",
    "n0307": "index.html + CSS，供 Nginx root 或靜態部署",
    "n0308": "install conf → systemctl restart mariadb（非 bootstrap 节点）",
    "n0309": "ip -j addr 無接口",
    "n0310": "job 無 manifest",
    "n0311": "journal 來源；實際可讀性視权限",
    "n0312": "journalctl 可能需要 root 或使用者在 systemd-journal／adm 組",
    "n0313": "key 不存在",
    "n0314": "key 不存在或未删除",
    "n0315": "kill -0 仍成功：進程可能為 zombie 或权限不足",
    "n0316": "kill -0 失败",
    "n0317": "last_apply applied 但 blocked",
    "n0318": "last_apply 同時 ok=true 與 blocked（不誠實）",
    "n0319": "local cache 目录空／新建",
    "n0320": "localhost 或 *",
    "n0321": "logical DB 0 … N-1；改後需重啟",
    "n0322": "logrotate 已安装",
    "n0323": "logrotate 未安装或不在 PATH",
    "n0324": "main.py 已存在 — 已略過",
    "n0325": "manage.py + minimal settings/urls/wsgi；需 pip install django",
    "n0326": "manifest 無 dumpRelPath — 未打包？",
    "n0327": "manifest 無 rdbRelPath",
    "n0328": "memoryMax 格式須如 512M 或 1G",
    "n0329": "migrate host 需 --execute + YSK_EXECUTE=1，或 --dry-run（僅 inventory+preflight）",
    "n0330": "migrate post 需 --execute 且 YSK_EXECUTE=1（在目標機执行）",
    "n0331": "migrate post 需要 YSK_EXECUTE=1",
    "n0332": "migrate post 需要 YSK_EXECUTE=1（應在目標機执行）",
    "n0333": "minimal bootstrap 失败",
    "n0334": "mysql 用户端",
    "n0335": "mysql-replica 僅支援 mysql 引擎",
    "n0336": "mysql_databases 列缺 name",
    "n0337": "named-checkzone 不在 PATH — 檔已写入，語法未验证",
    "n0338": "nginx -t 或 reload 失败",
    "n0339": "nginx -t 未通过，未重载",
    "n0340": "nginx reload ok · 状态：applied",
    "n0341": "nginx reload 失败",
    "n0342": "nginx 可执行檔",
    "n0343": "nginx 执行層已关闭（enforce.nginx=false）",
    "n0344": "nginx 服务",
    "n0345": "nice 須在 -20（最高優先）至 19（最低）",
    "n0346": "node 可执行檔",
    "n0347": "npm latest 缺少版本信息",
    "n0348": "npm 指令 exit 0 但仍找不到 binary — 软件包可能未提供 CLI 或 PATH 未更新",
    "n0349": "nullok 避免未寫檔用户被鎖",
    "n0350": "nullok：無 .google_authenticator 的用户仍可用 key 登入",
    "n0351": "open_basedir 路径限制",
    "n0352": "openssl 不可用，改用 YSK-SCRYPT 雜湊",
    "n0353": "openssl（信箱雜湊）",
    "n0354": "optionalEtc 失败不中止 transfer（可於目標重簽证书）",
    "n0355": "origin shield：此节点為 shield，直接連 origin",
    "n0356": "origin.kind 必須是 project 或 url",
    "n0357": "origin.project 需要 projectId",
    "n0358": "origin.url 必須是 http(s) URL",
    "n0359": "originShieldNodeId 必須在 edgeNodeIds 內",
    "n0360": "package dump 未完成 — 禁止 transfer",
    "n0361": "package 失败 — 不得進入 transfer",
    "n0362": "package 需要 YSK_EXECUTE=1",
    "n0363": "pam.d/sshd 尚未引用 pam_google_authenticator（檔寫了也未 enforce）",
    "n0364": "panel 尚未设置 2FA 或无 secret — 请先在「我的安全」启用 TOTP",
    "n0365": "panel 無 TOTP secret — 先在 Web 啟用 2FA 或勿用 --from-panel",
    "n0366": "panel 需把 login 失败写入可被 fail2ban 讀的 log（journal 或檔）",
    "n0367": "passkey 已登记",
    "n0368": "passkey 验证失败",
    "n0369": "passkey 验证成功",
    "n0370": "pdnsutil 找不到 — install PowerDNS tools or run helper script as root after install",
    "n0371": "peer SSH probe 需 YSK_EXECUTE=1（已只做本機）",
    "n0372": "peer 未探测（只 probe 本機）",
    "n0373": "peer 节点仍需各自应用 conf 並 join",
    "n0374": "php binary 找不到 — install php-cli",
    "n0375": "php 可执行檔",
    "n0376": "php 未在 PATH",
    "n0377": "pidfile 以控制面用户启动（degraded）",
    "n0378": "pidfile 启动未取得 pid",
    "n0379": "pm2 不在 PATH（仍可用 pidfile／systemd）",
    "n0380": "pm2 找不到 on PATH — install: npm i -g pm2",
    "n0381": "post-transfer 停在 reapply",
    "n0382": "post-transfer 停在 restore",
    "n0383": "postconf 未能确认 message_rate_limit（唔當完整 applied）",
    "n0384": "postgres-replica 僅支援 postgres",
    "n0385": "postgres_databases 列缺 name",
    "n0386": "postqueue 不可用或邮件堆疊未安装",
    "n0387": "preflight 失败",
    "n0388": "primary 無 binlog / MASTER STATUS 空",
    "n0389": "privkey 必須是 PEM 私鑰",
    "n0390": "productionReady 未達標（資料可能已齊）",
    "n0391": "ps 輸出無進程列",
    "n0392": "ps 降级：無 --sort／精簡字段",
    "n0393": "ps 降级：無 pri/vsz/stat 等欄",
    "n0394": "psql 用户端",
    "n0395": "purge 全部失败或無目標",
    "n0396": "python3 可执行檔",
    "n0397": "queued ≠ edge 已 purge",
    "n0398": "queued ≠ edge 已 reload — agent 需拉取並执行 cdn.edge.apply",
    "n0399": "queued ≠ edge 已执行 — Agents 纪录看 exit/JSON",
    "n0400": "realpath 快取大小",
    "n0401": "realpath 快取秒數",
    "n0402": "reapply 需要 YSK_EXECUTE=1",
    "n0403": "redis 集群僅支援 redis",
    "n0404": "registry shasum 非 sha256（npm 常用 sha1）— 以 npm integrity 為準",
    "n0405": "reload/restart 失败",
    "n0406": "remote post 失败 — 可於目標機手動 migrate post",
    "n0407": "restic 增量备份完成（written/applied 視 restic exit）",
    "n0408": "restic 已啟用但未设置 password — 拒绝使用內建默认密码（請在备份设置填寫）",
    "n0409": "restic 未啟用",
    "n0410": "restic 未啟用 — 无法列出 snapshots",
    "n0411": "restic 未啟用 — 請先在「遠端／排除」开启並设置 password",
    "n0412": "restic 未启用（仅 tar）",
    "n0413": "restic 未啟用（略過增量）",
    "n0414": "restic 未安装（不在 PATH），請於系統安装 restic 後再試",
    "n0415": "restore ok；略過 reapply/verify",
    "n0416": "restore 完成",
    "n0417": "restore 有失败項",
    "n0418": "restore 未完全成功",
    "n0419": "restore 需要 YSK_EXECUTE=1",
    "n0420": "restore+reapply ok；略過 verify",
    "n0421": "rsync dataDir 失败",
    "n0422": "rsync 需要 YSK_EXECUTE=1",
    "n0423": "scp 已写入但无法 reload：遠端無 rndc/named/bind9/pdns",
    "n0424": "scp 成功 ≠ peer 已 restart / 已 join",
    "n0425": "secrets key 可用",
    "n0426": "secrets master key 存在",
    "n0427": "sentinel 模式但未登记 sentinel 角色成員",
    "n0428": "sentinel：INFO replication 僅作參考；請查 sentinel masters",
    "n0429": "server IP 必須是 IPv4",
    "n0430": "server IPv6 无效",
    "n0431": "setquota 不在 PATH — 僅控制面軟配額（deploy 前 du 擋）",
    "n0432": "shell 路径无效",
    "n0433": "signal 必須為 TERM | KILL | HUP | USR1",
    "n0434": "ssh true 成功 → verified",
    "n0435": "sshd keyboard-interactive / challenge-response 似已开启",
    "n0436": "sshd 可能未開 KbdInteractiveAuthentication — TOTP 无法在 SSH 提示",
    "n0437": "sshpass 可用（密码登入）",
    "n0438": "strict Match 僅針對已寫檔用户（password off）",
    "n0439": "symlink 指向敏感路径",
    "n0440": "symlink 逃出 log 目录",
    "n0441": "symlink 逃出项目 home",
    "n0442": "systemctl 指令失败",
    "n0443": "systemd 啟用失败 — 改試 PM2／pidfile",
    "n0444": "systemd 啟用未能执行：需要系統变更权限與管理员",
    "n0445": "target 格式：user@host 或 user@host:port",
    "n0446": "token 已使用",
    "n0447": "token 已過期",
    "n0448": "top -b 不可用（進程表仍以 ps 為準）",
    "n0449": "transfer 中止：dataDir rsync 失败",
    "n0450": "transfer 中止：无法创建遠端目录",
    "n0451": "transfer 完成（略過 full bootstrap）",
    "n0452": "transfer 已完成，但目標 restore/reapply/verify 失败",
    "n0453": "transfer 有失败項",
    "n0454": "transfer 校驗失败",
    "n0455": "transfer 需要 YSK_EXECUTE=1",
    "n0456": "transfer/bootstrap 失败",
    "n0457": "ufw 指令执行失败",
    "n0458": "unit 與 action 必填",
    "n0459": "useradd 需要 YSK_EXECUTE + root",
    "n0460": "value 過大（上限 256KB）",
    "n0461": "verify 有關鍵不一致",
    "n0462": "verify 未通过 — 不得視為遷移完成",
    "n0463": "verify 通过 — job=done",
    "n0464": "vsftpd 启动失败",
    "n0465": "vsftpd 未能成功启动",
    "n0466": "weighted: 無 edge",
    "n0467": "wp-config.php 已存在 — 已略過",
    "n0468": "written ≠ Dovecot Pigeonhole 已加载 — 需 ManageSieve 或 symlink 到 user sieve",
    "n0469": "written ≠ Roundcube 已加载 — 用 enableSystem 或手動 symlink",
    "n0470": "已写入不等于已套用：需同步到系统 conf.d，并通过 nginx 检查后重新加载",
    "n0471": "written ≠ 公開可連 — 需 reverse proxy 到面板 /webdav",
    "n0472": "written ≠ 線上进程已重载",
    "n0473": "ysk-server CLI 安装失败 — 可稍後手動 npm i -g ysk-server",
    "n0474": "ysk-web 群組供 Nginx/www-data 讀靜態（非 world-readable）",
    "n0475": "ysk-web 群組需 YSK_EXECUTE + root（靜態 Nginx 可能无法讀 750 home）",
    "n0476": "ysk.json fingerprint 已變（可能 reapply 寫回）local≠source",
    "n0477": "ysk.json fingerprint 與來源一致",
    "n0478": "ysk.json fingerprint 與來源不同（若只清了 bind_ip 屬預期）",
    "n0479": "ysk.json 存在",
    "n0480": "ysk.json 校驗失败",
    "n0481": "zone apply blocked（無 EXECUTE）— 记录已更新於控制面",
    "n0482": "zone rectify 完成",
    "n0483": "zone 名稱无效",
    "n0484": "zone 找不到",
    "n0485": "zone 解析失败",
    "n0486": "一般查詢日志",
    "n0487": "一鍵安装",
    "n0488": "一鍵创建完成（draft 資源請到各頁「应用」）",
    "n0489": "上传與 POST",
    "n0490": "上次全部备份有失败",
    "n0491": "下一步：写入 conf → 应用 edges → DNS 同步（及可選 SSL）",
    "n0492": "下一步：將 PAM 片段併入 /etc/pam.d/sshd（nullok）",
    "n0493": "下一步：系統安装 libpam-google-authenticator + 合併 PAM 片段（見下方）",
    "n0494": "不可删除沙箱根目录",
    "n0495": "不可删除沙箱根目录或回收桶路径",
    "n0496": "不存在",
    "n0497": "不支援此操作方法",
    "n0498": "不支援的訊號（只允许 TERM / KILL / HUP / USR1）",
    "n0499": "不是資料夾",
    "n0500": "不能删除最後一個 admin",
    "n0501": "中繼埠號无效",
    "n0502": "中繼已应用到系統",
    "n0503": "中繼设置已写入 dataDir（应用到系統需开启系統变更）",
    "n0504": "主机 memory 使用率超过 90%",
    "n0505": "主機指標",
    "n0506": "主要内存快取，通常為 RAM 50–70%",
    "n0507": "二进制不在 PATH，服务无法就绪",
    "n0508": "二進制日志",
    "n0509": "互動超时（秒）",
    "n0510": "人必須做：雲防火墙、邮件 PTR/rDNS、舊機保留觀察期",
    "n0511": "今日已自動 vacuum",
    "n0512": "仍需到 Cron 頁「安装到系統 crontab」才會真正生效",
    "n0513": "以 Nginx root 或「靜態部署」提供 public/",
    "n0514": "以 root 启动 ysk-server 服务（systemctl / 控制面 unit）",
    "n0515": "以 root 启动並设置 YSK_EXECUTE=1（見主機设置／部署文件）",
    "n0516": "以控制面用户执行指令（degraded — 非项目 Linux 用户）",
    "n0517": "任意 shell — 默认拒绝",
    "n0518": "服务器字符集",
    "n0519": "服务器尚未安装對應程式（command -v 無結果）",
    "n0520": "服务器排序规则",
    "n0521": "服务器未安装 MySQL 客戶端",
    "n0522": "服务器未安装 PostgreSQL 客戶端",
    "n0523": "服务器未安装 Redis 客戶端",
    "n0524": "服务器未安装必要元件，无法在管理面板完成此操作",
    "n0525": "服务器未开启 YSK_EXECUTE",
    "n0526": "服务器未开启系統变更权限或缺少 root，无法在管理面板完成安装",
    "n0527": "服务器未开启系統变更权限，无法匯出 Redis",
    "n0528": "服务器未开启系統变更权限，无法在管理面板下载安装 Webmail",
    "n0529": "服务器未开启系統变更权限，无法完成应用",
    "n0530": "服务器未开启系統变更权限，无法创建 SSH 连接",
    "n0531": "服务器未开启系統变更权限，无法打包 dump",
    "n0532": "服务器未开启系統变更权限，管理面板无法完成系統層操作",
    "n0533": "服务器未开启系統变更权限：已写入管理檔，无法 named-checkzone / reload",
    "n0534": "服务器監聽埠",
    "n0535": "佇列為空",
    "n0536": "位元碼快取",
    "n0537": "使用 YSK-SCRYPT 後備雜湊（生產環境建議改為 openssl 雜湊）",
    "n0538": "使用 YSK_SECRETS_KEY",
    "n0539": "使用 baseUrl/.ysk-cdn-health 默认探活路径（C2 可裝 health location）",
    "n0540": "使用呼叫端指定版本（latestOverride）",
    "n0541": "使用環境變數 YSK_LATEST_VERSION（離線／測試覆蓋）",
    "n0542": "來源不可用",
    "n0543": "來源缺 mysqldump — package 階段將无法匯出 MySQL",
    "n0544": "來源缺 pg_dump — package 階段將无法匯出 Postgres",
    "n0545": "來源缺 redis-cli — package 階段將无法匯出 Redis RDB",
    "n0546": "來源缺 sshpass",
    "n0547": "來源需要 rsync（未安装）",
    "n0548": "來源預檢未通过",
    "n0549": "來源預檢通过",
    "n0550": "例如 128M、256M、512M、-1（無限）",
    "n0551": "例如 512MiB；留空不设",
    "n0552": "例如 900 1 300 10；空字串关闭",
    "n0553": "例：--member 10.0.0.3=replica:fleet:SESSION_UUID",
    "n0554": "供應商 = ASN（自治系統），非消費品牌名",
    "n0555": "保持 22/80/443；受攻擊時可手動關非必要埠",
    "n0556": "保留策略：最近 10 份",
    "n0557": "保護 ysk-server process.pid",
    "n0558": "保護模式",
    "n0559": "偵測到 pam_google_authenticator 模組",
    "n0560": "备份 tar 成功但远端／restic 有问题",
    "n0561": "僅 admin",
    "n0562": "僅 admin 可 impersonate",
    "n0563": "僅 admin 可执行整機電源操作",
    "n0564": "僅 apex A",
    "n0565": "已列出托管配置（未写入系统）",
    "n0566": "僅写入 PM2 设置，未启动程序",
    "n0567": "僅写入管理檔（未要求重载）",
    "n0568": "僅写入管理设置 — 就绪後再發布並重载",
    "n0569": "僅写入範本（未要求 enable）",
    "n0570": "僅控制面登记（apply:false）；密码只回傳一次",
    "n0571": "僅支援 postgres + postgres-replica",
    "n0572": "僅支援 redis + redis-replica|redis-sentinel",
    "n0573": "僅有磁盘佔用粗估，唔係 HIT 比率",
    "n0574": "僅見 stub resolv（127.0.0.53）；實際上行 DNS 請看 resolvectl",
    "n0575": "僅警告，可繼續",
    "n0576": "儀表為控制面彙總；公網流量／真實 CDN 命中率需 edge access log 含 cache status",
    "n0577": "保存後會於下次部署写入 systemd Environment / 进程 env",
    "n0578": "允许 URL include",
    "n0579": "允许 URL 當文件開",
    "n0580": "允许上传文件",
    "n0581": "免費最高細分：國家 + 省／州 + 城市（enrich）+ ASN；城市政策默认關",
    "n0582": "全部 edge fan-out applied",
    "n0583": "全部 edge fan-out 失败",
    "n0584": "全部 edge purge 成功",
    "n0585": "全部 peer nameserver 已 reload",
    "n0586": "全部 peer reload 失败 — 文件可能已在磁盘但權威未刷新",
    "n0587": "全部 peer 失败",
    "n0588": "全部 peer：zone 已推送並 remote reload 成功",
    "n0589": "全部成功",
    "n0590": "全部略过（没有可备份的 home）— 不视为失败",
    "n0591": "共享緩衝",
    "n0592": "共用同一 RDB，已还原",
    "n0593": "其他运行期变量",
    "n0594": "其他常用",
    "n0595": "分享不存在或已過期",
    "n0596": "分數極高 — 建議人手应用「緊急」檔（永不自動）",
    "n0597": "分数极高 — 紧急档需人手确认（永不自动）",
    "n0598": "列出目录",
    "n0599": "列出进程",
    "n0600": "删除 default 路由需 confirmDefault: true",
    "n0601": "删除文件或目录",
    "n0602": "删除系統用户 — 默认拒绝",
    "n0603": "删除被阻擋：未开启系統变更权限，且路径在管理資料目录外",
    "n0604": "到 fail2ban 頁应用並 enable 服务",
    "n0605": "到封禁頁一鍵开启（soft／normal）",
    "n0606": "加固",
    "n0607": "匯出不存在或已過期",
    "n0608": "受攻擊",
    "n0609": "另開 21 與 PASV 段",
    "n0610": "只寫管理檔",
    "n0611": "可应用系統",
    "n0612": "可手動打包 dataDir/clusters/<id>/",
    "n0613": "可查看设置；安装／重启／写入系统设置需要系统变更权限",
    "n0614": "可考慮切回「日常」或「加固」",
    "n0615": "可選安装 pm2：npm i -g pm2",
    "n0616": "可選：SSL、WP-CLI、外掛",
    "n0617": "同步账户",
    "n0618": "否則只允许还原到 .restic-restore-* 安全目录",
    "n0619": "启动、停止、重启、开机自启",
    "n0620": "启动进程後未取得进程編號",
    "n0621": "啟用 OPcache",
    "n0622": "啟用 SSL",
    "n0623": "啟用中",
    "n0624": "單一文件上限",
    "n0625": "單次最多文件數",
    "n0626": "單节点有 wsrep，但 HA 需 ≥2 节点",
    "n0627": "在「資源」创建 MySQL（或填入現有 DB）並設 WP_DB_* 環境變數",
    "n0628": "域名尚無郵箱 — 只保留 domain-level vacation 草稿",
    "n0629": "域名无效",
    "n0630": "域名状态：active（控制面旗標）",
    "n0631": "域名状态：suspended（控制面旗標；唔等於 Postfix 已拒信）",
    "n0632": "端口、绑定、连接上限",
    "n0633": "埠检查异常",
    "n0634": "运行时",
    "n0635": "执行緒模型",
    "n0636": "壓縮檔唔支援預覽（.gz 等）",
    "n0637": "壞 Bot",
    "n0638": "外網探测",
    "n0639": "失控時最後手段",
    "n0640": "软件包名不合法",
    "n0641": "软件包安装未能执行：需要系統变更权限",
    "n0642": "软件包更新需要系統管理员权限",
    "n0643": "应用到 vsftpd",
    "n0644": "应用到系統",
    "n0645": "应用防護檔只會寫管理檔；需 YSK_EXECUTE=1 + root 才 applied",
    "n0646": "威脅已回落",
    "n0647": "字串 intern 緩衝（MB）",
    "n0648": "存取密码",
    "n0649": "存在错误級問題，請修正後再 apply",
    "n0650": "安全 → 我的安全 → 启用 2FA；政策可开 requireAdminTotp",
    "n0651": "安全與路径",
    "n0652": "安装 PAM",
    "n0653": "安装 vsftpd",
    "n0654": "安装失败",
    "n0655": "安装软件包",
    "n0656": "安装完成",
    "n0657": "安装步驟",
    "n0658": "安装系統设置",
    "n0659": "完整",
    "n0660": "客戶端闲置超时",
    "n0661": "密码加密",
    "n0662": "密码只出現在 SQL 腳本佔位符 CHANGE_ME",
    "n0663": "密码已以 crypt 雜湊保存（唔存明文）",
    "n0664": "密码為空",
    "n0665": "密码登入需要 sshpass",
    "n0666": "密码登入需要本機安装 sshpass",
    "n0667": "密码至少需要 8 字符",
    "n0668": "密码過短（至少 8 字）— 郵箱已创建但未写入雜湊",
    "n0669": "密码需由安全管道设置",
    "n0670": "审批仍在等待中",
    "n0671": "审批動作與請求不符",
    "n0672": "审批已被拒绝",
    "n0673": "写入 NODE_OPTIONS=--max-old-space-size=N",
    "n0674": "写入 Nginx 限速 drop-in",
    "n0675": "写入 home 檔 ≠ PAM 已生效",
    "n0676": "写入失败",
    "n0677": "写入账户檔",
    "n0678": "写入文件",
    "n0679": "封存模式",
    "n0680": "將片段 Include 到 sshd_config，或 POST /api/v1/sftp/sshd-snippet/apply 安装",
    "n0681": "项目 Linux 用户隔離",
    "n0682": "项目 id 必填",
    "n0683": "项目 id 无效，无法產生 home",
    "n0684": "项目 id 過短，无法產生系統用户名",
    "n0685": "项目 internal-sftp Match 用户通常唔走 interactive shell — TOTP 主要影響 SSH shell/scp",
    "n0686": "项目 managed log 无效",
    "n0687": "项目不存在",
    "n0688": "项目不存在或未设置 home",
    "n0689": "项目名稱无法產生有效系統用户名",
    "n0690": "项目已恢復",
    "n0691": "项目已暫停（503）",
    "n0692": "项目创建失败，已中止",
    "n0693": "项目沒有 domain — 請先设置主域名",
    "n0694": "项目無 linux_user",
    "n0695": "项目級 purge 目前清主機共用 nginx cache 目录（非 per-vhost zone）",
    "n0696": "项目缺少 linuxUser — 无法创建對齊隔離的 FTP 账户",
    "n0697": "项目缺少 linux_user",
    "n0698": "项目覆寫只填要改的鍵；空白＝沿用全域",
    "n0699": "项目詳情 → 資源 → 创建系統用户／遷移到 /home/ysk-server-{id}（需 YSK_EXECUTE + root）",
    "n0700": "對齊 jail 擁有權",
    "n0701": "尚未 os_provisioned",
    "n0702": "尚未下载 GeoIP 庫 — 請在防護中心「IP 准入」按更新",
    "n0703": "尚未分配埠，請先部署项目",
    "n0704": "尚未同步到系統 Nginx（僅管理檔）",
    "n0705": "尚未在服务器创建 Redis 資源，請确认 redis-cli、TCP 與 YSK_EXECUTE=1",
    "n0706": "尚未应用到 vsftpd 服务 — 請使用「应用」或 vsftpd 服务頁完成启动",
    "n0707": "尚未应用邮件域名",
    "n0708": "尚未建置 Web 接口 — 僅 API 模式",
    "n0709": "尚未有本地 GeoIP 庫 — 請更新",
    "n0710": "尚未產生 DNSSEC 密钥",
    "n0711": "尚未登记 CDN 节点",
    "n0712": "尚未登记 passkey",
    "n0713": "尚未确认維護窗（package 階段會停服）",
    "n0714": "尚未设置 LLM 连接",
    "n0715": "尚未加载 zone：請於管理面板重試",
    "n0716": "尚無 CDN 站点",
    "n0717": "尚无托管 Nginx 配置",
    "n0718": "尚無可用 HIT/MISS 抽樣 — overall hit-rate 未知",
    "n0719": "尚無项目",
    "n0720": "尚無產物 — 請先 plan",
    "n0721": "就绪",
    "n0722": "工作階段保存與 cookie",
    "n0723": "已 enable --now fail2ban",
    "n0724": "已 galera_new_cluster（bootstrap）",
    "n0725": "已 reload fail2ban",
    "n0726": "已 reload nginx",
    "n0727": "已 restart fail2ban",
    "n0728": "已 scp zone 檔（written on peer ≠ named reloaded）",
    "n0729": "已 scp 到 peer /tmp（written on peer ≠ service restarted）",
    "n0730": "已 systemctl reload nginx",
    "n0731": "已下载並解壓 Roundcube",
    "n0732": "已停用 UFW（警告：主機埠將直接暴露）",
    "n0733": "已保存项目 php.ini 覆寫；重新应用 FPM／部署後生效",
    "n0734": "已保存管理设置（未应用到系統服务）",
    "n0735": "已保存设置（未要求应用系統）",
    "n0736": "已删除",
    "n0737": "已删除 key · 重寫 authorized_keys",
    "n0738": "已删除集群登记；系統 conf 需人手清理（v1 不自動拆除）",
    "n0739": "已删除本機臨時密钥",
    "n0740": "已即時 ip addr add（设置檔已写入，重開應仍在）",
    "n0741": "已即時应用 databases（部分選項仍需重啟）",
    "n0742": "已取消排程關機／重啟",
    "n0743": "已同步到系統並重载",
    "n0744": "已启动",
    "n0745": "已啟用 HSTS",
    "n0746": "已启用 NTP 同步",
    "n0747": "已啟用 UFW",
    "n0748": "已啟用 WebDAV · Basic 用户 ysk · 密码為本次 token（只显示一次）",
    "n0749": "已啟用 systemd 服务",
    "n0750": "已嘗試 stop redis",
    "n0751": "已嘗試清除 nginx cache 目录並 reload（若主機未開 proxy_cache 則可能無檔可清）",
    "n0752": "已在服务器完成证书申請流程",
    "n0753": "已应用 CF-only UFW（origin 只收 CF + 保留埠）",
    "n0754": "已应用 fail2ban",
    "n0755": "已应用中繼设置到系統 Postfix",
    "n0756": "已应用到系統 Nginx",
    "n0757": "已应用防火墙规则",
    "n0758": "已安装並嘗試啟用 ysk-server.service",
    "n0759": "已安装到目前程序用户的系統 crontab",
    "n0760": "已写入 .google_authenticator（含 5 組 scratch codes）",
    "n0761": "已写入 rspamd multimap + postfix snippet",
    "n0762": "已写入安装腳本",
    "n0763": "已写入控制面；請用「应用限制到 OS」或重新 Deploy 写入 unit",
    "n0764": "已写入管理 jail.local（未要求应用系統）",
    "n0765": "已写入管理文件；尚未套用到系统 conf.d",
    "n0766": "已写入设置檔（未下载软件包）",
    "n0767": "已写入調校檔；重新部署项目後才會進線上进程",
    "n0768": "已寫管理檔，但未应用系統 conf：需 YSK_EXECUTE=1",
    "n0769": "已寫管理檔，但未应用系統 conf：需要 root",
    "n0770": "已封锁：無真實 candidateVersion",
    "n0771": "已封锁：需确认高風險更新",
    "n0772": "已封锁：需要管理员权限",
    "n0773": "已创建 DNSSEC 目录（僅說明檔）",
    "n0774": "已從",
    "n0775": "已從庫移除（disk install 未自動清除；用 uninstall --purge）",
    "n0776": "已從控制面移除；系統账号需手動 DROP USER（誠實：未自動 drop）",
    "n0777": "已從连接",
    "n0778": "已拒绝",
    "n0779": "已拒绝 by allowlist",
    "n0780": "已拒绝：無真實升級目標",
    "n0781": "已扫描 nginx access log 樣本",
    "n0782": "已於 MySQL/MariaDB 创建只讀用户",
    "n0783": "已於 PostgreSQL 创建只讀角色",
    "n0784": "已是最新版本（頻道已确认）",
    "n0785": "已暫停",
    "n0786": "已清空全部佇列",
    "n0787": "已清除 catch-all",
    "n0788": "已產生 DS 紀錄（請自行提交 registrar — 面板唔會自動發佈）",
    "n0789": "已產生加密备份（同一 dataDir master key 可解密）",
    "n0790": "已用 SHA512-CRYPT 雜湊密码（Dovecot）",
    "n0791": "已略過 Nginx 设置检查（未安装或未開系統变更权限）",
    "n0792": "已登记上传证书路径（文件置於 /etc/ysk-server/certs）",
    "n0793": "已知惡意 UA",
    "n0794": "已确认",
    "n0795": "已确认維護窗",
    "n0796": "已移除控制面登记",
    "n0797": "已移除登记紀錄",
    "n0798": "已符合意圖隔離，無需遷移",
    "n0799": "已裝版本 = apt Candidate，無可用升級",
    "n0800": "已复制到 /etc/fail2ban/jail.local",
    "n0801": "已退役（磁盘文件未自動刪；可 uninstall）",
    "n0802": "已送出立即重啟指令",
    "n0803": "已送出立即關機指令",
    "n0804": "已重啟 postgresql",
    "n0805": "已重啟 redis-server",
    "n0806": "已重啟 redis-server 以应用需重啟項目",
    "n0807": "已重啟（重载不支援）",
    "n0808": "已重新啟用连接（重開仍在）",
    "n0809": "已重渲染 TLS edge conf（控制面）",
    "n0810": "已重载 Nginx (static site live if DNS points here)",
    "n0811": "已重新加载 Nginx",
    "n0812": "已开启系統变更权限（YSK_EXECUTE）",
    "n0813": "已附一次性登入密码 — Roundcube 外掛可自動 login",
    "n0814": "账户已登记於管理面；需系統权限才能讓 FTP 服务生效",
    "n0815": "账号已解鎖 (usermod -U)",
    "n0816": "账号已鎖定 (usermod -L)",
    "n0817": "常見漏洞路径扫描",
    "n0818": "庫中無此 IP 记录",
    "n0819": "创建系統用户需要系統管理员权限",
    "n0820": "创建邮件域名並於詳情頁应用",
    "n0821": "建置完成",
    "n0822": "建議切換至「受攻擊」防護檔",
    "n0823": "建議检查 SSH 與非必要埠",
    "n0824": "建議緊急檔",
    "n0825": "建議至少 1 個 replica；而家計劃仍可產生 primary conf",
    "n0826": "建議至少 2 個节点（生產建議 3）；而家計劃仍可產生",
    "n0827": "建議开启 CDN Under Attack 模式",
    "n0828": "建議开启自動 ban",
    "n0829": "強制 HTTPS（HTTP→301）",
    "n0830": "強制安全傳輸",
    "n0831": "強制離線模式",
    "n0832": "恢復：控制面 status=active",
    "n0833": "慢查詢日志",
    "n0834": "慢查詢閾值（ms）",
    "n0835": "慢查詢閾值（秒）",
    "n0836": "证书申請失败",
    "n0837": "應 ≥ 單一文件上限",
    "n0838": "應设置保留策略清理舊备份",
    "n0839": "成功僅代表此 target 可 BatchMode 登入，≠ 全域授權",
    "n0840": "或整數如 32767",
    "n0841": "所需软件均已安装",
    "n0842": "打包被权限/工具阻擋",
    "n0843": "批量封禁",
    "n0844": "找不到 CLI binary — systemd 唔會 enable 成 silent placeholder",
    "n0845": "找不到 DNS zone — 請在站点 dns.zoneId 指定，或先创建匹配域名的 zone",
    "n0846": "找不到 PowerDNS 工具 — 請安装 pdns-server / pdns-tools",
    "n0847": "找不到 Roundcube plugins 目录 — 已寫骨架；請安装 Roundcube 或傳 roundcubePluginsDir",
    "n0848": "找不到 SQL 檔",
    "n0849": "找不到 Sieve 腳本",
    "n0850": "找不到 config.inc.php — 請手動: $config[\\'plugins\\'][] = \\'ysk_sso\\';",
    "n0851": "找不到 edge.conf — 請先渲染",
    "n0852": "找不到 key",
    "n0853": "找不到 migrate job",
    "n0854": "找不到 pm2 — 无法以 PM2 停止",
    "n0855": "找不到別名",
    "n0856": "找不到集群",
    "n0857": "找不到可 reload 的本機 nameserver（rndc/named/bind9/pdns）",
    "n0858": "找不到可用证书 — 請先於 SSL 頁上传，或执行 LE 簽發",
    "n0859": "找不到可用的 NetworkManager 连接",
    "n0860": "找不到回收項目",
    "n0861": "找不到實例",
    "n0862": "找不到项目 access log — 請确认 nginx access_log 路径或日志檔存在",
    "n0863": "找不到方案",
    "n0864": "找不到步驟",
    "n0865": "找不到版本",
    "n0866": "找不到节点",
    "n0867": "找不到数据库",
    "n0868": "拒绝",
    "n0869": "拒绝 down loopback",
    "n0870": "拒绝 renice 自身控制面進程",
    "n0871": "拒绝 systemctl enable：未安装真實 agent CLI（避免 placeholder 假 running）",
    "n0872": "拒绝修改 loopback 位址（保護）",
    "n0873": "拒绝删除 loopback 核心地址",
    "n0874": "拒绝覆寫 homeDir — 請設 overwriteHome + confirmPhrase 或改用安全目標目录",
    "n0875": "拒绝訊號 PID 1（init/systemd 保護）",
    "n0876": "拒绝訊號疑似 ysk 控制面進程；進階可 forceControlPlane",
    "n0877": "拒绝訊號自身進程（ysk-server）；若確定需要請 forceSelf",
    "n0878": "拒绝读取敏感路径",
    "n0879": "拒绝路径穿越或非法字符",
    "n0880": "持久 default 路由需要 Gateway",
    "n0881": "持久化",
    "n0882": "指令參數為空",
    "n0883": "指令被阻挡：变更主机需开启系统变更权限（YSK_EXECUTE）",
    "n0884": "扫描",
    "n0885": "扫描路径",
    "n0886": "探测 INFO replication",
    "n0887": "探测 SHOW MASTER / REPLICA STATUS",
    "n0888": "探测 pg_is_in_recovery / pg_stat_replication",
    "n0889": "探测 wsrep（SHOW STATUS LIKE 'wsrep%'）",
    "n0890": "控制面已写入但尚未 applied 到系统 — 检查各功能页「应用」",
    "n0891": "控制面維持正常模式",
    "n0892": "控制面緊急降级（local ops）",
    "n0893": "控制面資料目录",
    "n0894": "控制面進入 ddos-protection 提示",
    "n0895": "推送結果不完整（partial/failed）",
    "n0896": "提升连接速度，僅用 IP 授權",
    "n0897": "提示：填 Cloudflare zones + CF_API_TOKEN 先可 Under Attack API",
    "n0898": "操作无法完成",
    "n0899": "收緊 Nginx 限速並強化 fail2ban",
    "n0900": "性能与资源",
    "n0901": "新 IP／域名不宜立刻高量出站。請检查 Spamhaus 等黑名單，並遵循暖機指引。",
    "n0902": "新增 A／AAAA（apex 與 www）",
    "n0903": "新增 DMARC TXT 记录",
    "n0904": "新增 MX／SPF／DKIM DNS 记录",
    "n0905": "新增 _dmarc TXT 以改善投遞與回報。",
    "n0906": "方式 + 閾值",
    "n0907": "於 DNS 供應商新增產生的 MX、SPF（TXT）與 DKIM（TXT）。Cloudflare：邮件相關记录請用僅 DNS（灰雲）。",
    "n0908": "於 DNS 頁安装 PowerDNS 相關软件包",
    "n0909": "在面板 Go 运行环境安装目标版本",
    "n0910": "於面板 Node 执行環境安装目標版本",
    "n0911": "於面板 PHP 执行環境安装目標版本",
    "n0912": "於面板 Python 执行環境安装目標版本",
    "n0913": "於面板 Rust 执行環境安装 rustup／cargo",
    "n0914": "日常",
    "n0915": "日志",
    "n0916": "日志建議写入项目 logs 目录",
    "n0917": "日志收集器",
    "n0918": "日志檔",
    "n0919": "日志相對路径含不允许字符",
    "n0920": "日志等級",
    "n0921": "日志路径无效",
    "n0922": "時區",
    "n0923": "時區與字符",
    "n0924": "暫存表大小",
    "n0925": "暴露 PHP 版本頭",
    "n0926": "更多 fail2ban jail、更快封禁",
    "n0927": "更強隔離請使用獨立 Redis 實例",
    "n0928": "更新 fail2ban jail 清單（管理檔）",
    "n0929": "更新未完成",
    "n0930": "最嚴 Nginx 限連（約 1 req/s）",
    "n0931": "最多 12 個額外目录",
    "n0932": "最多 8 個 nameserver",
    "n0933": "最多快取文件數",
    "n0934": "最多輸入變數",
    "n0935": "最大 WAL",
    "n0936": "最大客戶端數",
    "n0937": "最大内存",
    "n0938": "最大连接错误",
    "n0939": "最小",
    "n0940": "最小 HTTP 服务器（/health）+ public 靜態目录",
    "n0941": "最長执行時間",
    "n0942": "最長輸入時間",
    "n0943": "有可用升級",
    "n0944": "有扫描／暴力跡象時",
    "n0945": "有效快取估計",
    "n0946": "有数据库/Redis dump 失败，已中止（不會 transfer）",
    "n0947": "服务名稱无效",
    "n0948": "未下载 WordPress 核心（需外網／另下）— 見 WORDPRESS_INSTALL.txt",
    "n0949": "未以系統 unit 启动（需 root + 已隔離）— 改用 pidfile",
    "n0950": "未偵測到 pam_google_authenticator — apt install libpam-google-authenticator",
    "n0951": "未啟用 2FA",
    "n0952": "已仅导出控制面摘要（未同步 Nginx）",
    "n0953": "未应用到系統 nginx（需 YSK_EXECUTE + root）— 状态：written",
    "n0954": "未应用到系統：需 YSK_EXECUTE + root",
    "n0955": "未安装 redis-cli 客戶端",
    "n0956": "未写入任何文件",
    "n0957": "未對系統產生可验证变更 — 唔會標 ok",
    "n0958": "未找到 postgresql conf.d — conf 只寫在 dataDir；唔會假裝已应用系統",
    "n0959": "未找到 secrets/ssh/.master.key 且無 YSK_SECRETS_KEY — 目標機可能无法解密 vault/2FA",
    "n0960": "未授權",
    "n0961": "未探测",
    "n0962": "未登记 certbot/LE 續期 cron（可用系統 certbot.timer）",
    "n0963": "未發布 nginx conf",
    "n0964": "未知 passkey",
    "n0965": "未知 source（journal:… / file:… / project:…）",
    "n0966": "未知的資源類型",
    "n0967": "未知软件",
    "n0968": "未知软件 ID",
    "n0969": "未知软件項目",
    "n0970": "未知電源動作",
    "n0971": "未确认維護窗，拒绝打包（避免熱 dump 不一致）",
    "n0972": "未綁项目 home — 僅写入控制面 ftps/ssh；需 sshd Match 才生效",
    "n0973": "未能应用更新：請設 YSK_SOURCE_ROOT 指向 git 工作目录，或 publish npm 软件包後設 YSK_NPM_PACKAGE",
    "n0974": "未能确认遠端最新版 — 唔會假裝「已是最新」",
    "n0975": "未能确认遠端最新版 — 唔會假裝已是最新",
    "n0976": "未裝 City Lite — 僅國家／ASN；更新庫可下载 DB-IP（免費 CC BY）",
    "n0977": "未裝 City Lite — 無省／市；請更新庫（免費 DB-IP）",
    "n0978": "未复制到 /etc/nginx（非 root 或未 EXECUTE）— managed conf 已在 dataDir",
    "n0979": "未设置 CF_API_TOKEN — 无法呼叫 Cloudflare API",
    "n0980": "未设置 Cloudflare API Token — 僅 dry-run",
    "n0981": "未设置磁盘配額（軟配額关闭）",
    "n0982": "操作完成",
    "n0983": "未請求安装到系統（installSystem=false）",
    "n0984": "未开启 YSK_EXECUTE",
    "n0985": "未开启系統变更权限（僅写入控制面设置）",
    "n0986": "未开启系統变更：无法执行 dnssec-keygen",
    "n0987": "未附密码 — 僅验证 email（外掛需另行登入）",
    "n0988": "未验证／重载：服务器未开启系統变更权限（僅写入管理檔）",
    "n0989": "本地 conf 缺失，請先 plan",
    "n0990": "本地备份檔不存在",
    "n0991": "本地尚無 zone 檔",
    "n0992": "本地無证书檔（或從未上传）",
    "n0993": "本地部分无效",
    "n0994": "本小时封禁次数达上限 — 到防护中心检查",
    "n0995": "本機 ip 可能不支援 -j；請升級 iproute2（目前僅 notes）",
    "n0996": "本機 nginx -t OK（僅控制面 managed conf，≠ edge applied）",
    "n0997": "本機 wsrep 尚可，但 size 未達全部登记节点",
    "n0998": "本機 ysk.json 无法读取 / 無 fingerprint",
    "n0999": "本機指標 OK；完整 healthy 需 peer probe（未做）",
    "n1000": "本機無 nginx — conf 已写入，未 reload",
    "n1001": "本機無可用 NM 连接；唔會假成功。可改用「僅即時」或啟用 NetworkManager。",
    "n1002": "本機無可用 ps — 无法列出進程（唔假空表當健康）",
    "n1003": "本機無對應 NM 连接；唔會假成功。可改「僅即時」或啟用 NetworkManager。",
    "n1004": "本輪無可 ban 對象",
    "n1005": "查詢名稱无效",
    "n1006": "查詢服务状态",
    "n1007": "根分区使用率超过 90%",
    "n1008": "根目录无效",
    "n1009": "根磁盘空間",
    "n1010": "概览",
    "n1011": "標準庫 TcpListener（無額外 crate）；Cargo.toml",
    "n1012": "標準庫 net/http；go.mod；/ 與 /health",
    "n1013": "模式：可生产",
    "modeProductionCapable": "可生产",
    "modeDegraded": "降级",
    "n1014": "模擬执行：未實際复制",
    "n1015": "预览试运行完成 — 未复制、未重新加载（正式同步请关闭预览试运行）",
    "n1016": "预览试运行完成 — 正式同步需管理员权限与系统变更权限",
    "n1017": "檔名須以 .conf 結尾",
    "n1018": "檔名須以 .sieve 結尾",
    "n1019": "文件",
    "n1020": "文件上传與 POST 體積",
    "n1021": "文件不存在或不可讀",
    "n1022": "文件不存在或已删除",
    "n1023": "检查佔用进程；見主機指標",
    "n1024": "检查文件变更",
    "n1025": "检查間隔（秒）",
    "n1026": "检查點超时",
    "n1027": "檢視者為唯讀，无法执行写入",
    "n1028": "权限模式須為 3–4 位八進制數字",
    "n1029": "权限與安全",
    "n1030": "正常",
    "n1031": "正常營運默认",
    "n1032": "正式環境請改 SECRET_KEY／DEBUG 並配置数据库",
    "n1033": "此 planner 僅支援 mariadb + mariadb-galera",
    "n1034": "此 planner 僅支援 mysql + mysql-replica",
    "n1035": "此主機無 systemd 服务管理",
    "n1036": "此项目是 Node runtime，請使用 Node 部署",
    "n1037": "此项目是 Node runtime，請使用 Node 部署（或改 runtime 為 static）",
    "n1038": "此更新需人工确认（高風險／需审批）。請勾選确认後再应用。",
    "n1039": "此清單為站外待辦（DNS 供應商／IP 擁有者）；控制面无法代勞 PTR／解封 25",
    "n1040": "此資源不支援应用到系統",
    "n1041": "此软件無 apt 软件包定義",
    "n1042": "每一列一個设置；内存、执行時間、輸入限制",
    "n1043": "每個项目以獨立 Linux 用户／群組运行",
    "n1044": "每小時 auto-ban 上限",
    "n1045": "每日（IPinfo Lite）",
    "n1046": "永久 ban",
    "n1047": "沒有 edge 节点 — 請先於 CDN 頁登记至少一個 edge",
    "n1048": "沒有可应用的真實升級（缺 candidate 或與目前版本相同）",
    "n1049": "沒有项目可做 restic 增量",
    "n1050": "沒有项目可备份（0 個）— 不視為失败",
    "n1051": "沙箱指令不可為空",
    "n1052": "清理日志／备份；見主機设置保存",
    "n1053": "清空防火墙规则 — 默认拒绝",
    "n1054": "測試寄信需要寄件者與收件者",
    "n1055": "準備创建系統用户…",
    "n1056": "瀏覽器开启站点完成 WP 安装精靈",
    "n1057": "無 .zone 檔可推",
    "n1058": "無 HostExecutor — 請手動 chown 文件",
    "n1059": "無 HostExecutor — 跳過 chown（請手動 chown）",
    "n1060": "無 IP 可写入 DNS",
    "n1061": "無 NM 连接可改；僅刪即時地址",
    "n1062": "無 NM 连接可改；僅刪即時路由",
    "n1063": "無 Redis 實例需 dump",
    "n1064": "無 SQL 数据库需 dump",
    "n1065": "無 SSH 目標",
    "n1066": "無 SSH／fleet 目標",
    "n1067": "無 access log cache status、亦無 cache 目录 — hit-rate 未知（請開 log_format 或先 apply edge）",
    "n1068": "無 access=fleet 且填了 fleetAgentId 的成員",
    "n1069": "無 access=ssh 的成員 — 請在 create 時用 :ssh 或改 members",
    "n1070": "無 apply_status",
    "n1071": "無 apt-get",
    "n1072": "無 authentication challenge",
    "n1073": "無 bind_ip 需清理",
    "n1074": "無 dataDir — 只更新数据库",
    "n1075": "無 domain vacation.sieve — 略過 per-mailbox 复制",
    "n1076": "無 edge 可应用（皆 skip/drain）— 控制面 conf 仍 written",
    "n1077": "無 galera_new_cluster；已 restart mariadb",
    "n1078": "無 home_dir",
    "n1079": "無 install 记录 — 庫状态改為 stored",
    "n1080": "無 linuxUser",
    "n1081": "無 master key / YSK_SECRETS_KEY",
    "n1082": "無 nameserver（可能未配置）",
    "n1083": "無 rdbRelPath",
    "n1084": "無 registration challenge",
    "n1085": "無 ssh peer",
    "n1086": "無 ssh peer 可推",
    "n1087": "無 sshpass（僅能用 key/agent 登入）",
    "n1088": "無 vacation.sieve 可部署",
    "n1089": "無 vhost 需要更新（或 conf 尚無 server 塊）",
    "n1090": "無 wsrep 状态（可能未裝 Galera 或服务未開）",
    "n1091": "無作用中 jail 或 fail2ban 未运行",
    "n1092": "無匹配檔名的日志",
    "n1093": "無可执行系統步驟（仍只是 written）",
    "n1094": "無可探活目標（無 healthUrl / baseUrl / publicIpv4）",
    "n1095": "無可用 access log 行（或格式不符）",
    "n1096": "無可用 access log（仍可用手動 / 自動 ban）",
    "n1097": "無可用 access／auth log 樣本",
    "n1098": "無可用 edge IP — 不修改 DNS（保留既有 managed 记录）",
    "n1099": "無可用 strict 用户（全部是救援或未登记）",
    "n1100": "无效 conf 名稱",
    "n1101": "无效 export id",
    "n1102": "无效 export 檔名",
    "n1103": "无效 linux_user",
    "n1104": "无效 public key",
    "n1105": "无效 snapshot id",
    "n1106": "无效 token",
    "n1107": "无效 unit",
    "n1108": "无效 unit 名稱",
    "n1109": "无效 vacuum-size（例：500M）",
    "n1110": "无效 vacuum-time（例：7d）",
    "n1111": "无效备份",
    "n1112": "无效备份格式",
    "n1113": "无效埠",
    "n1114": "无效的 key 名稱",
    "n1115": "无效的 projectId",
    "n1116": "无效的备份檔名",
    "n1117": "无效的搜尋 pattern",
    "n1118": "无效规则編號",
    "n1119": "无效数据库名",
    "n1120": "無暫停域名 — map 為空（系統应用後會 postmap 空檔）",
    "n1121": "無有效 IP",
    "n1122": "無模組時政策仍可用於嫌疑人 auto-ban enrich",
    "n1123": "無法封鎖到主機：未開啟系統變更權限。面板清單沒有新增。",
    "n1124": "无法 dump Redis：缺 redis-cli",
    "n1125": "无法 dump：服务器未开启系統变更权限",
    "n1126": "无法 fan-out：未开启系統变更权限",
    "n1127": "无法 import：服务器未开启系統变更权限",
    "n1128": "无法 list：未开启系統变更权限",
    "n1129": "无法 probe DNS cluster：未开启系統变更权限",
    "n1130": "无法 probe：未开启系統变更权限（SSH 需 EXECUTE）",
    "n1131": "无法 purge cache：未开启系統变更权限（YSK_EXECUTE）",
    "n1132": "无法 purge：未开启系統变更权限",
    "n1133": "无法 remote reload：未开启系統变更权限",
    "n1134": "无法 restic：未开启系統变更权限",
    "n1135": "无法 restore：未开启系統变更权限",
    "n1136": "无法 scp：需 YSK_EXECUTE=1",
    "n1137": "无法 stat home",
    "n1138": "无法 symlink：未开启系統变更权限",
    "n1139": "无法 unban：未开启系統变更权限",
    "n1140": "无法 unban：需 YSK_EXECUTE",
    "n1141": "无法下载 Adminer：未开启系統变更权限",
    "n1142": "无法下载 WordPress：服务器未开启系統变更权限",
    "n1143": "无法使用 PM2，改用本機进程管理",
    "n1144": "无法停服：未开启 YSK_EXECUTE",
    "n1145": "无法停止 PM2：服务器未开启系統变更权限",
    "n1146": "无法分發 SSL：未开启系統变更权限",
    "n1147": "同步已封锁：需系统变更权限",
    "n1148": "无法同步到系統 Nginx：需要系統变更权限",
    "n1149": "无法启动 PM2：服务器未开启系統变更权限",
    "n1150": "无法啟用 Apache 站点：需要系統变更权限",
    "n1151": "无法啟用 NTP：需要系統变更权限與 root",
    "n1152": "无法啟用 PHP-FPM：需要系統管理员权限",
    "n1153": "无法啟用 systemd 服务（請确认权限）",
    "n1154": "无法啟用 systemd 服务：需要系統管理员权限",
    "n1155": "无法啟用服务：需要系統管理员权限",
    "n1156": "无法在目標安装 rsync，且目標原本也沒有 rsync",
    "n1157": "无法在系統创建账号：需要 YSK_EXECUTE + root；已登记控制面（written/blocked）",
    "n1158": "无法执行 certbot：未开启系統变更权限",
    "n1159": "无法执行電源操作：需要系統变更权限（YSK_EXECUTE）與 root",
    "n1160": "无法应用到系統：需要 YSK_EXECUTE + root",
    "n1161": "无法应用系統中繼设置：需要系統变更权限",
    "n1162": "无法应用：計劃失败",
    "n1163": "无法安装 PowerDNS：需要系統管理员权限",
    "n1164": "无法安装到 /etc/ssh：需要 YSK_EXECUTE + root",
    "n1165": "无法安装到系統：服务器未开启系統变更权限（僅写入管理檔）",
    "n1166": "无法寄送測試信：服务器未开启系統变更权限或未安装邮件服务",
    "n1167": "无法创建 virtual user 数据库（缺 db_load）",
    "n1168": "无法创建账户数据库，登入可能失败",
    "n1169": "无法创建系統邮件用户：需要系統管理员权限",
    "n1170": "无法從 npm 或 GitHub 取得最新版本（未假裝已是最新）",
    "n1171": "无法探测 systemctl",
    "n1172": "无法推送 DNS cluster：未开启系統变更权限",
    "n1173": "无法推送遠端：未开启系統变更权限（本地备份仍成功）",
    "n1174": "无法收集 metrics",
    "n1175": "无法清除佇列：服务器未开启系統变更权限",
    "n1176": "无法準備 ACME：未开启系統变更权限",
    "n1177": "无法產生 crypt 密码雜湊（需要 openssl passwd）",
    "n1178": "无法立即执行：服务器未开启系統变更权限",
    "n1179": "无法統計 Tasks（ps state 失败）",
    "n1180": "无法复制 zone 檔到 dnssec 目录",
    "n1181": "无法計算 ysk.json fingerprint",
    "n1182": "无法讀 /etc/resolv.conf",
    "n1183": "无法读取 cmdline（進程可能已結束或無权限）",
    "n1184": "无法读取 numbered 规则",
    "n1185": "无法读取 statfs",
    "n1186": "无法读取佇列：服务器未开启系統变更权限",
    "n1187": "无法读取用户庫以检查 2FA",
    "n1188": "无法读取目標磁盘空間",
    "n1189": "无法变更 UFW：需 YSK_EXECUTE=1",
    "n1190": "无法变更主機名稱／時區：需要系統变更权限與 root",
    "n1191": "无法变更網路：需要系統变更权限（YSK_EXECUTE）與 root",
    "n1192": "无法加载 PowerDNS zone：服务器未开启系統变更权限",
    "n1193": "无法辨識 IPv4/IPv6",
    "n1194": "无法连接 127.0.0.1:6379",
    "n1195": "无法连接目標機",
    "n1196": "無登记紀錄",
    "n1197": "無硬阻擋項（仍可能有建議項）",
    "n1198": "無臨時密钥目录",
    "n1199": "無過期臨時用户",
    "n1200": "無郵箱 — 跳過系統 sieve 部署",
    "n1201": "無需创建遠端目录",
    "n1202": "熔斷",
    "n1203": "片段已写入 dataDir/security/fail2ban（未自動裝到 /etc）",
    "n1204": "片段已复制；請修正後手動 reload",
    "n1205": "状态 draft — 請到 FTP 服务頁「应用」才會写入 vsftpd",
    "n1206": "状态与版本",
    "n1207": "状态：",
    "n1208": "状态：applied（anvil + per-sender policy + maps）",
    "n1209": "状态：applied（symlink + config plugins[] 已啟用）",
    "n1210": "状态：applied（安全目录）",
    "n1211": "状态：applied（已覆寫 homeDir）",
    "n1212": "状态：applied（系統命令成功）",
    "n1213": "状态：applied（密钥+簽署本地 zone；非 registrar 上線）",
    "n1214": "状态：blocked — 管理檔已寫；未改 Postfix/Dovecot",
    "n1215": "状态：blocked（placeholder written）",
    "n1216": "状态：blocked（policy daemon 已生成；系統应用需 EXECUTE+root）",
    "n1217": "状态：executed ≠ 已上線，直到 certbot 完成且 reload",
    "n1218": "状态：failed（nginx -t 或 reload 失败）",
    "n1219": "状态：partial — 唔會標 applied（避免假成功）",
    "n1220": "状态：partial — 部分系統步驟失败",
    "n1221": "状态：partial（symlink 成功；config 需手動加 plugins）— 唔會標成完整 applied",
    "n1222": "状态：preview only",
    "n1223": "状态：written/partial（系統复制／reload／验证未完全成功）",
    "n1224": "状态：written/partial（關鍵步驟失败 — 唔標 applied）",
    "n1225": "状态：written（apply=false；未应用到系統）",
    "n1226": "状态：written（blocked system apply）",
    "n1227": "状态：written（conf 已寫；reload blocked）",
    "n1228": "状态：written（控制面）— 遠端 edge 尚未应用；PR-C3 才 fan-out + nginx -t/reload",
    "n1229": "状态：written（未应用到系統 Postfix/Rspamd）",
    "n1230": "状态：written（未复制到系統 Nginx；設 applySystem 才會 try reload）",
    "n1231": "状态：written（管理白名單已存；live fail2ban-client 需 YSK_EXECUTE，或「策略→应用到系統」重寫 jail.local）",
    "n1232": "状态：written（密钥/DS 已有；zone 未簽署或未找 zone 檔）",
    "n1233": "状态：written（非已上線 SSO）",
    "n1234": "状态：written（非已簽署／非已上線）— 唔假成功",
    "n1235": "状态：written（預覽／只寫管理檔）",
    "n1236": "状态：已写入並成功 reload 本機 nameserver",
    "n1237": "状态：已写入管理 zone 檔（尚未成為權威 DNS，除非你已 reload nameserver）",
    "n1238": "状态：已写入管理檔（未应用到系統）",
    "n1239": "状态：無資料（非假統計）",
    "n1240": "獨立 TOTP（與 panel operator 2FA 分開）",
    "n1241": "獨立於 panel operator 2FA",
    "n1242": "生命周期",
    "n1243": "生產可關並手動重载",
    "n1244": "生產環境請关闭",
    "n1245": "生产门槛：尚未完全达标，请查看下方缺项",
    "n1246": "生产门槛：通过（权限、Nginx、Node 就绪）",
    "n1247": "生产隔离：到项目「资源」创建 Linux 用户与 home",
    "n1248": "用户名 2–32 字符 [a-z0-9._-]",
    "n1249": "申請 SSL 需要域名與邮件",
    "n1250": "留空不限制；多路径用 : 分隔",
    "n1251": "留空用系統默认；可填絕對路径",
    "n1252": "略過",
    "n1253": "略過 DNS 解析",
    "n1254": "略過 chown（未以 root 隔離模式执行）",
    "n1255": "略過 chown（需 YSK_EXECUTE + root）— 文件可能為控制面用户擁有",
    "n1256": "略過 draining 节点",
    "n1257": "略過 reload：zone 验证失败",
    "n1258": "略過 remote reload（reload=false）— written ≠ applied",
    "n1259": "略過 usermod（未 os_provisioned）",
    "n1260": "略過 zone apply（applyZone=false）— 僅更新控制面 records",
    "n1261": "略過无效用户名",
    "n1262": "疑似 DDoS — 降级运行",
    "n1263": "白名單 IP：拒绝封禁",
    "n1264": "白名單：略過",
    "n1265": "監控 IP／域名聲譽並暖機",
    "n1266": "監聽 IP；建議 127.0.0.1 僅本機",
    "n1267": "監聽位址",
    "n1268": "目前以本機进程模式部署",
    "n1269": "目前以簡易 PHP 模式部署",
    "n1270": "目前权限讀不到防火墙状态（非攻擊）",
    "n1271": "目前非系統管理员权限，部分系統设置无法应用",
    "n1272": "目標 ysk.json 校驗失败",
    "n1273": "目標尚無 ysk-server CLI — 請确认 bootstrap 或手動 npm i -g ysk-server",
    "n1274": "目標已有 YSK 資料，已确认 forceWipeTarget",
    "n1275": "目標有 rsync",
    "n1276": "目標為 root",
    "n1277": "目標用户已暫停",
    "n1278": "目標缺 rsync（將在 bootstrap 安装）",
    "n1279": "目標認證需要 sshpass（未安装）",
    "n1280": "目標預檢失败",
    "n1281": "目標預檢未通过",
    "n1282": "目標預檢通过",
    "n1283": "目的地必須以 .zip 結尾",
    "n1284": "真正推送需 execute + YSK_EXECUTE=1",
    "n1285": "短標籤 <?",
    "n1286": "硬配額略過：未 os_provisioned",
    "n1287": "確保 guest 用户",
    "n1288": "确认 80／443 可從公網到達（LE HTTP-01）",
    "n1289": "确认 PHP runtime 與 FPM 已就绪",
    "n1290": "确认出站 Port 25 已開放",
    "n1291": "磁盘、备份、AOF/WAL",
    "n1292": "磁盘空间不足",
    "n1293": "禁用函式列表",
    "n1294": "私網／本機，不应用公網 geo",
    "n1295": "秒",
    "n1296": "秒；0 = 無限（CLI）",
    "n1297": "秒；解析請求的最長時間",
    "n1298": "移除软件包",
    "n1299": "空=关闭；設路径則开启",
    "n1300": "站点名稱无效",
    "n1301": "站点無 edge 节点",
    "n1302": "符合主機默认版本",
    "n1303": "节点 host 无效",
    "n1304": "节点名稱无效",
    "n1305": "节点處於 draining — 健康結果僅供參考，状态保持 draining",
    "n1306": "系統应用需 YSK_EXECUTE + root",
    "n1307": "系統用户不存在（尚未 provision 或已刪）",
    "n1308": "系統管理员权限",
    "n1309": "系統变更未开启；设置可保存，应用系統需权限",
    "n1310": "系統变更权限",
    "n1311": "系統負載",
    "n1312": "系統软件",
    "n1313": "累犯",
    "n1314": "維護内存",
    "n1315": "網站",
    "n1316": "網路條件不足（例如網域验证所需埠无法使用）",
    "n1317": "網路无法连接",
    "n1318": "网页",
    "n1319": "缺 rsync",
    "n1320": "缺 ssh",
    "n1321": "缺 ysk.json",
    "n1322": "缺少 conf 產物，請先 plan",
    "n1323": "缺少 dataDir，无法安装 runtime",
    "n1324": "缺少 linuxUser/homeDir",
    "n1325": "臨時 ban",
    "n1326": "臨時密钥失败",
    "n1327": "臨時密钥安装失败",
    "n1328": "自動 VACUUM",
    "n1329": "自動 ban → 關（日常檔）",
    "n1330": "自動 ban 暫停：未开启系統变更（YSK_EXECUTE）",
    "n1331": "自動 ban 熔斷",
    "n1332": "自動切檔 或 人手",
    "n1333": "自動化主開關关闭",
    "n1334": "自動化白名單 IP：拒绝封禁",
    "n1335": "自動回覆",
    "n1336": "自動回覆：状态 written — 未自動進 Dovecot/Pigeonhole（需 ManageSieve 或 symlink）",
    "n1337": "自動防護檔",
    "n1338": "自訂 allow 路径",
    "n1339": "至少一個轉送目標",
    "n1340": "至少选择一個 edge 节点",
    "n1341": "至少需要一個域名",
    "n1342": "至少需要一個节点",
    "n1343": "至少需要一個角色（control/origin/edge/dns）",
    "n1344": "與 panel operator 2FA 分開",
    "n1345": "舊公鑰若在 remote authorized_keys，需手動更新或 authorize-self",
    "n1346": "萬用字符域名无效",
    "n1347": "表快取",
    "n1348": "复制 filter/jail 後 systemctl reload fail2ban",
    "n1349": "复制 jail.local 失败",
    "n1350": "见审计",
    "n1351": "解密預覽成功（secret 已遮罩）",
    "n1352": "觸發 limit_req 過多",
    "n1353": "訊息格式无效",
    "n1354": "訊號加總 0–100 → 威脅級",
    "n1355": "内存、缓冲、并发",
    "n1356": "内存上限",
    "n1357": "内存偏高",
    "n1358": "内存壓力",
    "n1359": "内存淘汰策略",
    "n1360": "内存与 V8",
    "n1361": "内存表上限",
    "n1362": "记录值不可為空",
    "n1363": "记录語句類型",
    "n1364": "记录错误到日志",
    "n1365": "记录防護模式提示",
    "n1366": "设置反向 DNS（PTR）",
    "n1367": "设置已保存於管理面；系統 conf／重啟需权限",
    "n1368": "设置已写入但应用失败",
    "n1369": "设置已写入连接但重啟失败；請手動 nmcli connection up",
    "n1370": "设置已写入连接但重新啟用失败，請手動 nmcli connection up",
    "n1371": "设置檔 product 必須是 ysk-server",
    "n1372": "设置檔格式错误（須為物件）",
    "n1373": "设置檔缺少 dataDir",
    "n1374": "許多雲供應商封锁出站 TCP 25。請申請解鎖，或改用外部 SMTP 中繼。",
    "n1375": "評分",
    "n1376": "誠實：一鍵只创建控制面政策，唔等於公網 CDN 已生效",
    "n1377": "誠實：部分公網 resolver 會去重相同 A 记录 — 權重偏差唔保證；高權重 edge 仍建議用更多獨立 IP 或 Anycast",
    "n1378": "請使用 CIDR 格式，例如 192.168.1.10/24",
    "n1379": "請使用 POST /api/v1/ssl/upload 或 POST /api/v1/ssl/letsencrypt",
    "n1380": "請先登记至少一個 CDN 节点（PR-C1）",
    "n1381": "請先确认 maintenanceAccepted",
    "n1382": "请到备份操作页查看 sideResults",
    "n1383": "请到备份页查看",
    "n1384": "请到通知 → 应用状态审计",
    "n1385": "请到防护中心检视信号并切换防护档",
    "n1386": "請在 peer 上安装 conf 並 restart / join",
    "n1387": "請填寫 serverName",
    "n1388": "請填寫 serverName 與 upstream",
    "n1389": "請填寫 serverName 與文件根目录",
    "n1390": "請填寫 serverName、文件根目录與 FPM socket",
    "n1391": "請填寫 zone",
    "n1392": "請填寫 zone 名稱",
    "n1393": "請填寫中繼主機",
    "n1394": "請填寫集群名稱（≤64）",
    "n1395": "請填寫方案名稱",
    "n1396": "請填寫用户、排程與指令",
    "n1397": "請填寫真實节点位址（不可用示範 IP）",
    "n1398": "請將 DNS A/AAAA 指向新 IP；检查雲防火墙與邮件 PTR",
    "n1399": "請將下列 XML 部署到對應 hostname，或复制到外部 DNS 主機",
    "n1400": "請指定 IP",
    "n1401": "請指定 action 或 mtu",
    "n1402": "請指定 dataDir",
    "n1403": "請指定 listenHost",
    "n1404": "請指定 zip 路径",
    "n1405": "請指定备份來源",
    "n1406": "請指定啟用状态（是／否）",
    "n1407": "請指定回收項目",
    "n1408": "請指定工具名稱",
    "n1409": "請指定设置檔路径",
    "n1410": "請指定路径與权限模式",
    "n1411": "請指定路径與版本",
    "n1412": "請指定路径與目的地",
    "n1413": "請提供 DKIM 公鑰",
    "n1414": "請提供 Git URL（或先在项目设置）",
    "n1415": "請提供 IP",
    "n1416": "請提供软件包名稱",
    "n1417": "請提供软件包名稱與目前版本",
    "n1418": "請提供密码（至少 8 字符）",
    "n1419": "請提供查詢名稱",
    "n1420": "請提供訊息內容",
    "n1421": "請求率偏高 — 已啟用限流",
    "n1422": "請用「应用到系統」或重新部署 PHP 项目（pool php_admin_*）",
    "n1423": "請确认 /etc/default/ufw 內 IPV6=yes",
    "n1424": "請确认 dataDir 已创建且程序可写入",
    "n1425": "請至少填一個 nameserver，或選「还原 DHCP DNS」",
    "n1426": "請至少提供 publicIpv4 / publicIpv6 / healthUrl / baseUrl 其中一項",
    "n1427": "請輸入提示內容",
    "n1428": "請选择文件",
    "n1429": "請限制來源 IP 或 HTTP auth 後再公開",
    "n1430": "警告：manifest 無 packagedAt — 若需 DB 請先跑 package",
    "n1431": "警告：unit 為 active 但找不到 CLI binary（可能係舊 placeholder unit）",
    "n1432": "警告：將覆寫目標既有 YSK 資料",
    "n1433": "警告：此接口為默认路由出口，down 可能令面板斷線",
    "n1434": "警告：無 secrets/ssh/.master.key 且無 YSK_SECRETS_KEY（vault/2FA 可能无法解密）",
    "n1435": "警告：缺 config.json（可稍後 setup 補）",
    "n1436": "读取 banned 列表失败",
    "n1437": "读取 banned 可能需更高权限；unban／ban 仍需 YSK_EXECUTE",
    "n1438": "读取 banned 失败（权限或服务）",
    "n1439": "读取 fail2ban bans 失败",
    "n1440": "读取已封禁清單失败",
    "n1441": "读取日志失败",
    "n1442": "读取文件",
    "n1443": "读取系統信息",
    "n1444": "变更 default 路由需 confirmDefault: true",
    "n1445": "变更會写入管理檔；「应用到系統」才會進 /etc/php/.../conf.d 並 reload FPM",
    "n1446": "负载偏高",
    "n1447": "資料可讀寫；安装／重啟服务需要系統变更权限",
    "n1448": "数据库可能過舊（>7 日）— 建議立即更新",
    "n1449": "数据库尚未创建。請确认 mysql 客戶端與 YSK_EXECUTE=1 後再試。",
    "n1450": "数据库尚未创建。請确认 psql、TCP 與 YSK_EXECUTE=1 後再試。",
    "n1451": "数据库數量",
    "n1452": "数据库缺 name",
    "n1453": "数据库轉儲需另行納入",
    "n1454": "資料目录",
    "n1455": "資源分頁：创建／遷移系統用户",
    "n1456": "資源限制",
    "n1457": "超過閾值",
    "n1458": "路径不允许",
    "n1459": "路径不在已允许的額外 log 目录",
    "n1460": "路径越界拒绝",
    "n1461": "跳過",
    "n1462": "跳過刪舊 home：目標 canonical 內容不完整",
    "n1463": "軟配額已存；硬 setquota 請「应用限制到 OS」",
    "n1464": "輸入巢狀層級",
    "n1465": "輸入資料无效",
    "n1466": "逗號分隔；過嚴可能弄壞软件包",
    "n1467": "通常為 RAM 25%",
    "n1468": "连接与网络",
    "n1469": "進程仍在（可再送 KILL）",
    "n1470": "進程已結束（kill -0 失败）",
    "n1471": "高级",
    "n1472": "進階：secret 來自 panel（與 operator 2FA 同源 — 風險自負）",
    "n1473": "運維",
    "n1474": "遠端 SFTP 设置不完整（host/username/path）",
    "n1475": "遠端 applied ≠ cluster healthy — 請跑 probe --peers",
    "n1476": "遠端 migrate post 失败",
    "n1477": "遠端 mkdir 失败",
    "n1478": "遠端 post 回報 ok=false",
    "n1479": "遠端备份未啟用（略過推送）",
    "n1480": "遠端安装需 YSK_EXECUTE=1",
    "n1481": "遠端找不到 rndc / active named|bind9|pdns",
    "n1482": "远端推送或 restic 有失败 — 本地 tar 可能已成功，请看 sideResults",
    "n1483": "遠端文件、暴露信息、函式禁用",
    "n1484": "遠端無 active named/bind9/pdns（仍可 scp 文件）",
    "n1485": "遠端無 nginx — conf 已 scp（written on peer）",
    "n1486": "远端／restic 步骤已处理",
    "n1487": "遷移需要 YSK_EXECUTE + root",
    "n1488": "还原後未 chown（需 root + YSK_EXECUTE）",
    "n1489": "部分 DNSBL 未必完整支援 IPv6；結果僅供參考",
    "n1490": "部分 peer applied；其餘僅 written 或失败 — 勿當全集群已 reload",
    "n1491": "部分 peer reload 成功（partial）",
    "n1492": "部分或全部失败 — 请查看 results",
    "n1493": "部分或全部未应用到系統（需 YSK_EXECUTE）",
    "n1494": "部分推送失败 — 检查 SSH key / 防火墙",
    "n1495": "部分步驟失败 — 見 steps",
    "n1496": "部分系統步驟失败",
    "n1497": "部署",
    "n1498": "部署 PHP + 發布 Nginx（文件根 app/public）",
    "n1499": "部署时可覆盖",
    "n1500": "部署會 go build -o app .；需主機已安装 Go toolchain",
    "n1501": "部署會执行 venv + pip；ExecStart 使用 uvicorn main:app",
    "n1502": "部署會执行 venv + pip；entry 默认 app.py（非 ASGI）",
    "n1503": "部署／应用 FPM pool 時写入 php_admin_value",
    "n1504": "部署：面板「部署」會启动 server.js；written ≠ 已對外",
    "n1505": "邮件主機 A 记录",
    "n1506": "邮件主機 AAAA 记录（IPv6）",
    "n1507": "邮件管理设置目录",
    "n1508": "郵箱 ID 无效",
    "n1509": "郵箱本地部分无效",
    "n1510": "配額須為 1–1000000 MiB",
    "n1511": "配額須至少 1 MiB",
    "n1512": "重啟系統服务",
    "n1513": "重複被 ban 再加重",
    "n1514": "重载 vsftpd",
    "n1515": "重载網頁服务",
    "n1516": "错误報告等級",
    "n1517": "错误日志、慢查询",
    "n1518": "错误與日志",
    "n1519": "門檻數字",
    "n1520": "开启會嚴重影響效能",
    "n1521": "闲置超时（秒）",
    "n1522": "关闭",
    "n1523": "防火墙建議（不自動改 UFW 除非应用系統）",
    "n1524": "防火墙（內網）：TCP 3306, 4567, 4444, 4568",
    "n1525": "防護檔写入 nginx limit_req",
    "n1526": "防護檔維持期（hold）中，暫不降檔",
    "n1527": "防护：危急",
    "n1528": "防护：建议紧急档",
    "n1529": "防护：疑似受攻击",
    "n1530": "限制已写入控制面；应用到 OS 需 YSK_EXECUTE + root",
    "n1531": "限速",
    "n1532": "限速越界",
    "n1533": "限速／反垃圾旗標已存 DB；要進 Postfix/Rspamd 請用「应用限速/反垃圾到系統」",
    "n1534": "隔離模式：degraded — build／进程可能以控制面用户执行；生產請创建系統用户",
    "n1535": "隔離模式：degraded — 进程可能以控制面用户执行；生產請 root + YSK_EXECUTE 並创建系統用户",
    "n1536": "離線保存；含 TOTP secret。遺失 Authenticator 時可手動重建。",
    "n1537": "需 EXECUTE + root 先可自動 vacuum",
    "n1538": "需 NetworkManager active 才能持久改 DNS（唔會盲寫 /etc/resolv.conf）",
    "n1539": "需 YSK_EXECUTE 先可 ufw apply",
    "n1540": "需 YSK_EXECUTE 才會真正 auto-ban",
    "n1541": "需 YSK_EXECUTE 才能 banip",
    "n1542": "需 YSK_EXECUTE 才能控制 fail2ban 服务",
    "n1543": "需 YSK_EXECUTE=1 先可 vacuum journal",
    "n1544": "需 execute:true 或 dryRun:true",
    "n1545": "需 nginx log_format 含 $upstream_cache_status（或 X-YSK-Cache）先有 HIT/MISS",
    "n1546": "需 root + YSK_EXECUTE 才會真正 useradd；控制面不會假裝成功",
    "n1547": "需 root 先可 journalctl --vacuum",
    "n1548": "需 root 先可改 UFW",
    "n1549": "需主機已安装 cargo／rustc",
    "n1550": "需主機有 Python 與外網 pip",
    "n1551": "需主機有 Python 與外網 pip（否則安装依賴會失败）",
    "n1552": "需安装 bind9-dnsutils 並开启系統变更权限，才可真正执行 dnssec-keygen。",
    "n1553": "需确认字串 EMERGENCY；防鎖死自己",
    "n1554": "需系統 sshd Match/User 设置才會真正生效",
    "n1555": "需要 --target 或可 resume 的 --job",
    "n1556": "需要 MySQL／MariaDB 管理员权限",
    "n1557": "需要 YSK_EXECUTE",
    "n1558": "需要 YSK_EXECUTE 下载 Adminer",
    "n1559": "需要 admin",
    "n1560": "需要 aws CLI（或改用 restic s3 repo）",
    "n1561": "需要 id 或 all",
    "n1562": "需要 ip",
    "n1563": "需要 jobId",
    "n1564": "需要 linuxUser 或 projectId",
    "n1565": "需要 master 节点",
    "n1566": "需要 nginx geoip2 模組（libnginx-mod-http-geoip2）先會喺 HTTP 層生效",
    "n1567": "需要 primary 节点",
    "n1568": "需要 privateKey",
    "n1569": "需要 projectId",
    "n1570": "需要 root",
    "n1571": "需要 source",
    "n1572": "需要 sshpass、YSK 身份密钥（identityId），或本機默认 SSH key",
    "n1573": "需要 target（root@host）或 jobId 以 resume",
    "n1574": "需要 target，或含 target 的 jobId",
    "n1575": "需要 username 與 ssh- 開頭公鑰",
    "n1576": "需要 zone 域名",
    "n1577": "需要密码",
    "n1578": "需要有效 email",
    "n1579": "需要有效 email 與 domain",
    "n1580": "需要目前版本與最新版本",
    "n1581": "需要真實 candidateVersion（不可等於 current 或缺省）",
    "n1582": "需要系統管理员权限才能完成安装",
    "n1583": "需要系統管理员权限才能变更服务",
    "n1584": "需要系統变更权限才能同步/重载",
    "n1585": "需要系統变更权限才能同步到系統並重载 Nginx",
    "n1586": "需要系統变更权限才能掛 check_policy_service",
    "n1587": "需要系統变更权限才能复制 nginx conf 並 reload",
    "n1588": "同步已封锁：需管理员权限",
    "n1589": "需要至少一個 primary 节点",
    "n1590": "靜態網站",
    "n1591": "非 root — useradd／systemd／nginx 系統路径受限",
    "n1592": "非受限 seccomp 需要明確指定 runAsUser",
    "n1593": "公开请求／分钟",
    "n1594": "面板连接即將中斷；可用「取消排程」撤回（若仍在線）",
    "n1595": "面板非 root",
    "n1596": "預覽可用 apply:false",
    "n1597": "預覽模式 — 未写入任何文件",
    "n1598": "默认 uvicorn workers",
    "n1599": "默认以 Redis 邏輯 DB 編號隔離",
    "n1600": "默认字符集",
    "n1601": "默认验证外掛",
    "n1602": "額外日志路径无效",
    "n1603": "显示启动错误",
    "n1604": "显示错误、记录與報告等級",
    "n1605": "显示错误（畫面）",
    "n1606": "首次 build 可能數分鐘；失败時見 notes／日志",
    "n1607": "验证",
    "n1608": "验证碼无效",
    "n1609": "验证通过",
    "n1610": "未刷新套件索引（未开 YSK_EXECUTE）— 仅显示 apt list；开启 EXECUTE 才运行 apt-get update",
    "n1611": "UFW 已關閉：user.rules 有 {{n}} 條永久拒規則，但核心未強制執行。",
    "n1612": "UFW 已關閉。拒絕規則只會寫入 user.rules，核心不會丟棄封包。請先啟用 UFW。不會自動開啟。",
    "t0001": "listenPort 无效：{{v0}}",
    "t0002": "已還原版本 {{v0}}",
    "t0003": "文件過大（>{{v0}} bytes）",
    "t0004": "已存在：{{v0}}",
    "t0005": "目標已存在：{{v0}}",
    "t0006": "找不到：{{v0}}",
    "t0007": "壓縮失败： {{v0}}",
    "t0008": "已壓縮 {{v0}} 項 → {{v1}}",
    "t0009": "找不到：{{v0}}",
    "t0010": "un壓縮失败： {{v0}}",
    "t0011": "已解壓 {{v0}} → {{v1}}",
    "t0012": "无法從状态 {{v0}} 標記為已执行",
    "t0013": "此操作需要人工審批：{{v0}}",
    "t0014": "審批状态无效：{{v0}}",
    "t0015": "審批已是 {{v0}}",
    "t0016": "未知角色：{{v0}}",
    "t0017": "角色 {{v0}} 无法执行 {{v1}}（上限 {{v2}}）",
    "t0018": "{{v0}} 範圍的非读取操作需要指定 id",
    "t0019": "工具無主機执行器：{{v0}}",
    "t0020": "工具不在允許清單：{{v0}}",
    "t0021": "工具已明確拒絕：{{v0}}",
    "t0022": "找不到 Playbook：{{v0}}",
    "t0023": "ip -j addr 失败：{{v0}}",
    "t0024": "ip -j route 失败：{{v0}}",
    "t0025": "nmcli 写入地址失败：{{v0}}",
    "t0026": "已保存 {{v0}} → 连接「{{v1}}」",
    "t0027": "connection up 警告：{{v0}}",
    "t0028": "已重新啟用连接（重開仍在）",
    "t0029": "已新增 {{v0}} → {{v1}}（即時；重開可能消失）",
    "t0030": "已從连接「{{v0}}」移除 {{v1}}",
    "t0031": "NM 移除地址：{{v0}}",
    "t0032": "已删除即時 {{v0}} ← {{v1}}",
    "t0033": "link down 失败：{{v0}}",
    "t0034": "已 down {{v0}}",
    "t0035": "link up 失败：{{v0}}",
    "t0036": "已 up {{v0}}",
    "t0037": "設 MTU 失败：{{v0}}",
    "t0038": "nmcli 写入 gateway 失败：{{v0}}",
    "t0039": "已保存 default gateway {{v0}} → 连接「{{v1}}」（重開仍在）",
    "t0040": "nmcli 写入 routes 失败：{{v0}}",
    "t0041": "已保存靜態路由 {{v0}} →「{{v1}}」（重開仍在）",
    "t0042": "ip route add 失败：{{v0}}",
    "t0043": "已加即時路由 {{v0}}${gw ? ",
    "t0044": " : ''}（重開可能消失；要持久請用「保存」）",
    "t0045": "已從连接「{{v0}}」清除 ipv4.gateway",
    "t0046": "NM 清除 gateway：{{v0}}",
    "t0047": "已從「{{v0}}」移除路由 {{v1}}",
    "t0048": "NM 移除 routes：{{v0}}",
    "t0049": "ip route del 失败：{{v0}}",
    "t0050": "已刪即時路由 {{v0}}",
    "t0051": "已刪路由 {{v0}}",
    "t0052": "DNS 无效：{{v0}}",
    "t0053": "DNS 不是合法 IP：{{v0}}",
    "t0054": "nmcli modify 失败：{{v0}}",
    "t0055": "已還原 {{v0}} 使用 DHCP DNS（ignore-auto-dns=no）",
    "t0056": "nmcli modify 失败：{{v0}}",
    "t0057": "已写入 {{v0}}：DNS {{v1}}${search.length ? ",
    "t0058": "解析失败：{{v0}}",
    "t0059": "{{v0}} → {{v1}} 筆",
    "t0060": "{{v0}} 無結果",
    "t0061": "已簽發一次性 SSO token（{{v0}} 分鐘）",
    "t0062": "Webmail 下載安装失败：{{v0}}",
    "t0063": "已部署至 {{v0}}",
    "t0064": "系統部署失败：{{v0}}",
    "t0065": "已複製 vacation 到 {{v0}} 個郵箱 sieve 目录（written）",
    "t0066": "已部署 sieve + .dovecot.sieve → {{v0}}@{{v1}}",
    "t0067": "已停用 active sieve link → {{v0}}@{{v1}}",
    "t0068": "{{v0}}@{{v1}} sieve 部署失败: {{v2}}",
    "t0069": "已寫 per-sender policy daemon（{{v0}} domains）",
    "t0070": "{{v0}} 失败 (exit {{v1}}): {{v2}}",
    "t0071": "已写入 plugin 骨架 {{v0}}",
    "t0072": "symlink 失败: {{v0}}",
    "t0073": "已 symlink {{v0}} → {{v1}}",
    "t0074": "改 config 失败: {{v0}}",
    "t0075": "config 已包含 plugin {{v0}}: {{v1}}",
    "t0076": "已写入 {{v0}}: {{v1}}",
    "t0077": "將 {{v0}} 與 www.{{v1}} 指到服务器公開 IP。CDN（Cloudflare）可灰雲或橙雲。",
    "t0078": "PTR 須由 VPS／雲端 IP 擁有者设置，並與 HELO/EHLO（{{v0}}）一致。請於供應商控制台申請（AWS/GCP 常需工單）。",
    "t0079": "佇列 {{v0}} 封",
    "t0080": "postsuper 失败: {{v0}}",
    "t0081": "域名已登記：{{v0}}",
    "t0082": "郵箱已存在：{{v0}}",
    "t0083": "已创建 Maildir：{{v0}}",
    "t0084": "已创建系統用户 {{v0}}",
    "t0085": "创建系統用户失败：{{v0}}",
    "t0086": "虛擬郵箱對應：{{v0}}",
    "t0087": "写入 passdb 失败：{{v0}}",
    "t0088": "來源已存在: {{v0}}",
    "t0089": "已创建 {{v0}}: {{v1}} → {{v2}}",
    "t0090": "找不到邮件域名：{{v0}}",
    "t0091": "已寫 vacation 草稿 {{v0}}",
    "t0092": "已寫停用標記 {{v0}}",
    "t0093": "virtual_alias: {{v0}} ({{v1}} 條)",
    "t0094": "Postfix anvil: smtpd_client_message_rate_limit={{v0}} / 3600s（全域；取各域名 rate 最小值）",
    "t0095": "postconf 確認: {{v0}}",
    "t0096": "已寫 rspamd ratelimit.conf（~{{v0}}/h）",
    "t0097": "已重建聚合 map（{{v0}} domains）",
    "t0098": "保護模式 {{v0}}：已封鎖遠端模型（僅允許本機 LLM）",
    "t0099": "LLM 請求失败：{{v0}}",
    "t0100": "在 {{v0}}–{{v1}} 範圍內找不到可用埠",
    "t0101": "請在 confirm 欄位輸入正確字串：{{v0}}",
    "t0102": "延遲 {{v0}}s 會以最少 1 分鐘排程（shutdown +N 以分鐘計）",
    "t0103": "已排程重啟（約 {{v0}} 分鐘後）",
    "t0104": "已排程關機（約 {{v0}} 分鐘後）",
    "t0105": "读取失败：{{v0}}",
    "t0106": "列出失败：{{v0}}",
    "t0107": "服務名稱无效：{{v0}}",
    "t0108": "路径不在允許写入範圍：{{v0}}",
    "t0109": "purge／reload 失败：{{v0}}",
    "t0110": "DB {{v0}}：{{v1}} 個 key",
    "t0111": "(type {{v0}} — 僅顯示類型)",
    "t0112": "已写入 {{v0}}",
    "t0113": "写入失败：{{v0}}",
    "t0114": "key 不存在或未删除",
    "t0115": "home 不存在: {{v0}}",
    "t0116": "无法解析 snapshots JSON: {{v0}}",
    "t0117": "共 {{v0}} 個 restic 快照",
    "t0118": "覆寫 home 需 confirmPhrase=\"{{v0}}\"（雙重確認）",
    "t0119": "dry-run：snapshot {{v0}} 含 {{v1}} 條路径（最多顯示 100）",
    "t0120": "dry-run 失败: {{v0}}",
    "t0121": "已還原 snapshot {{v0}} → {{v1}}",
    "t0122": "restore 失败 exit={{v0}}",
    "t0123": "已写入管理片段：{{v0}}",
    "t0124": "项目 Linux 用户約 {{v0}} 個（Match User ysks_*,ysk_*）",
    "t0125": "請手動：cp {{v0}} /etc/ssh/sshd_config.d/ && systemctl reload sshd",
    "t0126": "sshd -t 失败，未 reload：{{v0}}",
    "t0127": "已安装 {{v0}} 並 reload sshd",
    "t0128": "已安装片段但 reload 失败：{{v0}}",
    "t0129": "已写入控制面摘要 {{v0}}（{{v1}} bytes）",
    "t0130": "托管 Nginx 配置：{{v0}} 个（面板数据目录 nginx/conf.d）",
    "t0131": "未知範本：{{v0}}",
    "t0132": "範本 {{v0}}：{{v1}}",
    "t0133": "{{v0}} 已存在 — 已略過（force 可覆寫）",
    "t0134": "WordPress 安装說明 — {{v0}}",
    "t0135": "域名：{{v0}}",
    "t0136": "進程 entry 默认 {{v0}}.wsgi:application（gunicorn）",
    "t0137": "部署會 cargo build --release；二進位默认 ./target/release/{{v0}}",
    "t0138": "Axum 範本：cargo build --release 需外網 crates.io",
    "t0139": "二進位 ./target/release/{{v0}}",
    "t0140": "已创建 {{v0}}、略過 {{v1}}、错误 {{v2}}",
    "t0141": "{{v0}}前必須完成项目 Linux 用户隔離（資源分頁 → 创建系統用户）。",
    "t0142": " 預期 home：/home/ysk-server-{{v0}} · user：{{v1}}",
    "t0143": "已 chown {{v0}}:{{v1}} → {{v2}}",
    "t0144": "以项目用户 {{v0}} 执行指令",
    "t0145": "pidfile 以 runuser -u {{v0}} 启动",
    "t0146": "已写入 FPM pool：{{v0}}",
    "t0147": "已啟用 pool：{{v0}}",
    "t0148": "/etc/php/{{v0}}/fpm 找不到 — install php{{v1}}-fpm",
    "t0149": "{{v0}} 已安装",
    "t0150": "安装 {{v0}}",
    "t0151": "未能安装 {{v0}}",
    "t0152": "SSH probe 失败：{{v0}}",
    "t0153": "nameserver 活躍：{{v0}}",
    "t0154": "zone 目录存在（{{v0}} 個 .zone）",
    "t0155": "zone 目录不存在：{{v0}}",
    "t0156": "remote reload 失败：{{v0}}",
    "t0157": "{{v0}}: scp 失败 {{v1}}",
    "t0158": "scp {{v0}} 檔 OK → {{v1}}",
    "t0159": "scp 部分/全部失败（ok={{v0}} fail={{v1}}）",
    "t0160": "enable 失败：{{v0}}",
    "t0161": "disable 失败：{{v0}}",
    "t0162": "UFW DENY from {{v0}}（永久規則，直至手動刪）",
    "t0163": "deny 失败：{{v0}}",
    "t0164": "已刪 UFW DENY {{v0}}",
    "t0165": "delete 失败：{{v0}}",
    "t0166": "已刪規則 #{{v0}}",
    "t0167": "刪 #{{v0}} 失败：{{v1}}",
    "t0168": "已允許 {{v0}}/{{v1}}",
    "t0169": "allow 失败：{{v0}}",
    "t0170": "reload 嘗試失败 ({{v0}}): {{v1}}",
    "t0171": "隔離模式：以项目用户 {{v0}} 運作",
    "t0172": "使用 Node 执行檔：{{v0}}",
    "t0173": "目標埠：{{v0}}",
    "t0174": "已应用面板 Node 調校（{{v0}}）",
    "t0175": "应用後找不到進入點：{{v0}}",
    "t0176": "以 systemd unit 部署：{{v0}}",
    "t0177": "以 PM2 部署：{{v0}}",
    "t0178": "启动行程失败：{{v0}}",
    "t0179": "已启动 pid={{v0}}，pidfile={{v1}}",
    "t0180": "已發布 Nginx 设置（管理檔）：{{v0}}",
    "t0181": "已创建佔位頁：{{v0}}",
    "t0182": "使用既有：{{v0}}",
    "t0183": "靜態 Nginx 设置：{{v0}}",
    "t0184": "文件根目录：{{v0}}",
    "t0185": "HTTP 基本認證：{{v0}}（{{v1}}）",
    "t0186": "類型：{{v0}}",
    "t0187": "整站重新導向 → {{v0}}",
    "t0188": "使用已上傳证书：{{v0}}",
    "t0189": "已啟用 SSL（默认 Let’s Encrypt 路径；或於 SSL 頁上傳 {{v0}} 证书）",
    "t0190": "重载 Nginx 失败：{{v0}}",
    "t0191": "已写入暫停用虛擬主機：{{v0}}",
    "t0192": "Runtime {{v0}} — 只同步 Git，不重啟行程",
    "t0193": "已写入環境變數 {{v0}}（{{v1}} 項）",
    "t0194": "PHP-FPM pool 用户：{{v0}}（项目隔離）",
    "t0195": "runtime 版本 → {{v0}}",
    "t0196": "已合併面板 php.ini（{{v0}} 條 php_admin_*）",
    "t0197": "PHP-FPM 生產 Nginx 设置：{{v0}}",
    "t0198": "Nginx reload 結束碼={{v0}}: {{v1}}",
    "t0199": "PHP 內建服务器 pid={{v0}} @ 127.0.0.1:{{v1}}",
    "t0200": "已送 SIGTERM 至 {{v0}}",
    "t0201": "已送 SIGKILL 至 {{v0}}",
    "t0202": "pid {{v0}} 已結束",
    "t0203": "deployProcess 不適用於 runtime「{{v0}}」",
    "t0204": "隔離模式：以项目用户 {{v0}} 建置與启动",
    "t0205": "Runtime：{{v0}} · 埠 {{v1}} · entry {{v2}}",
    "t0206": "建置：{{v0}}",
    "t0207": "建置失败：{{v0}}",
    "t0208": "已应用面板 {{v0}} 調校（{{v1}}）",
    "t0209": "已写入 systemd 範本：{{v0}}",
    "t0210": "已 enable --now 项目 unit（User={{v0}}）",
    "t0211": "systemctl 启动失败：{{v0}}",
    "t0212": "写入系統 unit 失败：{{v0}}",
    "t0213": "pidfile 启动 pid={{v0}}${mode === 'isolated' ? ",
    "t0214": "pidfile 启动失败：{{v0}}",
    "t0215": "健康檢查未通過（{{v0}}ms）：{{v1}}",
    "t0216": "健康檢查通過（{{v0}}ms）",
    "t0217": "已写入 Nginx 反代：{{v0}}",
    "t0218": "共 {{v0}} 個 banned IP",
    "t0219": "已 unban {{v0}} @ {{v1}}",
    "t0220": "unban 失败: {{v0}}",
    "t0221": "管理白名單: {{v0}} ({{v1}} 項)",
    "t0222": "sshd ignoreip {{v0}} {{v1}} · 状态：applied",
    "t0223": "fail2ban-client ignoreip 失败：{{v0}}（管理檔已寫；唔假 applied）",
    "t0224": "建議 fail2ban jails: {{v0}}",
    "t0225": "已写入 unit 範本 {{v0}}",
    "t0226": "尚未 applied（{{v0}}）",
    "t0227": "状态 {{v0}}",
    "t0228": "数据库數量：{{v0}}（索引 0–{{v1}}）",
    "t0229": "已複製到 {{v0}}",
    "t0230": "无法複製到系統 conf 目录：{{v0}}",
    "t0231": "複製 conf 失败：{{v0}}",
    "t0232": "已重啟 {{v0}}",
    "t0233": "複製到 {{v0}} 失败：{{v1}}",
    "t0234": "拒絕額外目录：{{v0}}",
    "t0235": "目录名不合法：{{v0}}",
    "t0236": "略過默认目录（已掃描）：{{v0}}",
    "t0237": "{{v0}}（未產生）",
    "t0238": "journal php{{v0}}-fpm（pool log 未見）",
    "t0239": "grep「{{v0}}」：{{v1}} 行命中（尾端掃描 {{v2}} bytes）",
    "t0240": "顯示尾端 {{v0}} 行（文件 {{v1}} bytes，已截斷）",
    "t0241": "顯示尾端 {{v0}} 行（文件 {{v1}} bytes）",
    "t0242": "找到 {{v0}} 個日誌檔（未指定內容關鍵字）",
    "t0243": "无法读取：{{v0}}",
    "t0244": "內容搜尋「{{v0}}」：掃 {{v1}} 檔、{{v2}} 檔有命中（只掃各檔尾端）",
    "t0245": "{{v0}} 服务器尚未安装",
    "t0246": "{{v0}} 服務未運行",
    "t0247": "{{v0}} 客戶端尚未安装",
    "t0248": "客戶端：{{v0}}",
    "t0249": "服务器：{{v0}}",
    "t0250": "{{v0}} 已就緒",
    "t0251": "{{v0}} 安装未完成",
    "t0252": "{{v0}} 服務已启动",
    "t0253": "启动失败：{{v0}}",
    "t0254": "支持 Node.js 版本 {{v0}}；可用版本：{{v1}}",
    "t0255": "不支援的 PHP 版本 {{v0}}；可用：{{v1}}",
    "t0256": "不支援的 Python 版本 {{v0}}；可用：{{v1}}",
    "t0257": "不支援的 Go 版本 {{v0}}；可用：{{v1}}",
    "t0258": "未知 runtime：{{v0}}",
    "t0259": "dig 無答案（NXDOMAIN 或空）",
    "t0260": "已解析最近 {{v0}} 行",
    "t0261": "PostgreSQL 失败: {{v0}}",
    "t0262": "MySQL 失败: {{v0}}",
    "t0263": "{{v0}}: 无法 DROP — 需 EXECUTE+root（已標記 expired）",
    "t0264": "{{v0}}: DROP 失败 {{v1}}",
    "t0265": "{{v0}}: DROP 失败 {{v1}}",
    "t0266": "{{v0}}: 已標記 expired（未 DROP 系統帳號）",
    "t0267": "FTP 用户已存在: {{v0}}",
    "t0268": "已创建 FTP 帳戶 {{v0}}",
    "t0269": "Jail 路径: {{v0}}",
    "t0270": "密码已以 crypt 雜湊保存（唔存明文）",
    "t0271": "上傳檔將以项目 Linux 用户擁有：{{v0}}（应用 vsftpd 後生效）",
    "t0272": "略過无效用户名",
    "t0273": "帳戶 {{v0}}：已遷移明文密码 → crypt 雜湊",
    "t0274": "帳戶 {{v0}} 雜湊格式非 crypt（openssl 不可用）— 登入可能失败",
    "t0275": "帳戶 {{v0}} 無密码雜湊，无法登入直至重設",
    "t0276": "帳戶 {{v0}} 綁项目但無 linuxUser — 暫用全域 guest「{{v1}}」（請重建 FTP 帳戶）",
    "t0277": "已写入 {{v0}} 個帳戶设置",
    "t0278": "{{v0}} 個帳戶",
    "t0279": "帳戶 {{v0}} 已应用，vsftpd 運行中",
    "t0280": "略過 chown {{v0}}：系統用户「{{v1}}」不存在（請先创建项目系統用户）",
    "t0281": "chown 失败 {{v0}}：{{v1}}",
    "t0282": "FTP 專用家目录（{{v0}}）",
    "t0283": "项目 {{v0}} 根目录",
    "t0284": "项目 {{v0}} public",
    "t0285": "邮件 {{v0}}",
    "t0286": "尚未创建系統用户（需要系統管理员权限）。意圖 home：{{v0}}；目前使用控制面陰影目录。",
    "t0287": "{{v0}}；已改用陰影 home {{v1}}",
    "t0288": "已嘗試停止 {{v0}}",
    "t0289": "已移除舊 home：{{v0}}",
    "t0290": "舊 home 未刪（可手動）：{{v0}} — {{v1}}",
    "t0291": "拒絕删除不安全 home 路径：{{v0}}",
    "t0292": "未刪 OS home（需 root）：{{v0}}；系統用户 {{v1}} 可能仍存在",
    "t0293": "pdnsutil load-zone 失败：{{v0}}",
    "t0294": "已透過 pdnsutil 載入 zone {{v0}}",
    "t0295": "systemctl {{v0}} fail2ban 成功",
    "t0296": "{{v0}} 失败：{{v1}}",
    "t0297": "fail2ban ban {{v0}} @ {{v1}}（臨時，受 bantime 限制）",
    "t0298": "banip 失败：{{v0}}",
    "t0299": "监狱：{{v0}}",
    "t0300": "ignoreip 來源：dataDir/fail2ban/ignoreip.txt",
    "t0301": "安装檢查：{{v0}}",
    "t0302": "已達方案项目上限 {{v0}}（package: {{v1}}）",
    "t0303": "已達方案信箱上限 {{v0}}（package: {{v1}}）",
    "t0304": "已達方案数据库上限 {{v0}}（package: {{v1}}）",
    "t0305": "已写入 {{v0}}（DB 默认 {{v1}}@{{v2}}；可用環境變數覆寫）",
    "t0306": "pm2 start 失败：{{v0}}",
    "t0307": "pm2 已启动 {{v0}}",
    "t0308": "{{v0}} 尚未安装",
    "t0309": "已执行 {{v0}}",
    "t0310": "已应用 {{v0}} 項",
    "t0311": "以下項目可能需重啟：{{v0}}",
    "t0312": "即時应用 {{v0}} 項",
    "t0313": "需重啟項（請用生命週期重啟）：{{v0}}",
    "t0314": "已 ALTER SYSTEM {{v0}} 項並 reload",
    "t0315": "部分參數需重啟後生效：{{v0}}",
    "t0316": "已 {{v0}} {{v1}}",
    "t0317": "管理 ini：{{v0}}",
    "t0318": "/etc/php/{{v0}}/fpm 不存在 — 請先安装 php{{v1}}-fpm",
    "t0319": "已应用 {{v0}} 並 reload php{{v1}}-fpm",
    "t0320": "已複製 ini；reload 失败：{{v0}}",
    "t0321": "DNS zone draft {{v0}}（需到 DNS 頁写入/应用）",
    "t0322": "已含 IPv6 {{v0}}",
    "t0323": "邮件域名 {{v0}} 已登記",
    "t0324": "MySQL DB draft {{v0}}（需到数据库頁应用）",
    "t0325": "略過：家目录不存在 {{v0}}",
    "t0326": "已备份 {{v0}}/{{v1}} 个项目",
    "t0327": "（略过 {{v0}} 个无 home）",
    "t0328": "项目目录不存在：{{v0}}",
    "t0329": "tar 失败：{{v0}}",
    "t0330": "已写入备份 {{v0}}",
    "t0331": "dry-run：文件 {{v0}}+ 個（顯示前 {{v1}}）",
    "t0332": "无法列出: {{v0}}",
    "t0333": "已選擇性還原 (web) 到 {{v0}}",
    "t0334": "web 還原失败: {{v0}}",
    "t0335": "還原失败: {{v0}}",
    "t0336": "已從 {{v0}} 完整還原到项目目录",
    "t0337": "已 chown {{v0}}:{{v1}} → {{v2}}",
    "t0338": "执行: {{v0}}",
    "t0339": "管理 crontab 檔：{{v0}}",
    "t0340": "crontab 失败: {{v0}}",
    "t0341": "pg_dump 失败: {{v0}}",
    "t0342": "dump 失败: {{v0}}",
    "t0343": "psql 失败: {{v0}}",
    "t0344": "import 失败: {{v0}}",
    "t0345": "目標 {{v0}} 非空且非 git 倉庫 — 拒絕 clone 以免覆寫資料（僅清除帶 .ysk-scaffold 的佔位範本）",
    "t0346": "已 clone {{v0}} → {{v1}}",
    "t0347": "已 pull 更新：{{v0}}",
    "t0348": "linuxUser 无效：{{v0}}",
    "t0349": "已应用 {{v0}}：{{v1}} + www-data/nginx；home 750、public g+rX",
    "t0350": "ysk-web 应用部分失败：{{v0}}",
    "t0351": "管理路径 {{v0}}",
    "t0352": "nginx 管理 conf: {{v0}}",
    "t0353": "下載失败: {{v0}}",
    "t0354": "已下載 Adminer → {{v0}}",
    "t0355": "已有 {{v0}}",
    "t0356": "nginx 管理 conf: {{v0}}",
    "t0357": "已複製 → {{v0}}",
    "t0358": "埠號无效：{{v0}}",
    "t0359": "以用户 {{v0}} 安装 crontab",
    "t0360": "沿用已有密钥 {{v0}} 個",
    "t0361": "已簽署 zone → {{v0}}（需 reload 權威 DNS；DS 仍要人手上 registrar）",
    "t0362": "未找到 managed zone 檔（試過 dns/zones/{{v0}}.zone）— 跳過簽署",
    "t0363": "{{v0}} 個文件 under {{v1}}",
    "t0364": "TCP {{v0}}:{{v1}} 正常（{{v2}}ms）",
    "t0365": "TCP {{v0}}:{{v1}} 失败：{{v2}}",
    "t0366": "PING 失败：{{v0}}",
    "t0367": "超出配額：{{v0}}MB > {{v1}}MB",
    "t0368": "磁碟配額已超限（{{v0}} / {{v1}} MiB），无法{{v2}}",
    "t0369": "home 非意圖路径（目前 {{v0}} → 應為 {{v1}}）",
    "t0370": "Linux 用户名為舊式「{{v0}}」（新建會用 {{v1}}）；遷移會保留現有用户名並改 home",
    "t0371": "就緒 {{v0}} / 降級 {{v1}} / 未隔離 {{v2}}（共 {{v3}}）",
    "t0372": "；待处理：{{v0}}{{v1}}",
    "t0373": "项目「{{v0}}」隔離",
    "t0374": "已複製到本機路径 {{v0}}",
    "t0375": "身份 {{v0}}：{{v1}}",
    "t0376": "sftp（身份密钥）连到 {{v0}} 成功",
    "t0377": "sftp（身份密钥）失败：{{v0}}",
    "t0378": "sftp 连到 {{v0}} 成功",
    "t0379": "sftp 失败：{{v0}}",
    "t0380": "sftp 连到 {{v0}} 成功",
    "t0381": "sftp 失败：{{v0}}（可设置备份 remote identityId）",
    "t0382": "已上傳 S3 {{v0}}",
    "t0383": "S3 失败: {{v0}}",
    "t0384": "政策已開：{{v0}}/{{v1}} admin 已啟用 2FA",
    "t0385": "政策未強制：{{v0}}/{{v1}} admin 已啟用 2FA",
    "t0386": "{{v0}} 在 PATH",
    "t0387": "{{v0}} 找不到",
    "t0388": "請於系統安装 {{v0}}，或於面板软件／runtime 安装",
    "t0389": "可用版本：{{v0}}",
    "t0390": "使用率約 {{v0}}%（總 {{v1}} MB）",
    "t0391": "使用率約 {{v0}}%（{{v1}}）",
    "t0392": "於服務矩陣启动 {{v0}}",
    "t0393": "模式：{{v0}}",
    "t0394": "就緒 {{v0}} / 降級 {{v1}} / 缺少 {{v2}}（共 {{v3}} 項）",
    "t0395": "找不到（預期 {{v0}}）",
    "t0396": "主機 node：{{v0}}",
    "t0397": "主機 php：{{v0}}",
    "t0398": "主機 python：{{v0}}",
    "t0399": "主機 go：{{v0}}",
    "t0400": "主機 cargo：{{v0}}",
    "t0401": "Node 可用：{{v0}}",
    "t0402": "PHP 可用：{{v0}}",
    "t0403": "Python 可用：{{v0}}",
    "t0404": "Go 可用：{{v0}}",
    "t0405": "Rust 可用：{{v0}}",
    "t0406": "準備安装 Node {{v0}}",
    "t0407": "準備安装 PHP {{v0}}",
    "t0408": "準備安装 Python {{v0}}",
    "t0409": "準備安装 Go {{v0}} 到 /usr/local/ysk/go",
    "t0410": "準備安装 Rust（{{v0}}）到 /usr/local/ysk/rust",
    "t0411": "安装失败：{{v0}}",
    "t0412": "已准备 OpenJDK {{v0}} 安装脚本",
    "t0413": "已准备 Kotlin {{v0}} 安装脚本（需 JDK）",
    "t0414": "已准备 Bun（{{v0}}）安装脚本",
    "t0415": "项目 home 公鑰：{{v0}}",
    "t0416": "登入目標用户 {{v0}}（项目隔離 home）；請對 .ssh 执行 chown（API 會嘗試）",
    "t0417": "已 chown {{v0}} → {{v1}}",
    "t0418": "chown .ssh 失败：{{v0}}",
    "t0419": "已删除 key · 重寫 authorized_keys",
    "t0420": "不支援的類型：{{v0}}",
    "t0421": "TTL {{v0}} 建議介於 30–604800",
    "t0422": "名稱 {{v0}} 同時有 CNAME 與其他類型（禁止）",
    "t0423": "名稱 {{v0}} 有多個不同 CNAME 目標",
    "t0424": "移除设置失败：{{v0}}",
    "t0425": "帳戶 {{v0}} 已写入管理设置",
    "t0426": "无法移除文件：{{v0}}",
    "t0427": "已複製 {{v0}} 個设置檔到系統目录",
    "t0428": "欄位 {{v0}} 无效",
    "t0429": "目前 home 非意圖路径（意圖 {{v0}}）",
    "t0430": "usermod -s 失败：{{v0}}",
    "t0431": "鎖定失败：{{v0}}",
    "t0432": "解鎖失败：{{v0}}",
    "t0433": "set-property 失败：{{v0}}（下次 deploy 會写入 unit）",
    "t0434": "unit {{v0}} 未 active — 限制已存 DB，下次 deploy 写入 unit",
    "t0435": "setquota 未成功（文件系統可能未啟 user_xattr/quota）：{{v0}}",
    "t0436": "home 不存在：{{v0}}",
    "t0437": "已 chown {{v0}} → {{v1}}",
    "t0438": "top header 失败：{{v0}}",
    "t0439": "ps 完整欄位失败：{{v0}}",
    "t0440": "目前 NI={{v0}}",
    "t0441": "PID {{v0}} 是本控制面進程（process.pid）",
    "t0442": "進程不存在或無權探测（kill -0 exit {{v0}}）",
    "t0443": "kill -s {{v0}} 失败：${err || ",
    "t0444": "已送 {{v0}} → PID {{v1}}",
    "t0445": "{{v0}} 个项目已暂停",
    "t0446": "{{v0}} 个项目未创建系统用户",
    "t0447": "{{v0}} 项待审批",
    "t0448": "证书已过期：{{v0}}",
    "t0449": "证书 {{v0}} 日内到期：{{v1}}",
    "t0450": "时间 {{v0}}",
    "t0451": "DNSBL 上榜：{{v0}}",
    "t0452": "{{v0}} 项应用失败／blocked",
    "t0453": "{{v0}} 项仍为 written／draft",
    "t0454": "自动防护档：{{v0}}",
    "t0455": "操作失败：{{v0}}",
    "t0456": "Journal 磁盘偏高：≈{{v0}} MB",
    "t0457": "阈值 {{v0}} MB — 可到日志中心 vacuum 或调整保留",
    "t0458": "df 失败：{{v0}}",
    "t0459": "僅量測前 {{v0}} 個项目（共 {{v1}}）",
    "t0460": "目標版本 {{v0}} → {{v1}}",
    "t0461": "已嘗試升級 {{v0}}",
    "t0462": "升級失败 exit={{v0}}",
    "t0463": "apt list --upgradable: {{v0}} 可升級",
    "t0464": "apt list --upgradable 不可用（exit {{v0}}）；改用 apt-cache policy",
    "t0465": "dpkg+apt-cache policy: {{v0}} 套件",
    "t0466": "dpkg/apt-cache policy 失败或空白（exit {{v0}}）— 可能無 apt 或权限不足",
    "t0467": "Node 進程 {{v0}}（非 apt nodejs 套件則不列入可升級清單）",
    "t0468": "真實可升級（candidate ≠ current）: {{v0}}",
    "t0469": "npm registry 回應 HTTP {{v0}}",
    "t0470": "GitHub releases 回應 HTTP {{v0}}",
    "t0471": "GitHub package.json 回應 HTTP {{v0}}",
    "t0472": "npm 頻道：{{v0}}@{{v1}}",
    "t0473": "npm {{v0}} 不可用：{{v1}}",
    "t0474": "GitHub releases 不可用：{{v0}}",
    "t0475": "GitHub 源碼 package.json（{{v0}}）：{{v1}}",
    "t0476": "GitHub package.json 不可用：{{v0}}",
    "t0477": "有更新：{{v0}} → {{v1}}",
    "t0478": "來源目录 {{v0}} 不是 git repo — 可設 YSK_SOURCE_ROOT，或改用 npm 頻道（YSK_NPM_PACKAGE）",
    "t0479": "GitHub tarball 下載失败：{{v0}}",
    "t0480": "已下載原始碼到 {{v0}}（staging only）— 未替換運行中安装；請用部署腳本／git 工作目录完成切換",
    "t0481": "使用 git 來源：{{v0}}",
    "t0482": "git apply 步驟 {{v0}} 失败 (exit {{v1}}): {{v2}}",
    "t0483": "已更新來源樹至目標 {{v0}} 並 build — 請重啟 ysk-server 程序令新版本生效",
    "t0484": "已安装 {{v0}}",
    "t0485": "npm 更新失败：{{v0}}",
    "t0486": "已用 YSK_NPM_PACKAGE 安装 {{v0}}",
    "t0487": "YSK_NPM_PACKAGE 安装失败：{{v0}}",
    "t0488": "可升級 {{v0}} → {{v1}}（CRITICAL CVE，需確認）",
    "t0489": "可升級 {{v0}} → {{v1}}（HIGH CVE，需確認）",
    "t0490": "可升級 {{v0}} → {{v1}}（可能不相容，需確認）",
    "t0491": "可升級 {{v0}} → {{v1}}（安全修補）",
    "t0492": "可升級 {{v0}} → {{v1}}（apt Candidate）",
    "t0493": "無可用升級，但 OSV 標註已裝版有 {{v0}} 項漏洞信號",
    "t0494": "服務状态：{{v0}}",
    "t0495": "已偵測到可执行檔：{{v0}}",
    "t0496": "未知 Agent 運行時：{{v0}}",
    "t0497": "不支援的 Agent 類型：{{v0}}",
    "t0498": "安装指令失败（唔會假裝成功）：{{v0}}",
    "t0499": "Agent 找不到 session：{{v0}}",
    "t0500": "找不到任務：{{v0}}",
    "t0501": "用户已存在: {{v0}}",
    "t0502": "救援用户排除：{{v0}}",
    "t0503": "已排除项目 SFTP 風格用户（ysks_/ysk_，internal-sftp 不適合 kbd-interactive）：{{v0}}",
    "t0504": "已從 strict 列表移除救援用户：{{v0}}",
    "t0505": "{{v0}} 個用户將要求 publickey+TOTP、关闭 password",
    "t0506": "管理檔：{{v0}}",
    "t0507": "已安装 {{v0}} 並嘗試 reload sshd",
    "t0508": "安装／sshd -t 失败：{{v0}}",
    "t0509": "PAM 預覽會寫管理檔：{{v0}}",
    "t0510": "chown 可能失败：{{v0}}",
    "t0511": "警告：期望 mode 400（stat: {{v0}}）",
    "t0512": "PAM 片段（管理檔）：{{v0}}",
    "t0513": "sshd 提示（管理檔）：{{v0}}",
    "t0514": "scratch（只此一次回應）：{{v0}} — 請離線保存",
    "t0515": "pam.d/sshd 已引用：{{v0}}",
    "t0516": "用户 {{v0}} 已有 SSH 2FA（{{v1}}）。先 disable/retire。",
    "t0517": "已產生 secrets master key：{{v0}}",
    "t0518": "chown 可能失败：{{v0}}",
    "t0519": "ssh 失败：{{v0}}",
    "t0520": "已產生 master key：{{v0}}（請一併备份）",
    "t0521": "已產生 master key：{{v0}}",
    "t0522": "已有相同 fingerprint：{{v0}} ({{v1}})",
    "t0523": "已寫 CF-only UFW 腳本：{{v0}}",
    "t0524": "保留埠：{{v0}}",
    "t0525": "CF IPv4 段：{{v0}} 個",
    "t0526": "CF IPv6 段：{{v0}} 個",
    "t0527": "ufw 腳本失败：{{v0}}",
    "t0528": "auth 失败 IP：{{v0}}",
    "t0529": "Top IP 樣本 {{v0}} 個",
    "t0530": "威脅分 {{v0}} · {{v1}}",
    "t0531": "自動防護檔 → {{v0}}{{v1}}",
    "t0532": "自動切換防護檔：{{v0}}",
    "t0533": "SSH 失败×{{v0}}",
    "t0534": "auth 失败來源 {{v0}} IP",
    "t0535": "請求×{{v0}}",
    "t0536": "掃描×{{v0}}",
    "t0537": "批量封禁 {{v0}}/{{v1}}",
    "t0538": "完成 {{v0}} 個 IP：成功 {{v1}}",
    "t0539": "熔斷：本小時已 auto-ban {{v0}} 次",
    "t0540": "熔斷：本小時已達上限 {{v0}}",
    "t0541": "自動 ban {{v0}} 個 IP",
    "t0542": "无法解析 zone {{v0}}（HTTP {{v1}}）",
    "t0543": "計劃：將 {{v0}} security_level → {{v1}}",
    "t0544": "模擬：{{v0}} → security_level={{v1}}",
    "t0545": "本小時已達上限（{{v0}}）",
    "t0546": "本小時 {{v0}} 次",
    "t0547": "緊急檔需 confirm=\"{{v0}}\"",
    "t0548": "已寫 Nginx 限速：{{v0}}",
    "t0549": "已注入 {{v0}} 個 vhost 限速標記",
    "t0550": "作用中防護檔 → {{v0}}",
    "t0551": "自動 ban → {{v0}}（{{v1}} / {{v2}}）",
    "t0552": "应用防護檔：{{v0}}",
    "t0553": "fail2ban 失败：{{v0}}",
    "t0554": "ufw 失败：{{v0}}",
    "t0555": "封禁 {{v0}}",
    "t0556": "ufw delete 失败：{{v0}}",
    "t0557": "解封 {{v0}}",
    "t0558": "略過 {{v0}}：{{v1}}",
    "t0559": "已注入限速到 {{v0}} 個 vhost",
    "t0560": "cluster_size={{v0}} < 登記节点 {{v1}}",
    "t0561": "只有 {{v0}} 個节点在 cluster",
    "t0562": "probe 不支援 {{v0}}",
    "t0563": "mysql/mariadb 查詢失败：{{v0}}",
    "t0564": "SHOW REPLICA/SLAVE 失败：{{v0}}",
    "t0565": "SHOW MASTER 失败：{{v0}}",
    "t0566": "replica 應為 recovery，實際={{v0}}",
    "t0567": "primary 不應 recovery，實際={{v0}}",
    "t0568": "replica 異常 role={{v0}}",
    "t0569": "期望 master，實際 role={{v0}}",
    "t0570": "{{v0}} 個產物檔 · {{v1}}",
    "t0571": "tar 失败：{{v0}}",
    "t0572": "已打包 {{v0}}（{{v1}} bytes）",
    "t0573": "{{v0}} 個 peer 目標",
    "t0574": "{{v0}}: identity {{v1}} 不可用 — 改用默认 key",
    "t0575": "{{v0}}: ssh mkdir 失败 {{v1}}",
    "t0576": "{{v0}}: 本地缺 {{v1}}",
    "t0577": "{{v0}}/{{v1}}: scp 失败 {{v2}}",
    "t0578": "{{v0}} 個 agent · op={{v1}}",
    "t0579": "{{v0}}: enqueue 失败 {{v1}}",
    "t0580": "未知拓撲 {{v0}}",
    "t0581": "本機 Galera conf（{{v0}}）",
    "t0582": "在 {{v0}} 安装 conf 並 join（手動 / SSH / fleet）",
    "t0583": "install conf → systemctl restart mariadb（非 bootstrap 节点）",
    "t0584": "找不到 conf 產物：{{v0}}",
    "t0585": "本機 apply 不支援 {{v0}}",
    "t0586": "已安装系統 drop-in：{{v0}}",
    "t0587": "写入系統 conf 失败：{{v0}}",
    "t0588": "galera_new_cluster 失败：{{v0}}",
    "t0589": "已 systemctl restart {{v0}}（從庫/slot/sentinel 後續步驟見 scripts/）",
    "t0590": "已 systemctl restart {{v0}}",
    "t0591": "ssh probe 失败：{{v0}}",
    "t0592": "replica probe 失败：{{v0}}",
    "t0593": "primary probe 失败：{{v0}}",
    "t0594": "全部 {{v0}} 节点 probe OK · size={{v1}}",
    "t0595": "全部 {{v0}} 节点 probe OK",
    "t0596": "會安装到 {{v0}} 並 {{v1}}",
    "t0597": "scp 失败 {{v0}}",
    "t0598": "install conf 失败：{{v0}}",
    "t0599": "conf 已寫但 restart {{v0}} 失败",
    "t0600": "已寫 {{v0}}${restart ? ",
    "t0601": "不支援的引擎：{{v0}}",
    "t0602": "不支援的集群類型：{{v0}}",
    "t0603": "已嘗試停止 {{v0}} 個项目 unit（ok-ish {{v1}}）",
    "t0604": "部分 stop 非零 exit（共 {{v0}}）— 仍繼續 dump",
    "t0605": "與 {{v0}} 共用同一 RDB（略過重複 dump）",
    "t0606": "打包完成 → {{v0}}",
    "t0607": "已创建用户 {{v0}} uid={{v1}}",
    "t0608": "用户已存在 {{v0}}",
    "t0609": "useradd 失败: {{v0}}",
    "t0610": "chown 失败: {{v0}}",
    "t0611": "home 不存在，略過 chown: {{v0}}",
    "t0612": "dump 檔不存在或空: {{v0}}",
    "t0613": "RDB 不存在: {{v0}}",
    "t0614": "已還原 RDB → {{v0}}",
    "t0615": "複製 RDB 失败: {{v0}}",
    "t0616": "redis 启动/ping: {{v0}}",
    "t0617": "提示：{{v0}} 不存在 — dump 應在 dataDir 隨 rsync 到達（dumpRelPath）",
    "t0618": "无法解析目標 sha256: {{v0}}",
    "t0619": "ysk.json sha256 一致 {{v0}}…",
    "t0620": "ysk.json 不一致 local={{v0}} remote={{v1}}",
    "t0621": "本機 dataDir 不存在: {{v0}}",
    "t0622": "dataDir 不存在: {{v0}}",
    "t0623": "略過不存在的 home: {{v0}}",
    "t0624": "home 已在 dataDir 內，隨 dataDir 傳輸: {{v0}}",
    "t0625": "rsync home 失败 {{v0}}",
    "t0626": "transfer 中止：home rsync 失败 {{v0}}",
    "t0627": "略過不存在: {{v0}}",
    "t0628": "transfer 完成 → {{v0}}:{{v1}}",
    "t0629": "项目 {{v0}} home 不存在: {{v1}}",
    "t0630": "项目 {{v0}} 綁定 bind_ip={{v1}} — 遷移後可能需清空（新機 IP 不同）",
    "t0631": "项目 {{v0}} home 非標準路径: {{v1}}",
    "t0632": "磁碟有孤立 home（store 無對應）: {{v0}}",
    "t0633": "Maildir 不存在: {{v0}}",
    "t0634": "來源缺 {{v0}} — 无法傳輸到目標機",
    "t0635": "无法探测 {{v0}}",
    "t0636": "來源 {{v0}} · {{v1}}",
    "t0637": "项目 {{v0}} · 信箱 {{v1}} · DB {{v2}} · Redis {{v3}}",
    "t0638": "需安装软件 {{v0}} 项 · homes {{v1}}",
    "t0639": "cutover 主機名 {{v0}}",
    "t0640": "警告 {{v0}} 則（請審閱）",
    "t0641": "已產生臨時密钥 {{v0}}",
    "t0642": "无法產生臨時密钥: {{v0}}",
    "t0643": "目標未確認写入 authorized_keys: {{v0}}",
    "t0644": "已在 {{v0}} 安装臨時公鑰（後續改用 key 登入）",
    "t0645": "删除臨時密钥失败: {{v0}}",
    "t0646": "{{v0}} 可用",
    "t0647": "dataDir 不存在: {{v0}}",
    "t0648": "預估傳輸量 ~{{v0}}",
    "t0649": "來源可用 {{v0}}（dump 緩衝充足）",
    "t0650": "來源磁碟不足：可用 {{v0}}，建議 ≥ {{v1}}",
    "t0651": "盤點警告 {{v0}} 則（非全部阻塞）",
    "t0652": "SSH 连接 {{v0}}",
    "t0653": "目標用户 {{v0}} 非 root（MVP 需要 root）",
    "t0654": "不支援的 OS（{{v0}}）；需要 Debian/Ubuntu",
    "t0655": "目標可用 {{v0}} ≥ 需求 {{v1}}",
    "t0656": "目標磁碟不足：可用 {{v0}}，需要約 {{v1}}",
    "t0657": "目標已有 {{v0}}/ysk.json — 拒絕覆蓋（需 forceWipeTarget）",
    "t0658": "目標目录存在但無 ysk.json: {{v0}}",
    "t0659": "目標目录將创建: {{v0}}",
    "t0660": "時鐘偏差 {{v0}}s",
    "t0661": "時鐘偏差 {{v0}}s ≥ 120s（影響 TLS/TOTP）",
    "t0662": "项目 {{v0}} 來源 bind_ip={{v1}} — 新機應改為空（全接口）",
    "t0663": "已清空 {{v0}} 個 project.bind_ip",
    "t0664": "无法 persist bind_ip 修正: {{v0}}",
    "t0665": "nginx sync 例外: {{v0}}",
    "t0666": "私鑰不存在: {{v0}}",
    "t0667": "identity {{v0}} 不可用",
    "t0668": "SSH 失败 exit={{v0}}: {{v1}}",
    "t0669": "本地路径不存在: {{v0}}",
    "t0670": "rsync 失败 exit={{v0}}: {{v1}}",
    "t0671": "Redis RDB 已写入 {{v0}}（--rdb）",
    "t0672": "--rdb 失败: {{v0}}",
    "t0673": "BGSAVE 失败: {{v0}}",
    "t0674": "Redis RDB 已複製 {{v0}} → {{v1}}（BGSAVE）",
    "t0675": "无法取得 Redis RDB（src={{v0}}）",
    "t0676": "{{v0}} 期望 {{v1}} 實際 {{v2}}",
    "t0677": "來源 home 本就不存在，略過: {{v0}}",
    "t0678": "home 缺失 {{v0}}",
    "t0679": "來源 Maildir 本就不存在: {{v0}}",
    "t0680": "maildir 缺失 {{v0}}",
    "t0681": "ysk.json fingerprint 已變（可能 reapply 寫回）local≠source",
    "t0682": "readiness 错误: {{v0}}",
    "t0683": "DNS cutover：將以下 A/AAAA 指向新 IP → {{v0}}{{v1}}",
    "t0684": "verify 失败：{{v0}} 項 mismatch",
    "t0685": "verify 通過（mismatches={{v0}}）",
    "t0686": "无效 target: {{v0}}（需要 root@host 或 host）",
    "t0687": "找不到 job {{v0}}",
    "t0688": "手動：在目標执行 YSK_EXECUTE=1 ysk-server migrate post --job {{v0}} --data-dir {{v1}}",
    "t0689": "整機遷移完成 → {{v0}}",
    "t0690": "cutover 主機名: {{v0}}",
    "t0691": "遠端 post 完成 @ {{v0}}",
    "t0692": "找不到 job {{v0}}（確認 dataDir 已 rsync）",
    "t0693": "遠端未回報成功標記 ({{v0}})",
    "t0694": "bootstrap 完成 → {{v0}}",
    "t0695": "非關鍵失败: {{v0}}",
    "t0696": "不支援的 mode：{{v0}}",
    "t0697": "找不到 edge 节点：{{v0}}",
    "t0698": "节点 {{v0}} 需有 edge（或 origin）角色",
    "t0699": "不支援的 DNS 策略：{{v0}}",
    "t0700": "不支援的 SSL mode：{{v0}}",
    "t0701": "CDN 站點上限 {{v0}}",
    "t0702": "origin shield 节点不存在：{{v0}}",
    "t0703": "edges: {{v0}} 個",
    "t0704": "origin URL（回源）: {{v0}}",
    "t0705": "已更新既有 CDN 站點 {{v0}}",
    "t0706": "已创建 CDN 站點 {{v0}}",
    "t0707": "origin shield：本 edge 回源經 shield {{v0}} → {{v1}}",
    "t0708": "origin.kind=project 但未提供 projectOriginUrl — 使用佔位 {{v0}}",
    "t0709": "edge {{v0}} ({{v1}}): planned（未 fan-out — PR-C3）",
    "t0710": "edge {{v0}}: 节点缺失",
    "t0711": "已写入 managed nginx：{{v0}}",
    "t0712": "已写入 edge 模板：{{v0}}",
    "t0713": "本機 nginx -t 失败（proxy_cache_path 可能需在 http{}）：{{v0}}",
    "t0714": "使用 certId={{v0}} domain={{v1}}",
    "t0715": "certId={{v0}} 文件不存在：{{v1}}",
    "t0716": "找不到 certId={{v0}}",
    "t0717": "使用 dataDir 证书 {{v0}}",
    "t0718": "使用本機 Let’s Encrypt {{v0}}",
    "t0719": "scp 失败 {{v0}}",
    "t0720": "mkdir 失败 {{v0}}",
    "t0721": "certbot 失败：{{v0}}",
    "t0722": "originShieldNodeId={{v0}} 不存在 — 忽略 shield",
    "t0723": "{{v0}}: 有 SSH 目標 — 使用 SSH 同步应用（略過 fleet 佇列）",
    "t0724": "fleet 无法入佇列（blocked={{v0}}）— 提供 enqueue 或改用 SSH",
    "t0725": "fleet 已入队列 {{v0}} edge — queued ≠ agent 已 nginx reload；查看 Agents 指令纪录",
    "t0726": "fleetAgentId={{v0}} — 需要控制面 fleet enqueue（API 會注入）；或改填 SSH 做同步应用",
    "t0727": "找不到 conf：{{v0}}",
    "t0728": "讀 conf 失败：{{v0}}",
    "t0729": "fleet enqueue 失败：{{v0}}",
    "t0730": "nginx -t 失败：{{v0}}",
    "t0731": "SSH mkdir 失败：{{v0}}",
    "t0732": "scp 失败：{{v0}}",
    "t0733": "remote reload 失败：{{v0}}",
    "t0734": "fleetAgentId={{v0}} — purge 需 fleet enqueue 或 SSH",
    "t0735": "enqueue 失败：{{v0}}",
    "t0736": "purge 失败：{{v0}}",
    "t0737": "remote purge 失败：{{v0}}",
    "t0738": "fleet purge 已入佇列 {{v0}} — queued ≠ edge 已 purge",
    "t0739": "geo {{v0}}: 未知节点 {{v1}}",
    "t0740": "weighted 縮放至 maxRr={{v0}}（總副本 {{v1}}）",
    "t0741": "minHealthyEdges={{v0}} 但僅 {{v1}} 個健康 edge — 防全滅：改用全部有 IP 的 edge（含 offline）",
    "t0742": "edge {{v0}} 不存在 — 略過",
    "t0743": "probe {{v0}} 例外：{{v1}}",
    "t0744": "已綁定 zoneId={{v0}} ({{v1}})",
    "t0745": "名稱 {{v0}} 已有 user 管理記錄 {{v1}} 筆 — CDN 仍写入 managedBy=cdn（可能並存；請檢查 zone）",
    "t0746": "geo subdomain {{v0}}: 無 IP — 略過",
    "t0747": "access_log 抽樣 {{v0}}（{{v1}} 個 cache status token）",
    "t0748": "读取本地 log {{v0}}",
    "t0749": "cache 目录 {{v0}} ≈ {{v1}} bytes（非命中率）",
    "t0750": "cache 抽樣僅前 {{v0}}/{{v1}} 個站點",
    "t0751": "IPv4 无效：{{v0}}",
    "t0752": "IPv6 无效：{{v0}}",
    "t0753": "CDN 节点上限 {{v0}}",
    "t0754": "HTTP {{v0}}（視為不健康）{{v1}}",
    "t0755": "HTTP 探活失败：{{v0}}",
    "t0756": "TCP {{v0}}:443/80 皆无法连接",
    "t0757": "探活 {{v0}}/{{v1}} 健康",
    "t0758": "list-units 失败：{{v0}}",
    "t0759": "共 {{v0}} 個 service units",
    "t0760": "已改用 unit {{v0}}",
    "t0761": "輸出截斷至 {{v0}} bytes",
    "t0762": "journalctl · {{v0}} 行",
    "t0763": "已 vacuum：{{v0}}",
    "t0764": "vacuum 失败：{{v0}}",
    "t0765": "應用層 filter：{{v0}} 行匹配",
    "t0766": "文件 {{v0}} · {{v1}} bytes · 顯示 {{v2}} 行",
    "t0767": "路径不在 allowlist：{{v0}}",
    "t0768": "Journal 磁碟偏高：≈{{v0}} MB（閾值 {{v1}} MB）",
    "t0769": "项目 {{v0}} · {{v1}} 個 log 檔（含子目录）",
    "t0770": "已匯出 {{v0}} 行（{{v1}}）",
    "t0771": "未到時間窗 {{v0}}",
    "t0772": "每月（DB-IP City Lite {{v0}}；失败試上月）",
    "t0773": "每月 fallback {{v0}}",
    "t0774": "政策：{{v0}} · 國 {{v1}} · 省 {{v2}} · 市 {{v3}}{{v4}} · ASN {{v5}}",
    "t0775": "文件過細（{{v0}} B），可能下載失败",
    "t0776": "略過 {{v0}} fallback（已成功）",
    "t0777": "已更新 {{v0}}（{{v1}} B）",
    "t0778": "更新失败 {{v0}}：{{v1}}{{v2}}",
    "t0779": "找不到设置檔：{{v0}}",
    "t0780": "无法解析设置檔：{{v0}}",
    "t0781": "找不到证书：{{v0}}",
    "t0782": "dry-run：未 systemctl {{v0}}。加 --execute 且 YSK_EXECUTE=1 + root 先真正执行",
    "t0783": "找不到 job {{v0}}",
    "t0784": "Web UI:  找不到 (build apps/web or set YSK_WEB_ROOT)\\n",
    "t0785": "DNS zone 已创建（draft）: {{v0}}",
    "t0786": "DNS zone 创建失败: {{v0}}",
    "t0787": "邮件域名已登記: {{v0}}",
    "t0788": "邮件域名创建失败: {{v0}}",
    "t0789": "找到 {{v0}} 個可能相關嘅續期 cron",
    "t0790": "restic {{v0}}/{{v1}} 成功",
    "t0791": "已確保排程：{{v0}} {{v1}}",
    "t0792": "设置已存在於 {{v0}}。使用 --force 覆寫。",
    "t0793": "设置已存在於 {{v0}}",
    "t0794": "找不到接口 {{v0}}",
    "t0795": "hostname 失败: {{v0}}",
    "t0796": "pretty hostname 失败: {{v0}}",
    "t0797": "timezone 失败: {{v0}}",
    "tScoreFrom": "分数={{score}} · 由 {{from}} 切换",
    "appliedTag": "（已应用）",
    "writtenTag": "（只写文件）",
    "selfDestMissing": "找不到运行中安装目录（systemd ExecStart 或运行中 cli.js）",
    "selfDestUnwritable": "无法写入运行中安装目录 {{v0}}",
    "selfApplied": "已将 {{v0}} 应用到 {{v1}}",
    "selfVerifyFail": "应用后版本文件未包含 {{v0}}",
    "selfDownloadFail": "无法下载或解压官方套件 {{v0}}：{{v1}}",
    "selfOverlayFail": "官方套件未能应用到运行中目录：{{v0}}",
    "selfUpgradeHint": "面板套用失败。请以 root 执行：curl -fsSL https://raw.githubusercontent.com/yanshekki/ysk-server/main/install.sh | bash -s -- --upgrade"
  },
  "tpl": {
    "deleted": "已删除 {{name}}",
    "removed": "已移除 {{name}}",
    "failedDetail": "失败：{{detail}}",
    "failedColon": "失败: {{detail}}",
    "actionFailed": "{{action}} 失败: {{detail}}",
    "restartFailed": "重启失败：{{detail}}",
    "chownFailed": "chown 失败：{{detail}}",
    "available": "可用：{{detail}}",
    "supportedNotProbed": "支持 {{name}} — 尚未探测到",
    "wrote": "已写 {{path}}",
    "wroteSettings": "已写入设置 {{path}}",
    "wroteManaged": "已写入管理文件 {{path}}",
    "copyFailed": "复制失败：{{detail}}",
    "copyFailed2": "复制失败: {{detail}}",
    "reloadFailed": "reload 失败：{{detail}}",
    "reloadFailed2": "reload 失败: {{detail}}",
    "nginxReloadFailed": "nginx reload 失败：{{detail}}",
    "nginxTestFailed": "nginx -t 失败: {{detail}}",
    "nginxConfigFailed": "Nginx 配置检查失败：{{detail}}",
    "psqlFailed": "psql 失败：{{detail}}",
    "redisCliFailed": "redis-cli 失败：{{detail}}",
    "restartFailed2": "restart 失败：{{detail}}",
    "missing": "缺少 {{name}}",
    "project": "项目 {{name}}",
    "logNotFound": "找不到日志：{{path}}",
    "clusterNotFound": "找不到集群：{{id}}",
    "domainInvalid": "域名无效：{{domain}}",
    "exported": "已导出 {{path}}",
    "reenabledLink": "已重新启用连接 {{name}}",
    "installed": "已安装",
    "missingDataDir": "缺少 dataDir",
    "installIncomplete": "安装未完成",
    "noPackages": "无软件包",
    "recentlyUpdated": "最近已更新",
    "needRootRead": "需 root 读取",
    "reenabledPersist": "已重新启用连接（重启仍在）",
    "runtimeOnlyHint": "（重启可能消失；要持久请用「保存」）",
    "statusWrittenPartial": "状态：written/partial",
    "keyMissingOrNotDeleted": "key 不存在或未删除",
    "passwordCryptStored": "密码已以 crypt 哈希存储（不存明文）",
    "skipInvalidUsername": "跳过无效用户名",
    "digNoAnswer": "dig 无答案（NXDOMAIN 或空）",
    "ipAddrAddFailed": "ip addr add 失败：{{detail}}",
    "ipAddrDelFailed": "ip addr del 失败：{{detail}}",
    "connUpWarn": "connection up 警告：{{detail}}",
    "ntpEnableFailed": "启用 NTP 失败: {{detail}}",
    "cancelFailed": "取消失败: {{detail}}",
    "powerCmdFailed": "电源指令失败: {{detail}}",
    "reniceFailed": "renice 失败：{{detail}}",
    "pgIncludeHint": "请将此文件 include 到 postgresql.conf 或在应用时复制",
    "none": "无",
    "success": "成功",
    "on": "开",
    "off": "关",
    "continueOp": "继续操作",
    "unavailable": "不可用",
    "unknownError": "未知错误",
    "noParen": "(无)",
    "keepOldDb": "（保留旧库）",
    "ufwNotDetected": "系统未检测到 UFW",
    "fail2banStartHint": "可到 fail2ban 页启动",
    "hasExecuteNotRoot": "有 EXECUTE 但非 root",
    "notRootTarget": "非 root（目标 useradd/apt 会 blocked）",
    "reapplyDone": "reapply 关键步骤完成",
    "someFailed": "有失败 — 请查看 results",
    "securityDesc": "密码、TLS、本机限制",
    "yskControlPlane": "YSK 控制面",
    "sslDistributeNote": "SSL distribute：edge 上的 cert ≠ 浏览器信任链完整；请 dig / curl -vI https:// 验证",
    "autoNever": "永不自动",
    "autoManualEmergency": "只人手 EMERGENCY",
    "probeMech": "外网 TCP、面板 req/min、TCP inuse、fail2ban、UFW",
    "probeTunable": "升／降档门槛",
    "priorityBlockers": "优先处理 {{count}} 项阻挡：{{list}}",
    "readinessNotProduction": "readiness 未达 production：{{list}}",
    "noRestart": "不 restart",
    "cityPolicyOff": "（市政策关）",
    "pidStarted": "进程已启动 pid={{pid}} {{extra}}",
    "pidUser": "（user={{user}}）",
    "pidDegraded": "（degraded）",
    "killFailed": "kill -s {{sig}} 失败：{{detail}}",
    "routeAdded": "已加入路由 {{dst}}{{via}}{{dev}}",
    "dnsWritten": "已写入 {{conn}}：DNS {{dns}}{{search}}",
    "peerInstalled": "已安装到 {{dest}}{{restart}}"
  },
  "installedTool": "已安装（工具）",
  "cron": {
    "preserveHostLines": "已保留主机 crontab 中 {{count}} 行非 YSK 任务（不会整份覆盖）。",
    "noHostLinesOrEmpty": "主机 crontab 无额外非 YSK 行（或空白）。",
    "installReplacesYskOnly": "安装只更新带 YSK 标记的任务；其他主机任务已合并保留。",
    "hostScanNeedRoot": "读取其他用户 crontab 需要控制面以 root 运行；目前只能列出控制面自身 crontab。",
    "hostScanSkipUser": "跳过用户 {{user}}（无权读取）",
    "hostUserInvalid": "crontab 用户无效。",
    "hostScheduleInvalid": "主机 cron 排程无效。",
    "hostLineNotJob": "该 crontab 行不是工作。",
    "hostLineMissing": "找不到对应的 crontab 行（主机 crontab 可能已变更）。",
    "hostLineDuplicate": "该工作行出现 {{count}} 次；请先改成唯一的一行。",
    "hostReadFailed": "无法读取 crontab：{{detail}}",
    "hostWriteFailed": "写入 crontab 失败：{{detail}}",
    "hostRewriteNeedExecute": "写入主机 crontab 需要 root 与 YSK_EXECUTE=1。目前只是预览。",
    "hostRewriteNeedRoot": "修改其他用户的 crontab 需要控制面以 root 执行。",
    "hostPreview": "下一行：{{line}}",
    "hostPreviewDelete": "下一步：移除该行。",
    "hostRewritten": "已写入 {{user}} 的 crontab。",
    "hostRunNeedExecute": "试跑主机 cron 指令需要 YSK_EXECUTE=1。",
    "hostRan": "已用 {{user}} 试跑主机 cron 指令。",
    "hostAdoptNeedExecute": "把主机行纳入面板需要 YSK_EXECUTE=1（否则安装时会重复）。",
    "hostAdopted": "主机行已标 # ysk:{{id}} 并登记到面板。",
    "hostConfirmMismatch": "确认内容必须与指令相同。",
    "hostAdoptOnlyInstallUser": "只能纳入“安装到系统”会写入的 crontab（root／本进程用户）。其他用户安装时会重复。",
    "hostAdoptEnableFirst": "请先启用该主机行，再纳入面板。",
    "hostPercentNewline": "crontab 把未跳脱的 % 当成换行。日期格式请写 \\%Y（或不要用 %）。"
  },
  "dbBrowser": {
    "pmaInstalled": "已安装 phpMyAdmin → {{path}}",
    "pmaConfigWritten": "已写入 phpMyAdmin 配置与临时目录（Cookie 登录；上 HTTPS 更稳）",
    "pmaExtractFailed": "phpMyAdmin 下载或解压失败：{{detail}}",
    "projectCreated": "已创建项目 {{id}}（{{name}}）"
  },
  "firewallAllow": {
    "already": "{{port}}/{{proto}}{{from}}：规则已存在",
    "partial": "部分成功：{{ok}} 成功、{{fail}} 失败",
    "fromLabel": "（来源 {{from}}）"
  },
  "firewallDeleteByComment": {
    "removed": "已移除 {{n}} 条符合 {{prefix}} 的防火墙规则",
    "none": "没有符合 {{prefix}} 的防火墙规则"
  },
  "serviceExposure": {
    "needsDecision": "{{service}}：请确认是否对外暴露此服务",
    "private": "{{service}}：保持仅本机（未开放公网端口）",
    "restrictedEmpty": "受限模式需要至少一个允许的 IP／网段",
    "badCountry": "无效国家代码：{{cc}}",
    "zoneDownloadFail": "下载 {{cc}} 国家网段失败：{{detail}}",
    "zoneEmpty": "{{cc}} 国家网段文件为空",
    "zoneDownloaded": "已下载 {{cc}} 共 {{n}} 个 CIDR",
    "zoneMissing": "缺少 {{cc}} 网段文件 — 请放到 geoip/country-zones 或允许下载",
    "zoneCidrCap": "国家 CIDR 已上限至 {{n}} 条",
    "geoNeedExecute": "国家允许列表需要 YSK_EXECUTE",
    "geoNeedRoot": "国家允许列表需要 root",
    "geoNoCidrs": "未加载任何国家 CIDR — 无法应用地区限制",
    "ipsetMissing": "未安装 ipset — 已跳过国家允许列表",
    "ipsetApplyFail": "ipset／iptables 应用失败：{{detail}}",
    "ipsetApplied": "已应用国家允许集合 {{set}}（{{countries}}，{{n}} 个 CIDR）",
    "ipsetCleared": "已清除国家 ipset {{set}}",
    "geoBestEffort": "国家过滤为 best-effort（ipset）；云安全组须另行设置"
  },
  "goLive": {
    "deployIncomplete": "上线：部署未完成",
    "deployFailed": "上线部署失败：{{detail}}",
    "publishIncomplete": "上线：发布 Nginx 未完成",
    "publishFailed": "上线发布失败：{{detail}}"
  },
  "ops": {
    "projectNameExists": "项目名称已存在：{{name}}",
    "sslNotReady": "SSL 未就绪：域名 {{domain}} 尚无可用证书。",
    "sslNotReadyDetail": "SSL 未就绪：域名 {{domain}} 尚无可用证书（面板申请／上传或 Let’s Encrypt live 路径）。",
    "sslGoToPage": "请先到「SSL 证书」申请或上传，再发布 + SSL。",
    "sslRejectWrite": "已拒绝写入 SSL nginx conf，避免 nginx -t 因缺文件失败。",
    "installAborted": "安装已中止（客户端断线或取消）",
    "phpPackagesPartialFail": "部分 PHP 软件包安装失败：{{list}}（核心 CLI 可能仍可用）",
    "pdnsBindConflict": "PowerDNS 无法绑定 0.0.0.0:53（端口被占用），多与 systemd-resolved 冲突。请改绑公网 IP（面板：修复 PowerDNS）。"
  },
  "webmail": {
    "notInstalled": "尚未安装网页邮件；请勾选下载后再执行",
    "needExecute": "下载网页邮件需要系统变更权限（YSK_EXECUTE）及外网",
    "needExecuteBeforeCreate": "未开系统变更权限前不会建立半成品项目",
    "notRoundcubeTree": "文档根目录不是完整 Roundcube（仍可能是 php-hello）",
    "notSnappyTree": "文档根目录不是完整 SnappyMail",
    "installIncompleteHint": "项目已存在但网页邮件未装好 — 请开 EXECUTE 后按「重新安装／升级」",
    "extractFailed": "{{tool}} 下载或解压失败：{{detail}}",
    "roundcubeInstalled": "已安装 Roundcube {{version}} → {{path}}",
    "roundcubeReuse": "沿用已安装 Roundcube → {{path}}",
    "roundcubeConfigWritten": "已写入 Roundcube 配置（SQLite、IMAP 993、SMTP 587）",
    "snappyInstalled": "已安装 SnappyMail {{version}} → {{path}}",
    "snappyReuse": "沿用已安装 SnappyMail → {{path}}",
    "snappyAdminHint": "首次打开请完成 SnappyMail 管理员初始化，并添加本机 IMAP 域名",
    "imapSmtpHint": "IMAP {{imap}}:993 · SMTP {{smtp}}:587（登录用邮箱完整地址与密码）",
    "projectCreated": "已创建 PHP 项目 {{name}}（{{tool}}，{{id}}）",
    "domainRequired": "需要网页邮件主机名",
    "openHint": "以邮箱地址与密码登录；上线后请到项目页或本页打开网址",
    "sslHint": "建议为 {{domain}} 申请 Let’s Encrypt（SSL 页）",
    "bootstrapLegacyHint": "Bootstrap 未注入项目服务，已写 dataDir 骨架；面板请用「创建并上线」走 PHP 项目路径",
    "ssoPluginInstalled": "已安装 SSO 插件 → {{path}}",
    "forceHttpsOn": "Roundcube force_https 已开启（需已有 HTTPS）",
    "forceHttpsOff": "force_https 关闭 — 请在 SSL 页签发后重装并勾选强制 HTTPS",
    "reinstallHint": "项目已存在：请用「重新安装／升级」或传 reinstall:true",
    "reinstalling": "重新安装网页邮件到项目 {{name}}（{{id}}）",
    "reinstallStart": "开始升级／重装（目标版本相关：{{version}}，项目 {{id}}）",
    "projectNotFound": "找不到网页邮件项目",
    "snappyAdminOnce": "SnappyMail 管理员账号 {{user}} — 密码只显示一次（见结果／ONCE 文件）",
    "snappyAdminPassword": "SnappyMail 管理员密码（请立即复制）：{{password}}",
    "publicHtmlStub": "文档根目录仍是 SnappyMail／RainLoop 外层 stub。HTTP 必须指向 public_html 应用树 — 请应用此修复后重新安装网页邮件。",
    "goLiveFailed": "网页邮件文件已安装，但项目上线／部署健康检查失败 — 请展开详情。",
    "forceHttpsNeedsSsl": "已开启 Roundcube 强制 HTTPS：请先为此主机名绑定 SSL，否则公网跳转可能失败；未绑证前可取消勾选。",
    "roundcubePublicHtmlDocRoot": "HTTP 文档根已设为 Roundcube public_html（{{path}}）",
    "docRootUpdated": "项目文档根已更新为 {{path}}",
    "docRootUpdateFailed": "无法更新项目文档根：{{detail}}",
    "sqliteSchemaReady": "已初始化 Roundcube SQLite schema",
    "sqliteSchemaFailed": "Roundcube SQLite schema 初始化失败：{{detail}}",
    "snappyFullEmailLogin": "邮箱登录须用完整电邮（user@domain），不要只用 local-part",
    "removedBogusPublicHtml": "已删除残留 public_html（php-hello），避免 webmail 指错目录",
    "snappyDocRoot": "SnappyMail HTTP 文档根：{{path}}",
    "phpHelloStillPresent": "安装后站点根仍是 php-hello（YSK PHP OK）— webmail 未成功替换"
  },
  "vpn": {
    "needInstall": "请安装 {{engine}}",
    "openvpnComing": "OpenVPN 完整流程將於後續版本提供。",
    "outlineComing": "Outline／Shadowsocks 將於後續版本提供。",
    "needExecuteServer": "VPN 伺服器設定需 root 與 YSK_EXECUTE=1。",
    "serverStopped": "已停止 {{engine}} 伺服器。",
    "serverStopFailed": "無法停止 {{engine}} 伺服器：{{detail}}",
    "needExecuteClient": "VPN 客戶端連線需 root 與 YSK_EXECUTE=1。",
    "keygenFailed": "WireGuard 金鑰產生失敗（是否已安裝 wg？）。",
    "serverKeysCreated": "已建立 WireGuard 伺服器金鑰。",
    "applyFailed": "套用 WireGuard 設定失敗：{{detail}}",
    "serverActive": "已套用 WireGuard 伺服器（UDP {{port}}）。",
    "serverMissing": "尚未初始化 WireGuard 伺服器 — 請先啟動伺服器。",
    "peerCreated": "已建立客戶端「{{name}}」。",
    "peerNotFound": "找不到客戶端。",
    "peerRemoved": "已移除 {{name}}。",
    "peersSynced": "已在运行中的 WireGuard 界面重新载入对等端，未重启服务器。",
    "setEndpointHint": "請設定公開端點（host:port），手機客戶端才能連上。",
    "invalidConf": "此文件不是有效的 VPN 客户端配置。请使用 WireGuard 或 OpenVPN 客户端配置文件。",
    "clientImported": "已匯入設定檔「{{name}}」。",
    "profileNotFound": "找不到客戶端設定檔。",
    "clientUpFailed": "連線失敗：{{detail}}",
    "clientUp": "已連線：{{name}}",
    "clientDown": "已斷線：{{name}}",
    "clientDeleted": "已刪除設定檔：{{name}}",
    "autostartOn": "已開機自動連：{{name}}",
    "autostartOff": "已關閉開機自動連：{{name}}",
    "ovpnPkiStart": "正在生成 OpenVPN PKI（DH 参数可能需一分钟）…",
    "ovpnPkiDone": "OpenVPN PKI 已就绪。",
    "ovpnServerActive": "已套用 OpenVPN 服务器（{{proto}} {{port}}）。",
    "invalidOvpn": "OpenVPN 配置应包含 client／remote。",
    "ssHonest": "使用 shadowsocks-libev ss-server — 非完整 Outline Manager。",
    "ssKeysCreated": "已生成 Shadowsocks 服务器密码。",
    "ssServerActive": "已套用 Shadowsocks 服务器（端口 {{port}}）。",
    "ssSharedPassword": "所有 ss:// 标签共用同一服务器密码（重新启动服务器可轮换）。",
    "ssPackageYielded": "已停用并屏蔽 Debian 默认 shadowsocks-libev（仅本机），以便 YSK 在本机绑定公开 {{port}}。",
    "ssEndpointAutofilled": "公开端点已设为 {{endpoint}}。",
    "ssClientsRewritten": "已按当前端点/密码重写 {{n}} 个客户端 ss://。",
    "ssUfwOpened": "已开放 UFW {{port}}/tcp+udp（若已安装 ufw）。",
    "endpointAutofilled": "公开端点已设为 {{endpoint}}。",
    "ovpnClientsRewritten": "已更新 {{n}} 个 OpenVPN 客户端配置的 remote（下载/QR 会用新地址）。",
    "accessFullNat": "已开全网上网（IP 转发 + NAT）",
    "accessLanOnly": "已设只连区域（无外网 NAT）",
    "accessReconnectHint": "已连接的客户端请断开再连，才会使用新路由",
    "ovpnNatDurable": "安装 OpenVPN NAT/转发以便重新启动 (systemd ExecStartPost)。",
    "clientFullTunnelProtect": "检测到全隧道客户端 (AllowedIPs 0.0.0.0/0)。应用主机保护，以便面板/SSH 回复保留在 LAN NIC 上。",
    "clientFullTunnelHint": "提示：仅对于分割访问，请在conf中将AllowedIPs设置为VPN/LAN CIDR（而不是0.0.0.0/0），然后重新连接。"
  },
  "vnc": {
    "needInstall": "请安装 {{stack}}",
    "needExecute": "未启用 YSK_EXECUTE — 无法安装软件包或创建 Linux 用户。",
    "needRoot": "非 root — 无法 useradd 或应用 vncserver。",
    "hostnameResolves": "主机名 {{hostname}} 可解析。",
    "hostnameUnresolvable": "此主机无法解析自己的主机名（{{hostname}}）。修好 /etc/hosts 之前，VNC 工作阶段会启动失败。",
    "hostnameAlreadyResolves": "主机名 {{hostname}} 已可解析 — 未改 /etc/hosts。",
    "hostnameWouldAppend": "将会附加到 /etc/hosts：{{line}}",
    "hostnameAppended": "已附加到 /etc/hosts：{{line}}",
    "hostnameAppendFailed": "无法写入 /etc/hosts：{{detail}}",
    "hostnameAliasPresent": "主机名 {{hostname}} 已在 /etc/hosts 列为完整别名 — 未再附加。",
    "hostnameStillUnresolvable": "已写入 /etc/hosts，但 {{hostname}} 仍无法解析。请确认 nsswitch 的 hosts 包含 files。",
    "skipStartHostname": "未启动 display — 请先修好主机名解析。",
    "novncAssetsOnly": "已找到 noVNC 网页资源；仍缺 websockify 可执行文件。",
    "viewerNeedExecute": "要在浏览器打开本机 VNC 桌面，需要 root 并启用 YSK_EXECUTE",
    "browserSessionReady": "浏览器 VNC 会话已就绪：{{name}}",
    "clientPathUserReachable": "路径：经用户可达端点 — {{name}} → {{target}}（浏览器经面板转发）",
    "clientPathServerProxy": "路径：经服务器代理 — {{name}} → {{target}}（经本机服务器网络转发）",
    "clientOpenInBrowserHint": "请在客户端列表点击「在浏览器打开」以使用内嵌 VNC",
    "probeOk": "可达性正常：控制面可对 {{target}} 打开 TCP",
    "probeRefused": "{{target}} 拒绝连接（无服务监听）。目标主机的 VNC 是否已启动？",
    "probeTimeout": "从此服务器连接 {{target}} 超时。请检查防火墙／路由。",
    "probeDns": "无法解析主机名「{{host}}」。",
    "probeNet": "从此服务器无法到达 {{target}} 的网络。",
    "probeFailed": "无法连接 {{target}}：{{detail}}",
    "probeInvalid": "无效的 VNC 目标 {{host}}:{{port}}",
    "probeHintUserReachable": "路径为「经用户可达端点」：面板仍须对该公网主机打开 TCP（浏览器本身不能直接使用 RFB）。",
    "probeHintServerProxy": "路径为「经服务器代理」：目标必须可从此控制面服务器的网络连上。",
    "connectHostOverride": "服务器代理：显示主机 {{display}}，实际 TCP 连至 {{connect}}",
    "probeConnectHostHint": "显示目标为 {{display}}，探测／连接地址为 {{connect}}（连接主机覆盖）。",
    "accountNotFound": "找不到 VNC 账号",
    "accountExists": "此名稱或 Linux 用戶的 VNC 账号已存在",
    "accountCreated": "已创建 VNC 账号 {{name}}（{{user}}，display :{{display}}）",
    "accountUpdated": "已更新 VNC 账号 {{name}}",
    "accountDeleted": "已删除 VNC 账号 {{name}}",
    "invalidName": "账号名稱无效",
    "invalidGeometry": "分辨率无效（例如 1920x1080）",
    "displayBusy": "Display 编号无效或已被使用",
    "displayExhausted": "可用 VNC display 编号已用尽",
    "userWrittenOnly": "Linux 用戶 {{user}} 只記在控制面（需 root + YSK_EXECUTE 才useradd）",
    "userExists": "Linux 用戶 {{user}} 已存在",
    "userCreated": "已创建 Linux 用戶 {{user}}",
    "useraddFailed": "useradd {{user}} 失败：{{detail}}",
    "userdelBlocked": "无权限刪除 Linux 用戶 {{user}}（需 root + YSK_EXECUTE）",
    "userAlreadyGone": "Linux 用戶 {{user}} 已不存在",
    "userdelFailed": "userdel {{user}} 失败：{{detail}}",
    "userdelLeftover": "面板账号已删，但 Linux 用户 {{user}} 仍在主机。请到用户页或主机再清。",
    "userDeleted": "已删除 Linux 用戶 {{user}}",
    "passwordTooShort": "VNC 密碼至少 6 個字符",
    "passwordWrittenOnly": "密碼只記在控制面（需 root + YSK_EXECUTE 才vncpasswd）",
    "passwordFailed": "写入 VNC 密碼失败：{{detail}}",
    "passwordNeedTiger": "找不到 vncpasswd。请先安装 TigerVNC（tigervnc-standalone-server）再设定密码。",
    "passwordSet": "已為 {{user}} 設定 VNC 密碼",
    "passwordUpdated": "已更新 {{name}} 的密碼",
    "passwordMetaOnly": "密碼暂只记元資料，待系统应用",
    "xstartupWrittenOnly": "未写入 xstartup 到 home（需 root + YSK_EXECUTE）",
    "xstartupWriteFailed": "无法写入 ~/.vnc/xstartup ({{detail}})。需要 root + YSK_EXECUTE。",
    "xstartupFailed": "VNC xstartup/桌面启动失败（display :{{display}}，{{detail}}）。可改用 XFCE 配置，或安装 xfce4-terminal/xterm。",
    "xstartupWritten": "已写入 {{path}}",
    "sessionStartBlocked": "无权限启动 VNC session（需 root + YSK_EXECUTE）",
    "sessionStartFailed": "启动 display :{{display}} 失败：{{detail}}",
    "sessionStartHostname": "启动 display :{{display}} 失败：此主机无法解析自己的主机名。请把主机名写入 /etc/hosts（或修正 DNS）后再启动工作阶段。",
    "sessionStarted": "已为 {{user}} 启动 :{{display}}（端口 {{port}}）",
    "sessionStartUnverified": "启动命令成功但 RFB 端口尚未监听",
    "sessionAlreadyRunning": "{{user}} 的 VNC 已在运行（:{{display}} / 端口 {{port}}）",
    "vncserverMissing": "未安装 TigerVNC 启动程序（tigervncserver／vncserver）— 请到「安装」页安装",
    "vncserverWrapperMissing": "检测到 {{found}}，但缺少 tigervncserver／vncserver 包装脚本 — 请重装 tigervnc-standalone-server",
    "vncPackageWithoutBin": "软件包 tigervnc-standalone-server 已装但找不到启动脚本 — 请重装该包",
    "needPasswordBeforeStart": "请先设置 VNC 密码（至少 6 个字符）再启动",
    "displayPortBusy": "Display :{{display}} → 端口 {{port}} 已被占用 — 请先停止其他 session 或改用其他 display",
    "sessionStartPermission": "启动 display :{{display}} 权限被拒",
    "staleLockCleared": "已清除 display :{{display}} 残留 lock，重试中",
    "sessionStopBlocked": "无权限停止 VNC session（需 root + YSK_EXECUTE）",
    "sessionStopped": "已停止 {{user}} 的 display :{{display}}",
    "linuxUserKept": "已保留系統上的 Linux 用戶 {{user}}",
    "novncStartBlocked": "无权限启动 noVNC（需 root + YSK_EXECUTE）",
    "novncAlreadyRunning": "noVNC 已在端口 {{port}} 运行",
    "novncStartFailed": "启动 websockify 失败：{{detail}}",
    "novncStarted": "noVNC 监听 127.0.0.1:{{httpPort}} → RFB {{rfbPort}}",
    "novncNotRunning": "noVNC 未在运行",
    "novncStopBlocked": "无权限停止 noVNC（需 root + YSK_EXECUTE）",
    "novncStopped": "已停止 noVNC 端口 {{httpPort}}",
    "directNeedsAllBind": "RFB 仅监听 localhost — 外网直连需改 bind 或用隧道",
    "directOpenFirewall": "直连客户端请放行 TCP {{port}}",
    "viaServerReady": "noVNC 已就绪 — 打开本机 URL 或用 SSH 隧道",
    "viaServerStartFirst": "请先启动 noVNC 以经 server 用浏览器连入",
    "viewTicketIssued": "已发出短期观看 ticket",
    "invalidPort": "端口号无效",
    "firewallNeedExecute": "开 UFW 端口需 YSK_EXECUTE",
    "firewallNeedRoot": "开 UFW 端口需 root",
    "firewallFailed": "ufw allow 失败：{{detail}}",
    "firewallOpened": "UFW 已放行 TCP {{port}}",
    "clientInvalid": "客户端名称与主机必填",
    "clientNotFound": "找不到客户端配置",
    "clientUpBlocked": "无权限连接 VNC client（需 root + YSK_EXECUTE）",
    "clientUpFailed": "客户端连接失败：{{detail}}",
    "clientViaServerUp": "客户端 {{name}} 已可在浏览器经面板使用 VNC（旧版 websockify 说明已退役）。请点「在浏览器打开」。",
    "clientDirectUp": "客户端 {{name}} 仅使用浏览器内 VNC（已移除主机 vncviewer 路径）。请在浏览器打开 → {{target}}。",
    "clientNeedViewer": "桌面版 vncviewer 为可选。请使用「在浏览器打开」的内嵌 VNC 客户端。",
    "clientDownBlocked": "无权限断开（需 root + YSK_EXECUTE）",
    "clientDown": "已断开客户端 {{name}}",
    "clientDeleted": "已删除客户端配置",
    "sessionStartCwd": "VNC 启动失败：工作目录会话用户无权访问（display :{{display}}）。已改为从 HOME 启动。",
    "desktopRestarted": "应用桌面配置文件并重新启动会话 ({{desktop}})。重新连接 VNC/noVNC。",
    "desktopNeedsStart": "桌面配置文件 {{desktop}} 写入 xstartup。启动会话以进行申请。",
    "linuxUserRolledBack": "VNC 密码失败后已删除遗留 Linux 用户 {{user}}。",
    "linuxUserOrphan": "VNC 密码失败后无法删除遗留 Linux 用户 {{user}}。"
  },
  "apache": {
    "needServerName": "需要域名",
    "siteExists": "站点已存在",
    "siteNotFound": "找不到站点",
    "wroteConf": "已写入 {{path}}",
    "needExecute": "需 YSK_EXECUTE",
    "settingsWritten": "已写入 Apache 默认",
    "managedDir": "管理目录 {{path}}",
    "dryRun": "预演",
    "copyFailed": "复制失败：{{file}}",
    "configOk": "configtest 通过",
    "configFailed": "configtest 失败：{{detail}}",
    "reloaded": "Apache 已 reload",
    "reloadFailed": "reload 失败",
    "skippedOrphans": "已跳过 {{count}} 个未认领 conf",
    "artifactInvalid": "无效的残留 conf 名称",
    "artifactOwned": "conf {{file}} 归项目或独立站所有",
    "artifactNotFound": "找不到残留 conf：{{file}}",
    "artifactRemoveFailed": "无法删除 {{file}}：{{detail}}",
    "artifactRemoved": "已删除残留 conf {{file}}",
    "artifactSystemPending": "已清理 dataDir；系统 Apache 副本需 YSK_EXECUTE/root 才能停用",
    "artifactSystemDisabled": "已停用系统站点 {{site}}",
    "artifactSystemFailed": "系统停用失败：{{detail}}",
    "conflictProjectsOnly": "域名 {{name}} 被多个项目占用 — 请修改其中一个项目域名",
    "cleanupNothing": "没有可清理的冲突残留 conf",
    "conflictOwnedKeep": "保留已拥有 conf {{file}}（同域名 {{domain}}）",
    "retiredOrphan": "已退役残留 conf {{file}}（与 {{domain}} 域名冲突）"
  },
  "btTracker": {
    "needExecute": "未启用 YSK_EXECUTE — 启动 Tracker 与对外开放端口需要系统变更权限。",
    "startWithoutExecute": "在未启用 YSK_EXECUTE 下启动 Tracker — 进程可能可监听，但不会自动开放防火墙。",
    "alreadyRunning": "BitTorrent Tracker 已在本进程运行。",
    "notRunning": "BitTorrent Tracker 未运行。",
    "started": "BitTorrent Tracker 正在端口 {{port}} 监听。",
    "startFailed": "启动 Tracker 失败：{{detail}}",
    "stopped": "BitTorrent Tracker 已停止。",
    "maxSeeds": "已达同时做种上限（{{n}}）。",
    "seedStarted": "已开始为分享 {{id}} 做种。",
    "seedStopped": "已停止做种。",
    "seedPending": "做种尚未就绪 — 请启动 Tracker，并在需要时启用 YSK_EXECUTE。",
    "notSeeding": "控制平面当前未为该分享做种。",
    "btNeedsTracker": "BT 分享需要运行中的 Tracker。请打开「文件 → BT Tracker」并启动。",
    "restoreTrackerFailed": "开机还原时未能启动 BT Tracker",
    "restoreDone": "BT 还原：已做种 {{seeded}}／{{attempted}}（失败 {{failed}}）",
    "workerMissing": "找不到 detached worker；已改进程内启动（随本进程结束）",
    "startedDetached": "BT Tracker detached worker 已启动（pid {{pid}}，端口 {{port}}）",
    "runningDetached": "Tracker 以 detached worker 运行中（pid {{pid}}）",
    "jobQueued": "BT torrent 创建已排入队列（大型分享）",
    "jobRunning": "正在创建 BT torrent",
    "libraryAdded": "已将 {{name}} 加入 WebTorrent 资料库",
    "libraryInspectFailed": "无法读取此 .torrent 或 magnet",
    "libraryDup": "资料库已有此 Torrent",
    "libraryDestBad": "保存位置不是有效的文件路径",
    "libraryTorrentTooBig": ".torrent 文件大于 8 MiB",
    "libraryNotFound": "找不到此资料库项目",
    "libraryPaused": "已暂停",
    "libraryResumed": "已继续",
    "libraryRemoved": "已从资料库移除",
    "libraryFilesRemoved": "已删除下载的文件",
    "libraryRestoreDone": "资料库还原：已启动 {{started}}/{{attempted}}（失败 {{failed}}）",
    "applyTrackersDone": "已向 {{n}} 个现有 announce 套用常用 Tracker",
    "libraryNeedServe": "已保存。请在面板启动 ysk-server serve，WebTorrent 才会下载／做种。",
    "libraryDestIsFile": "无法建立名为 {{name}} 的文件夹——该处已有同名文件。",
    "librarySeedMissing": "此文件夹没有可做种的对应文件。",
    "libraryWaitingPeers": "正在等待 peers。若文件已在此主机，请重新加入并选使用现有文件做种。"
  },
  "migrate": {
    "orphanConfirm": "请输入完整孤立主目录路径以确认删除。",
    "orphanStillInStore": "该主目录仍属于 store 内的项目。",
    "orphanMissing": "磁盘没有此路径：{{path}}",
    "orphanNeedExecute": "将删除孤立主目录 {{path}}。需 YSK_EXECUTE=1。",
    "orphanRmFailed": "无法删除孤立主目录：{{detail}}",
    "orphanRemoved": "已删除孤立项目主目录 {{path}}。"
  },
  "publicFiles": {
    "liveConf": "生效 Nginx 配置文件：{{path}}",
    "publicRoot": "公开根目录：{{path}}",
    "confNameStale": "配置文件 {{file}} 与当前 server_name {{serverName}} 不一致。请再套用公用文件以改名。"
  },
  "leftover": {
    "staleCliTitle": "遗留旧版 CLI",
    "staleCli": "仍有旧 CLI：{{path}}（产品版本 {{version}}）。PATH 可能优先使用它。移除：rm -f {{path}}",
    "apacheDefaultTitle": "Apache 遗留默认站",
    "apacheDefault": "Apache 000-default 仍占 :80。产品 overlay 不会停用。请在面板套用 Apache，或 hosting apache apply --execute。",
    "nginxCatchAllTitle": "Nginx 缺 catch-all",
    "nginxCatchAll": "/etc/nginx/conf.d 没有 ysk-000-default.conf。未知 SNI 可能落到其他站。请执行 projects nginx-sync --execute。",
    "vsftpdTitle": "vsftpd 单元失败",
    "vsftpd": "vsftpd 失败。overlay 不会重写 listen／listen_ipv6。请在面板套用 FTP。",
    "dovecotTitle": "Dovecot TLS 指向不存在的证书",
    "dovecot": "Dovecot ssl_cert 指向不存在的 {{path}}。overlay 不会改成 ssl=no。签发邮件证书后套用邮件 TLS。",
    "overlayDoesNotHeal": "产品 overlay 不会改写 nginx、Apache、vsftpd 或 Dovecot。请用列出的套用命令（root + YSK_EXECUTE=1）。",
    "executeStaleCli": "请加 --execute（root + YSK_EXECUTE=1）以移除残留 CLI。",
    "executeMissingTls": "请加 --execute（root + YSK_EXECUTE=1）以关闭缺证 TLS，让 vsftpd／Dovecot 可以启动。",
    "executeGeneric": "请加 --execute（root + YSK_EXECUTE=1）以套用上述遗留清理。",
    "staleCliRemoved": "已移除残留 CLI {{path}}。",
    "staleCliRemoveFailed": "无法移除残留 CLI {{path}}：{{detail}}",
    "vsftpdSslOff": "因 FTPS 证书文件不存在，已将 vsftpd 设为 ssl_enable=NO 并重新启动。",
    "dovecotSslOff": "因 {{path}} 不存在，已将 Dovecot 设为 ssl=no 并重新启动。",
    "readinessTitle": "overlay 后主机遗留",
    "readinessClean": "未检测到 Apache 默认站、缺 nginx catch-all、vsftpd 失败或旧 CLI。",
    "nginxRemoved": "已移除残留 nginx 设定 {{path}}。",
    "nginxNotLeftover": "不是残留 public-files 设定 — 拒绝删除。",
    "nginxUnusedKeep": "000-default 是未使用，不当残留 — 未删除。",
    "nginxSystemCopy": "系统副本仍在：{{path}}。需要 YSK_EXECUTE + root 先可以移除。",
    "nginxReloadFailed": "移除 {{path}} 后 nginx -t 或 reload 失败。"
  },
  "defense": {
    "panelReqLabel": "面板请求数/分钟",
    "panelReqExcluded": "经过身份验证的面板流量 - 此处显示，不计入威胁评分",
    "tcpOk": "TCP {{target}} 可达",
    "tcpFail": "TCP {{target}} 失败",
    "dnsDegraded": "DNS 路径降级",
    "reqRateHigh": "公开请求率 {{reqs}}/min ≥ {{threshold}}",
    "ddosHeuristic": "高公共请求率加上边缘探测失败"
  }
}
