{
  "title": "專案",
  "subtitle": "",
  "create": "建立專案",
  "createHint": "有範本時會自動部署並發佈 Nginx",
  "empty": "尚未建立專案",
  "emptyHint": "按「建立專案」開始",
  "emptyFilter": "沒有符合的專案",
  "emptyFilterHint": "清除搜尋或篩選",
  "name": "名稱",
  "domain": "域名（選填）",
  "detail": "專案詳情",
  "deploy": "部署",
  "deployPhp": "部署 PHP",
  "stop": "停止",
  "health": "健康檢查",
  "publishNginx": "發布 Nginx",
  "publishNginxSsl": "發布 Nginx + SSL",
  "opsResult": "操作結果",
  "runtime": "執行環境",
  "template": "範本（選填）",
  "templateNone": "— 無 —",
  "searchPlaceholder": "搜尋名稱、域名或識別碼…",
  "listDesc": "管理此主機上的網站專案。",
  "filterAll": "全部 運行時",
  "statTotal": "全部",
  "statRunning": "運行中",
  "statDegraded": "降級",
  "statUnhealthy": "異常",
  "statStopped": "停止 / 就緒",
  "statStoppedOnly": "已停止",
  "statReadyOnly": "就緒",
  "statPendingOs": "待系統用戶",
  "status": {
    "failed": "失敗",
    "failedHint": "部署或健康檢查失敗 — 請查看日誌",
    "unhealthy": "異常",
    "unhealthyHint": "行程仍在但健康檢查失敗",
    "pendingOs": "待建立系統用戶",
    "pendingOsHint": "系統用戶尚未建立",
    "degraded": "運行中（降級）",
    "degradedHint": "行程已啟動，但非完整生產模式（例如非 管理員 / pidfile）",
    "deploying": "部署中",
    "published": "已發布",
    "publishedHint": "Nginx 設定已寫入；行程狀態可能另計",
    "running": "運行中",
    "stopped": "已停止",
    "ready": "已就緒",
    "readyHint": "已建立 — 請部署以啟動",
    "unknown": "未知"
  },
  "checklist": {
    "title": "上線路徑",
    "desc": "完成以下步驟即可對外提供服務",
    "created": "已建立",
    "os": "OS 用戶",
    "deploy": "部署",
    "nginx": "Nginx",
    "health": "健康"
  },
  "next": {
    "pendingOsTitle": "系統用戶尚未建立",
    "provisionOsAction": "建立系統用戶",
    "pendingOsBody": "此專案尚未建立獨立系統用戶。",
    "pendingOsActions": "可繼續部署；完整隔離需以系統管理員權限執行。",
    "deployTitle": "下一步：部署",
    "deployBody": "按上方「部署 PHP／部署」啟動 運行時，或到「部署」分頁用 Git。",
    "nginxTitle": "下一步：發布 Nginx",
    "nginxBody": "到「網絡」分頁或總覽快捷操作發布 Nginx（可選 SSL）。"
  },
  "healthDetail": {
    "none": "尚未執行健康檢查",
    "overall": "結果",
    "nginxStatus": "Nginx 狀態",
    "nginxReloaded": "Nginx 重載",
    "httpStatus": "HTTP",
    "latency": "延遲",
    "error": "錯誤",
    "at": "檢查時間",
    "deployMode": "部署模式",
    "edgeKind": "邊緣",
    "goLiveOk": "上線",
    "goLiveAt": "上線時間",
    "degraded": "降級"
  },
  "railPhp": "PHP / 站點",
  "railStatic": "靜態站",
  "sectionPhpDeploy": "PHP 部署",
  "sectionPhpDeployDesc": "寫入 PHP 站點／程序池，並依權限套用到系統",
  "sectionStaticDeploy": "靜態內容",
  "sectionStaticDeployDesc": "靜態站以檔案 + Nginx 為主，無 節點 行程",
  "staticDeployHint": "請用 Git 拉取內容，再到「網絡」發布 Nginx。",
  "noDomain": "未設定域名",
  "lastDeploy": "上次部署",
  "neverDeployed": "尚未部署",
  "created": "已建立 {{name}}",
  "backToList": "返回專案列表",
  "openUrl": "開啟網站",
  "openUrlNeedDomain": "請先設定域名 — 不要在瀏覽器開啟 127.0.0.1",
  "needOsUser": "請先到隔離分頁建立系統用戶",
  "goIsolation": "前往隔離分頁",
  "homeMissing": "主目錄不存在",
  "homeMissingHint": "與遷移盤點同一探測 — 請到隔離分頁建立系統用戶",
  "stopTitle": "停止此專案（systemd 單元與公開網站）",
  "deployTitle": "部署此專案",
  "httpStatsHint": "取自本專案 access log（最近樣本）",
  "httpStatsNone": "尚無本專案 access log",
  "notFound": "找不到此專案",
  "home": "主目錄",
  "env": "環境",
  "backup": "備份",
  "resources": "資源",
  "quotaUnlimited": "無配額限制",
  "lastHealth": "最近健康檢查",
  "tabOverview": "總覽",
  "tabDeploy": "部署",
  "tabApp": "應用",
  "tabNetwork": "網絡",
  "tabResources": "資源",
  "tabIsolation": "隔離",
  "tabLogs": "日誌",
  "tabAdvanced": "進階",
  "tabMore": "更多",
  "createGoLive": "建立後立即部署並發佈 Nginx",
  "createPreferredPort": "固定埠（可選）",
  "goLiveOk": "已部署並發佈",
  "goLivePartial": "已建立；部署／發佈未完成",
  "nginxLive": "已載入",
  "nginxWritten": "已寫入",
  "nginxNeedsDeploy": "需先部署",
  "nginxFailed": "發佈失敗",
  "netEdgeStatus": "站點狀態",
  "netUpstream": "上游",
  "netPortTitle": "進程埠",
  "netCurrentPort": "目前埠",
  "netPublishTitle": "發佈",
  "netConfPreview": "設定",
  "savePublishSsl": "儲存並發佈 + SSL",
  "retryLiveTitle": "上線未完成",
  "retryLiveBody": "部署或 Nginx 發佈未成功，可重試。",
  "retryDeploy": "重試部署",
  "retryPublish": "重試發佈 Nginx",
  "preferredPortRedeployHint": "儲存後需重新部署才會改進程埠",
  "railProcess": "行程",
  "railNginx": "Nginx",
  "railOs": "OS 用戶",
  "railHealth": "健康",
  "nginxPublished": "已發布設定",
  "nginxNone": "尚未發布",
  "osProvisioned": "已建立系統用戶",
  "osPending": "尚未完成 OS 隔離",
  "healthOk": "正常",
  "healthBad": "失敗",
  "healthUnknown": "尚未檢查",
  "sectionRuntimeDeploy": "運行時 部署",
  "sectionRuntimeDeployDesc": "依專案 運行時 啟動行程（節點 / PHP）",
  "sectionGit": "git",
  "sectionGitDesc": "Clone、同步、入站 push",
  "sectionEnv": "環境變數",
  "sectionEnvDesc": "以「名稱=值」寫入專案 .env",
  "gitUrl": "git 網址",
  "gitDeploy": "Git 部署",
  "envFile": "環境檔（.env）",
  "saveEnv": "儲存環境變數",
  "sectionNginx": "Nginx 與 SSL",
  "sectionNginxDesc": "寫入並套用網站設定",
  "domainHint": "建議先在建立時填域名，方便 Publish",
  "sectionQuota": "磁碟配額",
  "sectionQuotaDesc": "限制專案 主目錄 可用空間（MiB）",
  "sectionLimits": "CPU / 記憶體",
  "sectionLimitsDesc": "系統服務 資源限制；需重新 Deploy 才套用 服務單元",
  "quotaMb": "配額（MiB）",
  "memoryMax": "最大記憶體",
  "cpuQuota": "CPU 配額 %",
  "setQuota": "設定配額",
  "setResources": "儲存資源限制",
  "sectionLogs": "應用日誌",
  "sectionLogsDesc": "讀取專案目錄下最近 日誌 檔",
  "viewLogs": "載入日誌",
  "logsEmpty": "尚未載入日誌",
  "logsNoFiles": "（尚無 日誌 檔 — 請先 Deploy）",
  "sectionAdvanced": "其他操作",
  "sectionAdvancedDesc": "備份與範本內容下載",
  "downloadWp": "下載 WordPress",
  "dangerZone": "危險區域",
  "dangerZoneDesc": "刪除專案會移除管理紀錄與相關資源",
  "delete": "刪除專案",
  "confirmStopTitle": "停止此專案？",
  "confirmStopDesc": "將停止「{{name}}」的運行行程。",
  "confirmDeleteTitle": "刪除此專案？",
  "confirmDeleteDesc": "確定刪除「{{name}}」？此操作無法從介面復原。",
  "close": "關閉",
  "statProjects": "{{count}} 專案",
  "noProjectsShort": "尚無專案",
  "runtimeStatic": "靜態",
  "logsLoadFailed": "讀取日誌失敗",
  "deleteFailed": "刪除失敗",
  "tabAbout": "說明",
  "statusLabel": "狀態",
  "userLabel": "用戶",
  "nginxValuePublished": "已發布",
  "nginxValueNone": "未發布",
  "osValueReady": "已建",
  "osValuePending": "待建立系統用戶",
  "openFiles": "檔案",
  "enableCdn": "啟用 CDN",
  "openLogs": "日誌",
  "osUserReadyMsg": "系統用戶已就緒。{{detail}}",
  "osUserNeedRoot": "無法建立系統用戶：需要 系統變更權限 與管理員權限。{{detail}}",
  "osUserIncomplete": "系統用戶建立未完成",
  "saveLogDirsFailed": "儲存 日誌 目錄失敗",
  "createName": "專案名稱",
  "noPathSepHint": "名稱不可包含 / 或 \\。",
  "createRuntime": "執行環境",
  "createRuntimeHint": "之後可在詳情調整部署方式",
  "createVersion": "版本",
  "createVersionHint": "會寫入專案的執行環境版本；部署／FPM 會參考此版本",
  "createVersionAria": "執行環境版本",
  "createPrimaryDomain": "主要域名",
  "createPrimaryDomainHint": "可稍後再填",
  "createAliases": "別名",
  "createAliasesHint": "逗號或換行分隔",
  "createTemplate": "範本",
  "createTemplateHint": "每個執行環境只有一個 Hello World! demo；選範本會帶入對應 runtime",
  "createTemplateNote": "範本只寫入專案目錄骨架；需再「部署」才會 建置／啟動。",
  "createRuntimeNow": "目前執行環境：",
  "createTemplateFooter": "。可選範本加速起步，或不選直接空白專案。",
  "createDraftResources": "與域名一併建立草稿資源",
  "createNeedDomainFirst": "請先填「主要域名」，以下選項才會一併建立草稿。",
  "createDnsZone": "同時建立 DNS zone",
  "createDnsZoneDesc": "只寫管理檔（draft），不等於權威 DNS 已上線",
  "createMailDomain": "同時登記郵件域名",
  "createMailDomainDesc": "之後可到郵件頁完成郵箱與套用",
  "createServerIpv4": "伺服器 IPv4",
  "createServerIpv4Hint": "DNS／郵件範本用",
  "createServerIpv4Ph": "此主機公網 IPv4",
  "createServerIpv6": "伺服器 IPv6（可選）",
  "createServerIpv6Ph": "公網 IPv6（可留空）",
  "sshCardDesc": "登入公鑰決定誰能進來；出站身份決定這用戶出去用哪把匙。",
  "sshLoginKeys": "允許登入的公鑰",
  "sshKeyCount": "{{count}} 把",
  "sshOutbound": "出站身份",
  "sshOutboundNone": "尚未建立",
  "sshOutboundCreated": "已建立出站身份（私鑰已加密保存）",
  "sshCreateFailed": "建立失敗",
  "sshWriteTried": "已嘗試寫入磁碟",
  "sshOutboundHint": "建立出站身份後，此專案用戶可用於 git／腳本連外。",
  "sshCreateOutbound": "一鍵建立出站身份",
  "sshWriteHome": "寫入 主目錄/.ssh",
  "sshOpenWorkspace": "開啟 遠端登入 工作台",
  "sshManageLoginKeys": "管理登入公鑰",
  "logsSectionDesc": "掃描 日誌/、日誌/ 與額外目錄；可按檔名／內容關鍵字搜尋",
  "logsNameSearch": "檔名搜尋",
  "logsNameSearchHint": "匹配相對路徑，例如 錯誤、app.out",
  "logsContentKw": "內容關鍵字",
  "logsContentKwHint": "在各檔尾端搜尋（不是全檔全文）",
  "logsSearch": "搜尋",
  "logsRescan": "重新掃描",
  "logsRefreshFile": "重新整理此檔",
  "logsCopy": "複製內容",
  "logsDownloadTail": "下載尾端",
  "logsCenter": "日誌中心",
  "logsHitsTitle": "內容命中 {{count}} 個檔 — 點檔名可開尾端（含關鍵字過濾）",
  "logsLinesHit": "{{count}} 行命中",
  "logsFileCount": "日誌檔 {{count}}",
  "logsNameFilter": "（檔名含「{{q}}」）",
  "logsScanning": "正在掃描 日誌…",
  "logsNoneYet": "尚無日誌檔 — 部署或跑過服務後會出現；亦可設定額外目錄。",
  "logsNoContent": "尚無內容",
  "logsRelated": "相關來源",
  "logsRelatedDesc": "系統日誌 / nginx / PHP-FPM（詳見日誌中心）",
  "logsAvailable": "可用",
  "logsMissing": "未見",
  "logsOpenInCenter": "在日誌中心開啟",
  "logsExtraDirs": "額外 日誌 目錄",
  "logsExtraDirsDesc": "相對專案 主目錄 的路徑（除預設 日誌/、日誌/ 外）",
  "logsDirList": "目錄列表",
  "logsDirListHint": "一行一個；只允許 主目錄 內相對路徑",
  "logsReset": "重設",
  "logsSaveScan": "儲存並掃描",
  "logsDefaultNote": "預設永遠掃描 日誌/ 與 日誌/。額外目錄只收入檔名像 *.日誌 / *.out / *.err 的檔。",
  "resOsTitle": "系統用戶隔離",
  "resOsDesc": "每個專案獨立 Linux 用戶；意圖主目錄：/home/ysk-server-{專案識別碼}",
  "resLinuxUser": "Linux 用戶",
  "resOsIsolation": "OS 隔離",
  "resOsReady": "已就緒",
  "resOsNotCreated": "未建立（需系統管理員）",
  "resHomeDir": "主目錄 目錄",
  "resCanonical": "意圖路徑",
  "resUserMissing": "用戶不存在",
  "resShellLive": "即時 shell / 鎖定",
  "resLocked": "已鎖定",
  "resUnlocked": "未鎖定",
  "resHomeMode": "主目錄 模式",
  "resHomeExists": "存在 · 模式 {{mode}}",
  "resHomeMissing": "不存在",
  "resIsolationOn": "隔離中",
  "resIsolationPending": "待隔離",
  "resOsHint": "行程以專案用戶執行。建立系統用戶需 系統變更權限 與管理員權限；否則為 degraded。",
  "resProvisionUser": "建立／修復系統用戶",
  "resRefreshStatus": "重新整理狀態",
  "resFixHome": "修復 主目錄 擁有權",
  "resMigrateHome": "遷移到 /home/ysk-server-…",
  "resQuotaDesc": "軟配額（deploy 前 du 擋）+ 有 setquota 時可硬強制",
  "resQuotaHint": "例如 1024 = 1 GiB",
  "resSetSoftQuota": "儲存軟配額",
  "resLimitsTitle": "行程與帳號限制",
  "resLimitsDesc": "系統服務 MemoryMax / CPUQuota / TasksMax / NOFILE + shell／鎖定",
  "resLimitsDescSystemd": "systemd cgroup：MemoryMax / CPUQuota / TasksMax / NOFILE + shell／鎖定",
  "resLimitsDescPm2": "PM2：記憶體對應 max_memory_restart；其餘限額見 systemd。",
  "resRunnerSystemd": "進程管理：systemd",
  "resRunnerPm2": "進程管理：PM2",
  "resMemMax": "記憶體上限",
  "resMemHint": "例如 512M 或 1G",
  "resMemHintSystemd": "systemd MemoryMax（cgroup 硬頂，例如 512M 或 1G）",
  "resMemHintPm2": "寫入 ecosystem max_memory_restart（到額重啟，非 cgroup 硬殺）；例如 512M 或 1G",
  "resFieldSystemdOnly": "僅 systemd cgroup 有效；仍會存 DB，改回 systemd 部署後生效",
  "resCpuHint": "100 = 一顆 CPU",
  "resCustomPct": "自訂 %",
  "resTasksHint": "行程數上限",
  "resNofileHint": "開檔上限",
  "resShellHint": "預設 nologin",
  "resShellBashRisk": "bash · 風險",
  "resLockAccount": "鎖定 Linux 帳號",
  "resLockDesc": "usermod -L；解鎖時取消勾選",
  "resLimitsHint": "「儲存並套用」會寫 資料庫 並嘗試 usermod / setquota / 系統控制 set-property。無權限時只寫控制面。",
  "resLimitsHintSystemd": "「儲存並套用」會寫入控制面，並在有權限時套用 OS／systemd 限額。",
  "resLimitsHintPm2": "「儲存並套用」會寫入控制面並更新 PM2 記憶體上限。",
  "resSaveApply": "儲存並套用限制到 OS",
  "resSaveControlOnly": "僅存 Mem/CPU 到控制面",
  "resReapply": "再套用一次（不改表單）",
  "resMigrateDone": "遷移完成",
  "resMigrateIncomplete": "遷移未完成",
  "resMigrateTitle": "遷移系統用戶 主目錄？",
  "resMigrateDesc": "將遷移到 /home/ysk-server-{識別碼} 並建立／修復系統用戶。需要管理員權限。",
  "resMigrate": "遷移",
  "resWrittenOnly": "已寫入控制面；OS 未套用（需要管理員權限）。{{notes}}",
  "resAppliedOs": "限制已套用到 OS。{{notes}}",
  "resSaved": "已儲存",
  "resIncomplete": "未完成",
  "resApplyLimitsFailed": "套用限制失敗",
  "resApplied": "已套用",
  "resApplyFailed": "套用失敗",
  "resChownOk": "變更擁有者 完成",
  "resChownFailed": "變更擁有者 失敗",
  "netSavedPublished": "網絡已儲存並發布 Nginx",
  "netSavedOnly": "網絡設定已儲存（未發布）",
  "netSaveFailed": "儲存失敗",
  "netSuspended": "專案已暫停 — 訪客會收到 503。恢復後再發布站點。",
  "netDomainTitle": "域名",
  "netDomainDesc": "主要域名與別名；儲存後可一併寫入 Nginx 管理設定",
  "netPrimaryDomain": "主要域名",
  "netPrimaryHint": "訪客用來開啟網站的域名，例如 app.example.com",
  "netAliases": "別名",
  "netAliasesHint": "每行一個，例如 www 或 blog 子域名",
  "netNeedPrimary": "請先填寫主要域名",
  "netHttpsTitle": "HTTPS 與整站重新導向",
  "netHttpsDesc": "儲存後請發布 Nginx。整站 301 會蓋過 proxy／PHP／static 內容",
  "netForceHttps": "強制使用 HTTPS",
  "netForceHttpsDesc": "HTTP → HTTPS（301）；需已有 SSL 憑證並用 SSL 發布",
  "netHsts": "啟用 HSTS",
  "netHstsDesc": "瀏覽器記住只走 HTTPS（建議在強制 HTTPS 後開啟）",
  "netHstsNeedHttps": "請先啟用強制 HTTPS",
  "netRedirectUrl": "整站重新導向網址",
  "netRedirectHint": "可留空。填寫後整站 301 到此網址（例如搬站／apex→www）",
  "netBasicAuthTitle": "HTTP 基本認證（瀏覽器登入保護）",
  "netBasicAuthDesc": "發布時寫入 htpasswd；用戶名留空 = 關閉。密碼留空 = 沿用已存密碼",
  "netAuthUserHint": "留空關閉認證",
  "netAuthPassHint": "首次設定必填；之後不改可留空",
  "netAuthPassSet": "設定或更新密碼",
  "netCacheNote": "靜態／PHP 靜態資源預設 Cache-Control 7d；清除 清主機 nginx cache 目錄（需 系統變更權限）",
  "netPurgeOk": "已嘗試 清除 cache",
  "netPurgeFailed": "清除 失敗",
  "netDocrootTitle": "網站目錄（docroot）",
  "netDocrootDesc": "相對專案 主目錄；發布 Nginx 時會用此路徑作為 管理員（預設 app/public）",
  "netDocrootLabel": "文件根目錄",
  "netDocrootFull": "完整路徑：{{path}}",
  "netDocrootCustom": "自訂相對路徑…",
  "netAdvancedTitle": "進階與發布",
  "netAdvancedDesc": "綁定 IP、發布到系統 Nginx",
  "netCollapseBind": "收起綁定 IP",
  "netExpandBind": "展開綁定 IP",
  "netBindIp": "綁定 IP",
  "netBindHint": "留空 = 聽全部網卡",
  "netBindPh": "留空 = 聽全部；可填綁定 IP",
  "netNeedDomainSave": "請先填寫並儲存主要域名",
  "ovUsed": "已用",
  "ovQuota": "配額",
  "ovQuotaUnset": "未設",
  "ovQuotaStatus": "配額狀態",
  "ovOverQuota": "超額",
  "ovQuotaOk": "正常",
  "ovDocroot": "文件根目錄",
  "ovAccessSample": "Access 樣本",
  "ovLines": "{{count}} 行",
  "ovDailyDays": "日統計天數",
  "ovDailyTitle": "訪問日統計（最多 60 日）",
  "ovDailyDesc": "由 access 日誌 樣本滾動記錄",
  "ovQuickTitle": "站點快捷操作",
  "ovQuickDesc": "發布與備份（主部署請用頁頂按鈕或「部署」分頁）",
  "ovNeedNetworkDomain": "請先到「網絡」分頁設定域名",
  "ovPublishNginx": "發布 Nginx",
  "ovPublishSsl": "發布 Nginx + SSL",
  "ovBackupProject": "備份本專案",
  "ovOpenFiles": "開啟專案檔案",
  "ovNoDomainHint": "未設定域名 — 請到「網絡」分頁設定後再發布站點。",
  "ovPublishNote": "發布會寫入管理設定；真正 重新載入 系統 Nginx 需系統變更權限。",
  "ovStatic": "靜態",
  "ovAliases": "別名",
  "ovForceOn": "強制",
  "ovForceOff": "不強制",
  "advFtpCreated": "FTP {{user}} 已建立（草稿，需到 FTPS 頁套用）",
  "advCreateFailed": "建立失敗",
  "advFtpFailed": "FTP 建立失敗",
  "advMaintTitle": "維護操作",
  "advMaintDesc": "備份、暫停／恢復、選用工具",
  "advBackupProject": "備份本專案",
  "advOneClickWp": "一鍵 WordPress（下載+設定）",
  "advSuspendedHint": "暫停中：進程已停、訪客會收到 503。",
  "advSuspendHint": "暫停會停止進程並將站點改為 503 維護頁。",
  "advFtpTitle": "專案 FTP（路徑 Jail）",
  "advFtpDesc": "帳戶限制在專案 app 目錄；建立後請到 FTPS 服務頁套用",
  "advFtpUserHint": "可留空，系統自動產生",
  "advFtpPassHint": "至少 8 個字元",
  "advDangerTitle": "危險區域",
  "advDangerDesc": "刪除專案無法從介面復原，請確認已備份。",
  "advDelete": "刪除專案",
  "deployPyHint": "預設 venv + pip；ASGI 用 uvicorn，Django 用 gunicorn。",
  "deployGoHint": "預設：go 建置 -o app . 後啟動 ./app；可略過建置若二進位已存在。",
  "deployRustHint": "預設：cargo 建置 --release 後啟動 目標/release/{crate}；可略過建置。",
  "deployNodeHint": "依 節點 啟動行程（entry 預設 伺服器.js）；生產環境建議 系統服務。",
  "deployDefaultHint": "依 運行時 啟動；套用後才對外。",
  "deployOsStep": "獨立 Linux 用戶 + /home/ysk-server-{專案識別碼}（資源分頁可建立）",
  "deployPyReady": "Python 執行環境已就緒",
  "deployPipNet": "有 requirements.txt 時需外網 pip",
  "deployCheckPort": "部署後檢查埠與 /health",
  "deployPublishProxy": "發布 Nginx 反代",
  "deployToolchainReady": "{{runtime}} toolchain 已就緒",
  "deployFirstBuild": "首次部署會 建置（可能較久）",
  "deployNeedBinary": "建置 成功後才有可執行檔",
  "deployPhpFpmOk": "PHP-FPM 版本正確",
  "deployPhpPool": "部署 PHP／套用 程序池",
  "deployNginxSsl": "發布 Nginx + 可選 SSL",
  "deployPublicContent": "確認 public/ 有內容",
  "deployNetPublish": "到「網絡」發布 Nginx",
  "deployConfirmToolchain": "確認執行環境頁已安裝對應 toolchain（或主機已有）",
  "deployConfirmCode": "確認 app/ 內有程式碼（範本或 Git）",
  "deployPressDeploy": "按「部署」啟動；成功後到「網絡」發布 Nginx",
  "deployVersionSaved": "已儲存 {{runtime}} 版本 {{version}}（部署時會用此版本）",
  "deployVersionSaveFailed": "儲存 運行時 版本失敗",
  "deployInstallingToolchain": "正在安裝／確認 toolchain…",
  "deployToolchainIncomplete": "Toolchain 安裝未完成（權限或網絡）；可改手動到執行環境頁",
  "deployToolchainDone": "Toolchain 步驟完成，開始部署…",
  "deployToolchainFailed": "安裝 toolchain 失敗",
  "deployChecklistTitle": "建立完成 — 部署檢查清單",
  "deployChecklistDesc": "{{runtime}} 專案骨架已就緒；完成下列步驟才會對外服務",
  "deploySectionTitle": "{{runtime}} 部署",
  "deploySectionDesc": "依 {{runtime}} 啟動行程（埠／系統服務 或 pidfile）",
  "deployPhpVersion": "PHP 版本",
  "deployPhpVersionHint": "本站使用的 PHP 版本（需主機已安裝對應 FPM）",
  "deployRuntimeVersion": "{{runtime}} 版本",
  "deployRuntimeVersionHint": "寫入專案後部署會用此版本；安裝請到執行環境頁",
  "deployRuntimeVersionCreateHint": "建立時寫入；部署時參考",
  "deployRuntimeVersionGeneric": "運行時 版本",
  "deployEntry": "啟動 entry",
  "deployEntryHint": "可留空用預設（{{hint}}）；會同步到伺服器",
  "deploySkipBuild": "略過建置",
  "deploySkipBuildHint": "已有 venv／二進位時可勾選，加快重啟（會記住本機偏好）",
  "deployPort": "· 埠 {{port}}",
  "deployFpmApplied": "已套用 PHP-FPM 程序池",
  "deployFpmIncomplete": "FPM 未完成",
  "deployFpmNote": "會寫入站點／程序池 設定；真正 重新載入 需系統變更權限。",
  "deployBuildNote": "建置／啟動失敗會在操作結果顯示原因，不會假裝成功。entry 會寫入伺服器；略過建置另存本機偏好。",
  "deployPhpIniTitle": "專案 php.ini 覆寫",
  "deployPhpIniDesc": "只填要改的鍵；空白＝沿用全域（執行環境 → PHP → php.ini）。部署／套用 FPM 時寫入 php_admin_*",
  "deployPhpIniExample": "例如 256M；留空用全域",
  "deployGlobal": "全域",
  "deployCustom": "自訂",
  "deployOff": "關",
  "deployOnCareful": "開 · 慎",
  "deployPhpIniSaved": "已儲存專案 php.ini 覆寫；請再部署或套用 FPM",
  "deployHistory": "部署歷史（{{count}}）",
  "deployHistoryDesc": "來自操作稽核；newest first",
  "deployGitUrlHint": "HTTPS 或 git@host:org/repo.git",
  "deployEnvHint": "每行一項：名稱=值；# 開頭為註解",
  "resume": "恢復專案",
  "suspend": "暫停專案",
  "goFtpsApply": "前往 FTPS 服務套用",
  "toolchainNote": "安裝 toolchain ≠ 專案已上線；部署成功 ≠ Nginx 已對外（需在「網絡」發布）。",
  "installToolchainDeploy": "安裝 toolchain 並部署",
  "deployOnly": "僅部署",
  "openRuntime": "開啟 {{runtime}} 執行環境",
  "later": "稍後再說",
  "installToolchainDeployShort": "裝 toolchain 並部署",
  "runtimeEnv": "{{runtime}} 環境",
  "applyFpmPool": "套用 FPM 程序池",
  "staticNginxHint": "靜態站以「發布 Nginx」為主 — 請到「網絡」或總覽快捷操作。",
  "fullIniLink": "完整目錄與 opcache／工作階段 等請到",
  "phpIniLink": "PHP 執行環境 → php.ini",
  "savePhpIniOverride": "儲存 php.ini 覆寫",
  "scaffoldNote": "若 app/ 為 YSK 範本佔位（含 .ysk-scaffold），會先清除再 clone；已有自訂內容會拒絕覆寫。",
  "saveOnly": "只儲存",
  "savePublishNginx": "儲存並發布 Nginx",
  "needDomainToPublish": "填寫主要域名後才可發布站點。",
  "savePublish": "儲存並發布",
  "saveAuth": "儲存認證",
  "cacheZoneNote": "完整 FastCGI／proxy_cache zone 需主機 nginx.設定檔 先定義 keys_zone；面板提供 best-effort 清除。",
  "purgeNginxCache": "清除 Nginx cache",
  "nginxManageFile": "Nginx 管理檔：",
  "publishRuntimeNote": "發布會依 運行時 產生 proxy／PHP-FPM／static 設定檔（含認證、導向與 docroot）",
  "publishStored": "用已存設定發布",
  "publishStoredSsl": "用已存設定 + SSL",
  "publishNote": "「發布」寫入管理 設定檔；同步到 /etc/nginx 並 重新載入 需系統變更權限。",
  "hitsFiles": "內容命中 {{count}} 個檔 — 點檔名可開尾端（含關鍵字過濾）",
  "logFilesCount": "日誌檔 {{count}}",
  "defaultScanNote": "預設永遠掃描 日誌/ 與 日誌/。額外目錄只收入檔名像 *.日誌 / *.out / *.err 的檔。",
  "opsOk": "{{label}}完成{{url}}",
  "opsOkWithNote": "{{label}}完成：{{note}}{{url}}",
  "opsFail": "{{label}}失敗：{{reason}}",
  "railPython": "Python 行程",
  "railGo": "Go 行程",
  "railRust": "Rust 行程",
  "railNode": "節點 行程",
  "runtimeName": {
    "php": "PHP",
    "node": "Node.js",
    "static": "靜態",
    "python": "Python",
    "go": "去",
    "rust": "Rust",
    "java": "Java",
    "kotlin": "Kotlin",
    "bun": "包子"
  },
  "netCacheTitle": "快取",
  "logsDeepAccess": "日誌中心 · access",
  "logsDeepError": "日誌中心 · error",
  "logsDeepNginxUnit": "Nginx 服務日誌",
  "logsPresetAccess": "篩選 access.log",
  "logsPresetError": "篩選 error.log",
  "railJava": "Java 進程",
  "railKotlin": "Kotlin 進程",
  "railBun": "Bun 進程",
  "deployProcessManager": "進程管理",
  "deployProcessManagerSystemd": "systemd（推薦）",
  "deployProcessManagerPm2": "PM2",
  "proc_restart": "重啟",
  "proc_stop": "停止",
  "proc_reload": "重新載入",
  "procControlsHint": "進程控制（{{manager}}）",
  "procActionOk": "{{action}} 成功 · {{notes}}",
  "procActionFail": "{{action}} 失敗 · {{notes}}",
  "procActionFailShort": "進程操作失敗",
  "procMissingUser": "專案無 Linux 用戶，無法操作 PM2",
  "deploySystemdHint": "生產預設：unit ysk-project-*.service、開機自啟、cgroup 限額跟專案資源。",
  "deployPm2Hint": "用 pm2 start ecosystem（需已裝 PM2 plugin）。進程見「執行環境 → 進程」PM2 表。部署前會停舊 runner，避免搶埠。",
  "deleteDialogTitle": "永久刪除專案",
  "deletePermanent": "永久刪除",
  "deleteRemoveFiles": "刪除磁碟 home 與 Linux 用戶",
  "deleteTypeName": "輸入專案名稱以確認",
  "deletedOk": "專案已刪除",
  "sslRequiredFirst": "尚未有此網域的 SSL 證書。請先到「SSL 證書」申請／上載，再按發佈 + SSL。",
  "sslGateHint": "SSL 相關按鈕已鎖定：請先到",
  "sslGateHint2": "為網域申請／上載證書後再發佈 + SSL。",
  "netPublishPrimary": "基本",
  "netPublishSsl": "HTTPS/SSL",
  "netPublishMaint": "維護",
  "sslNeedDomain": "請先填寫網域，才能發佈 Nginx / SSL。",
  "createTemplateMissing": "未載入 {{v0}} 範本；請重新整理或選「— 無 —」空白專案。",
  "deleteDialogDesc": "將銷毀「{{name}}」。此操作無法還原。",
  "deleteWillStop": "停止 systemd / PM2 / 本機進程",
  "deleteWillWeb": "移除 Nginx conf、PHP-FPM pool、Apache vhost（如有）",
  "deleteWillOs": "刪除 Linux 用戶與 home 目錄（安全路徑）",
  "deleteKeepOs": "保留 home 與 Linux 用戶（僅面板移除）",
  "deleteWillDb": "從控制面資料庫移除專案",
  "deleteRemoveFilesDesc": "取消勾選則只從面板移除，檔案與系統用戶保留",
  "deleteTypeNameHint": "請輸入「{{name}}」",
  "deleteDnsWarn": "共享 DNS zone / 郵箱 domain 不會自動刪除。",
  "manageInNginx": "在 Nginx 管理",
  "advFtpHomeApp": "網站 app 目錄",
  "advFtpHomeRoot": "專案家目錄（全部）",
  "advFtpManage": "開啟 FTP 頁",
  "resShell": "登入 shell",
  "resSaveHint": "「儲存並套用」會改主機。「僅存控制面」只記表單。「再套用」用已存值再寫入系統。",
  "resBashConfirmTitle": "允許互動式 bash？",
  "resBashConfirmDesc": "這會讓專案用戶有互動登入 shell。只在需要以該用戶 SSH 或終端機時才確認。",
  "createGitHint": "可選。會記在專案；到部署分頁再 clone（建立時不會 clone）。",
  "gitTokenLaterHint": "HTTPS token 與 clone depth 請在建立後於部署分頁設定。",
  "gitBranch": "分支",
  "gitBranchHint": "從遠端揀分支或 tag。",
  "gitBranchAfterUrl": "請先填寫 Git 網址。留空則使用遠端預設分支。",
  "gitLastRef": "上次同步：{{branch}} @ {{commit}}",
  "gitConfirmTitle": "要 clone 到此專案？",
  "gitConfirmBody": "若 app/ 仍是 Hello World 佔位會先清除再 clone。非 YSK 範本的自訂檔案會拒絕覆寫。",
  "gitConfirmRemoteBody": "會把 origin 改為新網址再 pull。歷史無關則失敗；不會清除自訂檔案。",
  "runtimeActual": "實際 binary {{path}}",
  "runtimeFallback": "所選 {{version}} 並未安裝。行程實際使用 {{path}}。",
  "gitSync": "同步",
  "gitFetch": "抓取（fetch）",
  "gitCheckout": "切換分支（checkout）",
  "gitReset": "重設到遠端",
  "gitResetNeedConfirm": "需確認 — 會捨棄本機提交",
  "gitDeepen": "抓完整歷史",
  "gitLogTitle": "最近 commit",
  "gitDirtyTitle": "本機改動已阻止 pull",
  "gitDirtyBody": "有 {{count}} 個檔與 Git 不同（Files 或應用改過）。請丟棄或取消。",
  "gitDiscard": "丟棄本機檔",
  "gitOpenFiles": "在 Files 開啟",
  "gitNotCloned": "尚未 clone",
  "gitClean": "乾淨",
  "gitDirty": "有改動",
  "gitBehind": "落後 {{count}}",
  "gitAhead": "超前 {{count}}",
  "gitDetached": "已釘選",
  "gitShallow": "淺層",
  "gitMissing": "沒有 git",
  "gitResetConfirmTitle": "要 hard reset 到遠端？",
  "gitResetConfirmBody": "會丟棄本機 Git 歷史及未追蹤檔（保留 .env），再用控制面資料還原 .env。",
  "gitHeads": "遠端分支",
  "gitToken": "HTTPS 令牌",
  "gitTokenHint": "加密存放。不會寫入 remote URL。",
  "gitTokenPlaceholder": "ghp_… 或 glpat-…",
  "gitTokenSet": "已設 token",
  "gitSaveToken": "儲存 token",
  "gitClearToken": "清除 token",
  "gitDeployKey": "部署公鑰",
  "gitDeployKeyHint": "請以唯讀 deploy key 加到 Git 主機。",
  "gitDeployKeyOn": "部署金鑰",
  "gitMakeKey": "建立 deploy key",
  "gitCopyPub": "複製 public key",
  "gitClearKey": "清除 deploy key",
  "gitKeyCopied": "已複製 public key",
  "gitPinHost": "釘選 host key",
  "gitPinHostBody": "尚未釘選 {{host}}。請核對 fingerprint，再釘選後才用 SSH clone。",
  "gitHostUnpinned": "未釘選 host key",
  "gitHookTitle": "推鉤",
  "gitHookHint": "自行把 URL 貼到 GitHub／Gitea／GitLab（只收 push）。不是 Slack。",
  "gitHookOn": "已開",
  "gitHookOff": "已關",
  "gitHookEnable": "開啟",
  "gitHookRotate": "更換 secret",
  "gitHookDisable": "關閉",
  "gitHookSecretOnce": "請立即複製此 secret——之後不會再顯示。",
  "gitHookCopyUrl": "複製",
  "gitHookCopySecret": "複製 secret",
  "gitHookCopied": "已複製",
  "gitHookSetup": "Payload URL 用上方網址。Content type：application/json。事件只選 push。Secret 用啟用時顯示的值。",
  "gitHookGithub": "Settings → Webhooks → Add webhook。Content type：application/json。Events：Just the push event。GitHub.com 需要 HTTPS。",
  "gitHookGitea": "Settings → Webhooks → Add Webhook → Gitea。方法 POST。事件：Push。",
  "gitHookGitlab": "Settings → Webhooks。Trigger：Push events。Secret token 填 hook secret（X-Gitlab-Token）。",
  "gitHookHonesty": "主機 unit 需 YSK_EXECUTE=1，否則 hook 只回計劃。",
  "gitHookSkipOther": "其他分支會被忽略。",
  "gitAuthHttps": "HTTPS 令牌",
  "gitAuthSsh": "SSH 部署金鑰",
  "gitLoadRefs": "載入分支",
  "gitRefDefault": "遠端預設",
  "gitRefBranches": "分支",
  "gitRefTags": "標籤",
  "gitRefOther": "其他 ref…",
  "gitRefCustom": "Commit 或 ref",
  "gitRefsNeedUrl": "請先填網址。",
  "gitRefsNeedAuth": "請先儲存 token 或 deploy key，再載入分支。",
  "gitRefsHint": "來自遠端清單，請選擇。",
  "gitHookSetupToggle": "如何貼到 Git 平台",
  "gitHookOneLiner": "HMAC 或 X-YSK-Git-Hook。只同步本專案 ref。",
  "gitHookExecuteHint": "真正 clone／部署需 YSK_EXECUTE=1。",
  "gitShowKey": "顯示金鑰",
  "gitHideKey": "隱藏",
  "gitBehindShort": "↓{{計數}}",
  "gitAheadShort": "↑{{計數}}",
  "gitDirtyShort": "有改動 · {{count}}",
  "gitFilesLink": "文件",
  "netForceHttpsOn": "發佈邊緣後，HTTP 會跳轉到 HTTPS。",
  "netForceHttpsOff": "未儲存強制跳轉。",
  "netBoundCert": "已綁定憑證",
  "netBoundCertExpiry": "到期 {{at}}",
  "netNoBoundCert": "此主機名磁碟上沒有憑證",
  "netForceHttpsNeedCert": "強制 HTTPS 前，請先在 /ssl 為此域名簽發憑證。",
  "netHttpsLiveNotForced": "已有邊緣設定檔，HTTPS 可能已生效。此項只控制是否強制 HTTP→HTTPS。",
  "gitSyncBlockedDirty": "有本機改動時無法同步。請先檢視 diff，或以重設丟棄後再同步。",
  "gitViewDiff": "檢視 diff",
  "nameInvalid": "請用小寫名稱：以英文字母開頭，其後可為字母、數字或連字號（最長 31 字）。",
  "deployVersionMissing": "此主機未安裝 Node {{version}}。請改選已安裝的版本，或先安裝此版本。",
  "deployUsedBinary": "本次部署使用 {{path}}"
}
