From 53df9a36e32b6a948f8af0a6ccbb72c1a4ec25a5 Mon Sep 17 00:00:00 2001
From: Denis <github@ggl.ledeuns.net>
Date: Tue, 11 Jan 2022 10:07:00 +0100
Subject: [PATCH 1/5] reintroduce exports.FBSD

---
 server/util-server.js | 1 +
 1 file changed, 1 insertion(+)

diff --git a/server/util-server.js b/server/util-server.js
index 35aeeb50..2264ebea 100644
--- a/server/util-server.js
+++ b/server/util-server.js
@@ -15,6 +15,7 @@ const nodeJsUtil = require("util");
 exports.WIN = /^win/.test(process.platform);
 exports.LIN = /^linux/.test(process.platform);
 exports.MAC = /^darwin/.test(process.platform);
+exports.FBSD = /^freebsd/.test(process.platform);
 exports.BSD = /bsd$/.test(process.platform);
 
 /**

From 6bda5c6329851ce859e9ff67f1e73df30125b888 Mon Sep 17 00:00:00 2001
From: Denis <github@ggl.ledeuns.net>
Date: Tue, 11 Jan 2022 13:39:45 +0100
Subject: [PATCH 2/5] update comment

---
 extra/healthcheck.js  | 2 +-
 server/server.js      | 2 +-
 server/util-server.js | 1 -
 3 files changed, 2 insertions(+), 3 deletions(-)

diff --git a/extra/healthcheck.js b/extra/healthcheck.js
index 06c87394..c1a1057d 100644
--- a/extra/healthcheck.js
+++ b/extra/healthcheck.js
@@ -20,7 +20,7 @@ if (sslKey && sslCert) {
 // Dual-stack support for (::)
 let hostname = process.env.UPTIME_KUMA_HOST;
 
-// Also read HOST if not FreeBSD, as HOST is a system environment variable in FreeBSD
+// Also read HOST if not *BSD, as HOST is a system environment variable in FreeBSD
 if (!hostname && !BSD) {
     hostname = process.env.HOST;
 }
diff --git a/server/server.js b/server/server.js
index f4e2b72a..6e82e8dc 100644
--- a/server/server.js
+++ b/server/server.js
@@ -65,7 +65,7 @@ console.info("Version: " + checkVersion.version);
 // Dual-stack support for (::)
 let hostname = process.env.UPTIME_KUMA_HOST || args.host;
 
-// Also read HOST if not FreeBSD, as HOST is a system environment variable in FreeBSD
+// Also read HOST if not *BSD, as HOST is a system environment variable in FreeBSD
 if (!hostname && !FBSD) {
     hostname = process.env.HOST;
 }
diff --git a/server/util-server.js b/server/util-server.js
index 2264ebea..35aeeb50 100644
--- a/server/util-server.js
+++ b/server/util-server.js
@@ -15,7 +15,6 @@ const nodeJsUtil = require("util");
 exports.WIN = /^win/.test(process.platform);
 exports.LIN = /^linux/.test(process.platform);
 exports.MAC = /^darwin/.test(process.platform);
-exports.FBSD = /^freebsd/.test(process.platform);
 exports.BSD = /bsd$/.test(process.platform);
 
 /**

From 0f822d3b2a5b6b84e37884003122afcda83692c0 Mon Sep 17 00:00:00 2001
From: Denis <github@ggl.ledeuns.net>
Date: Tue, 11 Jan 2022 13:42:51 +0100
Subject: [PATCH 3/5] FBSD does not exists anymore

---
 server/server.js | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/server/server.js b/server/server.js
index 6e82e8dc..25929fc2 100644
--- a/server/server.js
+++ b/server/server.js
@@ -66,7 +66,7 @@ console.info("Version: " + checkVersion.version);
 let hostname = process.env.UPTIME_KUMA_HOST || args.host;
 
 // Also read HOST if not *BSD, as HOST is a system environment variable in FreeBSD
-if (!hostname && !FBSD) {
+if (!hostname && !BSD) {
     hostname = process.env.HOST;
 }
 

From ed64853125bac90df2198127822feef5c453d684 Mon Sep 17 00:00:00 2001
From: Louis <louislam@users.noreply.github.com>
Date: Wed, 12 Jan 2022 01:44:01 +0800
Subject: [PATCH 4/5] Keep FBSD, BSD for ping only

---
 extra/healthcheck.js  | 4 ++--
 server/server.js      | 6 +++---
 server/util-server.js | 1 +
 3 files changed, 6 insertions(+), 5 deletions(-)

diff --git a/extra/healthcheck.js b/extra/healthcheck.js
index c1a1057d..7c3a7eb4 100644
--- a/extra/healthcheck.js
+++ b/extra/healthcheck.js
@@ -1,7 +1,7 @@
 /*
  * This script should be run after a period of time (180s), because the server may need some time to prepare.
  */
