{
  "templates": {
    "minimal": "最小 — 僅 apex A",
    "web": "網站 — apex + www",
    "mail": "郵件 — apex + mail + MX + SPF",
    "full": "完整 — 網站 + mail + ftp + SPF",
    "cdn": "CDN — apex + www + cdn（多 邊緣 預留）"
  },
  "dnssecOk": "已產生 DNSSEC 金鑰（已寫入 — 未簽署 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": "安全複製 推送 zone 檔後可 remote 重新載入（rndc / named / bind9 / pdns）。已寫入 ≠ 已套用。",
  "peerHost": "對等節點 主機",
  "peerHostHint": "次要 NS 主機名稱或 IP（需 遠端登入 金鑰登入）",
  "sshUser": "遠端登入 用戶",
  "sshUserHint": "需有目標路徑寫入與 重新載入 權限",
  "labelOptional": "標籤（可選）",
  "labelPlaceholder": "例如 ns2 / hkg-邊緣-dns",
  "opPerPeer": "本次操作（每 對等節點）",
  "registeredPeers": "已登記 peers（{{count}}）",
  "lastProbeHint": "lastProbe 於「探活」或推送後更新",
  "noPeers": "尚未登記任何 對等節點",
  "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": "新增 對等節點",
  "probe": "探活",
  "pushZones": "推送 zones",
  "reloadRemote": "remote reload",
  "generateDnssec": "產生 DNSSEC 金鑰",
  "lookup": "查詢",
  "saveSoa": "儲存 SOA",
  "saveSoaAndWrite": "儲存並寫入區域檔",
  "saveSoaSettings": "儲存 SOA 設定",
  "saveSoaAndWriteBtn": "儲存並寫入區域檔",
  "goToZones": "前往區域",
  "refresh": "重新整理",
  "pushReload": "推送 + 重新載入",
  "pushOnly": "僅推送（不 重新載入）",
  "reloadOnly": "僅 remote 重新載入",
  "probePeers": "探活 peers",
  "clusterDefaultHint": "預設推送後在對等節點重新載入 DNS；需本機已開啟系統變更權限。",
  "notProbed": "尚未探活",
  "probeHealthy": "探活：{{status}}",
  "pushReloadShort": "推送+重新載入",
  "dnssecCardDesc": "產生金鑰／DS；若 dataDir 有 zone 檔會嘗試 dnssec-signzone。DS 不會自動上 registrar。",
  "currentZone": "目前區域：",
  "generateAndSign": "產生金鑰並嘗試簽署 zone",
  "lookupName": "名稱",
  "fillCurrentZone": "填入目前區域",
  "lookupToolHint": "優先使用主機上的 dig；若無 dig 則 fallback 至 node dns。結果反映查詢當下解析器所見，不等於 面板 內記錄。",
  "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": "會對每筆已啟用記錄呼叫 Cloudflare、nsupdate 或本機 zone，即使位址未變更。請輸入 UPDATE 確認。",
    "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": "留空則使用主機名稱最後兩段。本機供應商應選擇已存在的區域。",
    "zoneSelectHint": "本機已有區域。Cloudflare 與 RFC 2136 可用任意區域名稱。",
    "noLocalZones": "尚無本機區域。若使用本機 PowerDNS，請先在「區域」分頁建立。",
    "providerLocal": "本機 PowerDNS",
    "proxied": "Cloudflare proxied",
    "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 token",
    "cfTokenHint": "只寫不回顯。若已設環境變數 CF_API_TOKEN 則使用該值。",
    "tokenConfigured": "已儲存 Cloudflare token。留空則保持原值。",
    "tokenMissing": "尚未儲存 Cloudflare token（仍可使用環境變數 CF_API_TOKEN）。",
    "rfcServer": "RFC 2136 伺服器",
    "rfcServerHint": "遠端伺服器需要資料目錄內的 TSIG key file。Loopback 可以不簽名。密鑰不會放進 argv。",
    "rfcKeyFile": "TSIG key file",
    "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 埠有回應。"
}
