From cac0a46bace5b96681b694ad33a7938c7b6c32ff Mon Sep 17 00:00:00 2001
From: LouisLam <louislam@users.noreply.github.com>
Date: Sat, 9 Oct 2021 19:08:38 +0800
Subject: [PATCH 1/5] fix error if tls info object is in old format

---
 src/pages/Details.vue | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/src/pages/Details.vue b/src/pages/Details.vue
index ee0c4948b..1363aa205 100644
--- a/src/pages/Details.vue
+++ b/src/pages/Details.vue
@@ -83,6 +83,7 @@
                 </div>
             </div>
 
+            <!-- Cert Info Box -->
             <transition name="slide-fade" appear>
                 <div v-if="showCertInfoBox" class="shadow-box big-padding text-center">
                     <div class="row">
@@ -93,6 +94,7 @@
                 </div>
             </transition>
 
+            <!-- Ping Chart -->
             <div v-if="showPingChartBox" class="shadow-box big-padding text-center ping-chart-wrapper">
                 <div class="row">
                     <div class="col">
@@ -270,7 +272,10 @@ export default {
         },
 
         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];
             }
 

From 4169127143bf832e2045b7dc2c6f3f46a3db8d6e Mon Sep 17 00:00:00 2001
From: Louis Lam <louislam@users.noreply.github.com>
Date: Sat, 9 Oct 2021 19:17:01 +0800
Subject: [PATCH 2/5] Update FUNDING.yml

---
 .github/FUNDING.yml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml
index 6e53fa086..d55fbd4fc 100644
--- a/.github/FUNDING.yml
+++ b/.github/FUNDING.yml
@@ -1,6 +1,6 @@
 # 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
 open_collective: uptime-kuma # Replace with a single Open Collective username
 #ko_fi: # Replace with a single Ko-fi username

From 2e95e2016d0663f994f4cae86889012a1d935bc2 Mon Sep 17 00:00:00 2001
From: Kyungyoon Kim <ruddbs5302@gmail.com>
Date: Sat, 9 Oct 2021 05:25:49 -0600
Subject: [PATCH 3/5] Translate to Korean

---
 src/languages/ko-KR.js | 146 ++++++++++++++++++++---------------------
 1 file changed, 73 insertions(+), 73 deletions(-)

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

From 9d7def93a56add3595d1216ddd49166a384a9661 Mon Sep 17 00:00:00 2001
From: MrEddX <66828538+MrEddX@users.noreply.github.com>
Date: Sat, 9 Oct 2021 18:44:12 +0300
Subject: [PATCH 4/5] Update bg-BG.js

---
 src/languages/bg-BG.js | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

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

From 6fe014fa5e6832be61e8f897011c10e912e0001d Mon Sep 17 00:00:00 2001
From: Robin Schneider <45321827+robinschneider@users.noreply.github.com>
Date: Sat, 9 Oct 2021 18:05:52 +0200
Subject: [PATCH 5/5] Fixed spelling for german language support

Fixed spelling for german language support, hacktoberfest-accepted label woul be appreciated.
---
 src/languages/de-DE.js | 34 +++++++++++++++++-----------------
 1 file changed, 17 insertions(+), 17 deletions(-)

