{
  "exportLoadFailed": "Failed to load export data",
  "dryRunDone": "Dry-run complete (system unchanged)",
  "rebuildDone": "Rebuild request finished — see ops result",
  "exportWritten": "Export written / managed conf listed",
  "rebuildFailed": "Rebuild failed",
  "hostFallback": "Host",
  "mem": "Memory",
  "diskPeak": "Disk peak",
  "exportRebuild": "Export / Rebuild",
  "dnsCerts": "DNS / certs",
  "editIdentity": "Edit identity",
  "power": "Power",
  "metrics": "Metrics",
  "writeExports": "Write export directory",
  "dryRunSync": "Dry-run sync",
  "hostConsole": "Host console",
  "loadingHost": "Loading host overview…",
  "identity": "Identity",
  "identityReadonly": "Read-only — needs YSK_EXECUTE + root to apply",
  "identityTools": "Set hostname and timezone via system tools",
  "hostnameHint": "System hostname",
  "writable": "Writable",
  "locked": "Locked",
  "hostname": "Hostname",
  "prettyName": "Pretty name",
  "optional": "Optional",
  "prettyPh": "Friendly display name",
  "timezone": "Timezone",
  "timezoneHint": "IANA zone from timedatectl (e.g. Asia/Hong_Kong). This is the host clock — cron and vsftpd local time follow it. Stored timestamps stay UTC.",
  "timezoneNow": "Host time now: {{time}} ({{tz}})",
  "timezoneBrowserDiff": "This host uses {{host}}; your browser uses {{browser}}. Changing timezone here changes the host clock, not the browser.",
  "timezoneSelect": "Select timezone",
  "notExported": "Not exported yet",
  "dns": "DNS",
  "updated": "Updated",
  "applyIdentity": "Apply identity",
  "identitySetHostname": "Hostname set to {{name}}",
  "identitySetPretty": "Pretty hostname set to {{name}}",
  "identityClearPretty": "Pretty hostname cleared",
  "identitySetTimezone": "Timezone set to {{tz}}",
  "panelSsl": "Panel SSL",
  "panelTls": {
    "title": "Panel HTTPS",
    "sub": "Control plane (ysk-server) serves TLS on the configured port; WebAuthn/Passkeys need HTTPS",
    "domain": "Panel domain",
    "domainHint": "Used for certificate issue/bind, e.g. {{host}}",
    "email": "Let’s Encrypt email",
    "status": "Status",
    "enabled": "TLS enabled in config",
    "disabled": "TLS off (HTTP)",
    "serving": "This connection: HTTPS",
    "servingHttp": "This connection: HTTP",
    "expires": "Certificate expires",
    "certPath": "Certificate path",
    "issueEnable": "Issue cert & enable HTTPS",
    "enableExisting": "Enable with existing cert",
    "disable": "Disable panel HTTPS",
    "disableNeedConfirm": "Needs confirmation — type DISABLE-HTTPS",
    "needDomain": "Enter hostname / domain first",
    "needFqdn": "Need a FQDN (example.com), not a bare hostname",
    "urlHint": "After restart open {{url}}",
    "certMissing": "TLS enabled but cert/key files missing",
    "restartToApply": "Restart ysk-server to apply HTTPS",
    "noConfig": "config.json not found (start with --config)",
    "usingExisting": "Using existing local certificate",
    "usingLe": "Using Let’s Encrypt live paths",
    "needCertFirst": "No certificate for {{domain}}; issue or upload first",
    "configWritten": "Panel TLS settings written",
    "disabledNote": "Panel TLS disabled",
    "certAlreadyPresent": "Certificate already present; skipped re-issue",
    "restartManual": "Restart manually: systemctl restart ysk-server",
    "restarted": "ysk-server restarted",
    "restartFailed": "Restart failed: {{detail}}",
    "firewallHint": "If reaching from the internet, allow the panel port (default 9287/tcp)",
    "restartNow": "Restart ysk-server immediately after",
    "restartNowHint": "Drops this session;",
    "restartConfirm": "Restart the panel service now? This connection may drop — reopen over HTTPS.",
    "manualRestart": "Restart manually, then open {{url}}",
    "reconnectHttps": "Service may have restarted. Reconnect at {{url}}.",
    "leStrategies": "Panel cert: try webroot → nginx certonly → standalone (no --redirect)",
    "leOk": "Let’s Encrypt certificate obtained for {{domain}}",
    "leFailed": "Certificate request failed: {{detail}}",
    "leHint": "Ensure DNS A points here and port 80 is reachable (or nginx serves the domain)",
    "openFirewall": "If public: allow panel port {{port}}/tcp (Firewall → open port → 9287 Panel)",
    "disableConfirmTitle": "Disable panel HTTPS?",
    "disableConfirmDesc": "The panel will serve HTTP. WebAuthn / Passkey will stop working until HTTPS is on again.",
    "disablePasskeyWarn": "Registered passkeys need HTTPS — they will fail on HTTP.",
    "listenPublic": "Panel is listening on a public address (0.0.0.0/::). Restrict with a firewall or bind to 127.0.0.1.",
    "bootstrapCert": "This is the self-signed bootstrap certificate — browsers will warn. Issue a trusted certificate for the panel domain.",
    "cliNoSocket": "CLI has no live HTTP socket; servingHttps is inferred from config and listen sockets (ss).",
    "listenHost": "Listen address",
    "currentHost": "This session",
    "replaceCert": "Replace with a trusted certificate"
  },
  "timeNtp": "Time & NTP",
  "clockStatus": "System clock status",
  "local": "Local",
  "utc": "UTC",
  "source": "Source",
  "ntpService": "NTP service",
  "ntpServiceActive": "Running",
  "ntpServiceInactive": "Stopped",
  "ntpServiceNa": "N/A",
  "ntpSync": "Clock sync",
  "ntpSyncedYes": "Synchronized",
  "ntpSyncedNo": "Not synchronized",
  "ntpSyncedUnknown": "Unknown",
  "ntpRequested": "NTP sync enable requested",
  "ntpFailed": "Failed to enable NTP",
  "enableNtp": "Enable NTP sync",
  "network": "Network",
  "networkSub": "Read-only · full netplan is not on this page",
  "noIp": "Could not read IPs",
  "storage": "Storage",
  "metricsDetail": "Metrics detail",
  "noDisk": "Could not read disks",
  "avail": "Avail {{v}}",
  "shortcuts": "Ops shortcuts",
  "shortcutsAria": "Ops shortcuts",
  "scServices": "Service matrix",
  "scServicesD": "unit lifecycle",
  "scUnit": "Control-plane unit",
  "scUnitD": "Panel systemd unit",
  "scReadiness": "Readiness",
  "scReadinessD": "Production gate",
  "scUpdates": "System updates",
  "scUpdatesD": "Packages / CVE",
  "scMetrics": "Host metrics",
  "scMetricsD": "Load alerts",
  "scLogs": "Log center",
  "scLogsD": "journal / files",
  "powerTitle": "Power (danger zone)",
  "powerWarn": "Reboot/poweroff interrupts all services and the panel. The panel cannot power the host on — needs physical access or hypervisor.",
  "unlocked": "Unlocked",
  "powerUnlock": "Unlock danger zone",
  "powerLock": "Lock danger zone",
  "noScheduledPower": "No reboot or poweroff is scheduled",
  "powerCaps": "Needs YSK_EXECUTE=1 and root. Now EXECUTE={{exec}}, root={{root}}.",
  "scheduledPower": "Scheduled poweroff/reboot detected",
  "cancelScheduleHint": ". Use “Cancel schedule” to withdraw.",
  "rebootHost": "Reboot host…",
  "poweroffHost": "Power off…",
  "cancelled": "Cancelled",
  "cancelFailed": "Cancel failed",
  "cancelSchedule": "Cancel schedule",
  "confirmStrings": "Confirm with REBOOT / POWEROFF. Default delay ~1 min for poweroff and reboot (shutdown +N). Written to audit.",
  "confirmReboot": "Confirm host reboot?",
  "confirmPoweroff": "Confirm power off?",
  "confirmRebootDesc": "All services and panel sessions will drop. Type REBOOT to confirm.",
  "confirmPoweroffDesc": "Host will power off; panel cannot remote power-on. Type POWEROFF to confirm.",
  "typeToUnlock": "Type {{need}} to unlock",
  "confirmRebootBtn": "Confirm reboot",
  "confirmPoweroffBtn": "Confirm power off",
  "sentDisconnect": "Sent — connection will drop",
  "powerFailed": "Power action failed",
  "exportExplain": "Export = panel DB summary JSON. Rebuild = managed conf → /etc/nginx/conf.d + reload. Sync needs root + EXECUTE.",
  "controlSummary": "Control-plane summary",
  "controlSummarySub": "Live DB snapshot · preview / download / write to server",
  "snapshotLoaded": "Summary loaded · {{at}}",
  "previewSummary": "Preview summary",
  "downloadedJson": "JSON downloaded to browser",
  "downloadJson": "Download JSON",
  "snapshotMeta": "Generated {{at}} · users {{users}} · packages {{packages}}",
  "previewHint": "Click “Preview summary” to load the control-plane snapshot.",
  "managedNotEtc": "dataDir/nginx/conf.d — not the same as applied under /etc",
  "nFiles": "{{count}} files",
  "noManaged": "No managed conf yet",
  "noManagedDesc": "Appears after publishing project Nginx",
  "readFailed": "Read failed",
  "preview": "Preview",
  "previewModalDesc": "Managed conf content (dataDir)",
  "prevPage": "Previous",
  "nextPage": "Next",
  "pageOf": "Page {{page}} / {{total}} · {{count}} files",
  "managedPager": "Managed conf pages",
  "syncToSystem": "Sync to system",
  "syncSub": "Copy to /etc/nginx/conf.d and reload — needs root + EXECUTE",
  "syncReload": "Sync + reload",
  "syncReloadNeedConfirm": "Needs confirmation — writes /etc/nginx/conf.d and reloads Nginx",
  "exportOnly": "Export only + list conf",
  "dryRun": "Dry-run",
  "dryRunNote": "Dry-run does not change the system.",
  "exportHistory": "Server export history",
  "exportHistorySub": "dataDir/exports · authenticated download",
  "noExports": "No server export files yet",
  "noExportsDesc": "Click “Write export directory” to create",
  "downloaded": "Downloaded {{name}}",
  "download": "Download",
  "syncConfirmTitle": "Sync Nginx to system?",
  "syncConfirmDesc": "Sync managed Nginx conf to /etc/nginx/conf",
  "uptime": "Uptime",
  "load1m": "Load 1m",
  "executeLabel": "System change",
  "rootLabel": "Superuser",
  "managedLabel": "Managed",
  "managedCount": "Managed",
  "exportsCount": "Exports",
  "managedNginxTitle": "Managed Nginx",
  "exportPath": "Export path",
  "mode": "Mode",
  "managedConf": "Managed conf",
  "dryRunFlag": "Dry-run",
  "timezoneSearch": "Filter timezones…",
  "resyncNtp": "Re-sync NTP",
  "storageSub": "Disk usage",
  "nginxLeftover": "Leftover",
  "nginxUnused": "Unused",
  "nginxLeftoverHint": "Stale public-files or leftover conf. Still included in sync until you remove or replace it.",
  "nginxUnusedHint": "Stock / catch-all conf (000-default). Still included in sync until you act.",
  "nginxRemoveLeftover": "Remove leftover",
  "nginxRemoveLeftoverTitle": "Remove leftover nginx conf?",
  "nginxRemoveLeftoverDesc": "Deletes {{name}} from the panel inventory. The live /etc/nginx copy is removed only with YSK_EXECUTE + root. 000-default is not leftover and cannot be deleted here.",
  "needExecuteRoot": "Needs YSK_EXECUTE + root"
}
