{
  "title": "Intelligent updates",
  "body": "",
  "risk": {
    "critical": "Critical",
    "high": "High",
    "medium": "Medium",
    "low": "Low"
  },
  "justNow": "Just now",
  "secAgo": "{{n}}s ago",
  "minAgo": "{{n}}m ago",
  "hourAgo": "{{n}}h ago",
  "highRiskN": "{{count}} high-risk",
  "panelUpdate": "Panel update available",
  "footerNewVersion": "New version {{version}}",
  "riskOk": "Risk manageable",
  "riskUnevaluated": "Not evaluated — run Scan + OSV",
  "pendingScan": "Awaiting scan",
  "packages": "Packages",
  "highRisk": "High risk",
  "needApproval": "Needs approval",
  "hasCve": "Has CVE",
  "panel": "Panel",
  "schedule": "Schedule",
  "reload": "Reload",
  "osvTitle": "Query OSV for top 12 suggested packages (needs network)",
  "scanOsv": "Scan + OSV",
  "cveNotChecked": "Not checked",
  "scanPkgs": "Scan packages",
  "tabInventory": "Package inventory",
  "tabSelf": "Panel self",
  "badgeUpdate": "Update",
  "tabSchedule": "Schedule",
  "tabPolicy": "Policy",
  "scanning": "Scanning…",
  "inventoryTitle": "Package inventory",
  "inventoryDesc": "Showing {{shown}} / {{total}} · inventoried {{when}}",
  "riskFilterAria": "Risk filter",
  "all": "All",
  "upgradable": "Upgradable",
  "mediumFilter": "Medium",
  "lowUnmarked": "Low / unmarked",
  "searchPh": "Package / advice / CVE…",
  "searchAria": "Search packages",
  "colPackage": "Package",
  "colVersion": "Version (installed → apt Candidate)",
  "installedTitle": "Installed",
  "noUpgrade": "(no upgrade available)",
  "colAdvice": "Advice",
  "upgradeTo": "Upgrade to {{v}}",
  "sameVersion": "apt Candidate matches installed version",
  "noNeedUpgrade": "No upgrade needed",
  "emptyInventory": "No package data yet",
  "emptyInventoryDesc": "Use “Scan packages” in the page header to inventory this host",
  "emptyFilter": "No packages match filters",
  "emptyFilterDesc": "Change risk filters or clear search",
  "resetFilters": "Reset filters",
  "selfLoading": "Loading self-update status…",
  "selfTitle": "Panel self-update",
  "selfCheckFailed": "Check failed",
  "selfUpToDate": "Up to date",
  "selfAvailable": "Update available",
  "selfCurrent": "Current version",
  "selfLatest": "Latest version",
  "selfChannel": "Channel",
  "checkSelf": "Check for updates",
  "applySelf": "Apply self-update",
  "scheduleTitle": "Auto-scan schedule",
  "scheduleDesc": "Periodic inventory; does not auto-upgrade",
  "enabled": "Enabled",
  "disabled": "Disabled",
  "cron": "Cron expression",
  "saveSchedule": "Save schedule",
  "policyTitle": "Update policy",
  "policyBody": "High-risk and CVE packages require approval before apply",
  "applyPkg": "Apply package upgrade",
  "rebootNeeded": "reboot",
  "kernelRebootHint": "Kernel packages need a reboot after apply",
  "applyPkgConfirm": "Upgrade {{name}}?",
  "applyPkgDesc": "Runs apt upgrade for this package on the host. Needs root + YSK_EXECUTE.",
  "lastScan": "Last scan",
  "never": "Never",
  "cve": "CVE",
  "riskCol": "Risk",
  "selfUpdatable": "Updatable",
  "selfCurrentShort": "Current",
  "selfLatestShort": "Latest",
  "applyPanelUpdate": "Apply panel update",
  "applySelfConfirmTitle": "Apply panel update?",
  "applySelfConfirmDesc": "Install {{from}} → {{to}} and restart the panel service. There is no dry-run.",
  "applyPanelAlreadyLatest": "Already the latest panel version",
  "recheck": "Recheck",
  "aboutScope": "Scope",
  "aboutScopeV": "ysk-server panel + catalog services + runtimes + remaining apt packages",
  "aboutChannel": "Channel",
  "aboutChannelV": "npm package ysk-server → GitHub release → apps/server/package.json; apply: npm i -g ysk-server@version or git (YSK_SOURCE_ROOT)",
  "aboutFail": "Failures",
  "aboutFailV": "Unavailable channels are not reported as up-to-date; apply needs EXECUTE; git apply needs service restart",
  "jobsTitle": "Scheduled jobs",
  "jobsSub": "Control-plane scheduler (read-only) · {{count}}",
  "noJobs": "No visible schedules",
  "noJobsDesc": "Disabled or no scheduler jobs yet",
  "lastRun": "last {{when}}",
  "scanPolicy": "Scan",
  "scanPolicyV": "Scan ≠ upgraded; apply changes the system",
  "highRiskPolicy": "High risk",
  "highRiskPolicyV": "Needs approval: the Apply button opens a confirm dialog before anything is sent",
  "needApprovalHint": "Open Available and filter to packages that need approval",
  "applyNeedConfirm": "Opens a confirm dialog before applying",
  "probeFailed": "Probe failed",
  "notViaApt": "Not managed by apt — no candidate",
  "noCandidate": "No candidate from package manager",
  "cveLabel": "CVE",
  "jobOpenGeo": "GeoIP page",
  "job": {
    "protection_probe": { "name": "Protection probe", "hint": "Periodic defense signals" },
    "updates_scan": { "name": "Updates scan", "hint": "Refresh package inventory" },
    "daily_backup": { "name": "Daily backup", "hint": "Scheduled backup all" },
    "db_temp_expire": { "name": "Expire temp DB users", "hint": "Drop expired temporary database users" },
    "defense_auto_ban": { "name": "Defense auto-ban", "hint": "Apply auto-ban tick" },
    "defense_geoip_update": { "name": "GeoIP update", "hint": "Download GeoIP databases" },
    "log_auto_vacuum": { "name": "Log vacuum", "hint": "journald retention" },
    "email_dnsbl": { "name": "Email DNSBL", "hint": "Mail DNSBL check" },
    "validators_upgrade_scan": { "name": "Validators upgrade scan", "hint": "Check validator image / binary updates" }
  },
  "permPolicy": "Permissions",
  "permPolicyV": "Without EXECUTE/root → blocked (no fake success)",
  "osvPolicyV": "Needs network; enriches top 12 suggestions only",
  "relatedAria": "Related",
  "scHost": "Host settings",
  "scReadiness": "Readiness",
  "scReadinessD": "Production gate",
  "scSystemd": "systemd unit",
  "scSystemdD": "Control-plane service",
  "scSecurity": "Security center",
  "scSecurityD": "Approval / tools",
  "applyHighRisk": "Apply high-risk update {{name}}?",
  "highRiskUpdate": "High-risk update",
  "remoteUnknown": "Remote unknown",
  "hasUpdate": "Update available",
  "scanned": "Scanned {{count}} package(s)",
  "scannedWithOsv": "Scanned {{count}} package(s) (with OSV)",
  "realUpgradeable": "{{count}} truly upgradable",
  "panelCheckFailed": "Panel version check failed",
  "applyIncomplete": "Apply incomplete",
  "appliedPackage": "Package update applied",
  "updateFailed": "Update failed",
  "updateIncomplete": "Update incomplete",
  "appliedUpdate": "Update applied",
  "panelRestarting": "Panel is restarting to load the new version…",
  "panelRestarted": "Panel is back · {{version}}",
  "panelRestartWait": "Panel apply finished. If this page does not refresh, reload after a few seconds.",
  "reloadUi": "Reload UI",
  "reloadUiTitle": "Reload the panel UI?",
  "reloadUiDesc": "The panel service is {{version}}. This tab still has the previous frontend until you reload. Unsaved fields on this page will be lost.",
  "aptCandidate": "apt Candidate",
  "advice": {
    "update": "Update recommended",
    "skip": "Skip",
    "watch": "Watch",
    "urgent": "Urgent update"
  },
  "selectCol": "Select",
  "selectAllUpgradable": "Select all upgradable",
  "clearSelection": "Clear selection",
  "updateSelected": "Update selected ({{n}})",
  "batchConfirmTitle": "Confirm bulk package update?",
  "batchConfirmBody": "Will upgrade {{n}} package(s) in order. Requires root and EXECUTE.",
  "batchConfirmHighRisk": "Selection includes high-risk / approval packages; I have reviewed and approve apply.",
  "batchProgress": "Bulk update {{n}}/{{total}}: {{pkg}}",
  "batchDone": "Bulk done: {{ok}} ok, {{fail}} failed",
  "batchPartialFail": "Some failed: {{list}}",
  "batchEmpty": "Select upgradable packages first",
  "batchNoneUpgradable": "No upgradable packages in current filter",
  "batchCancel": "Cancel bulk",
  "batchCancelling": "Cancelling… (stops after current package)",
  "batchCancelled": "Cancelled (remaining skipped)",
  "batchRescanned": "Host package state re-scanned",
  "applyLogTitle": "Update（）",
  "navBadgeTitle": "Updates pending: {{n}}",
  "aboutPolicySub": "Scan, apply, privilege, and OSV boundaries. Scan is not the same as upgraded.",
  "tabOverview": "Overview",
  "overviewHint": "Server scans packages on a schedule. Install software on each feature page; this page only checks and applies upgrades.",
  "overviewStale": "Scan data is outdated. Run a scan or wait for the next automatic check.",
  "nextScan": "Next scan",
  "autoScan": "Auto scan",
  "autoScanEnable": "Enable automatic package scan",
  "scanInterval": "Scan interval",
  "interval6h": "Every 6 hours",
  "interval12h": "Every 12 hours",
  "interval24h": "Every 24 hours",
  "interval48h": "Every 48 hours",
  "scheduleSaved": "Scan schedule saved",
  "scanNow": "Scan now",
  "viewUpgradable": "View upgradable",
  "installElsewhere": "To install packages (Nginx, PHP, databases…), open the matching feature page — not this hub.",
  "status": "Status",
  "groupService": "Services",
  "groupRuntime": "Runtimes",
  "groupOs": "System packages",
  "notInstalled": "Not installed",
  "goToPage": "Open page",
  "hubHint": "Catalog software and runtimes on this host. Scan to refresh.",
  "intervalDay": "every day",
  "intervalDays": "every {{n}} days",
  "intervalHour": "every hour",
  "intervalHours": "every {{n}} hours",
  "intervalMinutes": "every {{n}} minutes",
  "intervalSeconds": "every {{n}} seconds",
  "availableHint": "Packages with a newer candidate from the package manager.",
  "servicesHint": "Catalog services on this host. Open the service page to install.",
  "runtimeHint": "Runtimes on this host. Version upgrades are done on each runtime page.",
  "needsReboot": "Reboot needed",
  "kernelRebootWarn": "Installing a new kernel usually needs a reboot before it is used.",
  "neverRun": "not run yet",
  "scanOsvN": "Scan + OSV (first {{n}})"
}
