From af8205008e3265282f2d2c0166393835bc5414ba Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D9=86=D8=A7=D8=AF=DA=A9=D8=A7=D8=B1=D9=88?= Date: Wed, 29 Apr 2026 22:52:07 +0000 Subject: [PATCH 01/20] Translated using Weblate (Persian) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Currently translated at 75.7% (1160 of 1532 strings) Co-authored-by: نادکارو Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/fa/ Translation: Uptime Kuma/Uptime Kuma --- src/lang/fa.json | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/lang/fa.json b/src/lang/fa.json index 290504149..875e2144d 100644 --- a/src/lang/fa.json +++ b/src/lang/fa.json @@ -174,8 +174,8 @@ "Avg. Response": "متوسط زمان پاسخ", "Entry Page": "صفحه ورودی", "statusPageNothing": "چیزی اینجا نیست، لطفا یک گروه و یا یک مانیتور اضافه کنید.", - "No Services": "هیچ سرویسی موجود نیست", - "All Systems Operational": "تمامی سیستم‌ها فعال هستند", + "No Services": "هیچ خدماتی موجود نیست", + "All Systems Operational": "همهٔ سامانه‌ها فعال هستند", "Partially Degraded Service": "افت نسبی کیفیت سرویس", "Degraded Service": "افت کامل کیفیت سرویس", "Add Group": "اضافه کردن گروه", @@ -329,7 +329,7 @@ "steamApiKeyDescription": "برای مانیتورینگ یک سرور استیم،‌ شما نیاز به یک \"Steam Web-API key\" دارید. برای دریافت کلید میتوانید از اینجا اقدام کنید: ", "No Monitors": "بدون پایشگر", "Untitled Group": "دسته بنده نشده", - "Services": "سرویس ها", + "Services": "خدمت‌ها", "Discard": "دست کشیدن", "Cancel": "انصراف", "About": "درباره", @@ -1205,5 +1205,7 @@ "versionIs": "نگارش: {version}", "monitorTypeGameServer": "کارساز بازی", "monitorTypeDatabase": "پایش پایگاه‌داده", - "monitorTypeSpecial": "ویژه" + "monitorTypeSpecial": "ویژه", + "notificationSmsServices": "پیامک خدمات", + "notificationPushServices": "خدمات پوش" } From 10f8b0d9548b49a46dc1292f0aef1e6058513a61 Mon Sep 17 00:00:00 2001 From: Andi Chandler Date: Wed, 29 Apr 2026 22:52:07 +0000 Subject: [PATCH 02/20] Translated using Weblate (English (United Kingdom)) Currently translated at 100.0% (1532 of 1532 strings) Translated using Weblate (English (United Kingdom)) Currently translated at 100.0% (1532 of 1532 strings) Co-authored-by: Andi Chandler Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/en_GB/ Translation: Uptime Kuma/Uptime Kuma --- src/lang/en_GB.json | 1223 ++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 1222 insertions(+), 1 deletion(-) diff --git a/src/lang/en_GB.json b/src/lang/en_GB.json index 6e018b6fe..2f3773ae4 100644 --- a/src/lang/en_GB.json +++ b/src/lang/en_GB.json @@ -309,5 +309,1226 @@ "hostnameCannotBeIP": "DNS hostname cannot be an IP. Did you mean to use the resolver field?", "invalidHostnameOrIP": "Invalid hostname or IP. Hostname must be a valid FQDN. Cannot use wildcard. Can have an underscore, or end with a dot.", "wildcardOnlyForDNS": "Wildcard hostnames are only supported for DNS monitors.", - "invalidURL": "Invalid URL" + "invalidURL": "Invalid URL", + "telnyxApiKey": "API Key (V2)", + "telnyxApiKeyHelptext": "Your Telnyx V2 API key from the Telnyx Portal under API Keys", + "telnyxPhoneNumber": "From Number", + "Authorization Identity": "Authorisation Identity", + "AccessKey Id": "AccessKey Id", + "senderSevenIO": "Sending number or name", + "evolutionRecipient": "Phone Number / Contact ID / Group ID", + "To Phone Number": "To Phone Number", + "snmpOIDHelptext": "Enter the OID for the sensor or status you want to monitor. Use network management tools like MIB browsers or SNMP software if you're unsure about the OID.", + "snmpV3Username": "SNMPv3 Username", + "OAuth Scope": "OAuth Scope", + "OAuth Audience": "OAuth Audience", + "brevoBccEmail": "BCC Email", + "pingCountLabel": "Max Packets", + "username": "Username", + "halopsa_setup_step5": "Configure runbook to use monitor_id for matching alerts to existing tickets", + "wayToGetMaxToken": "You can get a MAX bot token and other details from {0}.", + "maxMessenger": "MAX messenger", + "maxApiUrlDescription": "Base API URL for MAX messenger. Default: https://platform-api.max.ru", + "wayToGetMaxChatID": "Specify the chat identifier in MAX where messages should be delivered.", + "recurringInterval": "Interval", + "weekdayShortSat": "Sat", + "No Maintenance": "No Maintenance", + "chromeExecutable": "Chrome/Chromium Executable", + "emailTemplateHeartbeatJSON": "object describing the heartbeat", + "emailTemplateMsg": "message of the notification", + "emailTemplateLimitedToUpDownNotification": "only available for UP/DOWN heartbeats, otherwise null", + "Prefix Custom Message": "Prefix Custom Message", + "Click Deploy → New deployment → Web app": "Click Deploy → New deployment → Web app", + "Set 'Execute as: Me' and 'Who has access: Anyone'": "Set 'Execute as: Me' and 'Who has access: Anyone'", + "Message Title": "Message Title", + "AccessKeyId": "AccessKey ID", + "smseagleRecipient": "Recipient(s) (multiple must be separated with comma)", + "smseagleMsgSms": "Sms message (default)", + "Server URL should not contain the nfty topic": "Server URL should not contain the nfty topic", + "FlashDuty Push URL": "Push URL", + "FlashDuty Push URL Placeholder": "Copy from the alerting integration page", + "rabbitmqNodesInvalid": "Please use a fully qualified (starting with 'http') URL for RabbitMQ nodes.", + "RabbitMQ Username": "RabbitMQ Username", + "brevoFromName": "From Name", + "resendToEmail": "To Email", + "resendSubject": "Subject", + "Installing a Nextcloud Talk bot requires administrative access to the server.": "Installing a Nextcloud Talk bot requires administrative access to the server.", + "Globalping - Access global monitoring probes": "Globalping - Access global monitoring probes", + "Endpoint": "Endpoint", + "API Version": "API Version", + "clearEventsMsg": "Are you sure you want to delete all events for this monitor? This permanently removes associated message data and cannot be undone.", + "infiniteRetention": "Set to 0 for infinite retention.", + "clearHeartbeatsMsg": "Are you sure you want to delete all heartbeats for this monitor? This permanently removes all heartbeat data and cannot be undone.", + "confirmClearStatisticsMsg": "Are you sure you want to delete ALL statistics?", + "Peer ID": "Peer ID", + "vkPeerIdDescription": "Enter the target VK peer_id. This value is sent to the API as-is.", + "Read more:": "Read more: {0}", + "Bark Endpoint": "Bark Endpoint", + "do nothing": "do nothing", + "smseagleDuration": "Duration (in seconds)", + "onebotHttpAddress": "OneBot HTTP Address", + "onebotMessageType": "OneBot Message Type", + "Analytics Type": "Analytics Type", + "Analytics ID": "Analytics ID", + "ntfyCall": "Phone Call", + "ntfyCallHelptext": "Make a phone call when alert fires. Set to 'yes' to use your first verified number, or enter a specific phone number (e.g. +12223334444). Requires ntfy Pro and a verified phone number.", + "ntfyUseTemplateDescription": "Enable this to customise notification titles and messages using LiquidJS templating", + "ntfyCustomMessage": "Custom Message Template", + "ntfyNotificationTemplateFallback": "Leave blank to use the default Uptime Kuma format", + "twilioAccountSID": "Account SID", + "lunaseaUserID": "User ID", + "ntfyAuthenticationMethod": "Authentication Method", + "twilioApiKeyHelptext": "The API key is optional but recommended. You can provide either Account SID and AuthToken from the may TwilioConsole page or Account SID and the pair of API Key and API Key secret", + "twilioMessagingServiceSID": "Messaging Service SID (optional)", + "Badge Up Color": "Badge Up Colour", + "Badge Down Color": "Badge Down Colour", + "Badge Pending Color": "Badge Pending Colour", + "Badge Maintenance Color": "Badge Maintenance Colour", + "Badge Warn Color": "Badge Warn Colour", + "monitorToastMessagesDescription": "Toast notifications for monitors disappear after given time in seconds. Set to -1 disables timeout. Set to 0 disables toast notifications.", + "Kafka Producer Message": "Kafka Producer Message", + "Enable Kafka SSL": "Enable Kafka SSL", + "Enable Kafka Producer Auto Topic Creation": "Enable Kafka Producer Auto Topic Creation", + "cacheBusterParamDescription": "Randomly generated parameter to skip caches.", + "gamedigGuessPortDescription": "The port used by Valve Server Query Protocol may be different from the client port. Try this if the monitor cannot connect to your server.", + "Message format": "Message format", + "successBackupRestored": "Backup successfully restored.", + "successEnabled": "Enabled Successfully.", + "Screenshot Delay": "Screenshot Delay (waits {milliseconds})", + "milliseconds": "{n} millisecond | {n} milliseconds", + "What is a Remote Browser?": "What is a Remote Browser?", + "wayToGetHeiiOnCallDetails": "How to get the Trigger ID and API Keys is explained in the {documentation}", + "gtxMessagingApiKeyHint": "You can find your API key at: My Routing Accounts > Show Account Information > API Credentials > REST API (v2.x)", + "gtxMessagingFromHint": "On mobile phones, your recipients sees the TPOA displayed as the sender of the message. Allowed are up to 11 alphanumeric characters, a shortcode, the local longcode or international numbers ({e164}, {e212} or {e214})", + "threemaSenderIdentityFormat": "8 characters, usually starts with *", + "threemaApiAuthenticationSecret": "Gateway-ID Secret", + "threemaBasicModeInfo": "Note: This integration uses Threema Gateway in basic mode (server-based encryption). Further details can be found {0}.", + "apiKeysDisabledMsg": "API keys are disabled because authentication is disabled.", + "Host Onesender": "Host Onesender", + "Group ID": "Group ID", + "signl4Docs": "You can find more information about how to configure SIGNL4 and how to obtain the SIGNL4 webhook URL in the {0}.", + "Conditions": "Conditions", + "conditionAdd": "Add Condition", + "message": "message", + "json_value": "JSON value", + "Notification Channel": "Notification Channel", + "Sound": "Sound", + "Alphanumerical string and hyphens only": "Alphanumerical string and hyphens only", + "Arcade": "Arcade", + "Bubble": "Bubble", + "Money": "Money", + "Scifi": "Scifi", + "Clear": "Clear", + "Select All": "Select All", + "Time Sensitive (iOS Only)": "Time Sensitive (iOS Only)", + "From": "From", + "Can be found on:": "Can be found on: {0}", + "customUrlDescription": "Will be used as the clickable URL instead of the monitor's one.", + "360messengerWayToGetUrlAndToken": "You can get your 360messenger API key from {0}.", + "Matomo": "Matomo", + "Umami": "Umami", + "Disable URL in Notification": "Disable URL in Notification", + "fluxerMessageTemplate": "Message Template", + "Fluxer Webhook URL": "Fluxer Webhook URL", + "wayToGetFluxerURL": "You can get this by going to the target channel's settings > Webhooks > Create Webhook > Copy Webhook URL.", + "Ip Family": "IP Family", + "Manual": "Manual", + "GlobalpingMonitorDescription": "Globalping provides access to thousands of community hosted probes to run network tests and measurements. A limit of 250 tests per hour is set for all anonymous users. To double the limit to 500 per hour please save your token in {accountSettings}. Check the {docs} for more information.", + "GlobalpingHostname": "A publicly reachable measurement target. Typically a hostname or IPv4/IPv6 address, depending on the measurement type.", + "RecordMatch": "Record value match", + "RegexMatch": "Enter a regex to match the record value", + "GlobalpingLocationDescription": "The location field accepts continents, countries, regions, cities, ASNs, ISPs, or cloud regions. You can combine filters with {plus} (e.g {amazonPlusGermany} or {comcastPlusCalifornia}). If latency is an important metric, use filters to narrow down the location to a small region to avoid spikes and for better stability set the {datacenter} filter. {fullDocs}.", + "Check for": "Check for", + "Number of retry attempts if webhook fails": "Number of retry attempts (every 60-180 seconds) if the webhook fails.", + "Maximum Retries": "Maximum Retries", + "Template ID": "Template ID", + "wayToGetClickSMSIRTemplateID": "Your template must contain an {uptkumaalert} field. You can create a new template {here}.", + "Browser not supported": "Browser not supported", + "Unable to get permission to notify": "Unable to get permission to notify (request either denied or ignored).", + "Webpush Helptext": "Web push only works with SSL (HTTPS) connections. For iOS devices, webpage must be added to homescreen beforehand.", + "settingsDomainExpiry": "Domain Expiry", + "labelDomainExpiry": "Domain Exp.", + "labelDomainNameExpiryNotification": "Domain Name Expiry Notification", + "domain_expiry_unsupported_monitor_type": "Domain expiry monitoring is not supported for this monitor type", + "domain_expiry_unsupported_missing_target": "No valid domain or hostname is configured for this monitor", + "domainExpiryDescription": "Trigger notification when domain names expires in:", + "halopsa_webhook_url_desc": "Enter the webhook URL from your Halo PSA Integration Runbook (Configuration > Integrations > Custom Integrations > Integration Runbooks). Select 'Can only be started from Halo and from a public endpoint' when creating the webhook.", + "password": "Password", + "halopsa_username_desc": "Username for authenticating with Halo PSA webhook", + "halopsa_setup_step3": "Copy the Webhook URL and paste it above text field", + "Region": "Region", + "PushDeer Server URL": "PushDeer Server URL", + "Json Query": "Json Query", + "System Service": "System Service", + "SSL/TLS": "SSL/TLS", + "playground": "playground", + "Check Type": "Check Type", + "Service Name": "Service Name", + "Metadata": "Metadata", + "End": "End", + "Teltonika SMS Gateway": "Teltonika SMS Gateway", + "evolutionCustomMessageTitle": "Custom Message (optional)", + "evolutionCustomMessageDesc": "Leave empty to use the default message.", + "gtxMessagingToHint": "International format, with leading \"+\" ({e164}, {e212} or {e214})", + "Originator type": "Originator type", + "Alphanumeric (recommended)": "Alphanumeric (recommended)", + "Telephone number": "Telephone number", + "cellsyntOriginatortypeAlphanumeric": "Alphanumeric string (max 11 alphanumeric characters). Recipients can not reply to the message.", + "cellsyntSplitLongMessages": "Split long messages into up to 6 parts. 153 x 6 = 918 characters.", + "max 15 digits": "max 15 digits", + "wayToGetThreemaGateway": "You can register for Threema Gateway {0}.", + "threemaRecipient": "Recipient", + "threemaRecipientTypeEmail": "Email Address", + "threemaSenderIdentity": "Gateway-ID", + "Fail": "Fail", + "Harp": "Harp", + "Reveal": "Reveal", + "Time sensitive notifications will be delivered immediately, even if the device is in do not disturb mode.": "Time sensitive notifications will be delivered immediately, even if the device is in do not disturb mode.", + "The phone number of the recipient in E.164 format.": "The phone number of the recipient in E.164 format.", + "Either a text sender ID or a phone number in E.164 format if you want to be able to receive replies.": "Either a text sender ID or a phone number in E.164 format if you want to be able to receive replies.", + "brevoLeaveBlankForDefaultName": "leave blank for default name", + "brevoToEmail": "To Email", + "brevoCcEmail": "CC Email", + "pingPerRequestTimeoutDescription": "This is the maximum waiting time (in seconds) before considering a single ping packet lost", + "pingIntervalAdjustedInfo": "Interval adjusted based on packet count, global timeout and per-ping timeout", + "wayToWriteWahaChatId": "The phone number with the international prefix, but without the plus sign at the start ({0}), the Contact ID ({1}) or the Group ID ({2}). Notifications are sent to this Chat ID from WAHA Session.", + "360messengerAuthToken": "360messenger API Key", + "360messengerEnableCustomMessage": "Enable a custom message template instead of the default message.", + "360messengerMessageTemplate": "Message template", + "360messengerErrorApi": "Unable to load the WhatsApp group list (Error {statusCode}: {message}).", + "360messengerErrorGeneric": "Unable to load the WhatsApp group list: {message}", + "smsplanetApiToken": "Token for the SMSPlanet API", + "discordMessageFormatMinimalist": "Minimalist (short status)", + "Nextcloud host": "Nextcloud host", + "Bot secret": "Bot secret", + "Send UP silently": "Send UP silently", + "Send DOWN silently": "Send DOWN silently", + "GlobalpingResolverInfo": "IPv4/IPv6 address or a Fully Qualified Domain Name (FQDN). Defaults to the probe's local network resolver. You can change the resolver server anytime.", + "Recipient Numbers": "Recipient Numbers", + "Notifications Enabled": "Notifications Enabled", + "Halo PSA Webhook URL": "Halo PSA Webhook URL", + "Clear current filters": "Clear current filters", + "Sort options": "Sort options", + "smscTranslit": "smscTranslit", + "GRPC Options": "GRPC Options", + "expectedTlsAlertDescription": "Select the TLS alert you expect the server to return. Use {code} to verify mTLS endpoints reject connections without client certificates. See {link} for details.", + "mariadbSocketPathDetectedHelptext": "Connecting to the database as specified via the {0} environment variable.", + "halopsa_field_monitor": "Name of the monitor", + "halopsa_field_monitor_id": "Unique monitor identifier (null for test notifications) - Use this to match alerts to tickets", + "halopsa_field_message": "Full alert message with status and details", + "teltonikaPhoneNumber": "Phone number", + "Security": "Security", + "Steam API Key": "Steam API Key", + "danger": "danger", + "error": "error", + "critical": "critical", + "primary": "primary", + "lastUpdatedAtFromNow": "Last Updated: {date} ({fromNow})", + "Switch to Light Theme": "Switch to Light Theme", + "Switch to Dark Theme": "Switch to Dark Theme", + "descriptionHelpText": "Shown on the internal dashboard. Markdown is allowed and sanitised (preserves spaces and indentation) before display.", + "Add one": "Add one", + "No Monitors": "No Monitors", + "selectedMonitorCountMsg": "selected: {n} | selected: {n}", + "selectMonitorMsg": "Select monitors to perform actions", + "Custom CSS": "Custom CSS", + "Invalid": "Invalid", + "User": "User", + "API Username": "API Username", + "API Key": "API Key", + "API Token": "API Token", + "See Jira Cloud Docs": "See Jira Cloud Docs", + "Retype the address.": "Retype the address.", + "Go back to the previous page.": "Go back to the previous page.", + "deleteDockerHostMsg": "Are you sure want to delete this docker host for all monitors?", + "matrixUseTemplateDescription": "If enabled, the message will be sent using a custom template.", + "telegramTemplateFormatDescription": "Telegram allows using different markup languages for messages, see Telegram {0} for specifc details.", + "supportTelegramChatID": "Support Direct Chat / Group / Channel's Chat ID", + "maxUseTemplate": "Use custom message template", + "maxUseTemplateDescription": "If enabled, the message will be sent using a custom template.", + "maxTemplateFormatDescription": "MAX messenger supports plain text, Markdown and HTML formatting.", + "trustProxyDescription": "Trust 'X-Forwarded-*' headers. If you want to get the correct client IP and your Uptime Kuma is behind a proxy such as Nginx or Apache, you should enable this.", + "wayToGetLineNotifyToken": "You can get an access token from {0}", + "homeAssistantNotificationActionHelptext": "A list of Notification Actions can be found in Home Assistant under \"Settings > Developer Tools > Actions\". Search for \"notify\" to find your actions. Enter only the part after \"notify.\", e.g. for the action \"notify.mobile_app_xyz\" enter \"mobile_app_xyz\". For built-in mobile notifications, look for \"Send a notification via mobile_app_xyz\" (not \"Send a notification\").", + "Duration (Minutes)": "Duration (Minutes)", + "invalidCronExpression": "Invalid Cron Expression: {0}", + "Recurring": "Recurring", + "strategyManual": "Active/Inactive Manually", + "weekdayShortTue": "Tue", + "Long-Lived Access Token": "Long-Lived Access Token", + "Long-Lived Access Token can be created by clicking on your profile name (bottom left) and scrolling to the bottom then click Create Token. ": "Long-Lived Access Token can be created by clicking on your profile name (bottom left) and scrolling to the bottom then click Create Token.", + "weekdayShortWed": "Wed", + "weekdayShortThu": "Thu", + "weekdayShortFri": "Fri", + "lastDay4": "4th Last Day of Month", + "maintenanceStatus-ended": "Ended", + "maintenanceStatus-unknown": "Unknown", + "Display Timezone": "Display time zone", + "Server Timezone": "Server time zone", + "statusPageMaintenanceEndDate": "End", + "enableNSCD": "Enable NSCD (Name Service Cache Daemon) for caching all DNS requests", + "chromeExecutableAutoDetect": "Auto Detect", + "Single Maintenance Window": "Single Maintenance Window", + "DateTime Range": "DateTime Range", + "loadingError": "Cannot fetch the data, please try again later.", + "plugin": "Plugin | Plugins", + "notificationEmail": "Email", + "notificationIncidentManagement": "Incident Management", + "notificationHomeAutomation": "Home Automation", + "notificationOther": "Other Integrations", + "Clone Monitor": "Clone Monitor", + "Ignore STARTTLS": "Ignore STARTTLS", + "Use STARTTLS": "Use STARTTLS", + "Use HTML for custom E-mail body": "Use HTML for custom E-mail body", + "secureOptionNone": "None / STARTTLS (25, 587)", + "emailCustomisableContent": "Customisable content", + "Hello @everyone is...": "Hello {'@'}everyone is…", + "Select message type": "Select message type", + "wayToGetTeamsURL": "You can learn how to create a webhook URL {0}.", + "teamsEnableTags": "Include tags", + "teamsEnableTagsDescription": "If enabled, the message will include the monitor tags.", + "Number": "Number", + "User ID": "User ID", + "Your User ID": "Your user ID", + "Messaging API": "Messaging API", + "wayToGetLineChannelToken": "First access the {0}, create a provider and channel (Messaging API), then you can get the channel access token and user ID from the above mentioned menu items.", + "aboutIconURL": "You can provide a link to a picture in \"Icon URL\" to override the default profile picture. Will not be used if Icon Emoji is set.", + "aboutMattermostChannelName": "You can override the default channel that the Webhook posts to by entering the channel name into \"Channel Name\" field. This needs to be enabled in the Mattermost Webhook settings. Ex: #other-channel", + "noMonitorsResumedMsg": "No monitors resumed (none were inactive)", + "deleteMaintenanceMsg": "Are you sure want to delete this maintenance?", + "deleteNotificationMsg": "Are you sure want to delete this notification for all monitors?", + "dnsPortDescription": "DNS server port. Defaults to 53. You can change the port at any time.", + "importHandleDescription": "Choose 'Skip existing' if you want to skip every monitor or notification with the same name. 'Overwrite' will delete every existing monitor and notification.", + "twoFAVerifyLabel": "Please enter your token to verify 2FA:", + "affectedStatusPages": "Show this maintenance message on selected status pages", + "Sets end time based on start time": "Sets end time based on start time", + "Please set start time first": "Please set start time first", + "octopushAPIKey": "\"API key\" from HTTP API credentials in control panel", + "noMonitorsSelectedWarning": "You are creating a maintenance without any affected monitors. Are you sure you want to continue?", + "noMonitorsOrStatusPagesSelectedError": "Cannot create maintenance without affected monitors or status pages", + "passwordNotMatchMsg": "The repeat password does not match.", + "notificationDescription": "Notifications must be assigned to a monitor to function.", + "vkApiVersionDescription": "VK API version used for requests. Leave the default unless you specifically need another VK API version for compatibility.", + "vkDontParseLinks": "Disable link snippets", + "vkDontParseLinksDescription": "If enabled, VK will not generate link previews/snippets.", + "keywordDescription": "Search keyword in plain HTML or JSON response. The search is case-sensitive.", + "invertKeywordDescription": "Look for the keyword to be absent rather than present.", + "pushoversounds bike": "Bike", + "pushoversounds bugle": "Bugle", + "pushoversounds cashregister": "Cash Register", + "pushoversounds classical": "Classical", + "pushoversounds cosmic": "Cosmic", + "pushoversounds falling": "Falling", + "pushoversounds gamelan": "Gamelan", + "pushoversounds spacealarm": "Space Alarm", + "pushoversounds tugboat": "Tug Boat", + "pushoversounds alien": "Alien Alarm (long)", + "pushoversounds climb": "Climb (long)", + "pushyToken": "Device token", + "apprise": "Apprise (Support 50+ Notification services)", + "GoogleChat": "Google Chat (Google Workspace only)", + "Paste the script code (see below)": "Paste the script code (see below)", + "issueWithGoogleChatOnAndroidHelptext": "This also allows to get around bugs upstream like {issuetackerURL}", + "wayToGetKookBotToken": "Create application and get your bot token at {0}", + "Notification Sound": "Notification Sound", + "More info on:": "More info on: {0}", + "pushoverDesc1": "Emergency priority (2) has default 30 second timeout between retries and will expire after 1 hour.", + "apiCredentials": "API credentials", + "Apprise URL": "Apprise URL", + "Example:": "Example: {0}", + "Status:": "Status: {0}", + "Proto Service Name": "Proto Service Name", + "Proto Method": "Proto Method", + "Proto Content": "Proto Content", + "Economy": "Economy", + "Retry": "Retry", + "Topic": "Topic", + "goAlertInfo": "GoAlert is a An open source application for on-call scheduling, automated escalations and notifications (like SMS or voice calls). Automatically engage the right person, the right way, and at the right time! {0}", + "PhoneNumbers": "PhoneNumbers", + "TemplateCode": "TemplateCode", + "SignName": "SignName", + "aliyun-template-requirements-and-parameters": "The aliyun SMS template must contain parameters: {parameters}", + "aliyun-template-optional-parameters": "Optional parameters: {parameters}", + "Bark Group": "Bark Group", + "Bark Sound": "Bark Sound", + "WebHookUrl": "WebHookUrl", + "SecretKey": "SecretKey", + "For safety, must use secret key": "For safety, must use secret key", + "Mentioning": "Mentioning", + "WeCom Bot Key": "WeCom Bot Key", + "WeCom Mentioned Mobile List": "WeCom Mentioned Mobile List", + "WeCom Mentioned Mobile List Description": "Enter phone numbers to mention. Separate multiple numbers with commas. Use {'@'}all to mention everyone.", + "Setup Proxy": "Set Up Proxy", + "Proxy Protocol": "Proxy Protocol", + "Proxy Server": "Proxy Server", + "promosmsTypeSpeed": "SMS SPEED - Highest priority in system. Very quick and reliable but costly (about twice of SMS FULL price).", + "promosmsPhoneNumber": "Phone number (for Polish recipient You can skip area codes)", + "promosmsSMSSender": "SMS Sender Name : Pre-registred name or one of defaults: InfoSMS, SMS Info, MaxSMS, INFO, SMS", + "Internal Room Id": "Internal Room ID", + "matrixDesc2": "It is highly recommended you create a new user and do not use your own Matrix user's access token as it will allow full access to your account and all the rooms you joined. Instead, create a new user and only invite it to the room that you want to receive the notification in. You can get the access token by running {0}", + "Channel Name": "Channel Name", + "Notify Channel": "Notify Channel", + "aboutNotifyChannel": "Notify channel will trigger a desktop or mobile notification for all members of the channel, whether their availability is set to active or away.", + "Uptime Kuma URL": "Uptime Kuma URL", + "setup a new monitor group": "set up a new monitor group", + "signalImportant": "IMPORTANT: You cannot mix groups and numbers in recipients!", + "signalUseTemplate": "Use custom message template", + "signalUseTemplateDescription": "If enabled, the message will be sent using a custom template. You can use Liquid templating to customise the notification format.", + "aboutWebhooks": "More info about Webhooks on: {0}", + "aboutKumaURL": "If you leave the Uptime Kuma URL field blank, it will default to the Project GitHub page.", + "smtpDkimHashAlgo": "Hash Algorithm (Optional)", + "alertaEnvironment": "Environment", + "smseagleRecipientType": "Recipient type", + "smtpDkimheaderFieldNames": "Header Keys to sign (Optional)", + "auto acknowledged": "auto acknowledged", + "auto resolve": "auto resolve", + "alertaApiEndpoint": "API Endpoint", + "smseagleMsgRing": "Ring call", + "smseagleMsgTts": "Text-to-speech call", + "smseagleMsgTtsAdvanced": "Text-to-speech Advanced call", + "smseagleTtsModel": "Text-to-speech model ID", + "smseagleApiType": "API version", + "smseagleApiv1": "APIv1 (for existing projects and backward compatibility)", + "smseagleComma": "Multiple must be separated with comma", + "smspartnerPhoneNumberHelptext": "The number must be in the international format {0}, {1}. Multiple numbers must be separated by {2}", + "smspartnerSenderName": "SMS Sender Name", + "smspartnerApiurl": "You can find your API key in your dashboard at {0}", + "smspartnerPhoneNumber": "Phone number(s)", + "smspartnerSenderNameInfo": "Must be between 3..=11 regular characters", + "Recipient Number": "Recipient Number", + "From Name/Number": "From Name/Number", + "octopushEndpoint": "octopush (endpoint: {url})", + "legacyOctopushEndpoint": "Legacy Octopush-DM (endpoint: {url})", + "ntfy Topic": "ntfy Topic", + "deleteAPIKeyMsg": "Are you sure you want to delete this API key?", + "Leave blank to use a shared sender number.": "Leave blank to use a shared sender number.", + "Octopush API Version": "Octopush API Version", + "pagertreeSilent": "Silent", + "pagertreeLow": "Low", + "pagertreeMedium": "Medium", + "pagertreeHigh": "High", + "pagertreeCritical": "Critical", + "pagertreeResolve": "Auto Resolve", + "wayToGetPagerTreeIntegrationURL": "After creating the Uptime Kuma integration in PagerTree, copy the Endpoint. See full details {0}", + "lunaseaTarget": "Target", + "lunaseaDeviceID": "Device ID", + "pagertreeDoNothing": "Do Nothing", + "telnyxPhoneNumberHelptext": "Your Telnyx phone number to send from (must be registered in your Telnyx account, e.g. +15551234567)", + "telnyxToNumber": "To Number", + "telnyxToNumberHelptext": "The destination phone number to receive SMS notifications (e.g. +15559876543)", + "telnyxMessagingProfileId": "Messaging Profile ID (optional)", + "telnyxMessagingProfileIdHelptext": "Optionally associate a Telnyx Messaging Profile to control sender settings and features", + "twilioApiKey": "API Key (optional)", + "Open Badge Link Generator": "Open Badge Link Generator", + "Badge Label": "Badge Label", + "Badge Prefix": "Badge Value Prefix", + "Badge Suffix": "Badge Value Suffix", + "Badge Color": "Badge Colour", + "Badge Label Prefix": "Badge Label Prefix", + "Badge Preview": "Badge Preview", + "Badge Label Suffix": "Badge Label Suffix", + "Badge Warn Days": "Badge Warn Days", + "wayToGetFlashDutyKey": "To integrate Uptime Kuma with Flashduty: Go to Channels > Select a channel > Integrations > Add a new integration, choose Uptime Kuma, and copy the Push URL.", + "gamedigGuessPort": "Gamedig: Guess Port", + "Badge Down Days": "Badge Down Days", + "monitorToastMessagesLabel": "Monitor Toast notifications", + "Secret AccessKey": "Secret AccessKey", + "webhookGetMethodDesc": "GET sends data as query parameters and does not allow configuring a body. Useful for triggering Uptime Kuma Push monitors.", + "successPaused": "Paused Successfully.", + "tagNotFound": "Tag not found.", + "foundChromiumVersion": "Found Chromium/Chrome. Version: {0}", + "Remote Browsers": "Remote Browsers", + "Remote Browser": "Remote Browser", + "Add a Remote Browser": "Add a Remote Browser", + "remoteBrowserToggle": "By default Chromium runs inside the Uptime Kuma container. You can use a remote browser by toggling this switch.", + "screenshotDelayDescription": "Optionally wait this many milliseconds before taking the screenshot. Maximum: {maxValueMs}ms (0.5 × interval).", + "deleteRemoteBrowserMessage": "Are you sure want to delete this Remote Browser for all monitors?", + "systemServiceDescriptionLinux": "Checks if Linux systemd service {service_name} is active", + "systemServiceDescriptionWindows": "Checks if Windows Service Manager {service_name} is running", + "systemServiceCommandHint": "Command used: {command}", + "systemServiceExpectedOutput": "Expected Output: \"{0}\"", + "Browser Screenshot": "Browser Screenshot", + "Command": "Command", + "mongodbCommandDescription": "Run a MongoDB command against the database. For information about the available commands check out the {documentation}", + "wayToGetSevenIOApiKey": "Visit the dashboard under app.seven.io > developer > API key > the green add button", + "wayToGetEvolutionUrlAndToken": "You can get the API URL and the token by going into your desired channel from {0}", + "OID (Object Identifier)": "OID (Object Identifier)", + "Condition": "Condition", + "cellsyntDestination": "Recipient's telephone number using international format with leading 00 followed by country code, e.g. 00447920110000 for the UK number 07920 110 000 (max 17 digits in total). Max 25000 comma separated recipients per HTTP request.", + "SNMP Version": "SNMP Version", + "Please enter a valid OID.": "Please enter a valid OID.", + "Optional: The audience to request the JWT for": "Optional: The audience to request the JWT for", + "SIGNL4 Webhook URL": "SIGNL4 Webhook URL", + "conditionDelete": "Delete Condition", + "not equals": "not equals", + "less than": "less than", + "greater than": "greater than", + "less than or equal to": "less than or equal to", + "greater than or equal to": "greater than or equal to", + "record": "record", + "Correct": "Correct", + "brevoFromEmail": "From Email", + "OneChatUserIdOrGroupId": "OneChat User ID or Group ID", + "wayToGetWahaSession": "From this session WAHA sends notifications to Chat ID. You can find it in WAHA Dashboard.", + "pause": "Pause", + "Conversation token": "Conversation token", + "smtpHelpText": "'SMTPS' tests that SMTP/TLS is working; 'Ignore TLS' connects over plaintext; 'STARTTLS' connects, issues a STARTTLS command and verifies the server certificate. None of these send an email.", + "lowIntervalWarning": "Are you sure want to set the interval value below 20 seconds? Performance may be degraded, particularly if there are a large number of monitors.", + "halopsa_password_desc": "Password for authenticating with Halo PSA webhook", + "halopsa_setup_step2": "Configure runbook actions to process alerts (e.g., Create Ticket)", + "halopsa_setup_step4": "Choose basic Authentication and create username and password. And type or paste those username and password above test fileds", + "teltonikaModemHelptext": "The id of the SMS modem, must be in the format {0}. Refer to https://developers.teltonika-networks.com/reference/ for guidance.", + "Resolve": "Resolve", + "Resolved": "Resolved", + "Reset Token": "Reset Token", + "Done": "Done", + "Shrink Database": "Shrink Database", + "shrinkDatabaseDescriptionSqlite": "Trigger database {vacuum} for SQLite. {auto_vacuum} is already enabled but this does not defragment the database nor repack individual database pages the way that the {vacuum} command does.", + "Pick a RR-Type...": "Pick a RR-Type…", + "Pick Accepted Status Codes...": "Pick Accepted Status Codes…", + "Default": "Default", + "HTTP Options": "HTTP Options", + "Create Incident": "Create Incident", + "Title": "Title", + "Content": "Content", + "Style": "Style", + "info": "info", + "warning": "warning", + "light": "light", + "dark": "dark", + "Post": "Post", + "Please input title and content": "Please input title and content", + "createdAt": "Created: {date}", + "lastUpdatedAt": "Last Updated: {date}", + "Show Tags": "Show Tags", + "Hide Tags": "Hide Tags", + "Description": "Description", + "No monitors available.": "No monitors available.", + "Services": "Services", + "Discard": "Discard", + "Cancel": "Cancel", + "Untitled Group": "Untitled Group", + "auto-select": "Auto Select", + "Select": "Select", + "Actions": "Actions", + "selectAllMonitorsAria": "Select all monitors", + "deselectAllMonitorsAria": "Deselect all monitors", + "Check/Uncheck": "Check/Uncheck", + "Powered by": "Powered by", + "Customize": "Customise", + "Custom Footer": "Custom Footer", + "Proxies": "Proxies", + "default": "Default", + "enabled": "Enabled", + "setAsDefault": "Set As Default", + "deleteProxyMsg": "Are you sure want to delete this proxy for all monitors?", + "setAsDefaultProxyDescription": "This proxy will be enabled by default for new monitors. You can still disable the proxy separately for each monitor.", + "enableProxyDescription": "This proxy will not effect on monitor requests until it is activated. You can control temporarily disable the proxy from all monitors by activation status.", + "Certificate Chain:": "Certificate Chain:", + "Valid": "Valid", + "Installed": "Installed", + "Not installed": "Not installed", + "Running": "Running", + "Not running": "Not running", + "Remove Token": "Remove Token", + "Stop": "Stop", + "Add New Status Page": "Add New Status Page", + "Slug": "Slug", + "Start": "Start", + "slug is not found": "Slug is not found", + "Accept characters:": "Accept characters:", + "startOrEndWithOnly": "Start or end with {0} only", + "No consecutive dashes": "No consecutive dashes", + "statusPageSpecialSlugDesc": "Special slug {0}: this page will be shown when no slug is provided", + "Next": "Next", + "The slug is already taken. Please choose another slug.": "The slug is already taken. Please choose another slug.", + "No Proxy": "No Proxy", + "Authentication": "Authentication", + "HTTP Basic Auth": "HTTP Basic Auth", + "New Status Page": "New Status Page", + "Page Not Found": "Page Not Found", + "Reverse Proxy": "Reverse Proxy", + "Backup": "Backup", + "About": "About", + "wayToGetCloudflaredURL": "(Download cloudflared from {0})", + "cloudflareWebsite": "Cloudflare Website", + "Message:": "Message:", + "Don't know how to get the token? Please read the guide:": "Don't know how to get the token? Please read the guide:", + "The current connection may be lost if you are currently connecting via Cloudflare Tunnel. Are you sure want to stop it? Type your current password to confirm it.": "The current connection may be lost if you are currently connecting via Cloudflare Tunnel. Are you sure want to stop it? Type your current password to confirm it.", + "HTTP Headers": "HTTP Headers", + "Trust Proxy": "Trust Proxy", + "Other Software": "Other Software", + "Please read": "Please read", + "Subject:": "Subject:", + "Valid To:": "Valid To:", + "Days Remaining:": "Days Remaining:", + "Issuer:": "Issuer:", + "Fingerprint:": "Fingerprint:", + "No status pages": "No status pages", + "Add a new expiry notification day": "Add a new expiry notification day", + "Remove the expiry notification": "Remove the expiry notification day", + "Proxy": "Proxy", + "dateCreatedAtFromNow": "Date Created: {date} ({fromNow})", + "Footer Text": "Footer Text", + "signedInDisp": "Signed in as {0}", + "RadiusSecret": "Radius Secret", + "signedInDispDisabled": "Auth Disabled.", + "RadiusSecretDescription": "Shared Secret between client and server", + "RadiusCalledStationId": "Called Station Id", + "RadiusCalledStationIdDescription": "Identifier of the called device", + "RadiusCallingStationId": "Calling Station Id", + "RadiusCallingStationIdDescription": "Identifier of the calling device", + "Certificate Expiry Notification": "Certificate Expiry Notification", + "certificateExpiryNotificationHelp": "The number of days in advance can be configured in the Settings.", + "Cloud ID": "Cloud ID", + "Steam Game Server": "Steam Game Server", + "Using a Reverse Proxy?": "Using a Reverse Proxy?", + "Check how to config it for WebSocket": "Check how to config it for WebSocket", + "Most likely causes:": "Most likely causes:", + "What you can try:": "What you can try:", + "Coming Soon": "Coming Soon", + "Connection String": "Connection String", + "Query": "Query", + "settingsCertificateExpiry": "TLS Certificate Expiry", + "certificationExpiryDescription": "HTTPS Monitors trigger notification when TLS certificate expires in:", + "certHostnameMismatch": "Certificate hostname does not match the monitor URL.", + "Setup Docker Host": "Set Up Docker Host", + "Connection Type": "Connection Type", + "Docker Daemon": "Docker Daemon", + "noDockerHostMsg": "Not Available. Set Up a Docker Host First.", + "DockerHostRequired": "Please set the Docker Host for this monitor.", + "tcp": "TCP / HTTP", + "tailscalePingWarning": "In order to use the Tailscale Ping monitor, you need to install Uptime Kuma without Docker and also install Tailscale client on your server.", + "sipsakPingWarning": "In order to use the SIP Options Ping monitor, you need to install Uptime Kuma without Docker and also install Sipsak client on your server.", + "Docker Container": "Docker Container", + "socket": "Socket", + "Container Name / ID": "Container Name / ID", + "Docker Host": "Docker Host", + "Docker Hosts": "Docker Hosts", + "Domain": "Domain", + "Workstation": "Workstation", + "Packet Size": "Packet Size", + "Bot Token": "Bot Token", + "wayToGetTelegramToken": "You can get a token from {0}.", + "Chat ID": "Chat ID", + "telegramMessageThreadID": "(Optional) Message Thread ID", + "telegramMessageThreadIDDescription": "Optional Unique identifier for the target message thread (topic) of the forum; for forum supergroups only", + "telegramSendSilently": "Send Silently", + "telegramSendSilentlyDescription": "Sends the message silently. Users will receive a notification with no sound.", + "telegramProtectContent": "Protect Forwarding/Saving", + "telegramProtectContentDescription": "If enabled, the bot messages in Telegram will be protected from forwarding and saving.", + "telegramUseTemplate": "Use custom message template", + "telegramUseTemplateDescription": "If enabled, the message will be sent using a custom template.", + "matrixUseTemplate": "Use custom message template", + "telegramServerUrlDescription": "To lift Telegram's bot API limitations or gain access in blocked areas (China, Iran, etc). For more information click {0}. Default: {1}", + "YOUR BOT TOKEN HERE": "YOUR BOT TOKEN HERE", + "chatIDNotFound": "Chat ID is not found; please send a message to this bot first", + "disableCloudflaredNoAuthMsg": "You are in No Auth mode, a password is not required.", + "Automations can optionally be triggered in Home Assistant:": "Automations can optionally be triggered in Home Assistant:", + "Trigger type:": "Trigger type:", + "Event type:": "Event type:", + "Event data:": "Event data:", + "Then choose an action, for example switch the scene to where an RGB light is red.": "Then choose an action, for example switch the scene to where an RGB light is red.", + "frontendVersionIs": "Frontend Version: {version}", + "endDateTime": "End Date/Time", + "cronExpression": "Cron Expression", + "cronScheduleDescription": "Schedule: {description}", + "warningTimezone": "It is using the server's time zone", + "weekdayShortMon": "Mon", + "weekdayShortSun": "Sun", + "dayOfWeek": "Day of Week", + "dayOfMonth": "Day of Month", + "lastDay": "Last Day", + "lastDay1": "Last Day of Month", + "lastDay2": "2nd Last Day of Month", + "lastDay3": "3rd Last Day of Month", + "Enable DNS Cache": "(Deprecated) Enable DNS Cache for HTTP(s) monitors", + "Enable": "Enable", + "Disable": "Disable", + "Effective Date Range": "Effective Date Range (Optional)", + "Schedule Maintenance": "Schedule Maintenance", + "Edit Maintenance": "Edit Maintenance", + "Clone Maintenance": "Clone Maintenance", + "ariaPauseMaintenance": "Pause this maintenance schedule", + "ariaResumeMaintenance": "Resume this maintenance schedule", + "notificationPushServices": "Push Services", + "notificationSmsServices": "SMS Services", + "Disable STARTTLS": "Disable STARTTLS", + "secureOptionTLS": "TLS (465)", + "Ignore TLS Error": "Ignore TLS Error", + "disableSTARTTLSDescription": "Enable this option for SMTP servers that do not support STARTTLS. This will send emails over an unencrypted connection.", + "From Email": "From Email", + "smtpLiquidIntroduction": "The following two fields are templatable via the Liquid templating Language. Please refer to the {0} for usage instructions. These are the available variables:", + "emailCustomSubject": "Custom Subject", + "leave blank for default subject": "leave blank for default subject", + "emailCustomBody": "Custom Body", + "leave blank for default body": "leave blank for default body", + "emailTemplateMonitorJSON": "object describing the monitor", + "wayToGetDiscordURL": "You can get this by going to Server Settings -> Integrations -> View Webhooks -> New Webhook", + "Bot Display Name": "Bot Display Name", + "postToExistingThread": "Post to existing thread / forum post", + "forumPostName": "Forum post name", + "threadForumPostID": "Thread / Forum post ID", + "e.g. {discordThreadID}": "e.g. {discordThreadID}", + "whatHappensAtForumPost": "Create a new forum post. This does NOT post messages in existing post. To post in existing post use \"{option}\"", + "wayToGetDiscordThreadId": "Getting a thread / forum post id is similar to getting a channel id. Read more about how to get ids {0}", + "Create new forum post": "Create new forum post", + "Recipients": "Recipients", + "Access Token": "Access Token", + "Channel access token": "Channel access token", + "Channel access token (Long-lived)": "Channel access token (Long-lived)", + "Line Developers Console": "Line Developers Console", + "lineDevConsoleTo": "Line Developers Console - {0}", + "Basic Settings": "Basic Settings", + "resumedMonitorsMsg": "Resumed {n} monitor | Resumed {n} monitors", + "deletedMonitorsMsg": "Deleted {n} monitor | Deleted {n} monitors", + "noMonitorsPausedMsg": "No monitors paused (none were active)", + "Clear All Events": "Clear All Events", + "resolverserverDescription": "Cloudflare is the default server. You can specify a comma delimited list of IP addresses or hostnames.", + "rrtypeDescription": "Select the RR type you want to monitor", + "pauseMonitorMsg": "Are you sure want to pause?", + "enableDefaultNotificationDescription": "This notification will be enabled by default for new monitors. You can still disable the notification separately for each monitor.", + "clearAllEventsMsg": "Are you sure you want to delete all events for all monitors? This permanently removes associated message data and cannot be undone.", + "tokenValidSettingsMsg": "Token is valid! You can now save the 2FA settings.", + "confirmEnableTwoFAMsg": "Are you sure you want to enable 2FA?", + "confirmDisableTwoFAMsg": "Are you sure you want to disable 2FA?", + "affectedMonitorsDescription": "Select monitors that are affected by current maintenance", + "recurringIntervalMessage": "Run once every day | Run once every {0} days", + "backupDescription": "You can backup all monitors and notifications into a JSON file.", + "jsonQueryDescription": "Parse and extract specific data from the server's JSON response using JSON query or use \"$\" for the raw response, if not expecting JSON. The result is then compared to the expected value, as strings. See {0} for documentation and use {1} to experiment with queries.", + "backupDescription2": "Note: history and event data is not included.", + "backupDescription3": "Sensitive data such as notification tokens are included in the export file; please store export securely.", + "pushoversounds incoming": "Incoming", + "pushoversounds intermission": "Intermission", + "pushoversounds magic": "Magic", + "pushoversounds mechanical": "Mechanical", + "pushoversounds pianobar": "Piano Bar", + "pushoversounds siren": "Siren", + "pushoversounds persistent": "Persistent (long)", + "pushoversounds updown": "Up Down (long)", + "pushoversounds echo": "Pushover Echo (long)", + "pushoversounds vibrate": "Vibrate Only", + "pushoversounds none": "None (silent)", + "pushyAPIKey": "Secret API Key", + "Google Apps Script Webhook URL": "Google Apps Script Webhook URL", + "Deploy a Google Apps Script as a web app and paste the URL here": "Deploy a Google Apps Script as a web app and paste the URL here", + "Quick Setup Guide": "Quick Setup Guide", + "Open your Google Spreadsheet": "Open your Google Spreadsheet", + "Go to Extensions → Apps Script": "Go to Extensions → Apps Script", + "Device": "Device", + "pushoverDesc2": "If you want to send notifications to different devices, fill out Device field.", + "pushoverMessageTtl": "Message TTL (Seconds)", + "SMS Type": "SMS Type", + "octopushTypePremium": "Premium (Fast - recommended for alerting)", + "octopushTypeLowCost": "Low Cost (Slow - sometimes blocked by operator)", + "checkPriceAt": "Check {service} prices at {url}", + "Check octopush prices": "Check octopush prices {0}.", + "octopushLegacyHint": "Do you use the legacy version of Octopush (2011-2020) or the new version?", + "octopushPhoneNumber": "Phone number (intl format, eg : +33612345678)", + "octopushSMSSender": "SMS Sender Name : 3-11 alphanumeric characters and space (a-zA-Z0-9)", + "LunaSea Device ID": "LunaSea Device ID", + "Strategy": "Strategy", + "Free Mobile User Identifier": "Free Mobile User Identifier", + "Free Mobile API Key": "Free Mobile API Key", + "Enable TLS": "Enable TLS", + "SMSManager API Docs": "SMSManager API Docs", + "Gateway Type": "Gateway Type", + "You can divide numbers with commas or semicolons": "You can divide numbers with {comma} or {semicolon}", + "Base URL": "Base URL", + "OptionalParameters": "Optional Parameters", + "aliyun_enable_optional_variables_at_the_risk_of_non_delivery": "Due to carrier restrictions, enable optional variables at the risk of non-delivery", + "Bark API Version": "Bark API Version", + "Enter a list of mobile": "Enter a list of mobile", + "Invalid mobile": "Invalid mobile [{mobile}]", + "Invalid userId": "Invalid userId [{userId}]", + "Device Token": "Device Token", + "Platform": "Platform", + "Huawei": "Huawei", + "promosmsTypeFull": "SMS FULL - Premium tier of SMS, You can use your Sender Name (You need to register name first). Reliable for alerts.", + "promosmsAllowLongSMS": "Allow long SMS", + "Feishu WebHookUrl": "Feishu WebHookURL", + "matrixHomeserverURL": "Homeserver URL (with http(s):// and optionally port)", + "openModalTo": "open modal to {0}", + "Add a domain": "Add a domain", + "Remove domain": "Remove domain '{0}'", + "Icon Emoji": "Icon Emoji", + "smtpDkimDesc": "Please refer to the Nodemailer DKIM {0} for usage.", + "documentation": "documentation", + "smtpDkimDomain": "Domain Name", + "smtpDkimKeySelector": "Key Selector", + "smtpDkimPrivateKey": "Private Key", + "smtpDkimskipFields": "Header Keys not to sign (Optional)", + "Integration Key": "Integration Key", + "smseagleTo": "Phone number(s)", + "smseagleGroup": "Phonebook group name(s)", + "smseagleContact": "Phonebook contact name(s)", + "smseagleGroupV2": "Phonebook group ID(s)", + "smseagleContactV2": "Phonebook contact ID(s)", + "smseagleApiv2": "APIv2 (recommended for new integrations)", + "smseagleDocs": "Check documentation or APIv2 availability: {0}", + "pushDeerServerDescription": "Leave blank to use the official server", + "PushDeer Key": "PushDeer Key", + "SpugPush Template Code": "Template Code", + "wayToGetClickSendSMSToken": "You can get API Username and API Key from {here}.", + "Custom Monitor Type": "Custom Monitor Type", + "Google Analytics ID": "Google Analytics ID", + "No API Keys": "No API Keys", + "apiKey-active": "Active", + "apiKey-expired": "Expired", + "apiKey-inactive": "Inactive", + "Expires": "Expires", + "disableAPIKeyMsg": "Are you sure you want to disable this API key?", + "pagertreeUrgency": "Urgency", + "Generate": "Generate", + "pagertreeIntegrationUrl": "Integration URL", + "ntfyPriorityHelptextAllEvents": "All events are sent with the maximum priority", + "ntfyPriorityHelptextAllExceptDown": "All events are sent with this priority, except {0}-events, which have a priority of {1}", + "ntfyPriorityHelptextPriorityHigherThanDown": "Regular priority should be higher than {0} priority. Priority {1} is higher than {0} priority {2}", + "ntfyPriorityDown": "Priority for DOWN-events", + "ntfyUsernameAndPassword": "Username and Password", + "ntfyUseTemplate": "Customise notification templates", + "ntfyCustomTitle": "Custom Title Template", + "Badge Link Generator": "{0}'s Badge Link Generator", + "Badge Link Generator Helptext": "Badge links are available for all monitors assigned to public status pages. For more information, please see the {documentation}.", + "Badge Type": "Badge Type", + "Badge Duration (in hours)": "Badge Duration (in hours)", + "Badge Style": "Badge Style", + "Badge value (For Testing only.)": "Badge value (For Testing only.)", + "Badge URL": "Badge URL", + "Group": "Group", + "Monitor Group": "Monitor Group", + "toastErrorTimeout": "Timeout for Error Notifications", + "toastSuccessTimeout": "Timeout for Success Notifications", + "Kafka Brokers": "Kafka Brokers", + "Enter the list of brokers": "Enter the list of brokers", + "Press Enter to add broker": "Press Enter to add broker", + "Kafka Topic Name": "Kafka Topic Name", + "Session Token": "Session Token", + "noGroupMonitorMsg": "Not Available. Create a Group Monitor First.", + "Close": "Close", + "Request Body": "Request Body", + "HTTP Method": "HTTP Method", + "webhookPostMethodDesc": "POST is good for most modern HTTP servers.", + "FlashDuty Severity": "Severity", + "nostrSender": "Sender Private Key (nsec)", + "nostrRecipients": "Recipients Public Keys (npub)", + "nostrRecipientsHelp": "npub format, one per line", + "showCertificateExpiry": "Show Certificate Expiry", + "showOnlyLastHeartbeat": "Show Only Last Heartbeat", + "noOrBadCertificate": "No/Bad Certificate", + "cacheBusterParam": "Add the {0} parameter", + "authUserInactiveOrDeleted": "The user is inactive or deleted.", + "authInvalidToken": "Invalid Token.", + "authIncorrectCreds": "Incorrect username or password.", + "2faAlreadyEnabled": "2FA is already enabled.", + "2faEnabled": "2FA Enabled.", + "2faDisabled": "2FA Disabled.", + "successAdded": "Added Successfully.", + "successResumed": "Resumed Successfully.", + "successAuthChangePassword": "Password has been updated successfully.", + "successDisabled": "Disabled Successfully.", + "useRemoteBrowser": "Use a Remote Browser", + "GrafanaOncallUrl": "Grafana Oncall URL", + "screenshotDelayWarning": "Higher values keep the browser open longer, which may increase memory usage with many concurrent monitors.", + "systemService": "System Service", + "documentationOf": "{0} Documentation", + "callMeBotGet": "Here you can generate an endpoint for {0}, {1} and {2}. Keep in mind that you might get rate limited. The ratelimits appear to be: {3}", + "From Phone Number / Transmission Path Originating Address (TPOA)": "From Phone Number / Transmission Path Originating Address (TPOA)", + "max 11 alphanumeric characters": "max 11 alphanumeric characters", + "Community String": "Community String", + "snmpCommunityStringHelptext": "This string functions as a password to authenticate and control access to SNMP-enabled devices. Match it with your SNMP device's configuration.", + "Recipient Type": "Recipient Type", + "Private Number": "Private Number", + "privateOnesenderDesc": "Make sure the number phone is valid. To send message into private number phone, ex: 628123456789", + "contains": "contains", + "not contains": "not contains", + "starts with": "starts with", + "not starts with": "not starts with", + "ends with": "ends with", + "not ends with": "not ends with", + "Deselect All": "Deselect All", + "Elevator": "Elevator", + "Guitar": "Guitar", + "Pop": "Pop", + "Custom sound to override default notification sound": "Custom sound to override default notification sound", + "Press Enter to add node": "Press Enter to add node", + "rabbitmqNodesDescription": "Enter the URL for the RabbitMQ management nodes including protocol and port. Example: {0}", + "rabbitmqNodesRequired": "Please set the nodes for this monitor.", + "rabbitmqHelpText": "To use the monitor, you will need to enable the Management Plugin in your RabbitMQ setup. For more information, please consult the {rabitmq_documentation}.", + "SendGrid API Key": "SendGrid API Key", + "Separate multiple email addresses with commas": "Separate multiple email addresses with commas", + "brevoApiKey": "Brevo API Key", + "brevoApiHelp": "Create an API key here: {0}", + "resendApiHelp": "Create an API key here {0}", + "resendFromName": "From Name", + "resendFromEmail": "From Email", + "resendLeaveBlankForDefaultName": "leave blank for default name", + "resendLeaveBlankForDefaultSubject": "Leave blank for default subject", + "pingCountDescription": "Number of packets to send before stopping", + "pingNumericLabel": "Numeric Output", + "pingNumericDescription": "If checked, IP addresses will be output instead of symbolic hostnames", + "pingGlobalTimeoutLabel": "Global Timeout", + "pingPerRequestTimeoutLabel": "Per-Ping Timeout", + "wahaChatId": "Chat ID (Phone Number / Contact ID / Group ID)", + "wayToGetWahaApiUrl": "Your WAHA Instance URL.", + "wayToGetWahaApiKey": "API Key is WHATSAPP_API_KEY environment variable value you used to run WAHA.", + "YZJ Webhook URL": "YZJ Webhook URL", + "YZJ Robot Token": "YZJ Robot token", + "Plain Text": "Plain Text", + "Message Template": "Message Template", + "Template Format": "Template Format", + "Font Twemoji by Twitter licensed under": "Font Twemoji by Twitter licensed under", + "smsplanetNeedToApproveName": "Needs to be approved in the client panel", + "Google": "Google", + "Plausible": "Plausible", + "fluxerUseMessageTemplate": "Use custom message template", + "fluxerUseMessageTemplateDescription": "If enabled, the message will be sent using a custom template (LiquidJS). Leave blank to use the default Uptime Kuma format.", + "Globalping API Token": "Globalping API Token", + "globalpingApiTokenDescription": "Get your Globalping API Token at {0}.", + "GlobalpingLocationDocs": "Full location input documentation", + "GlobalpingMultipleLocationsError": "Multiple locations are not supported, please use a single location for each monitor.", + "GlobalpingIpFamilyInfo": "The IP version to use. Only allowed if the target is a hostname.", + "Protocol": "Protocol", + "Resolver Server": "Resolver Server", + "account settings": "account settings", + "Location": "Location", + "Monitor Subtype": "Monitor Subtype", + "domainExpiryNotificationHelp": "The number of days in advance can be configured in Settings.", + "mtls-auth-server-key-label": "Key", + "mtls-auth-server-key-placeholder": "Key body", + "mtls-auth-server-ca-label": "CA", + "mtls-auth-server-ca-placeholder": "Server CA", + "Never": "Never", + "passwordTooWeak": "Password is too weak. It should contain alphabetic and numeric characters. It must be at least 6 characters in length.", + "TLS Alerts": "TLS Alerts", + "Expected TLS Alert": "Expected TLS Alert", + "None (Successful Connection)": "None (Successful Connection)", + "TLS Alert Spec": "RFC 8446", + "halopsa_field_title": "Alert title (always 'Uptime Kuma Alert')", + "halopsa_field_status": "Monitor status: UP, DOWN, NOTIFICATION, or UNKNOWN", + "Webhook Payload Fields": "Webhook Payload Fields", + "halopsa_payload_desc": "The following fields are sent to your Halo PSA webhook:", + "halopsa_field_timestamp": "Event timestamp in ISO 8601 format", + "halopsa_field_uptime_kuma_version": "Uptime Kuma version number", + "halopsa_id_usage_hint": "💡 Tip: Use monitor_id to reliably match alerts to tickets, and heartbeat_id to track event history", + "teltonikaUsername": "API username", + "teltonikaUsernameHelptext": "Recommendation: Create a separate account which is restricted to only sending SMS messages and enter its username here", + "teltonikaPassword": "API password", + "teltonikaPasswordHelptext": "You can define the API user's password in your Teltonika router, e.g. {0}", + "teltonikaModem": "Modem Id", + "teltonikaPhoneNumberHelptext": "The number must be in the international format {0}, {1}. Only one number is allowed.", + "Notification Action": "Notification Action", + "successKeyword": "Success Keyword", + "successKeywordExplanation": "MQTT Keyword that will be considered as success", + "recent": "Recent", + "Info": "Info", + "deleteIncidentMsg": "Are you sure you want to delete this incident?", + "deleteStatusPageMsg": "Are you sure want to delete this status page?", + "proxyDescription": "Proxies must be assigned to a monitor to function.", + "For example: nginx, Apache and Traefik.": "For example: nginx, Apache and Traefik.", + "Please input content": "Please input content", + "Please input title": "Please input title", + "Domain Name Expiry Notification": "Domain Name Expiry Notification", + "RSS Title": "RSS Title", + "Leave blank to use status page title": "Leave blank to use status page title", + "Refresh Interval": "Refresh Interval", + "Refresh Interval Description": "The status page will do a full site refresh every {0} seconds", + "Show Powered By": "Show Powered By", + "Domain Names": "Domain Names", + "Show update if available": "Show update if available", + "Also check beta release": "Also check beta release", + "The resource is no longer available.": "The resource is no longer available.", + "There might be a typing error in the address.": "There might be a typing error in the address.", + "wayToGetTelegramChatID": "You can get your chat ID by sending a message to the bot and going to this URL to view the chat_id:", + "telegramServerUrl": "(Optional) Server URL", + "Examples:": "Examples: {0}", + "supportBaleChatID": "Support Direct Chat / Group / Channel's Chat ID", + "wayToGetBaleChatID": "You can get your chat ID by sending a message to the bot and going to this URL to view the chat_id:", + "wayToGetBaleToken": "You can get a token from {0}.", + "Home Assistant URL": "Home Assistant URL", + "backupOutdatedWarning": "Deprecated: Since a lot of features were added and this backup feature is a bit unmaintained, it cannot generate or restore a complete backup.", + "backupRecommend": "Please backup the volume or the data folder (./data/) directly instead.", + "default: notify all devices": "default: notify all devices", + "Frontend Version do not match backend version!": "Frontend Version do not match backend version!", + "Optional": "Optional", + "and": "and", + "or": "or", + "sameAsServerTimezone": "Same as Server Timezone", + "startDateTime": "Start Date/Time", + "pauseMaintenanceMsg": "Are you sure want to pause?", + "maintenanceStatus-under-maintenance": "Under Maintenance", + "maintenanceStatus-inactive": "Inactive", + "maintenanceStatus-scheduled": "Scheduled", + "IconUrl": "Icon URL", + "chromeExecutableDescription": "For Docker users, if Chromium is not yet installed, it may take a few minutes to install and display the test result. It takes 1GB of disk space.", + "dnsCacheDescription": "It may be not working in some IPv6 environments, disable it if you encounter any issues.", + "Maintenance Time Window of a Day": "Maintenance Time Window of a Day", + "ariaCloneMaintenance": "Create a copy of this maintenance schedule", + "ariaEditMaintenance": "Edit this maintenance schedule", + "ariaDeleteMaintenance": "Delete this maintenance schedule", + "Date and Time": "Date and Time", + "install": "Install", + "installing": "Installing", + "uninstall": "Uninstall", + "uninstalling": "Uninstalling", + "confirmUninstallPlugin": "Are you sure want to uninstall this plugin?", + "notificationRegional": "Regional", + "notificationUniversal": "Universal", + "notificationChatPlatforms": "Chat Platforms", + "Clone": "Clone", + "cloneOf": "Clone of {0}", + "smtp": "Email (SMTP)", + "SMTP Security": "SMTP Security", + "To Email": "To Email", + "smtpCC": "CC", + "smtpBCC": "BCC", + "Discord Webhook URL": "Discord Webhook URL", + "Send to channel": "Send to channel", + "wayToGetZohoCliqURL": "You can learn how to create a webhook URL {0}.", + "needSignalAPI": "You need to have a signal client with REST API.", + "wayToCheckSignalURL": "You can check this URL to view how to set one up:", + "Icon URL": "Icon URL", + "dataRetentionTimeError": "Retention period must be 0 or greater", + "confirmDeleteTagMsg": "Are you sure you want to delete this tag? Monitors associated with this tag will not be deleted.", + "enableGRPCTls": "Allow to send gRPC request with TLS connection", + "grpcMethodDescription": "Method name is convert to camelCase format such as sayHello, check, etc.", + "acceptedStatusCodesDescription": "Select status codes which are considered as a successful response.", + "deleteMonitorMsg": "Are you sure want to delete this monitor?", + "deleteMonitorsMsg": "Are you sure you want to delete the selected monitors?", + "pausedMonitorsMsg": "Paused {n} monitor | Paused {n} monitors", + "bulkDeleteErrorMsg": "Failed to delete {n} monitor | Failed to delete {n} monitors", + "deleteGroupMsg": "Are you sure you want to delete this group?", + "deleteChildrenMonitors": "Also delete the direct child monitors and its children if it has any | Also delete all {count} direct child monitors and their children if they have any", + "Events cleared successfully": "Events cleared successfully.", + "No monitors found": "No monitors found.", + "Could not clear events": "Could not clear {failed}/{total} events", + "confirmImportMsg": "Are you sure you want to import the backup? Please verify you've selected the correct import option.", + "octopushLogin": "\"Login\" from HTTP API credentials in control panel", + "promosmsLogin": "API Login Name", + "promosmsPassword": "API Password", + "pushoversounds pushover": "Pushover (default)", + "Copy the web app URL and paste it above": "Copy the web app URL and paste it above", + "Google Apps Script Code": "Google Apps Script Code", + "Copy to Clipboard": "Copy to Clipboard", + "Copied to clipboard!": "Copied to clipboard!", + "Failed to copy to clipboard": "Failed to copy to clipboard", + "Template plain text instead of using cards": "Template plain text instead of using cards", + "wayToGetKookGuildID": "Switch on 'Developer Mode' in Kook setting, and right click the guild to get its ID", + "Guild ID": "Guild ID", + "User Key": "User Key", + "Lowcost": "Lowcost", + "high": "high", + "SendKey": "SendKey", + "goAlertIntegrationKeyInfo": "Get generic API integration key for the service in this format \"aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee\" usually the value of token parameter of copied URL.", + "SecretAccessKey": "AccessKey Secret", + "Mention Mobile List": "Mention mobile list", + "Mention User List": "Mention user id list", + "Don't mention people": "Don't mention people", + "Mention group": "Mention {group}", + "Dingtalk Mobile List": "Mobile list", + "Dingtalk User List": "User ID list", + "Enter a list of userId": "Enter a list of userId", + "High": "High", + "promosmsTypeFlash": "SMS FLASH - Message will automatically show on recipient device. Limited only to Polish recipients.", + "matrixDesc1": "You can find the internal room ID by looking in the advanced section of the room settings in your Matrix client. It should look like !QMdRCpUIfLwsfjxye6:home.server.", + "Proxy server has authentication": "Proxy server has authentication", + "promosmsTypeEco": "SMS ECO - cheap but slow and often overloaded. Limited only to Polish recipients.", + "aboutJiraCloudId": "More info about Jira Cloud ID: {0}", + "see Jira Cloud Docs": "see Jira Cloud Docs", + "Jira Service Management": "Jira Service Management", + "aboutSlackUsername": "Changes the display name of the message sender. If you want to mention someone, include it in the friendly name instead.", + "slackIncludeGroupName": "Include monitor group name", + "slackIncludeGroupNameDescription": "If enabled, the monitor group path will be included in notifications to help distinguish monitors with the same name across different groups.", + "slackUseTemplate": "Use custom message template", + "slackUseTemplateDescription": "If enabled, the message will be sent using a custom template. You can use Liquid templating to include monitor group information via monitorJSON.path or monitorJSON.pathName.", + "aboutChannelName": "Enter the channel name on {0} Channel Name field if you want to bypass the Webhook channel. Ex: #other-channel", + "smtpDkimSettings": "DKIM Settings", + "wayToGetPagerDutyKey": "You can get this by going to Service -> Service Directory -> (Select a service) -> Integrations -> Add integration. Here you can search for \"Events API V2\". More info {0}", + "Integration URL": "Integration URL", + "Auto resolve or acknowledged": "Auto resolve or acknowledged", + "alertaApiKey": "API Key", + "alertaAlertState": "Alert State", + "alertaRecoverState": "Recover State", + "serwersmsAPIUser": "API Username (incl. webapi_ prefix)", + "serwersmsAPIPassword": "API Password", + "serwersmsPhoneNumber": "Phone number", + "serwersmsRecipientType": "Recipient type", + "serwersmsRecipientTypePhone": "Phone number", + "serwersmsRecipientTypeGroup": "Group", + "serwersmsGroupId": "Group ID", + "smseagleEncoding": "Send as Unicode (default=GSM-7)", + "smseaglePriority": "Message priority (0-9, highest priority = 9)", + "smseagleMsgType": "Message type", + "serwersmsGroupIdHelptext": "ID or group IDs in the Customer Panel. These identifiers can be downloaded using action groups / index or by copying them from the editing group in the Customer Panel.", + "serwersmsSenderName": "SMS Sender Name (registered via customer portal)", + "smseagleToken": "API Access token", + "smseagleUrl": "Your SMSEagle device URL", + "onebotGroupMessage": "Group", + "onebotPrivateMessage": "Private", + "onebotUserOrGroupId": "Group/User ID", + "onebotSafetyTips": "For safety, must set access token", + "PushDeer Server": "PushDeer Server", + "Analytics Script URL": "Analytics Script URL", + "Edit Tag": "Edit Tag", + "Server Address": "Server Address", + "Learn More": "Learn More", + "Body Encoding": "Body Encoding", + "API Keys": "API Keys", + "Expiry": "Expiry", + "Expiry date": "Expiry date", + "Don't expire": "Don't expire", + "Continue": "Continue", + "Add Another": "Add Another", + "Key Added": "Key Added", + "apiKeyAddedMsg": "Your API key has been added. Please make a note of it as it will not be shown again.", + "Add API Key": "Add API Key", + "twilloMessagingServiceSIDHelptext": "Enter your Messaging Service SID here if using {twillo_messaging_service_help_link} to manage senders and features", + "twilioAuthToken": "Auth Token / API Key Secret", + "twilioFromNumber": "From Number", + "twilioToNumber": "To Number", + "Monitor Setting": "{0}'s Monitor Setting", + "Show Clickable Link": "Show Clickable Link", + "Show Clickable Link Description": "If checked everyone who have access to this status page can have access to monitor URL.", + "Badge Label Color": "Badge Label Colour", + "Kafka SASL Options": "Kafka SASL Options", + "Mechanism": "Mechanism", + "Pick a SASL Mechanism...": "Pick a SASL Mechanism…", + "nostrRelays": "Nostr relays", + "nostrRelaysHelp": "One relay URL per line", + "Send rich messages": "Send rich messages", + "Bitrix24 Webhook URL": "Bitrix24 Webhook URL", + "wayToGetBitrix24Webhook": "You can create a webhook by following the steps at {0}", + "bitrix24SupportUserID": "Enter your user ID in Bitrix24. You can find out the ID from the link by going to the user's profile.", + "Saved.": "Saved.", + "successDeleted": "Deleted Successfully.", + "successEdited": "Edited Successfully.", + "Remote Browser not found!": "Remote Browser not found!", + "remoteBrowsersDescription": "Remote Browsers are an alternative to running Chromium locally. Set up with a service like browserless.io or connect to your own", + "self-hosted container": "self-hosted container", + "systemServiceName": "Service Name", + "systemServiceDescription": "Checks if system service {service_name} is active", + "receiverSevenIO": "Receiving number", + "receiverInfoSevenIO": "If the receiving number is not located in Germany, you have to add the country code in front of the number (e.g. for the country code 1 from the US use 117612121212 instead of 017612121212)", + "apiKeySevenIO": "SevenIO API Key", + "wayToWriteWhapiRecipient": "The phone number with the international prefix, but without the plus sign at the start ({0}), the Contact ID ({1}) or the Group ID ({2}).", + "wayToGetWhapiUrlAndToken": "You can get the API URL and the token by going into your desired channel from {0}", + "whapiRecipient": "Phone Number / Contact ID / Group ID", + "API URL": "API URL", + "wayToWriteEvolutionRecipient": "The phone number with the international prefix, but without the plus sign at the start ({0}), the Contact ID ({1}) or the Group ID ({2}).", + "evolutionInstanceName": "Instance Name", + "cellsyntOriginatortypeNumeric": "Numeric value (max 15 digits) with telephone number on international format without leading 00 (example UK number 07920 110 000 should be set as 447920110000). Recipients can reply to the message.", + "Originator": "Originator", + "cellsyntOriginator": "Visible on recipient's mobile phone as originator of the message. Allowed values and function depends on parameter originatortype.", + "Destination": "Destination", + "Allow Long SMS": "Allow Long SMS", + "threemaRecipientType": "Recipient Type", + "threemaRecipientTypeIdentity": "Threema-ID", + "threemaRecipientTypeIdentityFormat": "8 characters", + "threemaRecipientTypePhone": "Phone Number", + "threemaRecipientTypePhoneFormat": "E.164, without leading +", + "Token Onesender": "Token Onesender", + "groupOnesenderDesc": "Make sure the GroupID is valid. To send message into Group, ex: 628123456789-342345", + "wayToGetOnesenderUrlandToken": "You can get the URL and Token by going to the Onesender website. More info {0}", + "Add Remote Browser": "Add Remote Browser", + "New Group": "New Group", + "Group Name": "Group Name", + "OAuth2: Client Credentials": "OAuth2: Client Credentials", + "Authentication Method": "Authentication Method", + "Authorization Header": "Authorization Header", + "Form Data Body": "Form Data Body", + "OAuth Token URL": "OAuth Token URL", + "Client ID": "Client ID", + "Client Secret": "Client Secret", + "Optional: Space separated list of scopes": "Optional: Space separated list of scopes", + "Go back to home page.": "Go back to home page.", + "No tags found.": "No tags found.", + "Lost connection to the socket server.": "Lost connection to the socket server.", + "Cannot connect to the socket server.": "Cannot connect to the socket server.", + "SIGNL4": "SIGNL4", + "conditionAddGroup": "Add Group", + "conditionDeleteGroup": "Delete Group", + "conditionValuePlaceholder": "Value", + "equals": "equals", + "Doorbell": "Doorbell", + "Flute": "Flute", + "RabbitMQ Nodes": "RabbitMQ Management Nodes", + "Enter the list of nodes": "Enter the list of RabbitMQ management nodes", + "RabbitMQ Password": "RabbitMQ Password", + "brevoSubject": "Subject", + "brevoSeparateMultipleEmails": "Separate multiple email addresses with commas", + "brevoLeaveBlankForDefaultSubject": "leave blank for default subject", + "resendApiKey": "Resend API Key", + "pingGlobalTimeoutDescription": "Total time in seconds before ping stops, regardless of packets sent", + "Custom URL": "Custom URL", + "OneChatAccessToken": "OneChat Access Token", + "360messengerSelectGroupList": "Select a group to add", + "OneChatBotId": "OneChat Bot ID", + "wahaSession": "Session", + "360messengerRecipient": "Recipient phone number(s)", + "360messengerGroupId": "360messenger Group ID", + "360messengerUseTemplate": "Use a custom message template", + "360messengerTemplate": "360messenger Message Template", + "360messengerGroupList": "WhatsApp groups", + "360messengerSelectedGroupID": "Selected Group ID(s)", + "360messengerEnableSendToGroup": "Enable sending to WhatsApp group(s)", + "360messengerCustomMessageTemplate": "Custom message template", + "360messengerWayToWriteRecipient": "Enter one or more phone numbers in international format without a leading plus (e.g. {0}). Separate multiple numbers with commas.", + "360messengerErrorNoApiKey": "Please enter your 360messenger API key first.", + "360messengerErrorNoGroups": "No WhatsApp groups were found for this account.", + "smsplanetApiDocs": "Detailed information on obtaining API tokens can be found in {the_smsplanet_documentation}.", + "Suppress Notifications": "Suppress Notifications", + "the smsplanet documentation": "the smsplanet documentation", + "Phone numbers": "Phone numbers", + "Sender name": "Sender name", + "discordSuppressNotificationsHelptext": "When enabled, messages will be posted to the channel but won't trigger push or desktop notifications for recipients.", + "discordMessageFormat": "Message Format", + "discordMessageFormatNormal": "Normal (rich embeds)", + "discordMessageFormatCustom": "Custom template", + "discordUseMessageTemplate": "Use custom message template", + "discordUseMessageTemplateDescription": "If enabled, the message will be sent using a custom template (LiquidJS). Leave blank to use the default Uptime Kuma format.", + "discordMessageTemplate": "Message Template", + "fluxerMessageFormat": "Message Format", + "fluxerMessageFormatCustom": "Custom template", + "ipFamilyDescriptionAutoSelect": "Uses the {happyEyeballs} for determining the IP family.", + "Happy Eyeballs algorithm": "Happy Eyeballs algorithm", + "Add Another Tag": "Add Another Tag", + "fluxerMessageFormatNormal": "Normal (rich embeds)", + "fluxerMessageFormatMinimalist": "Minimalist (short status)", + "Staged Tags for Batch Add": "Staged Tags for Batch Add", + "Clear Form": "Clear Form", + "Allow Notifications": "Allow Notifications", + "domain_expiry_unsupported_unsupported_tld_no_rdap_endpoint": "Domain expiry monitoring is not available for \".{publicSuffix}\" because no RDAP service is listed by IANA", + "minimumIntervalWarning": "Intervals below 20 seconds may result in poor performance.", + "Halo PSA": "Halo PSA", + "domain_expiry_unsupported_is_icann": "The domain \"{domain}\" is not a candidate for domain expiry monitoring, because its public suffix \".{publicSuffix}\" is not managed by ICANN", + "imageResetConfirmation": "Image reset to default", + "screenshot of the website": "Screenshot of the website", + "Basic checkbox toggle button group": "Basic checkbox toggle button group", + "Basic radio toggle button group": "Basic radio toggle button group", + "mtls-auth-server-cert-label": "Cert", + "mtls-auth-server-cert-placeholder": "Cert body", + "avgPing": "Avg Ping", + "Uptime Kuma": "Uptime Kuma", + "maxPing": "Max Ping", + "minPing": "Min Ping", + "Setup Instructions": "Setup Instructions", + "halopsa_setup_step1": "Create an Integration Runbook in HaloPSA (Configuration → Integrations → Integration Runbooks)", + "Sort by uptime": "Sort by uptime", + "Sort by certificate expiry": "Sort by certificate expiry", + "Splunk Rest URL": "Splunk Rest URL", + "Severity": "Severity", + "Message Format": "Message Format", + "Sort by status": "Sort by status", + "Sort by name": "Sort by name", + "To Number": "To Number", + "GrafanaOncallURL": "Grafana Oncall URL", + "Show this Maintenance Message on which Status Pages": "Show this Maintenance Message on which Status Pages", + "Details": "Details", + "Expand All Groups": "Expand All Groups", + "Collapse All Groups": "Collapse All Groups", + "teltonikaVersionWarning": "This notification provider requires that your Teltonika device runs RMS version 7.14.0, or higher.", + "teltonikaUrl": "Your Teltonika device URL", + "teltonikaUrlHelptext": "URL should be specified as full origin, e.g. {0}, or {1}.", + "teltonikaUnsafeTls": "Ignore certificate validation", + "teltonikaUnsafeTlsDescription": "Turning off TLS certificate validation opens you up to on-path (man-in-the-middle) attacks, potentially leading to data leaks and systems take-over. Do not turn off certificate validation unless you accept this attack vector. We recomend using LetsEncrypt with automatic renewal." } From 0f611fae2a3ed9eba8cdd960ce600c7642db4bb6 Mon Sep 17 00:00:00 2001 From: Cyril59310 Date: Wed, 29 Apr 2026 22:52:07 +0000 Subject: [PATCH 03/20] Translated using Weblate (French) Currently translated at 100.0% (1532 of 1532 strings) Co-authored-by: Cyril59310 Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/fr/ Translation: Uptime Kuma/Uptime Kuma --- src/lang/fr-FR.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/lang/fr-FR.json b/src/lang/fr-FR.json index 037af8dec..be67e2cc5 100644 --- a/src/lang/fr-FR.json +++ b/src/lang/fr-FR.json @@ -35,8 +35,8 @@ "rrtypeDescription": "Veuillez sélectionner un type d'enregistrement DNS", "pauseMonitorMsg": "Êtes-vous sûr de vouloir mettre en pause cette sonde ?", "enableDefaultNotificationDescription": "Pour chaque nouvelle sonde, cette notification sera activée par défaut. Vous pouvez toujours désactiver la notification séparément pour chaque sonde.", - "clearEventsMsg": "Êtes-vous sûr de vouloir supprimer tous les événements pour cette sonde ?", - "clearHeartbeatsMsg": "Êtes-vous sûr de vouloir supprimer toutes les vérifications pour cette sonde ?", + "clearEventsMsg": "Êtes-vous sûr de vouloir supprimer tous les événements de cette sonde ? Cette action supprime définitivement les données de messages associées et ne peut être annulée.", + "clearHeartbeatsMsg": "Êtes-vous sûr de vouloir supprimer toutes les données de fréquence cardiaque de cette sonde ? Cette action efface définitivement toutes les données et ne peut être annulée.", "confirmClearStatisticsMsg": "Êtes-vous sûr de vouloir supprimer toutes les statistiques ?", "importHandleDescription": "Choisissez « Ignorer l'existant » si vous voulez ignorer chaque sonde ou notification portant le même nom. L'option « Écraser » supprime toutes les sondes et notifications existantes.", "confirmImportMsg": "Êtes-vous sûr de vouloir importer la sauvegarde ? Veuillez vous assurer que vous avez sélectionné la bonne option d'importation.", @@ -1183,7 +1183,7 @@ "mqttHostnameTip": "Veuillez utiliser ce format {hostnameFormat}", "Template plain text instead of using cards": "Modèle en texte brut au lieu d'utiliser des cartes", "issueWithGoogleChatOnAndroidHelptext": "Cela permet également de contourner les bugs en amont comme {issuetackerURL}", - "clearAllEventsMsg": "Êtes-vous sûr de vouloir supprimer tous les événements ?", + "clearAllEventsMsg": "Êtes-vous sûr de vouloir supprimer tous les événements pour toutes les sondes ? Cette action supprime définitivement les données de messages associées et ne peut être annulée.", "Clear All Events": "Effacer tous les événements", "Events cleared successfully": "Événements effacés avec succès.", "No monitors found": "Aucun sonde trouvé.", From 153f8fad4a8a0e51d23bd4338f6c8997ab34d05b Mon Sep 17 00:00:00 2001 From: Gringo Date: Wed, 29 Apr 2026 22:52:07 +0000 Subject: [PATCH 04/20] Translated using Weblate (Italian) Currently translated at 100.0% (1533 of 1533 strings) Translated using Weblate (Italian) Currently translated at 100.0% (1532 of 1532 strings) Co-authored-by: Gringo Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/it/ Translation: Uptime Kuma/Uptime Kuma --- src/lang/it-IT.json | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/lang/it-IT.json b/src/lang/it-IT.json index 20c072f29..511f44930 100644 --- a/src/lang/it-IT.json +++ b/src/lang/it-IT.json @@ -17,8 +17,8 @@ "rrtypeDescription": "Sceglie il tipo di RR che si vuole monitorare", "pauseMonitorMsg": "Sei sicuro di voler mettere in pausa?", "enableDefaultNotificationDescription": "Per ogni nuovo monitoraggio questa notifica sarà abilitata in modo predefinito. È comunque possibile disabilitare la notifica singolarmente.", - "clearEventsMsg": "Sei sicuro di voler eliminare tutti gli eventi per questo monitoraggio?", - "clearHeartbeatsMsg": "Sei sicuro di voler eliminare tutti gli intervalli di controllo per questo monitoraggio?", + "clearEventsMsg": "Sei sicuro di voler eliminare tutti gli eventi per questo monitoraggio? Questa operazione rimuove definitivamente i dati dei messaggi associati e non può essere annullata.", + "clearHeartbeatsMsg": "Sei sicuro di voler eliminare tutti i dati relativi ai battiti cardiaci di questo monitoraggio? Questa operazione elimina definitivamente tutti i dati relativi ai battiti cardiaci e non può essere annullata.", "confirmClearStatisticsMsg": "Sei sicuro di voler eliminare TUTTE le statistiche?", "importHandleDescription": "Seleziona \"Ignora esistenti\" se vuoi ignorare tutti i monitoraggi o le notifiche con lo stesso nome. \"Sovrascrivi\" eliminerà tutti i monitoraggi e le notifiche esistenti.", "confirmImportMsg": "Sei sicuro di voler importare il backup? Controlla di aver selezionato l'opzione corretta di importazione.", @@ -783,7 +783,7 @@ "Add Tags": "Aggiungi Etichette", "Mentioning": "Menzione", "Clear All Events": "Cancella tutti gli eventi", - "clearAllEventsMsg": "Sei sicuro di eliminare tutti gli eventi?", + "clearAllEventsMsg": "Sei sicuro di voler eliminare tutti gli eventi per tutti i monitoraggio? Questa operazione rimuove definitivamente i dati dei messaggi associati e non può essere annullata.", "Events cleared successfully": "Eventi cancellati con successo.", "No monitors found": "Nessun monitoraggio trovato.", "Could not clear events": "Impossibile cancellare {falliti} di {totali} eventi", @@ -1619,5 +1619,6 @@ "vkDontParseLinks": "Disabilita anteprime dei link", "vkDontParseLinksDescription": "Se abilitato, VK non genererà anteprime/link snippet.", "vkPeerIdDescription": "Inserisci il peer_id di destinazione di VK. Questo valore viene inviato all’API così com’è.", - "oracledbConnectionString": "Database Oracle: {connectionString}" + "oracledbConnectionString": "Database Oracle: {connectionString}", + "WebSocket Options": "Opzioni WebSocket" } From c0242fdc08ed855f7e0c6605241a656fa17c9b9f Mon Sep 17 00:00:00 2001 From: Samuel Date: Wed, 29 Apr 2026 22:52:07 +0000 Subject: [PATCH 05/20] Translated using Weblate (Portuguese) Currently translated at 15.0% (231 of 1532 strings) Translated using Weblate (Portuguese (Brazil)) Currently translated at 99.8% (1530 of 1532 strings) Co-authored-by: Samuel Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/pt/ Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/pt_BR/ Translation: Uptime Kuma/Uptime Kuma --- src/lang/pt-BR.json | 2 +- src/lang/pt.json | 8 +++++--- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/src/lang/pt-BR.json b/src/lang/pt-BR.json index 233acf780..153c221c8 100644 --- a/src/lang/pt-BR.json +++ b/src/lang/pt-BR.json @@ -18,7 +18,7 @@ "pauseMonitorMsg": "Tem certeza que deseja fazer uma pausa?", "enableDefaultNotificationDescription": "Para cada novo monitor, esta notificação será habilitada por padrão. Você ainda pode desativar a notificação separadamente para cada monitor.", "clearEventsMsg": "Tem certeza de que deseja excluir todos os eventos deste monitor?", - "clearHeartbeatsMsg": "Tem certeza de que deseja excluir todos os heartbeats deste monitor?", + "clearHeartbeatsMsg": "Tem certeza de que deseja excluir todos os heartbeats deste monitor? Isso removerá permanentemente todos os dados de heartbeats e não poderá ser desfeito.", "confirmClearStatisticsMsg": "Tem certeza que deseja excluir TODAS as estatísticas?", "importHandleDescription": "Escolha 'Ignorar existente' se quiser ignorar todos os monitores ou notificações com o mesmo nome. 'Substituir' excluirá todos os monitores e notificações existentes.", "confirmImportMsg": "Tem certeza que deseja importar o backup? Certifique-se de que selecionou a opção de importação correta.", diff --git a/src/lang/pt.json b/src/lang/pt.json index ba8e67fc4..cba4b3042 100644 --- a/src/lang/pt.json +++ b/src/lang/pt.json @@ -56,12 +56,12 @@ "Specific Monitor Type": "Tipo Específico de Monitoramento", "markdownSupported": "Sintaxe Markdown suportada. Se estiver usando HTML, evite espaços iniciais para evitar problemas de formatação.", "DateTime": "Data e Hora", - "Cert Exp.": "Expiração do Certificado", + "Cert Exp.": "Expiração do Certificado.", "Monitor Type": "Tipo de Monitoramento", "Keyword": "Palavra-chave", "Invert Keyword": "Inverter Palavra-chave", "Expected Value": "Valor Esperado", - "Json Query": "Json Query", + "Json Query": "Consulta JSON", "Friendly Name": "Nome Amigável", "Hostname": "Hostname", "Heartbeat Interval": "Intervalo de verificação", @@ -235,5 +235,7 @@ "minutes": "{n} minutos | {n} minutos", "minuteShort": "{n} min | {n} min", "days": "{n} dia | {n} dias", - "versionIs": "Versão: {version}" + "versionIs": "Versão: {version}", + "oracledbConnectionString": "Banco de dados Oracle: {connectionString}", + "enableSSL": "Ativar SSL/TLS" } From 452ed3ddcb7381624dfdf97bac2edb26c51496bc Mon Sep 17 00:00:00 2001 From: tantuyu Date: Wed, 29 Apr 2026 22:52:07 +0000 Subject: [PATCH 06/20] Translated using Weblate (Chinese (Traditional)) Currently translated at 78.0% (1196 of 1532 strings) Co-authored-by: tantuyu Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/zh_Hant/ Translation: Uptime Kuma/Uptime Kuma --- src/lang/zh-TW.json | 23 ++++++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) diff --git a/src/lang/zh-TW.json b/src/lang/zh-TW.json index 5d52fd67a..9a542831f 100644 --- a/src/lang/zh-TW.json +++ b/src/lang/zh-TW.json @@ -1241,5 +1241,26 @@ "saveErrorResponseForNotifications": "保存 HTTP 錯誤回應以用於通知", "saveResponseDescription": "儲存 HTTP 回應,並將其作為 {templateVariable} 提供給通知範本。", "responseMaxLength": "響應最大長度(bytes)", - "responseMaxLengthDescription": "要儲存的回應資料的最大大小。設定為 0 表示無限制。較大的回應將被截斷。預設值:1024 (1KB)" + "responseMaxLengthDescription": "要儲存的回應資料的最大大小。設定為 0 表示無限制。較大的回應將被截斷。預設值:1024 (1KB)", + "example": "範例", + "Result": "結果", + "Resolve": "解決", + "Resolved": "已解決", + "Actions": "操作", + "monitorTypeSpecial": "特殊的", + "oracledbConnectionString": "Oracle 資料庫:{connectionString}", + "selectedMonitorCountMsg": "已選:{n} | 已選取:{n}", + "matrixUseTemplateDescription": "如果啟用,訊息將使用自訂範本發送。", + "wayToGetMaxToken": "您可以從 {0} 獲取 MAX 機器人令牌和其他詳細資訊。", + "matrixUseTemplate": "使用自訂訊息範本", + "Please input content": "請輸入內容", + "Please input title": "請輸入標題", + "dateCreatedAtFromNow": "建立日期:{date}({fromNow})", + "RSS Title": "RSS 標題", + "Leave blank to use status page title": "留空則使用狀態頁面標題", + "Cloud ID": "Cloud ID", + "API Token": "API Token", + "See Jira Cloud Docs": "請參閱 Jira Cloud 文檔", + "certHostnameMismatch": "憑證主機名稱與監控 URL 不符。", + "sipsakPingWarning": "要使用 SIP Options Ping 監視器,您需要在不安裝 Docker 的情況下安裝 Uptime Kuma,並在伺服器上安裝 Sipsak 用戶端。" } From 5564fc0661b2527e147fe131cb207ebe1bdec88c Mon Sep 17 00:00:00 2001 From: Jozef Gaal Date: Wed, 29 Apr 2026 22:52:07 +0000 Subject: [PATCH 07/20] Translated using Weblate (Slovak) Currently translated at 100.0% (1533 of 1533 strings) Translated using Weblate (Slovak) Currently translated at 100.0% (1532 of 1532 strings) Co-authored-by: Jozef Gaal Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/sk/ Translation: Uptime Kuma/Uptime Kuma --- src/lang/sk.json | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/src/lang/sk.json b/src/lang/sk.json index e507a8dfd..bcb031760 100644 --- a/src/lang/sk.json +++ b/src/lang/sk.json @@ -565,7 +565,7 @@ "cronExpression": "Výraz Cron", "Maintenance Time Window of a Day": "Časový interval údržby cez deň", "Hello @everyone is...": "Dobrý deň, {'@'}všetci sú…", - "clearHeartbeatsMsg": "Naozaj chcete odstrániť všetky pulzy pre toto sledovanie?", + "clearHeartbeatsMsg": "Naozaj chcete odstrániť všetky záznamy pulzy z tohto monitora? Týmto krokom sa natrvalo odstránia všetky údaje o pulzoch a túto akciu nie je možné vrátiť späť.", "Trust Proxy": "Dôverovať proxy", "RadiusCalledStationId": "ID volaného zariadenia", "Connection String": "Reťazec pripojenia", @@ -576,7 +576,7 @@ "and": "a", "shrinkDatabaseDescriptionSqlite": "Spusti prečistenie databázy {vacuum} pre SQLite. {auto_vacuum} je už povolené, ale to nedefragmentuje databázu ani neprebalí jednotlivé stránky databázy tak, ako to robí príkaz {vacuum}.", "lineDevConsoleTo": "Konzola Line Developers - {0}", - "clearEventsMsg": "Naozaj chcete odstrániť všetky udalosti pre toto sledovanie?", + "clearEventsMsg": "Naozaj chcete odstrániť všetky udalosti pre tento monitor? Týmto sa natrvalo odstránia súvisiace údaje o správach a túto akciu nie je možné vrátiť späť.", "now": "teraz", "time ago": "pred {0}", "Json Query Expression": "Výraz dotazu JSON", @@ -750,7 +750,7 @@ "tokenValidSettingsMsg": "Token je platný! Teraz môžete uložiť nastavenia 2FA.", "endpoint": "koncový bod (endpoint)", "Clear All Events": "Vyčistiť všetky udalosti", - "clearAllEventsMsg": "Určite chcete odstrániť všetky udalosti?", + "clearAllEventsMsg": "Naozaj chcete odstrániť všetky udalosti zo všetkých monitorov? Týmto krokom sa natrvalo odstránia príslušné údaje o správach a túto akciu nie je možné vrátiť späť.", "Events cleared successfully": "Udalosti boli úspešne vyčistené.", "Path": "Cesta", "mqttWebsocketPathInvalid": "Použite prosím platný formát cesty WebSocket", @@ -1595,5 +1595,16 @@ "vkDontParseLinks": "Zakázať ukážky odkazov", "vkDontParseLinksDescription": "Ak je táto funkcia zapnutá, VK nebude generovať náhľady odkazov ani ukážky.", "vkPeerIdDescription": "Zadajte cieľové peer_id VK. Táto hodnota sa odošle do API v nezmenenej podobe.", - "telnyxApiKey": "API kľúč (V2)" + "telnyxApiKey": "API kľúč (V2)", + "telnyxApiKeyHelptext": "Váš API kľúč Telnyx V2 z portálu Telnyx v sekcii API kľúče", + "telnyxPhoneNumber": "Z čísla", + "telnyxPhoneNumberHelptext": "Vaše telefónne číslo Telnyx, z ktorého chcete odosielať (musí byť zaregistrované vo vašom účte Telnyx, napr. +15551234567)", + "telnyxToNumber": "Na číslo", + "telnyxToNumberHelptext": "Cieľové telefónne číslo, na ktoré majú prichádzať SMS upozornenia (napr. +15559876543)", + "telnyxMessagingProfileId": "ID profilu zasielania správ (voliteľné)", + "telnyxMessagingProfileIdHelptext": "Voliteľne môžete priradiť profil zasielania správ Telnyx, aby ste mohli spravovať nastavenia a funkcie odosielateľa", + "RecordMatch": "Zhoda hodnoty záznamu", + "evolutionCustomMessageTitle": "Vlastná správa (voliteľné)", + "evolutionCustomMessageDesc": "Nechajte prázdne, ak chcete použiť predvolenú správu.", + "WebSocket Options": "Možnosti WebSocket" } From 27c965e210f992967aab356704ad1ea33b8ec73b Mon Sep 17 00:00:00 2001 From: Virenbar Date: Wed, 29 Apr 2026 22:52:07 +0000 Subject: [PATCH 08/20] Translated using Weblate (Russian) Currently translated at 100.0% (1533 of 1533 strings) Translated using Weblate (Russian) Currently translated at 100.0% (1532 of 1532 strings) Co-authored-by: Virenbar Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/ru/ Translation: Uptime Kuma/Uptime Kuma --- src/lang/ru-RU.json | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/lang/ru-RU.json b/src/lang/ru-RU.json index b9ee8ad1d..839ab9603 100644 --- a/src/lang/ru-RU.json +++ b/src/lang/ru-RU.json @@ -114,8 +114,8 @@ "respTime": "Время ответа (мс)", "notAvailableShort": "N/A", "Create": "Создать", - "clearEventsMsg": "Вы действительно хотите удалить всю статистику событий данного монитора?", - "clearHeartbeatsMsg": "Вы действительно хотите удалить всю статистику опросов данного монитора?", + "clearEventsMsg": "Вы уверены, что хотите удалить все события для этого монитора? При этом связанные с сообщением данные удаляются безвозвратно и не могут быть отменены.", + "clearHeartbeatsMsg": "Вы действительно хотите удалить всю статистику опросов данного монитора? При этом связанные с сообщением данные удаляются безвозвратно и не могут быть отменены.", "confirmClearStatisticsMsg": "Вы действительно хотите удалить ВСЮ статистику?", "Clear Data": "Стереть данные", "Events": "События", @@ -1158,7 +1158,7 @@ "defaultFriendlyName": "Новый монитор", "tagAlreadyOnMonitor": "Этот тег (имя и значение) уже отображается на мониторе или ожидает добавления.", "tagAlreadyStaged": "Этот тег (имя и значение) уже подготовлен для этого пакета.", - "clearAllEventsMsg": "Вы уверены, что хотите удалить все события?", + "clearAllEventsMsg": "Вы уверены, что хотите удалить все события для всех мониторов? При этом связанные с сообщением данные удаляются безвозвратно и не могут быть отменены.", "No monitors found": "Мониторы не найдены.", "Could not clear events": "Не удалось удалить {failed}/{total} событий", "FlashDuty Push URL": "URL-адрес Push", @@ -1651,5 +1651,6 @@ "vkPeerIdDescription": "Введите целевой peer_id. Это значение будет использоваться в API.", "fluxerMessageFormatNormal": "Обычный (расширенные встраивания)", "fluxerUseMessageTemplateDescription": "Если включено, сообщение будет отправляться с использованием пользовательского шаблона (LiquidJS). Оставьте поле пустым, чтобы использовать формат Uptime Kuma по умолчанию.", - "fluxerMessageFormatMinimalist": "Минималистичный (краткий статус)" + "fluxerMessageFormatMinimalist": "Минималистичный (краткий статус)", + "WebSocket Options": "Настройки WebSocket" } From 34cfca8a2ffe0d156840dd03e7682575629b241d Mon Sep 17 00:00:00 2001 From: MrEddX Date: Wed, 29 Apr 2026 22:52:08 +0000 Subject: [PATCH 09/20] Translated using Weblate (Bulgarian) Currently translated at 100.0% (1534 of 1534 strings) Translated using Weblate (Bulgarian) Currently translated at 100.0% (1533 of 1533 strings) Co-authored-by: MrEddX Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/bg/ Translation: Uptime Kuma/Uptime Kuma --- src/lang/bg-BG.json | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/lang/bg-BG.json b/src/lang/bg-BG.json index 1e2b200ee..e401bac16 100644 --- a/src/lang/bg-BG.json +++ b/src/lang/bg-BG.json @@ -17,8 +17,8 @@ "rrtypeDescription": "Изберете ресурсния запис, който желаете да наблюдавате", "pauseMonitorMsg": "Наистина ли желаете да поставите в режим пауза?", "enableDefaultNotificationDescription": "За всеки нов монитор това известие ще бъде активирано по подразбиране. Можете да го изключите за всеки отделен монитор.", - "clearEventsMsg": "Наистина ли желаете да изтриете всички събития за този монитор?", - "clearHeartbeatsMsg": "Наистина ли желаете да изтриете всички записи за честотни проверки на този монитор?", + "clearEventsMsg": "Сигурни ли сте, че желаете да изтриете всички събития за този монитор? Това перманентно премахва съпровождащите данни и не може да бъде отменено.", + "clearHeartbeatsMsg": "Сигурни ли сте, че желаете да изтриете всички записи на честотни събития за този монитор? Това перманентно премахва съпровождащите данни и не може да бъде отменено.", "confirmClearStatisticsMsg": "Наистина ли желаете да изтриете всички статистически данни?", "importHandleDescription": "Изберете 'Пропусни съществуващите', ако желаете да пропуснете всеки монитор или известие със същото име. 'Презапис' ще изтрие всеки съществуващ монитор и известие.", "confirmImportMsg": "Сигурни ли сте, че желаете импортирането на архива? Моля, уверете се, че сте избрали правилната опция за импортиране.", @@ -1186,7 +1186,7 @@ "Events cleared successfully": "Събитията са изчистени успешно.", "No monitors found": "Не са намерени монитори.", "Clear All Events": "Изчисти всички събития", - "clearAllEventsMsg": "Сигурни ли сте, че желатет да изчистите всички събития?", + "clearAllEventsMsg": "Сигурни и сте, че желаете да изтриете всички събития за всички монитори? Това премахва перманентно съпровождащите данни и не може да бъде отменено.", "Could not clear events": "Неуспешен опит за изчистване на {failed}/{total} събития", "wayToWriteEvolutionRecipient": "Телефонният номер с международен префикс, но без знака плюс в началото ({0}), ID на контакта ({1}) или ID на на групата ({2}).", "wayToGetEvolutionUrlAndToken": "Можете да получите API URL адреса, като влезете в желания от вас канал от {0}", @@ -1646,5 +1646,7 @@ "telnyxMessagingProfileIdHelptext": "По желание можете да свържете профил за съобщения Telnyx, за да контролирате настройките и функциите на подателя", "vkPeerIdDescription": "Въведете целевия VK peer_id. Тази стойност се изпраща към API \"както е\".", "evolutionCustomMessageTitle": "Персонализирано съобщение (по избор)", - "evolutionCustomMessageDesc": "Оставете празно, за да използвате съобщението по подразбиране." + "evolutionCustomMessageDesc": "Оставете празно, за да използвате съобщението по подразбиране.", + "WebSocket Options": "WebSocket опции", + "pingPacketSizeWarning": "Пакет с размер по-малък от 16 не продуцира \"round-trip\" време в Linux" } From 076a8c4a65eda44a1b9963c287ed6d83966f3bec Mon Sep 17 00:00:00 2001 From: Aluisio Date: Wed, 29 Apr 2026 22:52:08 +0000 Subject: [PATCH 10/20] Translated using Weblate (Portuguese (Brazil)) Currently translated at 100.0% (1533 of 1533 strings) Co-authored-by: Aluisio Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/pt_BR/ Translation: Uptime Kuma/Uptime Kuma --- src/lang/pt-BR.json | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/lang/pt-BR.json b/src/lang/pt-BR.json index 153c221c8..f8c4efcf4 100644 --- a/src/lang/pt-BR.json +++ b/src/lang/pt-BR.json @@ -17,7 +17,7 @@ "rrtypeDescription": "Selecione o RR-Type que você deseja monitorar", "pauseMonitorMsg": "Tem certeza que deseja fazer uma pausa?", "enableDefaultNotificationDescription": "Para cada novo monitor, esta notificação será habilitada por padrão. Você ainda pode desativar a notificação separadamente para cada monitor.", - "clearEventsMsg": "Tem certeza de que deseja excluir todos os eventos deste monitor?", + "clearEventsMsg": "Tem certeza de que deseja excluir todos os eventos deste monitor? Isso remove permanentemente os dados de mensagens associados e não pode ser desfeito.", "clearHeartbeatsMsg": "Tem certeza de que deseja excluir todos os heartbeats deste monitor? Isso removerá permanentemente todos os dados de heartbeats e não poderá ser desfeito.", "confirmClearStatisticsMsg": "Tem certeza que deseja excluir TODAS as estatísticas?", "importHandleDescription": "Escolha 'Ignorar existente' se quiser ignorar todos os monitores ou notificações com o mesmo nome. 'Substituir' excluirá todos os monitores e notificações existentes.", @@ -1151,7 +1151,7 @@ "Events cleared successfully": "Eventos limpos com sucesso.", "No monitors found": "Nenhum monitor encontrado.", "Could not clear events": "Não foi possível limpar {failed}/{total} eventos", - "clearAllEventsMsg": "Tem certeza de que deseja excluir todos os eventos?", + "clearAllEventsMsg": "Tem certeza de que deseja excluir todos os eventos de todos os monitores? Isso remove permanentemente os dados de mensagens associados e não pode ser desfeito.", "wayToWriteEvolutionRecipient": "O número de telefone com o prefixo internacional, mas sem o sinal de mais no início ({0}), o ID de contato ({1}) ou o ID de grupo ({2}).", "wayToGetEvolutionUrlAndToken": "Você pode obter a URL da API e o token acessando o canal desejado em {0}", "evolutionRecipient": "Número de Telefone / ID de Contato / ID do Grupo", @@ -1613,5 +1613,6 @@ "telnyxApiKeyHelptext": "Sua chave de API V2 da Telnyx, obtida no Portal da Telnyx em Chaves de API", "telnyxToNumberHelptext": "O número de telefone de destino para receber notificações por SMS (ex.: +15559876543)", "evolutionCustomMessageTitle": "Mensagem personalizada (opcional)", - "evolutionCustomMessageDesc": "Deixe em branco para usar a mensagem padrão." + "evolutionCustomMessageDesc": "Deixe em branco para usar a mensagem padrão.", + "WebSocket Options": "Opções do WebSocket" } From 679195d7e5ad0d47c6be6b29ce01efa307f5cf41 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Aindri=C3=BA=20Mac=20Giolla=20Eoin?= Date: Wed, 29 Apr 2026 22:52:08 +0000 Subject: [PATCH 11/20] Translated using Weblate (Irish) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Currently translated at 100.0% (1533 of 1533 strings) Co-authored-by: Aindriú Mac Giolla Eoin Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/ga/ Translation: Uptime Kuma/Uptime Kuma --- src/lang/ga.json | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/lang/ga.json b/src/lang/ga.json index 37c3ffdd5..e85f1dbc3 100644 --- a/src/lang/ga.json +++ b/src/lang/ga.json @@ -530,8 +530,8 @@ "dnsPortDescription": "Port freastalaí DNS. Réamhshocrú go 53. Is féidir leat an port a athrú am ar bith.", "rrtypeDescription": "Roghnaigh an cineál RR is mian leat chun monatóireacht a dhéanamh", "pauseMonitorMsg": "An bhfuil tú cinnte gur mhaith leat sos?", - "clearEventsMsg": "An bhfuil tú cinnte gur mhaith leat gach imeacht don mhonatóir seo a scriosadh?", - "clearHeartbeatsMsg": "An bhfuil tú cinnte gur mhaith leat gach buille croí don mhonatóir seo a scriosadh?", + "clearEventsMsg": "An bhfuil tú cinnte gur mian leat gach imeacht don mhonatóir seo a scriosadh? Baintear sonraí teachtaireachta gaolmhara leis seo go buan agus ní féidir é a chealú.", + "clearHeartbeatsMsg": "An bhfuil tú cinnte gur mian leat gach buille croí a scriosadh don mhonatóir seo? Baintear gach sonraí buille croí leis seo go buan agus ní féidir é a chealú.", "confirmClearStatisticsMsg": "An bhfuil tú cinnte gur mian leat GACH staitisticí a scriosadh?", "confirmImportMsg": "An bhfuil tú cinnte gur mhaith leat an cúltaca a iompórtáil? Cinntigh gur roghnaigh tú an rogha iompórtála ceart.", "twoFAVerifyLabel": "Cuir isteach do tócan chun 2FA a fhíorú:", @@ -1140,7 +1140,7 @@ "mqttWebSocketPath": "Cosán Soicéad Gréasáin MQTT", "mqttWebsocketPathInvalid": "Úsáid formáid bhailí Cosáin WebSocket le do thoil", "Clear All Events": "Glan Gach Imeacht", - "clearAllEventsMsg": "An bhfuil tú cinnte gur mian leat gach imeacht a scriosadh?", + "clearAllEventsMsg": "An bhfuil tú cinnte gur mian leat gach imeacht a scriosadh do gach monatóir? Baintear sonraí teachtaireachta gaolmhara leis seo go buan agus ní féidir é a chealú.", "Template plain text instead of using cards": "Téacs simplí teimpléid in ionad cártaí a úsáid", "issueWithGoogleChatOnAndroidHelptext": "Ligeann sé seo freisin dul timpeall ar fhabhtanna suas an sruth cosúil le {issuetackerURL}", "supportBaleChatID": "Tacaíocht Comhrá Díreach / Grúpa / ID Comhrá an Chainéil", @@ -1600,5 +1600,6 @@ "telnyxMessagingProfileIdHelptext": "Is féidir Próifíl Teachtaireachtaí Telnyx a cheangal go roghnach chun socruithe agus gnéithe an tseoltóra a rialú", "evolutionCustomMessageTitle": "Teachtaireacht Saincheaptha (roghnach)", "evolutionCustomMessageDesc": "Fág folamh chun an teachtaireacht réamhshocraithe a úsáid.", - "telnyxPhoneNumberHelptext": "D'uimhir theileafóin Telnyx le seoladh uaithi (ní mór í a bheith cláraithe i do chuntas Telnyx, m.sh. +15551234567)" + "telnyxPhoneNumberHelptext": "D'uimhir theileafóin Telnyx le seoladh uaithi (ní mór í a bheith cláraithe i do chuntas Telnyx, m.sh. +15551234567)", + "WebSocket Options": "Roghanna Soicéad Gréasáin" } From ef2f86c182e8a605aaed068c7fc4ac24728bd3d7 Mon Sep 17 00:00:00 2001 From: Helak Date: Wed, 29 Apr 2026 22:52:08 +0000 Subject: [PATCH 12/20] Translated using Weblate (Czech) Currently translated at 100.0% (1534 of 1534 strings) Translated using Weblate (Czech) Currently translated at 100.0% (1533 of 1533 strings) Co-authored-by: Helak Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/cs/ Translation: Uptime Kuma/Uptime Kuma --- src/lang/cs-CZ.json | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/lang/cs-CZ.json b/src/lang/cs-CZ.json index 9199db549..344eddcbc 100644 --- a/src/lang/cs-CZ.json +++ b/src/lang/cs-CZ.json @@ -35,8 +35,8 @@ "rrtypeDescription": "Vyberte typ záznamu o prostředku, který chcete monitorovat", "pauseMonitorMsg": "Opravdu chcete dohled pozastavit?", "enableDefaultNotificationDescription": "Toto oznámení bude standardně aktivní pro nové dohledy. V případě potřeby můžete oznámení stále zakázat na úrovni jednotlivých dohledů.", - "clearEventsMsg": "Opravdu chcete odstranit všechny události pro tento dohled?", - "clearHeartbeatsMsg": "Opravdu chcete odstranit všechny heartbeaty pro tento dohled?", + "clearEventsMsg": "Opravdu chcete odstranit všechny události tohoto dohledu? Tím dojde k trvalému odstranění souvisejících dat zpráv a tento úkon nelze vrátit zpět.", + "clearHeartbeatsMsg": "Opravdu chcete smazat všechny záznamy životních signálů z tohoto dohledu? Tímto krokem dojde k trvalému odstranění všech údajů o životních signálech a nelze jej vrátit zpět.", "confirmClearStatisticsMsg": "Opravdu chcete smazat VŠECHNY statistiky?", "importHandleDescription": "Možnost 'Přeskočit existující' vyberte v případě, že chcete přeskočit všechny dohledy nebo oznámení se stejným názvem. Vybráním možnosti 'Přepsat' dojde k odstranění všech existujících dohledů a oznámení.", "confirmImportMsg": "Opravdu chcete importovat zálohu? Prosím ověřte, zda jste vybrali správnou možnost importu.", @@ -1176,7 +1176,7 @@ "mqttWebsocketPathExplanation": "WebSocket cesta pro MQTT prostřednictvím WebSocket spojení (např. /mqtt)", "Template plain text instead of using cards": "Šablona prostého textu namísto použití karet", "issueWithGoogleChatOnAndroidHelptext": "Tím se můžete rovněž vyhnout chybám v upstreamu jako je {issuetackerURL}", - "clearAllEventsMsg": "Opravdu chcete odstranit všechny události?", + "clearAllEventsMsg": "Opravdu chcete odstranit všechny události ze všech dohledů? Tím dojde k trvalému smazání souvisejících dat zpráv a tento úkon nelze vrátit zpět.", "Events cleared successfully": "Události byly vymazány.", "No monitors found": "Nebyl nalezen žádný dohled.", "brevoApiHelp": "API klíč vytvoříte na: {0}", @@ -1602,5 +1602,7 @@ "telnyxMessagingProfileId": "ID profilu pro zasílání zpráv (volitelné)", "telnyxMessagingProfileIdHelptext": "Volitelně můžete přiřadit profil zasílání zpráv Telnyx, abyste mohli spravovat nastavení a funkce odesílatele", "evolutionCustomMessageDesc": "Nechte pole prázdné, chcete-li použít výchozí zprávu.", - "evolutionCustomMessageTitle": "Vlastní zpráva (volitelné)" + "evolutionCustomMessageTitle": "Vlastní zpráva (volitelné)", + "WebSocket Options": "Možnosti WebSocketu", + "pingPacketSizeWarning": "Velikost paketu menší než 16 nevyvolává v systému Linux měření doby přenosu tam a zpět" } From 13de229dabddaffccfc258a274fc8446fd35ce52 Mon Sep 17 00:00:00 2001 From: AnnAngela Date: Wed, 29 Apr 2026 22:52:08 +0000 Subject: [PATCH 13/20] Translated using Weblate (Chinese (Simplified)) Currently translated at 99.8% (1531 of 1534 strings) Co-authored-by: AnnAngela Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/zh_Hans/ Translation: Uptime Kuma/Uptime Kuma --- src/lang/zh-CN.json | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/lang/zh-CN.json b/src/lang/zh-CN.json index 9b05b4151..5e23b0b2f 100644 --- a/src/lang/zh-CN.json +++ b/src/lang/zh-CN.json @@ -1648,5 +1648,7 @@ "telnyxToNumber": "收件人号码", "evolutionCustomMessageDesc": "留空以使用默认消息。", "evolutionCustomMessageTitle": "自定义消息(可选)", - "telnyxPhoneNumberHelptext": "发件人 Telnyx 手机号码(必须注册在 Telnyx 账户上,例如:+15551234567)" + "telnyxPhoneNumberHelptext": "发件人 Telnyx 手机号码(必须注册在 Telnyx 账户上,例如:+15551234567)", + "pingPacketSizeWarning": "在 Linux 系统上,小于 16 字节的数据包大小无法计算往返时间(rtt)", + "WebSocket Options": "WebSocket 选项" } From 9e84e3cbc0837705875045299302dd642bc649e3 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Fri, 1 May 2026 11:51:47 +0800 Subject: [PATCH 14/20] chore: update to 2.3.0 (#7336) Co-authored-by: github-actions[bot] --- package-lock.json | 4 ++-- package.json | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/package-lock.json b/package-lock.json index 73e5a6e30..a1b5628a6 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "uptime-kuma", - "version": "2.2.1", + "version": "2.3.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "uptime-kuma", - "version": "2.2.1", + "version": "2.3.0", "license": "MIT", "dependencies": { "@grpc/grpc-js": "~1.8.22", diff --git a/package.json b/package.json index 9ea5c35c4..4f51a1af0 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "uptime-kuma", - "version": "2.2.1", + "version": "2.3.0", "license": "MIT", "repository": { "type": "git", @@ -44,7 +44,7 @@ "build-docker-pr-test": "docker buildx build -f docker/dockerfile --platform linux/amd64,linux/arm64 -t louislam/uptime-kuma:pr-test2 --target pr-test2 . --push", "upload-artifacts": "node extra/release/upload-artifacts.mjs", "upload-artifacts-beta": "node extra/release/upload-artifacts-beta.mjs", - "setup": "git checkout 2.2.1 && npm ci --omit dev --no-audit && npm run download-dist", + "setup": "git checkout 2.3.0 && npm ci --omit dev --no-audit && npm run download-dist", "download-dist": "node extra/download-dist.js", "mark-as-nightly": "node extra/mark-as-nightly.js", "reset-password": "node extra/reset-password.js", From 913105f2de24adaab7ce599db46bea1acfc83b14 Mon Sep 17 00:00:00 2001 From: Andreas Wagner Date: Sat, 2 May 2026 14:24:00 +0200 Subject: [PATCH 15/20] fix: Add `busy_timeout` to sqlite to avoid error `SQLITE_BUSY: database is locked` (#7307) --- server/database.js | 3 +++ 1 file changed, 3 insertions(+) diff --git a/server/database.js b/server/database.js index 993d1f47c..3c5014013 100644 --- a/server/database.js +++ b/server/database.js @@ -435,6 +435,9 @@ class Database { await asyncRun("PRAGMA cache_size = -12000"); await asyncRun("PRAGMA auto_vacuum = INCREMENTAL"); + // Avoid error "SQLITE_BUSY: database is locked" by allowing SQLITE to wait up to 5 seconds to do a write + await asyncRun("PRAGMA busy_timeout = 5000"); + // This ensures that an operating system crash or power failure will not corrupt the database. // FULL synchronous is very safe, but it is also slower. // Read more: https://sqlite.org/pragma.html#pragma_synchronous From 8b27ca67aa562e34b2f3ccb73fff5192b4b59af9 Mon Sep 17 00:00:00 2001 From: Herwindra Berlian Date: Sun, 3 May 2026 11:57:51 +0700 Subject: [PATCH 16/20] fix(push): use multi-arch Node base in push image Dockerfile (#7344) --- extra/uptime-kuma-push/Dockerfile | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/extra/uptime-kuma-push/Dockerfile b/extra/uptime-kuma-push/Dockerfile index 9d619d60d..2a9fafac9 100644 --- a/extra/uptime-kuma-push/Dockerfile +++ b/extra/uptime-kuma-push/Dockerfile @@ -1,4 +1,4 @@ -FROM node AS build +FROM node:22-bookworm-slim AS build RUN useradd --create-home kuma USER kuma WORKDIR /home/kuma @@ -15,4 +15,3 @@ COPY --from=build /home/kuma/uptime-kuma-push ./uptime-kuma-push ENTRYPOINT ["/home/kuma/uptime-kuma-push"] - From 9b92fe19188a83475ba3ede196312c9c669c9908 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Sun, 3 May 2026 11:42:25 +0000 Subject: [PATCH 17/20] chore: Update dependencies (#7340) Co-authored-by: Louis Lam --- package-lock.json | 272 +++++++++++++++++++++++----------------------- package.json | 4 +- 2 files changed, 138 insertions(+), 138 deletions(-) diff --git a/package-lock.json b/package-lock.json index a1b5628a6..66c54927e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -14,7 +14,7 @@ "@louislam/sqlite3": "15.1.6", "@vvo/tzdb": "~6.198.0", "args-parser": "~1.3.0", - "axios": "~0.30.3", + "axios": "~0.31.0", "badge-maker": "~3.3.1", "bcryptjs": "~2.4.3", "chardet": "~1.4.0", @@ -125,7 +125,7 @@ "cronstrue": "~2.24.0", "cross-env": "~7.0.3", "dns2": "~2.0.5", - "dompurify": "~3.3.2", + "dompurify": "~3.4.0", "eslint": "~8.14.0", "eslint-config-prettier": "^10.1.8", "eslint-plugin-jsdoc": "~46.4.6", @@ -333,25 +333,25 @@ } }, "node_modules/@aws-sdk/client-cognito-identity": { - "version": "3.1040.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/client-cognito-identity/-/client-cognito-identity-3.1040.0.tgz", - "integrity": "sha512-7nwgQlDc2brGoPbNP7h3EBXs30zX7sb8m+tLaSQdqnNWpXCpq/AY0H/Fd5BQ5UWPlMB9k3sHAkMkCxm6kZXuLQ==", + "version": "3.1041.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-cognito-identity/-/client-cognito-identity-3.1041.0.tgz", + "integrity": "sha512-h8DxvCsv95RSHTZPyEwGCqOyiQYVWQ4tFe5im4d0qFvFc9xRmseTu3ZsQ9nd+uOzU9rkCoDHClyqUxXU7nm90Q==", "license": "Apache-2.0", "optional": true, "dependencies": { "@aws-crypto/sha256-browser": "5.2.0", "@aws-crypto/sha256-js": "5.2.0", - "@aws-sdk/core": "^3.974.7", - "@aws-sdk/credential-provider-node": "^3.972.38", + "@aws-sdk/core": "^3.974.8", + "@aws-sdk/credential-provider-node": "^3.972.39", "@aws-sdk/middleware-host-header": "^3.972.10", "@aws-sdk/middleware-logger": "^3.972.10", "@aws-sdk/middleware-recursion-detection": "^3.972.11", - "@aws-sdk/middleware-user-agent": "^3.972.37", + "@aws-sdk/middleware-user-agent": "^3.972.38", "@aws-sdk/region-config-resolver": "^3.972.13", "@aws-sdk/types": "^3.973.8", "@aws-sdk/util-endpoints": "^3.996.8", "@aws-sdk/util-user-agent-browser": "^3.972.10", - "@aws-sdk/util-user-agent-node": "^3.973.23", + "@aws-sdk/util-user-agent-node": "^3.973.24", "@smithy/config-resolver": "^4.4.17", "@smithy/core": "^3.23.17", "@smithy/fetch-http-handler": "^5.3.17", @@ -384,9 +384,9 @@ } }, "node_modules/@aws-sdk/core": { - "version": "3.974.7", - "resolved": "https://registry.npmjs.org/@aws-sdk/core/-/core-3.974.7.tgz", - "integrity": "sha512-YhRC90ofz5oolTJZlA8voU/oUrCB2azi8Usx51k8hhB5LpWbYQMMXKUqSqkoL0Cru+RQJgWTHpAfEDDIwfUhJw==", + "version": "3.974.8", + "resolved": "https://registry.npmjs.org/@aws-sdk/core/-/core-3.974.8.tgz", + "integrity": "sha512-njR2qoG6ZuB0kvAS2FyICsFZJ6gmCcf2X/7JcD14sUvGDm26wiZ5BrA6LOiUxKFEF+IVe7kdroxyE00YlkiYsw==", "license": "Apache-2.0", "optional": true, "dependencies": { @@ -410,13 +410,13 @@ } }, "node_modules/@aws-sdk/credential-provider-cognito-identity": { - "version": "3.972.30", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-cognito-identity/-/credential-provider-cognito-identity-3.972.30.tgz", - "integrity": "sha512-kzRNS2/J+GCJyVzI5dKoFvSKojEpM1lxZXh9AumuH1v80P4qsH6aFor6bhWUlm/OLYjTI5yo0doBw8+vF+v+mw==", + "version": "3.972.31", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-cognito-identity/-/credential-provider-cognito-identity-3.972.31.tgz", + "integrity": "sha512-W5JtzDp3ejzhOOknXlnt+vJsNN2GZdAcBK+hR7HQ1DCacXqS0UpmnIyihIU7CK0IB+XYWeBaN3bBv4pXavp7Vg==", "license": "Apache-2.0", "optional": true, "dependencies": { - "@aws-sdk/nested-clients": "^3.997.5", + "@aws-sdk/nested-clients": "^3.997.6", "@aws-sdk/types": "^3.973.8", "@smithy/property-provider": "^4.2.14", "@smithy/types": "^4.14.1", @@ -427,13 +427,13 @@ } }, "node_modules/@aws-sdk/credential-provider-env": { - "version": "3.972.33", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-env/-/credential-provider-env-3.972.33.tgz", - "integrity": "sha512-bJV7eViSJV6GSuuN+VIdNVPdwPsNSf75BiC2v5alPrjR/OCcqgKwSZInKbDFz9mNeizldsyf67jt6YSIiv53Cw==", + "version": "3.972.34", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-env/-/credential-provider-env-3.972.34.tgz", + "integrity": "sha512-XT0jtf8Fw9JE6ppsQeoNnZRiG+jqRixMT1v1ZR17G60UvVdsQmTG8nbEyHuEPfMxDXEhfdARaM/XiEhca4lGHQ==", "license": "Apache-2.0", "optional": true, "dependencies": { - "@aws-sdk/core": "^3.974.7", + "@aws-sdk/core": "^3.974.8", "@aws-sdk/types": "^3.973.8", "@smithy/property-provider": "^4.2.14", "@smithy/types": "^4.14.1", @@ -444,13 +444,13 @@ } }, "node_modules/@aws-sdk/credential-provider-http": { - "version": "3.972.35", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-http/-/credential-provider-http-3.972.35.tgz", - "integrity": "sha512-x/BQGEIdq0oI+4WxLjKmnQvT7CnF9r8ezdGt7wXwxb7ckHXQz0Zmgxt8v3Ne0JaT3R5YefmuybHX6E8EnsDXyA==", + "version": "3.972.36", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-http/-/credential-provider-http-3.972.36.tgz", + "integrity": "sha512-DPoGWfy7J7RKxvbf5kOKIGQkD2ek3dbKgzKIGrnLuvZBz5myU+Im/H6pmc14QcnFbqHMqxvtWSgRDSJW3qXLQg==", "license": "Apache-2.0", "optional": true, "dependencies": { - "@aws-sdk/core": "^3.974.7", + "@aws-sdk/core": "^3.974.8", "@aws-sdk/types": "^3.973.8", "@smithy/fetch-http-handler": "^5.3.17", "@smithy/node-http-handler": "^4.6.1", @@ -466,20 +466,20 @@ } }, "node_modules/@aws-sdk/credential-provider-ini": { - "version": "3.972.37", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.972.37.tgz", - "integrity": "sha512-eUTpmWfd/BKsq9medhCRcu+GRAhFP2Zrn7/2jKDHHOOjCkhrMoTp/t4cEthqFoG7gE0VGp5wUxrXTdvBCmSmJg==", + "version": "3.972.38", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.972.38.tgz", + "integrity": "sha512-oDzUBu2MGJFgoar05sPMCwSrhw44ASyccrHzj66vO69OZqi7I6hZZxXfuPLC8OCzW7C+sU+bI73XHij41yekgQ==", "license": "Apache-2.0", "optional": true, "dependencies": { - "@aws-sdk/core": "^3.974.7", - "@aws-sdk/credential-provider-env": "^3.972.33", - "@aws-sdk/credential-provider-http": "^3.972.35", - "@aws-sdk/credential-provider-login": "^3.972.37", - "@aws-sdk/credential-provider-process": "^3.972.33", - "@aws-sdk/credential-provider-sso": "^3.972.37", - "@aws-sdk/credential-provider-web-identity": "^3.972.37", - "@aws-sdk/nested-clients": "^3.997.5", + "@aws-sdk/core": "^3.974.8", + "@aws-sdk/credential-provider-env": "^3.972.34", + "@aws-sdk/credential-provider-http": "^3.972.36", + "@aws-sdk/credential-provider-login": "^3.972.38", + "@aws-sdk/credential-provider-process": "^3.972.34", + "@aws-sdk/credential-provider-sso": "^3.972.38", + "@aws-sdk/credential-provider-web-identity": "^3.972.38", + "@aws-sdk/nested-clients": "^3.997.6", "@aws-sdk/types": "^3.973.8", "@smithy/credential-provider-imds": "^4.2.14", "@smithy/property-provider": "^4.2.14", @@ -492,14 +492,14 @@ } }, "node_modules/@aws-sdk/credential-provider-login": { - "version": "3.972.37", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-login/-/credential-provider-login-3.972.37.tgz", - "integrity": "sha512-Ty68y8ISSC+g5Q3D0K8uAaoINwvfaOslnNpsF/LgVUxyosYXHawcK2yV4HLXDVugiTTYLQfJfcw0ce5meAGkKw==", + "version": "3.972.38", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-login/-/credential-provider-login-3.972.38.tgz", + "integrity": "sha512-g1NosS8qe4OF++G2UFCM5ovSkgipC7YYor5KCWatG0UoMSO5YFj9C8muePlyVmOBV/WTI16Jo3/s1NUo/o1Bww==", "license": "Apache-2.0", "optional": true, "dependencies": { - "@aws-sdk/core": "^3.974.7", - "@aws-sdk/nested-clients": "^3.997.5", + "@aws-sdk/core": "^3.974.8", + "@aws-sdk/nested-clients": "^3.997.6", "@aws-sdk/types": "^3.973.8", "@smithy/property-provider": "^4.2.14", "@smithy/protocol-http": "^5.3.14", @@ -512,18 +512,18 @@ } }, "node_modules/@aws-sdk/credential-provider-node": { - "version": "3.972.38", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-node/-/credential-provider-node-3.972.38.tgz", - "integrity": "sha512-BQ9XYnBDVxR2HuV5huXYQYF/PZMTsY+EnwfGnCU2cA8Zw63XpkOtPY8WqiMIZMQCrKPQQEiFURS/o9CIolRLqg==", + "version": "3.972.39", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-node/-/credential-provider-node-3.972.39.tgz", + "integrity": "sha512-HEswDQyxUtadoZ/bJsPPENHg7R0Lzym5LuMksJeHvqhCOpP+rtkDLKI4/ZChH4w3cf5kG8n6bZuI8PzajoiqMg==", "license": "Apache-2.0", "optional": true, "dependencies": { - "@aws-sdk/credential-provider-env": "^3.972.33", - "@aws-sdk/credential-provider-http": "^3.972.35", - "@aws-sdk/credential-provider-ini": "^3.972.37", - "@aws-sdk/credential-provider-process": "^3.972.33", - "@aws-sdk/credential-provider-sso": "^3.972.37", - "@aws-sdk/credential-provider-web-identity": "^3.972.37", + "@aws-sdk/credential-provider-env": "^3.972.34", + "@aws-sdk/credential-provider-http": "^3.972.36", + "@aws-sdk/credential-provider-ini": "^3.972.38", + "@aws-sdk/credential-provider-process": "^3.972.34", + "@aws-sdk/credential-provider-sso": "^3.972.38", + "@aws-sdk/credential-provider-web-identity": "^3.972.38", "@aws-sdk/types": "^3.973.8", "@smithy/credential-provider-imds": "^4.2.14", "@smithy/property-provider": "^4.2.14", @@ -536,13 +536,13 @@ } }, "node_modules/@aws-sdk/credential-provider-process": { - "version": "3.972.33", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-process/-/credential-provider-process-3.972.33.tgz", - "integrity": "sha512-yfjGksI9WQbdMObb0VeLXqzTLI+a0qXLJT9gCDiv0+X/xjPpI3mTz6a5FibrhpuEKIe0gSgvs3MaoFZy5cx4WA==", + "version": "3.972.34", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-process/-/credential-provider-process-3.972.34.tgz", + "integrity": "sha512-T3IFs4EVmVi1dVN5RciFnklCANSzvrQd/VuHY9ThHSQmYkTogjcGkoJEr+oNUPQZnso52183088NqysMPji1/Q==", "license": "Apache-2.0", "optional": true, "dependencies": { - "@aws-sdk/core": "^3.974.7", + "@aws-sdk/core": "^3.974.8", "@aws-sdk/types": "^3.973.8", "@smithy/property-provider": "^4.2.14", "@smithy/shared-ini-file-loader": "^4.4.9", @@ -554,15 +554,15 @@ } }, "node_modules/@aws-sdk/credential-provider-sso": { - "version": "3.972.37", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.972.37.tgz", - "integrity": "sha512-fpwE+20ntpp3i9Xb9vUuQfXLDKYHH+5I2V+ZG96SX1nBzrruhy10RXDgmN7t1etOz3c55stlA3TeQASUA451NQ==", + "version": "3.972.38", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.972.38.tgz", + "integrity": "sha512-5ZxG+t0+3Q3QPh8KEjX6syskhgNf7I0MN7oGioTf6Lm1NTjfP7sIcYGNsthXC2qR8vcD3edNZwCr2ovfSSWuRA==", "license": "Apache-2.0", "optional": true, "dependencies": { - "@aws-sdk/core": "^3.974.7", - "@aws-sdk/nested-clients": "^3.997.5", - "@aws-sdk/token-providers": "3.1039.0", + "@aws-sdk/core": "^3.974.8", + "@aws-sdk/nested-clients": "^3.997.6", + "@aws-sdk/token-providers": "3.1041.0", "@aws-sdk/types": "^3.973.8", "@smithy/property-provider": "^4.2.14", "@smithy/shared-ini-file-loader": "^4.4.9", @@ -574,14 +574,14 @@ } }, "node_modules/@aws-sdk/credential-provider-web-identity": { - "version": "3.972.37", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.972.37.tgz", - "integrity": "sha512-aryawqyebf+3WhAFNHfF62rekFpYtVcVN7dQ89qnAWsa4n5hJst8qBG6gXC24WHtW7Nnhkf9ScYnjwo0Brn3bw==", + "version": "3.972.38", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.972.38.tgz", + "integrity": "sha512-lYHFF30DGI20jZcYX8cm6Ns0V7f1dDN6g/MBDLTyD/5iw+bXs3yBr2iAiHDkx4RFU5JgsnZvCHYKiRVPRdmOgw==", "license": "Apache-2.0", "optional": true, "dependencies": { - "@aws-sdk/core": "^3.974.7", - "@aws-sdk/nested-clients": "^3.997.5", + "@aws-sdk/core": "^3.974.8", + "@aws-sdk/nested-clients": "^3.997.6", "@aws-sdk/types": "^3.973.8", "@smithy/property-provider": "^4.2.14", "@smithy/shared-ini-file-loader": "^4.4.9", @@ -593,24 +593,24 @@ } }, "node_modules/@aws-sdk/credential-providers": { - "version": "3.1040.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-providers/-/credential-providers-3.1040.0.tgz", - "integrity": "sha512-9CUcij1A7f6i4XOp/7MczdQInHvHZ8KKoNHlXHq+UtR3HOtBbpk4/BzmLF/bSdvd4NI8i2XmQlP5fEUCo+zGPA==", + "version": "3.1041.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-providers/-/credential-providers-3.1041.0.tgz", + "integrity": "sha512-Ps7dcWV1JbXKoFy8QpWhTpWkX0x2tiZFmDdgojK98/rqyybPdwEtGB8xY/N2uJjE0MZkrV9X7T3Xrnk/rGFoNw==", "license": "Apache-2.0", "optional": true, "dependencies": { - "@aws-sdk/client-cognito-identity": "3.1040.0", - "@aws-sdk/core": "^3.974.7", - "@aws-sdk/credential-provider-cognito-identity": "^3.972.30", - "@aws-sdk/credential-provider-env": "^3.972.33", - "@aws-sdk/credential-provider-http": "^3.972.35", - "@aws-sdk/credential-provider-ini": "^3.972.37", - "@aws-sdk/credential-provider-login": "^3.972.37", - "@aws-sdk/credential-provider-node": "^3.972.38", - "@aws-sdk/credential-provider-process": "^3.972.33", - "@aws-sdk/credential-provider-sso": "^3.972.37", - "@aws-sdk/credential-provider-web-identity": "^3.972.37", - "@aws-sdk/nested-clients": "^3.997.5", + "@aws-sdk/client-cognito-identity": "3.1041.0", + "@aws-sdk/core": "^3.974.8", + "@aws-sdk/credential-provider-cognito-identity": "^3.972.31", + "@aws-sdk/credential-provider-env": "^3.972.34", + "@aws-sdk/credential-provider-http": "^3.972.36", + "@aws-sdk/credential-provider-ini": "^3.972.38", + "@aws-sdk/credential-provider-login": "^3.972.38", + "@aws-sdk/credential-provider-node": "^3.972.39", + "@aws-sdk/credential-provider-process": "^3.972.34", + "@aws-sdk/credential-provider-sso": "^3.972.38", + "@aws-sdk/credential-provider-web-identity": "^3.972.38", + "@aws-sdk/nested-clients": "^3.997.6", "@aws-sdk/types": "^3.973.8", "@smithy/config-resolver": "^4.4.17", "@smithy/core": "^3.23.17", @@ -673,13 +673,13 @@ } }, "node_modules/@aws-sdk/middleware-sdk-s3": { - "version": "3.972.36", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-sdk-s3/-/middleware-sdk-s3-3.972.36.tgz", - "integrity": "sha512-YhPix+0x/MdQrb1Ug1GDKeS5fqylIy+naz800asX8II4jqfTk2KY2KhmmYCwZcky8YWtRQQwWCGdoqeAnip8Uw==", + "version": "3.972.37", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-sdk-s3/-/middleware-sdk-s3-3.972.37.tgz", + "integrity": "sha512-Km7M+i8DrLArVzrid1gfxeGhYHBd3uxvE77g0s5a52zPSVosxzQBnJ0gwWb6NIp/DOk8gsBMhi7V+cpJG0ndTA==", "license": "Apache-2.0", "optional": true, "dependencies": { - "@aws-sdk/core": "^3.974.7", + "@aws-sdk/core": "^3.974.8", "@aws-sdk/types": "^3.973.8", "@aws-sdk/util-arn-parser": "^3.972.3", "@smithy/core": "^3.23.17", @@ -699,13 +699,13 @@ } }, "node_modules/@aws-sdk/middleware-user-agent": { - "version": "3.972.37", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.972.37.tgz", - "integrity": "sha512-N1oNpdiLoVAWYD3WFBnUi3LlfoDA06ZHo4ozyjbsJNLvILzvt//0CnR8N+CZ0NWeYgVB/5V59ivixHCWCx2ALw==", + "version": "3.972.38", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.972.38.tgz", + "integrity": "sha512-iz+B29TXcAZsJpwB+AwG/TTGA5l/VnmMZ2UxtiySOZjI6gCdmviXPwdgzcmuazMy16rXoPY4mYCGe7zdNKfx5A==", "license": "Apache-2.0", "optional": true, "dependencies": { - "@aws-sdk/core": "^3.974.7", + "@aws-sdk/core": "^3.974.8", "@aws-sdk/types": "^3.973.8", "@aws-sdk/util-endpoints": "^3.996.8", "@smithy/core": "^3.23.17", @@ -719,25 +719,25 @@ } }, "node_modules/@aws-sdk/nested-clients": { - "version": "3.997.5", - "resolved": "https://registry.npmjs.org/@aws-sdk/nested-clients/-/nested-clients-3.997.5.tgz", - "integrity": "sha512-jGFr6DxtcMTmzOkG/a0jCZYv4BBDmeNYVeO+/memSoDkYCJu4Y58xviYmzwJfYyIVSts+X/BVjJm1uGBnwHEMg==", + "version": "3.997.6", + "resolved": "https://registry.npmjs.org/@aws-sdk/nested-clients/-/nested-clients-3.997.6.tgz", + "integrity": "sha512-WBDnqatJl+kGObpfmfSxqnXeYTu3Me8wx8WCtvoxX3pfWrrTv8I4WTMSSs7PZqcRcVh8WeUKMgGFjMG+52SR1w==", "license": "Apache-2.0", "optional": true, "dependencies": { "@aws-crypto/sha256-browser": "5.2.0", "@aws-crypto/sha256-js": "5.2.0", - "@aws-sdk/core": "^3.974.7", + "@aws-sdk/core": "^3.974.8", "@aws-sdk/middleware-host-header": "^3.972.10", "@aws-sdk/middleware-logger": "^3.972.10", "@aws-sdk/middleware-recursion-detection": "^3.972.11", - "@aws-sdk/middleware-user-agent": "^3.972.37", + "@aws-sdk/middleware-user-agent": "^3.972.38", "@aws-sdk/region-config-resolver": "^3.972.13", - "@aws-sdk/signature-v4-multi-region": "^3.996.24", + "@aws-sdk/signature-v4-multi-region": "^3.996.25", "@aws-sdk/types": "^3.973.8", "@aws-sdk/util-endpoints": "^3.996.8", "@aws-sdk/util-user-agent-browser": "^3.972.10", - "@aws-sdk/util-user-agent-node": "^3.973.23", + "@aws-sdk/util-user-agent-node": "^3.973.24", "@smithy/config-resolver": "^4.4.17", "@smithy/core": "^3.23.17", "@smithy/fetch-http-handler": "^5.3.17", @@ -787,13 +787,13 @@ } }, "node_modules/@aws-sdk/signature-v4-multi-region": { - "version": "3.996.24", - "resolved": "https://registry.npmjs.org/@aws-sdk/signature-v4-multi-region/-/signature-v4-multi-region-3.996.24.tgz", - "integrity": "sha512-amP7tLikppN940wbBFISYqiuzVmpzMS9U3mcgtmVLjX4fdWI/SNCvrXv6ZxfVzTT4cT0rPKOLhFah2xLwzREWw==", + "version": "3.996.25", + "resolved": "https://registry.npmjs.org/@aws-sdk/signature-v4-multi-region/-/signature-v4-multi-region-3.996.25.tgz", + "integrity": "sha512-+CMIt3e1VzlklAECmG+DtP1sV8iKq25FuA0OKpnJ4KA0kxUtd7CgClY7/RU6VzJBQwbN4EJ9Ue6plvqx1qGadw==", "license": "Apache-2.0", "optional": true, "dependencies": { - "@aws-sdk/middleware-sdk-s3": "^3.972.36", + "@aws-sdk/middleware-sdk-s3": "^3.972.37", "@aws-sdk/types": "^3.973.8", "@smithy/protocol-http": "^5.3.14", "@smithy/signature-v4": "^5.3.14", @@ -805,14 +805,14 @@ } }, "node_modules/@aws-sdk/token-providers": { - "version": "3.1039.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/token-providers/-/token-providers-3.1039.0.tgz", - "integrity": "sha512-NMSFL2HwkAOoCeLCQiqoOq5pT3vVbSjww2QZTuYgYknVwhhv125PSDzZIcL5EYnlxuPWjEOdauZK+FspkZDVdw==", + "version": "3.1041.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/token-providers/-/token-providers-3.1041.0.tgz", + "integrity": "sha512-Th7kPI6YPtvJUcdznooXJMy+9rQWjmEF81LxaJssngBzuysK4a/x+l8kjm1zb7nYsUPbndnBdUnwng/3PLvtGw==", "license": "Apache-2.0", "optional": true, "dependencies": { - "@aws-sdk/core": "^3.974.7", - "@aws-sdk/nested-clients": "^3.997.5", + "@aws-sdk/core": "^3.974.8", + "@aws-sdk/nested-clients": "^3.997.6", "@aws-sdk/types": "^3.973.8", "@smithy/property-provider": "^4.2.14", "@smithy/shared-ini-file-loader": "^4.4.9", @@ -894,13 +894,13 @@ } }, "node_modules/@aws-sdk/util-user-agent-node": { - "version": "3.973.23", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.973.23.tgz", - "integrity": "sha512-gGwq8L2Euw0aNG6Ey4EktiAo3fSCVoDy1CaBIthd+oeaKHPXUrNaApMewQ6La5Hv0lcznOtECZaNvYyc5LXXfA==", + "version": "3.973.24", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.973.24.tgz", + "integrity": "sha512-ZWwlkjcIp7cEL8ZfTpTAPNkwx25p7xol0xlKoWVVf22+nsjwmLcHYtTPjIV1cSpmB/b6DaK4cb1fSkvCXHgRdw==", "license": "Apache-2.0", "optional": true, "dependencies": { - "@aws-sdk/middleware-user-agent": "^3.972.37", + "@aws-sdk/middleware-user-agent": "^3.972.38", "@aws-sdk/types": "^3.973.8", "@smithy/node-config-provider": "^4.3.14", "@smithy/types": "^4.14.1", @@ -3852,9 +3852,9 @@ } }, "node_modules/@smithy/util-retry": { - "version": "4.3.6", - "resolved": "https://registry.npmjs.org/@smithy/util-retry/-/util-retry-4.3.6.tgz", - "integrity": "sha512-p6/FO1n2KxMeQyna067i0uJ6TSbb165ZhnRtCpWh4Foxqbfc6oW+XITaL8QkFJj3KFnDe2URt4gOhgU06EP9ew==", + "version": "4.3.8", + "resolved": "https://registry.npmjs.org/@smithy/util-retry/-/util-retry-4.3.8.tgz", + "integrity": "sha512-LUIxbTBi+OpvXpg91poGA6BdyoleMDLnfXjVDqyi2RvZmTveY5loE/FgYUBCR5LU2BThW2SoZRh8dTIIy38IPw==", "license": "Apache-2.0", "optional": true, "dependencies": { @@ -5800,9 +5800,9 @@ } }, "node_modules/axios": { - "version": "0.30.3", - "resolved": "https://registry.npmjs.org/axios/-/axios-0.30.3.tgz", - "integrity": "sha512-5/tmEb6TmE/ax3mdXBc/Mi6YdPGxQsv+0p5YlciXWt3PHIn0VamqCXhRMtScnwY3lbgSXLneOuXAKUhgmSRpwg==", + "version": "0.31.1", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.31.1.tgz", + "integrity": "sha512-Ef8DUZSZQP6igY48mjGaoEjwhely97lserep0IFJifBH4YdKvwH5eMLniy3kig2HQoBNR8EkZpDjowxwTJcmbg==", "license": "MIT", "dependencies": { "follow-redirects": "^1.15.4", @@ -5916,9 +5916,9 @@ } }, "node_modules/bare-os": { - "version": "3.9.0", - "resolved": "https://registry.npmjs.org/bare-os/-/bare-os-3.9.0.tgz", - "integrity": "sha512-JTjuZyNIDpw+GytMO4a6TK1VXdVKKJr6DRxEHasyuYyShV2deuiHJK/ahGZlebc+SG0/wJCB9XK8gprBGDFi/Q==", + "version": "3.9.1", + "resolved": "https://registry.npmjs.org/bare-os/-/bare-os-3.9.1.tgz", + "integrity": "sha512-6M5XjcnsygQNPMCMPXSK379xrJFiZ/AEMNBmFEmQW8d/789VQATvriyi5r0HYTL9TkQ26rn3kgdTG3aisbrXkQ==", "dev": true, "license": "Apache-2.0", "engines": { @@ -8037,9 +8037,9 @@ } }, "node_modules/dompurify": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/dompurify/-/dompurify-3.3.3.tgz", - "integrity": "sha512-Oj6pzI2+RqBfFG+qOaOLbFXLQ90ARpcGG6UePL82bJLtdsa6CYJD7nmiU8MW9nQNOtCHV3lZ/Bzq1X0QYbBZCA==", + "version": "3.4.2", + "resolved": "https://registry.npmjs.org/dompurify/-/dompurify-3.4.2.tgz", + "integrity": "sha512-lHeS9SA/IKeIFFyYciHBr2n0v1VMPlSj843HdLOwjb2OxNwdq9Xykxqhk+FE42MzAdHvInbAolSE4mhahPpjXA==", "dev": true, "license": "(MPL-2.0 OR Apache-2.0)", "optionalDependencies": { @@ -10377,9 +10377,9 @@ } }, "node_modules/ip-address": { - "version": "10.1.1", - "resolved": "https://registry.npmjs.org/ip-address/-/ip-address-10.1.1.tgz", - "integrity": "sha512-1FMu8/N15Ck1BL551Jf42NYIoin2unWjLQ2Fze/DXryJRl5twqtwNHlO39qERGbIOcKYWHdgRryhOC+NG4eaLw==", + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/ip-address/-/ip-address-10.2.0.tgz", + "integrity": "sha512-/+S6j4E9AHvW9SWMSEY9Xfy66O5PWvVEJ08O0y5JGyEKQpojb0K0GKpz/v5HJ/G0vi3D2sjGK78119oXZeE0qA==", "license": "MIT", "engines": { "node": ">= 12" @@ -16336,21 +16336,21 @@ } }, "node_modules/tldts": { - "version": "7.0.29", - "resolved": "https://registry.npmjs.org/tldts/-/tldts-7.0.29.tgz", - "integrity": "sha512-JIXCerhudr/N6OWLwLF1HVsTTUo7ry6qHa5eWZEkiMuxsIiAACL55tGLfqfHfoH7QaMQUW8fngD7u7TxWexYQg==", + "version": "7.0.30", + "resolved": "https://registry.npmjs.org/tldts/-/tldts-7.0.30.tgz", + "integrity": "sha512-ELrFxuqsDdHUwoh0XxDbxuLD3Wnz49Z57IFvTtvWy1hJdcMZjXLIuonjilCiWHlT2GbE4Wlv1wKVTzDFnXH1aw==", "license": "MIT", "dependencies": { - "tldts-core": "^7.0.29" + "tldts-core": "^7.0.30" }, "bin": { "tldts": "bin/cli.js" } }, "node_modules/tldts-core": { - "version": "7.0.29", - "resolved": "https://registry.npmjs.org/tldts-core/-/tldts-core-7.0.29.tgz", - "integrity": "sha512-W99NuU7b1DcG3uJ3v9k9VztCH3WialNbBkBft5wCs8V8mexu0XQqaZEYb9l9RNNzK8+3EJ9PKWB0/RUtTQ/o+Q==", + "version": "7.0.30", + "resolved": "https://registry.npmjs.org/tldts-core/-/tldts-core-7.0.30.tgz", + "integrity": "sha512-uiHN8PIB1VmWyS98eZYja4xzlYqeFZVjb4OuYlJQnZAuJhMw4PbKQOKgHKhBdJR3FE/t5mUQ1Kd80++B+qhD1Q==", "license": "MIT" }, "node_modules/tmp": { @@ -17213,13 +17213,13 @@ } }, "node_modules/wait-on/node_modules/axios": { - "version": "1.15.2", - "resolved": "https://registry.npmjs.org/axios/-/axios-1.15.2.tgz", - "integrity": "sha512-wLrXxPtcrPTsNlJmKjkPnNPK2Ihe0hn0wGSaTEiHRPxwjvJwT3hKmXF4dpqxmPO9SoNb2FsYXj/xEo0gHN+D5A==", + "version": "1.16.0", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.16.0.tgz", + "integrity": "sha512-6hp5CwvTPlN2A31g5dxnwAX0orzM7pmCRDLnZSX772mv8WDqICwFjowHuPs04Mc8deIld1+ejhtaMn5vp6b+1w==", "dev": true, "license": "MIT", "dependencies": { - "follow-redirects": "^1.15.11", + "follow-redirects": "^1.16.0", "form-data": "^4.0.5", "proxy-from-env": "^2.1.0" } @@ -17659,9 +17659,9 @@ "license": "ISC" }, "node_modules/yaml": { - "version": "2.8.3", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.8.3.tgz", - "integrity": "sha512-AvbaCLOO2Otw/lW5bmh9d/WEdcDFdQp2Z2ZUH3pX9U2ihyUY0nvLv7J6TrWowklRGPYbB/IuIMfYgxaCPg5Bpg==", + "version": "2.8.4", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.8.4.tgz", + "integrity": "sha512-ml/JPOj9fOQK8RNnWojA67GbZ0ApXAUlN2UQclwv2eVgTgn7O9gg9o7paZWKMp4g0H3nTLtS9LVzhkpOFIKzog==", "dev": true, "license": "ISC", "bin": { diff --git a/package.json b/package.json index 4f51a1af0..e960a43b8 100644 --- a/package.json +++ b/package.json @@ -74,7 +74,7 @@ "@louislam/sqlite3": "15.1.6", "@vvo/tzdb": "~6.198.0", "args-parser": "~1.3.0", - "axios": "~0.30.3", + "axios": "~0.31.0", "badge-maker": "~3.3.1", "bcryptjs": "~2.4.3", "chardet": "~1.4.0", @@ -185,7 +185,7 @@ "cronstrue": "~2.24.0", "cross-env": "~7.0.3", "dns2": "~2.0.5", - "dompurify": "~3.3.2", + "dompurify": "~3.4.0", "eslint": "~8.14.0", "eslint-config-prettier": "^10.1.8", "eslint-plugin-jsdoc": "~46.4.6", From a4030ba7963552367b16043a907914d438fa487e Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Sun, 3 May 2026 21:37:29 +0800 Subject: [PATCH 18/20] chore: update to 2.3.1 (#7345) Co-authored-by: github-actions[bot] --- package-lock.json | 4 ++-- package.json | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/package-lock.json b/package-lock.json index 66c54927e..b36089e5e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "uptime-kuma", - "version": "2.3.0", + "version": "2.3.1", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "uptime-kuma", - "version": "2.3.0", + "version": "2.3.1", "license": "MIT", "dependencies": { "@grpc/grpc-js": "~1.8.22", diff --git a/package.json b/package.json index e960a43b8..b1aa18f4f 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "uptime-kuma", - "version": "2.3.0", + "version": "2.3.1", "license": "MIT", "repository": { "type": "git", @@ -44,7 +44,7 @@ "build-docker-pr-test": "docker buildx build -f docker/dockerfile --platform linux/amd64,linux/arm64 -t louislam/uptime-kuma:pr-test2 --target pr-test2 . --push", "upload-artifacts": "node extra/release/upload-artifacts.mjs", "upload-artifacts-beta": "node extra/release/upload-artifacts-beta.mjs", - "setup": "git checkout 2.3.0 && npm ci --omit dev --no-audit && npm run download-dist", + "setup": "git checkout 2.3.1 && npm ci --omit dev --no-audit && npm run download-dist", "download-dist": "node extra/download-dist.js", "mark-as-nightly": "node extra/mark-as-nightly.js", "reset-password": "node extra/reset-password.js", From 07b38184bb7a0be574d3d7f33b9375c7c485d9b8 Mon Sep 17 00:00:00 2001 From: Louis Lam Date: Mon, 4 May 2026 00:05:25 +0800 Subject: [PATCH 19/20] fix: Revert back to single SQLite connection by default (#7346) --- server/database.js | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/server/database.js b/server/database.js index 3c5014013..b7529b7bd 100644 --- a/server/database.js +++ b/server/database.js @@ -270,10 +270,9 @@ class Database { max: 20, }; - // However, for unknown reason, it is not working probably on Raspberry Pi, it causes "SQLITE_BUSY: database is locked" error. - // See: https://github.com/louislam/uptime-kuma/issues/7289 - // Provide an environment variable to switch back to a single connection. - if (process.env.UPTIME_KUMA_SQLITE_SINGLE_CONNECTION === "true") { + // Default is still single connection. + // Multiple connection could run into "SQLITE_BUSY: database is locked" error. + if (process.env.UPTIME_KUMA_SQLITE_SINGLE_CONNECTION !== "false") { log.info("db", "Using single connection for SQLite"); poolConfig = { min: 1, From f43087ac075387a29aa933881fdb2e7cb114d097 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Mon, 4 May 2026 00:11:20 +0800 Subject: [PATCH 20/20] chore: update to 2.3.2 (#7347) --- package-lock.json | 4 ++-- package.json | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/package-lock.json b/package-lock.json index b36089e5e..6ddf819bb 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "uptime-kuma", - "version": "2.3.1", + "version": "2.3.2", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "uptime-kuma", - "version": "2.3.1", + "version": "2.3.2", "license": "MIT", "dependencies": { "@grpc/grpc-js": "~1.8.22", diff --git a/package.json b/package.json index b1aa18f4f..3034c4804 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "uptime-kuma", - "version": "2.3.1", + "version": "2.3.2", "license": "MIT", "repository": { "type": "git", @@ -44,7 +44,7 @@ "build-docker-pr-test": "docker buildx build -f docker/dockerfile --platform linux/amd64,linux/arm64 -t louislam/uptime-kuma:pr-test2 --target pr-test2 . --push", "upload-artifacts": "node extra/release/upload-artifacts.mjs", "upload-artifacts-beta": "node extra/release/upload-artifacts-beta.mjs", - "setup": "git checkout 2.3.1 && npm ci --omit dev --no-audit && npm run download-dist", + "setup": "git checkout 2.3.2 && npm ci --omit dev --no-audit && npm run download-dist", "download-dist": "node extra/download-dist.js", "mark-as-nightly": "node extra/mark-as-nightly.js", "reset-password": "node extra/reset-password.js",