Merge branch 'louislam:master' into smtp-subject

This commit is contained in:
Lukas 2021-10-09 20:37:12 +02:00 committed by GitHub
commit edb75808d8
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
11 changed files with 190 additions and 177 deletions

2
.github/FUNDING.yml vendored
View file

@ -1,6 +1,6 @@
# These are supported funding model platforms # These are supported funding model platforms
#github: # Replace with up to 4 GitHub Sponsors-enabled usernames e.g., [user1, user2] github: louislam # Replace with up to 4 GitHub Sponsors-enabled usernames e.g., [user1, user2]
#patreon: # Replace with a single Patreon username #patreon: # Replace with a single Patreon username
open_collective: uptime-kuma # Replace with a single Open Collective username open_collective: uptime-kuma # Replace with a single Open Collective username
#ko_fi: # Replace with a single Ko-fi username #ko_fi: # Replace with a single Ko-fi username

View file

@ -27,7 +27,7 @@ jobs:
with: with:
node-version: ${{ matrix.node-version }} node-version: ${{ matrix.node-version }}
cache: 'npm' cache: 'npm'
- run: npm ci - run: npm run install-legacy
- run: npm run build - run: npm run build
- run: npm test - run: npm test
env: env:

View file

@ -92,7 +92,7 @@ Light Mode:
Status Page: Status Page:
<img src="https://user-images.githubusercontent.com/1336778/133384019-962e1120-6c3a-481f-9d07-d7df765e9ba4.png" width="512" alt="" /> <img src="https://user-images.githubusercontent.com/1336778/134628766-a3fe0981-0926-4285-ab46-891a21c3e4cb.png" width="512" alt="" />
Settings Page: Settings Page:

View file