-const { BSD } = require("../server/util-server");
+const { FBSD } = require("../server/util-server");
 
 process.env.NODE_TLS_REJECT_UNAUTHORIZED = "0";
 
@@ -21,7 +21,7 @@ if (sslKey && sslCert) {
 let hostname = process.env.UPTIME_KUMA_HOST;
 
 // Also read HOST if not *BSD, as HOST is a system environment variable in FreeBSD
-if (!hostname && !BSD) {
+if (!hostname && !FBSD) {
     hostname = process.env.HOST;
 }
 
diff --git a/server/server.js b/server/server.js
index 25929fc2..868bbd5e 100644
--- a/server/server.js
+++ b/server/server.js
@@ -41,7 +41,7 @@ console.log("Importing this project modules");
 debug("Importing Monitor");
 const Monitor = require("./model/monitor");
 debug("Importing Settings");
-const { getSettings, setSettings, setting, initJWTSecret, checkLogin, startUnitTest, BSD, errorLog } = require("./util-server");
+const { getSettings, setSettings, setting, initJWTSecret, checkLogin, startUnitTest, FBSD, errorLog } = require("./util-server");
 
 debug("Importing Notification");
 const { Notification } = require("./notification");
@@ -65,8 +65,8 @@ console.info("Version: " + checkVersion.version);
 // Dual-stack support for (::)
 let hostname = process.env.UPTIME_KUMA_HOST || args.host;
 
-// Also read HOST if not *BSD, as HOST is a system environment variable in FreeBSD
-if (!hostname && !BSD) {
+// Also read HOST if not FreeBSD, as HOST is a system environment variable in FreeBSD
+if (!hostname && !FBSD) {
     hostname = process.env.HOST;
 }
 
diff --git a/server/util-server.js b/server/util-server.js
index 35aeeb50..2264ebea 100644
--- a/server/util-server.js
+++ b/server/util-server.js
@@ -15,6 +15,7 @@ const nodeJsUtil = require("util");
 exports.WIN = /^win/.test(process.platform);
 exports.LIN = /^linux/.test(process.platform);
 exports.MAC = /^darwin/.test(process.platform);
+exports.FBSD = /^freebsd/.test(process.platform);
 exports.BSD = /bsd$/.test(process.platform);
 
 /**

From 06aab3dee8a83600c7d7b2b7683ef01e3082f525 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C5=81ukasz=20Szczepa=C5=84ski?= <l.szczepanski@webd.pl>
Date: Wed, 12 Jan 2022 09:48:37 +0100
Subject: [PATCH 5/5] Added missing text and fix typos

---
 src/languages/pl.js | 67 +++++++++++++++++++++++++++++++++++++++------
 1 file changed, 58 insertions(+), 9 deletions(-)

diff --git a/src/languages/pl.js b/src/languages/pl.js
index 69d68193..b352e691 100644
--- a/src/languages/pl.js
+++ b/src/languages/pl.js
@@ -22,8 +22,8 @@ export default {
     confirmClearStatisticsMsg: "Jesteś pewien, że chcesz usunąć WSZYSTKIE statystyki?",
     importHandleDescription: "Wybierz 'Pomiń istniejące', jeśli chcesz pominąć każdy monitor lub powiadomienie o tej samej nazwie. 'Nadpisz' spowoduje usunięcie każdego istniejącego monitora i powiadomienia.",
     confirmImportMsg: "Czy na pewno chcesz zaimportować kopię zapasową? Upewnij się, że wybrałeś właściwą opcję importu.",
-    twoFAVerifyLabel: "Proszę podaj swój token 2FA, aby sprawdzić czy 2FA działa.",
-    tokenValidSettingsMsg: "Token jest prawdiłowy! Teraz możesz zapisać ustawienia 2FA.",
+    twoFAVerifyLabel: "Proszę, podaj swój token 2FA, aby sprawdzić, czy 2FA działa.",
+    tokenValidSettingsMsg: "Token jest prawidłowy! Teraz możesz zapisać ustawienia 2FA.",
     confirmEnableTwoFAMsg: "Jesteś pewien, że chcesz włączyć 2FA?",
     confirmDisableTwoFAMsg: "Jesteś pewien, że chcesz wyłączyć 2FA?",
     Settings: "Ustawienia",
@@ -68,7 +68,7 @@ export default {
     URL: "URL",
     Hostname: "Hostname",
     Port: "Port",
-    "Heartbeat Interval": "Czętotliwość bicia serca",
+    "Heartbeat Interval": "Częstotliwość bicia serca",
     Retries: "Prób",
     "Heartbeat Retry Interval": "Częstotliwość ponawiania bicia serca",
     Advanced: "Zaawansowane",
@@ -110,7 +110,7 @@ export default {
     "No Monitors, please": "Brak monitorów, proszę",
     "add one": "dodać jeden",
     "Notification Type": "Rodzaj powiadomienia",
-    Email: "Email",
+    Email: "E-mail",
     Test: "Test",
     "Certificate Info": "Informacje o certyfikacie",
     "Resolver Server": "Serwer rozwiązywania nazw",
@@ -188,13 +188,13 @@ export default {
     "Chat ID": "Identyfikator czatu",
     supportTelegramChatID: "Czat wsparcia technicznego / Bezpośrednia rozmowa / Czat grupowy",
     wayToGetTelegramChatID: "Możesz uzyskać swój identyfikator czatu, wysyłając wiadomość do bota i przechodząc pod ten adres URL, aby wyświetlić identyfikator czatu:",
-    "YOUR BOT TOKEN HERE": "TWOJ TOKEN BOTA",
+    "YOUR BOT TOKEN HERE": "TWÓJ TOKEN BOTA",
     chatIDNotFound: "Identyfikator czatu nie znaleziony, najpierw napisz do bota",
     webhook: "Webhook",
     "Post URL": "Adres URL",
     "Content Type": "Rodzaj danych",
     webhookJsonDesc: "{0} jest dobry w przypadku serwerów HTTP, takich jak express.js",
-    webhookFormDataDesc: "{multipart} jest dobry dla PHP, musisz jedynie przetowrzyć dane przez {decodeFunction}",
+    webhookFormDataDesc: "{multipart} jest dobry dla PHP, musisz jedynie przetworzyć dane przez {decodeFunction}",
     smtp: "Email (SMTP)",
     secureOptionNone: "Brak / STARTTLS (25, 587)",
     secureOptionTLS: "TLS (465)",
@@ -205,7 +205,7 @@ export default {
     smtpBCC: "UDW",
     discord: "Discord",
     "Discord Webhook URL": "URL webhook Discorda",
-    wayToGetDiscordURL: "Możesz go uzyskać przechodząc do Ustawienia serwera -> Integracje -> Tworzenie webhooka",
+    wayToGetDiscordURL: "Możesz go uzyskać, przechodząc do Ustawienia serwera -> Integracje -> Tworzenie webhooka",
     "Bot Display Name": "Wyświetlana nazwa bota",
     "Prefix Custom Message": "Własny początek wiadomości",
     "Hello @everyone is...": "Hej {'@'}everyone ...",
@@ -237,6 +237,7 @@ export default {
     promosms: "PromoSMS",
     lunasea: "LunaSea",
     apprise: "Apprise (obsługuje 50+ usług powiadomień)",
+    GoogleChat: "Google Chat (Wyłącznie Google Workspace)",
     pushbullet: "Pushbullet",
     line: "Line Messenger",
     mattermost: "Mattermost",
@@ -259,7 +260,7 @@ export default {
     "Read more:": "Czytaj dalej: {0}",
     "Status:": "Status: {0}",
     "Read more": "Czytaj dalej",
-    appriseInstalled: "Apprise jest zostało zainstalowane.",
+    appriseInstalled: "Apprise jest zainstalowane.",
     appriseNotInstalled: "Apprise nie zostało zainstalowane. {0}",
     "Access Token": "Token dostępu",
     "Channel access token": "Token dostępu kanału",
@@ -289,7 +290,7 @@ export default {
     "Feishu WebHookUrl": "Feishu WebHookURL",
     matrixHomeserverURL: "Adres URL serwera domowego (z http(s):// i opcjonalnie port)",
     "Internal Room Id": "Wewnętrzne ID pokoju",
-    matrixDesc1: "Możesz znaleźć wewnętrzne ID pokoju patrząc w zaawansowanej sekcji ustawień pokoju w twoim kliencie Matrix. Powinien on wyglądać jak !QMdRCpUIfLwsfjxye6:home.server.",
+    matrixDesc1: "Możesz znaleźć wewnętrzne ID pokoju, patrząc w zaawansowanej sekcji ustawień pokoju w twoim kliencie Matrix. Powinien on wyglądać jak !QMdRCpUIfLwsfjxye6:home.server.",
     matrixDesc2: "Jest wysoce zalecane, abyś stworzył nowego użytkownika i nie używał tokena dostępu swojego użytkownika Matrix, ponieważ pozwoli on na pełny dostęp do twojego konta i wszystkich pokoi, do których dołączyłeś. Zamiast tego, utwórz nowego użytkownika i zaproś go tylko do pokoju, w którym chcesz otrzymywać powiadomienia. Możesz uzyskać token dostępu przez uruchomienie {0}",
     Method: "Metoda",
     Body: "Treść",
@@ -305,6 +306,44 @@ export default {
     steamApiKeyDescription: "Do monitorowania serwera gier Steam potrzebny jest klucz Steam Web-API. Możesz zarejestrować swój klucz API tutaj: ",
     "Current User": "Aktualny użytkownik",
     recent: "Ostatnie",
+    Done: "Zrobione",
+    Info: "Info",
+    Security: "Bezpieczeństwo",
+    "Steam API Key": "Klucz Steam API",
+    "Shrink Database": "Zmniejsz Bazę Danych",
+    "Pick a RR-Type...": "Wybierz Typ RR...",
+    "Pick Accepted Status Codes...": "Pick Accepted Status Codes...",
+    Default: "Default",
+    "HTTP Options": "Opcje HTTP",
+    "Create Incident": "Stwórz Incydent",
+    Title: "Tytuł",
+    Content: "Treść",
+    Style: "Styl",
+    info: "info",
+    warning: "ostrzeżenie",
+    danger: "niebezpieczeństwo",
+    primary: "podstawowy",
+    light: "jasny",
+    dark: "ciemny",
+    Post: "Wyślij",
+    "Please input title and content": "Podaj tytuł i treść",
+    Created: "Stworzony",
+    "Last Updated": "Ostatnio Zaktualizowany",
+    Unpin: "Odepnij",
+    "Switch to Light Theme": "Przełącz na Jasny Motyw",
+    "Switch to Dark Theme": "Przełącz na Ciemny Motyw",
+    "Show Tags": "Pokaż Tagi",
+    "Hide Tags": "Ukryj Tagi",
+    Description: "Opis",
+    "No monitors available.": "Brak dostępnych monitorów.",
+    "Add one": "Dodaj jeden",
+    "No Monitors": "Brak Monitorów",
+    "Untitled Group": "Nienazwana grupa",
+    Services: "Usługi",
+    Discard: "Odrzuć",
+    Cancel: "Anuluj",
+    "Powered by": "Napędzane przez",
+    shrinkDatabaseDescription: "Uruchum VACUUM na bazie SQLite. Jeżeli twoja baza została stworzona po wersji 1.10.0, to posiada już włączoną opcję AUTO_VACUUM i stosowanie ręcznego oczyszczania nie jest potrzbne.",
     clicksendsms: "ClickSend SMS",
     apiCredentials: "Poświadczenia API",
     serwersms: "SerwerSMS.pl",
@@ -312,4 +351,14 @@ export default {
     serwersmsAPIPassword: "Hasło API",
     serwersmsPhoneNumber: "Numer telefonu",
     serwersmsSenderName: "Nazwa nadawcy (zatwierdzona w panelu klienta)",
+    "stackfield": "Stackfield",
+    smtpDkimSettings: "Ustawienia DKIM",
+    smtpDkimDesc: "Zapoznaj się z Nodemailer DKIM {0}, aby dowiedzieć się więcej",
+    documentation: "dokumentacja",
+    smtpDkimDomain: "Nazwa Domeny",
+    smtpDkimKeySelector: "Selektor klucza",
+    smtpDkimPrivateKey: "Klucz Prywatny",
+    smtpDkimHashAlgo: "Algorytm Hashowania (Opcjonalne)",
+    smtpDkimheaderFieldNames: "Klucze nagłówka do podpisu (Opcjonalne)",
+    smtpDkimskipFields: "Klucze nagłówka do pominięcia (Opcjonalne)",
 };