// English dictionary — canonical key set; the other locales mirror it
// (a missing slug falls back to English either way).
export default {
// app / shell / nav
"app.docTitle": "GHard Monitor",
"shell.title": "Monitoring",
"nav.dashboard": "Dashboard",
"nav.storage": "Storage",
"nav.settings": "Settings",
"nav.signOut": "Sign out",
// login screen
"login.title": "Sign in",
"login.subtitle": "GHard Monitor is protected by gnexus-auth",
"login.action": "Sign in",
// dashboard
"dash.title": "Dashboard",
"dash.addServer": "Add server",
"dash.summary": "{servers} · {online}", // counts are composed via nested t()
"dash.servers": { one: "{n} server", other: "{n} servers" },
"dash.online": "{m} online",
"dash.emptyTitle": "No servers yet",
"dash.emptyText": "Add your first server — the panel will issue a key for the hard-monitor agent",
"dash.serverCreated": "Server created",
"dash.newServer": "New server",
"dash.nameHint": "The name is for the panel only — the agent reports the hostname itself.",
"dash.serverName": "Server name",
"dash.keyHint": "The key is shown {once} — save it and configure the agent with it.",
"dash.installOn": "Install on the server:",
"dash.failed": "Failed",
// server card / server page
"server.open": "Open",
"server.uptime": "uptime {value}",
"server.disk": "Disk {mount}",
"server.nodata": "no data yet — install the agent",
"server.back": "Back to dashboard",
"server.notFound": "Server not found",
"server.notFoundText": "It may have been deleted",
"server.rename": "Rename",
"server.renameTitle": "Rename server",
"server.serverName": "Server name",
"server.delete": "Delete",
"server.deleteTitle": "Delete server?",
"server.deleteMessage": "\"{name}\" and its entire metric history will be deleted permanently.",
"server.infoTitle": "Info",
"server.noteTitle": "Note",
"server.serverNote": "Server note",
"server.notePlaceholder": "What the server is for, what runs on it. No secrets here :)",
"server.hostname": "Hostname",
"server.os": "OS",
"server.kernel": "Kernel",
"server.ips": "IP addresses",
"server.connIp": "Connection IP",
"server.interval": "Agent interval",
"server.lastPacket": "Last packet",
"server.network": "Network",
"server.history": "History:",
"server.tabOverview": "Overview",
"server.tabDisks": "Disks",
"server.tabNetwork": "Network",
"server.tabProcesses": "Processes",
"server.tabDocker": "Docker",
"server.cpuRamChart": "CPU & RAM, %",
"server.diskChart": "Disk usage, %",
"server.netChart": "Network speed, MB/s",
"server.colMount": "Mount point",
"server.colSize": "Size",
"server.colUsed": "Used",
"server.colUsage": "Usage",
"server.colProcess": "Process",
"server.colPid": "PID",
"server.colStatus": "Status",
"server.colContainer": "Container",
"server.colImage": "Image",
"server.noDisks": "No disks in the last packet",
"server.noProcesses": "No process data",
"server.noDocker": "No Docker containers found",
"server.of": "of {total}",
"server.noteSaved": "Note saved",
"server.renamed": "Renamed",
"server.serverDeleted": "Server deleted",
"server.failedToSave": "Failed to save",
"server.failedToRename": "Failed to rename",
"server.failedToDelete": "Failed to delete",
"server.historyFailed": "History failed to load",
// storage
"storage.title": "Storage",
"storage.subtitle": "Network shares mounted to the panel host",
"storage.addShare": "Add share",
"storage.emptyTitle": "No shares yet",
"storage.emptyText": "Mount a network drive to the panel host and add its path here — the panel will track usage itself",
"storage.usedLabel": "Used",
"storage.used": "used",
"storage.free": "free",
"storage.total": "total",
"storage.nodata": "no data — check the mount",
"storage.sampledAt": "sampled: {time}",
"storage.notSampled": "not sampled yet",
"storage.historyTitle": "Usage over 24 h, %",
"storage.addTitle": "Add network share",
"storage.name": "Name",
"storage.mountPath": "Mount path on the panel host",
"storage.shareAdded": "Share added",
"storage.deleteTitle": "Delete share?",
"storage.deleteMessage": "\"{name}\" will be removed from monitoring. The mount itself and its data are not touched.",
"storage.historyFailed": "Storage history failed to load",
"storage.shareDeleted": "Share deleted",
// services (health checker)
"nav.services": "Services",
"services.title": "Services",
"services.subtitle": "Health of external services via their health endpoints",
"services.addService": "Add service",
"services.emptyTitle": "No services yet",
"services.emptyText": "Add a health URL of a service (for example gnexus-auth) — the panel will poll it itself",
"services.addTitle": "Add service",
"services.name": "Name",
"services.url": "Health URL",
"services.urlHint": "The address the panel polls (GET) to check health, for example http://gnexus-creds.local/api/v1/health",
"services.latency": "response {n} ms",
"services.stateUp": "up",
"services.stateDegraded": "degraded",
"services.stateDown": "down",
"services.statePending": "waiting",
"services.modeMaintenance": "maintenance",
"services.modeReadonly": "readonly",
"services.modeDraining": "draining",
"services.notResponding": "not responding — {message}",
"services.serviceAdded": "Service added",
"services.historyFailed": "Service history failed to load",
"services.serviceDeleted": "Service deleted",
"services.serviceUpdated": "Service updated",
"services.deleteTitle": "Delete service?",
"services.deleteMessage": "\"{name}\" will be removed from health monitoring. The service itself is not touched.",
"services.back": "Back to list",
"services.notFound": "Service not found",
"services.notFoundText": "It may have been removed from monitoring",
"services.edit": "Edit",
"services.editTitle": "Edit service",
"services.chartTitle": "Response time, ms",
"services.logTitle": "Downtime incidents",
"services.colStart": "Start",
"services.colDuration": "Duration",
"services.colWhat": "What",
"services.colReason": "Reason",
"services.ongoing": "ongoing",
"services.noIncidents": "No downtime incidents recorded",
"services.durD": "d",
"services.durH": "h",
"services.durM": "min",
"services.durS": "s",
// settings
"settings.title": "Settings",
"settings.languageToolbar": "Interface language",
"settings.languageDescription": "By default the panel follows your gnexus-auth account language; a choice here overrides it for GHard Monitor only. Auto switches back to the account language.",
"settings.languageDescriptionOpen": "The panel is open without an account — the choice is stored in this browser.",
"settings.languageSaved": "Language updated.",
// language picker (native names — invariant across UI languages)
"profile.languageAuto": "Auto (from account)",
"profile.langEn": "English",
"profile.langUk": "Українська",
"profile.langRu": "Русский",
// status (single source for card/page/storage badges)
"status.online": "online",
"status.offline": "offline",
"status.waiting": "waiting",
// relative time (fmtAgo / fmtUptime)
"time.never": "never",
"time.now": "just now",
"time.secondsAgo": "{n}s ago",
"time.minutesAgo": "{n}m ago",
"time.hoursAgo": "{n}h ago",
"time.daysAgo": "{n}d ago",
"time.upDaysHours": "{d}d {h}h",
"time.upHoursMinutes": "{h}h {m}m",
"time.upMinutesSeconds": "{m}m {s}s",
// common
"common.cancel": "Cancel",
"common.close": "Close",
"common.copy": "Copy",
"common.create": "Create",
"common.save": "Save",
"common.add": "Add",
"common.delete": "Delete",
"common.once": "once",
"common.error": "Error",
"common.failedToLoad": "Failed to load",
};