diff --git a/.dockerignore b/.dockerignore
index 9c16887bd..fedba8895 100644
--- a/.dockerignore
+++ b/.dockerignore
@@ -2,6 +2,8 @@
/dist
/node_modules
/data
+/test
+/kubernetes
/.do
**/.dockerignore
**/.git
diff --git a/dockerfile b/dockerfile
index a10006369..891b03d5b 100644
--- a/dockerfile
+++ b/dockerfile
@@ -5,25 +5,26 @@ WORKDIR /app
# split the sqlite install here, so that it can caches the arm prebuilt
# do not modify it, since we don't want to re-compile the arm prebuilt again
RUN apt update && \
- apt --yes install python3 python3-pip python3-dev git g++ make && \
- ln -s /usr/bin/python3 /usr/bin/python && \
- npm install mapbox/node-sqlite3#593c9d --build-from-source
+ apt --yes install python3 python3-pip python3-dev git g++ make && \
+ ln -s /usr/bin/python3 /usr/bin/python && \
+ npm install mapbox/node-sqlite3#593c9d --build-from-source
COPY . .
-RUN npm install --legacy-peer-deps && npm run build && npm prune --production
+RUN npm install --legacy-peer-deps && \
+ npm run build && \
+ npm prune --production && \
+ chmod +x /app/extra/entrypoint.sh
+
FROM node:14-bullseye-slim AS release
WORKDIR /app
-# Install Apprise,
-# add sqlite3 cli for debugging in the future
-# iputils-ping for ping
+# Install Apprise, add sqlite3 cli for debugging in the future, iputils-ping for ping, util-linux for setpriv
RUN apt update && \
- apt --yes install python3 python3-pip python3-cryptography python3-six python3-yaml python3-click python3-markdown python3-requests python3-requests-oauthlib \
- sqlite3 \
- iputils-ping && \
- pip3 --no-cache-dir install apprise && \
- rm -rf /var/lib/apt/lists/*
+ apt --yes install python3 python3-pip python3-cryptography python3-six python3-yaml python3-click python3-markdown python3-requests python3-requests-oauthlib \
+ sqlite3 iputils-ping util-linux && \
+ pip3 --no-cache-dir install apprise && \
+ rm -rf /var/lib/apt/lists/*
# Copy app files from build layer
COPY --from=build /app /app
@@ -31,6 +32,7 @@ COPY --from=build /app /app
EXPOSE 3001
VOLUME ["/app/data"]
HEALTHCHECK --interval=60s --timeout=30s --start-period=180s --retries=5 CMD node extra/healthcheck.js
+ENTRYPOINT ["extra/entrypoint.sh"]
CMD ["node", "server/server.js"]
FROM release AS nightly
diff --git a/dockerfile-alpine b/dockerfile-alpine
index a9e85c37d..5e34d84a8 100644
--- a/dockerfile-alpine
+++ b/dockerfile-alpine
@@ -4,22 +4,25 @@ WORKDIR /app
# split the sqlite install here, so that it can caches the arm prebuilt
RUN apk add --no-cache --virtual .build-deps make g++ python3 python3-dev git && \
- ln -s /usr/bin/python3 /usr/bin/python && \
- npm install mapbox/node-sqlite3#593c9d && \
- apk del .build-deps && \
- rm -f /usr/bin/python
+ ln -s /usr/bin/python3 /usr/bin/python && \
+ npm install mapbox/node-sqlite3#593c9d && \
+ apk del .build-deps && \
+ rm -f /usr/bin/python
COPY . .
-RUN npm install --legacy-peer-deps && npm run build && npm prune --production
+RUN npm install --legacy-peer-deps && \
+ npm run build && \
+ npm prune --production && \
+ chmod +x /app/extra/entrypoint.sh
FROM node:14-alpine3.12 AS release
WORKDIR /app
-# Install apprise
-RUN apk add --no-cache python3 py3-cryptography py3-pip py3-six py3-yaml py3-click py3-markdown py3-requests py3-requests-oauthlib && \
- pip3 --no-cache-dir install apprise && \
- rm -rf /root/.cache
+# Install apprise, iputils for non-root ping, setpriv
+RUN apk add --no-cache iputils setpriv python3 py3-cryptography py3-pip py3-six py3-yaml py3-click py3-markdown py3-requests py3-requests-oauthlib && \
+ pip3 --no-cache-dir install apprise && \
+ rm -rf /root/.cache
# Copy app files from build layer
COPY --from=build /app /app
@@ -27,6 +30,7 @@ COPY --from=build /app /app
EXPOSE 3001
VOLUME ["/app/data"]
HEALTHCHECK --interval=60s --timeout=30s --start-period=180s --retries=5 CMD node extra/healthcheck.js
+ENTRYPOINT ["extra/entrypoint.sh"]
CMD ["node", "server/server.js"]
FROM release AS nightly
diff --git a/extra/entrypoint.sh b/extra/entrypoint.sh
new file mode 100644
index 000000000..0f1d4e2f7
--- /dev/null
+++ b/extra/entrypoint.sh
@@ -0,0 +1,21 @@
+#!/usr/bin/env sh
+
+# set -e Exit the script if an error happens
+set -e
+PUID=${PUID=1000}
+PGID=${PGID=1000}
+
+files_ownership () {
+ # -h Changes the ownership of an encountered symbolic link and not that of the file or directory pointed to by the symbolic link.
+ # -R Recursively descends the specified directories
+ # -c Like verbose but report only when a change is made
+ chown -hRc "$PUID":"$PGID" /app/data
+}
+
+echo "==> Performing startup jobs and maintenance tasks"
+files_ownership
+
+echo "==> Starting application with user $PUID group $PGID"
+
+# --clear-groups Clear supplementary groups.
+exec setpriv --reuid "$PUID" --regid "$PGID" --clear-groups "$@"
diff --git a/package.json b/package.json
index d768063a0..0f7a71575 100644
--- a/package.json
+++ b/package.json
@@ -34,6 +34,7 @@
"test-install-script-alpine3": "npm run compile-install-script && docker build --progress plain -f test/test_install_script/alpine3.dockerfile .",
"test-install-script-ubuntu": "npm run compile-install-script && docker build --progress plain -f test/test_install_script/ubuntu.dockerfile .",
"test-install-script-ubuntu1604": "npm run compile-install-script && docker build --progress plain -f test/test_install_script/ubuntu1604.dockerfile .",
+ "test-nodejs16": "docker build --progress plain -f test/ubuntu-nodejs16.dockerfile .",
"simple-dns-server": "node extra/simple-dns-server.js",
"update-language-files_old": "cd extra/update-language-files && node index.js %npm_config_base_lang% && eslint ../../src/languages/**.js --fix",
"update-language-files": "cd extra/update-language-files && node index.js && eslint ../../src/languages/**.js --fix"
diff --git a/src/components/TagsManager.vue b/src/components/TagsManager.vue
index 82025031c..7fc78a340 100644
--- a/src/components/TagsManager.vue
+++ b/src/components/TagsManager.vue
@@ -55,7 +55,7 @@
diff --git a/src/languages/da-DK.js b/src/languages/da-DK.js
index 86e1c0c9d..eaba6e2cb 100644
--- a/src/languages/da-DK.js
+++ b/src/languages/da-DK.js
@@ -36,7 +36,6 @@ export default {
hour: "Timer",
"-hour": "-Timer",
checkEverySecond: "Tjek hvert {0} sekund",
- "Avg.": "Gns.",
Response: "Respons",
Ping: "Ping",
"Monitor Type": "Overvåger Type",
@@ -143,4 +142,31 @@ export default {
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",
}
diff --git a/src/languages/de-DE.js b/src/languages/de-DE.js
index b5b0bc3bd..8f8792853 100644
--- a/src/languages/de-DE.js
+++ b/src/languages/de-DE.js
@@ -36,7 +36,6 @@ export default {
hour: "Stunde",
"-hour": "-Stunden",
checkEverySecond: "Überprüfe alle {0} Sekunden",
- "Avg.": "Durchschn.",
Response: "Antwortzeit",
Ping: "Ping",
"Monitor Type": "Monitor Typ",
@@ -167,4 +166,6 @@ export default {
retryCheckEverySecond: "Versuche alle {0} Sekunden",
"Import Backup": "Import Backup",
"Export Backup": "Export Backup",
+ "Avg. Ping": "Avg. Ping",
+ "Avg. Response": "Avg. Response",
}
diff --git a/src/languages/en.js b/src/languages/en.js
index bb0f50b9b..37704225a 100644
--- a/src/languages/en.js
+++ b/src/languages/en.js
@@ -2,7 +2,6 @@ export default {
languageName: "English",
checkEverySecond: "Check every {0} seconds.",
retryCheckEverySecond: "Retry every {0} seconds.",
- "Avg.": "Avg.",
retriesDescription: "Maximum retries before the service is marked as down and a notification is sent",
ignoreTLSError: "Ignore TLS/SSL error for HTTPS websites",
upsideDownModeDescription: "Flip the status upside down. If the service is reachable, it is DOWN.",
@@ -167,6 +166,8 @@ export default {
Purple: "Purple",
Pink: "Pink",
"Search...": "Search...",
+ "Avg. Ping": "Avg. Ping",
+ "Avg. Response": "Avg. Response",
"telegram": "Telegram",
"webhook": "Webhook",
"smtp": "Email (SMTP)",
diff --git a/src/languages/es-ES.js b/src/languages/es-ES.js
index cf6951a44..cb8733792 100644
--- a/src/languages/es-ES.js
+++ b/src/languages/es-ES.js
@@ -1,7 +1,6 @@
export default {
languageName: "Español",
checkEverySecond: "Comprobar cada {0} segundos.",
- "Avg.": "Media.",
retriesDescription: "Número máximo de intentos antes de que el servicio se marque como CAÍDO y una notificación sea enviada.",
ignoreTLSError: "Ignorar error TLS/SSL para sitios web HTTPS",
upsideDownModeDescription: "Invertir el estado. Si el servicio es alcanzable, está CAÍDO.",
@@ -32,7 +31,7 @@ export default {
Up: "Funcional",
Down: "Caído",
Pending: "Pendiente",
- Unknown: "Desconociso",
+ Unknown: "Desconocido",
Pause: "Pausa",
Name: "Nombre",
Status: "Estado",
@@ -143,4 +142,31 @@ export default {
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",
}
diff --git a/src/languages/et-EE.js b/src/languages/et-EE.js
index 14bedd178..991a6a35e 100644
--- a/src/languages/et-EE.js
+++ b/src/languages/et-EE.js
@@ -1,7 +1,6 @@
export default {
languageName: "eesti",
checkEverySecond: "Kontrolli {0} sekundilise vahega.",
- "Avg.": "≈",
retriesDescription: "Mitu korda tuleb kontrollida, mille järel märkida 'maas' ja saata välja teavitus.",
ignoreTLSError: "Eira TLS/SSL viga HTTPS veebisaitidel.",
upsideDownModeDescription: "Käitle teenuse saadavust rikkena, teenuse kättesaamatust töötavaks.",
@@ -143,4 +142,31 @@ export default {
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",
}
diff --git a/src/languages/fr-FR.js b/src/languages/fr-FR.js
index ab03f68c7..0050c5c02 100644
--- a/src/languages/fr-FR.js
+++ b/src/languages/fr-FR.js
@@ -36,7 +36,6 @@ export default {
hour: "Heure",
"-hour": "Heures",
checkEverySecond: "Vérifier toutes les {0} secondes",
- "Avg.": "Moyen",
Response: "Temps de réponse",
Ping: "Ping",
"Monitor Type": "Type de Sonde",
@@ -143,4 +142,31 @@ export default {
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",
}
diff --git a/src/languages/it-IT.js b/src/languages/it-IT.js
index bbd2d3ad1..09d0bece6 100644
--- a/src/languages/it-IT.js
+++ b/src/languages/it-IT.js
@@ -1,7 +1,7 @@
export default {
languageName: "Italiano (Italian)",
checkEverySecond: "controlla ogni {0} secondi",
- "Avg.": "Media",
+ retryCheckEverySecond: "Riprova ogni {0} secondi.",
retriesDescription: "Tentativi da fare prima che il servizio venga marcato come \"giù\" e che una notifica venga inviata.",
ignoreTLSError: "Ignora gli errori TLS/SSL per i siti in HTTPS.",
upsideDownModeDescription: "Capovolgi lo stato. Se il servizio è raggiungibile viene marcato come \"GIÙ\".",
@@ -20,6 +20,8 @@ export default {
clearEventsMsg: "Si è certi di voler eliminare tutti gli eventi per questo servizio?",
clearHeartbeatsMsg: "Si è certi di voler eliminare tutti gli intervalli di controllo per questo servizio?",
confirmClearStatisticsMsg: "Si è certi di voler eliminare TUTTE le statistiche?",
+ importHandleDescription: "Selezionare 'Ignora gli esistenti' si vuole ignorare l'importazione dei monitoraggi o delle notifiche con lo stesso nome. 'Sovrascrivi' eliminerà ogni monitoraggio e notifica esistente.",
+ confirmImportMsg: "Si è certi di voler importare il backup? Essere certi di aver selezionato l'opzione corretta di importazione.",
twoFAVerifyLabel: "Scrivi il token per verificare che l'autenticazione a due fattori funzioni",
tokenValidSettingsMsg: "Il token è valido! È ora possibile salvare le impostazioni.",
confirmEnableTwoFAMsg: "Si è certi di voler abilitare l'autenticazione a due fattori?",
@@ -68,6 +70,7 @@ export default {
Port: "Porta",
"Heartbeat Interval": "Intervallo di controllo",
Retries: "Tentativi",
+ "Heartbeat Retry Interval": "Intervallo tra un tentativo di controllo e l'altro",
Advanced: "Avanzate",
"Upside Down Mode": "Modalità capovolta",
"Max. Redirects": "Redirezionamenti massimi",
@@ -115,6 +118,8 @@ export default {
"Last Result": "Ultimo risultato",
"Create your admin account": "Crea l'account amministratore",
"Repeat Password": "Ripeti Password",
+ "Import Backup": "Importa Backup",
+ "Export Backup": "Esporta Backup",
Export: "Esporta",
Import: "Importa",
respTime: "Tempo di Risposta (ms)",
@@ -126,12 +131,16 @@ export default {
Events: "Eventi",
Heartbeats: "Controlli",
"Auto Get": "Auto Get",
- "Also apply to existing monitors": "Also apply to existing monitors",
backupDescription: "È possibile fare il backup di tutti i monitoraggi e di tutte le notifiche in un file JSON.",
backupDescription2: "P.S.: lo storico e i dati relativi agli eventi non saranno inclusi.",
backupDescription3: "Dati sensibili come i token di autenticazione saranno inclusi nel backup, tenere quindi in un luogo sicuro.",
alertNoFile: "Selezionare il file da importare.",
alertWrongFileType: "Selezionare un file JSON.",
+ "Clear all statistics": "Pulisci tutte le statistiche",
+ "Skip existing": "Ignora gli esistenti",
+ Overwrite: "Sovrascrivi",
+ Options: "Opzioni",
+ "Keep both": "Mantieni entrambi",
"Verify Token": "Verifica Token",
"Setup 2FA": "Imposta l'autenticazione a due fattori",
"Enable 2FA": "Abilita l'autenticazione a due fattori",
@@ -142,7 +151,6 @@ export default {
Inactive: "Disattivata",
Token: "Token",
"Show URI": "Mostra URI",
- "Clear all statistics": "Pulisci tutte le statistiche",
Tags: "Etichette",
"Add New below or Select...": "Aggiungine una oppure scegli...",
"Tag with this name already exist.": "Un'etichetta con questo nome già esiste.",
@@ -158,4 +166,6 @@ export default {
Purple: "Viola",
Pink: "Rosa",
"Search...": "Cerca...",
+ "Avg. Ping": "Avg. Ping",
+ "Avg. Response": "Avg. Response",
}
diff --git a/src/languages/ja.js b/src/languages/ja.js
index 358df33c5..44f96ee44 100644
--- a/src/languages/ja.js
+++ b/src/languages/ja.js
@@ -1,7 +1,6 @@
export default {
languageName: "日本語",
checkEverySecond: "{0}秒ごとにチェックします。",
- "Avg.": "平均",
retriesDescription: "サービスがダウンとしてマークされ、通知が送信されるまでの最大リトライ数",
ignoreTLSError: "HTTPS ウェブサイトの TLS/SSL エラーを無視する",
upsideDownModeDescription: "ステータスの扱いを逆にします。サービスに到達可能な場合は、DOWNとなる。",
@@ -143,4 +142,31 @@ export default {
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",
}
diff --git a/src/languages/ko-KR.js b/src/languages/ko-KR.js
index 349c3ae77..70948a31d 100644
--- a/src/languages/ko-KR.js
+++ b/src/languages/ko-KR.js
@@ -1,7 +1,6 @@
export default {
languageName: "한국어",
checkEverySecond: "{0} 초마다 체크해요.",
- "Avg.": "평균",
retriesDescription: "서비스가 중단된 후 알림을 보내기 전 최대 재시도 횟수",
ignoreTLSError: "HTTPS 웹사이트에서 TLS/SSL 에러 무시하기",
upsideDownModeDescription: "서버 상태를 반대로 표시해요. 서버가 작동하면 오프라인으로 표시할 거에요.",
@@ -143,4 +142,31 @@ export default {
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",
}
diff --git a/src/languages/nl-NL.js b/src/languages/nl-NL.js
index 546e6dbd4..7ec386d01 100644
--- a/src/languages/nl-NL.js
+++ b/src/languages/nl-NL.js
@@ -1,7 +1,6 @@
export default {
languageName: "Nederlands",
checkEverySecond: "Controleer elke {0} seconden.",
- "Avg.": "Gem.",
retriesDescription: "Maximum aantal nieuwe pogingen voordat de service wordt gemarkeerd als niet beschikbaar en er een melding wordt verzonden",
ignoreTLSError: "Negeer TLS/SSL-fout voor HTTPS-websites",
upsideDownModeDescription: "Draai de status om. Als de service bereikbaar is, is deze OFFLINE.",
@@ -143,4 +142,31 @@ export default {
Token: "Token",
"Show URI": "Toon URI",
"Clear all statistics": "Wis alle statistieken",
+ 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",
}
diff --git a/src/languages/pl.js b/src/languages/pl.js
index e6936a1c7..2b34492e6 100644
--- a/src/languages/pl.js
+++ b/src/languages/pl.js
@@ -1,7 +1,6 @@
export default {
languageName: "Polski",
checkEverySecond: "Sprawdzaj co {0} sekund.",
- "Avg.": "Średnia",
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.",
@@ -110,37 +109,64 @@ export default {
respTime: "Czas odp. (ms)",
notAvailableShort: "N/A",
Create: "Stwórz",
- clearEventsMsg: "Jesteś pewien, że chcesz usunąć wszystkie monity dla tej strony?",
- clearHeartbeatsMsg: "Are you sure want to delete all heartbeats for this monitor?",
+ clearEventsMsg: "Jesteś pewien, że chcesz usunąć wszystkie monitory dla tej strony?",
+ clearHeartbeatsMsg: "Jesteś pewien, że chcesz usunąć wszystkie bicia serca dla tego monitora?",
confirmClearStatisticsMsg: "Jesteś pewien, że chcesz usunąć WSZYSTKIE statystyki?",
"Clear Data": "Usuń dane",
Events: "Wydarzenia",
- Heartbeats: "Heartbeats",
- "Auto Get": "Auto Get",
+ Heartbeats: "Bicia serca",
+ "Auto Get": "Pobierz automatycznie",
enableDefaultNotificationDescription: "Dla każdego nowego monitora to powiadomienie będzie domyślnie włączone. Nadal możesz wyłączyć powiadomienia osobno dla każdego monitora.",
"Default enabled": "Domyślnie włączone",
- "Also apply to existing monitors": "Również zastosuj do obecnych monitów",
- Export: "Eksport",
- Import: "Import",
- backupDescription: "Możesz wykonać kopię zapasową wszystkich monitorów i wszystkich powiadomień w pliku JSON.",
+ "Also apply to existing monitors": "Również zastosuj do obecnych monitorów",
+ Export: "Eksportuj",
+ Import: "Importuj",
+ backupDescription: "Możesz wykonać kopię zapasową wszystkich monitorów i wszystkich powiadomień do pliku JSON.",
backupDescription2: "PS: Historia i dane zdarzeń nie są uwzględniane.",
backupDescription3: "Poufne dane, takie jak tokeny powiadomień, są zawarte w pliku eksportu, prosimy o ostrożne przechowywanie.",
alertNoFile: "Proszę wybrać plik do importu.",
alertWrongFileType: "Proszę wybrać plik JSON.",
- twoFAVerifyLabel: "Proszę podaj swój token 2FA, aby sprawdzić go",
+ twoFAVerifyLabel: "Proszę podaj swój token 2FA, aby sprawdzić czy 2FA działa",
tokenValidSettingsMsg: "Token jest poprawny! Możesz teraz zapisać ustawienia 2FA.",
- confirmEnableTwoFAMsg: "Jesteś prwien że chcesz włączyć 2FA?",
- confirmDisableTwoFAMsg: "Jesteś prwien że chcesz wyłączyć 2FA?",
- "Apply on all existing monitors": "Zastosuj do wszystki obecnych monitów",
- "Verify Token": "Weryfikuj Token",
- "Setup 2FA": "Ustaw 2FA",
+ confirmEnableTwoFAMsg: "Jesteś pewien że chcesz włączyć 2FA?",
+ confirmDisableTwoFAMsg: "Jesteś pewien że chcesz wyłączyć 2FA?",
+ "Apply on all existing monitors": "Zastosuj do wszystki obecnych monitorów",
+ "Verify Token": "Weryfikuj token",
+ "Setup 2FA": "Konfiguracja 2FA",
"Enable 2FA": "Włącz 2FA",
"Disable 2FA": "Wyłącz 2FA",
"2FA Settings": "Ustawienia 2FA",
- "Two Factor Authentication": "Podwójna weryfikacja",
+ "Two Factor Authentication": "Uwierzytelnienie dwuskładnikowe",
Active: "Włączone",
Inactive: "Wyłączone",
Token: "Token",
"Show URI": "Pokaż URI",
"Clear all statistics": "Wyczyść wszystkie statystyki",
+ retryCheckEverySecond: "Ponawiaj co {0} sekund.",
+ 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.",
+ "Heartbeat Retry Interval": "Częstotliwość ponawiania bicia serca",
+ "Import Backup": "Importuj kopię zapasową",
+ "Export Backup": "Eksportuj kopię zapasową",
+ "Skip existing": "Pomiń istniejące",
+ Overwrite: "Nadpisz",
+ Options: "Opcje",
+ "Keep both": "Zachowaj oba",
+ Tags: "Tagi",
+ "Add New below or Select...": "Dodaj nowy poniżej lub wybierz...",
+ "Tag with this name already exist.": "Tag o tej nazwie już istnieje.",
+ "Tag with this value already exist.": "Tag o tej wartości już istnieje.",
+ color: "kolor",
+ "value (optional)": "wartość (opcjonalnie)",
+ Gray: "Szary",
+ Red: "Czerwony",
+ Orange: "Pomarańczowy",
+ Green: "Zielony",
+ Blue: "Niebieski",
+ Indigo: "Indygo",
+ Purple: "Fioletowy",
+ Pink: "Różowy",
+ "Search...": "Szukaj...",
+ "Avg. Ping": "Średni ping",
+ "Avg. Response": "Średnia odpowiedź",
}
diff --git a/src/languages/ru-RU.js b/src/languages/ru-RU.js
index b25b5b122..956235de4 100644
--- a/src/languages/ru-RU.js
+++ b/src/languages/ru-RU.js
@@ -1,7 +1,6 @@
export default {
languageName: "Русский",
checkEverySecond: "Проверять каждые {0} секунд.",
- "Avg.": "Средн.",
retriesDescription: "Максимальное количество попыток перед пометкой сервиса как недоступного и отправкой уведомления",
ignoreTLSError: "Игнорировать ошибку TLS/SSL для HTTPS сайтов",
upsideDownModeDescription: "Реверс статуса сервиса. Если сервис доступен, то он помечается как НЕДОСТУПНЫЙ.",
@@ -107,40 +106,67 @@ export default {
"Last Result": "Последний результат",
"Create your admin account": "Создайте аккаунт администратора",
"Repeat Password": "Повторите пароль",
- respTime: "Resp. Time (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",
+ respTime: "Время ответа (мс)",
+ notAvailableShort: "Н/Д",
+ Create: "Создать",
+ clearEventsMsg: "Вы действительно хотите удалить всю статистику событий данного монитора?",
+ clearHeartbeatsMsg: "Вы действительно хотите удалить всю статистику опросов данного монитора?",
+ confirmClearStatisticsMsg: "Вы действительно хотите удалить ВСЮ статистику?",
+ "Clear Data": "Очистить статистику",
+ Events: "События",
+ Heartbeats: "Опросы",
+ "Auto Get": "Авто-получение",
+ enableDefaultNotificationDescription: "Для каждого нового монитора это уведомление будет включено по умолчанию. Вы всё ещё можете отключить уведомления в каждом мониторе отдельно.",
+ "Default enabled": "Использовать по умолчанию",
+ "Also apply to existing monitors": "Применить к существующим мониторам",
+ Export: "Экспорт",
+ Import: "Импорт",
+ backupDescription: "Вы можете сохранить резервную копию всех мониторов и уведомлений в виде JSON-файла",
+ backupDescription2: "P.S.: История и события сохранены не будут.",
+ backupDescription3: "Важные данные, такие как токены уведомлений, добавляются при экспорте, поэтому храните файлы в безопасном месте.",
+ alertNoFile: "Выберите файл для импорта.",
+ alertWrongFileType: "Выберите JSON-файл.",
+ twoFAVerifyLabel: "Пожалуйста, введите свой токен, чтобы проверить работу 2FA",
+ tokenValidSettingsMsg: "Токен действителен! Теперь вы можете сохранить настройки 2FA.",
+ confirmEnableTwoFAMsg: "Вы действительно хотите включить 2FA?",
+ confirmDisableTwoFAMsg: "Вы действительно хотите выключить 2FA?",
+ "Apply on all existing monitors": "Применить ко всем существующим мониторам",
+ "Verify Token": "Проверить токен",
+ "Setup 2FA": "Настройка 2FA",
+ "Enable 2FA": "Включить 2FA",
+ "Disable 2FA": "Выключить 2FA",
+ "2FA Settings": "Настройки 2FA",
+ "Two Factor Authentication": "Двухфакторная аутентификация",
+ 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. Ping",
+ "Avg. Response": "Avg. Response",
}
diff --git a/src/languages/sr-latn.js b/src/languages/sr-latn.js
index 38a6fe736..2ebeb32fd 100644
--- a/src/languages/sr-latn.js
+++ b/src/languages/sr-latn.js
@@ -1,7 +1,6 @@
export default {
languageName: "Srpski",
checkEverySecond: "Proveri svakih {0} sekundi.",
- "Avg.": "Prosečni",
retriesDescription: "Maksimum pokušaja pre nego što se servis obeleži kao neaktivan i pošalje se obaveštenje.",
ignoreTLSError: "Ignoriši TLS/SSL greške za HTTPS veb stranice.",
upsideDownModeDescription: "Obrnite status. Ako je servis dostupan, onda je obeležen kao neaktivan.",
@@ -143,4 +142,31 @@ export default {
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",
}
diff --git a/src/languages/sr.js b/src/languages/sr.js
index c163dcb64..b5cf1cb87 100644
--- a/src/languages/sr.js
+++ b/src/languages/sr.js
@@ -1,7 +1,6 @@
export default {
languageName: "Српски",
checkEverySecond: "Провери сваких {0} секунди.",
- "Avg.": "Просечни",
retriesDescription: "Максимум покушаја пре него што се сервис обележи као неактиван и пошаље се обавештење.",
ignoreTLSError: "Игнориши TLS/SSL грешке за HTTPS веб странице.",
upsideDownModeDescription: "Обрните статус. Ако је сервис доступан, онда је обележен као неактиван.",
@@ -143,4 +142,31 @@ export default {
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",
}
diff --git a/src/languages/sv-SE.js b/src/languages/sv-SE.js
index 559dbb824..f4c42627e 100644
--- a/src/languages/sv-SE.js
+++ b/src/languages/sv-SE.js
@@ -1,7 +1,6 @@
export default {
languageName: "Svenska",
checkEverySecond: "Uppdatera var {0} sekund.",
- "Avg.": "Genomsnittligt",
retriesDescription: "Max antal försök innan tjänsten markeras som nere och en notis skickas",
ignoreTLSError: "Ignorera TLS/SSL-fel för webbsidor med HTTPS",
upsideDownModeDescription: "Vänd upp och ner på statusen. Om tjänsten är nåbar visas den som NERE.",
@@ -143,4 +142,31 @@ export default {
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",
}
diff --git a/src/languages/tr-TR.js b/src/languages/tr-TR.js
index b62e289fc..c521680c9 100644
--- a/src/languages/tr-TR.js
+++ b/src/languages/tr-TR.js
@@ -1,7 +1,6 @@
export default {
languageName: "Türkçe",
checkEverySecond: "{0} Saniyede bir kontrol et.",
- "Avg.": "Ortalama",
retriesDescription: "Servisin kapalı olarak işaretlenmeden ve bir bildirim gönderilmeden önce maksimum yeniden deneme sayısı",
ignoreTLSError: "HTTPS web siteleri için TLS/SSL hatasını yoksay",
upsideDownModeDescription: "Servisin durumunu tersine çevirir. Servis çalışıyorsa kapalı olarak işaretler.",
@@ -117,4 +116,56 @@ export default {
Events: "Olaylar",
Heartbeats: "Sağlık Durumları",
"Auto Get": "Otomatik Al",
+ retryCheckEverySecond: "Retry every {0} seconds.",
+ enableDefaultNotificationDescription: "For every new monitor this notification will be enabled by default. You can still disable the notification separately for each monitor.",
+ 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.",
+ 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?",
+ "Heartbeat Retry Interval": "Heartbeat Retry Interval",
+ "Import Backup": "Import Backup",
+ "Export Backup": "Export Backup",
+ Export: "Export",
+ Import: "Import",
+ "Default enabled": "Default enabled",
+ "Apply on all existing monitors": "Apply on all existing monitors",
+ 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.",
+ "Clear all statistics": "Clear all Statistics",
+ "Skip existing": "Skip existing",
+ Overwrite: "Overwrite",
+ Options: "Options",
+ "Keep both": "Keep both",
+ "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",
+ 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",
}
diff --git a/src/languages/zh-CN.js b/src/languages/zh-CN.js
index c09a824da..c2b3dcc59 100644
--- a/src/languages/zh-CN.js
+++ b/src/languages/zh-CN.js
@@ -1,7 +1,6 @@
export default {
languageName: "简体中文",
checkEverySecond: "检测频率 {0} 秒",
- "Avg.": "平均",
retriesDescription: "最大重试失败次数",
ignoreTLSError: "忽略HTTPS站点的证书错误",
upsideDownModeDescription: "反向状态监控(状态码范围外为有效状态,反之为无效)",
@@ -143,4 +142,31 @@ export default {
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",
}
diff --git a/src/languages/zh-HK.js b/src/languages/zh-HK.js
index 1a4ae5a6c..1e1e0c7dc 100644
--- a/src/languages/zh-HK.js
+++ b/src/languages/zh-HK.js
@@ -36,7 +36,6 @@ export default {
hour: "小時",
"-hour": "小時",
checkEverySecond: "每 {0} 秒檢查一次",
- "Avg.": "平均",
Response: "反應時間",
Ping: "反應時間",
"Monitor Type": "監測器類型",
@@ -143,4 +142,31 @@ export default {
Token: "Token",
"Show URI": "顯示 URI",
"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",
}
diff --git a/src/pages/Details.vue b/src/pages/Details.vue
index c992d240b..c93e47d0b 100644
--- a/src/pages/Details.vue
+++ b/src/pages/Details.vue
@@ -49,7 +49,7 @@