{{ $t("No Monitors, please") }} {{ $t("add one") }}
@@ -163,56 +163,6 @@ export default {
max-width: 15em;
}
-.list {
- &.scrollbar {
- min-height: calc(100vh - 240px);
- max-height: calc(100vh - 30px);
- overflow-y: auto;
- position: sticky;
- top: 10px;
- }
-
- .item {
- display: block;
- text-decoration: none;
- padding: 13px 15px 10px 15px;
- border-radius: 10px;
- transition: all ease-in-out 0.15s;
-
- &.disabled {
- opacity: 0.3;
- }
-
- .info {
- white-space: nowrap;
- overflow: hidden;
- text-overflow: ellipsis;
- }
-
- &:hover {
- background-color: $highlight-white;
- }
-
- &.active {
- background-color: #cdf8f4;
- }
- }
-}
-
-.dark {
- .list {
- .item {
- &:hover {
- background-color: $dark-bg2;
- }
-
- &.active {
- background-color: $dark-bg2;
- }
- }
- }
-}
-
.monitorItem {
width: 100%;
}
diff --git a/src/components/PublicGroupList.vue b/src/components/PublicGroupList.vue
new file mode 100644
index 000000000..23d19e6cd
--- /dev/null
+++ b/src/components/PublicGroupList.vue
@@ -0,0 +1,144 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ $t("No Monitors") }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ monitor.element.name }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/i18n.js b/src/i18n.js
index fe2612fbc..d5248c6bd 100644
--- a/src/i18n.js
+++ b/src/i18n.js
@@ -1,8 +1,10 @@
import { createI18n } from "vue-i18n";
+import bgBG from "./languages/bg-BG";
import daDK from "./languages/da-DK";
import deDE from "./languages/de-DE";
import en from "./languages/en";
import esEs from "./languages/es-ES";
+import ptBR from "./languages/pt-BR";
import etEE from "./languages/et-EE";
import frFR from "./languages/fr-FR";
import itIT from "./languages/it-IT";
@@ -21,9 +23,11 @@ import zhHK from "./languages/zh-HK";
const languageList = {
en,
"zh-HK": zhHK,
+ "bg-BG": bgBG,
"de-DE": deDE,
"nl-NL": nlNL,
"es-ES": esEs,
+ "pt-BR": ptBR,
"fr-FR": frFR,
"it-IT": itIT,
"ja": ja,
@@ -43,6 +47,6 @@ export const i18n = createI18n({
locale: localStorage.locale || "en",
fallbackLocale: "en",
silentFallbackWarn: true,
- silentTranslationWarn: false,
+ silentTranslationWarn: true,
messages: languageList,
});
diff --git a/src/icon.js b/src/icon.js
index c824210b2..67eb2a769 100644
--- a/src/icon.js
+++ b/src/icon.js
@@ -1,4 +1,8 @@
import { library } from "@fortawesome/fontawesome-svg-core";
+import { FontAwesomeIcon } from "@fortawesome/vue-fontawesome";
+
+// Add Free Font Awesome Icons
+// https://fontawesome.com/v5.15/icons?d=gallery&p=2&s=solid&m=free
import {
faArrowAltCircleUp,
faCog,
@@ -12,13 +16,19 @@ import {
faSearch,
faTachometerAlt,
faTimes,
- faTrash
+ faTimesCircle,
+ faTrash,
+ faCheckCircle,
+ faStream,
+ faSave,
+ faExclamationCircle,
+ faBullhorn,
+ faArrowsAltV,
+ faUnlink,
+ faQuestionCircle,
+ faImages, faUpload,
} from "@fortawesome/free-solid-svg-icons";
-//import { fa } from '@fortawesome/free-regular-svg-icons'
-import { FontAwesomeIcon } from "@fortawesome/vue-fontawesome";
-// Add Free Font Awesome Icons here
-// https://fontawesome.com/v5.15/icons?d=gallery&p=2&s=solid&m=free
library.add(
faArrowAltCircleUp,
faCog,
@@ -32,7 +42,18 @@ library.add(
faSearch,
faTachometerAlt,
faTimes,
+ faTimesCircle,
faTrash,
+ faCheckCircle,
+ faStream,
+ faSave,
+ faExclamationCircle,
+ faBullhorn,
+ faArrowsAltV,
+ faUnlink,
+ faQuestionCircle,
+ faImages,
+ faUpload,
);
export { FontAwesomeIcon };
diff --git a/src/languages/bg-BG.js b/src/languages/bg-BG.js
new file mode 100644
index 000000000..fcf266063
--- /dev/null
+++ b/src/languages/bg-BG.js
@@ -0,0 +1,181 @@
+export default {
+ languageName: "Български",
+ checkEverySecond: "Проверявай на всеки {0} секунди.",
+ retryCheckEverySecond: "Повторен опит на всеки {0} секунди.",
+ retriesDescription: "Максимакен брой опити преди услугата да бъде маркирана като недостъпна и да бъде изпратено известие",
+ ignoreTLSError: "Игнорирай TLS/SSL грешки за HTTPS уебсайтове",
+ upsideDownModeDescription: "Обърни статуса от достъпен на недостъпен. Ако услугата е достъпна се вижда НЕДОСТЪПНА.",
+ maxRedirectDescription: "Максимален брой пренасочвания, които да бъдат следвани. Въведете 0 за да изключите пренасочване.",
+ acceptedStatusCodesDescription: "Изберете статус кодове, които се считат за успешен отговор.",
+ passwordNotMatchMsg: "Повторената парола не съвпада.",
+ notificationDescription: "Моля, задайте известието към монитор(и), за да функционира.",
+ keywordDescription: "Търсете ключова дума в обикновен html или JSON отговор - чувствителна е към регистъра",
+ pauseDashboardHome: "Пауза",
+ deleteMonitorMsg: "Наистина ли желаете да изтриете този монитор?",
+ deleteNotificationMsg: "Наистина ли желаете да изтриете известието за всички монитори?",
+ resoverserverDescription: "Cloudflare е сървърът по подразбиране, можете да промените сървъра по всяко време.",
+ rrtypeDescription: "Изберете ресурсния запис, който желаете да наблюдавате",
+ pauseMonitorMsg: "Наистина ли желаете да поставите в режим пауза?",
+ enableDefaultNotificationDescription: "За всеки нов монитор това известие ще бъде активирано по подразбиране. Можете да изключите известието за всеки отделен монитор.",
+ clearEventsMsg: "Наистина ли желаете да изтриете всички събития за този монитор?",
+ clearHeartbeatsMsg: "Наистина ли желаете да изтриете всички записи за честотни проверки на този монитор?",
+ confirmClearStatisticsMsg: "Наистина ли желаете да изтриете всички статистически данни?",
+ importHandleDescription: "Изберете 'Пропусни съществуващите', ако искате да пропуснете всеки монитор или известие със същото име. 'Презапис' ще изтрие всеки съществуващ монитор и известие.",
+ confirmImportMsg: "Сигурни ли сте за импортирането на архива? Моля, уверете се, че сте избрали правилната опция за импортиране.",
+ twoFAVerifyLabel: "Моля, въведете вашия токен код, за да проверите дали 2FA работи",
+ tokenValidSettingsMsg: "Токен кодът е валиден! Вече можете да запазите настройките за 2FA.",
+ confirmEnableTwoFAMsg: "Сигурни ли сте, че желаете да активирате 2FA?",
+ confirmDisableTwoFAMsg: "Сигурни ли сте, че желаете да изключите 2FA?",
+ Settings: "Настройки",
+ Dashboard: "Табло",
+ "New Update": "Нова актуализация",
+ Language: "Език",
+ Appearance: "Изглед",
+ Theme: "Тема",
+ General: "Общи",
+ Version: "Версия",
+ "Check Update On GitHub": "Провери за актуализация в GitHub",
+ List: "Списък",
+ Add: "Добави",
+ "Add New Monitor": "Добави монитор",
+ "Quick Stats": "Кратка статистика",
+ Up: "Достъпни",
+ Down: "Недостъпни",
+ Pending: "В изчакване",
+ Unknown: "Неизвестни",
+ Pause: "В пауза",
+ Name: "Име",
+ Status: "Статус",
+ DateTime: "Дата и час",
+ Message: "Съобщение",
+ "No important events": "Няма важни събития",
+ Resume: "Възобнови",
+ Edit: "Редактирай",
+ Delete: "Изтрий",
+ Current: "Текущ",
+ Uptime: "Време на работа",
+ "Cert Exp.": "Вал. сертификат",
+ days: "дни",
+ day: "ден",
+ "-day": "-ден",
+ hour: "час",
+ "-hour": "-час",
+ Response: "Отговор",
+ Ping: "Пинг",
+ "Monitor Type": "Монитор тип",
+ Keyword: "Ключова дума",
+ "Friendly Name": "Псевдоним",
+ URL: "URL Адрес",
+ Hostname: "Име на хост",
+ Port: "Порт",
+ "Heartbeat Interval": "Честота на проверка",
+ Retries: "Повторни опити",
+ "Heartbeat Retry Interval": "Честота на повторните опити",
+ Advanced: "Разширени",
+ "Upside Down Mode": "Обърнат режим",
+ "Max. Redirects": "Макс. брой пренасочвания",
+ "Accepted Status Codes": "Допустими статус кодове",
+ Save: "Запази",
+ Notifications: "Известявания",
+ "Not available, please setup.": "Не е налично. Моля, настройте.",
+ "Setup Notification": "Настройка за известяване",
+ Light: "Светла",
+ Dark: "Тъмна",
+ Auto: "Автоматично",
+ "Theme - Heartbeat Bar": "Тема - поле проверки",
+ Normal: "Нормално",
+ Bottom: "Долу",
+ None: "Без",
+ Timezone: "Часова зона",
+ "Search Engine Visibility": "Видимост за търсачки",
+ "Allow indexing": "Разреши индексиране",
+ "Discourage search engines from indexing site": "Обезкуражи индексирането на сайта от търсачките",
+ "Change Password": "Промени парола",
+ "Current Password": "Текуща парола",
+ "New Password": "Нова парола",
+ "Repeat New Password": "Повторете новата парола",
+ "Update Password": "Актуализирай парола",
+ "Disable Auth": "Изключи удостоверяване",
+ "Enable Auth": "Включи удостоверяване",
+ Logout: "Изход от профила",
+ Leave: "Напускам",
+ "I understand, please disable": "Разбирам. Моля, изключи",
+ Confirm: "Потвърди",
+ Yes: "Да",
+ No: "Не",
+ Username: "Потребител",
+ Password: "Парола",
+ "Remember me": "Запомни ме",
+ Login: "Вход",
+ "No Monitors, please": "Моля, без монитори",
+ "add one": "добави един",
+ "Notification Type": "Тип известяване",
+ Email: "Имейл",
+ Test: "Тест",
+ "Certificate Info": "Информация за сертификат",
+ "Resolver Server": "Преобразуващ (DNS) сървър",
+ "Resource Record Type": "Тип запис",
+ "Last Result": "Последен резултат",
+ "Create your admin account": "Създаване на администриращ акаунт",
+ "Repeat Password": "Повторете паролата",
+ "Import Backup": "Импорт на архив",
+ "Export Backup": "Експорт на архив",
+ Export: "Експорт",
+ Import: "Импорт",
+ respTime: "Време за отговор (ms)",
+ notAvailableShort: "Няма",
+ "Default enabled": "Включен по подразбиране",
+ "Apply on all existing monitors": "Приложи върху всички съществуващи монитори",
+ Create: "Създай",
+ "Clear Data": "Изчисти данни",
+ Events: "Събития",
+ Heartbeats: "Проверки",
+ "Auto Get": "Автоматияно получаване",
+ backupDescription: "Можете да архивирате всички монитори и всички известия в JSON файл.",
+ backupDescription2: "PS: Данни за история и събития не са включени.",
+ backupDescription3: "Чувствителни данни, като токен кодове за известяване, се съдържат в експортирания файл. Моля, бъдете внимателни с неговото съхранение.",
+ alertNoFile: "Моля, изберете файл за импортиране.",
+ alertWrongFileType: "Моля, изберете JSON файл.",
+ "Clear all statistics": "Изчисти всички статистики",
+ "Skip existing": "Пропусни съществуващите",
+ Overwrite: "Презапиши",
+ Options: "Опции",
+ "Keep both": "Запази двете",
+ "Verify Token": "Проверка на токен код",
+ "Setup 2FA": "Настройка 2FA",
+ "Enable 2FA": "Включи 2FA",
+ "Disable 2FA": "Изключи 2FA",
+ "2FA Settings": "Настройки 2FA",
+ "Two Factor Authentication": "Двуфакторно удостоверяване",
+ Active: "Активно",
+ Inactive: "Неактивно",
+ Token: "Токен код",
+ "Show URI": "Покажи URI",
+ 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": "Добави монитор",
+ "Edit Status Page": "Редактирай статус страница",
+ "Go to Dashboard": "Към Таблото",
+};
diff --git a/src/languages/da-DK.js b/src/languages/da-DK.js
index eaba6e2cb..a4df8db8c 100644
--- a/src/languages/da-DK.js
+++ b/src/languages/da-DK.js
@@ -126,47 +126,57 @@ export default {
backupDescription3: "Følsom data, f.eks. underretnings-tokener, er inkluderet i eksportfilen. Gem den sikkert.",
alertNoFile: "Vælg en fil der skal importeres.",
alertWrongFileType: "Vælg venligst en JSON-fil.",
- 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",
+ twoFAVerifyLabel: "Indtast venligst dit token for at bekræfte, at 2FA fungerer",
+ tokenValidSettingsMsg: "Token er gyldigt! Du kan nu gemme 2FA -indstillingerne.",
+ confirmEnableTwoFAMsg: "Er du sikker på at du vil aktivere 2FA?",
+ confirmDisableTwoFAMsg: "Er du sikker på at du vil deaktivere 2FA?",
+ "Apply on all existing monitors": "Anvend på alle eksisterende overvågere",
+ "Verify Token": "Verificere Token",
+ "Setup 2FA": "Opsæt 2FA",
+ "Enable 2FA": "Aktiver 2FA",
+ "Disable 2FA": "Deaktiver 2FA",
+ "2FA Settings": "2FA Indstillinger",
+ "Two Factor Authentication": "To-Faktor Autentificering",
+ Active: "Aktive",
+ Inactive: "Inaktive",
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",
+ "Show URI": "Vis URI",
+ "Clear all statistics": "Ryd alle Statistikker",
+ retryCheckEverySecond: "Prøv igen hvert {0} sekund.",
+ importHandleDescription: "Vælg 'Spring over eksisterende', hvis du vil springe over hver overvåger eller underretning med samme navn. 'Overskriv' sletter alle eksisterende overvågere og underretninger.",
+ confirmImportMsg: "Er du sikker på at importere sikkerhedskopien? Sørg for, at du har valgt den rigtige importindstilling.",
+ "Heartbeat Retry Interval": "Heartbeat Gentagelsesinterval",
+ "Import Backup": "Importer Backup",
+ "Export Backup": "Eksporter Backup",
+ "Skip existing": "Spring over eksisterende",
+ Overwrite: "Overskriv",
+ Options: "Valgmuligheder",
+ "Keep both": "Behold begge",
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",
+ "Add New below or Select...": "Tilføj Nyt nedenfor eller Vælg ...",
+ "Tag with this name already exist.": "Et Tag med dette navn findes allerede.",
+ "Tag with this value already exist.": "Et Tag med denne værdi findes allerede.",
+ color: "farve",
+ "value (optional)": "værdi (valgfri)",
+ Gray: "Grå",
+ Red: "Rød",
Orange: "Orange",
- Green: "Green",
- Blue: "Blue",
+ Green: "Grøn",
+ Blue: "Blå",
Indigo: "Indigo",
- Purple: "Purple",
+ Purple: "Lilla",
Pink: "Pink",
- "Search...": "Search...",
- "Avg. Ping": "Avg. Ping",
- "Avg. Response": "Avg. Response",
-}
+ "Search...": "Søg...",
+ "Avg. Ping": "Gns. Ping",
+ "Avg. Response": "Gns. Respons",
+ "Entry Page": "Entry Side",
+ "statusPageNothing": "Intet her, tilføj venligst en Gruppe eller en Overvåger.",
+ "No Services": "Ingen Tjenester",
+ "All Systems Operational": "Alle Systemer i Drift",
+ "Partially Degraded Service": "Delvist Forringet Service",
+ "Degraded Service": "Forringet Service",
+ "Add Group": "Tilføj Gruppe",
+ "Add a monitor": "Tilføj en Overvåger",
+ "Edit Status Page": "Rediger Statusside",
+ "Go to Dashboard": "Gå til Dashboard",
+};
diff --git a/src/languages/de-DE.js b/src/languages/de-DE.js
index 8f8792853..8f763ddc2 100644
--- a/src/languages/de-DE.js
+++ b/src/languages/de-DE.js
@@ -166,6 +166,16 @@ export default {
retryCheckEverySecond: "Versuche alle {0} Sekunden",
"Import Backup": "Import Backup",
"Export Backup": "Export Backup",
- "Avg. Ping": "Avg. Ping",
- "Avg. Response": "Avg. Response",
-}
+ "Avg. Ping": "Durchsch. Ping",
+ "Avg. Response": "Durchsch. Antwort",
+ "Entry Page": "Einstiegsseite",
+ statusPageNothing: "Nichts ist hier, bitte füge eine Gruppe oder Monitor hinzu.",
+ "No Services": "Keine Dienste",
+ "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",
+ "Go to Dashboard": "Gehe zum Dashboard",
+};
diff --git a/src/languages/en.js b/src/languages/en.js
index 645467978..39464c3f0 100644
--- a/src/languages/en.js
+++ b/src/languages/en.js
@@ -168,6 +168,16 @@ export default {
"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",
// Start notification form
defaultNotificationName: "My {0} Alert ({1})",
here: "here",
@@ -279,4 +289,4 @@ export default {
aboutIconURL: "You can provide a link to a picture in \"Icon URL\" to override the default profile picture. Will not be used if Icon Emoji is set.",
aboutMattermostChannelName: "You can override the default channel that webhook posts to by entering the channel name into \"Channel Name\" field. This needs to be enabled in Mattermost webhook settings. Ex: #other-channel",
// End notification form
-}
+};
diff --git a/src/languages/es-ES.js b/src/languages/es-ES.js
index cb8733792..8d73d2d67 100644
--- a/src/languages/es-ES.js
+++ b/src/languages/es-ES.js
@@ -169,4 +169,14 @@ export default {
"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",
+};
diff --git a/src/languages/et-EE.js b/src/languages/et-EE.js
index 991a6a35e..7ba819a1d 100644
--- a/src/languages/et-EE.js
+++ b/src/languages/et-EE.js
@@ -169,4 +169,14 @@ export default {
"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",
+};
diff --git a/src/languages/fr-FR.js b/src/languages/fr-FR.js
index 0050c5c02..bc3c5d5d4 100644
--- a/src/languages/fr-FR.js
+++ b/src/languages/fr-FR.js
@@ -109,64 +109,74 @@ export default {
respTime: "Temps de réponse (ms)",
notAvailableShort: "N/A",
Create: "Créer",
- 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",
+ 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 ? Are you sure want to delete all heartbeats for this monitor?",
+ confirmClearStatisticsMsg: "tes-vous sûr de vouloir supprimer tous les statistiques ?",
+ "Clear Data": "Effacer les données",
+ Events: "Evénements",
+ Heartbeats: "Vérfications",
"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",
+ 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.",
+ "Default enabled": "Activé par défaut",
+ "Also apply to existing monitors": "S'applique également aux sondes existantes",
+ Export: "Exporter",
+ Import: "Importer",
+ 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.",
+ alertNoFile: "Veuillez sélectionner un fichier à importer.",
+ alertWrongFileType: "Veuillez sélectionner un fichier JSON à importer.",
+ 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.",
+ confirmEnableTwoFAMsg: "Êtes-vous sûr de vouloir activer le 2FA ?",
+ confirmDisableTwoFAMsg: "Êtes-vous sûr de vouloir désactiver le 2FA ?",
+ "Apply on all existing monitors": "Appliquer sur toutes les sondes existantes",
+ "Verify Token": "Vérifier le jeton",
+ "Setup 2FA": "Configurer 2FA",
+ "Enable 2FA": "Activer 2FA",
+ "Disable 2FA": "Désactiver 2FA",
+ "2FA Settings": "Paramètres 2FA",
+ "Two Factor Authentication": "Authentification à deux facteurs",
+ Active: "Actif",
+ Inactive: "Inactif",
+ Token: "Jeton",
+ "Show URI": "Afficher l'URI",
+ "Clear all statistics": "Effacer touutes les statistiques",
+ retryCheckEverySecond: "Réessayer toutes les {0} secondes.",
+ 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.",
+ "Heartbeat Retry Interval": "Réessayer l'intervale de vérification",
+ "Import Backup": "Importation de la sauvegarde",
+ "Export Backup": "Exportation de la sauvegarde",
+ "Skip existing": "Sauter l'existant",
+ Overwrite: "Ecraser",
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",
+ "Keep both": "Garder les deux",
+ Tags: "Étiquettes",
+ "Add New below or Select...": "Ajouter nouveau ci-dessous ou sélectionner...",
+ "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)",
+ Gray: "Gris",
+ Red: "Rouge",
Orange: "Orange",
- Green: "Green",
- Blue: "Blue",
+ Green: "Vert",
+ Blue: "Bleu",
Indigo: "Indigo",
- Purple: "Purple",
- Pink: "Pink",
- "Search...": "Search...",
- "Avg. Ping": "Avg. Ping",
- "Avg. Response": "Avg. Response",
-}
+ Purple: "Violet",
+ Pink: "Rose",
+ "Search...": "Rechercher...",
+ "Avg. Ping": "Ping moyen",
+ "Avg. Response": "Réponse moyenne",
+ "Entry Page": "Page d'accueil",
+ "statusPageNothing": "Rien ici, veuillez ajouter un groupe ou une sonde.",
+ "No Services": "Aucun service",
+ "All Systems Operational": "Tous les systèmes sont opérationnels",
+ "Partially Degraded Service": "Service partiellement dégradé",
+ "Degraded Service": "Service dégradé",
+ "Add Group": "Ajouter un groupe",
+ "Add a monitor": "Ajouter une sonde",
+ "Edit Status Page": "Modifier la page de statut",
+ "Go to Dashboard": "Accéder au tableau de bord",
+};
diff --git a/src/languages/it-IT.js b/src/languages/it-IT.js
index 09d0bece6..9beb9db57 100644
--- a/src/languages/it-IT.js
+++ b/src/languages/it-IT.js
@@ -73,7 +73,7 @@ export default {
"Heartbeat Retry Interval": "Intervallo tra un tentativo di controllo e l'altro",
Advanced: "Avanzate",
"Upside Down Mode": "Modalità capovolta",
- "Max. Redirects": "Redirezionamenti massimi",
+ "Max. Redirects": "Reindirizzamenti massimi",
"Accepted Status Codes": "Codici di stato accettati",
Save: "Salva",
Notifications: "Notifiche",
@@ -166,6 +166,16 @@ export default {
Purple: "Viola",
Pink: "Rosa",
"Search...": "Cerca...",
- "Avg. Ping": "Avg. Ping",
- "Avg. Response": "Avg. Response",
-}
+ "Avg. Ping": "Ping medio",
+ "Avg. Response": "Risposta media",
+ "Entry Page": "Entry Page",
+ "statusPageNothing": "Non c'è nulla qui, aggiungere un gruppo oppure un monitoraggio.",
+ "No Services": "Nessun Servizio",
+ "All Systems Operational": "Tutti i sistemi sono operativi",
+ "Partially Degraded Service": "Servizio parzialmente degradato",
+ "Degraded Service": "Servizio degradato",
+ "Add Group": "Aggiungi Gruppo",
+ "Add a monitor": "Aggiungi un monitoraggio",
+ "Edit Status Page": "Modifica pagina di stato",
+ "Go to Dashboard": "Vai al Cruscotto",
+};
diff --git a/src/languages/ja.js b/src/languages/ja.js
index 44f96ee44..c0985825f 100644
--- a/src/languages/ja.js
+++ b/src/languages/ja.js
@@ -169,4 +169,14 @@ export default {
"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",
+};
diff --git a/src/languages/ko-KR.js b/src/languages/ko-KR.js
index 70948a31d..566f07c16 100644
--- a/src/languages/ko-KR.js
+++ b/src/languages/ko-KR.js
@@ -169,4 +169,14 @@ export default {
"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",
+};
diff --git a/src/languages/nl-NL.js b/src/languages/nl-NL.js
index 7ec386d01..5fa9d4e1a 100644
--- a/src/languages/nl-NL.js
+++ b/src/languages/nl-NL.js
@@ -87,7 +87,7 @@ export default {
"Allow indexing": "Indexering toestaan",
"Discourage search engines from indexing site": "Ontmoedig zoekmachines om de site te indexeren",
"Change Password": "Verander wachtwoord",
- "Current Password": "Huidig wachtwoord",
+ "Current Password": "Huidig wachtwoord",
"New Password": "Nieuw wachtwoord",
"Repeat New Password": "Herhaal nieuw wachtwoord",
"Update Password": "Vernieuw wachtwoord",
@@ -169,4 +169,14 @@ export default {
"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",
+};
diff --git a/src/languages/pl.js b/src/languages/pl.js
index 2b34492e6..006039144 100644
--- a/src/languages/pl.js
+++ b/src/languages/pl.js
@@ -1,6 +1,6 @@
export default {
languageName: "Polski",
- checkEverySecond: "Sprawdzaj co {0} sekund.",
+ checkEverySecond: "Sprawdzam co {0} sekund.",
retriesDescription: "Maksymalna liczba powtórzeń, zanim usługa zostanie oznaczona jako wyłączona i zostanie wysłane powiadomienie",
ignoreTLSError: "Ignoruj błąd TLS/SSL dla stron HTTPS",
upsideDownModeDescription: "Odwróć status do góry nogami. Jeśli usługa jest osiągalna, to jest oznaczona jako niedostępna.",
@@ -169,4 +169,14 @@ export default {
"Search...": "Szukaj...",
"Avg. Ping": "Średni ping",
"Avg. Response": "Średnia odpowiedź",
-}
+ "Entry Page": "Wejdź na stronę",
+ "statusPageNothing": "Nic tu nie ma, dodaj monitor lub grupę.",
+ "No Services": "Brak usług",
+ "All Systems Operational": "Wszystkie systemy działają",
+ "Partially Degraded Service": "Częściowy błąd usługi",
+ "Degraded Service": "Błąd usługi",
+ "Add Group": "Dodaj grupę",
+ "Add a monitor": "Dodaj monitoe",
+ "Edit Status Page": "Edytuj stronę statusu",
+ "Go to Dashboard": "Idź do panelu",
+};
diff --git a/src/languages/pt-BR.js b/src/languages/pt-BR.js
new file mode 100644
index 000000000..4f65f6038
--- /dev/null
+++ b/src/languages/pt-BR.js
@@ -0,0 +1,182 @@
+export default {
+ languageName: "Português (Brasileiro)",
+ checkEverySecond: "Verificar cada {0} segundos.",
+ retryCheckEverySecond: "Tentar novamente a cada {0} segundos.",
+ retriesDescription: "Máximo de tentativas antes que o serviço seja marcado como inativo e uma notificação seja enviada",
+ ignoreTLSError: "Ignorar erros TLS/SSL para sites HTTPS",
+ upsideDownModeDescription: "Inverta o status de cabeça para baixo. Se o serviço estiver acessível, ele está OFFLINE.",
+ maxRedirectDescription: "Número máximo de redirecionamentos a seguir. Defina como 0 para desativar redirecionamentos.",
+ acceptedStatusCodesDescription: "Selecione os códigos de status que são considerados uma resposta bem-sucedida.",
+ passwordNotMatchMsg: "A senha repetida não corresponde.",
+ notificationDescription: "Atribua uma notificação ao (s) monitor (es) para que funcione.",
+ keywordDescription: "Pesquise a palavra-chave em html simples ou resposta JSON e diferencia maiúsculas de minúsculas",
+ pauseDashboardHome: "Pausar",
+ deleteMonitorMsg: "Tem certeza de que deseja excluir este monitor?",
+ deleteNotificationMsg: "Tem certeza de que deseja excluir esta notificação para todos os monitores?",
+ resoverserverDescription: "Cloudflare é o servidor padrão, você pode alterar o servidor resolvedor a qualquer momento.",
+ rrtypeDescription: "Selecione o RR-Type que você deseja monitorar",
+ pauseMonitorMsg: "Tem certeza que deseja fazer uma pausa?",
+ enableDefaultNotificationDescription: "Para cada novo monitor, esta notificação será habilitada por padrão. Você ainda pode desativar a notificação separadamente para cada monitor.",
+ clearEventsMsg: "Tem certeza de que deseja excluir todos os eventos deste monitor?",
+ clearHeartbeatsMsg: "Tem certeza de que deseja excluir todos os heartbeats deste monitor?",
+ confirmClearStatisticsMsg: "Tem certeza que deseja excluir TODAS as estatísticas?",
+ importHandleDescription: "Escolha 'Ignorar existente' se quiser ignorar todos os monitores ou notificações com o mesmo nome. 'Substituir' excluirá todos os monitores e notificações existentes.",
+ confirmImportMsg: "Tem certeza que deseja importar o backup? Certifique-se de que selecionou a opção de importação correta.",
+ twoFAVerifyLabel: "Digite seu token para verificar se 2FA está funcionando",
+ tokenValidSettingsMsg: "O token é válido! Agora você pode salvar as configurações 2FA.",
+ confirmEnableTwoFAMsg: "Tem certeza de que deseja habilitar 2FA?",
+ confirmDisableTwoFAMsg: "Tem certeza de que deseja desativar 2FA?",
+ Settings: "Configurações",
+ Dashboard: "Dashboard",
+ "New Update": "Nova Atualização",
+ Language: "Linguagem",
+ Appearance: "Aparência",
+ Theme: "Tema",
+ General: "Geral",
+ Version: "Versão",
+ "Check Update On GitHub": "Verificar atualização no Github",
+ List: "Lista",
+ Add: "Adicionar",
+ "Add New Monitor": "Adicionar novo monitor",
+ "Quick Stats": "Estatísticas rápidas",
+ Up: "On",
+ Down: "Off",
+ Pending: "Pendente",
+ Unknown: "Desconhecido",
+ Pause: "Pausar",
+ Name: "Nome",
+ Status: "Status",
+ DateTime: "Data hora",
+ Message: "Mensagem",
+ "No important events": "Nenhum evento importante",
+ Resume: "Resumo",
+ Edit: "Editar",
+ Delete: "Deletar",
+ Current: "Atual",
+ Uptime: "Tempo de atividade",
+ "Cert Exp.": "Cert Exp.",
+ days: "dias",
+ day: "dia",
+ "-day": "-dia",
+ hour: "hora",
+ "-hour": "-hora",
+ Response: "Resposta",
+ Ping: "Ping",
+ "Monitor Type": "Tipo de Monitor",
+ Keyword: "Palavra-Chave",
+ "Friendly Name": "Nome Amigável",
+ URL: "URL",
+ Hostname: "Hostname",
+ Port: "Porta",
+ "Heartbeat Interval": "Intervalo de Heartbeat",
+ Retries: "Novas tentativas",
+ "Heartbeat Retry Interval": "Intervalo de repetição de Heartbeat",
+ Advanced: "Avançado",
+ "Upside Down Mode": "Modo de cabeça para baixo",
+ "Max. Redirects": "Redirecionamento Máx.",
+ "Accepted Status Codes": "Status Code Aceitáveis",
+ Save: "Salvar",
+ Notifications: "Notificações",
+ "Not available, please setup.": "Não disponível, por favor configure.",
+ "Setup Notification": "Configurar Notificação",
+ Light: "Claro",
+ Dark: "Escuro",
+ Auto: "Auto",
+ "Theme - Heartbeat Bar": "Tema - Barra de Heartbeat",
+ Normal: "Normal",
+ Bottom: "Inferior",
+ None: "Nenhum",
+ Timezone: "Fuso horário",
+ "Search Engine Visibility": "Visibilidade do mecanismo de pesquisa",
+ "Allow indexing": "Permitir Indexação",
+ "Discourage search engines from indexing site": "Desencoraje os motores de busca de indexar o site",
+ "Change Password": "Mudar senha",
+ "Current Password": "Senha atual",
+ "New Password": "Nova Senha",
+ "Repeat New Password": "Repetir Nova Senha",
+ "Update Password": "Atualizar Senha",
+ "Disable Auth": "Desativar Autenticação",
+ "Enable Auth": "Ativar Autenticação",
+ Logout: "Deslogar",
+ Leave: "Sair",
+ "I understand, please disable": "Eu entendo, por favor desative.",
+ Confirm: "Confirmar",
+ Yes: "Sim",
+ No: "Não",
+ Username: "Usuário",
+ Password: "Senha",
+ "Remember me": "Lembre-me",
+ Login: "Autenticar",
+ "No Monitors, please": "Nenhum monitor, por favor",
+ "add one": "adicionar um",
+ "Notification Type": "Tipo de Notificação",
+ Email: "Email",
+ Test: "Testar",
+ "Certificate Info": "Info. do Certificado ",
+ "Resolver Server": "Resolver Servidor",
+ "Resource Record Type": "Tipo de registro de aplicação",
+ "Last Result": "Último resultado",
+ "Create your admin account": "Crie sua conta de admin",
+ "Repeat Password": "Repita a senha",
+ "Import Backup": "Importar Backup",
+ "Export Backup": "Exportar Backup",
+ Export: "Exportar",
+ Import: "Importar",
+ respTime: "Tempo de Resp. (ms)",
+ notAvailableShort: "N/A",
+ "Default enabled": "Padrão habilitado",
+ "Apply on all existing monitors": "Aplicar em todos os monitores existentes",
+ Create: "Criar",
+ "Clear Data": "Limpar Dados",
+ Events: "Eventos",
+ Heartbeats: "Heartbeats",
+ "Auto Get": "Obter Automático",
+ backupDescription: "Você pode fazer backup de todos os monitores e todas as notificações em um arquivo JSON.",
+ backupDescription2: "OBS: Os dados do histórico e do evento não estão incluídos.",
+ backupDescription3: "Dados confidenciais, como tokens de notificação, estão incluídos no arquivo de exportação, mantenha-o com cuidado.",
+ alertNoFile: "Selecione um arquivo para importar.",
+ alertWrongFileType: "Selecione um arquivo JSON.",
+ "Clear all statistics": "Limpar todas as estatísticas",
+ "Skip existing": "Pular existente",
+ Overwrite: "Sobrescrever",
+ Options: "Opções",
+ "Keep both": "Manter os dois",
+ "Verify Token": "Verificar Token",
+ "Setup 2FA": "Configurar 2FA",
+ "Enable 2FA": "Ativar 2FA",
+ "Disable 2FA": "Desativar 2FA",
+ "2FA Settings": "Configurações do 2FA ",
+ "Two Factor Authentication": "Autenticação e Dois Fatores",
+ Active: "Ativo",
+ Inactive: "Inativo",
+ Token: "Token",
+ "Show URI": "Mostrar URI",
+ Tags: "Tag",
+ "Add New below or Select...": "Adicionar Novo abaixo ou Selecionar ...",
+ "Tag with this name already exist.": "Já existe uma etiqueta com este nome.",
+ "Tag with this value already exist.": "Já existe uma etiqueta com este valor.",
+ color: "cor",
+ "value (optional)": "valor (opcional)",
+ Gray: "Cinza",
+ Red: "Vermelho",
+ Orange: "Laranja",
+ Green: "Verde",
+ Blue: "Azul",
+ Indigo: "Índigo",
+ Purple: "Roxo",
+ Pink: "Rosa",
+ "Search...": "Buscar...",
+ "Avg. Ping": "Ping Médio.",
+ "Avg. Response": "Resposta Média. ",
+ "Status Page": "Página de Status",
+ "Entry Page": "Página de entrada",
+ statusPageNothing: "Nada aqui, por favor, adicione um grupo ou monitor.",
+ "No Services": "Nenhum Serviço",
+ "All Systems Operational": "Todos os Serviços Operacionais",
+ "Partially Degraded Service": "Serviço parcialmente degradado",
+ "Degraded Service": "Serviço Degradado",
+ "Add Group": "Adicionar Grupo",
+ "Add a monitor": "Adicionar um monitor",
+ "Edit Status Page": "Editar Página de Status",
+ "Go to Dashboard": "Ir para a dashboard",
+};
diff --git a/src/languages/ru-RU.js b/src/languages/ru-RU.js
index 956235de4..1686aec49 100644
--- a/src/languages/ru-RU.js
+++ b/src/languages/ru-RU.js
@@ -1,11 +1,11 @@
export default {
languageName: "Русский",
- checkEverySecond: "Проверять каждые {0} секунд.",
+ checkEverySecond: "проверять каждые {0} секунд",
retriesDescription: "Максимальное количество попыток перед пометкой сервиса как недоступного и отправкой уведомления",
ignoreTLSError: "Игнорировать ошибку TLS/SSL для HTTPS сайтов",
upsideDownModeDescription: "Реверс статуса сервиса. Если сервис доступен, то он помечается как НЕДОСТУПНЫЙ.",
maxRedirectDescription: "Максимальное количество перенаправлений. Поставьте 0, чтобы отключить перенаправления.",
- acceptedStatusCodesDescription: "Выберите коды статусов, которые должны считаться за успешный ответ.",
+ acceptedStatusCodesDescription: "Выберите коды статусов для определения доступности сервиса.",
passwordNotMatchMsg: "Повтор пароля не совпадает.",
notificationDescription: "Привяжите уведомления к мониторам.",
keywordDescription: "Поиск слова в чистом HTML или в JSON-ответе (чувствительно к регистру)",
@@ -16,7 +16,7 @@ export default {
rrtypeDescription: "Выберите тип ресурсной записи, который вы хотите отслеживать",
pauseMonitorMsg: "Вы действительно хотите поставить на паузу?",
Settings: "Настройки",
- Dashboard: "Панель",
+ Dashboard: "Панель мониторов",
"New Update": "Обновление",
Language: "Язык",
Appearance: "Внешний вид",
@@ -28,8 +28,8 @@ export default {
Add: "Добавить",
"Add New Monitor": "Новый монитор",
"Quick Stats": "Статистика",
- Up: "Доступно",
- Down: "Недоступно",
+ Up: "Доступен",
+ Down: "Н/Д",
Pending: "Ожидание",
Unknown: "Неизвестно",
Pause: "Пауза",
@@ -61,7 +61,7 @@ export default {
Retries: "Попыток",
Advanced: "Дополнительно",
"Upside Down Mode": "Режим реверса статуса",
- "Max. Redirects": "Макс. перенаправлений",
+ "Max. Redirects": "Макс. количество перенаправлений",
"Accepted Status Codes": "Допустимые коды статуса",
Save: "Сохранить",
Notifications: "Уведомления",
@@ -112,18 +112,18 @@ export default {
clearEventsMsg: "Вы действительно хотите удалить всю статистику событий данного монитора?",
clearHeartbeatsMsg: "Вы действительно хотите удалить всю статистику опросов данного монитора?",
confirmClearStatisticsMsg: "Вы действительно хотите удалить ВСЮ статистику?",
- "Clear Data": "Очистить статистику",
+ "Clear Data": "Удалить статистику",
Events: "События",
Heartbeats: "Опросы",
"Auto Get": "Авто-получение",
enableDefaultNotificationDescription: "Для каждого нового монитора это уведомление будет включено по умолчанию. Вы всё ещё можете отключить уведомления в каждом мониторе отдельно.",
"Default enabled": "Использовать по умолчанию",
"Also apply to existing monitors": "Применить к существующим мониторам",
- Export: "Экспорт",
- Import: "Импорт",
+ Export: "Резервная копия",
+ Import: "Восстановление",
backupDescription: "Вы можете сохранить резервную копию всех мониторов и уведомлений в виде JSON-файла",
- backupDescription2: "P.S.: История и события сохранены не будут.",
- backupDescription3: "Важные данные, такие как токены уведомлений, добавляются при экспорте, поэтому храните файлы в безопасном месте.",
+ backupDescription2: "P.S. История и события сохранены не будут",
+ backupDescription3: "Важные данные, такие как токены уведомлений, добавляются при экспорте, поэтому храните файлы в безопасном месте",
alertNoFile: "Выберите файл для импорта.",
alertWrongFileType: "Выберите JSON-файл.",
twoFAVerifyLabel: "Пожалуйста, введите свой токен, чтобы проверить работу 2FA",
@@ -141,19 +141,19 @@ export default {
Inactive: "Неактивно",
Token: "Токен",
"Show URI": "Показать URI",
- "Clear all statistics": "Очистить всю статистику",
- retryCheckEverySecond: "Повторять каждые {0} секунд.",
- importHandleDescription: "Выберите 'Пропустить существующие' если вы хотите пропустить каждый монитор или уведомление с таким же именем. 'Перезаписать' удалит каждый существующий монитор или уведомление.",
+ "Clear all statistics": "Удалить всю статистику",
+ retryCheckEverySecond: "повторять каждые {0} секунд",
+ importHandleDescription: "Выберите \"Пропустить существующие\", если вы хотите пропустить каждый монитор или уведомление с таким же именем. \"Перезаписать\" удалит каждый существующий монитор или уведомление и добавит заново. Вариант \"Не проверять\" принудительно восстанавливает все мониторы и уведомления, даже если они уже существуют.",
confirmImportMsg: "Вы действительно хотите восстановить резервную копию? Убедитесь, что вы выбрали подходящий вариант импорта.",
"Heartbeat Retry Interval": "Интервал повтора опроса",
- "Import Backup": "Импорт резервной копии",
- "Export Backup": "Экспорт резервной копии",
+ "Import Backup": "Восстановление резервной копии",
+ "Export Backup": "Резервная копия",
"Skip existing": "Пропустить существующие",
Overwrite: "Перезаписать",
Options: "Опции",
- "Keep both": "Оставить оба",
+ "Keep both": "Не проверять",
Tags: "Теги",
- "Add New below or Select...": "Добавить новое ниже или выбрать...",
+ "Add New below or Select...": "Добавить новый или выбрать...",
"Tag with this name already exist.": "Такой тег уже существует.",
"Tag with this value already exist.": "Тег с таким значением уже существует.",
color: "цвет",
@@ -167,6 +167,21 @@ export default {
Purple: "Пурпурный",
Pink: "Розовый",
"Search...": "Поиск...",
- "Avg. Ping": "Avg. Ping",
- "Avg. Response": "Avg. Response",
-}
+ "Avg. Ping": "Средн. пинг",
+ "Avg. Response": "Средн. ответ",
+ "Entry Page": "Главная страница",
+ statusPageNothing: "Здесь пусто. Добавьте группу или монитор.",
+ "No Services": "Нет сервисов",
+ "All Systems Operational": "Все сервисы работают",
+ "Partially Degraded Service": "Сервисы частично не работают",
+ "Degraded Service": "Все сервисы не работают",
+ "Add Group": "Добавить группу",
+ "Add a monitor": "Добавить монитор",
+ "Edit Status Page": "Редактировать",
+ "Go to Dashboard": "Панель мониторов",
+ "Status Page": "Статус сервисов",
+ "Discard": "Отмена",
+ "Create Incident": "Создать инцидент",
+ "Switch to Dark Theme": "Тёмная тема",
+ "Switch to Light Theme": "Светлая тема",
+};
diff --git a/src/languages/sr-latn.js b/src/languages/sr-latn.js
index 2ebeb32fd..e91c3c28e 100644
--- a/src/languages/sr-latn.js
+++ b/src/languages/sr-latn.js
@@ -169,4 +169,14 @@ export default {
"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",
+};
diff --git a/src/languages/sr.js b/src/languages/sr.js
index b5cf1cb87..602405503 100644
--- a/src/languages/sr.js
+++ b/src/languages/sr.js
@@ -169,4 +169,14 @@ export default {
"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",
+};
diff --git a/src/languages/sv-SE.js b/src/languages/sv-SE.js
index f4c42627e..d7174d340 100644
--- a/src/languages/sv-SE.js
+++ b/src/languages/sv-SE.js
@@ -169,4 +169,14 @@ export default {
"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",
+};
diff --git a/src/languages/tr-TR.js b/src/languages/tr-TR.js
index c521680c9..c7f9af401 100644
--- a/src/languages/tr-TR.js
+++ b/src/languages/tr-TR.js
@@ -168,4 +168,14 @@ export default {
"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",
+};
diff --git a/src/languages/zh-CN.js b/src/languages/zh-CN.js
index c2b3dcc59..e9b1c20e9 100644
--- a/src/languages/zh-CN.js
+++ b/src/languages/zh-CN.js
@@ -126,47 +126,57 @@ export default {
backupDescription3: "导出的文件中可能包含敏感信息,如消息通知的 Token 信息,请小心存放!",
alertNoFile: "请选择一个文件导入",
alertWrongFileType: "请选择一个 JSON 格式的文件",
- 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?",
+ twoFAVerifyLabel: "请输入Token以验证2FA(二次验证)是否正常工作",
+ tokenValidSettingsMsg: "Token有效!您现在可以保存2FA(二次验证)设置",
+ confirmEnableTwoFAMsg: "确定要启用2FA(二次验证)吗?",
+ confirmDisableTwoFAMsg: "确定要禁用2FA(二次验证)吗?",
"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",
+ "Verify Token": "验证Token",
+ "Setup 2FA": "设置2FA",
+ "Enable 2FA": "启用2FA",
+ "Disable 2FA": "禁用2FA",
+ "2FA Settings": "2FA设置",
+ "Two Factor Authentication": "双因素认证",
+ Active: "有效",
+ 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",
-}
+ "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": "平均Ping",
+ "Avg. Response": "平均响应",
+ "Entry Page": "入口页面",
+ "statusPageNothing": "这里什么也没有,请添加一个分组或一个监控项。",
+ "No Services": "无服务",
+ "All Systems Operational": "所有服务运行正常",
+ "Partially Degraded Service": "部分服务出现故障",
+ "Degraded Service": "全部服务出现故障",
+ "Add Group": "新建分组",
+ "Add a monitor": "添加监控项",
+ "Edit Status Page": "编辑状态页",
+ "Go to Dashboard": "前往仪表盘",
+};
diff --git a/src/languages/zh-HK.js b/src/languages/zh-HK.js
index 1e1e0c7dc..f08d6f138 100644
--- a/src/languages/zh-HK.js
+++ b/src/languages/zh-HK.js
@@ -169,4 +169,14 @@ export default {
"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",
+};
diff --git a/src/layouts/Layout.vue b/src/layouts/Layout.vue
index 467ae53a2..c3e863dee 100644
--- a/src/layouts/Layout.vue
+++ b/src/layouts/Layout.vue
@@ -18,7 +18,12 @@
- -
+
-
+
+ {{ $t("Status Page") }}
+
+
+ -
{{ $t("Dashboard") }}
@@ -81,7 +86,7 @@ export default {
},
data() {
- return {}
+ return {};
},
computed: {
@@ -105,29 +110,29 @@ export default {
},
watch: {
- $route(to, from) {
- this.init();
- },
+
},
mounted() {
- this.init();
+
},
methods: {
- init() {
- if (this.$route.name === "root") {
- this.$router.push("/dashboard")
- }
- },
+
},
-}
+};
-
-
-
diff --git a/src/router.js b/src/router.js
index 66d1bc937..5c3fda941 100644
--- a/src/router.js
+++ b/src/router.js
@@ -6,16 +6,24 @@ import DashboardHome from "./pages/DashboardHome.vue";
import Details from "./pages/Details.vue";
import EditMonitor from "./pages/EditMonitor.vue";
import List from "./pages/List.vue";
-import Settings from "./pages/Settings.vue";
+const Settings = () => import("./pages/Settings.vue");
import Setup from "./pages/Setup.vue";
+const StatusPage = () => import("./pages/StatusPage.vue");
+import Entry from "./pages/Entry.vue";
const routes = [
{
path: "/",
+ component: Entry,
+ },
+ {
+ // If it is "/dashboard", the active link is not working
+ // If it is "", it overrides the "/" unexpectedly
+ // Give a random name to solve the problem.
+ path: "/empty",
component: Layout,
children: [
{
- name: "root",
path: "",
component: Dashboard,
children: [
@@ -54,15 +62,21 @@ const routes = [
},
],
},
-
],
-
},
{
path: "/setup",
component: Setup,
},
-]
+ {
+ path: "/status-page",
+ component: StatusPage,
+ },
+ {
+ path: "/status",
+ component: StatusPage,
+ },
+];
export const router = createRouter({
linkActiveClass: "active",
diff --git a/src/util-frontend.js b/src/util-frontend.js
index 333a12fbf..a393ff5ca 100644
--- a/src/util-frontend.js
+++ b/src/util-frontend.js
@@ -3,8 +3,8 @@ import timezone from "dayjs/plugin/timezone";
import utc from "dayjs/plugin/utc";
import timezones from "timezones-list";
-dayjs.extend(utc)
-dayjs.extend(timezone)
+dayjs.extend(utc);
+dayjs.extend(timezone);
function getTimezoneOffset(timeZone) {
const now = new Date();
@@ -28,9 +28,9 @@ export function timezoneList() {
name: `(UTC${display}) ${timezone.tzCode}`,
value: timezone.tzCode,
time: getTimezoneOffset(timezone.tzCode),
- })
+ });
} catch (e) {
- console.log("Skip Timezone: " + timezone.tzCode);
+ // Skipping not supported timezone.tzCode by dayjs
}
}
@@ -44,7 +44,7 @@ export function timezoneList() {
}
return 0;
- })
+ });
return result;
}
diff --git a/src/util.js b/src/util.js
index 14c683218..7e60b3122 100644
--- a/src/util.js
+++ b/src/util.js
@@ -1,70 +1,104 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-exports.getRandomInt = exports.getRandomArbitrary = exports.TimeLogger = exports.polyfill = exports.debug = exports.ucfirst = exports.sleep = exports.flipStatus = exports.PENDING = exports.UP = exports.DOWN = exports.appName = exports.isDev = void 0;
-const _dayjs = require("dayjs");
-const dayjs = _dayjs;
-exports.isDev = process.env.NODE_ENV === "development";
-exports.appName = "Uptime Kuma";
-exports.DOWN = 0;
-exports.UP = 1;
-exports.PENDING = 2;
-function flipStatus(s) {
- if (s === exports.UP) {
- return exports.DOWN;
- }
- if (s === exports.DOWN) {
- return exports.UP;
- }
- return s;
-}
-exports.flipStatus = flipStatus;
-function sleep(ms) {
- return new Promise(resolve => setTimeout(resolve, ms));
-}
-exports.sleep = sleep;
-function ucfirst(str) {
- if (!str) {
- return str;
- }
- const firstLetter = str.substr(0, 1);
- return firstLetter.toUpperCase() + str.substr(1);
-}
-exports.ucfirst = ucfirst;
-function debug(msg) {
- if (exports.isDev) {
- console.log(msg);
- }
-}
-exports.debug = debug;
-function polyfill() {
- if (!String.prototype.replaceAll) {
- String.prototype.replaceAll = function (str, newStr) {
- if (Object.prototype.toString.call(str).toLowerCase() === "[object regexp]") {
- return this.replace(str, newStr);
- }
- return this.replace(new RegExp(str, "g"), newStr);
- };
- }
-}
-exports.polyfill = polyfill;
-class TimeLogger {
- constructor() {
- this.startTime = dayjs().valueOf();
- }
- print(name) {
- if (exports.isDev) {
- console.log(name + ": " + (dayjs().valueOf() - this.startTime) + "ms");
- }
- }
-}
-exports.TimeLogger = TimeLogger;
-function getRandomArbitrary(min, max) {
- return Math.random() * (max - min) + min;
-}
-exports.getRandomArbitrary = getRandomArbitrary;
-function getRandomInt(min, max) {
- min = Math.ceil(min);
- max = Math.floor(max);
- return Math.floor(Math.random() * (max - min + 1)) + min;
-}
-exports.getRandomInt = getRandomInt;
+"use strict";
+// Common Util for frontend and backend
+//
+// DOT NOT MODIFY util.js!
+// Need to run "tsc" to compile if there are any changes.
+//
+// Backend uses the compiled file util.js
+// Frontend uses util.ts
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.getRandomInt = exports.getRandomArbitrary = exports.TimeLogger = exports.polyfill = exports.debug = exports.ucfirst = exports.sleep = exports.flipStatus = exports.STATUS_PAGE_PARTIAL_DOWN = exports.STATUS_PAGE_ALL_UP = exports.STATUS_PAGE_ALL_DOWN = exports.PENDING = exports.UP = exports.DOWN = exports.appName = exports.isDev = void 0;
+const _dayjs = require("dayjs");
+const dayjs = _dayjs;
+exports.isDev = process.env.NODE_ENV === "development";
+exports.appName = "Uptime Kuma";
+exports.DOWN = 0;
+exports.UP = 1;
+exports.PENDING = 2;
+exports.STATUS_PAGE_ALL_DOWN = 0;
+exports.STATUS_PAGE_ALL_UP = 1;
+exports.STATUS_PAGE_PARTIAL_DOWN = 2;
+function flipStatus(s) {
+ if (s === exports.UP) {
+ return exports.DOWN;
+ }
+ if (s === exports.DOWN) {
+ return exports.UP;
+ }
+ return s;
+}
+exports.flipStatus = flipStatus;
+function sleep(ms) {
+ return new Promise(resolve => setTimeout(resolve, ms));
+}
+exports.sleep = sleep;
+/**
+ * PHP's ucfirst
+ * @param str
+ */
+function ucfirst(str) {
+ if (!str) {
+ return str;
+ }
+ const firstLetter = str.substr(0, 1);
+ return firstLetter.toUpperCase() + str.substr(1);
+}
+exports.ucfirst = ucfirst;
+function debug(msg) {
+ if (exports.isDev) {
+ console.log(msg);
+ }
+}
+exports.debug = debug;
+function polyfill() {
+ /**
+ * String.prototype.replaceAll() polyfill
+ * https://gomakethings.com/how-to-replace-a-section-of-a-string-with-another-one-with-vanilla-js/
+ * @author Chris Ferdinandi
+ * @license MIT
+ */
+ if (!String.prototype.replaceAll) {
+ String.prototype.replaceAll = function (str, newStr) {
+ // If a regex pattern
+ if (Object.prototype.toString.call(str).toLowerCase() === "[object regexp]") {
+ return this.replace(str, newStr);
+ }
+ // If a string
+ return this.replace(new RegExp(str, "g"), newStr);
+ };
+ }
+}
+exports.polyfill = polyfill;
+class TimeLogger {
+ constructor() {
+ this.startTime = dayjs().valueOf();
+ }
+ print(name) {
+ if (exports.isDev) {
+ console.log(name + ": " + (dayjs().valueOf() - this.startTime) + "ms");
+ }
+ }
+}
+exports.TimeLogger = TimeLogger;
+/**
+ * Returns a random number between min (inclusive) and max (exclusive)
+ */
+function getRandomArbitrary(min, max) {
+ return Math.random() * (max - min) + min;
+}
+exports.getRandomArbitrary = getRandomArbitrary;
+/**
+ * From: https://stackoverflow.com/questions/1527803/generating-random-whole-numbers-in-javascript-in-a-specific-range
+ *
+ * Returns a random integer between min (inclusive) and max (inclusive).
+ * The value is no lower than min (or the next integer greater than min
+ * if min isn't an integer) and no greater than max (or the next integer
+ * lower than max if max isn't an integer).
+ * Using Math.round() will give you a non-uniform distribution!
+ */
+function getRandomInt(min, max) {
+ min = Math.ceil(min);
+ max = Math.floor(max);
+ return Math.floor(Math.random() * (max - min + 1)) + min;
+}
+exports.getRandomInt = getRandomInt;
diff --git a/src/util.ts b/src/util.ts
index 3b96f7b94..4d68ab4e5 100644
--- a/src/util.ts
+++ b/src/util.ts
@@ -1,7 +1,10 @@
// Common Util for frontend and backend
+//
+// DOT NOT MODIFY util.js!
+// Need to run "tsc" to compile if there are any changes.
+//
// Backend uses the compiled file util.js
// Frontend uses util.ts
-// Need to run "tsc" to compile if there are any changes.
import * as _dayjs from "dayjs";
const dayjs = _dayjs;
@@ -12,6 +15,11 @@ export const DOWN = 0;
export const UP = 1;
export const PENDING = 2;
+export const STATUS_PAGE_ALL_DOWN = 0;
+export const STATUS_PAGE_ALL_UP = 1;
+export const STATUS_PAGE_PARTIAL_DOWN = 2;
+
+
export function flipStatus(s: number) {
if (s === UP) {
return DOWN;
@@ -59,7 +67,6 @@ export function polyfill() {
*/
if (!String.prototype.replaceAll) {
String.prototype.replaceAll = function (str: string, newStr: string) {
-
// If a regex pattern
if (Object.prototype.toString.call(str).toLowerCase() === "[object regexp]") {
return this.replace(str, newStr);
@@ -67,7 +74,6 @@ export function polyfill() {
// If a string
return this.replace(new RegExp(str, "g"), newStr);
-
};
}
}
diff --git a/tsconfig.json b/tsconfig.json
index 41db8c524..b7637c3c9 100644
--- a/tsconfig.json
+++ b/tsconfig.json
@@ -7,7 +7,7 @@
"es2020",
"DOM",
],
- "removeComments": true,
+ "removeComments": false,
"preserveConstEnums": true,
"sourceMap": false,
"strict": true