From 080c91284dbb27be15091959e166f09882f1e08a Mon Sep 17 00:00:00 2001 From: Alex Holliday Date: Tue, 3 Feb 2026 17:53:45 +0000 Subject: [PATCH] sort --- client/src/locales/en.json | 2806 ++++++++++++++++++------------------ 1 file changed, 1403 insertions(+), 1403 deletions(-) diff --git a/client/src/locales/en.json b/client/src/locales/en.json index 4f5eaf63f..ad387a215 100644 --- a/client/src/locales/en.json +++ b/client/src/locales/en.json @@ -1,408 +1,871 @@ { + "aboutus": "About Us", + "access": "Access", + "actions": "Actions", + "add": "Add", + "addMonitors": "Add monitors", + "administrator": "Administrator?", + "advancedMatching": "Advanced matching", + "ago": "ago", + "area": "Area", + "auth": { + "common": { + "errors": { + "validation": "Error validating data." + }, + "fields": { + "password": { + "errors": { + "incorrect": "The password you provided does not match our records" + } + }, + "role": { + "errors": { + "min": "At least one role is required" + } + } + }, + "inputs": { + "email": { + "errors": { + "empty": "To continue, please enter your email address", + "invalid": "Please recheck validity of entered email address" + }, + "label": "Email", + "placeholder": "jordan.ellis@domain.com" + }, + "firstName": { + "errors": { + "empty": "Please enter your name", + "length": "Name must be less than 50 characters", + "pattern": "Name must contain only letters, spaces, apostrophes, or hyphens" + }, + "label": "Name", + "placeholder": "Jordan" + }, + "lastName": { + "errors": { + "empty": "Please enter your surname", + "length": "Surname must be less than 50 characters", + "pattern": "Surname must contain only letters, spaces, apostrophes, or hyphens" + }, + "label": "Surname", + "placeholder": "Ellis" + }, + "password": { + "errors": { + "empty": "Please enter your password", + "incorrect": "The password you provided does not match our records", + "length": "Password must be at least 8 characters long", + "lowercase": "Password must contain at least 1 lowercase letter", + "number": "Password must contain at least 1 number", + "special": "Password must contain at least 1 special character (!?@#$%^&*()-_=+[]{}|;:'\",./\\~`)", + "uppercase": "Password must contain at least 1 uppercase letter" + }, + "label": "Password", + "rules": { + "length": { + "beginning": "Must be at least", + "highlighted": "8 characters long" + }, + "lowercase": { + "beginning": "Must contain at least", + "highlighted": "one lower character" + }, + "match": { + "beginning": "Passwords", + "highlighted": "must match" + }, + "number": { + "beginning": "Must contain at least", + "highlighted": "one number" + }, + "special": { + "beginning": "Must contain at least", + "highlighted": "one special character (!?@#$%^&*()-_=+[]{}|;:'\",./\\~`)" + }, + "uppercase": { + "beginning": "Must contain at least", + "highlighted": "one upper character" + } + } + }, + "passwordConfirm": { + "errors": { + "different": "Entered passwords don't match, so one of them is probably mistyped", + "empty": "Please enter your password again for confirmation (helps with typos)" + }, + "label": "Confirm password", + "placeholder": "Re-enter password to confirm" + } + }, + "navigation": { + "back": "Back", + "continue": "Continue" + } + }, + "forgotPassword": { + "buttons": { + "openEmail": "Open email app", + "resetPassword": "Reset password" + }, + "heading": "Forgot password?", + "imageAlts": { + "email": "Email icon", + "lock": "Lock icon", + "passwordConfirm": "Password confirm icon", + "passwordKey": "Password key icon" + }, + "links": { + "login": "Go back to Log In", + "resend": "Didn't receive the email? Click to resend" + }, + "subheadings": { + "stepFour": "Your password has been successfully reset. Click below to log in magically.", + "stepOne": "No worries, we'll send you reset instructions.", + "stepThree": "Your new password must be different from previously used passwords.", + "stepTwo": "We sent a password reset link to " + }, + "toasts": { + "emailNotFound": "Email not found.", + "error": "Unable to reset password. Please try again later or contact support.", + "redirect": "Redirecting in ...", + "sent": "Instructions sent to .", + "success": "Your password was reset successfully." + } + }, + "login": { + "errors": { + "password": { + "incorrect": "The password you provided does not match our records" + } + }, + "heading": "Log in to continue", + "links": { + "forgotPassword": "Forgot password?", + "forgotPasswordLink": "Reset password", + "register": "Do not have an account?", + "registerLink": "Register here" + }, + "subheadings": { + "stepOne": "Enter your email", + "stepTwo": "Enter your password" + }, + "toasts": { + "incorrectPassword": "Incorrect password", + "success": "Welcome back! You're successfully logged in." + }, + "welcome": "Welcome back to Checkmate!" + }, + "registration": { + "description": { + "superAdmin": "Create your super admin account to get started", + "user": "Sign up as a user and ask super admin for access to your monitors" + }, + "gettingStartedButton": { + "superAdmin": "Create super admin account", + "user": "Sign up regular user" + }, + "heading": { + "superAdmin": "Create super admin", + "user": "Sign Up" + }, + "links": { + "login": "Already have an account? Log In" + }, + "subheadings": { + "stepOne": "Enter your personal details", + "stepThree": "Create your password", + "stepTwo": "Enter your email" + }, + "termsAndPolicies": "By creating an account, you agree to our Terms of Service and Privacy Policy.", + "toasts": { + "success": "Welcome! Your account was created successfully." + }, + "welcome": "Welcome to Checkmate!" + } + }, + "avgCpuTemperature": "Average CPU Temperature", + "bar": "Bar", + "basicInformation": "Basic Information", + "bulkImport": { + "fallbackPage": "Import a file to upload a list of servers in bulk", + "invalidFileType": "Invalid file type", + "noFileSelected": "No file selected", + "parsingFailed": "Parsing failed", + "selectFile": "Select File", + "selectFileDescription": "You can download our or sample", + "selectFileTips": "Select CSV file to upload", + "title": "Bulk Import", + "uploadFailed": "Upload failed", + "uploadSuccess": "Monitors created successfully!", + "validationFailed": "Validation failed" + }, + "bytesPerSecond": "Bytes per second", + "bytesReceived": "Bytes Received", + "bytesSent": "Bytes Sent", + "cancel": "Cancel", + "checkFormError": "Please check the form for errors.", + "checkFrequency": "Check frequency", + "checkHooks": { + "failureResolveAll": "Failed to resolve all incidents.", + "failureResolveMonitor": "Failed to resolve monitor incidents.", + "failureResolveOne": "Failed to resolve incident." + }, + "checkingEvery": "Checking every", + "checksPageActionResolveAllMonitor": "Resolve all checks", + "checksPageActionResolveMonitor": "Resolve monitor checks", + "checksPageTitle": "Checks", + "chooseGame": "Choose game", + "city": "CITY", + "ClickUpload": "Click to upload", + "close": "Close", "common": { - "appName": "Checkmate", - "monitoringAgentName": "Capture", - "see": "See", - "forDocumentation": "for query language documentation.", - "breadcrumbs": { - "home": "Home", - "details": "Details" - }, - "labels": { - "responseTime": "Response time", - "active": "Active", - "resolved": "Resolved", - "na": "N/A" - }, - "buttons": { - "toggleTheme": "Toggles light & dark", - "testNotifications": "Test notifications", - "create": "Create", - "incidents": "Incidents", - "pause": "Pause", - "resume": "Resume", - "delete": "Delete", - "cancel": "Cancel", - "confirm": "Confirm", - "save": "Save", - "test": "Test", - "configure": "Configure" - }, - "alerts": { "pageSpeedApiKey": { "content": "Warning: You haven't added a Google PageSpeed API key yet. Visit Settings to add one. Without it, the PageSpeed monitor won't function." } }, + "appName": "Checkmate", + "breadcrumbs": { + "details": "Details", + "home": "Home" + }, + "buttons": { + "cancel": "Cancel", + "configure": "Configure", + "confirm": "Confirm", + "create": "Create", + "delete": "Delete", + "incidents": "Incidents", + "pause": "Pause", + "resume": "Resume", + "save": "Save", + "test": "Test", + "testNotifications": "Test notifications", + "toggleTheme": "Toggles light & dark" + }, + "charts": { + "labels": { + "averageResponseTime": "Average response time", + "downtime": "Downtime", + "high": "High", + "low": "Low", + "uptime": "Uptime" + } + }, "dialogs": { "delete": { "description": "This action cannot be undone.", "title": "Are you sure you want to delete this?" } }, - "toasts": { - "networkError": "Network error", - "checkConnection": "Please check your connection", - "unknownError": "Unknown error" + "forDocumentation": "for query language documentation.", + "labels": { + "active": "Active", + "na": "N/A", + "resolved": "Resolved", + "responseTime": "Response time" }, + "monitoringAgentName": "Capture", + "see": "See", "table": { + "empty": "Nothing here", "headers": { "actions": "Actions", "active": "Active", + "dateTime": "Date & time", "message": "Message", "monitor": "Monitor", "name": "Name", "status": "Status", - "type": "Type", - "dateTime": "Date & time" - }, - "empty": "Nothing here" + "type": "Type" + } }, - "charts": { + "toasts": { + "checkConnection": "Please check your connection", + "networkError": "Network error", + "unknownError": "Unknown error" + } + }, + "commonSave": "Save", + "commonSaving": "Saving...", + "companyName": "Company name", + "components": { + "headerTimeRange": { + "description": { + "day": "Showing statistics for past 24 hours.", + "month": "Showing statistics for past 30 days.", + "recent": "Showing statistics for past 2 hours.", + "week": "Showing statistics for past 7 days." + }, "labels": { - "uptime": "Uptime", - "downtime": "Downtime", - "averageResponseTime": "Average response time", - "low": "Low", - "high": "High" + "day": "Day", + "month": "Month", + "recent": "Recent", + "week": "Week" } } }, - "submit": "Submit", - "title": "Title", - "settingsDisabled": "Disabled", - "settingsSuccessSaved": "Settings saved successfully", - "settingsFailedToSave": "Failed to save settings", - "settingsStatsCleared": "Stats cleared successfully", - "settingsFailedToClearStats": "Failed to clear stats", - "settingsMonitorsDeleted": "Successfully deleted all monitors", - "settingsFailedToDeleteMonitors": "Failed to delete all monitors", - "starPromptTitle": "Star Checkmate", - "starPromptDescription": "See the latest releases and help grow the community on GitHub", - "https": "HTTPS", - "http": "HTTP", - "monitor": "monitor", - "aboutus": "About Us", - "now": "Now", - "delete": "Delete", "configure": "Configure", - "responseTime": "Response time", - "responseTimeBreakdown": "Response time breakdown", - "dnsLookup": "DNS lookup", - "tcpConnection": "TCP connection", - "tlsHandshake": "TLS handshake", - "waitTime": "Wait time", - "timeToFirstByte": "Time to first byte", - "download": "Download", - "ms": "ms", - "bar": "Bar", - "area": "Area", + "confirmPassword": "Confirm password", + "cores": "Cores", "country": "COUNTRY", - "city": "CITY", - "incidentsTableNoIncidents": "No incidents recorded", - "incidentsTablePaginationLabel": "incidents", - "incidentsTableMonitorName": "Monitor Name", - "incidentsTableStatus": "Status", - "incidentsTableDateTime": "Date & Time", - "incidentsTableStatusCode": "Status Code", - "incidentsTableMessage": "Message", - "incidentsOptionsHeader": "Incidents for:", - "incidentsOptionsHeaderFilterBy": "Filter by:", - "incidentsOptionsHeaderFilterAll": "All", - "incidentsOptionsHeaderFilterDown": "Down", - "incidentsOptionsHeaderFilterCannotResolve": "Cannot Resolve", - "incidentsOptionsHeaderShow": "Show:", - "incidentsOptionsHeaderLastHour": "Last hour", - "incidentsOptionsHeaderLastDay": "Last day", - "incidentsOptionsHeaderLastWeek": "Last week", - "incidentsOptionsPlaceholderAllServers": "All servers", - "infrastructureCreateYour": "Create your", - "infrastructureCreateGeneralSettingsDescription": "Here you can select the URL of the host, together with the friendly name and authorization secret to connect to the server agent.", - "infrastructureServerRequirement": "The server you are monitoring must be running the", - "infrastructureCustomizeAlerts": "Customize alerts", - "infrastructureAlertNotificationDescription": "Send a notification to user(s) when thresholds exceed a specified percentage.", - "infrastructureCreateMonitor": "Create Infrastructure Monitor", - "infrastructureProtocol": "Protocol", - "infrastructureServerUrlLabel": "Server URL", - "infrastructureDisplayNameLabel": "Display name", - "infrastructureAuthorizationSecretLabel": "Authorization secret", - "gb": "GB", - "mb": "MB", - "mem": "Mem", - "memoryUsage": "Memory usage", "cpu": "CPU", - "cpuUsage": "CPU usage", + "cpuFrequency": "CPU Frequency", + "cpuLogical": "CPU (Logical)", + "cpuPhysical": "CPU (Physical)", "cpuTemperature": "CPU Temperature", + "cpuUsage": "CPU usage", + "createA": "Create a", + "createMaintenance": "Create maintenance", + "createMaintenanceWindow": "Create maintenance window", + "createMonitor": "Create monitor", + "createMonitorPage": { + "incidentConfigDescription": "A sliding window is used to determine when a monitor goes down. The status of a monitor will only change when the percentage of checks in the sliding window meet the specified value.", + "incidentConfigDescriptionV2": "Number of consecutive checks needed to change monitor status. Maximum 25", + "incidentConfigStatusCheckNumber": "How many checks before status change?", + "incidentConfigStatusWindowLabel": "How many checks should be in the sliding window?", + "incidentConfigStatusWindowThresholdLabel": "What percentage of checks in the sliding window fail/succeed before monitor status changes?", + "incidentConfigTitle": "Incidents", + "intervalDescription": "How often the monitor should be checked.", + "intervalTitle": "Check interval" + }, + "createNew": "Create new", + "createNotifications": { + "dialogDeleteConfirm": "Delete", + "dialogDeleteTitle": "Are you sure you want to delete this notification?", + "discordSettings": { + "description": "Configure your Discord webhook here", + "title": "Discord", + "webhookLabel": "Discord Webhook URL", + "webhookPlaceholder": "https://your-server.com/webhook" + }, + "emailSettings": { + "description": "Destination email addresses.", + "emailLabel": "Email address", + "emailPlaceholder": "e.g. john@example.com", + "title": "Email" + }, + "nameSettings": { + "description": "A descriptive name for your integration.", + "nameLabel": "Name", + "namePlaceholder": "e.g. Slack notifications", + "title": "Name" + }, + "pagerdutySettings": { + "description": "Configure your PagerDuty integration here", + "integrationKeyLabel": "Integration key", + "integrationKeyPlaceholder": "1234567890", + "title": "PagerDuty" + }, + "slackSettings": { + "description": "Configure your Slack webhook here", + "title": "Slack", + "webhookLabel": "Slack webhook URL", + "webhookPlaceholder": "https://hooks.slack.com/services/..." + }, + "testNotification": "Test notification", + "title": "Create notification channel", + "typeSettings": { + "description": "Select the type of notification channel you want to create.", + "title": "Type", + "typeLabel": "Type" + }, + "webhookSettings": { + "description": "Configure your webhook here", + "title": "Webhook", + "webhookLabel": "Webhook URL", + "webhookPlaceholder": "https://your-server.com/webhook" + } + }, + "createYour": "Create your", + "dataRate": "Data Rate", + "dataReceived": "Data Received", + "dataSent": "Data Sent", + "date&Time": "Date & Time", + "delete": "Delete", + "DeleteAccountButton": "Remove account", + "DeleteAccountTitle": "Remove account", + "DeleteAccountWarning": "Removing your account means you won't be able to sign in again and all your data will be removed. This isn't reversible.", + "DeleteDescriptionText": "This will remove the account and all associated data from the server. This isn't reversible.", + "deleteDialogDescription": "Once deleted, this monitor cannot be retrieved.", + "deleteDialogTitle": "Do you really want to delete this monitor?", + "deleteStatusPage": "Do you want to delete this status page?", + "deleteStatusPageConfirm": "Yes, delete status page", + "deleteStatusPageDescription": "Once deleted, your status page cannot be retrieved.", + "DeleteWarningTitle": "Really remove this account?", + "details": "Details", + "device": "Device", + "diagnosticsPage": { + "diagnosticDescription": "System diagnostics", + "gauges": { + "heapAllocationSubtitle": "% of available memory", + "heapAllocationTitle": "Heap allocation", + "heapUsageSubtitle": "% of available memory", + "heapUsageTitle": "Heap usage", + "heapUtilizationSubtitle": "% of allocated", + "heapUtilizationTitle": "Heap utilization", + "instantCpuUsageSubtitle": "% of 1s used by CPU", + "instantCpuUsageTitle": "Instant CPU usage" + }, + "stats": { + "eventLoopDelayTitle": "Event loop delay", + "osMemoryLimitTitle": "OS Memory Limit", + "totalHeapSizeTitle": "Total heap size", + "uptimeTitle": "Uptime", + "usedHeapSizeTitle": "Used heap size" + }, + "statsDescription": "System statistics" + }, + "disk": "Disk", "diskUsage": "Disk Usage", - "response": "RESPONSE", - "monitorStatusUp": "Monitor {name} ({url}) is now UP and responding", - "monitorStatusDown": "Monitor {name} ({url}) is DOWN and not responding", - "webhookSendSuccess": "Webhook notification sent successfully", - "webhookSendError": "Error sending webhook notification to {platform}", - "webhookUnsupportedPlatform": "Unsupported platform: {platform}", - "distributedUptimeCreateSelectURL": "Here you can select the URL of the host, together with the type of monitor.", + "displayName": "Display name", + "distributedUptimeCreateAdvancedSettings": "Advanced settings", "distributedUptimeCreateChecks": "Checks to perform", "distributedUptimeCreateChecksDescription": "You can always add or remove checks after adding your site.", - "distributedUptimeCreateAdvancedSettings": "Advanced settings", + "distributedUptimeCreateSelectURL": "Here you can select the URL of the host, together with the type of monitor.", "distributedUptimeDetailsNoMonitorHistory": "There is no check history for this monitor yet.", + "dnsLookup": "DNS lookup", + "dockerContainerMonitoring": "Docker container monitoring", + "dockerContainerMonitoringDescription": "Check whether your Docker container is running or not.", + "download": "Download", + "DragandDrop": "drag and drop", + "drops": "Drops", + "duration": "Duration", + "edit": "Edit", + "editing": "Editing...", + "editMaintenance": "Edit maintenance", + "editUserPage": { + "form": { + "email": "Email", + "firstName": "First name", + "lastName": "Last name", + "role": "Roles", + "save": "Save" + }, + "table": { + "actionHeader": "Action", + "headers": { + "name": "Status page name", + "url": "Public URL" + }, + "roleHeader": "Role" + }, + "title": "Edit user", + "toast": { + "successUserUpdate": "User updated successfully", + "validationErrors": "Validation errors" + } + }, + "EmailDescriptionText": "This is your current email address — it cannot be changed.", + "emailSent": "Email sent successfully", + "errorInvalidFieldId": "Invalid field ID provided", + "errorInvalidTypeId": "Invalid notification type provided", + "errorPages": { + "serverUnreachable": { + "alertBox": "Server Connection Error", + "description": "We're unable to connect to the server. Please check your internet connection or verify your deployment configuration if the problem persists.", + "retryButton": { + "default": "Retry connection", + "processing": "Connecting..." + }, + "toasts": { + "reconnected": "Successfully reconnected to the server.", + "stillUnreachable": "Server is still unreachable. Please try again later." + } + } + }, + "errors": "Errors", + "errorsIn": "Errors In", + "errorsOut": "Errors Out", + "expectedValue": "Expected value", + "export": { + "failed": "Failed to export monitors", + "success": "Monitors exported successfully!", + "title": "Export Monitors" + }, + "failedToSendEmail": "Failed to send email", + "features": "Features", + "FirstName": "First name", + "frequency": "Frequency", + "friendlyNameInput": "Friendly name", + "friendlyNamePlaceholder": "Maintenance at __ : __ for ___ minutes", + "gameServerMonitoring": "Game Server Monitoring", + "gameServerMonitoringDescription": "Check whether your game server is running or not", + "gb": "GB", + "general": { + "noOptionsFound": "No {{unit}} found" + }, + "greeting": { + "append": "The afternoon is your playground—let's make it epic!", + "overview": "Here's an overview of your {{type}} monitors.", + "prepend": "Hey there" + }, + "high": "high", + "host": "Host", + "http": "HTTP", + "https": "HTTPS", + "ignoreTLSError": "Ignore TLS/SSL error", + "ignoreTLSErrorDescription": "Ignore TLS/SSL errors and continue checking the website's availability", + "incidentsOptionsHeader": "Incidents for:", + "incidentsOptionsHeaderFilterAll": "All", + "incidentsOptionsHeaderFilterBy": "Filter by:", + "incidentsOptionsHeaderFilterCannotResolve": "Cannot Resolve", + "incidentsOptionsHeaderFilterDown": "Down", + "incidentsOptionsHeaderFilterResolved": "Resolved", + "incidentsOptionsHeaderLastDay": "Last day", + "incidentsOptionsHeaderLastHour": "Last hour", + "incidentsOptionsHeaderLastWeek": "Last week", + "incidentsOptionsHeaderShow": "Show:", + "incidentsOptionsHeaderTotalIncidents": "Total Incidents", + "incidentsOptionsPlaceholderAllServers": "All servers", + "incidentsPage": { + "active": "Active", + "all": "All", + "allSystemsAreOperational": "All Systems Are Operational", + "automatic": "Automatic", + "avgResolutionTime": "Avg. Resolution Time", + "description": "Manage incidents for your monitors. You can resolve incidents here.", + "endTime": "End Time", + "errorFetchingIncident": "Error fetching incident", + "errorFetchingIncidents": "Error fetching incidents", + "errorFetchingIncidentSummary": "Error fetching incident summary", + "filterByDate": "Filter by date", + "filterByMonitor": "Filter by monitor", + "filterByPriority": "Filter by priority", + "filterByStatus": "Filter by status", + "filterByType": "Filter by type", + "incidentItemMonitor": "Monitor", + "incidentItemStatus": "Status", + "incidentResolvedFailed": "Error resolving incident", + "incidentResolvedSuccessfully": "Incident resolved successfully", + "incidentsActivePanelError": "Error loading active incidents", + "incidentsActivePanelTitle": "Total Active Incidents", + "incidentsLatestPanelEmpty": "No recent incidents", + "incidentsLatestPanelError": "Error loading latest incidents", + "incidentsLatestPanelTitle": "Latest Incidents", + "incidentsOptionsHeaderFilterActive": "Active", + "incidentsOptionsHeaderFilterAll": "All", + "incidentsOptionsHeaderFilterAutomatic": "Automatic", + "incidentsOptionsHeaderFilterManual": "Manual", + "incidentsOptionsHeaderFilterResolved": "Resolved", + "incidentsStatisticsPanelError": "Error loading statistics", + "incidentsStatisticsPanelTitle": "General Statistics", + "incidentsTableActionDetails": "Details", + "incidentsTableActionGoToMonitor": "Go to monitor", + "incidentsTableActionResolveManually": "Resolve Manually", + "incidentsTableResolved": "Closed", + "manual": "Manual", + "mostAffectedMonitor": "Most Affected Monitor", + "noIncidentIdProvided": "No incident ID provided", + "resolutions": "Resolutions", + "resolutionType": "Resolution Type", + "resolved": "Resolved", + "resolveIncidentDialogCommentLabel": "Comment (optional)", + "resolveIncidentDialogCommentPlaceholder": "Add a comment about the resolution...", + "resolveIncidentDialogConfirm": "Resolve", + "resolveIncidentDialogTitle": "Resolve Incident", + "startTime": "Start Time", + "title": "Incidents", + "totalIncidents": "Total Incidents", + "unknownMonitor": "Unknown Monitor", + "unresolved": "Unresolved" + }, + "incidentsPageActionResolveAll": "Resolve all incidents", + "incidentsPageActionResolveMonitor": "Resolve monitor incidents", + "incidentsPageTitle": "Incidents", + "incidentsTableActionResolve": "Resolve", + "incidentsTableDateTime": "Date & Time", + "incidentsTableMessage": "Message", + "incidentsTableMonitorName": "Monitor Name", + "incidentsTableNoIncidents": "No incidents recorded", + "incidentsTablePaginationLabel": "incidents", + "incidentsTableResolvedAt": "Resolved at", + "incidentsTableStatus": "Status", + "incidentsTableStatusCode": "Status Code", + "infrastructureAlertNotificationDescription": "Send a notification to user(s) when thresholds exceed a specified percentage.", + "infrastructureAuthorizationSecretLabel": "Authorization secret", + "infrastructureCreateGeneralSettingsDescription": "Here you can select the URL of the host, together with the friendly name and authorization secret to connect to the server agent.", + "infrastructureCreateMonitor": "Create Infrastructure Monitor", + "infrastructureCreateYour": "Create your", + "infrastructureCustomizeAlerts": "Customize alerts", + "infrastructureDisplayNameLabel": "Display name", + "infrastructureEditMonitor": "Save Infrastructure Monitor", + "infrastructureEditYour": "Edit your", + "infrastructureMonitor": { + "fallback": { + "actionButton": "Let's create your first infrastructure monitor!", + "checks": [ + "Track the performance of your servers", + "Identify bottlenecks and optimize usage", + "Ensure reliability with real-time monitoring" + ], + "title": "An infrastructure monitor is used to:" + } + }, + "infrastructureMonitorCreated": "Infrastructure monitor created successfully!", + "infrastructureMonitorUpdated": "Infrastructure monitor updated successfully!", + "infrastructureProtocol": "Protocol", + "infrastructureServerRequirement": "The server you are monitoring must be running the", + "infrastructureServerUrlLabel": "Server URL", + "integrations": "Integrations", + "integrationsDiscord": "Discord", + "integrationsDiscordInfo": "Connect with Discord and view incidents directly in a channel", + "integrationsPrism": "Connect Prism to your favorite service.", + "integrationsSlack": "Slack", + "integrationsSlackInfo": "Connect with Slack and see incidents in a channel", + "integrationsZapier": "Zapier", + "integrationsZapierInfo": "Send all incidents to Zapier, and then see them everywhere", + "invalidFileFormat": "Unsupported file format!", + "invalidFileSize": "File size is too large!", + "inviteNoTokenFound": "No invite token found", + "LastName": "Last name", + "loginHere": "Login here", + "logsPage": { + "description": "System logs - last 1000 lines", + "logLevelSelect": { + "title": "Log level", + "values": { + "all": "All", + "debug": "Debug", + "error": "Error", + "info": "Info", + "warn": "Warn" + } + }, + "noLogs": "No logs found", + "table": { + "headers": { + "name": "Status page name", + "url": "Public URL" + }, + "level": "Level", + "logs": "logs", + "message": "Message", + "method": "Method", + "service": "Service", + "timestamp": "Timestamp" + }, + "tabs": { + "diagnostics": "Diagnostics", + "logs": "Server logs", + "queue": "Job queue" + }, + "title": "Logs", + "toast": { + "fetchLogsSuccess": "Logs fetched successfully" + } + }, + "low": "low", + "maintenance": "maintenance", + "maintenanceRepeat": "Maintenance Repeat", + "maintenanceTableActionMenuDialogTitle": "Do you really want to remove this maintenance window?", + "maintenanceWindow": { + "fallback": { + "actionButton": "Let's create your first maintenance window!", + "checks": [ + "Mark your maintenance periods", + "Eliminate any misunderstandings", + "Stop sending alerts in maintenance windows" + ], + "title": "A maintenance window is used to:" + } + }, + "maintenanceWindowDescription": "During maintenance windows, all monitoring is suspended for selected monitors. No network checks will be performed, preventing any status updates or notifications from being triggered. Your monitors will appear frozen at their last known status, and status pages will display a maintenance indicator. Once the maintenance window ends, monitoring automatically resumes, and alerts will trigger if issues are detected. Maintenance periods do not count against uptime calculations.", + "maintenanceWindowName": "Maintenance Window Name", + "maskedPageSpeedKeyPlaceholder": "*************************************", + "matchMethod": "Match Method", + "matchMethodOptions": { + "equal": "Equal", + "equalPlaceholder": "success", + "include": "Include", + "includePlaceholder": "ok", + "regex": "Regex", + "regexPlaceholder": "^(success|ok)$", + "text": "Match Method" + }, + "MaxSize": "Maximum Size", + "mb": "MB", + "mem": "Mem", + "memory": "Memory", + "memoryUsage": "Memory usage", + "menu": { + "changelog": "Changelog", + "checks": "Checks", + "discussions": "Discussions", + "docs": "Docs", + "incidents": "Incidents", + "infrastructure": "Infrastructure", + "integrations": "Integrations", + "logOut": "Log out", + "logs": "Logs", + "maintenance": "Maintenance", + "notifications": "Notifications", + "pagespeed": "Pagespeed", + "password": "Password", + "profile": "Profile", + "settings": "Settings", + "statusPages": "Status pages", + "support": "Support", + "team": "Team", + "uptime": "Uptime" + }, + "message": "Message", + "monitor": "monitor", + "monitorActions": { + "deleteFailed": "Failed to delete monitor", + "deleteSuccess": "Monitor deleted successfully", + "details": "Details", + "export": "Export Monitors", + "import": "Import Monitors", + "title": "Export/Import" + }, + "monitorDisplayName": "Monitor display name", + "monitorHooks": { + "failureAddDemoMonitors": "Failed to add demo monitors", + "successAddDemoMonitors": "Successfully added demo monitors" + }, + "monitors": "monitors", + "monitorState": { + "active": "Active", + "paused": "Paused", + "resumed": "Resumed" + }, + "monitorStatus": { + "checkingEvery": "Checking every {{interval}}", + "down": "down", + "paused": "paused", + "up": "up", + "withCaptureAgent": "with Capture agent {{version}}" + }, + "monitorStatusDown": "Monitor {name} ({url}) is DOWN and not responding", + "monitorStatusUp": "Monitor {name} ({url}) is now UP and responding", + "monitorsToApply": "Monitors to apply maintenance window to", + "monitorType": { + "docker": { + "label": "Container Name/ID", + "namePlaceholder": "My Container", + "placeholder": "my-app or abcd1234" + }, + "game": { + "label": "URL to monitor", + "namePlaceholder": "localhost:5173", + "placeholder": "localhost" + }, + "http": { + "label": "URL to monitor", + "namePlaceholder": "Google", + "placeholder": "google.com" + }, + "ping": { + "label": "IP address to monitor", + "namePlaceholder": "Google", + "placeholder": "1.1.1.1" + }, + "port": { + "label": "URL to monitor", + "namePlaceholder": "Localhost:5173", + "placeholder": "localhost" + } + }, + "mountedOn": "Mounted on", + "ms": "ms", + "navControls": "Controls", + "network": "Network", + "networkDrops": "Network Drops", + "networkErrors": "Network Errors", + "networkInterface": "Network Interface", + "nextWindow": "Next window", + "noNetworkStatsAvailable": "No network stats available.", + "notFoundButton": "Go to the main dashboard", + "notificationConfig": { + "description": "Select the notifications channels you want to use", + "placeholder": "Search notifications...", + "title": "Notifications" + }, "notifications": { - "enableNotifications": "Enable {{platform}} notifications", - "testNotification": "Test notification", "addOrEditNotifications": "Add or edit notifications", - "slack": { - "label": "Slack", - "description": "To enable Slack notifications, create a Slack app and enable incoming webhooks. After that, simply provide the webhook URL here.", - "webhookLabel": "Webhook URL", - "webhookPlaceholder": "https://hooks.slack.com/services/...", - "webhookRequired": "Slack webhook URL is required" + "create": { + "failed": "Failed to create notification", + "success": "Notification created successfully" + }, + "createButton": "Create notification channel", + "createTitle": "Notification channel", + "delete": { + "failed": "Failed to delete notification", + "success": "Notification deleted successfully" }, "discord": { - "label": "Discord", "description": "To send data to a Discord channel from Checkmate via Discord notifications using webhooks, you can use Discord's incoming Webhooks feature.", + "label": "Discord", "webhookLabel": "Discord Webhook URL", "webhookPlaceholder": "https://discord.com/api/webhooks/...", "webhookRequired": "Discord webhook URL is required" }, - "telegram": { - "label": "Telegram", - "description": "To enable Telegram notifications, create a Telegram bot using BotFather, an official bot for creating and managing Telegram bots. Then, get the API token and chat ID and write them down here.", - "tokenLabel": "Your bot token", - "tokenPlaceholder": "123456:ABC-DEF1234ghIkl-zyx57W2v1u123ew11", - "chatIdLabel": "Your Chat ID", - "chatIdPlaceholder": "-1001234567890", - "fieldsRequired": "Telegram token and chat ID are required" + "edit": { + "failed": "Failed to update notification", + "success": "Notification updated successfully" }, - "webhook": { - "label": "Webhooks", - "description": "You can set up a custom webhook to receive notifications when incidents occur.", - "urlLabel": "Webhook URL", - "urlPlaceholder": "https://your-server.com/webhook", - "urlRequired": "Webhook URL is required" - }, - "testNotificationDevelop": "Test notification 2", - "integrationButton": "Notification Integration", - "testSuccess": "Test notification sent successfully!", - "testFailed": "Failed to send test notification", - "unsupportedType": "Unsupported notification type", - "networkError": "Network error occurred", + "enableNotifications": "Enable {{platform}} notifications", "fallback": { - "title": "A notification channel is used to:", + "actionButton": "Let's create your first notification channel!", "checks": [ "Alert teams about downtime or performance issues", "Let engineers know when incidents happen", "Keep administrators informed of system changes" ], - "actionButton": "Let's create your first notification channel!" - }, - "createButton": "Create notification channel", - "createTitle": "Notification channel", - "create": { - "success": "Notification created successfully", - "failed": "Failed to create notification" + "title": "A notification channel is used to:" }, "fetch": { - "success": "Notifications fetched successfully", - "failed": "Failed to fetch notifications" + "failed": "Failed to fetch notifications", + "success": "Notifications fetched successfully" }, - "delete": { - "success": "Notification deleted successfully", - "failed": "Failed to delete notification" + "integrationButton": "Notification Integration", + "networkError": "Network error occurred", + "slack": { + "description": "To enable Slack notifications, create a Slack app and enable incoming webhooks. After that, simply provide the webhook URL here.", + "label": "Slack", + "webhookLabel": "Webhook URL", + "webhookPlaceholder": "https://hooks.slack.com/services/...", + "webhookRequired": "Slack webhook URL is required" }, - "edit": { - "success": "Notification updated successfully", - "failed": "Failed to update notification" + "telegram": { + "chatIdLabel": "Your Chat ID", + "chatIdPlaceholder": "-1001234567890", + "description": "To enable Telegram notifications, create a Telegram bot using BotFather, an official bot for creating and managing Telegram bots. Then, get the API token and chat ID and write them down here.", + "fieldsRequired": "Telegram token and chat ID are required", + "label": "Telegram", + "tokenLabel": "Your bot token", + "tokenPlaceholder": "123456:ABC-DEF1234ghIkl-zyx57W2v1u123ew11" }, "test": { - "success": "Test notification sent successfully", - "failed": "Failed to send test notification" - } - }, - "add": "Add", - "monitors": "monitors", - "components": { - "headerTimeRange": { - "labels": { - "recent": "Recent", - "day": "Day", - "week": "Week", - "month": "Month" - }, - "description": { - "recent": "Showing statistics for past 2 hours.", - "day": "Showing statistics for past 24 hours.", - "week": "Showing statistics for past 7 days.", - "month": "Showing statistics for past 30 days." - } + "failed": "Failed to send test notification", + "success": "Test notification sent successfully" + }, + "testFailed": "Failed to send test notification", + "testNotification": "Test notification", + "testNotificationDevelop": "Test notification 2", + "testSuccess": "Test notification sent successfully!", + "unsupportedType": "Unsupported notification type", + "webhook": { + "description": "You can set up a custom webhook to receive notifications when incidents occur.", + "label": "Webhooks", + "urlLabel": "Webhook URL", + "urlPlaceholder": "https://your-server.com/webhook", + "urlRequired": "Webhook URL is required" } }, + "notifyEmails": "Also notify via email to multiple addresses (coming soon)", + "notifySMS": "Notify via SMS (coming soon)", + "now": "Now", + "os": "OS", + "packetsPerSecond": "Packets per second", + "packetsReceived": "Packets Received", + "packetsReceivedRate": "Packets Received Rate", + "packetsSent": "Packets Sent", "pages": { - "common": { - "monitors": { - "status": { - "up": "up", - "down": "down", - "paused": "paused", - "total": "total", - "initializing": "initializing" - }, - "actions": { - "openSite": "Open site", - "details": "Details", - "incidents": "Incidents", - "configure": "Configure", - "pause": "Pause", - "resume": "Resume", - "delete": "Delete" - }, - "statBoxes": { - "activeFor": "Active for", - "lastCheck": "Last check", - "lastResponseTime": "Last response time", - "certificateExpiry": "Certificate expiry" - } - } - }, - "createMonitor": { - "form": { - "type": { - "description": "Select the type of check to perform", - "optionType": "Type", - "title": "Type", - "optionHttp": "HTTP(S)", - "optionHttpDescription": "Use HTTP(S) to monitor your website or API endpoint.", - "optionPing": "Ping", - "optionPingDescription": "Use ICMP Ping to monitor if a server is online.", - "optionDocker": "Docker", - "optionDockerDescription": "Use Docker to monitor if a container is running.", - "optionPort": "Port", - "optionPortDescription": "Monitor if a specific port on a server is open.", - "optionGame": "Game", - "optionGameDescription": "Monitor if a specific game server is online.", - "optionPagespeed": "PageSpeed", - "optionPagespeedDescription": "Analyze page performance using Google PageSpeed Insights.", - "optionHardware": "Hardware", - "optionHardwareDescription": "Monitor server hardware metrics like CPU, memory, and disk." - }, - "general": { - "title": "General settings", - "description": { - "http": "Enter the URL or IP to monitor (e.g., https://example.com/ or 192.168.1.100) and add a clear display name that appears on the dashboard.", - "ping": "Enter the IP address or hostname to ping (e.g., 192.168.1.100 or example.com) and add a clear display name that appears on the dashboard.", - "docker": "Enter the Docker container name or ID. You can use either the container name (e.g., my-app) or the container ID (full 64-char ID or short ID).", - "port": "Enter the URL or IP of the server, the port number and a clear display name that appears on the dashboard.", - "game": "Enter the IP address or hostname and the port number to ping (e.g., 192.168.1.100 or example.com) and choose game type.", - "pagespeed": "Enter the URL of the page to analyze with Google PageSpeed and add a clear display name that appears on the dashboard.", - "hardware": "Enter the URL of your infrastructure agent, the authorization secret, and a clear display name that appears on the dashboard." - }, - "option": { - "url": { - "label": "URL", - "placeholder": "https://www.google.com" - }, - "name": { - "label": "Display name", - "placeholder": "e.g. My Website" - }, - "host": { - "label": "Host", - "placeholder": "192.168.1.100 or example.com" - }, - "container": { - "label": "Container name/ID", - "placeholder": "my-app or abcd1234" - }, - "secret": { - "label": "Authorization secret", - "placeholder": "Enter your secret key" - } - } - }, - "frequency": { - "title": "Check frequency", - "description": "How often do you want to check the status of this monitor?", - "option": { - "frequency": { - "label": "Check frequency" - } - } - }, - "incidents": { - "title": "Incidents", - "description": "A sliding window is used to determine when a monitor goes down. The status of a monitor will only change when the percentage of checks in the sliding window meet the specified value.", - "option": { - "checks": { - "label": "Number of checks in sliding window" - }, - "percentage": { - "label": "What percentage of checks in the sliding window fail/succeed before monitor status changes?" - } - } - }, - "notifications": { - "title": "Notifications", - "description": "Select the notification channels you want to use" - }, - "ignoreTls": { - "title": "TLS/SSL settings", - "description": "Configure TLS/SSL certificate validation for HTTPS connections.", - "option": { - "tls": { - "label": "Ignore TLS/SSL errors" - } - } - }, - "advanced": { - "title": "Advanced settings", - "description": "Optional settings for advanced use cases", - "option": { - "advancedMatching": { - "label": "Use advanced matching" - }, - "matchMethod": { - "label": "Match method" - }, - "expectedValue": { - "label": "Expected value", - "description": "The expected value is used to match against response result, and the match determines the status." - }, - "jsonPath": { - "label": "JSONPath expression", - "description": "This expression will be evaluated against the response JSON data and the result will be used to match against the expected value. See jmespath.org for query language documentation." - } - } - } - } - }, - "uptime": { - "table": { - "headers": { - "responseTime": "Response time" - } - }, - "fallback": { - "title": "An uptime monitor is used to:", - "actionButton": "Create a monitor!", - "checks": [ - "Check if websites or servers are online & responsive", - "Alert teams about downtime or performance issues", - "Monitor HTTP endpoints, pings, containers & ports", - "Track historical uptime and reliability trends" - ] - }, - "filters": { - "search": { - "placeholder": "Search monitors..." - } - } - }, "checks": { - "table": { - "headers": { - "dateTime": "Date & time", - "statusCode": "Status code" - }, - "empty": "No down checks in this time range" - }, "selects": { "monitor": { "all": "All monitors" @@ -412,71 +875,246 @@ "down": "Down", "up": "Up" } - } - }, - "pageSpeed": { - "fallback": { - "checks": [ - "Report on the user experience of a page", - "Help analyze webpage speed", - "Give suggestions on how the page can be improved" - ], - "title": "A PageSpeed monitor is used to:", - "actionButton": "Let's create your first PageSpeed monitor!" }, "table": { + "empty": "No down checks in this time range", "headers": { - "pageSpeedScore": "PageSpeed score" + "dateTime": "Date & time", + "statusCode": "Status code" + } + } + }, + "common": { + "monitors": { + "actions": { + "configure": "Configure", + "delete": "Delete", + "details": "Details", + "incidents": "Incidents", + "openSite": "Open site", + "pause": "Pause", + "resume": "Resume" + }, + "statBoxes": { + "activeFor": "Active for", + "certificateExpiry": "Certificate expiry", + "lastCheck": "Last check", + "lastResponseTime": "Last response time" + }, + "status": { + "down": "down", + "initializing": "initializing", + "paused": "paused", + "total": "total", + "up": "up" + } + } + }, + "createMonitor": { + "form": { + "advanced": { + "description": "Optional settings for advanced use cases", + "option": { + "advancedMatching": { + "label": "Use advanced matching" + }, + "expectedValue": { + "description": "The expected value is used to match against response result, and the match determines the status.", + "label": "Expected value" + }, + "jsonPath": { + "description": "This expression will be evaluated against the response JSON data and the result will be used to match against the expected value. See jmespath.org for query language documentation.", + "label": "JSONPath expression" + }, + "matchMethod": { + "label": "Match method" + } + }, + "title": "Advanced settings" + }, + "frequency": { + "description": "How often do you want to check the status of this monitor?", + "option": { + "frequency": { + "label": "Check frequency" + } + }, + "title": "Check frequency" + }, + "general": { + "description": { + "docker": "Enter the Docker container name or ID. You can use either the container name (e.g., my-app) or the container ID (full 64-char ID or short ID).", + "game": "Enter the IP address or hostname and the port number to ping (e.g., 192.168.1.100 or example.com) and choose game type.", + "hardware": "Enter the URL of your infrastructure agent, the authorization secret, and a clear display name that appears on the dashboard.", + "http": "Enter the URL or IP to monitor (e.g., https://example.com/ or 192.168.1.100) and add a clear display name that appears on the dashboard.", + "pagespeed": "Enter the URL of the page to analyze with Google PageSpeed and add a clear display name that appears on the dashboard.", + "ping": "Enter the IP address or hostname to ping (e.g., 192.168.1.100 or example.com) and add a clear display name that appears on the dashboard.", + "port": "Enter the URL or IP of the server, the port number and a clear display name that appears on the dashboard." + }, + "option": { + "container": { + "label": "Container name/ID", + "placeholder": "my-app or abcd1234" + }, + "host": { + "label": "Host", + "placeholder": "192.168.1.100 or example.com" + }, + "name": { + "label": "Display name", + "placeholder": "e.g. My Website" + }, + "secret": { + "label": "Authorization secret", + "placeholder": "Enter your secret key" + }, + "url": { + "label": "URL", + "placeholder": "https://www.google.com" + } + }, + "title": "General settings" + }, + "ignoreTls": { + "description": "Configure TLS/SSL certificate validation for HTTPS connections.", + "option": { + "tls": { + "label": "Ignore TLS/SSL errors" + } + }, + "title": "TLS/SSL settings" + }, + "incidents": { + "description": "A sliding window is used to determine when a monitor goes down. The status of a monitor will only change when the percentage of checks in the sliding window meet the specified value.", + "option": { + "checks": { + "label": "Number of checks in sliding window" + }, + "percentage": { + "label": "What percentage of checks in the sliding window fail/succeed before monitor status changes?" + } + }, + "title": "Incidents" + }, + "notifications": { + "description": "Select the notification channels you want to use", + "title": "Notifications" + }, + "type": { + "description": "Select the type of check to perform", + "optionDocker": "Docker", + "optionDockerDescription": "Use Docker to monitor if a container is running.", + "optionGame": "Game", + "optionGameDescription": "Monitor if a specific game server is online.", + "optionHardware": "Hardware", + "optionHardwareDescription": "Monitor server hardware metrics like CPU, memory, and disk.", + "optionHttp": "HTTP(S)", + "optionHttpDescription": "Use HTTP(S) to monitor your website or API endpoint.", + "optionPagespeed": "PageSpeed", + "optionPagespeedDescription": "Analyze page performance using Google PageSpeed Insights.", + "optionPing": "Ping", + "optionPingDescription": "Use ICMP Ping to monitor if a server is online.", + "optionPort": "Port", + "optionPortDescription": "Monitor if a specific port on a server is open.", + "optionType": "Type", + "title": "Type" + } + } + }, + "incidents": { + "dialog": { + "details": { + "analysis": "Incident analysis", + "comment": "Comment:", + "detailsLabel": "Details", + "downtime": "Downtime:", + "message": "Message:", + "monitor": "Monitor:", + "overview": "Overview", + "resolutionDetails": "Resolution details", + "resolutionType": "Type:", + "resolutionTypes": { + "automatic": "Automatic", + "manual": "Manual" + }, + "resolve": "Resolve Incident", + "resolvedAt": "Resolved at:", + "resolvedBy": "Resolved by:", + "startedAt": "Started at:", + "status": "Status:", + "statusCode": "Status code:", + "timeline": "Timeline", + "title": "Incident details", + "url": "URL:" } }, - "charts": { - "common": { - "cls": "Cumulative Layout Shift (CLS)", - "fcp": "First Contentful Paint (FCP)", - "lcp": "Largest Contentful Paint (LCP)", - "si": "Speed Index (SI)", - "tbt": "Total Blocking Time (TBT)" + "filters": { + "allMonitors": "All monitors", + "clearFilters": "Clear Filters", + "monitor": "Monitor", + "resolutionType": "Resolution type", + "resolutionTypes": { + "automatic": "Automatic", + "manual": "Manual" + } + }, + "summaryCard": { + "activeIncidents": { + "active_one": "{{count}} Active incident", + "active_other": "{{count}} Active incidents", + "active_zero": "No active incidents", + "title": "Active Incidents" }, - "pie": { - "title": "Performance report" + "incidentStats": { + "avgResolutionTime": "Average resolution time", + "mostAffectedMonitor": "Most affected monitor", + "title": "Incident Statistics", + "totalIncidents": "Total incidents" }, - "legend": { - "title": "PageSpeed report", - "weight": "Weight" + "latestIncidents": { + "title": "Latest Incidents" + } + }, + "table": { + "actions": { + "details": "Details", + "goToMonitor": "Go to monitor", + "resolveManually": "Resolve Manually" + }, + "activeIncidents": "Active Incidents", + "headers": { + "endTime": "End Time", + "resolutionType": "Resolution Type", + "startTime": "Start Time", + "statusCode": "Status Code" + }, + "resolvedIncidents": "Resolved Incidents", + "status": { + "active": "Active", + "na": "N/A", + "resolved": "Resolved" } } }, "infrastructure": { + "charts": { + "labels": { + "cpu": "CPU usage", + "disk": "Disk usage", + "memory": "Memory usage", + "netBytesRecv": "{{name}} - Bytes Received", + "netBytesSent": "{{name}} - Bytes Sent", + "temp": "Temp" + } + }, "fallback": { + "actionButton": "Let's create your first infrastructure monitor!", "checks": [ "Track the performance of your servers", "Identify bottlenecks and optimize usage", "Ensure reliability with real-time monitoring" ], - "title": "An infrastructure monitor is used to:", - "actionButton": "Let's create your first infrastructure monitor!" - }, - "table": { - "headers": { - "cpu": "CPU", - "disk": "Disk", - "memory": "Memory" - } - }, - "tabs": { - "labels": { - "overview": "Overview", - "network": "Network" - } - }, - "statBoxes": { - "cpuPhysical": "CPU (Physical)", - "cpuLogical": "CPU (Logical)", - "cpuFrequency": "CPU Frequency", - "avgCpuTemperature": "Average CPU Temperature", - "memory": "Memory", - "disk": "Disk", - "os": "OS" + "title": "An infrastructure monitor is used to:" }, "gauges": { "cpu": { @@ -495,14 +1133,26 @@ "upperLabel": "Used" } }, - "charts": { + "statBoxes": { + "avgCpuTemperature": "Average CPU Temperature", + "cpuFrequency": "CPU Frequency", + "cpuLogical": "CPU (Logical)", + "cpuPhysical": "CPU (Physical)", + "disk": "Disk", + "memory": "Memory", + "os": "OS" + }, + "table": { + "headers": { + "cpu": "CPU", + "disk": "Disk", + "memory": "Memory" + } + }, + "tabs": { "labels": { - "memory": "Memory usage", - "cpu": "CPU usage", - "temp": "Temp", - "disk": "Disk usage", - "netBytesSent": "{{name}} - Bytes Sent", - "netBytesRecv": "{{name}} - Bytes Received" + "network": "Network", + "overview": "Overview" } } }, @@ -516,33 +1166,7 @@ ], "title": "Notification channles are used to:" }, - "table": { - "headers": { - "destination": "Destination" - } - }, "form": { - "notificationName": { - "description": "A descriptive name for the notification channel", - "optionName": "Channel name", - "placeholder": "e.g. Production Alerts", - "title": "Channel name" - }, - "type": { - "description": "Select the type of notification channel to create.", - "optionType": "Type", - "title": "Channel type" - }, - "homeServer": { - "description": "Select the home server for this notification channel.", - "optionHomeServer": "Home server", - "placeholder": "example.com", - "title": "Home server" - }, - "roomId": { - "optionRoomId": "Room ID", - "placeholder": "!abcdefg:matrix.org" - }, "accessToken": { "optionAccessToken": "Access token", "placeholder": "syt_YWxleF9ob2xsaWRheQ_VmtScmV0U2VjcmV0S2V5_abc123" @@ -554,102 +1178,77 @@ "placeholderWebhook": "https://your-server.com/webhook", "title": "Address" }, + "homeServer": { + "description": "Select the home server for this notification channel.", + "optionHomeServer": "Home server", + "placeholder": "example.com", + "title": "Home server" + }, + "matrix": { + "description": "Configure your Matrix homeserver connection for notifications.", + "title": "Matrix configuration" + }, + "notificationName": { + "description": "A descriptive name for the notification channel", + "optionName": "Channel name", + "placeholder": "e.g. Production Alerts", + "title": "Channel name" + }, "pagerDuty": { "description": "Your PagerDuty integration key for receiving alerts.", "optionIntegrationKey": "Integration key", "placeholder": "a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6", "title": "Integration key" }, - "matrix": { - "description": "Configure your Matrix homeserver connection for notifications.", - "title": "Matrix configuration" + "roomId": { + "optionRoomId": "Room ID", + "placeholder": "!abcdefg:matrix.org" + }, + "type": { + "description": "Select the type of notification channel to create.", + "optionType": "Type", + "title": "Channel type" + } + }, + "table": { + "headers": { + "destination": "Destination" } } }, - "incidents": { - "summaryCard": { - "activeIncidents": { - "title": "Active Incidents", - "active_zero": "No active incidents", - "active_one": "{{count}} Active incident", - "active_other": "{{count}} Active incidents" + "pageSpeed": { + "charts": { + "common": { + "cls": "Cumulative Layout Shift (CLS)", + "fcp": "First Contentful Paint (FCP)", + "lcp": "Largest Contentful Paint (LCP)", + "si": "Speed Index (SI)", + "tbt": "Total Blocking Time (TBT)" }, - "latestIncidents": { "title": "Latest Incidents" }, - "incidentStats": { - "title": "Incident Statistics", - "totalIncidents": "Total incidents", - "mostAffectedMonitor": "Most affected monitor", - "avgResolutionTime": "Average resolution time" + "legend": { + "title": "PageSpeed report", + "weight": "Weight" + }, + "pie": { + "title": "Performance report" } }, - + "fallback": { + "actionButton": "Let's create your first PageSpeed monitor!", + "checks": [ + "Report on the user experience of a page", + "Help analyze webpage speed", + "Give suggestions on how the page can be improved" + ], + "title": "A PageSpeed monitor is used to:" + }, "table": { - "activeIncidents": "Active Incidents", - "resolvedIncidents": "Resolved Incidents", "headers": { - "startTime": "Start Time", - "endTime": "End Time", - "resolutionType": "Resolution Type", - "statusCode": "Status Code" - }, - "status": { - "active": "Active", - "resolved": "Resolved", - "na": "N/A" - }, - "actions": { - "details": "Details", - "goToMonitor": "Go to monitor", - "resolveManually": "Resolve Manually" - } - }, - "filters": { - "monitor": "Monitor", - "allMonitors": "All monitors", - "resolutionType": "Resolution type", - "resolutionTypes": { - "automatic": "Automatic", - "manual": "Manual" - }, - "clearFilters": "Clear Filters" - }, - "dialog": { - "details": { - "title": "Incident details", - "resolve": "Resolve Incident", - "overview": "Overview", - "status": "Status:", - "monitor": "Monitor:", - "url": "URL:", - "analysis": "Incident analysis", - "timeline": "Timeline", - "detailsLabel": "Details", - "startedAt": "Started at:", - "statusCode": "Status code:", - "downtime": "Downtime:", - "message": "Message:", - "resolutionDetails": "Resolution details", - "resolvedAt": "Resolved at:", - "resolutionType": "Type:", - "resolvedBy": "Resolved by:", - "comment": "Comment:", - "resolutionTypes": { - "automatic": "Automatic", - "manual": "Manual" - } + "pageSpeedScore": "PageSpeed score" } } }, "statusPages": { - "title": "Status Pages", - "table": { - "headers": { - "name": "Status page name", - "url": "Public URL" - }, - "published": "Published", - "unpublished": "Unpublished" - }, "fallback": { "actionButton": "Create a status page!", "checks": [ @@ -659,671 +1258,149 @@ ], "title": "A status page is used to:" }, - "serviceStauts": "Service stauts", - "statusBar": { - "allUp": "All systems operational", - "allDown": "All systems down", - "degraded": "Degraded performance", - "unknown": "Unknown status" - }, "monitorsList": { "chartTypeHeatmap": "Heatmap", "chartTypeHistogram": "Histogram" - } - } - }, - "used": "Used", - "total": "Total", - "cores": "Cores", - "frequency": "Frequency", - "device": "Device", - "mountedOn": "Mounted on", - "status": "Status", - "cpuPhysical": "CPU (Physical)", - "cpuLogical": "CPU (Logical)", - "cpuFrequency": "CPU Frequency", - "avgCpuTemperature": "Average CPU Temperature", - "memory": "Memory", - "disk": "Disk", - "uptime": "Uptime", - "os": "OS", - "host": "Host", - "actions": "Actions", - "integrations": "Integrations", - "integrationsPrism": "Connect Prism to your favorite service.", - "integrationsSlack": "Slack", - "integrationsSlackInfo": "Connect with Slack and see incidents in a channel", - "integrationsDiscord": "Discord", - "integrationsDiscordInfo": "Connect with Discord and view incidents directly in a channel", - "integrationsZapier": "Zapier", - "integrationsZapierInfo": "Send all incidents to Zapier, and then see them everywhere", - "commonSave": "Save", - "createYour": "Create your", - "createMonitor": "Create monitor", - "pause": "Pause", - "resume": "Resume", - "editing": "Editing...", - "url": "URL", - "access": "Access", - "timezone": "Timezone", - "features": "Features", - "administrator": "Administrator?", - "loginHere": "Login here", - "displayName": "Display name", - "urlMonitor": "URL to monitor", - "portToMonitor": "Port to monitor", - "websiteMonitoring": "Website monitoring", - "websiteMonitoringDescription": "Use HTTP(s) to monitor your website or API endpoint.", - "pingMonitoring": "Ping monitoring", - "pingMonitoringDescription": "Check whether your server is available or not.", - "dockerContainerMonitoring": "Docker container monitoring", - "dockerContainerMonitoringDescription": "Check whether your Docker container is running or not.", - "portMonitoring": "Port monitoring", - "portMonitoringDescription": "Check whether your port is open or not.", - "createMaintenanceWindow": "Create maintenance window", - "createMaintenance": "Create maintenance", - "editMaintenance": "Edit maintenance", - "maintenanceWindowName": "Maintenance Window Name", - "friendlyNameInput": "Friendly name", - "friendlyNamePlaceholder": "Maintenance at __ : __ for ___ minutes", - "maintenanceRepeat": "Maintenance Repeat", - "maintenance": "maintenance", - "duration": "Duration", - "addMonitors": "Add monitors", - "window": "window", - "cancel": "Cancel", - "close": "Close", - "message": "Message", - "low": "low", - "high": "high", - "statusCode": "Status code", - "date&Time": "Date & Time", - "type": "Type", - "repeat": "Repeat", - "edit": "Edit", - "createA": "Create a", - "remove": "Remove", - "maintenanceWindowDescription": "During maintenance windows, all monitoring is suspended for selected monitors. No network checks will be performed, preventing any status updates or notifications from being triggered. Your monitors will appear frozen at their last known status, and status pages will display a maintenance indicator. Once the maintenance window ends, monitoring automatically resumes, and alerts will trigger if issues are detected. Maintenance periods do not count against uptime calculations.", - "startTime": "Start time", - "timeZoneInfo": "All dates and times are in GMT+0 time zone.", - "monitorsToApply": "Monitors to apply maintenance window to", - "nextWindow": "Next window", - "notFoundButton": "Go to the main dashboard", - "pageSpeedConfigureSettingsDescription": "Here you can select the URL of the host, together with the type of monitor.", - "monitorDisplayName": "Monitor display name", - "whenNewIncident": "When there is a new incident,", - "notifySMS": "Notify via SMS (coming soon)", - "notifyEmails": "Also notify via email to multiple addresses (coming soon)", - "seperateEmails": "You can separate multiple emails with a comma", - "checkFrequency": "Check frequency", - "matchMethod": "Match Method", - "expectedValue": "Expected value", - "deleteDialogTitle": "Do you really want to delete this monitor?", - "deleteDialogDescription": "Once deleted, this monitor cannot be retrieved.", - "pageSpeedMonitor": "PageSpeed monitor", - "shown": "Shown", - "ago": "ago", - "companyName": "Company name", - "pageSpeedDetailsPerformanceReport": "Values are estimated and may vary.", - "pageSpeedDetailsPerformanceReportCalculator": "See calculator", - "checkingEvery": "Checking every", - "statusPageCreateSettings": "If your status page is ready, you can mark it as published.", - "basicInformation": "Basic Information", - "statusPageCreateBasicInfoDescription": "Define company name and the subdomain that your status page points to.", - "statusPageCreateSelectTimeZoneDescription": "Select the timezone that your status page will be displayed in.", - "statusPageCreateAppearanceDescription": "Define the default look and feel of your public status page.", - "statusPageCreateSettingsCheckboxLabel": "Published and visible to the public", - "statusPageCreateBasicInfoStatusPageAddress": "Your status page address", - "statusPageCreateTabsContent": "Status page servers", - "statusPageCreateTabsContentDescription": "You can add any number of servers that you monitor to your status page. You can also reorder them for the best viewing experience.", - "statusPageCreateTabsContentFeaturesDescription": "Show more details on the status page", - "showCharts": "Show charts", - "showUptimePercentage": "Show uptime percentage", - "removeLogo": "Remove Logo", - "statusPageStatusServiceStatus": "Service status", - "deleteStatusPage": "Do you want to delete this status page?", - "deleteStatusPageConfirm": "Yes, delete status page", - "deleteStatusPageDescription": "Once deleted, your status page cannot be retrieved.", - "uptimeCreate": "The expected value is used to match against response result, and the match determines the status.", - "uptimeCreateJsonPath": "This expression will be evaluated against the reponse JSON data and the result will be used to match against the expected value. See", - "uptimeCreateJsonPathQuery": "for query language documentation.", - "maintenanceTableActionMenuDialogTitle": "Do you really want to remove this maintenance window?", - "infrastructureEditYour": "Edit your", - "infrastructureEditMonitor": "Save Infrastructure Monitor", - "infrastructureMonitorCreated": "Infrastructure monitor created successfully!", - "infrastructureMonitorUpdated": "Infrastructure monitor updated successfully!", - "errorInvalidTypeId": "Invalid notification type provided", - "errorInvalidFieldId": "Invalid field ID provided", - "inviteNoTokenFound": "No invite token found", - "pageSpeedWarning": "Warning: You haven't added a Google PageSpeed API key yet. Without it, the PageSpeed monitor won't function.", - "pageSpeedLearnMoreLink": "Click here", - "pageSpeedAddApiKey": "to add your API key.", - "update": "Update", - "invalidFileFormat": "Unsupported file format!", - "invalidFileSize": "File size is too large!", - "ClickUpload": "Click to upload", - "DragandDrop": "drag and drop", - "MaxSize": "Maximum Size", - "SupportedFormats": "Supported formats", - "FirstName": "First name", - "LastName": "Last name", - "EmailDescriptionText": "This is your current email address — it cannot be changed.", - "YourPhoto": "Profile photo", - "PhotoDescriptionText": "This photo will be displayed in your profile page.", - "save": "Save", - "DeleteDescriptionText": "This will remove the account and all associated data from the server. This isn't reversible.", - "DeleteAccountWarning": "Removing your account means you won't be able to sign in again and all your data will be removed. This isn't reversible.", - "DeleteWarningTitle": "Really remove this account?", - "bulkImport": { - "title": "Bulk Import", - "selectFileTips": "Select CSV file to upload", - "selectFileDescription": "You can download our or sample", - "selectFile": "Select File", - "parsingFailed": "Parsing failed", - "uploadSuccess": "Monitors created successfully!", - "validationFailed": "Validation failed", - "noFileSelected": "No file selected", - "fallbackPage": "Import a file to upload a list of servers in bulk", - "invalidFileType": "Invalid file type", - "uploadFailed": "Upload failed" - }, - "DeleteAccountTitle": "Remove account", - "DeleteAccountButton": "Remove account", - "publicLink": "Public link", - "maskedPageSpeedKeyPlaceholder": "*************************************", - "reset": "Reset", - "ignoreTLSError": "Ignore TLS/SSL error", - "tlsErrorIgnored": "TLS/SSL errors ignored", - "ignoreTLSErrorDescription": "Ignore TLS/SSL errors and continue checking the website's availability", - "createNew": "Create new", - "greeting": { - "prepend": "Hey there", - "append": "The afternoon is your playground—let's make it epic!", - "overview": "Here's an overview of your {{type}} monitors." - }, - "roles": { - "superAdmin": "Super admin", - "admin": "Admin", - "teamMember": "Team member", - "demoUser": "Demo user" - }, - "teamPanel": { - "teamMembers": "Team members", - "filter": { - "all": "All", - "member": "Member" - }, - "inviteTeamMember": "Invite a team member", - "inviteNewTeamMember": "Invite new team member", - "inviteDescription": "When you add a new team member, they will get access to all monitors.", - "email": "Email", - "selectRole": "Select role", - "inviteLink": "Invite link", - "cancel": "Cancel", - "noMembers": "There are no team members with this role", - "getToken": "Get token", - "emailToken": "E-mail token", - "table": { - "headers": { - "name": "Status page name", - "url": "Public URL" }, - "name": "Name", - "email": "Email", - "role": "Role", - "created": "Created" + "serviceStauts": "Service stauts", + "statusBar": { + "allDown": "All systems down", + "allUp": "All systems operational", + "degraded": "Degraded performance", + "unknown": "Unknown status" + }, + "table": { + "headers": { + "name": "Status page name", + "url": "Public URL" + }, + "published": "Published", + "unpublished": "Unpublished" + }, + "title": "Status Pages" }, - "addTeamMember": { - "addMemberMenu": "Add Team Member", - "title": "Register new team member", - "description": "Create a new user and share the credentials with them. This method gives the member immediate access to all monitors.", - "addButton": "Add Member" - }, - "register": "Register a team member", - "registerToast": { - "success": "User created, share credentials with the member securely.", - "dbUserExists": "User already exists.", - "unknownError": "Unknown error occurred." - }, - "registerTeamMember": { - "title": "Register team member", - "auth": { - "common": { - "inputs": { - "firstName": { - "errors": { - "empty": "Please enter a name", - "pattern": "Name must contain only letters, spaces, apostrophes, or hyphens" - } - }, - "lastName": { - "errors": { - "empty": "Please enter a surname", - "pattern": "Surname must contain only letters, spaces, apostrophes, or hyphens" - } - }, - "email": { - "errors": { - "empty": "To continue, please enter an email address", - "invalid": "Please recheck validity of entered email address" - } - }, - "role": { - "errors": { - "empty": "Role is required" - } - } - } + "uptime": { + "fallback": { + "actionButton": "Create a monitor!", + "checks": [ + "Check if websites or servers are online & responsive", + "Alert teams about downtime or performance issues", + "Monitor HTTP endpoints, pings, containers & ports", + "Track historical uptime and reliability trends" + ], + "title": "An uptime monitor is used to:" + }, + "filters": { + "search": { + "placeholder": "Search monitors..." + } + }, + "table": { + "headers": { + "responseTime": "Response time" } } - }, - "role": "Role", - "changeTeamPassword": { - "changePasswordMenu": "Reset Password", - "title": "Reset team member password", - "description": "Create a new password for this team member. You will need to share the password with them securely.", - "success": "Password successfully reset. Make sure to provide the credentials to the member in a secure way." } }, - "monitorState": { - "paused": "Paused", - "resumed": "Resumed", - "active": "Active" + "pageSpeed": { + "fallback": { + "actionButton": "Let's create your first PageSpeed monitor!", + "checks": [ + "Report on the user experience of a page", + "Help analyze webpage speed", + "Give suggestions on how the page can be improved" + ], + "title": "A PageSpeed monitor is used to:" + } }, - "menu": { - "uptime": "Uptime", - "pagespeed": "Pagespeed", - "infrastructure": "Infrastructure", - "incidents": "Incidents", - "statusPages": "Status pages", - "maintenance": "Maintenance", - "integrations": "Integrations", - "settings": "Settings", - "support": "Support", - "discussions": "Discussions", - "docs": "Docs", - "changelog": "Changelog", - "profile": "Profile", - "password": "Password", - "team": "Team", - "logOut": "Log out", - "notifications": "Notifications", - "logs": "Logs", - "checks": "Checks" - }, - "settingsEmailUser": "Email user - Username for authentication, overrides email address if specified", - "state": "State", - "statusBreadCrumbsStatusPages": "Status Pages", - "statusBreadCrumbsDetails": "Details", - "commonSaving": "Saving...", - "navControls": "Controls", - "incidentsPageTitle": "Incidents", - "checksPageTitle": "Checks", + "pageSpeedAddApiKey": "to add your API key.", + "pageSpeedConfigureSettingsDescription": "Here you can select the URL of the host, together with the type of monitor.", + "pageSpeedDetailsPerformanceReport": "Values are estimated and may vary.", + "pageSpeedDetailsPerformanceReportCalculator": "See calculator", + "pageSpeedLearnMoreLink": "Click here", + "pageSpeedLighthouseAPI": "Use the Lighthouse PageSpeed API to monitor your website", + "pageSpeedMonitor": "PageSpeed monitor", + "pageSpeedWarning": "Warning: You haven't added a Google PageSpeed API key yet. Without it, the PageSpeed monitor won't function.", "passwordPanel": { - "passwordChangedSuccess": "Your password was changed successfully.", - "passwordInputIncorrect": "Your password input was incorrect.", + "confirmNewPassword": "Confirm new password", "currentPassword": "Current password", "enterCurrentPassword": "Enter your current password", - "newPassword": "New password", "enterNewPassword": "Enter your new password", - "confirmNewPassword": "Confirm new password", + "newPassword": "New password", + "passwordChangedSuccess": "Your password was changed successfully.", + "passwordInputIncorrect": "Your password input was incorrect.", "passwordRequirements": "New password must contain at least 8 characters and must have at least one uppercase letter, one lowercase letter, one number and one special character (!?@#$%^&*()-_=+[]{}|;:'\",./\\~`).", "saving": "Saving..." }, - "emailSent": "Email sent successfully", - "failedToSendEmail": "Failed to send email", - "settingsTestEmailSuccess": "Test email sent successfully", - "settingsTestEmailFailed": "Failed to send test email", - "settingsTestEmailFailedWithReason": "Failed to send test email: {{reason}}", - "settingsTestEmailUnknownError": "Unknown error", - "statusMsg": { - "paused": "Monitoring is paused.", - "up": "Your site is up.", - "down": "Your site is down.", - "pending": "Pending..." - }, - "uptimeGeneralInstructions": { - "http": "Enter the URL or IP to monitor (e.g., https://example.com/ or 192.168.1.100) and add a clear display name that appears on the dashboard.", - "ping": "Enter the IP address or hostname to ping (e.g., 192.168.1.100 or example.com) and add a clear display name that appears on the dashboard.", - "docker": "Enter the Docker container name or ID. You can use either the container name (e.g., my-app) or the container ID (full 64-char ID or short ID).", - "port": "Enter the URL or IP of the server, the port number and a clear display name that appears on the dashboard.", - "game": "Enter the IP address or hostname and the port number to ping (e.g., 192.168.1.100 or example.com) and choose game type.", - "https": "Enter the URL or IP to monitor (e.g., https://example.com/ or 192.168.1.100) and add a clear display name that appears on the dashboard." - }, - "auth": { - "common": { - "navigation": { - "continue": "Continue", - "back": "Back" - }, - "inputs": { - "email": { - "label": "Email", - "placeholder": "jordan.ellis@domain.com", - "errors": { - "empty": "To continue, please enter your email address", - "invalid": "Please recheck validity of entered email address" - } - }, - "password": { - "label": "Password", - "rules": { - "length": { - "beginning": "Must be at least", - "highlighted": "8 characters long" - }, - "special": { - "beginning": "Must contain at least", - "highlighted": "one special character (!?@#$%^&*()-_=+[]{}|;:'\",./\\~`)" - }, - "number": { - "beginning": "Must contain at least", - "highlighted": "one number" - }, - "uppercase": { - "beginning": "Must contain at least", - "highlighted": "one upper character" - }, - "lowercase": { - "beginning": "Must contain at least", - "highlighted": "one lower character" - }, - "match": { - "beginning": "Passwords", - "highlighted": "must match" - } - }, - "errors": { - "empty": "Please enter your password", - "length": "Password must be at least 8 characters long", - "uppercase": "Password must contain at least 1 uppercase letter", - "lowercase": "Password must contain at least 1 lowercase letter", - "number": "Password must contain at least 1 number", - "special": "Password must contain at least 1 special character (!?@#$%^&*()-_=+[]{}|;:'\",./\\~`)", - "incorrect": "The password you provided does not match our records" - } - }, - "passwordConfirm": { - "label": "Confirm password", - "placeholder": "Re-enter password to confirm", - "errors": { - "empty": "Please enter your password again for confirmation (helps with typos)", - "different": "Entered passwords don't match, so one of them is probably mistyped" - } - }, - "firstName": { - "label": "Name", - "placeholder": "Jordan", - "errors": { - "empty": "Please enter your name", - "length": "Name must be less than 50 characters", - "pattern": "Name must contain only letters, spaces, apostrophes, or hyphens" - } - }, - "lastName": { - "label": "Surname", - "placeholder": "Ellis", - "errors": { - "empty": "Please enter your surname", - "length": "Surname must be less than 50 characters", - "pattern": "Surname must contain only letters, spaces, apostrophes, or hyphens" - } - } - }, - "errors": { - "validation": "Error validating data." - }, - "fields": { - "password": { - "errors": { - "incorrect": "The password you provided does not match our records" - } - }, - "role": { - "errors": { - "min": "At least one role is required" - } - } - } - }, - "login": { - "heading": "Log in to continue", - "subheadings": { - "stepOne": "Enter your email", - "stepTwo": "Enter your password" - }, - "links": { - "forgotPassword": "Forgot password?", - "register": "Do not have an account?", - "forgotPasswordLink": "Reset password", - "registerLink": "Register here" - }, - "toasts": { - "success": "Welcome back! You're successfully logged in.", - "incorrectPassword": "Incorrect password" - }, - "errors": { - "password": { - "incorrect": "The password you provided does not match our records" - } - }, - "welcome": "Welcome back to Checkmate!" - }, - "registration": { - "heading": { - "superAdmin": "Create super admin", - "user": "Sign Up" - }, - "subheadings": { - "stepOne": "Enter your personal details", - "stepTwo": "Enter your email", - "stepThree": "Create your password" - }, - "description": { - "superAdmin": "Create your super admin account to get started", - "user": "Sign up as a user and ask super admin for access to your monitors" - }, - "gettingStartedButton": { - "superAdmin": "Create super admin account", - "user": "Sign up regular user" - }, - "termsAndPolicies": "By creating an account, you agree to our Terms of Service and Privacy Policy.", - "links": { - "login": "Already have an account? Log In" - }, - "toasts": { - "success": "Welcome! Your account was created successfully." - }, - "welcome": "Welcome to Checkmate!" - }, - "forgotPassword": { - "heading": "Forgot password?", - "subheadings": { - "stepOne": "No worries, we'll send you reset instructions.", - "stepTwo": "We sent a password reset link to ", - "stepThree": "Your new password must be different from previously used passwords.", - "stepFour": "Your password has been successfully reset. Click below to log in magically." - }, - "buttons": { - "openEmail": "Open email app", - "resetPassword": "Reset password" - }, - "imageAlts": { - "passwordKey": "Password key icon", - "email": "Email icon", - "lock": "Lock icon", - "passwordConfirm": "Password confirm icon" - }, - "links": { - "login": "Go back to Log In", - "resend": "Didn't receive the email? Click to resend" - }, - "toasts": { - "sent": "Instructions sent to .", - "emailNotFound": "Email not found.", - "redirect": "Redirecting in ...", - "success": "Your password was reset successfully.", - "error": "Unable to reset password. Please try again later or contact support." - } - } - }, - "errorPages": { - "serverUnreachable": { - "toasts": { - "reconnected": "Successfully reconnected to the server.", - "stillUnreachable": "Server is still unreachable. Please try again later." - }, - "alertBox": "Server Connection Error", - "description": "We're unable to connect to the server. Please check your internet connection or verify your deployment configuration if the problem persists.", - "retryButton": { - "default": "Retry connection", - "processing": "Connecting..." - } - } - }, - "createNotifications": { - "title": "Create notification channel", - "nameSettings": { - "title": "Name", - "description": "A descriptive name for your integration.", - "nameLabel": "Name", - "namePlaceholder": "e.g. Slack notifications" - }, - "typeSettings": { - "title": "Type", - "description": "Select the type of notification channel you want to create.", - "typeLabel": "Type" - }, - "emailSettings": { - "title": "Email", - "description": "Destination email addresses.", - "emailLabel": "Email address", - "emailPlaceholder": "e.g. john@example.com" - }, - "slackSettings": { - "title": "Slack", - "description": "Configure your Slack webhook here", - "webhookLabel": "Slack webhook URL", - "webhookPlaceholder": "https://hooks.slack.com/services/..." - }, - "pagerdutySettings": { - "title": "PagerDuty", - "description": "Configure your PagerDuty integration here", - "integrationKeyLabel": "Integration key", - "integrationKeyPlaceholder": "1234567890" - }, - "discordSettings": { - "title": "Discord", - "description": "Configure your Discord webhook here", - "webhookLabel": "Discord Webhook URL", - "webhookPlaceholder": "https://your-server.com/webhook" - }, - "webhookSettings": { - "title": "Webhook", - "description": "Configure your webhook here", - "webhookLabel": "Webhook URL", - "webhookPlaceholder": "https://your-server.com/webhook" - }, - "testNotification": "Test notification", - "dialogDeleteTitle": "Are you sure you want to delete this notification?", - "dialogDeleteConfirm": "Delete" - }, - "notificationConfig": { - "title": "Notifications", - "description": "Select the notifications channels you want to use", - "placeholder": "Search notifications..." - }, - "monitorStatus": { - "checkingEvery": "Checking every {{interval}}", - "withCaptureAgent": "with Capture agent {{version}}", - "up": "up", - "down": "down", - "paused": "paused" - }, - "advancedMatching": "Advanced matching", - "sendTestNotifications": "Send test notifications", - "selectAll": "Select all", - "showAdminLoginLink": "Show \"Administrator? Login Here\" link on the status page", - "logsPage": { - "title": "Logs", - "description": "System logs - last 1000 lines", - "tabs": { - "queue": "Job queue", - "logs": "Server logs", - "diagnostics": "Diagnostics" - }, - "toast": { - "fetchLogsSuccess": "Logs fetched successfully" - }, - "logLevelSelect": { - "title": "Log level", - "values": { - "all": "All", - "info": "Info", - "warn": "Warn", - "error": "Error", - "debug": "Debug" - } - }, - "table": { - "headers": { - "name": "Status page name", - "url": "Public URL" - }, - "timestamp": "Timestamp", - "level": "Level", - "service": "Service", - "method": "Method", - "message": "Message", - "logs": "logs" - }, - "noLogs": "No logs found" - }, + "pause": "Pause", + "PhotoDescriptionText": "This photo will be displayed in your profile page.", + "pingMonitoring": "Ping monitoring", + "pingMonitoringDescription": "Check whether your server is available or not.", + "portMonitoring": "Port monitoring", + "portMonitoringDescription": "Check whether your port is open or not.", + "portToMonitor": "Port to monitor", + "publicLink": "Public link", "queuePage": { - "title": "Queue", - "refreshButton": "Refresh", - "flushButton": "Flush queue", - "jobTable": { - "title": "Jobs currently in queue", - "idHeader": "Monitor ID", - "urlHeader": "URL", - "typeHeader": "Type", - "activeHeader": "Active", - "lockedAtHeader": "Locked at", - "runCountHeader": "Run count", - "failCountHeader": "Fail count", - "lastRunHeader": "Last run at", - "lastFinishedAtHeader": "Last finished at", - "lastRunTookHeader": "Last run took", - "intervalHeader": "Interval" - }, - "metricsTable": { - "title": "Queue metrics", - "metricHeader": "Metric", - "valueHeader": "Value" - }, "failedJobTable": { - "title": "Failed jobs", - "monitorIdHeader": "Monitor ID", - "monitorUrlHeader": "Monitor URL", "failCountHeader": "Fail count", "failedAtHeader": "Last failed at", - "failReasonHeader": "Fail reason" - } + "failReasonHeader": "Fail reason", + "monitorIdHeader": "Monitor ID", + "monitorUrlHeader": "Monitor URL", + "title": "Failed jobs" + }, + "flushButton": "Flush queue", + "jobTable": { + "activeHeader": "Active", + "failCountHeader": "Fail count", + "idHeader": "Monitor ID", + "intervalHeader": "Interval", + "lastFinishedAtHeader": "Last finished at", + "lastRunHeader": "Last run at", + "lastRunTookHeader": "Last run took", + "lockedAtHeader": "Locked at", + "runCountHeader": "Run count", + "title": "Jobs currently in queue", + "typeHeader": "Type", + "urlHeader": "URL" + }, + "metricsTable": { + "metricHeader": "Metric", + "title": "Queue metrics", + "valueHeader": "Value" + }, + "refreshButton": "Refresh", + "title": "Queue" }, - "export": { - "title": "Export Monitors", - "success": "Monitors exported successfully!", - "failed": "Failed to export monitors" - }, - "monitorActions": { - "title": "Export/Import", - "import": "Import Monitors", - "export": "Export Monitors", - "deleteSuccess": "Monitor deleted successfully", - "deleteFailed": "Failed to delete monitor", - "details": "Details" + "rate": "Rate", + "remove": "Remove", + "removeLogo": "Remove Logo", + "repeat": "Repeat", + "reset": "Reset", + "response": "RESPONSE", + "responseTime": "Response time", + "responseTimeBreakdown": "Response time breakdown", + "resume": "Resume", + "roles": { + "admin": "Admin", + "demoUser": "Demo user", + "superAdmin": "Super admin", + "teamMember": "Team member" }, + "save": "Save", + "selectAll": "Select all", + "selectInterface": "Select Interface", + "sendTestNotifications": "Send test notifications", + "seperateEmails": "You can separate multiple emails with a comma", + "settingsAppearance": "Appearance", + "settingsDisabled": "Disabled", + "settingsDisplayTimezone": "Display timezone", + "settingsEmailUser": "Email user - Username for authentication, overrides email address if specified", + "settingsFailedToClearStats": "Failed to clear stats", + "settingsFailedToDeleteMonitors": "Failed to delete all monitors", + "settingsFailedToSave": "Failed to save settings", + "settingsGeneralSettings": "General settings", + "settingsMonitorsDeleted": "Successfully deleted all monitors", "settingsPage": { "aboutSettings": { "labelDevelopedBy": "Developed by Bluewave Labs", @@ -1357,10 +1434,14 @@ "title": "Email", "toastEmailRequiredFieldsError": "Email address, host, port and password are required" }, + "globalThresholds": { + "description": "Configure global CPU, Memory, Disk, and Temperature thresholds. If a value is provided, it will automatically be enabled for monitoring.", + "title": "Global Thresholds" + }, "pageSpeedSettings": { "description": "Enter your Google PageSpeed API key to enable Google PageSpeed monitoring. Click Reset to update the key.", - "labelApiKeySet": "API key is set. Click Reset to change it.", "labelApiKey": "PageSpeed API key", + "labelApiKeySet": "API key is set. Click Reset to change it.", "title": "Google PageSpeed API key" }, "saveButtonLabel": "Save", @@ -1390,12 +1471,12 @@ }, "title": "Settings", "uiSettings": { + "chartTypeHeatmap": "Heatmap", + "chartTypeHistogram": "Histogram", "description": "Switch between light and dark mode, or change user interface language.", + "labelChartType": "Chart type", "labelLanguage": "Language", "labelTheme": "Theme mode", - "labelChartType": "Chart type", - "chartTypeHistogram": "Histogram", - "chartTypeHeatmap": "Heatmap", "title": "Appearance" }, "urlSettings": { @@ -1404,296 +1485,215 @@ "selectDisabled": "Disabled", "selectEnabled": "Enabled", "title": "Monitor IP/URL on Status Page" - }, - "globalThresholds": { - "title": "Global Thresholds", - "description": "Configure global CPU, Memory, Disk, and Temperature thresholds. If a value is provided, it will automatically be enabled for monitoring." } }, - "statusPageCreate": { - "buttonSave": "Save" - }, - "incidentsOptionsHeaderFilterResolved": "Resolved", "settingsSave": "Save", - "statusPageCreateAppearanceTitle": "Appearance", - "confirmPassword": "Confirm password", - "monitorHooks": { - "failureAddDemoMonitors": "Failed to add demo monitors", - "successAddDemoMonitors": "Successfully added demo monitors" + "settingsStatsCleared": "Stats cleared successfully", + "settingsSuccessSaved": "Settings saved successfully", + "settingsTestEmailFailed": "Failed to send test email", + "settingsTestEmailFailedWithReason": "Failed to send test email: {{reason}}", + "settingsTestEmailSuccess": "Test email sent successfully", + "settingsTestEmailUnknownError": "Unknown error", + "showAdminLoginLink": "Show \"Administrator? Login Here\" link on the status page", + "showCharts": "Show charts", + "shown": "Shown", + "showUptimePercentage": "Show uptime percentage", + "starPromptDescription": "See the latest releases and help grow the community on GitHub", + "starPromptTitle": "Star Checkmate", + "startTime": "Start time", + "state": "State", + "status": "Status", + "statusBreadCrumbsDetails": "Details", + "statusBreadCrumbsStatusPages": "Status Pages", + "statusCode": "Status code", + "statusMsg": { + "down": "Your site is down.", + "paused": "Monitoring is paused.", + "pending": "Pending...", + "up": "Your site is up." }, - "settingsAppearance": "Appearance", - "settingsDisplayTimezone": "Display timezone", - "settingsGeneralSettings": "General settings", - "incidentsOptionsHeaderTotalIncidents": "Total Incidents", "statusPage": { - "deleteSuccess": "Status page deleted successfully", - "deleteFailed": "Failed to delete status page", - "createSuccess": "Status page created successfully", - "updateSuccess": "Status page updated successfully", - "generalSettings": "General settings", "contents": "Contents", + "createSuccess": "Status page created successfully", + "deleteFailed": "Failed to delete status page", + "deleteSuccess": "Status page deleted successfully", "fallback": { + "actionButton": "Let's create your first status page!", "checks": [ "Monitor and display the health of your services in real time", "Track multiple services and share their status", "Keep users informed about outages and performance" ], - "title": "A status page is used to:", - "actionButton": "Let's create your first status page!" - } + "title": "A status page is used to:" + }, + "generalSettings": "General settings", + "updateSuccess": "Status page updated successfully" + }, + "statusPageCreate": { + "buttonSave": "Save" + }, + "statusPageCreateAppearanceDescription": "Define the default look and feel of your public status page.", + "statusPageCreateAppearanceTitle": "Appearance", + "statusPageCreateBasicInfoDescription": "Define company name and the subdomain that your status page points to.", + "statusPageCreateBasicInfoStatusPageAddress": "Your status page address", + "statusPageCreateSelectTimeZoneDescription": "Select the timezone that your status page will be displayed in.", + "statusPageCreateSettings": "If your status page is ready, you can mark it as published.", + "statusPageCreateSettingsCheckboxLabel": "Published and visible to the public", + "statusPageCreateTabsContent": "Status page servers", + "statusPageCreateTabsContentDescription": "You can add any number of servers that you monitor to your status page. You can also reorder them for the best viewing experience.", + "statusPageCreateTabsContentFeaturesDescription": "Show more details on the status page", + "statusPageStatusServiceStatus": "Service status", + "submit": "Submit", + "SupportedFormats": "Supported formats", + "tcpConnection": "TCP connection", + "teamPanel": { + "addTeamMember": { + "addButton": "Add Member", + "addMemberMenu": "Add Team Member", + "description": "Create a new user and share the credentials with them. This method gives the member immediate access to all monitors.", + "title": "Register new team member" + }, + "cancel": "Cancel", + "changeTeamPassword": { + "changePasswordMenu": "Reset Password", + "description": "Create a new password for this team member. You will need to share the password with them securely.", + "success": "Password successfully reset. Make sure to provide the credentials to the member in a secure way.", + "title": "Reset team member password" + }, + "email": "Email", + "emailToken": "E-mail token", + "filter": { + "all": "All", + "member": "Member" + }, + "getToken": "Get token", + "inviteDescription": "When you add a new team member, they will get access to all monitors.", + "inviteLink": "Invite link", + "inviteNewTeamMember": "Invite new team member", + "inviteTeamMember": "Invite a team member", + "noMembers": "There are no team members with this role", + "register": "Register a team member", + "registerTeamMember": { + "auth": { + "common": { + "inputs": { + "email": { + "errors": { + "empty": "To continue, please enter an email address", + "invalid": "Please recheck validity of entered email address" + } + }, + "firstName": { + "errors": { + "empty": "Please enter a name", + "pattern": "Name must contain only letters, spaces, apostrophes, or hyphens" + } + }, + "lastName": { + "errors": { + "empty": "Please enter a surname", + "pattern": "Surname must contain only letters, spaces, apostrophes, or hyphens" + } + }, + "role": { + "errors": { + "empty": "Role is required" + } + } + } + } + }, + "title": "Register team member" + }, + "registerToast": { + "dbUserExists": "User already exists.", + "success": "User created, share credentials with the member securely.", + "unknownError": "Unknown error occurred." + }, + "role": "Role", + "selectRole": "Select role", + "table": { + "created": "Created", + "email": "Email", + "headers": { + "name": "Status page name", + "url": "Public URL" + }, + "name": "Name", + "role": "Role" + }, + "teamMembers": "Team members" }, "testNotificationsDisabled": "There are no notifications setup for this monitor. You need to add one by clicking 'Configure' button", - "incidentsTableResolvedAt": "Resolved at", - "incidentsTableActionResolve": "Resolve", - "checkHooks": { - "failureResolveOne": "Failed to resolve incident.", - "failureResolveAll": "Failed to resolve all incidents.", - "failureResolveMonitor": "Failed to resolve monitor incidents." - }, - "checkFormError": "Please check the form for errors.", - "diagnosticsPage": { - "diagnosticDescription": "System diagnostics", - "statsDescription": "System statistics", - "gauges": { - "heapAllocationTitle": "Heap allocation", - "heapAllocationSubtitle": "% of available memory", - "heapUsageTitle": "Heap usage", - "heapUsageSubtitle": "% of available memory", - "heapUtilizationTitle": "Heap utilization", - "heapUtilizationSubtitle": "% of allocated", - "instantCpuUsageTitle": "Instant CPU usage", - "instantCpuUsageSubtitle": "% of 1s used by CPU" - }, - "stats": { - "eventLoopDelayTitle": "Event loop delay", - "uptimeTitle": "Uptime", - "usedHeapSizeTitle": "Used heap size", - "totalHeapSizeTitle": "Total heap size", - "osMemoryLimitTitle": "OS Memory Limit" - } - }, - "pageSpeedLighthouseAPI": "Use the Lighthouse PageSpeed API to monitor your website", "time": { - "fifteenSeconds": "15 seconds", - "thirtySeconds": "30 seconds", "fifteenMinutes": "15 minutes", - "thirtyMinutes": "30 minutes", - "threeMinutes": "3 minutes", + "fifteenSeconds": "15 seconds", "fiveMinutes": "5 minutes", - "tenMinutes": "10 minutes", - "twentyMinutes": "20 minutes", - "oneHour": "1 hour", - "oneDay": "1 day", - "oneWeek": "1 week", "fourMinutes": "4 minutes", + "oneDay": "1 day", + "oneHour": "1 hour", "oneMinute": "1 minute", + "oneWeek": "1 week", + "tenMinutes": "10 minutes", + "thirtyMinutes": "30 minutes", + "thirtySeconds": "30 seconds", + "threeMinutes": "3 minutes", + "twentyMinutes": "20 minutes", "twoMinutes": "2 minutes" }, - "general": { - "noOptionsFound": "No {{unit}} found" + "timeToFirstByte": "Time to first byte", + "timezone": "Timezone", + "timeZoneInfo": "All dates and times are in GMT+0 time zone.", + "title": "Title", + "tlsErrorIgnored": "TLS/SSL errors ignored", + "tlsHandshake": "TLS handshake", + "total": "Total", + "type": "Type", + "update": "Update", + "uptime": "Uptime", + "uptimeAdvancedMatching": { + "jsonPath": "JSON Path" }, - "infrastructureMonitor": { - "fallback": { - "checks": [ - "Track the performance of your servers", - "Identify bottlenecks and optimize usage", - "Ensure reliability with real-time monitoring" - ], - "title": "An infrastructure monitor is used to:", - "actionButton": "Let's create your first infrastructure monitor!" - } - }, - "maintenanceWindow": { - "fallback": { - "checks": [ - "Mark your maintenance periods", - "Eliminate any misunderstandings", - "Stop sending alerts in maintenance windows" - ], - "title": "A maintenance window is used to:", - "actionButton": "Let's create your first maintenance window!" - } - }, - "pageSpeed": { - "fallback": { - "checks": [ - "Report on the user experience of a page", - "Help analyze webpage speed", - "Give suggestions on how the page can be improved" - ], - "title": "A PageSpeed monitor is used to:", - "actionButton": "Let's create your first PageSpeed monitor!" - } + "uptimeCreate": "The expected value is used to match against response result, and the match determines the status.", + "uptimeCreateJsonPath": "This expression will be evaluated against the reponse JSON data and the result will be used to match against the expected value. See", + "uptimeCreateJsonPathQuery": "for query language documentation.", + "uptimeGeneralInstructions": { + "docker": "Enter the Docker container name or ID. You can use either the container name (e.g., my-app) or the container ID (full 64-char ID or short ID).", + "game": "Enter the IP address or hostname and the port number to ping (e.g., 192.168.1.100 or example.com) and choose game type.", + "http": "Enter the URL or IP to monitor (e.g., https://example.com/ or 192.168.1.100) and add a clear display name that appears on the dashboard.", + "https": "Enter the URL or IP to monitor (e.g., https://example.com/ or 192.168.1.100) and add a clear display name that appears on the dashboard.", + "ping": "Enter the IP address or hostname to ping (e.g., 192.168.1.100 or example.com) and add a clear display name that appears on the dashboard.", + "port": "Enter the URL or IP of the server, the port number and a clear display name that appears on the dashboard." }, "uptimeMonitor": { "fallback": { + "actionButton": "Let's create your first uptime monitor!", "checks": [ "Check if websites or servers are online & responsive", "Alert teams about downtime or performance issues", "Monitor HTTP endpoints, pings, containers & ports", "Track historical uptime and reliability trends" ], - "title": "An uptime monitor is used to:", - "actionButton": "Let's create your first uptime monitor!" + "title": "An uptime monitor is used to:" } }, - "editUserPage": { - "form": { - "email": "Email", - "firstName": "First name", - "lastName": "Last name", - "role": "Roles", - "save": "Save" - }, - "table": { - "headers": { - "name": "Status page name", - "url": "Public URL" - }, - "actionHeader": "Action", - "roleHeader": "Role" - }, - "title": "Edit user", - "toast": { - "successUserUpdate": "User updated successfully", - "validationErrors": "Validation errors" - } - }, - "incidentsPageActionResolveMonitor": "Resolve monitor incidents", - "checksPageActionResolveMonitor": "Resolve monitor checks", - "incidentsPageActionResolveAll": "Resolve all incidents", - "checksPageActionResolveAllMonitor": "Resolve all checks", - "matchMethodOptions": { - "equal": "Equal", - "equalPlaceholder": "success", - "include": "Include", - "includePlaceholder": "ok", - "regex": "Regex", - "regexPlaceholder": "^(success|ok)$", - "text": "Match Method" - }, - "monitorType": { - "docker": { - "label": "Container Name/ID", - "namePlaceholder": "My Container", - "placeholder": "my-app or abcd1234" - }, - "http": { - "label": "URL to monitor", - "namePlaceholder": "Google", - "placeholder": "google.com" - }, - "ping": { - "label": "IP address to monitor", - "namePlaceholder": "Google", - "placeholder": "1.1.1.1" - }, - "port": { - "label": "URL to monitor", - "namePlaceholder": "Localhost:5173", - "placeholder": "localhost" - }, - "game": { - "label": "URL to monitor", - "namePlaceholder": "localhost:5173", - "placeholder": "localhost" - } - }, - "uptimeAdvancedMatching": { - "jsonPath": "JSON Path" - }, - "bytesPerSecond": "Bytes per second", - "bytesReceived": "Bytes Received", - "bytesSent": "Bytes Sent", - "chooseGame": "Choose game", - "createMonitorPage": { - "incidentConfigDescription": "A sliding window is used to determine when a monitor goes down. The status of a monitor will only change when the percentage of checks in the sliding window meet the specified value.", - "incidentConfigStatusWindowLabel": "How many checks should be in the sliding window?", - "incidentConfigStatusWindowThresholdLabel": "What percentage of checks in the sliding window fail/succeed before monitor status changes?", - "incidentConfigTitle": "Incidents", - "incidentConfigDescriptionV2": "Number of consecutive checks needed to change monitor status. Maximum 25", - "incidentConfigStatusCheckNumber": "How many checks before status change?", - "intervalTitle": "Check interval", - "intervalDescription": "How often the monitor should be checked." - }, - "dataRate": "Data Rate", - "dataReceived": "Data Received", - "dataSent": "Data Sent", - "details": "Details", - "drops": "Drops", - "errors": "Errors", - "errorsIn": "Errors In", - "errorsOut": "Errors Out", - "gameServerMonitoring": "Game Server Monitoring", - "gameServerMonitoringDescription": "Check whether your game server is running or not", - "network": "Network", - "networkDrops": "Network Drops", - "networkErrors": "Network Errors", - "networkInterface": "Network Interface", - "noNetworkStatsAvailable": "No network stats available.", - "packetsPerSecond": "Packets per second", - "packetsReceived": "Packets Received", - "packetsReceivedRate": "Packets Received Rate", - "packetsSent": "Packets Sent", - "rate": "Rate", - "selectInterface": "Select Interface", + "url": "URL", + "urlMonitor": "URL to monitor", + "used": "Used", "v1": { "infrastructure": { - "disk_selection_title": "Disk Selection", + "disk_selection_description": "Select the specific disks you want to monitor.", "disk_selection_info": "No disk detected for the moment.", - "disk_selection_description": "Select the specific disks you want to monitor." + "disk_selection_title": "Disk Selection" } }, - "incidentsPage": { - "title": "Incidents", - "description": "Manage incidents for your monitors. You can resolve incidents here.", - "resolved": "Resolved", - "active": "Active", - "startTime": "Start Time", - "endTime": "End Time", - "resolutionType": "Resolution Type", - "unresolved": "Unresolved", - "all": "All", - "filterByMonitor": "Filter by monitor", - "filterByStatus": "Filter by status", - "filterByType": "Filter by type", - "filterByDate": "Filter by date", - "filterByPriority": "Filter by priority", - "incidentsActivePanelError": "Error loading active incidents", - "allSystemsAreOperational": "All Systems Are Operational", - "incidentsActivePanelTitle": "Total Active Incidents", - "incidentsLatestPanelError": "Error loading latest incidents", - "incidentsLatestPanelTitle": "Latest Incidents", - "incidentsLatestPanelEmpty": "No recent incidents", - "incidentItemMonitor": "Monitor", - "incidentItemStatus": "Status", - "unknownMonitor": "Unknown Monitor", - "incidentsStatisticsPanelError": "Error loading statistics", - "incidentsStatisticsPanelTitle": "General Statistics", - "totalIncidents": "Total Incidents", - "mostAffectedMonitor": "Most Affected Monitor", - "avgResolutionTime": "Avg. Resolution Time", - "resolutions": "Resolutions", - "automatic": "Automatic", - "manual": "Manual", - "incidentResolvedSuccessfully": "Incident resolved successfully", - "incidentResolvedFailed": "Error resolving incident", - "errorFetchingIncidents": "Error fetching incidents", - "errorFetchingIncident": "Error fetching incident", - "noIncidentIdProvided": "No incident ID provided", - "errorFetchingIncidentSummary": "Error fetching incident summary", - "incidentsOptionsHeaderFilterManual": "Manual", - "incidentsOptionsHeaderFilterAutomatic": "Automatic", - "incidentsOptionsHeaderFilterAll": "All", - "incidentsOptionsHeaderFilterActive": "Active", - "incidentsOptionsHeaderFilterResolved": "Resolved", - "incidentsTableResolved": "Closed", - "incidentsTableActionResolveManually": "Resolve Manually", - "incidentsTableActionDetails": "Details", - "incidentsTableActionGoToMonitor": "Go to monitor", - "resolveIncidentDialogTitle": "Resolve Incident", - "resolveIncidentDialogCommentLabel": "Comment (optional)", - "resolveIncidentDialogCommentPlaceholder": "Add a comment about the resolution...", - "resolveIncidentDialogConfirm": "Resolve" - } + "waitTime": "Wait time", + "webhookSendError": "Error sending webhook notification to {platform}", + "webhookSendSuccess": "Webhook notification sent successfully", + "webhookUnsupportedPlatform": "Unsupported platform: {platform}", + "websiteMonitoring": "Website monitoring", + "websiteMonitoringDescription": "Use HTTP(s) to monitor your website or API endpoint.", + "whenNewIncident": "When there is a new incident,", + "window": "window", + "YourPhoto": "Profile photo" }