diff --git a/server/prometheus.js b/server/prometheus.js index 870581d2..f91b0a13 100644 --- a/server/prometheus.js +++ b/server/prometheus.js @@ -60,7 +60,9 @@ class Prometheus { } try { - monitor_cert_days_remaining.set(this.monitorLabelValues, tlsInfo.certInfo.daysRemaining); + if (tlsInfo.certInfo != null) { + monitor_cert_days_remaining.set(this.monitorLabelValues, tlsInfo.certInfo.daysRemaining); + } } catch (e) { console.error(e); } diff --git a/src/components/Login.vue b/src/components/Login.vue index 543ca041..987651e2 100644 --- a/src/components/Login.vue +++ b/src/components/Login.vue @@ -16,8 +16,8 @@
- - + +
diff --git a/src/languages/id-ID.js b/src/languages/id-ID.js index 5bad2a7e..cd7c689a 100644 --- a/src/languages/id-ID.js +++ b/src/languages/id-ID.js @@ -7,12 +7,12 @@ export default { upsideDownModeDescription: "Balikkan statusnya. Jika layanan dapat dijangkau, TIDAK AKTIF.", maxRedirectDescription: "Jumlah maksimum pengalihan untuk diikuti. Setel ke 0 untuk menonaktifkan pengalihan.", acceptedStatusCodesDescription: "Pilih kode status yang dianggap sebagai tanggapan yang berhasil.", - passwordNotMatchMsg: "Sandi kedua tidak cocok.", + passwordNotMatchMsg: "Kata sandi kedua tidak cocok.", notificationDescription: "Harap atur notifikasi ke monitor agar berfungsi.", keywordDescription: "Cari kata kunci dalam code html atau JSON huruf besar-kecil berpengaruh", pauseDashboardHome: "Jeda", deleteMonitorMsg: "Apakah Anda mau menghapus monitor ini?", - deleteNotificationMsg: "Apakah Anda mau menghapus notifikasi ini untuk semua monitor?", + deleteNotificationMsg: "Apakah Anda mau menghapus notifikasi untuk semua monitor?", resoverserverDescription: "Cloudflare adalah server bawaan, Anda dapat mengubah server resolver kapan saja.", rrtypeDescription: "Pilih RR-Type yang mau Anda monitor", pauseMonitorMsg: "Apakah Anda yakin mau menjeda?", @@ -23,9 +23,9 @@ export default { importHandleDescription: "Pilih 'Lewati yang ada' jika Anda ingin melewati setiap monitor atau notifikasi dengan nama yang sama. 'Timpa' akan menghapus setiap monitor dan notifikasi yang ada.", confirmImportMsg: "Apakah Anda yakin untuk mengimpor cadangan? Pastikan Anda telah memilih opsi impor yang tepat.", twoFAVerifyLabel: "Silakan ketik token Anda untuk memverifikasi bahwa 2FA berfungsi", - tokenValidSettingsMsg: "Tokennya benar! Anda sekarang dapat menyimpan pengaturan 2FA.", - confirmEnableTwoFAMsg: "Apakah Anda yakin ingin mengaktifkan 2FA?", - confirmDisableTwoFAMsg: "Apakah Anda yakin ingin menonaktifkan 2FA?", + tokenValidSettingsMsg: "Token benar! Anda sekarang dapat menyimpan pengaturan 2FA.", + confirmEnableTwoFAMsg: "Apakah anda yakin ingin mengaktifkan 2FA?", + confirmDisableTwoFAMsg: "Apakah anda yakin ingin menonaktifkan 2FA?", Settings: "Pengaturan", Dashboard: "Dasbor", "New Update": "Pembaruan Baru", @@ -276,7 +276,7 @@ export default { promosmsTypeEco: "SMS ECO - murah tapi lambat dan sering kelebihan beban. Terbatas hanya untuk penerima Polandia.", promosmsTypeFlash: "SMS FLASH - Pesan akan otomatis muncul di perangkat penerima. Terbatas hanya untuk penerima Polandia.", promosmsTypeFull: "SMS FULL - SMS tingkat premium, Anda dapat menggunakan Nama Pengirim Anda (Anda harus mendaftarkan nama terlebih dahulu). Dapat diAndalkan untuk peringatan.", - promosmsTypeSpeed: "SMS SPEED - Prioritas tertinggi dalam sistem. Sangat cepat dan dapat diAndalkan tetapi mahal (sekitar dua kali lipat dari harga SMS FULL).", + promosmsTypeSpeed: "SMS SPEED - Prioritas tertinggi dalam sistem. Sangat cepat dan dapat diandalkan tetapi mahal (sekitar dua kali lipat dari harga SMS FULL).", promosmsPhoneNumber: "Nomor telepon (untuk penerima Polandia Anda dapat melewati kode area)", promosmsSMSSender: "Nama Pengirim SMS : Nama pra-registrasi atau salah satu bawaan: InfoSMS, Info SMS, MaxSMS, INFO, SMS", "Feishu WebHookUrl": "Feishu WebHookUrl", diff --git a/src/languages/nb-NO.js b/src/languages/nb-NO.js index 0e566a01..4908a257 100644 --- a/src/languages/nb-NO.js +++ b/src/languages/nb-NO.js @@ -4,24 +4,24 @@ export default { retryCheckEverySecond: "Prøv igjen hvert {0} sekund.", retriesDescription: "Maksimalt antall forsøk før tjenesten er merket som nede og et varsel sendes", ignoreTLSError: "Ignorer TLS/SSL-feil for HTTPS-nettsteder", - upsideDownModeDescription: "Snu statusen opp ned. Hvis tjenesten er tilgjengelig, er den NED.", + upsideDownModeDescription: "Snu statusen opp ned. Hvis tjenesten er tilgjengelig, er den NEDE.", maxRedirectDescription: "Maksimalt antall viderekoblinger å følge. Sett til 0 for å deaktivere viderekoblinger.", - acceptedStatusCodesDescription: "Velg statuskoder som anses som et vellykket svar.", + acceptedStatusCodesDescription: "Velg statuskoder som anses som en vellykket respons.", passwordNotMatchMsg: "Passordene stemmer ikke overens.", - notificationDescription: "Tilordne et varsel for å overvåkningen for å få det til å fungere.", - keywordDescription: "Søk etter nøkkelord i vanlig HTML eller JSON, og det er versalfølsom", + notificationDescription: "Varsler må tilordnes en overvåkning for å fungere.", + keywordDescription: "Søk etter nøkkelord i ren HTML eller JSON. Søket skiller mellom store og små bokstaver.", pauseDashboardHome: "Pause", deleteMonitorMsg: "Er du sikker på at du vil slette denne overvåkningen?", deleteNotificationMsg: "Er du sikker på at du vil slette dette varselet for alle overvåkningene?", - resoverserverDescription: "Cloudflare er standardserveren, kan du når som helst endre DNS-serveren.", + resoverserverDescription: "Cloudflare er standardserveren. Du kan endre DNS-serveren når som helst.", rrtypeDescription: "Velg RR-typen du vil overvåke", - pauseMonitorMsg: "Er du sikker på at du vil sette en pause?", + pauseMonitorMsg: "Er du sikker på at du vil sette på pause?", enableDefaultNotificationDescription: "For hver ny overvåkning vil denne varslingen være aktivert som standard. Du kan fortsatt deaktivere varselet separat for hver overvåkning.", clearEventsMsg: "Er du sikker på at du vil slette alle hendelser for denne overvåkningen?", clearHeartbeatsMsg: "Er du sikker på at du vil slette alle hjerteslag for denne overvåkningen?", confirmClearStatisticsMsg: "Er du sikker på at du vil slette ALL statistikk?", importHandleDescription: "Velg 'Hopp over eksisterende' hvis du vil hoppe over hver overvåkning eller varsel med samme navn. 'Overskriv' sletter alle eksisterende overvåkninger og varsler.", - confirmImportMsg: "Er du sikker på å importere sikkerhetskopien? Sørg for at du har valgt riktig importalternativ.", + confirmImportMsg: "Er du sikker på at du vil importere denne sikkerhetskopien? Sørg for at du har valgt riktig importalternativ.", twoFAVerifyLabel: "Skriv inn tokenet ditt for å bekrefte at 2FA fungerer", tokenValidSettingsMsg: "Token er gyldig! Du kan nå lagre 2FA-innstillingene.", confirmEnableTwoFAMsg: "Er du sikker på at du vil aktivere 2FA?", @@ -50,7 +50,7 @@ export default { Message: "Melding", "No important events": "Ingen viktige hendelser", Resume: "Fortsett", - Edit: "Endre", + Edit: "Rediger", Delete: "Slett", Current: "Nåværende", Uptime: "Oppetid", @@ -77,7 +77,7 @@ export default { "Accepted Status Codes": "Godkjente statuskoder", Save: "Lagre", Notifications: "Varsler", - "Not available, please setup.": "Ikke tilgjengelig, sett opp.", + "Not available, please setup.": "Ikke tilgjengelig, venligst sett opp.", "Setup Notification": "Sett opp varsel", Light: "Lys", Dark: "Mørk", @@ -87,9 +87,9 @@ export default { Bottom: "Bunn", None: "Ingen", Timezone: "Tidssone", - "Search Engine Visibility": "Søkemotor synlighet", + "Search Engine Visibility": "Søkemotor-synlighet", "Allow indexing": "Tillat indeksering", - "Discourage search engines from indexing site": "Avskrekk søkemotorer fra å indeksere nettstedet", + "Discourage search engines from indexing site": "Fraråd søkemotorer fra å indeksere nettstedet", "Change Password": "Endre passord", "Current Password": "Nåværende passord", "New Password": "Nytt passord", @@ -99,7 +99,7 @@ export default { "Enable Auth": "Aktiver autentisering", Logout: "Logg ut", Leave: "Forlat", - "I understand, please disable": "Jeg forstår, deaktiver", + "I understand, please disable": "Jeg forstår, vennligst deaktiver", Confirm: "Bekreft", Yes: "Ja", No: "Nei", @@ -125,15 +125,15 @@ export default { respTime: "Svartid (ms)", notAvailableShort: "N/A", "Default enabled": "Standard aktivert", - "Apply on all existing monitors": "Påfør på alle eksisterende overvåkninger", + "Apply on all existing monitors": "Anvend for alle eksisterende overvåkninger", Create: "Opprett", "Clear Data": "Slett data", Events: "Hendelser", Heartbeats: "Hjerteslag", - "Auto Get": "Auto Get", + "Auto Get": "Auto Hent", backupDescription: "Du kan sikkerhetskopiere alle overvåkninger og alle varsler til en JSON-fil.", backupDescription2: "PS: Historikk og hendelsesdata er ikke inkludert.", - backupDescription3: "Følsomme data som varslingstokener er inkludert i eksportfilen. Vennligst oppbevar dem nøye.", + backupDescription3: "Følsomme data som varslingstokener er inkludert i eksportfilen. Vennligst oppbevar dem sikkert.", alertNoFile: "Velg en fil som skal importeres.", alertWrongFileType: "Velg en JSON-fil.", "Clear all statistics": "Fjern all statistikk", @@ -154,7 +154,7 @@ export default { Tags: "Etiketter", "Add New below or Select...": "Legg til nytt nedenfor eller Velg ...", "Tag with this name already exist.": "Etikett med dette navnet eksisterer allerede.", - "Tag with this value already exist.": "Etikett med denne verdien finnes allerede.", + "Tag with this value already exist.": "Etikett med denne verdien eksisterer allerede.", color: "farge", "value (optional)": "verdi (valgfritt)", Gray: "Grå", @@ -172,29 +172,29 @@ export default { statusPageNothing: "Ingenting her, vennligst legg til en gruppe eller en overvåkning.", "No Services": "Ingen tjenester", "All Systems Operational": "Alle systemer i drift", - "Partially Degraded Service": "Delvis degradert drift", - "Degraded Service": "Degradert drift", + "Partially Degraded Service": "Delvis degradert tjeneste", + "Degraded Service": "Degradert tjeneste", "Add Group": "Legg til gruppe", "Add a monitor": "Legg til en overvåkning", "Edit Status Page": "Rediger statusside", "Go to Dashboard": "Gå til Dashboard", "Status Page": "Statusside", defaultNotificationName: "Min {notification} varsling ({number})", - here: "here", + here: "her", Required: "Obligatorisk", telegram: "Telegram", "Bot Token": "Bot Token", wayToGetTelegramToken: "Du kan få et token fra {0}.", "Chat ID": "Chat ID", supportTelegramChatID: "Support Direct Chat / Group / Channel's Chat ID", - wayToGetTelegramChatID: "Du kan få chat-ID-en din ved å sende meldingen til boten og gå til denne nettadressen for å se chat_id:", + wayToGetTelegramChatID: "Du kan få chat-ID-en din ved å sende en melding til boten og gå til denne nettadressen for å se chat_id:", "YOUR BOT TOKEN HERE": "DITT BOT TOKEN HER", chatIDNotFound: "Chat-ID ble ikke funnet. Send en melding til denne boten først", webhook: "Webhook", "Post URL": "Post URL", - "Content Type": "Content Type", + "Content Type": "Innholdstype", webhookJsonDesc: "{0} er bra for alle moderne HTTP-servere som express.js", - webhookFormDataDesc: "{multipart} er bra for PHP, du trenger bare å analysere JSON etter {decodeFunction}", + webhookFormDataDesc: "{multipart} er bra for PHP. JSON trenger å bli analysert med {decodeFunction}", smtp: "E-post (SMTP)", secureOptionNone: "None / STARTTLS (25, 587)", secureOptionTLS: "TLS (465)", @@ -205,7 +205,7 @@ export default { smtpBCC: "BCC", discord: "Discord", "Discord Webhook URL": "Discord Webhook URL", - wayToGetDiscordURL: "Du kan få dette ved å gå til Serverinnstillinger -> Integrasjoner -> Webhooks -> Ny webhook", + wayToGetDiscordURL: "Du kan få denne ved å gå til Serverinnstillinger -> Integrasjoner -> Opprett en Webhook", "Bot Display Name": "Bot Visningsnavn", "Prefix Custom Message": "Prefiks tilpasset melding", "Hello @everyone is...": "Hei {'@'}everyone det er...", @@ -240,43 +240,43 @@ export default { pushbullet: "Pushbullet", line: "Line Messenger", mattermost: "Mattermost", - "User Key": "User Key", - Device: "Device", - "Message Title": "Message Title", - "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.", - pushoverDesc2: "If you want to send notifications to different devices, fill out Device field.", + "User Key": "Bruker-nøkkel", + Device: "Enhet", + "Message Title": "Meldingstittel", + "Notification Sound": "Notifikasjonslyd", + "More info on:": "Mer info på: {0}", + pushoverDesc1: "Nødsprioritet (2) har en standard 30 sekunders tidsavbrudd mellom forsøk og vil utløpe etter 1 time.", + pushoverDesc2: "Hvis du vil sende varsler til forskjellige enheteter, fyll ut Enhet-feltet.", "SMS Type": "SMS Type", - octopushTypePremium: "Premium (Fast - recommended for alerting)", - octopushTypeLowCost: "Low Cost (Slow, sometimes blocked by operator)", - "Check octopush prices": "Check octopush prices {0}.", - 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", + octopushTypePremium: "Premium (Raskt - anbefalt for varsling)", + octopushTypeLowCost: "Lav kostnad (Sakte, noen ganger blokkert av leverandør)", + "Check octopush prices": "Sjekk octopush priser {0}.", + octopushPhoneNumber: "Telefonnummer (intl format, eg : +4791234567) ", + octopushSMSSender: "SMS Avsendernavn : 3-11 alphanumeriske tegn og mellomrom (a-zA-Z0-9)", + "LunaSea Device ID": "LunaSea Enhet ID", "Apprise URL": "Apprise URL", - "Example:": "Example: {0}", - "Read more:": "Read more: {0}", + "Example:": "Eksempel: {0}", + "Read more:": "Les mer: {0}", "Status:": "Status: {0}", - "Read more": "Read more", - appriseInstalled: "Apprise is installed.", - appriseNotInstalled: "Apprise is not installed. {0}", - "Access Token": "Access Token", - "Channel access token": "Channel access token", - "Line Developers Console": "Line Developers Console", - lineDevConsoleTo: "Line Developers Console - {0}", - "Basic Settings": "Basic Settings", - "User ID": "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.", - "Icon URL": "Icon URL", - 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 webhook posts to by entering the channel name into \"Channel Name\" field. This needs to be enabled in Mattermost webhook settings. Ex: #other-channel", + "Read more": "Les mer", + appriseInstalled: "Apprise er installert.", + appriseNotInstalled: "Apprise ikke installert. {0}", + "Access Token": "Tilgangs-Token", + "Channel access token": "Kanal tilgangs-token", + "Line Developers Console": "Line Utviklserskonsoll", + lineDevConsoleTo: "Line Utviklserskonsoll - {0}", + "Basic Settings": "Grunnleggende instillinger", + "User ID": "Bruker-ID", + "Messaging API": "Meldings-API", + wayToGetLineChannelToken: "Først, få tilgang til {0}, lag en leverandør og kanal (Meldings-API), deretter kan du hente kanaltilgangs-token og bruker id fra menu-valgene nevnt over.", + "Icon URL": "Ikon URL", + aboutIconURL: "Du kan gi en link til et bilde i \"Ikon URL\" for å overskrive det standard profilbildet. Vil ikke bli brukt hvis Ikon Emoji ikke er satt.", + aboutMattermostChannelName: "Du kan overskrive standardkanalen som webhook-en poster i ved å skrive enn kanalnavnet i \"Kanalnavn\" feltet. Dette må være skrudd på i Mattermost webhook-instillingene. Eks: #other-channel", matrix: "Matrix", - promosmsTypeEco: "SMS ECO - cheap but slow and often overloaded. Limited only to Polish recipients.", - promosmsTypeFlash: "SMS FLASH - Message will automatically show on recipient device. Limited only to Polish recipients.", - promosmsTypeFull: "SMS FULL - Premium tier of SMS, You can use Your Sender Name (You need to register name first). Reliable for alerts.", - 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", + promosmsTypeEco: "SMS ECO - billig, men treg og ofte overbelastet. Begrenset til bare polske mottakere.", + promosmsTypeFlash: "SMS FLASH - Melding vil automatisk vises på mottakker-enhet. Begrenset til bare polske mottakere.", + promosmsTypeFull: "SMS FULL - Premuimnivå SMS. Du kan bruke dit avsendernavn (Du må registerere et navn først). Pålitelig for alle varslinger.", + promosmsTypeSpeed: "SMS SPEED - Høyest prioritet i systemet.Veldig rask på pålitelig, men dyrt (omtrent det dobbeltet av SMS FULL pris).", + promosmsPhoneNumber: "Telefonnummber (for polske mottakere. Du trenger ikke områdekode.)", + promosmsSMSSender: "SMS Avsendernavn : Forhåndsregistert navn eller en av standardnavnene: InfoSMS, SMS Info, MaxSMS, INFO, SMS", }; diff --git a/src/languages/ru-RU.js b/src/languages/ru-RU.js index c67937b0..45782320 100644 --- a/src/languages/ru-RU.js +++ b/src/languages/ru-RU.js @@ -327,4 +327,5 @@ export default { "Backup": "Резервная копия", "Security": "Безопасность", "Current User:": "Текущий пользователь:", + "All Systems Operational": "Все системы работают", }; diff --git a/src/languages/vi.js b/src/languages/vi.js index bc2e86de..22538f91 100644 --- a/src/languages/vi.js +++ b/src/languages/vi.js @@ -176,8 +176,8 @@ export default { statusPageNothing: "Không có gì, hãy thêm nhóm monitor hoặc monitor.", "No Services": "Không có dịch vụ", "All Systems Operational": "Tất cả các hệ thống hoạt động bình thường", - "Partially Degraded Service": "Dịch vụ xuống cấp một phần", - "Degraded Service": "Degraded Service", + "Partially Degraded Service": "Có hệ thống down", + "Degraded Service": "Toàn bộ hệ thống down", "Add Group": "Thêm nhóm", "Add a monitor": "Thêm monitor", "Edit Status Page": "Sửa trang trạng thái", @@ -243,6 +243,7 @@ export default { clicksendsms: "ClickSend SMS", lunasea: "LunaSea", apprise: "Apprise (Hỗ trợ 50+ dịch vụ thông báo)", + GoogleChat: "Google Chat (Google Workspace only)", pushbullet: "Pushbullet", line: "Line Messenger", mattermost: "Mattermost", @@ -307,4 +308,57 @@ export default { steamApiKeyDescription: "Để monitor các Steam Game Server bạn cần một Steam Web-API key. Bạn có thể đăng ký API key tại đây: ", "Current User": "User hiện tại", recent: "Gần đây", + Done: "Done", + Info: "Info", + Security: "Security", + "Steam API Key": "Steam API Key", + "Shrink Database": "Shrink Database", + "Pick a RR-Type...": "Pick a RR-Type...", + "Pick Accepted Status Codes...": "Chọn các Codes trạng thái chấp nhận được...", + Default: "Mặc định", + "HTTP Options": "Tuỳ chọn HTTP", + "Create Incident": "Create Incident", + Title: "Tiêu đề", + Content: "Nội dung", + Style: "Style", + info: "info", + warning: "cảnh báo", + danger: "nguy hiểm", + primary: "primary", + light: "sáng", + dark: "tối", + Post: "Post", + "Please input title and content": "Hãy nhập tiêu đề và nội dung", + Created: "Created", + "Last Updated": "Cập nhật mới nhất", + Unpin: "Bỏ ghim", + "Switch to Light Theme": "Chuyển sang Theme Sáng", + "Switch to Dark Theme": "Chuyển sang Theme Tối", + "Show Tags": "Hiện Tags", + "Hide Tags": "Ẩn Tags", + Description: "Mô tả", + "No monitors available.": "Không có monitor nào.", + "Add one": "Thêm mới", + "No Monitors": "No Monitors", + "Untitled Group": "Nhóm không có tiêu đề", + Services: "Services", + Discard: "Discard", + Cancel: "Cancel", + "Powered by": "Được cung cấp bởi", + shrinkDatabaseDescription: "Khởi chạy database VACCUM cho SQLite. Nếu database được tạo sau version 1.10.0, AUTO_VACCUM đã được bật sẵn, hành động này không cần thiết.", + serwersms: "SerwerSMS.pl", + serwersmsAPIUser: "API Username (incl. webapi_ prefix)", + serwersmsAPIPassword: "API Password", + serwersmsPhoneNumber: "Số điện thoại", + serwersmsSenderName: "Tên người gửi SMS (Đã đăng ký qua portal)", + "stackfield": "Stackfield", + smtpDkimSettings: "DKIM Settings", + smtpDkimDesc: "Please refer to the Nodemailer DKIM {0} for usage.", + documentation: "documentation", + smtpDkimDomain: "Domain Name", + smtpDkimKeySelector: "Key Selector", + smtpDkimPrivateKey: "Private Key", + smtpDkimHashAlgo: "Hash Algorithm (Tuỳ chọn)", + smtpDkimheaderFieldNames: "Header Keys to sign (Tuỳ chọn)", + smtpDkimskipFields: "Header Keys not to sign (Tuỳ chọn)", };