diff --git a/src/languages/de-DE.js b/src/languages/de-DE.js
index 20beb626e..bf2dff8c6 100644
--- a/src/languages/de-DE.js
+++ b/src/languages/de-DE.js
@@ -2,7 +2,7 @@ export default {
     languageName: "Deutsch (Deutschland)",
     Settings: "Einstellungen",
     Dashboard: "Dashboard",
-    "New Update": "Update Verfügbar",
+    "New Update": "Update verfügbar",
     Language: "Sprache",
     Appearance: "Erscheinung",
     Theme: "Thema",
@@ -50,7 +50,7 @@ export default {
     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.",
+    upsideDownModeDescription: "Drehe den Modus um, ist der Dienst erreichbar, wird er als inaktiv angezeigt.",
     "Max. Redirects": "Max. Weiterleitungen",
     maxRedirectDescription: "Maximale Anzahl von Weiterleitungen, denen gefolgt werden soll. Setzte auf 0, um Weiterleitungen zu deaktivieren.",
     "Accepted Status Codes": "Erlaubte HTTP-Statuscodes",
@@ -71,7 +71,7 @@ export default {
     "Allow indexing": "Indizierung zulassen",
     "Discourage search engines from indexing site": "Halte Suchmaschinen von der Indexierung der Seite ab",
     "Change Password": "Passwort ändern",
-    "Current Password": "Dezeitiges Passwort",
+    "Current Password": "Derzeitiges Passwort",
     "New Password": "Neues Passwort",
     "Repeat New Password": "Wiederhole neues Passwort",
     passwordNotMatchMsg: "Passwörter stimmen nicht überein. ",
@@ -91,24 +91,24 @@ export default {
     Login: "Einloggen",
     "No Monitors, please": "Keine Monitore, bitte",
     "add one": "hinzufügen",
-    "Notification Type": "Benachrichtigungs Dienst",
+    "Notification Type": "Benachrichtigungsdienst",
     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.",
-    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?",
     resoverserverDescription: "Cloudflare ist als der Standardserver festgelegt, dieser kann jederzeit geändern werden.",
     "Resolver Server": "Auflösungsserver",
     rrtypeDescription: "Wähle den RR-Typ aus, welchen du überwachen möchtest.",
     "Last Result": "Letztes Ergebnis",
-    pauseMonitorMsg: "Bist du sicher das du den Monitor pausieren möchtest?",
-    clearEventsMsg: "Bist du sicher das 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?",
+    pauseMonitorMsg: "Bist du sicher, dass du den Monitor pausieren möchtest?",
+    clearEventsMsg: "Bist du sicher, dass du alle Ereignisse 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",
     Events: "Ereignisse",
     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",
     "Repeat Password": "Wiederhole das Passwort",
     "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.",
     backupDescription2: "PS: Verlaufs- und Ereignisdaten sind nicht enthalten.",
     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.",
     "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.",
@@ -133,14 +133,14 @@ 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 das 2FA funktioniert",
     "Verify Token": "Token verifizieren",
     "Setup 2FA": "2FA Einrichten",
     "Enable 2FA": "2FA Aktivieren",
     "Disable 2FA": "2FA deaktivieren",
     "2FA Settings": "2FA Einstellungen",
-    confirmEnableTwoFAMsg: "Bist du sicher das du 2FA aktivieren möchtest?",
-    confirmDisableTwoFAMsg: "Bist du sicher das du 2FA deaktivieren möchtest?",
+    confirmEnableTwoFAMsg: "Bist du sicher, dass du 2FA aktivieren möchtest?",
+    confirmDisableTwoFAMsg: "Bist du sicher, dass du 2FA deaktivieren möchtest?",
     tokenValidSettingsMsg: "Token gültig! Du kannst jetzt die 2FA Einstellungen speichern.",
     "Two Factor Authentication": "Zwei Faktor Authentifizierung",
     Active: "Aktiv",
@@ -162,7 +162,7 @@ export default {
     Purple: "Lila",
     Pink: "Pink",
     "Search...": "Suchen...",
-    "Heartbeat Retry Interval": "Takt-Wiederholungsintervall",
+    "Heartbeat Retry Interval": "Heartbeat-Wiederholungsintervall",
     retryCheckEverySecond: "Versuche alle {0} Sekunden",
     "Import Backup": "Import Backup",
     "Export Backup": "Export Backup",
@@ -178,10 +178,10 @@ export default {
     "Add a monitor": "Monitor hinzufügen",
     "Edit Status Page": "Bearbeite Statusseite",
     "Go to Dashboard": "Gehe zum Dashboard",
-    "Status Page": "Status Page",
+    "Status Page": "Status Seite",
     telegram: "Telegram",
     webhook: "Webhook",
-    smtp: "Email (SMTP)",
+    smtp: "E-Mail (SMTP)",
     discord: "Discord",
     teams: "Microsoft Teams",
     signal: "Signal",
@@ -193,7 +193,7 @@ export default {
     octopush: "Octopush",
     promosms: "PromoSMS",
     lunasea: "LunaSea",
-    apprise: "Apprise (Support 50+ Notification services)",
+    apprise: "Apprise (Unterstützung für 50+ Benachrichtigungsdienste)",
     pushbullet: "Pushbullet",
     line: "Line Messenger",
     mattermost: "Mattermost",