{
  "title": "驗證者節點 (Beta)",
  "subtitle": "在此主機安裝與管理 L1 節點。非託管 — 私鑰由你自行保管。",
  "beta": "Beta",
  "tab": {
    "nodes": "節點",
    "disk": "磁碟",
    "stack": "軟件",
    "about": "說明"
  },
  "empty": {
    "title": "尚未建立驗證者節點",
    "desc": "用建立精靈幾個步驟即可建立測試網節點。"
  },
  "refresh": "重新整理",
  "software": {
    "engine": "Docker Engine",
    "engineDesc": "驗證者節點以 Compose 專案運行。引擎未裝可在此安裝。映像清理請到 Docker 頁。",
    "client": "客戶端",
    "image": "映像",
    "present": "本機",
    "local": "已拉取",
    "missing": "未拉取",
    "size": "大小",
    "usedBy": "使用中",
    "unused": "無實例",
    "pull": "拉取釘選",
    "pulled": "已在本機",
    "pulling": "正在拉取 {{ref}}",
    "empty": "沒有釘選客戶端映像",
    "emptyDesc": "目錄不應為空。",
    "daemonDown": "Docker Engine 未運行",
    "source": "來源",
    "official": "官方最新",
    "officialNewer": "官方較新",
    "stale": "落後於釘選",
    "staleItem": "{{id}}（{{tag}}）",
    "pin": "本面板釘選",
    "openRelease": "發佈說明",
    "chooseOnInstance": "請到實例頁變更版本。拉取映像不會替已運行節點改 tag。"
  },
  "disk": {
    "title": "驗證者節點磁碟",
    "root": "資料目錄",
    "free": "可用",
    "used": "驗證者目錄",
    "fsUsed": "檔案系統已用",
    "leftoverTitle": "殘留資料（{{count}}）",
    "leftoverEmpty": "沒有孤立實例目錄",
    "leftoverDesc": "驗證者根目錄下、不在 store 的資料夾。確認無用後再刪。",
    "leftoverRemove": "刪除",
    "leftoverRemoveTitle": "刪除此殘留驗證者資料？",
    "leftoverRemoveDesc": "將永久刪除磁碟上的 {{path}}。這不是列表中的節點。",
    "browseRoot": "在檔案瀏覽開啟",
    "none": "尚未有實例資料",
    "warn": "磁碟用量偏高（70% 或以上）",
    "danger": "磁碟用量危急（85% 或以上）",
    "autoClear": "磁碟危急時自動清空最大的已停止實例（預設關閉）",
    "autoClearRisk": "破壞性：會刪除最大的已停止實例，不會再詢問。預設關閉。觸發後請查審計／日誌。",
    "autoClearConfirmTitle": "啟用自動清空？",
    "autoClearC1": "磁碟危急時會刪除最大的已停止實例，不會再詢問。",
    "autoClearThreshold": "觸發條件：檔案系統用量達 85% 或以上。",
    "autoClearCandidate": "目前候選：{{id}}",
    "autoClearCandidates": "已停止候選（有資料且較大者優先）：{{list}}",
    "autoClearNone": "目前沒有已停止實例可作為候選。"
  },
  "chain": {
    "eth": "Ethereum",
    "avax": "Avalanche",
    "near": "NEAR",
    "ada": "Cardano",
    "btc": "Bitcoin",
    "cosmos": "Cosmos Hub",
    "sui": "Sui",
    "aptos": "Aptos",
    "dot": "Polkadot",
    "sol": "Solana"
  },
  "network": {
    "hoodi": "Hoodi",
    "sepolia": "Sepolia",
    "mainnet": "主網",
    "fuji": "Fuji",
    "testnet": "測試網",
    "preview": "預覽",
    "preprod": "預生產",
    "westend": "Westend"
  },
  "networkKind": {
    "testnet": "測試網",
    "mainnet": "主網",
    "mixed": "主網＋測試網"
  },
  "profile": {
    "minimal": "精簡",
    "pruned": "Pruned",
    "validator-ready": "驗證者就緒",
    "rpc": "RPC"
  },
  "profileHelp": {
    "title": "四個設定檔有何分別",
    "desc": "精靈第三步可選精簡、Pruned、驗證者就緒、RPC。分別在磁碟用量同用途。各鏈建議容量在精靈顯示。面板不會保管質押私鑰。",
    "colName": "設定檔",
    "colUse": "用途",
    "colDisk": "磁碟",
    "colStake": "當驗證者",
    "useMinimal": "測試網或先試安裝。不是完整歷史。",
    "usePruned": "長期跟隨鏈頭。只留近期資料（Pruned）。",
    "useValidatorReady": "預留作日後出塊。金鑰須自行離線產生。",
    "useRpc": "給本機或其他服務查鏈。預設只聽 127.0.0.1。",
    "diskMinimal": "最少",
    "diskPruned": "中等（多於精簡）",
    "diskValidatorReady": "四者中最多",
    "diskRpc": "視鏈而定",
    "stakeNo": "不適合",
    "stakeYes": "可以 — 離線或設錯可能被罰",
    "stakeRpc": "不是驗證者",
    "minimal": "佔用磁碟最少。適合測試網或先試安裝。不是完整歷史，也不適合作為正式驗證者。",
    "pruned": "保留近期鏈狀態，刪去過舊區塊資料（Pruned）。磁碟多於精簡、少於完整節點。適合長期跟隨鏈頭。",
    "validatorReady": "預留較大磁碟，供日後以驗證者身分出塊。金鑰須自行離線產生；離線或設定錯誤可能損失質押金。",
    "rpc": "供本機或其他服務查詢鏈資料。RPC 預設只聽 127.0.0.1，不會公開到互聯網。"
  },
  "col": {
    "id": "識別碼",
    "chain": "鏈",
    "network": "網絡",
    "profile": "設定檔",
    "status": "狀態",
    "traffic": "流量",
    "disk": "磁碟"
  },
  "cli": {
    "usage": "用法： ysk-server validators list|chains|disk|get|status|checklist|logs|create|start|stop|restart|clear|upgrade|set-version|versions|policy|mithril|prune|switch-network|snapshot|compose|compose-write|rewrite-compose|software|pull|leftover-remove|stats|settings|producer-keys|producer-detach|near-account [--chain C] [--network N] [--profile P] [--el EL] [--cl CL] [--el-tag T] [--cl-tag T] [--node-tag T] [--client ID] [--tag T] [--data-path P] [--rpc-port N] [--id ID] [--path PATH] [--file PATH] [--image REF] [--upgrade POLICY] [--confirm TOKEN] [--kes-file P] [--vrf-file P] [--opcert-file P] [--accept-low-disk] [--accept-low-mem] [--accept-mainnet] [--refresh] [--execute] [--json]"
  },
  "clients": {
    "el": "執行層客戶端",
    "cl": "共識層客戶端",
    "version": "版本",
    "pin": "本面板釘選",
    "officialNewer": "官方較新",
    "olderThanPin": "舊於本面板釘選",
    "prerelease": "預發佈",
    "current": "目前運行",
    "source": "映像來源"
  },
  "mithril": {
    "label": "節點起來後用 Mithril 快照還原",
    "hint": "這是安裝成功後的一次性還原，不會寫入 compose。之後也可在實例頁再執行。",
    "action": "用 Mithril 還原"
  },
  "errors": {
    "notFound": "找不到驗證者節點實例",
    "invalidId": "實例識別碼無效",
    "diskLow": "此鏈、網絡與設定檔所需的可用磁碟空間不足",
    "memLow": "可用記憶體不足以滿足此鏈的記憶體上限",
    "diskUnknownMainnet": "無法量度可用磁碟，拒絕建立主網節點",
    "needDocker": "需要 Docker Engine",
    "composeFailed": "docker compose 失敗",
    "containerNotUp": "Compose 已啟動，但容器未能保持運行",
    "probeFailed": "節點尚未回應 RPC。請在本頁查看日誌。",
    "oom": "記憶體不足。請設定記憶體上限或增加 RAM，然後重新啟動。",
    "nofile": "程序已達開啟檔案上限（nofile）。請提高 ulimits.nofile 後重新啟動。",
    "noContainer": "此實例沒有 Compose 容器。",
    "restarting": "容器正在重新啟動。請在本頁查看日誌。",
    "restartingCount": "容器正在重新啟動（第 {{n}} 次）。請在本頁查看日誌。",
    "needConfirm": "清空須 confirm=實例識別碼 或 CLEAR",
    "mithrilAdaOnly": "Mithril 還原只適用於 Cardano",
    "needMithrilConfirm": "Mithril 需要 confirm=實例識別碼 或 MITHRIL",
    "mithrilBlocked": "Mithril 的 docker run 被允許清單拒絕",
    "mithrilKey": "無法載入 Mithril genesis 驗證金鑰",
    "mithrilFailed": "Mithril 快照下載失敗",
    "pruneFailed": "清理失敗",
    "switchNeedStop": "轉網絡前請先停止節點",
    "switchNeedClear": "轉網絡會清空鏈資料。請用實例識別碼或 CLEAR 確認",
    "composeMissing": "找不到 Compose 檔",
    "composeNotManaged": "拒絕寫入非 YSK 管理的 Compose 檔",
    "badDataPath": "資料路徑必須是絕對目錄，並且不可使用系統路徑",
    "portInUse": "這個 RPC 埠已被另一個驗證者實例使用",
    "badTag": "此客戶端版本不是該映像的官方 tag",
    "needVersionConfirm": "變更版本須 confirm=實例識別碼",
    "needMainnetVersionAck": "主網變更版本須 acceptMainnet",
    "snapshotUnsupported": "此鏈沒有在允許清單內的快照來源",
    "snapshotLookup": "無法解析官方快照指標",
    "needSnapshotConfirm": "還原快照須 confirm=實例識別碼 或 SNAPSHOT",
    "snapshotBlocked": "快照的 docker run 被允許清單拒絕",
    "snapshotFailed": "快照下載或解壓失敗",
    "producerAdaOnly": "營運憑證只適用於 Cardano",
    "needProducerConfirm": "掛上營運憑證須 confirm=實例識別碼 或 PRODUCER",
    "needMainnetProducerAck": "主網掛上營運憑證須 acceptMainnet",
    "producerColdRejected": "拒絕 cold 或 pool 擁有者簽名金鑰。cold 金鑰須保持離線。",
    "producerTooLarge": "金鑰檔大於 64 KiB",
    "producerBadType": "此檔不是 KES 金鑰、VRF 金鑰或 operational certificate",
    "producerEmpty": "請至少提供 kes、vrf 或 opcert 其中一份",
    "switchNeedDetachProducer": "轉網絡前請先卸下營運憑證",
    "nearAccountInvalid": "池名稱須為短名（或完整 {pool}{factory} 帳號）。",
    "nearKeyMissing": "缺少 validator_key.json 或沒有 public_key。請先啟動節點，等待 neard init。"
  },
  "notes": {
    "beta": "此功能屬 Beta。變更主機須 root 及 YSK_EXECUTE=1。",
    "noKeys": "YSK Server 不會產生或保存質押私鑰。",
    "dockerSoon": "安裝與啟動由此頁精靈提供。變更主機須 root 及 YSK_EXECUTE=1。",
    "dryCreate": "已寫入實例規格與 compose（dry-run）。要啟動容器請加 --execute 及 YSK_EXECUTE=1。",
    "dryStart": "啟動為 dry-run。請加 --execute 及 YSK_EXECUTE=1。",
    "dryStop": "停止為 dry-run。請加 --execute 及 YSK_EXECUTE=1。",
    "dryClear": "清空為 dry-run。請加 --execute 及 YSK_EXECUTE=1。",
    "created": "已建立節點並啟動 compose",
    "started": "已啟動節點",
    "stopped": "已停止節點",
    "cleared": "已清空鏈資料",
    "dryMithril": "Mithril 還原為試行。請加 --execute 及 YSK_EXECUTE=1。",
    "mithril": "已用 Mithril 還原快照並重啟節點",
    "dryPrune": "清理為試行。請加 --execute 及 YSK_EXECUTE=1。",
    "pruned": "已清理此專案未用映像",
    "pruneProfile": "客戶端原生修剪靠 pruned／minimal 設定檔。要改請重建實例。",
    "sameNetwork": "已經在這個網絡",
    "drySwitch": "轉網絡為試行。",
    "switched": "已轉網絡並清空鏈資料",
    "dryCompose": "會寫入 compose.yml",
    "composeWrote": "已寫入 compose.yml",
    "statsEmpty": "沒有運行中的容器可量度",
    "autoClearNone": "沒有已停止的實例可供自動清空",
    "drySnapshot": "快照還原為試行。請加 --execute 及 YSK_EXECUTE=1。",
    "snapshotEthEl": "已還原 ethPandaOps 執行層封存，並重設共識層以用 checkpoint sync",
    "snapshotEthCl": "已重設共識層資料，使用官方 checkpoint sync",
    "snapshotNear": "已清空 NEAR 資料；compose 會重新用官方 genesis 與 epoch sync 初始化",
    "nativePrune": "已執行客戶端原生清理指令",
    "dryProducer": "掛上營運憑證為試行。請加 --execute 及 YSK_EXECUTE=1。",
    "dryProducerDetach": "卸下營運憑證為試行。請加 --execute 及 YSK_EXECUTE=1。",
    "producerPartial": "已寫入熱金鑰。KES、VRF、opcert 齊了才會以 block producer 啟動。",
    "producerAttached": "已掛上熱金鑰，compose 改為 block producer",
    "producerDetached": "已卸下熱金鑰，compose 改回 relay",
    "dryDelete": "刪除屬預演。要真正套用須 --execute 與 YSK_EXECUTE=1。",
    "deleted": "已刪除節點",
    "leftoverRemoved": "已刪除殘留 {{path}}",
    "dryNearAccount": "將會把 account_id 設為 {{account}}（須 --execute）。不會改 secret。",
    "nearAccountWrote": "已把 account_id 設為 {{account}}。未改 secret。若節點在運行請重啟。"
  },
  "create": "建立節點",
  "wizard": {
    "title": "建立節點",
    "stepOf": "第 {{n}}／{{total}} 步",
    "stepChain": "鏈",
    "stepNetwork": "網絡",
    "stepProfile": "設定檔",
    "stepSummary": "摘要",
    "needDocker": "未安裝 Docker Engine。請先安裝 — 此按鈕保持停用。",
    "diskNeed": "此設定檔約需 {{need}} · 可用 {{free}}",
    "diskNeedNetwork": "此網絡預設精簡（Minimal）約需 {{need}} · 可用 {{free}}",
    "profileHint": {
      "minimal": "最小同步——磁碟最輕，不適合質押。",
      "pruned": "只保留近期歷史（Pruned）。比完整存檔小，仍可用作 RPC。",
      "validator-ready": "按驗證者角色預留磁碟。比精簡佔用更多空間。",
      "rpc": "公開 RPC 節點——不是質押驗證者。"
    },
    "diskShort": "可用磁碟不足以建立此鏈／網絡／設定檔",
    "diskShortDetail": "需要 {{need}} · 可用 {{free}} · 還差 {{short}}",
    "memShort": "可用記憶體不足以滿足此鏈的記憶體上限",
    "memShortDetail": "需要 {{need}} · 可用 {{free}} · 還差 {{short}}",
    "needCustomPath": "請輸入絕對資料路徑",
    "previewId": "節點識別碼",
    "previewCompose": "Compose 專案",
    "profileSeeAbout": "四個設定檔的分別見「說明」分頁。",
    "back": "上一步",
    "next": "下一步",
    "install": "安裝",
    "mainnetWarn": "主網需要大量可用磁碟（ETH 常達 800 GiB 或以上）。建議先用測試網。",
    "mainnetAck": "我明白：主網會用很多磁碟空間。若把這台機器當驗證者，離線或設定錯誤，質押的幣可能被罰走。我仍要建立主網節點。",
    "lowDiskAcked": "可用磁碟低於建議值。你已確認仍要建立；空間不足時同步可能中斷。",
    "lowMemAcked": "可用記憶體低於此鏈的記憶體上限加 1 GiB 預留。你已確認仍要建立；節點可能因記憶體不足而中止。",
    "heavyWarn": "此鏈負載很重（大量磁碟與高 IOPS）。Solana 主網通常需要 2 TiB 或以上。",
    "memory": "記憶體上限",
    "cpus": "CPU 上限",
    "dataPath": "資料路徑",
    "rpcPort": "RPC 埠",
    "limitNone": "不限",
    "rpcDefault": "預設",
    "customPath": "使用自訂資料路徑",
    "installConfirmTitle": "安裝此節點？",
    "installConfirmDesc": "{{chain}} · {{network}} · {{profile}}。約需 {{disk}} 磁碟。拉取映像可能需時頗長。",
    "installC1": "可能下載數 GiB 映像。",
    "installC2": "可取消面板任務；已拉取的映像不會自動刪除。",
    "installC3": "主網會用很多磁碟。若當驗證者，離線或設定錯誤，質押的幣可能被罰走。請輸入節點識別碼以確認。",
    "dockerAbout": "安裝與啟動節點需要 Docker Engine。",
    "dockerAboutOk": "已安裝 Docker Engine。",
    "dockerAboutMissing": "未安裝 Docker Engine。請到 Docker 頁安裝。",
    "rewriteCompose": "重寫 compose",
    "rewriteComposeTitle": "用目前 adapter 重寫 compose.yml？",
    "rewriteComposeDesc": "會覆寫 {{id}} 的產生檔，只使用本產品為此鏈附帶的旗標。",
    "chainMeta": "最少 {{disk}} · {{clients}} 個客戶端"
  },
  "actions": {
    "detail": "詳情",
    "start": "啟動",
    "stop": "停止",
    "restart": "重新啟動",
    "clear": "清空",
    "upgrade": "升級",
    "setVersion": "變更版本",
    "clearConfirm": "輸入實例識別碼或 CLEAR",
    "prune": "清理映像",
    "switchNetwork": "轉網絡",
    "removeUnit": "一併刪除 compose／實例紀錄",
    "restoreAfter": "清空後還原快照",
    "delete": "刪除",
    "deleteTitle": "刪除 {{id}}",
    "deleteDesc": "此動作會從面板移除節點。",
    "deleteC1": "會停止並移除 Docker Compose",
    "deleteC2": "會刪除磁碟上的鏈資料",
    "deleteC3": "會刪除實例紀錄",
    "pruneTitle": "清理未用映像",
    "pruneDesc": "輸入實例識別碼，以清理此節點 Compose 未用映像。",
    "pruneC1": "會刪除此 Compose 專案標籤下未使用的映像。",
    "clearTitle": "清空 {{id}}",
    "clearC1": "會刪除磁碟上的鏈資料。",
    "clearC2": "實例仍留在面板，狀態為已停止、無資料。",
    "switchTitle": "轉網絡",
    "switchC1": "會先停機並清空鏈資料，再寫入新網絡。"
  },
  "policy": {
    "label": "升級政策",
    "manual": "手動",
    "notify": "通知",
    "auto-safe": "自動（安全）",
    "auto-all": "自動（全部）"
  },
  "logs": {
    "empty": "尚無日誌",
    "follow": "跟隨日誌"
  },
  "compose": {
    "label": "Compose 檔",
    "save": "儲存 compose"
  },
  "snapshot": {
    "action": "還原快照",
    "mithril": "Cardano 用 Mithril 做認證快照還原。",
    "eth": "Ethereum 主網用官方 checkpoint sync 引導共識客戶端。執行層繼續 snap sync。",
    "ethEl": "Hoodi／Sepolia 可還原 ethPandaOps 執行層封存，再用 checkpoint sync 引導共識層。",
    "avax": "Avalanche 在 compose 設定檔使用 state-sync。",
    "near": "官方免費 NEAR tar 快照已停用。還原會清空資料，再用官方 genesis 與 epoch sync。",
    "none": "此鏈未設定快照來源。"
  },
  "producer": {
    "title": "Block producer 熱金鑰",
    "hint": "不是填 IP。請上傳離線機產生的 KES、VRF 與 operational certificate。cold 金鑰不要放在此主機。",
    "warn": "此節點已公開 P2P，掛上後會出塊。官方拓撲把 producer 放在內網。這三份檔是熱金鑰。",
    "kes": "KES",
    "vrf": "VRF",
    "opcert": "opcert",
    "missing": "未掛上",
    "present": "已掛上 {{fp}}",
    "presentShort": "已在主機",
    "queuedShort": "待套用",
    "queued": "已選 · {{name}}",
    "fileHint": "常見檔名 {{file}}",
    "dropOrBrowse": "將 {{file}} 拖放至此，或瀏覽",
    "dropping": "放開以掛上 {{label}}",
    "browse": "瀏覽",
    "clearFile": "移除",
    "choose": "選擇檔案",
    "apply": "套用並以 block producer 重啟",
    "detach": "卸下並改回 relay",
    "applyTitle": "將熱金鑰掛到 {{id}}？",
    "applyDesc": "KES、VRF、opcert 會寫入實例 keys 目錄，並重寫 compose。容器會以 block producer 重啟。",
    "applyC1": "cold 金鑰須保持離線。不要上傳 cold.skey。",
    "applyC2": "檔案有效時，運行中的節點可以出塊。",
    "applyC3": "主網：離線或設定錯誤會錯過出塊。",
    "detachTitle": "從 {{id}} 卸下營運憑證？",
    "detachDesc": "會從此主機刪除熱金鑰，compose 改回 relay。",
    "detachC1": "節點將不再出塊。",
    "mainnet": "主網：我明白此主機會保存熱金鑰並出塊。"
  },
  "stake": {
    "title": "準備質押（私鑰由你保管）",
    "offlineKeys": "離線產生金鑰。面板永不保存。",
    "deposit": "在官方 launchpad 完成存款／登記。",
    "withdrawal": "自行設定提取憑證。",
    "monitor": "在此頁留意磁碟、對等節點與升級徽章。"
  },
  "playbook": {
    "overviewTitle": "各鏈如何質押",
    "overviewDesc": "本面板只負責運行節點。錢包與金鑰由你保管。以下只連官方網站。請勿在此輸入助記詞。",
    "colChain": "鏈",
    "colModel": "如何登記",
    "colMin": "常見最低額",
    "colWallet": "你使用的錢包",
    "colPanel": "本面板負責",
    "yskDoes": "本面板會做",
    "youDo": "你要自己做",
    "steps": "步驟",
    "never": "請不要",
    "official": "官方連結",
    "seeAbout": "完整步驟見「說明」分頁。",
    "nodeIdReady": "NodeID（來自此節點）",
    "nodeIdPending": "節點完成同步並回應 RPC 後，才會顯示 NodeID。",
    "blsReady": "BLS 公鑰",
    "blsProof": "BLS 持有證明",
    "blsPending": "節點回應 RPC 後，才會顯示 BLS 憑證。",
    "copyAll": "全部複製",
    "copyNamed": "複製「{{label}}」",
    "nearStakeKey": "質押公鑰",
    "nearStakeKeyPending": "首次啟動完成 neard init 後出現。RPC 未就緒不代表尚未產生金鑰。",
    "nearAccountId": "金鑰檔 account_id",
    "nearAccountIdPending": "池建立後須改成 {{pool}}{{suffix}}。本面板只寫此欄，永不寫入 secret_key。",
    "nearFactory": "質押池 factory",
    "nearPublicAddr": "Public P2P（同儕）",
    "nearPublicAddrPending": "首次啟動把 WAN:{{port}} 寫入 config.json 後出現。",
    "nearCreateCommand": "create_staking_pool 命令",
    "nearPointing": "質押池合約不以本伺服器 IP 指向節點，而是存放此節點的 stake public key。同儕使用上方 Public P2P（主機埠 {{port}}）。RPC 僅本機。",
    "nearAccountIdHint": "池建立後，在此寫入 account_id（無須人手改檔）。面板永不寫入 secret_key。",
    "cosmosPubkey": "共識公鑰",
    "cosmosPubkeyPending": "gaiad init 寫入 priv_validator_key.json 後出現。RPC 未就緒不代表尚未產生金鑰。",
    "cosmosChainId": "chain-id",
    "cosmosP2p": "Public P2P（external_address）",
    "cosmosP2pPending": "首次啟動把 tcp://WAN:{{port}} 寫入 config.toml 後出現。",
    "ethBeacon": "Beacon API（本機）",
    "ethBeaconPending": "此主機的 beacon HTTP。請自行把 validator client 對準此 URL — 此 compose 沒有 VC。",
    "cosmosCreateCommand": "create-validator 命令",
    "cosmosCreateJson": "validator.json（gaiad v28）",
    "copyFailed": "複製失敗",
    "solIdentity": "Identity 公鑰",
    "solIdentityPending": "RPC 回應 getIdentity 後出現。本進程為 --no-voting，除非你自行建立 vote account。",
    "adaP2pPort": "Relay P2P 埠",
    "adaP2pPending": "請把本主機公開 IPv4（或 DNS）與此埠寫入池註冊證書。topology.json 的 localRoots 只連你自己的 block producer。本面板不探測 WAN。",
    "notPosTitle": "不是權益證明",
    "notPosBody": "此處的 Bitcoin 是完整或 Pruned 節點。本頁沒有質押錢包。",
    "eth": {
      "model": "本 compose 只跑執行層 + beacon，沒有 validator client。請在官方 launchpad 存入 32 ETH。",
      "min": "32 ETH + 手續費",
      "wallets": "MetaMask、Ledger、Trezor — 只在官方 launchpad 使用",
      "panel": "運行 EL + beacon。RPC 與 beacon API 僅本機。compose 沒有 validator client。",
      "honesty": "此實例只是執行層 + beacon。compose 沒有 validator client。把 keystore 放進 beacon 資料目錄不會開始 attest。存款合約不以本伺服器 IP 指向節點。",
      "yskDoes": [
        "安裝並啟動執行層與 beacon 客戶端。",
        "顯示磁碟、對等節點與升級狀態。",
        "不運行 validator client，亦不載入簽署 keystore。"
      ],
      "youDo": [
        "用官方 launchpad 或 staking-deposit-cli 自行產生 keystore，提取地址填入你的 ETH 錢包。",
        "在本網絡的官方 launchpad 存入 32 ETH。",
        "自行運行 validator client（不是此 compose），對準此實例本機 beacon API。"
      ],
      "steps": [
        "等待執行層與 beacon 同步完成。",
        "開啟此網絡的官方 launchpad（本頁有 Hoodi 或 Mainnet）。Sepolia 不提供 launchpad 按鈕。",
        "離線用 staking-deposit-cli 產生 keystore。提款地址設為你自己的 ETH 錢包。",
        "在 launchpad 存入 32 ETH（另留 gas）。",
        "自行運行 validator client，指向本卡的 beacon URL（示例：lighthouse vc --beacon-nodes）。此 compose 沒有 VC — 把 keystore 放入 beacon 資料目錄不會開始 attest。"
      ],
      "never": [
        "不要把助記詞或提款金鑰交給任何人，包括本面板。",
        "不要把簽署 keystore 上傳到託管雲。",
        "不要指望把 keystore 複製進 beacon 資料目錄後本頁會開始 attest。"
      ]
    },
    "avax": {
      "model": "在 Core 或 Ledger 用運行中的 NodeID 與 BLS 證明，於 P-Chain 登記驗證者。",
      "min": "2,000 AVAX + 手續費（Fuji 為 1 AVAX）；最少 14 日",
      "wallets": "Core、Ledger",
      "panel": "運行 avalanchego；RPC 回應後可顯示 NodeID 與 BLS",
      "yskDoes": [
        "運行 avalanchego，RPC 只聽本機。",
        "節點回應 RPC 後顯示 NodeID 與 BLS 憑證。"
      ],
      "youDo": [
        "在 Core 或 Ledger 持有 AVAX。",
        "在 Core 用此節點的 NodeID 與 BLS 證明新增驗證者。"
      ],
      "steps": [
        "等待此節點同步，並出現 NodeID／BLS 列（須 RPC）。",
        "複製 NodeID、BLS 公鑰與 BLS proof of possession。",
        "在 Core 網頁（Staking → Validate），或經 Core 用 Ledger，在 P-Chain 登記。交易不收伺服器 IP。",
        "主網至少 2,000 AVAX、最短 14 日，並預留手續費。Fuji 為 1 AVAX。"
      ],
      "never": [
        "不要把 AVAX 轉入本面板。",
        "不要分享 Core 或 Ledger 的復原短語。"
      ]
    },
    "ada": {
      "model": "以離線 cold／KES／VRF 金鑰經營 stake pool，不是瀏覽器錢包一鍵操作。",
      "min": "質押金額由你決定（見官方文件）",
      "wallets": "官方 stake pool 工具（cold 金鑰保持離線）",
      "panel": "先以 relay 運行 cardano-node；可在本頁掛上熱鑰。",
      "honesty": "此實例預設為 relay。鏈上登記 pool 用你離線保管的 cold 金鑰。同儕與拓撲使用本主機公開 IPv4 與本卡顯示的 P2P 埠 — 面板不探測 WAN。",
      "yskDoes": [
        "運行 cardano-node，並在支援時提供 Mithril 快照還原。",
        "你提供時掛上 KES、VRF 與 opcert。拒絕 cold 金鑰。"
      ],
      "youDo": [
        "離線產生池金鑰。",
        "用官方 Cardano CLI 註冊池。把本機公網 IPv4 或 DNS 與 relay P2P 埠寫入池註冊證書。",
        "在本頁掛上 KES、VRF 與 opcert。不要上傳冷鑰。"
      ],
      "steps": [
        "閱讀官方 operate-a-stake-pool 指南。",
        "在離線機器產生 cold、KES、VRF 金鑰。",
        "鏈上註冊池。在該證書廣告 relay（--pool-relay-ipv4 或 DNS + 本卡 P2P 埠）。公眾發現靠證書，不是 topology.json。",
        "在本實例頁掛上 KES、VRF 與 operational certificate。冷鑰會被拒絕。",
        "topology.json 的 localRoots 只連你自己的 block producer（advertise: false）。本面板不查 WAN 位址。"
      ],
      "never": [
        "不要當成 MetaMask 一鍵質押。",
        "不要把冷鑰放在驗證者主機。",
        "不要以為只改 topology.json 就能在鏈上登記 relay。"
      ]
    },
    "near": {
      "model": "在官方 factory 建立 staking-pool 合約。合約存放此節點的 public key，不是伺服器 IP。",
      "min": "見官方驗證者文件（建立池須 30 NEAR，另加質押）",
      "wallets": "官方 NEAR 錢包／lockup",
      "panel": "運行 neard；表單填好 create_staking_pool；池建立後只寫入 account_id。",
      "yskDoes": [
        "運行 neard，RPC 只在本機，P2P 在 24567。",
        "init 後顯示質押公鑰、公開 P2P 位址與 factory。",
        "用池名稱、擁有人與公鑰填好 create_staking_pool。池建立後只寫 account_id — 永不改 secret_key，永不送出交易。"
      ],
      "youDo": [
        "啟動節點，等待本頁出現公鑰。",
        "填池名稱與擁有人，然後複製命令。",
        "用你自己的 NEAR 錢包或 near-cli 簽署 create_staking_pool。",
        "返回本頁寫入 account_id。再從錢包向該池質押。"
      ],
      "steps": [
        "啟動節點，等待 neard init 後公鑰出現（RPC 未就緒不代表尚未產生金鑰）。",
        "填入池短名與擁有人帳號。複製已填好的 create_staking_pool 命令。",
        "用你的錢包呼叫 factory（測試網 pool.f863973.m0／主網 poolv1.near），並付 30 NEAR 作儲存。命令使用 --accountId；若你的 near CLI 要用 --account_id，請依該 CLI 的 --help。",
        "池建立後，在本頁按「寫入 account_id」（確認字為實例識別碼）。不要人手改 validator_key.json。",
        "若節點已在運行請重啟。等待 RPC 回應且同步完成後再質押大量金額。對等端使用 Public P2P — 合約不收 IP。"
      ],
      "never": [
        "不要在本面板貼上助記詞。",
        "不要把本伺服器 IP 寫進合約。",
        "不要期望面板代發 create_staking_pool 交易。"
      ]
    },
    "cosmos": {
      "model": "用操作者錢包送出 create-validator。交易存放此節點的共識公鑰，不是伺服器 IP。",
      "min": "見官方 Cosmos Hub 文件（自行質押以 uatom 計）",
      "wallets": "Keplr 或其他由你控制的 Cosmos 錢包",
      "panel": "運行 gaiad v28；顯示共識公鑰；表單填好 validator.json 與 create-validator。永不寫入 priv_validator_key.json，亦不代發交易。",
      "honesty": "此 gaiad 為 v28（JSON 檔）。Hub 文件仍用 flags — 在此節點會失敗。交易存放此節點的共識公鑰，不是伺服器 IP。同儕使用 Public P2P。RPC 僅本機。本面板不代發交易，亦不讀取 priv_key。",
      "yskDoes": [
        "運行 gaiad，RPC 只在本機，P2P 在 26656。minimum-gas-prices 為 0.005uatom。",
        "init 後顯示共識公鑰、chain-id 與公開 P2P。",
        "用數量、moniker、--from 與共識公鑰填好 validator.json 與 gaiad v28 命令。永不寫入 priv_validator_key.json，永不代發交易。"
      ],
      "youDo": [
        "啟動節點，等待本頁出現共識公鑰。",
        "填數量、moniker 與 --from。先複製 validator.json，再複製 gaiad 命令。",
        "用 Keplr 或你控制的 gaiad 金鑰簽署。不要把該助記詞與本機共識金鑰混用。"
      ],
      "steps": [
        "啟動節點，等待 gaiad init 後共識公鑰出現（RPC 未就緒不代表尚未產生金鑰）。",
        "填自我委託（1atom = 1 ATOM，或 uatom）、moniker 與 --from。複製 validator.json，再複製 gaiad 命令。此節點為 gaiad v28：用 JSON 檔，不是 Hub 文件的 flags。主網 chain-id 為 cosmoshub-4，測試網為 provider。",
        "複製命令的 --gas-prices 為 0.005uatom，對齊此節點。不要貼上 Hub 文件的 0.0025uatom 示例，亦不要貼 flags 版 create-validator。",
        "儲存 validator.json，用 operator 錢包廣播。交易不收伺服器 IP。同儕使用 tcp://WAN:{{port}}。",
        "等待 RPC 回應且同步完成後再大量綁定。"
      ],
      "never": [
        "不要把 operator 錢包助記詞與共識金鑰混用。",
        "不要在此輸入錢包助記詞。",
        "不要把此伺服器 IP 寫進 create-validator。",
        "不要貼上 Hub 文件的 --amount／--pubkey flags — 此 gaiad 為 v28（validator.json）。",
        "不要在此節點使用 0.0025uatom gas — compose 最低為 0.005uatom。"
      ]
    },
    "sol": {
      "model": "本 compose 以 --no-voting 運行 Agave。vote account 與 withdrawer 用官方 Solana 工具建立，不是本面板。",
      "min": "見官方維運文件（硬件與磁碟需求很高）",
      "wallets": "你控制的官方 Solana CLI／錢包",
      "panel": "以 --no-voting 運行 Agave 同步節點。RPC 回應後可顯示 identity pubkey。",
      "honesty": "本進程為 --no-voting。在你用官方 Agave CLI 建立 vote account 並改啟動方式之前，不會投票、也不會賺取質押。本面板不移除 --no-voting。",
      "yskDoes": [
        "運行 Agave 客戶端，並警告磁碟需求。",
        "RPC 回應 getIdentity 後顯示 identity pubkey。",
        "不建立 vote account，亦不開始投票。"
      ],
      "youDo": [
        "在你控制的機器上，用官方 Solana 工具建立 vote 與 authorized-withdrawer 金鑰。",
        "用官方 CLI 建立 vote account，並使用此處的 identity pubkey。",
        "此 compose 維持 --no-voting。"
      ],
      "steps": [
        "確認本機磁碟與 IOPS 足夠（主網通常 2 TiB 或以上）。",
        "等待 RPC 回應，然後複製本頁的 identity pubkey。",
        "用官方 Solana 工具在你控制的機器產生 vote 與 authorized-withdrawer 金鑰，然後 solana create-vote-account。",
        "此 compose 維持 --no-voting。建立 vote account 不會令此進程開始投票。"
      ],
      "never": [
        "不要指望本面板有瀏覽器錢包按鈕。",
        "不要把 identity 或 vote 密鑰對貼進本面板。",
        "不要指望建立 vote account 後本頁會開始投票。"
      ]
    },
    "dot": {
      "model": "本 compose 是全節點（沒有 --validator）。session keys 與 setKeys 是官方 Polkadot.js 步驟，不是本面板。",
      "min": "見官方 wiki",
      "wallets": "Polkadot.js",
      "panel": "以全節點運行 polkadot。RPC 僅本機。沒有 --validator。",
      "honesty": "本進程不是以 --validator 啟動。面板不呼叫 author_rotateKeys（會改 keystore）。要成為驗證者，須依官方文件加上驗證者旗標，並自行對本機 RPC 做 rotateKeys。",
      "yskDoes": [
        "運行 polkadot，RPC 只聽本機。",
        "不加上 --validator，亦不輪替 session keys。"
      ],
      "youDo": [
        "閱讀官方 set-up-a-validator 指南。",
        "若你自行加上 --validator，對本機 RPC 呼叫 rotateKeys，再在 Polkadot.js 用 stash 綁定結果。"
      ],
      "steps": [
        "同步此全節點。",
        "閱讀官方 validate 指南。此 compose 不是驗證者進程。",
        "不要在此貼上 stash 助記詞。若你稍後以 --validator 運行，請自行對本機 RPC 埠做 rotateKeys。",
        "在 Polkadot.js 把 session keys 設到 stash／controller，再按官方步驟綁定。"
      ],
      "never": [
        "不要在本面板貼上 stash 助記詞。",
        "不要期望本頁產生 session keys，或已經以 --validator 啟動。"
      ]
    },
    "sui": {
      "model": "本 compose 是 Sui fullnode（fullnode.yaml），不是驗證者節點。",
      "min": "見官方 Sui 文件",
      "wallets": "官方 Sui 操作者錢包",
      "panel": "以 fullnode 運行 sui-node。RPC 僅本機。",
      "honesty": "此進程不能以 Sui 驗證者身份簽署。驗證者要用另一份設定與金鑰。官方驗證者文件有連結；本面板不會把節點切成驗證者模式。",
      "yskDoes": [
        "以 fullnode 運行產品附帶的 sui-node 映像。"
      ],
      "youDo": [
        "把此實例當 fullnode 使用。",
        "若要成為驗證者，請依官方 Sui 驗證者文件另建驗證者設定 — 不是此 compose。"
      ],
      "steps": [
        "同步此 fullnode。",
        "把它當 fullnode：會重放 checkpoint，但不簽署共識。",
        "只有在你另行建立驗證者進程時，才需要官方驗證者操作指南。"
      ],
      "never": [
        "不要把 SUI 轉入本面板。",
        "不要期望此 fullnode 進程登記成驗證者。"
      ]
    },
    "aptos": {
      "model": "本 compose 是 Aptos 公共全節點（role full_node），不是驗證者。",
      "min": "見官方 Aptos 文件",
      "wallets": "官方 Aptos 操作者錢包",
      "panel": "以公共全節點運行 aptos-node。RPC 僅本機。",
      "honesty": "公共全節點不參與共識。驗證者需要不同 role、金鑰，通常還要 validator fullnode。本面板不會把節點切成驗證者模式。",
      "yskDoes": [
        "以公共全節點運行產品附帶的 Aptos 映像。"
      ],
      "youDo": [
        "把此實例當公共全節點使用。",
        "若要跑驗證者，請依官方 Aptos validator-node 文件 — 不是此 compose。"
      ],
      "steps": [
        "同步此公共全節點。",
        "把它當 PFN：提供帳本資料，不投票。",
        "只有在你另行建立驗證者 + VFN 時，才需要官方驗證者文件。"
      ],
      "never": [
        "不要在本面板輸入操作者金鑰。",
        "不要期望此全節點進程登記成驗證者。"
      ]
    },
    "btc": {
      "model": "不是權益證明。此處是 Bitcoin 完整或 Pruned 節點。",
      "min": "—",
      "wallets": "不適用",
      "panel": "運行 bitcoind",
      "yskDoes": [
        "運行 Bitcoin 完整或 Pruned 節點。"
      ],
      "youDo": [
        "錢包另外使用。挖礦與 Lightning 不在本功能範圍。"
      ],
      "steps": [
        "把此實例視為 Bitcoin 節點即可。",
        "沒有質押存款，也沒有驗證者 keystore。"
      ],
      "never": [
        "不要在本頁尋找質押錢包。"
      ]
    },
    "nearPoolSlug": "池名稱",
    "nearPoolSlugHint": "只填短名。factory 會加上 {{suffix}}。",
    "nearOwner": "擁有人帳號",
    "nearOwnerHint": "簽署 create_staking_pool 的 NEAR 帳號（你的錢包）。不是節點金鑰。",
    "nearPreview": "命令預覽",
    "nearWriteAccount": "寫入 account_id",
    "nearWriteTitle": "為 {{id}} 寫入 validator_key.json 的 account_id？",
    "nearWriteDesc": "只改現有金鑰檔的 account_id。不會送出 create_staking_pool。不會改 secret_key。",
    "nearWriteC1": "account_id 會變成 {{pool}}{{suffix}}",
    "nearWriteC2": "面板不會簽署 factory 交易",
    "nearRestart": "寫入後重啟節點",
    "nearNeedKey": "請先等質押公鑰出現（neard init），再填此表。",
    "nearNeedSlug": "請填池名稱以寫入 account_id。",
    "nearNeedOwner": "請填擁有人帳號以產生命令。寫入 account_id 只須池名稱。",
    "cosmosPointing": "此 gaiad 為 v28：先複製 validator.json，再複製 create-validator validator.json。Hub 文件仍用 flags — 在此節點會失敗。交易用此節點的共識公鑰，不是伺服器 IP。同儕使用 Public P2P（主機埠 {{port}}）。gas 為 0.005uatom — 不要用 Hub 文件的 0.0025uatom。",
    "avaxPointing": "P-Chain 登記用此 NodeID 與 BLS 證明，不是伺服器 IP。RPC 僅本機。請在 Core（Staking → Validate）登記。",
    "ethVcCommand": "Validator client 示例（不在此 compose）",
    "ethVcHint": "請自行運行 validator client，指向此 beacon URL。把 keystore 放入 beacon 資料目錄不會開始 attest。",
    "cosmosAmount": "自我委託",
    "cosmosAmountHint": "單位 uatom，或填 1atom 代表 1 ATOM。只填 1 是 1 uatom，不是 1 ATOM。",
    "cosmosAmountParsed": "{{amount}} = {{atom}}",
    "cosmosMoniker": "Moniker",
    "cosmosFromKey": "--from 金鑰名稱",
    "cosmosFromHint": "本機 gaiad 金鑰名，或用 Keplr 簽署。不是此主機上的共識金鑰。",
    "cosmosNeedPubkey": "請先等共識公鑰出現（gaiad init），再填此表。",
    "cosmosNeedFields": "請填數量、moniker 與 --from 以產生命令。"
  },
  "alerts": {
    "diskTitle": "驗證者節點磁碟危急",
    "diskBody": "驗證者資料卷可用空間極低。",
    "upgradeTitle": "驗證者節點有可用升級",
    "upgradeBody": "一個或多個客戶端有較新的釘選版本。",
    "syncTitle": "驗證者節點需要留意",
    "syncBody": "有節點已同步超過 6 小時，或回報錯誤。",
    "rollbackTitle": "驗證者升級已回滾",
    "rollbackBody": "{{id}} 升級健康檢查失敗，已回滾。"
  },
  "upgrade": {
    "changelog": "更新紀錄"
  },
  "readiness": {
    "dockerTitle": "驗證者節點所需的 Docker",
    "dockerOk": "有 {{count}} 個驗證者實例；已安裝 Docker",
    "dockerMissing": "已有驗證者實例，但找不到 docker 指令"
  },
  "detail": {
    "status": "狀態",
    "sync": "同步",
    "peers": "對等節點",
    "traffic": "流量",
    "version": "版本",
    "access": "存取",
    "upgrade": "升級",
    "upgradeHint": "選擇此節點如何跟進客戶端版本。",
    "setVersion": "變更版本",
    "setVersionHint": "為此節點的客戶端選擇官方 Docker tag。會重寫 compose，然後拉取並重新啟動。",
    "setVersionConfirmTitle": "將 {{id}} 改為 {{tag}}？",
    "setVersionConfirmDesc": "會重寫 compose、拉取 {{ref}}，並重新啟動節點。",
    "setVersionC1": "運行中的容器會換成所選 tag。",
    "setVersionC2": "請輸入實例識別碼以確認。",
    "setVersionMainnet": "主網：錯誤版本可令節點離線。我明白。",
    "releaseNotes": "發佈說明",
    "network": "網絡",
    "networkHint": "轉網絡會停機並清空鏈資料。請先在「清空資料」確認。",
    "maintain": "維護",
    "danger": "清空資料",
    "dangerHint": "輸入實例識別碼或 CLEAR。此動作會刪除磁碟上的鏈資料。",
    "compose": "Compose",
    "logs": "日誌"
  },
  "state": {
    "unknown": "未知",
    "stopped": "已停止",
    "created": "已建立未啟動",
    "missing": "沒有容器",
    "starting": "啟動中",
    "rpc_wait": "運行中／RPC 未就緒",
    "running": "運行中",
    "syncing": "同步中",
    "error": "錯誤"
  }
}
