{
  "templates": {
    "minimal": "最小 — 仅 apex A",
    "web": "网站 — apex + www",
    "mail": "邮件 — apex + mail + MX + SPF",
    "full": "完整 — web + mail + ftp + SPF",
    "cdn": "CDN — apex + www + cdn（多 edge 预留）"
  },
  "dnssecOk": "已生成 DNSSEC 密钥（written — 未签署 zone／未上 registrar）",
  "dnssecNotOk": "DNSSEC 未生成密钥（只写说明文件或工具不可用 — 不假成功）",
  "dnssecFailed": "DNSSEC 失败",
  "blocked": "已封锁（需系统变更权限）",
  "clusterDone": "完成（{{status}}）",
  "clusterPartial": "未全部成功（{{status}}）— 见下方明细",
  "clusterFailed": "集群操作失败",
  "validateFailed": "记录验证失败",
  "validateRequestFailed": "验证请求失败",
  "lookupFailed": "查询失败",
  "statRecords": "记录",
  "statSelected": "选中",
  "notInstalled": "DNS 所需软件尚未安装",
  "dsForRegistrar": "DS（供 registrar，未自动发布）：",
  "tabs": {
    "zones": "区域",
    "records": "记录",
    "cluster": "集群",
    "dnssec": "DNSSEC",
    "tools": "工具",
    "ddns": "DDNS",
    "about": "说明"
  },
  "recentWrite": "最近写入结果",
  "zonesTitle": "区域 ({{count}})",
  "zonesDesc": "创建区域后可写入／套用 zone",
  "createZone": "+ 创建区域",
  "mailZonesMissing": "電郵網域尚未建立 DNS 區域：{{domains}}。",
  "createMailZone": "建立郵件區域",
  "colZoneName": "区域名称",
  "colServerIp": "服务器 IP",
  "colTemplate": "模板",
  "colStatus": "状态",
  "emptyZonesTitle": "尚未有 DNS 区域",
  "emptyZonesDesc": "用列表右上角「创建区域」新增",
  "applyZoneTitle": "写入 zone 文件并挂入 PowerDNS named.conf + rediscover（写文件≠ dig 有答案）",
  "applyZone": "写入／套用",
  "recordsFor": "记录 — {{zone}}",
  "recordsNeedSelect": "记录（请先在「区域」选取）",
  "statusLabel": "状态",
  "addRecord": "+ 新增记录",
  "writeZoneFile": "写入并加载区域",
  "healthLoaded": "已加载",
  "stateLoaded": "已加载",
  "healthPublicNs": "公网 NS",
  "statePublicNs": "公网 NS",
  "publicNsHere": "→ 本机",
  "requestLeTitle": "申请 {{zone}} Let’s Encrypt",
  "requestZoneSsl": "申请本区域 SSL",
  "soaTitle": "SOA / 默认 TTL",
  "soaDesc": "写入 zone 文件时的 SOA 名称服务器与 $TTL；保存后再「写入区域文件」才落到磁盘",
  "soaBlockNs": "名称服务器",
  "soaBlockTiming": "TTL 与定时",
  "recordsListTitle": "DNS 记录（{{count}}）",
  "recordsListDesc": "编辑后记得按上方「写入区域文件」才会更新 named 磁盘文件。",
  "soaNsLabel": "SOA 名称服务器",
  "soaNsHint": "可留空 → 默认 ns1.区域.",
  "defaultTtl": "默认 TTL（秒）",
  "min1": "1 分",
  "min5": "5 分",
  "min10": "10 分",
  "hour1": "1 时",
  "day1": "1 日",
  "customSeconds": "自定义秒数",
  "soaSaved": "已保存 SOA 设定（控制面）— 请「写入区域文件」套用",
  "soaSaveFailed": "保存 SOA 失败",
  "soaSavedAndWritten": "已保存并写入区域文件",
  "soaWriteFailed": "SOA 写入失败",
  "failed": "失败",
  "colType": "类型",
  "colName": "名称",
  "colValue": "值",
  "emptyRecords": "尚无记录",
  "noZoneSelectedTitle": "尚未选择区域",
  "noZoneSelectedDesc": "到「区域」分页点选一个 zone",
  "clusterTitle": "DNS 集群",
  "clusterDesc": "SCP 推送 zone 文件后可 remote reload（rndc / named / bind9 / pdns）。written ≠ applied。",
  "peerHost": "Peer 主机",
  "peerHostHint": "次要 NS 主机名称或 IP（需 SSH 密钥登录）",
  "sshUser": "SSH 用户",
  "sshUserHint": "需有目标路径写入与 reload 权限",
  "labelOptional": "标签（可选）",
  "labelPlaceholder": "例如 ns2 / hkg-edge-dns",
  "opPerPeer": "本次操作（每 peer）",
  "registeredPeers": "已登记 peers（{{count}}）",
  "lastProbeHint": "lastProbe 于「探活」或推送后更新",
  "noPeers": "尚未登记任何 peer",
  "zoneDirMissing": "· zone 目录缺失",
  "generateKeys": "生成密钥；不自动上线",
  "selectZoneFirst": "请先选择区域",
  "lookupTitle": "DNS 查询（dig）",
  "lookupDesc": "对公网解析器查询；用于验证 multi-A / CDN 是否生效。不假造答案。",
  "lookupNamePlaceholder": "例如 example.com 或 www.example.com",
  "lookupType": "查询类型",
  "lookupResults": "查询结果（{{count}} 笔）",
  "lookupNoAnswerFail": "查询无答案／失败",
  "digNotInstalled": "dig 未安装",
  "digNotInstalledHint": "此分页需要 dig（bind9-dnsutils）。这不是 NXDOMAIN。请在主机用套件管理安装 bind9-dnsutils；本页不会自动安装。",
  "method": "方法：{{method}}",
  "noAnswers": "没有答案",
  "noAnswersDesc": "NXDOMAIN、空 RRset 或解析失败",
  "lookupOkHint": "以上为即时查询结果。CDN multi-A 应看到多个 IP；健康摘除后应减少。",
  "lookupFailHint": "查询失败或无答案。请确认名称、类型与上游解析器。",
  "validateTitle": "记录验证",
  "validateDesc": "新增／编辑时自动验证（CNAME 冲突、A/AAAA 格式等）。",
  "createZoneTitle": "创建 DNS 区域",
  "createZoneDesc": "依模板生成记录",
  "createZoneNeedValid": "请输入有效的区域名称与 IPv4 位址",
  "zoneNameHint": "例如 example.com（不含结尾点）",
  "invalidZone": "区域名称无效。使用真实域名（例如 example.com）。",
  "invalidIpv4": "IPv4 无效。每个八位位组必须为 0–255。",
  "serverIpv4": "服务器 IPv4",
  "serverIpv4Hint": "模板 A 记录使用的地址",
  "thisHostIpv4": "此主机公网 IPv4",
  "serverIpv6Optional": "服务器 IPv6（可选）",
  "serverIpv6Hint": "有公网 v6 时写入 AAAA；可留空",
  "thisHostIpv6": "此主机公网 IPv6（可留空）",
  "soaNsCreateHint": "可留空，默认 ns1.区域名称",
  "defaultTtlLabel": "默认 TTL",
  "defaultTtlHint": "SOA 与新记录默认",
  "recordTemplate": "记录模板",
  "editRecord": "编辑记录",
  "addRecordTitle": "新增记录",
  "recordModalDesc": "区域 {{zone}} · 保存后需再写入区域文件",
  "recordType": "DNS 记录类型",
  "nameHint": "@ = 根域名；www = 子域名",
  "mxPlaceholder": "例如 10 mail.example.com.",
  "spfPlaceholder": "例如 v=spf1 a mx ip4:… ip6:… ~all",
  "needIpv6": "请填 IPv6 地址",
  "needIpv4": "请填 IPv4 地址",
  "valueHint": "IP、主机名或对应内容",
  "ipv6Address": "IPv6 地址",
  "ipv4Address": "IPv4 地址",
  "cacheTime": "缓存时间",
  "deleteZoneTitle": "删除区域？",
  "deleteZoneDesc": "会一并删除其 DNS 记录登记。",
  "deleteRecordTitle": "删除记录？",
  "deleteRecordDesc": "移除后请写入区域文件",
  "addPeer": "新增 peer",
  "probe": "探活",
  "pushZones": "推送 zones",
  "reloadRemote": "remote reload",
  "generateDnssec": "生成 DNSSEC 密钥",
  "lookup": "查询",
  "saveSoa": "保存 SOA",
  "saveSoaAndWrite": "保存并写入区域文件",
  "saveSoaSettings": "保存 SOA 设定",
  "saveSoaAndWriteBtn": "保存并写入区域文件",
  "goToZones": "前往区域",
  "refresh": "刷新",
  "pushReload": "推送 + reload",
  "pushOnly": "仅推送（不 reload）",
  "reloadOnly": "仅 remote reload",
  "probePeers": "探活 peers",
  "clusterDefaultHint": "默认推送后在对等节点重新加载 DNS；需本机已开启系统变更权限。",
  "notProbed": "尚未探活",
  "probeHealthy": "探活：{{status}}",
  "pushReloadShort": "推送+reload",
  "dnssecCardDesc": "生成密钥／DS；若 dataDir 有 zone 文件会尝试 dnssec-signzone。DS 不会自动上 registrar。",
  "currentZone": "当前区域：",
  "generateAndSign": "生成密钥并尝试签署 zone",
  "lookupName": "名称",
  "fillCurrentZone": "填入当前区域",
  "lookupToolHint": "优先使用主机上的 dig；若无 dig 则 fallback 至 node dns。结果反映查询当下解析器所见，不等于 panel 内记录。",
  "validateExtra": "error 会挡保存；warn（如 apex CNAME）只提示。",
  "createAfterHint": "创建后请在「记录」分页检视并「写入区域文件」才会落到磁盘。",
  "valueLabel": "值",
  "ttlHint": "缓存时间",
  "soaSavedControl": "已保存 SOA 设定（控制面）— 请「写入区域文件」套用",
  "soaNs2Label": "次要 NS（可选）",
  "soaNs2Hint": "第二名称服务器 FQDN，例如 ns2.example.com.",
  "soaHostmaster": "SOA 管理员邮箱（RNAME）",
  "soaHostmasterHint": "用点代替 @，例如 hostmaster.example.com.",
  "soaRefresh": "Refresh（秒）",
  "soaRetry": "Retry（秒）",
  "soaExpire": "Expire（秒）",
  "soaMinimum": "Minimum／负缓存 TTL（秒）",
  "soaTimingHint": "SOA 定时参数（秒）。",
  "healthTitle": "DNS 服务健康",
  "healthDesc": "主机真实状态：服务 / 端口 53 / 已写入 zone 文件 / 本机 dig 是否有响应（写入 ≠ 已 reload ≠ 对外 answering）",
  "healthPillOk": "DNS 正常",
  "healthPillBad": "DNS 异常",
  "healthService": "服务",
  "healthServiceDown": "未运行",
  "healthListen": "端口 53",
  "healthWritten": "zone 文件",
  "healthAnswering": "本机响应",
  "healthAnsweringYes": "有",
  "healthAnsweringNo": "无／拒绝",
  "healthRefresh": "重新探测",
  "healthProbeLocal": "再探测健康",
  "healthOpen53": "开放防火墙 53（TCP+UDP）",
  "healthOpened53": "已请求开放 53 TCP+UDP",
  "healthOpen53Failed": "开放 53 失败",
  "healthPortClosed": "未监听 53",
  "healthPortOpenAlready": "53 似已在听",
  "healthHint": "dig 被拒时，请先修复 PowerDNS、开放 53，再写入 zone。",
  "stateService": "服务",
  "stateListen": "监听",
  "stateWritten": "已写入",
  "stateAnswering": "本机 answering",
  "lookupServer": "查询服务器（@）",
  "lookupServerHint": "127.0.0.1 = 本机权威；公网 IP 测对外；留空用系统 resolver",
  "healthHealPdns": "修复 PowerDNS 绑定",
  "healNeedInstall": "PowerDNS 未安装 - 首先将其安装在“软件”选项卡上",
  "applyNeedService": "DNS 服务未运行 — 在应用之前启动或安装它",
  "goStartService": "去启动 DNS 服务",
  "startBindHint": "若启动后仍未监听，多半是 53 埠被 systemd-resolved 占用。请先按下方“修复绑定”再启动。",
  "deleteZoneNeedName": "删除此区域 - 您将输入区域名称进行确认",
  "healthHealPdnsHint": "将 local-address 设为公网 IP，避免与 systemd-resolved 抢 0.0.0.0:53",
  "healthHealPdnsOk": "PowerDNS 已绑定 {{ip}} 并尝试启动",
  "healthHealPdnsFailed": "PowerDNS 修复失败",
  "startProbeFailed": "启动后无法再探测 DNS 健康",
  "startNotListening": "PowerDNS 启动已回报，但 53 埠未在答",
  "aboutTitle": "DNS 使用要点",
  "aboutSub": "区域为主；记录／集群／DNSSEC 需先选域名。",
  "aboutZonesTitle": "区域与域名范围",
  "aboutZonesBody": "先在「区域」选域名，再管理该域名的记录、集群、DNSSEC。",
  "aboutHealthTitle": "服务健康",
  "aboutHealthBody": "在「工具」探测 PowerDNS、修复绑定、开放 53 端口。",
  "aboutStackTitle": "软件版本",
  "aboutStackBody": "在「软件」检查／更新 PowerDNS 套件。",
  "aboutDdnsTitle": "DDNS",
  "aboutDdnsBody": "DDNS 分页在本机 WAN 位址变更时更新指定的 A／AAAA。它不取代区域记录编辑。写入并不等于公网解析已生效。",
  "ddns": {
    "honesty": "写入成功并非公网 DNS 已传播。解析快取与 registrar NS 仍然有效。空白或私网 IP 不会发布。",
    "needExecute": "供应商更新需要 root 与 YSK_EXECUTE=1。探测仍会执行。",
    "lastRun": "上次执行",
    "nextRun": "下次执行",
    "wanRemembered": "已记住的 WAN IPv4",
    "updateNow": "立即更新",
    "updateTitle": "发布侦测到的 WAN 位址？",
    "updateDesc": "Calls Cloudflare, nsupdate, or the local zone for each enabled record. Type UPDATE to confirm.",
    "updated": "DDNS 更新完成",
    "updateFailed": "DDNS 更新失败",
    "probe": "探测 WAN",
    "probed": "WAN 探测完成",
    "probeFailedUi": "WAN 探测失败",
    "forceHint": "“立即更新”即使位址未变更也会再发布。探测不会呼叫供应商。",
    "saved": "已储存",
    "saveFailed": "无法储存",
    "deleted": "已移除记录",
    "emptyTitle": "尚未有 DDNS 记录",
    "emptyDesc": "在下方新增主机名称。可选 Cloudflare、RFC 2136，或本机 PowerDNS（managedBy=ddns）。",
    "colFqdn": "主机名称",
    "colProvider": "供应商",
    "colPublished": "已发布",
    "colEnabled": "状态",
    "colFrom": "由",
    "colTo": "至",
    "colWhen": "时间",
    "colNote": "备注",
    "pauseRecord": "暂停",
    "resumeRecord": "恢复",
    "statusCard": "WAN 状态",
    "recordsCard": "主机名称",
    "addCard": "新增主机名称",
    "settingsCard": "设定",
    "historyTitle": "近期更新",
    "historyEmpty": "尚无 DDNS 纪录",
    "paused": "排程已暂停",
    "pausedHint": "自动更新已关闭。探测与“立即更新”仍可执行。",
    "schedulerOn": "自动更新",
    "schedulerOnHint": "行程内排程，不是 crontab。关闭后不会自动 upsert。",
    "zone": "区域",
    "zoneHint": "Leave empty to use the last two labels of the hostname",
    "zoneSelectHint": "本机已有区域。Cloudflare 与 RFC 2136 可用任意区域名称。",
    "noLocalZones": "尚无本机区域。若使用本机 PowerDNS，请先在“区域”分页建立。",
    "providerLocal": "本机 PowerDNS",
    "proxied": "Cloudflare 代理",
    "proxiedHint": "Orange cloud。VPN／WireGuard 主机名称请关闭。",
    "proxiedWarnTitle": "使用 Cloudflare orange cloud？",
    "proxiedWarnDesc": "Proxied 记录会隐藏来源 IP。VPN 与 WireGuard 主机名称应维持 DNS only。请输入 PROXY 确认。",
    "addRecord": "新增主机名称",
    "interval": "间隔（秒）",
    "intervalHint": "60–86400。行程内排程，不是 crontab。",
    "cfToken": "Cloudflare API 令牌",
    "cfTokenHint": "只写不回显。若已设环境变数 CF_API_TOKEN 则使用该值。",
    "tokenConfigured": "已储存 Cloudflare token。留空则保持原值。",
    "tokenMissing": "尚未储存 Cloudflare token（仍可使用环境变数 CF_API_TOKEN）。",
    "rfcServer": "RFC 2136 服务器",
    "rfcServerHint": "远端服务器需要资料目录内的 TSIG key file。Loopback 可以不签名。密钥不会放进 argv。",
    "rfcKeyFile": "TSIG 密钥文件",
    "rfcKeyFileHint": "相对于 DDNS 资料目录，或资料目录下的绝对路径。",
    "rfcKeyConfigured": "已储存 key file 路径。留空则保持原值。",
    "primaryFqdn": "主要主机名称",
    "primaryFqdnHint": "作为 VPN Endpoint 提示。不会改写现有 peers。",
    "updateIdentity": "记住 WAN IPv4",
    "updateIdentityHint": "把上次公网 IPv4 存入 DDNS 状态",
    "vpnHint": "VPN Endpoint 可用 DDNS 主机名称（不会自动改写现有设定）。",
    "sslHint": "Let's Encrypt HTTP-01 需要主机名称解析到本机。IP 变更后不会自动重签凭证。",
    "deleteTitle": "移除 DDNS 主机名称？",
    "deleteDesc": "请输入 {{fqdn}} 确认。不会删除 zone 编辑器里的本机记录。",
    "err": {
      "requiresExecute": "发布需要 root 与 YSK_EXECUTE=1。",
      "missingToken": "缺少 Cloudflare API token。",
      "rfc2136NeedKey": "远端 RFC 2136 需要资料目录内的 TSIG key file。",
      "rfc2136KeyMissing": "TSIG key file 不存在，或不在资料目录内。",
      "noPublicIpv4": "未侦测到公网 IPv4。",
      "noPublicIpv6": "未侦测到公网 IPv6。",
      "notPublicIpv4": "侦测到的 IPv4 不是公网位址。",
      "notPublicIpv6": "侦测到的 IPv6 不是公网位址。",
      "probeFailed": "公网 IP 探测失败。",
      "localNoZone": "此主机名称没有对应的本机 DNS 区域。",
      "localNeedsDb": "本机供应商需要控制平面数据库。",
      "managedByClash": "该名称由其他功能拥有（不是 DDNS）。",
      "unknownProvider": "未知的 DDNS 供应商。",
      "nsupdateFailed": "nsupdate 失败。",
      "updateFailed": "供应商更新失败。",
      "invalidFqdn": "主机名称无效。",
      "invalidType": "类型必须为 A 或 AAAA。",
      "invalidProvider": "未知供应商。",
      "notFound": "找不到记录。",
      "confirmMismatch": "确认内容必须与主机名称相同。",
      "schedulerDisabled": "DDNS 排程已暂停。",
      "provider": "供应商回传错误。"
    }
  },
  "createMailZoneNow": "已建立邮件区域 {{domain}}",
  "toolsFirewallTitle": "防火墙（UFW）",
  "toolsFirewallHint": "允许或拒绝 53 端口。不会启动或停止 PowerDNS。",
  "toolsUnitTitle": "PowerDNS 服务单元",
  "toolsUnitHint": "systemd 单元 pdns — 启动、停止、重启、重载。",
  "installConfirmTitle": "安装 PowerDNS？",
  "installConfirmDesc": "会安装 pdns-server 并写入受管权威配置。需要 root 与 YSK_EXECUTE=1。",
  "installConfirmConsequence": "安装并启动后，PowerDNS 会绑定 53 端口。",
  "installPort53Busy": "53 端口已有程序在监听。未停止或修复该监听前，PowerDNS 可能无法绑定。",
  "installPort53BusyConsequence": "请先修复绑定或停止其他监听，才可预期 53 端口有响应。"
}
