{
  "title": "项目",
  "subtitle": "",
  "create": "创建项目",
  "createHint": "创建后到详情部署",
  "empty": "尚未创建项目",
  "emptyHint": "按「创建项目」开始",
  "emptyFilter": "没有符合的项目",
  "emptyFilterHint": "清除搜索或筛选",
  "name": "名称",
  "domain": "域名（选填）",
  "detail": "项目详情",
  "deploy": "部署",
  "deployPhp": "部署 PHP",
  "stop": "停止",
  "health": "健康检查",
  "publishNginx": "发布 Nginx",
  "publishNginxSsl": "发布 Nginx + SSL",
  "opsResult": "操作结果",
  "runtime": "运行时",
  "template": "範本（选填）",
  "templateNone": "— 无 —",
  "searchPlaceholder": "搜索名称、域名或 ID…",
  "listDesc": "管理该主机上的站点。",
  "filterAll": "全部 runtime",
  "statTotal": "全部",
  "statRunning": "运行中",
  "statDegraded": "降级",
  "statUnhealthy": "異常",
  "statStopped": "停止 / 就緒",
  "statStoppedOnly": "已停止",
  "statReadyOnly": "准备好",
  "statPendingOs": "待 OS",
  "status": {
    "failed": "失败",
    "failedHint": "部署或健康检查失败 — 请查看日志",
    "unhealthy": "異常",
    "unhealthyHint": "行程仍在但健康检查失败",
    "pendingOs": "待创建系统用户",
    "pendingOsHint": "系统用户尚未创建",
    "degraded": "运行中（降级）",
    "degradedHint": "行程已启动，但非完整生产模式（例如非 root / 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／部署」启动 runtime，或到「部署」分页用 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 站点／pool，并依权限应用到系统",
  "sectionStaticDeploy": "静态内容",
  "sectionStaticDeployDesc": "静态站以文件 + Nginx 为主，无 Node 行程",
  "staticDeployHint": "请用 Git 拉取内容，再到「网絡」发布 Nginx。",
  "noDomain": "未设置域名",
  "lastDeploy": "上次部署",
  "neverDeployed": "尚未部署",
  "created": "已创建 {{name}}",
  "backToList": "返回项目列表",
  "openUrl": "开启网站",
  "openUrlNeedDomain": "首先设置一个域名 - 不要在浏览器中打开 127.0.0.1",
  "needOsUser": "首先在“隔离”选项卡上创建系统用户",
  "goIsolation": "前往隔离分页",
  "homeMissing": "主目录不存在",
  "homeMissingHint": "与迁移盘点同一探测 — 请到隔离分页建立系统用户",
  "stopTitle": "停止该项目（systemd 单元和公共站点）",
  "deployTitle": "部署此项目",
  "httpStatsHint": "来自该项目的访问日志（最后一个示例）",
  "httpStatsNone": "尚无项目访问日志",
  "notFound": "找不到此项目",
  "home": "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": "Runtime 部署",
  "sectionRuntimeDeployDesc": "依项目 runtime 启动行程（Node / PHP）",
  "sectionGit": "Git 部署",
  "sectionGitDesc": "从 Git 拉取程式码并重新部署",
  "sectionEnv": "环境变数",
  "sectionEnvDesc": "以 KEY=value 写入项目 .env",
  "gitUrl": "git 网址",
  "gitDeploy": "Git 部署",
  "envFile": "环境档（.env）",
  "saveEnv": "保存环境变数",
  "sectionNginx": "Nginx 与 SSL",
  "sectionNginxDesc": "写入并应用网站设置",
  "domainHint": "建议先在创建时填域名，方便 Publish",
  "sectionQuota": "磁碟配额",
  "sectionQuotaDesc": "限制项目 home 可用空间（MiB）",
  "sectionLimits": "CPU / 内存",
  "sectionLimitsDesc": "systemd 资源限制；需重新 Deploy 才应用 unit",
  "quotaMb": "配额（MiB）",
  "memoryMax": "最大内存",
  "cpuQuota": "CPU 配额 %",
  "setQuota": "设置配额",
  "setResources": "保存资源限制",
  "sectionLogs": "应用日志",
  "sectionLogsDesc": "读取项目目录下最近 log 档",
  "viewLogs": "加载日志",
  "logsEmpty": "尚未加载日志",
  "logsNoFiles": "（尚无 log 档 — 请先 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": "无法创建系统用户：需要 YSK_EXECUTE + root。{{detail}}",
  "osUserIncomplete": "系统用户创建未完成",
  "saveLogDirsFailed": "保存 log 目录失败",
  "createName": "项目名称",
  "noPathSepHint": "名稱不可包含 / 或 \\。",
  "createRuntime": "执行环境",
  "createRuntimeHint": "之后可在详情調整部署方式",
  "createVersion": "版本",
  "createVersionHint": "写入项目 runtime_version；部署／FPM 会參考此版本",
  "createVersionAria": "执行环境版本",
  "createPrimaryDomain": "主要域名",
  "createPrimaryDomainHint": "可稍后再填",
  "createAliases": "别名",
  "createAliasesHint": "逗号或換行分隔",
  "createTemplate": "範本",
  "createTemplateHint": "每个执行环境只有一个 Hello World! demo；选范本会带入对应 runtime",
  "createTemplateNote": "範本只写入项目目录骨架；需再「部署」才会 build／启动。",
  "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": "写入 home/.ssh",
  "sshOpenWorkspace": "开启 SSH 工作台",
  "sshManageLoginKeys": "管理登录公钥",
  "logsSectionDesc": "扫描 logs/、log/ 与额外目录；可按档名／内容关键字搜索",
  "logsNameSearch": "档名搜索",
  "logsNameSearchHint": "匹配相对路径，例如 error、app.out",
  "logsContentKw": "内容关键字",
  "logsContentKwHint": "在各档尾端搜索（不系全档全文）",
  "logsSearch": "搜索",
  "logsRescan": "重新扫描",
  "logsRefreshFile": "刷新此档",
  "logsCopy": "复制内容",
  "logsDownloadTail": "下载尾端",
  "logsCenter": "日志中心",
  "logsHitsTitle": "内容命中 {{count}} 个档 — 点档名可开尾端（含关键字过滤）",
  "logsLinesHit": "{{count}} 行命中",
  "logsFileCount": "日志档 {{count}}",
  "logsNameFilter": "（档名含「{{q}}」）",
  "logsScanning": "正在扫描 logs…",
  "logsNoneYet": "尚无日志档 — 部署或跑过服务后会出现；亦可设置额外目录。",
  "logsNoContent": "尚无内容",
  "logsRelated": "相关来源",
  "logsRelatedDesc": "journal / nginx / PHP-FPM（详见日志中心）",
  "logsAvailable": "可用",
  "logsMissing": "未见",
  "logsOpenInCenter": "在日志中心开启",
  "logsExtraDirs": "额外 log 目录",
  "logsExtraDirsDesc": "相对项目 home 的路径（除默认 logs/、log/ 外）",
  "logsDirList": "目录列表",
  "logsDirListHint": "一行一个；只允许 home 内相对路径",
  "logsReset": "重设",
  "logsSaveScan": "保存并扫描",
  "logsDefaultNote": "默认永远扫描 logs/ 与 log/。额外目录只收入档名像 *.log / *.out / *.err 的档。",
  "resOsTitle": "系统用户隔離",
  "resOsDesc": "每个项目獨立 Linux 用户；意图 home：/home/ysk-server-{项目 id}",
  "resLinuxUser": "Linux 用户",
  "resOsIsolation": "OS 隔離",
  "resOsReady": "已就绪",
  "resOsNotCreated": "未创建（需系统管理员）",
  "resHomeDir": "Home 目录",
  "resCanonical": "意图路径",
  "resUserMissing": "用户不存在",
  "resShellLive": "实时 shell / 锁定",
  "resLocked": "已锁定",
  "resUnlocked": "未锁定",
  "resHomeMode": "home 模式",
  "resHomeExists": "存在 · mode {{mode}}",
  "resHomeMissing": "不存在",
  "resIsolationOn": "隔離中",
  "resIsolationPending": "待隔離",
  "resOsHint": "行程以项目用户执行。创建系统用户需 YSK_EXECUTE + root；否則为 degraded。",
  "resProvisionUser": "创建／修复系统用户",
  "resRefreshStatus": "刷新状态",
  "resFixHome": "修复 home 擁有权",
  "resMigrateHome": "迁移到 /home/ysk-server-…",
  "resQuotaDesc": "软配额（deploy 前 du 擋）+ 有 setquota 时可硬强制",
  "resQuotaHint": "例如 1024 = 1 GiB",
  "resSetSoftQuota": "保存软配额",
  "resLimitsTitle": "行程与账号限制",
  "resLimitsDesc": "systemd 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": "「保存并应用」会写 DB 并嘗試 usermod / setquota / systemctl set-property。无权限时只写控制面。",
  "resLimitsHintSystemd": "「保存并应用」会写入控制面，并在有权限时应用 OS／systemd 限额。",
  "resLimitsHintPm2": "「保存并应用」会写入控制面并更新 PM2 内存上限。",
  "resSaveApply": "保存并应用限制到 OS",
  "resSaveControlOnly": "仅存 Mem/CPU 到控制面",
  "resReapply": "再应用一次（不改表单）",
  "resMigrateDone": "迁移完成",
  "resMigrateIncomplete": "迁移未完成",
  "resMigrateTitle": "迁移系统用户 home？",
  "resMigrateDesc": "将迁移到 /home/ysk-server-{id} 并创建／修复系统用户。需 root。",
  "resMigrate": "迁移",
  "resWrittenOnly": "已写入控制面；OS 未应用（需 root）。{{notes}}",
  "resAppliedOs": "限制已应用到 OS。{{notes}}",
  "resSaved": "已保存",
  "resIncomplete": "未完成",
  "resApplyLimitsFailed": "应用限制失败",
  "resApplied": "已应用",
  "resApplyFailed": "应用失败",
  "resChownOk": "chown 完成",
  "resChownFailed": "chown 失败",
  "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 发布",
  "netForceHttpsOn": "发布边缘后，HTTP 将重定向到 HTTPS。",
  "netForceHttpsOff": "不存储强制重定向。",
  "netBoundCert": "已绑定证书",
  "netBoundCertExpiry": "到期 {{at}}",
  "netNoBoundCert": "此主机名磁盘上没有证书",
  "netForceHttpsNeedCert": "强制 HTTPS 前，请先在 /ssl 为此域名签发证书。",
  "netHttpsLiveNotForced": "存在边缘文件； HTTPS 可能已经可以工作。此框仅强制 HTTP→HTTPS。",
  "netHsts": "启用 HSTS",
  "netHstsDesc": "浏览器记住只走 HTTPS（建议在强制 HTTPS 后开启）",
  "netHstsNeedHttps": "请先启用强制 HTTPS",
  "netRedirectUrl": "整站重新导向网址",
  "netRedirectHint": "可留空。填写后整站 301 到此网址（例如搬站／apex→www）",
  "netBasicAuthTitle": "HTTP 基本认证（浏览器登录保护）",
  "netBasicAuthDesc": "发布时写入 htpasswd；用户名留空 = 关闭。密码留空 = 沿用已存密码",
  "netAuthUserHint": "留空关闭认证",
  "netAuthPassHint": "首次设置必填；之后不改可留空",
  "netAuthPassSet": "设置或更新密码",
  "netCacheNote": "静态／PHP 静态资源默认 Cache-Control 7d；purge 清主机 nginx cache 目录（需 YSK_EXECUTE）",
  "netPurgeOk": "已嘗試 purge cache",
  "netPurgeFailed": "purge 失败",
  "netDocrootTitle": "网站目录（docroot）",
  "netDocrootDesc": "相对项目 home；发布 Nginx 时会用此路径作为 root（默认 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 log 樣本滚动记录",
  "ovQuickTitle": "站点快捷操作",
  "ovQuickDesc": "发布与备份（主部署请用页頂按鈕或「部署」分页）",
  "ovNeedNetworkDomain": "请先到「网絡」分页设置域名",
  "ovPublishNginx": "发布 Nginx",
  "ovPublishSsl": "发布 Nginx + SSL",
  "ovBackupProject": "备份本项目",
  "ovOpenFiles": "开启项目文件",
  "ovNoDomainHint": "未设置域名 — 请到「网絡」分页设置后再发布站点。",
  "ovPublishNote": "发布会写入管理设置；真正 reload 系统 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 build -o app . 后启动 ./app；可跳过建置若二进位已存在。",
  "deployRustHint": "默认：cargo build --release 后启动 target/release/{crate}；可跳过建置。",
  "deployNodeHint": "依 Node 启动行程（entry 默认 server.js）；生产环境建议 systemd。",
  "deployDefaultHint": "依 runtime 启动；应用后才对外。",
  "deployOsStep": "獨立 Linux 用户 + /home/ysk-server-{项目 id}（资源分页可创建）",
  "deployPyReady": "Python 执行环境已就绪",
  "deployPipNet": "有 requirements.txt 时需外网 pip",
  "deployCheckPort": "部署后检查埠与 /health",
  "deployPublishProxy": "发布 Nginx 反代",
  "deployToolchainReady": "{{runtime}} toolchain 已就绪",
  "deployFirstBuild": "首次部署会 build（可能較久）",
  "deployNeedBinary": "build 成功后才有可执行档",
  "deployPhpFpmOk": "PHP-FPM 版本正确",
  "deployPhpPool": "部署 PHP／应用 pool",
  "deployNginxSsl": "发布 Nginx + 可选 SSL",
  "deployPublicContent": "确认 public/ 有内容",
  "deployNetPublish": "到「网絡」发布 Nginx",
  "deployConfirmToolchain": "确认执行环境页已安装对应 toolchain（或主机已有）",
  "deployConfirmCode": "确认 app/ 内有程式码（範本或 Git）",
  "deployPressDeploy": "按「部署」启动；成功后到「网絡」发布 Nginx",
  "deployVersionSaved": "已保存 {{runtime}} 版本 {{version}}（部署时会用此版本）",
  "deployVersionSaveFailed": "保存 runtime 版本失败",
  "deployInstallingToolchain": "正在安装／确认 toolchain…",
  "deployToolchainIncomplete": "Toolchain 安装未完成（权限或网路）；可改手动到执行环境页",
  "deployToolchainDone": "Toolchain 步骤完成，开始部署…",
  "deployToolchainFailed": "安装 toolchain 失败",
  "deployChecklistTitle": "创建完成 — 部署检查列表",
  "deployChecklistDesc": "{{runtime}} 项目骨架已就绪；完成下列步骤才会对外服务",
  "deploySectionTitle": "{{runtime}} 部署",
  "deploySectionDesc": "依 {{runtime}} 启动行程（埠／systemd 或 pidfile）",
  "deployPhpVersion": "PHP 版本",
  "deployPhpVersionHint": "本站使用的 PHP 版本（需主机已安装对应 FPM）",
  "deployRuntimeVersion": "{{runtime}} 版本",
  "deployRuntimeVersionHint": "写入项目后部署会用此版本；安装请到执行环境页",
  "deployRuntimeVersionCreateHint": "创建时写入；部署时參考",
  "deployRuntimeVersionGeneric": "Runtime 版本",
  "deployEntry": "启动 entry",
  "deployEntryHint": "可留空用默认（{{hint}}）；会同步到服务器",
  "deploySkipBuild": "跳过建置",
  "deploySkipBuildHint": "已有 venv／二进位时可勾选，加快重启（会记住本机偏好）",
  "deployPort": "· 埠 {{port}}",
  "deployFpmApplied": "已应用 PHP-FPM pool",
  "deployFpmIncomplete": "FPM 未完成",
  "deployFpmNote": "会写入站点／pool 设置；真正 reload 需系统变更权限。",
  "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 或 SSH 倉庫位址；同步后会依 runtime 自动 redeploy",
  "deployEnvHint": "每行 KEY=value；# 开头为註解",
  "resume": "恢复项目",
  "suspend": "暂停项目",
  "goFtpsApply": "前往 FTPS 服务应用",
  "toolchainNote": "安装 toolchain ≠ 项目已上线；部署成功 ≠ Nginx 已对外（需在「网络」发布）。",
  "installToolchainDeploy": "安装 toolchain 并部署",
  "deployOnly": "僅部署",
  "openRuntime": "开启 {{runtime}} 执行环境",
  "later": "稍后再说",
  "installToolchainDeployShort": "装 toolchain 并部署",
  "runtimeEnv": "{{runtime}} 环境",
  "applyFpmPool": "应用 FPM pool",
  "staticNginxHint": "静态站以「发布 Nginx」为主 — 请到「网络」或总览快捷操作。",
  "fullIniLink": "完整目录与 opcache／session 等请到",
  "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.conf 先定義 keys_zone；面板提供 best-effort 清除。",
  "purgeNginxCache": "清除 Nginx cache",
  "nginxManageFile": "Nginx 管理档：",
  "publishRuntimeNote": "发布会依 runtime 生成 proxy／PHP-FPM／static conf（含认证、导向与 docroot）",
  "publishStored": "用已存设置发布",
  "publishStoredSsl": "用已存设置 + SSL",
  "publishNote": "「发布」写入管理 conf；同步到 /etc/nginx 并 reload 需系统变更权限。",
  "hitsFiles": "内容命中 {{count}} 个档 — 点档名可开尾端（含关鍵字过滤）",
  "logFilesCount": "日志档 {{count}}",
  "defaultScanNote": "预设永远扫描 logs/ 与 log/。额外目录只收入档名像 *.log / *.out / *.err 的档。",
  "opsOk": "{{label}}完成{{url}}",
  "opsOkWithNote": "{{label}}完成：{{note}}{{url}}",
  "opsFail": "{{label}}失败：{{reason}}",
  "railPython": "Python 进程",
  "railGo": "Go 进程",
  "railRust": "Rust 进程",
  "railNode": "Node 进程",
  "runtimeName": {
    "php": "PHP",
    "node": "Node.js",
    "static": "静态",
    "python": "Python",
    "go": "去",
    "rust": "锈",
    "java": "爪哇",
    "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 令牌和克隆深度在创建后在项目“部署”选项卡上设置。",
  "gitBranch": "分支",
  "gitBranchHint": "分支或 tag。留空则用远端默认分支。首次 clone 为浅层（depth 1）。",
  "gitBranchAfterUrl": "请先填写 Git 网址。留空则使用远端默认分支。",
  "gitLastRef": "上次同步：{{branch}} @ {{commit}}",
  "gitConfirmTitle": "要 clone 到此专案？",
  "gitConfirmBody": "若 app/ 仍是 Hello World 占位会先清除再 clone。非 YSK 模板的自定义文件会拒绝覆盖。",
  "gitConfirmRemoteBody": "会把 origin 改为新网址再 pull。历史无关则失败；不会清除自定义文件。",
  "runtimeActual": "实际 binary {{path}}",
  "runtimeFallback": "所选 {{version}} 并未安装。进程实际使用 {{path}}。",
  "gitSync": "同步",
  "gitFetch": "拿来",
  "gitCheckout": "查看",
  "gitReset": "重置为远程",
  "gitResetNeedConfirm": "需确认 — 会丢弃本机提交",
  "gitDeepen": "获取完整历史记录",
  "gitLogTitle": "最近的提交",
  "gitDirtyTitle": "本地更改阻止拉动",
  "gitDirtyBody": "{{count}} 个文件与 Git（文件编辑或应用程序）不同。丢弃它们或中止。",
  "gitSyncBlockedDirty": "同步将被禁用，直到本地更改被丢弃（重置）或文件与 Git 匹配为止。",
  "gitViewDiff": "查看差异",
  "gitDiscard": "丢弃本地文件",
  "gitOpenFiles": "在文件中打开",
  "gitNotCloned": "未克隆",
  "gitClean": "干净的",
  "gitDirty": "肮脏的",
  "gitBehind": "落后于 {{count}}",
  "gitAhead": "领先 {{count}}",
  "gitDetached": "已固定",
  "gitShallow": "浅的",
  "gitMissing": "git 丢失",
  "gitResetConfirmTitle": "重置很难远程？",
  "gitResetConfirmBody": "这将丢弃本地 Git 历史记录和除 .env 之外的未跟踪文件，然后从控制平面恢复 .env。",
  "gitHeads": "远程分支机构",
  "gitToken": "HTTPS 令牌",
  "gitTokenHint": "Personal access token. Stored encrypted; never written into the remote URL.",
  "gitTokenPlaceholder": "ghp_... 或 glpat-...",
  "gitTokenSet": "令牌集",
  "gitSaveToken": "保存令牌",
  "gitClearToken": "清除令牌",
  "gitDeployKey": "部署公钥",
  "gitDeployKeyHint": "将其添加为 Git 主机上的只读部署密钥。",
  "gitDeployKeyOn": "部署密钥",
  "gitMakeKey": "创建部署密钥",
  "gitCopyPub": "复制公钥",
  "gitClearKey": "清除部署密钥",
  "gitKeyCopied": "公钥已复制",
  "gitPinHost": "固定主机密钥",
  "gitPinHostBody": "{{host}} 未固定。确认指纹，然后在 SSH 克隆之前进行固定。",
  "gitHostUnpinned": "主机密钥未固定",
  "gitHookTitle": "Inbound hook",
  "gitHookHint": "请自行把上方完整 POST URL 贴到 GitHub／Gitea／GitLab（只接收 push）。不是 Slack。密钥用 HMAC 或 X-YSK-Git-Hook。只会同步本项目已选定的 ref。",
  "gitHookOn": "Hook 已开",
  "gitHookOff": "Hook 已关",
  "gitHookEnable": "开启 hook",
  "gitHookRotate": "更换 secret",
  "gitHookDisable": "关闭 hook",
  "gitHookSecretOnce": "请立即复制此 secret——离开页面后不会再显示。",
  "gitHookCopyUrl": "复制 URL",
  "gitHookCopySecret": "复制 secret",
  "gitHookCopied": "已复制",
  "gitHookSetup": "请在 Git 平台自行新增 webhook：Payload URL 用上方完整网址；Content type 用 application/json；事件只选 push；Secret 用启用时显示的值。",
  "gitHookGithub": "GitHub：Settings → Webhooks → Add webhook。Content type 选 application/json。Events 选 Just the push event。GitHub.com 需要 HTTPS。",
  "gitHookGitea": "Gitea：Settings → Webhooks → Add Webhook → Gitea。方法 POST。事件选 Push。",
  "gitHookGitlab": "GitLab：Settings → Webhooks。Trigger 选 Push events。Secret token 填 hook secret（以 X-Gitlab-Token 传送）。",
  "gitHookHonesty": "主机 systemd 必须设 YSK_EXECUTE=1，hook 才会真正 clone／部署。否则只回计划结果。",
  "gitHookSkipOther": "其他分支的 push 会被忽略，只同步本项目的 ref。",
  "gitAuthHttps": "HTTPS 令牌",
  "gitAuthSsh": "SSH 部署密钥",
  "gitLoadRefs": "加载分支",
  "gitRefDefault": "远程默认",
  "gitRefBranches": "分支机构",
  "gitRefTags": "标签",
  "gitRefOther": "其他参考…",
  "gitRefCustom": "提交或参考",
  "gitRefsNeedUrl": "首先输入一个网址。",
  "gitRefsNeedAuth": "保存令牌或部署密钥，然后加载分支。",
  "gitRefsHint": "从远程加载。选择一个 — 不要打字。",
  "gitHookSetupToggle": "这个怎么粘贴",
  "gitHookOneLiner": "HMAC 或 X-YSK-Git-Hook。仅此项目的参考。",
  "gitHookExecuteHint": "需要 YSK_EXECUTE=1 才能克隆或部署。",
  "gitShowKey": "显示密钥",
  "gitHideKey": "隐藏",
  "gitBehindShort": "↓{{计数}}",
  "gitAheadShort": "↑{{计数}}",
  "gitDirtyShort": "肮脏 · {{count}}",
  "gitFilesLink": "文件",
  "nameInvalid": "请用小写名称：以英文字母开头，其后可为字母、数字或连字号（最长 31 字）。",
  "deployVersionMissing": "此主机未安装 Node {{version}}。请改选已安装的版本，或先安装此版本。",
  "deployUsedBinary": "本次部署使用 {{path}}"
}