@ -12,6 +12,7 @@ const { R } = require("redbean-node");
const { BeanModel } = require("redbean-node/dist/bean-model"); const { BeanModel } = require("redbean-node/dist/bean-model");
const { Notification } = require("../notification"); const { Notification } = require("../notification");
const version = require("../../package.json").version; const version = require("../../package.json").version;
const apicache = require("../modules/apicache");
/** /**
* status: * status:
@ -333,6 +334,9 @@ class Monitor extends BeanModel {
console.log(e); console.log(e);
} }
} }
// Clear Status Page Cache
apicache.clear();
} }
} else { } else {

View file

@ -1041,6 +1041,10 @@ exports.entryPage = "dashboard";
notificationIDList: {}, notificationIDList: {},
}; };
if (monitorListData[i].pushToken) {
monitor.pushToken = monitorListData[i].pushToken;
}
let bean = R.dispense("monitor"); let bean = R.dispense("monitor");
let notificationIDList = monitor.notificationIDList; let notificationIDList = monitor.notificationIDList;

View file

@ -3,7 +3,7 @@
@import "node_modules/bootstrap/scss/bootstrap"; @import "node_modules/bootstrap/scss/bootstrap";
#app { #app {
font-family: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, segoe ui, Roboto, helvetica neue, Arial, noto sans, sans-serif, apple color emoji, segoe ui emoji, segoe ui symbol, noto color emoji; font-family: BlinkMacSystemFont, segoe ui, Roboto, helvetica neue, Arial, noto sans, sans-serif, apple color emoji, segoe ui emoji, segoe ui symbol, noto color emoji;
} }
h1 { h1 {

View file

@ -1,7 +1,7 @@
export default { export default {
languageName: "Български", languageName: "Български",
checkEverySecond: "Ще се извършва на всеки {0} секунди.", checkEverySecond: "Ще се извършва на всеки {0} секунди",
retryCheckEverySecond: "Повторен опит на всеки {0} секунди.", retryCheckEverySecond: "Ще се извършва на всеки {0} секунди",
retriesDescription: "Максимакен брой опити преди услугата да бъде маркирана като недостъпна и да бъде изпратено известие", retriesDescription: "Максимакен брой опити преди услугата да бъде маркирана като недостъпна и да бъде изпратено известие",
ignoreTLSError: "Игнорирай TLS/SSL грешки за HTTPS уебсайтове", ignoreTLSError: "Игнорирай TLS/SSL грешки за HTTPS уебсайтове",
upsideDownModeDescription: "Обърни статуса от достъпен на недостъпен. Ако услугата е достъпна се вижда НЕДОСТЪПНА.", upsideDownModeDescription: "Обърни статуса от достъпен на недостъпен. Ако услугата е достъпна се вижда НЕДОСТЪПНА.",
@ -28,7 +28,7 @@ export default {
confirmDisableTwoFAMsg: "Сигурни ли сте, че желаете да изключите 2FA?", confirmDisableTwoFAMsg: "Сигурни ли сте, че желаете да изключите 2FA?",
Settings: "Настройки", Settings: "Настройки",
Dashboard: "Табло", Dashboard: "Табло",
"New Update": "Нова актуализация", "New Update": "Налична е актуализация",
Language: "Език", Language: "Език",
Appearance: "Изглед", Appearance: "Изглед",
Theme: "Тема", Theme: "Тема",
@ -57,7 +57,7 @@ export default {
"Cert Exp.": "Вал. сертификат", "Cert Exp.": "Вал. сертификат",
days: "дни", days: "дни",
day: "ден", day: "ден",
"-day": "-денa", "-day": "-дни",
hour: "час", hour: "час",
"-hour": "-часa", "-hour": "-часa",
Response: "Отговор", Response: "Отговор",

View file

@ -2,7 +2,7 @@ export default {
languageName: "Deutsch (Deutschland)", languageName: "Deutsch (Deutschland)",
Settings: "Einstellungen", Settings: "Einstellungen",
Dashboard: "Dashboard", Dashboard: "Dashboard",
"New Update": "Update Verfügbar", "New Update": "Update verfügbar",
Language: "Sprache", Language: "Sprache",
Appearance: "Erscheinung", Appearance: "Erscheinung",
Theme: "Thema", Theme: "Thema",
@ -50,7 +50,7 @@ export default {
Advanced: "Erweitert", Advanced: "Erweitert",
ignoreTLSError: "Ignoriere TLS/SSL Fehler von Webseiten", ignoreTLSError: "Ignoriere TLS/SSL Fehler von Webseiten",
"Upside Down Mode": "Umgedrehter Modus", "Upside Down Mode": "Umgedrehter Modus",
upsideDownModeDescription: "Drehe den Modus um, ist der Dienst erreichbar, wird er als Inaktiv angezeigt.", upsideDownModeDescription: "Drehe den Modus um, ist der Dienst erreichbar, wird er als inaktiv angezeigt.",
"Max. Redirects": "Max. Weiterleitungen", "Max. Redirects": "Max. Weiterleitungen",
maxRedirectDescription: "Maximale Anzahl von Weiterleitungen, denen gefolgt werden soll. Setzte auf 0, um Weiterleitungen zu deaktivieren.", maxRedirectDescription: "Maximale Anzahl von Weiterleitungen, denen gefolgt werden soll. Setzte auf 0, um Weiterleitungen zu deaktivieren.",
"Accepted Status Codes": "Erlaubte HTTP-Statuscodes", "Accepted Status Codes": "Erlaubte HTTP-Statuscodes",
@ -71,7 +71,7 @@ export default {
"Allow indexing": "Indizierung zulassen", "Allow indexing": "Indizierung zulassen",
"Discourage search engines from indexing site": "Halte Suchmaschinen von der Indexierung der Seite ab", "Discourage search engines from indexing site": "Halte Suchmaschinen von der Indexierung der Seite ab",
"Change Password": "Passwort ändern", "Change Password": "Passwort ändern",
"Current Password": "Dezeitiges Passwort", "Current Password": "Derzeitiges Passwort",
"New Password": "Neues Passwort", "New Password": "Neues Passwort",
"Repeat New Password": "Wiederhole neues Passwort", "Repeat New Password": "Wiederhole neues Passwort",
passwordNotMatchMsg: "Passwörter stimmen nicht überein. ", passwordNotMatchMsg: "Passwörter stimmen nicht überein. ",
@ -91,24 +91,24 @@ export default {
Login: "Einloggen", Login: "Einloggen",
"No Monitors, please": "Keine Monitore, bitte", "No Monitors, please": "Keine Monitore, bitte",
"add one": "hinzufügen", "add one": "hinzufügen",
"Notification Type": "Benachrichtigungs Dienst", "Notification Type": "Benachrichtigungsdienst",
Email: "E-Mail", Email: "E-Mail",
Test: "Test", Test: "Test",
"Certificate Info": "Zertifikatsinfo", "Certificate Info": "Zertifikatsinfo",
keywordDescription: "Suche nach einem Schlüsselwort in der HTML oder JSON Ausgabe. Bitte beachte, es wird in der Groß-/Kleinschreibung unterschieden.", keywordDescription: "Suche nach einem Schlüsselwort in der HTML oder JSON Ausgabe. Bitte beachte, es wird in der Groß-/Kleinschreibung unterschieden.",
deleteMonitorMsg: "Bist du sicher das du den Monitor löschen möchtest?", deleteMonitorMsg: "Bist du sicher, dass du den Monitor löschen möchtest?",
deleteNotificationMsg: "Möchtest du diese Benachrichtigung wirklich für alle Monitore löschen?", deleteNotificationMsg: "Möchtest du diese Benachrichtigung wirklich für alle Monitore löschen?",
resoverserverDescription: "Cloudflare ist als der Standardserver festgelegt, dieser kann jederzeit geändern werden.", resoverserverDescription: "Cloudflare ist als der Standardserver festgelegt, dieser kann jederzeit geändern werden.",
"Resolver Server": "Auflösungsserver", "Resolver Server": "Auflösungsserver",
rrtypeDescription: "Wähle den RR-Typ aus, welchen du überwachen möchtest.", rrtypeDescription: "Wähle den RR-Typ aus, welchen du überwachen möchtest.",
"Last Result": "Letztes Ergebnis", "Last Result": "Letztes Ergebnis",
pauseMonitorMsg: "Bist du sicher das du den Monitor pausieren möchtest?", pauseMonitorMsg: "Bist du sicher, dass du den Monitor pausieren möchtest?",
clearEventsMsg: "Bist du sicher das du alle Ereignisse für diesen Monitor löschen möchtest?", clearEventsMsg: "Bist du sicher, dass du alle Ereignisse für diesen Monitor löschen möchtest?",
clearHeartbeatsMsg: "Bist du sicher das du alle Statistiken für diesen Monitor löschen möchtest?", clearHeartbeatsMsg: "Bist du sicher, dass du alle Statistiken für diesen Monitor löschen möchtest?",
"Clear Data": "Lösche Daten", "Clear Data": "Lösche Daten",
Events: "Ereignisse", Events: "Ereignisse",
Heartbeats: "Statistiken", Heartbeats: "Statistiken",
confirmClearStatisticsMsg: "Bist du sicher das du ALLE Statistiken löschen möchtest?", confirmClearStatisticsMsg: "Bist du dir wirklich sicher, dass du ALLE Statistiken löschen möchtest?",
"Create your admin account": "Erstelle dein Admin Konto", "Create your admin account": "Erstelle dein Admin Konto",
"Repeat Password": "Wiederhole das Passwort", "Repeat Password": "Wiederhole das Passwort",
"Resource Record Type": "Resource Record Type", "Resource Record Type": "Resource Record Type",
@ -124,7 +124,7 @@ export default {
backupDescription: "Es können alle Monitore und Benachrichtigungen in einer JSON-Datei gesichert werden.", backupDescription: "Es können alle Monitore und Benachrichtigungen in einer JSON-Datei gesichert werden.",
backupDescription2: "PS: Verlaufs- und Ereignisdaten sind nicht enthalten.", backupDescription2: "PS: Verlaufs- und Ereignisdaten sind nicht enthalten.",
backupDescription3: "Sensible Daten wie Benachrichtigungstoken sind in der Exportdatei enthalten, bitte bewahre sie sorgfältig auf.", backupDescription3: "Sensible Daten wie Benachrichtigungstoken sind in der Exportdatei enthalten, bitte bewahre sie sorgfältig auf.",
alertNoFile: "Bitte wähle eine Datei zum importieren aus.", alertNoFile: "Bitte wähle eine Datei zum Importieren aus.",
alertWrongFileType: "Bitte wähle eine JSON Datei aus.", alertWrongFileType: "Bitte wähle eine JSON Datei aus.",
"Clear all statistics": "Lösche alle Statistiken", "Clear all statistics": "Lösche alle Statistiken",
importHandleDescription: "Wähle 'Vorhandene überspringen' aus, wenn jeder Monitor oder Benachrichtigung mit demselben Namen übersprungen werden soll. 'Überschreiben' löscht jeden vorhandenen Monitor sowie Benachrichtigungen.", importHandleDescription: "Wähle 'Vorhandene überspringen' aus, wenn jeder Monitor oder Benachrichtigung mit demselben Namen übersprungen werden soll. 'Überschreiben' löscht jeden vorhandenen Monitor sowie Benachrichtigungen.",
@ -133,14 +133,14 @@ export default {
Options: "Optionen", Options: "Optionen",
confirmImportMsg: "Möchtest du das Backup wirklich importieren? Bitte stelle sicher, dass die richtige Import Option ausgewählt ist.", confirmImportMsg: "Möchtest du das Backup wirklich importieren? Bitte stelle sicher, dass die richtige Import Option ausgewählt ist.",
"Keep both": "Beide behalten", "Keep both": "Beide behalten",
twoFAVerifyLabel: "Bitte trage deinen Token ein um zu verifizieren das 2FA funktioniert", twoFAVerifyLabel: "Bitte trage deinen Token ein, um zu verifizieren das 2FA funktioniert",
"Verify Token": "Token verifizieren", "Verify Token": "Token verifizieren",
"Setup 2FA": "2FA Einrichten", "Setup 2FA": "2FA Einrichten",
"Enable 2FA": "2FA Aktivieren", "Enable 2FA": "2FA Aktivieren",
"Disable 2FA": "2FA deaktivieren", "Disable 2FA": "2FA deaktivieren",
"2FA Settings": "2FA Einstellungen", "2FA Settings": "2FA Einstellungen",
confirmEnableTwoFAMsg: "Bist du sicher das du 2FA aktivieren möchtest?", confirmEnableTwoFAMsg: "Bist du sicher, dass du 2FA aktivieren möchtest?",
confirmDisableTwoFAMsg: "Bist du sicher das du 2FA deaktivieren möchtest?", confirmDisableTwoFAMsg: "Bist du sicher, dass du 2FA deaktivieren möchtest?",
tokenValidSettingsMsg: "Token gültig! Du kannst jetzt die 2FA Einstellungen speichern.", tokenValidSettingsMsg: "Token gültig! Du kannst jetzt die 2FA Einstellungen speichern.",
"Two Factor Authentication": "Zwei Faktor Authentifizierung", "Two Factor Authentication": "Zwei Faktor Authentifizierung",
Active: "Aktiv", Active: "Aktiv",
@ -162,7 +162,7 @@ export default {
Purple: "Lila", Purple: "Lila",
Pink: "Pink", Pink: "Pink",
"Search...": "Suchen...", "Search...": "Suchen...",
"Heartbeat Retry Interval": "Takt-Wiederholungsintervall", "Heartbeat Retry Interval": "Heartbeat-Wiederholungsintervall",
retryCheckEverySecond: "Versuche alle {0} Sekunden", retryCheckEverySecond: "Versuche alle {0} Sekunden",
"Import Backup": "Import Backup", "Import Backup": "Import Backup",
"Export Backup": "Export Backup", "Export Backup": "Export Backup",
@ -178,10 +178,10 @@ export default {
"Add a monitor": "Monitor hinzufügen", "Add a monitor": "Monitor hinzufügen",
"Edit Status Page": "Bearbeite Statusseite", "Edit Status Page": "Bearbeite Statusseite",
"Go to Dashboard": "Gehe zum Dashboard", "Go to Dashboard": "Gehe zum Dashboard",
"Status Page": "Status Page", "Status Page": "Status Seite",
telegram: "Telegram", telegram: "Telegram",
webhook: "Webhook", webhook: "Webhook",
smtp: "Email (SMTP)", smtp: "E-Mail (SMTP)",
discord: "Discord", discord: "Discord",
teams: "Microsoft Teams", teams: "Microsoft Teams",
signal: "Signal", signal: "Signal",
@ -193,7 +193,7 @@ export default {
octopush: "Octopush", octopush: "Octopush",
promosms: "PromoSMS", promosms: "PromoSMS",
lunasea: "LunaSea", lunasea: "LunaSea",
apprise: "Apprise (Support 50+ Notification services)", apprise: "Apprise (Unterstützung für 50+ Benachrichtigungsdienste)",
pushbullet: "Pushbullet", pushbullet: "Pushbullet",
line: "Line Messenger", line: "Line Messenger",
mattermost: "Mattermost", mattermost: "Mattermost",

View file

@ -17,7 +17,7 @@ export default {
pauseMonitorMsg: "¿Seguro que quieres pausar?", pauseMonitorMsg: "¿Seguro que quieres pausar?",
Settings: "Ajustes", Settings: "Ajustes",
Dashboard: "Panel", Dashboard: "Panel",
"New Update": "Vueva actualización", "New Update": "Nueva actualización",
Language: "Idioma", Language: "Idioma",
Appearance: "Apariencia", Appearance: "Apariencia",
Theme: "Tema", Theme: "Tema",
@ -61,11 +61,11 @@ export default {
Retries: "Reintentos", Retries: "Reintentos",
Advanced: "Avanzado", Advanced: "Avanzado",
"Upside Down Mode": "Modo invertido", "Upside Down Mode": "Modo invertido",
"Max. Redirects": "Máx. redirecciones", "Max. Redirects": "Redirecciones Máximas",
"Accepted Status Codes": "Códigos de estado aceptados", "Accepted Status Codes": "Códigos de estado aceptados",
Save: "Guardar", Save: "Guardar",
Notifications: "Notificaciones", Notifications: "Notificaciones",
"Not available, please setup.": "No disponible, por favor configurar.", "Not available, please setup.": "No disponible, por favor configúrelo.",
"Setup Notification": "Configurar notificación", "Setup Notification": "Configurar notificación",
Light: "Claro", Light: "Claro",
Dark: "Oscuro", Dark: "Oscuro",
@ -83,11 +83,11 @@ export default {
"New Password": "Nueva contraseña", "New Password": "Nueva contraseña",
"Repeat New Password": "Repetir nueva contraseña", "Repeat New Password": "Repetir nueva contraseña",
"Update Password": "Actualizar contraseña", "Update Password": "Actualizar contraseña",
"Disable Auth": "Deshabilitar Autenticación ", "Disable Auth": "Deshabilitar Autenticación",
"Enable Auth": "Habilitar Autenticación ", "Enable Auth": "Habilitar Autenticación",
Logout: "Cerrar sesión", Logout: "Cerrar sesión",
Leave: "Salir", Leave: "Salir",
"I understand, please disable": "Lo comprendo, por favor deshabilitar", "I understand, please disable": "Entiendo, por favor deshabilitar",
Confirm: "Confirmar", Confirm: "Confirmar",
Yes: "Sí", Yes: "Sí",
No: "No", No: "No",
@ -100,7 +100,7 @@ export default {
"Notification Type": "Tipo de notificación", "Notification Type": "Tipo de notificación",
Email: "Email", Email: "Email",
Test: "Test", Test: "Test",
"Certificate Info": "Información del certificado ", "Certificate Info": "Información del certificado",
"Resolver Server": "Servidor de resolución", "Resolver Server": "Servidor de resolución",
"Resource Record Type": "Tipo de Registro", "Resource Record Type": "Tipo de Registro",
"Last Result": "Último resultado", "Last Result": "Último resultado",
@ -108,78 +108,78 @@ export default {
"Repeat Password": "Repetir contraseña", "Repeat Password": "Repetir contraseña",
respTime: "Tiempo de resp. (ms)", respTime: "Tiempo de resp. (ms)",
notAvailableShort: "N/A", notAvailableShort: "N/A",
Create: "Create", Create: "Crear",
clearEventsMsg: "Are you sure want to delete all events for this monitor?", clearEventsMsg: "¿Está seguro de que desea eliminar todos los eventos de este monitor?",
clearHeartbeatsMsg: "Are you sure want to delete all heartbeats for this monitor?", clearHeartbeatsMsg: "¿Está seguro de que desea eliminar todos los latidos de este monitor?",
confirmClearStatisticsMsg: "Are you sure want to delete ALL statistics?", confirmClearStatisticsMsg: "¿Está seguro de que desea eliminar TODAS las estadísticas?",
"Clear Data": "Clear Data", "Clear Data": "Borrar Datos",
Events: "Events", Events: "Eventos",
Heartbeats: "Heartbeats", Heartbeats: "Latidos",
"Auto Get": "Auto Get", "Auto Get": "Obtener automáticamente",
enableDefaultNotificationDescription: "For every new monitor this notification will be enabled by default. You can still disable the notification separately for each monitor.", enableDefaultNotificationDescription: "Para cada nuevo monitor, esta notificación estará habilitada de forma predeterminada. Aún puede deshabilitar la notificación por separado para cada monitor.",
"Default enabled": "Default enabled", "Default enabled": "Habilitado por defecto",
"Also apply to existing monitors": "Also apply to existing monitors", "Also apply to existing monitors": "También se aplica a monitores existentes",
Export: "Export", Export: "Exportar",
Import: "Import", Import: "Importar",
backupDescription: "You can backup all monitors and all notifications into a JSON file.", backupDescription: "Puede hacer una copia de seguridad de todos los monitores y todas las notificaciones en un archivo JSON.",
backupDescription2: "PS: History and event data is not included.", backupDescription2: "PD: el historial y los datos de eventos no están incluidos.",
backupDescription3: "Sensitive data such as notification tokens is included in the export file, please keep it carefully.", backupDescription3: "Los datos confidenciales, como los tokens de notificación, se incluyen en el archivo de exportación. Guárdelo con cuidado.",
alertNoFile: "Please select a file to import.", alertNoFile: "Seleccione un archivo para importar.",
alertWrongFileType: "Please select a JSON file.", alertWrongFileType: "Seleccione un archivo JSON.",
twoFAVerifyLabel: "Please type in your token to verify that 2FA is working", twoFAVerifyLabel: "Ingrese su token para verificar que 2FA está funcionando",
tokenValidSettingsMsg: "Token is valid! You can now save the 2FA settings.", tokenValidSettingsMsg: "¡El token es válido! Ahora puede guardar la configuración de 2FA.",
confirmEnableTwoFAMsg: "Are you sure you want to enable 2FA?", confirmEnableTwoFAMsg: "¿Estás seguro de que quieres habilitar 2FA?",
confirmDisableTwoFAMsg: "Are you sure you want to disable 2FA?", confirmDisableTwoFAMsg: "¿Estás seguro de que quieres desactivar 2FA?",
"Apply on all existing monitors": "Apply on all existing monitors", "Apply on all existing monitors": "Aplicar en todos los monitores existentes",
"Verify Token": "Verify Token", "Verify Token": "Verificar token",
"Setup 2FA": "Setup 2FA", "Setup 2FA": "Configurar 2FA",
"Enable 2FA": "Enable 2FA", "Enable 2FA": "Habilitar 2FA",
"Disable 2FA": "Disable 2FA", "Disable 2FA": "Desactivar 2FA",
"2FA Settings": "2FA Settings", "2FA Settings": "Ajustes 2FA",
"Two Factor Authentication": "Two Factor Authentication", "Two Factor Authentication": "Autenticación de dos factores",
Active: "Active", Active: "Activo",
Inactive: "Inactive", Inactive: "Inactivo",
Token: "Token", Token: "Token",
"Show URI": "Show URI", "Show URI": "Mostrar URI",
"Clear all statistics": "Clear all Statistics", "Clear all statistics": "Borrar todas las estadísticas",
retryCheckEverySecond: "Retry every {0} seconds.", retryCheckEverySecond: "Reintentar cada {0} segundo.",
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.", importHandleDescription: "Elija 'Omitir existente' si desea omitir todos los monitores o notificaciones con el mismo nombre. 'Sobrescribir' eliminará todos los monitores y notificaciones existentes.",
confirmImportMsg: "Are you sure to import the backup? Please make sure you've selected the right import option.", confirmImportMsg: "¿Estás seguro de importar la copia de seguridad? Asegúrese de haber seleccionado la opción de importación correcta.",
"Heartbeat Retry Interval": "Heartbeat Retry Interval", "Heartbeat Retry Interval": "Intervalo de reintento de latido",
"Import Backup": "Import Backup", "Import Backup": "Importar copia de seguridad",
"Export Backup": "Export Backup", "Export Backup": "Exportar copia de seguridad",
"Skip existing": "Skip existing", "Skip existing": "Omitir existente",
Overwrite: "Overwrite", Overwrite: "Sobrescribir",
Options: "Options", Options: "Opciones",
"Keep both": "Keep both", "Keep both": "Mantén ambos",
Tags: "Tags", Tags: "Etiquetas",
"Add New below or Select...": "Add New below or Select...", "Add New below or Select...": "Agregar nuevo a continuación o Seleccionar...",
"Tag with this name already exist.": "Tag with this name already exist.", "Tag with this name already exist.": "La etiqueta con este nombre ya existe.",
"Tag with this value already exist.": "Tag with this value already exist.", "Tag with this value already exist.": "La etiqueta con este valor ya existe.",
color: "color", color: "color",
"value (optional)": "value (optional)", "value (optional)": "valor (opcional)",
Gray: "Gray", Gray: "Gris",
Red: "Red", Red: "Rojo",
Orange: "Orange", Orange: "Naranja",
Green: "Green", Green: "Verde",
Blue: "Blue", Blue: "Azul",
Indigo: "Indigo", Indigo: "Índigo",
Purple: "Purple", Purple: "Morado",
Pink: "Pink", Pink: "Rosa",
"Search...": "Search...", "Search...": "Buscar...",
"Avg. Ping": "Avg. Ping", "Avg. Ping": "Ping promedio",
"Avg. Response": "Avg. Response", "Avg. Response": "Respuesta promedio",
"Entry Page": "Entry Page", "Entry Page": "Página de entrada",
statusPageNothing: "Nothing here, please add a group or a monitor.", statusPageNothing: "No hay nada aquí, agregue un grupo o un monitor.",
"No Services": "No Services", "No Services": "Sin servicio",
"All Systems Operational": "All Systems Operational", "All Systems Operational": "Todos los sistemas están operativos",
"Partially Degraded Service": "Partially Degraded Service", "Partially Degraded Service": "Servicio parcialmente degradado",
"Degraded Service": "Degraded Service", "Degraded Service": "Servicio degradado",
"Add Group": "Add Group", "Add Group": "Agregar Grupo",
"Add a monitor": "Add a monitor", "Add a monitor": "Agregar un monitor",
"Edit Status Page": "Edit Status Page", "Edit Status Page": "Editar página de estado",
"Go to Dashboard": "Go to Dashboard", "Go to Dashboard": "Ir al panel de control",
"Status Page": "Status Page", "Status Page": "Página de estado",
telegram: "Telegram", telegram: "Telegram",
webhook: "Webhook", webhook: "Webhook",
smtp: "Email (SMTP)", smtp: "Email (SMTP)",
@ -194,7 +194,7 @@ export default {
octopush: "Octopush", octopush: "Octopush",
promosms: "PromoSMS", promosms: "PromoSMS",
lunasea: "LunaSea", lunasea: "LunaSea",
apprise: "Apprise (Support 50+ Notification services)", apprise: "Apprise (Admite más de 50 servicios de notificación)",
pushbullet: "Pushbullet", pushbullet: "Pushbullet",
line: "Line Messenger", line: "Line Messenger",
mattermost: "Mattermost", mattermost: "Mattermost",

View file

@ -108,78 +108,78 @@ export default {
"Repeat Password": "비밀번호 재입력", "Repeat Password": "비밀번호 재입력",
respTime: "응답 시간 (ms)", respTime: "응답 시간 (ms)",
notAvailableShort: "N/A", notAvailableShort: "N/A",
Create: "Create", Create: "생성하기",
clearEventsMsg: "Are you sure want to delete all events for this monitor?", clearEventsMsg: "정말로 이 모니터링부터 모든 이벤트를 제거할까요?",
clearHeartbeatsMsg: "Are you sure want to delete all heartbeats for this monitor?", clearHeartbeatsMsg: "정말로 이 모니터링부터 모든 하트비트를 제거할까요?",
confirmClearStatisticsMsg: "Are you sure want to delete ALL statistics?", confirmClearStatisticsMsg: "정말로 모든 통계치를 제거할까요?",
"Clear Data": "Clear Data", "Clear Data": "데이터 클리어",
Events: "Events", Events: "이벤트",
Heartbeats: "Heartbeats", Heartbeats: "하트비트",
"Auto Get": "Auto Get", "Auto Get": "자동 Get",
enableDefaultNotificationDescription: "For every new monitor this notification will be enabled by default. You can still disable the notification separately for each monitor.", enableDefaultNotificationDescription: "모든 모니터링에 이 알림이 기본값으로 설정될거에요. 각각 모니터링에서 이 알림을 비활성화 할 수 있어요.",
"Default enabled": "Default enabled", "Default enabled": "기본값 ",
"Also apply to existing monitors": "Also apply to existing monitors", "Also apply to existing monitors": "기존 모니터링에도 적용되요.",
Export: "Export", Export: "내보내기",
Import: "Import", Import: "가져오기",
backupDescription: "You can backup all monitors and all notifications into a JSON file.", backupDescription: "모든 모니터링과 알림을 JSON 파일 형식에 저장할 수 있어요.",
backupDescription2: "PS: History and event data is not included.", backupDescription2: "(히스토리와 이벤트 데이터는 포함되어 있지 않아요.)",
backupDescription3: "Sensitive data such as notification tokens is included in the export file, please keep it carefully.", backupDescription3: "알림 토큰과 같은 보안 데이터가 내보내기 파일에 포함되어 있으므로 관리에 주의해주세요.",
alertNoFile: "Please select a file to import.", alertNoFile: "가져오기를 하기 위해 파일을 선택해주세요.",
alertWrongFileType: "Please select a JSON file.", alertWrongFileType: "JSON 파일을 선택해주세요.",
twoFAVerifyLabel: "Please type in your token to verify that 2FA is working", twoFAVerifyLabel: "2단계 인증이 정상적으로 등록됬는지 확인하기 위해 토큰을 입력해주세요.",
tokenValidSettingsMsg: "Token is valid! You can now save the 2FA settings.", tokenValidSettingsMsg: "토큰이 정상 값 이에요! 2단계 인증 설정을 저장할 수 있어요.",
confirmEnableTwoFAMsg: "Are you sure you want to enable 2FA?", confirmEnableTwoFAMsg: "정말로 2단계 인증을 활성화 할까요?",
confirmDisableTwoFAMsg: "Are you sure you want to disable 2FA?", confirmDisableTwoFAMsg: "정말로 2단계 인증을 비활성화 할까요?",
"Apply on all existing monitors": "Apply on all existing monitors", "Apply on all existing monitors": "기존 모니터링에 모두 적용하기",
"Verify Token": "Verify Token", "Verify Token": "토큰 검증",
"Setup 2FA": "Setup 2FA", "Setup 2FA": "2단계 인증 설정하기",
"Enable 2FA": "Enable 2FA", "Enable 2FA": "2단계 인증 활성화",
"Disable 2FA": "Disable 2FA", "Disable 2FA": "2단계 인증 비활성화",
"2FA Settings": "2FA Settings", "2FA Settings": "2단계 인증 설정",
"Two Factor Authentication": "Two Factor Authentication", "Two Factor Authentication": "2단계 인증",
Active: "Active", Active: "활성화",
Inactive: "Inactive", Inactive: "비활성화",
Token: "Token", Token: "토큰",
"Show URI": "Show URI", "Show URI": "URI 보기",
"Clear all statistics": "Clear all Statistics", "Clear all statistics": "모든 통계치 ",
retryCheckEverySecond: "Retry every {0} seconds.", retryCheckEverySecond: "{0} 초마다 재시도",
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.", importHandleDescription: "같은 이름을 가진 모든 모니터링 또는 알림들을 건너뛰기를 원하시면, '기존값 건너뛰기'를 눌러주세요. 기존 모니터링과 알림을 지우고 싶으면, '덮어쓰기'를 눌러주세요.",
confirmImportMsg: "Are you sure to import the backup? Please make sure you've selected the right import option.", confirmImportMsg: "정말로 백업을 가져올까요? 정확한 백업 설정인지 다시 확인해주세요.",
"Heartbeat Retry Interval": "Heartbeat Retry Interval", "Heartbeat Retry Interval": "하트비트 재시도 주기",
"Import Backup": "Import Backup", "Import Backup": "백업 가져오기",
"Export Backup": "Export Backup", "Export Backup": "백업 내보내기",
"Skip existing": "Skip existing", "Skip existing": "기존값 건너뛰기",
Overwrite: "Overwrite", Overwrite: "덮어쓰기",
Options: "Options", Options: "옵션",
"Keep both": "Keep both", "Keep both": "두개 모두 보존",
Tags: "Tags", Tags: "태그",
"Add New below or Select...": "Add New below or Select...", "Add New below or Select...": "아래 새롭게 추가 또는 선택...",
"Tag with this name already exist.": "Tag with this name already exist.", "Tag with this name already exist.": "같은 태그 이름이 이미 존재해요.",
"Tag with this value already exist.": "Tag with this value already exist.", "Tag with this value already exist.": "같은 값을 가진 태그가 이미 존재해요.",
color: "color", color: "색상",
"value (optional)": "value (optional)", "value (optional)": "값 (선택)",
Gray: "Gray", Gray: "회색",
Red: "Red", Red: "빨강색",
Orange: "Orange", Orange: "주황색",
Green: "Green", Green: "초록색",
Blue: "Blue", Blue: "파랑색",
Indigo: "Indigo", Indigo: "남색",
Purple: "Purple", Purple: "보라색",
Pink: "Pink", Pink: "핑크색",
"Search...": "Search...", "Search...": "검색...",
"Avg. Ping": "Avg. Ping", "Avg. Ping": "평균 핑",
"Avg. Response": "Avg. Response", "Avg. Response": "평균 응답",
"Entry Page": "Entry Page", "Entry Page": "첫 페이지",
statusPageNothing: "Nothing here, please add a group or a monitor.", statusPageNothing: "아무것도 없어요. 새로운 그룹 또는 모니터링을 추가해주세요.",
"No Services": "No Services", "No Services": "서비스 없음",
"All Systems Operational": "All Systems Operational", "All Systems Operational": "모든 시스템 정상",
"Partially Degraded Service": "Partially Degraded Service", "Partially Degraded Service": "일부 시스템 비정상",
"Degraded Service": "Degraded Service", "Degraded Service": "모든 시스템 비정상",
"Add Group": "Add Group", "Add Group": "그룹 추가",
"Add a monitor": "Add a monitor", "Add a monitor": "모니터링 추가r",
"Edit Status Page": "Edit Status Page", "Edit Status Page": "상태 페이지 수정",
"Go to Dashboard": "Go to Dashboard", "Go to Dashboard": "대쉬보드로 가기",
"Status Page": "Status Page", "Status Page": "상태 페이지",
telegram: "Telegram", telegram: "Telegram",
webhook: "Webhook", webhook: "Webhook",
smtp: "Email (SMTP)", smtp: "Email (SMTP)",
@ -194,7 +194,7 @@ export default {
octopush: "Octopush", octopush: "Octopush",
promosms: "PromoSMS", promosms: "PromoSMS",
lunasea: "LunaSea", lunasea: "LunaSea",
apprise: "Apprise (Support 50+ Notification services)", apprise: "Apprise (50개 이상 알림 서비스 )",
pushbullet: "Pushbullet", pushbullet: "Pushbullet",
line: "Line Messenger", line: "Line Messenger",
mattermost: "Mattermost", mattermost: "Mattermost",

View file

@ -83,6 +83,7 @@
</div> </div>
</div> </div>
<!-- Cert Info Box -->
<transition name="slide-fade" appear> <transition name="slide-fade" appear>
<div v-if="showCertInfoBox" class="shadow-box big-padding text-center"> <div v-if="showCertInfoBox" class="shadow-box big-padding text-center">
<div class="row"> <div class="row">
@ -93,6 +94,7 @@
</div> </div>
</transition> </transition>
<!-- Ping Chart -->
<div v-if="showPingChartBox" class="shadow-box big-padding text-center ping-chart-wrapper"> <div v-if="showPingChartBox" class="shadow-box big-padding text-center ping-chart-wrapper">
<div class="row"> <div class="row">
<div class="col"> <div class="col">
@ -270,7 +272,10 @@ export default {
}, },
tlsInfo() { tlsInfo() {
if (this.$root.tlsInfoList[this.monitor.id]) { // Add: this.$root.tlsInfoList[this.monitor.id].certInfo
// Fix: TypeError: Cannot read properties of undefined (reading 'validTo')
// Reason: TLS Info object format is changed in 1.8.0, if for some reason, it cannot connect to the site after update to 1.8.0, the object is still in the old format.
if (this.$root.tlsInfoList[this.monitor.id] && this.$root.tlsInfoList[this.monitor.id].certInfo) {
return this.$root.tlsInfoList[this.monitor.id]; return this.$root.tlsInfoList[this.monitor.id];
} }