Compare commits

..

30 Commits

Author SHA1 Message Date
Louis Lam
751924b335 Update to 1.15.0 2022-04-24 22:57:42 +08:00
Louis Lam
edec1024b5 Merge remote-tracking branch 'origin/master' 2022-04-24 22:56:52 +08:00
Louis Lam
5f9f29f527 Update SECURITY.md 2022-04-24 22:54:06 +08:00
Louis Lam
13a3dd91bb Merge remote-tracking branch 'origin/master' 2022-04-24 22:41:29 +08:00
Louis Lam
d9c5a7812c Merge pull request #1544 from mathiskir/readme-improvements
readme improvements
2022-04-24 03:44:21 +08:00
Sneeex
484d4a20ab Small improvements 2022-04-23 19:29:34 +02:00
Louis Lam
3582e99770 Merge pull request #1543 from gaby/github-actions
Upgrade to actions/checkout@v3
2022-04-24 01:22:56 +08:00
Juan Calderon-Perez
2197b98444 Upgrade to actions/checkout@v3 2022-04-23 09:47:57 -04:00
Sneeex
e6a1719ab4 Change notification count (#1536) 2022-04-22 15:59:34 +08:00
Louis Lam
7d5e7a577d Merge pull request #1535 from Computroniks/add-jsdoc-to-contributing
Added JSDoc requirement in contributing docs
2022-04-22 14:04:00 +08:00
Louis Lam
630bb03d9c Update package-lock.json during release process 2022-04-22 00:47:04 +08:00
Louis Lam
f1c83bb838 Merge remote-tracking branch 'origin/master' 2022-04-22 00:06:59 +08:00
Louis Lam
303a226ab7 Update eslint rule 2022-04-22 00:06:46 +08:00
Matthew Nickson
d3f0bdb440 Added JSDoc requirement in contributing docs
Signed-off-by: Matthew Nickson <mnickson@sidingsmedia.com>
2022-04-21 16:30:53 +01:00
Louis Lam
e56ac7b03b Merge pull request #1530 from MrEddX/bulgarian
Bulgarian
2022-04-21 14:37:20 +08:00
Louis Lam
aafcbaf098 Update README.md 2022-04-21 10:22:18 +08:00
MrEddX
4d4d04adbd Update bg-BG.js
Some translation fixes
2022-04-20 22:01:57 +03:00
MrEddX
f8c9472ea2 Update bg-BG.js
- Updated and fixed
2022-04-20 21:54:57 +03:00
Louis Lam
4e28ad4ac2 Merge pull request #1524 from chakflying/fix/disable-auth-icon
Fix: Handle disabled auth in user dropdown
2022-04-20 23:50:33 +08:00
Louis Lam
06f326e49e Merge pull request #1527 from SiderealArt/patch-1
Update Traditional Chinese (Taiwan) translation
2022-04-20 22:43:41 +08:00
Louis Lam
07c0801ad5 Make logout button reactive, improve dropdown menu css 2022-04-20 22:39:07 +08:00
SiderealArt
8cefc96c78 Update Traditional Chinese (Taiwan) translation 2022-04-20 18:11:26 +08:00
Louis Lam
b326a69838 Merge pull request #1523 from koen20/patch-1
Update dutch translations
2022-04-20 17:24:36 +08:00
Nelson Chan
a391576285 Chore: Add translation 2022-04-20 15:09:31 +08:00
Nelson Chan
e0966e55c8 Fix: Handle disabled auth in user dropdown 2022-04-20 15:01:13 +08:00
Koen Habets
59d9891105 Update nl-NL.js 2022-04-19 21:17:33 +02:00
Louis Lam
f8f19d8dc5 Merge remote-tracking branch 'origin/master' 2022-04-20 02:57:52 +08:00
Louis Lam
a3d79a93e9 Update Apprise to 0.9.8 2022-04-20 02:56:33 +08:00
Louis Lam
bdc23a3f57 Merge pull request #1519 from AnnAngela/1.15.0_zh-cn
Update en&zh-CN lang file with 1 new i18n entry
2022-04-19 23:48:07 +08:00
AnnAngela-work
18925293fb Update en&zh-CN lang file with 1 new i18n entry 2022-04-19 10:48:20 +08:00
21 changed files with 433 additions and 37 deletions

View File

@@ -40,9 +40,9 @@ module.exports = {
SwitchCase: 1,
},
],
quotes: [ "warn", "double" ],
quotes: [ "error", "double" ],
semi: "error",
"vue/html-indent": [ "warn", 4 ], // default: 2
"vue/html-indent": [ "error", 4 ], // default: 2
"vue/max-attributes-per-line": "off",
"vue/singleline-html-element-content-newline": "off",
"vue/html-self-closing": "off",
@@ -72,7 +72,7 @@ module.exports = {
"keyword-spacing": "warn",
"space-infix-ops": "warn",
"arrow-spacing": "warn",
"no-trailing-spaces": "warn",
"no-trailing-spaces": "error",
"no-constant-condition": [ "error", {
"checkLoops": false,
}],

View File

@@ -20,6 +20,7 @@ Please delete any options that are not relevant.
- [ ] I ran ESLint and other linters for modified files
- [ ] I have performed a self-review of my own code and tested it
- [ ] I have commented my code, particularly in hard-to-understand areas
(including JSDoc for methods)
- [ ] My changes generate no new warnings
- [ ] My code needed automated testing. I have added them (this is optional task)

View File

@@ -21,7 +21,7 @@ jobs:
steps:
- run: git config --global core.autocrlf false # Mainly for Windows
- uses: actions/checkout@v2
- uses: actions/checkout@v3
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v2

View File

@@ -79,6 +79,7 @@ I personally do not like something need to learn so much and need to config so m
- 4 spaces indentation
- Follow `.editorconfig`
- Follow ESLint
- Methods and funtions should be documented with JSDoc
## Name convention

View File

@@ -25,12 +25,15 @@ VPS is sponsored by Uptime Kuma sponsors on [Open Collective](https://opencollec
* Monitoring uptime for HTTP(s) / TCP / HTTP(s) Keyword / Ping / DNS Record / Push / Steam Game Server.
* Fancy, Reactive, Fast UI/UX.
* Notifications via Telegram, Discord, Gotify, Slack, Pushover, Email (SMTP), and [70+ notification services, click here for the full list](https://github.com/louislam/uptime-kuma/tree/master/src/components/notifications).
* Notifications via Telegram, Discord, Gotify, Slack, Pushover, Email (SMTP), and [90+ notification services, click here for the full list](https://github.com/louislam/uptime-kuma/tree/master/src/components/notifications).
* 20 second intervals.
* [Multi Languages](https://github.com/louislam/uptime-kuma/tree/master/src/languages)
* Simple Status Page
* Multiple Status Pages
* Map Status Page to Domain
* Ping Chart
* Certificate Info
* Proxy Support
* 2FA available
## 🔧 How to Install
@@ -154,17 +157,17 @@ https://www.reddit.com/r/UptimeKuma/
## Contribute
### Test Beta Version
### Beta Version
Check out the latest beta release here: https://github.com/louislam/uptime-kuma/releases
### Bug Reports / Feature Requests
If you want to report a bug or request a new feature. Free feel to open a [new issue](https://github.com/louislam/uptime-kuma/issues).
## Translations
### Translations
If you want to translate Uptime Kuma into your language, please read: https://github.com/louislam/uptime-kuma/tree/master/src/languages
Feel free to correct my grammar in this README, source code, or wiki, as my mother language is not English and my grammar is not that great.
## Pull Requests
### Pull Requests
If you want to modify Uptime Kuma, this guideline may be useful for you: https://github.com/louislam/uptime-kuma/blob/master/CONTRIBUTING.md

View File

@@ -13,10 +13,7 @@ currently being supported with security updates.
### Uptime Kuma Versions
| Version | Supported |
| ------- | ------------------ |
| 1.9.X | :white_check_mark: |
| <= 1.8.X | ❌ |
You should use or upgrade to the latest version of Uptime Kuma. All `1.X.X` versions are upgradable to the lastest version.
### Upgradable Docker Tags
@@ -24,8 +21,8 @@ currently being supported with security updates.
| ------- | ------------------ |
| 1 | :white_check_mark: |
| 1-debian | :white_check_mark: |
| 1-alpine | :white_check_mark: |
| latest | :white_check_mark: |
| debian | :white_check_mark: |
| alpine | :white_check_mark: |
| 1-alpine | ⚠️ Deprecated |
| alpine | ⚠️ Deprecated |
| All other tags | ❌ |

View File

@@ -4,5 +4,5 @@ WORKDIR /app
# Install apprise, iputils for non-root ping, setpriv
RUN apk add --no-cache iputils setpriv dumb-init python3 py3-cryptography py3-pip py3-six py3-yaml py3-click py3-markdown py3-requests py3-requests-oauthlib && \
pip3 --no-cache-dir install apprise==0.9.7 && \
pip3 --no-cache-dir install apprise==0.9.8 && \
rm -rf /root/.cache

View File

@@ -11,7 +11,7 @@ WORKDIR /app
RUN apt update && \
apt --yes --no-install-recommends install python3 python3-pip python3-cryptography python3-six python3-yaml python3-click python3-markdown python3-requests python3-requests-oauthlib \
sqlite3 iputils-ping util-linux dumb-init && \
pip3 --no-cache-dir install apprise==0.9.7 && \
pip3 --no-cache-dir install apprise==0.9.8 && \
rm -rf /var/lib/apt/lists/*
# Install cloudflared

View File

@@ -20,6 +20,10 @@ if (! exists) {
// Process package.json
pkg.version = version;
fs.writeFileSync("package.json", JSON.stringify(pkg, null, 4) + "\n");
// Also update package-lock.json
childProcess.spawnSync("npm", [ "install" ]);
commit(version);
tag(version);

View File

@@ -25,6 +25,9 @@ if (! exists) {
pkg.scripts.setup = pkg.scripts.setup.replace(/(git checkout )([^\s]+)/, `$1${newVersion}`);
fs.writeFileSync("package.json", JSON.stringify(pkg, null, 4) + "\n");
// Also update package-lock.json
childProcess.spawnSync("npm", [ "install" ]);
commit(newVersion);
tag(newVersion);

View File

@@ -1,6 +1,6 @@
{
"name": "uptime-kuma",
"version": "1.15.0-beta.1",
"version": "1.15.0",
"license": "MIT",
"repository": {
"type": "git",
@@ -37,7 +37,7 @@
"build-docker-nightly-alpine": "docker buildx build -f docker/dockerfile-alpine --platform linux/amd64,linux/arm64,linux/arm/v7 -t louislam/uptime-kuma:nightly-alpine --target nightly . --push",
"build-docker-nightly-amd64": "docker buildx build -f docker/dockerfile --platform linux/amd64 -t louislam/uptime-kuma:nightly-amd64 --target nightly . --push --progress plain",
"upload-artifacts": "docker buildx build -f docker/dockerfile --platform linux/amd64 -t louislam/uptime-kuma:upload-artifact --build-arg VERSION --build-arg GITHUB_TOKEN --target upload-artifact . --progress plain",
"setup": "git checkout 1.14.1 && npm ci --production && npm run download-dist",
"setup": "git checkout 1.15.0 && npm ci --production && npm run download-dist",
"download-dist": "node extra/download-dist.js",
"mark-as-nightly": "node extra/mark-as-nightly.js",
"reset-password": "node extra/reset-password.js",

View File

@@ -321,6 +321,8 @@ export default {
// Set it to empty if done
this.saveSettings(() => {
this.password.currentPassword = "";
this.$root.username = null;
this.$root.socket.token = "autoLogin";
}, this.password.currentPassword);
},

View File

@@ -371,12 +371,12 @@ export default {
alertaAlertState: "Състояние на тревога",
alertaRecoverState: "Състояние на възстановяване",
deleteStatusPageMsg: "Сигурни ли сте, че желаете да изтриете тази статус страница?",
Proxies: "Проксита",
Proxies: "Прокси",
default: "По подразбиране",
enabled: "Включено",
setAsDefault: "Зададен по подразбиране",
deleteProxyMsg: "Сигурни ли сте, че желаете да изтриете това прокси за всички монитори?",
proxyDescription: "Прокситата трябва да бъдат зададени към монитор за да функционират.",
proxyDescription: "За да функционират трябва да бъдат зададени към монитор.",
enableProxyDescription: "Това прокси няма да има ефект върху заявките за мониторинг, докато не бъде активирано. Може да контролирате временното деактивиране на проксито от всички монитори чрез статуса на активиране.",
setAsDefaultProxyDescription: "Това проки ще бъде включено по подразбиране за новите монитори. Може да го изключите по отделно за всеки един монитор.",
"Certificate Chain": "Верига на сертификата",
@@ -442,4 +442,26 @@ export default {
"Issuer:": "Издател:",
"Fingerprint:": "Пръстов отпечатък:",
"No status pages": "Няма статус страници",
topic: "Тема",
topicExplanation: "MQTT тема за мониториране",
successMessage: "Съобщение при успех",
successMessageExplanation: "MQTT съобщение, което ще бъде считано за успех",
Customize: "Персонализирай",
"Custom Footer": "Персонализиран долен колонтитул",
"Custom CSS": "Потребителски CSS",
"Domain Name Expiry Notification": "Известяване при изтичащ домейн",
Proxy: "Прокси",
"Date Created": "Дата на създаване",
onebotHttpAddress: "OneBot HTTP адрес",
onebotMessageType: "OneBot тип съобщение",
onebotGroupMessage: "Група",
onebotPrivateMessage: "Лично",
onebotUserOrGroupId: "Група/Потребител ID",
onebotSafetyTips: "С цел безопасност трябва да зададете токен код за достъп",
"PushDeer Key": "PushDeer ключ",
"Footer Text": "Текст долен колонтитул",
"Show Powered By": "Покажи \"Създадено чрез\"",
"Domain Names": "Домейни",
signedInDisp: "Вписан като {0}",
signedInDispDisabled: "Удостоверяването е изключено.",
};

View File

@@ -424,7 +424,7 @@ export default {
"Add New Status Page": "Add New Status Page",
Slug: "Slug",
"Accept characters:": "Accept characters:",
"startOrEndWithOnly": "Start or end with {0} only",
startOrEndWithOnly: "Start or end with {0} only",
"No consecutive dashes": "No consecutive dashes",
Next: "Next",
"The slug is already taken. Please choose another slug.": "The slug is already taken. Please choose another slug.",
@@ -450,7 +450,7 @@ export default {
"Fingerprint:": "Fingerprint:",
"No status pages": "No status pages",
"Domain Name Expiry Notification": "Domain Name Expiry Notification",
"Proxy": "Proxy",
Proxy: "Proxy",
"Date Created": "Date Created",
onebotHttpAddress: "OneBot HTTP Address",
onebotMessageType: "OneBot Message Type",
@@ -459,4 +459,9 @@ export default {
onebotUserOrGroupId: "Group/User ID",
onebotSafetyTips: "For safety, must set access token",
"PushDeer Key": "PushDeer Key",
"Footer Text": "Footer Text",
"Show Powered By": "Show Powered By",
"Domain Names": "Domain Names",
signedInDisp: "Signed in as {0}",
signedInDispDisabled: "Auth Disabled.",
};

View File

@@ -171,7 +171,7 @@ export default {
"Avg. Response": "Gemiddelde Response",
"Entry Page": "Entry Page",
statusPageNothing: "Niets hier, voeg een groep of monitor toe.",
"No Services": "No Services",
"No Services": "Geen diensten",
"All Systems Operational": "Alle systemen operationeel",
"Partially Degraded Service": "Gedeeltelijk verminderde prestaties",
"Degraded Service": "Verminderde prestaties",
@@ -205,4 +205,262 @@ export default {
PushUrl: "Push URL",
HeadersInvalidFormat: "The request headers is geen geldige JSON: ",
BodyInvalidFormat: "De request body is geen geldige JSON: ",
"Primary Base URL": "Hoofd Basis URL",
"Push URL": "Push URL",
needPushEvery: "Je moet deze URL elke {0} seconden aanroepen.",
pushOptionalParams: "Optionele parameters: {0}",
defaultNotificationName: "Mijn {notification} Alert ({number})",
here: "hier",
Required: "Verplicht",
"Bot Token": "Bot Token",
wayToGetTelegramToken: "Je kunt een token krijgen van {0}.",
"Chat ID": "Chat ID",
supportTelegramChatID: "Ondersteuning Directe Chat / Groep / Kanaal Chat ID",
wayToGetTelegramChatID: "Je kunt je CHAT ID krijgen door een bericht te sturen naar de bot en naar deze URL te gaan om het chat_id te bekijken:",
"YOUR BOT TOKEN HERE": "DE BOT TOKEN HIER",
chatIDNotFound: "Chat ID is niet gevonden; stuur eerst een bericht naar de bot",
"Post URL": "Post URL",
"Content Type": "Content Type",
webhookJsonDesc: "{0} is goed voor een moderne HTTP server zoals Express.js",
webhookFormDataDesc: "{multipart} is goed voor PHP. De JSON moet worden ontleed met {decodeFunction}",
secureOptionNone: "Geen / STARTTLS (25, 587)",
secureOptionTLS: "TLS (465)",
"Ignore TLS Error": "Negeer TLS Error",
"From Email": "Van Email",
emailCustomSubject: "Aangepast Onderwerp",
"To Email": "Naar Email",
smtpCC: "CC",
smtpBCC: "BCC",
"Discord Webhook URL": "Discord Webhook URL",
wayToGetDiscordURL: "Je kunt dit krijgen door te gaan naar Server Instellingen -> Integraties -> Creëer Webhook",
"Bot Display Name": "Bot Weergave Naam",
"Prefix Custom Message": "Prefix Aangepast Bericht",
"Hello @everyone is...": "Hallo {'@'}iedereen is...",
"Webhook URL": "Webhook URL",
wayToGetTeamsURL: "Je kunt hier leren hoe je een webhook URL kunt maken {0}.",
Number: "Nummer",
Recipients: "Ontvangers",
needSignalAPI: "Je moet een signal client met REST API hebben.",
wayToCheckSignalURL: "Je kunt op deze URL zien hoe je een kunt instellen:",
signalImportant: "BELANGRIJK: Je kunt groepen en nummers niet mengen in ontvangers!",
"Application Token": "Applicatie Token",
"Server URL": "Server URL",
Priority: "Prioriteit",
"Icon Emoji": "Icoon Emoji",
"Channel Name": "Kanaal Naam",
"Uptime Kuma URL": "Uptime Kuma URL",
aboutWebhooks: "Meer info over Webhooks op: {0}",
aboutChannelName: "Voer de kanaal naam in op {0} Kannaal Naam veld als je het Webhook kanaal wilt omzeilen. Bv: #other-channel",
aboutKumaURL: "Als je de Uptime Kuma URL veld leeg laat, wordt standaard het GitHub project pagina weergegeven.",
emojiCheatSheet: "Emoji cheat sheet: {0}",
PushByTechulus: "Push door Techulus",
clicksendsms: "ClickSend SMS",
GoogleChat: "Google Chat (Google Workspace alleen)",
"User Key": "Gebruikers sleutel",
Device: "Apparaat",
"Message Title": "Bericht Titel",
"Notification Sound": "Notificatie Geluid",
"More info on:": "Meer info op: {0}",
pushoverDesc1: "Nood prioriteit (2) heeft standaard een 30 seconden timeout tussen pogingen en verloopt na 1 uur.",
pushoverDesc2: "Vul het appraat veld in als je notificaties naar andere apparaten wilt versturen.",
"SMS Type": "SMS Type",
octopushTypePremium: "Premium (Snel - aangeraden voor te alarmeren)",
octopushTypeLowCost: "Low Cost (Langzaam - wordt soms geblokkeerd door operator)",
checkPrice: "Controleer {0} prijzen:",
apiCredentials: "API referenties",
octopushLegacyHint: "Wil je de legacy versie van Octopush (2011-2020) gebruiken of de nieuwe versie?",
"Check octopush prices": "Controleer Octopush prijzen {0}.",
octopushPhoneNumber: "Telefoon nummer (Int. formaat, eg : +33612345678) ",
octopushSMSSender: "SMS zender naam : 3-11 alfanumerieke karakters en spatie (a-zA-Z0-9)",
"LunaSea Device ID": "LunaSea Apparaat ID",
"Apprise URL": "Apprise URL",
"Example:": "Voorbeeld: {0}",
"Read more:": "Lees meer: {0}",
"Status:": "Status: {0}",
"Read more": "Lees meer",
appriseInstalled: "Apprise is geïnstalleerd.",
appriseNotInstalled: "Apprise is niet geïnstalleerd. {0}",
"Access Token": "Access Token",
"Channel access token": "Kanaal access token",
"Line Developers Console": "Line Developers Console",
lineDevConsoleTo: "Line Developers Console - {0}",
"Basic Settings": "Basis Instellingen",
"User ID": "Gebruiker ID",
"Messaging API": "Berichten API",
wayToGetLineChannelToken: "Begin met {0} te openen, creëer een provider en kanaal (Messaging API), dan kun je de kanaal access token en gebruikers ID van de hierboven genoemde menu items krijgen.",
"Icon URL": "Icoon URL",
aboutIconURL: "Je kunt een link om de standaard profiel afbeelding te overschrijving in \"Icoon URL\" meegeven. Dit wordt niet gebruikt als Icon Emoji is ingesteld.",
aboutMattermostChannelName: "Je kunt het standaard kanaal dat de Webhook plaatst overschijven door de kanaal naam in te vullen in het \"Channel Name\" veld. Dit moet worden ingeschakeld in de Mattermost Webhook instellingen. Bv. #ander-kanaal",
matrix: "Matrix",
promosmsTypeEco: "SMS ECO - Goedkoop maar langzaam en vaak overbelast. Gelimiteerd tot Poolse ontvangers.",
promosmsTypeFlash: "SMS FLASH - Berichten worden automatisch weergegeven op het apparaat van de ontvanger. Gelimiteerd tot Poolse ontvangers.",
promosmsTypeFull: "SMS FULL - Premium tier van SMS, je kunt de ontvanger naam gebruiken (Je moet eerst de naam registreren). Betrouwbaar voor alarmeringen.",
promosmsTypeSpeed: "SMS SPEED - Hoogste prioriteit in systeem. Is veel sneller en betrouwbaarder maar kost meer (ongeveer twee keer zoveel als volle SMS prijs).",
promosmsPhoneNumber: "Telefoon nummer (voor Poolse ontvangers. Je kunt gebieds codes overslaan)",
promosmsSMSSender: "SMS Ontvanger naam : Voor geregistreerde naam of een van de standaarden: InfoSMS, SMS Info, MaxSMS, INFO, SMS",
"Feishu WebHookUrl": "Feishu WebHookURL",
matrixHomeserverURL: "Homeserver URL (met http(s):// en optioneel poort)",
"Internal Room Id": "Interne Room ID",
matrixDesc1: "Je kunt de interne room ID vinden door in de geavanceerde sectie van de room instellingen in je Matrix client te kijken. Het zou moeten uitzien als !QMdRCpUIfLwsfjxye6:home.server.",
matrixDesc2: "Het wordt ten zeerste aanbevolen om een nieuwe gebruiker aan te maken en niet de access token van je account te gebruiken, aangezien dit volledige toegang geeft tot je account en alle kamers waar je lid van bent. Maak in plaats daarvan een nieuwe gebruiker aan en nodig deze alleen uit voor de ruimte waarin je de melding wilt ontvangen. Je kunt de access token krijgen door het volgende uit te voeren {0}",
"Monitor History": "Monitor Geschiedenis",
clearDataOlderThan: "Bewaar monitor geschiedenis voor {0} dagen.",
PasswordsDoNotMatch: "Wachtwoorden komen niet overeen",
records: "records",
"One record": "Een record",
steamApiKeyDescription: "Om een Steam Game Server te monitoren heb je een Steam Web-API key nodig. Je kunt hier je API key registreren: ",
"Current User": "Huidge Gebruiker",
topic: "Onderwerp",
topicExplanation: "MQTT onderwerp om te monitoren",
successMessage: "Succesbericht",
successMessageExplanation: "MQTT bericht dat als succes wordt beschouwd.",
recent: "Recent",
Done: "Klaar",
Info: "Info",
Security: "Beveiliging",
"Steam API Key": "Steam API Sleutel",
"Shrink Database": "Verklein Database",
"Pick a RR-Type...": "Kies een RR-Type...",
"Pick Accepted Status Codes...": "Kies geaccepteerde Status Codes...",
Default: "Standaard",
"HTTP Options": "HTTP Opties",
"Create Incident": "Creëer Incident",
Title: "Titel",
Content: "Content",
Style: "Stijl",
info: "info",
warning: "waarschuwing",
danger: "gevaar",
primary: "primair",
light: "licht",
dark: "donker",
Post: "Post",
"Please input title and content": "Voer alstublieft titel en content in",
Created: "Gemaakt",
"Last Updated": "Laatst Bijgewerkt",
Unpin: "Losmaken",
"Switch to Light Theme": "Wissel naar Licht Thema",
"Switch to Dark Theme": "Wissel naar Donker Thema",
"Show Tags": "Toon Labels",
"Hide Tags": "Verberg Labels",
Description: "Beschrijving",
"No monitors available.": "Geen monitors beschikbaar.",
"Add one": "Voeg een toe",
"No Monitors": "Geen Monitors",
"Untitled Group": "Naamloze Groep",
Services: "Diensten",
Discard: "Weggooien",
Cancel: "Annuleren",
"Powered by": "Mogelijk gemaakt door",
shrinkDatabaseDescription: "Trigger database VACUUM voor SQLite. Als de database na 1.10.0 gemaakt is, dan is AUTO_VACUUM al aangezet en deze actie niet nodig.",
serwersms: "SerwerSMS.pl",
serwersmsAPIUser: "API Gebruikersnaam (incl. webapi_ prefix)",
serwersmsAPIPassword: "API Wachtwoord",
serwersmsPhoneNumber: "Telefoon nummer",
serwersmsSenderName: "SMS Zender Naam (geregistreerd via klant portaal)",
stackfield: "Stackfield",
Customize: "Aanpassen",
"Custom Footer": "Aangepaste Footer",
"Custom CSS": "Aangepaste CSS",
smtpDkimSettings: "DKIM Instellingen",
smtpDkimDesc: "Refereer alsjeblieft naar Nodemailer DKIM {0} voor gebruik.",
documentation: "documentatie",
smtpDkimDomain: "Domein Naam",
smtpDkimKeySelector: "Sleutel Kiezer",
smtpDkimPrivateKey: "Prive Sleutel",
smtpDkimHashAlgo: "Hash Algoritme (Optioneel)",
smtpDkimheaderFieldNames: "Header sleutels om te ondertekenen (Optioneel)",
smtpDkimskipFields: "Header sleutels niet om te ondertekenen (Optioneel)",
gorush: "Gorush",
alerta: "Alerta",
alertaApiEndpoint: "API Eindpunt",
alertaEnvironment: "Omgeving",
alertaApiKey: "API Sleutel",
alertaAlertState: "Alert Staat",
alertaRecoverState: "Herstel Staat",
deleteStatusPageMsg: "Weet je zeker je deze status pagina wilt verwijderen?",
Proxies: "Proxies",
default: "Standaard",
enabled: "Ingeschakeld",
setAsDefault: "Stel in als standaard",
deleteProxyMsg: "Weet je zeker dat je deze proxy wilt verwijderen voor alle monitors?",
proxyDescription: "Proxies moeten worden toegewezen aan een monitor om te functioneren.",
enableProxyDescription: "Deze proxy heeft geen effect op monitor verzoeken totdat het is geactiveerd. Je kunt tijdelijk de proxy uitschakelen voor alle monitors voor activatie status.",
setAsDefaultProxyDescription: "Deze proxy wordt standaard aangezet voor alle nieuwe monitors. Je kunt nog steeds de proxy apart uitschakelen voor elke monitor.",
"Certificate Chain": "Certificaat Chain",
Valid: "Geldig",
Invalid: "Ongeldig",
AccessKeyId: "AccessKey ID",
SecretAccessKey: "AccessKey Secret",
PhoneNumbers: "TelefoonNummers",
TemplateCode: "TemplateCode",
SignName: "SignName",
"Sms template must contain parameters: ": "Sms sjabloon moet de volgende parameters bevatten: ",
"Bark Endpoint": "Bark Endpoint",
WebHookUrl: "WebHookUrl",
SecretKey: "SecretKey",
"For safety, must use secret key": "Voor de veiligheid moet je de secret key gebruiken",
"Device Token": "Apparaat Token",
Platform: "Platform",
iOS: "iOS",
Android: "Android",
Huawei: "Huawei",
High: "Hoog",
Retry: "Opnieuw",
Topic: "Onderwerp",
"WeCom Bot Key": "WeCom Bot Sleutel",
"Setup Proxy": "Proxy instellen",
"Proxy Protocol": "Proxy Protocol",
"Proxy Server": "Proxy Server",
"Proxy server has authentication": "Proxy server heeft authenticatie",
User: "Gebruiker",
Installed: "Geïnstalleerd",
"Not installed": "Niet geïnstalleerd",
Running: "Actief",
"Not running": "Niet actief",
"Remove Token": "Verwijder Token",
Start: "Start",
Stop: "Stop",
"Uptime Kuma": "Uptime Kuma",
"Add New Status Page": "Voeg nieuwe status pagina toe",
Slug: "Slug",
"Accept characters:": "Geaccepteerde tekens:",
startOrEndWithOnly: "Start of eindig alleen met {0}",
"No consecutive dashes": "Geen opeenvolgende streepjes",
Next: "Volgende",
"The slug is already taken. Please choose another slug.": "De slug is al in gebruik. Kies een andere slug.",
"No Proxy": "Geen Proxy",
"HTTP Basic Auth": "HTTP Basic Auth",
"New Status Page": "Nieuwe Status Pagina",
"Page Not Found": "Pagina Niet gevonden",
"Reverse Proxy": "Reverse Proxy",
Backup: "Backup",
About: "Over",
wayToGetCloudflaredURL: "(Download cloudflared van {0})",
cloudflareWebsite: "Cloudflare Website",
"Message:": "Bericht:",
"Don't know how to get the token? Please read the guide:": "Lees de uitleg als je niet weet hoe je een token krijgt:",
"The current connection may be lost if you are currently connecting via Cloudflare Tunnel. Are you sure want to stop it? Type your current password to confirm it.": "De huidge verbinding kan worden verbroken als je momenteel bent verbonden met Cloudflare Tunnel. Weet je zeker dat je het wilt stoppen? Typ je huidige wachtwoord om het te bevestigen.",
"Other Software": "Andere Software",
"For example: nginx, Apache and Traefik.": "Bijvoorbeeld: nginx, Apache and Traefik.",
"Please read": "Lees alstublieft",
"Subject:": "Onderwerp:",
"Valid To:": "Geldig Tot:",
"Days Remaining:": "Dagen Resterend:",
"Issuer:": "Uitgever:",
"Fingerprint:": "Vingerafruk:",
"No status pages": "Geen status pagina's",
"Domain Name Expiry Notification": "Domein Naam Verloop Notificatie",
Proxy: "Proxy",
"Date Created": "Datum Aangemaakt",
onebotHttpAddress: "OneBot HTTP Adres",
onebotMessageType: "OneBot Bericht Type",
onebotGroupMessage: "Groep",
onebotPrivateMessage: "Privé",
onebotUserOrGroupId: "Groep/Gebruiker ID",
onebotSafetyTips: "Voor de veiligheid moet een toegangssleutel worden ingesteld",
"PushDeer Key": "PushDeer Key",
"Footer Text": "Footer Tekst",
"Show Powered By": "Laat 'Mogeljik gemaakt door' zien",
"Domain Names": "Domein Namen",
};

View File

@@ -434,7 +434,7 @@ export default {
"Add New Status Page": "添加新的状态页",
Slug: "路径",
"Accept characters:": "可接受的字符:",
"startOrEndWithOnly": "开头和结尾必须为 {0}",
startOrEndWithOnly: "开头和结尾必须为 {0}",
"No consecutive dashes": "不能有连续的破折号",
Next: "下一步",
"The slug is already taken. Please choose another slug.": "该路径已被使用。请选择其他路径。",
@@ -450,12 +450,23 @@ export default {
"Fingerprint:": "指纹:",
"No status pages": "无状态页",
"Domain Name Expiry Notification": "域名到期时通知",
"Proxy": "代理",
Proxy: "代理",
"Date Created": "创建于",
onebotHttpAddress: "OneBot HTTP 地址",
onebotMessageType: "OneBot 消息类型",
onebotGroupMessage: "群聊",
onebotPrivateMessage: "私聊",
onebotUserOrGroupId: "群组/用户ID",
onebotSafetyTips: "出于安全原因请务必设置AccessToken",
onebotSafetyTips: "出于安全原因,请务必设置 AccessToken",
topic: "Topic",
topicExplanation: "MQTT 传递给监控的 Topic",
successMessage: "成功时消息",
successMessageExplanation: "MQTT 成功时所传递的消息",
Customize: "自定义",
"Custom Footer": "自定义底部",
"Custom CSS": "自定义 CSS",
"PushDeer Key": "PushDeer Key",
"Footer Text": "底部自定义文本",
"Show Powered By": "显示 Powered By",
"Domain Names": "域名",
};

View File

@@ -33,7 +33,7 @@ export default {
Appearance: "外觀",
Theme: "主題",
General: "一般",
"Primary Base URL": "主要基底 URL",
"Primary Base URL": "主要基底網址",
Version: "版本",
"Check Update On GitHub": "在 GitHub 檢查更新",
List: "清單",
@@ -307,9 +307,12 @@ export default {
PasswordsDoNotMatch: "密碼不相符。",
records: "記錄",
"One record": "一項記錄",
"Showing {from} to {to} of {count} records": "正在顯示 {count} 項記錄中的 {from} 至 {to} 項",
steamApiKeyDescription: "若要監測 Steam 遊戲伺服器,您將需要 Steam Web-API 金鑰。您可以在此註冊您的 API 金鑰:",
"Current User": "目前使用者",
topic: "Topic",
topicExplanation: "要監測的 MQTT Topic",
successMessage: "成功訊息",
successMessageExplanation: "視為成功的 MQTT 訊息",
recent: "最近",
Done: "完成",
Info: "資訊",
@@ -355,6 +358,9 @@ export default {
serwersmsPhoneNumber: "電話號碼",
serwersmsSenderName: "SMS 寄件人名稱 (由客戶入口網站註冊)",
stackfield: "Stackfield",
Customize: "自訂",
"Custom Footer": "自訂頁尾",
"Custom CSS": "自訂 CSS",
smtpDkimSettings: "DKIM 設定",
smtpDkimDesc: "請參考 Nodemailer DKIM {0} 使用方式。",
documentation: "文件",
@@ -366,7 +372,7 @@ export default {
smtpDkimskipFields: "不簽署的郵件標頭 (選填)",
gorush: "Gorush",
alerta: "Alerta",
alertaApiEndpoint: "API Endpoint",
alertaApiEndpoint: "API 端點",
alertaEnvironment: "環境",
alertaApiKey: "API 金鑰",
alertaAlertState: "警示狀態",
@@ -380,4 +386,80 @@ export default {
proxyDescription: "必須將代理伺服器指派給監測器才能運作。",
enableProxyDescription: "此代理伺服器在啟用前不會在監測器上生效,您可以藉由控制啟用狀態來暫時對所有的監測器停用代理伺服器。",
setAsDefaultProxyDescription: "預設情況下,新監測器將啟用此代理伺服器。您仍可分別停用各監測器的代理伺服器。",
"Certificate Chain": "憑證鏈結",
Valid: "有效",
Invalid: "無效",
AccessKeyId: "AccessKey ID",
SecretAccessKey: "AccessKey 密碼",
PhoneNumbers: "PhoneNumbers",
TemplateCode: "TemplateCode",
SignName: "SignName",
"Sms template must contain parameters: ": "Sms 範本必須包含參數:",
"Bark Endpoint": "Bark 端點",
WebHookUrl: "WebHookUrl",
SecretKey: "SecretKey",
"For safety, must use secret key": "為了安全起見,必須使用秘密金鑰",
"Device Token": "裝置權杖",
Platform: "平台",
iOS: "iOS",
Android: "Android",
Huawei: "華為",
High: "高",
Retry: "重試",
Topic: "Topic",
"WeCom Bot Key": "WeCom 機器人金鑰",
"Setup Proxy": "設置 Proxy",
"Proxy Protocol": "Proxy 通訊協定",
"Proxy Server": "Proxy 伺服器",
"Proxy server has authentication": "Proxy 伺服器啟用了驗證功能",
User: "使用者",
Installed: "已安裝",
"Not installed": "未安裝",
Running: "執行中",
"Not running": "未執行",
"Remove Token": "移除權杖",
Start: "開始",
Stop: "停止",
"Uptime Kuma": "Uptime Kuma",
"Add New Status Page": "新增狀態頁",
Slug: "Slug",
"Accept characters:": "可用字元:",
startOrEndWithOnly: "僅能使用 {0} 開頭或結尾",
"No consecutive dashes": "不得連續使用破折號",
Next: "下一步",
"The slug is already taken. Please choose another slug.": "此 slug 已被使用。請選擇其他 slug。",
"No Proxy": "無 Proxy",
"HTTP Basic Auth": "HTTP 基本驗證",
"New Status Page": "新狀態頁",
"Page Not Found": "找不到頁面",
"Reverse Proxy": "反向代理",
Backup: "備份",
About: "關於",
wayToGetCloudflaredURL: "(從 {0} 下載 cloudflared)",
cloudflareWebsite: "Cloudflare 網站",
"Message:": "訊息:",
"Don't know how to get the token? Please read the guide:": "不知道如何取得權杖嗎?請閱讀指南:",
"The current connection may be lost if you are currently connecting via Cloudflare Tunnel. Are you sure want to stop it? Type your current password to confirm it.": "如果您目前正透過 Cloudflare Tunnel 連線,可能會導致連線中斷。您確定要停止嗎?請輸入密碼以確認。",
"Other Software": "其他軟體",
"For example: nginx, Apache and Traefik.": "例如 nginx、Apache 和 Traefik。",
"Please read": "請閱覽",
"Subject:": "簽發給:",
"Valid To:": "有效期限:",
"Days Remaining:": "剩餘天數:",
"Issuer:": "簽發者:",
"Fingerprint:": "指紋:",
"No status pages": "無狀態頁",
"Domain Name Expiry Notification": "網域名稱到期通知",
Proxy: "Proxy",
"Date Created": "建立日期",
onebotHttpAddress: "OneBot HTTP 位址",
onebotMessageType: "OneBot 訊息類型",
onebotGroupMessage: "群組",
onebotPrivateMessage: "私人",
onebotUserOrGroupId: "群組/使用者 ID",
onebotSafetyTips: "為了安全起見,必須設置存取權杖",
"PushDeer Key": "PushDeer 金鑰",
"Footer Text": "頁尾文字",
"Show Powered By": "顯示技術支援文字",
"Domain Names": "網域名稱",
};

View File

@@ -38,14 +38,19 @@
<font-awesome-icon icon="angle-down" />
</div>
<ul class="dropdown-menu">
<li><span class="dropdown-item-text">Signed in as <strong>{{ $root.username }}</strong></span></li>
<li>
<i18n-t v-if="$root.username != null" tag="span" keypath="signedInDisp" class="dropdown-item-text">
<strong>{{ $root.username }}</strong>
</i18n-t>
<span v-if="$root.username == null" class="dropdown-item-text">{{ $t("signedInDispDisabled") }}</span>
</li>
<li><hr class="dropdown-divider"></li>
<li>
<router-link to="/settings" class="dropdown-item" :class="{ active: $route.path.includes('settings') }">
<font-awesome-icon icon="cog" /> {{ $t("Settings") }}
</router-link>
</li>
<li v-if="$root.loggedIn && $root.storage().token !== 'autoLogin'">
<li v-if="$root.loggedIn && $root.socket.token !== 'autoLogin'">
<button class="dropdown-item" @click="$root.logout">
<font-awesome-icon icon="sign-out-alt" />
{{ $t("Logout") }}
@@ -230,8 +235,10 @@ main {
.dropdown-menu {
transition: all 0.2s;
padding-left: 0;
padding-bottom: 0;
margin-top: 8px !important;
border-radius: 20px;
border-radius: 16px;
overflow: hidden;
.dropdown-divider {
margin: 0;

View File

@@ -103,8 +103,8 @@ export default {
socket.on("autoLogin", (monitorID, data) => {
this.loggedIn = true;
this.username = "No Auth";
this.storage().token = "autoLogin";
this.socket.token = "autoLogin";
this.allowLoginDialog = false;
});

View File

@@ -18,7 +18,7 @@
</router-link>
<!-- Logout Button -->
<a v-if="$root.isMobile && $root.loggedIn && $root.storage().token !== 'autoLogin'" class="logout" @click.prevent="$root.logout">
<a v-if="$root.isMobile && $root.loggedIn && $root.socket.token !== 'autoLogin'" class="logout" @click.prevent="$root.logout">
<div class="menu-item">
<font-awesome-icon icon="sign-out-alt" />
{{ $t("Logout") }}

View File

@@ -52,7 +52,7 @@
<!-- Domain Name List -->
<div class="my-3">
<label class="form-label">
Domain Names
{{ $t("Domain Names") }}
<font-awesome-icon icon="plus-circle" class="btn-add-domain action text-primary" @click="addDomainField" />
</label>
@@ -707,7 +707,7 @@ export default {
},
postIncident() {
if (this.incident.title == "" || this.incident.content == "") {
if (this.incident.title === "" || this.incident.content === "") {
toast.error(this.$t("Please input title and content"));
return;
}