From 4e94cb9aadb7637de51e60f7070741f793c87424 Mon Sep 17 00:00:00 2001 From: LouisLam Date: Mon, 11 Oct 2021 00:51:18 +0800 Subject: [PATCH 01/30] fix upload dist path --- dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dockerfile b/dockerfile index 38d585ca7..97655748e 100644 --- a/dockerfile +++ b/dockerfile @@ -47,5 +47,5 @@ RUN chmod +x /app/extra/upload-github-release-asset.sh # Dist only RUN cd /app && tar -zcvf $DIST dist -RUN /app/extra/upload-github-release-asset.sh github_api_token=$GITHUB_TOKEN owner=louislam repo=uptime-kuma tag=$VERSION filename=$DIST +RUN /app/extra/upload-github-release-asset.sh github_api_token=$GITHUB_TOKEN owner=louislam repo=uptime-kuma tag=$VERSION filename=/app/$DIST From ecc25ba59695888a531f964dff39560b988c9ddc Mon Sep 17 00:00:00 2001 From: RisedSky Date: Sun, 10 Oct 2021 19:02:35 +0200 Subject: [PATCH 02/30] Update fr-FR.js Fixed wrong string Also, "Primary Base URL" is missing from english file --- src/languages/fr-FR.js | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/src/languages/fr-FR.js b/src/languages/fr-FR.js index 6d65f375c..0111d4b89 100644 --- a/src/languages/fr-FR.js +++ b/src/languages/fr-FR.js @@ -130,7 +130,7 @@ export default { "Clear Data": "Effacer les données", Events: "Evénements", Heartbeats: "Vérfications", - "Auto Get": "Auto Get", + "Auto Get": "Récuperer automatiquement", backupDescription: "Vous pouvez sauvegarder toutes les sondes et toutes les notifications dans un fichier JSON.", backupDescription2: "PS: Les données relatives à l'historique et aux événements ne sont pas incluses.", backupDescription3: "Les données sensibles telles que les jetons de notification sont incluses dans le fichier d'exportation, veuillez les conserver soigneusement.", @@ -152,11 +152,11 @@ export default { Token: "Jeton", "Show URI": "Afficher l'URI", Tags: "Étiquettes", - "Add New below or Select...": "Ajouter nouveau ci-dessous ou sélectionner...", + "Add New below or Select...": "Ajoutez-en un en dessous ou sélectionnez-le ici...", "Tag with this name already exist.": "Une étiquette portant ce nom existe déjà.", "Tag with this value already exist.": "Une étiquette avec cette valeur existe déjà.", - color: "couleur", - "value (optional)": "valeur (facultatif)", + color: "Couleur", + "value (optional)": "Valeur (facultatif)", Gray: "Gris", Red: "Rouge", Orange: "Orange", @@ -194,8 +194,8 @@ export default { "webhook": "Webhook", "Post URL": "Post URL", "Content Type": "Content Type", - webhookJsonDesc: "{0} est bon pour tous les serveurs HTTP modernes comme express.js", - webhookFormDataDesc: "{multipart} est bon pour du PHP, vous avez juste besoin de mettre le json via {decodeFunction}", + webhookJsonDesc: "{0} est bien/bon pour tous les serveurs HTTP modernes comme express.js", + webhookFormDataDesc: "{multipart} est bien/bon pour du PHP, vous avez juste besoin de mettre le json via/depuis {decodeFunction}", "smtp": "Email (SMTP)", secureOptionNone: "Aucun / STARTTLS (25, 587)", secureOptionTLS: "TLS (465)", @@ -228,7 +228,7 @@ export default { "Channel Name": "Nom du salon", "Uptime Kuma URL": "Uptime Kuma URL", aboutWebhooks: "Plus d'informations sur les Webhooks ici: {0}", - aboutChannelName: "Mettez le nom du salon dans {0} dans Channel Name si vous voulez bypass le salon Webhook. Ex: #autre-salon", + aboutChannelName: "Mettez le nom du salon dans {0} dans 'Channel Name' si vous voulez bypass le salon Webhook. Ex: #autre-salon", aboutKumaURL: "Si vous laissez l'URL d'Uptime Kuma vierge, elle redirigera vers la page du projet GitHub.", emojiCheatSheet: "Emoji cheat sheet: {0}", "rocket.chat": "Rocket.chat", @@ -251,7 +251,7 @@ export default { "SMS Type": "SMS Type", octopushTypePremium: "Premium (Rapide - recommandé pour les alertes)", octopushTypeLowCost: "A bas prix (Lent, bloqué de temps en temps par l'opérateur)", - "Check octopush prices": "Vérifiez les prix d'octopush {0}.", + "Check octopush prices": "Vérifier les prix d'octopush {0}.", octopushPhoneNumber: "Numéro de téléphone (format intérn., ex : +33612345678) ", octopushSMSSender: "Nom de l'envoyer : 3-11 caractères alphanumériques avec espace (a-zA-Z0-9)", "LunaSea Device ID": "LunaSea Device ID", @@ -274,7 +274,7 @@ export default { aboutIconURL: "Vous pouvez mettre un lien vers l'image dans \"Icon URL\" pour remplacer l'image de profil par défaut. Ne sera pas utilisé si Icon Emoji est défini.", aboutMattermostChannelName: "Vous pouvez remplacer le salon par défaut que le Webhook utilise en mettant le nom du salon dans le champ \"Channel Name\". Vous aurez besoin de l'activer depuis les paramètres de Mattermost. Ex: #autre-salon", "matrix": "Matrix", - promosmsTypeEco: "SMS ECO - Pas chère mais lent et souvent surchargé. Limité uniquement aux déstinataires Polonais.", + promosmsTypeEco: "SMS ECO - Pas cher mais lent et souvent surchargé. Limité uniquement aux déstinataires Polonais.", promosmsTypeFlash: "SMS FLASH - Le message sera automatiquement affiché sur l'appareil du destinataire. Limité uniquement aux déstinataires Polonais.", promosmsTypeFull: "SMS FULL - Version Premium des SMS, Vous pouvez mettre le nom de l'expéditeur (Vous devez vous enregistrer avant). Fiable pour les alertes.", promosmsTypeSpeed: "SMS SPEED - La plus haute des priorités dans le système. Très rapide et fiable mais cher (environ le double du prix d'un SMS FULL).", From 503d1f0a91b95767b0aeab15aae704bf7f487ed9 Mon Sep 17 00:00:00 2001 From: Andreas Brett Date: Sun, 10 Oct 2021 23:20:56 +0200 Subject: [PATCH 03/30] translation fixes --- src/languages/de-DE.js | 44 +++++++++++++++++++++--------------------- 1 file changed, 22 insertions(+), 22 deletions(-) diff --git a/src/languages/de-DE.js b/src/languages/de-DE.js index bf2dff8c6..b8a03b2ee 100644 --- a/src/languages/de-DE.js +++ b/src/languages/de-DE.js @@ -8,7 +8,7 @@ export default { Theme: "Thema", General: "Allgemein", Version: "Version", - "Check Update On GitHub": "Überprüfen von Updates auf Github", + "Check Update On GitHub": "Auf Github nach Updates suchen", List: "Liste", Add: "Hinzufügen", "Add New Monitor": "Neuer Monitor", @@ -39,20 +39,20 @@ export default { Response: "Antwortzeit", Ping: "Ping", "Monitor Type": "Monitor Typ", - Keyword: "Schlüsselwort", + Keyword: "Suchwort", "Friendly Name": "Anzeigename", URL: "URL", Hostname: "Hostname", Port: "Port", - "Heartbeat Interval": "Taktintervall", + "Heartbeat Interval": "Prüfintervall", Retries: "Wiederholungen", retriesDescription: "Maximale Anzahl von Wiederholungen, bevor der Dienst als inaktiv markiert und eine Benachrichtigung gesendet wird.", Advanced: "Erweitert", ignoreTLSError: "Ignoriere TLS/SSL Fehler von Webseiten", - "Upside Down Mode": "Umgedrehter Modus", - upsideDownModeDescription: "Drehe den Modus um, ist der Dienst erreichbar, wird er als inaktiv angezeigt.", + "Upside Down Mode": "Invertierter Modus", + upsideDownModeDescription: "Im invertierten Modus wird der Dienst als inaktiv angezeigt, wenn er erreichbar ist.", "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. Auf 0 setzen um Weiterleitungen zu deaktivieren.", "Accepted Status Codes": "Erlaubte HTTP-Statuscodes", acceptedStatusCodesDescription: "Wähle die Statuscodes aus, welche trotzdem als erfolgreich gewertet werden sollen.", Save: "Speichern", @@ -62,20 +62,20 @@ export default { Light: "Hell", Dark: "Dunkel", Auto: "Auto", - "Theme - Heartbeat Bar": "Thema - Taktleiste", + "Theme - Heartbeat Bar": "Thema - Zeitleiste", Normal: "Normal", Bottom: "Unten", None: "Keine", Timezone: "Zeitzone", - "Search Engine Visibility": "Suchmaschinensichtbarkeit", + "Search Engine Visibility": "Sichtbarkeit für Suchmaschinen", "Allow indexing": "Indizierung zulassen", "Discourage search engines from indexing site": "Halte Suchmaschinen von der Indexierung der Seite ab", "Change Password": "Passwort ändern", "Current Password": "Derzeitiges Passwort", "New Password": "Neues Passwort", - "Repeat New Password": "Wiederhole neues Passwort", + "Repeat New Password": "Neues Passwort wiederholen", passwordNotMatchMsg: "Passwörter stimmen nicht überein. ", - "Update Password": "Ändere Passwort", + "Update Password": "Passwort aktualisieren", "Disable Auth": "Authentifizierung deaktivieren", "Enable Auth": "Authentifizierung aktivieren", Logout: "Ausloggen", @@ -95,7 +95,7 @@ export default { Email: "E-Mail", Test: "Test", "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: "Ein Suchwort in der HTML oder JSON Ausgabe finden. Bitte beachte: es wird zwischen Groß-/Kleinschreibung unterschieden.", 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?", resoverserverDescription: "Cloudflare ist als der Standardserver festgelegt, dieser kann jederzeit geändern werden.", @@ -133,10 +133,10 @@ export default { Options: "Optionen", confirmImportMsg: "Möchtest du das Backup wirklich importieren? Bitte stelle sicher, dass die richtige Import Option ausgewählt ist.", "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, dass 2FA funktioniert", "Verify Token": "Token verifizieren", - "Setup 2FA": "2FA Einrichten", - "Enable 2FA": "2FA Aktivieren", + "Setup 2FA": "2FA einrichten", + "Enable 2FA": "2FA aktivieren", "Disable 2FA": "2FA deaktivieren", "2FA Settings": "2FA Einstellungen", confirmEnableTwoFAMsg: "Bist du sicher, dass du 2FA aktivieren möchtest?", @@ -148,7 +148,7 @@ export default { Token: "Token", "Show URI": "URI Anzeigen", Tags: "Tags", - "Add New below or Select...": "Füge neuen hinzu oder wähle aus...", + "Add New below or Select...": "Bestehenden Tag auswählen oder neuen hinzufügen...", "Tag with this name already exist.": "Ein Tag mit dem Namen existiert bereits.", "Tag with this value already exist.": "Ein Tag mit dem Wert existiert bereits.", color: "Farbe", @@ -164,19 +164,19 @@ export default { "Search...": "Suchen...", "Heartbeat Retry Interval": "Heartbeat-Wiederholungsintervall", retryCheckEverySecond: "Versuche alle {0} Sekunden", - "Import Backup": "Import Backup", - "Export Backup": "Export Backup", - "Avg. Ping": "Durchsch. Ping", - "Avg. Response": "Durchsch. Antwort", + "Import Backup": "Backup importieren", + "Export Backup": "Backup exportieren", + "Avg. Ping": "Durchschn. Ping", + "Avg. Response": "Durchschn. Antwort", "Entry Page": "Einstiegsseite", - statusPageNothing: "Nichts ist hier, bitte füge eine Gruppe oder Monitor hinzu.", + statusPageNothing: "Noch ist hier nichts. Bitte füge eine Gruppe oder einen Monitor hinzu.", "No Services": "Keine Dienste", - "All Systems Operational": "Alle Systeme Betriebsbereit", + "All Systems Operational": "Alle Systeme betriebsbereit", "Partially Degraded Service": "Teilweise beeinträchtigter Dienst", "Degraded Service": "Eingeschränkter Dienst", "Add Group": "Gruppe hinzufügen", "Add a monitor": "Monitor hinzufügen", - "Edit Status Page": "Bearbeite Statusseite", + "Edit Status Page": "Bearbeite Status Seite", "Go to Dashboard": "Gehe zum Dashboard", "Status Page": "Status Seite", telegram: "Telegram", From a433de74e626f4894d78454db5f74d83e00cec0c Mon Sep 17 00:00:00 2001 From: Atlochowski Date: Mon, 11 Oct 2021 09:24:45 +0200 Subject: [PATCH 04/30] Update pl.js small fix --- src/languages/pl.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/languages/pl.js b/src/languages/pl.js index f6a32dc67..fe67e7563 100644 --- a/src/languages/pl.js +++ b/src/languages/pl.js @@ -43,7 +43,7 @@ export default { Down: "Offline", Pending: "Oczekuje", Unknown: "Nieznane", - Pause: "Wstrzymane", + Pause: "Wstrzymaj", Name: "Nazwa", Status: "Status", DateTime: "Data i godzina", From 6d9b71c0547788cbac1b868b249cc02508efb1b9 Mon Sep 17 00:00:00 2001 From: wuwenjing Date: Mon, 11 Oct 2021 17:20:09 +0800 Subject: [PATCH 05/30] Add Feishu notification --- server/notification-providers/feishu.js | 87 +++++++++++++++++++++++++ server/notification.js | 2 + src/components/notifications/Feishu.vue | 15 +++++ src/components/notifications/index.js | 2 + src/languages/en.js | 1 + src/languages/zh-CN.js | 1 + 6 files changed, 108 insertions(+) create mode 100644 server/notification-providers/feishu.js create mode 100644 src/components/notifications/Feishu.vue diff --git a/server/notification-providers/feishu.js b/server/notification-providers/feishu.js new file mode 100644 index 000000000..7648f629b --- /dev/null +++ b/server/notification-providers/feishu.js @@ -0,0 +1,87 @@ +const NotificationProvider = require("./notification-provider"); +const axios = require("axios"); +const { DOWN, UP } = require("../../src/util"); + +class Feishu extends NotificationProvider { + name = "Feishu"; + + async send(notification, msg, monitorJSON = null, heartbeatJSON = null) { + let okMsg = "Sent Successfully."; + let feishuWebHookUrl = notification.feishuWebHookUrl; + + console.log(heartbeatJSON); + try { + if (heartbeatJSON == null) { + let testdata = { + msg_type: "text", + content: { + text: "Testing Successful.", + }, + }; + var t = await axios.post(feishuWebHookUrl, testdata); + console.log(t); + return okMsg; + } + + if (heartbeatJSON["status"] == DOWN) { + let downdata = { + msg_type: "post", + content: { + post: { + zh_cn: { + title: + "UptimeKuma Alert: " + monitorJSON["name"], + content: [ + [ + { + tag: "text", + text: + "[Down] " + + heartbeatJSON["msg"] + + "\nTime (UTC): " + + heartbeatJSON["time"], + }, + ], + ], + }, + }, + }, + }; + await axios.post(feishuWebHookUrl, downdata); + return okMsg; + } + + if (heartbeatJSON["status"] == UP) { + let updata = { + msg_type: "post", + content: { + post: { + zh_cn: { + title: + "UptimeKuma Alert: " + monitorJSON["name"], + content: [ + [ + { + tag: "text", + text: + "[Up] " + + heartbeatJSON["msg"] + + "\nTime (UTC): " + + heartbeatJSON["time"], + }, + ], + ], + }, + }, + }, + }; + await axios.post(feishuWebHookUrl, updata); + return okMsg; + } + } catch (error) { + this.throwGeneralAxiosError(error); + } + } +} + +module.exports = Feishu; diff --git a/server/notification.js b/server/notification.js index 5b104bf8a..41a0063c3 100644 --- a/server/notification.js +++ b/server/notification.js @@ -18,6 +18,7 @@ const SMTP = require("./notification-providers/smtp"); const Teams = require("./notification-providers/teams"); const Telegram = require("./notification-providers/telegram"); const Webhook = require("./notification-providers/webhook"); +const Feishu = require("./notification-providers/feishu"); class Notification { @@ -35,6 +36,7 @@ class Notification { new Gotify(), new Line(), new LunaSea(), + new Feishu(), new Mattermost(), new Matrix(), new Octopush(), diff --git a/src/components/notifications/Feishu.vue b/src/components/notifications/Feishu.vue new file mode 100644 index 000000000..18dc26422 --- /dev/null +++ b/src/components/notifications/Feishu.vue @@ -0,0 +1,15 @@ + diff --git a/src/components/notifications/index.js b/src/components/notifications/index.js index 7d70eea17..140c1180c 100644 --- a/src/components/notifications/index.js +++ b/src/components/notifications/index.js @@ -12,6 +12,7 @@ import Pushy from "./Pushy.vue"; import Octopush from "./Octopush.vue"; import PromoSMS from "./PromoSMS.vue"; import LunaSea from "./LunaSea.vue"; +import Feishu from "./Feishu.vue"; import Apprise from "./Apprise.vue"; import Pushbullet from "./Pushbullet.vue"; import Line from "./Line.vue"; @@ -38,6 +39,7 @@ const NotificationFormList = { "octopush": Octopush, "promosms": PromoSMS, "lunasea": LunaSea, + "Feishu": Feishu, "apprise": Apprise, "pushbullet": Pushbullet, "line": Line, diff --git a/src/languages/en.js b/src/languages/en.js index 119b558e0..d93714f66 100644 --- a/src/languages/en.js +++ b/src/languages/en.js @@ -280,5 +280,6 @@ export default { 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", + "Feishu WebHookUrl": "Feishu WebHookUrl", // End notification form }; diff --git a/src/languages/zh-CN.js b/src/languages/zh-CN.js index a7f81950a..1028d577e 100644 --- a/src/languages/zh-CN.js +++ b/src/languages/zh-CN.js @@ -198,4 +198,5 @@ export default { pushbullet: "Pushbullet", line: "Line Messenger", mattermost: "Mattermost", + "Feishu WebHookUrl": "飞书 WebHook 地址", }; From ce2df137e682310a564395db0c6f233eea53d14c Mon Sep 17 00:00:00 2001 From: wuwenjing Date: Mon, 11 Oct 2021 17:53:13 +0800 Subject: [PATCH 06/30] change text to using variable `msg` --- server/notification-providers/feishu.js | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/server/notification-providers/feishu.js b/server/notification-providers/feishu.js index 7648f629b..d8db2b1d6 100644 --- a/server/notification-providers/feishu.js +++ b/server/notification-providers/feishu.js @@ -9,17 +9,15 @@ class Feishu extends NotificationProvider { let okMsg = "Sent Successfully."; let feishuWebHookUrl = notification.feishuWebHookUrl; - console.log(heartbeatJSON); try { if (heartbeatJSON == null) { let testdata = { msg_type: "text", content: { - text: "Testing Successful.", + text: msg, }, }; - var t = await axios.post(feishuWebHookUrl, testdata); - console.log(t); + await axios.post(feishuWebHookUrl, testdata); return okMsg; } From 5b19e3f02592519399ebd81fadc264cb0d344d14 Mon Sep 17 00:00:00 2001 From: Louis Lam Date: Mon, 11 Oct 2021 19:40:51 +0800 Subject: [PATCH 07/30] Update README.md --- README.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 75ee8b237..920998a33 100644 --- a/README.md +++ b/README.md @@ -23,11 +23,14 @@ VPS is sponsored by Uptime Kuma sponsors on [Open Collective](https://opencollec ## ⭐ Features -* Monitoring uptime for HTTP(s) / TCP / Ping / DNS Record. +* Monitoring uptime for HTTP(s) / TCP / Ping / DNS Record / Push. * Fancy, Reactive, Fast UI/UX. * Notifications via Telegram, Discord, Gotify, Slack, Pushover, Email (SMTP), and [70+ notification services, click here for the full list](https://github.com/louislam/uptime-kuma/issues/284). * 20 seconds interval. * [Multi Languages](https://github.com/louislam/uptime-kuma/tree/master/src/languages) +* Simple Status Page +* Ping Chart +* Certicate Info ## 🔧 How to Install From 97af09fd50d6f5e3eee73cf1fb8b553c0c9ba4b1 Mon Sep 17 00:00:00 2001 From: Louis Lam Date: Mon, 11 Oct 2021 19:41:56 +0800 Subject: [PATCH 08/30] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 920998a33..11f7fbd5e 100644 --- a/README.md +++ b/README.md @@ -25,7 +25,7 @@ VPS is sponsored by Uptime Kuma sponsors on [Open Collective](https://opencollec * Monitoring uptime for HTTP(s) / TCP / Ping / DNS Record / Push. * Fancy, Reactive, Fast UI/UX. -* Notifications via Telegram, Discord, Gotify, Slack, Pushover, Email (SMTP), and [70+ notification services, click here for the full list](https://github.com/louislam/uptime-kuma/issues/284). +* Notifications via Telegram, Discord, Gotify, Slack, Pushover, Email (SMTP), and [70+ notification services, click here for the full list](https://github.com/louislam/uptime-kuma/tree/master/src/components/notifications). * 20 seconds interval. * [Multi Languages](https://github.com/louislam/uptime-kuma/tree/master/src/languages) * Simple Status Page From ebf0671fef6fb39c4a26deac95daa5776174c5e3 Mon Sep 17 00:00:00 2001 From: Atlochowski Date: Mon, 11 Oct 2021 13:45:25 +0200 Subject: [PATCH 09/30] Update pl.js --- src/languages/pl.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/languages/pl.js b/src/languages/pl.js index fe67e7563..7a438a592 100644 --- a/src/languages/pl.js +++ b/src/languages/pl.js @@ -10,7 +10,7 @@ export default { passwordNotMatchMsg: "Powtórzone hasło nie pasuje.", notificationDescription: "Proszę przypisać powiadomienie do monitora(ów), aby działało.", keywordDescription: "Wyszukiwanie słów kluczowych w zwykłym html lub odpowiedzi JSON. Wielkość liter ma znaczenie.", - pauseDashboardHome: "Wstrzymaj", + pauseDashboardHome: "Wstrzymane", deleteMonitorMsg: "Czy na pewno chcesz usunąć ten monitor?", deleteNotificationMsg: "Czy na pewno chcesz usunąć to powiadomienie dla wszystkich monitorów?", resoverserverDescription: "Cloudflare jest domyślnym serwerem, możesz zmienić serwer resolver w każdej chwili.", From d769c4426c6ff8095c34f191c292f064513c11e8 Mon Sep 17 00:00:00 2001 From: Slayer <51095261+GhostSlayer@users.noreply.github.com> Date: Mon, 11 Oct 2021 15:22:52 +0300 Subject: [PATCH 10/30] Create PM2 Config file I don't know if this is a good idea, but users that prefer to use PM2 instead, they can run `pm2 start` instead of `pm2 start server/server.js --name uptime-kuma` with this configuration --- ecosystem.config.js | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 ecosystem.config.js diff --git a/ecosystem.config.js b/ecosystem.config.js new file mode 100644 index 000000000..5f4034007 --- /dev/null +++ b/ecosystem.config.js @@ -0,0 +1,6 @@ +module.exports = { + apps: [{ + name: "uptime-kuma", + script: "./server/server.js", + }] +} From 69ffee55ddbc1c81cf98cb6019a7280af98466c1 Mon Sep 17 00:00:00 2001 From: Atlochowski Date: Mon, 11 Oct 2021 14:33:00 +0200 Subject: [PATCH 11/30] Update pl.js --- src/languages/pl.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/languages/pl.js b/src/languages/pl.js index 7a438a592..7202f540b 100644 --- a/src/languages/pl.js +++ b/src/languages/pl.js @@ -100,7 +100,7 @@ export default { Logout: "Wyloguj", Leave: "Zostaw", "I understand, please disable": "Rozumiem, proszę wyłączyć", - Confirm: "Potiwerdź", + Confirm: "Potwierdź", Yes: "Tak", No: "Nie", Username: "Nazwa użytkownika", From 69c623ac2b65f54a30a37e242ff237e1a1d18029 Mon Sep 17 00:00:00 2001 From: xJoker Date: Mon, 11 Oct 2021 20:38:19 +0800 Subject: [PATCH 12/30] Update server/notification-providers/feishu.js Co-authored-by: Adam Stachowicz --- server/notification-providers/feishu.js | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/server/notification-providers/feishu.js b/server/notification-providers/feishu.js index d8db2b1d6..63fde9ec3 100644 --- a/server/notification-providers/feishu.js +++ b/server/notification-providers/feishu.js @@ -27,8 +27,7 @@ class Feishu extends NotificationProvider { content: { post: { zh_cn: { - title: - "UptimeKuma Alert: " + monitorJSON["name"], + title: "UptimeKuma Alert: " + monitorJSON["name"], content: [ [ { From 1bc77a06e57df6ad1320afe533aa5dc7dc0d4512 Mon Sep 17 00:00:00 2001 From: xJoker Date: Mon, 11 Oct 2021 20:38:32 +0800 Subject: [PATCH 13/30] Update server/notification-providers/feishu.js Co-authored-by: Adam Stachowicz --- server/notification-providers/feishu.js | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/server/notification-providers/feishu.js b/server/notification-providers/feishu.js index 63fde9ec3..a3e340301 100644 --- a/server/notification-providers/feishu.js +++ b/server/notification-providers/feishu.js @@ -54,8 +54,7 @@ class Feishu extends NotificationProvider { content: { post: { zh_cn: { - title: - "UptimeKuma Alert: " + monitorJSON["name"], + title: "UptimeKuma Alert: " + monitorJSON["name"], content: [ [ { From 9c058054b9ea73eefb7e7f2d0c2ec0cd84cdf4da Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thomas=20L=C3=89VEIL?= Date: Mon, 11 Oct 2021 09:12:08 +0200 Subject: [PATCH 14/30] [i18n] minor update to french translations --- src/languages/fr-FR.js | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/src/languages/fr-FR.js b/src/languages/fr-FR.js index 0111d4b89..bcba1f869 100644 --- a/src/languages/fr-FR.js +++ b/src/languages/fr-FR.js @@ -15,15 +15,15 @@ export default { deleteNotificationMsg: "Êtes-vous sûr de vouloir supprimer ce type de notifications ? Une fois désactivée, les services qui l'utilisent ne pourront plus envoyer de notifications.", resoverserverDescription: "Le DNS de cloudflare est utilisé par défaut, mais vous pouvez le changer si vous le souhaitez.", rrtypeDescription: "Veuillez séléctionner un type d'enregistrement DNS", - pauseMonitorMsg: "Etes vous sur de vouloir mettre en pause cette sonde ?", + 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 tous les vérifications pour cette sonde ?", confirmClearStatisticsMsg: "Êtes-vous sûr de vouloir supprimer tous les statistiques ?", - importHandleDescription: "Choisissez 'Ignorer l'existant' si vous voulez ignorer chaque sonde ou notification portant le même nom. L'option 'Écraser' supprime tous les sondes et notifications existantes.", - confirmImportMsg: "Êtes-vous sûr d'importer la sauvegarde ? Veuillez vous assurer que vous avez sélectionné la bonne option d'importation.", + 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.", twoFAVerifyLabel: "Veuillez saisir votre jeton pour vérifier que le système 2FA fonctionne.", - tokenValidSettingsMsg: "Le jeton est valide ! Vous pouvez maintenant sauvegarder les paramètres 2FA.", + tokenValidSettingsMsg: "Le jeton est valide ; Vous pouvez maintenant sauvegarder les paramètres 2FA.", confirmEnableTwoFAMsg: "Êtes-vous sûr de vouloir activer le 2FA ?", confirmDisableTwoFAMsg: "Êtes-vous sûr de vouloir désactiver le 2FA ?", Settings: "Paramètres", @@ -136,7 +136,7 @@ export default { backupDescription3: "Les données sensibles telles que les jetons de notification sont incluses dans le fichier d'exportation, veuillez les conserver soigneusement.", alertNoFile: "Veuillez sélectionner un fichier à importer.", alertWrongFileType: "Veuillez sélectionner un fichier JSON à importer.", - "Clear all statistics": "Effacer touutes les statistiques", + "Clear all statistics": "Effacer toutes les statistiques", "Skip existing": "Sauter l'existant", Overwrite: "Ecraser", Options: "Options", @@ -185,10 +185,10 @@ export default { "Required": "Requis", "telegram": "Telegram", "Bot Token": "Bot Token", - "You can get a token from": "Vous pouvez avoir un token depuis", + "You can get a token from": "Vous pouvez obtenir un token depuis", "Chat ID": "Chat ID", supportTelegramChatID: "Supporte les messages privés / en groupe / l'ID du salon", - wayToGetTelegramChatID: "Vous pouvez obtenir l'ID du chat en envoyant un message avec le bot puis en récupérant l'URL pour voir l'ID du salon:", + wayToGetTelegramChatID: "Vous pouvez obtenir l'ID du chat en envoyant un message avec le bot puis en récupérant l'URL pour voir l'ID du salon :", "YOUR BOT TOKEN HERE": "VOTRE TOKEN BOT ICI", chatIDNotFound: "ID du salon introuvable, envoyez un message via le bot avant", "webhook": "Webhook", @@ -217,8 +217,8 @@ export default { "Number": "Numéro", "Recipients": "Destinataires", needSignalAPI: "Vous avez besoin d'un client Signal avec l'API REST.", - wayToCheckSignalURL: "Vous pouvez regarder l'URL sur comment le mettre en place:", - signalImportant: "IMPORTANT: Vous ne pouvez pas mixer les groupes et les numéros en destinataires!", + wayToCheckSignalURL: "Vous pouvez regarder l'URL sur comment le mettre en place :", + signalImportant: "IMPORTANT: Vous ne pouvez pas mixer les groupes et les numéros en destinataires !", "gotify": "Gotify", "Application Token": "Application Token", "Server URL": "Server URL", @@ -228,9 +228,9 @@ export default { "Channel Name": "Nom du salon", "Uptime Kuma URL": "Uptime Kuma URL", aboutWebhooks: "Plus d'informations sur les Webhooks ici: {0}", - aboutChannelName: "Mettez le nom du salon dans {0} dans 'Channel Name' si vous voulez bypass le salon Webhook. Ex: #autre-salon", + aboutChannelName: "Mettez le nom du salon dans {0} dans 'Channel Name' si vous voulez bypass le salon Webhook. Ex : #autre-salon", aboutKumaURL: "Si vous laissez l'URL d'Uptime Kuma vierge, elle redirigera vers la page du projet GitHub.", - emojiCheatSheet: "Emoji cheat sheet: {0}", + emojiCheatSheet: "Emoji cheat sheet : {0}", "rocket.chat": "Rocket.chat", pushover: "Pushover", pushy: "Pushy", @@ -256,9 +256,9 @@ export default { octopushSMSSender: "Nom de l'envoyer : 3-11 caractères alphanumériques avec espace (a-zA-Z0-9)", "LunaSea Device ID": "LunaSea Device ID", "Apprise URL": "Apprise URL", - "Example:": "Exemple: {0}", - "Read more:": "En savoir plus: {0}", - "Status:": "Status: {0}", + "Example:": "Exemple : {0}", + "Read more:": "En savoir plus : {0}", + "Status:": "Status : {0}", "Read more": "En savoir plus", appriseInstalled: "Apprise est intallé.", appriseNotInstalled: "Apprise n'est pas intallé. {0}", @@ -272,7 +272,7 @@ export default { wayToGetLineChannelToken: "Premièrement accéder à {0}, créez un Provider et un Salon (Messaging API), puis vous pourrez avoir le Token d'accès du salon ainsi que l'Identifiant utilisateur depuis le même menu.", "Icon URL": "Icon URL", aboutIconURL: "Vous pouvez mettre un lien vers l'image dans \"Icon URL\" pour remplacer l'image de profil par défaut. Ne sera pas utilisé si Icon Emoji est défini.", - aboutMattermostChannelName: "Vous pouvez remplacer le salon par défaut que le Webhook utilise en mettant le nom du salon dans le champ \"Channel Name\". Vous aurez besoin de l'activer depuis les paramètres de Mattermost. Ex: #autre-salon", + aboutMattermostChannelName: "Vous pouvez remplacer le salon par défaut que le Webhook utilise en mettant le nom du salon dans le champ \"Channel Name\". Vous aurez besoin de l'activer depuis les paramètres de Mattermost. Ex : #autre-salon", "matrix": "Matrix", promosmsTypeEco: "SMS ECO - Pas cher mais lent et souvent surchargé. Limité uniquement aux déstinataires Polonais.", promosmsTypeFlash: "SMS FLASH - Le message sera automatiquement affiché sur l'appareil du destinataire. Limité uniquement aux déstinataires Polonais.", From 18c5a16783fa9695c0703c0874f2b03de6498b83 Mon Sep 17 00:00:00 2001 From: Louis Lam Date: Tue, 12 Oct 2021 11:15:02 +0800 Subject: [PATCH 15/30] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 11f7fbd5e..52bb895f2 100644 --- a/README.md +++ b/README.md @@ -30,7 +30,7 @@ VPS is sponsored by Uptime Kuma sponsors on [Open Collective](https://opencollec * [Multi Languages](https://github.com/louislam/uptime-kuma/tree/master/src/languages) * Simple Status Page * Ping Chart -* Certicate Info +* Certificate Info ## 🔧 How to Install From 5269dcec601d3b1bdf2f4738f6ee9f69e6e75804 Mon Sep 17 00:00:00 2001 From: Tomas Rohrer Date: Tue, 12 Oct 2021 10:21:03 +0200 Subject: [PATCH 16/30] Fix length In fact, it is 10 min demo :) --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 52bb895f2..ef92cf47e 100644 --- a/README.md +++ b/README.md @@ -17,7 +17,7 @@ Try it! https://demo.uptime.kuma.pet -It is a 5 minutes live demo, all data will be deleted after that. The server is located at Tokyo, if you live far away from here, it may affact your experience. I suggest that you should install to try it. +It is a 10 minutes live demo, all data will be deleted after that. The server is located at Tokyo, if you live far away from here, it may affact your experience. I suggest that you should install to try it. VPS is sponsored by Uptime Kuma sponsors on [Open Collective](https://opencollective.com/uptime-kuma)! Thank you so much! From efc78acfeb86f8da259700c5269136a8fde22729 Mon Sep 17 00:00:00 2001 From: Kyungyoon Kim Date: Tue, 12 Oct 2021 18:17:13 +0900 Subject: [PATCH 17/30] Update ko-KR.js --- src/languages/ko-KR.js | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/src/languages/ko-KR.js b/src/languages/ko-KR.js index d04ff050a..bf73416f4 100644 --- a/src/languages/ko-KR.js +++ b/src/languages/ko-KR.js @@ -9,11 +9,11 @@ export default { acceptedStatusCodesDescription: "응답 성공으로 간주할 상태 코드를 정해요.", passwordNotMatchMsg: "비밀번호 재입력이 일치하지 않아요.", notificationDescription: "모니터링에 알림을 설정할 수 있어요.", - keywordDescription: "Html 이나 JSON에서 대소문자를 구분해 키워드를 검색해요.", + keywordDescription: "HTML 이나 JSON에서 대소문자를 구분해 키워드를 검색해요.", pauseDashboardHome: "일시 정지", deleteMonitorMsg: "정말 이 모니터링을 삭제할까요?", deleteNotificationMsg: "정말 이 알림을 모든 모니터링에서 삭제할까요?", - resoverserverDescription: "Cloudflare가 기본 서버에요, 원한다면 언제나 다른 resolver 서버로 변경할 수 있어요.", + resoverserverDescription: "Cloudflare가 기본 서버에요, 원한다면 언제나 다른 Resolver 서버로 변경할 수 있어요.", rrtypeDescription: "모니터링할 RR-Type을 선택해요.", pauseMonitorMsg: "정말 이 모니터링을 일시 정지 할까요?", enableDefaultNotificationDescription: "새로 추가하는 모든 모니터링에 이 알림을 기본적으로 활성화해요. 각 모니터에 대해 별도로 알림을 비활성화할 수 있어요.", @@ -190,7 +190,7 @@ export default { wayToGetTelegramChatID: "봇에 메시지를 보내 채팅 ID를 얻고 밑에 URL로 이동해 chat_id를 볼 수 있어요.", "YOUR BOT TOKEN HERE": "YOUR BOT TOKEN HERE", chatIDNotFound: "채팅 ID를 찾을 수 없어요. 먼저 봇에게 메시지를 보내주세요.", - webhook: "웹훅", + webhook: "Webhook", "Post URL": "Post URL", "Content Type": "Content Type", webhookJsonDesc: "{0}은 express.js와 같은 최신 HTTP 서버에 적합해요.", @@ -204,14 +204,14 @@ export default { smtpCC: "참조", smtpBCC: "숨은 참조", discord: "Discord", - "Discord Webhook URL": "Discord 웹훅 URL", + "Discord Webhook URL": "Discord Webhook URL", wayToGetDiscordURL: "서버 설정 -> 연동 -> 웹후크 보기 -> 새 웹후크에서 얻을 수 있어요.", "Bot Display Name": "표시 이름", "Prefix Custom Message": "접두사 메시지", "Hello @everyone is...": "{'@'}everyone 서버 상태 알림이에요...", teams: "Microsoft Teams", - "Webhook URL": "웹훅 URL", - wayToGetTeamsURL: "{0}에서 웹훅을 어떻게 만드는지 알아봐요.", + "Webhook URL": "Webhook URL", + wayToGetTeamsURL: "{0}에서 Webhook을 어떻게 만드는지 알아봐요.", signal: "Signal", Number: "숫자", Recipients: "받는 사람", @@ -226,8 +226,8 @@ export default { "Icon Emoji": "아이콘 이모지", "Channel Name": "채널 이름", "Uptime Kuma URL": "Uptime Kuma URL", - aboutWebhooks: "웹훅에 대한 설명: {0}", - aboutChannelName: "웹훅 채널을 우회하려면 {0} 채널 이름칸에 채널 이름을 입력해주세요. 예: #기타-채널", + aboutWebhooks: "Webhook에 대한 설명: {0}", + aboutChannelName: "Webhook 채널을 우회하려면 {0} 채널 이름칸에 채널 이름을 입력해주세요. 예: #기타-채널", aboutKumaURL: "Uptime Kuma URL칸을 공백으로 두면 기본적으로 Project Github 페이지로 설정해요.", emojiCheatSheet: "이모지 목록 시트: {0}", "rocket.chat": "Rocket.chat", @@ -250,9 +250,9 @@ export default { "SMS Type": "SMS 종류", octopushTypePremium: "프리미엄 (빠름) - 알림 기능에 적합해요)", octopushTypeLowCost: "저렴한 요금 (느림, 가끔 차단될 수 있어요)", - "Check octopush prices": "{0}에서 octopush 가격을 확인할 수 있어요.", + "Check octopush prices": "{0}에서 Octopush 가격을 확인할 수 있어요.", octopushPhoneNumber: "휴대전화 번호 (intl format, eg : +33612345678) ", - octopushSMSSender: "보내는 사람 이름 : 3-11개의 영숫자 및 여백공간 (a-z, A-Z, 0-9", + octopushSMSSender: "보내는 사람 이름 : 3-11개의 영숫자 및 여백공간 (a-z, A-Z, 0-9)", "LunaSea Device ID": "LunaSea 장치 ID", "Apprise URL": "Apprise URL", "Example:": "예: {0}", @@ -268,10 +268,10 @@ export default { "Basic Settings": "Basic Settings 메뉴", "User ID": "사용자 ID", "Messaging API": "Messaging API 메뉴", - wayToGetLineChannelToken: "먼저 {0}에 엑세스하고, 공급자 및 채널 (메시징 API)을 만든 다음, 각 메뉴 밑에 언급된 메뉴에서 채널 액세스 토큰과 사용자 ID를 얻을 수 있어요.", + wayToGetLineChannelToken: "먼저 {0}에 엑세스하고, 공급자 및 채널 (Messaging API)을 만든 다음, 각 메뉴 밑에 언급된 메뉴에서 채널 액세스 토큰과 사용자 ID를 얻을 수 있어요.", "Icon URL": "아이콘 URL", aboutIconURL: "\"Icon URL\"에 사진 링크를 입력해 프로필 사진을 설정할 수 있어요. 아이콘 이모지가 설정되어 있으면 적용되지 않을거에요.", - aboutMattermostChannelName: "채널 이름을 입력하면 웹훅이 게시할 기본 채널을 재설정할 수 있어요. 이 설정은 Mattermost 웹훅 설정에서 활성화해야 해요. 예: #기타-채널", + aboutMattermostChannelName: "채널 이름을 입력하면 Webhook이 게시할 기본 채널을 재설정할 수 있어요. 이 설정은 Mattermost 웹훅 설정에서 활성화해야 해요. 예: #기타-채널", matrix: "매트릭스", promosmsTypeEco: "SMS ECO - 저렴하지만 느리고 가끔 과부하에 걸려요. 폴란드 수신자만 사용할 수 있어요. ", promosmsTypeFlash: "SMS FLASH - 메시지가 받는 사람 장치에 자동으로 표시되어요. 폴란드 수신자만 사용할 수 있어요.", From c1112a32dfce1c953a2f3d7858be6638ac699483 Mon Sep 17 00:00:00 2001 From: Kyungyoon Kim Date: Tue, 12 Oct 2021 18:19:44 +0900 Subject: [PATCH 18/30] Update ko-KR.js --- src/languages/ko-KR.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/languages/ko-KR.js b/src/languages/ko-KR.js index bf73416f4..4bb4c912e 100644 --- a/src/languages/ko-KR.js +++ b/src/languages/ko-KR.js @@ -265,7 +265,7 @@ export default { "Channel access token": "채널 엑세스 토큰", "Line Developers Console": "Line 개발자 콘솔", lineDevConsoleTo: "Line 개발자 콘솔 - {0}", - "Basic Settings": "Basic Settings 메뉴", + "Basic Settings": "기본 설정 메뉴", "User ID": "사용자 ID", "Messaging API": "Messaging API 메뉴", wayToGetLineChannelToken: "먼저 {0}에 엑세스하고, 공급자 및 채널 (Messaging API)을 만든 다음, 각 메뉴 밑에 언급된 메뉴에서 채널 액세스 토큰과 사용자 ID를 얻을 수 있어요.", From 05b691d4c98d1ec5f0df128c0a2a3e7d19dfefe4 Mon Sep 17 00:00:00 2001 From: dhfhfk Date: Tue, 12 Oct 2021 20:39:15 +0900 Subject: [PATCH 19/30] Fix typo --- src/languages/ko-KR.js | 44 +++++++++++++++++++++--------------------- 1 file changed, 22 insertions(+), 22 deletions(-) diff --git a/src/languages/ko-KR.js b/src/languages/ko-KR.js index 4bb4c912e..aef3bf590 100644 --- a/src/languages/ko-KR.js +++ b/src/languages/ko-KR.js @@ -4,8 +4,8 @@ export default { retryCheckEverySecond: "{0}초마다 다시 확인해요.", retriesDescription: "서비스가 중단된 후 알림을 보내기 전 최대 재시도 횟수", ignoreTLSError: "HTTPS 웹사이트에서 TLS/SSL 에러 무시하기", - upsideDownModeDescription: "서버 상태를 반대로 표시해요. 서버가 작동하면 오프라인으로 표시할 거에요.", - maxRedirectDescription: "최대 리다이렉트 횟수에요. 0을 입력하면 리다이렉트를 꺼요.", + upsideDownModeDescription: "서버 상태를 반대로 표시해요. 서버가 작동하면 오프라인으로 표시할 거예요.", + maxRedirectDescription: "최대 리다이렉트 횟수예요. 0을 입력하면 리다이렉트를 꺼요.", acceptedStatusCodesDescription: "응답 성공으로 간주할 상태 코드를 정해요.", passwordNotMatchMsg: "비밀번호 재입력이 일치하지 않아요.", notificationDescription: "모니터링에 알림을 설정할 수 있어요.", @@ -13,9 +13,9 @@ export default { pauseDashboardHome: "일시 정지", deleteMonitorMsg: "정말 이 모니터링을 삭제할까요?", deleteNotificationMsg: "정말 이 알림을 모든 모니터링에서 삭제할까요?", - resoverserverDescription: "Cloudflare가 기본 서버에요, 원한다면 언제나 다른 Resolver 서버로 변경할 수 있어요.", + resoverserverDescription: "Cloudflare가 기본 서버예요, 원한다면 언제나 다른 Resolver 서버로 변경할 수 있어요.", rrtypeDescription: "모니터링할 RR-Type을 선택해요.", - pauseMonitorMsg: "정말 이 모니터링을 일시 정지 할까요?", + pauseMonitorMsg: "정말 이 모니터링을 일시 정지할까요?", enableDefaultNotificationDescription: "새로 추가하는 모든 모니터링에 이 알림을 기본적으로 활성화해요. 각 모니터에 대해 별도로 알림을 비활성화할 수 있어요.", clearEventsMsg: "정말 이 모니터링에 대한 모든 이벤트를 삭제할까요?", clearHeartbeatsMsg: "정말 이 모니터링에 대한 모든 하트비트를 삭제할까요?", @@ -24,8 +24,8 @@ export default { confirmImportMsg: "정말 백업을 가져올까요? 가져오기 옵션을 제대로 설정했는지 다시 확인해주세요.", twoFAVerifyLabel: "토큰을 입력해 2단계 인증이 작동하는지 확인해주세요.", tokenValidSettingsMsg: "토큰이 유효해요! 이제 2단계 인증 설정을 저장할 수 있어요.", - confirmEnableTwoFAMsg: "정말 2단계 인증을 활성화 할까요?", - confirmDisableTwoFAMsg: "정말 2단계 인증을 비활성화 할까요?", + confirmEnableTwoFAMsg: "정말 2단계 인증을 활성화할까요?", + confirmDisableTwoFAMsg: "정말 2단계 인증을 비활성화할까요?", Settings: "설정", Dashboard: "대시보드", "New Update": "새로운 업데이트", @@ -77,7 +77,7 @@ export default { "Accepted Status Codes": "응답 성공 상태 코드", Save: "저장", Notifications: "알림", - "Not available, please setup.": "존재하지 않아요, 새로운거 하나 만드는건 어때요?", + "Not available, please setup.": "존재하지 않아요, 새로운 거 하나 만드는 건 어때요?", "Setup Notification": "알림 설정", Light: "라이트", Dark: "다크", @@ -158,10 +158,10 @@ export default { color: "색상", "value (optional)": "값 (선택)", Gray: "회색", - Red: "빨강색", + Red: "빨간색", Orange: "주황색", Green: "초록색", - Blue: "파랑색", + Blue: "파란색", Indigo: "남색", Purple: "보라색", Pink: "핑크색", @@ -175,9 +175,9 @@ export default { "Partially Degraded Service": "일부 시스템 비정상", "Degraded Service": "모든 시스템 비정상", "Add Group": "그룹 추가", - "Add a monitor": "모니터링 추가r", + "Add a monitor": "모니터링 추가", "Edit Status Page": "상태 페이지 수정", - "Go to Dashboard": "대쉬보드로 가기", + "Go to Dashboard": "대시보드로 가기", "Status Page": "상태 페이지", defaultNotificationName: "내 {notification} 알림 ({number})", here: "여기", @@ -194,7 +194,7 @@ export default { "Post URL": "Post URL", "Content Type": "Content Type", webhookJsonDesc: "{0}은 express.js와 같은 최신 HTTP 서버에 적합해요.", - webhookFormDataDesc: "{multipart}은 PHP에 적합해요. {decodeFunction}를 기준으로 json을 디코딩하면 되어요.", + webhookFormDataDesc: "{multipart}은 PHP에 적합해요. {decodeFunction}를 기준으로 json을 디코딩하면 돼요.", smtp: "Email (SMTP)", secureOptionNone: "없음 / STARTTLS (25, 587)", secureOptionTLS: "TLS (465)", @@ -245,11 +245,11 @@ export default { "Message Title": "메시지 제목", "Notification Sound": "알림음", "More info on:": "자세한 정보: {0}", - pushoverDesc1: "긴급 우선 순위 (2)는 재시도 사이에 기본적으로 30초의 타임아웃이 있고, 1시간 후에 만료되어요.", + pushoverDesc1: "긴급 우선 순위 (2)는 재시도 사이에 기본적으로 30초의 타임아웃이 있고, 1시간 후에 만료돼요.", pushoverDesc2: "다른 장치에 알림을 보내려면 장치칸을 입력해주세요.", "SMS Type": "SMS 종류", octopushTypePremium: "프리미엄 (빠름) - 알림 기능에 적합해요)", - octopushTypeLowCost: "저렴한 요금 (느림, 가끔 차단될 수 있어요)", + octopushTypeLowCost: "저렴한 요금 (느림) - 가끔 차단될 수 있어요)", "Check octopush prices": "{0}에서 Octopush 가격을 확인할 수 있어요.", octopushPhoneNumber: "휴대전화 번호 (intl format, eg : +33612345678) ", octopushSMSSender: "보내는 사람 이름 : 3-11개의 영숫자 및 여백공간 (a-z, A-Z, 0-9)", @@ -259,24 +259,24 @@ export default { "Read more:": "더 보기: {0}", "Status:": "상태: {0}", "Read more": "더 보기", - appriseInstalled: "Apprise가 설치되어있어요..", - appriseNotInstalled: "Apprise 가 설치되어있지 않아요. {0}", + appriseInstalled: "Apprise가 설치되어있어요.", + appriseNotInstalled: "Apprise가 설치되어있지 않아요. {0}", "Access Token": "액세스 토큰", - "Channel access token": "채널 엑세스 토큰", + "Channel access token": "채널 액세스 토큰", "Line Developers Console": "Line 개발자 콘솔", lineDevConsoleTo: "Line 개발자 콘솔 - {0}", "Basic Settings": "기본 설정 메뉴", "User ID": "사용자 ID", "Messaging API": "Messaging API 메뉴", - wayToGetLineChannelToken: "먼저 {0}에 엑세스하고, 공급자 및 채널 (Messaging API)을 만든 다음, 각 메뉴 밑에 언급된 메뉴에서 채널 액세스 토큰과 사용자 ID를 얻을 수 있어요.", + wayToGetLineChannelToken: "먼저 {0}에 액세스하고, 공급자 및 채널 (Messaging API)을 만든 다음, 각 메뉴 밑에 언급된 메뉴에서 채널 액세스 토큰과 사용자 ID를 얻을 수 있어요.", "Icon URL": "아이콘 URL", - aboutIconURL: "\"Icon URL\"에 사진 링크를 입력해 프로필 사진을 설정할 수 있어요. 아이콘 이모지가 설정되어 있으면 적용되지 않을거에요.", + aboutIconURL: "\"Icon URL\"에 사진 링크를 입력해 프로필 사진을 설정할 수 있어요. 아이콘 이모지가 설정되어 있으면 적용되지 않을 거예요.", aboutMattermostChannelName: "채널 이름을 입력하면 Webhook이 게시할 기본 채널을 재설정할 수 있어요. 이 설정은 Mattermost 웹훅 설정에서 활성화해야 해요. 예: #기타-채널", matrix: "매트릭스", promosmsTypeEco: "SMS ECO - 저렴하지만 느리고 가끔 과부하에 걸려요. 폴란드 수신자만 사용할 수 있어요. ", - promosmsTypeFlash: "SMS FLASH - 메시지가 받는 사람 장치에 자동으로 표시되어요. 폴란드 수신자만 사용할 수 있어요.", + promosmsTypeFlash: "SMS FLASH - 메시지가 받는 사람 장치에 자동으로 표시돼요. 폴란드 수신자만 사용할 수 있어요.", promosmsTypeFull: "SMS FULL - SMS 프리미엄 티어, 보내는 사람 이름을 먼저 등록해야 해요. 알림 기능에 적합해요.", - promosmsTypeSpeed: "SMS SPEED - 시스템에서 가장 높은 우선순위에요. 매우 빠르고 신뢰할 수 있지만 비용이 많이 들어요 (SMS 전체 가격의 약 두 배).", + promosmsTypeSpeed: "SMS SPEED - 시스템에서 가장 높은 우선순위예요. 매우 빠르고 신뢰할 수 있지만 비용이 많이 들어요 (SMS 전체 가격의 약 두 배).", promosmsPhoneNumber: "전화 번호 (폴란드 수신자라면 지역번호를 적지 않아도 돼요.)", - promosmsSMSSender: "SMS 보내는 사람 이름 : 미리 등록된 이름 혹은 기본값 중 하나에요: InfoSMS, SMS Info, MaxSMS, INFO, SMS", + promosmsSMSSender: "SMS 보내는 사람 이름 : 미리 등록된 이름 혹은 기본값 중 하나예요: InfoSMS, SMS Info, MaxSMS, INFO, SMS", }; From 911d4ea37baa4c43a52f7eac1fa26abb8a7de85c Mon Sep 17 00:00:00 2001 From: Louis Lam Date: Wed, 13 Oct 2021 02:27:25 +0800 Subject: [PATCH 20/30] move vite.config.js to config folder --- vite.config.js => config/vite.config.js | 14 +++++++------- package.json | 6 +++--- 2 files changed, 10 insertions(+), 10 deletions(-) rename vite.config.js => config/vite.config.js (62%) diff --git a/vite.config.js b/config/vite.config.js similarity index 62% rename from vite.config.js rename to config/vite.config.js index 6be31f5e8..a9701d426 100644 --- a/vite.config.js +++ b/config/vite.config.js @@ -1,9 +1,9 @@ -import legacy from "@vitejs/plugin-legacy" -import vue from "@vitejs/plugin-vue" -import { defineConfig } from "vite" +import legacy from "@vitejs/plugin-legacy"; +import vue from "@vitejs/plugin-vue"; +import { defineConfig } from "vite"; -const postCssScss = require("postcss-scss") -const postcssRTLCSS = require('postcss-rtlcss'); +const postCssScss = require("postcss-scss"); +const postcssRTLCSS = require("postcss-rtlcss"); // https://vitejs.dev/config/ export default defineConfig({ @@ -20,5 +20,5 @@ export default defineConfig({ "map": false, "plugins": [postcssRTLCSS] } - }, -}) + }, +}); diff --git a/package.json b/package.json index 6cb8d9dbb..03fdebbd4 100644 --- a/package.json +++ b/package.json @@ -15,17 +15,17 @@ "lint:js": "eslint --ext \".js,.vue\" --ignore-path .gitignore .", "lint:style": "stylelint \"**/*.{vue,css,scss}\" --ignore-path .gitignore", "lint": "npm run lint:js && npm run lint:style", - "dev": "vite --host", + "dev": "vite --host --config ./config/vite.config.js", "start": "npm run start-server", "start-server": "node server/server.js", "start-server-dev": "cross-env NODE_ENV=development node server/server.js", - "build": "vite build", + "build": "vite build --config ./config/vite.config.js", "test": "node test/prepare-test-server.js && node server/server.js --port=3002 --data-dir=./data/test/ --test", "test-with-build": "npm run build && npm test", "jest": "node test/prepare-jest.js && npm run jest-frontend && jest ", "jest-frontend": "cross-env TEST_FRONTEND=1 jest --config=./jest-frontend.config.js", "tsc": "tsc", - "vite-preview-dist": "vite preview --host", + "vite-preview-dist": "vite preview --host --config ./config/vite.config.js", "build-docker": "npm run build-docker-debian && npm run build-docker-alpine", "build-docker-alpine-base": "docker buildx build -f docker/alpine-base.dockerfile --platform linux/amd64,linux/arm64,linux/arm/v7 -t louislam/uptime-kuma:base-alpine . --push", "build-docker-debian-base": "docker buildx build -f docker/debian-base.dockerfile --platform linux/amd64,linux/arm64,linux/arm/v7 -t louislam/uptime-kuma:base-debian . --push", From 11c3c636e0076d88de1118cbb3b74a592b7f5790 Mon Sep 17 00:00:00 2001 From: Louis Lam Date: Wed, 13 Oct 2021 02:32:02 +0800 Subject: [PATCH 21/30] move dockerfile, docker-compose.yml to docker folder --- docker-compose.yml => docker/docker-compose.yml | 0 dockerfile => docker/dockerfile | 0 dockerfile-alpine => docker/dockerfile-alpine | 0 package.json | 9 ++++----- 4 files changed, 4 insertions(+), 5 deletions(-) rename docker-compose.yml => docker/docker-compose.yml (100%) rename dockerfile => docker/dockerfile (100%) rename dockerfile-alpine => docker/dockerfile-alpine (100%) diff --git a/docker-compose.yml b/docker/docker-compose.yml similarity index 100% rename from docker-compose.yml rename to docker/docker-compose.yml diff --git a/dockerfile b/docker/dockerfile similarity index 100% rename from dockerfile rename to docker/dockerfile diff --git a/dockerfile-alpine b/docker/dockerfile-alpine similarity index 100% rename from dockerfile-alpine rename to docker/dockerfile-alpine diff --git a/package.json b/package.json index 03fdebbd4..b4454601e 100644 --- a/package.json +++ b/package.json @@ -29,11 +29,11 @@ "build-docker": "npm run build-docker-debian && npm run build-docker-alpine", "build-docker-alpine-base": "docker buildx build -f docker/alpine-base.dockerfile --platform linux/amd64,linux/arm64,linux/arm/v7 -t louislam/uptime-kuma:base-alpine . --push", "build-docker-debian-base": "docker buildx build -f docker/debian-base.dockerfile --platform linux/amd64,linux/arm64,linux/arm/v7 -t louislam/uptime-kuma:base-debian . --push", - "build-docker-alpine": "docker buildx build -f dockerfile-alpine --platform linux/amd64,linux/arm64,linux/arm/v7 -t louislam/uptime-kuma:alpine -t louislam/uptime-kuma:1-alpine -t louislam/uptime-kuma:1.8.0-alpine --target release . --push", - "build-docker-debian": "docker buildx build --platform linux/amd64,linux/arm64,linux/arm/v7 -t louislam/uptime-kuma -t louislam/uptime-kuma:1 -t louislam/uptime-kuma:1.8.0 -t louislam/uptime-kuma:debian -t louislam/uptime-kuma:1-debian -t louislam/uptime-kuma:1.8.0-debian --target release . --push", - "build-docker-nightly": "docker buildx build --platform linux/amd64,linux/arm64,linux/arm/v7 -t louislam/uptime-kuma:nightly --target nightly . --push", + "build-docker-alpine": "docker buildx build -f docker/dockerfile-alpine --platform linux/amd64,linux/arm64,linux/arm/v7 -t louislam/uptime-kuma:alpine -t louislam/uptime-kuma:1-alpine -t louislam/uptime-kuma:1.8.0-alpine --target release . --push", + "build-docker-debian": "docker buildx build -f docker/dockerfile --platform linux/amd64,linux/arm64,linux/arm/v7 -t louislam/uptime-kuma -t louislam/uptime-kuma:1 -t louislam/uptime-kuma:1.8.0 -t louislam/uptime-kuma:debian -t louislam/uptime-kuma:1-debian -t louislam/uptime-kuma:1.8.0-debian --target release . --push", + "build-docker-nightly": "docker buildx build -f docker/dockerfile --platform linux/amd64,linux/arm64,linux/arm/v7 -t louislam/uptime-kuma:nightly --target nightly . --push", "build-docker-nightly-alpine": "docker buildx build -f dockerfile-alpine --platform linux/amd64,linux/arm64,linux/arm/v7 -t louislam/uptime-kuma:nightly-alpine --target nightly . --push", - "build-docker-nightly-amd64": "docker buildx build --platform linux/amd64 -t louislam/uptime-kuma:nightly-amd64 --target nightly . --push --progress plain", + "build-docker-nightly-amd64": "docker buildx build -f docker/dockerfile --platform linux/amd64 -t louislam/uptime-kuma:nightly-amd64 --target nightly . --push --progress plain", "upload-artifacts": "docker buildx build --platform linux/amd64 -t louislam/uptime-kuma:upload-artifact --build-arg GITHUB_TOKEN --target upload-artifact . --progress plain", "setup": "git checkout 1.8.0 && npm ci --production && npm run download-dist", "download-dist": "node extra/download-dist.js", @@ -107,7 +107,6 @@ "@vitejs/plugin-vue": "~1.9.2", "@vue/compiler-sfc": "~3.2.19", "core-js": "~3.18.1", - "cross-env": "~7.0.3", "dns2": "~2.0.1", "eslint": "~7.32.0", "eslint-plugin-vue": "~7.18.0", From 407581ee07a38490a2ced7828a87b586cfbcc54e Mon Sep 17 00:00:00 2001 From: Louis Lam Date: Wed, 13 Oct 2021 02:53:59 +0800 Subject: [PATCH 22/30] move jest config files to config dir --- babel.config.js | 4 ++++ config/jest-backend.config.js | 5 +++++ .../jest-frontend.config.js | 2 +- .../jest-puppeteer.config.js | 0 jest.config.js => config/jest.config.js | 2 +- package-lock.json | 17 +++++++++++++++-- package.json | 6 ++++-- test/backend.spec.js | 10 ++++++++++ 8 files changed, 40 insertions(+), 6 deletions(-) create mode 100644 config/jest-backend.config.js rename jest-frontend.config.js => config/jest-frontend.config.js (76%) rename jest-puppeteer.config.js => config/jest-puppeteer.config.js (100%) rename jest.config.js => config/jest.config.js (90%) create mode 100644 test/backend.spec.js diff --git a/babel.config.js b/babel.config.js index 70266c1f7..d2ad8213a 100644 --- a/babel.config.js +++ b/babel.config.js @@ -4,4 +4,8 @@ if (process.env.TEST_FRONTEND) { config.presets = ["@babel/preset-env"]; } +if (process.env.TEST_BACKEND) { + config.plugins = ["babel-plugin-rewire"]; +} + module.exports = config; diff --git a/config/jest-backend.config.js b/config/jest-backend.config.js new file mode 100644 index 000000000..1a88d9a6b --- /dev/null +++ b/config/jest-backend.config.js @@ -0,0 +1,5 @@ +module.exports = { + "rootDir": "..", + "testRegex": "./test/backend.spec.js", +}; + diff --git a/jest-frontend.config.js b/config/jest-frontend.config.js similarity index 76% rename from jest-frontend.config.js rename to config/jest-frontend.config.js index ec4ab8d8e..ab6af7f1e 100644 --- a/jest-frontend.config.js +++ b/config/jest-frontend.config.js @@ -1,5 +1,5 @@ module.exports = { - "rootDir": ".", + "rootDir": "..", "testRegex": "./test/frontend.spec.js", }; diff --git a/jest-puppeteer.config.js b/config/jest-puppeteer.config.js similarity index 100% rename from jest-puppeteer.config.js rename to config/jest-puppeteer.config.js diff --git a/jest.config.js b/config/jest.config.js similarity index 90% rename from jest.config.js rename to config/jest.config.js index 6ce5b90a6..4baaa0fb6 100644 --- a/jest.config.js +++ b/config/jest.config.js @@ -5,7 +5,7 @@ module.exports = { "__DEV__": true }, "testRegex": "./test/e2e.spec.js", - "rootDir": ".", + "rootDir": "..", "testTimeout": 30000, }; diff --git a/package-lock.json b/package-lock.json index 104b38c10..296362633 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "uptime-kuma", - "version": "1.7.3", + "version": "1.8.0", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "uptime-kuma", - "version": "1.7.3", + "version": "1.8.0", "license": "MIT", "dependencies": { "@fortawesome/fontawesome-svg-core": "~1.2.36", @@ -64,6 +64,7 @@ "@vitejs/plugin-legacy": "~1.6.1", "@vitejs/plugin-vue": "~1.9.2", "@vue/compiler-sfc": "~3.2.19", + "babel-plugin-rewire": "^1.2.0", "core-js": "~3.18.1", "cross-env": "~7.0.3", "dns2": "~2.0.1", @@ -3331,6 +3332,12 @@ "@babel/core": "^7.0.0-0" } }, + "node_modules/babel-plugin-rewire": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/babel-plugin-rewire/-/babel-plugin-rewire-1.2.0.tgz", + "integrity": "sha512-JBZxczHw3tScS+djy6JPLMjblchGhLI89ep15H3SyjujIzlxo5nr6Yjo7AXotdeVczeBmWs0tF8PgJWDdgzAkQ==", + "dev": true + }, "node_modules/babel-preset-current-node-syntax": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz", @@ -14722,6 +14729,12 @@ "@babel/helper-define-polyfill-provider": "^0.2.2" } }, + "babel-plugin-rewire": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/babel-plugin-rewire/-/babel-plugin-rewire-1.2.0.tgz", + "integrity": "sha512-JBZxczHw3tScS+djy6JPLMjblchGhLI89ep15H3SyjujIzlxo5nr6Yjo7AXotdeVczeBmWs0tF8PgJWDdgzAkQ==", + "dev": true + }, "babel-preset-current-node-syntax": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz", diff --git a/package.json b/package.json index b4454601e..16f463c50 100644 --- a/package.json +++ b/package.json @@ -22,8 +22,9 @@ "build": "vite build --config ./config/vite.config.js", "test": "node test/prepare-test-server.js && node server/server.js --port=3002 --data-dir=./data/test/ --test", "test-with-build": "npm run build && npm test", - "jest": "node test/prepare-jest.js && npm run jest-frontend && jest ", - "jest-frontend": "cross-env TEST_FRONTEND=1 jest --config=./jest-frontend.config.js", + "jest": "node test/prepare-jest.js && npm run jest-frontend && npm run jest-backend && jest --config=./config/jest.config.js", + "jest-frontend": "cross-env TEST_FRONTEND=1 jest --config=./config/jest-frontend.config.js", + "jest-backend": "cross-env TEST_BACKEND=1 jest --config=./config/jest-backend.config.js", "tsc": "tsc", "vite-preview-dist": "vite preview --host --config ./config/vite.config.js", "build-docker": "npm run build-docker-debian && npm run build-docker-alpine", @@ -59,6 +60,7 @@ "@popperjs/core": "~2.10.2", "args-parser": "~1.3.0", "axios": "~0.21.4", + "babel-plugin-rewire": "~1.2.0", "bcryptjs": "~2.4.3", "bootstrap": "~5.1.1", "chart.js": "~3.5.1", diff --git a/test/backend.spec.js b/test/backend.spec.js new file mode 100644 index 000000000..4f00c0b13 --- /dev/null +++ b/test/backend.spec.js @@ -0,0 +1,10 @@ +beforeAll(() => { + +}); + +describe("", () => { + + it("should ", () => { + + }); +}); From 5b67fec084f770c10f787db97c854d31dfec207c Mon Sep 17 00:00:00 2001 From: KangAlleW <76554157+KangAlleW@users.noreply.github.com> Date: Wed, 13 Oct 2021 02:46:11 +0700 Subject: [PATCH 23/30] add indonesian language --- src/languages/id.js | 285 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 285 insertions(+) create mode 100644 src/languages/id.js diff --git a/src/languages/id.js b/src/languages/id.js new file mode 100644 index 000000000..30540db5a --- /dev/null +++ b/src/languages/id.js @@ -0,0 +1,285 @@ +export default { + languageName: "Indonesia", + checkEverySecond: "Cek Setiap {0} detik.", + retryCheckEverySecond: "Coba lagi setiap {0} detik.", + retriesDescription: "Percobaan ulang maksimum sebelum layanan dinyatakan tidak aktif dan notifikasi dikirim", + ignoreTLSError: "Abaikan kesalahan TLS/SSL untuk situs web HTTPS", + 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 respons yang berhasil.", + passwordNotMatchMsg: "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?", + resoverserverDescription: "Cloudflare adalah server default, Anda dapat mengubah server resolver kapan saja.", + rrtypeDescription: "Pilih RR-Type yang mau anda monitor", + pauseMonitorMsg: "Apakah anda yakin mau menjeda?", + enableDefaultNotificationDescription: "Untuk setiap monitor baru, notifikasi ini akan diaktifkan secara default. Anda masih dapat menonaktifkan notifikasi secara terpisah untuk setiap monitor.", + clearEventsMsg: "Apakah anda yakin mau menghapus semua event di monitor ini?", + clearHeartbeatsMsg: "Apakah anda yakin mau menghapus semua heartbeats di monitor ini?", + confirmClearStatisticsMsg: "Apakah anda yakin mau menghapus semua statistik?", + 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 valid! Anda sekarang dapat menyimpan pengaturan 2FA.", + confirmEnableTwoFAMsg: "Apakah Anda yakin ingin mengaktifkan 2FA?", + confirmDisableTwoFAMsg: "Apakah Anda yakin ingin menonaktifkan 2FA?", + Settings: "Pengaturan", + Dashboard: "Dashboard", + "New Update": "Update Baru", + Language: "Bahasa", + Appearance: "Tampilan", + Theme: "Tema", + General: "General", + Version: "Versi", + "Check Update On GitHub": "Cek Update di GitHub", + List: "List", + Add: "Tambah", + "Add New Monitor": "Tambah Monitor Baru", + "Quick Stats": "Statistik Cepat", + Up: "Aktif", + Down: "Tidak Aktif", + Pending: "Tertunda", + Unknown: "Tidak diketahui", + Pause: "Jeda", + Name: "Nama", + Status: "Status", + DateTime: "Tanggal Waktu", + Message: "Pesan", + "No important events": "Tidak ada Event penting", + Resume: "Melanjutkan", + Edit: "Rubah", + Delete: "Hapus", + Current: "Saat ini", + Uptime: "Waktu aktif", + "Cert Exp.": "Cert Exp.", + days: "hari-hari", + day: "hari", + "-day": "-hari", + hour: "Jam", + "-hour": "-Jam", + Response: "Respon", + Ping: "Ping", + "Monitor Type": "Tipe Monitor", + Keyword: "Keyword", + "Friendly Name": "Friendly Name", + URL: "URL", + Hostname: "Hostname", + Port: "Port", + "Heartbeat Interval": "Interval Heartbeat ", + Retries: "Retries", + "Heartbeat Retry Interval": "Interval Heartbeat Mencoba kembali ", + Advanced: "Advanced", + "Upside Down Mode": "Mode Terbalik", + "Max. Redirects": "Maksimal Redirect/Pengalihan", + "Accepted Status Codes": "Kode Status yang Diterima", + Save: "Simpan", + Notifications: "Notifikasi", + "Not available, please setup.": "Tidak tersedia, silakan atur.", + "Setup Notification": "Setel Notifikasi", + Light: "Terang", + Dark: "Gelap", + Auto: "Automatis", + "Theme - Heartbeat Bar": "Theme - Heartbeat Bar", + Normal: "Normal", + Bottom: "Bawah", + None: "Tidak ada", + Timezone: "Zona Waktu", + "Search Engine Visibility": "Visibilitas Mesin Pencari", + "Allow indexing": "Mengizinkan untuk diindex", + "Discourage search engines from indexing site": "Mencegah mesin pencari untuk mengindex site", + "Change Password": "Ganti Sandi", + "Current Password": "Sandi Lama", + "New Password": "Sandi Baru", + "Repeat New Password": "Ulangi Sandi Baru", + "Update Password": "Perbarui Kata Sandi", + "Disable Auth": "Nonaktifkan auth", + "Enable Auth": "Aktifkan Auth", + Logout: "Keluar", + Leave: "Pergi", + "I understand, please disable": "Saya mengerti, silahkan dinonaktifkan", + Confirm: "Konfirmasi", + Yes: "Ya", + No: "Tidak", + Username: "Nama Pengguna", + Password: "Sandi", + "Remember me": "Ingat saya", + Login: "Masuk", + "No Monitors, please": "Tidak ada monitor, silahkan", + "add one": "tambah baru", + "Notification Type": "Tipe Notifikasi", + Email: "Email", + Test: "Test", + "Certificate Info": "Info Sertifikasi ", + "Resolver Server": "Resolver Server", + "Resource Record Type": "Resource Record Type", + "Last Result": "Hasil Terakhir", + "Create your admin account": "Buat admin akun anda", + "Repeat Password": "Ulangi Sandi", + "Import Backup": "Impor Backup", + "Export Backup": "Expor Backup", + Export: "Expor", + Import: "Impor", + respTime: "Tanggapan. Waktu (milidetik)", + notAvailableShort: "N/A", + "Default enabled": "Default diaktifkan", + "Apply on all existing monitors": "Terapkan pada semua monitor yang ada", + Create: "Buat", + "Clear Data": "Bersihkan Data", + Events: "Event", + Heartbeats: "Heartbeats", + "Auto Get": "Auto Get", + backupDescription: "Anda dapat mencadangkan semua monitor dan semua notifikasi ke dalam file JSON.", + backupDescription2: "Catatan: Data sejarah dan event tidak disertakan.", + backupDescription3: "Data sensitif seperti notifikasi token disertakan dalam file ekspor, harap simpan dengan hati-hati.", + alertNoFile: "Silakan pilih file untuk diimpor.", + alertWrongFileType: "Silakan pilih file JSON .", + "Clear all statistics": "Hapus semua statistik", + "Skip existing": "Lewati yang ada", + Overwrite: "Timpa", + Options: "Opsi", + "Keep both": "Simpan keduanya", + "Verify Token": "Verifikasi Token", + "Setup 2FA": "Pengaturan 2FA", + "Enable 2FA": "Aktifkan 2FA", + "Disable 2FA": "Nonaktifkan 2FA", + "2FA Settings": "Settings 2FA", + "Two Factor Authentication": "Otentikasi Dua Faktor", + Active: "Aktif", + Inactive: "Tidak Aktif", + Token: "Token", + "Show URI": "Lihat URI", + Tags: "Tag", + "Add New below or Select...": "Tambahkan Baru di bawah atau Pilih...", + "Tag with this name already exist.": "Tag dengan nama ini sudah ada.", + "Tag with this value already exist.": "Tag dengan nilai ini sudah ada.", + color: "warna", + "value (optional)": "nilai (harus diisi)", + Gray: "Abu Abu", + Red: "Merah", + Orange: "Oranye", + Green: "Hijau", + Blue: "Biru", + Indigo: "Indigo", + Purple: "Ungu", + Pink: "Merah Muda", + "Search...": "Cari...", + "Avg. Ping": "Rata-rata. Ping", + "Avg. Response": "Rata-rata. Respon", + "Entry Page": "Halaman Masuk", + statusPageNothing: "Tidak ada di sini, silakan tambahkan grup atau monitor.", + "No Services": "Tidak ada Layanan", + "All Systems Operational": "Semua Sistem Berfungsi", + "Partially Degraded Service": "Layanan Terdegradasi Sebagian", + "Degraded Service": "Layanan Terdegradasi", + "Add Group": "Tambah Grup", + "Add a monitor": "Tambah monitor", + "Edit Status Page": "Edit Halaman Status", + "Go to Dashboard": "Lihat Dashboard", + "Status Page": "Halaman Status", + // Start notification form + defaultNotificationName: "{notification} saya Peringatan ({number})", + here: "di sini", + "Required": "Dibutuhkan", + "telegram": "Telegram", + "Bot Token": "Bot Token", + "You can get a token from": "Anda bisa mendapatkan token dari", + "Chat ID": "Chat ID", + supportTelegramChatID: "Mendukung Obrolan Langsung / Grup / Channel Chat ID", + wayToGetTelegramChatID: "Anda bisa mendapatkan chat id Anda dengan mengirim pesan ke bot dan pergi ke url ini untuk melihat chat_id:", + "YOUR BOT TOKEN HERE": "BOT TOKEN ANDA DI SINI", + chatIDNotFound: "Chat ID tidak ditemukan, tolong kirim pesan ke bot ini dulu", + "webhook": "Webhook", + "Post URL": "Post URL", + "Content Type": "Tipe konten", + webhookJsonDesc: "{0} bagus untuk server http modern seperti express.js", + webhookFormDataDesc: "{multipart} bagus untuk PHP, Anda hanya perlu mengurai json dengan {decodeFunction}", + "smtp": "Email (SMTP)", + secureOptionNone: "None / STARTTLS (25, 587)", + secureOptionTLS: "TLS (465)", + "Ignore TLS Error": "Ignore TLS Error", + "From Email": "From Email", + "To Email": "To Email", + smtpCC: "CC", + smtpBCC: "BCC", + "discord": "Discord", + "Discord Webhook URL": "Discord Webhook URL", + wayToGetDiscordURL: "Anda bisa mendapatkan ini dengan pergi ke Server Settings -> Integrations -> Create Webhook", + "Bot Display Name": "Nama Bot", + "Prefix Custom Message": "Prefix Pesan", + "Hello @everyone is...": "Hallo {'@'}everyone is...", + "teams": "Microsoft Teams", + "Webhook URL": "Webhook URL", + wayToGetTeamsURL: "Anda dapat mempelajari cara membuat url webhook {0}.", + "signal": "Sinyal", + "Number": "Nomer", + "Recipients": "Penerima", + needSignalAPI: "Anda harus memiliki klien sinyal dengan REST API.", + wayToCheckSignalURL: "Anda dapat memeriksa url ini untuk melihat cara menyiapkannya:", + signalImportant: "PENTING: Anda tidak dapat mencampur grup dan nomor di penerima!", + "gotify": "Gotify", + "Application Token": "Token Aplikasi", + "Server URL": "Server URL", + "Priority": "Prioritas", + "slack": "Slack", + "Icon Emoji": "Icon Emoji", + "Channel Name": "Nama Channel", + "Uptime Kuma URL": "Uptime Kuma URL", + aboutWebhooks: "Info lain tentang webhook: {0}", + aboutChannelName: "Masukan nama channel di {0} Kolom Nama Channel jika Anda ingin melewati channel webhook. Contoh: #other-channel", + aboutKumaURL: "Jika Anda membiarkan bidang URL Uptime Kuma kosong, itu akan menjadi default ke halaman Project Github.", + emojiCheatSheet: "Emoji cheat sheet: {0}", + "rocket.chat": "Rocket.chat", + pushover: "Pushover", + pushy: "Pushy", + octopush: "Octopush", + promosms: "PromoSMS", + lunasea: "LunaSea", + apprise: "Apprise (Mendukung 50+ layanan notifikasi)", + pushbullet: "Pushbullet", + line: "Line Messenger", + mattermost: "Mattermost", + "User Key": "Kunci pengguna", + "Device": "Perangkat", + "Message Title": "Judul Pesan", + "Notification Sound": "Suara Nofifikasi", + "More info on:": "Info lebih lanjut tentang: {0}", + pushoverDesc1: "Prioritas darurat (2) memiliki batas waktu default 30 detik antara percobaan ulang dan akan kadaluwarsa setelah 1 jam.", + pushoverDesc2: "Jika Anda ingin mengirim pemberitahuan ke perangkat yang berbeda, isi kolom Perangkat.", + "SMS Type": "Tipe SMS", + octopushTypePremium: "Premium (Cepat - direkomendasikan untuk mengingatkan)", + octopushTypeLowCost: "Low Cost (Lambat, terkadang diblokir oleh operator)", + "Check octopush prices": "Cek harga octopush {0}.", + octopushPhoneNumber: "Nomer Telpon/HP (format internasional, contoh : +33612345678) ", + octopushSMSSender: "Nama Pengirim SMS : 3-11 karakter alfanumerik dan spasi (a-zA-Z0-9)", + "LunaSea Device ID": "LunaSea Device ID", + "Apprise URL": "Apprise URL", + "Example:": "Contoh: {0}", + "Read more:": "Baca lebih lajut: {0}", + "Status:": "Status: {0}", + "Read more": "Baca lebih lajut", + appriseInstalled: "Apprise diinstall.", + appriseNotInstalled: "Apprise tidak diinstall. {0}", + "Access Token": "Access Token", + "Channel access token": "Channel access token", + "Line Developers Console": "Line Developers Console", + lineDevConsoleTo: "Line Developers Console - {0}", + "Basic Settings": "Pengaturan dasar", + "User ID": "User ID", + "Messaging API": "Messaging API", + wayToGetLineChannelToken: "Pertama akses {0}, buat penyedia dan saluran (Messaging API), lalu Anda bisa mendapatkan token akses saluran dan id pengguna dari item menu yang disebutkan di atas.", + "Icon URL": "Icon URL", + aboutIconURL: "Anda dapat memberikan tautan ke gambar di \"Icon URL\" untuk mengganti gambar profil default. Tidak akan digunakan jika Ikon Emoji diset.", + aboutMattermostChannelName: "Anda dapat mengganti channel default tujuan posting webhook dengan memasukkan nama channel ke dalam Kolom \"Channel Name\". Ini perlu diaktifkan di pengaturan webhook Mattermost. contoh: #other-channel", + "matrix": "Matrix", + 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).", + promosmsPhoneNumber: "Nomor telepon (untuk penerima Polandia Anda dapat melewati kode area)", + promosmsSMSSender: "Nama Pengirim SMS : Nama pra-registrasi atau salah satu default: InfoSMS, Info SMS, MaxSMS, INFO, SMS", + "Feishu WebHookUrl": "Feishu WebHookUrl", + // End notification form +}; From 4b9f0a3fe673381cd59b8cbe174f5b332bddc1c3 Mon Sep 17 00:00:00 2001 From: KangAlleW <76554157+KangAlleW@users.noreply.github.com> Date: Wed, 13 Oct 2021 02:53:46 +0700 Subject: [PATCH 24/30] add indonesian language and edit settings.vue --- src/pages/Settings.vue | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/pages/Settings.vue b/src/pages/Settings.vue index 8fad9d143..979417774 100644 --- a/src/pages/Settings.vue +++ b/src/pages/Settings.vue @@ -333,6 +333,12 @@

Utilizzare con attenzione.

+ + -