Merge remote-tracking branch 'origin/master' into mariadb

# Conflicts:
#	docker/alpine-base.dockerfile
#	docker/dockerfile-alpine
#	package.json
#	server/database.js
pull/2738/head
Louis Lam 2 years ago
commit 0b40c65139

@ -16,7 +16,6 @@ Please delete any options that are not relevant.
- User interface (UI)
- New feature (non-breaking change which adds functionality)
- Breaking change (fix or feature that would cause existing functionality to not work as expected)
- Translation update
- Other
- This change requires a documentation update

@ -6,8 +6,12 @@ name: Auto Test
on:
push:
branches: [ master ]
paths-ignore:
- '*.md'
pull_request:
branches: [ master ]
paths-ignore:
- '*.md'
jobs:
auto-test:
@ -18,7 +22,7 @@ jobs:
strategy:
matrix:
os: [macos-latest, ubuntu-latest, windows-latest]
node: [ 14, 16, 17, 18 ]
node: [ 14, 16, 18, 19 ]
# See supported Node.js release schedule at https://nodejs.org/en/about/releases/
steps:
@ -36,6 +40,7 @@ jobs:
env:
HEADLESS_TEST: 1
JUST_FOR_TEST: ${{ secrets.JUST_FOR_TEST }}
check-linters:
runs-on: ubuntu-latest
@ -66,3 +71,19 @@ jobs:
- run: npm install
- run: npm run build
- run: npm run cy:test
frontend-unit-tests:
needs: [ check-linters ]
runs-on: ubuntu-latest
steps:
- run: git config --global core.autocrlf false # Mainly for Windows
- uses: actions/checkout@v3
- name: Use Node.js 14
uses: actions/setup-node@v3
with:
node-version: 14
cache: 'npm'
- run: npm install
- run: npm run build
- run: npm run cy:run:unit

@ -1,4 +1,3 @@
name: Close Incorrect Issue
on:
@ -12,13 +11,13 @@ jobs:
strategy:
matrix:
os: [ubuntu-latest]
node-version: [16.x]
node-version: [16]
steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v3
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v2
uses: actions/setup-node@v3
with:
node-version: ${{ matrix.node-version }}
cache: 'npm'

@ -3,13 +3,13 @@ on:
workflow_dispatch:
schedule:
- cron: '0 */6 * * *'
#Run every 6 hours
#Run every 6 hours
jobs:
stale:
runs-on: ubuntu-latest
steps:
- uses: actions/stale@v5
- uses: actions/stale@v7
with:
stale-issue-message: 'We are clearing up our old issues and your ticket has been open for 3 months with no activity. Remove stale label or comment or this will be closed in 2 days.'
close-issue-message: 'This issue was closed because it has been stalled for 2 days with no activity.'

@ -1,6 +1,6 @@
# Project Info
First of all, thank you everyone who made pull requests for Uptime Kuma, I never thought GitHub Community can be that nice! And also because of this, I also never thought other people actually read my code and edit my code. It is not structured and commented so well, lol. Sorry about that.
First of all, I want to thank everyone who made pull requests for Uptime Kuma. I never thought the GitHub Community would be so nice! Because of this, I also never thought that other people would actually read and edit my code. It is not very well structured or commented, sorry about that.
The project was created with vite.js (vue3). Then I created a subdirectory called "server" for server part. Both frontend and backend share the same package.json.
@ -17,8 +17,11 @@ The frontend code build into "dist" directory. The server (express.js) exposes t
## Directories
- config (dev config files)
- data (App data)
- db (Base database and migration scripts)
- dist (Frontend build)
- docker (Dockerfiles)
- extra (Extra useful scripts)
- public (Frontend resources for dev only)
- server (Server source code)
@ -27,20 +30,23 @@ The frontend code build into "dist" directory. The server (express.js) exposes t
## Can I create a pull request for Uptime Kuma?
Yes or no, it depends on what you will try to do. Since I don't want to waste your time, be sure to **create an empty draft pull request or open an issue, so we can discuss first**. Especially for a large pull request or you don't know it will be merged or not.
Yes or no, it depends on what you will try to do. Since I don't want to waste your time, be sure to **create an empty draft pull request or open an issue, so we can have a discussion first**. Especially for a large pull request or you don't know it will be merged or not.
Here are some references:
✅ Usually Accept:
- Bug/Security fix
- Translations
- Bug fix
- Security fix
- Adding notification providers
- Adding new language files (You should go to https://weblate.kuma.pet for existing languages)
- Adding new language keys: `$t("...")`
⚠️ Discussion First
- Large pull requests
- New features
❌ Won't Merge
- A dedicated pr for translating existing languages (You can now translate on https://weblate.kuma.pet)
- Do not pass auto test
- Any breaking changes
- Duplicated pull request
@ -48,8 +54,13 @@ Here are some references:
- UI/UX is not close to Uptime Kuma
- Existing logic is completely modified or deleted for no reason
- A function that is completely out of scope
- Convert existing code into other programming languages
- Unnecessary large code changes (Hard to review, causes code conflicts to other pull requests)
The above cases cannot cover all situations.
I (@louislam) have the final say. If your pull request does not meet my expectations, I will reject it, no matter how much time you spend on it. Therefore, it is essential to have a discussion beforehand.
I will mark your pull request in the [milestones](https://github.com/louislam/uptime-kuma/milestones), if I am plan to review and merge it.
Also, please don't rush or ask for ETA, because I have to understand the pull request, make sure it is no breaking changes and stick to my vision of this project, especially for large pull requests.
@ -72,13 +83,13 @@ Before deep into coding, discussion first is preferred. Creating an empty pull r
## Project Styles
I personally do not like something need to learn so much and need to config so much before you can finally start the app.
I personally do not like something that requires so many configurations before you can finally start the app. I hope Uptime Kuma installation could be as easy as like installing a mobile app.
- Easy to install for non-Docker users, no native build dependency is needed (at least for x86_64), no extra config, no extra effort to get it run
- Easy to install for non-Docker users, no native build dependency is needed (for x86_64/armv7/arm64), no extra config, no extra effort required to get it running
- Single container for Docker users, no very complex docker-compose file. Just map the volume and expose the port, then good to go
- Settings should be configurable in the frontend. Environment variable is not encouraged, unless it is related to startup such as `DATA_DIR`.
- Settings should be configurable in the frontend. Environment variable is not encouraged, unless it is related to startup such as `DATA_DIR`
- Easy to use
- The web UI styling should be consistent and nice.
- The web UI styling should be consistent and nice
## Coding Styles
@ -87,7 +98,7 @@ I personally do not like something need to learn so much and need to config so m
- Follow ESLint
- Methods and functions should be documented with JSDoc
## Name convention
## Name Conventions
- Javascript/Typescript: camelCaseType
- SQLite: snake_case (Underscore)
@ -101,7 +112,7 @@ I personally do not like something need to learn so much and need to config so m
- IDE that supports ESLint and EditorConfig (I am using IntelliJ IDEA)
- A SQLite GUI tool (SQLite Expert Personal is suggested)
## Install dependencies
## Install Dependencies for Development
```bash
npm ci
@ -119,6 +130,12 @@ Port `3000` and port `3001` will be used.
npm run dev
```
But sometimes, you would like to keep restart the server, but not the frontend, you can run these command in two terminals:
```
npm run start-frontend-dev
npm run start-server-dev
```
## Backend Server
It binds to `0.0.0.0:3001` by default.
@ -134,12 +151,15 @@ express.js is used for:
### Structure in /server/
- jobs/ (Jobs that are running in another process)
- model/ (Object model, auto mapping to the database table name)
- modules/ (Modified 3rd-party modules)
- monitor_types (Monitor Types)
- notification-providers/ (individual notification logic)
- routers/ (Express Routers)
- socket-handler (Socket.io Handlers)
- server.js (Server entry point and main logic)
- server.js (Server entry point)
- uptime-kuma-server.js (UptimeKumaServer class, main logic should be here, but some still in `server.js`)
## Frontend Dev Server
@ -172,15 +192,11 @@ The data and socket logic are in `src/mixins/socket.js`.
## Unit Test
It is an end-to-end testing. It is using Jest and Puppeteer.
```bash
npm run build
npm test
```
By default, the Chromium window will be shown up during the test. Specifying `HEADLESS_TEST=1` for terminal environments.
## Dependencies
Both frontend and backend share the same package.json. However, the frontend dependencies are eventually not used in the production environment, because it is usually also baked into dist files. So:
@ -194,18 +210,12 @@ Both frontend and backend share the same package.json. However, the frontend dep
### Update Dependencies
Install `ncu`
https://github.com/raineorshine/npm-check-updates
```bash
ncu -u -t patch
npm install
```
Since previously updating Vite 2.5.10 to 2.6.0 broke the application completely, from now on, it should update patch release version only.
Patch release = the third digit ([Semantic Versioning](https://semver.org/))
If for maybe security reasons, a library must be updated. Then you must need to check if there are any breaking changes.
## Translations
Please read: https://github.com/louislam/uptime-kuma/tree/master/src/languages

@ -1,38 +1,39 @@
# Uptime Kuma
<a target="_blank" href="https://github.com/louislam/uptime-kuma"><img src="https://img.shields.io/github/stars/louislam/uptime-kuma" /></a> <a target="_blank" href="https://hub.docker.com/r/louislam/uptime-kuma"><img src="https://img.shields.io/docker/pulls/louislam/uptime-kuma" /></a> <a target="_blank" href="https://hub.docker.com/r/louislam/uptime-kuma"><img src="https://img.shields.io/docker/v/louislam/uptime-kuma/latest?label=docker%20image%20ver." /></a> <a target="_blank" href="https://github.com/louislam/uptime-kuma"><img src="https://img.shields.io/github/last-commit/louislam/uptime-kuma" /></a> <a target="_blank" href="https://opencollective.com/uptime-kuma"><img src="https://opencollective.com/uptime-kuma/total/badge.svg?label=Open%20Collective%20Backers&color=brightgreen" /></a>
[![GitHub Sponsors](https://img.shields.io/github/sponsors/louislam?label=GitHub%20Sponsors)](https://github.com/sponsors/louislam)
[![GitHub Sponsors](https://img.shields.io/github/sponsors/louislam?label=GitHub%20Sponsors)](https://github.com/sponsors/louislam) <a href="https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/">
<img src="https://weblate.kuma.pet/widgets/uptime-kuma/-/svg-badge.svg" alt="Translation status" />
</a>
<div align="center" width="100%">
<img src="./public/icon.svg" width="128" alt="" />
</div>
It is a self-hosted monitoring tool like "Uptime Robot".
Uptime Kuma is an easy-to-use self-hosted monitoring tool.
<img src="https://uptime.kuma.pet/img/dark.jpg" width="700" alt="" />
<img src="https://user-images.githubusercontent.com/1336778/212262296-e6205815-ad62-488c-83ec-a5b0d0689f7c.jpg" width="700" alt="" />
## 🥔 Live Demo
Try it!
- Tokyo Demo Server: https://demo.uptime.kuma.pet (Sponsored by [Uptime Kuma Sponsors](https://github.com/louislam/uptime-kuma#%EF%B8%8F-sponsors))
- Europe Demo Server: https://demo.uptime-kuma.karimi.dev:27000 (Provided by [@mhkarimi1383](https://github.com/mhkarimi1383))
It is a temporary live demo, all data will be deleted after 10 minutes. Use the one that is closer to you, but I suggest that you should install and try it out for the best demo experience.
## ⭐ Features
* Monitoring uptime for HTTP(s) / TCP / HTTP(s) Keyword / Ping / DNS Record / Push / Steam Game Server / Docker Containers.
* Fancy, Reactive, Fast UI/UX.
* 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)
* Multiple Status Pages
* Map Status Page to Domain
* Ping Chart
* Certificate Info
* Proxy Support
* 2FA available
* Monitoring uptime for HTTP(s) / TCP / HTTP(s) Keyword / Ping / DNS Record / Push / Steam Game Server / Docker Containers
* Fancy, Reactive, Fast UI/UX
* 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/lang)
* Multiple status pages
* Map status pages to specific domains
* Ping chart
* Certificate info
* Proxy support
* 2FA support
## 🔧 How to Install
@ -44,14 +45,14 @@ docker run -d --restart=always -p 3001:3001 -v uptime-kuma:/app/data --name upti
⚠️ Please use a **local volume** only. Other types such as NFS are not supported.
Browse to http://localhost:3001 after starting.
Uptime Kuma is now running on http://localhost:3001
### 💪🏻 Non-Docker
Required Tools:
- [Node.js](https://nodejs.org/en/download/) >= 14
- [Git](https://git-scm.com/downloads)
- [pm2](https://pm2.keymetrics.io/) - For run in background
- [pm2](https://pm2.keymetrics.io/) - For running Uptime Kuma in the background
```bash
# Update your npm to the latest version
@ -73,7 +74,7 @@ pm2 start server/server.js --name uptime-kuma
```
Browse to http://localhost:3001 after starting.
Uptime Kuma is now running on http://localhost:3001
More useful PM2 Commands
@ -171,7 +172,7 @@ Check out the latest beta release here: https://github.com/louislam/uptime-kuma/
If you want to report a bug or request a new feature, feel free to open a [new issue](https://github.com/louislam/uptime-kuma/issues).
### Translations
If you want to translate Uptime Kuma into your language, please read: https://github.com/louislam/uptime-kuma/tree/master/src/languages
If you want to translate Uptime Kuma into your language, please visit [Weblate Readme](https://github.com/louislam/uptime-kuma/blob/master/src/lang/README.md).
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.

@ -2,9 +2,9 @@
## Reporting a Vulnerability
Please report security issues to uptime@kuma.pet.
Please report security issues to https://github.com/louislam/uptime-kuma/security/advisories/new.
Do not use the issue tracker or discuss it in the public as it will cause more damage.
Do not use the public issue tracker or discuss it in the public as it will cause more damage.
## Supported Versions

@ -0,0 +1,10 @@
const { defineConfig } = require("cypress");
module.exports = defineConfig({
e2e: {
supportFile: false,
specPattern: [
"test/cypress/unit/**/*.js"
],
}
});

@ -0,0 +1,5 @@
BEGIN TRANSACTION;
ALTER TABLE monitor
ADD game VARCHAR(255);
COMMIT

@ -0,0 +1,5 @@
-- You should not modify if this have pushed to Github, unless it does serious wrong with the db.
BEGIN TRANSACTION;
ALTER TABLE monitor
ADD packet_size INTEGER DEFAULT 56 NOT NULL;
COMMIT;

@ -0,0 +1,16 @@
############################################
# Build in Golang
# Run npm run build-healthcheck-armv7 in the host first, another it will be super slow where it is building the armv7 healthcheck
############################################
FROM golang:1.19-buster
WORKDIR /app
ARG TARGETPLATFORM
COPY ./extra/ ./extra/
# Compile healthcheck.go
RUN apt update && \
apt --yes --no-install-recommends install curl && \
curl -sL https://deb.nodesource.com/setup_18.x | bash && \
apt --yes --no-install-recommends install nodejs && \
node ./extra/build-healthcheck.js $TARGETPLATFORM && \
apt --yes remove nodejs

@ -10,8 +10,8 @@ WORKDIR /app
# Stupid python3 and python3-pip actually install a lot of useless things into Debian, specify --no-install-recommends to skip them.
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==1.2.0 && \
sqlite3 iputils-ping util-linux dumb-init git && \
pip3 --no-cache-dir install apprise==1.2.1 && \
rm -rf /var/lib/apt/lists/* && \
apt --yes autoremove

@ -1,19 +1,9 @@
############################################
# Build in Golang
# Run npm run build-healthcheck-armv7 in the host first, another it will be super slow where it is building the armv7 healthcheck
# Check file: builder-go.dockerfile
############################################
FROM golang:1.19.4-buster AS build_healthcheck
WORKDIR /app
ARG TARGETPLATFORM
COPY ./extra/ ./extra/
# Compile healthcheck.go
RUN apt update
RUN apt --yes --no-install-recommends install curl
RUN curl -sL https://deb.nodesource.com/setup_18.x | bash
RUN apt --yes --no-install-recommends install nodejs
RUN node -v
RUN node ./extra/build-healthcheck.js $TARGETPLATFORM
FROM louislam/uptime-kuma:builder-go AS build_healthcheck
############################################
# Build in Node.js
@ -22,10 +12,13 @@ FROM louislam/uptime-kuma:base-debian AS build
WORKDIR /app
ENV PUPPETEER_SKIP_CHROMIUM_DOWNLOAD=1
COPY .npmrc .npmrc
COPY package.json package.json
COPY package-lock.json package-lock.json
RUN npm ci --omit=dev
COPY . .
COPY --from=build_healthcheck /app/extra/healthcheck /app/extra/healthcheck
RUN npm ci --production && \
chmod +x /app/extra/entrypoint.sh
RUN chmod +x /app/extra/entrypoint.sh
############################################
# ⭐ Main Image (Slim)

@ -32,6 +32,10 @@ if (! exists) {
process.exit(1);
}
/**
* Commit updated files
* @param {string} version Version to update to
*/
function commit(version) {
let msg = "Update to " + version;
@ -47,6 +51,10 @@ function commit(version) {
console.log(res.stdout.toString().trim());
}
/**
* Create a tag with the specified version
* @param {string} version Tag to create
*/
function tag(version) {
let res = childProcess.spawnSync("git", [ "tag", version ]);
console.log(res.stdout.toString().trim());
@ -55,6 +63,11 @@ function tag(version) {
console.log(res.stdout.toString().trim());
}
/**
* Check if a tag exists for the specified version
* @param {string} version Version to check
* @returns {boolean} Does the tag already exist
*/
function tagExists(version) {
if (! version) {
throw new Error("invalid version");

@ -25,6 +25,10 @@ if (platform === "linux/amd64") {
const file = fs.createWriteStream("cloudflared.deb");
get("https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-" + arch + ".deb");
/**
* Download specified file
* @param {string} url URL to request
*/
function get(url) {
http.get(url, function (res) {
if (res.statusCode >= 300 && res.statusCode < 400 && res.headers.location) {

@ -1,3 +1,7 @@
/*
* If changed, have to run `npm run build-docker-builder-go`.
* This script should be run after a period of time (180s), because the server may need some time to prepare.
*/
package main
import (
@ -7,12 +11,17 @@ import (
"net/http"
"os"
"runtime"
"strings"
"time"
)
func main() {
isFreeBSD := runtime.GOOS == "freebsd"
// Is K8S + uptime-kuma as the container name
// See #2083
isK8s := strings.HasPrefix(os.Getenv("UPTIME_KUMA_PORT"), "tcp://")
// process.env.NODE_TLS_REJECT_UNAUTHORIZED = "0";
http.DefaultTransport.(*http.Transport).TLSClientConfig = &tls.Config{
InsecureSkipVerify: true,
@ -40,7 +49,11 @@ func main() {
hostname = "127.0.0.1"
}
port := os.Getenv("UPTIME_KUMA_PORT")
port := ""
// UPTIME_KUMA_PORT is override by K8S unexpectedly,
if !isK8s {
port = os.Getenv("UPTIME_KUMA_PORT")
}
if len(port) == 0 {
port = os.Getenv("PORT")
}

@ -19,17 +19,17 @@ if (sslKey && sslCert) {
// If host is omitted, the server will accept connections on the unspecified IPv6 address (::) when IPv6 is available and the unspecified IPv4 address (0.0.0.0) otherwise.
// Dual-stack support for (::)
let hostname = process.env.UPTIME_KUMA_HOST;
let hostname = process.env.UPTIME_KUMA_SERVICE_HOST || process.env.UPTIME_KUMA_HOST || "::";
// Also read HOST if not *BSD, as HOST is a system environment variable in FreeBSD
if (!hostname && !FBSD) {
hostname = process.env.HOST;
}
const port = parseInt(process.env.UPTIME_KUMA_PORT || process.env.PORT || 3001);
const port = parseInt(process.env.UPTIME_KUMA_SERVICE_PORT || process.env.UPTIME_KUMA_PORT || process.env.PORT || 3001);
let options = {
host: hostname || "127.0.0.1",
host: hostname,
port: port,
timeout: 28 * 1000,
};

@ -1,11 +1,12 @@
const pkg = require("../package.json");
const fs = require("fs");
const util = require("../src/util");
const dayjs = require("dayjs");
util.polyfill();
const oldVersion = pkg.version;
const newVersion = oldVersion + "-nightly-" + util.genSecret(8);
const newVersion = oldVersion + "-nightly-" + dayjs().format("YYYYMMDDHHmmss");
console.log("Old Version: " + oldVersion);
console.log("New Version: " + newVersion);

@ -43,6 +43,11 @@ const main = async () => {
console.log("Finished.");
};
/**
* Ask question of user
* @param {string} question Question to ask
* @returns {Promise<string>} Users response
*/
function question(question) {
return new Promise((resolve) => {
rl.question(question, (answer) => {

@ -53,6 +53,11 @@ const main = async () => {
console.log("Finished.");
};
/**
* Ask question of user
* @param {string} question Question to ask
* @returns {Promise<string>} Users response
*/
function question(question) {
return new Promise((resolve) => {
rl.question(question, (answer) => {

@ -135,6 +135,11 @@ server.listen({
udp: 5300
});
/**
* Get human readable request type from request code
* @param {number} code Request code to translate
* @returns {string} Human readable request type
*/
function type(code) {
for (let name in Packet.TYPE) {
if (Packet.TYPE[name] === code) {

@ -11,6 +11,7 @@ class SimpleMqttServer {
this.port = port;
}
/** Start the MQTT server */
start() {
this.server.listen(this.port, () => {
console.log("server started and listening on port ", this.port);

@ -36,10 +36,8 @@ if (! exists) {
}
/**
* Updates the version number in package.json and commits it to git.
* @param {string} version - The new version number
*
* Generated by Trelent
* Commit updated files
* @param {string} version Version to update to
*/
function commit(version) {
let msg = "Update to " + version;
@ -53,16 +51,19 @@ function commit(version) {
}
}
/**
* Create a tag with the specified version
* @param {string} version Tag to create
*/
function tag(version) {
let res = childProcess.spawnSync("git", [ "tag", version ]);
console.log(res.stdout.toString().trim());
}
/**
* Checks if a given version is already tagged in the git repository.
* @param {string} version - The version to check for.
*
* Generated by Trelent
* Check if a tag exists for the specified version
* @param {string} version Version to check
* @returns {boolean} Does the tag already exist
*/
function tagExists(version) {
if (! version) {

@ -10,6 +10,10 @@ if (!newVersion) {
updateWiki(newVersion);
/**
* Update the wiki with new version number
* @param {string} newVersion Version to update to
*/
function updateWiki(newVersion) {
const wikiDir = "./tmp/wiki";
const howToUpdateFilename = "./tmp/wiki/🆙-How-to-Update.md";
@ -39,6 +43,10 @@ function updateWiki(newVersion) {
safeDelete(wikiDir);
}
/**
* Check if a directory exists and then delete it
* @param {string} dir Directory to delete
*/
function safeDelete(dir) {
if (fs.existsSync(dir)) {
fs.rm(dir, {

27515
package-lock.json generated

File diff suppressed because it is too large Load Diff

@ -1,6 +1,6 @@
{
"name": "uptime-kuma",
"version": "1.19.0-beta.2",
"version": "1.20.0-beta.0",
"license": "MIT",
"repository": {
"type": "git",
@ -30,13 +30,14 @@
"vite-preview-dist": "vite preview --host --config ./config/vite.config.js",
"build-docker": "npm run build && npm run build-docker-debian && npm run build-docker-debian-mariadb",
"build-docker-debian-base": "docker buildx build -f docker/debian-base.dockerfile --platform linux/amd64,linux/arm64,linux/arm/v7 -t louislam/uptime-kuma:base-debian . --push",
"build-docker-builder-go": "docker buildx build -f docker/builder-go.dockerfile --platform linux/amd64,linux/arm64,linux/arm/v7 -t louislam/uptime-kuma:builder-go . --push",
"build-docker-debian": "node ./extra/env2arg.js docker buildx build -f docker/dockerfile --platform linux/amd64,linux/arm64,linux/arm/v7 -t louislam/uptime-kuma -t louislam/uptime-kuma:1 -t louislam/uptime-kuma:$VERSION -t louislam/uptime-kuma:debian -t louislam/uptime-kuma:1-debian -t louislam/uptime-kuma:$VERSION-debian --target release . --push",
"build-docker-debian-mariadb": "node ./extra/env2arg.js docker buildx build -f docker/dockerfile --platform linux/amd64,linux/arm64,linux/arm/v7 -t louislam/uptime-kuma:mariadb -t louislam/uptime-kuma:1-mariadb -t louislam/uptime-kuma:$VERSION-mariadb --target mariadb . --push",
"build-docker-nightly": "npm run build && docker buildx build -f docker/dockerfile --platform linux/amd64,linux/arm64,linux/arm/v7 -t louislam/uptime-kuma:nightly --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",
"build-docker-pr-test": "docker buildx build -f docker/dockerfile --platform linux/amd64,linux/arm64 -t louislam/uptime-kuma:pr-test --target pr-test . --push",
"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.18.5 && npm ci --production && npm run download-dist",
"setup": "git checkout 1.19.6 && 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",
@ -57,11 +58,13 @@
"start-pr-test": "node extra/checkout-pr.js && npm install && npm run dev",
"cy:test": "node test/prepare-test-server.js && node server/server.js --port=3002 --data-dir=./data/test/ --e2e",
"cy:run": "npx cypress run --browser chrome --headless --config-file ./config/cypress.config.js",
"cy:run:unit": "npx cypress run --browser chrome --headless --config-file ./config/cypress.frontend.config.js",
"cypress-open": "concurrently -k -r \"node test/prepare-test-server.js && node server/server.js --port=3002 --data-dir=./data/test/\" \"cypress open --config-file ./config/cypress.config.js\"",
"build-healthcheck-armv7": "cross-env GOOS=linux GOARCH=arm GOARM=7 go build -x -o ./extra/healthcheck-armv7 ./extra/healthcheck.go"
},
"dependencies": {
"@grpc/grpc-js": "~1.7.3",
"@louislam/ping": "~0.4.2-mod.1",
"@louislam/sqlite3": "15.1.2",
"args-parser": "~1.3.0",
"axios": "~0.27.0",
@ -78,18 +81,21 @@
"compare-versions": "~3.6.0",
"compression": "~1.7.4",
"dayjs": "~1.11.5",
"dotenv": "~16.0.3",
"express": "~4.17.3",
"express-basic-auth": "~1.2.1",
"express-static-gzip": "~2.1.7",
"form-data": "~4.0.0",
"gamedig": "^4.0.5",
"http-graceful-shutdown": "~3.1.7",
"http-proxy-agent": "~5.0.0",
"https-proxy-agent": "~5.0.1",
"iconv-lite": "~0.6.3",
"jsesc": "~3.0.2",
"jsonwebtoken": "~8.5.1",
"jsonwebtoken": "~9.0.0",
"jwt-decode": "~3.1.2",
"limiter": "~2.1.0",
"mongodb": "~4.13.0",
"mqtt": "~4.3.7",
"mssql": "~8.1.4",
"mysql2": "~2.3.3",
@ -103,7 +109,8 @@
"prom-client": "~13.2.0",
"prometheus-api-metrics": "~3.2.1",
"protobufjs": "~7.1.1",
"redbean-node": "0.1.4",
"redbean-node": "~0.2.0",
"redis": "~4.5.1",
"socket.io": "~4.5.3",
"socket.io-client": "~4.5.3",
"socks-proxy-agent": "6.1.1",
@ -136,9 +143,11 @@
"cypress": "^10.1.0",
"delay": "^5.0.0",
"dns2": "~2.0.1",
"dompurify": "~2.4.3",
"eslint": "~8.14.0",
"eslint-plugin-vue": "~8.7.1",
"favico.js": "~0.3.10",
"marked": "~4.2.5",
"jest": "~27.2.5",
"postcss-html": "~1.5.0",
"postcss-rtlcss": "~3.7.2",

@ -63,6 +63,12 @@ function myAuthorizer(username, password, callback) {
});
}
/**
* Use basic auth if auth is not disabled
* @param {express.Request} req Express request object
* @param {express.Response} res Express response object
* @param {express.NextFunction} next
*/
exports.basicAuth = async function (req, res, next) {
const middleware = basicAuth({
authorizer: myAuthorizer,

@ -37,6 +37,10 @@ class CacheableDnsHttpAgent {
this.enable = isEnable;
}
/**
* Attach cacheable to HTTP agent
* @param {http.Agent} agent Agent to install
*/
static install(agent) {
this.cacheable.install(agent);
}

@ -4,13 +4,21 @@ const demoMode = args["demo"] || false;
const badgeConstants = {
naColor: "#999",
defaultUpColor: "#66c20a",
defaultWarnColor: "#eed202",
defaultDownColor: "#c2290a",
defaultPendingColor: "#f8a306",
defaultMaintenanceColor: "#1747f5",
defaultPingColor: "blue", // as defined by badge-maker / shields.io
defaultStyle: "flat",
defaultPingValueSuffix: "ms",
defaultPingLabelSuffix: "h",
defaultUptimeValueSuffix: "%",
defaultUptimeLabelSuffix: "h",
defaultCertExpValueSuffix: " days",
defaultCertExpLabelSuffix: "h",
// Values Come From Default Notification Times
defaultCertExpireWarnDays: "14",
defaultCertExpireDownDays: "7"
};
module.exports = {

@ -4,6 +4,7 @@ const { setSetting, setting } = require("./util-server");
const { log, sleep } = require("../src/util");
const dayjs = require("dayjs");
const knex = require("knex");
const { PluginsManager } = require("./plugins-manager");
const path = require("path");
/**
@ -66,7 +67,9 @@ class Database {
"patch-grpc-monitor.sql": true,
"patch-add-radius-monitor.sql": true,
"patch-monitor-add-resend-interval.sql": true,
"patch-ping-packet-size.sql": true,
"patch-maintenance-table2.sql": true,
"patch-add-gamedig-monitor.sql": true,
};
/**
@ -84,6 +87,13 @@ class Database {
static init(args) {
// Data Directory (must be end with "/")
Database.dataDir = process.env.DATA_DIR || args["data-dir"] || "./data/";
// Plugin feature is working only if the dataDir = "./data";
if (Database.dataDir !== "./data/") {
log.warn("PLUGIN", "Warning: In order to enable plugin feature, you need to use the default data directory: ./data/");
PluginsManager.disable = true;
}
Database.path = Database.dataDir + "kuma.db";
if (! fs.existsSync(Database.dataDir)) {
fs.mkdirSync(Database.dataDir, { recursive: true });

@ -0,0 +1,24 @@
const childProcess = require("child_process");
class Git {
static clone(repoURL, cwd, targetDir = ".") {
let result = childProcess.spawnSync("git", [
"clone",
repoURL,
targetDir,
], {
cwd: cwd,
});
if (result.status !== 0) {
throw new Error(result.stderr.toString("utf-8"));
} else {
return result.stdout.toString("utf-8") + result.stderr.toString("utf-8");
}
}
}
module.exports = {
Git,
};

@ -32,6 +32,7 @@ const initBackgroundJobs = function (args) {
return bree;
};
/** Stop all background jobs if running */
const stopBackgroundJobs = function () {
if (bree) {
bree.stop();

@ -25,15 +25,20 @@ const DEFAULT_KEEP_PERIOD = 180;
parsedPeriod = DEFAULT_KEEP_PERIOD;
}
log(`Clearing Data older than ${parsedPeriod} days...`);
try {
await R.exec(
"DELETE FROM heartbeat WHERE time < DATETIME('now', '-' || ? || ' days') ",
[ parsedPeriod ]
);
} catch (e) {
log(`Failed to clear old data: ${e.message}`);
if (parsedPeriod < 1) {
log(`Data deletion has been disabled as period is less than 1. Period is ${parsedPeriod} days.`);
} else {
log(`Clearing Data older than ${parsedPeriod} days...`);
try {
await R.exec(
"DELETE FROM heartbeat WHERE time < DATETIME('now', '-' || ? || ' days') ",
[ parsedPeriod ]
);
} catch (e) {
log(`Failed to clear old data: ${e.message}`);
}
}
exit();

@ -112,6 +112,11 @@ class Maintenance extends BeanModel {
return this.toPublicJSON(timezone);
}
/**
* Get a list of weekdays that the maintenance is active for
* Monday=1, Tuesday=2 etc.
* @returns {number[]} Array of active weekdays
*/
getDayOfWeekList() {
log.debug("timeslot", "List: " + this.weekdays);
return JSON.parse(this.weekdays).sort(function (a, b) {
@ -119,12 +124,20 @@ class Maintenance extends BeanModel {
});
}
/**
* Get a list of days in month that maintenance is active for
* @returns {number[]} Array of active days in month
*/
getDayOfMonthList() {
return JSON.parse(this.days_of_month).sort(function (a, b) {
return a - b;
});
}
/**
* Get the start date and time for maintenance
* @returns {dayjs.Dayjs} Start date and time
*/
getStartDateTime() {
let startOfTheDay = dayjs.utc(this.start_date).format("HH:mm");
log.debug("timeslot", "startOfTheDay: " + startOfTheDay);
@ -137,6 +150,10 @@ class Maintenance extends BeanModel {
return dayjs.utc(this.start_date).add(startTimeSecond, "second");
}
/**
* Get the duraction of maintenance in seconds
* @returns {number} Duration of maintenance
*/
getDuration() {
let duration = dayjs.utc(this.end_time, "HH:mm").diff(dayjs.utc(this.start_time, "HH:mm"), "second");
// Add 24hours if it is across day
@ -146,6 +163,12 @@ class Maintenance extends BeanModel {
return duration;
}
/**
* Convert data from socket to bean
* @param {Bean} bean Bean to fill in
* @param {Object} obj Data to fill bean with
* @returns {Bean} Filled bean
*/
static jsonToBean(bean, obj) {
if (obj.id) {
bean.id = obj.id;

@ -6,6 +6,11 @@ const { UptimeKumaServer } = require("../uptime-kuma-server");
class MaintenanceTimeslot extends BeanModel {
/**
* Return an object that ready to parse to JSON for public
* Only show necessary data to public
* @returns {Object}
*/
async toPublicJSON() {
const serverTimezoneOffset = UptimeKumaServer.getInstance().getTimezoneOffset();
@ -21,6 +26,10 @@ class MaintenanceTimeslot extends BeanModel {
return obj;
}
/**
* Return an object that ready to parse to JSON
* @returns {Object}
*/
async toJSON() {
return await this.toPublicJSON();
}

@ -3,7 +3,9 @@ const dayjs = require("dayjs");
const axios = require("axios");
const { Prometheus } = require("../prometheus");
const { log, UP, DOWN, PENDING, MAINTENANCE, flipStatus, TimeLogger, MAX_INTERVAL_SECOND, MIN_INTERVAL_SECOND } = require("../../src/util");
const { tcping, ping, dnsResolve, checkCertificate, checkStatusCode, getTotalClientInRoom, setting, mssqlQuery, postgresQuery, mysqlQuery, mqttAsync, setSetting, httpNtlm, radius, grpcQuery } = require("../util-server");
const { tcping, ping, dnsResolve, checkCertificate, checkStatusCode, getTotalClientInRoom, setting, mssqlQuery, postgresQuery, mysqlQuery, mqttAsync, setSetting, httpNtlm, radius, grpcQuery,
redisPingAsync, mongodbPing,
} = require("../util-server");
const { R } = require("redbean-node");
const { BeanModel } = require("redbean-node/dist/bean-model");
const { Notification } = require("../notification");
@ -16,6 +18,7 @@ const { CacheableDnsHttpAgent } = require("../cacheable-dns-http-agent");
const { DockerHost } = require("../docker");
const Maintenance = require("./maintenance");
const { UptimeCacheList } = require("../uptime-cache-list");
const Gamedig = require("gamedig");
/**
* status:
@ -36,7 +39,6 @@ class Monitor extends BeanModel {
id: this.id,
name: this.name,
sendUrl: this.sendUrl,
maintenance: await Monitor.isUnderMaintenance(this.id),
};
if (this.sendUrl) {
@ -85,6 +87,7 @@ class Monitor extends BeanModel {
expiryNotification: this.isEnabledExpiryNotification(),
ignoreTls: this.getIgnoreTls(),
upsideDown: this.isUpsideDown(),
packetSize: this.packetSize,
maxredirects: this.maxredirects,
accepted_statuscodes: this.getAcceptedStatuscodes(),
dns_resolve_type: this.dns_resolve_type,
@ -107,6 +110,7 @@ class Monitor extends BeanModel {
grpcEnableTls: this.getGrpcEnableTls(),
radiusCalledStationId: this.radiusCalledStationId,
radiusCallingStationId: this.radiusCallingStationId,
game: this.game,
};
if (includeSensitiveData) {
@ -275,9 +279,6 @@ class Monitor extends BeanModel {
...(this.body ? { data: JSON.parse(this.body) } : {}),
timeout: this.interval * 1000 * 0.8,
headers: {
// Fix #2253
// Read more: https://stackoverflow.com/questions/1759956/curl-error-18-transfer-closed-with-outstanding-read-data-remaining
"Accept-Encoding": "gzip, deflate",
"Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9",
"User-Agent": "Uptime-Kuma/" + version,
...(this.headers ? JSON.parse(this.headers) : {}),
@ -310,20 +311,8 @@ class Monitor extends BeanModel {
log.debug("monitor", `[${this.name}] Axios Options: ${JSON.stringify(options)}`);
log.debug("monitor", `[${this.name}] Axios Request`);
let res;
if (this.auth_method === "ntlm") {
options.httpsAgent.keepAlive = true;
res = await httpNtlm(options, {
username: this.basic_auth_user,
password: this.basic_auth_pass,
domain: this.authDomain,
workstation: this.authWorkstation ? this.authWorkstation : undefined
});
} else {
res = await axios.request(options);
}
// Make Request
let res = await this.makeAxiosRequest(options);
bean.msg = `${res.status} - ${res.statusText}`;
bean.ping = dayjs().valueOf() - startTime;
@ -387,7 +376,7 @@ class Monitor extends BeanModel {
bean.status = UP;
} else if (this.type === "ping") {
bean.ping = await ping(this.hostname);
bean.ping = await ping(this.hostname, this.packetSize);
bean.msg = "";
bean.status = UP;
} else if (this.type === "dns") {
@ -497,25 +486,44 @@ class Monitor extends BeanModel {
bean.msg = res.data.response.servers[0].name;
try {
bean.ping = await ping(this.hostname);
bean.ping = await ping(this.hostname, this.packetSize);
} catch (_) { }
} else {
throw new Error("Server not found on Steam");
}
} else if (this.type === "gamedig") {
try {
const state = await Gamedig.query({
type: this.game,
host: this.hostname,
port: this.port,
givenPortOnly: true,
});
bean.msg = state.name;
bean.status = UP;
bean.ping = state.ping;
} catch (e) {
throw new Error(e.message);
}
} else if (this.type === "docker") {
log.debug(`[${this.name}] Prepare Options for Axios`);
log.debug("monitor", `[${this.name}] Prepare Options for Axios`);
const dockerHost = await R.load("docker_host", this.docker_host);
const options = {
url: `/containers/${this.docker_container}/json`,
timeout: this.interval * 1000 * 0.8,
headers: {
"Accept": "*/*",
"User-Agent": "Uptime-Kuma/" + version,
},
httpsAgent: new https.Agent({
httpsAgent: CacheableDnsHttpAgent.getHttpsAgent({
maxCachedSessions: 0, // Use Custom agent to disable session reuse (https://github.com/nodejs/node/issues/3940)
rejectUnauthorized: ! this.getIgnoreTls(),
rejectUnauthorized: !this.getIgnoreTls(),
}),
httpAgent: CacheableDnsHttpAgent.getHttpAgent({
maxCachedSessions: 0,
}),
};
@ -525,11 +533,13 @@ class Monitor extends BeanModel {
options.baseURL = DockerHost.patchDockerURL(dockerHost._dockerDaemon);
}
log.debug(`[${this.name}] Axios Request`);
log.debug("monitor", `[${this.name}] Axios Request`);
let res = await axios.request(options);
if (res.data.State.Running) {
bean.status = UP;
bean.msg = "";
bean.msg = res.data.State.Status;
} else {
throw Error("Container State is " + res.data.State.Status);
}
} else if (this.type === "mqtt") {
bean.msg = await mqttAsync(this.hostname, this.mqttTopic, this.mqttSuccessMessage, {
@ -563,7 +573,7 @@ class Monitor extends BeanModel {
log.debug("monitor:", `gRPC response: ${JSON.stringify(response)}`);
let responseData = response.data;
if (responseData.length > 50) {
responseData = response.substring(0, 47) + "...";
responseData = responseData.toString().substring(0, 47) + "...";
}
if (response.code !== 1) {
bean.status = DOWN;
@ -594,6 +604,15 @@ class Monitor extends BeanModel {
bean.msg = "";
bean.status = UP;
bean.ping = dayjs().valueOf() - startTime;
} else if (this.type === "mongodb") {
let startTime = dayjs().valueOf();
await mongodbPing(this.databaseConnectionString);
bean.msg = "";
bean.status = UP;
bean.ping = dayjs().valueOf() - startTime;
} else if (this.type === "radius") {
let startTime = dayjs().valueOf();
@ -630,9 +649,23 @@ class Monitor extends BeanModel {
}
}
bean.ping = dayjs().valueOf() - startTime;
} else if (this.type === "redis") {
let startTime = dayjs().valueOf();
bean.msg = await redisPingAsync(this.databaseConnectionString);
bean.status = UP;
bean.ping = dayjs().valueOf() - startTime;
} else if (this.type in UptimeKumaServer.monitorTypeList) {
let startTime = dayjs().valueOf();
const monitorType = UptimeKumaServer.monitorTypeList[this.type];
await monitorType.check(this, bean);
if (!bean.ping) {
bean.ping = dayjs().valueOf() - startTime;
}
} else {
bean.msg = "Unknown Monitor Type";
bean.status = PENDING;
throw new Error("Unknown Monitor Type");
}
if (this.isUpsideDown()) {
@ -761,6 +794,47 @@ class Monitor extends BeanModel {
}
}
/**
* Make a request using axios
* @param {Object} options Options for Axios
* @param {boolean} finalCall Should this be the final call i.e
* don't retry on faliure
* @returns {Object} Axios response
*/
async makeAxiosRequest(options, finalCall = false) {
try {
let res;
if (this.auth_method === "ntlm") {
options.httpsAgent.keepAlive = true;
res = await httpNtlm(options, {
username: this.basic_auth_user,
password: this.basic_auth_pass,
domain: this.authDomain,
workstation: this.authWorkstation ? this.authWorkstation : undefined
});
} else {
res = await axios.request(options);
}
return res;
} catch (e) {
// Fix #2253
// Read more: https://stackoverflow.com/questions/1759956/curl-error-18-transfer-closed-with-outstanding-read-data-remaining
if (!finalCall && typeof e.message === "string" && e.message.includes("maxContentLength size of -1 exceeded")) {
log.debug("monitor", "makeAxiosRequest with gzip");
options.headers["Accept-Encoding"] = "gzip, deflate";
return this.makeAxiosRequest(options, true);
} else {
if (typeof e.message === "string" && e.message.includes("maxContentLength size of -1 exceeded")) {
e.message = "response timeout: incomplete response within a interval";
}
throw e;
}
}
}
/** Stop monitor */
stop() {
clearTimeout(this.heartbeatInterval);
@ -1068,7 +1142,13 @@ class Monitor extends BeanModel {
for (let notification of notificationList) {
try {
await Notification.send(JSON.parse(notification.config), msg, await monitor.toJSON(false), bean.toJSON());
// Prevent if the msg is undefined, notifications such as Discord cannot send out.
const heartbeatJSON = bean.toJSON();
if (!heartbeatJSON["msg"]) {
heartbeatJSON["msg"] = "N/A";
}
await Notification.send(JSON.parse(notification.config), msg, await monitor.toJSON(false), heartbeatJSON);
} catch (e) {
log.error("monitor", "Cannot send notification to " + notification.name);
log.error("monitor", e);
@ -1175,7 +1255,7 @@ class Monitor extends BeanModel {
*/
static async getPreviousHeartbeat(monitorID) {
return await R.getRow(`
SELECT status, time FROM heartbeat
SELECT ping, status, time FROM heartbeat
WHERE id = (select MAX(id) from heartbeat where monitor_id = ?)
`, [
monitorID
@ -1202,6 +1282,7 @@ class Monitor extends BeanModel {
return maintenance.count !== 0;
}
/** Make sure monitor interval is between bounds */
validate() {
if (this.interval > MAX_INTERVAL_SECOND) {
throw new Error(`Interval cannot be more than ${MAX_INTERVAL_SECOND} seconds`);

@ -281,7 +281,7 @@ class StatusPage extends BeanModel {
let activeCondition = Maintenance.getActiveMaintenanceSQLCondition();
let maintenanceBeanList = R.convertToBeans("maintenance", await R.getAll(`
SELECT maintenance.*
SELECT DISTINCT maintenance.*
FROM maintenance
JOIN maintenance_status_page
ON maintenance_status_page.maintenance_id = maintenance.id

@ -0,0 +1,19 @@
class MonitorType {
name = undefined;
/**
*
* @param {Monitor} monitor
* @param {Heartbeat} heartbeat
* @returns {Promise<void>}
*/
async check(monitor, heartbeat) {
throw new Error("You need to override check()");
}
}
module.exports = {
MonitorType,
};

@ -8,7 +8,6 @@ class ClickSendSMS extends NotificationProvider {
async send(notification, msg, monitorJSON = null, heartbeatJSON = null) {
let okMsg = "Sent Successfully.";
try {
console.log({ notification });
let config = {
headers: {
"Content-Type": "application/json",

@ -64,7 +64,7 @@ class Discord extends NotificationProvider {
},
{
name: "Error",
value: heartbeatJSON["msg"],
value: heartbeatJSON["msg"] == null ? "N/A" : heartbeatJSON["msg"],
},
],
}],
@ -91,7 +91,7 @@ class Discord extends NotificationProvider {
},
{
name: monitorJSON["type"] === "push" ? "Service Type" : "Service URL",
value: monitorJSON["type"] === "push" ? "Heartbeat" : address.startsWith("http") ? "[Visit Service](" + address + ")" : address,
value: monitorJSON["type"] === "push" ? "Heartbeat" : address,
},
{
name: "Time (UTC)",

@ -0,0 +1,31 @@
const NotificationProvider = require("./notification-provider");
const axios = require("axios");
class Kook extends NotificationProvider {
name = "Kook";
async send(notification, msg, monitorJSON = null, heartbeatJSON = null) {
let okMsg = "Sent Successfully.";
let url = "https://www.kookapp.cn/api/v3/message/create";
let data = {
target_id: notification.kookGuildID,
content: msg,
};
let config = {
headers: {
"Authorization": "Bot " + notification.kookBotToken,
"Content-Type": "application/json",
},
};
try {
await axios.post(url, data, config);
return okMsg;
} catch (error) {
this.throwGeneralAxiosError(error);
}
}
}
module.exports = Kook;

@ -8,6 +8,14 @@ class PromoSMS extends NotificationProvider {
async send(notification, msg, monitorJSON = null, heartbeatJSON = null) {
let okMsg = "Sent Successfully.";
if (notification.promosmsAllowLongSMS === undefined) {
notification.promosmsAllowLongSMS = false;
}
//TODO: Add option for enabling special characters. It will decrese message max length from 160 to 70 chars.
//Lets remove non ascii char
let cleanMsg = msg.replace(/[^\x00-\x7F]/g, "");
try {
let config = {
headers: {
@ -18,8 +26,9 @@ class PromoSMS extends NotificationProvider {
};
let data = {
"recipients": [ notification.promosmsPhoneNumber ],
//Lets remove non ascii char
"text": msg.replace(/[^\x00-\x7F]/g, ""),
//Trim message to maximum length of 1 SMS or 4 if we allowed long messages
"text": notification.promosmsAllowLongSMS ? cleanMsg.substring(0, 639) : cleanMsg.substring(0, 159),
"long-sms": notification.promosmsAllowLongSMS,
"type": Number(notification.promosmsSMSType),
"sender": notification.promosmsSenderName
};

@ -10,7 +10,7 @@ class Pushover extends NotificationProvider {
let pushoverlink = "https://api.pushover.net/1/messages.json";
let data = {
"message": "<b>Uptime Kuma Alert</b>\n\n<b>Message</b>:" + msg,
"message": msg,
"user": notification.pushoveruserkey,
"token": notification.pushoverapptoken,
"sound": notification.pushoversounds,

@ -21,6 +21,12 @@ class ServerChan extends NotificationProvider {
}
}
/**
* Get the formatted title for message
* @param {?Object} monitorJSON Monitor details (For Up/Down only)
* @param {?Object} heartbeatJSON Heartbeat details (For Up/Down only)
* @returns {string} Formatted title
*/
checkStatus(heartbeatJSON, monitorJSON) {
let title = "UptimeKuma Message";
if (heartbeatJSON != null && heartbeatJSON["status"] === UP) {

@ -1,7 +1,7 @@
const NotificationProvider = require("./notification-provider");
const axios = require("axios");
const { setSettings, setting } = require("../util-server");
const { getMonitorRelativeURL } = require("../../src/util");
const { getMonitorRelativeURL, UP } = require("../../src/util");
class Slack extends NotificationProvider {
@ -46,24 +46,31 @@ class Slack extends NotificationProvider {
"channel": notification.slackchannel,
"username": notification.slackusername,
"icon_emoji": notification.slackiconemo,
"blocks": [{
"type": "header",
"text": {
"type": "plain_text",
"text": "Uptime Kuma Alert",
},
},
{
"type": "section",
"fields": [{
"type": "mrkdwn",
"text": "*Message*\n" + msg,
},
"attachments": [
{
"type": "mrkdwn",
"text": "*Time (UTC)*\n" + time,
}],
}],
"color": (heartbeatJSON["status"] === UP) ? "#2eb886" : "#e01e5a",
"blocks": [
{
"type": "header",
"text": {
"type": "plain_text",
"text": "Uptime Kuma Alert",
},
},
{
"type": "section",
"fields": [{
"type": "mrkdwn",
"text": "*Message*\n" + msg,
},
{
"type": "mrkdwn",
"text": "*Time (UTC)*\n" + time,
}],
}
],
}
]
};
if (notification.slackbutton) {
@ -74,17 +81,19 @@ class Slack extends NotificationProvider {
// Button
if (baseURL) {
data.blocks.push({
"type": "actions",
"elements": [{
"type": "button",
"text": {
"type": "plain_text",
"text": "Visit Uptime Kuma",
},
"value": "Uptime-Kuma",
"url": baseURL + getMonitorRelativeURL(monitorJSON.id),
}],
data.attachments.forEach(element => {
element.blocks.push({
"type": "actions",
"elements": [{
"type": "button",
"text": {
"type": "plain_text",
"text": "Visit Uptime Kuma",
},
"value": "Uptime-Kuma",
"url": baseURL + getMonitorRelativeURL(monitorJSON.id),
}],
});
});
}

@ -0,0 +1,113 @@
const NotificationProvider = require("./notification-provider");
const axios = require("axios");
const { UP, DOWN, getMonitorRelativeURL } = require("../../src/util");
const { setting } = require("../util-server");
let successMessage = "Sent Successfully.";
class Splunk extends NotificationProvider {
name = "Splunk";
/**
* @inheritdoc
*/
async send(notification, msg, monitorJSON = null, heartbeatJSON = null) {
try {
if (heartbeatJSON == null) {
const title = "Uptime Kuma Alert";
const monitor = {
type: "ping",
url: "Uptime Kuma Test Button",
};
return this.postNotification(notification, title, msg, monitor, "trigger");
}
if (heartbeatJSON.status === UP) {
const title = "Uptime Kuma Monitor ✅ Up";
return this.postNotification(notification, title, heartbeatJSON.msg, monitorJSON, "recovery");
}
if (heartbeatJSON.status === DOWN) {
const title = "Uptime Kuma Monitor 🔴 Down";
return this.postNotification(notification, title, heartbeatJSON.msg, monitorJSON, "trigger");
}
} catch (error) {
this.throwGeneralAxiosError(error);
}
}
/**
* Check if result is successful, result code should be in range 2xx
* @param {Object} result Axios response object
* @throws {Error} The status code is not in range 2xx
*/
checkResult(result) {
if (result.status == null) {
throw new Error("Splunk notification failed with invalid response!");
}
if (result.status < 200 || result.status >= 300) {
throw new Error("Splunk notification failed with status code " + result.status);
}
}
/**
* Send the message
* @param {BeanModel} notification Message title
* @param {string} title Message title
* @param {string} body Message
* @param {Object} monitorInfo Monitor details (For Up/Down only)
* @param {?string} eventAction Action event for PagerDuty (trigger, acknowledge, resolve)
* @returns {string}
*/
async postNotification(notification, title, body, monitorInfo, eventAction = "trigger") {
let monitorUrl;
if (monitorInfo.type === "port") {
monitorUrl = monitorInfo.hostname;
if (monitorInfo.port) {
monitorUrl += ":" + monitorInfo.port;
}
} else if (monitorInfo.hostname != null) {
monitorUrl = monitorInfo.hostname;
} else {
monitorUrl = monitorInfo.url;
}
if (eventAction === "recovery") {
if (notification.splunkAutoResolve === "0") {
return "No action required";
}
eventAction = notification.splunkAutoResolve;
} else {
eventAction = notification.splunkSeverity;
}
const options = {
method: "POST",
url: notification.splunkRestURL,
headers: { "Content-Type": "application/json" },
data: {
message_type: eventAction,
state_message: `[${title}] [${monitorUrl}] ${body}`,
entity_display_name: "Uptime Kuma Alert: " + monitorInfo.name,
routing_key: notification.pagerdutyIntegrationKey,
entity_id: "Uptime Kuma/" + monitorInfo.id,
}
};
const baseURL = await setting("primaryBaseURL");
if (baseURL && monitorInfo) {
options.client = "Uptime Kuma";
options.client_url = baseURL + getMonitorRelativeURL(monitorInfo.id);
}
let result = await axios.request(options);
this.checkResult(result);
if (result.statusText != null) {
return "Splunk notification succeed: " + result.statusText;
}
return successMessage;
}
}
module.exports = Splunk;

@ -0,0 +1,116 @@
const NotificationProvider = require("./notification-provider");
const axios = require("axios");
const { DOWN, UP } = require("../../src/util");
class ZohoCliq extends NotificationProvider {
name = "ZohoCliq";
/**
* Generate the message to send
* @param {const} status The status constant
* @param {string} monitorName Name of monitor
* @returns {string}
*/
_statusMessageFactory = (status, monitorName) => {
if (status === DOWN) {
return `🔴 Application [${monitorName}] went down\n`;
} else if (status === UP) {
return `✅ Application [${monitorName}] is back online\n`;
}
return "Notification\n";
};
/**
* Send the notification
* @param {string} webhookUrl URL to send the request to
* @param {Array} payload Payload generated by _notificationPayloadFactory
*/
_sendNotification = async (webhookUrl, payload) => {
await axios.post(webhookUrl, { text: payload.join("\n") });
};
/**
* Generate payload for notification
* @param {const} status The status of the monitor
* @param {string} monitorMessage Message to send
* @param {string} monitorName Name of monitor affected
* @param {string} monitorUrl URL of monitor affected
* @returns {Array}
*/
_notificationPayloadFactory = ({
status,
monitorMessage,
monitorName,
monitorUrl,
}) => {
const payload = [];
payload.push("### Uptime Kuma\n");
payload.push(this._statusMessageFactory(status, monitorName));
payload.push(`*Description:* ${monitorMessage}`);
if (monitorName) {
payload.push(`*Monitor:* ${monitorName}`);
}
if (monitorUrl && monitorUrl !== "https://") {
payload.push(`*URL:* [${monitorUrl}](${monitorUrl})`);
}
return payload;
};
/**
* Send a general notification
* @param {string} webhookUrl URL to send request to
* @param {string} msg Message to send
* @returns {Promise<void>}
*/
_handleGeneralNotification = (webhookUrl, msg) => {
const payload = this._notificationPayloadFactory({
monitorMessage: msg
});
return this._sendNotification(webhookUrl, payload);
};
async send(notification, msg, monitorJSON = null, heartbeatJSON = null) {
let okMsg = "Sent Successfully.";
try {
if (heartbeatJSON == null) {
await this._handleGeneralNotification(notification.webhookUrl, msg);
return okMsg;
}
let url;
switch (monitorJSON["type"]) {
case "http":
case "keywork":
url = monitorJSON["url"];
break;
case "docker":
url = monitorJSON["docker_host"];
break;
default:
url = monitorJSON["hostname"];
break;
}
const payload = this._notificationPayloadFactory({
monitorMessage: heartbeatJSON.msg,
monitorName: monitorJSON.name,
monitorUrl: url,
status: heartbeatJSON.status
});
await this._sendNotification(notification.webhookUrl, payload);
return okMsg;
} catch (error) {
this.throwGeneralAxiosError(error);
}
}
}
module.exports = ZohoCliq;

@ -14,6 +14,7 @@ const GoogleChat = require("./notification-providers/google-chat");
const Gorush = require("./notification-providers/gorush");
const Gotify = require("./notification-providers/gotify");
const HomeAssistant = require("./notification-providers/home-assistant");
const Kook = require("./notification-providers/kook");
const Line = require("./notification-providers/line");
const LineNotify = require("./notification-providers/linenotify");
const LunaSea = require("./notification-providers/lunasea");
@ -39,11 +40,13 @@ const Stackfield = require("./notification-providers/stackfield");
const Teams = require("./notification-providers/teams");
const TechulusPush = require("./notification-providers/techulus-push");
const Telegram = require("./notification-providers/telegram");
const Splunk = require("./notification-providers/splunk");
const Webhook = require("./notification-providers/webhook");
const WeCom = require("./notification-providers/wecom");
const GoAlert = require("./notification-providers/goalert");
const SMSManager = require("./notification-providers/smsmanager");
const ServerChan = require("./notification-providers/serverchan");
const ZohoCliq = require("./notification-providers/zoho-cliq");
class Notification {
@ -70,6 +73,7 @@ class Notification {
new Gorush(),
new Gotify(),
new HomeAssistant(),
new Kook(),
new Line(),
new LineNotify(),
new LunaSea(),
@ -97,9 +101,11 @@ class Notification {
new Teams(),
new TechulusPush(),
new Telegram(),
new Splunk(),
new Webhook(),
new WeCom(),
new GoAlert(),
new ZohoCliq()
];
for (let item of list) {

@ -1,199 +0,0 @@
// https://github.com/ben-bradley/ping-lite/blob/master/ping-lite.js
// Fixed on Windows
const net = require("net");
const spawn = require("child_process").spawn;
const events = require("events");
const fs = require("fs");
const util = require("./util-server");
module.exports = Ping;
/**
* Constructor for ping class
* @param {string} host Host to ping
* @param {object} [options] Options for the ping command
* @param {array|string} [options.args] - Arguments to pass to the ping command
*/
function Ping(host, options) {
if (!host) {
throw new Error("You must specify a host to ping!");
}
this._host = host;
this._options = options = (options || {});
events.EventEmitter.call(this);
const timeout = 10;
if (util.WIN) {
this._bin = "c:/windows/system32/ping.exe";
this._args = (options.args) ? options.args : [ "-n", "1", "-w", timeout * 1000, host ];
this._regmatch = /[><=]([0-9.]+?)ms/;
} else if (util.LIN) {
this._bin = "/bin/ping";
const defaultArgs = [ "-n", "-w", timeout, "-c", "1", host ];
if (net.isIPv6(host) || options.ipv6) {
defaultArgs.unshift("-6");
}
this._args = (options.args) ? options.args : defaultArgs;
this._regmatch = /=([0-9.]+?) ms/;
} else if (util.MAC) {
if (net.isIPv6(host) || options.ipv6) {
this._bin = "/sbin/ping6";
} else {
this._bin = "/sbin/ping";
}
this._args = (options.args) ? options.args : [ "-n", "-t", timeout, "-c", "1", host ];
this._regmatch = /=([0-9.]+?) ms/;
} else if (util.BSD) {
this._bin = "/sbin/ping";
const defaultArgs = [ "-n", "-t", timeout, "-c", "1", host ];
if (net.isIPv6(host) || options.ipv6) {
defaultArgs.unshift("-6");
}
this._args = (options.args) ? options.args : defaultArgs;
this._regmatch = /=([0-9.]+?) ms/;
} else {
throw new Error("Could not detect your ping binary.");
}
if (!fs.existsSync(this._bin)) {
throw new Error("Could not detect " + this._bin + " on your system");
}
this._i = 0;
return this;
}
Ping.prototype.__proto__ = events.EventEmitter.prototype;
/**
* Callback for send
* @callback pingCB
* @param {any} err Any error encountered
* @param {number} ms Ping time in ms
*/
/**
* Send a ping
* @param {pingCB} callback Callback to call with results
*/
Ping.prototype.send = function (callback) {
let self = this;
callback = callback || function (err, ms) {
if (err) {
return self.emit("error", err);
}
return self.emit("result", ms);
};
let _ended;
let _exited;
let _errored;
this._ping = spawn(this._bin, this._args, { windowsHide: true }); // spawn the binary
this._ping.on("error", function (err) { // handle binary errors
_errored = true;
callback(err);
});
this._ping.stdout.on("data", function (data) { // log stdout
if (util.WIN) {
data = convertOutput(data);
}
this._stdout = (this._stdout || "") + data;
});
this._ping.stdout.on("end", function () {
_ended = true;
if (_exited && !_errored) {
onEnd.call(self._ping);
}
});
this._ping.stderr.on("data", function (data) { // log stderr
if (util.WIN) {
data = convertOutput(data);
}
this._stderr = (this._stderr || "") + data;
});
this._ping.on("exit", function (code) { // handle complete
_exited = true;
if (_ended && !_errored) {
onEnd.call(self._ping);
}
});
/**
* @param {Function} callback
*
* Generated by Trelent
*/
function onEnd() {
let stdout = this.stdout._stdout;
let stderr = this.stderr._stderr;
let ms;
if (stderr) {
return callback(new Error(stderr));
}
if (!stdout) {
return callback(new Error("No stdout detected"));
}
ms = stdout.match(self._regmatch); // parse out the ##ms response
ms = (ms && ms[1]) ? Number(ms[1]) : ms;
callback(null, ms, stdout);
}
};
/**
* Ping every interval
* @param {pingCB} callback Callback to call with results
*/
Ping.prototype.start = function (callback) {
let self = this;
this._i = setInterval(function () {
self.send(callback);
}, (self._options.interval || 5000));
self.send(callback);
};
/** Stop sending pings */
Ping.prototype.stop = function () {
clearInterval(this._i);
};
/**
* Try to convert to UTF-8 for Windows, as the ping's output on Windows is not UTF-8 and could be in other languages
* Thank @pemassi
* https://github.com/louislam/uptime-kuma/issues/570#issuecomment-941984094
* @param {any} data
* @returns {string}
*/
function convertOutput(data) {
if (util.WIN) {
if (data) {
return util.convertToUTF8(data);
}
}
return data;
}

@ -0,0 +1,13 @@
class Plugin {
async load() {
}
async unload() {
}
}
module.exports = {
Plugin,
};

@ -0,0 +1,256 @@
const fs = require("fs");
const { log } = require("../src/util");
const path = require("path");
const axios = require("axios");
const { Git } = require("./git");
const childProcess = require("child_process");
class PluginsManager {
static disable = false;
/**
* Plugin List
* @type {PluginWrapper[]}
*/
pluginList = [];
/**
* Plugins Dir
*/
pluginsDir;
server;
/**
*
* @param {UptimeKumaServer} server
*/
constructor(server) {
this.server = server;
if (!PluginsManager.disable) {
this.pluginsDir = "./data/plugins/";
if (! fs.existsSync(this.pluginsDir)) {
fs.mkdirSync(this.pluginsDir, { recursive: true });
}
log.debug("plugin", "Scanning plugin directory");
let list = fs.readdirSync(this.pluginsDir);
this.pluginList = [];
for (let item of list) {
this.loadPlugin(item);
}
} else {
log.warn("PLUGIN", "Skip scanning plugin directory");
}
}
/**
* Install a Plugin
*/
async loadPlugin(name) {
log.info("plugin", "Load " + name);
let plugin = new PluginWrapper(this.server, this.pluginsDir + name);
try {
await plugin.load();
this.pluginList.push(plugin);
} catch (e) {
log.error("plugin", "Failed to load plugin: " + this.pluginsDir + name);
log.error("plugin", "Reason: " + e.message);
}
}
/**
* Download a Plugin
* @param {string} repoURL Git repo url
* @param {string} name Directory name, also known as plugin unique name
*/
downloadPlugin(repoURL, name) {
if (fs.existsSync(this.pluginsDir + name)) {
log.info("plugin", "Plugin folder already exists? Removing...");
fs.rmSync(this.pluginsDir + name, {
recursive: true
});
}
log.info("plugin", "Installing plugin: " + name + " " + repoURL);
let result = Git.clone(repoURL, this.pluginsDir, name);
log.info("plugin", "Install result: " + result);
}
/**
* Remove a plugin
* @param {string} name
*/
async removePlugin(name) {
log.info("plugin", "Removing plugin: " + name);
for (let plugin of this.pluginList) {
if (plugin.info.name === name) {
await plugin.unload();
// Delete the plugin directory
fs.rmSync(this.pluginsDir + name, {
recursive: true
});
this.pluginList.splice(this.pluginList.indexOf(plugin), 1);
return;
}
}
log.warn("plugin", "Plugin not found: " + name);
throw new Error("Plugin not found: " + name);
}
/**
* TODO: Update a plugin
* Only available for plugins which were downloaded from the official list
* @param pluginID
*/
updatePlugin(pluginID) {
}
/**
* Get the plugin list from server + local installed plugin list
* Item will be merged if the `name` is the same.
* @returns {Promise<[]>}
*/
async fetchPluginList() {
let remotePluginList;
try {
const res = await axios.get("https://uptime.kuma.pet/c/plugins.json");
remotePluginList = res.data.pluginList;
} catch (e) {
log.error("plugin", "Failed to fetch plugin list: " + e.message);
remotePluginList = [];
}
for (let plugin of this.pluginList) {
let find = false;
// Try to merge
for (let remotePlugin of remotePluginList) {
if (remotePlugin.name === plugin.info.name) {
find = true;
remotePlugin.installed = true;
remotePlugin.name = plugin.info.name;
remotePlugin.fullName = plugin.info.fullName;
remotePlugin.description = plugin.info.description;
remotePlugin.version = plugin.info.version;
break;
}
}
// Local plugin
if (!find) {
plugin.info.local = true;
remotePluginList.push(plugin.info);
}
}
// Sort Installed first, then sort by name
return remotePluginList.sort((a, b) => {
if (a.installed === b.installed) {
if (a.fullName < b.fullName) {
return -1;
}
if (a.fullName > b.fullName) {
return 1;
}
return 0;
} else if (a.installed) {
return -1;
} else {
return 1;
}
});
}
}
class PluginWrapper {
server = undefined;
pluginDir = undefined;
/**
* Must be an `new-able` class.
* @type {function}
*/
pluginClass = undefined;
/**
*
* @type {Plugin}
*/
object = undefined;
info = {};
/**
*
* @param {UptimeKumaServer} server
* @param {string} pluginDir
*/
constructor(server, pluginDir) {
this.server = server;
this.pluginDir = pluginDir;
}
async load() {
let indexFile = this.pluginDir + "/index.js";
let packageJSON = this.pluginDir + "/package.json";
log.info("plugin", "Installing dependencies");
if (fs.existsSync(indexFile)) {
// Install dependencies
let result = childProcess.spawnSync("npm", [ "install" ], {
cwd: this.pluginDir,
env: {
...process.env,
PLAYWRIGHT_BROWSERS_PATH: "../../browsers", // Special handling for read-browser-monitor
}
});
if (result.stdout) {
log.info("plugin", "Install dependencies result: " + result.stdout.toString("utf-8"));
} else {
log.warn("plugin", "Install dependencies result: no output");
}
this.pluginClass = require(path.join(process.cwd(), indexFile));
let pluginClassType = typeof this.pluginClass;
if (pluginClassType === "function") {
this.object = new this.pluginClass(this.server);
await this.object.load();
} else {
throw new Error("Invalid plugin, it does not export a class");
}
if (fs.existsSync(packageJSON)) {
this.info = require(path.join(process.cwd(), packageJSON));
} else {
this.info.fullName = this.pluginDir;
this.info.name = "[unknown]";
this.info.version = "[unknown-version]";
}
this.info.installed = true;
log.info("plugin", `${this.info.fullName} v${this.info.version} loaded`);
}
}
async unload() {
await this.object.unload();
}
}
module.exports = {
PluginsManager,
PluginWrapper
};

@ -99,6 +99,7 @@ class Prometheus {
}
}
/** Remove monitor from prometheus */
remove() {
try {
monitorCertDaysRemaining.remove(this.monitorLabelValues);

@ -4,7 +4,7 @@ const { R } = require("redbean-node");
const apicache = require("../modules/apicache");
const Monitor = require("../model/monitor");
const dayjs = require("dayjs");
const { UP, MAINTENANCE, DOWN, flipStatus, log } = require("../../src/util");
const { UP, MAINTENANCE, DOWN, PENDING, flipStatus, log } = require("../../src/util");
const StatusPage = require("../model/status_page");
const { UptimeKumaServer } = require("../uptime-kuma-server");
const { makeBadge } = require("badge-maker");
@ -111,8 +111,12 @@ router.get("/api/badge/:id/status", cache("5 minutes"), async (request, response
label,
upLabel = "Up",
downLabel = "Down",
pendingLabel = "Pending",
maintenanceLabel = "Maintenance",
upColor = badgeConstants.defaultUpColor,
downColor = badgeConstants.defaultDownColor,
pendingColor = badgeConstants.defaultPendingColor,
maintenanceColor = badgeConstants.defaultMaintenanceColor,
style = badgeConstants.defaultStyle,
value, // for demo purpose only
} = request.query;
@ -139,11 +143,30 @@ router.get("/api/badge/:id/status", cache("5 minutes"), async (request, response
badgeValues.color = badgeConstants.naColor;
} else {
const heartbeat = await Monitor.getPreviousHeartbeat(requestedMonitorId);
const state = overrideValue !== undefined ? overrideValue : heartbeat.status === 1;
badgeValues.label = label ? label : "";
badgeValues.color = state ? upColor : downColor;
badgeValues.message = label ?? state ? upLabel : downLabel;
const state = overrideValue !== undefined ? overrideValue : heartbeat.status;
badgeValues.label = label ?? "Status";
switch (state) {
case DOWN:
badgeValues.color = downColor;
badgeValues.message = downLabel;
break;
case UP:
badgeValues.color = upColor;
badgeValues.message = upLabel;
break;
case PENDING:
badgeValues.color = pendingColor;
badgeValues.message = pendingLabel;
break;
case MAINTENANCE:
badgeValues.color = maintenanceColor;
badgeValues.message = maintenanceLabel;
break;
default:
badgeValues.color = badgeConstants.naColor;
badgeValues.message = "N/A";
}
}
// build the svg based on given values
@ -189,7 +212,7 @@ router.get("/api/badge/:id/uptime/:duration?", cache("5 minutes"), async (reques
const badgeValues = { style };
if (!publicMonitor) {
// return a "N/A" badge in naColor (grey), if monitor is not public / not available / non exsitant
// return a "N/A" badge in naColor (grey), if monitor is not public / not available / non existent
badgeValues.message = "N/A";
badgeValues.color = badgeConstants.naColor;
} else {
@ -205,8 +228,11 @@ router.get("/api/badge/:id/uptime/:duration?", cache("5 minutes"), async (reques
badgeValues.color = color ?? percentageToColor(uptime);
// use a given, custom labelColor or use the default badge label color (defined by badge-maker)
badgeValues.labelColor = labelColor ?? "";
// build a lable string. If a custom label is given, override the default one (requestedDuration)
badgeValues.label = filterAndJoin([ labelPrefix, label ?? requestedDuration, labelSuffix ]);
// build a label string. If a custom label is given, override the default one (requestedDuration)
badgeValues.label = filterAndJoin([
labelPrefix,
label ?? `Uptime (${requestedDuration}${labelSuffix})`,
]);
badgeValues.message = filterAndJoin([ prefix, `${cleanUptime * 100}`, suffix ]);
}
@ -267,7 +293,7 @@ router.get("/api/badge/:id/ping/:duration?", cache("5 minutes"), async (request,
// use a given, custom labelColor or use the default badge label color (defined by badge-maker)
badgeValues.labelColor = labelColor ?? "";
// build a lable string. If a custom label is given, override the default one (requestedDuration)
badgeValues.label = filterAndJoin([ labelPrefix, label ?? requestedDuration, labelSuffix ]);
badgeValues.label = filterAndJoin([ labelPrefix, label ?? `Avg. Ping (${requestedDuration}${labelSuffix})` ]);
badgeValues.message = filterAndJoin([ prefix, avgPing, suffix ]);
}
@ -281,4 +307,237 @@ router.get("/api/badge/:id/ping/:duration?", cache("5 minutes"), async (request,
}
});
router.get("/api/badge/:id/avg-response/:duration?", cache("5 minutes"), async (request, response) => {
allowAllOrigin(response);
const {
label,
labelPrefix,
labelSuffix,
prefix,
suffix = badgeConstants.defaultPingValueSuffix,
color = badgeConstants.defaultPingColor,
labelColor,
style = badgeConstants.defaultStyle,
value, // for demo purpose only
} = request.query;
try {
const requestedMonitorId = parseInt(request.params.id, 10);
// Default duration is 24 (h) if not defined in queryParam, limited to 720h (30d)
const requestedDuration = Math.min(
request.params.duration
? parseInt(request.params.duration, 10)
: 24,
720
);
const overrideValue = value && parseFloat(value);
const publicAvgPing = parseInt(await R.getCell(`
SELECT AVG(ping) FROM monitor_group, \`group\`, heartbeat
WHERE monitor_group.group_id = \`group\`.id
AND heartbeat.time > DATETIME('now', ? || ' hours')
AND heartbeat.ping IS NOT NULL
AND public = 1
AND heartbeat.monitor_id = ?
`,
[ -requestedDuration, requestedMonitorId ]
));
const badgeValues = { style };
if (!publicAvgPing) {
// return a "N/A" badge in naColor (grey), if monitor is not public / not available / non existent
badgeValues.message = "N/A";
badgeValues.color = badgeConstants.naColor;
} else {
const avgPing = parseInt(overrideValue ?? publicAvgPing);
badgeValues.color = color;
// use a given, custom labelColor or use the default badge label color (defined by badge-maker)
badgeValues.labelColor = labelColor ?? "";
// build a label string. If a custom label is given, override the default one (requestedDuration)
badgeValues.label = filterAndJoin([
labelPrefix,
label ?? `Avg. Response (${requestedDuration}h)`,
labelSuffix,
]);
badgeValues.message = filterAndJoin([ prefix, avgPing, suffix ]);
}
// build the SVG based on given values
const svg = makeBadge(badgeValues);
response.type("image/svg+xml");
response.send(svg);
} catch (error) {
send403(response, error.message);
}
});
router.get("/api/badge/:id/cert-exp", cache("5 minutes"), async (request, response) => {
allowAllOrigin(response);
const date = request.query.date;
const {
label,
labelPrefix,
labelSuffix,
prefix,
suffix = date ? "" : badgeConstants.defaultCertExpValueSuffix,
upColor = badgeConstants.defaultUpColor,
warnColor = badgeConstants.defaultWarnColor,
downColor = badgeConstants.defaultDownColor,
warnDays = badgeConstants.defaultCertExpireWarnDays,
downDays = badgeConstants.defaultCertExpireDownDays,
labelColor,
style = badgeConstants.defaultStyle,
value, // for demo purpose only
} = request.query;
try {
const requestedMonitorId = parseInt(request.params.id, 10);
const overrideValue = value && parseFloat(value);
let publicMonitor = await R.getRow(`
SELECT monitor_group.monitor_id FROM monitor_group, \`group\`
WHERE monitor_group.group_id = \`group\`.id
AND monitor_group.monitor_id = ?
AND public = 1
`,
[ requestedMonitorId ]
);
const badgeValues = { style };
if (!publicMonitor) {
// return a "N/A" badge in naColor (grey), if monitor is not public / not available / non existent
badgeValues.message = "N/A";
badgeValues.color = badgeConstants.naColor;
} else {
const tlsInfoBean = await R.findOne("monitor_tls_info", "monitor_id = ?", [
requestedMonitorId,
]);
if (!tlsInfoBean) {
// return a "No/Bad Cert" badge in naColor (grey), if no cert saved (does not save bad certs?)
badgeValues.message = "No/Bad Cert";
badgeValues.color = badgeConstants.naColor;
} else {
const tlsInfo = JSON.parse(tlsInfoBean.info_json);
if (!tlsInfo.valid) {
// return a "Bad Cert" badge in naColor (grey), when cert is not valid
badgeValues.message = "Bad Cert";
badgeValues.color = badgeConstants.downColor;
} else {
const daysRemaining = parseInt(overrideValue ?? tlsInfo.certInfo.daysRemaining);
if (daysRemaining > warnDays) {
badgeValues.color = upColor;
} else if (daysRemaining > downDays) {
badgeValues.color = warnColor;
} else {
badgeValues.color = downColor;
}
// use a given, custom labelColor or use the default badge label color (defined by badge-maker)
badgeValues.labelColor = labelColor ?? "";
// build a label string. If a custom label is given, override the default one
badgeValues.label = filterAndJoin([
labelPrefix,
label ?? "Cert Exp.",
labelSuffix,
]);
badgeValues.message = filterAndJoin([ prefix, date ? tlsInfo.certInfo.validTo : daysRemaining, suffix ]);
}
}
}
// build the SVG based on given values
const svg = makeBadge(badgeValues);
response.type("image/svg+xml");
response.send(svg);
} catch (error) {
send403(response, error.message);
}
});
router.get("/api/badge/:id/response", cache("5 minutes"), async (request, response) => {
allowAllOrigin(response);
const {
label,
labelPrefix,
labelSuffix,
prefix,
suffix = badgeConstants.defaultPingValueSuffix,
color = badgeConstants.defaultPingColor,
labelColor,
style = badgeConstants.defaultStyle,
value, // for demo purpose only
} = request.query;
try {
const requestedMonitorId = parseInt(request.params.id, 10);
const overrideValue = value && parseFloat(value);
let publicMonitor = await R.getRow(`
SELECT monitor_group.monitor_id FROM monitor_group, \`group\`
WHERE monitor_group.group_id = \`group\`.id
AND monitor_group.monitor_id = ?
AND public = 1
`,
[ requestedMonitorId ]
);
const badgeValues = { style };
if (!publicMonitor) {
// return a "N/A" badge in naColor (grey), if monitor is not public / not available / non existent
badgeValues.message = "N/A";
badgeValues.color = badgeConstants.naColor;
} else {
const heartbeat = await Monitor.getPreviousHeartbeat(
requestedMonitorId
);
if (!heartbeat.ping) {
// return a "N/A" badge in naColor (grey), if previous heartbeat has no ping
badgeValues.message = "N/A";
badgeValues.color = badgeConstants.naColor;
} else {
const ping = parseInt(overrideValue ?? heartbeat.ping);
badgeValues.color = color;
// use a given, custom labelColor or use the default badge label color (defined by badge-maker)
badgeValues.labelColor = labelColor ?? "";
// build a label string. If a custom label is given, override the default one
badgeValues.label = filterAndJoin([
labelPrefix,
label ?? "Response",
labelSuffix,
]);
badgeValues.message = filterAndJoin([ prefix, ping, suffix ]);
}
}
// build the SVG based on given values
const svg = makeBadge(badgeValues);
response.type("image/svg+xml");
response.send(svg);
} catch (error) {
send403(response, error.message);
}
});
module.exports = router;

@ -11,6 +11,9 @@ dayjs.extend(require("dayjs/plugin/utc"));
dayjs.extend(require("./modules/dayjs/plugin/timezone"));
dayjs.extend(require("dayjs/plugin/customParseFormat"));
// Load environment variables from `.env`
require("dotenv").config();
// Check Node.js Version
const nodeVersion = parseInt(process.versions.node.split(".")[0]);
const requiredVersion = 14;
@ -138,6 +141,7 @@ const { maintenanceSocketHandler } = require("./socket-handlers/maintenance-sock
const { generalSocketHandler } = require("./socket-handlers/general-socket-handler");
const { Settings } = require("./settings");
const { CacheableDnsHttpAgent } = require("./cacheable-dns-http-agent");
const { pluginsHandler } = require("./socket-handlers/plugins-handler");
app.use(express.json());
@ -166,7 +170,7 @@ let needSetup = false;
Database.init(args);
await initDatabase(testMode);
await server.initAfterDatabaseReady();
server.loadPlugins();
server.entryPage = await Settings.get("entryPage");
await StatusPage.loadDomainMappingList();
@ -574,7 +578,6 @@ let needSetup = false;
});
}
} catch (error) {
console.log(error);
callback({
ok: false,
msg: error.message,
@ -689,12 +692,14 @@ let needSetup = false;
bean.retryInterval = monitor.retryInterval;
bean.resendInterval = monitor.resendInterval;
bean.hostname = monitor.hostname;
bean.game = monitor.game;
bean.maxretries = monitor.maxretries;
bean.port = parseInt(monitor.port);
bean.keyword = monitor.keyword;
bean.ignoreTls = monitor.ignoreTls;
bean.expiryNotification = monitor.expiryNotification;
bean.upsideDown = monitor.upsideDown;
bean.packetSize = monitor.packetSize;
bean.maxredirects = monitor.maxredirects;
bean.accepted_statuscodes_json = JSON.stringify(monitor.accepted_statuscodes);
bean.dns_resolve_type = monitor.dns_resolve_type;
@ -714,6 +719,7 @@ let needSetup = false;
bean.authDomain = monitor.authDomain;
bean.grpcUrl = monitor.grpcUrl;
bean.grpcProtobuf = monitor.grpcProtobuf;
bean.grpcServiceName = monitor.grpcServiceName;
bean.grpcMethod = monitor.grpcMethod;
bean.grpcBody = monitor.grpcBody;
bean.grpcMetadata = monitor.grpcMetadata;
@ -940,13 +946,21 @@ let needSetup = false;
try {
checkLogin(socket);
let bean = await R.findOne("monitor", " id = ? ", [ tag.id ]);
let bean = await R.findOne("tag", " id = ? ", [ tag.id ]);
if (bean == null) {
callback({
ok: false,
msg: "Tag not found",
});
return;
}
bean.name = tag.name;
bean.color = tag.color;
await R.store(bean);
callback({
ok: true,
msg: "Saved",
tag: await bean.toJSON(),
});
@ -1490,6 +1504,7 @@ let needSetup = false;
dockerSocketHandler(socket);
maintenanceSocketHandler(socket);
generalSocketHandler(socket, server);
pluginsHandler(socket, server);
log.debug("server", "added all socket handlers");

@ -2,6 +2,30 @@ const { log } = require("../../src/util");
const { Settings } = require("../settings");
const { sendInfo } = require("../client");
const { checkLogin } = require("../util-server");
const GameResolver = require("gamedig/lib/GameResolver");
let gameResolver = new GameResolver();
let gameList = null;
/**
* Get a game list via GameDig
* @returns {any[]}
*/
function getGameList() {
if (!gameList) {
gameList = gameResolver._readGames().games.sort((a, b) => {
if ( a.pretty < b.pretty ) {
return -1;
}
if ( a.pretty > b.pretty ) {
return 1;
}
return 0;
});
} else {
return gameList;
}
}
module.exports.generalSocketHandler = (socket, server) => {
@ -17,4 +41,11 @@ module.exports.generalSocketHandler = (socket, server) => {
}
});
socket.on("getGameList", async (callback) => {
callback({
ok: true,
gameList: getGameList(),
});
});
};

@ -244,6 +244,8 @@ module.exports.maintenanceSocketHandler = (socket) => {
socket.userID,
]);
apicache.clear();
callback({
ok: true,
msg: "Deleted Successfully.",
@ -269,6 +271,8 @@ module.exports.maintenanceSocketHandler = (socket) => {
maintenanceID,
]);
apicache.clear();
callback({
ok: true,
msg: "Paused Successfully.",
@ -294,6 +298,8 @@ module.exports.maintenanceSocketHandler = (socket) => {
maintenanceID,
]);
apicache.clear();
callback({
ok: true,
msg: "Resume Successfully",

@ -0,0 +1,69 @@
const { checkLogin } = require("../util-server");
const { PluginsManager } = require("../plugins-manager");
const { log } = require("../../src/util.js");
/**
* Handlers for plugins
* @param {Socket} socket Socket.io instance
* @param {UptimeKumaServer} server
*/
module.exports.pluginsHandler = (socket, server) => {
const pluginManager = server.getPluginManager();
// Get Plugin List
socket.on("getPluginList", async (callback) => {
try {
checkLogin(socket);
log.debug("plugin", "PluginManager.disable: " + PluginsManager.disable);
if (PluginsManager.disable) {
throw new Error("Plugin Disabled: In order to enable plugin feature, you need to use the default data directory: ./data/");
}
let pluginList = await pluginManager.fetchPluginList();
callback({
ok: true,
pluginList,
});
} catch (error) {
log.warn("plugin", "Error: " + error.message);
callback({
ok: false,
msg: error.message,
});
}
});
socket.on("installPlugin", async (repoURL, name, callback) => {
try {
checkLogin(socket);
pluginManager.downloadPlugin(repoURL, name);
await pluginManager.loadPlugin(name);
callback({
ok: true,
});
} catch (error) {
callback({
ok: false,
msg: error.message,
});
}
});
socket.on("uninstallPlugin", async (name, callback) => {
try {
checkLogin(socket);
await pluginManager.removePlugin(name);
callback({
ok: true,
});
} catch (error) {
callback({
ok: false,
msg: error.message,
});
}
});
};

@ -6,10 +6,10 @@ class UptimeCacheList {
static list = {};
/**
*
* @param monitorID
* @param duration
* @return number
* Get the uptime for a specific period
* @param {number} monitorID
* @param {number} duration
* @return {number}
*/
static getUptime(monitorID, duration) {
if (UptimeCacheList.list[monitorID] && UptimeCacheList.list[monitorID][duration]) {
@ -20,6 +20,12 @@ class UptimeCacheList {
}
}
/**
* Add uptime for specified monitor
* @param {number} monitorID
* @param {number} duration
* @param {number} uptime Uptime to add
*/
static addUptime(monitorID, duration, uptime) {
log.debug("UptimeCacheList", "addUptime: " + monitorID + " " + duration);
if (!UptimeCacheList.list[monitorID]) {
@ -28,6 +34,10 @@ class UptimeCacheList {
UptimeCacheList.list[monitorID][duration] = uptime;
}
/**
* Clear cache for specified monitor
* @param {number} monitorID
*/
static clearCache(monitorID) {
log.debug("UptimeCacheList", "clearCache: " + monitorID);
delete UptimeCacheList.list[monitorID];

@ -10,6 +10,7 @@ const util = require("util");
const { CacheableDnsHttpAgent } = require("./cacheable-dns-http-agent");
const { Settings } = require("./settings");
const dayjs = require("dayjs");
const { PluginsManager } = require("./plugins-manager");
// DO NOT IMPORT HERE IF THE MODULES USED `UptimeKumaServer.getInstance()`
/**
@ -48,6 +49,20 @@ class UptimeKumaServer {
generateMaintenanceTimeslotsInterval = undefined;
/**
* Plugins Manager
* @type {PluginsManager}
*/
pluginsManager = null;
/**
*
* @type {{}}
*/
static monitorTypeList = {
};
static getInstance(args) {
if (UptimeKumaServer.instance == null) {
UptimeKumaServer.instance = new UptimeKumaServer(args);
@ -86,6 +101,7 @@ class UptimeKumaServer {
this.io = new Server(this.httpServer);
}
/** Initialise app after the database has been set up */
async initAfterDatabaseReady() {
await CacheableDnsHttpAgent.update();
@ -98,6 +114,11 @@ class UptimeKumaServer {
this.generateMaintenanceTimeslotsInterval = setInterval(this.generateMaintenanceTimeslots, 60 * 1000);
}
/**
* Send list of monitors to client
* @param {Socket} socket
* @returns {Object} List of monitors
*/
async sendMonitorList(socket) {
let list = await this.getMonitorJSONList(socket.userID);
this.io.to(socket.userID).emit("monitorList", list);
@ -134,6 +155,11 @@ class UptimeKumaServer {
return await this.sendMaintenanceListByUserID(socket.userID);
}
/**
* Send list of maintenances to user
* @param {number} userID
* @returns {Object}
*/
async sendMaintenanceListByUserID(userID) {
let list = await this.getMaintenanceJSONList(userID);
this.io.to(userID).emit("maintenanceList", list);
@ -185,6 +211,11 @@ class UptimeKumaServer {
errorLogStream.end();
}
/**
* Get the IP of the client connected to the socket
* @param {Socket} socket
* @returns {string}
*/
async getClientIP(socket) {
let clientIP = socket.client.conn.remoteAddress;
@ -203,6 +234,12 @@ class UptimeKumaServer {
}
}
/**
* Attempt to get the current server timezone
* If this fails, fall back to environment variables and then make a
* guess.
* @returns {string}
*/
async getTimezone() {
let timezone = await Settings.get("serverTimezone");
if (timezone) {
@ -214,16 +251,25 @@ class UptimeKumaServer {
}
}
/**
* Get the current offset
* @returns {string}
*/
getTimezoneOffset() {
return dayjs().format("Z");
}
/**
* Set the current server timezone and environment variables
* @param {string} timezone
*/
async setTimezone(timezone) {
await Settings.set("serverTimezone", timezone, "general");
process.env.TZ = timezone;
dayjs.tz.setDefault(timezone);
}
/** Load the timeslots for maintenance */
async generateMaintenanceTimeslots() {
let list = await R.find("maintenance_timeslot", " generated_next = 0 AND start_date <= DATETIME('now') ");
@ -237,9 +283,50 @@ class UptimeKumaServer {
}
/** Stop the server */
async stop() {
clearTimeout(this.generateMaintenanceTimeslotsInterval);
}
loadPlugins() {
this.pluginsManager = new PluginsManager(this);
}
/**
*
* @returns {PluginsManager}
*/
getPluginManager() {
return this.pluginsManager;
}
/**
*
* @param {MonitorType} monitorType
*/
addMonitorType(monitorType) {
if (monitorType instanceof MonitorType && monitorType.name) {
if (monitorType.name in UptimeKumaServer.monitorTypeList) {
log.error("", "Conflict Monitor Type name");
}
UptimeKumaServer.monitorTypeList[monitorType.name] = monitorType;
} else {
log.error("", "Invalid Monitor Type: " + monitorType.name);
}
}
/**
*
* @param {MonitorType} monitorType
*/
removeMonitorType(monitorType) {
if (UptimeKumaServer.monitorTypeList[monitorType.name] === monitorType) {
delete UptimeKumaServer.monitorTypeList[monitorType.name];
} else {
log.error("", "Remove MonitorType failed: " + monitorType.name);
}
}
}
module.exports = {
@ -248,3 +335,4 @@ module.exports = {
// Must be at the end
const MaintenanceTimeslot = require("./model/maintenance_timeslot");
const { MonitorType } = require("./monitor-types/monitor-type");

@ -1,5 +1,5 @@
const tcpp = require("tcp-ping");
const Ping = require("./ping-lite");
const ping = require("@louislam/ping");
const { R } = require("redbean-node");
const { log, genSecret } = require("../src/util");
const passwordHash = require("./password-hash");
@ -14,11 +14,13 @@ const mssql = require("mssql");
const { Client } = require("pg");
const postgresConParse = require("pg-connection-string").parse;
const mysql = require("mysql2");
const { MongoClient } = require("mongodb");
const { NtlmClient } = require("axios-ntlm");
const { Settings } = require("./settings");
const grpc = require("@grpc/grpc-js");
const protojs = require("protobufjs");
const radiusClient = require("node-radius-client");
const redis = require("redis");
const {
dictionaries: {
rfc2865: { file, attributes },
@ -26,12 +28,7 @@ const {
} = require("node-radius-utils");
const dayjs = require("dayjs");
// From ping-lite
exports.WIN = /^win/.test(process.platform);
exports.LIN = /^linux/.test(process.platform);
exports.MAC = /^darwin/.test(process.platform);
exports.FBSD = /^freebsd/.test(process.platform);
exports.BSD = /bsd$/.test(process.platform);
const isWindows = process.platform === /^win/.test(process.platform);
/**
* Init or reset JWT secret
@ -82,15 +79,16 @@ exports.tcping = function (hostname, port) {
/**
* Ping the specified machine
* @param {string} hostname Hostname / address of machine
* @param {number} [size=56] Size of packet to send
* @returns {Promise<number>} Time for ping in ms rounded to nearest integer
*/
exports.ping = async (hostname) => {
exports.ping = async (hostname, size = 56) => {
try {
return await exports.pingAsync(hostname);
return await exports.pingAsync(hostname, false, size);
} catch (e) {
// If the host cannot be resolved, try again with ipv6
if (e.message.includes("service not known")) {
return await exports.pingAsync(hostname, true);
return await exports.pingAsync(hostname, true, size);
} else {
throw e;
}
@ -101,22 +99,29 @@ exports.ping = async (hostname) => {
* Ping the specified machine
* @param {string} hostname Hostname / address of machine to ping
* @param {boolean} ipv6 Should IPv6 be used?
* @param {number} [size = 56] Size of ping packet to send
* @returns {Promise<number>} Time for ping in ms rounded to nearest integer
*/
exports.pingAsync = function (hostname, ipv6 = false) {
exports.pingAsync = function (hostname, ipv6 = false, size = 56) {
return new Promise((resolve, reject) => {
const ping = new Ping(hostname, {
ipv6
});
ping.send(function (err, ms, stdout) {
if (err) {
reject(err);
} else if (ms === null) {
reject(new Error(stdout));
ping.promise.probe(hostname, {
v6: ipv6,
min_reply: 1,
deadline: 10,
packetSize: size,
}).then((res) => {
// If ping failed, it will set field to unknown
if (res.alive) {
resolve(res.time);
} else {
resolve(Math.round(ms));
if (isWindows) {
reject(new Error(exports.convertToUTF8(res.output)));
} else {
reject(new Error(res.output));
}
}
}).catch((err) => {
reject(err);
});
});
};
@ -135,7 +140,7 @@ exports.mqttAsync = function (hostname, topic, okMessage, options = {}) {
const { port, username, password, interval = 20 } = options;
// Adds MQTT protocol to the hostname if not already present
if (!/^(?:http|mqtt)s?:\/\//.test(hostname)) {
if (!/^(?:http|mqtt|ws)s?:\/\//.test(hostname)) {
hostname = "mqtt://" + hostname;
}
@ -145,10 +150,11 @@ exports.mqttAsync = function (hostname, topic, okMessage, options = {}) {
reject(new Error("Timeout"));
}, interval * 1000 * 0.8);
log.debug("mqtt", "MQTT connecting");
const mqttUrl = `${hostname}:${port}`;
let client = mqtt.connect(hostname, {
port,
log.debug("mqtt", `MQTT connecting to ${mqttUrl}`);
let client = mqtt.connect(mqttUrl, {
username,
password
});
@ -248,19 +254,19 @@ exports.dnsResolve = function (hostname, resolverServer, resolverPort, rrtype) {
* @param {string} query The query to validate the database with
* @returns {Promise<(string[]|Object[]|Object)>}
*/
exports.mssqlQuery = function (connectionString, query) {
return new Promise((resolve, reject) => {
mssql.connect(connectionString).then(pool => {
return pool.request()
.query(query);
}).then(result => {
resolve(result);
}).catch(err => {
reject(err);
}).finally(() => {
mssql.close();
});
});
exports.mssqlQuery = async function (connectionString, query) {
let pool;
try {
pool = new mssql.ConnectionPool(connectionString);
await pool.connect();
await pool.request().query(query);
pool.close();
} catch (e) {
if (pool) {
pool.close();
}
throw e;
}
};
/**
@ -280,18 +286,23 @@ exports.postgresQuery = function (connectionString, query) {
const client = new Client({ connectionString });
client.connect();
return client.query(query)
.then(res => {
resolve(res);
})
.catch(err => {
client.connect((err) => {
if (err) {
reject(err);
})
.finally(() => {
client.end();
});
} else {
// Connected here
client.query(query, (err, res) => {
if (err) {
reject(err);
} else {
resolve(res);
}
client.end();
});
}
});
});
};
@ -317,6 +328,23 @@ exports.mysqlQuery = function (connectionString, query) {
});
};
/**
* Connect to and Ping a MongoDB database
* @param {string} connectionString The database connection string
* @returns {Promise<(string[]|Object[]|Object)>}
*/
exports.mongodbPing = async function (connectionString) {
let client = await MongoClient.connect(connectionString);
let dbPing = await client.db().command({ ping: 1 });
await client.close();
if (dbPing["ok"] === 1) {
return "UP";
} else {
throw Error("failed");
}
};
/**
* Query radius server
* @param {string} hostname Hostname of radius server
@ -354,6 +382,30 @@ exports.radius = function (
});
};
/**
* Redis server ping
* @param {string} dsn The redis connection string
*/
exports.redisPingAsync = function (dsn) {
return new Promise((resolve, reject) => {
const client = redis.createClient({
url: dsn,
});
client.on("error", (err) => {
reject(err);
});
client.connect().then(() => {
client.ping().then((res, err) => {
if (err) {
reject(err);
} else {
resolve(res);
}
});
});
});
};
/**
* Retrieve value of setting based on key
* @param {string} key Key of setting to retrieve
@ -778,22 +830,31 @@ module.exports.grpcQuery = async (options) => {
cb);
}, false, false);
return new Promise((resolve, _) => {
return grpcService[`${grpcMethod}`](JSON.parse(grpcBody), function (err, response) {
const responseData = JSON.stringify(response);
if (err) {
return resolve({
code: err.code,
errorMessage: err.details,
data: ""
});
} else {
log.debug("monitor:", `gRPC response: ${response}`);
return resolve({
code: 1,
errorMessage: "",
data: responseData
});
}
});
try {
return grpcService[`${grpcMethod}`](JSON.parse(grpcBody), function (err, response) {
const responseData = JSON.stringify(response);
if (err) {
return resolve({
code: err.code,
errorMessage: err.details,
data: ""
});
} else {
log.debug("monitor:", `gRPC response: ${JSON.stringify(response)}`);
return resolve({
code: 1,
errorMessage: "",
data: responseData
});
}
});
} catch (err) {
return resolve({
code: -1,
errorMessage: `Error ${err}. Please review your gRPC configuration option. The service name must not include package name value, and the method name must follow camelCase format`,
data: ""
});
}
});
};

@ -35,6 +35,11 @@ textarea.form-control {
color: $maintenance !important;
}
.incident a,
.bg-maintenance a {
color: inherit;
}
.list-group {
border-radius: 0.75rem;
@ -248,6 +253,11 @@ optgroup {
}
}
.incident a,
.bg-maintenance a {
color: inherit;
}
.form-control,
.form-control:focus,
.form-select,

@ -2,4 +2,8 @@ html[lang='fa'] {
#app {
font-family: 'IRANSans', 'Iranian Sans','B Nazanin', 'Tahoma', ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, segoe ui, Roboto, helvetica neue, Arial, noto sans, sans-serif, apple color emoji, segoe ui emoji, segoe ui symbol, noto color emoji;
}
}
}
ul.multiselect__content {
padding-left: 0 !important;
}

@ -73,7 +73,7 @@ export default {
emits: [ "added" ],
data() {
return {
model: null,
modal: null,
processing: false,
id: null,
connectionTypes: [ "socket", "tcp" ],
@ -91,11 +91,16 @@ export default {
},
methods: {
/** Confirm deletion of docker host */
deleteConfirm() {
this.modal.hide();
this.$refs.confirmDelete.show();
},
/**
* Show specified docker host
* @param {number} dockerHostID
*/
show(dockerHostID) {
if (dockerHostID) {
let found = false;
@ -126,6 +131,7 @@ export default {
this.modal.show();
},
/** Add docker host */
submit() {
this.processing = true;
this.$root.getSocket().emit("addDockerHost", this.dockerHost, this.id, (res) => {
@ -144,6 +150,7 @@ export default {
});
},
/** Test the docker host */
test() {
this.processing = true;
this.$root.getSocket().emit("testDockerHost", this.dockerHost, (res) => {
@ -152,6 +159,7 @@ export default {
});
},
/** Delete this docker host */
deleteDockerHost() {
this.processing = true;
this.$root.getSocket().emit("deleteDockerHost", this.id, (res) => {

@ -0,0 +1,102 @@
<template>
<div v-if="! (!plugin.installed && plugin.local)" class="plugin-item pt-4 pb-2">
<div class="info">
<h5>{{ plugin.fullName }}</h5>
<p class="description">
{{ plugin.description }}
</p>
<span class="version">{{ $t("Version") }}: {{ plugin.version }} <a v-if="plugin.repo" :href="plugin.repo" target="_blank">Repo</a></span>
</div>
<div class="buttons">
<button v-if="status === 'installing'" class="btn btn-primary" disabled>{{ $t("installing") }}</button>
<button v-else-if="status === 'uninstalling'" class="btn btn-danger" disabled>{{ $t("uninstalling") }}</button>
<button v-else-if="plugin.installed || status === 'installed'" class="btn btn-danger" @click="deleteConfirm">{{ $t("uninstall") }}</button>
<button v-else class="btn btn-primary" @click="install">{{ $t("install") }}</button>
</div>
<Confirm ref="confirmDelete" btn-style="btn-danger" :yes-text="$t('Yes')" :no-text="$t('No')" @yes="uninstall">
{{ $t("confirmUninstallPlugin") }}
</Confirm>
</div>
</template>
<script>
import Confirm from "./Confirm.vue";
export default {
components: {
Confirm,
},
props: {
plugin: {
type: Object,
required: true,
},
},
data() {
return {
status: "",
};
},
methods: {
/**
* Show confirmation for deleting a tag
*/
deleteConfirm() {
this.$refs.confirmDelete.show();
},
install() {
this.status = "installing";
this.$root.getSocket().emit("installPlugin", this.plugin.repo, this.plugin.name, (res) => {
if (res.ok) {
this.status = "";
// eslint-disable-next-line vue/no-mutating-props
this.plugin.installed = true;
} else {
this.$root.toastRes(res);
}
});
},
uninstall() {
this.status = "uninstalling";
this.$root.getSocket().emit("uninstallPlugin", this.plugin.name, (res) => {
if (res.ok) {
this.status = "";
// eslint-disable-next-line vue/no-mutating-props
this.plugin.installed = false;
} else {
this.$root.toastRes(res);
}
});
}
}
};
</script>
<style lang="scss" scoped>
@import "../assets/vars.scss";
.plugin-item {
display: flex;
justify-content: space-between;
align-content: center;
align-items: center;
.info {
margin-right: 10px;
}
.description {
font-size: 13px;
margin-bottom: 0;
}
.version {
font-size: 13px;
}
}
</style>

@ -41,7 +41,7 @@ export default {
},
computed: {
displayText() {
if (this.item.value === "") {
if (this.item.value === "" || this.item.value === undefined) {
return this.item.name;
} else {
return `${this.item.name}: ${this.item.value}`;

@ -0,0 +1,376 @@
<template>
<form @submit.prevent="submit">
<div ref="modal" class="modal fade" tabindex="-1" data-bs-backdrop="static">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<h5 id="exampleModalLabel" class="modal-title">
{{ $t("Edit Tag") }}
</h5>
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close" />
</div>
<div class="modal-body">
<div class="mb-3">
<label for="tag-name" class="form-label">{{ $t("Name") }}</label>
<input id="tag-name" v-model="tag.name" type="text" class="form-control" required>
</div>
<div class="mb-3">
<label for="tag-color" class="form-label">{{ $t("color") }}</label>
<div class="d-flex">
<div class="col-8 pe-1">
<vue-multiselect
v-model="selectedColor"
:options="colorOptions"
:multiple="false"
:searchable="true"
:placeholder="$t('color')"
track-by="color"
label="name"
select-label=""
deselect-label=""
>
<template #option="{ option }">
<div
class="mx-2 py-1 px-3 rounded d-inline-flex"
style="height: 24px; color: white;"
:style="{ backgroundColor: option.color + ' !important' }"
>
<span>{{ option.name }}</span>
</div>
</template>
<template #singleLabel="{ option }">
<div
class="py-1 px-3 rounded d-inline-flex"
style="height: 24px; color: white;"
:style="{ backgroundColor: option.color + ' !important' }"
>
<span>{{ option.name }}</span>
</div>
</template>
</vue-multiselect>
</div>
<div class="col-4 ps-1">
<input id="tag-color-hex" v-model="tag.color" type="text" class="form-control">
</div>
</div>
</div>
<div class="mb-3">
<label for="tag-monitors" class="form-label">{{ $tc("Monitor", selectedMonitors.length) }}</label>
<div class="tag-monitors-list">
<router-link v-for="monitor in selectedMonitors" :key="monitor.id" class="d-flex align-items-center justify-content-between text-decoration-none tag-monitors-list-row py-2 px-3" :to="monitorURL(monitor.id)" @click="modal.hide()">
<span>{{ monitor.name }}</span>
<button type="button" class="btn-rm-monitor btn btn-outline-danger ms-2 py-1" @click.stop.prevent="removeMonitor(monitor.id)">
<font-awesome-icon class="" icon="times" />
</button>
</router-link>
</div>
<div v-if="allMonitorList.length > 0" class="pt-3 px-3">
<label class="form-label">{{ $t("Add a monitor") }}:</label>
<select v-model="selectedAddMonitor" class="form-control">
<option v-for="monitor in allMonitorList" :key="monitor.id" :value="monitor">{{ monitor.name }}</option>
</select>
</div>
</div>
</div>
<div class="modal-footer">
<button v-if="tag" type="button" class="btn btn-danger" :disabled="processing" @click="deleteConfirm">
{{ $t("Delete") }}
</button>
<button type="submit" class="btn btn-primary" :disabled="processing">
<div v-if="processing" class="spinner-border spinner-border-sm me-1"></div>
{{ $t("Save") }}
</button>
</div>
</div>
</div>
</div>
</form>
<Confirm ref="confirmDelete" btn-style="btn-danger" :yes-text="$t('Yes')" :no-text="$t('No')" @yes="deleteTag">
{{ $t("confirmDeleteTagMsg") }}
</Confirm>
</template>
<script>
import { Modal } from "bootstrap";
import Confirm from "./Confirm.vue";
import VueMultiselect from "vue-multiselect";
import { colorOptions } from "../util-frontend";
import { useToast } from "vue-toastification";
import { getMonitorRelativeURL } from "../util.ts";
const toast = useToast();
export default {
components: {
VueMultiselect,
Confirm,
},
props: {
updated: {
type: Function,
default: () => {},
}
},
data() {
return {
modal: null,
processing: false,
selectedColor: {
name: null,
color: null,
},
tag: {
id: null,
name: "",
color: "",
// Do not set default value here, please scroll to show()
},
monitors: [],
removingMonitor: [],
addingMonitor: [],
selectedAddMonitor: null,
};
},
computed: {
colorOptions() {
if (!colorOptions(this).find(option => option.color === this.tag.color)) {
return colorOptions(this).concat(
{
name: "custom",
color: this.tag.color
});
} else {
return colorOptions(this);
}
},
selectedMonitors() {
return this.monitors
.concat(Object.values(this.$root.monitorList).filter(monitor => this.addingMonitor.includes(monitor.id)))
.filter(monitor => !this.removingMonitor.includes(monitor.id));
},
allMonitorList() {
return Object.values(this.$root.monitorList).filter(monitor => !this.selectedMonitors.includes(monitor));
},
},
watch: {
// Set color option to "Custom" when a unknown color is entered
"tag.color"(to, from) {
if (colorOptions(this).find(x => x.color === to) == null) {
this.selectedColor.name = this.$t("Custom");
this.selectedColor.color = to;
}
},
selectedColor(to, from) {
if (to != null) {
this.tag.color = to.color;
}
},
/**
* Selected a monitor and add to the list.
*/
selectedAddMonitor(monitor) {
if (monitor) {
if (this.removingMonitor.includes(monitor.id)) {
this.removingMonitor = this.removingMonitor.filter(id => id !== monitor.id);
} else {
this.addingMonitor.push(monitor.id);
}
this.selectedAddMonitor = null;
}
},
},
mounted() {
this.modal = new Modal(this.$refs.modal);
},
methods: {
/**
* Show confirmation for deleting a tag
*/
deleteConfirm() {
this.$refs.confirmDelete.show();
},
/**
* Load tag information for display in the edit dialog
* @param {Object} tag tag object to edit
* @returns {void}
*/
show(tag) {
if (tag) {
this.selectedColor = this.colorOptions.find(x => x.color === tag.color) ?? {
name: this.$t("Custom"),
color: tag.color
};
this.tag.id = tag.id;
this.tag.name = tag.name;
this.tag.color = tag.color;
this.monitors = this.monitorsByTag(tag.id);
this.removingMonitor = [];
this.addingMonitor = [];
this.selectedAddMonitor = null;
}
this.modal.show();
},
/**
* Submit tag and monitorTag changes to server
* @returns {void}
*/
async submit() {
this.processing = true;
let editResult = true;
for (let addId of this.addingMonitor) {
await this.addMonitorTagAsync(this.tag.id, addId, "").then((res) => {
if (!res.ok) {
toast.error(res.msg);
editResult = false;
}
});
}
for (let removeId of this.removingMonitor) {
this.monitors.find(monitor => monitor.id === removeId)?.tags.forEach(async (monitorTag) => {
await this.deleteMonitorTagAsync(this.tag.id, removeId, monitorTag.value).then((res) => {
if (!res.ok) {
toast.error(res.msg);
editResult = false;
}
});
});
}
this.$root.getSocket().emit("editTag", this.tag, (res) => {
this.$root.toastRes(res);
this.processing = false;
if (res.ok && editResult) {
this.updated();
this.modal.hide();
}
});
},
/**
* Delete the editing tag from server
* @returns {void}
*/
deleteTag() {
this.processing = true;
this.$root.getSocket().emit("deleteTag", this.tag.id, (res) => {
this.$root.toastRes(res);
this.processing = false;
if (res.ok) {
this.updated();
this.modal.hide();
}
});
},
/**
* Remove a monitor from the monitors list locally
* @param {number} id id of the tag to remove
* @returns {void}
*/
removeMonitor(id) {
if (this.addingMonitor.includes(id)) {
this.addingMonitor = this.addingMonitor.filter(x => x !== id);
} else {
this.removingMonitor.push(id);
}
},
/**
* Get monitors which has a specific tag locally
* @param {number} tagId id of the tag to filter
* @returns {Object[]} list of monitors which has a specific tag
*/
monitorsByTag(tagId) {
return Object.values(this.$root.monitorList).filter((monitor) => {
return monitor.tags.find(monitorTag => monitorTag.tag_id === tagId);
});
},
/**
* Get URL of monitor
* @param {number} id ID of monitor
* @returns {string} Relative URL of monitor
*/
monitorURL(id) {
return getMonitorRelativeURL(id);
},
/**
* Add a tag to a monitor asynchronously
* @param {number} tagId ID of tag to add
* @param {number} monitorId ID of monitor to add tag to
* @param {string} value Value of tag
* @returns {Promise<void>}
*/
addMonitorTagAsync(tagId, monitorId, value) {
return new Promise((resolve) => {
this.$root.getSocket().emit("addMonitorTag", tagId, monitorId, value, resolve);
});
},
/**
* Delete a tag from a monitor asynchronously
* @param {number} tagId ID of tag to remove
* @param {number} monitorId ID of monitor to remove tag from
* @param {string} value Value of tag
* @returns {Promise<void>}
*/
deleteMonitorTagAsync(tagId, monitorId, value) {
return new Promise((resolve) => {
this.$root.getSocket().emit("deleteMonitorTag", tagId, monitorId, value, resolve);
});
},
},
};
</script>
<style lang="scss" scoped>
@import "../assets/vars.scss";
.dark {
.modal-dialog .form-text, .modal-dialog p {
color: $dark-font-color;
}
}
.btn-rm-monitor {
padding-left: 11px;
padding-right: 11px;
}
.tag-monitors-list {
max-height: 40vh;
overflow-y: scroll;
}
.tag-monitors-list .tag-monitors-list-row {
cursor: pointer;
border-bottom: 1px solid rgba(0, 0, 0, 0.125);
.dark & {
border-bottom: 1px solid $dark-border-color;
}
&:hover {
background-color: $highlight-white;
}
.dark &:hover {
background-color: $dark-bg2;
}
}
</style>

@ -130,6 +130,7 @@
import { Modal } from "bootstrap";
import VueMultiselect from "vue-multiselect";
import { useToast } from "vue-toastification";
import { colorOptions } from "../util-frontend";
import Tag from "../components/Tag.vue";
const toast = useToast();
@ -176,24 +177,7 @@ export default {
return this.preSelectedTags.concat(this.newTags).filter(tag => !this.deleteTags.find(monitorTag => monitorTag.id === tag.id));
},
colorOptions() {
return [
{ name: this.$t("Gray"),
color: "#4B5563" },
{ name: this.$t("Red"),
color: "#DC2626" },
{ name: this.$t("Orange"),
color: "#D97706" },
{ name: this.$t("Green"),
color: "#059669" },
{ name: this.$t("Blue"),
color: "#2563EB" },
{ name: this.$t("Indigo"),
color: "#4F46E5" },
{ name: this.$t("Purple"),
color: "#7C3AED" },
{ name: this.$t("Pink"),
color: "#DB2777" },
];
return colorOptions(this);
},
validateDraftTag() {
let nameInvalid = false;
@ -204,7 +188,7 @@ export default {
nameInvalid = false;
valueInvalid = false;
invalid = false;
} else if (this.existingTags.filter(tag => tag.name === this.newDraftTag.name).length > 0) {
} else if (this.existingTags.filter(tag => tag.name === this.newDraftTag.name).length > 0 && this.newDraftTag.select == null) {
// Try to create new tag with existing name
nameInvalid = true;
invalid = true;

@ -1,8 +1,10 @@
<template>
<span :class="className" :title="24 + $t('-hour')">{{ uptime }}</span>
<span :class="className" :title="title">{{ uptime }}</span>
</template>
<script>
import { DOWN, MAINTENANCE, PENDING, UP } from "../util.ts";
export default {
props: {
/** Monitor this represents */
@ -24,7 +26,6 @@ export default {
computed: {
uptime() {
if (this.type === "maintenance") {
return this.$t("statusMaintenance");
}
@ -32,26 +33,32 @@ export default {
let key = this.monitor.id + "_" + this.type;
if (this.$root.uptimeList[key] !== undefined) {
return Math.round(this.$root.uptimeList[key] * 10000) / 100 + "%";
let result = Math.round(this.$root.uptimeList[key] * 10000) / 100;
// Only perform sanity check on status page. See louislam/uptime-kuma#2628
if (this.$route.path.startsWith("/status") && result > 100) {
return "100%";
} else {
return result + "%";
}
}
return this.$t("notAvailableShort");
},
color() {
if (this.type === "maintenance" || this.monitor.maintenance) {
if (this.lastHeartBeat.status === MAINTENANCE) {
return "maintenance";
}
if (this.lastHeartBeat.status === 0) {
if (this.lastHeartBeat.status === DOWN) {
return "danger";
}
if (this.lastHeartBeat.status === 1) {
if (this.lastHeartBeat.status === UP) {
return "primary";
}
if (this.lastHeartBeat.status === 2) {
if (this.lastHeartBeat.status === PENDING) {
return "warning";
}
@ -75,6 +82,14 @@ export default {
return "";
},
title() {
if (this.type === "720") {
return `30${this.$t("-day")}`;
}
return `24${this.$t("-hour")}`;
}
},
};
</script>

@ -0,0 +1,36 @@
<template>
<div class="mb-3">
<label for="kook-bot-token" class="form-label">{{ $t("Bot Token") }}</label>
<HiddenInput id="kook-bot-token" v-model="$parent.notification.kookBotToken" :required="true" autocomplete="new-password"></HiddenInput>
<i18n-t tag="div" keypath="wayToGetKookBotToken" class="form-text">
<a href="https://developer.kookapp.cn/bot" target="_blank">https://developer.kookapp.cn/bot</a>
</i18n-t>
</div>
<div class="mb-3">
<label for="kook-guild-id" class="form-label">{{ $t("Guild ID") }}</label>
<div class="input-group mb-3">
<input id="kook-guild-id" v-model="$parent.notification.kookGuildID" type="text" class="form-control" required>
</div>
<div class="form-text">
<p style="margin-top: 8px;">
{{ $t("wayToGetKookGuildID") }}
</p>
</div>
</div>
<i18n-t tag="p" keypath="More info on:" style="margin-top: 8px;">
<a href="https://developer.kookapp.cn" target="_blank">https://developer.kookapp.cn</a>
</i18n-t>
</template>
<script>
import HiddenInput from "../HiddenInput.vue";
export default {
components: {
HiddenInput,
}
};
</script>

@ -26,6 +26,10 @@
<label for="promosms-sender-name" class="form-label">{{ $t("promosmsSMSSender") }}</label>
<input id="promosms-sender-name" v-model="$parent.notification.promosmsSenderName" type="text" minlength="3" maxlength="11" class="form-control">
</div>
<div class="form-check form-switch">
<input id="promosms-allow-long" v-model="$parent.notification.promosmsAllowLongSMS" type="checkbox" class="form-check-input">
<label for="promosms-allow-long" class="form-label">{{ $t("promosmsAllowLongSMS") }}</label>
</div>
</template>
<script>

@ -0,0 +1,32 @@
<template>
<div class="mb-3">
<label for="splunk-rest-url" class="form-label">{{ $t("Splunk Rest URL") }}</label>
<HiddenInput id="splunk-rest-url" v-model="$parent.notification.splunkRestURL" :required="true" autocomplete="false"></HiddenInput>
</div>
<div class="mb-3">
<label for="splunk-severity" class="form-label">{{ $t("Severity") }}</label>
<select id="splunk-severity" v-model="$parent.notification.splunkSeverity" class="form-select">
<option value="INFO">{{ $t("info") }}</option>
<option value="WARNING">{{ $t("warning") }}</option>
<option value="CRITICAL" selected="selected">{{ $t("critical") }}</option>
</select>
</div>
<div class="mb-3">
<label for="splunk-resolve" class="form-label">{{ $t("Auto resolve or acknowledged") }}</label>
<select id="splunk-resolve" v-model="$parent.notification.splunkAutoResolve" class="form-select">
<option value="0" selected="selected">{{ $t("do nothing") }}</option>
<option value="ACKNOWLEDGEMENT">{{ $t("auto acknowledged") }}</option>
<option value="RECOVERY">{{ $t("auto resolve") }}</option>
</select>
</div>
</template>
<script>
import HiddenInput from "../HiddenInput.vue";
export default {
components: {
HiddenInput,
},
};
</script>

@ -42,6 +42,11 @@ export default {
HiddenInput,
},
methods: {
/**
* Get the URL for telegram updates
* @param {string} [mode=masked] Should the token be masked?
* @returns {string} formatted URL
*/
telegramGetUpdatesURL(mode = "masked") {
let token = `<${this.$t("YOUR BOT TOKEN HERE")}>`;
@ -55,6 +60,8 @@ export default {
return `https://api.telegram.org/bot${token}/getUpdates`;
},
/** Get the telegram chat ID */
async autoGetTelegramChatID() {
try {
let res = await axios.get(this.telegramGetUpdatesURL("withToken"));

@ -0,0 +1,18 @@
<template>
<div class="mb-3">
<label for="zcliq-webhookurl" class="form-label">{{ $t("Webhook URL") }}</label>
<input
id="zcliq-webhookurl"
v-model="$parent.notification.webhookUrl"
type="text"
class="form-control"
required
/>
<i18n-t tag="div" keypath="wayToGetZohoCliqURL" class="form-text">
<a
href="https://www.zoho.com/cliq/help/platform/webhook-tokens.html"
target="_blank"
>{{ $t("here") }}</a>
</i18n-t>
</div>
</template>

@ -12,6 +12,7 @@ import GoogleChat from "./GoogleChat.vue";
import Gorush from "./Gorush.vue";
import Gotify from "./Gotify.vue";
import HomeAssistant from "./HomeAssistant.vue";
import Kook from "./Kook.vue";
import Line from "./Line.vue";
import LineNotify from "./LineNotify.vue";
import LunaSea from "./LunaSea.vue";
@ -42,6 +43,8 @@ import Telegram from "./Telegram.vue";
import Webhook from "./Webhook.vue";
import WeCom from "./WeCom.vue";
import GoAlert from "./GoAlert.vue";
import ZohoCliq from "./ZohoCliq.vue";
import Splunk from "./Splunk.vue";
/**
* Manage all notification form.
@ -63,6 +66,7 @@ const NotificationFormList = {
"gorush": Gorush,
"gotify": Gotify,
"HomeAssistant": HomeAssistant,
"Kook": Kook,
"line": Line,
"LineNotify": LineNotify,
"lunasea": LunaSea,
@ -89,10 +93,12 @@ const NotificationFormList = {
"stackfield": Stackfield,
"teams": Teams,
"telegram": Telegram,
"Splunk": Splunk,
"webhook": Webhook,
"WeCom": WeCom,
"GoAlert": GoAlert,
"ServerChan": ServerChan,
"ZohoCliq": ZohoCliq
};
export default NotificationFormList;

@ -7,6 +7,7 @@
settings.keepDataPeriodDays,
])
}}
{{ $t("infiniteRetention") }}
</label>
<input
id="keepDataPeriodDays"
@ -14,9 +15,12 @@
type="number"
class="form-control"
required
min="1"
min="0"
step="1"
/>
<div v-if="settings.keepDataPeriodDays < 0" class="form-text">
{{ $t("dataRetentionTimeError") }}
</div>
</div>
<div class="my-4">
<button class="btn btn-primary" type="button" @click="saveSettings()">

@ -0,0 +1,57 @@
<template>
<div>
<div class="mt-3">{{ remotePluginListMsg }}</div>
<PluginItem v-for="plugin in remotePluginList" :key="plugin.id" :plugin="plugin" />
</div>
</template>
<script>
import PluginItem from "../PluginItem.vue";
export default {
components: {
PluginItem
},
data() {
return {
remotePluginList: [],
remotePluginListMsg: "",
};
},
computed: {
pluginList() {
return this.$parent.$parent.$parent.pluginList;
},
settings() {
return this.$parent.$parent.$parent.settings;
},
saveSettings() {
return this.$parent.$parent.$parent.saveSettings;
},
settingsLoaded() {
return this.$parent.$parent.$parent.settingsLoaded;
},
},
async mounted() {
this.loadList();
},
methods: {
loadList() {
this.remotePluginListMsg = this.$t("Loading") + "...";
this.$root.getSocket().emit("getPluginList", (res) => {
if (res.ok) {
this.remotePluginList = res.pluginList;
this.remotePluginListMsg = "";
} else {
this.remotePluginListMsg = this.$t("loadingError") + " " + res.msg;
}
});
}
},
};
</script>

@ -191,6 +191,7 @@ export default {
location.reload();
},
/** Show confirmation dialog for disable auth */
confirmDisableAuth() {
this.$refs.confirmDisableAuth.show();
},

@ -0,0 +1,171 @@
<template>
<div>
<div class="tags-list my-3">
<div v-for="(tag, index) in tagsList" :key="tag.id" class="d-flex align-items-center mx-4 py-1 tags-list-row" :disabled="processing" @click="editTag(index)">
<div class="col-5 ps-1">
<Tag :item="tag" />
</div>
<div class="col-5 px-1">
<div>{{ monitorsByTag(tag.id).length }} {{ $tc("Monitor", monitorsByTag(tag.id).length) }}</div>
</div>
<div class="col-2 pe-3 d-flex justify-content-end">
<button type="button" class="btn ms-2 py-1">
<font-awesome-icon class="" icon="edit" />
</button>
<button type="button" class="btn-rm-tag btn btn-outline-danger ms-2 py-1" :disabled="processing" @click.stop="deleteConfirm(index)">
<font-awesome-icon class="" icon="trash" />
</button>
</div>
</div>
</div>
<TagEditDialog ref="tagEditDialog" :updated="tagsUpdated" />
<Confirm ref="confirmDelete" btn-style="btn-danger" :yes-text="$t('Yes')" :no-text="$t('No')" @yes="deleteTag">
{{ $t("confirmDeleteTagMsg") }}
</Confirm>
</div>
</template>
<script>
import { useToast } from "vue-toastification";
import TagEditDialog from "../../components/TagEditDialog.vue";
import Tag from "../Tag.vue";
import Confirm from "../Confirm.vue";
const toast = useToast();
export default {
components: {
Confirm,
TagEditDialog,
Tag,
},
data() {
return {
processing: false,
tagsList: null,
deletingTag: null,
};
},
computed: {
settings() {
return this.$parent.$parent.$parent.settings;
},
saveSettings() {
return this.$parent.$parent.$parent.saveSettings;
},
settingsLoaded() {
return this.$parent.$parent.$parent.settingsLoaded;
},
},
mounted() {
this.getExistingTags();
},
methods: {
/**
* Reflect tag changes in the UI by fetching data. Callback for the edit tag dialog.
* @returns {void}
*/
tagsUpdated() {
this.getExistingTags();
this.$root.getMonitorList();
},
/**
* Get list of tags from server
* @returns {void}
*/
getExistingTags() {
this.processing = true;
this.$root.getSocket().emit("getTags", (res) => {
this.processing = false;
if (res.ok) {
this.tagsList = res.tags;
} else {
toast.error(res.msg);
}
});
},
/**
* Show confirmation for deleting a tag
* @param {number} index index of the tag to delete in the local tagsList
* @returns {void}
*/
deleteConfirm(index) {
this.deletingTag = this.tagsList[index];
this.$refs.confirmDelete.show();
},
/**
* Show dialog for editing a tag
* @param {number} index index of the tag to edit in the local tagsList
* @returns {void}
*/
editTag(index) {
this.$refs.tagEditDialog.show(this.tagsList[index]);
},
/**
* Delete the tag "deletingTag" from server
* @returns {void}
*/
deleteTag() {
this.processing = true;
this.$root.getSocket().emit("deleteTag", this.deletingTag.id, (res) => {
this.$root.toastRes(res);
this.processing = false;
if (res.ok) {
this.tagsUpdated();
}
});
},
/**
* Get monitors which has a specific tag locally
* @param {number} tagId id of the tag to filter
* @returns {Object[]} list of monitors which has a specific tag
*/
monitorsByTag(tagId) {
return Object.values(this.$root.monitorList).filter((monitor) => {
return monitor.tags.find(monitorTag => monitorTag.tag_id === tagId);
});
},
},
};
</script>
<style lang="scss" scoped>
@import "../../assets/vars.scss";
.btn-rm-tag {
padding-left: 11px;
padding-right: 11px;
}
.tags-list .tags-list-row {
cursor: pointer;
border-bottom: 1px solid rgba(0, 0, 0, 0.125);
.dark & {
border-bottom: 1px solid $dark-border-color;
}
&:hover {
background-color: $highlight-white;
}
.dark &:hover {
background-color: $dark-bg2;
}
}
.tags-list .tags-list-row:last-child {
border: none;
}
</style>

@ -1,7 +1,8 @@
import { createI18n } from "vue-i18n/dist/vue-i18n.esm-browser.prod.js";
import en from "./languages/en";
import en from "./lang/en.json";
const languageList = {
"ar-SY": "العربية",
"cs-CZ": "Čeština",
"zh-HK": "繁體中文 (香港)",
"bg-BG": "Български",
@ -36,6 +37,7 @@ const languageList = {
"uk-UA": "Український",
"th-TH": "ไทย",
"el-GR": "Ελληνικά",
"yue": "繁體中文 (廣東話 / 粵語)",
};
let messages = {
@ -48,7 +50,7 @@ for (let lang in languageList) {
};
}
const rtlLangs = [ "fa" ];
const rtlLangs = [ "fa", "ar-SY" ];
export const currentLocale = () => localStorage.locale
|| languageList[navigator.language] && navigator.language

@ -44,6 +44,7 @@ import {
faWrench,
faHeartbeat,
faFilter,
faInfoCircle,
} from "@fortawesome/free-solid-svg-icons";
library.add(
@ -88,6 +89,7 @@ library.add(
faWrench,
faHeartbeat,
faFilter,
faInfoCircle,
);
export { FontAwesomeIcon };

@ -0,0 +1,18 @@
# How to translate
(2023-01-24 Updated)
1. Go to [https://weblate.kuma.pet](https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/)
2. Register an account on Weblate
3. Make sure your GitHub email is matched with Weblate's account, so that it could show you as a contributor on GitHub
4. Choose your language on Weblate and start translating.
# How to add a new language in the dropdown
1. Add your language at https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/
2. Find the language code (You can find it at the end of the URL)
3. Go to https://github.com/louislam/uptime-kuma/blob/master/src/i18n.js and click `Edit` icon
4. Add your language at the end of `languageList`, format: `"zh-TW": "繁體中文 (台灣)",`
5. Commit and make a pull request for me to approve
If you do not have programming skills, let me know in [the issues section](https://github.com/louislam/uptime-kuma/issues). I will assist you. 😏

@ -0,0 +1,684 @@
{
"languageName": "العربية",
"checkEverySecond": "تحقق من كل {0} ثانية",
"retryCheckEverySecond": "أعد محاولة كل {0} ثانية",
"resendEveryXTimes": "إعادة تقديم كل {0} مرات",
"resendDisabled": "إعادة الالتزام بالتعطيل",
"retriesDescription": "الحد الأقصى لإعادة المحاولة قبل تمييز الخدمة على أنها لأسفل وإرسال إشعار",
"ignoreTLSError": "تجاهل خطأ TLS/SSL لمواقع HTTPS",
"upsideDownModeDescription": "اقلب الحالة رأسًا على عقب. إذا كانت الخدمة قابلة للوصول إلى أسفل.",
"maxRedirectDescription": "الحد الأقصى لعدد إعادة التوجيه لمتابعة. ضبط على 0 لتعطيل إعادة التوجيه.",
"enableGRPCTls": "السماح لإرسال طلب GRPC مع اتصال TLS",
"grpcMethodDescription": "يتم تحويل اسم الطريقة إلى تنسيق Cammelcase مثل Sayhello Check وما إلى ذلك.",
"acceptedStatusCodesDescription": "حدد رموز الحالة التي تعتبر استجابة ناجحة.",
"Maintenance": "صيانة",
"statusMaintenance": "صيانة",
"Schedule maintenance": "جدولة الصيانة",
"Affected Monitors": "الشاشات المتأثرة",
"Pick Affected Monitors...": "اختيار الشاشات المتأثرة ...",
"Start of maintenance": "بداية الصيانة",
"All Status Pages": "جميع صفحات الحالة",
"Select status pages...": "حدد صفحات الحالة ...",
"recurringIntervalMessage": "ركض مرة واحدة كل يوم | قم بالتشغيل مرة واحدة كل يوم {0}",
"affectedMonitorsDescription": "حدد المراقبين المتأثرة بالصيانة الحالية",
"affectedStatusPages": "إظهار رسالة الصيانة هذه على صفحات الحالة المحددة",
"atLeastOneMonitor": "حدد شاشة واحدة على الأقل من المتأثرين",
"passwordNotMatchMsg": "كلمة المرور المتكررة لا تتطابق.",
"notificationDescription": "يجب تعيين الإخطارات إلى شاشة للعمل.",
"keywordDescription": "ابحث في الكلمة الرئيسية في استجابة HTML العادية أو JSON. البحث حساس للحالة.",
"pauseDashboardHome": "وقفة",
"deleteMonitorMsg": "هل أنت متأكد من حذف هذا الشاشة؟",
"deleteMaintenanceMsg": "هل أنت متأكد من حذف هذه الصيانة؟",
"deleteNotificationMsg": "هل أنت متأكد من حذف هذا الإشعار لجميع الشاشات؟",
"dnsPortDescription": "منفذ خادم DNS. الافتراضيات إلى 53. يمكنك تغيير المنفذ في أي وقت.",
"resolverserverDescription": "CloudFlare هو الخادم الافتراضي. يمكنك تغيير خادم المحوّل في أي وقت.",
"rrtypeDescription": "حدد نوع RR الذي تريد مراقبته",
"pauseMonitorMsg": "هل أنت متأكد من أن تتوقف مؤقتًا؟",
"enableDefaultNotificationDescription": "سيتم تمكين هذا الإشعار افتراضيًا للشاشات الجديدة. لا يزال بإمكانك تعطيل الإخطار بشكل منفصل لكل شاشة.",
"clearEventsMsg": "هل أنت متأكد من حذف جميع الأحداث لهذا الشاشة؟",
"clearHeartbeatsMsg": "هل أنت متأكد من حذف جميع دقات القلب لهذا الشاشة؟",
"confirmClearStatisticsMsg": "هل أنت متأكد من أنك تريد حذف جميع الإحصائيات؟",
"importHandleDescription": "اختر 'تخطي موجود' إذا كنت تريد تخطي كل شاشة أو إشعار بنفس الاسم. 'الكتابة فوق' سوف يحذف كل شاشة وإخطار موجود.",
"confirmImportMsg": "هل أنت متأكد من أنك تريد استيراد النسخ الاحتياطي؟ يرجى التحقق من أنك حددت خيار الاستيراد الصحيح.",
"twoFAVerifyLabel": "الرجاء إدخال الرمز المميز الخاص بك للتحقق من 2FA",
"tokenValidSettingsMsg": "الرمز المميز صالح! يمكنك الآن حفظ إعدادات 2FA.",
"confirmEnableTwoFAMsg": "هل أنت متأكد من أنك تريد تمكين 2FA؟",
"confirmDisableTwoFAMsg": "هل أنت متأكد من أنك تريد تعطيل 2FA؟",
"Settings": "إعدادات",
"Dashboard": "لوحة التحكم",
"New Update": "تحديث جديد",
"Language": "لغة",
"Appearance": "مظهر",
"Theme": "سمة",
"General": "عام",
"Primary Base URL": "عنوان URL الأساسي",
"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.": "تصدير الشهادة",
"Monitor": "مراقب | مراقبات",
"day": "يوم | أيام",
"-day": "-يوم",
"hour": "ساعة",
"-hour": "-ساعة",
"Response": "استجاية",
"Ping": "بينغ",
"Monitor Type": "نوع المراقب",
"Keyword": "كلمة مفتاحية",
"Friendly Name": "اسم معروف",
"URL": "عنوان URL",
"Hostname": "اسم المضيف",
"Port": "المنفذ",
"Heartbeat Interval": "فاصل نبضات القلب",
"Retries": "يحاول مجدداً",
"Heartbeat Retry Interval": "الفاصل الزمني لإعادة محاكمة نبضات القلب",
"Resend Notification if Down X times consequently": "إعادة تقديم الإخطار إذا انخفض x مرات بالتالي",
"Advanced": "متقدم",
"Upside Down Mode": "وضع أسفل أسفل",
"Max. Redirects": "الأعلى. إعادة التوجيه",
"Accepted Status Codes": "رموز الحالة المقبولة",
"Push URL": "دفع عنوان URL",
"needPushEvery": "يجب عليك استدعاء عنوان URL هذا كل ثانية.",
"pushOptionalParams": "المعلمات الاختيارية",
"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": "تمكين المصادقة",
"disableauth.message1": "هل أنت متأكد من أن <strong> تعطيل المصادقة </strong>؟",
"disableauth.message2": "تم تصميمه للسيناريوهات <strong> حيث تنوي تنفيذ مصادقة الطرف الثالث </strong> أمام كوما في وقت التشغيل مثل CloudFlare Access Authelia أو آليات المصادقة الأخرى.",
"Please use this option carefully!": "الرجاء استخدام هذا الخيار بعناية!",
"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": "خادم Resolver",
"Resource Record Type": "نوع سجل الموارد",
"Last Result": "اخر نتيجة",
"Create your admin account": "إنشاء حساب المسؤول الخاص بك",
"Repeat Password": "اعد كلمة السر",
"Import Backup": "استيراد النسخ الاحتياطي",
"Export Backup": "النسخ الاحتياطي تصدير",
"Export": "يصدّر",
"Import": "يستورد",
"respTime": "resp. الوقت (MS)",
"notAvailableShort": "ن/أ",
"Default enabled": "التمكين الافتراضي",
"Apply on all existing monitors": "تنطبق على جميع الشاشات الحالية",
"Create": "خلق",
"Clear Data": "امسح البيانات",
"Events": "الأحداث",
"Heartbeats": "نبضات القلب",
"Auto Get": "الحصول على السيارات",
"backupDescription": "يمكنك النسخ الاحتياطي لجميع الشاشات والإشعارات في ملف JSON.",
"backupDescription2": "ملحوظة",
"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": "لون القرنفل",
"Custom": "العادة",
"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": "الذهاب إلى لوحة القيادة",
"Status Page": "صفحة الحالة",
"Status Pages": "صفحات الحالة",
"defaultNotificationName": "تنبيه {الإخطار} ({number})",
"here": "هنا",
"Required": "مطلوب",
"telegram": "برقية",
"ZohoCliq": "Zohocliq",
"Bot Token": "رمز الروبوت",
"wayToGetTelegramToken": "يمكنك الحصول على رمز من {0}.",
"Chat ID": "معرف الدردشة",
"supportTelegramChatID": "دعم الدردشة المباشرة / معرف الدردشة للقناة",
"wayToGetTelegramChatID": "يمكنك الحصول على معرف الدردشة الخاص بك عن طريق إرسال رسالة إلى الروبوت والانتقال إلى عنوان URL هذا لعرض Chat_id",
"YOUR BOT TOKEN HERE": "رمز الروبوت الخاص بك هنا",
"chatIDNotFound": "لم يتم العثور على معرف الدردشة ؛ الرجاء إرسال رسالة إلى هذا الروبوت أولاً",
"webhook": "webhook",
"Post URL": "بعد عنوان URL",
"Content Type": "نوع المحتوى",
"webhookJsonDesc": "{0} مفيد لأي خوادم HTTP الحديثة مثل Express.js",
"webhookFormDataDesc": "{multipart} مفيد لـ PHP. سيحتاج JSON إلى تحليل {decodefunction}",
"webhookAdditionalHeadersTitle": "رؤوس إضافية",
"webhookAdditionalHeadersDesc": "يحدد رؤوس إضافية مرسلة مع webhook.",
"smtp": "البريد الإلكتروني (SMTP)",
"secureOptionNone": "لا شيء / startTls (25 587)",
"secureOptionTLS": "TLS (465)",
"Ignore TLS Error": "تجاهل خطأ TLS",
"From Email": "من البريد الإلكترونى",
"emailCustomSubject": "موضوع مخصص",
"To Email": "للبريد الإلكتروني",
"smtpCC": "نسخة",
"smtpBCC": "BCC",
"discord": "خلاف",
"Discord Webhook URL": "Discord Webhook URL",
"wayToGetDiscordURL": "يمكنك الحصول على هذا عن طريق الانتقال إلى إعدادات الخادم -> التكامل -> إنشاء WebHook",
"Bot Display Name": "اسم عرض الروبوت",
"Prefix Custom Message": "بادئة رسالة مخصصة",
"Hello @everyone is...": "مرحبًا {'@'} الجميع ...",
"teams": "فرق Microsoft",
"Webhook URL": "Webhook URL",
"wayToGetTeamsURL": "يمكنك معرفة كيفية إنشاء عنوان URL webhook {0}.",
"wayToGetZohoCliqURL": "يمكنك معرفة كيفية إنشاء عنوان URL webhook {0}.",
"signal": "الإشارة",
"Number": "رقم",
"Recipients": "المستلمين",
"needSignalAPI": "تحتاج إلى وجود عميل إشارة مع REST API.",
"wayToCheckSignalURL": "يمكنك التحقق من عنوان URL هذا لعرض كيفية إعداد واحد",
"signalImportant": "مهم",
"gotify": "gotify",
"Application Token": "رمز التطبيق",
"Server URL": "عنوان URL الخادم",
"Priority": "أولوية",
"slack": "تثاقل",
"Icon Emoji": "أيقونة الرموز التعبيرية",
"Channel Name": "اسم القناة",
"Uptime Kuma URL": "UPTIME KUMA URL",
"aboutWebhooks": "مزيد من المعلومات حول Webhooks ON",
"aboutChannelName": "أدخل اسم القناة في حقل اسم القناة {0} إذا كنت تريد تجاوز قناة WebHook. السابق",
"aboutKumaURL": "إذا تركت حقل URL في وقت التشغيل KUMA فارغًا ، فسيتم افتراضيًا إلى صفحة GitHub Project.",
"emojiCheatSheet": "ورقة الغش في الرموز التعبيرية",
"rocket.chat": "صاروخ",
"pushover": "مهمة سهلة",
"pushy": "انتهازي",
"PushByTechulus": "دفع بواسطة Techulus",
"octopush": "أوكتوبوش",
"promosms": "الترويجيات",
"clicksendsms": "نقرات SMS",
"lunasea": "لوناسيا",
"apprise": "إبلاغ (دعم 50+ خدمات الإخطار)",
"GoogleChat": "دردشة Google",
"pushbullet": "حماس",
"Kook": "كووك",
"wayToGetKookBotToken": "قم بإنشاء تطبيق واحصل على رمز الروبوت الخاص بك على {0}",
"wayToGetKookGuildID": "قم بتشغيل 'وضع المطور' في إعداد Kook وانقر بزر الماوس الأيمن على النقابة للحصول على معرفه",
"Guild ID": "معرف النقابة",
"line": "خط",
"mattermost": "المادة",
"User Key": "مفتاح المستخدم",
"Device": "جهاز",
"Message Title": "عنوان الرسالة",
"Notification Sound": "صوت الإشعار",
"More info on": "مزيد من المعلومات حول",
"pushoverDesc1": "أولوية الطوارئ (2) لها مهلة افتراضية 30 ثانية بين إعادة المحاولة وستنتهي صلاحيتها بعد ساعة واحدة.",
"pushoverDesc2": "إذا كنت ترغب في إرسال إشعارات إلى أجهزة مختلفة ، قم بملء حقل الجهاز.",
"SMS Type": "نوع الرسائل القصيرة",
"octopushTypePremium": "قسط (سريع - موصى به للتنبيه)",
"octopushTypeLowCost": "التكلفة المنخفضة (بطيئة - تم حظرها أحيانًا بواسطة المشغل)",
"checkPrice": "تحقق من الأسعار {0}",
"apiCredentials": "بيانات اعتماد API",
"octopushLegacyHint": "هل تستخدم الإصدار القديم من Octopush (2011-2020) أو الإصدار الجديد؟",
"Check octopush prices": "تحقق من أسعار Octopush {0}.",
"octopushPhoneNumber": "رقم الهاتف (تنسيق intl على سبيل المثال",
"octopushSMSSender": "اسم مرسل الرسائل القصيرة",
"LunaSea Device ID": "معرف جهاز Lunasea",
"Apprise URL": "إبلاغ عنوان URL",
"Example": "مثال",
"Read more:": "{0} :قراءة المزيد",
"Status:": "{0} :حالة",
"Read more": "قراءة المزيد",
"appriseInstalled": "تم تثبيت Prosise.",
"appriseNotInstalled": "الإبرام غير مثبت. {0}",
"Access Token": "رمز وصول",
"Channel access token": "قناة الوصول إلى الرمز",
"Line Developers Console": "تحكم المطورين",
"lineDevConsoleTo": "وحدة المطورين Line Console - {0}",
"Basic Settings": "الإعدادات الأساسية",
"User ID": "معرف المستخدم",
"Messaging API": "واجهة برمجة تطبيقات المراسلة",
"wayToGetLineChannelToken": "قم أولاً بالوصول إلى {0} إنشاء مزود وقناة (واجهة برمجة تطبيقات المراسلة) ، ثم يمكنك الحصول على رمز الوصول إلى القناة ومعرف المستخدم من عناصر القائمة المذكورة أعلاه.",
"Icon URL": "url url icon",
"aboutIconURL": "يمكنك توفير رابط لصورة في \"Icon URL\" لتجاوز صورة الملف الشخصي الافتراضي. لن يتم استخدامه إذا تم تعيين رمز رمز رمز.",
"aboutMattermostChannelName": "يمكنك تجاوز القناة الافتراضية التي تنشرها WebHook من خلال إدخال اسم القناة في \"Channel Name\" الحقل. يجب تمكين هذا في إعدادات Webhook Mattern. السابق",
"matrix": "مصفوفة",
"promosmsTypeEco": "SMS Eco - رخيصة ولكن بطيئة وغالبًا ما تكون محملة. يقتصر فقط على المستفيدين البولنديين.",
"promosmsTypeFlash": "SMS Flash - سيتم عرض الرسالة تلقائيًا على جهاز المستلم. يقتصر فقط على المستفيدين البولنديين.",
"promosmsTypeFull": "SMS Full - Tier Premium SMS يمكنك استخدام اسم المرسل الخاص بك (تحتاج إلى تسجيل الاسم أولاً). موثوقة للتنبيهات.",
"promosmsTypeSpeed": "سرعة الرسائل القصيرة - أولوية قصوى في النظام. سريع وموثوق للغاية ولكنه مكلف (حوالي مرتين من الرسائل القصيرة السعر الكامل).",
"promosmsPhoneNumber": "رقم الهاتف (للمستلم البولندي ، يمكنك تخطي رموز المنطقة)",
"promosmsSMSSender": "اسم مرسل الرسائل القصيرة",
"promosmsAllowLongSMS": "السماح الرسائل القصيرة الطويلة",
"Feishu WebHookUrl": "Feishu Webhookurl",
"matrixHomeserverURL": "عنوان URL HomeServer (مع HTTP (S)",
"Internal Room Id": "معرف الغرفة الداخلية",
"matrixDesc1": "يمكنك العثور على معرف الغرفة الداخلي من خلال البحث في القسم المتقدم من إعدادات الغرفة في عميل Matrix الخاص بك. يجب أن تبدو مثل! QMDRCPUIFLWSFJXYE6",
"matrixDesc2": "يوصى بشدة بإنشاء مستخدم جديد ولا تستخدم رمز الوصول إلى مستخدم Matrix الخاص بك لأنه سيتيح الوصول الكامل إلى حسابك وجميع الغرف التي انضمت إليها. بدلاً من ذلك ، قم بإنشاء مستخدم جديد ودعوته فقط إلى الغرفة التي تريد تلقيها الإشعار فيها. يمكنك الحصول على رمز الوصول عن طريق تشغيل {0}",
"Method": "طريقة",
"Body": "الجسم",
"Headers": "الرؤوس",
"PushUrl": "دفع عنوان URL",
"HeadersInvalidFormat": "رؤوس الطلبات غير صالحة JSON",
"BodyInvalidFormat": "هيئة الطلب غير صالحة JSON",
"Monitor History": "مراقبة التاريخ",
"clearDataOlderThan": "الحفاظ على بيانات سجل المراقبة للأيام {0}.",
"PasswordsDoNotMatch": "كلمة المرور غير مطابقة.",
"records": "السجلات",
"One record": "سجل واحد",
"steamApiKeyDescription": "لمراقبة خادم لعبة Steam ، تحتاج إلى مفتاح Steam Web-API. يمكنك تسجيل مفتاح API الخاص بك هنا",
"Current User": "المستخدم الحالي",
"topic": "عنوان",
"topicExplanation": "موضوع MQTT لرصد",
"successMessage": "نجاح رسالة",
"successMessageExplanation": "رسالة MQTT التي ستعتبر نجاحًا",
"recent": "الأخيرة",
"Done": "فعله",
"Info": "معلومات",
"Security": "حماية",
"Steam API Key": "مفتاح API Steam",
"Shrink Database": "تقلص قاعدة البيانات",
"Pick a RR-Type...": "اختر نوع RR ...",
"Pick Accepted Status Codes...": "اختيار رموز الحالة المقبولة ...",
"Default": "تقصير",
"HTTP Options": "خيارات HTTP",
"Create Incident": "إنشاء حادث",
"Title": "لقب",
"Content": "المحتوى",
"Style": "أسلوب",
"info": "معلومات",
"warning": "تحذير",
"danger": "خطر",
"error": "خطأ",
"critical": "شديد الأهمية",
"primary": "الأولية",
"light": "نور",
"dark": "ظلام",
"Post": "بريد",
"Please input title and content": "الرجاء إدخال العنوان والمحتوى",
"Created": "مخلوق",
"Last Updated": "التحديث الاخير",
"Unpin": "إلغاء",
"Switch to Light Theme": "التبديل إلى موضوع الضوء",
"Switch to Dark Theme": "التبديل إلى موضوع الظلام",
"Show Tags": "أضهر العلامات",
"Hide Tags": "إخفاء العلامات",
"Description": "وصف",
"No monitors available.": "لا شاشات المتاحة.",
"Add one": "أضف واحدا",
"No Monitors": "لا شاشات",
"Untitled Group": "مجموعة بلا عنوان",
"Services": "خدمات",
"Discard": "تجاهل",
"Cancel": "يلغي",
"Powered by": "مشغل بواسطة",
"shrinkDatabaseDescription": "تشغيل فراغ قاعدة البيانات لـ SQLite. إذا تم إنشاء قاعدة البيانات الخاصة بك بعد تمكين 1.10.0 AUTO_VACUUM بالفعل ولا يلزم هذا الإجراء.",
"serwersms": "Serwersms.pl",
"serwersmsAPIUser": "اسم مستخدم API (بما في ذلك بادئة WebAPI_)",
"serwersmsAPIPassword": "كلمة مرور API",
"serwersmsPhoneNumber": "رقم الهاتف",
"serwersmsSenderName": "اسم مرسل الرسائل القصيرة (مسجل عبر بوابة العملاء)",
"smseagle": "smseagle",
"smseagleTo": "أرقام الهواتف)",
"smseagleGroup": "اسم مجموعة كتب الهاتف (S)",
"smseagleContact": "كتاب الاتصال اسم (S)",
"smseagleRecipientType": "نوع المستلم",
"smseagleRecipient": "المتلقي (المتلقيين) (يجب فصل المتعددة مع فاصلة)",
"smseagleToken": "API وصول الرمز المميز",
"smseagleUrl": "عنوان URL لجهاز SMSEGLE الخاص بك",
"smseagleEncoding": "إرسال Unicode",
"smseaglePriority": "أولوية الرسالة (0-9 افتراضي = 0)",
"stackfield": "Stackfield",
"Customize": "يعدل أو يكيف",
"Custom Footer": "تذييل مخصص",
"Custom CSS": "لغة تنسيق ويب حسب الطلب",
"smtpDkimSettings": "إعدادات DKIM",
"smtpDkimDesc": "يرجى الرجوع إلى Nodemailer dkim {0} للاستخدام.",
"documentation": "توثيق",
"smtpDkimDomain": "اسم النطاق",
"smtpDkimKeySelector": "المحدد الرئيسي",
"smtpDkimPrivateKey": "مفتاح سري",
"smtpDkimHashAlgo": "خوارزمية التجزئة (اختياري)",
"smtpDkimheaderFieldNames": "مفاتيح الرأس للتوقيع (اختياري)",
"smtpDkimskipFields": "مفاتيح الرأس لا توقيع (اختياري)",
"wayToGetPagerDutyKey": "يمكنك الحصول على هذا عن طريق الانتقال إلى الخدمة -> دليل الخدمة -> (حدد خدمة) -> تكامل -> إضافة التكامل. هنا يمكنك البحث عن \"Events API V2\". مزيد من المعلومات {0}",
"Integration Key": "مفتاح التكامل",
"Integration URL": "URL تكامل",
"Auto resolve or acknowledged": "حل السيارات أو الاعتراف به",
"do nothing": "لا تفعل شيئا",
"auto acknowledged": "اعترف السيارات",
"auto resolve": "عزم السيارات",
"gorush": "جورش",
"alerta": "أليتا",
"alertaApiEndpoint": "نقطة نهاية API",
"alertaEnvironment": "بيئة",
"alertaApiKey": "مفتاح API",
"alertaAlertState": "حالة التنبيه",
"alertaRecoverState": "استعادة الدولة",
"deleteStatusPageMsg": "هل أنت متأكد من حذف صفحة الحالة هذه؟",
"Proxies": "وكلاء",
"default": "تقصير",
"enabled": "تمكين",
"setAsDefault": "تعيين كافتراضي",
"deleteProxyMsg": "هل أنت متأكد من حذف هذا الوكيل لجميع الشاشات؟",
"proxyDescription": "يجب تعيين الوكلاء إلى شاشة للعمل.",
"enableProxyDescription": "لن يؤثر هذا الوكيل على طلبات الشاشة حتى يتم تنشيطه. يمكنك التحكم مؤقتًا في تعطيل الوكيل من جميع الشاشات حسب حالة التنشيط.",
"setAsDefaultProxyDescription": "سيتم تمكين هذا الوكيل افتراضيًا للشاشات الجديدة. لا يزال بإمكانك تعطيل الوكيل بشكل منفصل لكل شاشة.",
"Certificate Chain": "سلسلة الشهادة",
"Valid": "صالح",
"Invalid": "غير صالح",
"AccessKeyId": "معرف AccessKey",
"SecretAccessKey": "Accesskey Secret",
"PhoneNumbers": "أرقام الهواتف",
"TemplateCode": "TemplateCode",
"SignName": "اسم تسجيل الدخول",
"Sms template must contain parameters: ": "يجب أن يحتوي قالب الرسائل القصيرة على معلمات:",
"Bark Endpoint": "نقطة نهاية اللحاء",
"Bark Group": "مجموعة اللحاء",
"Bark Sound": "صوت اللحاء",
"WebHookUrl": "webhookurl",
"SecretKey": "Secretkey",
"For safety, must use secret key": "للسلامة يجب استخدام المفتاح السري",
"Device Token": "رمز الجهاز",
"Platform": "منصة",
"iOS": "iOS",
"Android": "ذكري المظهر",
"Huawei": "هواوي",
"High": "عالٍ",
"Retry": "إعادة المحاولة",
"Topic": "عنوان",
"WeCom Bot Key": "WECOM BOT KEY",
"Setup Proxy": "وكيل الإعداد",
"Proxy Protocol": "بروتوكول الوكيل",
"Proxy Server": "مخدم بروكسي",
"Proxy server has authentication": "خادم الوكيل لديه مصادقة",
"User": "المستعمل",
"Installed": "المثبتة",
"Not installed": "غير مثبت",
"Running": "جري",
"Not running": "لا يعمل",
"Remove Token": "إزالة الرمز المميز",
"Start": "بداية",
"Stop": "قف",
"Uptime Kuma": "وقت التشغيل كوما",
"Add New Status Page": "أضف صفحة حالة جديدة",
"Slug": "سبيكة",
"Accept characters": "قبول الشخصيات",
"startOrEndWithOnly": "ابدأ أو ينتهي بـ {0} فقط",
"No consecutive dashes": "لا شرطات متتالية",
"Next": "التالي",
"The slug is already taken. Please choose another slug.": "تم أخذ سبيكة بالفعل. الرجاء اختيار سبيكة أخرى.",
"No Proxy": "لا الوكيل",
"Authentication": "المصادقة",
"HTTP Basic Auth": "HTTP الأساسي Auth",
"New Status Page": "صفحة حالة جديدة",
"Page Not Found": "الصفحة غير موجودة",
"Reverse Proxy": "وكيل عكسي",
"Backup": "دعم",
"About": "عن",
"wayToGetCloudflaredURL": "(قم بتنزيل CloudFlared من {0})",
"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. هل أنت متأكد تريد إيقافها؟ اكتب كلمة المرور الحالية لتأكيدها.",
"HTTP Headers": "رؤوس HTTP",
"Trust Proxy": "الوكيل الثقة",
"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": "الوكيل",
"Date Created": "تاريخ الإنشاء",
"HomeAssistant": "مساعد المنزل",
"onebotHttpAddress": "OneBot HTTP عنوان",
"onebotMessageType": "نوع رسالة OneBot",
"onebotGroupMessage": "مجموعة",
"onebotPrivateMessage": "خاص",
"onebotUserOrGroupId": "معرف المجموعة/المستخدم",
"onebotSafetyTips": "للسلامة يجب ضبط الرمز المميز للوصول",
"PushDeer Key": "مفتاح PushDeer",
"Footer Text": "نص تذييل",
"Show Powered By": "عرض مدعوم من قبل",
"Domain Names": "أسماء المجال",
"signedInDisp": "وقعت في {0}",
"signedInDispDisabled": "معاق المصادقة.",
"RadiusSecret": "سر نصف القطر",
"RadiusSecretDescription": "السر المشترك بين العميل والخادم",
"RadiusCalledStationId": "يسمى معرف المحطة",
"RadiusCalledStationIdDescription": "معرف الجهاز المتصل",
"RadiusCallingStationId": "معرف محطة الاتصال",
"RadiusCallingStationIdDescription": "معرف جهاز الاتصال",
"Certificate Expiry Notification": "إشعار انتهاء الصلاحية",
"API Username": "اسم المستخدم API",
"API Key": "مفتاح API",
"Recipient Number": "رقم المستلم",
"From Name/Number": "من الاسم/الرقم",
"Leave blank to use a shared sender number.": "اترك فارغًا لاستخدام رقم المرسل المشترك.",
"Octopush API Version": "إصدار Octopush API",
"Legacy Octopush-DM": "Legacy Octopush-DM",
"endpoint": "نقطة النهاية",
"octopushAPIKey": "\"API key\" from HTTP API بيانات اعتماد في لوحة التحكم",
"octopushLogin": "\"Login\" من بيانات اعتماد API HTTP في لوحة التحكم",
"promosmsLogin": "اسم تسجيل الدخول API",
"promosmsPassword": "كلمة مرور API",
"pushoversounds pushover": "سداد (افتراضي)",
"pushoversounds bike": "دراجة هوائية",
"pushoversounds bugle": "بوق",
"pushoversounds cashregister": "ماكينة تسجيل المدفوعات النقدية",
"pushoversounds classical": "كلاسيكي",
"pushoversounds cosmic": "كونية",
"pushoversounds falling": "هبوط",
"pushoversounds gamelan": "Gamelan",
"pushoversounds incoming": "واردة",
"pushoversounds intermission": "استراحة",
"pushoversounds magic": "سحر",
"pushoversounds mechanical": "ميكانيكي",
"pushoversounds pianobar": "شريط البيانو",
"pushoversounds siren": "صفارة إنذار",
"pushoversounds spacealarm": "إنذار الفضاء",
"pushoversounds tugboat": "قارب السحب",
"pushoversounds alien": "إنذار أجنبي (طويل)",
"pushoversounds climb": "تسلق (طويل)",
"pushoversounds persistent": "مستمر (طويل)",
"pushoversounds echo": "صدى مهووس (طويل)",
"pushoversounds updown": "صعودا (طويلة)",
"pushoversounds vibrate": "يهتز فقط",
"pushoversounds none": "لا شيء (صامت)",
"pushyAPIKey": "مفتاح API السري",
"pushyToken": "رمز الجهاز",
"Show update if available": "عرض التحديث إذا كان ذلك متاحًا",
"Also check beta release": "تحقق أيضًا من الإصدار التجريبي",
"Using a Reverse Proxy?": "باستخدام وكيل عكسي؟",
"Check how to config it for WebSocket": "تحقق من كيفية تكوينه لـ WebSocket",
"Steam Game Server": "خادم لعبة البخار",
"Most likely causes": "الأسباب المرجحة",
"The resource is no longer available.": "لم يعد المورد متاحًا.",
"There might be a typing error in the address.": "قد يكون هناك خطأ مطبعي في العنوان.",
"What you can try": "ماذا تستطيع أن تجرب",
"Retype the address.": "اعد كتابة العنوان.",
"Go back to the previous page.": "عد للصفحة السابقة.",
"Coming Soon": "قريبا",
"wayToGetClickSendSMSToken": "يمكنك الحصول على اسم مستخدم API ومفتاح API من {0}.",
"Connection String": "سلسلة الاتصال",
"Query": "استفسار",
"settingsCertificateExpiry": "شهادة TLS انتهاء الصلاحية",
"certificationExpiryDescription": "شاشات HTTPS تضيء عندما تنتهي شهادة TLS في",
"Setup Docker Host": "إعداد مضيف Docker",
"Connection Type": "نوع الاتصال",
"Docker Daemon": "Docker Daemon",
"deleteDockerHostMsg": "هل أنت متأكد من حذف مضيف Docker لجميع الشاشات؟",
"socket": "قابس كهرباء",
"tcp": "TCP / HTTP",
"Docker Container": "حاوية Docker",
"Container Name / ID": "اسم الحاوية / معرف",
"Docker Host": "مضيف Docker",
"Docker Hosts": "مضيفي Docker",
"ntfy Topic": "موضوع ntfy",
"Domain": "اِختِصاص",
"Workstation": "محطة العمل",
"disableCloudflaredNoAuthMsg": "أنت في وضع مصادقة لا توجد كلمة مرور غير مطلوبة.",
"trustProxyDescription": "الثقة 'x-forward-*'. إذا كنت ترغب في الحصول على IP العميل الصحيح وكوما في الوقت المناسب مثل Nginx أو Apache ، فيجب عليك تمكين ذلك.",
"wayToGetLineNotifyToken": "يمكنك الحصول على رمز الوصول من {0}",
"Examples": "أمثلة",
"Home Assistant URL": "Home Assistant URL",
"Long-Lived Access Token": "الرمز المميز للوصول منذ فترة طويلة",
"Long-Lived Access Token can be created by clicking on your profile name (bottom left) and scrolling to the bottom then click Create Token. ": "يمكن إنشاء رمز الوصول منذ فترة طويلة عن طريق النقر على اسم ملف التعريف الخاص بك (أسفل اليسار) والتمرير إلى الأسفل ثم انقر فوق إنشاء الرمز المميز.",
"Notification Service": "خدمة الإخطار",
"default: notify all devices": "الافتراضي: إخطار جميع الأجهزة",
"A list of Notification Services can be found in Home Assistant under \"Developer Tools > Services\" search for \"notification\" to find your device/phone name.": "يمكن العثور على قائمة بخدمات الإخطار في المساعد المنزلي ضمن \"Developer Tools > Services\" ابحث عن \"notification\" للعثور على اسم جهازك/هاتفك.",
"Automations can optionally be triggered in Home Assistant": "يمكن أن يتم تشغيل الأتمتة اختياريًا في مساعد المنزل",
"Trigger type": "نوع الزناد",
"Event type": "نوع الحدث",
"Event data": "بيانات الحدث",
"Then choose an action, for example switch the scene to where an RGB light is red.": "ثم اختر إجراءً على سبيل المثال قم بتبديل المشهد إلى حيث يكون ضوء RGB أحمر.",
"Frontend Version": "إصدار الواجهة الأمامية",
"Frontend Version do not match backend version!": "إصدار Frontend لا يتطابق مع الإصدار الخلفي!",
"Base URL": "عنوان URL الأساسي",
"goAlertInfo": "الهدف هو تطبيق مفتوح المصدر لجدولة الجدولة التلقائية والإشعارات (مثل الرسائل القصيرة أو المكالمات الصوتية). إشراك الشخص المناسب تلقائيًا بالطريقة الصحيحة وفي الوقت المناسب! {0}",
"goAlertIntegrationKeyInfo": "احصل على مفتاح تكامل API العام للخدمة في هذا التنسيق \"aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee\" عادةً قيمة المعلمة الرمزية لعنوان url المنسق.",
"goAlert": "المرمى",
"backupOutdatedWarning": "إهمال",
"backupRecommend": "يرجى النسخ الاحتياطي لحجم الصوت أو مجلد البيانات (./data/) مباشرة بدلاً من ذلك.",
"Optional": "اختياري",
"squadcast": "القاء فريقي",
"SendKey": "Sendkey",
"SMSManager API Docs": "مستندات SMSManager API",
"Gateway Type": "نوع البوابة",
"SMSManager": "smsmanager",
"You can divide numbers with": "يمكنك تقسيم الأرقام مع",
"or": "أو",
"recurringInterval": "فترة",
"Recurring": "يتكرر",
"strategyManual": "نشط/غير نشط يدويًا",
"warningTimezone": "إنه يستخدم المنطقة الزمنية للخادم",
"weekdayShortMon": "الاثنين",
"weekdayShortTue": "الثلاثاء",
"weekdayShortWed": "تزوج",
"weekdayShortThu": "الخميس",
"weekdayShortFri": "الجمعة",
"weekdayShortSat": "جلس",
"weekdayShortSun": "شمس",
"dayOfWeek": "يوم من الأسبوع",
"dayOfMonth": "يوم من الشهر",
"lastDay": "بالأمس",
"lastDay1": "آخر يوم من الشهر",
"lastDay2": "الثاني في اليوم الأخير من الشهر",
"lastDay3": "الثالث في اليوم الأخير من الشهر",
"lastDay4": "الرابع في اليوم الأخير من الشهر",
"No Maintenance": "لا صيانة",
"pauseMaintenanceMsg": "هل أنت متأكد من أن تتوقف مؤقتًا؟",
"maintenanceStatus-under-maintenance": "تحت الصيانة",
"maintenanceStatus-inactive": "غير نشط",
"maintenanceStatus-scheduled": "المقرر",
"maintenanceStatus-ended": "انتهى",
"maintenanceStatus-unknown": "مجهول",
"Display Timezone": "عرض المنطقة الزمنية",
"Server Timezone": "المنطقة الزمنية الخادم",
"statusPageMaintenanceEndDate": "نهاية",
"IconUrl": "url url icon",
"Enable DNS Cache": "تمكين ذاكرة التخزين المؤقت DNS",
"Enable": "يُمكَِن",
"Disable": "إبطال",
"dnsCacheDescription": "قد لا يعمل في بعض بيئات IPv6 تعطيله إذا واجهت أي مشكلات.",
"Single Maintenance Window": "نافذة صيانة واحدة",
"Maintenance Time Window of a Day": "نافذة وقت الصيانة لليوم",
"Effective Date Range": "نطاق التاريخ السريع",
"Schedule Maintenance": "جدولة الصيانة",
"Date and Time": "التاريخ و الوقت",
"DateTime Range": "نطاق DateTime",
"Strategy": "إستراتيجية",
"Free Mobile User Identifier": "معرف مستخدم الهاتف المحمول المجاني",
"Free Mobile API Key": "مفتاح واجهة برمجة تطبيقات مجانية للهاتف المحمول",
"Enable TLS": "تمكين TLS",
"Proto Service Name": "اسم خدمة البروتو",
"Proto Method": "طريقة البروتو",
"Proto Content": "محتوى proto",
"Economy": "اقتصاد",
"Lowcost": "تكلفة منخفضة",
"high": "عالي",
"General Monitor Type": "نوع الشاشة العامة",
"Passive Monitor Type": "نوع الشاشة السلبي",
"Specific Monitor Type": "نوع شاشة محدد",
"dataRetentionTimeError": "يجب أن تكون فترة الاستبقاء 0 أو أكبر",
"infiniteRetention": "ضبط على 0 للاحتفاظ لا نهائي.",
"confirmDeleteTagMsg": "هل أنت متأكد من أنك تريد حذف هذه العلامة؟ لن يتم حذف الشاشات المرتبطة بهذه العلامة."
}

@ -0,0 +1,695 @@
{
"languageName": "Български",
"checkEverySecond": "Ще се извършва на всеки {0} секунди",
"retryCheckEverySecond": "Ще се извършва на всеки {0} секунди",
"retriesDescription": "Максимален брой опити преди маркиране на услугата като недостъпна и изпращане на известие",
"ignoreTLSError": "Игнорирай TLS/SSL грешки за HTTPS уеб сайтове",
"upsideDownModeDescription": "Обръща статуса от достъпен на недостъпен. Ако услугата е достъпна, ще се вижда като НЕДОСТЪПНА.",
"maxRedirectDescription": "Максимален брой пренасочвания, които да бъдат следвани. Въведете 0 за да изключите пренасочване.",
"acceptedStatusCodesDescription": "Изберете статус кодове, които да се считат за успешен отговор.",
"passwordNotMatchMsg": "Повторената парола не съвпада.",
"notificationDescription": "Моля, задайте известието към монитор(и), за да функционира.",
"keywordDescription": "Търси ключова дума в чист HTML или JSON отговор - чувствителна е към регистъра.",
"pauseDashboardHome": "Пауза",
"deleteMonitorMsg": "Наистина ли желаете да изтриете този монитор?",
"deleteNotificationMsg": "Наистина ли желаете да изтриете това известие за всички монитори?",
"resolverserverDescription": "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.": "Вал. сертификат",
"day": "ден | дни",
"-day": "-дни",
"hour": "час",
"-hour": "-часa",
"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": "Активирай удостоверяване",
"disableauth.message1": "Сигурни ли сте, че желаете да <strong>изключите удостоверяването</strong>?",
"disableauth.message2": "Използва се в случаите, когато <strong>има настроен алтернативен метод за удостоверяване</strong> преди Uptime Kuma, например Cloudflare Access, Authelia или друг механизъм за удостоверяване.",
"Please use this option carefully!": "Моля, използвайте с повишено внимание!",
"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": "Към Таблото",
"telegram": "Telegram",
"webhook": "Уеб кука",
"smtp": "Имейл (SMTP)",
"discord": "Discord",
"teams": "Microsoft Teams",
"signal": "Signal",
"gotify": "Gotify",
"slack": "Slack",
"rocket.chat": "Rocket.chat",
"pushover": "Pushover",
"pushy": "Pushy",
"octopush": "Octopush",
"promosms": "PromoSMS",
"lunasea": "LunaSea",
"apprise": "Apprise (Поддържа 50+ услуги за известяване)",
"pushbullet": "Pushbullet",
"line": "Line Messenger",
"mattermost": "Mattermost",
"Status Page": "Статус страница",
"Status Pages": "Статус страници",
"Primary Base URL": "Основен базов URL адрес",
"Push URL": "Генериран Push URL адрес",
"needPushEvery": "Необходимо е да извършвате заявка към този URL адрес на всеки {0} секунди.",
"pushOptionalParams": "Допълнителни, но не задължителни параметри: {0}",
"defaultNotificationName": "Моето {notification} известие ({number})",
"here": "тук",
"Required": "Задължително поле",
"Bot Token": "Бот токен",
"wayToGetTelegramToken": "Можете да получите токен от {0}.",
"Chat ID": "Чат ID",
"supportTelegramChatID": "Поддържа Direct Chat / Group / Channel's Chat ID",
"wayToGetTelegramChatID": "Можете да получите вашето чат ID, като изпратите съобщение на бота, след което е нужно да посетите този URL адрес за да го видите:",
"YOUR BOT TOKEN HERE": "ВАШИЯТ БОТ ТОКЕН ТУК",
"chatIDNotFound": "Чат ID не е намерено. Моля, първо изпратете съобщение до този бот",
"Post URL": "Post URL адрес",
"Content Type": "Тип съдържание",
"webhookJsonDesc": "{0} е подходящ за всички съвременни http сървъри, като например express.js",
"webhookFormDataDesc": "{multipart} е подходящ за PHP, нужно е да анализирате json чрез {decodeFunction}",
"secureOptionNone": "Няма (25) / STARTTLS (587)",
"secureOptionTLS": "TLS (465)",
"Ignore TLS Error": "Игнорирай TLS грешките",
"From Email": "От имейл адрес",
"emailCustomSubject": "Модифициране на тема",
"To Email": "Получател имейл адрес",
"smtpCC": "Явно копие до имейл адрес:",
"smtpBCC": "Скрито копие до имейл адрес:",
"Discord Webhook URL": "Discord URL адрес на уеб кука",
"wayToGetDiscordURL": "Може да създадете, от меню \"Настройки на сървъра\" -> \"Интеграции\" -> \"Уеб куки\" -> \"Нова уеб кука\"",
"Bot Display Name": "Име на бота, което да се показва",
"Prefix Custom Message": "Модифицирано обръщение",
"Hello @everyone is...": "Здравейте, {'@'}everyone е…",
"Webhook URL": "Уеб кука URL адрес",
"wayToGetTeamsURL": "Можете да научите как се създава URL адрес за уеб кука {0}.",
"Number": "Номер",
"Recipients": "Получатели",
"needSignalAPI": "Необходимо е да разполагате със Signal клиент с REST API.",
"wayToCheckSignalURL": "Може да посетите този URL адрес, ако се нуждаете от помощ при настройването:",
"signalImportant": "ВАЖНО: Не може да смесвате \"Групи\" и \"Номера\" в поле \"Получатели\"!",
"Application Token": "Токен код за приложението",
"Server URL": "URL адрес на сървъра",
"Priority": "Приоритет",
"Icon Emoji": "Иконка Емотикон",
"Channel Name": "Канал име",
"Uptime Kuma URL": "Uptime Kuma URL адрес",
"aboutWebhooks": "Повече информация относно уеб куки на: {0}",
"aboutChannelName": "Въведете името на канала в поле {0} \"Канал име\", ако желаете да заобиколите канала от уеб куката. Например: #other-channel",
"aboutKumaURL": "Ако оставите празно полето \"Uptime Kuma URL адрес\", по подразбиране ще се използва GitHub страницата на проекта.",
"emojiCheatSheet": "Подсказки за емотикони: {0}",
"User Key": "Потребителски ключ",
"Device": "Устройство",
"Message Title": "Заглавие на съобщението",
"Notification Sound": "Звуков сигнал",
"More info on:": "Повече информация на: {0}",
"pushoverDesc1": "Приоритет Спешно (2) по подразбиране изчаква 30 секунди между повторните опити и изтича след 1 час.",
"pushoverDesc2": "Ако желаете да изпратите известия до различни устройства, попълнете полето Устройство.",
"SMS Type": "SMS тип",
"octopushTypePremium": "Премиум (Бърз - препоръчителен в случай на тревога)",
"octopushTypeLowCost": "Евтин (Бавен - понякога бива блокиран от оператора)",
"checkPrice": "Тарифни планове на {0}:",
"octopushLegacyHint": "Дали използвате съвместима версия на Octopush (2011-2020) или нова версия?",
"Check octopush prices": "Тарифни планове на octopush {0}.",
"octopushPhoneNumber": "Телефонен номер (в международен формат, например: +33612345678) ",
"octopushSMSSender": "SMS подател Име: 3-11 знака - букви, цифри и интервал (a-zA-Z0-9)",
"LunaSea Device ID": "LunaSea ID на устройство",
"Apprise URL": "Apprise URL адрес",
"Example:": "Пример: {0}",
"Read more:": "Научете повече: {0}",
"Status:": "Статус: {0}",
"Read more": "Научете повече",
"appriseInstalled": "Apprise е инсталиран.",
"appriseNotInstalled": "Apprise не е инсталиран. {0}",
"Access Token": "Токен код за достъп",
"Channel access token": "Канал токен код",
"Line Developers Console": "Line - Конзола за разработчици",
"lineDevConsoleTo": "Line - Конзола за разработчици - {0}",
"Basic Settings": "Основни настройки",
"User ID": "Потребител ID",
"Messaging API": "API за съобщаване",
"wayToGetLineChannelToken": "Необходимо е първо да посетите {0}, за да създадете (Messaging API) за доставчик и канал, след което може да вземете токен кода за канал и потребителско ID от споменатите по-горе елементи на менюто.",
"Icon URL": "URL адрес за иконка",
"aboutIconURL": "Може да предоставите линк към картинка в поле \"URL Адрес за иконка\" за да отмените картинката на профила по подразбиране. Няма да се използва, ако вече сте настроили емотикон.",
"aboutMattermostChannelName": "Може да замените канала по подразбиране, към който публикува уеб куката, като въведете името на канала в полето \"Канал име\". Трябва да бъде активирано в настройките за уеб кука на Mattermost. Например: #other-channel",
"matrix": "Matrix",
"promosmsTypeEco": "SMS ECO - евтин, но бавен. Често е претоварен. Само за получатели от Полша.",
"promosmsTypeFlash": "SMS FLASH - Съобщението автоматично се показва на устройството на получателя. Само за получатели от Полша.",
"promosmsTypeFull": "SMS FULL - Високо ниво на SMS услуга. Може да използвате Вашето име като подател (Необходимо е първо да регистрирате името). Надежден метод за съобщения тип тревога.",
"promosmsTypeSpeed": "SMS SPEED - Най-висок приоритет в системата. Много бърза и надеждна, но същевременно скъпа услуга. (Около два пъти по-висока цена в сравнение с SMS FULL).",
"promosmsPhoneNumber": "Телефонен номер (за получатели от Полша, може да пропуснете въвеждането на код за населено място)",
"promosmsSMSSender": "SMS Подател име: Предварително регистрирано име или някое от имената по подразбиране: InfoSMS, SMS Info, MaxSMS, INFO, SMS",
"Feishu WebHookUrl": "Feishu URL адрес за уеб кука",
"matrixHomeserverURL": "Сървър URL адрес (започва с http(s):// и порт по желание)",
"Internal Room Id": "ID на вътрешна стая",
"matrixDesc1": "Може да намерите \"ID на вътрешна стая\" в разширените настройки на стаята във вашия Matrix клиент. Примерен изглед: !QMdRCpUIfLwsfjxye6:home.server.",
"matrixDesc2": "Силно препоръчваме да създадете НОВ потребител и да НЕ използвате токен кодът на вашия личен Matrix потребител, т.к. той позволява пълен достъп до вашия акаунт и всички стаи към които сте се присъединили. Вместо това създайте нов потребител и го поканете само в стаята, където желаете да получавате известията. Токен код за достъп ще получите изпълнявайки {0}",
"Method": "Метод",
"Body": "Съобщение",
"Headers": "Хедъри",
"PushUrl": "Push URL адрес",
"HeadersInvalidFormat": "Заявените хедъри не са валидни JSON: ",
"BodyInvalidFormat": "Заявеното съобщение не е валиден JSON: ",
"Monitor History": "История на мониторите",
"clearDataOlderThan": "Ще се съхранява за {0} дни.",
"records": "записа",
"One record": "Един запис",
"steamApiKeyDescription": "За да мониторирате Steam Gameserver се нуждаете от Steam Web-API ключ. Може да регистрирате Вашия API ключ тук: ",
"clicksendsms": "ClickSend SMS",
"apiCredentials": "API удостоверяване",
"PasswordsDoNotMatch": "Паролите не съвпадат.",
"Current User": "Текущ потребител",
"recent": "Скорошни",
"shrinkDatabaseDescription": "Инициира \"VACUUM\" за \"SQLite\" база данни. Ако Вашата база данни е създадена след версия 1.10.0, \"AUTO_VACUUM\" функцията е активна и това действие не е нужно.",
"Done": "Готово",
"Info": "Информация",
"Security": "Сигурност",
"Steam API Key": "Steam API ключ",
"Shrink Database": "Редуцирай базата данни",
"Pick a RR-Type...": "Изберете вида на ресурсния запис за мониториране…",
"Pick Accepted Status Codes...": "Изберете статус кодове, които да се считат за успешен отговор…",
"Default": "По подразбиране",
"HTTP Options": "HTTP Опции",
"Create Incident": "Създаване на инцидент",
"Title": "Заглавие",
"Content": "Съдържание",
"Style": "Стил",
"info": "информация",
"warning": "предупреждение",
"danger": "опасност",
"primary": "основен",
"light": "светъл",
"dark": "тъмен",
"Post": "Публикувай",
"Please input title and content": "Моля, въведете заглавие и съдържание",
"Created": "Създаден",
"Last Updated": "Последно обновен",
"Unpin": "Откачи",
"Switch to Light Theme": "Превключи към светла тема",
"Switch to Dark Theme": "Превключи към тъмна тема",
"Show Tags": "Покажи етикети",
"Hide Tags": "Скрий етикети",
"Description": "Описание",
"No monitors available.": "Няма налични монитори.",
"Add one": "Добави един",
"No Monitors": "Няма монитори",
"Untitled Group": "Група без заглавие",
"Services": "Услуги",
"Discard": "Отмени",
"Cancel": "Отмени",
"Powered by": "Създадено чрез",
"serwersms": "SerwerSMS.pl",
"serwersmsAPIUser": "API Потребителско име (вкл. webapi_ prefix)",
"serwersmsAPIPassword": "API Парола",
"serwersmsPhoneNumber": "Телефон номер",
"serwersmsSenderName": "SMS Подател име (регистриран през клиентския портал)",
"stackfield": "Stackfield",
"smtpDkimSettings": "DKIM Настройки",
"smtpDkimDesc": "Моля, вижте {0} на Nodemailer DKIM за инструкции.",
"documentation": "документацията",
"smtpDkimDomain": "Домейн",
"smtpDkimKeySelector": "Селектор на ключ",
"smtpDkimPrivateKey": "Частен ключ",
"smtpDkimHashAlgo": "Хеш алгоритъм (по желание)",
"smtpDkimheaderFieldNames": "Хедър ключове за подписване (по желание)",
"smtpDkimskipFields": "Хедър ключове, които да не се подписват (по желание)",
"PushByTechulus": "Push от Techulus",
"GoogleChat": "Google Chat (Само за работното пространство на Google)",
"gorush": "Gorush",
"alerta": "Alerta",
"alertaApiEndpoint": "Крайна точка на API",
"alertaEnvironment": "Среда",
"alertaApiKey": "API Ключ",
"alertaAlertState": "Състояние на тревога",
"alertaRecoverState": "Състояние на възстановяване",
"deleteStatusPageMsg": "Сигурни ли сте, че желаете да изтриете тази статус страница?",
"Proxies": "Прокси",
"default": "По подразбиране",
"enabled": "Активирано",
"setAsDefault": "Зададен по подразбиране",
"deleteProxyMsg": "Сигурни ли сте, че желаете да изтриете това прокси за всички монитори?",
"proxyDescription": "За да функционират трябва да бъдат зададени към монитор.",
"enableProxyDescription": "Това прокси няма да има ефект върху заявките за мониторинг, докато не бъде активирано. Може да контролирате временното деактивиране на проксито от всички монитори чрез статуса на активиране.",
"setAsDefaultProxyDescription": "Това прокси ще бъде активно по подразбиране за новите монитори. Може да го изключите по отделно за всеки един монитор.",
"Certificate Chain": "Верига на сертификата",
"Valid": "Валиден",
"Invalid": "Невалиден",
"AccessKeyId": "ID на ключ за достъп",
"SecretAccessKey": "Тайна на ключа за достъп",
"PhoneNumbers": "Телефонни номера",
"TemplateCode": "Шаблон Код",
"SignName": "Знак име",
"Sms template must contain parameters: ": "SMS шаблонът трябва да съдържа следните параметри: ",
"Bark Endpoint": "Bark крайна точка",
"WebHookUrl": "URL адрес на уеб кука",
"SecretKey": "Таен ключ",
"For safety, must use secret key": "За сигурност, трябва да се използва таен ключ",
"Device Token": "Токен за устройство",
"Platform": "Платформа",
"iOS": "iOS",
"Android": "Android",
"Huawei": "Huawei",
"High": "Висок",
"Retry": "Повтори",
"Topic": "Тема",
"WeCom Bot Key": "WeCom бот ключ",
"Setup Proxy": "Настрой прокси",
"Proxy Protocol": "Прокси протокол",
"Proxy Server": "Прокси сървър",
"Proxy server has authentication": "Прокси сървърът е с удостоверяване",
"User": "Потребител",
"Installed": "Инсталиран",
"Not installed": "Не е инсталиран",
"Running": "Работи",
"Not running": "Не работи",
"Remove Token": "Премахни токен",
"Start": "Стартирай",
"Stop": "Спри",
"Uptime Kuma": "Uptime Kuma",
"Add New Status Page": "Добави нова статус страница",
"Slug": "Слъг",
"Accept characters:": "Приеми символи:",
"startOrEndWithOnly": "Започва или завършва само с {0}",
"No consecutive dashes": "Без последователни тирета",
"Next": "Следващ",
"The slug is already taken. Please choose another slug.": "Този слъг вече се използва. Моля изберете друг.",
"No Proxy": "Без прокси",
"Authentication": "Удостоверяване",
"HTTP Basic Auth": "HTTP основно удостоверяване",
"New Status Page": "Нова статус страница",
"Page Not Found": "Страницата не е открита",
"Reverse Proxy": "Ревърс прокси",
"Backup": "Архивиране",
"About": "Относно",
"wayToGetCloudflaredURL": "(Свалете \"cloudflared\" от {0})",
"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": "Няма статус страници",
"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": "Удостоверяването е изключено.",
"Certificate Expiry Notification": "Известие за изтичане валидността на сертификата",
"API Username": "API Потребител",
"API Key": "API Ключ",
"Recipient Number": "Номер на получателя",
"From Name/Number": "От Име/Номер",
"Leave blank to use a shared sender number.": "Оставете празно, за да използвате споделен номер на подател.",
"Octopush API Version": "Octopush API версия",
"Legacy Octopush-DM": "Octopush-DM старa версия",
"endpoint": "крайна точка",
"octopushAPIKey": "\"API ключ\" от HTTP API удостоверяване в контролния панел",
"octopushLogin": "\"Вписване\" от HTTP API удостоверяване в контролния панел",
"promosmsLogin": "API Потребителско име",
"promosmsPassword": "API Парола",
"pushoversounds pushover": "Pushover (по подразбиране)",
"pushoversounds bike": "Велосипед",
"pushoversounds bugle": "Тромпет",
"pushoversounds cashregister": "Касов апарат",
"pushoversounds classical": "Класическа музика",
"pushoversounds cosmic": "Космически",
"pushoversounds falling": "Падащ",
"pushoversounds gamelan": "Игра в мрежа",
"pushoversounds incoming": "Входящ",
"pushoversounds intermission": "Прекъсване",
"pushoversounds magic": "Магия",
"pushoversounds mechanical": "Механичен",
"pushoversounds pianobar": "Пиано бар",
"pushoversounds siren": "Сирена",
"pushoversounds spacealarm": "Космическа аларма",
"pushoversounds tugboat": "Буксир",
"pushoversounds alien": "Извънземна аларма (дълъг)",
"pushoversounds climb": "Изкачване (дълъг)",
"pushoversounds persistent": "Постоянен (дълъг)",
"pushoversounds echo": "Pushover ехо (дълъг)",
"pushoversounds updown": "Горе долу (дълъг)",
"pushoversounds vibrate": "Само вибрация",
"pushoversounds none": "Без (тих)",
"pushyAPIKey": "Таен API ключ",
"pushyToken": "Токен на устройство",
"Show update if available": "Покажи актуализация, ако е налична",
"Also check beta release": "Проверявай и за бета версии",
"Using a Reverse Proxy?": "Използвате ревърс прокси?",
"Check how to config it for WebSocket": "Проверете как да го конфигурирате за WebSocket",
"Steam Game Server": "Steam Game сървър",
"Most likely causes:": "Най-вероятни причини:",
"The resource is no longer available.": "Ресурсът вече не е наличен.",
"There might be a typing error in the address.": "Възможно е да е допусната грешка при изписването на адреса.",
"What you can try:": "Може да опитате:",
"Retype the address.": "Повторно въвеждане на адреса.",
"Go back to the previous page.": "Да се върнете към предишната страница.",
"Coming Soon": "Очаквайте скоро",
"wayToGetClickSendSMSToken": "Може да получите API потребителско име и API ключ от {0} .",
"dnsPortDescription": "DNS порт на сървъра. По подразбиране е 53, но може да бъде променен по всяко време.",
"error": "грешка",
"critical": "критично",
"wayToGetPagerDutyKey": "Може да го получите като посетите Service -> Service Directory -> (Select a service) -> Integrations -> Add integration. Тук трябва да потърсите \"Events API V2\". Повече информация {0}",
"Integration Key": "Ключ за интегриране",
"Integration URL": "URL адрес за интеграция",
"Auto resolve or acknowledged": "Автоматично разрешаване или потвърждаване",
"do nothing": "не прави нищо",
"auto acknowledged": "автоматично потвърждаване",
"auto resolve": "автоматично разрешаване",
"Connection String": "Стринг за връзка",
"Query": "Заявка",
"settingsCertificateExpiry": "Изтичане валидността на TLS сертификата",
"certificationExpiryDescription": "HTTPS мониторите ще задействат известие, ако е наличен изтичащ TLS сертификат, през следващите:",
"ntfy Topic": "ntfy Тема",
"Domain": "Домейн",
"Workstation": "Работна станция",
"disableCloudflaredNoAuthMsg": "Тъй като сте в режим \"No Auth mode\", парола не се изисква.",
"wayToGetLineNotifyToken": "Може да получите токен код за достъп от {0}",
"resendEveryXTimes": "Изпращай повторно на всеки {0} пъти",
"resendDisabled": "Повторното изпращане е изключено",
"Resend Notification if Down X times consequently": "Повторно изпращане на известие, ако е недостъпен X пъти последователно",
"Bark Group": "Bark група",
"Bark Sound": "Bark звук",
"HTTP Headers": "HTTP хедъри",
"Trust Proxy": "Доверено Proxy",
"HomeAssistant": "Home Assistant",
"RadiusSecret": "Radius таен код",
"RadiusSecretDescription": "Споделен таен код между клиент и сървър",
"RadiusCalledStationId": "Повиквана станция ID",
"RadiusCalledStationIdDescription": "Идентификатор на повикваното устройство",
"RadiusCallingStationId": "Повикваща станция ID",
"RadiusCallingStationIdDescription": "Идентификатор на повикващото устройство",
"Setup Docker Host": "Настройка на Docker хост",
"Connection Type": "Тип свързване",
"Docker Daemon": "Docker демон",
"deleteDockerHostMsg": "Сигурни ли сте, че желаете да изтриете този Docker хост за всички монитори?",
"socket": "Сокет",
"tcp": "TCP / HTTP",
"Docker Container": "Docker контейнер",
"Container Name / ID": "Име на контейнер / ID",
"Docker Host": "Docker хост",
"Docker Hosts": "Docker хостове",
"trustProxyDescription": "Доверяване на 'X-Forwarded-*' хедърите. В случай, че желаете да получавате реалния IP адрес на клиента и Uptime Kuma е зад системи като Nginx или Apache, трябва да разрешите тази опция.",
"Examples": "Примери",
"Home Assistant URL": "Home Assistant URL адрес",
"Long-Lived Access Token": "Long-Lived токен за достъп",
"Long-Lived Access Token can be created by clicking on your profile name (bottom left) and scrolling to the bottom then click Create Token. ": "Long-Lived Access Token можете да създадете, като кликнете върху името на профила си (долу ляво) и превъртите до най-долу, след това кликнете върху Създаване на токен. ",
"Notification Service": "Услуга за известяване",
"default: notify all devices": "по подразбиране: извести всички устройства",
"A list of Notification Services can be found in Home Assistant under \"Developer Tools > Services\" search for \"notification\" to find your device/phone name.": "Списък с услугите за известяване може да бъде намерен в Home Assistant под \"Developer Tools > Services\", там потърсете \"notification\", за да намерите името на вашето устройство/телефон.",
"Automations can optionally be triggered in Home Assistant:": "Автоматизациите могат да се задействат при нужда в Home Assistant:",
"Trigger type:": "Задействане тип:",
"Event type:": "Събитие тип:",
"Event data:": "Събитие данни:",
"Then choose an action, for example switch the scene to where an RGB light is red.": "След което изберете действие, например да превключите сцената, където RGB светлината е червена.",
"Frontend Version": "Фронтенд версия",
"Frontend Version do not match backend version!": "Фронтенд версията не съвпада с Бекенд версията!",
"Base URL": "Базов URL адрес",
"goAlertInfo": "GoAlert е приложение с отворен код за планиране на повиквания, автоматизирани ескалации и известия (като SMS или гласови повиквания). Автоматично ангажирайте точния човек, по точния начин и в точното време! {0}",
"goAlertIntegrationKeyInfo": "Вземете общ API интеграционен ключ за услугата във формат \"aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee\" обикновено стойността на параметъра token на копирания URL адрес.",
"goAlert": "GoAlert",
"backupOutdatedWarning": "Отпаднала: Тъй като са добавени много функции, тази опция за архивиране не е достатъчно поддържана и не може да генерира или възстанови пълен архив.",
"backupRecommend": "Вместо това моля, архивирайте директно дяла или папката (./data/).",
"Maintenance": "Поддръжка",
"statusMaintenance": "Поддръжка",
"Schedule maintenance": "Планиране на поддръжка",
"Affected Monitors": "Засегнати монитори",
"Pick Affected Monitors...": "Изберете засегнатите монитори…",
"Start of maintenance": "Стартирай поддръжка",
"All Status Pages": "Всички статус страници",
"Select status pages...": "Изберете статус страници…",
"recurringIntervalMessage": "Изпълнявай ежедневно | Изпълнявай всеки {0} дни",
"affectedMonitorsDescription": "Изберете монитори, засегнати от текущата поддръжка",
"affectedStatusPages": "Покажи това съобщение за поддръжка на избрани статус страници",
"atLeastOneMonitor": "Изберете поне един засегнат монитор",
"deleteMaintenanceMsg": "Сигурни ли сте, че желаете да изтриете тази поддръжка?",
"Optional": "По желание",
"squadcast": "Squadcast",
"SendKey": "SendKey",
"SMSManager API Docs": "SMSManager API Документация ",
"Gateway Type": "Тип на шлюза",
"SMSManager": "SMSManager",
"You can divide numbers with": "Може да разделяте числата с",
"or": "или",
"recurringInterval": "Интервал",
"Recurring": "Повтаряне",
"strategyManual": "Активен/Неактивен ръчно",
"warningTimezone": "Използва се часовата зона на сървъра",
"weekdayShortMon": "Пон",
"weekdayShortTue": "Вт",
"weekdayShortWed": "Ср",
"weekdayShortThu": "Чет",
"weekdayShortFri": "Пет",
"weekdayShortSat": "Съб",
"weekdayShortSun": "Нед",
"dayOfWeek": "Ден",
"dayOfMonth": "Дата",
"lastDay": "Последен ден",
"lastDay1": "Последен ден от месеца",
"lastDay2": "2-ри последен ден на месеца",
"lastDay3": "3-ти последен ден на месеца",
"lastDay4": "4-ти последен ден на месеца",
"No Maintenance": "Няма поддръжка",
"pauseMaintenanceMsg": "Сигурни ли сте, че желаете да направите пауза?",
"maintenanceStatus-under-maintenance": "В режим поддръжка",
"maintenanceStatus-inactive": "Неактивна",
"maintenanceStatus-scheduled": "Планирана",
"maintenanceStatus-ended": "Приключена",
"maintenanceStatus-unknown": "Неизвестна",
"Display Timezone": "Покажи часова зона",
"Server Timezone": "Часова зона на сървъра",
"statusPageMaintenanceEndDate": "Край",
"enableGRPCTls": "Разреши изпращане на gRPC заявка с TLS връзка",
"grpcMethodDescription": "Името на метода се форматира в \"cammelCase\", например sayHello, check, и т.н.",
"smseagle": "SMSEagle",
"smseagleTo": "Тел. номер(а)",
"smseagleGroup": "Име на група/и от тел. указател",
"smseagleContact": "Име(на) от тел. указател",
"smseagleRecipientType": "Получател тип",
"smseagleRecipient": "Получател(и) (при повече от един разделете със запетая)",
"smseagleToken": "API токен за достъп",
"smseagleUrl": "Вашият SMSEagle URL на устройството",
"smseagleEncoding": "Изпрати като Unicode",
"smseaglePriority": "Приоритет на съобщението (0-9, по подразбиране = 0)",
"IconUrl": "Икона URL адрес",
"webhookAdditionalHeadersTitle": "Допълнителни хедъри",
"webhookAdditionalHeadersDesc": "Задава допълнителни хедъри, изпратени с уеб куката.",
"Enable DNS Cache": "Активирай DNS кеширане",
"Enable": "Активирай",
"Disable": "Деактивирай",
"dnsCacheDescription": "Възможно е да не работи в IPv6 среда - деактивирайте, ако срещнете проблеми.",
"Single Maintenance Window": "Единичен времеви интервал за поддръжка",
"Maintenance Time Window of a Day": "Времеви интервал от деня за поддръжка",
"Effective Date Range": "Интервал от дни на влизане в сила",
"Schedule Maintenance": "Планирай поддръжка",
"Date and Time": "Дата и час",
"DateTime Range": "Изтрий времеви интервал",
"Strategy": "Стратегия",
"Free Mobile User Identifier": "Free Mobile потребителски идентификатор",
"Free Mobile API Key": "Free Mobile API ключ",
"Enable TLS": "Активирай TLS",
"Proto Service Name": "Proto име на услугата",
"Proto Method": "Proto метод",
"Proto Content": "Proto съдържание",
"Economy": "Икономичен",
"Lowcost": "Евтин",
"high": "висок",
"General Monitor Type": "Общ тип монитор",
"Passive Monitor Type": "Пасивет тип монитор",
"Specific Monitor Type": "Специфичен тип монитор",
"ZohoCliq": "ZohoCliq",
"wayToGetZohoCliqURL": "Можете да научите как се създава URL адрес за уеб кука {0}.",
"Kook": "Kook",
"wayToGetKookBotToken": "Създайте приложение и вземете вашия бот токен на {0}",
"wayToGetKookGuildID": "Превключете в 'Developer Mode' в 'Kook' настройките, след което десен клик върху 'guild' за да вземете неговото 'ID'",
"Guild ID": "Guild ID",
"Help": "Помощ",
"Game": "игрови",
"Custom": "Потребителски",
"infiniteRetention": "Задайте стойност 0 за безкрайно съхранение.",
"Monitor": "Монитор | Монитори",
"dataRetentionTimeError": "Периодът на съхранение трябва да е 0 или по-голям",
"confirmDeleteTagMsg": "Сигурни ли сте, че желаете да изтриете този таг? Мониторите, свързани с него, няма да бъдат изтрити.",
"promosmsAllowLongSMS": "Позволи дълъг SMS",
"Packet Size": "Размер на пакет",
"Custom Monitor Type": "Потребителски тип монитор",
"loadingError": "Данните не могат да бъдат изтеглени. Моля, опитайте отново по-късно.",
"plugin": "Плъгин | Плъгини",
"install": "Инсталирай",
"installing": "Инсталиране",
"uninstall": "Деинсталирай",
"uninstalling": "Деинсталиране",
"confirmUninstallPlugin": "Сигурни ли сте, че желаете да деинсталирате този плъгин?"
}

@ -0,0 +1,695 @@
{
"languageName": "Czech",
"checkEverySecond": "Kontrolovat každých {0} sekund",
"retryCheckEverySecond": "Opakovat každých {0} sekund",
"resendEveryXTimes": "Znovu zaslat {0}krát",
"resendDisabled": "Opakované zasílání je vypnuté",
"retriesDescription": "Maximální počet pokusů před označením služby jako nedostupné a odesláním oznámení",
"ignoreTLSError": "Ignorovat TLS/SSL chyby na HTTPS stránkách",
"upsideDownModeDescription": "Pomocí této možnosti změníte způsob vyhodnocování stavu. Pokud je služba dosažitelná, je NEDOSTUPNÁ.",
"maxRedirectDescription": "Maximální počet přesměrování, která se mají následovat. Nastavením hodnoty 0 zakážete přesměrování.",
"enableGRPCTls": "Umožnit odeslání gRPC žádosti během TLS spojení",
"grpcMethodDescription": "Název metody se převede do cammelCase formátu jako je sayHello, check, aj.",
"acceptedStatusCodesDescription": "Vyberte stavové kódy, které jsou považovány za úspěšnou odpověď.",
"Maintenance": "Údržba",
"statusMaintenance": "Údržba",
"Schedule maintenance": "Naplánovat údržbu",
"Affected Monitors": "Dotčené dohledy",
"Pick Affected Monitors...": "Vyberte dotčené dohledy…",
"Start of maintenance": "Zahájit údržbu",
"All Status Pages": "Všechny stavové stránky",
"Select status pages...": "Vyberte stavovou stránku…",
"recurringIntervalMessage": "Spustit jednou každý den | Spustit jednou každých {0} dní",
"affectedMonitorsDescription": "Vyberte dohledy, které budou ovlivněny touto údržbou",
"affectedStatusPages": "Zobrazit tuto zprávu o údržbě na vybraných stavových stránkách",
"atLeastOneMonitor": "Vyberte alespoň jeden dotčený dohled",
"passwordNotMatchMsg": "Hesla se neshodují.",
"notificationDescription": "Pro zajištění funkčnosti oznámení je nutné jej přiřadit dohledu.",
"keywordDescription": "Vyhledat klíčové slovo v prosté odpovědi HTML nebo JSON. Při hledání se rozlišuje velikost písmen.",
"pauseDashboardHome": "Pozastaveno",
"deleteMonitorMsg": "Opravdu chcete odstranit tento dohled?",
"deleteMaintenanceMsg": "Opravdu chcete odstranit tuto údržbu?",
"deleteNotificationMsg": "Opravdu chcete odstranit toto oznámení pro všechny dohledy?",
"dnsPortDescription": "Port DNS serveru. Standardně běží na portu 53. V případě potřeby jej můžete kdykoli změnit.",
"resolverserverDescription": "Cloudflare je výchozí server. V případě potřeby můžete Resolver server kdykoli změnit.",
"rrtypeDescription": "Vyberte typ záznamu o prostředku, který chcete monitorovat",
"pauseMonitorMsg": "Opravdu chcete dohled pozastavit?",
"enableDefaultNotificationDescription": "Toto oznámení bude standardně aktivní pro nové dohledy. V případě potřeby můžete oznámení stále zakázat na úrovni jednotlivých dohledů.",
"clearEventsMsg": "Opravdu chcete odstranit všechny události pro tento dohled?",
"clearHeartbeatsMsg": "Opravdu chcete odstranit všechny heartbeaty pro tento dohled?",
"confirmClearStatisticsMsg": "Opravdu chcete smazat VŠECHNY statistiky?",
"importHandleDescription": "Možnost 'Přeskočit existující' vyberte v případě, že chcete přeskočit všechny dohledy nebo oznámení se stejným názvem. Vybráním možnosti 'Přepsat' dojde k odstranění všech existujících dohledů a oznámení.",
"confirmImportMsg": "Opravdu chcete importovat zálohu? Prosím ověřte, zda jste vybrali správnou možnost importu.",
"twoFAVerifyLabel": "Prosím, zadejte svůj token pro ověření 2FA:",
"tokenValidSettingsMsg": "Token je platný! Nyní můžete uložit nastavení 2FA.",
"confirmEnableTwoFAMsg": "Opravdu chcete zapnout 2FA?",
"confirmDisableTwoFAMsg": "Opravdu chcete deaktivovat 2FA?",
"Settings": "Nastavení",
"Dashboard": "Nástěnka",
"New Update": "Nová aktualizace",
"Language": "Jazyk",
"Appearance": "Vzhled",
"Theme": "Motiv",
"General": "Obecné",
"Primary Base URL": "Primární URL adresa",
"Version": "Verze",
"Check Update On GitHub": "Zkontrolovat aktualizace na GitHubu",
"List": "Seznam",
"Add": "Přidat",
"Add New Monitor": "Přidat nový dohled",
"Quick Stats": "Rychlý přehled",
"Up": "Běží",
"Down": "Nedostupný",
"Pending": "Čekám",
"Unknown": "Neznámý",
"Pause": "Pauza",
"Name": "Název",
"Status": "Stav",
"DateTime": "Časové razítko",
"Message": "Zpráva",
"No important events": "Žádné důležité události",
"Resume": "Pokračovat",
"Edit": "Změnit",
"Delete": "Vymazat",
"Current": "Aktuální",
"Uptime": "Doba provozu",
"Cert Exp.": "Platnost certifikátu",
"Monitor": "Dohled | Dohledy",
"day": "den | dny/í",
"-day": "-dní",
"hour": "hodina",
"-hour": "-hodin",
"Response": "Odpověď",
"Ping": "Ping",
"Monitor Type": "Typ dohledu",
"Keyword": "Klíčové slovo",
"Friendly Name": "Obecný název",
"URL": "URL",
"Hostname": "Adresa serveru",
"Port": "Port",
"Heartbeat Interval": "Heartbeat interval",
"Retries": "Počet pokusů",
"Heartbeat Retry Interval": "Interval opakování heartbeatu",
"Resend Notification if Down X times consequently": "Znovu zaslat oznámení, pokud je služba nedostupná Xkrát za sebou",
"Advanced": "Rozšířené",
"Upside Down Mode": "Inverzní režim",
"Max. Redirects": "Max. přesměrování",
"Accepted Status Codes": "Akceptované stavové kódy",
"Push URL": "Push URL",
"needPushEvery": "Tuto URL adresu byste měli volat každých {0} sekund.",
"pushOptionalParams": "Volitelné parametry: {0}",
"Save": "Uložit",
"Notifications": "Oznámení",
"Not available, please setup.": "Není k dispozici, prosím nastavte.",
"Setup Notification": "Nastavení oznámení",
"Light": "Světlý",
"Dark": "Tmavý",
"Auto": "Automaticky",
"Theme - Heartbeat Bar": "Motiv Heartbeat panel",
"Normal": "Normální",
"Bottom": "Dole",
"None": "Žádné",
"Timezone": "Časové pásmo",
"Search Engine Visibility": "Viditelnost pro vyhledávače",
"Allow indexing": "Povolit indexování",
"Discourage search engines from indexing site": "Zabránit vyhledávačům v indexování stránky",
"Change Password": "Změnit heslo",
"Current Password": "Aktuální heslo",
"New Password": "Nové heslo",
"Repeat New Password": "Znovu zadat nové heslo",
"Update Password": "Aktualizovat heslo",
"Disable Auth": "Deaktivovat ověřování",
"Enable Auth": "Povolit ověřování",
"disableauth.message1": "Opravdu chcete <strong>deaktivovat autentifikaci</strong>?",
"disableauth.message2": "Tato možnost je určena pro případy, kdy <strong>máte autentifikaci zajištěnou třetí stranou</strong> ještě před přístupem do Uptime Kuma, například prostřednictvím Cloudflare Access.",
"Please use this option carefully!": "Používejte ji prosím s rozmyslem!",
"Logout": "Odhlásit",
"Leave": "Odejít",
"I understand, please disable": "Rozumím, chci ji deaktivovat",
"Confirm": "Potvrzení",
"Yes": "Ano",
"No": "Ne",
"Username": "Uživatelské jméno",
"Password": "Heslo",
"Remember me": "Zapamatovat si mě",
"Login": "Přihlášení",
"No Monitors, please": "Žádné dohledy, prosím",
"add one": "přidat jeden",
"Notification Type": "Typ oznámení",
"Email": "E-mail",
"Test": "Test",
"Certificate Info": "Informace o certifikátu",
"Resolver Server": "Server Resolveru",
"Resource Record Type": "Typ záznamu o prostředku",
"Last Result": "Poslední výsledek",
"Create your admin account": "Vytvořit účet administrátora",
"Repeat Password": "Znovu zadat heslo",
"Import Backup": "Importovat zálohu",
"Export Backup": "Exportovat zálohu",
"Export": "Exportovat",
"Import": "Importovat",
"respTime": "Doba odezvy (ms)",
"notAvailableShort": "N/A",
"Default enabled": "Standardně povoleno",
"Apply on all existing monitors": "Použít pro všechny existující dohledy",
"Create": "Vytvořit",
"Clear Data": "Vymazat data",
"Events": "Události",
"Heartbeats": "Heartbeaty",
"Auto Get": "Získat automaticky",
"backupDescription": "Všechny dohledy a oznámení můžete zálohovat do souboru ve formátu JSON.",
"backupDescription2": "Poznámka: Nezahrnuje historii a data událostí.",
"backupDescription3": "Součástí exportovaného souboru jsou citlivá data jako tokeny oznámení; export si prosím bezpečně uložte.",
"alertNoFile": "Vyberte soubor, který chcete importovat.",
"alertWrongFileType": "Vyberte soubor ve formátu JSON.",
"Clear all statistics": "Vymazat všechny statistiky",
"Skip existing": "Přeskočit existující",
"Overwrite": "Přepsat",
"Options": "Možnosti",
"Keep both": "Ponechat obojí",
"Verify Token": "Ověřit token",
"Setup 2FA": "Nastavení 2FA",
"Enable 2FA": "Povolit 2FA",
"Disable 2FA": "Deaktivovat 2FA",
"2FA Settings": "Nastavení 2FA",
"Two Factor Authentication": "Dvoufaktorová autentifikace",
"Active": "Zapnuto",
"Inactive": "Neaktivní",
"Token": "Token",
"Show URI": "Zobrazit URI",
"Tags": "Štítky",
"Add New below or Select...": "Níže přidejte nový nebo vyberte existující…",
"Tag with this name already exist.": "Štítek s tímto názvem již existuje.",
"Tag with this value already exist.": "Štítek touto hodnotou již existuje.",
"color": "barva",
"value (optional)": "hodnota (volitelné)",
"Gray": "Šedá",
"Red": "Červená",
"Orange": "Oranžová",
"Green": "Zelená",
"Blue": "Modrá",
"Indigo": "Indigo",
"Purple": "Purpurová",
"Pink": "Růžová",
"Custom": "Vlastní",
"Search...": "Hledat…",
"Avg. Ping": "Průměr Ping",
"Avg. Response": "Průměr Odpověď",
"Entry Page": "Vstupní stránka",
"statusPageNothing": "Nic tady není, přidejte prosím skupinu nebo dohled.",
"No Services": "Žádné služby",
"All Systems Operational": "Všechny systémy běží",
"Partially Degraded Service": "Částečně zhoršená služba",
"Degraded Service": "Zhoršená služba",
"Add Group": "Přidat skupinu",
"Add a monitor": "Přidání dohledu",
"Edit Status Page": "Upravit stavovou stránku",
"Go to Dashboard": "Přejít na nástěnku",
"Status Page": "Stavová stránka",
"Status Pages": "Stavová stránka",
"defaultNotificationName": "Moje {notification} upozornění ({číslo})",
"here": "sem",
"Required": "Vyžadováno",
"telegram": "Telegram",
"ZohoCliq": "ZohoCliq",
"Bot Token": "Token robota",
"wayToGetTelegramToken": "Token můžete získat od {0}.",
"Chat ID": "ID chatu",
"supportTelegramChatID": "Podpora přímého chatu / skupiny / ID chatu kanálu",
"wayToGetTelegramChatID": "ID chatu můžete získat tak, že robotovi zašlete zprávu a přejdete na tuto adresu URL, kde zobrazíte chat_id:",
"YOUR BOT TOKEN HERE": "SEM ZADEJTE TOKEN VAŠEHO CHATBOTA",
"chatIDNotFound": "ID chatu nebylo nalezeno; nejprve tomuto robotovi zašlete zprávu",
"webhook": "Webhook",
"Post URL": "URL adresa příspěvku",
"Content Type": "Typ obsahu",
"webhookJsonDesc": "{0} je vhodný pro všechny moderní servery HTTP, jako je Express.js",
"webhookFormDataDesc": "{multipart} je vhodné pro PHP. JSON bude nutné analyzovat prostřednictvím {decodeFunction}",
"webhookAdditionalHeadersTitle": "Dodatečné hlavičky",
"webhookAdditionalHeadersDesc": "Nastavte dodatečné hlavičky, které se odešlou společně s webhookem.",
"smtp": "E-mail (SMTP)",
"secureOptionNone": "Žádné / STARTTLS (25, 587)",
"secureOptionTLS": "TLS (465)",
"Ignore TLS Error": "Ignorovat chybu TLS",
"From Email": "Odesílatel",
"emailCustomSubject": "Vlastní předmět",
"To Email": "Příjemce",
"smtpCC": "Kopie",
"smtpBCC": "Skrytá kopie",
"discord": "Discord",
"Discord Webhook URL": "URL Webhooku Discord",
"wayToGetDiscordURL": "Získáte tak, že přejdete do Nastavení serveru - > Integrace - > Vytvořit Webhook",
"Bot Display Name": "Zobrazované jméno robota",
"Prefix Custom Message": "Předpona vlastní zprávy",
"Hello @everyone is...": "Dobrý den, {'@'}všichni jsou…",
"teams": "Microsoft Teams",
"Webhook URL": "URL adresa webhooku",
"wayToGetTeamsURL": "Informace o tom, jak vytvořit URL adresu webhooku naleznete na {0}.",
"wayToGetZohoCliqURL": "Informace o tom, jak vytvořit URL adresu webhooku naleznete na {0}.",
"signal": "Signal",
"Number": "Číslo",
"Recipients": "Příjemci",
"needSignalAPI": "Musíte mít Signal klienta s REST API.",
"wayToCheckSignalURL": "Pro zobrazení instrukcí, jak službu nastavit, přejděte na následující adresu:",
"signalImportant": "Důležité: v seznamu příjemců není možné současně použít skupiny a čísla!",
"gotify": "Gotify",
"Application Token": "Token aplikace",
"Server URL": "URL adresa serveru",
"Priority": "Priorita",
"slack": "Slack",
"Icon Emoji": "Ikona smajlíka",
"Channel Name": "Název kanálu",
"Uptime Kuma URL": "Uptime Kuma URL",
"aboutWebhooks": "Více informací o Webhoocích naleznete na adrese: {0}",
"aboutChannelName": "Pro vynechání Webhook kanálu zadejte jeho název do pole Název kanálu {0}. Příklad: #jiny-kanal",
"aboutKumaURL": "Pokud ponecháte pole URL adresa Uptime Kuma prázdné, použije se domovská stránka GitHub projektu.",
"emojiCheatSheet": "Tahák smajlíků: {0}",
"rocket.chat": "Rocket.Chat",
"pushover": "Pushover",
"pushy": "Pushy",
"PushByTechulus": "Push od Techulus",
"octopush": "Octopush",
"promosms": "PromoSMS",
"clicksendsms": "ClickSend SMS",
"lunasea": "LunaSea",
"apprise": "Apprise (podpora více než 50 oznamovacích služeb)",
"GoogleChat": "Google Chat (pouze Google Workspace)",
"pushbullet": "Pushbullet",
"Kook": "Kook",
"wayToGetKookBotToken": "Aplikaci vytvoříte a token bota získáte na {0}",
"wayToGetKookGuildID": "V nastavení Kook aktivujte 'Vývojářský režim' a kliknutím pravým tlačítkem na guild získejte jeho ID",
"Guild ID": "Guild ID",
"line": "Line Messenger",
"mattermost": "Mattermost",
"User Key": "Klíč uživatele",
"Device": "Zařízení",
"Message Title": "Nadpis zprávy",
"Notification Sound": "Zvuk oznámení",
"More info on:": "Více informací naleznete na adrese: {0}",
"pushoverDesc1": "Výchozí časový limit pro emergency prioritu (2) je 30 sekund mezi opakovanými pokusy a vyprší po 1 hodině.",
"pushoverDesc2": "Pokud chcete odesílat oznámení do různých zařízení, vyplňte pole Zařízení.",
"SMS Type": "Typ SMS",
"octopushTypePremium": "Premium (rychlé doporučeno pro upozornění)",
"octopushTypeLowCost": "Nízké náklady (pomalé někdy blokované operátorem)",
"checkPrice": "Ceny {0} zjistíte na adrese:",
"apiCredentials": "API přihlašovací údaje",
"octopushLegacyHint": "Používáte starší verzi Octopush (2011-2020) nebo novou verzi?",
"Check octopush prices": "Ceny octopush naleznete na adrese {0}.",
"octopushPhoneNumber": "Telefonní číslo (v mezinárodním formátu, např: +42012345678) ",
"octopushSMSSender": "Odesílatel SMS: 3-11 alfanumerických znaků a mezera (a-zA-Z0-9)",
"LunaSea Device ID": "ID zařízení LunaSea",
"Apprise URL": "Apprise URL",
"Example:": "Příklad: {0}",
"Read more:": "Více informací: {0}",
"Status:": "Stav: {0}",
"Read more": "Více informací",
"appriseInstalled": "Apprise je nainstalován.",
"appriseNotInstalled": "Apprise není nainstalován. {0}",
"Access Token": "Přístupový token",
"Channel access token": "Přístupový token ke kanálu",
"Line Developers Console": "Konzole Line Developers",
"lineDevConsoleTo": "Konzole Line Developers - {0}",
"Basic Settings": "Obecné nastavení",
"User ID": "ID uživatele",
"Messaging API": "Messaging API",
"wayToGetLineChannelToken": "Nejprve otevřete {0}, vytvořte poskytovatele a kanál (Messaging API). Poté můžete získat přístupový token ke kanálu a ID uživatele, v sekci uvedené výše.",
"Icon URL": "URL adresa ikony",
"aboutIconURL": "Pro přepsání výchozího profilového obrázku můžete do pole \"URL adresa ikony\" zadat odkaz na obrázek. Nebude použito, pokud je nastavena ikona smajlíka.",
"aboutMattermostChannelName": "Výchozí kanál, do kterého jsou zasílány Webhook příspěvky, můžete přepsat zadáním názvu kanálu do pole \"Název kanálu\". Tato možnost musí být povolena v nastavení Mattermost Webhooku. Příklad: #jiny-kanal",
"matrix": "Matrix",
"promosmsTypeEco": "SMS ECO levné, ale pomalé a často přetížené. Omezeno pouze na polské příjemce.",
"promosmsTypeFlash": "SMS FLASH zpráva se automaticky zobrazí na zařízení příjemce. Omezeno pouze na polské příjemce.",
"promosmsTypeFull": "SMS FULL prémiová úroveň SMS. Můžete definovat odesílatele (vyžadována registrace jména). Spolehlivý pro výstrahy.",
"promosmsTypeSpeed": "SMS SPEED nejvyšší priorita v systému. Velmi rychlé a spolehlivé, ale nákladné (přibližně dvojnásobek ceny SMS FULL).",
"promosmsPhoneNumber": "Telefonní číslo (polští příjemci mohou vynechat telefonní předvolbu)",
"promosmsSMSSender": "Odesílatel SMS: Předem zaregistrovaný název nebo jeden z výchozích: InfoSMS, SMS Info, MaxSMS, INFO, SMS",
"promosmsAllowLongSMS": "Povolit dlouhé SMS",
"Feishu WebHookUrl": "URL Webhooku Feishu",
"matrixHomeserverURL": "URL adresa domácího serveru (s http(s):// a volitelně portem)",
"Internal Room Id": "ID interní místnosti",
"matrixDesc1": "ID interní místnosti naleznete v Matrix klientovi v rozšířeném nastavení místnosti. Mělo by být ve tvaru !QMdRCpUIfLwsfjxye6:home.server.",
"matrixDesc2": "Důrazně doporučujeme vytvořit nového uživatele a nepoužívat váš vlastní přístupový token uživatele Matrix. Pomocí něj je možné získat přístup k vašemu účtu a všem místnostem, ke kterým jste se připojili. Místo toho vytvořte nového uživatele a pozvěte jej pouze do místnosti, do které chcete oznámení dostávat. Přístupový token můžete získat spuštěním {0}",
"Method": "Metoda",
"Body": "Tělo",
"Headers": "Hlavičky",
"PushUrl": "Push URL",
"HeadersInvalidFormat": "Hlaviča žádosti není platný JSON: ",
"BodyInvalidFormat": "Text žádosti není platný JSON: ",
"Monitor History": "Historie dohledu",
"clearDataOlderThan": "Historie dohledu bude uchovávána po dobu {0} dní.",
"PasswordsDoNotMatch": "Hesla se neshodují.",
"records": "záznamů",
"One record": "Jeden záznam",
"steamApiKeyDescription": "Pro monitorování Steam Game Serveru je nutné zadat Steam Web-API klíč. Svůj API klíč získáte na následující stránce: ",
"Current User": "Aktuálně přihlášený uživatel",
"topic": "Téma",
"topicExplanation": "MQTT téma, které chcete sledovat",
"successMessage": "Zpráva o úspěchu",
"successMessageExplanation": "MQTT zpráva považovaná za úspěšnou",
"recent": "Poslední",
"Done": "Hotovo",
"Info": "Informace",
"Security": "Bezpečnost",
"Steam API Key": "API klíč služby Steam",
"Shrink Database": "Zmenšit databázi",
"Pick a RR-Type...": "Vyberte typ RR záznamu…",
"Pick Accepted Status Codes...": "Vyberte stavové kódy, které chcete akceptovat…",
"Default": "Výchozí",
"HTTP Options": "Možnosti protokolu HTTP",
"Create Incident": "Vytvořit incident",
"Title": "Předmět",
"Content": "Obsah",
"Style": "Styl",
"info": "informace",
"warning": "upozornění",
"danger": "riziko",
"error": "chyba",
"critical": "kritické",
"primary": "primární",
"light": "světlý",
"dark": "tmavý",
"Post": "Publikovat",
"Please input title and content": "Zadejte prosím název a obsah",
"Created": "Vytvořen",
"Last Updated": "Poslední aktualizace",
"Unpin": "Odepnout",
"Switch to Light Theme": "Přepnout na světlý motiv",
"Switch to Dark Theme": "Přepnout na tmavý motiv",
"Show Tags": "Zobrazit štítky",
"Hide Tags": "Skrýt štítky",
"Description": "Popis",
"No monitors available.": "Není dostupný žádný dohled.",
"Add one": "Přidat jeden",
"No Monitors": "Žádný dohled",
"Untitled Group": "Skupina bez názvu",
"Services": "Služby",
"Discard": "Zahodit",
"Cancel": "Zrušit",
"Powered by": "Poskytuje",
"shrinkDatabaseDescription": "Pomocí této možnosti provedete příkaz VACUUM nad SQLite databází. Pokud byla databáze vytvořena po vydání verze 1.10.0, AUTO_VACUUM je již povolena a tato akce není vyžadována.",
"serwersms": "SerwerSMS.pl",
"serwersmsAPIUser": "API uživatelské jméno (včetně předpony webapi_)",
"serwersmsAPIPassword": "API heslo",
"serwersmsPhoneNumber": "Telefonní číslo",
"serwersmsSenderName": "Odesílatel SMS (registrováno prostřednictvím zákaznického portálu)",
"smseagle": "SMSEagle",
"smseagleTo": "Telefonní číslo(a)",
"smseagleGroup": "Název skupiny v adresáři",
"smseagleContact": "Název kontaktu v adresáři",
"smseagleRecipientType": "Typ příjemce",
"smseagleRecipient": "Příjemce(i) (více záznamů oddělte čárkou)",
"smseagleToken": "API přístupový token",
"smseagleUrl": "URL vašeho SMSEagle zařízení",
"smseagleEncoding": "Odeslat v Unicode",
"smseaglePriority": "Priorita zprávy (0-9, výchozí = 0)",
"stackfield": "Stackfield",
"Customize": "Přizpůsobit",
"Custom Footer": "Vlastní patička",
"Custom CSS": "Vlastní CSS",
"smtpDkimSettings": "Nastavení DKIM",
"smtpDkimDesc": "Informace o použití naleznete v {0} Nodemailer DKIM.",
"documentation": "dokumentaci",
"smtpDkimDomain": "Název domény",
"smtpDkimKeySelector": "Selektor klíče",
"smtpDkimPrivateKey": "Privátní klíč",
"smtpDkimHashAlgo": "Hashovací algoritmus (volitelné)",
"smtpDkimheaderFieldNames": "Podepisovat tyto hlavičky (volitelné)",
"smtpDkimskipFields": "Nepodepisovat tyto hlavičky (volitelné)",
"wayToGetPagerDutyKey": "Získat jej můžete v sekci Service -> Service Directory -> (vyberte službu) -> Integrations -> Add integration. Následně vyhledejte \"Events API V2\". Více informace naleznete na adrese {0}",
"Integration Key": "Integrační klíč",
"Integration URL": "Integrační URL",
"Auto resolve or acknowledged": "Automatické řešení nebo potvrzení",
"do nothing": "nedělat nic",
"auto acknowledged": "automaticky uznáno",
"auto resolve": "automatické řešení",
"gorush": "Gorush",
"alerta": "Alerta",
"alertaApiEndpoint": "API Endpoint",
"alertaEnvironment": "Prostředí",
"alertaApiKey": "API klíč",
"alertaAlertState": "Stav upozornění",
"alertaRecoverState": "Stav obnovení",
"deleteStatusPageMsg": "Opravdu chcete odstranit tuto stavovou stránku?",
"Proxies": "Proxy",
"default": "Výchozí",
"enabled": "Zapnuto",
"setAsDefault": "Nastavit jako výchozí",
"deleteProxyMsg": "Opravdu chcete odstranit tuto proxy ze všech dohledů?",
"proxyDescription": "Pro zajištění funkčnosti musí být proxy přiřazena dohledům.",
"enableProxyDescription": "Tato proxy neovlivní žádosti dohledu do doby, než ji aktivujete. Změnou tohoto nastavení dočasně zakážete použití proxy ve všech dohledech.",
"setAsDefaultProxyDescription": "Tato proxy se použije pro všechny nové dohledy. V případě potřeby můžete její využívání zakázat v konkrétním dohledu.",
"Certificate Chain": "Řetězec certifikátu",
"Valid": "Platný",
"Invalid": "Neplatný",
"AccessKeyId": "ID přístupového klíče",
"SecretAccessKey": "Tajemství přístupového klíče",
"PhoneNumbers": "Telefonní čísla",
"TemplateCode": "TemplateCode",
"SignName": "SignName",
"Sms template must contain parameters: ": "Šablona SMS musí obsahovat parametry: ",
"Bark Endpoint": "Bark Endpoint",
"Bark Group": "Skupina Bark",
"Bark Sound": "Bark zvuk",
"WebHookUrl": "WebHookUrl",
"SecretKey": "Tajný klíč",
"For safety, must use secret key": "Z důvodu bezpečnosti použijte secret key",
"Device Token": "Token zařízení",
"Platform": "Platforma",
"iOS": "iOS",
"Android": "Android",
"Huawei": "Huawei",
"High": "Vysoký",
"Retry": "Opakovat",
"Topic": "Téma",
"WeCom Bot Key": "Klíč WeCom Bota",
"Setup Proxy": "Nastavit proxy",
"Proxy Protocol": "Protokol proxy",
"Proxy Server": "Proxy Server",
"Proxy server has authentication": "Proxy server vyžaduje ověření",
"User": "Uživatel",
"Installed": "Nainstalováno",
"Not installed": "Nenainstalováno",
"Running": "Běží",
"Not running": "Neběží",
"Remove Token": "Odstranit token",
"Start": "Spustit",
"Stop": "Zastavit",
"Uptime Kuma": "Uptime Kuma",
"Add New Status Page": "Přidat novou stavovou stránku",
"Slug": "Slug",
"Accept characters:": "Přípustné znaky:",
"startOrEndWithOnly": "Počáteční a koncový znak může být pouze {0}",
"No consecutive dashes": "Nesmí se opakovat pomlčky",
"Next": "Další",
"The slug is already taken. Please choose another slug.": "Slug s tímto názvem již existuje. Prosím, zadejte jiný název.",
"No Proxy": "Žádná proxy",
"Authentication": "Ověření",
"HTTP Basic Auth": "HTTP Basic ověření",
"New Status Page": "Nová stavová stránka",
"Page Not Found": "Stránka nenalezena",
"Reverse Proxy": "Reverzní proxy",
"Backup": "Záloha",
"About": "O programu",
"wayToGetCloudflaredURL": "(Stáhnout cloudflared z {0})",
"cloudflareWebsite": "Webová stránka Cloudflare",
"Message:": "Zpráva:",
"Don't know how to get the token? Please read the guide:": "Nevíte jak získat? Prosím, přečtěte si tuto příručku:",
"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.": "Stávající připojení mohlo být ztraceno, pokud jste připojeni prostřednictvím Cloudflare tunelu. Opravdu jej chcete zastavit? Pro potvrzení zadejte své současné heslo.",
"HTTP Headers": "HTTP hlavičky",
"Trust Proxy": "Důvěryhodná proxy",
"Other Software": "Jiný software",
"For example: nginx, Apache and Traefik.": "Například nginx, Apache nebo Traefik.",
"Please read": "Prosím, přečtěte si informace na adrese",
"Subject:": "Předmět:",
"Valid To:": "Platnost do:",
"Days Remaining:": "Počet zbývajících dní:",
"Issuer:": "Vydavatel:",
"Fingerprint:": "Otisk:",
"No status pages": "Žádná stavová stránka",
"Domain Name Expiry Notification": "Oznámení na blížící se konec platnosti doménového jména",
"Proxy": "Proxy",
"Date Created": "Datum vytvoření",
"HomeAssistant": "Home Assistant",
"onebotHttpAddress": "OneBot HTTP adresa",
"onebotMessageType": "Typ OneBot zprávy",
"onebotGroupMessage": "Skupinová",
"onebotPrivateMessage": "Soukromá",
"onebotUserOrGroupId": "ID skupiny/uživatele",
"onebotSafetyTips": "Z důvodu bezpečnosti je nutné zadat přístupový token",
"PushDeer Key": "PushDeer klíč",
"Footer Text": "Text v patičce",
"Show Powered By": "Zobrazit \"Poskytuje\"",
"Domain Names": "Názvy domén",
"signedInDisp": "Přihlášen jako {0}",
"signedInDispDisabled": "Ověření je vypnuté.",
"RadiusSecret": "Tajemství Radius",
"RadiusSecretDescription": "Sdílený tajný klíč mezi klientem a serverem",
"RadiusCalledStationId": "ID volaného zařízení",
"RadiusCalledStationIdDescription": "Identifikátor volaného zařízení",
"RadiusCallingStationId": "ID volajícího zařízení",
"RadiusCallingStationIdDescription": "Identifikátor volajícího zařízení",
"Certificate Expiry Notification": "Oznámení na blížící se konec platnosti certifikátu",
"API Username": "Uživatelské jména API",
"API Key": "API klíč",
"Recipient Number": "Číslo příjemce",
"From Name/Number": "Jméno/číslo odesílatele",
"Leave blank to use a shared sender number.": "Ponechte prázdné, pokud chcete použít číslo sdíleného příjemce.",
"Octopush API Version": "Octopush API verze",
"Legacy Octopush-DM": "Legacy Octopush-DM",
"endpoint": "endpoint",
"octopushAPIKey": "\"API key\" ze sekce HTTP API credentials na nástěnce",
"octopushLogin": "\"Login\" ze sekce HTTP API credentials na nástěnce",
"promosmsLogin": "API Login Name",
"promosmsPassword": "API Password",
"pushoversounds pushover": "Pushover (výchozí)",
"pushoversounds bike": "Kolo",
"pushoversounds bugle": "Bugle",
"pushoversounds cashregister": "Pokladna",
"pushoversounds classical": "Classical",
"pushoversounds cosmic": "Kosmický",
"pushoversounds falling": "Falling",
"pushoversounds gamelan": "Gamelan",
"pushoversounds incoming": "Příchozí",
"pushoversounds intermission": "Přestávka",
"pushoversounds magic": "Kouzlo",
"pushoversounds mechanical": "Mechanika",
"pushoversounds pianobar": "Barové piano",
"pushoversounds siren": "Siréna",
"pushoversounds spacealarm": "Space Alarm",
"pushoversounds tugboat": "Tug Boat",
"pushoversounds alien": "Alien Alarm (dlouhý)",
"pushoversounds climb": "Climb (dlouhý)",
"pushoversounds persistent": "Persistent (dlouhý)",
"pushoversounds echo": "Pushover Echo (dlouhý)",
"pushoversounds updown": "Up Down (dlouhý)",
"pushoversounds vibrate": "Pouze vibrace",
"pushoversounds none": "Žádný (ticho)",
"pushyAPIKey": "Tajný API klíč",
"pushyToken": "Token zařízení",
"Show update if available": "Upozornit na aktualizace, pokud jsou k dispozici",
"Also check beta release": "Kontrolovat také dostupnost beta verzí",
"Using a Reverse Proxy?": "Používáte reverzní proxy?",
"Check how to config it for WebSocket": "Zjistěte, jak ji nakonfigurovat pro WebSockety",
"Steam Game Server": "Steam Game Server",
"Most likely causes:": "Nejčastější důvody:",
"The resource is no longer available.": "Zdroj již není k dispozici.",
"There might be a typing error in the address.": "Při zadávání adresy jste udělali chybu.",
"What you can try:": "Co můžete vyzkoušet:",
"Retype the address.": "Znovu zadat adresu.",
"Go back to the previous page.": "Vrátit se na předchozí stránku.",
"Coming Soon": "Připravujeme",
"wayToGetClickSendSMSToken": "API Username a API Key získáte na adrese {0} .",
"Connection String": "Připojovací řetězec",
"Query": "Dotaz",
"settingsCertificateExpiry": "Platnost TLS certifikátu",
"certificationExpiryDescription": "Aktivovat oznámení nad HTTPS dohledy, pokud platnost TLS certifikátu vyprší za:",
"Setup Docker Host": "Nastavit Docker hostitele",
"Connection Type": "Typ připojení",
"Docker Daemon": "Démon Dockeru",
"deleteDockerHostMsg": "Opravdu chcete odstranit tohoto docker hostitele ze všech dohledů?",
"socket": "Socket",
"tcp": "TCP / HTTP",
"Docker Container": "Docker kontejner",
"Container Name / ID": "ID / název kontejneru",
"Docker Host": "Docker hostitel",
"Docker Hosts": "Docker hostitelé",
"ntfy Topic": "ntfy Téma",
"Domain": "Doména",
"Workstation": "Pracovní stanice",
"disableCloudflaredNoAuthMsg": "Používáte režim bez ověření, heslo není vyžadováno.",
"trustProxyDescription": "Důvěřovat 'X-Forwarded-*' hlavičkám. Pokud chcete získat správnou IP adresu klientů a vaše instance Uptime Kuma je za Nginx nebo Apache, měli byste tuto možnost zapnout.",
"wayToGetLineNotifyToken": "Přístupový token můžete získat na adrese {0}",
"Examples": "Příklady",
"Home Assistant URL": "Home Assistant URL",
"Long-Lived Access Token": "Dlouhodobý přístupový token",
"Long-Lived Access Token can be created by clicking on your profile name (bottom left) and scrolling to the bottom then click Create Token. ": "Pro vytvoření dlouhodobého přístupový tokenu klikněte na název svého profilu (v levém dolním rohu) a následně v dolní části stránky klikněte na tlačítko Create Token. ",
"Notification Service": "Oznamovací služba",
"default: notify all devices": "výchozí: upozornit všechny zařízení",
"A list of Notification Services can be found in Home Assistant under \"Developer Tools > Services\" search for \"notification\" to find your device/phone name.": "Seznam dostupných oznamovacích služeb naleznete v Home Assistant v sekci \"Developer Tools > Services\", kde vyhledejte \"notification\" pro zjištění názvu zařízení.",
"Automations can optionally be triggered in Home Assistant:": "Automatizaci můžete volitelně aktivovat prostřednictvím Home Assistant:",
"Trigger type:": "Typ podmínky spuštění:",
"Event type:": "Typ události:",
"Event data:": "Data události:",
"Then choose an action, for example switch the scene to where an RGB light is red.": "Následně vyberte akci, například přepnutí scény z RGB světla na červenou.",
"Frontend Version": "Verze frontendu",
"Frontend Version do not match backend version!": "Verze frontendu neodpovídá verzi backendu!",
"Base URL": "Primární URL adresa",
"goAlertInfo": "GoAlert je aplikace s otevřeným zdrojovým kódem pro plánování hovorů, automatické eskalace a upozornění (jako jsou SMS nebo hlasové hovory). Automaticky zapojte správnou osobu, správným způsobem a ve správný čas! {0}",
"goAlertIntegrationKeyInfo": "Obecný API integrační klíč pro danou službu ve formátu \"aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee\" se obvykle nachází ve zkopírované URL jako hodnota parametru token.",
"goAlert": "GoAlert",
"backupOutdatedWarning": "Zastaralé: Vzhledem k tomu, že bylo přidáno mnoho funkcí a tato funkce zálohování je poněkud neudržovaná, nemůže vytvářet nebo obnovit kompletní zálohu.",
"backupRecommend": "Prosím, zálohujte si ručně celý svazek nebo datovou složku (./data/).",
"Optional": "Volitelný",
"squadcast": "Squadcast",
"SendKey": "SendKey",
"SMSManager API Docs": "Dokumentace SMSManager API ",
"Gateway Type": "Typ brány",
"SMSManager": "SMSManager",
"You can divide numbers with": "Čísla můžete oddělit pomocí",
"or": "nebo",
"recurringInterval": "Interval",
"Recurring": "Opakující se",
"strategyManual": "Ruční spuštění/vypnutí",
"warningTimezone": "Používá se časové pásmo serveru",
"weekdayShortMon": "Po",
"weekdayShortTue": "Út",
"weekdayShortWed": "St",
"weekdayShortThu": "Čt",
"weekdayShortFri": "Pá",
"weekdayShortSat": "So",
"weekdayShortSun": "Ne",
"dayOfWeek": "Den v týdnu",
"dayOfMonth": "Den v měsíci",
"lastDay": "Poslední den",
"lastDay1": "1. poslední den v měsíci",
"lastDay2": "2. poslední den v měsíci",
"lastDay3": "3. poslední den v měsíci",
"lastDay4": "4. poslední den v měsíci",
"No Maintenance": "Žádná údržba",
"pauseMaintenanceMsg": "Opravdu chcete údržbu pozastavit?",
"maintenanceStatus-under-maintenance": "Údržba",
"maintenanceStatus-inactive": "Neaktivní",
"maintenanceStatus-scheduled": "Naplánováno",
"maintenanceStatus-ended": "Ukončeno",
"maintenanceStatus-unknown": "Neznámý",
"Display Timezone": "Zobrazit časové pásmo",
"Server Timezone": "Časové pásmo serveru",
"statusPageMaintenanceEndDate": "Konec",
"IconUrl": "Adresa URL ikony",
"Enable DNS Cache": "Povolit DNS Cache",
"Enable": "Povolit",
"Disable": "Zakázat",
"dnsCacheDescription": "V některých IPv6 prostředích nemusí fungovat. Pokud narazíte na nějaké problémy, vypněte jej.",
"Single Maintenance Window": "Konkrétní časové okno pro údržbu",
"Maintenance Time Window of a Day": "Časové okno pro údržbu v daný den",
"Effective Date Range": "Časové období",
"Schedule Maintenance": "Naplánovat údržbu",
"Date and Time": "Datum a čas",
"DateTime Range": "Rozsah data a času",
"Strategy": "Strategie",
"Free Mobile User Identifier": "Identifikátor uživatele Free Mobile",
"Free Mobile API Key": "API klíč Free Mobile",
"Enable TLS": "Povolit TLS",
"Proto Service Name": "Proto Service Name",
"Proto Method": "Proto metoda",
"Proto Content": "Proto obsah",
"Economy": "Úsporná",
"Lowcost": "Nízkonákladová",
"high": "high",
"General Monitor Type": "Obecný typ dohledu",
"Passive Monitor Type": "Pasivní typ dohledu",
"Specific Monitor Type": "Konkrétní typ dohledu",
"dataRetentionTimeError": "Doba pro uchování musí být větší nebo rovna 0",
"infiniteRetention": "Pro nekonečný záznam zadejte 0.",
"confirmDeleteTagMsg": "Opravdu chcete odstranit tento štítek? Provedením této akce nedojde k odstranění dohledů, které jej mají přiřazeny.",
"Help": "Nápověda",
"Game": "Hra",
"Custom Monitor Type": "Vlastní typ dohledu",
"loadingError": "Nelze načíst data, zkuste to prosím později.",
"confirmUninstallPlugin": "Opravdu chcete tento zásuvný modul odinstalovat?",
"plugin": "Zásuvné moduly | Zásuvné moduly",
"install": "Instalace",
"installing": "Instaluji",
"uninstall": "Odinstalace",
"uninstalling": "Odinstalování",
"Packet Size": "Velikost paketu"
}

@ -0,0 +1,354 @@
{
"languageName": "Danish (Danmark)",
"Settings": "Indstillinger",
"Dashboard": "Betjeningspanel",
"New Update": "Opdatering tilgængelig",
"Language": "Sprog",
"Appearance": "Udseende",
"Theme": "Tema",
"General": "Generelt",
"Version": "Version",
"Check Update On GitHub": "Tjek efter opdateringer på Github",
"List": "Liste",
"Add": "Tilføj",
"Add New Monitor": "Tilføj ny Overvåger",
"Quick Stats": "Oversigt",
"Up": "Aktiv",
"Down": "Inaktiv",
"Pending": "Afventer",
"Unknown": "Ukendt",
"Pause": "Stands",
"pauseDashboardHome": "Standset",
"Name": "Navn",
"Status": "Status",
"DateTime": "Dato / Tid",
"Message": "Beskeder",
"No important events": "Inden vigtige begivenheder",
"Resume": "Fortsæt",
"Edit": "Rediger",
"Delete": "Slet",
"Current": "Aktuelt",
"Uptime": "Oppetid",
"Cert Exp.": "Certifikatets udløb",
"day": "Dag | Dage",
"-day": "-Dage",
"hour": "Timer",
"-hour": "-Timer",
"checkEverySecond": "Tjek hvert {0} sekund",
"Response": "Respons",
"Ping": "Ping",
"Monitor Type": "Overvåger Type",
"Keyword": "Nøgleord",
"Friendly Name": "Visningsnavn",
"URL": "URL",
"Hostname": "Hostname",
"Port": "Port",
"Heartbeat Interval": "Taktinterval",
"Retries": "Gentagelser",
"retriesDescription": "Maksimalt antal gentagelser, før tjenesten markeres som inaktiv og sender en meddelelse.",
"Advanced": "Avanceret",
"ignoreTLSError": "Ignorere TLS/SSL web fejl",
"Upside Down Mode": "Omvendt tilstand",
"upsideDownModeDescription": "Håndter tilstanden omvendt. Hvis tjenesten er tilgængelig, vises den som inaktiv.",
"Max. Redirects": "Maks. Omdirigeringer",
"maxRedirectDescription": "Maksimalt antal omdirigeringer, der skal følges. Indstil til 0 for at deaktivere omdirigeringer.",
"Accepted Status Codes": "Tilladte HTTP-Statuskoder",
"acceptedStatusCodesDescription": "Vælg de statuskoder, der stadig skal vurderes som vellykkede.",
"Save": "Gem",
"Notifications": "Underretninger",
"Not available, please setup.": "Ikke tilgængelige, opsæt venligst.",
"Setup Notification": "Opsæt underretninger",
"Light": "Lys",
"Dark": "Mørk",
"Auto": "Auto",
"Theme - Heartbeat Bar": "Tema - Tidslinje",
"Normal": "Normal",
"Bottom": "Bunden",
"None": "Ingen",
"Timezone": "Tidszone",
"Search Engine Visibility": "Søgemaskine synlighed",
"Allow indexing": "Tillad indeksering",
"Discourage search engines from indexing site": "Frabed søgemaskiner at indeksere webstedet",
"Change Password": "Ændre adgangskode",
"Current Password": "Nuværende adgangskode",
"New Password": "Ny adgangskode",
"Repeat New Password": "Gentag den nye adgangskode",
"passwordNotMatchMsg": "Adgangskoderne er ikke ens.",
"Update Password": "Opdater adgangskode",
"Disable Auth": "Deaktiver autentificering",
"Enable Auth": "Aktiver autentificering",
"Logout": "Log ud",
"notificationDescription": "Tildel underretninger til Overvåger(e), så denne funktion træder i kraft.",
"Leave": "Verlassen",
"I understand, please disable": "Jeg er indforstået, deaktiver venligst",
"Confirm": "Bekræft",
"Yes": "Ja",
"No": "Nej",
"Username": "Brugernavn",
"Password": "Adgangskode",
"Remember me": "Husk mig",
"Login": "Log ind",
"No Monitors, please": "Ingen Overvågere",
"add one": "tilføj en",
"Notification Type": "Underretningstype",
"Email": "E-Mail",
"Test": "Test",
"Certificate Info": "Certifikatoplysninger",
"keywordDescription": "Søg efter et søgeord i almindelig HTML- eller JSON -output. Bemærk, at der skelnes mellem store og små bogstaver.",
"deleteMonitorMsg": "Er du sikker på, at du vil slette overvågeren?",
"deleteNotificationMsg": "Er du sikker på, at du vil slette denne underretning for alle overvågere?",
"resolverserverDescription": "Cloudflare er standardserveren, den kan til enhver tid ændres.",
"Resolver Server": "Navne-server",
"rrtypeDescription": "Vælg den type RR, du vil overvåge.",
"Last Result": "Seneste resultat",
"pauseMonitorMsg": "Er du sikker på, at du vil standse Overvågeren?",
"Create your admin account": "Opret din administratorkonto",
"Repeat Password": "Gentag adgangskoden",
"Resource Record Type": "Resource Record Type",
"respTime": "Resp. Tid (ms)",
"notAvailableShort": "N/A",
"Create": "Opret",
"clearEventsMsg": "Er du sikker på vil slette alle events for denne Overvåger?",
"clearHeartbeatsMsg": "Er du sikker på vil slette alle hjerteslag for denne Overvåger?",
"confirmClearStatisticsMsg": "Vil du helt sikkert slette ALLE statistikker?",
"Clear Data": "Ryd Data",
"Events": "Events",
"Heartbeats": "Hjerteslag",
"Auto Get": "Auto-hent",
"enableDefaultNotificationDescription": "For hver ny overvåger aktiveres denne underretning som standard. Du kan stadig deaktivere underretningen separat for hver skærm.",
"Default enabled": "Standard aktiveret",
"Also apply to existing monitors": "Anvend også på eksisterende overvågere",
"Export": "Eksport",
"Import": "Import",
"backupDescription": "Du kan sikkerhedskopiere alle Overvågere og alle underretninger til en JSON-fil.",
"backupDescription2": "PS: Historik og hændelsesdata er ikke inkluderet.",
"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": "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": "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": "Hjerteslag Gentagelsesinterval",
"Import Backup": "Importer Backup",
"Export Backup": "Eksporter Backup",
"Skip existing": "Spring over eksisterende",
"Overwrite": "Overskriv",
"Options": "Valgmuligheder",
"Keep both": "Behold begge",
"Tags": "Etiketter",
"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": "Grøn",
"Blue": "Blå",
"Indigo": "Indigo",
"Purple": "Lilla",
"Pink": "Pink",
"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 Betjeningspanel",
"Status Page": "Statusside",
"Status Pages": "Statusside",
"telegram": "Telegram",
"webhook": "Webhook",
"smtp": "Email (SMTP)",
"discord": "Discord",
"teams": "Microsoft Teams",
"signal": "Signal",
"gotify": "Gotify",
"slack": "Slack",
"rocket.chat": "Rocket.chat",
"pushover": "Pushover",
"pushy": "Pushy",
"octopush": "Octopush",
"promosms": "PromoSMS",
"lunasea": "LunaSea",
"apprise": "Apprise (Understøtter 50+ Notifikationstjenester)",
"pushbullet": "Pushbullet",
"line": "Line Messenger",
"mattermost": "Mattermost",
"Primary Base URL": "Primær Basis-URL",
"Push URL": "Push URL",
"needPushEvery": "Du bør kalde denne webadresse hvert {0} sekund.",
"pushOptionalParams": "Valgfrie parametre: {0}",
"defaultNotificationName": "Min {notification} Advarsel ({number})",
"here": "her",
"Required": "Påkrævet",
"Bot Token": "Bot Token",
"wayToGetTelegramToken": "Du kan få et token fra {0}.",
"Chat ID": "Chat ID",
"supportTelegramChatID": "Support Direct Chat / Group / Channel's Chat ID",
"wayToGetTelegramChatID": "Du kan få dit chat-ID ved at sende en besked til bot'en og gå til denne URL for at se chat_id'et:",
"YOUR BOT TOKEN HERE": "DIT BOT TOKEN HER",
"chatIDNotFound": "Chat-ID blev ikke fundet; send venligst en besked til denne bot først ",
"Post URL": "Post URL",
"Content Type": "Indholdstype",
"webhookJsonDesc": "{0} er god til alle moderne HTTP-servere som f.eks Express.js",
"webhookFormDataDesc": "{multipart} er god til PHP. JSON'en skal parses med {decodeFunction}",
"secureOptionNone": "Ingen / STARTTLS (25, 587)",
"secureOptionTLS": "TLS (465)",
"Ignore TLS Error": "Ignorer TLS-fejl",
"From Email": "Afsender Email",
"emailCustomSubject": "Brugerdefineret Emne",
"To Email": "Modtager Email",
"smtpCC": "CC",
"smtpBCC": "BCC",
"Discord Webhook URL": "Discord Webhook URL",
"wayToGetDiscordURL": "Du kan få dette ved at gå til Serverindstillinger -> Integrationer -> Opret webhook ",
"Bot Display Name": "Bot Visningsnavn",
"Prefix Custom Message": "Præfiks Brugerdefineret Besked",
"Hello @everyone is...": "Hello {'@'}everyone is...",
"Webhook URL": "Webhook URL",
"wayToGetTeamsURL": "Du kan lære, hvordan du laver en webhook URL {0}.",
"Number": "Nummer",
"Recipients": "Modtagere",
"needSignalAPI": "Du skal have en Signal-klient med REST API.",
"wayToCheckSignalURL": "Du kan tjekke denne URL for at se, hvordan du konfigurerer en:",
"signalImportant": "VIGTIGT: Du kan ikke blande grupper og numre i modtagere!",
"Application Token": "Program Token",
"Server URL": "Server URL",
"Priority": "Prioritet",
"Icon Emoji": "Icon Emoji",
"Channel Name": "Kanalnavn",
"Uptime Kuma URL": "Uptime Kuma URL",
"aboutWebhooks": "Mere info om Webhooks på: {0}",
"aboutChannelName": "Indtast kanalnavnet i {0} Kanalnavn feltet, hvis du vil omgå Webhook-kanalen. Eks: #anden-kanal",
"aboutKumaURL": "Hvis du efterlader Uptime Kuma URL-feltet tomt, vil det som standard gå til projektets GitHub-siden.",
"emojiCheatSheet": "Emoji cheat sheet: {0}",
"clicksendsms": "ClickSend SMS",
"User Key": "Bruger-Nøgle",
"Device": "Enhed",
"Message Title": "Besked Titel",
"Notification Sound": "Notifikationslyd",
"More info on:": "Mere info på: {0}",
"pushoverDesc1": "Nødprioritet (2) har som standard 30 sekunders timeout mellem genforsøg og udløber efter 1 time.",
"pushoverDesc2": "Hvis du vil sende meddelelser til forskellige enheder, skal du udfylde feltet Enhed.",
"SMS Type": "SMS Type",
"octopushTypePremium": "Premium (Hurtig - anbefales til advarsel)",
"octopushTypeLowCost": "Lavpris (Langsom - nogle gange blokeret af operatøren)",
"checkPrice": "Tjek {0} priser:",
"apiCredentials": "API legitimationsoplysninger",
"octopushLegacyHint": "Bruger du den ældre version af Octopush (2011-2020) eller den nye version?",
"Check octopush prices": "Tjek octopush priser {0}.",
"octopushPhoneNumber": "Telefonnummer (intl format, f.eks : +4512345678) ",
"octopushSMSSender": "SMS Afsender Navn : 3-11 alfanumeriske tegn og mellemrum (a-zA-Z0-9)",
"LunaSea Device ID": "LunaSea Enhed-ID",
"Apprise URL": "Apprise URL",
"Example:": "Eksempel: {0}",
"Read more:": "Læs mere: {0}",
"Status:": "Status: {0}",
"Read more": "Læs mere",
"appriseInstalled": "Apprise er installeret.",
"appriseNotInstalled": "Apprise er ikke installeret. {0}",
"Access Token": "Access Token",
"Channel access token": "kanaladgangstoken",
"Line Developers Console": "Line Udviklerkonsol",
"lineDevConsoleTo": "Line Udviklerkonsol - {0}",
"Basic Settings": "Basisindstillinger",
"User ID": "Bruger-ID",
"Messaging API": "Messaging API",
"wayToGetLineChannelToken": "Tilgå først {0}, opret en udbyder og kanal (Messaging API), så kan du få kanaladgangstoken'et og bruger-ID'et fra de ovennævnte menupunkter.",
"Icon URL": "Ikon URL",
"aboutIconURL": "Du kan angive et link til et billede i \"Ikon URL\" for at tilsidesætte standardprofilbilledet. Vil ikke blive brugt, hvis Ikon Emoji er angivet.",
"aboutMattermostChannelName": "Du kan tilsidesætte standardkanalen, som Webhoo'en sender til ved at indtaste kanalnavnet i feltet \"Kanalnavn\". Dette skal aktiveres i Mattermost Webhook-indstillingerne. Eks: #anden-kanal",
"matrix": "Matrix",
"promosmsTypeEco": "SMS ECO - billig, men langsom og ofte overbelastet. Begrænset kun til polske modtagere.",
"promosmsTypeFlash": "SMS FLASH - Beskeden vises automatisk på modtagerenheden. Begrænset kun til polske modtagere.",
"promosmsTypeFull": "SMS FULL - Premium-niveau af SMS, Du kan bruge dit \"Sender Name\" (Du skal først registrere navn). Pålidelig til advarsler.",
"promosmsTypeSpeed": "SMS SPEED - Højeste prioritet i systemet. Meget hurtig og pålidelig, men dyr (ca. to gange af SMS FULL pris).",
"promosmsPhoneNumber": "Telefonnummer (polske numre behøver ikke angive områdenumre)",
"promosmsSMSSender": "SMS Sender Name : Forudregistreret navn eller en af standarderne: InfoSMS, SMS Info, MaxSMS, INFO, SMS",
"Feishu WebHookUrl": "Feishu WebHookURL",
"matrixHomeserverURL": "Hjemmeserver-URL (med http(s):// og eventuel port)",
"Internal Room Id": "Intern Rum-ID",
"matrixDesc1": "Du kan finde det interne rum-ID ved at se i det avancerede afsnit af rumindstillingerne i din Matrix-klient. Det skulle ligne !QMdRCpUIfLwsfjxye6:home.server.",
"matrixDesc2": "Det anbefales stærkt, at du opretter en ny bruger og ikke bruger din egen Matrix-brugers adgangstoken, da det giver fuld adgang til din konto og alle de rum, du har tilsluttet dig. I stedet skal du oprette en ny bruger og kun invitere den til det rum, du vil modtage meddelelsen i. Du kan få adgangstokenet ved at køre {0}",
"Method": "Metode",
"Body": "Body",
"Headers": "Headers",
"PushUrl": "Push URL",
"HeadersInvalidFormat": "\"request headers\"-erne er ikke gyldige JSON: ",
"BodyInvalidFormat": "\"request body\"-en er ikke gyldige JSON: ",
"Monitor History": "Overvåger Historik",
"clearDataOlderThan": "Gem overvågningshistorikdata i {0} dage.",
"PasswordsDoNotMatch": "Adgangskoderne stemmer ikke overens.",
"records": "forekomster",
"One record": "Én forekomst",
"steamApiKeyDescription": "For at overvåge en Steam Game Server skal du bruge en Steam Web-API nøgle. Du kan registrere din API-nøgle her: ",
"Current User": "Nuværende Bruger",
"recent": "Seneste",
"Done": "Færdig",
"Info": "Info",
"Security": "Sikkerhed",
"Steam API Key": "Steam API-nøgle",
"Shrink Database": "Krymp Database",
"Pick a RR-Type...": "Vælg en RR-Type...",
"Pick Accepted Status Codes...": "Vælg Accepterede Statuskoder...",
"Default": "Standard",
"HTTP Options": "HTTP Valgmuligheder",
"Create Incident": "Opret Annoncering",
"Title": "Titel",
"Content": "Indhold",
"Style": "Type",
"info": "info",
"warning": "advarsel",
"danger": "fare",
"primary": "primær",
"light": "lys",
"dark": "mørk",
"Post": "Udgiv",
"Please input title and content": "Indtast venligst titel og indhold",
"Created": "Oprettet",
"Last Updated": "Sidst Opdateret",
"Unpin": "Frigør",
"Switch to Light Theme": "Skift til Lys Tema",
"Switch to Dark Theme": "Skift til Mørkt Tema",
"Show Tags": "Vis Etiketter",
"Hide Tags": "Skjul Etiketter",
"Description": "Beskrivelse",
"No monitors available.": "No monitors available.",
"Add one": "Tilføj en",
"No Monitors": "Ingen Overvågere",
"Untitled Group": "Unavngivet Gruppe",
"Services": "Tjenester",
"Discard": "Kassér",
"Cancel": "Annullér",
"Powered by": "Drevet af",
"shrinkDatabaseDescription": "Udfør database VACUUM for SQLite. Hvis din database er oprettet efter 1.10.0, er AUTO_VACUUM allerede aktiveret, og denne handling er ikke nødvendig.",
"serwersms": "SerwerSMS.pl",
"serwersmsAPIUser": "API Brugernavn (inkl. webapi_ prefix)",
"serwersmsAPIPassword": "API Adgangskode",
"serwersmsPhoneNumber": "Telefonnummer",
"serwersmsSenderName": "SMS Afsender Navn (registreret via kundeportal)"
}

@ -0,0 +1,633 @@
{
"languageName": "Deutsch (Schweiz)",
"Settings": "Einstellungen",
"Dashboard": "Dashboard",
"New Update": "Update verfügbar",
"Language": "Sprache",
"Appearance": "Erscheinungsbild",
"Theme": "Erscheinungsbild",
"General": "Allgemein",
"Version": "Version",
"Check Update On GitHub": "Auf GitHub nach Updates suchen",
"List": "Liste",
"Add": "Hinzufügen",
"Add New Monitor": "Neuen Monitor hinzufügen",
"Quick Stats": "Übersicht",
"Up": "Aktiv",
"Down": "Inaktiv",
"Pending": "Ausstehend",
"Unknown": "Unbekannt",
"Pause": "Pausieren",
"pauseDashboardHome": "Pausiert",
"Name": "Name",
"Status": "Status",
"DateTime": "Datum / Uhrzeit",
"Message": "Nachricht",
"No important events": "Keine wichtigen Ereignisse",
"Resume": "Fortsetzen",
"Edit": "Bearbeiten",
"Delete": "Löschen",
"Current": "Aktuell",
"Uptime": "Verfügbarkeit",
"Cert Exp.": "Zertifikatsablauf",
"day": "Tag | Tage",
"-day": "-Tage",
"hour": "Stunde",
"-hour": "-Stunden",
"checkEverySecond": "Überprüfe alle {0} Sekunden",
"Response": "Antwortzeit",
"Ping": "Ping",
"Monitor Type": "Monitor-Typ",
"Keyword": "Suchwort",
"Friendly Name": "Anzeigename",
"URL": "URL",
"Hostname": "Hostname",
"Port": "Port",
"Heartbeat Interval": "Prüfintervall",
"Retries": "Wiederholungen",
"retriesDescription": "Maximale Anzahl von Wiederholungen, bevor der Dienst als inaktiv markiert und eine Benachrichtigung gesendet wird.",
"Advanced": "Erweitert",
"ignoreTLSError": "Ignoriere TLS-/SSL-Fehler von Webseiten",
"Upside Down Mode": "Umgekehrter Modus",
"upsideDownModeDescription": "Im umgekehrten Modus wird der Dienst als inaktiv angezeigt, wenn er erreichbar ist.",
"Max. Redirects": "Max. Weiterleitungen",
"maxRedirectDescription": "Maximale Anzahl von Weiterleitungen, denen gefolgt werden soll. Auf 0 setzen, um Weiterleitungen zu deaktivieren.",
"Accepted Status Codes": "Erlaubte HTTP-Statuscodes",
"acceptedStatusCodesDescription": "Statuscodes auswählen, die als erfolgreiche Verbindung gelten sollen.",
"Save": "Speichern",
"Notifications": "Benachrichtigungen",
"Not available, please setup.": "Nicht verfügbar, bitte einrichten.",
"Setup Notification": "Benachrichtigung einrichten",
"Light": "Hell",
"Dark": "Dunkel",
"Auto": "Auto",
"Theme - Heartbeat Bar": "Erscheinungsbild - Zeitleiste",
"Normal": "Normal",
"Bottom": "Unten",
"None": "Keine",
"Timezone": "Zeitzone",
"Search Engine Visibility": "Sichtbarkeit für Suchmaschinen",
"Allow indexing": "Indizierung zulassen",
"Discourage search engines from indexing site": "Suchmaschinen darum bitten, die Seite nicht zu indizieren",
"Change Password": "Passwort ändern",
"Current Password": "Aktuelles Passwort",
"New Password": "Neues Passwort",
"Repeat New Password": "Neues Passwort wiederholen",
"passwordNotMatchMsg": "Passwörter stimmen nicht überein.",
"Update Password": "Passwort aktualisieren",
"Disable Auth": "Authentifizierung deaktivieren",
"Enable Auth": "Authentifizierung aktivieren",
"disableauth.message1": "Bist du sicher das du die <strong>Authentifizierung deaktivieren</strong> möchtest?",
"disableauth.message2": "Dies ist für Szenarien gedacht, <strong>in denen man eine externe Authentifizierung</strong> vor Uptime Kuma geschaltet hat, wie z.B. Cloudflare Access, Authelia oder andere Authentifizierungsmechanismen.",
"Please use this option carefully!": "Bitte mit Vorsicht nutzen!",
"Logout": "Ausloggen",
"notificationDescription": "Benachrichtigungen müssen einem Monitor zugewiesen werden, damit diese funktionieren.",
"Leave": "Verlassen",
"I understand, please disable": "Ich verstehe, bitte deaktivieren",
"Confirm": "Bestätigen",
"Yes": "Ja",
"No": "Nein",
"Username": "Benutzername",
"Password": "Passwort",
"Remember me": "Angemeldet bleiben",
"Login": "Einloggen",
"No Monitors, please": "Keine Monitore, bitte",
"add one": "hinzufügen",
"Notification Type": "Benachrichtigungsdienst",
"Email": "E-Mail",
"Test": "Test",
"Certificate Info": "Zertifikatsinformation",
"keywordDescription": "Ein Suchwort in der HTML- oder JSON-Ausgabe finden. Bitte beachte: es wird zwischen Gross-/Kleinschreibung unterschieden.",
"deleteMonitorMsg": "Bist du sicher, dass du den Monitor löschen möchtest?",
"deleteNotificationMsg": "Möchtest du diese Benachrichtigung wirklich für alle Monitore löschen?",
"resolverserverDescription": "Cloudflare ist als der Standardserver festgelegt. Dieser kann jederzeit geändert werden.",
"Resolver Server": "Auflösungsserver",
"rrtypeDescription": "Wähle den RR-Typ aus, welchen du überwachen möchtest.",
"Last Result": "Letztes Ergebnis",
"pauseMonitorMsg": "Bist du sicher, dass du den Monitor pausieren möchtest?",
"clearEventsMsg": "Bist du sicher, dass du alle Ereignisse für diesen Monitor löschen möchtest?",
"clearHeartbeatsMsg": "Bist du sicher, dass du alle Statistiken für diesen Monitor löschen möchtest?",
"Clear Data": "Lösche Daten",
"Events": "Ereignisse",
"Heartbeats": "Statistiken",
"confirmClearStatisticsMsg": "Bist du dir sicher, dass du ALLE Statistiken löschen möchtest?",
"Create your admin account": "Erstelle dein Admin-Konto",
"Repeat Password": "Passwort erneut eingeben",
"Resource Record Type": "Ressourcen Record Typ",
"Export": "Export",
"Import": "Import",
"respTime": "Antw.-Zeit (ms)",
"notAvailableShort": "N/A",
"Default enabled": "Standardmässig aktiviert",
"Apply on all existing monitors": "Auf alle existierenden Monitore anwenden",
"enableDefaultNotificationDescription": "Für jeden neuen Monitor wird diese Benachrichtigung standardmässig aktiviert. Die Benachrichtigung kann weiterhin für jeden Monitor separat deaktiviert werden.",
"Create": "Erstellen",
"Auto Get": "Auto Get",
"backupDescription": "Es können alle Monitore und Benachrichtigungen in einer JSON-Datei gesichert werden.",
"backupDescription2": "PS: Verlaufs- und Ereignisdaten sind nicht enthalten.",
"backupDescription3": "Sensible Daten wie Benachrichtigungs-Token sind in der Exportdatei enthalten, bitte bewahre sie sorgfältig auf.",
"alertNoFile": "Bitte wähle eine Datei zum Importieren aus.",
"alertWrongFileType": "Bitte wähle eine JSON-Datei aus.",
"Clear all statistics": "Lösche alle Statistiken",
"importHandleDescription": "Wähle 'Vorhandene überspringen' aus, wenn jeder Monitor oder jede Benachrichtigung mit demselben Namen übersprungen werden soll. 'Überschreiben' löscht jeden vorhandenen Monitor sowie Benachrichtigungen.",
"Skip existing": "Vorhandene überspringen",
"Overwrite": "Überschreiben",
"Options": "Optionen",
"confirmImportMsg": "Möchtest du das Backup wirklich importieren? Bitte stelle sicher, dass die richtige Import-Option ausgewählt ist.",
"Keep both": "Beide behalten",
"twoFAVerifyLabel": "Bitte trage deinen Token ein, um zu verifizieren, dass 2FA funktioniert",
"Verify Token": "Token verifizieren",
"Setup 2FA": "2FA einrichten",
"Enable 2FA": "2FA aktivieren",
"Disable 2FA": "2FA deaktivieren",
"2FA Settings": "2FA-Einstellungen",
"confirmEnableTwoFAMsg": "Bist du sicher, dass du 2FA aktivieren möchtest?",
"confirmDisableTwoFAMsg": "Bist du sicher, dass du 2FA deaktivieren möchtest?",
"tokenValidSettingsMsg": "Token gültig! Du kannst jetzt die 2FA-Einstellungen speichern.",
"Two Factor Authentication": "Zwei-Faktor-Authentifizierung",
"Active": "Aktiv",
"Inactive": "Inaktiv",
"Token": "Token",
"Show URI": "URI anzeigen",
"Tags": "Tags",
"Add New below or Select...": "Einen bestehenden Tag auswählen oder neuen hinzufügen…",
"Tag with this name already exist.": "Ein Tag mit diesem Namen existiert bereits.",
"Tag with this value already exist.": "Ein Tag mit diesem Wert existiert bereits.",
"color": "Farbe",
"value (optional)": "Wert (optional)",
"Gray": "Grau",
"Red": "Rot",
"Orange": "Orange",
"Green": "Grün",
"Blue": "Blau",
"Indigo": "Indigo",
"Purple": "Lila",
"Pink": "Pink",
"Search...": "Suchen…",
"Heartbeat Retry Interval": "Überprüfungsintervall",
"Resend Notification if Down X times consequently": "Benachrichtigung erneut senden, wenn Inaktiv X mal hintereinander",
"retryCheckEverySecond": "Alle {0} Sekunden neu versuchen",
"resendEveryXTimes": "Erneut versenden alle {0} mal",
"resendDisabled": "Erneut versenden deaktiviert",
"Import Backup": "Backup importieren",
"Export Backup": "Backup exportieren",
"Avg. Ping": "Ping ø",
"Avg. Response": "Antwortzeit ø",
"Entry Page": "Einstiegsseite",
"statusPageNothing": "Noch ist hier nichts. Bitte füge eine Gruppe oder einen 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 Status-Seite",
"Go to Dashboard": "Gehe zum Dashboard",
"Status Page": "Status-Seite",
"Status Pages": "Status-Seiten",
"telegram": "Telegram",
"webhook": "Webhook",
"smtp": "E-Mail (SMTP)",
"discord": "Discord",
"teams": "Microsoft Teams",
"signal": "Signal",
"gotify": "Gotify",
"slack": "Slack",
"rocket.chat": "Rocket.chat",
"pushover": "Pushover",
"pushy": "Pushy",
"octopush": "Octopush",
"promosms": "PromoSMS",
"lunasea": "LunaSea",
"apprise": "Apprise (Unterstützung für 50+ Benachrichtigungsdienste)",
"GoogleChat": "Google Chat (nur Google Workspace)",
"pushbullet": "Pushbullet",
"line": "Line Messenger",
"mattermost": "Mattermost",
"Primary Base URL": "Primär URL",
"Push URL": "Push URL",
"needPushEvery": "Du solltest diese URL alle {0} Sekunden aufrufen",
"pushOptionalParams": "Optionale Parameter: {0}",
"defaultNotificationName": "Mein {notification} Alarm ({number})",
"here": "hier",
"Required": "Erforderlich",
"Bot Token": "Bot Token",
"wayToGetTelegramToken": "Hier kannst du einen Token erhalten {0}.",
"Chat ID": "Chat ID",
"supportTelegramChatID": "Unterstützt Direkt Chat / Gruppe / Kanal Chat-ID's",
"wayToGetTelegramChatID": "Du kannst die Chat-ID erhalten, indem du eine Nachricht an den Bot sendest und zu dieser URL gehst, um die chat_id: zu sehen.",
"YOUR BOT TOKEN HERE": "HIER DEIN BOT TOKEN",
"chatIDNotFound": "Chat-ID wurde nicht gefunden: bitte sende zuerst eine Nachricht an diesen Bot",
"Post URL": "Post URL",
"Content Type": "Content Type",
"webhookJsonDesc": "{0} ist gut für alle modernen HTTP-Server, wie z.B. Express.js, geeignet",
"webhookFormDataDesc": "{multipart} ist gut für PHP. Das JSON muss mit {decodeFunction} verarbeitet werden",
"secureOptionNone": "Keine / STARTTLS (25, 587)",
"secureOptionTLS": "TLS (465)",
"Ignore TLS Error": "TLS-Fehler ignorieren",
"From Email": "Absender E-Mail",
"emailCustomSubject": "Benutzerdefinierter Betreff",
"To Email": "Empfänger E-Mail",
"smtpCC": "CC",
"smtpBCC": "BCC",
"Discord Webhook URL": "Discord Webhook URL",
"wayToGetDiscordURL": "Du kannst diese erhalten, indem du zu den Servereinstellungen gehst -> Integrationen -> Neuer Webhook",
"Bot Display Name": "Bot-Anzeigename",
"Prefix Custom Message": "Benutzerdefinierter Nachrichten Präfix",
"Hello @everyone is...": "Hallo {'@'}everyone ist…",
"Webhook URL": "Webhook URL",
"wayToGetTeamsURL": "Wie eine Webhook-URL erstellt werden kann, erfährst du {0}.",
"Number": "Nummer",
"Recipients": "Empfänger",
"needSignalAPI": "Es wird ein Signal Client mit REST-API benötigt.",
"wayToCheckSignalURL": "Du kannst diese URL aufrufen, um zu sehen, wie du eine einrichtest:",
"signalImportant": "WICHTIG: Gruppen und Nummern können in Empfängern nicht gemischt werden!",
"Application Token": "Anwendungstoken",
"Server URL": "Server URL",
"Priority": "Priorität",
"Icon Emoji": "Icon Emoji",
"Channel Name": "Kanalname",
"Uptime Kuma URL": "Uptime Kuma URL",
"aboutWebhooks": "Weitere Informationen zu Webhooks auf: {0}",
"aboutChannelName": "Gebe den Kanalnamen ein in {0} Feld Kanalname, falls du den Webhook-Kanal umgehen möchtest. Ex: #other-channel",
"aboutKumaURL": "Wenn das Feld für die Uptime Kuma URL leer gelassen wird, wird standardmässig die GitHub Projekt Seite verwendet.",
"emojiCheatSheet": "Emoji Cheat Sheet: {0}",
"User Key": "Benutzerschlüssel",
"Device": "Gerät",
"Message Title": "Nachrichtentitel",
"Notification Sound": "Benachrichtigungston",
"More info on:": "Mehr Infos auf: {0}",
"pushoverDesc1": "Notfallpriorität (2) hat standardmässig 30 Sekunden Auszeit zwischen den Versuchen und läuft nach 1 Stunde ab.",
"pushoverDesc2": "Fülle das Geräte Feld aus, wenn du Benachrichtigungen an verschiedene Geräte senden möchtest.",
"SMS Type": "SMS Typ",
"octopushTypePremium": "Premium (Schnell - zur Benachrichtigung empfohlen)",
"octopushTypeLowCost": "Kostengünstig (Langsam - manchmal vom Betreiber gesperrt)",
"checkPrice": "Prüfe {0} Preise:",
"octopushLegacyHint": "Verwendest du die Legacy-Version von Octopush (2011-2020) oder die neue Version?",
"Check octopush prices": "Vergleiche die Oktopush Preise {0}.",
"octopushPhoneNumber": "Telefonnummer (Internationales Format, z.B : +49612345678) ",
"octopushSMSSender": "Name des SMS-Absenders : 3-11 alphanumerische Zeichen und Leerzeichen (a-zA-Z0-9)",
"LunaSea Device ID": "LunaSea Geräte ID",
"Apprise URL": "Apprise URL",
"Example:": "Beispiel: {0}",
"Read more:": "Weiterlesen: {0}",
"Status:": "Status: {0}",
"Read more": "Weiterlesen",
"appriseInstalled": "Apprise ist installiert.",
"appriseNotInstalled": "Apprise ist nicht installiert. {0}",
"Access Token": "Access Token",
"Channel access token": "Channel access token",
"Line Developers Console": "Line Developers Console",
"lineDevConsoleTo": "Line Developers Console - {0}",
"Basic Settings": "Basic Settings",
"User ID": "User ID",
"Messaging API": "Messaging API",
"wayToGetLineChannelToken": "Rufe zuerst {0} auf, erstelle dann einen Provider und Channel (Messaging API). Als nächstes kannst du den Channel access token und die User ID aus den oben genannten Menüpunkten abrufen.",
"Icon URL": "Icon URL",
"aboutIconURL": "Du kannst einen Link zu einem Bild in 'Icon URL' übergeben um das Standardprofilbild zu überschreiben. Wird nicht verwendet, wenn ein Icon Emoji gesetzt ist.",
"aboutMattermostChannelName": "Du kannst den Standardkanal, auf dem der Webhook gesendet wird überschreiben, indem der Kanalnamen in das Feld 'Channel Name' eingeben wird. Dies muss in den Mattermost Webhook-Einstellungen aktiviert werden. Ex: #other-channel",
"matrix": "Matrix",
"promosmsTypeEco": "SMS ECO - billig, aber langsam und oft überladen. Auf polnische Empfänger beschränkt.",
"promosmsTypeFlash": "SMS FLASH - Die Nachricht wird automatisch auf dem Empfängergerät angezeigt. Auf polnische Empfänger beschränkt.",
"promosmsTypeFull": "SMS FULL - Premium Stufe von SMS, es kann der Absendernamen verwendet werden (Der Name musst zuerst registriert werden). Zuverlässig für Warnungen.",
"promosmsTypeSpeed": "SMS SPEED - Höchste Priorität im System. Sehr schnell und zuverlässig, aber teuer (Ungefähr das doppelte von SMS FULL).",
"promosmsPhoneNumber": "Telefonnummer (für polnische Empfänger können die Vorwahlen übersprungen werden)",
"promosmsSMSSender": "Name des SMS-Absenders : vorregistrierter Name oder einer der Standardwerte: InfoSMS, SMS Info, MaxSMS, INFO, SMS",
"Feishu WebHookUrl": "Feishu Webhook URL",
"matrixHomeserverURL": "Heimserver URL (mit http(s):// und optionalen Ports)",
"Internal Room Id": "Interne Raum-ID",
"matrixDesc1": "Die interne Raum-ID findest du im erweiterten Bereich der Raumeinstellungen im Matrix-Client. Es sollte aussehen wie z.B. !QMdRCpUIfLwsfjxye6:home.server.",
"matrixDesc2": "Es wird dringend empfohlen einen neuen Benutzer anzulegen und nicht den Zugriffstoken deines eigenen Matrix-Benutzers zu verwenden. Anderenfalls ermöglicht es vollen Zugriff auf dein Konto und alle Räume, denen du beigetreten bist. Erstelle stattdessen einen neuen Benutzer und lade ihn nur in den Raum ein, in dem du die Benachrichtigung erhalten möchtest. Du kannst den Zugriffstoken erhalten, indem du Folgendes ausführst {0}",
"Method": "Method",
"Body": "Body",
"Headers": "Headers",
"PushUrl": "Push URL",
"HeadersInvalidFormat": "Der Header ist kein gültiges JSON: ",
"BodyInvalidFormat": "Der Body ist kein gültiges JSON: ",
"Monitor History": "Monitor Verlauf",
"clearDataOlderThan": "Bewahre die Aufzeichnungsdaten für {0} Tage auf.",
"PasswordsDoNotMatch": "Passwörter stimmen nicht überein.",
"records": "Einträge",
"One record": "Ein Eintrag",
"steamApiKeyDescription": "Um einen Steam Game Server zu überwachen, wird ein Steam Web-API-Schlüssel benötigt. Dieser kann hier registriert werden: ",
"Current User": "Aktueller Benutzer",
"recent": "Letzte",
"Done": "Fertig",
"Info": "Info",
"Security": "Sicherheit",
"Steam API Key": "Steam API Key",
"Shrink Database": "Datenbank verkleinern",
"Pick a RR-Type...": "Wähle ein RR-Typ aus…",
"Pick Accepted Status Codes...": "Wähle akzeptierte Statuscodes aus…",
"Default": "Standard",
"HTTP Options": "HTTP Optionen",
"Create Incident": "Vorfall erstellen",
"Title": "Titel",
"Content": "Inhalt",
"Style": "Stil",
"info": "info",
"warning": "warnung",
"danger": "gefahr",
"primary": "primär",
"light": "hell",
"dark": "dunkel",
"Post": "Eintrag",
"Please input title and content": "Bitte Titel und Inhalt eingeben",
"Created": "Erstellt",
"Last Updated": "Zuletzt aktualisiert",
"Unpin": "Loslösen",
"Switch to Light Theme": "Zu hellem Thema wechseln",
"Switch to Dark Theme": "Zum dunklen Thema wechseln",
"Show Tags": "Tags anzeigen",
"Hide Tags": "Tags ausblenden",
"Description": "Beschreibung",
"No monitors available.": "Keine Monitore verfügbar.",
"Add one": "Hinzufügen",
"No Monitors": "Keine Monitore",
"Untitled Group": "Gruppe ohne Titel",
"Services": "Dienste",
"Discard": "Verwerfen",
"Cancel": "Abbrechen",
"Powered by": "Powered by",
"shrinkDatabaseDescription": "Löse VACUUM für die SQLite Datenbank aus. Wenn die Datenbank nach 1.10.0 erstellt wurde, ist AUTO_VACUUM bereits aktiviert und diese Aktion ist nicht erforderlich.",
"serwersms": "SerwerSMS.pl",
"serwersmsAPIUser": "API Benutzername (inkl. webapi_ prefix)",
"serwersmsAPIPassword": "API Passwort",
"serwersmsPhoneNumber": "Telefonnummer",
"serwersmsSenderName": "Name des SMS-Absenders (über Kundenportal registriert)",
"stackfield": "Stackfield",
"clicksendsms": "ClickSend SMS",
"apiCredentials": "API Zugangsdaten",
"smtpDkimSettings": "DKIM Einstellungen",
"smtpDkimDesc": "Details zur Konfiguration sind in der Nodemailer DKIM {0} zu finden.",
"documentation": "Dokumentation",
"smtpDkimDomain": "Domain Name",
"smtpDkimKeySelector": "Schlüssel Auswahl",
"smtpDkimPrivateKey": "Privater Schlüssel",
"smtpDkimHashAlgo": "Hash-Algorithmus (Optional)",
"smtpDkimheaderFieldNames": "Zu validierende Header-Schlüssel (optional)",
"smtpDkimskipFields": "Zu ignorierende Header Schlüssel (optional)",
"PushByTechulus": "Push by Techulus",
"gorush": "Gorush",
"alerta": "Alerta",
"alertaApiEndpoint": "API Endpunkt",
"alertaEnvironment": "Umgebung",
"alertaApiKey": "API Schlüssel",
"alertaAlertState": "Alarmstatus",
"alertaRecoverState": "Wiederherstellungsstatus",
"deleteStatusPageMsg": "Bist du sicher, dass du diese Status-Seite löschen willst?",
"Proxies": "Proxies",
"default": "Standard",
"enabled": "Aktiviert",
"setAsDefault": "Als Standard setzen",
"deleteProxyMsg": "Bist du sicher, dass du diesen Proxy für alle Monitore löschen willst?",
"proxyDescription": "Proxies müssen einem Monitor zugewiesen werden, um zu funktionieren.",
"enableProxyDescription": "Dieser Proxy wird keinen Effekt auf Monitor-Anfragen haben, bis er aktiviert ist. Du kannst ihn temporär von allen Monitoren nach Aktivierungsstatus deaktivieren.",
"setAsDefaultProxyDescription": "Dieser Proxy wird standardmässig für alle neuen Monitore aktiviert sein. Du kannst den Proxy immer noch für jeden Monitor einzeln deaktivieren.",
"Certificate Chain": "Zertifikatskette",
"Valid": "Gültig",
"Invalid": "Ungültig",
"AccessKeyId": "AccessKey ID",
"SecretAccessKey": "AccessKey Secret",
"PhoneNumbers": "Telefonnummern",
"TemplateCode": "Vorlagencode",
"SignName": "Signaturname",
"Sms template must contain parameters: ": "SMS Vorlage muss folgende Parameter enthalten: ",
"Bark Endpoint": "Bark Endpunkt",
"WebHookUrl": "Webhook URL",
"SecretKey": "Geheimer Schlüssel",
"For safety, must use secret key": "Zur Sicherheit muss ein geheimer Schlüssel verwendet werden",
"Device Token": "Gerätetoken",
"Platform": "Platform",
"iOS": "iOS",
"Android": "Android",
"Huawei": "Huawei",
"High": "Hoch",
"Retry": "Wiederholungen",
"Topic": "Thema",
"WeCom Bot Key": "WeCom Bot Schlüssel",
"Setup Proxy": "Proxy einrichten",
"Proxy Protocol": "Proxy Protokoll",
"Proxy Server": "Proxy-Server",
"Proxy server has authentication": "Proxy-Server hat Authentifizierung",
"User": "Benutzer",
"Installed": "Installiert",
"Not installed": "Nicht installiert",
"Running": "Läuft",
"Not running": "Gestoppt",
"Remove Token": "Token entfernen",
"Start": "Start",
"Stop": "Stop",
"Uptime Kuma": "Uptime Kuma",
"Add New Status Page": "Neue Status-Seite hinzufügen",
"Slug": "Slug",
"Accept characters:": "Akzeptierte Zeichen:",
"startOrEndWithOnly": "Nur mit {0} anfangen und enden",
"No consecutive dashes": "Keine aufeinanderfolgenden Bindestriche",
"Next": "Weiter",
"The slug is already taken. Please choose another slug.": "Der Slug ist bereits in Verwendung. Bitte wähle einen anderen.",
"No Proxy": "Kein Proxy",
"Authentication": "Authentifizierung",
"HTTP Basic Auth": "HTTP Basisauthentifizierung",
"New Status Page": "Neue Status-Seite",
"Page Not Found": "Seite nicht gefunden",
"Reverse Proxy": "Reverse Proxy",
"Backup": "Sicherung",
"About": "Über",
"wayToGetCloudflaredURL": "(Lade Cloudflare von {0} herunter)",
"cloudflareWebsite": "Cloudflare Website",
"Message:": "Nachricht:",
"Don't know how to get the token? Please read the guide:": "Du weisst nicht, wie man den Token bekommt? Lies die Anleitung dazu:",
"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.": "Die aktuelle Verbindung kann unterbrochen werden, wenn du aktuell über Cloudflare Tunnel verbunden bist. Bist du sicher, dass du es stoppen willst? Gib zur Bestätigung dein aktuelles Passwort ein.",
"Other Software": "Andere Software",
"For example: nginx, Apache and Traefik.": "Zum Beispiel: nginx, Apache und Traefik.",
"Please read": "Bitte lesen",
"Subject:": "Betreff:",
"Valid To:": "Gültig bis:",
"Days Remaining:": "Tage verbleibend:",
"Issuer:": "Aussteller:",
"Fingerprint:": "Fingerabdruck:",
"No status pages": "Keine Status-Seiten",
"Domain Name Expiry Notification": "Benachrichtigung bei Ablauf des Domainnamens",
"Customize": "Anpassen",
"Custom Footer": "Eigener Footer",
"Custom CSS": "Eigenes CSS",
"Footer Text": "Fusszeile",
"Show Powered By": "Zeige 'Powered By'",
"Date Created": "Erstellt am",
"Domain Names": "Domainnamen",
"signedInDisp": "Angemeldet als {0}",
"signedInDispDisabled": "Authentifizierung deaktiviert.",
"dnsPortDescription": "DNS server port. Standard ist 53. Der Port kann jederzeit geändert werden.",
"topic": "Thema",
"topicExplanation": "MQTT Thema für den monitor",
"successMessage": "Erfolgsnachricht",
"successMessageExplanation": "MQTT Nachricht, die als Erfolg angesehen wird",
"error": "Fehler",
"critical": "kritisch",
"wayToGetPagerDutyKey": "Dieser kann unter Service -> Service Directory -> (Select a service) -> Integrations -> Add integration gefunden werden. Hier muss nach \"Events API V2\" gesucht werden. Mehr informationen {0}",
"Integration Key": "Schlüssel der Integration",
"Integration URL": "URL der Integration",
"Auto resolve or acknowledged": "Automatisch lösen oder bestätigen",
"do nothing": "nichts tun",
"auto acknowledged": "automatisch bestätigen",
"auto resolve": "automatisch lösen",
"Bark Group": "Bark Gruppe",
"Bark Sound": "Bark Klang",
"HTTP Headers": "HTTP Kopfzeilen",
"Trust Proxy": "Vertrauenswürdiger Proxy",
"Proxy": "Proxy",
"HomeAssistant": "Home Assistant",
"onebotHttpAddress": "OneBot HTTP Adresse",
"onebotMessageType": "OneBot Nachrichtentyp",
"onebotGroupMessage": "Gruppe",
"onebotPrivateMessage": "Privat",
"onebotUserOrGroupId": "Gruppe/Nutzer ID",
"onebotSafetyTips": "Zur Sicherheit ein access token setzen",
"PushDeer Key": "PushDeer Schlüssel",
"RadiusSecret": "Radius Geheimnis",
"RadiusSecretDescription": "Geteiltes Geheimnis zwischen Client und Server",
"RadiusCalledStationId": "ID der angesprochenen Station",
"RadiusCalledStationIdDescription": "Identifikation des angesprochenen Geräts",
"RadiusCallingStationId": "ID der ansprechenden Station",
"RadiusCallingStationIdDescription": "Identifikation des ansprechenden Geräts",
"Certificate Expiry Notification": "Benachrichtigung ablaufendes Zertifikat",
"API Username": "API Nutzername",
"API Key": "API Schlüssel",
"Recipient Number": "Empfängernummer",
"From Name/Number": "Von Name/Nummer",
"Leave blank to use a shared sender number.": "Leer lassen um eine geteilte Absendernummer zu nutzen.",
"Octopush API Version": "Octopush API Version",
"Legacy Octopush-DM": "Legacy Octopush-DM",
"endpoint": "Endpunkt",
"octopushAPIKey": "\"API Schlüssel\" der HTTP API Zugangsdaten im control panel",
"octopushLogin": "\"Login\" der HTTP API Zugangsdaten im control panel",
"promosmsLogin": "API Login Name",
"promosmsPassword": "API Password",
"pushoversounds pushover": "Pushover (Standard)",
"pushoversounds bike": "Fahrrad",
"pushoversounds bugle": "Signalhorn",
"pushoversounds cashregister": "Kasse",
"pushoversounds classical": "Klassisch",
"pushoversounds cosmic": "Kosmisch",
"pushoversounds falling": "Abfallend",
"pushoversounds gamelan": "Gamelan",
"pushoversounds incoming": "Eingang",
"pushoversounds intermission": "Pause",
"pushoversounds magic": "Magisch",
"pushoversounds mechanical": "Mechanisch",
"pushoversounds pianobar": "Piano Bar",
"pushoversounds siren": "Sirene",
"pushoversounds spacealarm": "Space Alarm",
"pushoversounds tugboat": "Schlepper Horn",
"pushoversounds alien": "Ausserirdisch (lang)",
"pushoversounds climb": "Ansteigende (lang)",
"pushoversounds persistent": "Hartnäckig (lang)",
"pushoversounds echo": "Pushover Echo (lang)",
"pushoversounds updown": "Auf und Ab (lang)",
"pushoversounds vibrate": "Nur vibrieren",
"pushoversounds none": "Nichts (Stille)",
"pushyAPIKey": "Geheimer API Schlüssel",
"pushyToken": "Gerätetoken",
"Show update if available": "Verfügbare Updates anzeigen",
"Also check beta release": "Auch nach beta Versionen schauen",
"Using a Reverse Proxy?": "Wird ein Reverse Proxy genutzt?",
"Check how to config it for WebSocket": "Prüfen, wie er für die Nutzung mit WebSocket konfiguriert wird",
"Steam Game Server": "Steam Game Server",
"Most likely causes:": "Wahrscheinliche Ursachen:",
"The resource is no longer available.": "Die Quelle ist nicht mehr verfügbar.",
"There might be a typing error in the address.": "Es gibt einen Tippfehler in der Adresse.",
"What you can try:": "Was du versuchen kannst:",
"Retype the address.": "Schreibe die Adresse erneut.",
"Go back to the previous page.": "Gehe zur vorigen Seite.",
"Coming Soon": "Kommt bald",
"wayToGetClickSendSMSToken": "Du kannst einen API Nutzernamen und Schlüssel unter {0} erhalten.",
"Connection String": "Verbindungstext",
"Query": "Abfrage",
"settingsCertificateExpiry": "TLS Zertifikatsablauf",
"certificationExpiryDescription": "HTTPS Monitore senden eine Benachrichtigung, wenn das Zertifikat abläuft in:",
"Setup Docker Host": "Docker Host einrichten",
"Connection Type": "Verbindungstyp",
"Docker Daemon": "Docker Daemon",
"deleteDockerHostMsg": "Bist du sicher diesen docker host für alle Monitore zu löschen?",
"socket": "Socket",
"tcp": "TCP / HTTP",
"Docker Container": "Docker Container",
"Container Name / ID": "Container Name / ID",
"Docker Host": "Docker Host",
"Docker Hosts": "Docker Hosts",
"ntfy Topic": "ntfy Thema",
"Domain": "Domain",
"Workstation": "Workstation",
"disableCloudflaredNoAuthMsg": "Du bist im nicht-authentifizieren Modus, ein Passwort wird nicht benötigt.",
"trustProxyDescription": "Vertraue 'X-Forwarded-*' headern. Wenn man die richtige client IP haben möchte und Uptime Kuma hinter einem Proxy wie Nginx or Apache läuft, wollte dies aktiviert werden.",
"wayToGetLineNotifyToken": "Du kannst hier ein Token erhalten: {0}",
"Examples": "Beispiele",
"Home Assistant URL": "Home Assistant URL",
"Long-Lived Access Token": "Lange gültiges Access Token",
"Long-Lived Access Token can be created by clicking on your profile name (bottom left) and scrolling to the bottom then click Create Token. ": "Lange gültige Access Token können durch klicken auf den Profilnamen (unten links) und dann einen Klick auf Create Token am Ende erstellt werden. ",
"Notification Service": "Benachrichtigungsdienst",
"default: notify all devices": "standard: Alle Geräte benachrichtigen",
"A list of Notification Services can be found in Home Assistant under \"Developer Tools > Services\" search for \"notification\" to find your device/phone name.": "Eine Liste der Benachrichtigungsdienste kann im Home Assistant unter \"Developer Tools > Services\" gefunden werden, wnen man nach \"notification\" sucht um den Geräte-/Telefonnamen zu finden.",
"Automations can optionally be triggered in Home Assistant:": "Automatisierungen können optional im Home Assistant ausgelöst werden:",
"Trigger type:": "Auslöser:",
"Event type:": "Ereignistyp:",
"Event data:": "Ereignis daten:",
"Then choose an action, for example switch the scene to where an RGB light is red.": "Dann eine Aktion wählen, zum Beispiel eine Scene wählen in der ein RGB Licht rot ist.",
"Frontend Version": "Frontend Version",
"Frontend Version do not match backend version!": "Die Frontend Version stimmt nicht mit der backend version überein!",
"Maintenance": "Wartung",
"statusMaintenance": "Wartung",
"Schedule maintenance": "Geplante Wartung",
"Affected Monitors": "Betroffene Monitore",
"Pick Affected Monitors...": "Wähle betroffene Monitore…",
"Start of maintenance": "Beginn der Wartung",
"All Status Pages": "Alle Status Seiten",
"Select status pages...": "Wähle Status Seiten…",
"recurringIntervalMessage": "einmal pro Tag ausgeführt | Wird alle {0} Tage ausgführt",
"affectedMonitorsDescription": "Wähle alle Monitore die von der Wartung betroffen sind",
"affectedStatusPages": "Zeige diese Nachricht auf ausgewählten Status Seiten",
"atLeastOneMonitor": "Wähle mindestens einen Monitor",
"deleteMaintenanceMsg": "Möchtest du diese Wartung löschen?",
"Base URL": "Basis URL",
"goAlertInfo": "GoAlert ist eine Open-Source Applikation für Rufbereitschaftsplanung, automatische Eskalation und Benachrichtigung (z.B. SMS oder Telefonanrufe). Beauftragen Sie automatisch die richtige Person, auf die richtige Art und Weise und zum richtigen Zeitpunkt. {0}",
"goAlertIntegrationKeyInfo": "Bekommt einen generischen API Schlüssel in folgenden Format \"aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee\". Normalerweise entspricht dies dem Wert des Token aus der URL.",
"goAlert": "GoAlert",
"backupOutdatedWarning": "Veraltet: Eine menge Neuerungen sind eingeflossen und diese Funktion wurde etwas vernachlässigt worden. Es kann kein vollständiges Backup erstellt oder eingespielt werden.",
"backupRecommend": "Bitte Backup das Volume oder den Ordner (./ data /) selbst.",
"Optional": "Optional",
"squadcast": "Squadcast",
"SendKey": "SendKey",
"SMSManager API Docs": "SMSManager API Dokumente",
"Gateway Type": "Gateway Type",
"SMSManager": "SMSManager",
"You can divide numbers with": "Du kannst Zahlen teilen mit",
"or": "oder",
"recurringInterval": "Intervall",
"Recurring": "Wiederkehrend",
"strategyManual": "Active/Inactive Manually",
"warningTimezone": "Es wird die Zeitzone des Servers genutzt",
"weekdayShortMon": "Mo",
"weekdayShortTue": "Di",
"weekdayShortWed": "Mi",
"weekdayShortThu": "Do",
"weekdayShortFri": "Fr",
"weekdayShortSat": "Sa",
"weekdayShortSun": "So",
"dayOfWeek": "Tag der Woche",
"dayOfMonth": "Tag im Monat",
"lastDay": "Letzter Tag",
"lastDay1": "Letzter Tag im Monat",
"lastDay2": "Vorletzer Tag im Monat",
"lastDay3": "3. letzter Tag im Monat",
"lastDay4": "4. letzter Tag im Monat",
"No Maintenance": "Keine Wartung",
"pauseMaintenanceMsg": "Möchtest du wirklich pausieren?",
"maintenanceStatus-under-maintenance": "Unter Wartung",
"maintenanceStatus-inactive": "Inaktiv",
"maintenanceStatus-scheduled": "Geplant",
"maintenanceStatus-ended": "Ende",
"maintenanceStatus-unknown": "Unbekannt",
"Display Timezone": "Zeitzone anzeigen",
"Server Timezone": "Server Zeitzone"
}

@ -0,0 +1,647 @@
{
"languageName": "Deutsch (Deutschland)",
"Settings": "Einstellungen",
"Dashboard": "Dashboard",
"New Update": "Update verfügbar",
"Language": "Sprache",
"Appearance": "Erscheinungsbild",
"Theme": "Erscheinungsbild",
"General": "Allgemein",
"Version": "Version",
"Check Update On GitHub": "Auf GitHub nach Updates suchen",
"List": "Liste",
"Add": "Hinzufügen",
"Add New Monitor": "Neuen Monitor hinzufügen",
"Quick Stats": "Übersicht",
"Up": "Aktiv",
"Down": "Inaktiv",
"Pending": "Ausstehend",
"Unknown": "Unbekannt",
"Pause": "Pausieren",
"pauseDashboardHome": "Pausiert",
"Name": "Name",
"Status": "Status",
"DateTime": "Datum / Uhrzeit",
"Message": "Nachricht",
"No important events": "Keine wichtigen Ereignisse",
"Resume": "Fortsetzen",
"Edit": "Bearbeiten",
"Delete": "Löschen",
"Current": "Aktuell",
"Uptime": "Verfügbarkeit",
"Cert Exp.": "Zertifikatsablauf",
"day": "Tag | Tage",
"-day": "-Tage",
"hour": "Stunde",
"-hour": "-Stunden",
"checkEverySecond": "Überprüfe alle {0} Sekunden",
"Response": "Antwortzeit",
"Ping": "Ping",
"Monitor Type": "Monitor-Typ",
"Keyword": "Suchwort",
"Friendly Name": "Anzeigename",
"URL": "URL",
"Hostname": "Hostname",
"Port": "Port",
"Heartbeat Interval": "Prüfintervall",
"Retries": "Wiederholungen",
"retriesDescription": "Maximale Anzahl von Wiederholungen, bevor der Dienst als inaktiv markiert und eine Benachrichtigung gesendet wird.",
"Advanced": "Erweitert",
"ignoreTLSError": "Ignoriere TLS-/SSL-Fehler von Webseiten",
"Upside Down Mode": "Umgekehrter Modus",
"upsideDownModeDescription": "Im umgekehrten Modus wird der Dienst als inaktiv angezeigt, wenn er erreichbar ist.",
"Max. Redirects": "Max. Weiterleitungen",
"maxRedirectDescription": "Maximale Anzahl von Weiterleitungen, denen gefolgt werden soll. Auf 0 setzen, um Weiterleitungen zu deaktivieren.",
"Accepted Status Codes": "Erlaubte HTTP-Statuscodes",
"acceptedStatusCodesDescription": "Statuscodes auswählen, die als erfolgreiche Verbindung gelten sollen.",
"Save": "Speichern",
"Notifications": "Benachrichtigungen",
"Not available, please setup.": "Nicht verfügbar, bitte einrichten.",
"Setup Notification": "Benachrichtigung einrichten",
"Light": "Hell",
"Dark": "Dunkel",
"Auto": "Auto",
"Theme - Heartbeat Bar": "Erscheinungsbild - Zeitleiste",
"Normal": "Normal",
"Bottom": "Unten",
"None": "Keine",
"Timezone": "Zeitzone",
"Search Engine Visibility": "Sichtbarkeit für Suchmaschinen",
"Allow indexing": "Indizierung zulassen",
"Discourage search engines from indexing site": "Suchmaschinen darum bitten, die Seite nicht zu indizieren",
"Change Password": "Passwort ändern",
"Current Password": "Aktuelles Passwort",
"New Password": "Neues Passwort",
"Repeat New Password": "Neues Passwort wiederholen",
"passwordNotMatchMsg": "Passwörter stimmen nicht überein.",
"Update Password": "Passwort aktualisieren",
"Disable Auth": "Authentifizierung deaktivieren",
"Enable Auth": "Authentifizierung aktivieren",
"disableauth.message1": "Bist du sicher das du die <strong>Authentifizierung deaktivieren</strong> möchtest?",
"disableauth.message2": "Dies ist für Szenarien gedacht, <strong>in denen man eine externe Authentifizierung</strong> vor Uptime Kuma geschaltet hat, wie z.B. Cloudflare Access, Authelia oder andere Authentifizierungsmechanismen.",
"Please use this option carefully!": "Bitte mit Vorsicht nutzen!",
"Logout": "Ausloggen",
"notificationDescription": "Benachrichtigungen müssen einem Monitor zugewiesen werden, damit diese funktionieren.",
"Leave": "Verlassen",
"I understand, please disable": "Ich verstehe, bitte deaktivieren",
"Confirm": "Bestätigen",
"Yes": "Ja",
"No": "Nein",
"Username": "Benutzername",
"Password": "Passwort",
"Remember me": "Angemeldet bleiben",
"Login": "Einloggen",
"No Monitors, please": "Keine Monitore, bitte",
"add one": "hinzufügen",
"Notification Type": "Benachrichtigungsdienst",
"Email": "E-Mail",
"Test": "Test",
"Certificate Info": "Zertifikatsinformation",
"keywordDescription": "Ein Suchwort in der HTML- oder JSON-Ausgabe finden. Bitte beachte: es wird zwischen Groß-/Kleinschreibung unterschieden.",
"deleteMonitorMsg": "Bist du sicher, dass du den Monitor löschen möchtest?",
"deleteNotificationMsg": "Möchtest du diese Benachrichtigung wirklich für alle Monitore löschen?",
"resolverserverDescription": "Cloudflare ist als der Standardserver festgelegt. Dieser kann jederzeit geändert werden.",
"Resolver Server": "Auflösungsserver",
"rrtypeDescription": "Wähle den RR-Typ aus, welchen du überwachen möchtest.",
"Last Result": "Letztes Ergebnis",
"pauseMonitorMsg": "Bist du sicher, dass du den Monitor pausieren möchtest?",
"clearEventsMsg": "Bist du sicher, dass du alle Ereignisse für diesen Monitor löschen möchtest?",
"clearHeartbeatsMsg": "Bist du sicher, dass du alle Statistiken für diesen Monitor löschen möchtest?",
"Clear Data": "Lösche Daten",
"Events": "Ereignisse",
"Heartbeats": "Statistiken",
"confirmClearStatisticsMsg": "Bist du dir sicher, dass du ALLE Statistiken löschen möchtest?",
"Create your admin account": "Erstelle dein Admin-Konto",
"Repeat Password": "Passwort erneut eingeben",
"Resource Record Type": "Ressourcen Record Typ",
"Export": "Export",
"Import": "Import",
"respTime": "Antw.-Zeit (ms)",
"notAvailableShort": "N/A",
"Default enabled": "Standardmäßig aktiviert",
"Apply on all existing monitors": "Auf alle existierenden Monitore anwenden",
"enableDefaultNotificationDescription": "Für jeden neuen Monitor wird diese Benachrichtigung standardmäßig aktiviert. Die Benachrichtigung kann weiterhin für jeden Monitor separat deaktiviert werden.",
"Create": "Erstellen",
"Auto Get": "Auto Get",
"backupDescription": "Es können alle Monitore und Benachrichtigungen in einer JSON-Datei gesichert werden.",
"backupDescription2": "PS: Verlaufs- und Ereignisdaten sind nicht enthalten.",
"backupDescription3": "Sensible Daten wie Benachrichtigungstoken sind in der Exportdatei enthalten, bitte bewahre sie sorgfältig auf.",
"alertNoFile": "Bitte wähle eine Datei zum Importieren aus.",
"alertWrongFileType": "Bitte wähle eine JSON-Datei aus.",
"Clear all statistics": "Lösche alle Statistiken",
"importHandleDescription": "Wähle 'Vorhandene überspringen' aus, wenn jeder Monitor oder jede Benachrichtigung mit demselben Namen übersprungen werden soll. 'Überschreiben' löscht jeden vorhandenen Monitor sowie Benachrichtigungen.",
"Skip existing": "Vorhandene überspringen",
"Overwrite": "Überschreiben",
"Options": "Optionen",
"confirmImportMsg": "Möchtest du das Backup wirklich importieren? Bitte stelle sicher, dass die richtige Import-Option ausgewählt ist.",
"Keep both": "Beide behalten",
"twoFAVerifyLabel": "Bitte trage deinen Token ein, um zu verifizieren, dass 2FA funktioniert",
"Verify Token": "Token verifizieren",
"Setup 2FA": "2FA einrichten",
"Enable 2FA": "2FA aktivieren",
"Disable 2FA": "2FA deaktivieren",
"2FA Settings": "2FA-Einstellungen",
"confirmEnableTwoFAMsg": "Bist du sicher, dass du 2FA aktivieren möchtest?",
"confirmDisableTwoFAMsg": "Bist du sicher, dass du 2FA deaktivieren möchtest?",
"tokenValidSettingsMsg": "Token gültig! Du kannst jetzt die 2FA-Einstellungen speichern.",
"Two Factor Authentication": "Zwei-Faktor-Authentifizierung",
"Active": "Aktiv",
"Inactive": "Inaktiv",
"Token": "Token",
"Show URI": "URI anzeigen",
"Tags": "Tags",
"Add New below or Select...": "Einen bestehenden Tag auswählen oder neuen hinzufügen…",
"Tag with this name already exist.": "Ein Tag mit diesem Namen existiert bereits.",
"Tag with this value already exist.": "Ein Tag mit diesem Wert existiert bereits.",
"color": "Farbe",
"value (optional)": "Wert (optional)",
"Gray": "Grau",
"Red": "Rot",
"Orange": "Orange",
"Green": "Grün",
"Blue": "Blau",
"Indigo": "Indigo",
"Purple": "Lila",
"Pink": "Pink",
"Search...": "Suchen…",
"Heartbeat Retry Interval": "Überprüfungsintervall",
"Resend Notification if Down X times consequently": "Benachrichtigung erneut senden, wenn Inaktiv X mal hintereinander",
"retryCheckEverySecond": "Alle {0} Sekunden neu versuchen",
"resendEveryXTimes": "Erneut versenden alle {0} mal",
"resendDisabled": "Erneut versenden deaktiviert",
"Import Backup": "Backup importieren",
"Export Backup": "Backup exportieren",
"Avg. Ping": "Durchschn. Ping",
"Avg. Response": "Durchschn. Antwort",
"Entry Page": "Einstiegsseite",
"statusPageNothing": "Noch ist hier nichts. Bitte füge eine Gruppe oder einen 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": "Statusseite bearbeiten",
"Go to Dashboard": "Gehe zum Dashboard",
"Status Page": "Status-Seite",
"Status Pages": "Status-Seiten",
"telegram": "Telegram",
"webhook": "Webhook",
"smtp": "E-Mail (SMTP)",
"discord": "Discord",
"teams": "Microsoft Teams",
"signal": "Signal",
"gotify": "Gotify",
"slack": "Slack",
"rocket.chat": "Rocket.chat",
"pushover": "Pushover",
"pushy": "Pushy",
"octopush": "Octopush",
"promosms": "PromoSMS",
"lunasea": "LunaSea",
"apprise": "Apprise (Unterstützung für 50+ Benachrichtigungsdienste)",
"GoogleChat": "Google Chat (nur Google Workspace)",
"pushbullet": "Pushbullet",
"line": "Line Messenger",
"mattermost": "Mattermost",
"Primary Base URL": "Primäre Basis-URL",
"Push URL": "Push URL",
"needPushEvery": "Du solltest diese URL alle {0} Sekunden aufrufen",
"pushOptionalParams": "Optionale Parameter: {0}",
"defaultNotificationName": "Mein {notification} Alarm ({number})",
"here": "hier",
"Required": "Erforderlich",
"Bot Token": "Bot Token",
"wayToGetTelegramToken": "Hier kannst du einen Token erhalten {0}.",
"Chat ID": "Chat ID",
"supportTelegramChatID": "Unterstützt Direkt Chat / Gruppe / Kanal Chat-ID's",
"wayToGetTelegramChatID": "Du kannst die Chat-ID erhalten, indem du eine Nachricht an den Bot sendest und zu dieser URL gehst, um die chat_id: zu sehen.",
"YOUR BOT TOKEN HERE": "HIER DEIN BOT TOKEN",
"chatIDNotFound": "Chat-ID wurde nicht gefunden: bitte sende zuerst eine Nachricht an diesen Bot",
"Post URL": "Post URL",
"Content Type": "Content Type",
"webhookJsonDesc": "{0} ist gut für alle modernen HTTP-Server, wie z.B. Express.js, geeignet",
"webhookFormDataDesc": "{multipart} ist gut für PHP. Das JSON muss mit {decodeFunction} verarbeitet werden",
"secureOptionNone": "Keine / STARTTLS (25, 587)",
"secureOptionTLS": "TLS (465)",
"Ignore TLS Error": "TLS-Fehler ignorieren",
"From Email": "Absender E-Mail",
"emailCustomSubject": "Benutzerdefinierter Betreff",
"To Email": "Empfänger E-Mail",
"smtpCC": "CC",
"smtpBCC": "BCC",
"Discord Webhook URL": "Discord Webhook URL",
"wayToGetDiscordURL": "Du kannst diese erhalten, indem du zu den Servereinstellungen gehst -> Integrationen -> Neuer Webhook",
"Bot Display Name": "Bot-Anzeigename",
"Prefix Custom Message": "Benutzerdefinierter Nachrichten Präfix",
"Hello @everyone is...": "Hallo {'@'}everyone ist…",
"Webhook URL": "Webhook URL",
"wayToGetTeamsURL": "Wie eine Webhook-URL erstellt werden kann, erfährst du {0}.",
"Number": "Nummer",
"Recipients": "Empfänger",
"needSignalAPI": "Es wird ein Signal Client mit REST-API benötigt.",
"wayToCheckSignalURL": "Du kannst diese URL aufrufen, um zu sehen, wie du eine einrichtest:",
"signalImportant": "WICHTIG: Gruppen und Nummern können in Empfängern nicht gemischt werden!",
"Application Token": "Anwendungs Token",
"Server URL": "Server URL",
"Priority": "Priorität",
"Icon Emoji": "Icon Emoji",
"Channel Name": "Kanalname",
"Uptime Kuma URL": "Uptime Kuma URL",
"aboutWebhooks": "Weitere Informationen zu Webhooks auf: {0}",
"aboutChannelName": "Gebe den Kanalnamen ein in {0} Feld Kanalname, falls du den Webhook-Kanal umgehen möchtest. Ex: #other-channel",
"aboutKumaURL": "Wenn das Feld für die Uptime Kuma URL leer gelassen wird, wird standardmäßig die GitHub Projekt Seite verwendet.",
"emojiCheatSheet": "Emoji Cheat Sheet: {0}",
"User Key": "Benutzerschlüssel",
"Device": "Gerät",
"Message Title": "Nachrichtentitel",
"Notification Sound": "Benachrichtigungston",
"More info on:": "Mehr Infos auf: {0}",
"pushoverDesc1": "Notfallpriorität (2) hat standardmäßig 30 Sekunden Auszeit zwischen den Versuchen und läuft nach 1 Stunde ab.",
"pushoverDesc2": "Fülle das Geräte Feld aus, wenn du Benachrichtigungen an verschiedene Geräte senden möchtest.",
"SMS Type": "SMS Typ",
"octopushTypePremium": "Premium (Schnell - zur Benachrichtigung empfohlen)",
"octopushTypeLowCost": "Kostengünstig (Langsam - manchmal vom Betreiber gesperrt)",
"checkPrice": "Prüfe {0} Preise:",
"octopushLegacyHint": "Verwendest du die Legacy-Version von Octopush (2011-2020) oder die neue Version?",
"Check octopush prices": "Vergleiche die Oktopush Preise {0}.",
"octopushPhoneNumber": "Telefonnummer (Internationales Format, z.B : +49612345678) ",
"octopushSMSSender": "Name des SMS-Absenders : 3-11 alphanumerische Zeichen und Leerzeichen (a-zA-Z0-9)",
"LunaSea Device ID": "LunaSea Geräte ID",
"Apprise URL": "Apprise URL",
"Example:": "Beispiel: {0}",
"Read more:": "Weiterlesen: {0}",
"Status:": "Status: {0}",
"Read more": "Weiterlesen",
"appriseInstalled": "Apprise ist installiert.",
"appriseNotInstalled": "Apprise ist nicht installiert. {0}",
"Access Token": "Access Token",
"Channel access token": "Channel access token",
"Line Developers Console": "Line Developers Console",
"lineDevConsoleTo": "Line Developers Console - {0}",
"Basic Settings": "Basic Settings",
"User ID": "User ID",
"Messaging API": "Messaging API",
"wayToGetLineChannelToken": "Rufe zuerst {0} auf, erstelle dann einen Provider und Channel (Messaging API). Als nächstes kannst du den Channel access token und die User ID aus den oben genannten Menüpunkten abrufen.",
"Icon URL": "Icon URL",
"aboutIconURL": "Du kannst einen Link zu einem Bild in 'Icon URL' übergeben um das Standardprofilbild zu überschreiben. Wird nicht verwendet, wenn ein Icon Emoji gesetzt ist.",
"aboutMattermostChannelName": "Du kannst den Standardkanal, auf dem der Webhook gesendet wird überschreiben, indem der Kanalnamen in das Feld 'Channel Name' eingeben wird. Dies muss in den Mattermost Webhook-Einstellungen aktiviert werden. Ex: #other-channel",
"matrix": "Matrix",
"promosmsTypeEco": "SMS ECO - billig, aber langsam und oft überladen. Auf polnische Empfänger beschränkt.",
"promosmsTypeFlash": "SMS FLASH - Die Nachricht wird automatisch auf dem Empfängergerät angezeigt. Auf polnische Empfänger beschränkt.",
"promosmsTypeFull": "SMS FULL - Premium Stufe von SMS, es kann der Absendernamen verwendet werden (Der Name musst zuerst registriert werden). Zuverlässig für Warnungen.",
"promosmsTypeSpeed": "SMS SPEED - Höchste Priorität im System. Sehr schnell und zuverlässig, aber teuer (Ungefähr das doppelte von SMS FULL).",
"promosmsPhoneNumber": "Telefonnummer (für polnische Empfänger können die Vorwahlen übersprungen werden)",
"promosmsSMSSender": "Name des SMS-Absenders : vorregistrierter Name oder einer der Standardwerte: InfoSMS, SMS Info, MaxSMS, INFO, SMS",
"Feishu WebHookUrl": "Feishu Webhook URL",
"matrixHomeserverURL": "Heimserver URL (mit http(s):// und optionalen Ports)",
"Internal Room Id": "Interne Raum-ID",
"matrixDesc1": "Die interne Raum-ID findest du im erweiterten Bereich der Raumeinstellungen im Matrix-Client. Es sollte aussehen wie z.B. !QMdRCpUIfLwsfjxye6:home.server.",
"matrixDesc2": "Es wird dringend empfohlen einen neuen Benutzer anzulegen und nicht den Zugriffstoken deines eigenen Matrix-Benutzers zu verwenden. Anderenfalls ermöglicht es vollen Zugriff auf dein Konto und alle Räume, denen du beigetreten bist. Erstelle stattdessen einen neuen Benutzer und lade ihn nur in den Raum ein, in dem du die Benachrichtigung erhalten möchtest. Du kannst den Zugriffstoken erhalten, indem du Folgendes ausführst {0}",
"Method": "Method",
"Body": "Body",
"Headers": "Headers",
"PushUrl": "Push URL",
"HeadersInvalidFormat": "Der Header ist kein gültiges JSON: ",
"BodyInvalidFormat": "Der Body ist kein gültiges JSON: ",
"Monitor History": "Monitor Verlauf",
"clearDataOlderThan": "Bewahre die Monitor-Verlaufsdaten für {0} Tage auf.",
"PasswordsDoNotMatch": "Passwörter stimmen nicht überein.",
"records": "Einträge",
"One record": "Ein Eintrag",
"steamApiKeyDescription": "Um einen Steam Game Server zu überwachen, wird ein Steam Web-API-Schlüssel benötigt. Dieser kann hier registriert werden: ",
"Current User": "Aktueller Benutzer",
"recent": "Letzte",
"Done": "Fertig",
"Info": "Info",
"Security": "Sicherheit",
"Steam API Key": "Steam API Key",
"Shrink Database": "Datenbank verkleinern",
"Pick a RR-Type...": "Wähle ein RR-Typ aus…",
"Pick Accepted Status Codes...": "Wähle akzeptierte Statuscodes aus…",
"Default": "Standard",
"HTTP Options": "HTTP Optionen",
"Create Incident": "Vorfall erstellen",
"Title": "Titel",
"Content": "Inhalt",
"Style": "Stil",
"info": "info",
"warning": "warnung",
"danger": "gefahr",
"primary": "primär",
"light": "hell",
"dark": "dunkel",
"Post": "Eintrag",
"Please input title and content": "Bitte Titel und Inhalt eingeben",
"Created": "Erstellt",
"Last Updated": "Zuletzt aktualisiert",
"Unpin": "Loslösen",
"Switch to Light Theme": "Zu hellem Thema wechseln",
"Switch to Dark Theme": "Zum dunklen Thema wechseln",
"Show Tags": "Tags anzeigen",
"Hide Tags": "Tags ausblenden",
"Description": "Beschreibung",
"No monitors available.": "Keine Monitore verfügbar.",
"Add one": "Hinzufügen",
"No Monitors": "Keine Monitore",
"Untitled Group": "Gruppe ohne Titel",
"Services": "Dienste",
"Discard": "Verwerfen",
"Cancel": "Abbrechen",
"Powered by": "Powered by",
"shrinkDatabaseDescription": "Löse VACUUM für die SQLite Datenbank aus. Wenn die Datenbank nach 1.10.0 erstellt wurde, ist AUTO_VACUUM bereits aktiviert und diese Aktion ist nicht erforderlich.",
"serwersms": "SerwerSMS.pl",
"serwersmsAPIUser": "API Benutzername (inkl. webapi_ prefix)",
"serwersmsAPIPassword": "API Passwort",
"serwersmsPhoneNumber": "Telefonnummer",
"serwersmsSenderName": "Name des SMS-Absenders (über Kundenportal registriert)",
"stackfield": "Stackfield",
"clicksendsms": "ClickSend SMS",
"apiCredentials": "API Zugangsdaten",
"smtpDkimSettings": "DKIM Einstellungen",
"smtpDkimDesc": "Details zur Konfiguration sind in der Nodemailer DKIM {0} zu finden.",
"documentation": "Dokumentation",
"smtpDkimDomain": "Domain Name",
"smtpDkimKeySelector": "Schlüssel Auswahl",
"smtpDkimPrivateKey": "Privater Schlüssel",
"smtpDkimHashAlgo": "Hash-Algorithmus (Optional)",
"smtpDkimheaderFieldNames": "Zu validierende Header-Schlüssel (optional)",
"smtpDkimskipFields": "Zu ignorierende Header Schlüssel (optional)",
"PushByTechulus": "Push by Techulus",
"gorush": "Gorush",
"alerta": "Alerta",
"alertaApiEndpoint": "API Endpunkt",
"alertaEnvironment": "Umgebung",
"alertaApiKey": "API Schlüssel",
"alertaAlertState": "Alarmstatus",
"alertaRecoverState": "Wiederherstellungsstatus",
"deleteStatusPageMsg": "Bist du sicher, dass du diese Status-Seite löschen willst?",
"Proxies": "Proxies",
"default": "Standard",
"enabled": "Aktiviert",
"setAsDefault": "Als Standard setzen",
"deleteProxyMsg": "Bist du sicher, dass du diesen Proxy für alle Monitore löschen willst?",
"proxyDescription": "Proxies müssen einem Monitor zugewiesen werden, um zu funktionieren.",
"enableProxyDescription": "Dieser Proxy wird keinen Effekt auf Monitor-Anfragen haben, bis er aktiviert ist. Du kannst ihn temporär von allen Monitoren nach Aktivierungsstatus deaktivieren.",
"setAsDefaultProxyDescription": "Dieser Proxy wird standardmäßig für alle neuen Monitore aktiviert sein. Du kannst den Proxy immer noch für jeden Monitor einzeln deaktivieren.",
"Certificate Chain": "Zertifikatskette",
"Valid": "Gültig",
"Invalid": "Ungültig",
"AccessKeyId": "AccessKey ID",
"SecretAccessKey": "AccessKey Secret",
"PhoneNumbers": "Telefonnummern",
"TemplateCode": "Vorlagencode",
"SignName": "Signaturname",
"Sms template must contain parameters: ": "SMS Vorlage muss folgende Parameter enthalten: ",
"Bark Endpoint": "Bark Endpunkt",
"WebHookUrl": "Webhook URL",
"SecretKey": "Geheimer Schlüssel",
"For safety, must use secret key": "Zur Sicherheit muss ein geheimer Schlüssel verwendet werden",
"Device Token": "Gerätetoken",
"Platform": "Platform",
"iOS": "iOS",
"Android": "Android",
"Huawei": "Huawei",
"High": "Hoch",
"Retry": "Wiederholungen",
"Topic": "Thema",
"WeCom Bot Key": "WeCom Bot Schlüssel",
"Setup Proxy": "Proxy einrichten",
"Proxy Protocol": "Proxy Protokoll",
"Proxy Server": "Proxy-Server",
"Proxy server has authentication": "Proxy-Server hat Authentifizierung",
"User": "Benutzer",
"Installed": "Installiert",
"Not installed": "Nicht installiert",
"Running": "Läuft",
"Not running": "Gestoppt",
"Remove Token": "Token entfernen",
"Start": "Start",
"Stop": "Stop",
"Uptime Kuma": "Uptime Kuma",
"Add New Status Page": "Neue Status-Seite hinzufügen",
"Slug": "Slug",
"Accept characters:": "Akzeptierte Zeichen:",
"startOrEndWithOnly": "Nur mit {0} anfangen und enden",
"No consecutive dashes": "Keine aufeinanderfolgenden Bindestriche",
"Next": "Weiter",
"The slug is already taken. Please choose another slug.": "Der Slug ist bereits in Verwendung. Bitte wähle einen anderen.",
"No Proxy": "Kein Proxy",
"Authentication": "Authentifizierung",
"HTTP Basic Auth": "HTTP Basisauthentifizierung",
"New Status Page": "Neue Status-Seite",
"Page Not Found": "Seite nicht gefunden",
"Reverse Proxy": "Reverse Proxy",
"Backup": "Sicherung",
"About": "Über",
"wayToGetCloudflaredURL": "(Lade cloudflared von {0} herunter)",
"cloudflareWebsite": "Cloudflare Website",
"Message:": "Nachricht:",
"Don't know how to get the token? Please read the guide:": "Du weißt nicht, wie man den Token bekommt? Lies die Anleitung dazu:",
"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.": "Die aktuelle Verbindung kann unterbrochen werden, wenn du aktuell über Cloudflare Tunnel verbunden bist. Bist du sicher, dass du es stoppen willst? Gib zur Bestätigung dein aktuelles Passwort ein.",
"Other Software": "Andere Software",
"For example: nginx, Apache and Traefik.": "Zum Beispiel: nginx, Apache und Traefik.",
"Please read": "Bitte lesen",
"Subject:": "Betreff:",
"Valid To:": "Gültig bis:",
"Days Remaining:": "Tage verbleibend:",
"Issuer:": "Aussteller:",
"Fingerprint:": "Fingerabdruck:",
"No status pages": "Keine Status-Seiten",
"Domain Name Expiry Notification": "Benachrichtigung bei Ablauf des Domainnamens",
"Customize": "Anpassen",
"Custom Footer": "Eigener Footer",
"Custom CSS": "Eigenes CSS",
"Footer Text": "Fußzeile",
"Show Powered By": "Zeige 'Powered By'",
"Date Created": "Erstellt am",
"Domain Names": "Domainnamen",
"signedInDisp": "Angemeldet als {0}",
"signedInDispDisabled": "Authentifizierung deaktiviert.",
"dnsPortDescription": "DNS server port. Standard ist 53. Der Port kann jederzeit geändert werden.",
"topic": "Thema",
"topicExplanation": "MQTT Thema für den monitor",
"successMessage": "Erfolgsnachricht",
"successMessageExplanation": "MQTT Nachricht, die als Erfolg angesehen wird",
"error": "Fehler",
"critical": "kritisch",
"wayToGetPagerDutyKey": "Dieser kann unter Service -> Service Directory -> (Select a service) -> Integrations -> Add integration gefunden werden. Hier muss nach \"Events API V2\" gesucht werden. Mehr informationen {0}",
"Integration Key": "Schlüssel der Integration",
"Integration URL": "URL der Integration",
"Auto resolve or acknowledged": "Automatisch lösen oder bestätigen",
"do nothing": "nichts tun",
"auto acknowledged": "automatisch bestätigen",
"auto resolve": "automatisch lösen",
"Bark Group": "Bark Gruppe",
"Bark Sound": "Bark Klang",
"HTTP Headers": "HTTP Kopfzeilen",
"Trust Proxy": "Vertrauenswürdiger Proxy",
"Proxy": "Proxy",
"HomeAssistant": "Home Assistant",
"onebotHttpAddress": "OneBot HTTP Adresse",
"onebotMessageType": "OneBot Nachrichtentyp",
"onebotGroupMessage": "Gruppe",
"onebotPrivateMessage": "Privat",
"onebotUserOrGroupId": "Gruppe/Nutzer ID",
"onebotSafetyTips": "Zur Sicherheit ein access token setzen",
"PushDeer Key": "PushDeer Schlüssel",
"RadiusSecret": "Radius Geheimnis",
"RadiusSecretDescription": "Geteiltes Geheimnis zwischen Client und Server",
"RadiusCalledStationId": "ID der angesprochenen Station",
"RadiusCalledStationIdDescription": "Identifikation des angesprochenen Geräts",
"RadiusCallingStationId": "ID der ansprechenden Station",
"RadiusCallingStationIdDescription": "Identifikation des ansprechenden Geräts",
"Certificate Expiry Notification": "Benachrichtigung ablaufendes Zertifikat",
"API Username": "API Nutzername",
"API Key": "API Schlüssel",
"Recipient Number": "Empfängernummer",
"From Name/Number": "Von Name/Nummer",
"Leave blank to use a shared sender number.": "Leer lassen um eine geteilte Absendernummer zu nutzen.",
"Octopush API Version": "Octopush API Version",
"Legacy Octopush-DM": "Legacy Octopush-DM",
"endpoint": "Endpunkt",
"octopushAPIKey": "\"API Schlüssel\" der HTTP API Zugangsdaten im control panel",
"octopushLogin": "\"Login\" der HTTP API Zugangsdaten im control panel",
"promosmsLogin": "API Login Name",
"promosmsPassword": "API Password",
"pushoversounds pushover": "Pushover (Standard)",
"pushoversounds bike": "Fahrrad",
"pushoversounds bugle": "Signalhorn",
"pushoversounds cashregister": "Kasse",
"pushoversounds classical": "Klassisch",
"pushoversounds cosmic": "Kosmisch",
"pushoversounds falling": "Abfallend",
"pushoversounds gamelan": "Gamelan",
"pushoversounds incoming": "Eingang",
"pushoversounds intermission": "Pause",
"pushoversounds magic": "Magisch",
"pushoversounds mechanical": "Mechanisch",
"pushoversounds pianobar": "Piano Bar",
"pushoversounds siren": "Sirene",
"pushoversounds spacealarm": "Space Alarm",
"pushoversounds tugboat": "Schlepper Horn",
"pushoversounds alien": "Außerirdisch (lang)",
"pushoversounds climb": "Ansteigende (lang)",
"pushoversounds persistent": "Hartnäckig (lang)",
"pushoversounds echo": "Pushover Echo (lang)",
"pushoversounds updown": "Auf und Ab (lang)",
"pushoversounds vibrate": "Nur vibrieren",
"pushoversounds none": "Nichts (Stille)",
"pushyAPIKey": "Geheimer API Schlüssel",
"pushyToken": "Gerätetoken",
"Show update if available": "Verfügbare Updates anzeigen",
"Also check beta release": "Auch nach Beta Versionen schauen",
"Using a Reverse Proxy?": "Wird ein Reverse Proxy genutzt?",
"Check how to config it for WebSocket": "Prüfen, wie er für die Nutzung mit WebSocket konfiguriert wird",
"Steam Game Server": "Steam Game Server",
"Most likely causes:": "Wahrscheinliche Ursachen:",
"The resource is no longer available.": "Die Quelle ist nicht mehr verfügbar.",
"There might be a typing error in the address.": "Es gibt einen Tippfehler in der Adresse.",
"What you can try:": "Was du versuchen kannst:",
"Retype the address.": "Schreibe die Adresse erneut.",
"Go back to the previous page.": "Gehe zur vorigen Seite.",
"Coming Soon": "Kommt bald",
"wayToGetClickSendSMSToken": "Du kannst einen API Nutzernamen und Schlüssel unter {0} erhalten.",
"Connection String": "Verbindungstext",
"Query": "Abfrage",
"settingsCertificateExpiry": "TLS Zertifikatsablauf",
"certificationExpiryDescription": "HTTPS Monitore senden eine Benachrichtigung, wenn das Zertifikat abläuft in:",
"Setup Docker Host": "Docker Host einrichten",
"Connection Type": "Verbindungstyp",
"Docker Daemon": "Docker Daemon",
"deleteDockerHostMsg": "Bist du sicher diesen docker host für alle Monitore zu löschen?",
"socket": "Socket",
"tcp": "TCP / HTTP",
"Docker Container": "Docker Container",
"Container Name / ID": "Container Name / ID",
"Docker Host": "Docker Host",
"Docker Hosts": "Docker Hosts",
"ntfy Topic": "ntfy Thema",
"Domain": "Domain",
"Workstation": "Workstation",
"disableCloudflaredNoAuthMsg": "Du bist im nicht-authentifizieren Modus, ein Passwort wird nicht benötigt.",
"trustProxyDescription": "Vertraue 'X-Forwarded-*' headern. Wenn man die richtige client IP haben möchte und Uptime Kuma hinter einem Proxy wie Nginx or Apache läuft, wollte dies aktiviert werden.",
"wayToGetLineNotifyToken": "Du kannst hier ein Token erhalten: {0}",
"Examples": "Beispiele",
"Home Assistant URL": "Home Assistant URL",
"Long-Lived Access Token": "Lange gültiges Access Token",
"Long-Lived Access Token can be created by clicking on your profile name (bottom left) and scrolling to the bottom then click Create Token. ": "Lange gültige Access Token können durch klicken auf den Profilnamen (unten links) und dann einen Klick auf Create Token am Ende erstellt werden. ",
"Notification Service": "Benachrichtigungsdienst",
"default: notify all devices": "standard: Alle Geräte benachrichtigen",
"A list of Notification Services can be found in Home Assistant under \"Developer Tools > Services\" search for \"notification\" to find your device/phone name.": "Eine Liste der Benachrichtigungsdienste kann im Home Assistant unter \"Developer Tools > Services\" gefunden werden, wnen man nach \"notification\" sucht um den Geräte-/Telefonnamen zu finden.",
"Automations can optionally be triggered in Home Assistant:": "Automatisierungen können optional im Home Assistant ausgelöst werden:",
"Trigger type:": "Auslöser:",
"Event type:": "Ereignistyp:",
"Event data:": "Ereignis daten:",
"Then choose an action, for example switch the scene to where an RGB light is red.": "Dann eine Aktion wählen, zum Beispiel eine Scene wählen in der ein RGB Licht rot ist.",
"Frontend Version": "Frontend Version",
"Frontend Version do not match backend version!": "Die Frontend Version stimmt nicht mit der backend version überein!",
"Maintenance": "Wartung",
"statusMaintenance": "Wartung",
"Schedule maintenance": "Geplante Wartung",
"Affected Monitors": "Betroffene Monitore",
"Pick Affected Monitors...": "Wähle betroffene Monitore…",
"Start of maintenance": "Beginn der Wartung",
"All Status Pages": "Alle Status Seiten",
"Select status pages...": "Statusseiten auswählen…",
"recurringIntervalMessage": "Einmal pro Tag ausgeführt | Wird alle {0} Tage ausgführt",
"affectedMonitorsDescription": "Wähle Monitore aus, die von der aktuellen Wartung betroffen sind",
"affectedStatusPages": "Diese Wartungsmeldung auf ausgewählten Statusseiten anzeigen",
"atLeastOneMonitor": "Wähle mindestens einen Monitor",
"deleteMaintenanceMsg": "Möchtest du diese Wartung löschen?",
"Base URL": "Basis URL",
"goAlertInfo": "GoAlert ist eine Open-Source Applikation für Rufbereitschaftsplanung, automatische Eskalation und Benachrichtigung (z.B. SMS oder Telefonanrufe). Beauftragen Sie automatisch die richtige Person, auf die richtige Art und Weise und zum richtigen Zeitpunkt. {0}",
"goAlertIntegrationKeyInfo": "Bekommt einen generischen API Schlüssel in folgenden Format \"aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee\". Normalerweise entspricht dies dem Wert des Token aus der URL.",
"goAlert": "GoAlert",
"backupOutdatedWarning": "Veraltet: Da viele Funktionen hinzugefügt wurden und diese Sicherungsfunktion nicht mehr gepflegt wird, kann sie keine vollständige Sicherung erstellen oder wiederherstellen.",
"backupRecommend": "Bitte sichere stattdessen das Volume oder den Datenordner (./data/) direkt.",
"Optional": "Optional",
"squadcast": "Squadcast",
"SendKey": "SendKey",
"SMSManager API Docs": "SMSManager API Dokumente",
"Gateway Type": "Gateway Type",
"SMSManager": "SMSManager",
"You can divide numbers with": "Du kannst Zahlen teilen mit",
"or": "oder",
"recurringInterval": "Intervall",
"Recurring": "Wiederkehrend",
"Single Maintenance Window": "Einzigartiges Wartungsfenster",
"Maintenance Time Window of a Day": "Zeitfenster für die Wartung",
"Effective Date Range": "Bereich der Wirksamkeitsdaten",
"strategyManual": "Aktiv/Inaktiv Manuell",
"warningTimezone": "Es wird die Zeitzone des Servers verwendet",
"weekdayShortMon": "Mo",
"weekdayShortTue": "Di",
"weekdayShortWed": "Mi",
"weekdayShortThu": "Do",
"weekdayShortFri": "Fr",
"weekdayShortSat": "Sa",
"weekdayShortSun": "So",
"dayOfWeek": "Tag der Woche",
"dayOfMonth": "Tag im Monat",
"lastDay": "Letzter Tag",
"lastDay1": "Letzter Tag im Monat",
"lastDay2": "Vorletzer Tag im Monat",
"lastDay3": "3. letzter Tag im Monat",
"lastDay4": "4. letzter Tag im Monat",
"No Maintenance": "Keine Wartung",
"Schedule Maintenance": "Wartung planen",
"pauseMaintenanceMsg": "Möchtest du wirklich pausieren?",
"maintenanceStatus-under-maintenance": "Unter Wartung",
"maintenanceStatus-inactive": "Inaktiv",
"maintenanceStatus-scheduled": "Geplant",
"maintenanceStatus-ended": "Ende",
"maintenanceStatus-unknown": "Unbekannt",
"Display Timezone": "Zeitzone anzeigen",
"Server Timezone": "Server Zeitzone",
"Date and Time": "Datum und Zeit",
"DateTime Range": "Datums- und Zeitbereich",
"Strategy": "Strategie",
"statusPageMaintenanceEndDate": "Ende",
"Help": "Hilfe",
"Game": "Spiel",
"Custom": "Benutzerdefiniert",
"Enable DNS Cache": "DNS Cache aktivieren",
"Enable": "Aktivieren",
"Disable": "Deaktivieren"
}

@ -0,0 +1,587 @@
{
"languageName": "Ελληνικά",
"checkEverySecond": "Έλεγχος κάθε {0} δευτερόλεπτα",
"retryCheckEverySecond": "Επανάληψη κάθε {0} δευτερόλεπτα",
"resendEveryXTimes": "Επανάληψη αποστολής ειδοποίησης κάθε {0} φορές",
"resendDisabled": "Η επανάληψη αποστολής ειδοποίησης είναι απενεργοποιημένη",
"retriesDescription": "Μέγιστες επαναλήψεις προτού η υπηρεσία επισημανθεί ως κατω και σταλεί μια ειδοποίηση",
"ignoreTLSError": "Παράβλεψη σφάλματος TLS/SSL για ιστότοπους HTTPS",
"upsideDownModeDescription": "Αναποδογυρίστε την κατάσταση. Εάν η υπηρεσία είναι προσβάσιμη, είναι ΚΑΤΩ.",
"maxRedirectDescription": "Μέγιστος αριθμός redirect που θα ακολουθήσουν. Ρυθμίστε το 0 για να απενεργοποιήσετε τα redirect.",
"acceptedStatusCodesDescription": "Επιλέξτε κωδικούς κατάστασης που θεωρούνται επιτυχή.",
"passwordNotMatchMsg": "Ο κωδικός δεν ταιριάζει.",
"notificationDescription": "Οι ειδοποιήσεις πρέπει να εκχωρηθούν σε μια παρακολούθηση για να λειτουργήσουν.",
"keywordDescription": "Αναζήτηση λέξης-κλειδιού σε απλή απόκριση HTML ή JSON. Η αναζήτηση είναι διάκριση πεζών-κεφαλαίων.",
"pauseDashboardHome": "Παύση",
"deleteMonitorMsg": "Είστε βέβαιοι ότι θέλετε να διαγράψετε αυτήν την παρακολούθηση;",
"deleteNotificationMsg": "Είστε βέβαιοι ότι θέλετε να διαγράψετε αυτήν την ειδοποίηση για όλες τις παρακολούθησης?",
"dnsPortDescription": "Θύρα διακομιστή DNS. Προεπιλογή σε 53. Μπορείτε να αλλάξετε τη θύρα ανά πάσα στιγμή.",
"resolverserverDescription": "Το Cloudflare είναι ο προεπιλεγμένος διακομιστής. Μπορείτε να αλλάξετε τον διακομιστή επίλυσης ανά πάσα στιγμήhe default server. You can change the resolver server anytime.",
"rrtypeDescription": "Επιλέξτε τον τύπο RR που θέλετε να παρακολουθήσετε",
"pauseMonitorMsg": "Είστε βέβαιοι ότι θέλετε να κάνετε παύση;",
"enableDefaultNotificationDescription": "Αυτή η ειδοποίηση θα είναι ενεργοποιημένη από προεπιλογή για νέες παρακολούθησης. Μπορείτε ακόμα να απενεργοποιήσετε την ειδοποίηση ξεχωριστά για κάθε παρακολούθηση.",
"clearEventsMsg": "Είστε βέβαιοι ότι θέλετε να διαγράψετε όλα τα συμβάντα για αυτήν την παρακολούθηση;",
"clearHeartbeatsMsg": "Είστε βέβαιοι ότι θέλετε να διαγράψετε όλους τους καρδιακούς παλμούς για αυτήν την παρακολούθηση;",
"confirmClearStatisticsMsg": "Είστε βέβαιοι ότι θέλετε να διαγράψετε ΟΛΑ τα στατιστικά στοιχεία;?",
"importHandleDescription": "Επιλέξτε «Παράλειψη υπάρχοντος» εάν θέλετε να παραλείψετε κάθε παρακολούθηση ή ειδοποίηση με το ίδιο όνομα. Το 'Overwrite' θα διαγράψει κάθε υπάρχουσα παρακολούθηση και ειδοποίηση.",
"confirmImportMsg": "Είστε βέβαιοι ότι θέλετε να εισαγάγετε το αντίγραφο ασφαλείας; Επαληθεύστε ότι έχετε επιλέξει τη σωστή επιλογή.",
"twoFAVerifyLabel": "Εισαγάγετε το 2FA κωδικό για να επαληθεύσετε: ",
"tokenValidSettingsMsg": "Ο κωδικός 2FA είναι έγκυρο! Τώρα μπορείτε να αποθηκεύσετε τις ρυθμίσεις 2FA",
"confirmEnableTwoFAMsg": "Είστε βέβαιοι ότι θέλετε να ενεργοποιήσετε το 2FA;",
"confirmDisableTwoFAMsg": "Είστε βέβαιοι ότι θέλετε να απενεργοποιήσετε το 2FA;",
"Settings": "Ρυθμίσεις",
"Dashboard": "Πίνακας",
"New Update": "Νέα αναβάθμιση",
"Language": "Γλώσσα",
"Appearance": "Εμφάνιση",
"Theme": "Θέμα",
"General": "Γενικά",
"Primary Base URL": "Κύρια βασική διεύθυνση URL",
"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": "Current",
"Uptime": "Χρόνος λειτουργίας",
"Cert Exp.": "Cert Exp.",
"day": "ημέρα | ημέρες",
"-day": "-ημέρα",
"hour": "ώρα",
"-hour": "-ώρα",
"Response": "Απάντηση",
"Ping": "Ping",
"Monitor Type": "Τύπος παρακολούθησης",
"Keyword": "Λέξη-κλειδί",
"Friendly Name": "Φιλικό όνομα",
"URL": "URL",
"Hostname": "Hostname",
"Port": "Port",
"Heartbeat Interval": "Διάστημα καρδιακών παλμών",
"Retries": "Επαναλήψεις",
"Heartbeat Retry Interval": "Διάστημα επανάληψης παλμών καρδιάς",
"Resend Notification if Down X times consequently": "Αποστολή νέας ειδοποίησης εάν κατω X φορές κατά συνέχεια",
"Advanced": "Προχωρημένα",
"Upside Down Mode": "Ανάποδη λειτουργία",
"Max. Redirects": "Μέγιστη. Ανακατευθύνσεις",
"Accepted Status Codes": "Αποδεκτοί Κωδικοί Κατάστασης",
"Push URL": "Push URL",
"needPushEvery": "Θα πρέπει να καλείτε αυτήν τη διεύθυνση URL κάθε {0} δευτερόλεπτα.",
"pushOptionalParams": "Προαιρετικές παράμετροι: {0}",
"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": "Ενεργοποίηση ελέγχου ταυτότητας",
"disableauth.message1": "Είστε βέβαιοι ότι θέλετε να <strong>απενεργοποιήσετε τον έλεγχο ταυτότητας</strong>;",
"disableauth.message2": "Έχει σχεδιαστεί για σενάρια <strong>όπου σκοπεύετε να εφαρμόσετε έλεγχο ταυτότητας τρίτου μέρους</strong> μπροστά από το Uptime Kuma, όπως το Cloudflare Access, Authelia ή άλλους μηχανισμούς ελέγχου ταυτότητας.",
"Please use this option carefully!": "Χρησιμοποιήστε αυτή την επιλογή προσεκτικά!",
"Logout": "Αποσύνδεση",
"Leave": "Φύγετε",
"I understand, please disable": "Καταλαβαίνω, απενεργοποιήστε",
"Confirm": "Επιβεβαίωση",
"Yes": "Ναί",
"No": "Οχι",
"Username": "Όνομα χρήστη",
"Password": "Κωδικός πρόσβασης",
"Remember me": "Θυμήσου με",
"Login": "Σύνδεση",
"No Monitors, please": "Δεν υπάρχουν παρακολούθησης παρακαλώ",
"add one": "προσθέστε ένα",
"Notification Type": "Είδος ειδοποίησης",
"Email": "Email",
"Test": "Δοκιμή",
"Certificate Info": "Πληροφορίες πιστοποιητικού",
"Resolver Server": "Διακομιστής επίλυσης",
"Resource Record Type": "Τύπος εγγραφής πόρων",
"Last Result": "Τελευταίο Αποτέλεσμα",
"Create your admin account": "Δημιουργήστε τον λογαριασμό διαχειριστή σας",
"Repeat Password": "Επαναλάβετε τον κωδικό πρόσβασης",
"Import Backup": "Εισαγωγή αντιγράφων ασφαλείας",
"Export Backup": "Εξαγωγή αντιγράφων ασφαλείας",
"Export": "Εξαγωγή",
"Import": "Εισαγωγή",
"respTime": "Χρόν. Aπό (ms)",
"notAvailableShort": "N/A",
"Default enabled": "Προεπιλογή ενεργοποιημένη",
"Apply on all existing monitors": "Εφαρμόστε σε όλες τις υπάρχουσες παρακολούθησης",
"Create": "Δημιουργία",
"Clear Data": "Καθαρισμός δεδομένων",
"Events": "Γεγονότα",
"Heartbeats": "Παλμοι καρδιας",
"Auto Get": "Αυτόματη λήψη",
"backupDescription": "Μπορείτε να δημιουργήσετε αντίγραφα ασφαλείας γία ολλες της παρακολούθησης και ειδοποιήσης σε ένα αρχείο JSON.",
"backupDescription2": "Σημείωση: δεν περιλαμβάνονται δεδομένα ιστορικού και συμβάντων.",
"backupDescription3": "Στο αρχείο εξαγωγής περιλαμβάνονται ευαίσθητα δεδομένα, όπως token ειδοποιήσεων. Aποθηκεύστε την εξαγωγή με ασφάλεια.",
"alertNoFile": "Επιλέξτε ένα αρχείο για εισαγωγή.",
"alertWrongFileType": "Επιλέξτε ένα αρχείο JSON.",
"Clear all statistics": "Εκκαθάριση όλων των στατιστικών",
"Skip existing": "Παράβλεψη υπάρχοντος",
"Overwrite": "Αντικατάσταση",
"Options": "Επιλογές",
"Keep both": "Κράτα και τα δύο",
"Verify Token": "Επαλήθευση Token",
"Setup 2FA": "Ρύθμιση 2FA",
"Enable 2FA": "Ενεργοποίηση 2FA",
"Disable 2FA": "Απενεργοποίηση 2FA",
"2FA Settings": "Ρυθμίσεις 2FA",
"Two Factor Authentication": "Έλεγχος ταυτότητας δύο παραγόντων",
"Active": "Ενεργός",
"Inactive": "Ανενεργό",
"Token": "Token",
"Show URI": "Εμφάνιση URI",
"Tags": "Ετικέτες",
"Add New below or Select...": "Προσθήκη νέου παρακάτω ή Επιλέξτε...",
"Tag with this name already exist.": "Υπάρχει ήδη η ετικέτα με αυτό το όνομα.",
"Tag with this value already exist.": "Υπάρχει ήδη ετικέτα με αυτό το value.",
"color": "χρώμα",
"value (optional)": "value (optional)",
"Gray": "Γκρί",
"Red": "Κόκκινο",
"Orange": "Πορτοκάλι",
"Green": "Πράσινο",
"Blue": "Μπλε",
"Indigo": "Indigo",
"Purple": "Μωβ",
"Pink": "Ροζ",
"Search...": "Αναζήτηση...",
"Avg. Ping": "Μέσo.Ping",
"Avg. Response": "Μέσo. Aπάντηση",
"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": "Σελίδα κατάστασης",
"Status Pages": "Σελίδες κατάστασης",
"defaultNotificationName": "Η ειδοποίηση μου {notification} ({number})",
"here": "εδώ",
"Required": "Απαιτείται",
"telegram": "Telegram",
"ZohoCliq": "ZohoCliq",
"Bot Token": "Διακριτικό Bot",
"wayToGetTelegramToken": "Μπορείτε να πάρετε ένα διακριτικό από {0}.",
"Chat ID": "Chat ID",
"supportTelegramChatID": "Support Direct Chat / Group / Channel's Chat ID",
"wayToGetTelegramChatID": "Μπορείτε να λάβετε το αναγνωριστικό συνομιλίας σας στέλνοντας ένα μήνυμα στο bot και μεταβαίνοντας σε αυτήν τη διεύθυνση URL για να προβάλετε το chat_id:",
"YOUR BOT TOKEN HERE": "ΤΟ BOT ΣΑΣ ΔΙΑΚΡΙΤΙΚΌ ΕΔΩ",
"chatIDNotFound": "Το Chat ID δεν βρέθηκε. Στείλτε πρώτα ένα μήνυμα σε αυτό το bot",
"webhook": "Webhook",
"Post URL": "Post URL",
"Content Type": "Τύπος περιεχομένου",
"webhookJsonDesc": "{0} είναι καλό για οποιονδήποτε σύγχρονο διακομιστή HTTP όπως το Express.js",
"webhookFormDataDesc": "{multipart} είναι καλό για την PHP. Το JSON θα πρέπει να αναλυθεί με {decodeFunction}",
"smtp": "Email (SMTP)",
"secureOptionNone": "None / STARTTLS (25, 587)",
"secureOptionTLS": "TLS (465)",
"Ignore TLS Error": "Παράβλεψη σφάλματος TLS",
"From Email": "Από Email",
"emailCustomSubject": "Προσαρμοσμένο θέμα",
"To Email": "Προς Email",
"smtpCC": "CC",
"smtpBCC": "BCC",
"discord": "Discord",
"Discord Webhook URL": "Discord Webhook URL",
"wayToGetDiscordURL": "Μπορείτε να το αποκτήσετε μεταβαίνοντας στις Ρυθμίσεις διακομιστή -> Ενσωματώσεις -> Δημιουργία Webhook",
"Bot Display Name": "Εμφανιζόμενο όνομα bot",
"Prefix Custom Message": "Προσαρμοσμένο μήνυμα",
"Hello @everyone is...": "Γεια {'@'}everyone ειναι...",
"teams": "Microsoft Teams",
"Webhook URL": "Webhook URL",
"wayToGetTeamsURL": "Μπορείτε να μάθετε πώς να δημιουργείτε μια διεύθυνση URL webhook {0}.",
"wayToGetZohoCliqURL": "Μπορείτε να μάθετε πώς να δημιουργείτε μια διεύθυνση URL webhook {0}.",
"signal": "Signal",
"Number": "Αριθμός",
"Recipients": "Αποδέκτες",
"needSignalAPI": "Πρέπει να έχετε ένα signal client με REST API..",
"wayToCheckSignalURL": "Μπορείτε να ελέγξετε αυτό το URL για να δείτε πώς να ρυθμίσετε ένα:",
"signalImportant": "ΣΗΜΑΝΤΙΚΟ: Δεν μπορείτε να συνδυάσετε ομάδες και αριθμούς στους παραλήπτες!",
"gotify": "Gotify",
"Application Token": "Token εφαρμογής",
"Server URL": "URL διακομιστή",
"Priority": "Προτεραιότητα",
"slack": "Slack",
"Icon Emoji": "Εικονίδιο Emoji",
"Channel Name": "Όνομα καναλιού",
"Uptime Kuma URL": "Uptime Kuma URL",
"aboutWebhooks": "Περισσότερες πληροφορίες σχετικά με τα Webhooks στο: {0}",
"aboutChannelName": "Εισαγάγετε το όνομα του καναλιού στο {0} Όνομα καναλιού εάν θέλετε να παρακάμψετε το κανάλι Webhook. Π.χ.: #other-channel",
"aboutKumaURL": "Εάν αφήσετε κενό το πεδίο URL Uptime Kuma, θα είναι προεπιλεγμένο στη σελίδα Project GitHub..",
"emojiCheatSheet": "Φύλλο εξαπάτησης emoji: {0}",
"rocket.chat": "Rocket.Chat",
"pushover": "Pushover",
"pushy": "Pushy",
"PushByTechulus": "Push by Techulus",
"octopush": "Octopush",
"promosms": "PromoSMS",
"clicksendsms": "ClickSend SMS",
"lunasea": "LunaSea",
"apprise": "Apprise (Support 50+ Notification services)",
"GoogleChat": "Google Chat (Google Workspace only)",
"pushbullet": "Pushbullet",
"line": "Line Messenger",
"mattermost": "Mattermost",
"User Key": "Κλειδί χρήστη",
"Device": "Συσκευή",
"Message Title": "Τίτλος μηνύματος",
"Notification Sound": "Ήχος ειδοποίησης",
"More info on:": "Περισσότερες πληροφορίες στο: {0}",
"pushoverDesc1": "Η προτεραιότητα έκτακτης ανάγκης (2) έχει προεπιλεγμένο χρονικό όριο 30 δευτερολέπτων μεταξύ των επαναλήψεων και θα λήξει μετά από 1 ώρα.",
"pushoverDesc2": "Εάν θέλετε να στέλνετε ειδοποιήσεις σε διαφορετικές συσκευές, συμπληρώστε το πεδίο Συσκευή.",
"SMS Type": "Τύπος SMS",
"octopushTypePremium": "Premium (Γρήγορη - συνιστάται για ειδοποίηση)",
"octopushTypeLowCost": "Χαμηλό κόστος (Αργό - μερικές φορές μπλοκάρεται από τον χειριστή)",
"checkPrice": "Ελέγξτε τις τιμές {0}:",
"apiCredentials": "API credentials",
"octopushLegacyHint": "Χρησιμοποιείτε την παλαιού τύπου έκδοση του Octopush (2011-2020) ή τη νέα έκδοση;",
"Check octopush prices": "Ελέγξτε τις τιμές OctoPush {0}.",
"octopushPhoneNumber": "Αριθμός τηλεφώνου (διεθνής μορφή, π.χ.: +30694345678)",
"octopushSMSSender": "Όνομα αποστολέα SMS: 3-11 αλφαριθμητικοί χαρακτήρες και διάστημα (a-zA-Z0-9)",
"LunaSea Device ID": "LunaSea Device ID",
"Apprise URL": "Apprise URL",
"Example:": "Παράδειγμα: {0}",
"Read more:": "Διαβάστε περισσότερα: {0}",
"Status:": "Κατάσταση: {0}",
"Read more": "Διαβάστε περισσότερα",
"appriseInstalled": "Το Apprise έχει εγκατασταθεί.",
"appriseNotInstalled": "Το Apprise δεν έχει εγκατασταθεί. {0}",
"Access Token": "Access Token",
"Channel access token": "Channel Access Token",
"Line Developers Console": "Line Developers Console",
"lineDevConsoleTo": "Line Developers Console - {0}",
"Basic Settings": "Βασικές ρυθμίσεις",
"User ID": "User ID",
"Messaging API": "Messaging API",
"wayToGetLineChannelToken": "Πρώτα αποκτήστε πρόσβαση στο {0}, δημιουργήστε έναν πάροχο και ένα κανάλι (Messanging API) και, στη συνέχεια, μπορείτε να λάβετε το channel access token και το user ID από τα παραπάνω στοιχεία μενού.",
"Icon URL": "Διεύθυνση URL εικονιδίου",
"aboutIconURL": "Μπορείτε να παρέχετε έναν σύνδεσμο προς μια εικόνα στο \"Icon URL\" για να παρακάμψετε την προεπιλεγμένη εικόνα προφίλ. Δεν θα χρησιμοποιηθεί εάν έχει οριστεί το εικονίδιο Emoji.",
"aboutMattermostChannelName": "Μπορείτε να παρακάμψετε το προεπιλεγμένο κανάλι στο οποίο δημοσιεύει το Webhook εισάγοντας το όνομα του καναλιού στο πεδίο \"Όνομα καναλιού\". Αυτό πρέπει να ενεργοποιηθεί στις ρυθμίσεις του Mattermost Webhook. Π.χ.: #other-channel",
"matrix": "Matrix",
"promosmsTypeEco": "SMS ECO - φθηνό αλλά αργό και συχνά υπερφορτωμένο. Περιορίζεται μόνο σε Πολωνούς παραλήπτες.",
"promosmsTypeFlash": "SMS FLASH - Το μήνυμα θα εμφανίζεται αυτόματα στη συσκευή του παραλήπτη. Περιορίζεται μόνο σε Πολωνούς παραλήπτες.",
"promosmsTypeFull": "SMS FULL - Premium επίπεδο SMS, Μπορείτε να χρησιμοποιήσετε το Όνομα Αποστολέα σας (Πρέπει πρώτα να καταχωρήσετε το όνομα). Αξιόπιστο για ειδοποιήσεις.",
"promosmsTypeSpeed": "SMS SPEED - Υψηλότερη προτεραιότητα στο σύστημα. Πολύ γρήγορο και αξιόπιστο αλλά ακριβό (περίπου διπλάσια τιμή SMS FULL).",
"promosmsPhoneNumber": "Αριθμός τηλεφώνου (για πολωνούς παραλήπτες Μπορείτε να παραλείψετε τους κωδικούς περιοχής)",
"promosmsSMSSender": "Όνομα αποστολέα SMS: Προεγγεγραμμένο όνομα ή ένα από τα προεπιλεγμένα: InfoSMS, SMS Info, MaxSMS, INFO, SMS",
"Feishu WebHookUrl": "Feishu WebHookURL",
"matrixHomeserverURL": "Homeserver URL (με http(s):// και προαιρετικά θύρα)",
"Internal Room Id": "Internal Room ID",
"matrixDesc1": "Μπορείτε να βρείτε το internal room ID ανατρέχοντας στην ενότητα για προχωρημένους των ρυθμίσεων δωματίου στο πρόγραμμα-πελάτη Matrix. Θα πρέπει να μοιάζει με !QMdRCpUIfLwsfjxye6:home.server.",
"matrixDesc2": "Συνιστάται ανεπιφύλακτα να δημιουργήσετε έναν νέο χρήστη και να μην χρησιμοποιήσετε το διακριτικό πρόσβασης του χρήστη Matrix, καθώς θα επιτρέψει την πλήρη πρόσβαση στον λογαριασμό σας και σε όλα τα δωμάτια στα οποία συμμετέχετε. Αντίθετα, δημιουργήστε έναν νέο χρήστη και προσκαλέστε τον μόνο στο δωμάτιο στο οποίο θέλετε να λαμβάνετε την ειδοποίηση. Μπορείτε να λάβετε το access token εκτελώντας {0}",
"Method": "Μέθοδος",
"Body": "Σώμα",
"Headers": "Headers",
"PushUrl": "Push URL",
"HeadersInvalidFormat": "The request headers are not valid JSON: ",
"BodyInvalidFormat": "The request body is not valid JSON: ",
"Monitor History": "Ιστορικο Παρακολούθησης",
"clearDataOlderThan": "Διατηρήστε τα δεδομένα ιστορικού παρακολούθησης για {0} ημέρες.",
"PasswordsDoNotMatch": "Οι κωδικοί πρόσβασης δεν ταιριάζουν.",
"records": "εγγραφές",
"One record": "Μία εγγραφή",
"steamApiKeyDescription": "Για την παρακολούθηση ενός διακομιστή παιχνιδιών Steam χρειάζεστε ένα κλειδί Steam Web-API. Μπορείτε να καταχωρήσετε το κλειδί API σας εδώ: ",
"Current User": "Τρέχων χρήστης",
"topic": "Θέμα",
"topicExplanation": "Θέμα MQTT προς παρακολούθηση",
"successMessage": "Μήνυμα επιτυχίας",
"successMessageExplanation": "Μήνυμα MQTT που θα θεωρηθεί επιτυχές",
"recent": "Πρόσφατος",
"Done": "Ολοκληρώθηκε",
"Info": "Πληροφορίες",
"Security": "Ασφάλεια",
"Steam API Key": "Steam API Key",
"Shrink Database": "Συρρίκνωση βάσης δεδομένων",
"Pick a RR-Type...": "Επιλέξτε έναν τύπο RR...",
"Pick Accepted Status Codes...": "Επιλέξτε Αποδεκτούς κωδικούς κατάστασης...",
"Default": "Προκαθορισμένο",
"HTTP Options": "Επιλογές HTTP",
"Create Incident": "Δημιουργία περιστατικού",
"Title": "Τίτλος",
"Content": "Περιεχόμενο",
"Style": "Στυλ",
"info": "πληροφορίες",
"warning": "προειδοποίηση",
"danger": "κίνδυνος",
"error": "σφάλμα",
"critical": "κριτικό",
"primary": "primary",
"light": "light",
"dark": "dark",
"Post": "Δημοσίευση",
"Please input title and content": "Παρακαλούμε εισαγάγετε τίτλο και περιεχόμενο",
"Created": "Δημιουργήθηκε",
"Last Updated": "Τελευταία ενημέρωση",
"Unpin": "Ξεκαρφιτσώστε",
"Switch to Light Theme": "Μετάβαση σε Ανιχτό θέμα",
"Switch to Dark Theme": "Μετάβαση σε Σκούρο θέμα",
"Show Tags": "Εμφάνιση ετικετών",
"Hide Tags": "Απόκρυψη ετικετών",
"Description": "Περιγραφή",
"No monitors available.": "Δεν υπάρχουν διαθέσιμες παρακολουθήσεις.",
"Add one": "Προσθέστε ένα",
"No Monitors": "Χωρίς παρακολουθήσεις",
"Untitled Group": "Ομάδα χωρίς τίτλο",
"Services": "Υπηρεσίες",
"Discard": "Απορρίψει",
"Cancel": "Ακυρο",
"Powered by": "Με την υποστήριξη του",
"shrinkDatabaseDescription": "Ενεργοποίηση βάσης δεδομένων VACUUM για SQLite. Εάν η βάση δεδομένων σας έχει δημιουργηθεί μετά την έκδοση 1.10.0, το AUTO_VACUUM είναι ήδη ενεργοποιημένο και αυτή η ενέργεια δεν χρειάζεται.",
"serwersms": "SerwerSMS.pl",
"serwersmsAPIUser": "API Username (incl. webapi_ prefix)",
"serwersmsAPIPassword": "API κωδικός πρόσβασης",
"serwersmsPhoneNumber": "Αριθμός τηλεφώνου",
"serwersmsSenderName": "Όνομα αποστολέα SMS (καταχωρήθηκε μέσω της πύλης πελατών)",
"stackfield": "Stackfield",
"Customize": "Προσαρμογή",
"Custom Footer": "Προσαρμογή Footer",
"Custom CSS": "Προσαρμογή CSS",
"smtpDkimSettings": "Ρυθμίσεις DKIM",
"smtpDkimDesc": "Ανατρέξτε στο Nodemailer DKIM {0} για χρήση.",
"documentation": "documentation",
"smtpDkimDomain": "Domain Name",
"smtpDkimKeySelector": "Key Selector",
"smtpDkimPrivateKey": "Private Key",
"smtpDkimHashAlgo": "Hash Algorithm (Optional)",
"smtpDkimheaderFieldNames": "Header Keys to sign (Optional)",
"smtpDkimskipFields": "Header Keys not to sign (Optional)",
"wayToGetPagerDutyKey": "Μπορείτε να το λάβετε μεταβαίνοντας στο Service -> Service Directory -> (Επιλέξτε μια υπηρεσία) -> Integrations -> Add integration. Εδώ μπορείτε να κάνετε αναζήτηση για \"Events API V2\". Περισσότερες πληροφορίες {0}",
"Integration Key": "Integration Key",
"Integration URL": "Integration URL",
"Auto resolve or acknowledged": "Αυτόματη επίλυση ή αναγνώριση",
"do nothing": "μην κάνεις τίποτα",
"auto acknowledged": "αυτόματη αναγνώριση",
"auto resolve": "αυτόματη επίλυση",
"gorush": "Gorush",
"alerta": "Alerta",
"alertaApiEndpoint": "API Endpoint",
"alertaEnvironment": "Environment",
"alertaApiKey": "API Key",
"alertaAlertState": "Alert State",
"alertaRecoverState": "Recover State",
"deleteStatusPageMsg": "Είστε βέβαιοι ότι θέλετε να διαγράψετε αυτήν τη σελίδα κατάστασης?",
"Proxies": "Proxies",
"default": "Προκαθορισμένο",
"enabled": "Ενεργοποιημένο",
"setAsDefault": "Ορίσετε ως προεπιλογή",
"deleteProxyMsg": "Είστε βέβαιοι ότι θέλετε να διαγράψετε αυτό το proxy για όλες τις παρακολουθήσεις;",
"proxyDescription": "Πρέπει να εκχωρηθούν proxies σε μια οθπαρακολουθή για να λειτουργήσουν..",
"enableProxyDescription": "Το proxy δεν θα επηρεάσει τα αιτήματα της παρακολουθήσεις μέχρι να ενεργοποιηθεί. Μπορείτε να ελέγξετε την προσωρινή απενεργοποίηση του proxy από όλες τις παρακολουθήσεις βάσει κατάστασης ενεργοποίησης.",
"setAsDefaultProxyDescription": "Αυτός το proxy θα είναι ενεργοποιημένο από προεπιλογή για νέες παρακολουθήσεις. Μπορείτε ακόμα να απενεργοποιήσετε το proxy ξεχωριστά για κάθε οθόνη.",
"Certificate Chain": "Certificate Chain",
"Valid": "Εγκυρο",
"Invalid": "Μη έγκυρο",
"AccessKeyId": "AccessKey ID",
"SecretAccessKey": "AccessKey Secret",
"PhoneNumbers": "PhoneNumbers",
"TemplateCode": "TemplateCode",
"SignName": "SignName",
"Sms template must contain parameters: ": "Το πρότυπο SMS πρέπει να περιέχει παραμέτρους: ",
"Bark Endpoint": "Bark Endpoint",
"Bark Group": "Bark Ομάδα",
"Bark Sound": "Bark Ήχος",
"WebHookUrl": "WebHookUrl",
"SecretKey": "SecretKey",
"For safety, must use secret key": "Για ασφάλεια, πρέπει να χρησιμοποιήσετε secret key",
"Device Token": "Device Token",
"Platform": "Platform",
"iOS": "iOS",
"Android": "Android",
"Huawei": "Huawei",
"High": "High",
"Retry": "Ξαναδοκιμάσετε",
"Topic": "Θέμα",
"WeCom Bot Key": "WeCom Bot Key",
"Setup Proxy": "Ρύθμιση Proxy",
"Proxy Protocol": "Πρωτόκολλο Proxy",
"Proxy Server": "Proxy Server",
"Proxy server has authentication": "Το Proxy διαθέτει έλεγχο ταυτότητας",
"User": "Χρήστης",
"Installed": "Εγκατεστημένο",
"Not installed": "Μη εγκατεστημενο",
"Running": "Τρέχη",
"Not running": "Δεν τρεχη",
"Remove Token": "Κατάργηση 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",
"Authentication": "Authentication",
"HTTP Basic Auth": "HTTP Basic Auth",
"New Status Page": "Νέας Σελίδα κατάστασης",
"Page Not Found": "Η σελίδα δεν βρέθηκε",
"Reverse Proxy": "Αντίστροφο Proxy",
"Backup": "Αντιγράφων ασφαλείας",
"About": "Σχετικά με το Uptime Kuma",
"wayToGetCloudflaredURL": "(Λήψη cloudflared από {0})",
"cloudflareWebsite": "Ιστοσελίδα Cloudflare",
"Message:": "Μήνυμα:",
"Don't know how to get the token? Please read the guide:": "Δεν ξέρετε πώς να αποκτήσετε το token; Διαβάστε τον οδηγό:",
"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. Θέλετε σίγουρα να το σταματήσετε; Πληκτρολογήστε τον τρέχοντα κωδικό πρόσβασής σας για να τον επιβεβαιώσετε.",
"HTTP Headers": "HTTP Headers",
"Trust Proxy": "Εμπιστοσύνη του Proxy",
"Other Software": "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": "Ημερομηνία Δημιουργίας",
"HomeAssistant": "Home Assistant",
"onebotHttpAddress": "OneBot HTTP Address",
"onebotMessageType": "OneBot Message Type",
"onebotGroupMessage": "Group",
"onebotPrivateMessage": "Private",
"onebotUserOrGroupId": "Group/User ID",
"onebotSafetyTips": "Για ασφάλεια, πρέπει να ορίσετε το acess token",
"PushDeer Key": "PushDeer Key",
"Footer Text": "Κείμενο υποσέλιδου",
"Show Powered By": "Εμφάνιση Powered By",
"Domain Names": "Ονόματα Τομέα",
"signedInDisp": "Συνδεθήκατε ως {0}",
"signedInDispDisabled": "Εξουσιοδότηση είναι απενεργοποιημένη.",
"RadiusSecret": "Radius Secret",
"RadiusSecretDescription": "Shared Secret μεταξύ client και το server",
"RadiusCalledStationId": "Called Station Id",
"RadiusCalledStationIdDescription": "Identifier της καλούμενης συσκευής",
"RadiusCallingStationId": "Calling Station Id",
"RadiusCallingStationIdDescription": "Identifier oτης συσκευής κλήσης",
"Certificate Expiry Notification": "Ειδοποίηση Λήξης Πιστοποιητικού",
"API Username": "API Username",
"API Key": "API Key",
"Recipient Number": "Αριθμός Παραλήπτη",
"From Name/Number": "Από Όνομα/Αριθμός",
"Leave blank to use a shared sender number.": "Αφήστε το κενό για να χρησιμοποιήσετε έναν κοινόχρηστο αριθμό αποστολέα.",
"Octopush API Version": "Octopush API Version",
"Legacy Octopush-DM": "Legacy Octopush-DM",
"endpoint": "endpoint",
"octopushAPIKey": "\"API key\" από το HTTP API credentials στον πίνακα ελέγχου",
"octopushLogin": "\"Login\" από το HTTP API credentials στον πίνακα ελέγχου",
"promosmsLogin": "API Login Name",
"promosmsPassword": "API Password",
"pushoversounds pushover": "Pushover (default)",
"pushoversounds bike": "Bike",
"pushoversounds bugle": "Bugle",
"pushoversounds cashregister": "Cash Register",
"pushoversounds classical": "Classical",
"pushoversounds cosmic": "Cosmic",
"pushoversounds falling": "Falling",
"pushoversounds gamelan": "Gamelan",
"pushoversounds incoming": "Incoming",
"pushoversounds intermission": "Intermission",
"pushoversounds magic": "Magic",
"pushoversounds mechanical": "Mechanical",
"pushoversounds pianobar": "Piano Bar",
"pushoversounds siren": "Siren",
"pushoversounds spacealarm": "Space Alarm",
"pushoversounds tugboat": "Tug Boat",
"pushoversounds alien": "Alien Alarm (long)",
"pushoversounds climb": "Climb (long)",
"pushoversounds persistent": "Persistent (long)",
"pushoversounds echo": "Pushover Echo (long)",
"pushoversounds updown": "Up Down (long)",
"pushoversounds vibrate": "Vibrate Only",
"pushoversounds none": "None (silent)",
"pushyAPIKey": "Μυστικό API Key",
"pushyToken": "Τoken Συσκευής",
"Show update if available": "Εμφάνιση ενημέρωσης εάν είναι διαθέσιμη",
"Also check beta release": "Ελέγξτε επίσης την έκδοση beta",
"Using a Reverse Proxy?": "Χρησιμοποιείτε reverse proxy;",
"Check how to config it for WebSocket": "Ελέγξτε πώς να το ρυθμίσετε για το WebSocket",
"Steam Game Server": "Διακομιστής παιχνιδιών Steam",
"Most likely causes:": "Πιο πιθανές αιτίες:",
"The resource is no longer available.": "Ο πόρος δεν είναι πλέον διαθέσιμος.",
"There might be a typing error in the address.": "Μπορεί να υπάρχει σφάλμα πληκτρολόγησης στη διεύθυνση.",
"What you can try:": "Τι μπορείτε να δοκιμάσετε:",
"Retype the address.": "Πληκτρολογήστε ξανά τη διεύθυνση.",
"Go back to the previous page.": "Επιστρέψτε στην προηγούμενη σελίδα.",
"Coming Soon": "Ερχεται σύντομα",
"wayToGetClickSendSMSToken": "Μπορείτε να πάρετε το API Username και API Key απο {0} .",
"Connection String": "Connection String",
"Query": "Query",
"settingsCertificateExpiry": "Λήξη πιστοποιητικού TLS",
"certificationExpiryDescription": "Οι παρακολουθήσεις HTTPS ενεργοποιούν ειδοποίηση όταν λήξει το πιστοποιητικό TLS σε:",
"Setup Docker Host": "Ρύθμιση Docker Host",
"Connection Type": "Τύπος σύνδεσης",
"Docker Daemon": "Docker Daemon",
"deleteDockerHostMsg": "Είστε βέβαιοι ότι θέλετε να διαγράψετε αυτόν τον κεντρικό υπολογιστή βάσης για όλες τις παρακολουθήσεις;",
"socket": "Socket",
"tcp": "TCP / HTTP",
"Docker Container": "Docker Container",
"Container Name / ID": "Container Name / ID",
"Docker Host": "Docker Host",
"Docker Hosts": "Docker Hosts",
"ntfy Topic": "ntfy Topic",
"Domain": "Domain",
"Workstation": "Workstation",
"disableCloudflaredNoAuthMsg": "Βρίσκεστε σε λειτουργία No Auth, δεν απαιτείται κωδικός πρόσβασης.",
"trustProxyDescription": "Εμπιστευτείτε τις κεφαλίδες 'X-Forwarded-*'. Εάν θέλετε να λάβετε τη σωστή IP πελάτη και το Uptime Kuma σας βρίσκεται πίσω το Nginx ή το Apache, θα πρέπει να το ενεργοποιήσετε.",
"wayToGetLineNotifyToken": "Μπορείτε να λάβετε ένα access token από το {0}",
"Examples": "Παραδείγματα",
"Home Assistant URL": "Home Assistant URL",
"Long-Lived Access Token": "Long-Lived Access Token",
"Long-Lived Access Token can be created by clicking on your profile name (bottom left) and scrolling to the bottom then click Create Token. ": "Long-Lived Access Token μπορεί να δημιουργηθεί κάνοντας κλικ στο όνομα του προφίλ σας (κάτω αριστερά) και κάνοντας κύλιση προς τα κάτω και, στη συνέχεια, κάντε κλικ στο Create Token. ",
"Notification Service": "Υπηρεσία ειδοποιήσεων",
"default: notify all devices": "προεπιλογή: ειδοποίηση όλων των συσκευών",
"A list of Notification Services can be found in Home Assistant under \"Developer Tools > Services\" search for \"notification\" to find your device/phone name.": "Μπορείτε να βρείτε μια λίστα με τις Υπηρεσίες ειδοποιήσεων στον Home assistant στην περιοχή \"Developer Tools > Services\" αναζήτηση για \"notification\" για να βρείτε το όνομα της συσκευής/τηλεφώνου σας.",
"Automations can optionally be triggered in Home Assistant:": "Οι αυτοματισμοί μπορούν προαιρετικά να ενεργοποιηθούν στο Home Assistant:",
"Trigger type:": "Τύπος ενεργοποίησης:",
"Event type:": "Τύπος συμβάντος:",
"Event data:": "Δεδομένα συμβάντος:",
"Then choose an action, for example switch the scene to where an RGB light is red.": "Στη συνέχεια, επιλέξτε μια ενέργεια, για παράδειγμα αλλάξτε τη σκηνή στο σημείο όπου ένα φως RGB είναι κόκκινο.",
"Frontend Version": "Έκδοση Frontend",
"Frontend Version do not match backend version!": "Η Frontend έκδοση δεν ταιριάζει με την έκδοση backend!",
"Base URL": "Βασική διεύθυνση URL",
"goAlertInfo": "Το GoAlert είναι μια εφαρμογή ανοιχτού κώδικα για προγραμματισμό κλήσεων, αυτοματοποιημένες κλιμακώσεις και ειδοποιήσεις (όπως SMS ή φωνητικές κλήσεις). Αλληλεπιδράστε αυτόματα με το σωστό άτομο, με τον σωστό τρόπο και τη σωστή στιγμή! {0}",
"goAlertIntegrationKeyInfo": "Λάβετε το generic API integration key για την υπηρεσία σε αυτήν τη μορφή \"aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee\" συνήθως την τιμή της παραμέτρου διακριτικού της αντιγραμμένης διεύθυνσης URL.",
"goAlert": "GoAlert",
"backupOutdatedWarning": "Καταργήθηκε: Επειδή προστέθηκαν πολλές δυνατότητες και αυτή η δυνατότητα δημιουργίας αντιγράφων ασφαλείας δεν διατηρείται πολη, δεν μπορεί να δημιουργήσει ή να επαναφέρει ένα πλήρες αντίγραφο ασφαλείας.",
"backupRecommend": "Παρακαλούμε δημιουργήστε αντίγραφα ασφαλείας του volume ή του φακέλου δεδομένων (./data/) απευθείας."
}

@ -0,0 +1,695 @@
{
"languageName": "English",
"Settings": "Settings",
"Dashboard": "Dashboard",
"Help": "Help",
"New Update": "New Update",
"Language": "Language",
"Appearance": "Appearance",
"Theme": "Theme",
"General": "General",
"Game": "Game",
"Primary Base URL": "Primary Base URL",
"Version": "Version",
"Check Update On GitHub": "Check Update On GitHub",
"List": "List",
"Add": "Add",
"Add New Monitor": "Add New Monitor",
"Quick Stats": "Quick Stats",
"Up": "Up",
"Down": "Down",
"Pending": "Pending",
"statusMaintenance": "Maintenance",
"Maintenance": "Maintenance",
"Unknown": "Unknown",
"General Monitor Type": "General Monitor Type",
"Passive Monitor Type": "Passive Monitor Type",
"Specific Monitor Type": "Specific Monitor Type",
"markdownSupported": "Markdown syntax supported",
"pauseDashboardHome": "Pause",
"Pause": "Pause",
"Name": "Name",
"Status": "Status",
"DateTime": "DateTime",
"Message": "Message",
"No important events": "No important events",
"Resume": "Resume",
"Edit": "Edit",
"Delete": "Delete",
"Current": "Current",
"Uptime": "Uptime",
"Cert Exp.": "Cert Exp.",
"Monitor": "Monitor | Monitors",
"day": "day | days",
"-day": "-day",
"hour": "hour",
"-hour": "-hour",
"Response": "Response",
"Ping": "Ping",
"Monitor Type": "Monitor Type",
"Keyword": "Keyword",
"Friendly Name": "Friendly Name",
"URL": "URL",
"Hostname": "Hostname",
"Port": "Port",
"Heartbeat Interval": "Heartbeat Interval",
"Retries": "Retries",
"Heartbeat Retry Interval": "Heartbeat Retry Interval",
"Resend Notification if Down X times consequently": "Resend Notification if Down X times consequently",
"Advanced": "Advanced",
"checkEverySecond": "Check every {0} seconds",
"retryCheckEverySecond": "Retry every {0} seconds",
"resendEveryXTimes": "Resend every {0} times",
"resendDisabled": "Resend disabled",
"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.",
"maxRedirectDescription": "Maximum number of redirects to follow. Set to 0 to disable redirects.",
"Upside Down Mode": "Upside Down Mode",
"Max. Redirects": "Max. Redirects",
"Accepted Status Codes": "Accepted Status Codes",
"Push URL": "Push URL",
"needPushEvery": "You should call this URL every {0} seconds.",
"pushOptionalParams": "Optional parameters: {0}",
"Save": "Save",
"Notifications": "Notifications",
"Not available, please setup.": "Not available, please setup.",
"Setup Notification": "Setup Notification",
"Light": "Light",
"Dark": "Dark",
"Auto": "Auto",
"Theme - Heartbeat Bar": "Theme - Heartbeat Bar",
"Normal": "Normal",
"Bottom": "Bottom",
"None": "None",
"Timezone": "Timezone",
"Search Engine Visibility": "Search Engine Visibility",
"Allow indexing": "Allow indexing",
"Discourage search engines from indexing site": "Discourage search engines from indexing site",
"Change Password": "Change Password",
"Current Password": "Current Password",
"New Password": "New Password",
"Repeat New Password": "Repeat New Password",
"Update Password": "Update Password",
"Disable Auth": "Disable Auth",
"Enable Auth": "Enable Auth",
"disableauth.message1": "Are you sure want to <strong>disable authentication</strong>?",
"disableauth.message2": "It is designed for scenarios <strong>where you intend to implement third-party authentication</strong> in front of Uptime Kuma such as Cloudflare Access, Authelia or other authentication mechanisms.",
"Please use this option carefully!": "Please use this option carefully!",
"Logout": "Logout",
"Leave": "Leave",
"I understand, please disable": "I understand, please disable",
"Confirm": "Confirm",
"Yes": "Yes",
"No": "No",
"Username": "Username",
"Password": "Password",
"Remember me": "Remember me",
"Login": "Login",
"No Monitors, please": "No Monitors, please",
"add one": "add one",
"Notification Type": "Notification Type",
"Email": "Email",
"Test": "Test",
"Certificate Info": "Certificate Info",
"Resolver Server": "Resolver Server",
"Resource Record Type": "Resource Record Type",
"Last Result": "Last Result",
"Create your admin account": "Create your admin account",
"Repeat Password": "Repeat Password",
"Import Backup": "Import Backup",
"Export Backup": "Export Backup",
"Export": "Export",
"Import": "Import",
"respTime": "Resp. Time (ms)",
"notAvailableShort": "N/A",
"Default enabled": "Default enabled",
"Apply on all existing monitors": "Apply on all existing monitors",
"Create": "Create",
"Clear Data": "Clear Data",
"Events": "Events",
"Heartbeats": "Heartbeats",
"Auto Get": "Auto Get",
"Schedule maintenance": "Schedule maintenance",
"Affected Monitors": "Affected Monitors",
"Pick Affected Monitors...": "Pick Affected Monitors…",
"Start of maintenance": "Start of maintenance",
"All Status Pages": "All Status Pages",
"Select status pages...": "Select status pages…",
"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 exists.",
"Tag with this value already exist.": "Tag with this value already exists.",
"color": "Color",
"value (optional)": "value (optional)",
"Gray": "Gray",
"Red": "Red",
"Orange": "Orange",
"Green": "Green",
"Blue": "Blue",
"Indigo": "Indigo",
"Purple": "Purple",
"Pink": "Pink",
"Custom": "Custom",
"Search...": "Search…",
"Avg. Ping": "Avg. Ping",
"Avg. Response": "Avg. Response",
"Entry Page": "Entry Page",
"statusPageNothing": "Nothing here, please add a group or a monitor.",
"No Services": "No Services",
"All Systems Operational": "All Systems Operational",
"Partially Degraded Service": "Partially Degraded Service",
"Degraded Service": "Degraded Service",
"Add Group": "Add Group",
"Add a monitor": "Add a monitor",
"Edit Status Page": "Edit Status Page",
"Go to Dashboard": "Go to Dashboard",
"Status Page": "Status Page",
"Status Pages": "Status Pages",
"defaultNotificationName": "My {notification} Alert ({number})",
"here": "here",
"Required": "Required",
"webhook": "Webhook",
"Post URL": "Post URL",
"Content Type": "Content Type",
"webhookJsonDesc": "{0} is good for any modern HTTP servers such as Express.js",
"webhookFormDataDesc": "{multipart} is good for PHP. The JSON will need to be parsed with {decodeFunction}",
"webhookAdditionalHeadersTitle": "Additional Headers",
"webhookAdditionalHeadersDesc": "Sets additional headers sent with the webhook.",
"Webhook URL": "Webhook URL",
"Application Token": "Application Token",
"Server URL": "Server URL",
"Priority": "Priority",
"emojiCheatSheet": "Emoji cheat sheet: {0}",
"Read more": "Read more",
"appriseInstalled": "Apprise is installed.",
"appriseNotInstalled": "Apprise is not installed. {0}",
"Method": "Method",
"Body": "Body",
"Headers": "Headers",
"PushUrl": "Push URL",
"HeadersInvalidFormat": "The request headers are not valid JSON: ",
"BodyInvalidFormat": "The request body is not valid JSON: ",
"Monitor History": "Monitor History",
"clearDataOlderThan": "Keep monitor history data for {0} days.",
"PasswordsDoNotMatch": "Passwords do not match.",
"records": "records",
"One record": "One record",
"steamApiKeyDescription": "For monitoring a Steam Game Server you need a Steam Web-API key. You can register your API key here: ",
"Current User": "Current User",
"topic": "Topic",
"topicExplanation": "MQTT topic to monitor",
"successMessage": "Success Message",
"successMessageExplanation": "MQTT message that will be considered as success",
"recent": "Recent",
"Done": "Done",
"Info": "Info",
"Security": "Security",
"Steam API Key": "Steam API Key",
"Shrink Database": "Shrink Database",
"Pick a RR-Type...": "Pick a RR-Type…",
"Pick Accepted Status Codes...": "Pick Accepted Status Codes…",
"Default": "Default",
"HTTP Options": "HTTP Options",
"Create Incident": "Create Incident",
"Title": "Title",
"Content": "Content",
"Style": "Style",
"info": "info",
"warning": "warning",
"danger": "danger",
"error": "error",
"critical": "critical",
"primary": "primary",
"light": "light",
"dark": "dark",
"Post": "Post",
"Please input title and content": "Please input title and content",
"Created": "Created",
"Last Updated": "Last Updated",
"Unpin": "Unpin",
"Switch to Light Theme": "Switch to Light Theme",
"Switch to Dark Theme": "Switch to Dark Theme",
"Show Tags": "Show Tags",
"Hide Tags": "Hide Tags",
"Description": "Description",
"No monitors available.": "No monitors available.",
"Add one": "Add one",
"No Monitors": "No Monitors",
"Untitled Group": "Untitled Group",
"Services": "Services",
"Discard": "Discard",
"Cancel": "Cancel",
"Powered by": "Powered by",
"shrinkDatabaseDescription": "Trigger database VACUUM for SQLite. If your database is created after 1.10.0, AUTO_VACUUM is already enabled and this action is not needed.",
"Customize": "Customize",
"Custom Footer": "Custom Footer",
"Custom CSS": "Custom CSS",
"deleteStatusPageMsg": "Are you sure want to delete this status page?",
"Proxies": "Proxies",
"default": "Default",
"enabled": "Enabled",
"setAsDefault": "Set As Default",
"deleteProxyMsg": "Are you sure want to delete this proxy for all monitors?",
"proxyDescription": "Proxies must be assigned to a monitor to function.",
"enableProxyDescription": "This proxy will not effect on monitor requests until it is activated. You can control temporarily disable the proxy from all monitors by activation status.",
"setAsDefaultProxyDescription": "This proxy will be enabled by default for new monitors. You can still disable the proxy separately for each monitor.",
"Certificate Chain": "Certificate Chain",
"Valid": "Valid",
"Invalid": "Invalid",
"User": "User",
"Installed": "Installed",
"Not installed": "Not installed",
"Running": "Running",
"Not running": "Not running",
"Remove Token": "Remove Token",
"Start": "Start",
"Stop": "Stop",
"Add New Status Page": "Add New Status Page",
"Slug": "Slug",
"Accept characters:": "Accept characters:",
"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.",
"No Proxy": "No Proxy",
"Authentication": "Authentication",
"HTTP Basic Auth": "HTTP Basic Auth",
"New Status Page": "New Status Page",
"Page Not Found": "Page Not Found",
"Reverse Proxy": "Reverse Proxy",
"Backup": "Backup",
"About": "About",
"wayToGetCloudflaredURL": "(Download cloudflared from {0})",
"cloudflareWebsite": "Cloudflare Website",
"Message:": "Message:",
"Don't know how to get the token? Please read the guide:": "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.": "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.",
"HTTP Headers": "HTTP Headers",
"Trust Proxy": "Trust Proxy",
"Other Software": "Other Software",
"For example: nginx, Apache and Traefik.": "For example: nginx, Apache and Traefik.",
"Please read": "Please read",
"Subject:": "Subject:",
"Valid To:": "Valid To:",
"Days Remaining:": "Days Remaining:",
"Issuer:": "Issuer:",
"Fingerprint:": "Fingerprint:",
"No status pages": "No status pages",
"Domain Name Expiry Notification": "Domain Name Expiry Notification",
"Proxy": "Proxy",
"Date Created": "Date Created",
"Footer Text": "Footer Text",
"Show Powered By": "Show Powered By",
"Domain Names": "Domain Names",
"signedInDisp": "Signed in as {0}",
"signedInDispDisabled": "Auth Disabled.",
"RadiusSecret": "Radius Secret",
"RadiusSecretDescription": "Shared Secret between client and server",
"RadiusCalledStationId": "Called Station Id",
"RadiusCalledStationIdDescription": "Identifier of the called device",
"RadiusCallingStationId": "Calling Station Id",
"RadiusCallingStationIdDescription": "Identifier of the calling device",
"Certificate Expiry Notification": "Certificate Expiry Notification",
"API Username": "API Username",
"API Key": "API Key",
"Show update if available": "Show update if available",
"Also check beta release": "Also check beta release",
"Using a Reverse Proxy?": "Using a Reverse Proxy?",
"Check how to config it for WebSocket": "Check how to config it for WebSocket",
"Steam Game Server": "Steam Game Server",
"Most likely causes:": "Most likely causes:",
"The resource is no longer available.": "The resource is no longer available.",
"There might be a typing error in the address.": "There might be a typing error in the address.",
"What you can try:": "What you can try:",
"Retype the address.": "Retype the address.",
"Go back to the previous page.": "Go back to the previous page.",
"Coming Soon": "Coming Soon",
"Connection String": "Connection String",
"Query": "Query",
"settingsCertificateExpiry": "TLS Certificate Expiry",
"certificationExpiryDescription": "HTTPS Monitors trigger notification when TLS certificate expires in:",
"Setup Docker Host": "Setup Docker Host",
"Connection Type": "Connection Type",
"Docker Daemon": "Docker Daemon",
"deleteDockerHostMsg": "Are you sure want to delete this docker host for all monitors?",
"socket": "Socket",
"tcp": "TCP / HTTP",
"Docker Container": "Docker Container",
"Container Name / ID": "Container Name / ID",
"Docker Host": "Docker Host",
"Docker Hosts": "Docker Hosts",
"Domain": "Domain",
"Workstation": "Workstation",
"Packet Size": "Packet Size",
"telegram": "Telegram",
"ZohoCliq": "ZohoCliq",
"Bot Token": "Bot Token",
"wayToGetTelegramToken": "You can get a token from {0}.",
"Chat ID": "Chat ID",
"supportTelegramChatID": "Support Direct Chat / Group / Channel's Chat ID",
"wayToGetTelegramChatID": "You can get your chat ID by sending a message to the bot and going to this URL to view the chat_id:",
"YOUR BOT TOKEN HERE": "YOUR BOT TOKEN HERE",
"chatIDNotFound": "Chat ID is not found; please send a message to this bot first",
"disableCloudflaredNoAuthMsg": "You are in No Auth mode, a password is not required.",
"trustProxyDescription": "Trust 'X-Forwarded-*' headers. If you want to get the correct client IP and your Uptime Kuma is behind a proxy such as Nginx or Apache, you should enable this.",
"wayToGetLineNotifyToken": "You can get an access token from {0}",
"Examples": "Examples",
"Home Assistant URL": "Home Assistant URL",
"Long-Lived Access Token": "Long-Lived Access Token",
"Long-Lived Access Token can be created by clicking on your profile name (bottom left) and scrolling to the bottom then click Create Token. ": "Long-Lived Access Token can be created by clicking on your profile name (bottom left) and scrolling to the bottom then click Create Token. ",
"Notification Service": "Notification Service",
"default: notify all devices": "default: notify all devices",
"A list of Notification Services can be found in Home Assistant under \"Developer Tools > Services\" search for \"notification\" to find your device/phone name.": "A list of Notification Services can be found in Home Assistant under \"Developer Tools > Services\" search for \"notification\" to find your device/phone name.",
"Automations can optionally be triggered in Home Assistant:": "Automations can optionally be triggered in Home Assistant:",
"Trigger type:": "Trigger type:",
"Event type:": "Event type:",
"Event data:": "Event data:",
"Then choose an action, for example switch the scene to where an RGB light is red.": "Then choose an action, for example switch the scene to where an RGB light is red.",
"Frontend Version": "Frontend Version",
"Frontend Version do not match backend version!": "Frontend Version do not match backend version!",
"backupOutdatedWarning": "Deprecated: Since a lot of features were added and this backup feature is a bit unmaintained, it cannot generate or restore a complete backup.",
"backupRecommend": "Please backup the volume or the data folder (./data/) directly instead.",
"Optional": "Optional",
"squadcast": "Squadcast",
"or": "or",
"recurringInterval": "Interval",
"Recurring": "Recurring",
"strategyManual": "Active/Inactive Manually",
"warningTimezone": "It is using the server's timezone",
"weekdayShortMon": "Mon",
"weekdayShortTue": "Tue",
"weekdayShortWed": "Wed",
"weekdayShortThu": "Thu",
"weekdayShortFri": "Fri",
"weekdayShortSat": "Sat",
"weekdayShortSun": "Sun",
"dayOfWeek": "Day of Week",
"dayOfMonth": "Day of Month",
"lastDay": "Last Day",
"lastDay1": "Last Day of Month",
"lastDay2": "2nd Last Day of Month",
"lastDay3": "3rd Last Day of Month",
"lastDay4": "4th Last Day of Month",
"No Maintenance": "No Maintenance",
"pauseMaintenanceMsg": "Are you sure want to pause?",
"maintenanceStatus-under-maintenance": "Under Maintenance",
"maintenanceStatus-inactive": "Inactive",
"maintenanceStatus-scheduled": "Scheduled",
"maintenanceStatus-ended": "Ended",
"maintenanceStatus-unknown": "Unknown",
"Display Timezone": "Display Timezone",
"Server Timezone": "Server Timezone",
"statusPageMaintenanceEndDate": "End",
"IconUrl": "Icon URL",
"Enable DNS Cache": "Enable DNS Cache",
"Enable": "Enable",
"Disable": "Disable",
"dnsCacheDescription": "It may be not working in some IPv6 environments, disable it if you encounter any issues.",
"Single Maintenance Window": "Single Maintenance Window",
"Maintenance Time Window of a Day": "Maintenance Time Window of a Day",
"Effective Date Range": "Effective Date Range",
"Schedule Maintenance": "Schedule Maintenance",
"Date and Time": "Date and Time",
"DateTime Range": "DateTime Range",
"loadingError": "Cannot fetch the data, please try again later.",
"plugin": "Plugin | Plugins",
"install": "Install",
"installing": "Installing",
"uninstall": "Uninstall",
"uninstalling": "Uninstalling",
"confirmUninstallPlugin": "Are you sure want to uninstall this plugin?",
"smtp": "Email (SMTP)",
"secureOptionNone": "None / STARTTLS (25, 587)",
"secureOptionTLS": "TLS (465)",
"Ignore TLS Error": "Ignore TLS Error",
"From Email": "From Email",
"emailCustomSubject": "Custom Subject",
"To Email": "To Email",
"smtpCC": "CC",
"smtpBCC": "BCC",
"Discord Webhook URL": "Discord Webhook URL",
"wayToGetDiscordURL": "You can get this by going to Server Settings -> Integrations -> Create Webhook",
"Bot Display Name": "Bot Display Name",
"Prefix Custom Message": "Prefix Custom Message",
"Hello @everyone is...": "Hello {'@'}everyone is…",
"wayToGetTeamsURL": "You can learn how to create a webhook URL {0}.",
"wayToGetZohoCliqURL": "You can learn how to create a webhook URL {0}.",
"needSignalAPI": "You need to have a signal client with REST API.",
"wayToCheckSignalURL": "You can check this URL to view how to set one up:",
"Number": "Number",
"Recipients": "Recipients",
"Access Token": "Access Token",
"Channel access token": "Channel access token",
"Line Developers Console": "Line Developers Console",
"lineDevConsoleTo": "Line Developers Console - {0}",
"Basic Settings": "Basic Settings",
"User ID": "User ID",
"Messaging API": "Messaging API",
"wayToGetLineChannelToken": "First access the {0}, create a provider and channel (Messaging API), then you can get the channel access token and user ID from the above mentioned menu items.",
"Icon URL": "Icon URL",
"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 the Webhook posts to by entering the channel name into \"Channel Name\" field. This needs to be enabled in the Mattermost Webhook settings. Ex: #other-channel",
"dataRetentionTimeError": "Retention period must be 0 or greater",
"infiniteRetention": "Set to 0 for infinite retention.",
"confirmDeleteTagMsg": "Are you sure you want to delete this tag? Monitors associated with this tag will not be deleted.",
"enableGRPCTls": "Allow to send gRPC request with TLS connection",
"grpcMethodDescription": "Method name is convert to cammelCase format such as sayHello, check, etc.",
"acceptedStatusCodesDescription": "Select status codes which are considered as a successful response.",
"deleteMonitorMsg": "Are you sure want to delete this monitor?",
"deleteMaintenanceMsg": "Are you sure want to delete this maintenance?",
"deleteNotificationMsg": "Are you sure want to delete this notification for all monitors?",
"dnsPortDescription": "DNS server port. Defaults to 53. You can change the port at any time.",
"resolverserverDescription": "Cloudflare is the default server. You can change the resolver server anytime.",
"rrtypeDescription": "Select the RR type you want to monitor",
"pauseMonitorMsg": "Are you sure want to pause?",
"enableDefaultNotificationDescription": "This notification will be enabled by default for new monitors. You can still disable the notification separately for each monitor.",
"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 you want to delete ALL statistics?",
"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 you want to import the backup? Please verify you've selected the correct import option.",
"twoFAVerifyLabel": "Please enter your token to verify 2FA:",
"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?",
"recurringIntervalMessage": "Run once every day | Run once every {0} days",
"affectedMonitorsDescription": "Select monitors that are affected by current maintenance",
"affectedStatusPages": "Show this maintenance message on selected status pages",
"atLeastOneMonitor": "Select at least one affected monitor",
"passwordNotMatchMsg": "The repeat password does not match.",
"notificationDescription": "Notifications must be assigned to a monitor to function.",
"keywordDescription": "Search keyword in plain HTML or JSON response. The search is case-sensitive.",
"backupDescription": "You can backup all monitors and notifications into a JSON file.",
"backupDescription2": "Note: history and event data is not included.",
"backupDescription3": "Sensitive data such as notification tokens are included in the export file; please store export securely.",
"endpoint": "endpoint",
"octopushAPIKey": "\"API key\" from HTTP API credentials in control panel",
"octopushLogin": "\"Login\" from HTTP API credentials in control panel",
"promosmsLogin": "API Login Name",
"promosmsPassword": "API Password",
"pushoversounds pushover": "Pushover (default)",
"pushoversounds bike": "Bike",
"pushoversounds bugle": "Bugle",
"pushoversounds cashregister": "Cash Register",
"pushoversounds classical": "Classical",
"pushoversounds cosmic": "Cosmic",
"pushoversounds falling": "Falling",
"pushoversounds gamelan": "Gamelan",
"pushoversounds incoming": "Incoming",
"pushoversounds intermission": "Intermission",
"pushoversounds magic": "Magic",
"pushoversounds mechanical": "Mechanical",
"pushoversounds pianobar": "Piano Bar",
"pushoversounds siren": "Siren",
"pushoversounds spacealarm": "Space Alarm",
"pushoversounds tugboat": "Tug Boat",
"pushoversounds alien": "Alien Alarm (long)",
"pushoversounds climb": "Climb (long)",
"pushoversounds persistent": "Persistent (long)",
"pushoversounds echo": "Pushover Echo (long)",
"pushoversounds updown": "Up Down (long)",
"pushoversounds vibrate": "Vibrate Only",
"pushoversounds none": "None (silent)",
"pushyAPIKey": "Secret API Key",
"pushyToken": "Device token",
"discord": "Discord",
"teams": "Microsoft Teams",
"signal": "Signal",
"gotify": "Gotify",
"slack": "Slack",
"rocket.chat": "Rocket.Chat",
"pushover": "Pushover",
"pushy": "Pushy",
"PushByTechulus": "Push by Techulus",
"octopush": "Octopush",
"promosms": "PromoSMS",
"clicksendsms": "ClickSend SMS",
"lunasea": "LunaSea",
"apprise": "Apprise (Support 50+ Notification services)",
"GoogleChat": "Google Chat (Google Workspace only)",
"pushbullet": "Pushbullet",
"Kook": "Kook",
"wayToGetKookBotToken": "Create application and get your bot token at {0}",
"wayToGetKookGuildID": "Switch on 'Developer Mode' in Kook setting, and right click the guild to get its ID",
"Guild ID": "Guild ID",
"line": "Line Messenger",
"mattermost": "Mattermost",
"User Key": "User Key",
"Device": "Device",
"Message Title": "Message Title",
"Notification Sound": "Notification Sound",
"More info on:": "More info on: {0}",
"pushoverDesc1": "Emergency priority (2) has default 30 second timeout between retries and will expire after 1 hour.",
"pushoverDesc2": "If you want to send notifications to different devices, fill out Device field.",
"SMS Type": "SMS Type",
"octopushTypePremium": "Premium (Fast - recommended for alerting)",
"octopushTypeLowCost": "Low Cost (Slow - sometimes blocked by operator)",
"checkPrice": "Check {0} prices:",
"apiCredentials": "API credentials",
"octopushLegacyHint": "Do you use the legacy version of Octopush (2011-2020) or the new version?",
"Check octopush prices": "Check octopush prices {0}.",
"octopushPhoneNumber": "Phone number (intl format, eg : +33612345678) ",
"octopushSMSSender": "SMS Sender Name : 3-11 alphanumeric characters and space (a-zA-Z0-9)",
"LunaSea Device ID": "LunaSea Device ID",
"Apprise URL": "Apprise URL",
"Example:": "Example: {0}",
"Read more:": "Read more: {0}",
"Status:": "Status: {0}",
"Strategy": "Strategy",
"Free Mobile User Identifier": "Free Mobile User Identifier",
"Free Mobile API Key": "Free Mobile API Key",
"Enable TLS": "Enable TLS",
"Proto Service Name": "Proto Service Name",
"Proto Method": "Proto Method",
"Proto Content": "Proto Content",
"Economy": "Economy",
"Lowcost": "Lowcost",
"high": "high",
"SendKey": "SendKey",
"SMSManager API Docs": "SMSManager API Docs ",
"Gateway Type": "Gateway Type",
"SMSManager": "SMSManager",
"You can divide numbers with": "You can divide numbers with",
"Base URL": "Base URL",
"goAlertInfo": "GoAlert is a An open source application for on-call scheduling, automated escalations and notifications (like SMS or voice calls). Automatically engage the right person, the right way, and at the right time! {0}",
"goAlertIntegrationKeyInfo": "Get generic API integration key for the service in this format \"aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee\" usually the value of token parameter of copied URL.",
"goAlert": "GoAlert",
"AccessKeyId": "AccessKey ID",
"SecretAccessKey": "AccessKey Secret",
"PhoneNumbers": "PhoneNumbers",
"TemplateCode": "TemplateCode",
"SignName": "SignName",
"Sms template must contain parameters: ": "Sms template must contain parameters: ",
"Bark Endpoint": "Bark Endpoint",
"Bark Group": "Bark Group",
"Bark Sound": "Bark Sound",
"WebHookUrl": "WebHookUrl",
"SecretKey": "SecretKey",
"For safety, must use secret key": "For safety, must use secret key",
"Device Token": "Device Token",
"Platform": "Platform",
"iOS": "iOS",
"Android": "Android",
"Huawei": "Huawei",
"High": "High",
"Retry": "Retry",
"Topic": "Topic",
"WeCom Bot Key": "WeCom Bot Key",
"Setup Proxy": "Setup Proxy",
"Proxy Protocol": "Proxy Protocol",
"Proxy Server": "Proxy Server",
"Proxy server has authentication": "Proxy server has authentication",
"matrix": "Matrix",
"promosmsTypeEco": "SMS ECO - cheap but slow and often overloaded. Limited only to Polish recipients.",
"promosmsTypeFlash": "SMS FLASH - Message will automatically show on recipient device. Limited only to Polish recipients.",
"promosmsTypeFull": "SMS FULL - Premium tier of SMS, You can use your Sender Name (You need to register name first). Reliable for alerts.",
"promosmsTypeSpeed": "SMS SPEED - Highest priority in system. Very quick and reliable but costly (about twice of SMS FULL price).",
"promosmsPhoneNumber": "Phone number (for Polish recipient You can skip area codes)",
"promosmsSMSSender": "SMS Sender Name : Pre-registred name or one of defaults: InfoSMS, SMS Info, MaxSMS, INFO, SMS",
"promosmsAllowLongSMS": "Allow long SMS",
"Feishu WebHookUrl": "Feishu WebHookURL",
"matrixHomeserverURL": "Homeserver URL (with http(s):// and optionally port)",
"Internal Room Id": "Internal Room ID",
"matrixDesc1": "You can find the internal room ID by looking in the advanced section of the room settings in your Matrix client. It should look like !QMdRCpUIfLwsfjxye6:home.server.",
"matrixDesc2": "It is highly recommended you create a new user and do not use your own Matrix user's access token as it will allow full access to your account and all the rooms you joined. Instead, create a new user and only invite it to the room that you want to receive the notification in. You can get the access token by running {0}",
"Channel Name": "Channel Name",
"Uptime Kuma URL": "Uptime Kuma URL",
"Icon Emoji": "Icon Emoji",
"signalImportant": "IMPORTANT: You cannot mix groups and numbers in recipients!",
"aboutWebhooks": "More info about Webhooks on: {0}",
"aboutChannelName": "Enter the channel name on {0} Channel Name field if you want to bypass the Webhook channel. Ex: #other-channel",
"aboutKumaURL": "If you leave the Uptime Kuma URL field blank, it will default to the Project GitHub page.",
"smtpDkimSettings": "DKIM Settings",
"smtpDkimDesc": "Please refer to the Nodemailer DKIM {0} for usage.",
"documentation": "documentation",
"smtpDkimDomain": "Domain Name",
"smtpDkimKeySelector": "Key Selector",
"smtpDkimPrivateKey": "Private Key",
"smtpDkimHashAlgo": "Hash Algorithm (Optional)",
"smtpDkimheaderFieldNames": "Header Keys to sign (Optional)",
"smtpDkimskipFields": "Header Keys not to sign (Optional)",
"wayToGetPagerDutyKey": "You can get this by going to Service -> Service Directory -> (Select a service) -> Integrations -> Add integration. Here you can search for \"Events API V2\". More info {0}",
"Integration Key": "Integration Key",
"Integration URL": "Integration URL",
"Auto resolve or acknowledged": "Auto resolve or acknowledged",
"do nothing": "do nothing",
"auto acknowledged": "auto acknowledged",
"auto resolve": "auto resolve",
"gorush": "Gorush",
"alerta": "Alerta",
"alertaApiEndpoint": "API Endpoint",
"alertaEnvironment": "Environment",
"alertaApiKey": "API Key",
"alertaAlertState": "Alert State",
"alertaRecoverState": "Recover State",
"serwersms": "SerwerSMS.pl",
"serwersmsAPIUser": "API Username (incl. webapi_ prefix)",
"serwersmsAPIPassword": "API Password",
"serwersmsPhoneNumber": "Phone number",
"serwersmsSenderName": "SMS Sender Name (registered via customer portal)",
"smseagle": "SMSEagle",
"smseagleTo": "Phone number(s)",
"smseagleGroup": "Phonebook group name(s)",
"smseagleContact": "Phonebook contact name(s)",
"smseagleRecipientType": "Recipient type",
"smseagleRecipient": "Recipient(s) (multiple must be separated with comma)",
"smseagleToken": "API Access token",
"smseagleUrl": "Your SMSEagle device URL",
"smseagleEncoding": "Send as Unicode",
"smseaglePriority": "Message priority (0-9, default = 0)",
"stackfield": "Stackfield",
"Recipient Number": "Recipient Number",
"From Name/Number": "From Name/Number",
"Leave blank to use a shared sender number.": "Leave blank to use a shared sender number.",
"Octopush API Version": "Octopush API Version",
"Legacy Octopush-DM": "Legacy Octopush-DM",
"ntfy Topic": "ntfy Topic",
"HomeAssistant": "Home Assistant",
"onebotHttpAddress": "OneBot HTTP Address",
"onebotMessageType": "OneBot Message Type",
"onebotGroupMessage": "Group",
"onebotPrivateMessage": "Private",
"onebotUserOrGroupId": "Group/User ID",
"onebotSafetyTips": "For safety, must set access token",
"PushDeer Key": "PushDeer Key",
"wayToGetClickSendSMSToken": "You can get API Username and API Key from {0} .",
"Custom Monitor Type": "Custom Monitor Type"
}

@ -0,0 +1,659 @@
{
"languageName": "Español",
"checkEverySecond": "Comprobar cada {0} segundos",
"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.",
"maxRedirectDescription": "Número máximo de direcciones a seguir. Establecer a 0 para deshabilitar.",
"acceptedStatusCodesDescription": "Seleccionar los códigos de estado que se consideran como respuesta exitosa.",
"passwordNotMatchMsg": "La contraseña repetida no coincide.",
"notificationDescription": "Por favor asigna una notificación a el/los monitor(es) para hacerlos funcional(es).",
"keywordDescription": "Buscar palabra clave en HTML plano o respuesta JSON. La búsqueda es sensible a mayúsculas.",
"pauseDashboardHome": "Pausado",
"deleteMonitorMsg": "¿Seguro que quieres eliminar este monitor?",
"deleteNotificationMsg": "¿Seguro que quieres eliminar esta notificación para todos los monitores?",
"resolverserverDescription": "Cloudflare es el servidor por defecto, puedes cambiar el servidor de resolución en cualquier momento.",
"rrtypeDescription": "Selecciona el tipo de registro que quieres monitorizar",
"pauseMonitorMsg": "¿Seguro que quieres pausar?",
"Settings": "Ajustes",
"Dashboard": "Panel",
"New Update": "Nueva actualización",
"Language": "Idioma",
"Appearance": "Apariencia",
"Theme": "Tema",
"General": "General",
"Version": "Versión",
"Check Update On GitHub": "Comprobar actualizaciones en GitHub",
"List": "Lista",
"Add": "Añadir",
"Add New Monitor": "Añadir nuevo monitor",
"Quick Stats": "Estadísticas rápidas",
"Up": "Funcional",
"Down": "Caído",
"Pending": "Pendiente",
"Unknown": "Desconocido",
"Pause": "Pausar",
"Name": "Nombre",
"Status": "Estado",
"DateTime": "Fecha y hora",
"Message": "Mensaje",
"No important events": "No hay eventos importantes",
"Resume": "Reanudar",
"Edit": "Editar",
"Delete": "Eliminar",
"Current": "Actual",
"Uptime": "Tiempo activo",
"Cert Exp.": "Caducidad cert.",
"day": "día | días",
"-day": "-día",
"hour": "hora",
"-hour": "-hora",
"Response": "Respuesta",
"Ping": "Ping",
"Monitor Type": "Tipo de monitor",
"Keyword": "Palabra clave",
"Friendly Name": "Nombre sencillo",
"URL": "URL",
"Hostname": "Nombre del host",
"Port": "Puerto",
"Heartbeat Interval": "Intervalo de latido",
"Retries": "Reintentos",
"Advanced": "Avanzado",
"Upside Down Mode": "Modo invertido",
"Max. Redirects": "Redirecciones máximas",
"Accepted Status Codes": "Códigos de estado aceptados",
"Save": "Guardar",
"Notifications": "Notificaciones",
"Not available, please setup.": "No disponible, por favor configúralo.",
"Setup Notification": "Configurar notificación",
"Light": "Claro",
"Dark": "Oscuro",
"Auto": "Auto",
"Theme - Heartbeat Bar": "Tema - Barra de intervalo de latido",
"Normal": "Normal",
"Bottom": "Abajo",
"None": "Ninguno",
"Timezone": "Zona horaria",
"Search Engine Visibility": "Visibilidad motor de búsqueda",
"Allow indexing": "Permitir indexación",
"Discourage search engines from indexing site": "Disuadir a los motores de búsqueda de indexar el sitio",
"Change Password": "Cambiar contraseña",
"Current Password": "Contraseña actual",
"New Password": "Nueva contraseña",
"Repeat New Password": "Repetir nueva contraseña",
"Update Password": "Actualizar contraseña",
"Disable Auth": "Deshabilitar autenticación",
"Enable Auth": "Habilitar autenticación",
"disableauth.message1": "Seguro que deseas <strong>deshabilitar la autenticación</strong>?",
"disableauth.message2": "Es para <strong>quien implementa autenticación de terceros</strong> ante Uptime Kuma como por ejemplo Cloudflare Access.",
"Please use this option carefully!": "¡Utilice esta opción con cuidado!",
"Logout": "Cerrar sesión",
"Leave": "Salir",
"I understand, please disable": "Entiendo, por favor deshabilitar",
"Confirm": "Confirmar",
"Yes": "Sí",
"No": "No",
"Username": "Usuario",
"Password": "Contraseña",
"Remember me": "Recordarme",
"Login": "Acceso",
"No Monitors, please": "Sin monitores, por favor",
"add one": "añade uno",
"Notification Type": "Tipo de notificación",
"Email": "Email",
"Test": "Test",
"Certificate Info": "Información del certificado",
"Resolver Server": "Servidor de resolución",
"Resource Record Type": "Tipo de registro",
"Last Result": "Último resultado",
"Create your admin account": "Crea tu cuenta de administrador",
"Repeat Password": "Repetir contraseña",
"respTime": "Tiempo de resp. (ms)",
"notAvailableShort": "N/A",
"Create": "Crear",
"clearEventsMsg": "¿Estás seguro de que deseas eliminar todos los eventos de este monitor?",
"clearHeartbeatsMsg": "¿Estás seguro de que deseas eliminar todos los latidos de este monitor?",
"confirmClearStatisticsMsg": "¿Estás seguro de que deseas eliminar TODAS las estadísticas?",
"Clear Data": "Borrar datos",
"Events": "Eventos",
"Heartbeats": "Latidos",
"Auto Get": "Obtener automáticamente",
"enableDefaultNotificationDescription": "Para cada nuevo monitor, esta notificación estará habilitada de forma predeterminada. Aún puedes deshabilitar la notificación por separado para cada monitor.",
"Default enabled": "Habilitado por defecto",
"Also apply to existing monitors": "También se aplica a monitores existentes",
"Export": "Exportar",
"Import": "Importar",
"backupDescription": "Puedes hacer una copia de seguridad de todos los monitores y todas las notificaciones en un archivo JSON.",
"backupDescription2": "PD: el historial y los datos de eventos no están incluidos.",
"backupDescription3": "Los datos confidenciales, como los tokens de notificación, se incluyen en el archivo de exportación. Guárdalo con cuidado.",
"alertNoFile": "Selecciona un archivo para importar.",
"alertWrongFileType": "Selecciona un archivo JSON.",
"twoFAVerifyLabel": "Ingresa tu token para verificar que 2FA está funcionando:",
"tokenValidSettingsMsg": "¡El token es válido! Ahora puedes guardar la configuración de 2FA.",
"confirmEnableTwoFAMsg": "¿Estás seguro de que quieres habilitar 2FA?",
"confirmDisableTwoFAMsg": "¿Estás seguro de que quieres desactivar 2FA?",
"Apply on all existing monitors": "Aplicar en todos los monitores existentes",
"Verify Token": "Verificar token",
"Setup 2FA": "Configurar 2FA",
"Enable 2FA": "Habilitar 2FA",
"Disable 2FA": "Desactivar 2FA",
"2FA Settings": "Ajustes 2FA",
"Two Factor Authentication": "Autenticación de dos factores",
"Active": "Activo",
"Inactive": "Inactivo",
"Token": "Token",
"Show URI": "Mostrar URI",
"Clear all statistics": "Borrar todas las estadísticas",
"retryCheckEverySecond": "Reintentar cada {0} segundos",
"importHandleDescription": "Elige 'Omitir existente' si deseas omitir todos los monitores o notificaciones con el mismo nombre. 'Sobrescribir' eliminará todos los monitores y notificaciones existentes.",
"confirmImportMsg": "¿Estás seguro de importar la copia de seguridad? Asegúrate de haber seleccionado la opción de importación correcta.",
"Heartbeat Retry Interval": "Intervalo de reintento de latido",
"Import Backup": "Importar copia de seguridad",
"Export Backup": "Exportar copia de seguridad",
"Skip existing": "Omitir existente",
"Overwrite": "Sobrescribir",
"Options": "Opciones",
"Keep both": "Manténer ambos",
"Tags": "Etiquetas",
"Add New below or Select...": "Agregar nuevo a continuación o seleccionar…",
"Tag with this name already exist.": "Una etiqueta con este nombre ya existe.",
"Tag with this value already exist.": "Una etiqueta con este valor ya existe.",
"color": "color",
"value (optional)": "valor (opcional)",
"Gray": "Gris",
"Red": "Rojo",
"Orange": "Naranja",
"Green": "Verde",
"Blue": "Azul",
"Indigo": "Índigo",
"Purple": "Morado",
"Pink": "Rosa",
"Search...": "Buscar…",
"Avg. Ping": "Ping promedio",
"Avg. Response": "Respuesta promedio",
"Entry Page": "Página de entrada",
"statusPageNothing": "No hay nada aquí, agrega un grupo o un monitor.",
"No Services": "Sin servicio",
"All Systems Operational": "Todos los sistemas están operativos",
"Partially Degraded Service": "Servicio parcialmente degradado",
"Degraded Service": "Servicio degradado",
"Add Group": "Agregar grupo",
"Add a monitor": "Agregar un monitor",
"Edit Status Page": "Editar página de estado",
"Go to Dashboard": "Ir al panel de control",
"Status Page": "Página de estado",
"Status Pages": "Páginas de estado",
"telegram": "Telegram",
"webhook": "Webhook",
"smtp": "Email (SMTP)",
"discord": "Discord",
"teams": "Microsoft Teams",
"signal": "Señal",
"gotify": "Gotify",
"slack": "Slack",
"rocket.chat": "Rocket.chat",
"pushover": "Pushover",
"pushy": "Pushy",
"octopush": "Octopush",
"promosms": "PromoSMS",
"lunasea": "LunaSea",
"apprise": "Apprise (Admite más de 50 servicios de notificación)",
"pushbullet": "Pushbullet",
"line": "Line Messenger",
"mattermost": "Mattermost",
"Monitor History": "Historial de monitor",
"clearDataOlderThan": "Mantener los datos del historial del monitor durante {0} días.",
"records": "registros",
"One record": "Un registro",
"steamApiKeyDescription": "Para monitorear un servidor de juegos de Steam, necesitas una clave Steam Web-API. Puedes registrar tu clave API aquí: ",
"Custom Monitor Type": "Monitor Tipo Personalizado",
"Primary Base URL": "URL Base Primaria",
"Passive Monitor Type": "Monitor Tipo Pasivo",
"pushOptionalParams": "Parámetros opcionales: {0}",
"Schedule maintenance": "Programar mantenimiento",
"Pick Affected Monitors...": "Seleccionar Monitores Afectados…",
"Start of maintenance": "Inicio del mantenimiento",
"All Status Pages": "Todas las Páginas de Estado",
"Select status pages...": "Seleccionar páginas de estado…",
"Style": "Estilo",
"info": "información",
"warning": "advertencia",
"danger": "peligro",
"critical": "crítico",
"primary": "primario",
"Content": "Contenido",
"recent": "Reciente",
"Done": "Terminado",
"Create Incident": "Crear Incidente",
"Title": "Título",
"Info": "Información",
"Security": "Seguridad",
"Current User": "Usuario Actual",
"topic": "Asunto",
"Shrink Database": "Reducir Base de Datos",
"dark": "oscuro",
"light": "claro",
"Last Updated": "Última Actualización",
"Show Tags": "Mostrar Etiquetas",
"Switch to Light Theme": "Cambiar a Tema Claro",
"Add one": "Añadir uno",
"Description": "Descripción",
"Cancel": "Cancelar",
"No Monitors": "Sin Monitores",
"Untitled Group": "Grupo sin título",
"Services": "Servicios",
"Discard": "Descartar",
"Add New Status Page": "Añadir Nueva Página de Estado",
"Start": "Iniciar",
"Stop": "Parar",
"Remove Token": "Eliminar Token",
"Powered by": "Potenciado por",
"Customize": "Personalizar",
"Custom Footer": "Pie Personalizado",
"Custom CSS": "CSS Personalizado",
"Backup": "Respaldo",
"Go back to the previous page.": "Volver a la página anterior.",
"Query": "Consulta",
"Examples": "Ejemplos",
"weekdayShortMon": "Lun",
"weekdayShortWed": "Mie",
"weekdayShortSat": "Sab",
"Ignore TLS Error": "Ignorar Error TLS",
"secureOptionNone": "Ninguno / STARTTLS (25, 587)",
"Schedule Maintenance": "Programar Mantenimiento",
"Date and Time": "Fecha y Hora",
"Enable": "Habilitar",
"Disable": "Deshabilitar",
"maintenanceStatus-inactive": "Inactivo",
"maintenanceStatus-scheduled": "Programado",
"maintenanceStatus-unknown": "Desconocido",
"Display Timezone": "Mostrar Zona Horaria",
"Server Timezone": "Servidor de Zona Horaria",
"statusPageMaintenanceEndDate": "Finaliza",
"Enable DNS Cache": "Habilitar Cache DNS",
"No Maintenance": "Sin Mantenimiento",
"weekdayShortSun": "Dom",
"dayOfWeek": "Día de la Semana",
"dayOfMonth": "Día del Mes",
"lastDay": "Último día",
"lastDay1": "Último Día del Mes",
"pauseMaintenanceMsg": "¿Seguro que quiere pausar?",
"maintenanceStatus-under-maintenance": "En Mantenimiento",
"DateTime Range": "Rango de Fecha y Hora",
"infiniteRetention": "Poner a 0 para retención infinita.",
"confirmDeleteTagMsg": "¿Estas seguro que quieres eliminar esta etiqueta? Los monitores asociados a esta etiqueta no serán eliminados.",
"Example:": "Ejemplo: {0}",
"Strategy": "Estrategia",
"Read more:": "Leer más: {0}",
"onebotGroupMessage": "Grupo",
"Affected Monitors": "Monitores Afectados",
"Custom": "Personalizado",
"Headers": "Encabezados",
"PhoneNumbers": "Números de Teléfono",
"No monitors available.": "Sin monitores disponibles.",
"error": "error",
"deleteProxyMsg": "¿Seguro que quieres eliminar este proxy para todos los monitores?",
"Hide Tags": "Ocultar Etiquetas",
"Created": "Creado",
"Switch to Dark Theme": "Cambiar a Tema Oscuro",
"More info on:": "Más información en: {0}",
"weekdayShortTue": "Mar",
"PasswordsDoNotMatch": "Las contraseñas no coinciden.",
"statusMaintenance": "Mantenimiento",
"Maintenance": "Mantenimiento",
"General Monitor Type": "Monitor Tipo General",
"Specific Monitor Type": "Monitor Tipo Específico",
"Monitor": "Monitores",
"Resend Notification if Down X times consequently": "Reenviar Notificación si Caído X veces consecutivas",
"resendEveryXTimes": "Reenviar cada {0} veces",
"resendDisabled": "Reenvío deshabilitado",
"needPushEvery": "Debe llamar a esta URL cada {0} segundos.",
"here": "aquí",
"Content Type": "Tipo de Contenido",
"Required": "Requerido",
"defaultNotificationName": "Mi {notification} Alerta ({number})",
"Server URL": "URL del servidor",
"Priority": "Prioridad",
"Read more": "Leer más",
"Body": "Cuerpo",
"webhookAdditionalHeadersTitle": "Encabezados Adicionales",
"Method": "Método",
"Default": "Predeterminado",
"uninstalling": "Desinstalando",
"install": "Instalar",
"installing": "Instalando",
"uninstall": "Desinstalar",
"confirmUninstallPlugin": "¿Estas seguro que quieres desinstalar este complemento?",
"Recipients": "Destinatarios",
"User ID": "ID de Usuario",
"deleteMaintenanceMsg": "¿Seguro que quieres eliminar este mantenimiento?",
"promosmsLogin": "Nombre de inicio de sesión de la API",
"SMS Type": "Tipo de SMS",
"Device": "Dispositivo",
"Message Title": "Título del Mensaje",
"Notification Sound": "Sonido de Notificación",
"documentation": "documentación",
"onebotUserOrGroupId": "Grupo/ID de Usuario",
"Game": "Juego",
"or": "ó",
"Status:": "Estado: {0}",
"Help": "Ayuda",
"HTTP Options": "Opciones HTTP",
"weekdayShortThu": "Jue",
"weekdayShortFri": "Vie",
"maintenanceStatus-ended": "Finalizado",
"BodyInvalidFormat": "El cuerpo de la solicitud no es JSON válido: ",
"topicExplanation": "Tema MQTT para monitorear",
"successMessageExplanation": "Mensaje MQTT que será considerado como éxito",
"Steam API Key": "API Key de Steam",
"Please input title and content": "Por favor introduzca título y contenido",
"Footer Text": "Texto del Pié",
"Show Powered By": "Mostrar Potenciado Por",
"Domain Names": "Nombres de Dominio",
"signedInDisp": "Iniciada sesión como {0}",
"RadiusSecretDescription": "Secreto Compartido entre cliente y servidor",
"RadiusCalledStationId": "Id de la Estación Llamada",
"RadiusCalledStationIdDescription": "Identificador del dispositivo llamado",
"RadiusCallingStationId": "Id de Estación Llamante",
"Certificate Expiry Notification": "Notificación de Caducidad del Certificado",
"API Username": "Nombre Usuario API",
"API Key": "Clave API",
"Show update if available": "Mostrar actualización si está disponible",
"Also check beta release": "Comprobar también lanzamientos beta",
"Steam Game Server": "Servidor de Juegos de Steam",
"Most likely causes:": "Las causas más probables:",
"There might be a typing error in the address.": "Debe haber un error de escritura en la dirección.",
"What you can try:": "Lo que puedes intentar:",
"Retype the address.": "Reescriba la dirección.",
"Coming Soon": "Próximamente",
"Connection String": "Cadena de Conexión",
"settingsCertificateExpiry": "Caducidad del certificado TLS",
"certificationExpiryDescription": "Los monitores HTTPS activan una notificación cuando el certificado TLS caduca en:",
"Setup Docker Host": "Configurar Host de Docker",
"Connection Type": "Tipo de Conexión",
"Docker Daemon": "Demonio Docker",
"deleteDockerHostMsg": "¿Estas seguro que quieres eliminar este host de docker para todos los monitores?",
"Date Created": "Fecha de Creación",
"signedInDispDisabled": "Autenticación Deshabilitada.",
"RadiusCallingStationIdDescription": "Identificador del dispositivo llamante",
"Using a Reverse Proxy?": "¿Usando un Proxy Inverso?",
"Check how to config it for WebSocket": "Compruebe cómo configurarlo para WebSocket",
"The resource is no longer available.": "El recurso ya no está disponible.",
"Push URL": "URL Push",
"Webhook URL": "URL Webhook",
"Application Token": "Token de Aplicación",
"appriseNotInstalled": "Apprise no está instalado. {0}",
"PushUrl": "URL Push",
"HeadersInvalidFormat": "Los encabezados de solicitud no son JSON válido: ",
"Post URL": "URL Post",
"emojiCheatSheet": "Hoja de trucos Emoji: {0}",
"webhookJsonDesc": "{0} es bueno para cualquier servidor HTTP moderno como Express.js",
"webhookFormDataDesc": "{multipart} es bueno para PHP. El JSON deberá analizarse con {decodeFunction}",
"webhookAdditionalHeadersDesc": "Establece encabezados adicionales enviados con el webhook.",
"appriseInstalled": "Apprise está instalado.",
"successMessage": "Mensaje de éxito",
"Pick Accepted Status Codes...": "Elija códigos de estado aceptados…",
"Post": "Post",
"shrinkDatabaseDescription": "Activar ASPIRADORA para SQLite. Si tu base de datos fue creada después 1.10.0, AUTO_ASPIRADORA ya está habilitada y esta acción no es necesaria.",
"deleteStatusPageMsg": "¿Estas seguro que quieres eliminar esta página de estado?",
"default": "Predeterminado",
"enabled": "Habilitado",
"setAsDefault": "Establecer Por Defecto",
"proxyDescription": "Proxies deben ser asignados a un monitor para que funcionen.",
"warningTimezone": "Está usando la zona horaria del servidor",
"trustProxyDescription": "Confiar en los encabezados 'X-Forwarded-*'. Si desea obtener la IP de cliente correcta y su Uptime Kuma está detrás de un proxy como Nginx o Apache, debe habilitar esto.",
"enableProxyDescription": "Este proxy no afectará las solicitudes de monitoreo hasta que se active. Puede controlar deshabilitar temporalmente el proxy de todos los monitores por estado de activación.",
"setAsDefaultProxyDescription": "Este proxy estará habilitado de forma predeterminada para los nuevos monitores. Todavía puede deshabilitar el proxy por separado para cada monitor.",
"Certificate Chain": "Cadena de certificado",
"Valid": "Válido",
"Invalid": "Inválido",
"User": "Usuario",
"Installed": "Instalado",
"Not installed": "No instalado",
"Running": "Funcionando",
"Not running": "No funcionando",
"Slug": "Slug",
"Accept characters:": "Aceptar caracteres:",
"Proxies": "Proxys",
"startOrEndWithOnly": "Empezar o terminar sólo con {0}",
"No consecutive dashes": "Sin guiones consecutivos",
"Next": "Siguiente",
"The slug is already taken. Please choose another slug.": "Este slug ya está en uso. Por favor, elige otro slug.",
"No Proxy": "Sin Proxy",
"Authentication": "Autenticación",
"HTTP Basic Auth": "Autenticación básica HTTP",
"New Status Page": "Nueva Página de Estado",
"Page Not Found": "Página No Encontrada",
"Reverse Proxy": "Proxy Inverso",
"About": "Acerca de",
"wayToGetCloudflaredURL": "(Descargar cloudflared de {0})",
"cloudflareWebsite": "Web de Cloudflare",
"Message:": "Mensaje:",
"Don't know how to get the token? Please read the guide:": "No sabes como obtener el token? Por favor, lee la guía:",
"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.": "La conexión actual puede perderse si actualmente se está conectando a través del Tunel Cloudflare. ¿Seguro que quieres detenerlo? Escriba su contraseña actual para confirmarlo.",
"HTTP Headers": "Encabezados HTTP",
"Trust Proxy": "Proxy de Confianza",
"Other Software": "Otro Software",
"For example: nginx, Apache and Traefik.": "Por ejemplo: nginx, Apache y Traefik.",
"Please read": "Por favor lee",
"Subject:": "Asunto:",
"Valid To:": "Válido Para:",
"Days Remaining:": "Días Restantes:",
"Issuer:": "Emisor:",
"Fingerprint:": "Huella:",
"No status pages": "Sin páginas de estado",
"Domain Name Expiry Notification": "Notificación de Caducidad de Nombre de Dominio",
"Proxy": "Proxy",
"RadiusSecret": "Secreto de Radius",
"socket": "Socket",
"tcp": "TCP / HTTP",
"Docker Container": "Contenedor de Docker",
"Container Name / ID": "Nombre / ID de Contenedor",
"Docker Host": "Host Docker",
"Docker Hosts": "Hosts Docker",
"Domain": "Dominio",
"Workstation": "Puesto de Trabajo",
"Packet Size": "Tamaño del Paquete",
"ZohoCliq": "ZohoCliq",
"Bot Token": "Token de Bot",
"wayToGetTelegramToken": "Puedes conseguir un token desde {0}.",
"Chat ID": "ID de Chat",
"supportTelegramChatID": "Chat Directo de Soporte / Grupo / ID de Chat del Canal",
"wayToGetTelegramChatID": "Puedes obtener tu ID de chat enviando un mensaje al bot y visitando esta URL para ver el chat_id:",
"YOUR BOT TOKEN HERE": "TU TOKEN DE BOT AQUÍ",
"chatIDNotFound": "ID de Chat no encontrada; por favor, primero envía un mensaje a este bot",
"disableCloudflaredNoAuthMsg": "Estas en modo No Autenticado, no es necesaria una contraseña.",
"wayToGetLineNotifyToken": "Puede obtener un token de acceso desde {0}",
"Home Assistant URL": "URL de Asistente de Hogar",
"Long-Lived Access Token": "Token de acceso de larga duración",
"Notification Service": "Servicio de Notificaciones",
"default: notify all devices": "predeterminado: notificar todos los dispositivos",
"A list of Notification Services can be found in Home Assistant under \"Developer Tools > Services\" search for \"notification\" to find your device/phone name.": "Puede encontrar una lista de Servicios de notificación en Asistente de Hogar en \"Herramientas para desarrolladores > Servicios\", busque \"notificación\" para encontrar el nombre de su dispositivo/teléfono.",
"Automations can optionally be triggered in Home Assistant:": "Las automatizaciones se pueden activar opcionalmente en Asistente de Hogar:",
"Trigger type:": "Tipo de disparador:",
"Event type:": "Tipo de Evento:",
"Event data:": "Datos del Evento:",
"Then choose an action, for example switch the scene to where an RGB light is red.": "Luego elija una acción, por ejemplo, cambie la escena a donde una luz RGB es roja.",
"Frontend Version": "Versión de Interfaz",
"Frontend Version do not match backend version!": "La Versión de Interfaz no coincide con la versión backend!",
"backupRecommend": "Por favor, haz copia de seguridad del volumen o el archivo de datos (./data/) directamente en su lugar.",
"recurringInterval": "Intervalo",
"Recurring": "Periódico",
"strategyManual": "Activo/Inactivo Manualmente",
"lastDay2": "Penúltimo Día del Mes",
"lastDay3": "Antepenúltimo día del mes",
"lastDay4": "Trasantepenúltimo Día del Mes",
"IconUrl": "URL de Icono",
"dnsCacheDescription": "Es posible que no funcione en algunos entornos IPv6; desactívelo si encuentra algún problema.",
"Single Maintenance Window": "Ventana de Mantenimiento Único",
"secureOptionTLS": "TLS (465)",
"aboutMattermostChannelName": "Puedes sobreescribir el canal por defecto en el cual el Webhook publica introduciendo el nombre del canal en el campo \"Nombre del Canal\". Esto tiene que estar habilitado en la configuración de Mattermost Webhook. Ejemplo: #otro-canal",
"dataRetentionTimeError": "El periodo de retención debe ser 0 o mayor",
"Enable TLS": "Habilita TLS",
"Lowcost": "Bajo coste",
"You can divide numbers with": "Puedes dividir números con",
"Base URL": "URL Base",
"Proto Service Name": "Nombre de Servicio Proto",
"Proto Method": "Método Proto",
"Proto Content": "Contenido Proto",
"Economy": "Económico",
"iOS": "iOS",
"Android": "Android",
"Platform": "Plataforma",
"onebotPrivateMessage": "Privado",
"onebotMessageType": "Tipo de Mensaje OneBot",
"smseagleRecipientType": "Tipo de destinatario",
"smseagleRecipient": "Destinatario(s) (multiples deben separarse por comas)",
"smseagleEncoding": "Enviar como Unicode",
"smseaglePriority": "Prioridad del mensaje (0-9, predeterminado = 0)",
"stackfield": "Stackfield",
"Leave blank to use a shared sender number.": "Dejar en blanco para usar un número de remitente compartido.",
"Octopush API Version": "Versión API Octopush",
"From Name/Number": "De Nombre/Número",
"Recipient Number": "Número de Destinatario",
"Long-Lived Access Token can be created by clicking on your profile name (bottom left) and scrolling to the bottom then click Create Token. ": "El token de acceso de larga duración se puede crear haciendo clic en el nombre de su perfil (abajo a la izquierda) y desplazándose hasta la parte inferior y luego haciendo clic en Crear token. ",
"backupOutdatedWarning": "Obsoleto: dado que se agregaron muchas funciones y esta función de copia de seguridad no se mantiene desde hace un tiempo, no puede generar ni restaurar una copia de seguridad completa.",
"Optional": "Opcional",
"loadingError": "No se pueden obtener los datos, inténtelo de nuevo más tarde.",
"pushoverDesc2": "Si quieres enviar notificaciones a diferentes dispositivos, rellena el campo Dispositivo.",
"octopushLegacyHint": "Utilizas la versión anterior de Octopush (2011-2020) o la nueva versión?",
"Sms template must contain parameters: ": "La plantilla SMS debería contener parámetros: ",
"For safety, must use secret key": "Por seguridad, deberías usar key secreta",
"signalImportant": "IMPORTANTE: No puedes mezclar grupos y números en destinatarios!",
"aboutWebhooks": "Más información sobre Webhooks en: {0}",
"smtpDkimHashAlgo": "Algoritmo Hash (Opcional)",
"promosmsPhoneNumber": "Número de teléfono (para destinatarios Polacos puedes omitir los códigos de área)",
"promosmsTypeFlash": "SMS FLASH - Mensaje se mostrará automáticamente en el dispositivo del destinatario. Limitado sólo a destinatarios Polacos.",
"promosmsSMSSender": "Nombre de Remitente SMS: Nombre pre-registrado o uno de los predeterminados: InfoSMS, SMS Info, MaxSMS, INFO, SMS",
"matrixDesc1": "Puedes encontrar la ID de sala interna mirando en la sección avanzado de los ajustes de sala en tu cliente Matrix. Debería ser algo como !QMdRCpUIfLwsfjxye6:home.server.",
"matrixDesc2": "Es altamente recomendable crear un nuevo usuario y no usar el token de acceso propio de tu usuario porque otorgaría acceso completo a tu cuenta y todas las salas que hayas entrado. En su lugar, crea un usuario nuevo e invítalo a la sala donde quieres recibir las notificaciones. Puedes obtener el token de acceso ejecutando {0}",
"plugin": "Complemento | Complementos",
"From Email": "Desde el Email",
"emailCustomSubject": "Asunto Personalizado",
"To Email": "Al Email",
"smtpCC": "CC",
"smtpBCC": "CCO",
"Discord Webhook URL": "URL Webhook de Discord",
"wayToGetDiscordURL": "Puede obtener esto yendo a Configuración del servidor -> Integraciones -> Crear webhook",
"Bot Display Name": "Nombre para mostrar del Bot",
"Hello @everyone is...": "Hola {'@'}todos están…",
"wayToGetTeamsURL": "Puedes aprender cómo crear una URL webhook {0}.",
"wayToGetZohoCliqURL": "Puedes aprender cómo crear una URL webhook {0}.",
"needSignalAPI": "Necesitas tener un cliente de señal con API REST.",
"wayToCheckSignalURL": "Puedes revisar esta URL para ver cómo configurar uno:",
"Number": "Número",
"Access Token": "Token de Acceso",
"Channel access token": "Token de acceso al canal",
"Line Developers Console": "Consola de Desarrolladores de Line",
"lineDevConsoleTo": "Consola de Desarrolladores de Line - {0}",
"Basic Settings": "Configuración Básica",
"Messaging API": "API de Mensajería",
"wayToGetLineChannelToken": "Primero accede al {0}, crea un proveedor y un canal (API de Mensajería), entonces puedes obtener el token de acceso al cana y el ID de usuario de los elementos de menú anteriormente mencionados.",
"Icon URL": "URL de Icono",
"aboutIconURL": "Puede proporcionar un enlace a una imagen en \"URL de icono\" para anular la imagen de perfil predeterminada. No se utilizará si se establece Icono Emoji.",
"enableGRPCTls": "Permite enviar solicitudes gRPC con conexión TLS",
"grpcMethodDescription": "Nombre del método es convertido a formato cammelCase tal como digoHola, verificandoTodo, etc.",
"dnsPortDescription": "Puerto servidor DNS. Por defecto al 53. Puedes cambiar el puerto en cualquier momento.",
"recurringIntervalMessage": "Ejecutar una vez al día | Ejecutar una vez cada {0} días",
"affectedMonitorsDescription": "Selecciona los monitores que se ven afectados por el mantenimiento actual",
"affectedStatusPages": "Muestra este mensaje de mantenimiento en las páginas de estado seleccionadas",
"atLeastOneMonitor": "Selecciona al menos un monitor afectado",
"endpoint": "punto final",
"promosmsPassword": "Contraseña API",
"pushoversounds pushover": "Pushover (predeterminado)",
"pushoversounds bike": "Bicicleta",
"pushoversounds bugle": "Bugle",
"pushoversounds cashregister": "Caja Registradora",
"pushoversounds classical": "Clásica",
"pushoversounds cosmic": "Cósmico",
"pushoversounds falling": "Descendente",
"pushoversounds gamelan": "Gamelán",
"pushoversounds incoming": "Entrante",
"pushoversounds intermission": "Intermedio",
"pushoversounds magic": "Mágico",
"pushoversounds mechanical": "Mecánica",
"pushoversounds pianobar": "Bar Piano",
"pushoversounds siren": "Sirena",
"pushoversounds spacealarm": "Alarma Espacial",
"pushoversounds tugboat": "Remolcador",
"pushoversounds alien": "Alarma Alienígena (largo)",
"pushoversounds climb": "Escalada (largo)",
"pushoversounds persistent": "Persistente (largo)",
"pushoversounds echo": "Pushover Eco (largo)",
"pushoversounds updown": "Arriba Abajo (largo)",
"pushoversounds vibrate": "Sólo Vibración",
"pushoversounds none": "Ninguno (silencio)",
"pushyAPIKey": "Key de Api Secreta",
"pushyToken": "Token de Dispositivo",
"PushByTechulus": "Push con Techulus",
"clicksendsms": "SMS con ClickSend",
"GoogleChat": "Chat de Google (sólo Google Workspace)",
"Kook": "Kook",
"wayToGetKookBotToken": "Crea aplicación y obtén tu token de bot en {0}",
"wayToGetKookGuildID": "Activa 'Modo Desarrollador' en los ajustes de Kook, y haz click derecho en la unión para obtener su ID",
"Guild ID": "",
"User Key": "Key de Usuario",
"octopushTypePremium": "Premium (Rápido - recomendado para alertas)",
"octopushTypeLowCost": "Bajo Coste (Lento - algunas veces bloqueado por operador)",
"checkPrice": "Consultar {0} precios:",
"apiCredentials": "Credenciales de API",
"Check octopush prices": "Consulta los precios de octopush {0}.",
"octopushPhoneNumber": "Número de teléfono (en formato internacional, ejemplo: +33612345678) ",
"octopushSMSSender": "Nombre de Remitente del SMS: 3-11 caracteres alfanuméricos y espacio (a-zA-Z0-9)",
"LunaSea Device ID": "ID Dispositivo LunaSea",
"goAlert": "GoAlert",
"pushoverDesc1": "La prioridad Emergencia (2) tiene predeterminado un tiempo muerto entre reintentos de 30 segundos y expirará después de 1 hora.",
"AccessKeyId": "ID de Key de Acceso",
"SecretAccessKey": "Secrreto de Key de Acceso",
"TemplateCode": "Código de Plantilla",
"Bark Group": "Grupo de Bark",
"Bark Sound": "Sonido de Bark",
"SecretKey": "Key Secreta",
"Huawei": "Huawei",
"Retry": "Reintentar",
"Proxy Server": "Servidor Proxy",
"Proxy Protocol": "Protocolo Proxy",
"Setup Proxy": "Configurar Proxy",
"Proxy server has authentication": "El servidor Proxy tiene autenticación",
"promosmsAllowLongSMS": "Permitir SMS largo",
"Uptime Kuma URL": "URL de Uptime Kuma",
"Icon Emoji": "Icono Emoji",
"aboutKumaURL": "Si dejas vacío el campo URL Uptime Kuma, predeterminará la página GitHub del Proyecto.",
"smtpDkimSettings": "Ajustes DKIM",
"smtpDkimDomain": "Nombre de Dominio",
"smtpDkimKeySelector": "Selector de Key",
"smtpDkimPrivateKey": "Key Privada",
"Integration Key": "Key de Integración",
"Integration URL": "URL de Integración",
"Device Token": "Token de Dispositivo",
"WeCom Bot Key": "Key de Bot WeCom",
"promosmsTypeEco": "SMS ECO - barato pero lento y a veces sobrecargado. Limitado sólo a destinatarios Polacos.",
"promosmsTypeSpeed": "SMS SPEED - La mayor prioridad en el sistema. Muy rápido y confiable pero costoso (alrededor del doble del precio de SMS FULL).",
"matrixHomeserverURL": "URL Servidor Casero (con http(s):// y opcionalmente el puerto)",
"Internal Room Id": "ID de Sala Interna",
"Channel Name": "Nombre del canal",
"aboutChannelName": "Introduce el nombre del canal en {0} campo Nombre del Canal si quieres evitar el canal Webhook. Ejemplo: #otro-canal",
"smtpDkimDesc": "Por favor, remitir a DKIM Nodemailer {0} para descubrir como se usa.",
"smtpDkimheaderFieldNames": "Keys de encabezado para firmar (Opcional)",
"smtpDkimskipFields": "Keys de encabezado para no firmar (Opcional)",
"Auto resolve or acknowledged": "Resolución automática o reconocida",
"promosmsTypeFull": "SMS FULL - Nivel Premium de SMS, puedes usar tu Nombre de Remitente (Tienes que registrarlo primero). Confiable para alertas.",
"do nothing": "no hacer nada",
"alerta": "Alerta",
"serwersmsAPIPassword": "Contraseña de API",
"serwersmsPhoneNumber": "Número de teléfono",
"smseagle": "SMSEagle",
"smseagleTo": "Número(s) de teléfono",
"serwersmsSenderName": "Nombre de remitente de SMS (registrado a través del portal de cliente)",
"auto resolve": "resolución automática",
"auto acknowledged": "Auto reconocida",
"alertaEnvironment": "Entorno",
"PushDeer Key": "Key de PushDeer",
"onebotSafetyTips": "Por seguridad, deberías colocara el token de acceso",
"wayToGetClickSendSMSToken": "Puedes obtener Nombre de Usuario API y la Key API en {0}.",
"Apprise URL": "URL Apprise",
"gorush": "Gorush",
"squadcast": "Squadcast",
"Maintenance Time Window of a Day": "Ventana de tiempo de mantenimiento de un día",
"Effective Date Range": "Rango de Fecha Efectivo"
}

@ -0,0 +1,209 @@
{
"languageName": "eesti",
"retryCheckEverySecond": "Kontrolli {0} sekundilise vahega.",
"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.",
"maxRedirectDescription": "Suurim arv ümbersuunamisi, millele järgida. 0 ei luba ühtegi ",
"acceptedStatusCodesDescription": "Vali välja HTTP koodid, mida arvestada kõlblikuks.",
"passwordNotMatchMsg": "Salasõnad ei kattu.",
"notificationDescription": "Teavitusteenuse kasutamiseks seo see seirega.",
"keywordDescription": "Jälgi võtmesõna HTML või JSON vastustes. (tõstutundlik)",
"pauseDashboardHome": "Seisatud",
"deleteMonitorMsg": "Kas soovid eemaldada seire?",
"deleteNotificationMsg": "Kas soovid eemaldada selle teavitusteenuse kõikidelt seiretelt?",
"resolverserverDescription": "Cloudflare on vaikimisi pöördserver.",
"rrtypeDescription": "Vali kirje tüüp, mida soovid jälgida.",
"pauseMonitorMsg": "Kas soovid peatada seire?",
"Settings": "Seaded",
"Status Page": "Ülevaade",
"Status Pages": "Ülevaated",
"Dashboard": "Töölaud",
"New Update": "Uuem tarkvara versioon on saadaval.",
"Language": "Keel",
"Appearance": "Välimus",
"Theme": "Teema",
"General": "Üldine",
"Version": "Versioon",
"Check Update On GitHub": "Otsi uuendusi GitHub'ist",
"List": "Nimekiri",
"Add": "Lisa",
"Add New Monitor": "Lisa seire",
"Add a monitor": "Lisa seire",
"Quick Stats": "Ülevaade",
"Up": "Töökorras",
"Down": "Rikkis",
"Pending": "Määramisel",
"Unknown": "Kahtlast",
"Pause": "Seiska",
"Name": "Nimi",
"Status": "Olek",
"DateTime": "Kuupäev",
"Message": "Tulemus",
"No important events": "Märkimisväärsed juhtumid puuduvad.",
"Resume": "Taasta",
"Edit": "Muuda",
"Delete": "Eemalda",
"Current": "Hetkeseisund",
"Uptime": "Eluiga",
"Cert Exp.": "Sert. aegumine",
"day": "päev | päeva",
"-day": "-päev",
"hour": "tund",
"-hour": "-tund",
"Response": "Reaktsiooniaeg",
"Ping": "Ping",
"Monitor Type": "Seire tüüp",
"Keyword": "Võtmesõna",
"Friendly Name": "Sõbralik nimi",
"URL": "URL",
"Hostname": "Hostname",
"Port": "Port",
"Heartbeat Interval": "Tukse sagedus",
"Retries": "Korduskatsed",
"Advanced": "Rohkem",
"Upside Down Mode": "Tagurpidi seire",
"Max. Redirects": "Max. ümbersuunamine",
"Accepted Status Codes": "Kõlblikud HTTP koodid",
"Save": "Salvesta",
"Notifications": "Teavitused",
"Not available, please setup.": "Ühtegi teavitusteenust pole saadaval.",
"Setup Notification": "Lisa teavitusteenus",
"Light": "hele",
"Dark": "tume",
"Auto": "automaatne",
"Theme - Heartbeat Bar": "Teemasäte — tuksete riba",
"Normal": "tavaline",
"Bottom": "all",
"None": "puudub",
"Timezone": "Ajatsoon",
"Search Engine Visibility": "Otsimootorite ligipääs",
"Allow indexing": "Luba indekseerimine",
"Discourage search engines from indexing site": "Keela selle saidi indekseerimine otsimootorite poolt",
"Change Password": "Muuda parooli",
"Current Password": "praegune parool",
"New Password": "uus parool",
"Repeat New Password": "korda salasõna",
"Update Password": "Uuenda salasõna",
"Disable Auth": "Lülita autentimine välja",
"Enable Auth": "Lülita autentimine sisse",
"disableauth.message1": "Kas soovid <strong>lülitada autentimise välja</strong>?",
"disableauth.message2": "Kastuamiseks <strong>välise autentimispakkujaga</strong>, näiteks Cloudflare Access.",
"Please use this option carefully!": "Palun kasuta vastutustundlikult.",
"Logout": "Logi välja",
"Leave": "Lahku",
"I understand, please disable": "Olen tutvunud riskidega, lülita välja",
"Confirm": "Kinnita",
"Yes": "Jah",
"No": "Ei",
"Username": "kasutajanimi",
"Password": "parool",
"Remember me": "Mäleta mind",
"Login": "Logi sisse",
"No Monitors, please": "Seired puuduvad.",
"add one": "Lisa esimene",
"Notification Type": "Teavituse tüüp",
"Email": "e-posti aadress",
"Test": "Saada prooviteavitus",
"Certificate Info": "Sertifikaadi teave",
"Resolver Server": "Server, mis vastab DNS päringutele.",
"Resource Record Type": "DNS kirje tüüp",
"Last Result": "Viimane",
"Create your admin account": "Admininstraatori konto loomine",
"Repeat Password": "korda salasõna",
"respTime": "Reageerimisaeg (ms)",
"notAvailableShort": "N/A",
"enableDefaultNotificationDescription": "Kõik järgnevalt lisatud seired kasutavad seda teavitusteenuset. Seiretelt võib teavitusteenuse ühekaupa eemaldada.",
"clearEventsMsg": "Kas soovid seire kõik sündmused kustutada?",
"clearHeartbeatsMsg": "Kas soovid seire kõik tuksed kustutada?",
"confirmClearStatisticsMsg": "Kas soovid TERVE ajaloo kustutada?",
"Export": "Eksport",
"Import": "Import",
"Default enabled": "Kasuta vaikimisi",
"Apply on all existing monitors": "Kõik praegused seired hakkavad kasutama seda teavitusteenust",
"Create": "Loo konto",
"Clear Data": "Eemalda andmed",
"Events": "Sündmused",
"Heartbeats": "Tuksed",
"Auto Get": "Hangi automaatselt",
"backupDescription": "Varunda kõik seired ja teavitused JSON faili.",
"backupDescription2": "PS: Varukoopia EI sisalda seirete ajalugu ja sündmustikku.",
"backupDescription3": "Varukoopiad sisaldavad teavitusteenusete pääsuvõtmeid.",
"alertNoFile": "Palun lisa fail, mida importida.",
"alertWrongFileType": "Palun lisa JSON-formaadis fail.",
"twoFAVerifyLabel": "2FA kinnitamiseks sisesta pääsukood",
"tokenValidSettingsMsg": "Kood õige. Akna võib sulgeda.",
"confirmEnableTwoFAMsg": "Kas soovid 2FA sisse lülitada?",
"confirmDisableTwoFAMsg": "Kas soovid 2FA välja lülitada?",
"Verify Token": "Kontrolli",
"Setup 2FA": "Kaksikautentimise seadistamine",
"Enable 2FA": "Seadista 2FA",
"Disable 2FA": "Lülita 2FA välja",
"2FA Settings": "2FA seaded",
"Two Factor Authentication": "Kaksikautentimine",
"Active": "kasutusel",
"Inactive": "seadistamata",
"Token": "kaksikautentimise kood",
"Show URI": "Näita URId",
"Clear all statistics": "Tühjenda ajalugu",
"importHandleDescription": "'kombineeri' täiendab varukoopiast ja kirjutab üle samanimelised seireid ja teavitusteenused; 'lisa praegustele' jätab olemasolevad puutumata; 'asenda' kustutab ja asendab kõik seired ja teavitusteenused.",
"confirmImportMsg": "Käkerdistest hoidumiseks lae enne taastamist alla uus varukoopia. Kas soovid taastada üles laetud?",
"Heartbeat Retry Interval": "Korduskatsete intervall",
"Import Backup": "Varukoopia importimine",
"Export Backup": "Varukoopia eksportimine",
"Skip existing": "lisa praegustele",
"Overwrite": "asenda",
"Options": "Mestimisviis",
"Keep both": "kombineeri",
"Tags": "Sildid",
"Add New below or Select...": "Leia või lisa all uus…",
"Tag with this name already exist.": "Selle nimega silt on juba olemas.",
"Tag with this value already exist.": "Selle väärtusega silt on juba olemas.",
"color": "värvus",
"value (optional)": "väärtus (fakultatiivne)",
"Gray": "hall",
"Red": "punane",
"Orange": "oranž",
"Green": "roheline",
"Blue": "sinine",
"Indigo": "indigo",
"Purple": "lilla",
"Pink": "roosa",
"Search...": "Otsi…",
"Avg. Ping": "Keskmine ping",
"Avg. Response": "Keskmine reaktsiooniaeg",
"Entry Page": "Avaleht",
"statusPageNothing": "Kippu ega kõppu; siia saab lisada seireid või -gruppe.",
"No Services": "Teenused puuduvad.",
"All Systems Operational": "Kõik töökorras",
"Partially Degraded Service": "Teenuse töö osaliselt häiritud",
"Degraded Service": "Teenuse töö häiritud",
"Add Group": "Lisa grupp",
"Edit Status Page": "Muuda lehte",
"Go to Dashboard": "Töölauale",
"checkEverySecond": "Kontrolli peale tõrget {0} sekundilise vahega.",
"telegram": "Telegram",
"webhook": "Webhook",
"smtp": "elektronpost (SMTP)",
"discord": "Discord",
"teams": "Microsoft Teams",
"signal": "Signal",
"gotify": "Gotify",
"slack": "Slack",
"rocket.chat": "Rocket.chat",
"pushover": "Pushover",
"pushy": "Pushy",
"octopush": "Octopush",
"promosms": "PromoSMS",
"lunasea": "LunaSea",
"apprise": "Apprise (vahendab üle 65 teavitusteenust)",
"pushbullet": "Pushbullet",
"line": "LINE",
"mattermost": "Mattermost",
"alerta": "Alerta",
"alertaApiEndpoint": "API otsik",
"alertaEnvironment": "Keskkond",
"alertaApiKey": "API võti",
"alertaAlertState": "Häireseisund",
"alertaRecoverState": "Taasta algolek"
}

@ -0,0 +1,541 @@
{
"languageName": "Euskara",
"checkEverySecond": "Egiaztatu {0} segunduro",
"retryCheckEverySecond": "Errepikatu {0} segunduro",
"retriesDescription": "Zerbitzua erorita markatu eta jakinarazpena bidali aurretik egindako saiakera kopuru maximoa",
"ignoreTLSError": "Ezikusiarena egin TLS/SSL erroreei HTTPS webguneetan",
"upsideDownModeDescription": "Alderantzizkatu erortze egoera. Zerbitzua martxan badago, ERORITA markatuko du.",
"maxRedirectDescription": "Jarraitu beharreko berbideratze kopuru maximoa. Jarri 0 berbideratzeak desgaitzeko.",
"acceptedStatusCodesDescription": "Hautatu erantzun ona kontsideratzen diren egoera kodeak.",
"passwordNotMatchMsg": "Errepikatutako pasahitza ez dator bat.",
"notificationDescription": "Jakinarazpenak monitorizazio funtzio bati asignatu behar zaizkio.",
"keywordDescription": "Bilatu gako-hitza HTML edo JSON erantzunean. Bilaketan maiuskulak kontuan hartzen dira.",
"pauseDashboardHome": "Gelditu",
"deleteMonitorMsg": "Ziur zaude monitorizazio hau ezabatu nahi duzula?",
"deleteNotificationMsg": "Ziur zaude jakinarazpen hau monitorizazio guztientzat ezabatu nahi duzula?",
"dnsPortDescription": "DNS zerbitzari portua. Defektuz 53. Nahi duzunean aldatu dezakezu portua.",
"resolverserverDescription": "Cloudflare zerbitzari lehenetsia da. Edozein unetan alda dezakezu ebazteko zerbitzaria.",
"rrtypeDescription": "Hautatu kontrolatu nahi duzun RR mota",
"enableDefaultNotificationDescription": "Jakinarazpen hau monitore berrientzat gaituko da defektuz. Baina monitorizazio bakoitzarentzat jakinarazpena desgaitu dezakezu.",
"pauseMonitorMsg": "Ziur zaude gelditu egin nahi duzula?",
"clearEventsMsg": "Ziur zaude monitorizazio honen gertaera guztiak ezabatu nahi dituzula?",
"clearHeartbeatsMsg": "Ziur zaude monitorizazio honen pultsu guztiak ezabatu nahi dituzula?",
"confirmClearStatisticsMsg": "Ziur zaude estatistika GUZTIAK ezabatu nahi dituzula?",
"importHandleDescription": "Aukeratu 'existitzen bada', izen bereko monitore edo jakinarazpen bakoitza saltatu nahi baduzu. Lehendik dauden kontrol eta jakinarazpen guztiak ezabatuko ditu 'Gainidatzi' aukerak.",
"confirmImportMsg": "Ziur zaude segurtasun-kopia inportatu nahi duzula? Egiaztatu inportatzeko aukera zuzena hautatu duzula.",
"twoFAVerifyLabel": "Sartu zure tokena 2FA egiaztatzeko:",
"tokenValidSettingsMsg": "Tokenak balio du! Orain 2FA konfigurazioa gorde dezakezu.",
"confirmEnableTwoFAMsg": "Ziur zaude 2FA gaitu nahi duzula?",
"confirmDisableTwoFAMsg": "Ziur zaude 2FA desgaitu nahi duzula?",
"Settings": "Ezarpenak",
"Dashboard": "Arbela",
"New Update": "Eguneraketa berria",
"Language": "Hizkuntza",
"Appearance": "Itxura",
"Theme": "Gaia",
"General": "Orokorra",
"Primary Base URL": "Oinarrizkoa URL",
"Version": "Bertsioa",
"Check Update On GitHub": "Egiaztatu eguneraketa GitHuben",
"List": "Zerrenda",
"Add": "Gehitu",
"Add New Monitor": "Gehitu monitorizazio berria",
"Quick Stats": "Estatistika azkarrak",
"Up": "Erabilgarri",
"Down": "Erorita",
"Pending": "Zain",
"Unknown": "Ezezaguna",
"Pause": "Gelditu",
"Name": "Izena",
"Status": "Egoera",
"DateTime": "Data eta ordua",
"Message": "Mezua",
"No important events": "Gertaera garrantzitsurik ez",
"Resume": "Jarraitu",
"Edit": "Editatu",
"Delete": "Ezabatu",
"Current": "Unekoa",
"Uptime": "Martxan",
"Cert Exp.": "Ziurtagiri iraun.",
"day": "egun | egun",
"-day": "-egun",
"hour": "ordua",
"-hour": "-ordu",
"Response": "Erantzuna",
"Ping": "Ping",
"Monitor Type": "Monitorizazio mota",
"Keyword": "Gakohitza",
"Friendly Name": "Izen xumea",
"URL": "URLa",
"Hostname": "Ostalari izena",
"Port": "Portua",
"Heartbeat Interval": "Pultsu interbaloak",
"Retries": "Errepikapenak",
"Heartbeat Retry Interval": "Pultsu errepikatze interbaloak",
"Advanced": "Aurreratua",
"Upside Down Mode": "Alderantzizkako modua",
"Max. Redirects": "Berbideratze max.",
"Accepted Status Codes": "Onartutako egoera kodeak",
"Push URL": "Push URLa",
"needPushEvery": "URL hau {0} segunduro deitu beharko zenuke.",
"pushOptionalParams": "Hautazko parametroak: {0}",
"Save": "Gorde",
"Notifications": "Jakinarazpenak",
"Not available, please setup.": "Ez dago eskuragarri, ezarri mesedez.",
"Setup Notification": "Ezarri jakinarazpenak",
"Light": "Argia",
"Dark": "Iluna",
"Auto": "Auto",
"Theme - Heartbeat Bar": "Gaia - Pultsu barra",
"Normal": "Normala",
"Bottom": "Behean",
"None": "Bat ere ez",
"Timezone": "Timezone",
"Search Engine Visibility": "Bilatzaile ikurgarritasuna",
"Allow indexing": "Onartu indexatzea",
"Discourage search engines from indexing site": "Discourage search engines from indexing site",
"Change Password": "Aldatu pasahitza",
"Current Password": "Uneko pasahitza",
"New Password": "Pasahitz berria",
"Repeat New Password": "Errepikatu pasahitz berria",
"Update Password": "Eguneratu pasahitza",
"Disable Auth": "Desgaitu Auth",
"Enable Auth": "Gaitu Auth",
"disableauth.message1": "Ziur zaude <strong>autentifikazioa desgaitu</strong> nahi duzula?",
"disableauth.message2": "Egoera jakin batzuetarako diseinatuta dago, Uptime Kumaren <strong>aurrean hirugarrengo autentifikazio batzuek jartzeko</strong> (Cloudflare Access, Authelia edo beste autentifikazio-mekanismo batzuk).",
"Please use this option carefully!": "Mesedez, kontuz erabili aukera hau!",
"Logout": "Saioa amaitu",
"Leave": "Utzi",
"I understand, please disable": "Ulertzen dut, mesedez desgaitu",
"Confirm": "Baieztatu",
"Yes": "Bai",
"No": "Ez",
"Username": "Erabiltzailea",
"Password": "Pasahitza",
"Remember me": "Gogora nazazu",
"Login": "Saioa hasi",
"No Monitors, please": "Monitorizaziorik ez, mesedez",
"add one": "gehitu bat",
"Notification Type": "Jakinarazpen mota",
"Email": "Emaila",
"Test": "Testa",
"Certificate Info": "Ziurtagiri informazioa",
"Resolver Server": "Ebazpen-zerbitzaria",
"Resource Record Type": "Baliabideen erregistro mota",
"Last Result": "Azken emaitza",
"Create your admin account": "Sortu zure admin kontua",
"Repeat Password": "Errepikatu pasahitza",
"Import Backup": "segurtasun-kopia inportatu",
"Export Backup": "segurtasun-kopia esportatu",
"Export": "Esportatu",
"Import": "Inportatu",
"respTime": "Erantz. denbora (ms)",
"notAvailableShort": "N/A",
"Default enabled": "Lehenetsia gaituta",
"Apply on all existing monitors": "Aplikatu existitzen diren monitorizazio guztietan",
"Create": "Sortu",
"Clear Data": "Garbitu datuak",
"Events": "Gertaerak",
"Heartbeats": "Pultsuak",
"Auto Get": "Auto Get",
"backupDescription": "Monitore eta jakinarazpen guztien segurtasun-kopiak egin ditzakezu JSON fitxategi batean.",
"backupDescription2": "Oharra: ez dira historia eta gertaeren datuak sartzen.",
"backupDescription3": "Datu sentikorrak, hala nola jakinarazpen tokenak, esportazio-fitxategian sartzen dira; mesedez, gorde esportazioa modu seguruan.",
"alertNoFile": "Mesedez hautatu inportatzeko fitxategia.",
"alertWrongFileType": "Mesedez hautatu JSON fitxategia.",
"Clear all statistics": "Garbitu estatistika guztiak",
"Skip existing": "Saltatu existitzen bada",
"Overwrite": "Gainidatzi",
"Options": "Aukerak",
"Keep both": "Biak mantendu",
"Verify Token": "Egiaztatu Tokena",
"Setup 2FA": "Ezarri 2FA",
"Enable 2FA": "Gaitu 2FA",
"Disable 2FA": "Desgaitu 2FA",
"2FA Settings": "2FA ezarpenak",
"Two Factor Authentication": "Bi aldetako autentifikazioa (2FA)",
"Active": "Aktibo",
"Inactive": "Inaktibo",
"Token": "Tokena",
"Show URI": "Erakutsi URIa",
"Tags": "Etiketak",
"Add New below or Select...": "Gehitu beste bat behean edo hautatu...",
"Tag with this name already exist.": "Izen hau duen etiketa dagoeneko badago.",
"Tag with this value already exist.": "Balio hau duen etiketa dagoeneko badago.",
"color": "kolorea",
"value (optional)": "balioa (hautazkoa)",
"Gray": "Grisa",
"Red": "Gorria",
"Orange": "Naranja",
"Green": "Berdea",
"Blue": "Urdina",
"Indigo": "Indigo",
"Purple": "Morea",
"Pink": "Arrosa",
"Search...": "Bilatu...",
"Avg. Ping": "Batazbesteko Pinga",
"Avg. Response": "Batazbesteko erantzuna",
"Entry Page": "Sarrera orria",
"statusPageNothing": "Ezer ere ez hemen, mesedez gehitu taldea edo monitorizazioa.",
"No Services": "Zerbitzurik ez",
"All Systems Operational": "Sistema guztiak martxan",
"Partially Degraded Service": "Zerbitzu partzialki degradatua",
"Degraded Service": "Zerbitzu degradatua",
"Add Group": "Gehitu taldea",
"Add a monitor": "Gehitu monitorizazioa",
"Edit Status Page": "Editatu egoera orria",
"Go to Dashboard": "Joan arbelera",
"Status Page": "Egoera orria",
"Status Pages": "Egoera orriak",
"defaultNotificationName": "Nire {notification} Alerta ({number})",
"here": "Hemen",
"Required": "Beharrezkoa",
"telegram": "Telegram",
"ZohoCliq": "ZohoCliq",
"Bot Token": "Bot Tokena",
"wayToGetTelegramToken": "You can get a token from {0}.",
"Chat ID": "Txat IDa",
"supportTelegramChatID": "Support Direct Chat / Group / Channel's Chat ID",
"wayToGetTelegramChatID": "You can get your chat ID by sending a message to the bot and going to this URL to view the chat_id:",
"YOUR BOT TOKEN HERE": "YOUR BOT TOKEN HERE",
"chatIDNotFound": "Chat ID is not found; please send a message to this bot first",
"webhook": "Webhook",
"Post URL": "Bidalketa URLa",
"Content Type": "Eduki mota",
"webhookJsonDesc": "{0} is good for any modern HTTP servers such as Express.js",
"webhookFormDataDesc": "{multipart} is good for PHP. The JSON will need to be parsed with {decodeFunction}",
"smtp": "Emaila (SMTP)",
"secureOptionNone": "Bat ere ez / STARTTLS (25, 587)",
"secureOptionTLS": "TLS (465)",
"Ignore TLS Error": "Ignore TLS Error",
"From Email": "Email honetatik",
"emailCustomSubject": "Pertsonalizatutako gaia",
"To Email": "Email honetara",
"smtpCC": "CC",
"smtpBCC": "BCC",
"discord": "Discord",
"Discord Webhook URL": "Discord Webhook URL",
"wayToGetDiscordURL": "You can get this by going to Server Settings -> Integrations -> Create Webhook",
"Bot Display Name": "Bot Display Name",
"Prefix Custom Message": "Prefix Custom Message",
"Hello @everyone is...": "Hello {'@'}everyone is...",
"teams": "Microsoft Teams",
"Webhook URL": "Webhook URL",
"wayToGetTeamsURL": "You can learn how to create a webhook URL {0}.",
"wayToGetZohoCliqURL": "You can learn how to create a webhook URL {0}.",
"signal": "Signal",
"Number": "Zenbakia",
"Recipients": "Recipients",
"needSignalAPI": "You need to have a signal client with REST API.",
"wayToCheckSignalURL": "You can check this URL to view how to set one up:",
"signalImportant": "IMPORTANT: You cannot mix groups and numbers in recipients!",
"gotify": "Gotify",
"Application Token": "Aplikazio tokena",
"Server URL": "Zerbitzari URLa",
"Priority": "Lehentasuna",
"slack": "Slack",
"Icon Emoji": "Emoji ikonoa",
"Channel Name": "Kanalaren izena",
"Uptime Kuma URL": "Uptime Kuma URL",
"aboutWebhooks": "More info about Webhooks on: {0}",
"aboutChannelName": "Enter the channel name on {0} Channel Name field if you want to bypass the Webhook channel. Ex: #other-channel",
"aboutKumaURL": "If you leave the Uptime Kuma URL field blank, it will default to the Project GitHub page.",
"emojiCheatSheet": "Emoji cheat sheet: {0}",
"rocket.chat": "Rocket.Chat",
"pushover": "Pushover",
"pushy": "Pushy",
"PushByTechulus": "Push by Techulus",
"octopush": "Octopush",
"promosms": "PromoSMS",
"clicksendsms": "ClickSend SMS",
"lunasea": "LunaSea",
"apprise": "Apprise (Support 50+ Notification services)",
"GoogleChat": "Google Chat (Google Workspace only)",
"pushbullet": "Pushbullet",
"line": "Line Messenger",
"mattermost": "Mattermost",
"User Key": "Erabiltzaile gakoa",
"Device": "Gailua",
"Message Title": "Mezuaren izenburua",
"Notification Sound": "Jakinarazpen soinua",
"More info on:": "More info on: {0}",
"pushoverDesc1": "Emergency priority (2) has default 30 second timeout between retries and will expire after 1 hour.",
"pushoverDesc2": "If you want to send notifications to different devices, fill out Device field.",
"SMS Type": "SMS mota",
"octopushTypePremium": "Premium (Fast - recommended for alerting)",
"octopushTypeLowCost": "Low Cost (Slow - sometimes blocked by operator)",
"checkPrice": "Check {0} prices:",
"apiCredentials": "API credentials",
"octopushLegacyHint": "Do you use the legacy version of Octopush (2011-2020) or the new version?",
"Check octopush prices": "Check octopush prices {0}.",
"octopushPhoneNumber": "Phone number (intl format, eg : +33612345678) ",
"octopushSMSSender": "SMS Sender Name : 3-11 alphanumeric characters and space (a-zA-Z0-9)",
"LunaSea Device ID": "LunaSea Device ID",
"Apprise URL": "Apprise URL",
"Example:": "Adibidez: {0}",
"Read more:": "Irakurri gehiago: {0}",
"Status:": "Egoera: {0}",
"Read more": "Irakurri gehiago",
"appriseInstalled": "Apprise instalatuta.",
"appriseNotInstalled": "Apprise ez dago instalatuta. {0}",
"Access Token": "Access Token",
"Channel access token": "Channel access token",
"Line Developers Console": "Line Developers Console",
"lineDevConsoleTo": "Line Developers Console - {0}",
"Basic Settings": "Oinarrizko ezarpenak",
"User ID": "Erabiltzaile ID",
"Messaging API": "Messaging API",
"wayToGetLineChannelToken": "First access the {0}, create a provider and channel (Messaging API), then you can get the channel access token and user ID from the above mentioned menu items.",
"Icon URL": "Ikono URL",
"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 the Webhook posts to by entering the channel name into \"Channel Name\" field. This needs to be enabled in the Mattermost Webhook settings. Ex: #other-channel",
"matrix": "Matrix",
"promosmsTypeEco": "SMS ECO - cheap but slow and often overloaded. Limited only to Polish recipients.",
"promosmsTypeFlash": "SMS FLASH - Message will automatically show on recipient device. Limited only to Polish recipients.",
"promosmsTypeFull": "SMS FULL - Premium tier of SMS, You can use your Sender Name (You need to register name first). Reliable for alerts.",
"promosmsTypeSpeed": "SMS SPEED - Highest priority in system. Very quick and reliable but costly (about twice of SMS FULL price).",
"promosmsPhoneNumber": "Phone number (for Polish recipient You can skip area codes)",
"promosmsSMSSender": "SMS Sender Name : Pre-registred name or one of defaults: InfoSMS, SMS Info, MaxSMS, INFO, SMS",
"Feishu WebHookUrl": "Feishu WebHookURL",
"matrixHomeserverURL": "Hasiera zerbitzari URL (with http(s):// and optionally port)",
"Internal Room Id": "Internal Room ID",
"matrixDesc1": "You can find the internal room ID by looking in the advanced section of the room settings in your Matrix client. It should look like !QMdRCpUIfLwsfjxye6:home.server.",
"matrixDesc2": "It is highly recommended you create a new user and do not use your own Matrix user's access token as it will allow full access to your account and all the rooms you joined. Instead, create a new user and only invite it to the room that you want to receive the notification in. You can get the access token by running {0}",
"Method": "Metodoa",
"Body": "Gorputza",
"Headers": "Goiburuak",
"PushUrl": "Push URL",
"HeadersInvalidFormat": "The request headers are not valid JSON: ",
"BodyInvalidFormat": "The request body is not valid JSON: ",
"Monitor History": "Monitorizazio Historia",
"clearDataOlderThan": "Keep monitor history data for {0} days.",
"PasswordsDoNotMatch": "Pasahitzak ez datoz bat.",
"records": "records",
"One record": "One record",
"steamApiKeyDescription": "For monitoring a Steam Game Server you need a Steam Web-API key. You can register your API key here: ",
"Current User": "Uneko erabiltzailea",
"topic": "Topic",
"topicExplanation": "MQTT topic to monitor",
"successMessage": "Arrakasta mezua",
"successMessageExplanation": "MQTT message that will be considered as success",
"recent": "Duela gutxikoa",
"Done": "Egina",
"Info": "Info",
"Security": "Segurtasuna",
"Steam API Key": "Steam API Giltza",
"Shrink Database": "Shrink Datubasea",
"Pick a RR-Type...": "Pick a RR-Type...",
"Pick Accepted Status Codes...": "Hautatu onartutako egoera kodeak...",
"Default": "Lehenetsia",
"HTTP Options": "HTTP Aukerak",
"Create Incident": "Sortu inzidentzia",
"Title": "Titulua",
"Content": "Edukia",
"Style": "Estiloa",
"info": "info",
"warning": "kontuz",
"danger": "arriskua",
"error": "errorea",
"critical": "kritikoa",
"primary": "oinarrizkoa",
"light": "argia",
"dark": "iluna",
"Post": "Post",
"Please input title and content": "Mesedez sartu titulua eta edukia",
"Created": "Sortuta",
"Last Updated": "Azken eguneratzea",
"Unpin": "Unpin",
"Switch to Light Theme": "Aldatu gai argira",
"Switch to Dark Theme": "Aldatu gai ilunera",
"Show Tags": "Erakutsi etiketak",
"Hide Tags": "Ezkutatu etiketak",
"Description": "Deskribapena",
"No monitors available.": "Monitorizaziorik eskuragarri ez.",
"Add one": "Gehitu bat",
"No Monitors": "Monitorizaziorik ez",
"Untitled Group": "Titulurik gabeko taldea",
"Services": "Zerbitzuak",
"Discard": "Baztertu",
"Cancel": "Ezeztatu",
"Powered by": "Honekin egina:",
"shrinkDatabaseDescription": "Trigger database VACUUM for SQLite. If your database is created after 1.10.0, AUTO_VACUUM is already enabled and this action is not needed.",
"serwersms": "SerwerSMS.pl",
"serwersmsAPIUser": "API erabiltzailea (webapi_ aurre-hizkia barne)",
"serwersmsAPIPassword": "API pasahitza",
"serwersmsPhoneNumber": "Telefono zenbakia",
"serwersmsSenderName": "SMS bidaltzaile izena (registered via customer portal)",
"stackfield": "Stackfield",
"Customize": "Pertsonalizatu",
"Custom Footer": "Oin pertsonalizatua",
"Custom CSS": "CSS pertsonalizatua",
"smtpDkimSettings": "DKIM ezarpenak",
"smtpDkimDesc": "Please refer to the Nodemailer DKIM {0} for usage.",
"documentation": "dokumentazioa",
"smtpDkimDomain": "Domeinu izena",
"smtpDkimKeySelector": "Gako hautatzailea",
"smtpDkimPrivateKey": "Gako pribatua",
"smtpDkimHashAlgo": "Hash algoritmoa (hautazkoa)",
"smtpDkimheaderFieldNames": "Header Keys to sign (Optional)",
"smtpDkimskipFields": "Header Keys not to sign (Optional)",
"wayToGetPagerDutyKey": "You can get this by going to Service -> Service Directory -> (Select a service) -> Integrations -> Add integration. Here you can search for \"Events API V2\". More info {0}",
"Integration Key": "Integration Key",
"Integration URL": "Integrazio URLa",
"Auto resolve or acknowledged": "Auto resolve or acknowledged",
"do nothing": "ez egin ezer",
"auto acknowledged": "auto acknowledged",
"auto resolve": "auto resolve",
"gorush": "Gorush",
"alerta": "Alerta",
"alertaApiEndpoint": "API Endpoint",
"alertaEnvironment": "Ingurunea",
"alertaApiKey": "API Key",
"alertaAlertState": "Alerta egoera",
"alertaRecoverState": "Berreskuratze egoera",
"deleteStatusPageMsg": "Ziur zaude egoera orri hau ezabatu nahi duzula?",
"Proxies": "Proxiak",
"default": "Lehenetsia",
"enabled": "Gaituta",
"setAsDefault": "Ezarri lehenetsitzat",
"deleteProxyMsg": "Are you sure want to delete this proxy for all monitors?",
"proxyDescription": "Proxies must be assigned to a monitor to function.",
"enableProxyDescription": "This proxy will not effect on monitor requests until it is activated. You can control temporarily disable the proxy from all monitors by activation status.",
"setAsDefaultProxyDescription": "This proxy will be enabled by default for new monitors. You can still disable the proxy separately for each monitor.",
"Certificate Chain": "Certificate Chain",
"Valid": "Baliozkoa",
"Invalid": "Baliogabea",
"AccessKeyId": "AccessKey ID",
"SecretAccessKey": "AccessKey Secret",
"PhoneNumbers": "TelefonoZenbakiak",
"TemplateCode": "TemplateCode",
"SignName": "SignName",
"Sms template must contain parameters: ": "Sms txantiloiak parametroak eduki behar ditu: ",
"Bark Endpoint": "Bark Endpoint",
"WebHookUrl": "WebHookUrl",
"SecretKey": "SecretKey",
"For safety, must use secret key": "For safety, must use secret key",
"Device Token": "Gailu tokena",
"Platform": "Plataforma",
"iOS": "iOS",
"Android": "Android",
"Huawei": "Huawei",
"High": "Altua",
"Retry": "Errepikatu",
"Topic": "Gaia",
"WeCom Bot Key": "WeCom Bot Key",
"Setup Proxy": "Ezarri Proxya",
"Proxy Protocol": "Proxy protokoloa",
"Proxy Server": "Proxy zerbitzaria",
"Proxy server has authentication": "Proxy zerbitzariak autentifikazioa dauka",
"User": "Erabiltzailea",
"Installed": "Instalatuta",
"Not installed": "Instalatu gabe",
"Running": "Martxan",
"Not running": "Ez martxan",
"Remove Token": "Ezabatu Tokena",
"Start": "Hasi",
"Stop": "Gelditu",
"Uptime Kuma": "Uptime Kuma",
"Add New Status Page": "Gehitu egoera orri berria",
"Slug": "Sluga",
"Accept characters:": "Onartu karaktereak:",
"startOrEndWithOnly": "Start or end with {0} only",
"No consecutive dashes": "No consecutive dashes",
"Next": "Hurrengoa",
"The slug is already taken. Please choose another slug.": "Sluga dagoeneko hartuta dago. Mesedez beste bat hautatu.",
"No Proxy": "Proxyrik ez",
"Authentication": "Authentication",
"HTTP Basic Auth": "HTTP oinarrizko Auth",
"New Status Page": "Egoera orri berria",
"Page Not Found": "Orria ez da aurkitu",
"Reverse Proxy": "Alderantzizkako Proxya",
"Backup": "Backup",
"About": "Honi buruz",
"wayToGetCloudflaredURL": "(Download cloudflared from {0})",
"cloudflareWebsite": "Cloudflare webgunea",
"Message:": "Mezua:",
"Don't know how to get the token? Please read the guide:": "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.": "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.",
"Other Software": "Beste softwarea",
"For example: nginx, Apache and Traefik.": "Adibidez: nginx, Apache and Traefik.",
"Please read": "Mesedez irakurri",
"Subject:": "Gaia:",
"Valid To:": "Balio-epea:",
"Days Remaining:": "Egun faltan:",
"Issuer:": "Issuer:",
"Fingerprint:": "Hatzmarka:",
"No status pages": "Egoera orririk ez",
"Domain Name Expiry Notification": "Domeinu izen iraungitze jakinarazpena",
"Proxy": "Proxya",
"Date Created": "Data sortuta",
"onebotHttpAddress": "OneBot HTTP helbidea",
"onebotMessageType": "OneBot mezu mota",
"onebotGroupMessage": "Taldea",
"onebotPrivateMessage": "Pribatua",
"onebotUserOrGroupId": "Talde/Erabiltzaile IDa",
"onebotSafetyTips": "For safety, must set access token",
"PushDeer Key": "PushDeer Key",
"Footer Text": "Oineko testua",
"Show Powered By": "Erakutsi Honekin egina:",
"Domain Names": "Domeinu izenak",
"signedInDisp": "Signed in as {0}",
"signedInDispDisabled": "Auth desgaituta.",
"Certificate Expiry Notification": "Zertifikatu iraungitze jakinarazpena",
"API Username": "API Erabiltzailea",
"API Key": "API Gakoa",
"Recipient Number": "Recipient Number",
"From Name/Number": "From Name/Number",
"Leave blank to use a shared sender number.": "Leave blank to use a shared sender number.",
"Octopush API Version": "Octopush API Version",
"Legacy Octopush-DM": "Legacy Octopush-DM",
"endpoint": "endpoint",
"octopushAPIKey": "\"API key\" from HTTP API credentials in control panel",
"octopushLogin": "\"Login\" from HTTP API credentials in control panel",
"promosmsLogin": "API Saio haste izena",
"promosmsPassword": "API Pasahitza",
"pushoversounds pushover": "Pushover (defektuz)",
"pushoversounds bike": "Bizikleta",
"pushoversounds bugle": "Bugle",
"pushoversounds cashregister": "Cash Register",
"pushoversounds classical": "Klasikoa",
"pushoversounds cosmic": "Kosmikoa",
"pushoversounds falling": "Erortzen",
"pushoversounds gamelan": "Gamelan",
"pushoversounds incoming": "Incoming",
"pushoversounds intermission": "Intermission",
"pushoversounds magic": "Magia",
"pushoversounds mechanical": "Mekanikoa",
"pushoversounds pianobar": "Piano Bar",
"pushoversounds siren": "Sirena",
"pushoversounds spacealarm": "Espazio Alarma",
"pushoversounds tugboat": "Tug Boat",
"pushoversounds alien": "Alien Alarm (long)",
"pushoversounds climb": "Climb (long)",
"pushoversounds persistent": "Persistent (long)",
"pushoversounds echo": "Pushover Echo (long)",
"pushoversounds updown": "Up Down (long)",
"pushoversounds vibrate": "Bibrazioa soilik",
"pushoversounds none": "Bat ere ez (isilik)",
"pushyAPIKey": "Secret API giltza",
"pushyToken": "Gailu tokena",
"Show update if available": "Erakutsi eguneratzea eskuragarri badago",
"Also check beta release": "Beta bertsioak ere egiaztatu",
"Using a Reverse Proxy?": "Proxy alderantzizkako zerbitzaria erabiltzen?",
"Check how to config it for WebSocket": "Check how to config it for WebSocket",
"Steam Game Server": "Steam joko zerbitzaria",
"Most likely causes:": "Arrazoi probableenak:",
"The resource is no longer available.": "Baliabidea ez dago erabilgarri.",
"There might be a typing error in the address.": "Idazketa-akats bat egon daiteke helbidean.",
"What you can try:": "Probatu dezakezuna:",
"Retype the address.": "Berridatzi helbidea.",
"Go back to the previous page.": "Itzuli aurreko orrialdera",
"Coming Soon": "Laster",
"wayToGetClickSendSMSToken": "API erabiltzailea and API giltza hemendik lortu ditzakezu: {0} .",
"Connection String": "Konexio katea",
"Query": "Kontsulta",
"settingsCertificateExpiry": "TLS irungitze zertifikatua",
"certificationExpiryDescription": "HTTPS Monitorizazio jakinarazpena martxan jarri TLS zertifikatua iraungitzeko hau falta denean:",
"ntfy Topic": "ntfy Topic",
"Domain": "Domeinua",
"Workstation": "Lan gunea",
"disableCloudflaredNoAuthMsg": "Ez Auth moduan zaude, pasahitza ez da beharrezkoa."
}

@ -0,0 +1,191 @@
{
"languageName": "Farsi",
"checkEverySecond": "بررسی هر {0} ثانیه.",
"retryCheckEverySecond": "تکرار مجدد هر {0} ثانیه.",
"retriesDescription": "حداکثر تعداد تکرار پیش از علامت گذاری وب‌سایت بعنوان خارج از دسترس و ارسال اطلاع‌رسانی.",
"ignoreTLSError": "بی‌خیال ارور TLS/SSL برای سایت‌های HTTPS",
"upsideDownModeDescription": "نتیجه وضعیت را برعکس کن، مثلا اگر سرویس در دسترس بود فرض کن که سرویس پایین است!",
"maxRedirectDescription": "حداکثر تعداد ریدایرکتی که سرویس پشتیبانی کند. برای اینکه ری‌دایرکت‌ها پشتیبانی نشوند، عدد 0 را وارد کنید.",
"acceptedStatusCodesDescription": "لطفا HTTP Status Code هایی که میخواهید به عنوان پاسخ موفقیت آمیز در نظر گرفته شود را انتخاب کنید.",
"passwordNotMatchMsg": "تکرار رمز عبور مطابقت ندارد!",
"notificationDescription": "برای اینکه سرویس اطلاع‌رسانی کار کند، آنرا به یکی از مانیتور‌ها متصل کنید.",
"keywordDescription": "در نتیجه درخواست (اهمیتی ندارد پاسخ JSON است یا HTML) بدنبال این کلمه بگرد (حساس به کوچک/بزرگ بودن حروف).",
"pauseDashboardHome": "متوقف شده",
"deleteMonitorMsg": "آیا از حذف این مانیتور مطمئن هستید؟",
"deleteNotificationMsg": "آیا مطمئن هستید که میخواهید این سرویس اطلاع‌رسانی را برای تمامی مانیتورها حذف کنید؟",
"resolverserverDescription": "سرویس CloudFlare به عنوان سرور پیش‌فرض استفاده می‌شود، شما میتوانید آنرا به هر سرور دیگری بعدا تغییر دهید.",
"rrtypeDescription": "لطفا نوع Resource Record را انتخاب کنید.",
"pauseMonitorMsg": "آیا مطمئن هستید که میخواهید این مانیتور را متوقف کنید ؟",
"enableDefaultNotificationDescription": "برای هر مانیتور جدید، این سرویس اطلاع‌رسانی به صورت پیش‌فرض فعال خواهد شد. البته که شما میتوانید به صورت دستی آنرا برای هر مانیتور به صورت جداگانه غیر فعال کنید.",
"clearEventsMsg": "آیا از اینکه تمامی تاریخچه رویداد‌های این مانیتور حذف شود مطمئن هستید؟",
"clearHeartbeatsMsg": "آیا از اینکه تاریخچه تمامی Heartbeat های این مانیتور حذف شود مطمئن هستید؟ ",
"confirmClearStatisticsMsg": "آیا از حذف تمامی آمار و ارقام مطمئن هستید؟",
"importHandleDescription": " اگر که میخواهید بیخیال مانیتورها و یا سرویس‌های اطلاع‌رسانی که با نام مشابه از قبل موجود هستند شوید، گزینه 'بی‌خیال موارد ..' را انتخاب کنید. توجه کنید که گزینه 'بازنویسی' تمامی موارد موجود با نام مشابه را از بین خواهد برد.",
"confirmImportMsg": "آیا از بازگردانی بک آپ مطمئن هستید؟ لطفا از اینکه نوع بازگردانی درستی را انتخاب کرده‌اید اطمینان حاصل کنید!",
"twoFAVerifyLabel": "لطفا جهت اطمینان از عملکرد احراز هویت دو مرحله‌ای توکن خود را وارد کنید!",
"tokenValidSettingsMsg": "توکن شما معتبر است، هم اکنون میتوانید احراز هویت دو مرحله‌ای را فعال کنید!",
"confirmEnableTwoFAMsg": " آیا از فعال سازی احراز هویت دو مرحله‌ای مطمئن هستید؟",
"confirmDisableTwoFAMsg": "آیا از غیرفعال سازی احراز هویت دومرحله‌ای مطمئن هستید؟",
"Settings": "تنظیمات",
"Dashboard": "پیشخوان",
"New Update": "بروزرسانی جدید!",
"Language": "زبان",
"Appearance": "ظاهر",
"Theme": "پوسته",
"General": "عمومی",
"Version": "نسخه",
"Check Update On 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.": "تاریخ انقضای SSL",
"day": "روز",
"-day": "-روز",
"hour": "ساعت",
"-hour": "-ساعت",
"Response": "پاسخ",
"Ping": "Ping",
"Monitor Type": "نوع مانیتور",
"Keyword": "کلمه کلیدی",
"Friendly Name": "عنوان",
"URL": "آدرس (URL)",
"Hostname": "نام میزبان (Hostname)",
"Port": "پورت",
"Heartbeat Interval": "فاصله هر Heartbeat",
"Retries": "تلاش مجدد",
"Heartbeat Retry Interval": "فاصله تلاش مجدد برایHeartbeat",
"Advanced": "پیشرفته",
"Upside Down Mode": "حالت بر عکس",
"Max. Redirects": "حداکثر تعداد ری‌دایرکت",
"Accepted Status Codes": "وضعیت‌های (Status Code) های قابل قبول",
"Save": "ذخیره",
"Notifications": "اطلاع‌رسانی‌ها",
"Not available, please setup.": "هیچ موردی موجود نیست، اولین مورد را راه اندازی کنید!",
"Setup Notification": "راه اندازی اطلاع‌رسانی‌",
"Light": "روشن",
"Dark": "تاریک",
"Auto": "اتوماتیک",
"Theme - Heartbeat Bar": "ظاهر نوار Heartbeat",
"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": "فعال سازی تایید هویت",
"disableauth.message1": "آیا مطمئن هستید که میخواهید <strong>احراز هویت را غیر فعال کنید</strong>?",
"disableauth.message2": "این ویژگی برای کسانی است که <strong> لایه امنیتی شخص ثالث دیگر بر روی این آدرس فعال کرده‌اند</strong>، مانند Cloudflare Access.",
"Please use this option carefully!": "لطفا از این امکان با دقت استفاده کنید.",
"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": "سرور Resolver",
"Resource Record Type": "نوع رکورد (Resource Record Type)",
"Last Result": "آخرین نتیجه",
"Create your admin account": "ایجاد حساب کاربری مدیر",
"Repeat Password": "تکرار رمز عبور",
"Import Backup": "بازگردانی فایل پشتیبان",
"Export Backup": "ذخیره فایل پشتیبان",
"Export": "استخراج اطلاعات",
"Import": "ورود اطلاعات",
"respTime": "زمان پاسخگویی (میلی‌ثانیه)",
"notAvailableShort": "ناموجود",
"Default enabled": "به صورت پیش‌فرض فعال باشد.",
"Apply on all existing monitors": "بر روی تمامی مانیتور‌های فعلی اعمال شود.",
"Create": "ایجاد",
"Clear Data": "پاکسازی داده‌ها",
"Events": "رخداد‌ها",
"Heartbeats": "Heartbeats",
"Auto Get": "Auto Get",
"backupDescription": "شما میتوانید تمامی مانیتورها و تنظیمات اطلاع‌رسانی‌ها را در قالب یه فایل JSON دریافت کنید.",
"backupDescription2": "البته تاریخچه رخدادها دراین فایل قرار نخواهند داشت.",
"backupDescription3": "توجه داشته باشید که تمامی اطلاعات حساس شما مانند توکن‌ها نیز در این فایل وجود خواهد داشت ، پس از این فایل به خوبی مراقبت کنید.",
"alertNoFile": "لطفا یک فایل برای «ورود اطلاعات» انتخاب کنید..",
"alertWrongFileType": "یک فایل JSON انتخاب کنید.",
"Clear all statistics": "پاکسازی تمامی آمار و ارقام",
"Skip existing": "بی‌خیال مواردی که از قبل موجود است",
"Overwrite": "بازنویسی",
"Options": "تنظیمات",
"Keep both": "هر دو را نگه‌ دار",
"Verify Token": "تایید توکن",
"Setup 2FA": "تنظیمات احراز دو مرحله‌ای",
"Enable 2FA": "فعال سازی احراز 2 مرحله‌ای",
"Disable 2FA": "غیر فعال کردن احراز 2 مرحله‌ای",
"2FA Settings": "تنظیمات احراز 2 مرحله‌ای",
"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": "ویرایش صفحه وضعیت",
"Status Page": "صفحه وضعیت",
"Status Pages": "صفحه وضعیت",
"Go to Dashboard": "رفتن به پیشخوان",
"Uptime Kuma": "آپتایم کوما",
"records": "مورد",
"One record": "یک مورد",
"Info": "اطلاعات",
"Powered by": "نیرو گرفته از",
"apprise": "Apprise (Support 50+ Notification services)"
}

@ -0,0 +1,695 @@
{
"languageName": "Français",
"checkEverySecond": "Vérifier toutes les {0} secondes",
"retryCheckEverySecond": "Réessayer toutes les {0} secondes",
"resendEveryXTimes": "Renvoyez toutes les {0} fois",
"resendDisabled": "Renvoi désactivé",
"retriesDescription": "Nombre d'essais avant que le service ne soit déclaré hors ligne et qu'une notification soit envoyée.",
"ignoreTLSError": "Ignorer les erreurs liées au certificat SSL/TLS",
"upsideDownModeDescription": "Si le service est en ligne, il sera alors noté hors ligne et vice-versa.",
"maxRedirectDescription": "Nombre maximal de redirections avant que le service ne soit marqué comme hors ligne.",
"enableGRPCTls": "Autoriser l'envoi d'une requête gRPC avec une connexion TLS",
"grpcMethodDescription": "Le nom de la méthode est converti au format CamelCase tel que sayHello, check, etc.",
"acceptedStatusCodesDescription": "Codes HTTP qui considèrent le service comme étant disponible.",
"Maintenance": "Maintenance",
"statusMaintenance": "Maintenance",
"Schedule maintenance": "Planifier la maintenance",
"Affected Monitors": "Sondes concernées",
"Pick Affected Monitors...": "Sélectionner les sondes concernées…",
"Start of maintenance": "Début de la maintenance",
"All Status Pages": "Toutes les pages d'état",
"Select status pages...": "Sélectionner les pages d'état…",
"recurringIntervalMessage": "Exécuter une fois par jour | Exécuter une fois tous les {0} jours",
"affectedMonitorsDescription": "Sélectionnez les sondes concernées par la maintenance en cours",
"affectedStatusPages": "Afficher ce message de maintenance sur les pages d'état sélectionnées",
"atLeastOneMonitor": "Sélectionnez au moins une sonde concernée",
"passwordNotMatchMsg": "Les mots de passe ne correspondent pas",
"notificationDescription": "Une fois ajoutée, vous devez l'activer manuellement dans les paramètres de vos hôtes.",
"keywordDescription": "Le mot clé sera recherché dans la réponse HTML/JSON reçue du site internet.",
"pauseDashboardHome": "En pause",
"deleteMonitorMsg": "Êtes-vous sûr de vouloir supprimer cette sonde ?",
"deleteMaintenanceMsg": "Voulez-vous vraiment supprimer cette maintenance ?",
"deleteNotificationMsg": "Êtes-vous sûr de vouloir supprimer ce type de notification pour toutes les sondes?",
"dnsPortDescription": "Port du serveur DNS. La valeur par défaut est 53. Vous pouvez modifier le port à tout moment.",
"resolverserverDescription": "Le DNS de Cloudflare est utilisé par défaut, mais vous pouvez le changer si vous le souhaitez.",
"rrtypeDescription": "Veuillez sélectionner un type d'enregistrement DNS",
"pauseMonitorMsg": "Êtes-vous sûr de vouloir mettre en pause cette sonde ?",
"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.",
"clearEventsMsg": "Êtes-vous sûr de vouloir supprimer tous les événements pour cette sonde ?",
"clearHeartbeatsMsg": "Êtes-vous sûr de vouloir supprimer toutes les vérifications pour cette sonde ?",
"confirmClearStatisticsMsg": "Êtes-vous sûr de vouloir supprimer toutes les statistiques ?",
"importHandleDescription": "Choisissez « Ignorer l'existant » si vous voulez ignorer chaque sonde ou notification portant le même nom. L'option « Écraser » supprime toutes les sondes et notifications existantes.",
"confirmImportMsg": "Êtes-vous sûr de vouloir importer la sauvegarde ? Veuillez vous assurer que vous avez sélectionné la bonne option d'importation.",
"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 de double authentification (2FA).",
"confirmEnableTwoFAMsg": "Êtes-vous sûr de vouloir activer la double authentification (2FA) ?",
"confirmDisableTwoFAMsg": "Êtes-vous sûr de vouloir désactiver la double authentification (2FA) ?",
"Settings": "Paramètres",
"Dashboard": "Tableau de bord",
"New Update": "Mise à jour disponible",
"Language": "Langue",
"Appearance": "Apparence",
"Theme": "Thème",
"General": "Général",
"Primary Base URL": "URL principale",
"Version": "Version",
"Check Update On GitHub": "Consulter les mises à jour sur GitHub",
"List": "Lister",
"Add": "Ajouter",
"Add New Monitor": "Ajouter une nouvelle sonde",
"Quick Stats": "Résumé",
"Up": "En ligne",
"Down": "Hors ligne",
"Pending": "En attente",
"Unknown": "Inconnu",
"Pause": "En pause",
"Name": "Nom",
"Status": "État",
"DateTime": "Heure",
"Message": "Messages",
"No important events": "Aucun évènement important",
"Resume": "Reprendre",
"Edit": "Modifier",
"Delete": "Supprimer",
"Current": "Actuellement",
"Uptime": "Disponibilité",
"Cert Exp.": "Expiration SSL",
"day": "jour | jours",
"-day": " jours",
"hour": "heure",
"-hour": " heure",
"Response": "Temps de réponse",
"Ping": "Ping",
"Monitor Type": "Type de sonde",
"Keyword": "Mot-clé",
"Friendly Name": "Nom d'affichage",
"URL": "URL",
"Hostname": "Nom d'hôte / adresse IP",
"Port": "Port",
"Heartbeat Interval": "Intervalle de vérification",
"Retries": "Essais",
"Heartbeat Retry Interval": "Réessayer l'intervalle de vérification",
"Resend Notification if Down X times consequently": "Renvoyer une notification si hors ligne X fois",
"Advanced": "Avancé",
"Upside Down Mode": "Mode inversé",
"Max. Redirects": "Nombre maximum de redirections",
"Accepted Status Codes": "Codes HTTP acceptés",
"Push URL": "Push URL",
"needPushEvery": "Vous devez appeler cette URL toutes les {0} secondes.",
"pushOptionalParams": "Paramètres facultatifs : {0}",
"Save": "Sauvegarder",
"Notifications": "Notifications",
"Not available, please setup.": "Non disponible, merci de le configurer.",
"Setup Notification": "Créer une notification",
"Light": "Clair",
"Dark": "Sombre",
"Auto": "Automatique",
"Theme - Heartbeat Bar": "Thème - barres d'état",
"Normal": "Normal",
"Bottom": "En dessous",
"None": "Aucun",
"Timezone": "Fuseau horaire",
"Search Engine Visibility": "Visibilité par les moteurs de recherche",
"Allow indexing": "Autoriser l'indexation",
"Discourage search engines from indexing site": "Refuser l'indexation",
"Change Password": "Changer le mot de passe",
"Current Password": "Mot de passe actuel",
"New Password": "Nouveau mot de passe",
"Repeat New Password": "Répéter votre nouveau mot de passe",
"Update Password": "Mettre à jour le mot de passe",
"Disable Auth": "Désactiver l'authentification",
"Enable Auth": "Activer l'authentification",
"disableauth.message1": "Voulez-vous vraiment <strong>désactiver l'authentification</strong> ?",
"disableauth.message2": "Cette fonctionnalité est conçue pour les scénarios <strong>où vous avez l'intention d'implémenter une authentification tierce</strong> devant Uptime Kuma, comme Cloudflare Access, Authelia ou d'autres mécanismes d'authentification.",
"Please use this option carefully!": "Veuillez utiliser cette option avec précaution !",
"Logout": "Déconnexion",
"Leave": "Quitter",
"I understand, please disable": "Je comprends, désactivez-la",
"Confirm": "Confirmer",
"Yes": "Oui",
"No": "Non",
"Username": "Nom d'utilisateur",
"Password": "Mot de passe",
"Remember me": "Se souvenir de moi",
"Login": "Connexion",
"No Monitors, please": "Pas de sondes, veuillez",
"add one": "en ajouter une",
"Notification Type": "Type de notification",
"Email": "Courriel",
"Test": "Tester",
"Certificate Info": "Informations sur le certificat SSL",
"Resolver Server": "Serveur DNS utilisé",
"Resource Record Type": "Type d'enregistrement DNS recherché",
"Last Result": "Dernier résultat",
"Create your admin account": "Créer votre compte administrateur",
"Repeat Password": "Répéter le mot de passe",
"Import Backup": "Importation de la sauvegarde",
"Export Backup": "Exportation de la sauvegarde",
"Export": "Exporter",
"Import": "Importer",
"respTime": "Temps de réponse (ms)",
"notAvailableShort": "N/A",
"Default enabled": "Activé par défaut",
"Apply on all existing monitors": "Appliquer sur toutes les sondes existantes",
"Create": "Créer",
"Clear Data": "Effacer les données",
"Events": "Événements",
"Heartbeats": "Vérifications",
"Auto Get": "Récupérer automatiquement",
"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.",
"Clear all statistics": "Effacer toutes les statistiques",
"Skip existing": "Sauter l'existant",
"Overwrite": "Écraser",
"Options": "Options",
"Keep both": "Garder les deux",
"Verify Token": "Vérifier le jeton",
"Setup 2FA": "Configurer la double authentification (2FA)",
"Enable 2FA": "Activer la double authentification (2FA)",
"Disable 2FA": "Désactiver la double authentification (2FA)",
"2FA Settings": "Paramètres de la double authentification (2FA)",
"Two Factor Authentication": "Double authentification",
"Active": "Actif",
"Inactive": "Inactif",
"Token": "Jeton",
"Show URI": "Afficher l'URI",
"Tags": "Étiquettes",
"Add New below or Select...": "Ajoutez-en un en dessous ou sélectionnez-le ici…",
"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": "Vert",
"Blue": "Bleu",
"Indigo": "Indigo",
"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",
"Status Page": "Page de statut",
"Status Pages": "Pages de statut",
"defaultNotificationName": "Ma notification {notification} numéro ({number})",
"here": "ici",
"Required": "Requis",
"telegram": "Telegram",
"ZohoCliq": "ZohoCliq",
"Bot Token": "Jeton du robot",
"wayToGetTelegramToken": "Vous pouvez obtenir un token depuis {0}.",
"Chat ID": "Chat ID",
"supportTelegramChatID": "Prend en charge les messages privés / messages de groupe / l'ID d'un salon",
"wayToGetTelegramChatID": "Vous pouvez obtenir le Chat ID en envoyant un message avec le robot puis en récupérant l'URL pour voir l'ID du salon :",
"YOUR BOT TOKEN HERE": "VOTRE JETON ROBOT ICI",
"chatIDNotFound": "ID du salon introuvable, envoyez un message via le robot avant",
"webhook": "Webhook",
"Post URL": "Post URL",
"Content Type": "Type de contenu",
"webhookJsonDesc": "{0} est bien pour tous les serveurs HTTP modernes comme Express.js",
"webhookFormDataDesc": "{multipart} est bien pour du PHP. Le JSON aura besoin d'être parsé avec {decodeFunction}",
"webhookAdditionalHeadersTitle": "En-têtes supplémentaires",
"webhookAdditionalHeadersDesc": "Définit des en-têtes supplémentaires envoyés avec le webhook.",
"smtp": "Courriel (SMTP)",
"secureOptionNone": "Aucun / STARTTLS (25, 587)",
"secureOptionTLS": "TLS (465)",
"Ignore TLS Error": "Ignorer les erreurs TLS",
"From Email": "Depuis l'adresse",
"emailCustomSubject": "Objet personnalisé",
"To Email": "Vers l'adresse",
"smtpCC": "CC",
"smtpBCC": "CCI",
"discord": "Discord",
"Discord Webhook URL": "URL vers le webhook Discord",
"wayToGetDiscordURL": "Vous pouvez l'obtenir en allant dans « Paramètres du serveur » -> « Intégrations » -> « Créer un Webhook »",
"Bot Display Name": "Nom du robot (affiché)",
"Prefix Custom Message": "Préfixe du message personnalisé",
"Hello @everyone is...": "Bonjour {'@'}everyone il…",
"teams": "Microsoft Teams",
"Webhook URL": "URL vers le webhook",
"wayToGetTeamsURL": "Vous pouvez apprendre comment créer une URL Webhook {0}.",
"wayToGetZohoCliqURL": "Vous pouvez apprendre comment créer une URL Webhook {0}.",
"signal": "Signal",
"Number": "Numéro",
"Recipients": "Destinataires",
"needSignalAPI": "Vous avez besoin d'un client Signal avec l'API REST.",
"wayToCheckSignalURL": "Vous pouvez regarder l'URL suivante pour savoir comment la mettre en place :",
"signalImportant": "IMPORTANT : Vous ne pouvez pas mixer les groupes et les numéros en destinataires !",
"gotify": "Gotify",
"Application Token": "Jeton d'application",
"Server URL": "URL du serveur",
"Priority": "Priorité",
"slack": "Slack",
"Icon Emoji": "Icon Emoji",
"Channel Name": "Nom du salon",
"Uptime Kuma URL": "URL vers Uptime Kuma",
"aboutWebhooks": "Plus d'informations sur les webhooks ici : {0}",
"aboutChannelName": "Mettez le nom du salon dans {0} dans « Nom du salon » si vous voulez contourner le salon webhook. Ex. : #autre-salon",
"aboutKumaURL": "Si vous laissez l'URL d'Uptime Kuma vierge, elle redirigera vers la page du projet GitHub.",
"emojiCheatSheet": "Aide sur les émojis : {0}",
"rocket.chat": "Rocket.chat",
"pushover": "Pushover",
"pushy": "Pushy",
"PushByTechulus": "Push by Techulus",
"octopush": "Octopush",
"promosms": "PromoSMS",
"clicksendsms": "ClickSend SMS",
"lunasea": "LunaSea",
"apprise": "Apprise (prend en charge plus de 50 services de notification)",
"GoogleChat": "Google Chat (Google Workspace uniquement)",
"pushbullet": "Pushbullet",
"Kook": "Kook",
"wayToGetKookBotToken": "Créez une application et récupérer le jeton de robot à l'addresse {0}",
"wayToGetKookGuildID": "Passez en « mode développeur » dans les paramètres de Kook, et cliquez droit sur le Guild pour obtenir son identifiant",
"Guild ID": "Identifiant de Guild",
"line": "Line Messenger",
"mattermost": "Mattermost",
"User Key": "Clé d'utilisateur",
"Device": "Appareil",
"Message Title": "Titre du message",
"Notification Sound": "Son de notification",
"More info on:": "Plus d'informations sur : {0}",
"pushoverDesc1": "Priorité d'urgence (2) a un délai par défaut de 30 secondes entre les tentatives et expire après une heure.",
"pushoverDesc2": "Si vous voulez envoyer des notifications sur différents appareils, remplissez le champ « Appareil ».",
"SMS Type": "Type de SMS",
"octopushTypePremium": "Premium (rapide - recommandé pour les alertes)",
"octopushTypeLowCost": "Économique (lent, bloqué de temps en temps par l'opérateur)",
"checkPrice": "Vérification {0} tarifs :",
"apiCredentials": "Identifiants de l'API",
"octopushLegacyHint": "Voulez-vous utiliser l'ancienne version d'Octopush (2011-2020) ou la nouvelle version ?",
"Check octopush prices": "Vérifier les prix d'Octopush {0}.",
"octopushPhoneNumber": "Numéro de téléphone (format international, ex. : +33612345678)",
"octopushSMSSender": "Nom de l'expéditeur : 3-11 caractères alphanumériques avec espace (a-zA-Z0-9)",
"LunaSea Device ID": "Identifiant d'appareil LunaSea",
"Apprise URL": "URL d'Apprise",
"Example:": "Exemple : {0}",
"Read more:": "En savoir plus : {0}",
"Status:": "État : {0}",
"Read more": "En savoir plus",
"appriseInstalled": "Apprise est installé.",
"appriseNotInstalled": "Apprise n'est pas installé. {0}",
"Access Token": "Jeton d'accès",
"Channel access token": "Jeton d'accès au canal",
"Line Developers Console": "Console développeurs Line",
"lineDevConsoleTo": "Console développeurs Line - {0}",
"Basic Settings": "Paramètres de base",
"User ID": "Identifiant utilisateur",
"Messaging API": "Messaging API",
"wayToGetLineChannelToken": "Premièrement accédez à {0}, créez un <i>provider</i> et définissez un type de salon à «Messaging API». Vous obtiendrez alors le jeton d'accès du salon et l'identifiant utilisateur demandés.",
"Icon URL": "URL vers l'icône",
"aboutIconURL": "Vous pouvez mettre un lien vers une image dans « URL vers l'icône » pour remplacer l'image de profil par défaut. Elle ne sera utilisé que si « Icône émoji » n'est pas défini.",
"aboutMattermostChannelName": "Vous pouvez remplacer le salon par défaut que le webhook utilise en mettant le nom du salon dans le champ « Nom du salon ». Vous aurez besoin de l'activer depuis les paramètres de Mattermost. Ex. : #autre-salon",
"matrix": "Matrix",
"promosmsTypeEco": "SMS ECO - Bon marché mais lent et souvent surchargé. Limité uniquement aux destinataires polonais.",
"promosmsTypeFlash": "SMS FLASH - Le message sera automatiquement affiché sur l'appareil du destinataire. Limité uniquement aux destinataires Polonais.",
"promosmsTypeFull": "SMS FULL - Version premium des SMS. Vous pouvez mettre le nom de l'expéditeur (vous devez l'enregistrer au préalable). Fiable pour les alertes.",
"promosmsTypeSpeed": "SMS SPEED - Priorité élevée pour le système. Très rapide et fiable mais coûteux (environ le double du prix d'un SMS FULL).",
"promosmsPhoneNumber": "Numéro de téléphone (pour les destinataires polonais, vous pouvez ignorer l'indicatif international)",
"promosmsSMSSender": "Nom de l'expéditeur du SMS : Nom pré-enregistré ou l'un de base : InfoSMS, SMS Info, MaxSMS, INFO, SMS",
"Feishu WebHookUrl": "Feishu WebHookURL",
"matrixHomeserverURL": "L'URL du serveur (avec http(s):// et le port de manière facultative)",
"Internal Room Id": "ID de la salle interne",
"matrixDesc1": "Vous pouvez trouver l'ID de salle interne en regardant dans la section avancée des paramètres dans le client Matrix. C'est censé ressembler à !QMdRCpUIfLwsfjxye6:home.server.",
"matrixDesc2": "Il est fortement recommandé de créer un nouvel utilisateur et de ne pas utiliser le jeton d'accès de votre propre utilisateur Matrix, car il vous donnera un accès complet à votre compte et à toutes les salles que vous avez rejointes. Pour cela, créez un nouvel utilisateur et invitez-le uniquement dans la salle dans laquelle vous souhaitez recevoir la notification. Vous pouvez obtenir le jeton d'accès en exécutant {0}",
"Method": "Méthode",
"Body": "Corps",
"Headers": "En-têtes",
"PushUrl": "URL Push",
"HeadersInvalidFormat": "Les en-têtes de la requête ne sont pas dans un format JSON valide : ",
"BodyInvalidFormat": "Le corps de la requête n'est pas dans un format JSON valide : ",
"Monitor History": "Historique de la sonde",
"clearDataOlderThan": "Conserver l'historique des données de la sonde durant {0} jours.",
"PasswordsDoNotMatch": "Les mots de passe ne correspondent pas.",
"records": "enregistrements",
"One record": "Un enregistrement",
"steamApiKeyDescription": "Pour surveiller un serveur Steam, vous avez besoin d'une clé Steam Web-API. Vous pouvez enregistrer votre clé ici : ",
"Current User": "Utilisateur actuel",
"topic": "Topic",
"topicExplanation": "Topic MQTT à surveiller",
"successMessage": "Message de réussite",
"successMessageExplanation": "Message MQTT qui sera considéré comme un succès",
"recent": "Récent",
"Done": "Fait",
"Info": "Info",
"Security": "Sécurité",
"Steam API Key": "Clé d'API Steam",
"Shrink Database": "Réduire la base de données",
"Pick a RR-Type...": "Choisissez un type d'enregistrement…",
"Pick Accepted Status Codes...": "Choisissez les codes de statut acceptés…",
"Default": "Défaut",
"HTTP Options": "Options HTTP",
"Create Incident": "Créer un incident",
"Title": "Titre",
"Content": "Contenu",
"Style": "Style",
"info": "Info",
"warning": "Attention",
"danger": "Danger",
"error": "Erreur",
"critical": "Critique",
"primary": "Primaire",
"light": "Blanc",
"dark": "Noir",
"Post": "Post",
"Please input title and content": "Veuillez saisir le titre et le contenu",
"Created": "Créé",
"Last Updated": "Dernière mise à jour",
"Unpin": "Retirer",
"Switch to Light Theme": "Passer au thème clair",
"Switch to Dark Theme": "Passer au thème sombre",
"Show Tags": "Afficher les étiquettes",
"Hide Tags": "Masquer les étiquettes",
"Description": "Description",
"No monitors available.": "Aucune sonde disponible.",
"Add one": "En rajouter une",
"No Monitors": "Aucune sonde",
"Untitled Group": "Groupe sans titre",
"Services": "Services",
"Discard": "Abandonner",
"Cancel": "Annuler",
"Powered by": "Propulsé par",
"shrinkDatabaseDescription": "Déclenche la commande VACUUM pour SQLite. Si votre base de données a été créée après la version 1.10.0, AUTO_VACUUM est déjà activé et cette action n'est pas nécessaire.",
"serwersms": "SerwerSMS.pl",
"serwersmsAPIUser": "Nom d'utilisateur de l'API (incl. webapi_ prefix)",
"serwersmsAPIPassword": "Mot de passe API",
"serwersmsPhoneNumber": "Numéro de téléphone",
"serwersmsSenderName": "Nom de l'expéditeur du SMS (enregistré via le portail client)",
"smseagle": "SMSEagle",
"smseagleTo": "Numéro(s) de téléphone",
"smseagleGroup": "Nom(s) de groupe(s) de répertoire",
"smseagleContact": "Nom(s) de contact du répertoire",
"smseagleRecipientType": "Type de destinataire",
"smseagleRecipient": "Destinataire(s) (les multiples doivent être séparés par une virgule)",
"smseagleToken": "Jeton d'accès à l'API",
"smseagleUrl": "L'URL de votre appareil SMSEagle",
"smseagleEncoding": "Envoyer en Unicode",
"smseaglePriority": "Priorité des messages (0-9, par défaut = 0)",
"stackfield": "Stackfield",
"Customize": "Personnaliser",
"Custom Footer": "Pied de page personnalisé",
"Custom CSS": "CSS personnalisé",
"smtpDkimSettings": "Paramètres DKIM",
"smtpDkimDesc": "Veuillez vous référer au Nodemailer DKIM {0} pour l'utilisation.",
"documentation": "documentation",
"smtpDkimDomain": "Nom de domaine",
"smtpDkimKeySelector": "Sélecteur de clé",
"smtpDkimPrivateKey": "Clé privée",
"smtpDkimHashAlgo": "Algorithme de hachage (facultatif)",
"smtpDkimheaderFieldNames": "Clés d'en-tête à signer (facultatif)",
"smtpDkimskipFields": "Clés d'en-tête à ne pas signer (facultatif)",
"wayToGetPagerDutyKey": "Vous pouvez l'obtenir en allant dans Service -> Annuaire des services -> (sélectionner un service) -> Intégrations -> Ajouter une intégration. Ici, vous pouvez rechercher \"Events API V2\". Plus d'infos {0}",
"Integration Key": "Clé d'intégration",
"Integration URL": "URL d'intégration",
"Auto resolve or acknowledged": "Résolution automatique ou accusé de réception",
"do nothing": "ne fais rien",
"auto acknowledged": "accusé de réception automatique",
"auto resolve": "résolution automatique",
"gorush": "Gorush",
"alerta": "Alerta",
"alertaApiEndpoint": "API Endpoint",
"alertaEnvironment": "Environnement",
"alertaApiKey": "Clé de l'API",
"alertaAlertState": "État de l'alerte",
"alertaRecoverState": "État de récupération",
"deleteStatusPageMsg": "Voulez-vous vraiment supprimer cette page d'état ?",
"Proxies": "Proxies",
"default": "Défaut",
"enabled": "Activé",
"setAsDefault": "Définir par défaut",
"deleteProxyMsg": "Voulez-vous vraiment supprimer ce proxy pour toutes les sondes ?",
"proxyDescription": "Les proxies doivent être affectés à une sonde pour fonctionner.",
"enableProxyDescription": "Ce proxy n'aura pas d'effet sur les demandes de sonde tant qu'il n'est pas activé. Vous pouvez contrôler la désactivation temporaire du proxy de toutes les sondes en fonction de l'état d'activation.",
"setAsDefaultProxyDescription": "Ce proxy sera activé par défaut pour les nouvelles sondes. Vous pouvez toujours désactiver le proxy séparément pour chaque sonde.",
"Certificate Chain": "Chaîne de certificats",
"Valid": "Valide",
"Invalid": "Non valide",
"AccessKeyId": "ID de clé d'accès",
"SecretAccessKey": "Clé secrète d'accès",
"PhoneNumbers": "Numéros de téléphone",
"TemplateCode": "Modèle de code",
"SignName": "Signature",
"Sms template must contain parameters: ": "Le modèle de SMS doit contenir des paramètres : ",
"Bark Endpoint": "Endpoint Bark",
"Bark Group": "Groupe Bark",
"Bark Sound": "Son Bark",
"WebHookUrl": "WebHookUrl",
"SecretKey": "Clé secrète",
"For safety, must use secret key": "Par sécurité, utilisation obligatoire de la clé secrète",
"Device Token": "Jeton d'appareil",
"Platform": "Plateforme",
"iOS": "iOS",
"Android": "Android",
"Huawei": "Huawei",
"High": "Haute",
"Retry": "Recommencez",
"Topic": "Topic",
"WeCom Bot Key": "Clé de robot WeCom",
"Setup Proxy": "Configurer le proxy",
"Proxy Protocol": "Protocole proxy",
"Proxy Server": "Serveur proxy",
"Proxy server has authentication": "Une authentification est nécessaire pour le serveur proxy",
"User": "Utilisateur",
"Installed": "Installé",
"Not installed": "Non installé",
"Running": "Fonctionne",
"Not running": "Ne fonctionne pas",
"Remove Token": "Supprimer le jeton",
"Start": "Démarrer",
"Stop": "Arrêter",
"Uptime Kuma": "Uptime Kuma",
"Add New Status Page": "Ajouter une page de statut",
"Slug": "Chemin",
"Accept characters:": "Caractères acceptés : ",
"startOrEndWithOnly": "Commence uniquement par {0}",
"No consecutive dashes": "Pas de double tirets",
"Next": "Continuer",
"The slug is already taken. Please choose another slug.": "Un chemin existe déjà. Veuillez en choisir un autre.",
"No Proxy": "Pas de proxy",
"Authentication": "Authentification",
"HTTP Basic Auth": "Authentification de base HTTP",
"New Status Page": "Nouvelle page de statut",
"Page Not Found": "Page non trouvée",
"Reverse Proxy": "Proxy inverse",
"Backup": "Sauvegarde",
"About": "À propos",
"wayToGetCloudflaredURL": "(télécharger cloudflared depuis {0})",
"cloudflareWebsite": "Site web de Cloudflare",
"Message:": "Message : ",
"Don't know how to get the token? Please read the guide:": "Vous ne savez pas comment obtenir le jeton ? Lisez le 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.": "La connexion actuelle peut être perdue si vous vous connectez actuellement via un tunnel Cloudflare. Êtes-vous sûr de vouloir l'arrêter ? Tapez votre mot de passe actuel pour le confirmer.",
"HTTP Headers": "En-têtes HTTP",
"Trust Proxy": "Proxy de confiance",
"Other Software": "Autres logiciels",
"For example: nginx, Apache and Traefik.": "Par exemple : nginx, Apache et Traefik.",
"Please read": "Veuillez lire",
"Subject:": "Objet : ",
"Valid To:": "Valable jusqu'au : ",
"Days Remaining:": "Jours restants : ",
"Issuer:": "Émetteur : ",
"Fingerprint:": "Empreinte : ",
"No status pages": "Aucune page de statut.",
"Domain Name Expiry Notification": "Notification d'expiration du nom de domaine",
"Proxy": "Proxy",
"Date Created": "Date de création",
"HomeAssistant": "Home Assistant",
"onebotHttpAddress": "Adresse HTTP OneBot",
"onebotMessageType": "Type de message OneBot",
"onebotGroupMessage": "Groupe",
"onebotPrivateMessage": "Privé",
"onebotUserOrGroupId": "ID de groupe/utilisateur",
"onebotSafetyTips": "Pour des raisons de sécurité, vous devez définir un jeton d'accès",
"PushDeer Key": "Clé PushDeer",
"Footer Text": "Texte de pied de page",
"Show Powered By": "Afficher « Propulsé par »",
"Domain Names": "Noms de domaine",
"signedInDisp": "Connecté en tant que {0}",
"signedInDispDisabled": "Authentification désactivée.",
"RadiusSecret": "Radius Secret",
"RadiusSecretDescription": "Secret partagé entre le client et le serveur",
"RadiusCalledStationId": "Identifiant de la station appelée",
"RadiusCalledStationIdDescription": "Identifiant de l'appareil appelé",
"RadiusCallingStationId": "Identifiant de la station appelante",
"RadiusCallingStationIdDescription": "Identifiant de l'appareil appelant",
"Certificate Expiry Notification": "Notification d'expiration du certificat",
"API Username": "Nom d'utilisateur de l'API",
"API Key": "Clé API",
"Recipient Number": "Numéro du destinataire",
"From Name/Number": "De nom/numéro",
"Leave blank to use a shared sender number.": "Laisser vide pour utiliser un numéro d'expéditeur partagé.",
"Octopush API Version": "Version de l'API Octopush",
"Legacy Octopush-DM": "Ancien Octopush-DM",
"endpoint": "endpoint",
"octopushAPIKey": "\"Clé API\" à partir des informations d'identification de l'API HTTP dans le panneau de configuration",
"octopushLogin": "\"Identifiant\" à partir des informations d'identification de l'API HTTP dans le panneau de configuration",
"promosmsLogin": "Nom de connexion API",
"promosmsPassword": "Mot de passe API",
"pushoversounds pushover": "Pushover (par défaut)",
"pushoversounds bike": "Vélo",
"pushoversounds bugle": "Clairon",
"pushoversounds cashregister": "Caisse enregistreuse",
"pushoversounds classical": "Classique",
"pushoversounds cosmic": "Cosmique",
"pushoversounds falling": "Chute",
"pushoversounds gamelan": "Gamelan",
"pushoversounds incoming": "Arrivée",
"pushoversounds intermission": "Intermission",
"pushoversounds magic": "Magique",
"pushoversounds mechanical": "Mécanique",
"pushoversounds pianobar": "Piano-bar",
"pushoversounds siren": "Sirène",
"pushoversounds spacealarm": "Alarme spatiale",
"pushoversounds tugboat": "Remorqueur",
"pushoversounds alien": "Alarme alienne (version longue)",
"pushoversounds climb": "Escalade (version longue)",
"pushoversounds persistent": "Persistent (version longue)",
"pushoversounds echo": "Pushover Echo (version longue)",
"pushoversounds updown": "Up Down (version longue)",
"pushoversounds vibrate": "Vibration seulement",
"pushoversounds none": "Aucun (silencieux)",
"pushyAPIKey": "Clé API secrète",
"pushyToken": "Jeton d'appareil",
"Show update if available": "Afficher la mise à jour si disponible",
"Also check beta release": "Vérifiez également la version bêta",
"Using a Reverse Proxy?": "Utiliser un proxy inverse ?",
"Check how to config it for WebSocket": "Vérifier comment le configurer pour WebSocket",
"Steam Game Server": "Serveur de jeu Steam",
"Most likely causes:": "Causes les plus probables : ",
"The resource is no longer available.": "La ressource n'est plus disponible.",
"There might be a typing error in the address.": "Il se peut qu'il y ait une erreur de frappe dans l'adresse.",
"What you can try:": "Ce que vous pouvez essayer :",
"Retype the address.": "Retaper l'adresse.",
"Go back to the previous page.": "Retourner à la page précédente.",
"Coming Soon": "Prochainement",
"wayToGetClickSendSMSToken": "Vous pouvez obtenir le nom d'utilisateur API et la clé API à partir de {0} .",
"Connection String": "Chaîne de connexion",
"Query": "Requête",
"settingsCertificateExpiry": "Expiration du certificat TLS",
"certificationExpiryDescription": "Les sondes HTTPS émettent une notification lorsque le certificat TLS expire dans :",
"Setup Docker Host": "Configurer l'hôte Docker",
"Connection Type": "Type de connexion",
"Docker Daemon": "Deamon Docker",
"deleteDockerHostMsg": "Voulez-vous vraiment supprimer cet hôte Docker pour toutes les sondes ?",
"socket": "Socket",
"tcp": "TCP / HTTP",
"Docker Container": "Conteneur Docker",
"Container Name / ID": "Nom / ID du conteneur",
"Docker Host": "Hôte Docker",
"Docker Hosts": "Hôtes Docker",
"ntfy Topic": "Topic ntfy",
"Domain": "Domaine",
"Workstation": "Poste de travail",
"disableCloudflaredNoAuthMsg": "Vous êtes en mode No Auth, un mot de passe n'est pas nécessaire.",
"trustProxyDescription": "Faire confiance aux en-têtes 'X-Forwarded-*'. Si vous souhaitez obtenir la bonne adresse IP client et que votre Uptime Kuma se situe derrière un proxy (comme nginx ou Apache) vous devez l'activer.",
"wayToGetLineNotifyToken": "Vous pouvez obtenir un jeton d'accès auprès de {0}",
"Examples": "Exemples",
"Home Assistant URL": "URL vers Home Assistant",
"Long-Lived Access Token": "Jeton d'accès de longue durée",
"Long-Lived Access Token can be created by clicking on your profile name (bottom left) and scrolling to the bottom then click Create Token. ": "Un jeton d'accès de longue durée peut être créé en cliquant sur le nom de votre profil (en bas à gauche) et en faisant défiler vers le bas, puis cliquez sur Créer un jeton. ",
"Notification Service": "Service de notifications",
"default: notify all devices": "par défaut: notifier tous les appareils",
"A list of Notification Services can be found in Home Assistant under \"Developer Tools > Services\" search for \"notification\" to find your device/phone name.": "Une liste des services de notification peut être trouvée dans Home Assistant sous \"Outils de développement > Services\" recherchez \"notification\" pour trouver le nom de votre appareil/téléphone.",
"Automations can optionally be triggered in Home Assistant:": "Les automatisations peuvent éventuellement être déclenchées dans Home Assistant : ",
"Trigger type:": "Type de déclencheur : ",
"Event type:": "Type d'événement : ",
"Event data:": "Données d'événement : ",
"Then choose an action, for example switch the scene to where an RGB light is red.": "Ensuite, choisissez une action, par exemple basculer la scène là où une lumière RVB est rouge.",
"Frontend Version": "Version frontend",
"Frontend Version do not match backend version!": "La version frontend ne correspond pas à la version backend !",
"Base URL": "URL de base",
"goAlertInfo": "GoAlert est une application open source pour la planification des appels, les escalades automatisées et les notifications (comme les SMS ou les appels vocaux). Impliquez automatiquement la bonne personne, de la bonne manière et au bon moment ! {0}",
"goAlertIntegrationKeyInfo": "Obtenez la clé d'intégration d'API générique pour le service dans ce format \"aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee\" généralement la valeur du paramètre de jeton de l'URL copiée.",
"goAlert": "GoAlert",
"backupOutdatedWarning": "Obsolète : étant donné que de nombreuses fonctionnalités ont été ajoutées et que cette fonctionnalité de sauvegarde est non maintenue, elle ne peut pas générer ou restaurer une sauvegarde complète.",
"backupRecommend": "Veuillez sauvegarder le volume ou le dossier de données (./data/) directement à la place.",
"Optional": "Optionnel",
"squadcast": "Squadcast",
"SendKey": "SendKey",
"SMSManager API Docs": "Documentations de l'API SMSManager ",
"Gateway Type": "Type de passerelle",
"SMSManager": "SMSManager",
"You can divide numbers with": "Vous pouvez diviser des nombres avec",
"or": "ou",
"recurringInterval": "Intervalle",
"Recurring": "Récurrent",
"strategyManual": "Activer/désactiver manuellement",
"warningTimezone": "Utilisation du fuseau horaire du serveur",
"weekdayShortMon": "Lun",
"weekdayShortTue": "Mar",
"weekdayShortWed": "Mer",
"weekdayShortThu": "Jeu",
"weekdayShortFri": "Ven",
"weekdayShortSat": "Sam",
"weekdayShortSun": "Dim",
"dayOfWeek": "Jour de la semaine",
"dayOfMonth": "Jour du mois",
"lastDay": "Dernier jour",
"lastDay1": "Dernier jour du mois",
"lastDay2": "Avant-dernier jour du mois",
"lastDay3": "3ème dernier jour du mois",
"lastDay4": "4ème dernier jour du mois",
"No Maintenance": "Aucune maintenance",
"pauseMaintenanceMsg": "Voulez-vous vraiment mettre en pause ?",
"maintenanceStatus-under-maintenance": "En maintenance",
"maintenanceStatus-inactive": "Inactif",
"maintenanceStatus-scheduled": "Programmé",
"maintenanceStatus-ended": "Terminé",
"maintenanceStatus-unknown": "Inconnue",
"Display Timezone": "Afficher le fuseau horaire",
"Server Timezone": "Fuseau horaire du serveur",
"statusPageMaintenanceEndDate": "Fin",
"IconUrl": "URL vers l'icône",
"Enable DNS Cache": "Activer le cache DNS",
"Enable": "Activer",
"Disable": "Désactiver",
"dnsCacheDescription": "Il peut ne pas fonctionner dans certains environnements IPv6, désactivez-le si vous rencontrez des problèmes.",
"Single Maintenance Window": "Créneau de maintenance unique",
"Maintenance Time Window of a Day": "Créneau de la maintenance",
"Effective Date Range": "Plage de dates d'effet",
"Schedule Maintenance": "Créer une maintenance",
"Date and Time": "Date et heure",
"DateTime Range": "Plage de dates et d'heures",
"Strategy": "Stratégie",
"Free Mobile User Identifier": "Identifiant d'utilisateur Free Mobile",
"Free Mobile API Key": "Clé d'API Free Mobile",
"Enable TLS": "Activer le TLS",
"Proto Service Name": "Nom du service proto",
"Proto Method": "Méthode Proto",
"Proto Content": "Contenu proto",
"Economy": "Économique",
"Lowcost": "Faible coût",
"high": "Haute",
"General Monitor Type": "Type de sonde générale",
"Passive Monitor Type": "Type de sonde passive",
"Specific Monitor Type": "Type de sonde spécifique",
"dataRetentionTimeError": "La durée de conservation doit être supérieure ou égale à 0",
"infiniteRetention": "Définissez la valeur à 0 pour une durée de conservation infinie.",
"Monitor": "Sonde | Sondes",
"Custom": "Personnalisé",
"confirmDeleteTagMsg": "Voulez-vous vraiment supprimer cette étiquettes ? Les moniteurs associés ne seront pas supprimés.",
"promosmsAllowLongSMS": "Autoriser les longs SMS",
"Help": "Aide",
"Game": "Jeux",
"Packet Size": "Taille du paquet",
"loadingError": "Impossible de récupérer les données, veuillez réessayer plus tard.",
"plugin": "Plugin | Plugins",
"install": "Installer",
"installing": "Installation",
"uninstall": "Désinstaller",
"uninstalling": "Désinstallation",
"confirmUninstallPlugin": "Voulez-vous vraiment désinstaller ce plugin ?",
"Custom Monitor Type": "Type de sonde personnalisé"
}

@ -0,0 +1,672 @@
{
"languageName": "עברית",
"checkEverySecond": "בדוק כל {0} שניות",
"retryCheckEverySecond": "נסה שוב כל {0} שניות",
"resendEveryXTimes": "התראה שוב כל {0} פעמים",
"resendDisabled": "השליחה מחדש מושבתת",
"retriesDescription": "מקסימום ניסיונות חוזרים לפני שהשירות יסומן כלא פעיל ונשלחת התראה",
"ignoreTLSError": "התעלם משגיאת TLS/SSL עבור אתרי HTTPS",
"upsideDownModeDescription": "הפוך את הסטטוס על הפוך. אם ניתן להגיע לשירות, הוא לא פעיל.",
"maxRedirectDescription": "המספר המרבי של הפניות מחדש לעקוב. הגדר ל-0 כדי להשבית הפניות מחדש.",
"enableGRPCTls": "אפשר לשלוח בקשת gRPC עם חיבור TLS",
"grpcMethodDescription": "שם השיטה מומר לפורמט cammelCase כגון sayHello, check וכו.",
"acceptedStatusCodesDescription": "בחר קודי סטטוס שנחשבים לתגובה מוצלחת.",
"Maintenance": "תחזוקה",
"statusMaintenance": "תחזוקה",
"Schedule maintenance": "תחזוקה מתוכננת",
"Affected Monitors": "מוניטורים מושפעים",
"Pick Affected Monitors...": "בחר המוניטרים מושפעים...",
"Start of maintenance": "תחילת תחזוקה",
"All Status Pages": "כל דפי הסטטוס",
"Select status pages...": "בחר דפי סטטוס...",
"recurringIntervalMessage": "רוץ פעם ביום | הפעל אחת ל-{0} ימים",
"affectedMonitorsDescription": "בחר מוניטורים שמושפעים מהתחזוקה הנוכחית",
"affectedStatusPages": "הצג הודעת תחזוקה זו בדפי סטטוס שנבחרו",
"atLeastOneMonitor": "בחר לפחות מוניטור אחד מושפע",
"passwordNotMatchMsg": "הסיסמאות לא תואמות",
"notificationDescription": "יש להקצות התראות למוניטור כדי שהן יעבדו.",
"keywordDescription": "חפש מילת מפתח בתגובת HTML או JSON רגילה. החיפוש תלוי רישיות.",
"pauseDashboardHome": "עצור",
"deleteMonitorMsg": "האם אתה בטוח שברצונך למחוק את המוניטור הזה?",
"deleteMaintenanceMsg": "האם אתה בטוח שברצונך למחוק את התחזוקה הזו?",
"deleteNotificationMsg": "האם אתה בטוח שברצונך למחוק את ההודעה הזו עבור כל מוניטרים?",
"dnsPortDescription": "יציאת שרת DNS. ברירת המחדל היא 53. אתה יכול לשנות את היציאה בכל עת.",
"resolverserverDescription": "Cloudflare הוא שרת ברירת המחדל. אתה יכול לשנות את שרת הפותר בכל עת.",
"rrtypeDescription": "בחר את סוג ה-RR שברצונך לפקח עליו",
"pauseMonitorMsg": "האם אתה בטוח רוצה להשהות?",
"enableDefaultNotificationDescription": "הודעה זו תופעל כברירת מחדל עבור מוניטרים חדשים. אתה עדיין יכול להשבית את ההודעה בנפרד עבור כל מוניטור.",
"clearEventsMsg": "האם אתה בטוח שברצונך למחוק את כל האירועים עבור המוניטור הזה?",
"clearHeartbeatsMsg": "האם אתה בטוח שברצונך למחוק את כל פעימות הלב עבור המוניטור הזה?",
"confirmClearStatisticsMsg": "האם אתה בטוח שברצונך למחוק את כל הנתונים הסטטיסטיים?",
"importHandleDescription": "בחר 'דלג על קיים' אם ברצונך לדלג על כל מוניטור או התראה באותו שם. 'החלף' ימחק כל מוניטור והתראה קיימים.",
"confirmImportMsg": "האם אתה בטוח שברצונך לייבא את הגיבוי? אנא ודא שבחרת באפשרות הייבוא הנכונה.",
"twoFAVerifyLabel": "אנא הזן את האסימון שלך כדי לאמת מערכת אדוש:",
"tokenValidSettingsMsg": "האסימון תקף! כעת אתה יכול לשמור את הגדרות האדוש.",
"confirmEnableTwoFAMsg": "האם אתה בטוח שברצונך להפעיל את מערכת אדוש?",
"confirmDisableTwoFAMsg": "Are you sure you want to disable 2FA?",
"Settings": "הגדרות",
"Dashboard": "פאנל ניהול",
"New Update": "עדכון חדש",
"Language": "שפה",
"Appearance": "נראות",
"Theme": "ערכת נושא",
"General": "כללי",
"Primary Base URL": "כתובת האתר הראשית של הבסיס",
"Version": "גרסה",
"Check Update On 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.": "Cert Exp.",
"day": "יום | ימים",
"-day": "-יום",
"hour": "שעה",
"-hour": "-שעה",
"Response": "תגובה",
"Ping": "פינג",
"Monitor Type": "סוג מוניטור",
"Keyword": "מילת מפתח",
"Friendly Name": "שם ידידותי",
"URL": "כתובת אתר",
"Hostname": "שם המארח",
"Port": "פורט",
"Heartbeat Interval": "מרווח פעימות",
"Retries": "נסיונות חוזרים",
"Heartbeat Retry Interval": "מרווח נסיונות חוזר של פעימות",
"Resend Notification if Down X times consequently": "שלח שוב הודעה אם ירד X פעמים כתוצאה מכך",
"Advanced": "מתקדם",
"Upside Down Mode": "מצב הפוך",
"Max. Redirects": "מקסימום הפניות מחדש",
"Accepted Status Codes": "קודי סטטוס מקובלים",
"Push URL": "דחף כתובת URL",
"needPushEvery": "עליך להתקשר לכתובת האתר הזו כל {0} שניות.",
"pushOptionalParams": "פרמטרים אופציונליים: {0}",
"Save": "שמירה",
"Notifications": "התראות",
"Not available, please setup.": "לא זמין, אנא הגדר.",
"Setup Notification": "הודעת הגדרה",
"Light": "בהיר",
"Dark": "חושך",
"Auto": "אוטומטי",
"Theme - Heartbeat Bar": "ערכת נושא - 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": "הפעלת אבטחה",
"disableauth.message1": "האם אתה בטוח שברצונך <strong>להשבית את האבטחה</strong>?",
"disableauth.message2": "הוא מיועד לתרחישים <strong>שבהם אתה מתכוון ליישם אימות של צד שלישי</strong> מול Uptime Kuma כגון Cloudflare Access, Authelia או מנגנוני אימות אחרים.",
"Please use this option carefully!": "אנא השתמש באפשרות זו בזהירות!",
"Logout": "התנתקות",
"Leave": "יציאה",
"I understand, please disable": "אני מבין, אני רוצה להשבית",
"Confirm": "אישור",
"Yes": "כן",
"No": "לא",
"Username": "שם משתמש",
"Password": "סיסמה",
"Remember me": "זכור אותי",
"Login": "התחברות",
"No Monitors, please": "בלי מוניטורים, בבקשה",
"add one": "להוסיף אחד",
"Notification Type": "סוג התראה",
"Email": "אימייל",
"Test": "Test",
"Certificate Info": "פרטי תעודת אבטחה",
"Resolver Server": "שרת פותר",
"Resource Record Type": "סוג רשומת משאבים",
"Last Result": "תוצאה אחרונה",
"Create your admin account": "צור את חשבון הניהול שלך",
"Repeat Password": "חזור על הסיסמה",
"Import Backup": "ייבוא גיבוי",
"Export Backup": "ייצוא גיבוי",
"Export": "ייצוא",
"Import": "ייבוא",
"respTime": "רפ. זמן (ms)",
"notAvailableShort": "N/A",
"Default enabled": "ברירת המחדל מופעלת",
"Apply on all existing monitors": "החל על כל המסכים הקיימים",
"Create": "ליצור",
"Clear Data": "נקה נתונים",
"Events": "אירועים",
"Heartbeats": "פעימות לב",
"Auto Get": "קבל אוטומטי",
"backupDescription": "אתה יכול לגבות את כל המסכים וההתראות לקובץ JSON.",
"backupDescription2": "הערה: היסטוריה ונתוני אירועים אינם כלולים.",
"backupDescription3": "נתונים רגישים כגון אסימוני הודעה כלולים בקובץ הייצוא; נא לאחסן יצוא בצורה מאובטחת.",
"alertNoFile": "אנא בחר קובץ לייבוא.",
"alertWrongFileType": "אנא בחר קובץ JSON.",
"Clear all statistics": "נקה את כל הנתונים הסטטיסטיים",
"Skip existing": "דילוג על הקיים",
"Overwrite": "החלף",
"Options": "אפשרויות",
"Keep both": "שמור את שניהם",
"Verify Token": "אמת את האסימון",
"Setup 2FA": "הגדרת מערכת אדוש",
"Enable 2FA": "הפעלת אדוש",
"Disable 2FA": "כיבוי אדוש",
"2FA Settings": "הגדרות אדוש",
"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": "מעבר לפאנל",
"Status Page": "דף סטטוס",
"Status Pages": "דפי סטטוס",
"defaultNotificationName": "התראת {notification} שלי ({number})",
"here": "פה",
"Required": "נדרש",
"telegram": "טלגרם",
"Bot Token": "אסימון בוט",
"wayToGetTelegramToken": "אתה יכול לקבל אסימון מ-{0}.",
"Chat ID": "מזהה צ'אט",
"supportTelegramChatID": "תמיכה בצ'אט ישיר / קבוצה / מזהה הצ'אט של הערוץ",
"wayToGetTelegramChatID": "אתה יכול לקבל את מזהה הצ'אט שלך על ידי שליחת הודעה לבוט ומעבר לכתובת האתר הזו כדי להציג את ה-chat_id:",
"YOUR BOT TOKEN HERE": "אסימון הבוט שלך כאן",
"chatIDNotFound": "מזהה צ'אט לא נמצא; אנא שלח הודעה לבוט זה תחילה",
"webhook": "Webhook",
"Post URL": "כתובת אתר של פוסט",
"Content Type": "סוג התוכן",
"webhookJsonDesc": "{0} מתאים לכל שרתי HTTP מודרניים כגון Express.js",
"webhookFormDataDesc": "{multipart} טוב ל-PHP. יהיה צורך לנתח את ה-JSON באמצעות {decodeFunction}",
"webhookAdditionalHeadersTitle": "כותרות נוספות",
"webhookAdditionalHeadersDesc": "מגדיר כותרות נוספות שנשלחות עם ה-webhook.",
"smtp": "אימייל (SMTP)",
"secureOptionNone": "None / STARTTLS (25, 587)",
"secureOptionTLS": "TLS (465)",
"Ignore TLS Error": "התעלם משגיאת TLS",
"From Email": "אמייל שולח",
"emailCustomSubject": "נושא מותאם אישית",
"To Email": "למייל",
"smtpCC": "עותק",
"smtpBCC": "עותק מוסתר",
"discord": "דיסקורד",
"Discord Webhook URL": "כתובת אתר של Discord Webhook",
"wayToGetDiscordURL": "אתה יכול לקבל זאת על ידי מעבר להגדרות שרת -> אינטגרציות -> צור Webhook",
"Bot Display Name": "שם תצוגה של בוט",
"Prefix Custom Message": "קידומת הודעה מותאמת אישית",
"Hello @everyone is...": "שלום {'@'}כולם...",
"teams": "Microsoft Teams",
"Webhook URL": "כתובת האתר של Webhook",
"wayToGetTeamsURL": "אתה יכול ללמוד כיצד ליצור כתובת אתר ל-webhook {0}.",
"signal": "אוֹת",
"Number": "מספר",
"Recipients": "נמענים",
"needSignalAPI": "אתה צריך שיהיה לך לקוח איתות עם REST API.",
"wayToCheckSignalURL": "אתה יכול לבדוק את כתובת האתר הזו כדי לראות כיצד להגדיר אחת:",
"signalImportant": "חשוב: לא ניתן לערבב קבוצות ומספרים בנמענים!",
"gotify": "Gotify",
"Application Token": "אסימון אפליקציה",
"Server URL": "כתובת האתר של השרת",
"Priority": "עדיפות",
"slack": "Slack",
"Icon Emoji": "אייקון אימוג'י",
"Channel Name": "שם הערוץ",
"Uptime Kuma URL": "Uptime Kuma URL",
"aboutWebhooks": "מידע נוסף על Webhooks ב: {0}",
"aboutChannelName": "הזן את שם הערוץ בשדה {0} שם ערוץ אם ברצונך לעקוף את ערוץ Webhook. לדוגמה: #ערוץ אחר",
"aboutKumaURL": "אם תשאיר את השדה Uptime Kuma URL ריק, הוא יעבור כברירת מחדל לעמוד Project GitHub.",
"emojiCheatSheet": "גיליון הונאה של אמוג'י: {0}",
"rocket.chat": "Rocket.Chat",
"pushover": "Pushover",
"pushy": "Pushy",
"PushByTechulus": "Push by Techulus",
"octopush": "Octopush",
"promosms": "PromoSMS",
"clicksendsms": "ClickSend SMS",
"lunasea": "LunaSea",
"apprise": "Apprise (תומך ב-50+ שירותי התראות)",
"GoogleChat": "Google Chat (Google Workspace בלבד)",
"pushbullet": "Pushbullet",
"line": "Line Messenger",
"mattermost": "Mattermost",
"User Key": "מפתח משתמש",
"Device": "התקן",
"Message Title": "כותרת ההודעה",
"Notification Sound": "צליל התראה",
"More info on:": "מידע נוסף על: {0}",
"pushoverDesc1": "לעדיפות חירום (2) יש פסק זמן של 30 שניות ברירת מחדל בין ניסיונות חוזרים, והיא תפוג לאחר שעה.",
"pushoverDesc2": "אם ברצונך לשלוח התראות למכשירים שונים, מלא את שדה התקן.",
"SMS Type": "סוג SMS",
"octopushTypePremium": "פרימיום (מהיר - מומלץ להתראה)",
"octopushTypeLowCost": "עלות נמוכה (איטית - לפעמים חסומה על ידי המפעיל)",
"checkPrice": "בדוק מחירים של {0}:",
"apiCredentials": "אישורי API",
"octopushLegacyHint": "האם אתה משתמש בגרסה הישנה של Octopush (2011-2020) או בגרסה החדשה?",
"Check octopush prices": "בדוק מחירי תמנון {0}.",
"octopushPhoneNumber": "מספר טלפון (פורמט אינטלי, למשל: +33612345678)",
"octopushSMSSender": "שם שולח SMS: 3-11 תווים אלפאנומריים ורווח (a-zA-Z0-9)",
"LunaSea Device ID": "מזהה מכשיר LunaSea",
"Apprise URL": "Apprise URL",
"Example:": "דוגמה: {0}",
"Read more:": "קרא עוד: {0}",
"Status:": "סטטוס: {0}",
"Read more": "קרא עוד",
"appriseInstalled": "Apprise מותקן.",
"appriseNotInstalled": "Apprise אינו מותקן. {0}",
"Access Token": "אסימון גישה",
"Channel access token": "אסימון גישה לערוץ",
"Line Developers Console": "קונסולת מפתחים",
"lineDevConsoleTo": "קו מפתחי קונסולת - {0}",
"Basic Settings": "הגדרות בסיסיות",
"User ID": "תעודת זהות של משתמש",
"Messaging API": "Messaging API",
"wayToGetLineChannelToken": "תחילה גש ל-{0}, צור ספק וערוץ (Messaging API), לאחר מכן תוכל לקבל את אסימון הגישה לערוץ ומזהה המשתמש מפריטי התפריט שהוזכרו לעיל.",
"Icon URL": "כתובת אתר של סמל",
"aboutIconURL": "אתה יכול לספק קישור לתמונה ב\"כתובת URL של סמל\" כדי לעקוף את תמונת הפרופיל המוגדרת כברירת מחדל. לא ישמש אם Icon Emoji מוגדר.",
"aboutMattermostChannelName": "אתה יכול לעקוף את ערוץ ברירת המחדל שאליו ה-Webhook מפרסם על ידי הזנת שם הערוץ בשדה \"שם ערוץ\". זה צריך להיות מופעל בהגדרות Mattermos Webhook. לדוגמה: #ערוץ אחר",
"matrix": "Matrix",
"promosmsTypeEco": "SMS ECO - זול אך איטי ולעיתים עמוס מדי. מוגבל רק לנמענים פולנים.",
"promosmsTypeFlash": "SMS FLASH - ההודעה תוצג אוטומטית במכשיר הנמען. מוגבל לנמענים פולנים בלבד.",
"promosmsTypeFull": "SMS FULL - שכבת פרימיום של SMS, אתה יכול להשתמש בשם השולח שלך (עליך לרשום את השם תחילה). אמין להתראות.",
"promosmsTypeSpeed": "SMS SPEED - העדיפות הגבוהה ביותר במערכת. מאוד מהיר ואמין אבל יקר (בערך פי שניים ממחיר מלא של SMS).",
"promosmsPhoneNumber": "מספר טלפון (לנמען פולני ניתן לדלג על אזורי חיוג)",
"promosmsSMSSender": "שם שולח SMS: שם רשום מראש או אחת מברירות המחדל: InfoSMS, SMS Info, MaxSMS, INFO, SMS",
"Feishu WebHookUrl": "Feishu WebHookURL",
"matrixHomeserverURL": "כתובת האתר של שרת הבית (עם http(s):// ויציאה אופציונלית)",
"Internal Room Id": "מזהה חדר פנימי",
"matrixDesc1": "אתה יכול למצוא את מזהה החדר הפנימי על ידי עיון בחלק המתקדם של לקוח Matrix שלך בהגדרות החדר. זה צריך להיראות כמו !QMdRCpUIfLwsfjxye6:home.server.",
"matrixDesc2": "מומלץ מאוד ליצור משתמש חדש ולא להשתמש באסימון הגישה של משתמש מטריקס משלך שכן הוא יאפשר גישה מלאה לחשבון שלך ולכל החדרים שהצטרפת אליהם. במקום זאת, צור משתמש חדש והזמן אותו רק לחדר שבו תרצה לקבל את ההתראה. תוכל לקבל את אסימון הגישה על ידי הפעלת {0}",
"Method": "Method",
"Body": "Body",
"Headers": "Headers",
"PushUrl": "Push URL",
"HeadersInvalidFormat": "כותרות הבקשה אינן JSON חוקיות:",
"BodyInvalidFormat": "גוף הבקשה אינו JSON חוקי:",
"Monitor History": "מעקב אחר היסטוריה",
"clearDataOlderThan": "שמור את נתוני היסטוריית הצג למשך {0} ימים.",
"PasswordsDoNotMatch": "סיסמאות לא תואמות.",
"records": "רשומות",
"One record": "שיא אחד",
"steamApiKeyDescription": "לניטור שרת משחקי Steam אתה צריך מפתח Steam Web-API. אתה יכול לרשום את מפתח ה-API שלך כאן:",
"Current User": "משתמש נוכחי",
"topic": "נושא",
"topicExplanation": "נושא MQTT למעקב",
"successMessage": "הודעת הצלחה",
"successMessageExplanation": "הודעת MQTT שתיחשב כהצלחה",
"recent": "לאחרונה",
"Done": "בוצע",
"Info": "מידע",
"Security": "אבטחה",
"Steam API Key": "מפתח API Steam",
"Shrink Database": "מסד נתונים מכווץ",
"Pick a RR-Type...": "בחר סוג RR ...",
"Pick Accepted Status Codes...": "בחר קודי סטטוס מקובלים ...",
"Default": "בְּרִירַת מֶחדָל",
"HTTP Options": "אפשרויות HTTP",
"Create Incident": "ליצור אירוע",
"Title": "כותרת",
"Content": "תוֹכֶן",
"Style": "Style",
"info": "מידע",
"warning": "אַזהָרָה",
"danger": "סַכָּנָה",
"error": "שְׁגִיאָה",
"critical": "קריטי",
"primary": "יְסוֹדִי",
"light": "אוֹר",
"dark": "אפל",
"Post": "הודעה",
"Please input title and content": "אנא הזן כותרת ותוכן",
"Created": "נוצר",
"Last Updated": "עודכן לאחרונה",
"Unpin": "ענן חוף",
"Switch to Light Theme": "לעבור לנושא האור",
"Switch to Dark Theme": "לעבור לנושא אפל",
"Show Tags": "Show Tags",
"Hide Tags": "הסתר תגיות",
"Description": "תיאור",
"No monitors available.": "אין צגים זמינים.",
"Add one": "הוסף אחד",
"No Monitors": "אין צגים",
"Untitled Group": "קבוצה ללא כותרת",
"Services": "שירותים",
"Discard": "להשליך",
"Cancel": "לְבַטֵל",
"Powered by": "פועל על",
"shrinkDatabaseDescription": "ואקום מסד נתונים להפעיל עבור SQLITE.אם בסיס הנתונים שלך נוצר לאחר 1.10.0, Auto_VACUUM כבר מופעל ואין צורך בפעולה זו.",
"serwersms": "SerwerSMS.pl",
"serwersmsAPIUser": "API Username (incl. webapi_ prefix)",
"serwersmsAPIPassword": "סיסמת API",
"serwersmsPhoneNumber": "מספר טלפון",
"serwersmsSenderName": "שם שולח SMS (רשום באמצעות פורטל לקוחות)",
"smseagle": "SMSEagle",
"smseagleTo": "מספרי טלפון)",
"smseagleGroup": "שם קבוצת ספר טלפונים",
"smseagleContact": "שם איש קשר בספר הטלפונים",
"smseagleRecipientType": "Rסוג הנמען",
"smseagleRecipient": "נמענים (ים) (יש להפריד בין מרובים לפסיק)",
"smseagleToken": "API Access Token",
"smseagleUrl": "כתובת האתר של מכשיר ה- SMSeagege שלך",
"smseagleEncoding": "שלח כ- Unicode",
"smseaglePriority": "עדיפות הודעה (0-9, ברירת מחדל = 0)",
"stackfield": "סטאקפילד",
"Customize": "התאמה אישית",
"Custom Footer": "כותרת תחתונה מותאמת אישית",
"Custom CSS": "CSS מותאם אישית",
"smtpDkimSettings": "הגדרות DKIM",
"smtpDkimDesc": "אנא עיין ב- NodeMailer DKIM {0} לשימוש.",
"documentation": "ווקיפדיית מדריכים",
"smtpDkimDomain": "שם דומיין",
"smtpDkimKeySelector": "בורר מפתח",
"smtpDkimPrivateKey": "טוראי של פרטיy",
"smtpDkimHashAlgo": "אלגוריתם hash (אופציונלי)",
"smtpDkimheaderFieldNames": "מפתחות כותרת לחתום (אופציונלי)",
"smtpDkimskipFields": "מפתחות כותרת לא לחתום (אופציונלי)",
"wayToGetPagerDutyKey": "אתה יכול להשיג זאת על ידי מעבר לשירות -> ספריית שירות -> (בחר שירות) -> אינטגרציות -> הוסף אינטגרציה.כאן תוכלו לחפש \"אירועים API v2 \".מידע נוסף {0}",
"Integration Key": "מפתח אינטגרציה",
"Integration URL": "URL אינטגרציה",
"Auto resolve or acknowledged": "פיתרון אוטומטי או הודה",
"do nothing": "לעשות כלום",
"auto acknowledged": "Auto הודה",
"auto resolve": "פתרון אוטומטי",
"gorush": "Gorush",
"alerta": "Alerta",
"alertaApiEndpoint": "נקודת קצה של API",
"alertaEnvironment": "סביבה",
"alertaApiKey": "מפתח API",
"alertaAlertState": "מצב התראה",
"alertaRecoverState": "לשחזר מדינה",
"deleteStatusPageMsg": "האם אתה בטוח רוצה למחוק את דף הסטטוס הזה?",
"Proxies": "Proxies",
"default": "בְּרִירַת מֶחדָל",
"enabled": "מופעל",
"setAsDefault": "נקבע כברירת מחדל",
"deleteProxyMsg": "האם אתה בטוח רוצה למחוק את הפרוקסי הזה לכל המסכים?",
"proxyDescription": "Proxies must be assigned to a monitor to function.",
"enableProxyDescription": "פרוקסי זה לא ישפיע על בקשות צג עד שהוא יופעל.אתה יכול לשלוט באופן זמני להשבית את ה- Proxy מכל המסכים לפי מצב ההפעלה.",
"setAsDefaultProxyDescription": "פרוקסי זה יופעל כברירת מחדל עבור צגים חדשים.אתה עדיין יכול להשבית את ה- Proxy בנפרד עבור כל צג.",
"Certificate Chain": "שרשרת אישורים",
"Valid": "תָקֵף",
"Invalid": "לא חוקי",
"AccessKeyId": "מזהה AccessKey",
"SecretAccessKey": "גישהלמפתחסוד",
"PhoneNumbers": "מספר טלפוןs",
"TemplateCode": "TemplateCode",
"SignName": "שם שם",
"Sms template must contain parameters: ": "תבנית SMS חייבת להכיל פרמטרים: ",
"Bark Endpoint": "Bark Endpoint",
"Bark Group": "Bark Group",
"Bark Sound": "Bark Sound",
"WebHookUrl": "WebHookUrl",
"SecretKey": "מפתח סודי",
"For safety, must use secret key": "לבטיחות, חייב להשתמש במפתח סודיy",
"Device Token": "אסימון מכשיר",
"Platform": "פּלַטפוֹרמָה",
"iOS": "iOS",
"Android": "דְמוּי אָדָם",
"Huawei": "huawei",
"High": "High",
"Retry": "נסה שוב",
"Topic": "נוֹשֵׂא",
"WeCom Bot Key": "WeCom Bot Key",
"Setup Proxy": "הגדרת פרוקסי",
"Proxy Protocol": "פרוטוקול פרוקסי",
"Proxy Server": "שרת פרוקסי",
"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.": "השבלול כבר נלקח.אנא בחר שבלול נוסף.",
"No Proxy": "אין פרוקסי",
"Authentication": "אבטחה",
"HTTP Basic Auth": "HTTP בסיסי Auth",
"New Status Page": "דף סטטוס חדש",
"Page Not Found": "הדף לא נמצא",
"Reverse Proxy": "פרוקסי הפוך",
"Backup": "גיבוי",
"About": "אודות",
"wayToGetCloudflaredURL": "(הורד את CloudFlared מ- {0})",
"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.האם אתה בטוח רוצה לעצור את זה?הקלד את הסיסמה הנוכחית שלך כדי לאשר אותה.",
"HTTP Headers": "כותרות HTTP",
"Trust Proxy": "אמון בפרוקסי",
"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": "פרוקסי",
"Date Created": "תאריך יצירה",
"HomeAssistant": "Home Assistant",
"onebotHttpAddress": "כתובת HTTP של OneBot ",
"onebotMessageType": "סוג ההודעה OneBot",
"onebotGroupMessage": "קְבוּצָה",
"onebotPrivateMessage": "פְּרָטִי",
"onebotUserOrGroupId": "מזהה קבוצה/משתמש ",
"onebotSafetyTips": "לבטיחות, חייב לקבוע אסימון גישה ",
"PushDeer Key": "PushDeer Key",
"Footer Text": "טקסט כותרת תחתונה ",
"Show Powered By": "הצג מופעל על ידי ",
"Domain Names": "שמות דומיין ",
"signedInDisp": "חתום כ- {0} ",
"signedInDispDisabled": "Auth מושבת.",
"RadiusSecret": "רדיוס סוד",
"RadiusSecretDescription": "סוד משותף בין לקוח לשרת",
"RadiusCalledStationId": "נקרא מזהה תחנה",
"RadiusCalledStationIdDescription": "מזהה של המכשיר הנקרא ",
"RadiusCallingStationId": "מזהה תחנת שיחה ",
"RadiusCallingStationIdDescription": "מזהה של מכשיר השיחה ",
"Certificate Expiry Notification": "הודעת תפוגה של אישור",
"API Username": "שם משתמש API",
"API Key": "מפתח API",
"Recipient Number": "מספר הנמען",
"From Name/Number": "משם/מספר",
"Leave blank to use a shared sender number.": "השאר ריק כדי להשתמש במספר שולח משותף.",
"Octopush API Version": "גרסת API של תמנון",
"Legacy Octopush-DM": "Legacy Octopush-DM",
"endpoint": "נקודת קצה",
"octopushAPIKey": "\"מפתח API \" מתוך תעודות API של HTTP בלוח הבקרה",
"octopushLogin": "\"כניסה \" מתעודות API של HTTP בלוח הבקרה",
"promosmsLogin": "שם כניסה של API",
"promosmsPassword": "סיסמת API",
"pushoversounds pushover": "Pushover (ברירת מחדל)",
"pushoversounds bike": "אופניים",
"pushoversounds bugle": "חֲצוֹצְרָה",
"pushoversounds cashregister": "קופה רושמת",
"pushoversounds classical": "קלַאסִי",
"pushoversounds cosmic": "קוֹסמִי",
"pushoversounds falling": "נופל",
"pushoversounds gamelan": "gamelan",
"pushoversounds incoming": "נִכנָס",
"pushoversounds intermission": "Intermission",
"pushoversounds magic": "קֶסֶם",
"pushoversounds mechanical": "מֵכָנִי",
"pushoversounds pianobar": "בר פסנתר",
"pushoversounds siren": "סִירֶנָה",
"pushoversounds spacealarm": "אזעקת חלל",
"pushoversounds tugboat": "סירת משיכה",
"pushoversounds alien": "אזעקת חייזרים (ארוכה)",
"pushoversounds climb": "לטפס (ארוך)",
"pushoversounds persistent": "מתמיד (ארוך)",
"pushoversounds echo": "הד Pushover (ארוך)",
"pushoversounds updown": "למעלה (ארוך)",
"pushoversounds vibrate": "לרטוט בלבד",
"pushoversounds none": "אף אחד (שקט)",
"pushyAPIKey": "מפתח API סודי",
"pushyToken": "אסימון מכשיר",
"Show update if available": "הצג עדכון אם זמין",
"Also check beta release": "בדוק גם את שחרור הבטא",
"Using a Reverse Proxy?": "באמצעות פרוקסי הפוך?",
"Check how to config it for WebSocket": "בדוק כיצד להגדיר אותו ל- WebSocket",
"Steam Game Server": "שרת משחק קיטור",
"Most likely causes:": "ככל הנראה גורם:",
"The resource is no longer available.": "המשאב כבר לא זמין.",
"There might be a typing error in the address.": "יתכן שיש שגיאת הקלדה בכתובת.",
"What you can try:": "מה שאתה יכול לנסות:",
"Retype the address.": "הקלד מחדש את הכתובת.",
"Go back to the previous page.": "חזור לדף הקודם.",
"Coming Soon": "בקרוב",
"wayToGetClickSendSMSToken": "אתה יכול לקבל שם משתמש API ומפתח API מ- {0}.",
"Connection String": "מחרוזת חיבור",
"Query": "שאילתא",
"settingsCertificateExpiry": "תפוגת תעודת TLS",
"certificationExpiryDescription": "HTTPS עוקב אחר התראה על התראה כאשר תעודת TLS פגה ב:",
"Setup Docker Host": "הגדרת מארח Docker",
"Connection Type": "סוג חיבור",
"Docker Daemon": "Docker Daemon",
"deleteDockerHostMsg": "האם אתה בטוח רוצה למחוק את המארח של Docker לכל המוניטורים?",
"socket": "Socket",
"tcp": "TCP / HTTP",
"Docker Container": "מיכל Docker",
"Container Name / ID": "שם מכולה / מזהה",
"Docker Host": "מארח דוקר",
"Docker Hosts": "מארחי Docker",
"ntfy Topic": "ntfy Topic",
"Domain": "תְחוּם",
"Workstation": "עמדת עבודה",
"disableCloudflaredNoAuthMsg": "אתה לא נמצא במצב AUTH, אין צורך בסיסמה.",
"trustProxyDescription": "סמוך על כותרות 'x-forwarded-*'.אם אתה רוצה להשיג את ה- IP של הלקוח הנכון וה- Uptime Kuma שלך מאחור כמו Nginx או Apache, עליך לאפשר זאת.",
"wayToGetLineNotifyToken": "אתה יכול לקבל אסימון גישה מ- {0}",
"Examples": "דוגמאות",
"Home Assistant URL": "כתובת URL עוזרת ביתית",
"Long-Lived Access Token": "אסימון גישה ארוכת שנים",
"Long-Lived Access Token can be created by clicking on your profile name (bottom left) and scrolling to the bottom then click Create Token. ": "ניתן ליצור אסימון גישה לאורך זמן על ידי לחיצה על שם הפרופיל שלך (שמאל למטה) וגלילה לתחתית ואז לחץ על צור אסימון. ",
"Notification Service": "Notification Service",
"default: notify all devices": "default: notify all devices",
"A list of Notification Services can be found in Home Assistant under \"Developer Tools > Services\" search for \"notification\" to find your device/phone name.": "רשימה של שירותי הודעה ניתן למצוא בעוזר הבית תחת \"כלי מפתחים> שירותים \" חפש \"הודעה \" כדי למצוא את שם המכשיר/טלפון שלך.",
"Automations can optionally be triggered in Home Assistant:": "אוטומציות יכולות להיות מופעלות באופן אופציונלי לעוזר הבית:",
"Trigger type:": "סוג ההדק:",
"Event type:": "סוג אירוע:",
"Event data:": "נתוני אירועים:",
"Then choose an action, for example switch the scene to where an RGB light is red.": "ואז בחר פעולה, למשל העבר את הסצינה למקום בו אור RGB הוא אדום.",
"Frontend Version": "גרסת Frontend",
"Frontend Version do not match backend version!": "גרסת Frontend לא תואמת את גרסת Backend!",
"Base URL": "Base URL",
"goAlertInfo": "SAETRERT הוא יישום קוד פתוח לתזמון שיחה, הסלמות והודעות אוטומטיות (כמו SMS או שיחות קוליות).לעסוק אוטומטית את האדם הנכון, בדרך הנכונה ובזמן הנכון!{0}",
"goAlertIntegrationKeyInfo": "קבל מפתח אינטגרציה של API גנרי לשירות בפורמט זה \"AAAAAAAA-BBB-CCCC-DDDD-EEEEEEEEEEE \" בדרך כלל הערך של פרמטר האסימון של URL שהועתק.",
"goAlert": "GoAlert",
"backupOutdatedWarning": "מיושם: מכיוון שהרבה תכונות שנוספו ותכונת הגיבוי הזו מעט לא מצומצמת, היא לא יכולה לייצר או לשחזר גיבוי שלם.",
"backupRecommend": "אנא גבה את עוצמת הקול או את תיקיית הנתונים (./data/) ישירות במקום.",
"Optional": "אופציונאלי",
"squadcast": "Squadcast",
"SendKey": "SendKey",
"SMSManager API Docs": "מסמכי API של SmsManager ",
"Gateway Type": "סוג שער",
"SMSManager": "SMSManager",
"You can divide numbers with": "אתה יכול לחלק מספרים עם",
"or": "אוֹ",
"recurringInterval": "הפסקה",
"Recurring": "מחזורי",
"strategyManual": "פעיל/לא פעיל באופן ידני",
"warningTimezone": "זה משתמש באזור הזמן של השרת",
"weekdayShortMon": "שני",
"weekdayShortTue": "שלישי",
"weekdayShortWed": "רביעי",
"weekdayShortThu": "חמישי",
"weekdayShortFri": "שישי",
"weekdayShortSat": "שבת",
"weekdayShortSun": "ראשון",
"dayOfWeek": "יום בשבוע",
"dayOfMonth": "יום בחודש",
"lastDay": "Last Day",
"lastDay1": "היום האחרון של החודש",
"lastDay2": "יום שני האחרון של החודש",
"lastDay3": "יום 3 האחרון של החודש",
"lastDay4": "היום הרביעי האחרון בחודש",
"No Maintenance": "אין תחזוקה",
"pauseMaintenanceMsg": "האם אתה בטוח רוצה להשהות?",
"maintenanceStatus-under-maintenance": "מתבצעות עבודות תחזוקה",
"maintenanceStatus-inactive": "לא פעיל",
"maintenanceStatus-scheduled": "מתוזמן",
"maintenanceStatus-ended": "הסתיים",
"maintenanceStatus-unknown": "לא ידוע",
"Display Timezone": "הצג אזור זמן",
"Server Timezone": "אזור זמן של שרת",
"statusPageMaintenanceEndDate": "סוך",
"IconUrl": "קישור לתמונת אייקון",
"Enable DNS Cache": "הפעל מטמון DNS",
"Enable": "הפעל",
"Disable": "השבת",
"dnsCacheDescription": "ייתכן שהוא לא עובד בסביבות IPv6 מסוימות, השבת אותו אם אתה נתקל בבעיות כלשהן.",
"Single Maintenance Window": "חלון תחזוקה בודד",
"Maintenance Time Window of a Day": "חלון זמן תחזוקה ביום",
"Effective Date Range": "טווח תאריכים אפקטיבי",
"Schedule Maintenance": "לוח זמנים לתחזוקה",
"Date and Time": "תאריך ושעה",
"DateTime Range": "טווח תאריכים וזמן",
"Strategy": "אסטרטגיה",
"Free Mobile User Identifier": "מזהה משתמש נייד בחינם",
"Free Mobile API Key": "מפתח API חינם לנייד",
"Enable TLS": "אפשר TLS",
"Proto Service Name": "שם שירות פרוטו",
"Proto Method": "שיטת פרוטו",
"Proto Content": "תוכן פרוטו",
"Economy": "חיסכון",
"Lowcost": "זול",
"high": "גבוהה",
"General Monitor Type": "מוניטור כללי",
"Passive Monitor Type": "מוניטור פסיבי",
"Specific Monitor Type": "סוג מוניטור ספציפי"
}

@ -0,0 +1,581 @@
{
"languageName": "Hrvatski",
"checkEverySecond": "Provjera svake {0} sekunde",
"retryCheckEverySecond": "Ponovni pokušaj svake {0} sekunde",
"retriesDescription": "Broj ponovnih pokušaja prije nego će se servis označiti kao nedostupan te poslati obavijest",
"ignoreTLSError": "Ignoriraj TLS/SSL pogreške za HTTPS web stranice",
"upsideDownModeDescription": "Preokreni logiku statusa. Ako se primi pozitivan odgovor, smatra se da je usluga nedostupna.",
"maxRedirectDescription": "Maksimalan broj preusmjeravanja. Postaviti na 0 kako bi se preusmjeravanja onemogućila.",
"acceptedStatusCodesDescription": "Odaberite statusne kodove koji se smatraju uspješnim odgovorom.",
"passwordNotMatchMsg": "Lozinke se ne poklapaju.",
"notificationDescription": "Obavijesti će funkcionirati samo ako su dodijeljene monitoru.",
"keywordDescription": "Ključna riječ za pretragu, u obliku običnog HTML-a ili u JSON formatu. Pretraga je osjetljiva na velika i mala slova.",
"deleteMonitorMsg": "Jeste li sigurni da želite izbrisati monitor?",
"deleteNotificationMsg": "Jeste li sigurni da želite izbrisati ovu obavijest za sve monitore?",
"resolverserverDescription": "Cloudflare je zadani DNS poslužitelj. Možete to promijeniti u bilo kojem trenutku.",
"rrtypeDescription": "Odaberite vrstu DNS zapisa o resursu kojeg želite pratiti",
"pauseMonitorMsg": "Jeste li sigurni da želite pauzirati?",
"enableDefaultNotificationDescription": "Ova će obavijesti biti omogućena za sve nove monitore. Možete ju ručno onemogućiti za pojedini monitor.",
"clearEventsMsg": "Jeste li sigurni da želite izbrisati sve zapise o događajima za ovaj monitor?",
"clearHeartbeatsMsg": "Jeste li sigurni da želite izbrisati sve zapise o provjerama za ovaj monitor?",
"confirmClearStatisticsMsg": "Jeste li sigurni da želite izbrisati SVE statistike?",
"importHandleDescription": "Odaberite opciju \"Preskoči postojeće\" ako želite preskočiti uvoz postojećih monitora i obavijesti ako dođe do poklapanja u imenu. Opcija \"Prepiši\" će izbrisati postojeće monitore i obavijesti.",
"confirmImportMsg": "Jeste li sigurni da želite pokrenuti uvoz? Provjerite jeste li odabrali ispravnu opciju uvoza.",
"twoFAVerifyLabel": "Unesite svoj 2FA token:",
"tokenValidSettingsMsg": "Token je važeći! Sada možete spremiti postavke dvofaktorske autentikacije.",
"confirmEnableTwoFAMsg": "Želite li omogućiti dvofaktorsku autentikaciju?",
"confirmDisableTwoFAMsg": "Jeste li sigurni da želite onemogućiti dvofaktorsku autentikaciju?",
"Settings": "Postavke",
"Dashboard": "Kontrolna ploča",
"New Update": "Novo ažuriranje",
"Language": "Jezik",
"Appearance": "Izgled",
"Theme": "Tema",
"General": "Općenito",
"Primary Base URL": "Osnovni URL",
"Version": "Inačica",
"Check Update On GitHub": "Provjeri dostupnost nove inačice na GitHubu",
"List": "Popis",
"Add": "Dodaj",
"Add New Monitor": "Dodaj novi Monitor",
"Quick Stats": "Statistika",
"Up": "Dostupno",
"Down": "Nedostupno",
"Pending": "U tijeku",
"Unknown": "Nepoznato",
"pauseDashboardHome": "Pauzirano",
"Name": "Naziv",
"Status": "Status",
"DateTime": "Vremenska oznaka",
"Message": "Izvještaj",
"No important events": "Nema važnih događaja",
"Pause": "Pauziraj",
"Resume": "Nastavi",
"Edit": "Uredi",
"Delete": "Obriši",
"Current": "Trenutno",
"Uptime": "Dostupnost",
"Cert Exp.": "Istek cert.",
"day": "dan | dana",
"-day": "-dnevno",
"hour": "sat",
"-hour": "-satno",
"Response": "Odgovor",
"Ping": "Odziv",
"Monitor Type": "Vrsta Monitora",
"Keyword": "Ključna riječ",
"Friendly Name": "Prilagođen naziv",
"URL": "URL",
"Hostname": "Domaćin",
"Port": "Port",
"Heartbeat Interval": "Interval provjere",
"Retries": "Broj ponovnih pokušaja",
"Heartbeat Retry Interval": "Interval ponovnih pokušaja",
"Advanced": "Napredne postavke",
"Upside Down Mode": "Obrnuti način",
"Max. Redirects": "Maksimalan broj preusmjeravanja",
"Accepted Status Codes": "Prihvaćeni statusni kodovi",
"Push URL": "Push URL",
"needPushEvery": "Potrebno je slati zahtjeve na URL svakih {0} sekundi.",
"pushOptionalParams": "Neobavezni parametri: {0}",
"Save": "Spremi",
"Notifications": "Obavijesti",
"Not available, please setup.": "Nije dostupno, potrebno je dodati novu stavku.",
"Setup Notification": "Dodaj obavijest",
"Light": "Svijetli način",
"Dark": "Tamni način",
"Auto": "Automatski",
"Theme - Heartbeat Bar": "Tema za traku dostupnosti",
"Normal": "Normalno",
"Bottom": "Ispod",
"None": "Isključeno",
"Timezone": "Vremenska zona",
"Search Engine Visibility": "Vidljivost tražilicama",
"Allow indexing": "Dopusti indeksiranje",
"Discourage search engines from indexing site": "Sprječavanje indeksiranja",
"Change Password": "Promjena lozinke",
"Current Password": "Trenutna lozinka",
"New Password": "Nova lozinka",
"Repeat New Password": "Potvrdite novu lozinku",
"Update Password": "Spremi novu lozinku",
"Disable Auth": "Onemogući autentikaciju",
"Enable Auth": "Omogući autentikaciju",
"disableauth.message1": "Jeste li sigurni da želite <strong>isključiti autentikaciju</strong>?",
"disableauth.message2": "To je za <strong>korisnike koji imaju vanjsku autentikaciju stranice</strong> ispred Uptime Kume, poput usluge Cloudflare Access.",
"Please use this option carefully!": "Pažljivo koristite ovu opciju.",
"Logout": "Odjava",
"Leave": "Poništi",
"I understand, please disable": "Razumijem, svejedno onemogući",
"Confirm": "Potvrda",
"Yes": "Da",
"No": "Ne",
"Username": "Korisničko ime",
"Password": "Lozinka",
"Remember me": "Zapamti me",
"Login": "Prijava",
"No Monitors, please": "Nema monitora, ",
"add one": "dodaj jedan",
"Notification Type": "Tip obavijesti",
"Email": "E-pošta",
"Test": "Testiraj",
"Certificate Info": "Informacije o certifikatu",
"Resolver Server": "DNS poslužitelj",
"Resource Record Type": "Vrsta DNS zapisa",
"Last Result": "Posljednji rezultat",
"Create your admin account": "Stvori administratorski račun",
"Repeat Password": "Potvrda lozinke",
"Import Backup": "Uvoz sigurnosne kopije",
"Export Backup": "Izvoz sigurnosne kopije",
"Export": "Izvoz",
"Import": "Uvoz",
"respTime": "Vrijeme odgovora (ms)",
"notAvailableShort": "ne postoji",
"Default enabled": "Omogući za nove monitore",
"Apply on all existing monitors": "Primijeni na postojeće monitore",
"Create": "Kreiraj",
"Clear Data": "Obriši podatke",
"Events": "Događaji",
"Heartbeats": "Provjere",
"Auto Get": "Automatski dohvat",
"backupDescription": "Moguće je napraviti sigurnosnu kopiju svih monitora i obavijesti koja će biti spremljena kao JSON datoteka.",
"backupDescription2": "Napomena: povijest i podaci o događajima nisu uključeni u sigurnosnu kopiju.",
"backupDescription3": "Osjetljivi podaci poput tokena za obavijesti uključeni su u sigurnosnu kopiju. Zato je potrebno čuvati izvoz na sigurnom mjestu.",
"alertNoFile": "Datoteka za uvoz nije odabrana.",
"alertWrongFileType": "Datoteka za uvoz nije u JSON formatu.",
"Clear all statistics": "Obriši sve statistike",
"Skip existing": "Preskoči postojeće",
"Overwrite": "Prepiši",
"Options": "Opcije",
"Keep both": "Zadrži sve",
"Verify Token": "Provjeri Token",
"Setup 2FA": "Postavi dvofaktorsku autentikaciju",
"Enable 2FA": "Omogući dvofaktorsku autentikaciju",
"Disable 2FA": "Onemogući dvofaktorsku autentikaciju",
"2FA Settings": "Postavke 2FA",
"Two Factor Authentication": "Dvofaktorska autentikacija",
"Active": "Aktivna",
"Inactive": "Neaktivno",
"Token": "Token",
"Show URI": "Pokaži URI",
"Tags": "Oznake",
"Add New below or Select...": "Dodajte novu oznaku ispod ili odaberite...",
"Tag with this name already exist.": "Oznaka s tim nazivom već postoji",
"Tag with this value already exist.": "Oznaka s tom vrijednošću već postoji.",
"color": "Boja",
"value (optional)": "Vrijednost (neobavezno)",
"Gray": "Siva",
"Red": "Crvena",
"Orange": "Narančasta",
"Green": "Zelena",
"Blue": "Plava",
"Indigo": "Indigo",
"Purple": "Ljubičasta",
"Pink": "Ružičasta",
"Search...": "Pretraga...",
"Avg. Ping": "Prosječni odziv",
"Avg. Response": "Prosječni odgovor",
"Entry Page": "Početna stranica",
"statusPageNothing": "Ovdje nema ničega, dodajte grupu ili monitor.",
"No Services": "Nema usluga",
"All Systems Operational": "Svi sustavi su operativni",
"Partially Degraded Service": "Usluga djelomično nedostupna",
"Degraded Service": "Usluga nedostupna",
"Add Group": "Dodaj grupu",
"Add a monitor": "Dodaj monitor",
"Edit Status Page": "Uredi Statusnu stranicu",
"Go to Dashboard": "Na Kontrolnu ploču",
"Status Page": "Statusna stranica",
"Status Pages": "Statusne stranice",
"defaultNotificationName": "Moja {number}. {notification} obavijest",
"here": "ovdje",
"Required": "Potrebno",
"telegram": "Telegram",
"Bot Token": "Token bota",
"wayToGetTelegramToken": "Token možete nabaviti preko {0}.",
"Chat ID": "ID razgovora",
"supportTelegramChatID": "Podržani su ID-jevi izravnih razgovora, grupa i kanala",
"wayToGetTelegramChatID": "ID razgovora možete saznati tako da botu pošaljete poruku te odete na ovaj URL:",
"YOUR BOT TOKEN HERE": "OVDJE IDE TOKEN BOTA",
"chatIDNotFound": "ID razgovora nije pronađen; prvo morate poslati poruku botu",
"webhook": "Webhook",
"Post URL": "URL Post zahtjeva",
"Content Type": "Tip sadržaja (Content Type)",
"webhookJsonDesc": "{0} je dobra opcija za moderne HTTP poslužitelje poput Express.js-a",
"webhookFormDataDesc": "{multipart} je moguća alternativa za PHP, samo je potrebno parsirati JSON koristeći {decodeFunction}",
"smtp": "E-mail (SMTP)",
"secureOptionNone": "Bez sigurnosti / STARTTLS (25, 587)",
"secureOptionTLS": "TLS (465)",
"Ignore TLS Error": "Ignoriraj greške TLS-a",
"From Email": "Adresa za \"From\" polje",
"emailCustomSubject": "Prilagođeno \"Subject\" polje",
"To Email": "Odredišne adrese e-pošte",
"smtpCC": "Cc",
"smtpBCC": "Bcc",
"discord": "Discord",
"Discord Webhook URL": "URL Discord webhooka",
"wayToGetDiscordURL": "Ovo možete dobiti tako da odete na Postavke servera -> Integracije -> Napravi webhook",
"Bot Display Name": "Nadimak Bota unutar servera",
"Prefix Custom Message": "Prefiks prilagođene poruke",
"Hello @everyone is...": "Pozdrav {'@'}everyone...",
"teams": "Microsoft Teams",
"Webhook URL": "URL webhooka",
"wayToGetTeamsURL": "Više informacija o Teams webhookovima možete pročitati {0}.",
"signal": "Signal",
"Number": "Broj",
"Recipients": "Primatelji",
"needSignalAPI": "Potreban je klijent s REST sučeljem.",
"wayToCheckSignalURL": "Više informacija o postavljanju Signal klijenta:",
"signalImportant": "VAŽNO: Grupe i brojevi se ne mogu istovremeno koristiti kao primatelji!",
"gotify": "Gotify",
"Application Token": "Token Aplikacije",
"Server URL": "URL poslužitelja",
"Priority": "Prioritet",
"slack": "Slack",
"Icon Emoji": "Emotikon",
"Channel Name": "Naziv kanala",
"Uptime Kuma URL": "Uptime Kuma URL",
"aboutWebhooks": "Dodatne informacije o webhookovima su dostupne na: {0}",
"aboutChannelName": "Unesite ime {0} kanala u polju Naziv kanala ako želite zaobići webhook kanal. Primjerice: #neki-kanal",
"aboutKumaURL": "Ako je polje \"Uptime Kuma URL\" prazno, koristi se zadana vrijednost koja vodi na GitHub stranicu projekta.",
"emojiCheatSheet": "Popis emotikona: {0}",
"rocket.chat": "Rocket.Chat",
"pushover": "Pushover",
"pushy": "Pushy",
"octopush": "Octopush",
"promosms": "PromoSMS",
"clicksendsms": "ClickSend SMS",
"lunasea": "LunaSea",
"apprise": "Apprise (Podržava preko 50 usluga za obavijesti)",
"pushbullet": "Pushbullet",
"line": "LINE",
"mattermost": "Mattermost",
"User Key": "Korisnički ključ",
"Device": "Uređaji",
"Message Title": "Naslov poruke",
"Notification Sound": "Zvuk obavijesti",
"More info on:": "Više informacija na: {0}",
"pushoverDesc1": "Hitni prioritet (2) ima zadani istek vremena od 30 sekundi između ponovnih pokušaja te će isteći nakon 1 sata.",
"pushoverDesc2": "Ako želite slati obavijesti na više uređaja, ispunite polje \"Uređaji\".",
"SMS Type": "Tip SMS-a",
"octopushTypePremium": "Premium (Brzo - preporučeno za obavijesti)",
"octopushTypeLowCost": "Low Cost (Sporo - mobilni operateri ponekad blokiraju ove poruke)",
"checkPrice": "Provjerite {0} cijene:",
"apiCredentials": "Vjerodajnice za API",
"octopushLegacyHint": "Koristite li staru inačicu usluge Octopush (2011-2020) ili noviju inačicu?",
"Check octopush prices": "Provjerite cijene usluge Octopush {0}.",
"octopushPhoneNumber": "Telefonski broj (međunarodni format, primjerice: +38512345678) ",
"octopushSMSSender": "Naziv SMS pošiljatelja : 3-11 alfanumeričkih znakova i razmak (a-zA-Z0-9)",
"LunaSea Device ID": "LunaSea ID Uređaja",
"Apprise URL": "URL usluge Apprise",
"Example:": "Primjerice: {0}",
"Read more:": "Pročitajte više: {0}",
"Status:": "Status: {0}",
"Read more": "Pročitaj više",
"appriseInstalled": "Apprise je instaliran.",
"appriseNotInstalled": "Apprise nije instaliran. {0}",
"Access Token": "Pristupni token",
"Channel access token": "Token za pristup kanalu",
"Line Developers Console": "LINE razvojnoj konzoli",
"lineDevConsoleTo": "LINE razvojna konzola - {0}",
"Basic Settings": "Osnovne Postavke",
"User ID": "Korisnički ID",
"Messaging API": "API za razmjenu poruka",
"wayToGetLineChannelToken": "Prvo, pristupite {0}, kreirajte pružatelja usluga te kanal (API za razmjenu poruka), zatim možete dobiti token za pristup kanalu te korisnički ID za polja iznad.",
"Icon URL": "URL slike",
"aboutIconURL": "Možete postaviti poveznicu na sliku u polju \"URL slike\" kako biste spriječili korištenje zadane slike. Ovo se polje neće koristiti ako je postavljeno polje \"Emotikon\".",
"aboutMattermostChannelName": "Možete promijeniti kanal u kojeg webhook šalje tako da ispunite polje \"Naziv kanala\". Ta opcija mora biti omogućena unutar Mattermost postavki za webhook. Primjerice: #neki-kanal",
"matrix": "Matrix",
"promosmsTypeEco": "SMS ECO - jeftina, ali spora opcija koja je često preopterećena. Ograničeno samo na primatelje unutar Poljske.",
"promosmsTypeFlash": "SMS FLASH - Poruka se automatski pojavljuje na uređaju primatelja. Ograničeno samo na primatelje unutar Poljske.",
"promosmsTypeFull": "SMS FULL - Premium razina usluge, dozvoljava postavljanje naziva SMS pošiljatelja (Naziv mora biti registriran). Usluga pouzdana za obavijesti.",
"promosmsTypeSpeed": "SMS SPEED - Usluga najvećeg prioriteta. Brza i pouzdana, ali skupa (otprilike dvostruko skuplja od cijene usluge SMS FULL).",
"promosmsPhoneNumber": "Telefonski broj (za primatelje unutar Poljske nije potrebno navoditi pozivni broj države)",
"promosmsSMSSender": "Naziv SMS pošiljatelja: Registriran naziv ili jedan od zadanih: InfoSMS, SMS Info, MaxSMS, INFO, SMS",
"Feishu WebHookUrl": "Feishu URL webhooka",
"matrixHomeserverURL": "URL Matrix homeservera (uključujući http(s):// te port, ako je potrebno)",
"Internal Room Id": "Interni ID sobe",
"matrixDesc1": "Interni ID sobe se može pronaći u naprednim postavkama sobe unutar Matrix klijenta. ID sobe nalikuje idućem zapisu: !QMdRCpUIfLwsfjxye6:home.server.",
"matrixDesc2": "Preporučuje se stvaranje novog korisnika te suzdržavanje od korištenja pristupnog tokena vlastitog Matrix korisnika. Novog korisnika potrebno je dodati u sobe u kojima želite primati obavijesti. Pristupni token možete dobiti pokretanjem naredbe {0}",
"Method": "Metoda",
"Body": "Tijelo",
"Headers": "Zaglavlja",
"PushUrl": "Push URL",
"HeadersInvalidFormat": "Zaglavlja nisu nije valjani JSON: ",
"BodyInvalidFormat": "Tijelo zahtjeva nije valjani JSON: ",
"Monitor History": "Povijest monitora",
"clearDataOlderThan": "Podaci o povijesti monitora čuvaju se {0} dana.",
"PasswordsDoNotMatch": "Lozinke se ne poklapaju.",
"records": "zapisa",
"One record": "Jedan zapis",
"Showing {from} to {to} of {count} records": "Prikaz zapisa {from}-{to} od sveukupno {count}",
"steamApiKeyDescription": "Za praćenje Steam poslužitelja za igru, potrebno je imati Steam Web-API ključ. Možete registrirati vlastiti ključ ovdje: ",
"Current User": "Trenutni korisnik",
"recent": "Nedavno",
"Done": "Gotovo",
"Info": "Informacije",
"Security": "Sigurnost",
"Shrink Database": "Smanji bazu podataka",
"Pick a RR-Type...": "Odaberite vrstu DNS zapisa od navedenih...",
"Pick Accepted Status Codes...": "Odaberite HTTP statusne kodove koji će biti prihvaćeni...",
"Steam API Key": "Steam API ključ",
"Default": "Zadano",
"HTTP Options": "HTTP Postavke",
"Create Incident": "Novi izvještaj o incidentu",
"Title": "Naslov",
"Content": "Sadržaj",
"Style": "Stil",
"info": "informacija",
"warning": "upozorenje",
"danger": "opasnost",
"primary": "primarno",
"light": "svijetlo",
"dark": "tamno",
"Post": "Objavi",
"Created": "Stvoreno",
"Last Updated": "Uređeno",
"Please input title and content": "Naslov i sadržaj ne mogu biti prazni",
"Unpin": "Ukloni",
"Switch to Light Theme": "Prebaci na svijetli način",
"Switch to Dark Theme": "Prebaci na tamni način",
"Show Tags": "Pokaži oznake",
"Hide Tags": "Sakrij oznake",
"Description": "Opis",
"No monitors available.": "Nema dostupnih monitora.",
"Add one": "Stvori jednog",
"No Monitors": "Bez monitora",
"Untitled Group": "Bezimena grupa",
"Services": "Usluge",
"Discard": "Odbaci",
"Cancel": "Otkaži",
"Powered by": "Pokreće",
"Saved": "Spremljeno",
"PushByTechulus": "Push by Techulus",
"GoogleChat": "Google Chat (preko platforme Google Workspace)",
"shrinkDatabaseDescription": "Pokreni VACUUM operaciju za SQLite. Ako je baza podataka kreirana nakon inačice 1.10.0, AUTO_VACUUM opcija već je uključena te ova akcija nije nužna.",
"serwersms": "SerwerSMS.pl",
"serwersmsAPIUser": "API korisničko ime (uključujući webapi_ prefiks)",
"serwersmsAPIPassword": "API lozinka",
"serwersmsPhoneNumber": "Broj telefona",
"serwersmsSenderName": "Ime SMS pošiljatelja (registrirano preko korisničkog portala)",
"stackfield": "Stackfield",
"smtpDkimSettings": "DKIM postavke",
"smtpDkimDesc": "Za više informacija, postoji Nodemailer DKIM {0}.",
"documentation": "dokumentacija",
"smtpDkimDomain": "Domena",
"smtpDkimKeySelector": "Odabir ključa",
"smtpDkimPrivateKey": "Privatni ključ",
"smtpDkimHashAlgo": "Hash algoritam (neobavezno)",
"smtpDkimheaderFieldNames": "Ključevi zaglavlja za potpis (neobavezno)",
"smtpDkimskipFields": "Ključevi zaglavlja koji se neće potpisati (neobavezno)",
"gorush": "Gorush",
"alerta": "Alerta",
"alertaApiEndpoint": "Krajnja točka API-ja (Endpoint)",
"alertaEnvironment": "Okruženje (Environment)",
"alertaApiKey": "API ključ",
"alertaAlertState": "Stanje upozorenja",
"alertaRecoverState": "Stanje oporavka",
"deleteStatusPageMsg": "Sigurno želite obrisati ovu statusnu stranicu?",
"resendEveryXTimes": "Ponovno pošalji svakih {0} puta",
"resendDisabled": "Ponovno slanje je onemogućeno",
"dnsPortDescription": "Port DNS poslužitelja. Zadana vrijednost je 53. Moguće je promijeniti ga u svakom trenutku.",
"Resend Notification if Down X times consequently": "Ponovno pošalji obavijest ako je usluga nedostupna više puta zaredom",
"topic": "Tema",
"topicExplanation": "MQTT tema koja će se monitorirati",
"successMessage": "Poruka o uspjehu",
"successMessageExplanation": "MQTT poruka koja se smatra uspješnom",
"error": "greška",
"critical": "kritično",
"Customize": "Customize",
"Custom Footer": "Prilagođeno podnožje",
"Custom CSS": "Prilagođeni CSS",
"wayToGetPagerDutyKey": "Ključ možete dobiti odlaskom na \"Service -> Service Directory -> (Odabrani servis) -> Integrations -> Add integration\". Ovdje pretražite za \"Events API V2\". Više informacija {0}",
"Integration Key": "Ključ integracije",
"Integration URL": "URL integracije",
"Auto resolve or acknowledged": "Automatsko razrješavanje i priznavanje",
"do nothing": "Ne radi ništa",
"auto acknowledged": "Automatsko priznavanje",
"auto resolve": "Automatsko razrješavanje",
"Proxies": "Proxy poslužitelji",
"default": "Zadano",
"enabled": "Omogućeno",
"setAsDefault": "Postavi kao zadano",
"deleteProxyMsg": "Sigurno želite obrisati ovaj proxy za sve monitore?",
"proxyDescription": "Proxy poslužitelji moraju biti dodijeljni monitoru kako bi funkcionirali.",
"enableProxyDescription": "Onemogućeni proxy poslužitelj neće imati učinak na zahtjeve monitora. Možete privremeno onemogućiti proxy poslužitelja za sve monitore.",
"setAsDefaultProxyDescription": "Ovaj proxy poslužitelj bit će odmah omogućen za nove monitore. I dalje ga možete onemogućiti za svaki monitor zasebno.",
"Certificate Chain": "Lanac certifikata",
"Valid": "Važeći",
"Invalid": "Nevažeći",
"AccessKeyId": "AccessKey ID",
"SecretAccessKey": "AccessKey tajni ključ",
"PhoneNumbers": "Telefonski brojevi",
"TemplateCode": "Predložak koda",
"SignName": "Potpis",
"Sms template must contain parameters: ": "SMS predložak mora sadržavati parametre: ",
"Bark Endpoint": "Bark krajnja točka (endpoint)",
"Bark Group": "Bark grupa",
"Bark Sound": "Bark zvuk",
"WebHookUrl": "WebHookUrl",
"SecretKey": "Tajni ključ",
"For safety, must use secret key": "Korištenje tajnog ključa je obavezno",
"Device Token": "Token uređaja",
"Platform": "Platforma",
"iOS": "iOS",
"Android": "Android",
"Huawei": "Huawei",
"High": "Visoko",
"Retry": "Ponovnih pokušaja",
"Topic": "Tema",
"WeCom Bot Key": "WeCom ključ Bota",
"Setup Proxy": "Dodaj proxy poslužitelj",
"Proxy Protocol": "Protokol",
"Proxy Server": "Proxy poslužitelj",
"Proxy server has authentication": "Proxy poslužitelj ima autentikaciju",
"User": "Korisnik",
"Installed": "Instalirano",
"Not installed": "Nije instalirano",
"Running": "Pokrenuto",
"Not running": "Nije pokrenuto",
"Remove Token": "Ukloni Token",
"Start": "Pokreni",
"Stop": "Zaustavi",
"Uptime Kuma": "Uptime Kuma",
"Add New Status Page": "Dodaj novu statusnu stranicu",
"Slug": "Slug",
"Accept characters:": "Dozvoljeni znakovi:",
"startOrEndWithOnly": "Započinje ili završava znakovima {0}",
"No consecutive dashes": "Bez uzastopnih povlaka",
"Next": "Sljedeće",
"The slug is already taken. Please choose another slug.": "Slug je zauzet. Odaberite novi slug.",
"No Proxy": "Bez proxy poslužitelja",
"Authentication": "Autentikacija",
"HTTP Basic Auth": "HTTP Basic Auth",
"New Status Page": "Dodaj statusnu stranicu",
"Page Not Found": "Stranica nije pronađena",
"Reverse Proxy": "Reverzni proxy",
"Backup": "Sigurnosno kopiranje",
"About": "O Uptime Kumi",
"wayToGetCloudflaredURL": "(Preuzmite cloudflared s {0})",
"cloudflareWebsite": "Cloudflare web stranice",
"Message:": "Poruka:",
"Don't know how to get the token? Please read the guide:": "Ne znate kako doći do tokena? Pročitajte vodič:",
"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.": "Trenutna veza možda bude prekinuta jer se koristi Cloudflare tuneliranje. Sigurno želite zaustaviti? Unesite lozinku za potvrdu.",
"HTTP Headers": "HTTP zaglavlja",
"Trust Proxy": "Vjeruj proxy poslužitelju",
"Other Software": "Ostali programi",
"For example: nginx, Apache and Traefik.": "Primjerice: nginx, Apache ili Traefik.",
"Please read": "Molimo pročitajte",
"Subject:": "Predmet:",
"Valid To:": "Valjano do:",
"Days Remaining:": "Preostalo dana:",
"Issuer:": "Izdavatelj:",
"Fingerprint:": "Fingerprint:",
"No status pages": "Nema statusnih stranica",
"Domain Name Expiry Notification": "Obavijest za istek domena",
"Proxy": "Proxy",
"Date Created": "Datum stvaranja",
"HomeAssistant": "Home Assistant",
"onebotHttpAddress": "OneBot HTTP adresa",
"onebotMessageType": "OneBot tip poruke",
"onebotGroupMessage": "Grupna",
"onebotPrivateMessage": "Privatna",
"onebotUserOrGroupId": "ID korisnika/grupe",
"onebotSafetyTips": "Pristupni token mora biti postavljen",
"PushDeer Key": "PushDeer ključ",
"Footer Text": "Tekst podnožja",
"Show Powered By": "Pokaži natpis 'Pokreće...'",
"Domain Names": "Domene",
"signedInDisp": "Prijavljeni ste kao {0}",
"signedInDispDisabled": "Autentikacija onemogućena.",
"RadiusSecret": "Radius Tajna",
"RadiusSecretDescription": "Dijeljena Tajna između klijenta i poslužitelja",
"RadiusCalledStationId": "Called Station ID",
"RadiusCalledStationIdDescription": "Identifikator pozivne stanice",
"RadiusCallingStationId": "Calling Station ID",
"RadiusCallingStationIdDescription": "Identifikator pozivajuće stanice",
"Certificate Expiry Notification": "Obavijest za istek certifikata",
"API Username": "API korisničko ime",
"API Key": "API ključ",
"Recipient Number": "Broj primatelja",
"From Name/Number": "Naziv/broj pošiljatelja",
"Leave blank to use a shared sender number.": "Ostaviti prazno za korištenje dijeljenog broja pošiljatelja.",
"Octopush API Version": "Octopush verzija API-ja",
"Legacy Octopush-DM": "Legacy Octopush-DM",
"endpoint": "krajnja točka (endpoint)",
"octopushAPIKey": "\"API ključ\" iz HTTP API postavki",
"octopushLogin": "\"Korisničko ime\" iz HTTP API postavki",
"promosmsLogin": "API korisničko ime",
"promosmsPassword": "API lozinka",
"pushoversounds pushover": "Pushover (default)",
"pushoversounds bike": "Bike",
"pushoversounds bugle": "Bugle",
"pushoversounds cashregister": "Cash Register",
"pushoversounds classical": "Classical",
"pushoversounds cosmic": "Cosmic",
"pushoversounds falling": "Falling",
"pushoversounds gamelan": "Gamelan",
"pushoversounds incoming": "Incoming",
"pushoversounds intermission": "Intermission",
"pushoversounds magic": "Magic",
"pushoversounds mechanical": "Mechanical",
"pushoversounds pianobar": "Piano Bar",
"pushoversounds siren": "Siren",
"pushoversounds spacealarm": "Space Alarm",
"pushoversounds tugboat": "Tug Boat",
"pushoversounds alien": "Alien Alarm (long)",
"pushoversounds climb": "Climb (long)",
"pushoversounds persistent": "Persistent (long)",
"pushoversounds echo": "Pushover Echo (long)",
"pushoversounds updown": "Up Down (long)",
"pushoversounds vibrate": "Vibrate Only",
"pushoversounds none": "None (silent)",
"pushyAPIKey": "Tajni API ključ",
"pushyToken": "Token uređaja",
"Show update if available": "Pokaži moguću nadogradnju",
"Also check beta release": "Provjeravaj i za beta izdanja",
"Using a Reverse Proxy?": "Koristi li se reverzni proxy?",
"Check how to config it for WebSocket": "Provjerite kako se konfigurira za WebSocket protokol",
"Steam Game Server": "Steam poslužitelj igre",
"Most likely causes:": "Najvjerojatniji uzroci:",
"The resource is no longer available.": "Resurs više nije dostupan.",
"There might be a typing error in the address.": "Možda je nastala greška pri upisu adrese.",
"What you can try:": "Što možete pokušati:",
"Retype the address.": "Ponovno napišite adresu.",
"Go back to the previous page.": "Vratite se na prethodnu stranicu.",
"Coming Soon": "Dolazi uskoro",
"wayToGetClickSendSMSToken": "Možete dobiti API korisničko ime i API ključ sa {0}.",
"Connection String": "Tekst veze",
"Query": "Upit",
"settingsCertificateExpiry": "TLS istek certifikata",
"certificationExpiryDescription": "HTTPS monitori će obavijesiti kada je istek TLS certifikata za:",
"Setup Docker Host": "Dodaj Docker domaćina",
"Connection Type": "Tip veze",
"Docker Daemon": "Docker daemon",
"deleteDockerHostMsg": "Sigurno želite izbrisati ovog Docker domaćina za sve monitore?",
"socket": "Docker socket",
"tcp": "TCP / HTTP",
"Docker Container": "Docker kontejner",
"Container Name / ID": "Naziv / ID kontejnera",
"Docker Host": "Docker domaćin",
"Docker Hosts": "Docker domaćini",
"ntfy Topic": "ntfy tema",
"Domain": "Domena",
"Workstation": "Radna stanica",
"disableCloudflaredNoAuthMsg": "Lozinka nije nužna dok je isključena autentikacija.",
"trustProxyDescription": "Vjeruj 'X-Forwarded-*' zaglavljima. Ako želite dobiti ispravnu IP adresu klijenta i Uptime Kuma je iza reverznog proxy poslužitelja, trebate omogućiti ovo.",
"wayToGetLineNotifyToken": "Možete dobiti pristupni token sa {0}",
"Examples": "Primjeri",
"Home Assistant URL": "URL Home Assistanta",
"Long-Lived Access Token": "Dugotrajni pristupni token",
"Long-Lived Access Token can be created by clicking on your profile name (bottom left) and scrolling to the bottom then click Create Token. ": "Dugotrajni pristupni token može se kreirati klikom na korisničko ime (dolje lijevo) u Home Assistantu, pomicanjem do dna, te klikom na 'Create Token'. ",
"Notification Service": "Notification Service",
"default: notify all devices": "zadano ponašanje: obavijesti sve uređaje",
"A list of Notification Services can be found in Home Assistant under \"Developer Tools > Services\" search for \"notification\" to find your device/phone name.": "Popis servisa za obavijesti u Home Assistantu nalaze se pod \"Developer Tools > Services\" te pretražiti \"notification\".",
"Automations can optionally be triggered in Home Assistant:": "Automacije se mogu okinuti u Home Assistantu:",
"Trigger type:": "Tip triggera:",
"Event type:": "Tip eventa:",
"Event data:": "Podaci eventa:",
"Then choose an action, for example switch the scene to where an RGB light is red.": "Potrebno je i odabrati akciju za izvođenje na Home Assistantu.",
"Frontend Version": "Inačica sučelja",
"Frontend Version do not match backend version!": "Inačica sučelja ne odgovara poslužitelju!"
}

@ -0,0 +1,414 @@
{
"languageName": "Magyar",
"checkEverySecond": "Ellenőrzés {0} másodpercenként",
"retryCheckEverySecond": "Újrapróbál {0} másodpercenként.",
"retriesDescription": "Maximális próbálkozás mielőtt a szolgáltatás 'Leállt' jelölést kap és értesítés kerül kiküldésre",
"ignoreTLSError": "TLS/SSL hibák figyelmen kívül hagyása HTTPS weboldalaknál",
"upsideDownModeDescription": "Az állapot megfordítása. Ha a szolgáltatás elérhető, akkor lesz leállt állapotú.",
"maxRedirectDescription": "Az átirányítások maximális száma. állítsa 0-ra az átirányítás tiltásához.",
"acceptedStatusCodesDescription": "Válassza ki az állapot kódokat amelyek sikeres válasznak fognak számítani.",
"passwordNotMatchMsg": "A megismételt jelszó nem egyezik.",
"notificationDescription": "Kérem, rendeljen egy értesítést a figyeléshez, hogy működjön.",
"keywordDescription": "Kulcsszó keresése a HTML-ben vagy a JSON válaszban. (kis-nagybetű érzékeny)",
"pauseDashboardHome": "Szünetel",
"deleteMonitorMsg": "Biztos, hogy törölni akarja ezt a figyelőt?",
"deleteNotificationMsg": "Biztos, hogy törölni akarja ezt az értesítést az összes figyelőnél?",
"resolverserverDescription": "A Cloudflare az alapértelmezett szerver, bármikor meg tudja változtatni a resolver server-t.",
"rrtypeDescription": "Válassza ki az RR-típust a figyelőhöz",
"pauseMonitorMsg": "Biztos, hogy szüneteltetni akarja?",
"enableDefaultNotificationDescription": "Minden új figyelőhöz ez az értesítés engedélyezett lesz alapértelmezetten. Kikapcsolhatja az értesítést külön minden figyelőnél.",
"clearEventsMsg": "Biztos, hogy törölni akar miden eseményt ennél a figyelnél?",
"clearHeartbeatsMsg": "Biztos, hogy törölni akar minden életjelet ennél a figyelőnél?",
"confirmClearStatisticsMsg": "Biztos, hogy törölni akar MINDEN statisztikát?",
"importHandleDescription": "Válassza a 'Meglévő kihagyását', ha ki szeretné hagyni az azonos nevő figyelőket vagy értesítésket. A 'Felülírás' törölni fog minden meglévő figyelőt és értesítést.",
"confirmImportMsg": "Biztos, hogy importálja a mentést? Győződjön meg róla, hogy jól választotta ki az importálás opciót.",
"twoFAVerifyLabel": "Kérem, adja meg a token-t, hogy a 2FA működését ellenőrizzük",
"tokenValidSettingsMsg": "A token érvényes! El tudja menteni a 2FA beállításait.",
"confirmEnableTwoFAMsg": "Biztosan engedélyezi a 2FA-t?",
"confirmDisableTwoFAMsg": "Biztosan letiltja a 2FA-t?",
"Settings": "Beállítások",
"Dashboard": "Irányítópult",
"New Update": "Új frissítés",
"Language": "Nyelv",
"Appearance": "Megjelenés",
"Theme": "Téma",
"General": "Általános",
"Version": "Verzió",
"Check Update On GitHub": "Frissítések keresése a GitHub-on",
"List": "Lista",
"Add": "Hozzáadás",
"Add New Monitor": "Új figyelő hozzáadása",
"Quick Stats": "Gyors statisztikák",
"Up": "Működik",
"Down": "Leállt",
"Pending": "Függőben",
"Unknown": "Ismeretlen",
"Pause": "Szünet",
"Name": "Név",
"Status": "Állapot",
"DateTime": "Időpont",
"Message": "Üzenet",
"No important events": "Nincs fontos esemény",
"Resume": "Folytatás",
"Edit": "Szerkesztés",
"Delete": "Törlés",
"Current": "Aktuális",
"Uptime": "Uptime",
"Cert Exp.": "SSL lejárat",
"day": "nap",
"-day": "-nap",
"hour": "óra",
"-hour": "- óra",
"Response": "Válasz",
"Ping": "Ping",
"Monitor Type": "Figyelő típusa",
"Keyword": "Kulcsszó",
"Friendly Name": "Rövid név",
"URL": "URL",
"Hostname": "Hosztnév",
"Port": "Port",
"Heartbeat Interval": "Életjel időköz",
"Retries": "Újrapróbálkozás",
"Heartbeat Retry Interval": "Életjel újrapróbálkozások időköze",
"Advanced": "Haladó",
"Upside Down Mode": "Fordított mód",
"Max. Redirects": "Max. átirányítás",
"Accepted Status Codes": "Elfogadott állapot kódok",
"Save": "Mentés",
"Notifications": "Értesítések",
"Not available, please setup.": "Nem elérhető, állítsa be.",
"Setup Notification": "Értesítés beállítása",
"Light": "Világos",
"Dark": "Sötét",
"Auto": "Auto",
"Theme - Heartbeat Bar": "Téma - Életjel sáv",
"Normal": "Normál",
"Bottom": "Nyomógomb",
"None": "Nincs",
"Timezone": "Időzóna",
"Search Engine Visibility": "Látható a keresőmotoroknak",
"Allow indexing": "Indexelés engedélyezése",
"Discourage search engines from indexing site": "Keresőmotorok elriasztása az oldal indexelésétől",
"Change Password": "Jelszó változtatása",
"Current Password": "Jelenlegi jelszó",
"New Password": "Új jelszó",
"Repeat New Password": "Ismételje meg az új jelszót",
"Update Password": "Jelszó módosítása",
"Disable Auth": "Hitelesítés tiltása",
"Enable Auth": "Hitelesítés engedélyezése",
"disableauth.message1": "Biztos benne, hogy <strong>kikapcsolja a hitelesítést</strong>?",
"disableauth.message2": "Akkor érdemes, ha <strong>van 3rd-party hitelesítés</strong> az Uptime Kuma-t megelőzően mint a Cloudflare Access.",
"Please use this option carefully!": "Használja megfontoltan!",
"Logout": "Kijelentkezés",
"Leave": "Elhagy",
"I understand, please disable": "Megértettem, kérem tiltsa le",
"Confirm": "Megerősítés",
"Yes": "Igen",
"No": "Nem",
"Username": "Felhasználónév",
"Password": "Jelszó",
"Remember me": "Emlékezzen rám",
"Login": "Bejelentkezés",
"No Monitors, please": "Nincs figyelő, kérem",
"add one": "adjon hozzá egyet",
"Notification Type": "Értesítés típusa",
"Email": "Email",
"Test": "Teszt",
"Certificate Info": "Tanúsítvány információk",
"Resolver Server": "DNS szerver",
"Resource Record Type": "Resource Record típusa",
"Last Result": "Utolsó eredmény",
"Create your admin account": "Hozza létre az adminisztrátor felhasználót",
"Repeat Password": "Jelszó ismétlése",
"Import Backup": "Mentés importálása",
"Export Backup": "Mentés exportálása",
"Export": "Exportálás",
"Import": "Importálás",
"respTime": "Válaszidő (ms)",
"notAvailableShort": "N/A",
"Default enabled": "Alapértelmezetten engedélyezett",
"Apply on all existing monitors": "Alkalmazza az összes figyelőre",
"Create": "Létrehozás",
"Clear Data": "Adatok törlése",
"Events": "Események",
"Heartbeats": "Életjelek",
"Auto Get": "Auto lekérd.",
"backupDescription": "Mentheti az összes figyelőt és értesítést egy JSON fájlba.",
"backupDescription2": "Megj: Történeti és esemény adatokat nem tartalmaz.",
"backupDescription3": "Érzékeny adatok, pl. szolgáltatás kulcsok is vannak az export fájlban. Figyeljen erre!",
"alertNoFile": "Válaszzon ki egy fájlt az importáláshoz.",
"alertWrongFileType": "Válasszon egy JSON fájlt.",
"Clear all statistics": "Összes statisztika törlése",
"Skip existing": "Meglévő kihagyása",
"Overwrite": "Felülírás",
"Options": "Opciók",
"Keep both": "Mindegyiket tartsa meg",
"Verify Token": "Token ellenőrzése",
"Setup 2FA": "2FA beállítása",
"Enable 2FA": "2FA engedélyezése",
"Disable 2FA": "2FA tiltása",
"2FA Settings": "2FA beállítások",
"Two Factor Authentication": "Kétfaktoros hitelesítés",
"Active": "Aktív",
"Inactive": "Inaktív",
"Token": "Token",
"Show URI": "URI megmutatása",
"Tags": "Címkék",
"Add New below or Select...": "Adjon hozzá lentre vagy válasszon...",
"Tag with this name already exist.": "Ilyen nevű címke már létezik.",
"Tag with this value already exist.": "Ilyen értékű címke már létezik.",
"color": "szín",
"value (optional)": "érték (opcionális)",
"Gray": "Szürke",
"Red": "Piros",
"Orange": "Narancs",
"Green": "Zöld",
"Blue": "Kék",
"Indigo": "Indigó",
"Purple": "Lila",
"Pink": "Rózsaszín",
"Search...": "Keres...",
"Avg. Ping": "Átl. ping",
"Avg. Response": "Átl. válasz",
"Entry Page": "Nyitólap",
"statusPageNothing": "Semmi nincs itt. Adjon hozzá egy vagy több figyelőt.",
"No Services": "Nincs szolgáltatás",
"All Systems Operational": "Minden rendszer működik",
"Partially Degraded Service": "Részlegesen leállt szolgáltatás",
"Degraded Service": "Leállt szolgáltatás",
"Add Group": "Csoport hozzáadása",
"Add a monitor": "Figyelő hozzáadása",
"Edit Status Page": "Státusz oldal szerkesztése",
"Go to Dashboard": "Irányítópulthoz",
"telegram": "Telegram",
"webhook": "Webhook",
"smtp": "Email (SMTP)",
"discord": "Discord",
"teams": "Microsoft Teams",
"signal": "Signal",
"gotify": "Gotify",
"slack": "Slack",
"rocket.chat": "Rocket.chat",
"pushover": "Pushover",
"pushy": "Pushy",
"octopush": "Octopush",
"promosms": "PromoSMS",
"lunasea": "LunaSea",
"apprise": "Apprise (50+ értesítési szolgáltatás)",
"pushbullet": "Pushbullet",
"line": "Line Messenger",
"mattermost": "A legfontosabb",
"Status Page": "Státusz oldal",
"Status Pages": "Státusz oldalak",
"Primary Base URL": "Elsődleges URL",
"Push URL": "Meghívandó URL",
"needPushEvery": "Ezt az URL-t kell meghívni minden {0} másodpercben.",
"pushOptionalParams": "Opcionális paraméterek: {0}",
"defaultNotificationName": "{notification} értesítésem ({number})",
"here": "itt",
"Required": "Kötelező",
"Bot Token": "BOT token",
"wayToGetTelegramToken": "Innen kaphat token-t: {0}.",
"Chat ID": "Csevegés ID",
"supportTelegramChatID": "Támogatja a közvetlen csevegést, csoportnak küldést és csatona ID-t is",
"wayToGetTelegramChatID": "A csevegés ID-t kinyerheti azzal, hogy küld egy üzenetet a bot-nak és erre az URL-re ellátogat, ahol láthatja a chat_id:-t",
"YOUR BOT TOKEN HERE": "AZ ÖN BOT TOKENJE ITT",
"chatIDNotFound": "Csevegés ID nem található, küldjön egy első üzenetet a bot-nak",
"Post URL": "Cél URL (Post)",
"Content Type": "Tartalom típus (Content Type)",
"webhookJsonDesc": "{0} ideális a moderh HTTP szerverekhez, mint az Express.js",
"webhookFormDataDesc": "{multipart} ideális a PHP-hez. A JSON értelmezhető ezzel: {decodeFunction}",
"secureOptionNone": "Nincs / STARTTLS (25, 587)",
"secureOptionTLS": "TLS (465)",
"Ignore TLS Error": "TLS hiba figyelmen kívül hagyása",
"From Email": "Feladó email",
"emailCustomSubject": "Egyedi tárgy",
"To Email": "Cél email",
"smtpCC": "Másolat",
"smtpBCC": "Titkos másolat",
"Discord Webhook URL": "Discord cím (webhook URL)",
"wayToGetDiscordURL": "Kaphat egy ilyet, ha ellátogat a Server Settings -> Integrations -> Create Webhook oldalra",
"Bot Display Name": "Bot megjelenő neve",
"Prefix Custom Message": "Egyedi előtét üzenet",
"Hello @everyone is...": "Hello {'@'}mindenki...",
"Webhook URL": "Cím (webhook URL)",
"wayToGetTeamsURL": "Itt megnézheti, hogy kell ilyen URL-t készíteni: {0}.",
"Number": "Szám",
"Recipients": "Címzettek",
"needSignalAPI": "Egy Signal kliensre van szüksége, amihez REST API tartozik.",
"wayToCheckSignalURL": "Itt megnézheti, hogy hozhat létre egyet:",
"signalImportant": "FONTOS! Nem keverheti a csoportokat és számokat a címzetteknél.",
"Application Token": "Alkalmazás token",
"Server URL": "Szerver URL",
"Priority": "Prioritás",
"Icon Emoji": "Emoji ikonok",
"Channel Name": "Csatorna neve",
"Uptime Kuma URL": "Uptime Kuma cím",
"aboutWebhooks": "Webhook-okról több info: {0}",
"aboutChannelName": "Adja meg a {0} csatorna nevét ha szeretné elkerülni a webhook-ot. Pl: #masik-csatorna",
"aboutKumaURL": "Ha üresen hagyja a Uptime Kuma cím mezőt, akkor a projekt GitHub oldala lesz az alapértelmezett.",
"emojiCheatSheet": "Emoji csalás: {0}",
"clicksendsms": "ClickSend SMS",
"User Key": "Felhasználói kulcs",
"Device": "Eszköz",
"Message Title": "Üzenet címe",
"Notification Sound": "Értesítési hang",
"More info on:": "További információ: {0}",
"pushoverDesc1": "A vészhelyzeti prioritásnak (2) 30 másodperc az újrapróbálkozási alapértéke és egy óra után lejár.",
"pushoverDesc2": "Ha különböző eszközökre szeretne értesítést küldeni, töltse ki az Eszköz mezőt.",
"SMS Type": "SMS típusa",
"octopushTypePremium": "Premium (Fast - recommended for alerting)",
"octopushTypeLowCost": "Low Cost (Slow - sometimes blocked by operator)",
"checkPrice": "Nézze meg az {0} féle árat:",
"apiCredentials": "API kulcsok",
"octopushLegacyHint": "Az Octopush régi (2011-2020) verzióját használja vagy az újat?",
"Check octopush prices": "Nézze meg az Octopush {0} féle árát.",
"octopushPhoneNumber": "Telefonszám (nemz. formátum, pl : +36705554433) ",
"octopushSMSSender": "SMS küldő neve : 3-11 betű/szám (a-zA-Z0-9) vagy szóköz",
"LunaSea Device ID": "LunaSea eszköz ID",
"Apprise URL": "Apprise cím (URL)",
"Example:": "Például: {0}",
"Read more:": "Itt olvashat róla: {0}",
"Status:": "Állapot: {0}",
"Read more": "Tovább olvasom",
"appriseInstalled": "Apprise telepítve.",
"appriseNotInstalled": "Apprise nincs telepítve. {0}",
"Access Token": "Elérési token",
"Channel access token": "Csatorna elérési token",
"Line Developers Console": "Line Developers konzol",
"lineDevConsoleTo": "Line Developers konzol - {0}",
"Basic Settings": "Alap beállítások",
"User ID": "Felhasználó ID",
"Messaging API": "Üzenet API",
"wayToGetLineChannelToken": "{0} első eléréséhez készítsen egy Provider-t és csatornát (Messaging API), utána kaphatja meg a csatorna elérési token-t és felhasználó ID-t az alábbi menüpontban.",
"Icon URL": "Ikon cím (URL)",
"aboutIconURL": "Megadhat egy webcímet az Ikon cím mezőben, ezzel felülírva az alapértelmezet képet. Nem kerül felhasználásra, ha az Emoji-k be vannak állítva.",
"aboutMattermostChannelName": "Felülírhatja az alapértelmezett csatornát, ahova a webhook az adatokat küldi. Ehhez töltse ki a \"Csatorna neve\" mezőt (pl: #egyeb-csatorna). A Mattermost webhook beállításaiban további engedélyek szükségesek",
"matrix": "Matrix",
"promosmsTypeEco": "SMS ECO - olcsó, de lassú, gyakran túlterhelt. Csak lengyel címzettekhez.",
"promosmsTypeFlash": "SMS FLASH - Az üzenet automatikusan megjelenik a fogadó eszközön. Csak lengyel címzettekhez.",
"promosmsTypeFull": "SMS FULL - Prémium szintje az SMS-nek. Megadható a feladó neve, de előtte jóváhagyás szükséges. Ideális értesítésekhez.",
"promosmsTypeSpeed": "SMS SPEED - A legmagasabb prioritás a rendszerben. Nagyon gyors és pontos, de költséges (kb. duplája a hagyományos SMS-nek).",
"promosmsPhoneNumber": "Telefonszám (lengyel címzett esetén az országkód elhagyható)",
"promosmsSMSSender": "SMS feladónév: Előre beállított név vagy az alábbiak egyike: InfoSMS, SMS Info, MaxSMS, INFO, SMS",
"Feishu WebHookUrl": "Feishu webhook cím (URL)",
"matrixHomeserverURL": "Homeserver cím (URL http(s):// előtaggal és opcionálisan port-tal)",
"Internal Room Id": "Belső Szoba ID",
"matrixDesc1": "A belső szoba ID-t a szpbák speciális beállítások között találja meg a Matrix kliens programban. Így kell kinéznie: !QMdRCpUIfLwsfjxye6:home.server.",
"matrixDesc2": "Erősen ajánlott készíteni egy új felhasználót és nem a teljes joggal rendelkező felhasználót használni. Az új felhasználó létrehozása után csak azokba a szobákba kell megjhívni a felhasználót, ahol értesítéseket szeretne kapni. Ezzel a művelettel lehet elérési token-t kérni: {0}",
"Method": "Metódus",
"Body": "Törzs",
"Headers": "Fejlécek",
"PushUrl": "Push cím (URL)",
"HeadersInvalidFormat": "A kérés fejléc nem egy valós JSON: ",
"BodyInvalidFormat": "A kérés törzse nem egy valós JSON: ",
"Monitor History": "Vizsgálatok előzményei",
"clearDataOlderThan": "Előzmények megtartása {0} napig.",
"PasswordsDoNotMatch": "Jelszó nem egyezik.",
"records": "sorok",
"One record": "Egy sor",
"steamApiKeyDescription": "Steam Game Server ellenőrzéséhez szükséges egy Steam Web-API kulcs. Itt létrehozhat egy API kulcsot: ",
"Current User": "Felhasználó",
"recent": "Legújabb",
"Done": "Kész",
"Info": "Infó",
"Security": "Biztonság",
"Steam API Key": "Steam API kulcs",
"Shrink Database": "Adatbázis tömörítése",
"Pick a RR-Type...": "Válasszon egy RR-típust…",
"Pick Accepted Status Codes...": "Válasszon olyan kódot, ami elfogadottnak számít…",
"Default": "Alapért.",
"HTTP Options": "HTTP beállítások",
"Create Incident": "Incidens létrehozása",
"Title": "Cím",
"Content": "Tartalom",
"Style": "Stílus",
"info": "info",
"warning": "warning",
"danger": "danger",
"primary": "primary",
"light": "light",
"dark": "dark",
"Post": "Bejegyzés",
"Please input title and content": "Adjon meg címet és tartalmat",
"Created": "Létrehozva",
"Last Updated": "Utolsó mód.",
"Unpin": "Leválaszt",
"Switch to Light Theme": "Világos témára váltás",
"Switch to Dark Theme": "Sötét témára váltás",
"Show Tags": "Címkék mutatása",
"Hide Tags": "Címkék elrejtése",
"Description": "Leírás",
"No monitors available.": "Nincs még figyelő beállítva.",
"Add one": "Adjon hozzá egyet",
"No Monitors": "Nincs figyelő",
"Untitled Group": "Névtelen csoport",
"Services": "Szolgáltatások",
"Discard": "Elvet",
"Cancel": "Mégsem",
"Powered by": "A megoldást szállítja az",
"shrinkDatabaseDescription": "VACUUM futtatása az SQLite-on. Ha az adatbázisod 1.10.0-nál újabb, akkor az AUTO_VACUUM engedélyezve van, nincs szükség a műveletre.",
"serwersms": "SerwerSMS.pl",
"serwersmsAPIUser": "API felhasználónév (webapi_ előtaggal együtt)",
"serwersmsAPIPassword": "API jelszó",
"serwersmsPhoneNumber": "Telefonszám",
"serwersmsSenderName": "SMS feladó neve (regisztrált név az oldalon)",
"GoogleChat": "Google Chat (csak Google Workspace)",
"stackfield": "Stackfield",
"smtpDkimSettings": "DKIM beállítások",
"smtpDkimDesc": "Nézze meg a Nodemailer DKIM {0} használati szabályokat.",
"documentation": "dokumentáció",
"smtpDkimDomain": "Domain név",
"smtpDkimKeySelector": "Kulcs választó",
"smtpDkimPrivateKey": "Privát kulcs",
"smtpDkimHashAlgo": "Hash algoritmus (nem kötelező)",
"smtpDkimheaderFieldNames": "Fejléc kulcsok a bejelentkezéshez (nem kötelező)",
"smtpDkimskipFields": "Fejléc kulcsok egyéb esetben (nem kötelező)",
"PushByTechulus": "Techulus push",
"gorush": "Gorush",
"alerta": "Alerta",
"alertaApiEndpoint": "API végpont",
"alertaEnvironment": "Környezet",
"alertaApiKey": "API kulcs",
"alertaAlertState": "Figyelmeztetési állapot",
"alertaRecoverState": "Visszaállási állapot",
"deleteStatusPageMsg": "Biztos, hogy törölni akarja a státusz oldalt?",
"Start of maintenance": "Karbantartás kezdete",
"successMessageExplanation": "MQTT üzenet, amely sikeresnek minősül",
"weekdayShortFri": "Pé",
"lastDay2": "A hónap 2. utolsó napja",
"maintenanceStatus-under-maintenance": "Karbantartás alatt",
"dnsCacheDescription": "Előfordulhat, hogy bizonyos IPv6-környezetekben nem működik, tiltsa le, ha problémákat tapasztal.",
"Add New Status Page": "Új állapotoldal hozzáadása",
"The resource is no longer available.": "Az erőforrás már nem elérhető.",
"Show update if available": "Frissítés megjelenítése, ha elérhető",
"weekdayShortMon": "Hé",
"weekdayShortTue": "Ke",
"weekdayShortWed": "Sze",
"weekdayShortThu": "Csüt",
"weekdayShortSat": "Szo",
"weekdayShortSun": "Vas",
"dayOfWeek": "A hét napja",
"dayOfMonth": "A hónap napja",
"lastDay": "Utolsó nap",
"lastDay3": "A hónap 3. utolsó napja",
"lastDay4": "A hónap 4. utolsó napja",
"No Maintenance": "Nincs karbantartás",
"pauseMaintenanceMsg": "Biztosan szüneteltetni akarja?",
"maintenanceStatus-inactive": "Inaktív",
"maintenanceStatus-scheduled": "Ütemezett",
"maintenanceStatus-ended": "Végzett",
"maintenanceStatus-unknown": "Ismeretlen",
"Display Timezone": "Időzóna megjelenítése",
"Server Timezone": "Szerver időzóna",
"statusPageMaintenanceEndDate": "Vége",
"Enable DNS Cache": "DNS-gyorsítótár engedélyezése",
"Enable": "Engedélyezze",
"Disable": "Letiltás",
"Affected Monitors": "Érintett monitorok",
"Packet Size": "Csomag mérete",
"IconUrl": "Ikon URL",
"successMessage": "Sikeres üzenet",
"lastDay1": "A hónap utolsó napja",
"Guild ID": "Guild ID"
}

@ -0,0 +1,585 @@
{
"languageName": "Bahasa Indonesia (Indonesian)",
"checkEverySecond": "Cek Setiap {0} detik.",
"retryCheckEverySecond": "Coba lagi setiap {0} detik.",
"resendEveryXTimes": "Kirim ulang setiap {0} kali",
"resendDisabled": "Kirim ulang dinonaktifkan",
"retriesDescription": "Percobaan ulang maksimum sebelum layanan dinyatakan tidak aktif dan notifikasi dikirim",
"ignoreTLSError": "Abaikan kesalahan TLS/SSL untuk situs web HTTPS",
"upsideDownModeDescription": "Balikkan statusnya. Jika layanan dapat dijangkau, TIDAK AKTIF.",
"maxRedirectDescription": "Jumlah maksimum pengalihan untuk diikuti. Setel ke 0 untuk menonaktifkan pengalihan.",
"acceptedStatusCodesDescription": "Pilih kode status yang dianggap sebagai tanggapan yang berhasil.",
"passwordNotMatchMsg": "Kata sandi kedua tidak cocok.",
"notificationDescription": "Harap atur notifikasi ke monitor agar berfungsi.",
"keywordDescription": "Cari kata kunci dalam code html atau JSON huruf besar-kecil berpengaruh",
"pauseDashboardHome": "Jeda",
"deleteMonitorMsg": "Apakah Anda mau menghapus monitor ini?",
"deleteNotificationMsg": "Apakah Anda mau menghapus notifikasi untuk semua monitor?",
"dnsPortDescription": "Port server DNS. Bawaan menggunakan 53. Anda dapat mengubah port kapan saja.",
"resolverserverDescription": "Cloudflare adalah server bawaan, Anda dapat mengubah server resolver kapan saja.",
"rrtypeDescription": "Pilih RR-Type yang mau Anda monitor",
"pauseMonitorMsg": "Apakah Anda yakin mau menjeda?",
"enableDefaultNotificationDescription": "Untuk setiap monitor baru, notifikasi ini akan diaktifkan secara bawaan. Anda masih dapat menonaktifkan notifikasi secara terpisah untuk setiap monitor.",
"clearEventsMsg": "Apakah Anda yakin mau menghapus semua event di monitor ini?",
"clearHeartbeatsMsg": "Apakah Anda yakin mau menghapus semua heartbeats di monitor ini?",
"confirmClearStatisticsMsg": "Apakah Anda yakin mau menghapus semua statistik?",
"importHandleDescription": "Pilih 'Lewati yang ada' jika Anda ingin melewati setiap monitor atau notifikasi dengan nama yang sama. 'Timpa' akan menghapus setiap monitor dan notifikasi yang ada.",
"confirmImportMsg": "Apakah Anda yakin untuk mengimpor cadangan? Pastikan Anda telah memilih opsi impor yang tepat.",
"twoFAVerifyLabel": "Silakan ketik token Anda untuk memverifikasi bahwa 2FA berfungsi",
"tokenValidSettingsMsg": "Token benar! Anda sekarang dapat menyimpan pengaturan 2FA.",
"confirmEnableTwoFAMsg": "Apakah Anda yakin ingin mengaktifkan 2FA?",
"confirmDisableTwoFAMsg": "Apakah Anda yakin ingin menonaktifkan 2FA?",
"Settings": "Pengaturan",
"Dashboard": "Dasbor",
"New Update": "Pembaruan Baru",
"Language": "Bahasa",
"Appearance": "Tampilan",
"Theme": "Tema",
"General": "Umum",
"Primary Base URL": "URL Dasar Utama",
"Version": "Versi",
"Check Update On GitHub": "Cek Pembaruan di GitHub",
"List": "Daftar",
"Add": "Tambah",
"Add New Monitor": "Tambah Monitor Baru",
"Quick Stats": "Statistik",
"Up": "Aktif",
"Down": "Tidak Aktif",
"Pending": "Tertunda",
"Unknown": "Tidak diketahui",
"Pause": "Jeda",
"Name": "Nama",
"Status": "Status",
"DateTime": "Tanggal Waktu",
"Message": "Pesan",
"No important events": "Tidak ada peristiwa penting",
"Resume": "Lanjut",
"Edit": "Ubah",
"Delete": "Hapus",
"Current": "Saat ini",
"Uptime": "Waktu aktif",
"Cert Exp.": "Batas kedaluwarsa SSL",
"day": "hari | hari-hari",
"-day": "-hari",
"hour": "Jam",
"-hour": "-Jam",
"Response": "Tanggapan",
"Ping": "Ping",
"Monitor Type": "Tipe Monitor",
"Keyword": "Kata Kunci",
"Friendly Name": "Nama yang Ramah",
"URL": "URL",
"Hostname": "Hostname",
"Port": "Port",
"Heartbeat Interval": "Jarak Waktu Heartbeat ",
"Retries": "Coba lagi",
"Heartbeat Retry Interval": "Jarak Waktu Heartbeat Mencoba kembali ",
"Resend Notification if Down X times consequently": "Kirim Ulang Notifikasi jika Tidak Aktif X kali",
"Advanced": "Tingkat Lanjut",
"Upside Down Mode": "Mode Terbalik",
"Max. Redirects": "Maksimal Pengalihan",
"Accepted Status Codes": "Kode Status yang Diterima",
"Push URL": "Push URL",
"needPushEvery": "Anda harus memanggil URL berikut setiap {0} detik..",
"pushOptionalParams": "Parameter tambahan: {0}",
"Save": "Simpan",
"Notifications": "Notifikasi",
"Not available, please setup.": "Tidak tersedia, silakan atur.",
"Setup Notification": "Setel Notifikasi",
"Light": "Terang",
"Dark": "Gelap",
"Auto": "Otomatis",
"Theme - Heartbeat Bar": "Tema - Heartbeat Bar",
"Normal": "Normal",
"Bottom": "Bawah",
"None": "Tidak ada",
"Timezone": "Zona Waktu",
"Search Engine Visibility": "Visibilitas Mesin Pencari",
"Allow indexing": "Mengizinkan untuk diindex",
"Discourage search engines from indexing site": "Mencegah mesin pencari untuk mengindex situs",
"Change Password": "Ganti Sandi",
"Current Password": "Sandi Lama",
"New Password": "Sandi Baru",
"Repeat New Password": "Ulangi Sandi Baru",
"Update Password": "Perbarui Kata Sandi",
"Disable Auth": "Nonaktifkan Autentikasi",
"Enable Auth": "Aktifkan Autentikasi",
"disableauth.message1": "Apakah Anda yakin ingin <strong>menonaktifkan autentikasi</strong>?",
"disableauth.message2": "Ini untuk <strong>mereka yang memiliki autentikasi pihak ketiga</strong> diletakkan di depan Uptime Kuma, misalnya akses Cloudflare.",
"Please use this option carefully!": "Gunakan dengan hati-hati.",
"Logout": "Keluar",
"Leave": "Pergi",
"I understand, please disable": "Saya mengerti, silakan dinonaktifkan",
"Confirm": "Konfirmasi",
"Yes": "Ya",
"No": "Tidak",
"Username": "Nama Pengguna",
"Password": "Sandi",
"Remember me": "Ingat saya",
"Login": "Masuk",
"No Monitors, please": "Tidak ada monitor, silakan",
"add one": "tambahkan satu",
"Notification Type": "Tipe Notifikasi",
"Email": "Surel",
"Test": "Tes",
"Certificate Info": "Info Sertifikasi",
"Resolver Server": "Resolver Server",
"Resource Record Type": "Resource Record Type",
"Last Result": "Hasil Terakhir",
"Create your admin account": "Buat akun admin Anda",
"Repeat Password": "Ulangi Sandi",
"Import Backup": "Impor Cadangan",
"Export Backup": "Ekspor Cadangan",
"Export": "Ekspor",
"Import": "Impor",
"respTime": "Tanggapan. Waktu (milidetik)",
"notAvailableShort": "N/A",
"Default enabled": "Bawaan diaktifkan",
"Apply on all existing monitors": "Terapkan pada semua monitor yang ada",
"Create": "Buat",
"Clear Data": "Bersihkan Data",
"Events": "Peristiwa",
"Heartbeats": "Heartbeats",
"Auto Get": "Ambil Otomatis",
"backupDescription": "Anda dapat mencadangkan semua monitor dan semua notifikasi ke dalam berkas JSON.",
"backupDescription2": "Catatan: Data sejarah dan peristiwa tidak disertakan.",
"backupDescription3": "Data sensitif seperti notifikasi token disertakan dalam berkas ekspor, harap simpan dengan hati-hati.",
"alertNoFile": "Silakan pilih berkas untuk diimpor.",
"alertWrongFileType": "Silakan pilih berkas JSON.",
"Clear all statistics": "Hapus semua statistik",
"Skip existing": "Lewati yang ada",
"Overwrite": "Timpa",
"Options": "Opsi",
"Keep both": "Simpan keduanya",
"Verify Token": "Verifikasi Token",
"Setup 2FA": "Pengaturan 2FA",
"Enable 2FA": "Aktifkan 2FA",
"Disable 2FA": "Nonaktifkan 2FA",
"2FA Settings": "Pengaturan 2FA",
"Two Factor Authentication": "Autentikasi Dua Faktor",
"Active": "Aktif",
"Inactive": "Tidak Aktif",
"Token": "Token",
"Show URI": "Lihat URI",
"Tags": "Tanda",
"Add New below or Select...": "Tambahkan Baru di bawah atau Pilih...",
"Tag with this name already exist.": "Tanda dengan nama ini sudah ada.",
"Tag with this value already exist.": "Tanda dengan nilai ini sudah ada.",
"color": "warna",
"value (optional)": "nilai (harus diisi)",
"Gray": "Abu-abu",
"Red": "Merah",
"Orange": "Jingga",
"Green": "Hijau",
"Blue": "Biru",
"Indigo": "Biru Tua",
"Purple": "Ungu",
"Pink": "Merah Muda",
"Search...": "Cari...",
"Avg. Ping": "Rata-rata Ping",
"Avg. Response": "Rata-rata Tanggapan",
"Entry Page": "Halaman Masuk",
"statusPageNothing": "Tidak ada di sini, silakan tambahkan grup atau monitor.",
"No Services": "Tidak ada Layanan",
"All Systems Operational": "Semua Sistem Berfungsi",
"Partially Degraded Service": "Layanan Terdegradasi Sebagian",
"Degraded Service": "Layanan Terdegradasi",
"Add Group": "Tambah Grup",
"Add a monitor": "Tambah monitor",
"Edit Status Page": "Edit Halaman Status",
"Go to Dashboard": "Pergi ke Dasbor",
"Status Page": "Halaman Status",
"Status Pages": "Halaman Status",
"defaultNotificationName": "{notification} saya Peringatan ({number})",
"here": "di sini",
"Required": "Wajib",
"telegram": "Telegram",
"Bot Token": "Bot Token",
"wayToGetTelegramToken": "Anda dapat mendapatkan token dari {0}.",
"Chat ID": "Chat ID",
"supportTelegramChatID": "Mendukung Obrolan Langsung / Grup / Channel Chat ID",
"wayToGetTelegramChatID": "Anda bisa mendapatkan chat id Anda dengan mengirim pesan ke bot dan pergi ke url ini untuk melihat chat_id:",
"YOUR BOT TOKEN HERE": "BOT TOKEN ANDA DI SINI",
"chatIDNotFound": "Chat ID tidak ditemukan, tolong kirim pesan ke bot ini dulu",
"webhook": "Webhook",
"Post URL": "Post URL",
"Content Type": "Tipe konten",
"webhookJsonDesc": "{0} bagus untuk peladen http modern seperti express.js",
"webhookFormDataDesc": "{multipart} bagus untuk PHP, Anda hanya perlu mengurai json dengan {decodeFunction}",
"smtp": "Surel (SMTP)",
"secureOptionNone": "None / STARTTLS (25, 587)",
"secureOptionTLS": "TLS (465)",
"Ignore TLS Error": "Abaikan Kesalahan TLS",
"From Email": "Dari Email",
"emailCustomSubject": "Subjek",
"To Email": "Ke Email",
"smtpCC": "CC",
"smtpBCC": "BCC",
"discord": "Discord",
"Discord Webhook URL": "Discord Webhook URL",
"wayToGetDiscordURL": "Anda bisa mendapatkan ini dengan pergi ke Server Pengaturan -> Integrasi -> Buat Webhook",
"Bot Display Name": "Nama Bot",
"Prefix Custom Message": "Awalan Pesan",
"Hello @everyone is...": "Halo {'@'}everyone is...",
"teams": "Microsoft Teams",
"Webhook URL": "Webhook URL",
"wayToGetTeamsURL": "Anda dapat mempelajari cara membuat url webhook {0}.",
"signal": "Sinyal",
"Number": "Nomer",
"Recipients": "Penerima",
"needSignalAPI": "Anda harus memiliki klien sinyal dengan REST API.",
"wayToCheckSignalURL": "Anda dapat memeriksa url ini untuk melihat cara menyiapkannya:",
"signalImportant": "PENTING: Anda tidak dapat mencampur grup dan nomor di penerima!",
"gotify": "Gotify",
"Application Token": "Token Aplikasi",
"Server URL": "URL Server",
"Priority": "Prioritas",
"slack": "Slack",
"Icon Emoji": "Ikon Emoji",
"Channel Name": "Nama Saluran",
"Uptime Kuma URL": "Uptime Kuma URL",
"aboutWebhooks": "Info lain tentang webhook: {0}",
"aboutChannelName": "Masukan nama saluran di {0} Kolom Nama Saluran jika Anda ingin melewati saluran webhook. Contoh: #saluran-lain",
"aboutKumaURL": "Jika Anda membiarkan bidang URL Uptime Kuma kosong, itu akan menjadi bawaan ke halaman Proyek Github.",
"emojiCheatSheet": "Lembar contekan emoji: {0}",
"rocket.chat": "Rocket.chat",
"pushover": "Pushover",
"pushy": "Pushy",
"PushByTechulus": "Push by Techulus",
"octopush": "Octopush",
"promosms": "PromoSMS",
"clicksendsms": "ClickSend SMS",
"lunasea": "LunaSea",
"apprise": "Apprise (Mendukung 50+ layanan notifikasi)",
"GoogleChat": "Google Chat (hanya Google Workspace)",
"pushbullet": "Pushbullet",
"line": "Line Messenger",
"mattermost": "Mattermost",
"User Key": "Kunci pengguna",
"Device": "Perangkat",
"Message Title": "Judul Pesan",
"Notification Sound": "Suara Nofifikasi",
"More info on:": "Info lebih lanjut tentang: {0}",
"pushoverDesc1": "Prioritas darurat (2) memiliki batas waktu bawaan 30 detik antara percobaan ulang dan akan kadaluwarsa setelah 1 jam.",
"pushoverDesc2": "Jika Anda ingin mengirim pemberitahuan ke perangkat yang berbeda, isi kolom Perangkat.",
"SMS Type": "Tipe SMS",
"octopushTypePremium": "Premium (Cepat - direkomendasikan untuk mengingatkan)",
"octopushTypeLowCost": "Low Cost (Lambat, terkadang diblokir oleh operator)",
"checkPrice": "Check {0} prices:",
"apiCredentials": "Kredensial API",
"octopushLegacyHint": "Apakah Anda menggunakan Octopush versi lama (2011-2020) atau versi baru?",
"Check octopush prices": "Cek harga octopush {0}.",
"octopushPhoneNumber": "Nomer Telpon/HP (format internasional, contoh : +33612345678) ",
"octopushSMSSender": "Nama Pengirim SMS : 3-11 karakter alfanumerik dan spasi (a-zA-Z0-9)",
"LunaSea Device ID": "LunaSea Device ID",
"Apprise URL": "Apprise URL",
"Example:": "Contoh: {0}",
"Read more:": "Baca lebih lanjut: {0}",
"Status:": "Status: {0}",
"Read more": "Baca lebih lanjut",
"appriseInstalled": "Apprise diinstall.",
"appriseNotInstalled": "Apprise tidak diinstall. {0}",
"Access Token": "Token Akses",
"Channel access token": "Token akses saluran",
"Line Developers Console": "Konsol Pengembang Line",
"lineDevConsoleTo": "Konsol Pengembang Line - {0}",
"Basic Settings": "Pengaturan Dasar",
"User ID": "ID User",
"Messaging API": "Messaging API",
"wayToGetLineChannelToken": "Pertama akses {0}, buat penyedia dan saluran (Messaging API), lalu Anda bisa mendapatkan token akses saluran dan id pengguna dari item menu yang disebutkan di atas.",
"Icon URL": "Icon URL",
"aboutIconURL": "Anda dapat memberikan tautan ke gambar di \"Icon URL\" untuk mengganti gambar profil bawaan. Tidak akan digunakan jika Ikon Emoji diset.",
"aboutMattermostChannelName": "Anda dapat mengganti saluran bawaan tujuan posting webhook dengan memasukkan nama saluran ke dalam Kolom \"Channel Name\". Ini perlu diaktifkan di pengaturan webhook Mattermost. contoh: #other-channel",
"matrix": "Matrix",
"promosmsTypeEco": "SMS ECO - murah tapi lambat dan sering kelebihan beban. Terbatas hanya untuk penerima Polandia.",
"promosmsTypeFlash": "SMS FLASH - Pesan akan otomatis muncul di perangkat penerima. Terbatas hanya untuk penerima Polandia.",
"promosmsTypeFull": "SMS FULL - SMS tingkat premium, Anda dapat menggunakan Nama Pengirim Anda (Anda harus mendaftarkan nama terlebih dahulu). Dapat diandalkan untuk peringatan.",
"promosmsTypeSpeed": "SMS SPEED - Prioritas tertinggi dalam sistem. Sangat cepat dan dapat diandalkan tetapi mahal (sekitar dua kali lipat dari harga SMS FULL).",
"promosmsPhoneNumber": "Nomor telepon (untuk penerima Polandia Anda dapat melewati kode area)",
"promosmsSMSSender": "Nama Pengirim SMS : Nama pra-registrasi atau salah satu bawaan: InfoSMS, Info SMS, MaxSMS, INFO, SMS",
"Feishu WebHookUrl": "Feishu WebHookUrl",
"matrixHomeserverURL": "Homeserver URL (dengan http(s):// dan port tambahan)",
"Internal Room Id": "Internal Room ID",
"matrixDesc1": "Kamu dapat menemukan Internal Room ID dengan melihat di bagian konfigurasi ruang di Matrix. Seharusnya berbentuk seperti !QMdRCpUIfLwsfjxye6:home.server.",
"matrixDesc2": "Sangat direkomendasikan kepada Anda untuk membuat akun baru dan jangan menggunakan token atas akun terkini yang memiliki token akses secara penuh terhadap akun dan seluruh ruang yang terdaftar. Alih - alih, buat akun baru dan undang akun tsb ke ruang tempat anda ingin menerima notifikasi. Untuk mendapatkan token akses anda dapat menjalankan {0}",
"Method": "Method",
"Body": "Body",
"Headers": "Headers",
"PushUrl": "Push URL",
"HeadersInvalidFormat": "Request Headers memiliki format JSON yang tidak sesuai: ",
"BodyInvalidFormat": "Request Body memiliki format JSON yang tidak sesuai: ",
"Monitor History": "Riyawat Monitor",
"clearDataOlderThan": "Simpan data riwayat monitoring selama {0} hari.",
"PasswordsDoNotMatch": "Password tidak sama.",
"records": "catatan",
"One record": "Satu catatan",
"steamApiKeyDescription": "Untuk monitoring Steam Game Server Anda membutuhkan kunci Steam Web-API. Anda dapat mendaftarkan Kunci API Anda melalui: ",
"Current User": "Pengguna Saat Ini",
"topic": "Topic",
"topicExplanation": "MQTT topic untuk dimonitor",
"successMessage": "Pesan Berhasil",
"successMessageExplanation": "Pesan MQTT yang akan dianggap berhasil",
"recent": "Baru saja",
"Done": "Selesai",
"Info": "Info",
"Security": "Keamanan",
"Steam API Key": "Steam API Key",
"Shrink Database": "Shrink Database",
"Pick a RR-Type...": "Pilih RR-Type...",
"Pick Accepted Status Codes...": "Pilih Kode Status yang Diterima...",
"Default": "Default",
"HTTP Options": "Opsi HTTP",
"Create Incident": "Buat Incident",
"Title": "Judul",
"Content": "Konten",
"Style": "Gaya",
"info": "info",
"warning": "peringatan",
"danger": "bahaya",
"error": "kesalahan",
"critical": "kritis",
"primary": "utama",
"light": "terang",
"dark": "gelap",
"Post": "Post",
"Please input title and content": "Masukkan judul dan konten",
"Created": "Dibuat",
"Last Updated": "Terakhir Diperbarui",
"Unpin": "Lepaskan Semat",
"Switch to Light Theme": "Ubah ke Tema Terang",
"Switch to Dark Theme": "Ubah ke Tema Gelap",
"Show Tags": "Tampilkan Tags",
"Hide Tags": "Sembunyikan Tags",
"Description": "Deskripsi",
"No monitors available.": "Tidak ada monitor yang tersedia.",
"Add one": "Tambahkan",
"No Monitors": "Tidak ada monitor",
"Untitled Group": "Group Tanpa Judul",
"Services": "Layanan",
"Discard": "Buang",
"Cancel": "Batal",
"Powered by": "Dipersembahkan oleh",
"shrinkDatabaseDescription": "Trigger database VACUUM untuk SQLite. Jika database Anda dibuat setelah 1.10.0, AUTO_VACUUM sudah otomatis diaktifkan dan aksi berikut tidak dibutuhkan.",
"serwersms": "SerwerSMS.pl",
"serwersmsAPIUser": "Nama Pengguna API ( termamsuk awalan webapi_ )",
"serwersmsAPIPassword": "Kata Sandi API",
"serwersmsPhoneNumber": "Nomor Telepon",
"serwersmsSenderName": "Nama Pengirim SMS (didaftarkan melalui portal pelanggan)",
"stackfield": "Stackfield",
"Customize": "Kustomisasi",
"Custom Footer": "Tambahan Footer",
"Custom CSS": "Tambahan CSS",
"smtpDkimSettings": "Pengaturan DKIM",
"smtpDkimDesc": "Silakan merujuk ke Nodemailer DKIM {0} untuk penggunaan.",
"documentation": "dokumentasi",
"smtpDkimDomain": "Nama Domain",
"smtpDkimKeySelector": "Key Selector",
"smtpDkimPrivateKey": "Private Key",
"smtpDkimHashAlgo": "Algoritma Hash (Opsional)",
"smtpDkimheaderFieldNames": "Header Keys untuk ditambahkan (Optional)",
"smtpDkimskipFields": "Header Keys not untuk ditambahkan (Optional)",
"wayToGetPagerDutyKey": "Anda dapat menambahkan melalui Service -> Service Directory -> (Select a service) -> Integrations -> Add integration. Lalu Anda dapat menjadi dengan kata kunci \"Events API V2\". Informasi tambahan {0}",
"Integration Key": "Kunci Integrasi",
"Integration URL": "URL Integrasi",
"Auto resolve or acknowledged": "Penyelesaian otomatis atau diakui",
"do nothing": "tidak melakukan apapun",
"auto acknowledged": "otomatis diakui",
"auto resolve": "otomatis terselesaikan",
"gorush": "Gorush",
"alerta": "Alerta",
"alertaApiEndpoint": "API Endpoint",
"alertaEnvironment": "Lingkungan",
"alertaApiKey": "Kunci API",
"alertaAlertState": "Status Siaga",
"alertaRecoverState": "Status Pemulihan",
"deleteStatusPageMsg": "Apakah Anda yakin untuk menghapus halaman status berikut?",
"Proxies": "Proxy",
"default": "Bawaan",
"enabled": "Diaktifkan",
"setAsDefault": "Tetapkan sebagai bawaan",
"deleteProxyMsg": "Apakah Anda yakin ingin menghapus proxy berikut untuk seluruh monitor?",
"proxyDescription": "Proxy harus ditambahkan ke monitor agar berfungsi.",
"enableProxyDescription": "Proxy berikut tidak akan berdampak ke monitor hingga diaktifkan. Anda dapat mengontrol menonaktifkan sementara proxy dari semua monitor dengan status aktivasi.",
"setAsDefaultProxyDescription": "Proxy berikut akan diaktifkan sebagai bawaan untuk monitor baru. Anda masih dapat menonaktifkan proxy secara terpisah untuk setiap monitor.",
"Certificate Chain": "Certificate Chain",
"Valid": "Valid",
"Invalid": "Tidak Valid",
"AccessKeyId": "AccessKey ID",
"SecretAccessKey": "AccessKey Secret",
"PhoneNumbers": "Nomor Telepon",
"TemplateCode": "Kode Template",
"SignName": "Nama Tanda",
"Sms template must contain parameters: ": "Template SMS harus berisi parameter: ",
"Bark Endpoint": "Bark Endpoint",
"Bark Group": "Bark Group",
"Bark Sound": "Bark Sound",
"WebHookUrl": "WebHookUrl",
"SecretKey": "SecretKey",
"For safety, must use secret key": "Untuk keamaan Anda harus menggunakan kunci rahasia",
"Device Token": "Token Perangkat",
"Platform": "Platform",
"iOS": "iOS",
"Android": "Android",
"Huawei": "Huawei",
"High": "Tinggi",
"Retry": "Ulang",
"Topic": "Topik",
"WeCom Bot Key": "Kunci WeCom Bot",
"Setup Proxy": "Siapkan Proxy",
"Proxy Protocol": "Protokol Proxy",
"Proxy Server": "Server Proxy",
"Proxy server has authentication": "Server Proxy memiliki autentikasi",
"User": "Pengguna",
"Installed": "Terpasang",
"Not installed": "Tidak terpasang",
"Running": "Berjalan",
"Not running": "Tidak berjalan",
"Remove Token": "Hapus Token",
"Start": "Mulai",
"Stop": "Berhenti",
"Uptime Kuma": "Uptime Kuma",
"Add New Status Page": "Tambahkan Halaman Status Baru",
"Slug": "Slug",
"Accept characters:": "Terima karakter:",
"startOrEndWithOnly": "Mulai atau akhiri hanya dengan {0}",
"No consecutive dashes": "Tanda hubung tidak berurutan",
"Next": "Selanjutnya",
"The slug is already taken. Please choose another slug.": "Slug telah digunakan. Silakan pilih slug lain.",
"No Proxy": "Tidak ada Proxy",
"Authentication": "Autentikasi",
"HTTP Basic Auth": "HTTP Basic Auth",
"New Status Page": "Halaman Status Baru",
"Page Not Found": "Halaman Tidak Ditemukan",
"Reverse Proxy": "Proxy Terbalik",
"Backup": "Cadangan",
"About": "Tentang",
"wayToGetCloudflaredURL": "(Unduh cloudflared dari {0})",
"cloudflareWebsite": "Situs Cloudflare",
"Message:": "Pesan:",
"Don't know how to get the token? Please read the guide:": "Tidak tahu cara mendapatkan token? Silakan baca panduannya:",
"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.": "Koneksi saat ini mungkin hilang jika Anda saat ini terhubung melalui Cloudflare Tunel. Apakah Anda yakin ingin menghentikannya? Ketik kata sandi Anda saat ini untuk mengonfirmasinya.",
"HTTP Headers": "HTTP Headers",
"Trust Proxy": "Proxy Terpercaya",
"Other Software": "Perangkat Lunak lainnya",
"For example: nginx, Apache and Traefik.": "Sebagai contoh: nginx, Apache and Traefik.",
"Please read": "Harap dibaca",
"Subject:": "Subjek:",
"Valid To:": "Berlaku Untuk:",
"Days Remaining:": "Hari Tersisa:",
"Issuer:": "Penerbit:",
"Fingerprint:": "Sidik jari:",
"No status pages": "Tidak ada halaman status",
"Domain Name Expiry Notification": "Pemberitahuan Kedaluwarsa Nama Domain",
"Proxy": "Proxy",
"Date Created": "Tanggal Dibuat",
"HomeAssistant": "Home Assistant",
"onebotHttpAddress": "Alamat HTTP OneBot",
"onebotMessageType": "Jenis Pesan OneBot",
"onebotGroupMessage": "Grup",
"onebotPrivateMessage": "Pribadi",
"onebotUserOrGroupId": "Grup/Pengguna ID",
"onebotSafetyTips": "Untuk keamanan, harus mengatur token akses",
"PushDeer Key": "Kunci PushDeer",
"Footer Text": "Tulisan Footer",
"Show Powered By": "Tampilkan Dipersembahkan oleh",
"Domain Names": "Nama Domain",
"signedInDisp": "Masuk sebagai {0}",
"signedInDispDisabled": "Autentikasi dinonaktifkan.",
"RadiusSecret": "Radius Secret",
"RadiusSecretDescription": "Shared Secret antara klien dan server",
"RadiusCalledStationId": "Called Station Id",
"RadiusCalledStationIdDescription": "Pengenal perangkat yang dipanggil",
"RadiusCallingStationId": "Calling Station Id",
"RadiusCallingStationIdDescription": "Pengenal perangkat panggilan",
"Certificate Expiry Notification": "Pemberitahuan Kedaluwarsa Sertifikat",
"API Username": "Nama Pengguna API",
"API Key": "Kunci API",
"Recipient Number": "Nomor Penerima",
"From Name/Number": "Dari Nama/Nomor",
"Leave blank to use a shared sender number.": "Biarkan kosong untuk menggunakan nomor pengirim bersama.",
"Octopush API Version": "Versi API Octopush",
"Legacy Octopush-DM": "Legacy Octopush-DM",
"endpoint": "endpoint",
"octopushAPIKey": "\"API key\" dari kredensial HTTP API di panel kontrol",
"octopushLogin": "\"Login\" dari kredensial HTTP API di panel kontrol",
"promosmsLogin": "Nama Masuk API",
"promosmsPassword": "Kata Sandi API",
"pushoversounds pushover": "Pushover (default)",
"pushoversounds bike": "Bike",
"pushoversounds bugle": "Bugle",
"pushoversounds cashregister": "Cash Register",
"pushoversounds classical": "Classical",
"pushoversounds cosmic": "Cosmic",
"pushoversounds falling": "Falling",
"pushoversounds gamelan": "Gamelan",
"pushoversounds incoming": "Incoming",
"pushoversounds intermission": "Intermission",
"pushoversounds magic": "Magic",
"pushoversounds mechanical": "Mechanical",
"pushoversounds pianobar": "Piano Bar",
"pushoversounds siren": "Siren",
"pushoversounds spacealarm": "Space Alarm",
"pushoversounds tugboat": "Tug Boat",
"pushoversounds alien": "Alien Alarm (long)",
"pushoversounds climb": "Climb (long)",
"pushoversounds persistent": "Persistent (long)",
"pushoversounds echo": "Pushover Echo (long)",
"pushoversounds updown": "Up Down (long)",
"pushoversounds vibrate": "Vibrate Only",
"pushoversounds none": "None (silent)",
"pushyAPIKey": "Secret API Key",
"pushyToken": "Device token",
"Show update if available": "Tampilkan pembaruan jika tersedia",
"Also check beta release": "Periksa juga rilis beta",
"Using a Reverse Proxy?": "Menggunakan Proxy Terbalik?",
"Check how to config it for WebSocket": "Periksa cara mengonfigurasinya untuk A WebSocket",
"Steam Game Server": "Steam Game Server",
"Most likely causes:": "Kemungkinan besar penyebabnya:",
"The resource is no longer available.": "Sumber daya tidak lagi tersedia.",
"There might be a typing error in the address.": "Mungkin ada kesalahan pengetikan di alamat.",
"What you can try:": "Apa yang dapat kamu coba:",
"Retype the address.": "Ketik ulang alamat.",
"Go back to the previous page.": "Kembali ke halaman sebelumnya.",
"Coming Soon": "Segera",
"wayToGetClickSendSMSToken": "Anda bisa mendapatkan Nama Pengguna API dan Kunci API dari {0} .",
"Connection String": "String Koneksi",
"Query": "Query",
"settingsCertificateExpiry": "Sertifikat TLS Kadaluarsa",
"certificationExpiryDescription": "Monitor HTTPS memicu pemberitahuan saat sertifikat TLS kedaluwarsa dalam:",
"Setup Docker Host": "Siapkan Host Docker",
"Connection Type": "Jenis Koneksi",
"Docker Daemon": "Docker Daemon",
"deleteDockerHostMsg": "Apakah Anda yakin ingin menghapus host docker berikut untuk semua monitor?",
"socket": "Socket",
"tcp": "TCP / HTTP",
"Docker Container": "Docker Container",
"Container Name / ID": "Container Name / ID",
"Docker Host": "Docker Host",
"Docker Hosts": "Docker Hosts",
"ntfy Topic": "ntfy Topic",
"Domain": "Domain",
"Workstation": "Workstation",
"disableCloudflaredNoAuthMsg": "Anda berada dalam mode Tanpa Otentikasi, kata sandi tidak diperlukan.",
"trustProxyDescription": "Trust 'X-Forwarded-*' headers. Jika Anda ingin mendapatkan IP klien yang benar dan Uptime Kuma Anda dibalik layanan seperti Nginxor Apache, Anda harus mengaktifkan ini.",
"wayToGetLineNotifyToken": "Anda bisa mendapatkan token akses dari {0}",
"Examples": "Contoh",
"Home Assistant URL": "Home Assistant URL",
"Long-Lived Access Token": "Token Akses Berumur Panjang",
"Long-Lived Access Token can be created by clicking on your profile name (bottom left) and scrolling to the bottom then click Create Token. ": "Token Akses Berumur Panjang dapat dibuat dengan mengklik nama profil Anda (kiri bawah) dan menggulir ke bawah lalu klik Buat Token. ",
"Notification Service": "Layanan Pemberitahuan",
"default: notify all devices": "bawaan: notifikasi seluruh perangkat",
"A list of Notification Services can be found in Home Assistant under \"Developer Tools > Services\" search for \"notification\" to find your device/phone name.": "Daftar Layanan Pemberitahuan dapat ditemukan di Home Assistant pada \"Developer Tools > Services\" cari \"notification\" lalu cari nama perangkat Anda.",
"Automations can optionally be triggered in Home Assistant:": "Otomatisasi dapat dipicu secara opsional di Home Assistant:",
"Trigger type:": "Tipe Trigger/Pemicu:",
"Event type:": "Tipe event:",
"Event data:": "Data event:",
"Then choose an action, for example switch the scene to where an RGB light is red.": "Kemudian pilih tindakan, misalnya alihkan ke tempat dimana lampu RGB berwarna merah.",
"Frontend Version": "Versi Frontend",
"Frontend Version do not match backend version!": "Versi Frontend tidak sama dengan versi backend!",
"Base URL": "URL Dasar",
"goAlertInfo": "GoAlert adalah aplikasi open source untuk penjadwalan panggilan, eskalasi otomatis dan pemberitahuan (seperti SMS atau panggilan suara). Secara otomatis melibatkan orang yang tepat, dengan cara yang benar, dan pada waktu yang tepat! {0}",
"goAlertIntegrationKeyInfo": "Dapatkan kunci integrasi API generik untuk layanan dalam format ini \"aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee\" biasanya nilai parameter token dari URL yang disalin.",
"goAlert": "GoAlert",
"backupOutdatedWarning": "Tidak digunakan lagi: Karena banyak fitur ditambahkan dan fitur cadangan ini agak tidak terawat, itu tidak dapat menghasilkan atau memulihkan cadangan lengkap.",
"backupRecommend": "Harap cadangkan volume atau folder data (./data/) secara langsung."
}

@ -0,0 +1,367 @@
{
"languageName": "Italiano (Italian)",
"checkEverySecond": "controlla ogni {0} secondi",
"retryCheckEverySecond": "Riprova ogni {0} secondi.",
"retriesDescription": "Tentativi prima che il servizio venga marcato come \"DOWN\" e che una notifica venga inviata.",
"ignoreTLSError": "Ignora gli errori TLS/SSL per i siti HTTPS.",
"upsideDownModeDescription": "Se il servizio risulta raggiungibile viene marcato come \"DOWN\".",
"maxRedirectDescription": "Numero massimo di redirezionamenti consentito. Per disabilitare, impostare \"0\".",
"acceptedStatusCodesDescription": "Elenco di codici di stato HTTP che sono considerati validi.",
"passwordNotMatchMsg": "La password non corrisponde.",
"notificationDescription": "Assegnare la notifica a uno o più oggetti monitorati per metterla in funzione.",
"keywordDescription": "Cerca la parola chiave nella risposta in html o JSON e fai distinzione tra maiuscole e minuscole",
"pauseDashboardHome": "In Pausa",
"deleteMonitorMsg": "Sei sicuro di voler eliminare questo oggetto monitorato?",
"deleteNotificationMsg": "Sei sicuro di voler eliminare questa notifica per tutti gli oggetti monitorati?",
"resolverserverDescription": "Cloudflare è il server predefinito ma è possibile cambiare il server DNS.",
"rrtypeDescription": "Scegliere il tipo di RR che si vuole monitorare",
"pauseMonitorMsg": "Sei sicuro di voler mettere in pausa?",
"enableDefaultNotificationDescription": "Per ogni nuovo monitor questa notifica sarà abilitata di default. È comunque possibile disabilitare la notifica singolarmente.",
"clearEventsMsg": "Sei sicuro di voler eliminare tutti gli eventi per questo servizio?",
"clearHeartbeatsMsg": "Sei sicuro di voler eliminare tutti gli intervalli di controllo per questo servizio?",
"confirmClearStatisticsMsg": "Sei sicuro di voler eliminare TUTTE le statistiche?",
"importHandleDescription": "Selezionare \"Ignora esistenti\" se si vuole ignorare l'importazione dei monitor o delle notifiche con lo stesso nome. \"Sovrascrivi\" rimpiazzerà tutti i monitor e le notifiche presenti con quelli nel backup.",
"confirmImportMsg": "Sei sicuro di voler importare il backup? Controlla di aver selezionato l'opzione corretta di importazione.",
"twoFAVerifyLabel": "Digita il token per verificare che l'autenticazione a due fattori funzioni correttamente:",
"tokenValidSettingsMsg": "Il token è valido! È ora possibile salvare le impostazioni.",
"confirmEnableTwoFAMsg": "Sei sicuro di voler abilitare l'autenticazione a due fattori?",
"confirmDisableTwoFAMsg": "Sei sicuro di voler disabilitare l'autenticazione a due fattori?",
"Settings": "Impostazioni",
"Dashboard": "Dashboard",
"New Update": "Nuovo aggiornamento disponibile!",
"Language": "Lingua",
"Appearance": "Aspetto",
"Theme": "Tema",
"General": "Generale",
"Primary Base URL": "URL base primario",
"Version": "Versione",
"Check Update On GitHub": "Controlla aggiornamenti su GitHub",
"List": "Lista",
"Add": "Aggiungi",
"Add New Monitor": "Aggiungi nuovo monitor",
"Quick Stats": "Statistiche rapide",
"Up": "Up",
"Down": "Down",
"Pending": "In attesa",
"Unknown": "Sconosciuti",
"Pause": "Metti in pausa",
"Name": "Nome",
"Status": "Stato",
"DateTime": "Data e Ora",
"Message": "Messaggio",
"No important events": "Nessun evento importante",
"Resume": "Riprendi",
"Edit": "Modifica",
"Delete": "Elimina",
"Current": "Corrente",
"Uptime": "Tempo di attività",
"Cert Exp.": "Scadenza certificato",
"day": "giorno | giorni",
"-day": "-giorni",
"hour": "ora",
"-hour": "-ore",
"Response": "Risposta",
"Ping": "Ping",
"Monitor Type": "Modalità di monitoraggio",
"Keyword": "Parola chiave",
"Friendly Name": "Nome",
"URL": "URL",
"Hostname": "Nome Host",
"Port": "Porta",
"Heartbeat Interval": "Intervallo di controllo",
"Retries": "Tentativi",
"Heartbeat Retry Interval": "Intervallo tra i tentativo di controllo",
"Advanced": "Avanzate",
"Upside Down Mode": "Modalità invertita",
"Max. Redirects": "Reindirizzamenti massimi",
"Accepted Status Codes": "Codici di stato accettati",
"Push URL": "Push URL",
"needPushEvery": "Notificare questo URL ogni {0} secondi.",
"pushOptionalParams": "Parametri aggiuntivi: {0}",
"Save": "Salva",
"Notifications": "Notifiche",
"Not available, please setup.": "Non disponibili, da configurare.",
"Setup Notification": "Configura le notifiche",
"Light": "Chiaro",
"Dark": "Scuro",
"Auto": "Automatico",
"Theme - Heartbeat Bar": "Tema (barra di stato)",
"Normal": "Normale",
"Bottom": "Sotto",
"None": "Nessuna",
"Timezone": "Fuso Orario",
"Search Engine Visibility": "Visibilità ai motori di ricerca",
"Allow indexing": "Consenti l'indicizzazione",
"Discourage search engines from indexing site": "Evita l'indicizzazione ai motori di ricerca",
"Change Password": "Cambia password",
"Current Password": "Password corrente",
"New Password": "Nuova password",
"Repeat New Password": "Ripeti nuova password",
"Update Password": "Modifica password",
"Disable Auth": "Disabilita autenticazione",
"Enable Auth": "Abilita autenticazione",
"disableauth.message1": "<strong>Disabilitare l'autenticazione</strong>?",
"disableauth.message2": "<strong>Questa opzione è per chi un sistema di autenticazione gestito da terze parti</strong> messo davanti ad Uptime Kuma, ad esempio Cloudflare Access.",
"Please use this option carefully!": "Utilizzare con attenzione!",
"Logout": "Esci",
"Leave": "Annulla",
"I understand, please disable": "Lo capisco, disabilitare l'autenticazione.",
"Confirm": "Conferma",
"Yes": "Sì",
"No": "No",
"Username": "Nome utente",
"Password": "Password",
"Remember me": "Ricorda credenziali",
"Login": "Accesso",
"No Monitors, please": "Nessun monitor presente,",
"add one": "aggiungine uno!",
"Notification Type": "Servizio di notifica",
"Email": "E-mail",
"Test": "Fai una prova",
"Certificate Info": "Informazioni sul certificato",
"Resolver Server": "Server DNS",
"Resource Record Type": "Tipo di Resource Record",
"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)",
"notAvailableShort": "N/D",
"Default enabled": "Abilitato di default",
"Apply on all existing monitors": "Applica su tutti i monitoraggi",
"Create": "Crea",
"Clear Data": "Cancella dati",
"Events": "Eventi",
"Heartbeats": "Controlli",
"Auto Get": "Rileva",
"backupDescription": "È possibile fare il backup di tutti i monitoraggi e di tutte le notifiche in un file JSON.",
"backupDescription2": "NOTA: lo storico e i dati relativi agli eventi non saranno inclusi nel backup",
"backupDescription3": "Dati sensibili come i token di autenticazione saranno inclusi nel backup, custodisci il file in un luogo sicuro!",
"alertNoFile": "Selezionare il file da importare.",
"alertWrongFileType": "Selezionare un file JSON.",
"Clear all statistics": "Cancella tutte le statistiche",
"Skip existing": "Ignora esistenti",
"Overwrite": "Sovrascrivi",
"Options": "Opzioni",
"Keep both": "Mantieni entrambi",
"Verify Token": "Verifica token",
"Setup 2FA": "Configura 2FA",
"Enable 2FA": "Abilita 2FA",
"Disable 2FA": "Disabilita 2FA",
"2FA Settings": "Gestisci l'autenticazione a due fattori",
"Two Factor Authentication": "Autenticazione a due fattori (2FA)",
"Active": "Attivata",
"Inactive": "Disattivata",
"Token": "Token",
"Show URI": "Mostra URI",
"Tags": "Etichette",
"Add New below or Select...": "Aggiungi oppure scegli...",
"Tag with this name already exist.": "Un'etichetta con questo nome già esiste.",
"Tag with this value already exist.": "Un'etichetta con questo valore già esiste.",
"color": "colore",
"value (optional)": "descrizione (opzionale)",
"Gray": "Grigio",
"Red": "Rosso",
"Orange": "Arancione",
"Green": "Verde",
"Blue": "Blu",
"Indigo": "Indaco",
"Purple": "Viola",
"Pink": "Rosa",
"Search...": "Cerca...",
"Avg. Ping": "Tempo medio di risposta al ping",
"Avg. Response": "Tempo medio di risposta",
"Entry Page": "Pagina Principale",
"statusPageNothing": "Non c'è nulla qui, aggiungi un gruppo oppure un monitor.",
"No Services": "Nessun servizio",
"All Systems Operational": "Tutti i sistemi sono funzionali",
"Partially Degraded Service": "Servizio parzialmente degradato",
"Degraded Service": "Servizio degradato",
"Add Group": "Aggiungi gruppo",
"Add a monitor": "Aggiungi monitor",
"Edit Status Page": "Modifica pagina di stato",
"Go to Dashboard": "Vai alla dashboard",
"Status Page": "Pagina di stato",
"Status Pages": "Pagina di stato",
"defaultNotificationName": "Notifica {notification} ({number})",
"here": "qui",
"Required": "Obbligatorio",
"telegram": "Telegram",
"Bot Token": "Token del bot",
"wayToGetTelegramToken": "Puoi ottenere il token da {0}.",
"Chat ID": "ID Chat",
"supportTelegramChatID": "Supporta chat private, gruppi e canali.",
"wayToGetTelegramChatID": "È possibile ricereve l'ID chat mandando un messaggio al bot e poi andando in questo URL per visualizzare il chat_id:",
"YOUR BOT TOKEN HERE": "QUI IL TOKEN DEL BOT",
"chatIDNotFound": "Non trovo l'ID chat. Prima bisogna mandare un messaggio al bot",
"webhook": "Webhook",
"Post URL": "Post URL",
"Content Type": "Content Type",
"webhookJsonDesc": "{0} va bene per qualsiasi server HTTP moderno ad esempio express.js",
"webhookFormDataDesc": "{multipart} va bene per PHP, c'è solo bisogno di analizzare il json con {decodeFunction}",
"smtp": "E-mail (SMTP)",
"secureOptionNone": "Nessuno / STARTTLS (25, 587)",
"secureOptionTLS": "TLS (465)",
"Ignore TLS Error": "Ignora gli errori TLS",
"From Email": "Mittente",
"emailCustomSubject": "Oggetto personalizzato",
"To Email": "Destinatario",
"smtpCC": "CC",
"smtpBCC": "CCn",
"discord": "Discord",
"Discord Webhook URL": "URL Webhook di Discord",
"wayToGetDiscordURL": "È possibile recuperarlo da Impostazioni server -> Integrazioni -> Creare Webhook",
"Bot Display Name": "Nome del Bot",
"Prefix Custom Message": "Prefisso per il messaggio personalizzato",
"Hello @everyone is...": "Ciao a {'@'}everyone ...",
"teams": "Microsoft Teams",
"Webhook URL": "URL Webhook",
"wayToGetTeamsURL": "È possibile imparare a creare un URL Webhook {0}.",
"signal": "Signal",
"Number": "Numero",
"Recipients": "Destinatari",
"needSignalAPI": "È necessario avere un client Signal con le API REST.",
"wayToCheckSignalURL": "Controllare questo url per capire come impostarne uno:",
"signalImportant": "IMPORTANTE: Non è possibile mischiare gruppi e numeri all'interno dei destinatari!",
"gotify": "Gotify",
"Application Token": "Token Applicazione",
"Server URL": "URL Server",
"Priority": "Priorità",
"slack": "Slack",
"Icon Emoji": "Icona Emoji",
"Channel Name": "Nome Canale",
"Uptime Kuma URL": "Indirizzo Uptime Kuma",
"aboutWebhooks": "Maggiori informazioni riguardo ai webhooks su: {0}",
"aboutChannelName": "Inserire il nome del canale nel campo \"Nome Canale\" {0} se si vuole bypassare il canale webhook. Ad esempio: #altro-canale",
"aboutKumaURL": "Se si lascia bianco il campo Indirizzo Uptime Kuma, la pagina GitHub sarà il valore predefinito.",
"emojiCheatSheet": "Lista Emoji: {0}",
"rocket.chat": "Rocket.chat",
"pushover": "Pushover",
"pushy": "Pushy",
"octopush": "Octopush",
"promosms": "PromoSMS",
"clicksendsms": "ClickSend SMS",
"lunasea": "LunaSea",
"apprise": "Apprise (Supporta più di 50 servizi di notifica)",
"pushbullet": "Pushbullet",
"line": "Line Messenger",
"mattermost": "Mattermost",
"User Key": "Chiave Utente",
"Device": "Dispositivo",
"Message Title": "Titolo Messaggio",
"Notification Sound": "Suono di Notifica",
"More info on:": "Maggiori informazioni su: {0}",
"pushoverDesc1": "Priorità di Emergenza (2) ha 30 secondi di timeout tra un tentativo e l'altro e scadrà dopo un'ora.",
"pushoverDesc2": "Se si vuole inviare la notifica a dispositivi differenti, riempire il campo Dispositivi.",
"SMS Type": "Tipo di SMS",
"octopushTypePremium": "Premium (Veloce - raccomandato per allertare)",
"octopushTypeLowCost": "A Basso Costo (Lento - talvolta bloccato dall'operatore)",
"checkPrice": "Controlla {0} prezzi:",
"apiCredentials": "Credenziali API",
"octopushLegacyHint": "Si vuole utilizzare la vecchia versione (2011-2020) oppure la nuova versione di Octopush?",
"Check octopush prices": "Controlla i prezzi di Octopush {0}.",
"octopushPhoneNumber": "Numero di telefono (formato internazionale (p.e.): +33612345678) ",
"octopushSMSSender": "Nome del mittente: 3-11 caratteri alfanumerici e spazi (a-zA-Z0-9)",
"LunaSea Device ID": "ID dispositivo LunaSea",
"Apprise URL": "URL Apprise",
"Example:": "Esempio: {0}",
"Read more:": "Maggiori informazioni: {0}",
"Status:": "Stato: {0}",
"Read more": "Maggiori informazioni",
"appriseInstalled": "Apprise è installato.",
"appriseNotInstalled": "Apprise non è installato. {0}",
"Access Token": "Token di accesso",
"Channel access token": "Token di accesso al canale",
"Line Developers Console": "Console sviluppatori Line",
"lineDevConsoleTo": "Console sviluppatori Line - {0}",
"Basic Settings": "Impostazioni Base",
"User ID": "ID Utente",
"Messaging API": "API di Messaggistica",
"wayToGetLineChannelToken": "Prima accedi a {0}, crea un provider e un canale (API di Messaggistica), dopodiché puoi avere il token di accesso e l'id utente dal menù sopra.",
"Icon URL": "URL Icona",
"aboutIconURL": "È possibile impostare un collegameno a una immagine in \"URL Icona\" per modificare l'immagine di profilo. Non verrà utilizzata se è impostata l'Icona Emoji.",
"aboutMattermostChannelName": "È possibile modificare il canale predefinito che dove il webhook manda messaggi immettendo il nome del canale nel campo \"Nome Canale\". Questo va abilitato nelle impostazioni webhook di Mattermost webhook. P.E.: #altro-canale",
"matrix": "Matrix",
"promosmsTypeEco": "SMS ECO - economico, ma lento e spesso sovraccarico. Limitato solamente a destinatari Polacchi.",
"promosmsTypeFlash": "SMS FLASH - Il messaggio sarà automaticamente mostrato sul dispositivo dei destinatari. Limitato solo a destinatari Polacchi.",
"promosmsTypeFull": "SMS FULL - Premium, È possibile utilizzare il proprio come come mittente (è necessario prima registrare il nome). Affidabile per gli allarmi.",
"promosmsTypeSpeed": "SMS SPEED - Maggior priorità. Rapido, affidabile, ma costoso (costa il doppio di SMS FULL).",
"promosmsPhoneNumber": "Numero di Telefono (per destinatari Polacchi si può omettere il codice area)",
"promosmsSMSSender": "Mittente SMS : Nome preregistrato oppure uno dei seguenti: InfoSMS, SMS Info, MaxSMS, INFO, SMS",
"Feishu WebHookUrl": "URL WebHook di Feishu",
"matrixHomeserverURL": "URL Server (con http(s):// e opzionalmente la porta)",
"Internal Room Id": "ID Stanza Interna",
"matrixDesc1": "È possibile recuperare l'ID della stanza all'interno delle impostazioni avanzate della stanza nel client Matrix. Dovrebbe essere simile a !QMdRCpUIfLwsfjxye6:server.di.casa.",
"matrixDesc2": "È altamente raccomandata la creazione di un nuovo utente e di non utilizare il proprio token di accesso Matrix poiché darà pieno controllo al proprio account e a tutte le stanze in cui si ha accesso. Piuttosto, si crei un nuovo utente per invitarlo nella stanza dove si vuole ricevere le notifiche. Si può accedere al token eseguendo {0}",
"Method": "Metodo",
"Body": "Body",
"Headers": "Intestazioni",
"PushUrl": "URL di Push",
"HeadersInvalidFormat": "L'intestazione di richiesta non è un JSON valido: ",
"BodyInvalidFormat": "Il corpo di richiesta non è un JSON valido: ",
"Monitor History": "Storico monitor",
"clearDataOlderThan": "Mantieni lo storico per {0} giorni.",
"PasswordsDoNotMatch": "Le password non corrispondono!",
"records": "records",
"One record": "One record",
"steamApiKeyDescription": "Per monitorare un server di gioco Steam è necessaria una Web-API Key di Steam. È possibile registrarne una qui: ",
"Current User": "Utente corrente",
"recent": "Recenti",
"Done": "Fatto",
"Info": "Info",
"Security": "Sicurezza",
"Steam API Key": "API Key di Steam",
"Shrink Database": "Comprimi database",
"Pick a RR-Type...": "Scegli un tipo di RR...",
"Pick Accepted Status Codes...": "Scegli i codici di Stato Accettati...",
"Default": "Predefinito",
"HTTP Options": "Opzioni HTTP",
"Create Incident": "Segnala incidente",
"Title": "Titolo",
"Content": "Contenuto",
"Style": "Stile",
"info": "informativo",
"warning": "attenzione",
"danger": "critico",
"primary": "predefinito",
"light": "chiaro",
"dark": "scuro",
"Post": "Posta",
"Please input title and content": "Inserire il titolo e il contenuto",
"Created": "Creato",
"Last Updated": "Ultima modifica",
"Unpin": "Rimuovi",
"Switch to Light Theme": "Utilizza il tema chiaro",
"Switch to Dark Theme": "Utilizza il tema scuro",
"Show Tags": "Mostra etichette",
"Hide Tags": "Nascondi etichette",
"Description": "Descrizione",
"No monitors available.": "Nessun monitor disponibile.",
"Add one": "Aggiungine uno!",
"No Monitors": "Nessun monitor presente.",
"Untitled Group": "Gruppo senza titolo",
"Services": "Servizi",
"Discard": "Scarta modifiche",
"Cancel": "Annulla",
"Powered by": "Powered by",
"shrinkDatabaseDescription": "Lancia il comando \"VACUUM\" sul database SQLite. Se il database è stato creato dopo la versione 1.10.0, la funzione \"AUTO_VACUUM\" è già abilitata di default e quindi questa azione non è necessaria.",
"serwersms": "SerwerSMS.pl",
"serwersmsAPIUser": "Nome utente API (incl. prefisso webapi_)",
"serwersmsAPIPassword": "Password API",
"serwersmsPhoneNumber": "Numero di Telefono",
"serwersmsSenderName": "Nome del mittente SMS (registrato via portale cliente)",
"stackfield": "Stackfield",
"smtpDkimSettings": "Impostazioni DKIM",
"smtpDkimDesc": "Fare riferimento a Nodemailer DKIM {0} per l'utilizzo.",
"documentation": "documentazione",
"smtpDkimDomain": "Dominio",
"smtpDkimKeySelector": "Selettore Chiave",
"smtpDkimPrivateKey": "Chiave Privata",
"smtpDkimHashAlgo": "Algoritmo di hashing (opzionale)",
"smtpDkimheaderFieldNames": "Campi Intestazione da firmare (opzionale)",
"smtpDkimskipFields": "Campi Intestazione da non firmare (opzionale)",
"GoogleChat": "Google Chat (solo per Google Workspace)"
}

@ -0,0 +1,171 @@
{
"languageName": "日本語",
"checkEverySecond": "{0}秒ごとにチェックします。",
"retriesDescription": "サービスがダウンとしてマークされ、通知が送信されるまでの最大リトライ数",
"ignoreTLSError": "HTTPS ウェブサイトの TLS/SSL エラーを無視する",
"upsideDownModeDescription": "ステータスの扱いを逆にします。サービスに到達可能な場合は、DOWNとなる。",
"maxRedirectDescription": "フォローするリダイレクトの最大数。リダイレクトを無効にするには0を設定する。",
"acceptedStatusCodesDescription": "成功した応答とみなされるステータスコードを選択する。",
"passwordNotMatchMsg": "繰り返しのパスワードが一致しません。",
"notificationDescription": "監視を機能させるには、監視に通知を割り当ててください。",
"keywordDescription": "プレーンHTMLまたはJSON応答でキーワードを検索し、大文字と小文字を区別します",
"pauseDashboardHome": "一時停止",
"deleteMonitorMsg": "この監視を削除してよろしいですか?",
"deleteNotificationMsg": "全ての監視のこの通知を削除してよろしいですか?",
"resolverserverDescription": "Cloudflareがデフォルトのサーバーですが、いつでもリゾルバサーバーを変更できます。",
"rrtypeDescription": "監視するRRタイプを選択します",
"pauseMonitorMsg": "一時停止しますか?",
"Settings": "設定",
"Dashboard": "ダッシュボード",
"New Update": "新しいアップデート",
"Language": "言語",
"Appearance": "外観",
"Theme": "テーマ",
"General": "General",
"Version": "バージョン",
"Check Update On GitHub": "GitHubでアップデートを確認する",
"List": "一覧",
"Add": "追加",
"Add New Monitor": "監視の追加",
"Quick Stats": "統計",
"Up": "Up",
"Down": "Down",
"Pending": "中止",
"Unknown": "不明",
"Pause": "一時停止",
"Name": "名前",
"Status": "ステータス",
"DateTime": "日時",
"Message": "メッセージ",
"No important events": "重要なイベントなし",
"Resume": "再開",
"Edit": "編集",
"Delete": "削除",
"Current": "現在",
"Uptime": "起動時間",
"Cert Exp.": "証明書有効期限",
"day": "日 | 日間",
"-day": "-日",
"hour": "時間",
"-hour": "-時間",
"Response": "レスポンス",
"Ping": "Ping",
"Monitor Type": "監視タイプ",
"Keyword": "キーワード",
"Friendly Name": "分かりやすい名前",
"URL": "URL",
"Hostname": "ホスト名",
"Port": "ポート",
"Heartbeat Interval": "監視間隔",
"Retries": "Retries",
"Advanced": "Advanced",
"Upside Down Mode": "Upside Down Mode",
"Max. Redirects": "最大リダイレクト数",
"Accepted Status Codes": "承認されたステータスコード",
"Save": "保存",
"Notifications": "通知",
"Not available, please setup.": "利用できません。設定してください。",
"Setup Notification": "通知設定",
"Light": "Light",
"Dark": "Dark",
"Auto": "Auto",
"Theme - Heartbeat Bar": "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": "add one",
"Notification Type": "通知タイプ",
"Email": "Eメール",
"Test": "テスト",
"Certificate Info": "証明書情報",
"Resolver Server": "問い合わせ先DNSサーバ",
"Resource Record Type": "DNSレコード設定",
"Last Result": "最終結果",
"Create your admin account": "Adminアカウントの作成",
"Repeat Password": "パスワード確認",
"respTime": "応答時間 (ms)",
"notAvailableShort": "N/A",
"Create": "作成",
"clearEventsMsg": "この監視のすべての記録を削除してもよろしいですか?",
"clearHeartbeatsMsg": "この監視のすべての異常記録を削除してもよろしいですか?",
"confirmClearStatisticsMsg": "すべての統計を削除してもよろしいですか?",
"Clear Data": "データを削除",
"Events": "統計",
"Heartbeats": "異常記録",
"Auto Get": "自動取得",
"enableDefaultNotificationDescription": "監視を作成するごとに、この通知方法はデフォルトで有効になります。監視ごとに通知を無効にすることもできます。",
"Default enabled": "デフォルトで有効にする",
"Also apply to existing monitors": "既存のモニターにも適用する",
"Export": "エクスポート",
"Import": "インポート",
"backupDescription": "すべての監視と通知方法をJSONファイルにできます。",
"backupDescription2": "※ 履歴と統計のデータはバックアップされません。",
"backupDescription3": "通知に使用するトークンなどの機密データも含まれています。注意して扱ってください。",
"alertNoFile": "インポートするファイルを選択してください。",
"alertWrongFileType": "JSONファイルを選択してください。",
"twoFAVerifyLabel": "トークンを入力して、2段階認証を有効にします。",
"tokenValidSettingsMsg": "トークンの確認が完了しました! 「保存」をしてください。",
"confirmEnableTwoFAMsg": "2段階認証を「有効」にします。よろしいですか?",
"confirmDisableTwoFAMsg": "2段階認証を「無効」にします。よろしいですか?",
"Apply on all existing monitors": "既存のすべてのモニターに適用する",
"Verify Token": "認証する",
"Setup 2FA": "2段階認証の設定",
"Enable 2FA": "2段階認証を有効にする",
"Disable 2FA": "2段階認証を無効にする",
"2FA Settings": "2段階認証の設定",
"Two Factor Authentication": "2段階認証",
"Clear all statistics": "すべての記録を削除",
"retryCheckEverySecond": "Retry every {0} seconds.",
"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)": "値 (optional)",
"Search...": "検索...",
"Avg. Ping": "平均Ping時間",
"Avg. Response": "平均応答時間",
"Entry Page": "エントリーページ",
"statusPageNothing": "ここには何もありません。グループまたは監視を追加してください。",
"No Services": "No Services",
"All Systems Operational": "すべてのサービスが稼働中",
"Partially Degraded Service": "部分的にサービスが停止中",
"Degraded Service": "サービスが停止中",
"Add Group": "グループの追加",
"Add a monitor": "監視の追加",
"Edit Status Page": "ステータスページ編集",
"Go to Dashboard": "ダッシュボード",
"Status Page": "ステータスページ",
"Status Pages": "ステータスページ"
}

Some files were not shown because too many files have changed in this diff Show More

Loading…
Cancel
Save