diff --git a/dockerfile b/dockerfile index 97936012..886f491a 100644 --- a/dockerfile +++ b/dockerfile @@ -16,7 +16,7 @@ WORKDIR /app # Install Apprise, add sqlite3 cli for debugging in the future, iputils-ping for ping, util-linux for setpriv RUN apt update && \ apt --yes install python3 python3-pip python3-cryptography python3-six python3-yaml python3-click python3-markdown python3-requests python3-requests-oauthlib \ - sqlite3 iputils-ping util-linux && \ + sqlite3 iputils-ping util-linux dumb-init && \ pip3 --no-cache-dir install apprise && \ rm -rf /var/lib/apt/lists/* @@ -26,7 +26,7 @@ COPY --from=build /app /app EXPOSE 3001 VOLUME ["/app/data"] HEALTHCHECK --interval=60s --timeout=30s --start-period=180s --retries=5 CMD node extra/healthcheck.js -ENTRYPOINT ["extra/entrypoint.sh"] +ENTRYPOINT ["/usr/bin/dumb-init", "--", "extra/entrypoint.sh"] CMD ["node", "server/server.js"] FROM release AS nightly diff --git a/dockerfile-alpine b/dockerfile-alpine index f30da5b0..07ae3079 100644 --- a/dockerfile-alpine +++ b/dockerfile-alpine @@ -13,7 +13,7 @@ FROM node:14-alpine3.12 AS release WORKDIR /app # Install apprise, iputils for non-root ping, setpriv -RUN apk add --no-cache iputils setpriv python3 py3-cryptography py3-pip py3-six py3-yaml py3-click py3-markdown py3-requests py3-requests-oauthlib && \ +RUN apk add --no-cache iputils setpriv dumb-init python3 py3-cryptography py3-pip py3-six py3-yaml py3-click py3-markdown py3-requests py3-requests-oauthlib && \ pip3 --no-cache-dir install apprise && \ rm -rf /root/.cache @@ -23,7 +23,7 @@ COPY --from=build /app /app EXPOSE 3001 VOLUME ["/app/data"] HEALTHCHECK --interval=60s --timeout=30s --start-period=180s --retries=5 CMD node extra/healthcheck.js -ENTRYPOINT ["extra/entrypoint.sh"] +ENTRYPOINT ["/usr/bin/dumb-init", "--", "extra/entrypoint.sh"] CMD ["node", "server/server.js"] FROM release AS nightly diff --git a/extra/entrypoint.sh b/extra/entrypoint.sh index 0f1d4e2f..23c4f017 100644 --- a/extra/entrypoint.sh +++ b/extra/entrypoint.sh @@ -2,8 +2,8 @@ # set -e Exit the script if an error happens set -e -PUID=${PUID=1000} -PGID=${PGID=1000} +PUID=${PUID=0} +PGID=${PGID=0} files_ownership () { # -h Changes the ownership of an encountered symbolic link and not that of the file or directory pointed to by the symbolic link. diff --git a/package-lock.json b/package-lock.json index 511f02d2..572d0cae 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "uptime-kuma", - "version": "1.6.0", + "version": "1.7.0", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "uptime-kuma", - "version": "1.6.0", + "version": "1.7.0", "license": "MIT", "dependencies": { "@fortawesome/fontawesome-svg-core": "^1.2.36", @@ -2797,18 +2797,6 @@ "node": ">=10" } }, - "node_modules/eslint/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/eslint/node_modules/semver": { "version": "7.3.5", "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", @@ -2824,12 +2812,6 @@ "node": ">=10" } }, - "node_modules/eslint/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - }, "node_modules/esm": { "version": "3.2.25", "resolved": "https://registry.npmjs.org/esm/-/esm-3.2.25.tgz", @@ -4296,6 +4278,18 @@ "url": "https://github.com/sponsors/wooorm" } }, + "node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/magic-string": { "version": "0.25.7", "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.7.tgz", @@ -4615,6 +4609,7 @@ "version": "3.1.25", "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.1.25.tgz", "integrity": "sha512-rdwtIXaXCLFAQbnfqDRnI6jaRHp9fTcYBjtFKE8eezcZ7LuLjhUaQGNeMXf1HmRoCH32CLz6XwX0TtxEOS/A3Q==", + "dev": true, "bin": { "nanoid": "bin/nanoid.cjs" }, @@ -7447,6 +7442,64 @@ } } }, + "node_modules/vue-chart-3/node_modules/@vue/reactivity": { + "version": "3.2.19", + "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.2.19.tgz", + "integrity": "sha512-FtachoYs2SnyrWup5UikP54xDX6ZJ1s5VgHcJp4rkGoutU3Ry61jhs+nCX7J64zjX992Mh9gGUC0LqTs8q9vCA==", + "dependencies": { + "@vue/shared": "3.2.19" + } + }, + "node_modules/vue-chart-3/node_modules/@vue/runtime-core": { + "version": "3.2.19", + "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.2.19.tgz", + "integrity": "sha512-qArZSWKxWsgKfxk9BelZ32nY0MZ31CAW2kUUyVJyxh4cTfHaXGbjiQB5JgsvKc49ROMNffv9t3/qjasQqAH+RQ==", + "dependencies": { + "@vue/reactivity": "3.2.19", + "@vue/shared": "3.2.19" + } + }, + "node_modules/vue-chart-3/node_modules/@vue/runtime-dom": { + "version": "3.2.19", + "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.2.19.tgz", + "integrity": "sha512-hIRboxXwafeHhbZEkZYNV0MiJXPNf4fP0X6hM2TJb0vssz8BKhD9cF92BkRgZztTQevecbhk0gu4uAPJ3dxL9A==", + "dependencies": { + "@vue/runtime-core": "3.2.19", + "@vue/shared": "3.2.19", + "csstype": "^2.6.8" + } + }, + "node_modules/vue-chart-3/node_modules/@vue/runtime-dom/node_modules/csstype": { + "version": "2.6.18", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-2.6.18.tgz", + "integrity": "sha512-RSU6Hyeg14am3Ah4VZEmeX8H7kLwEEirXe6aU2IPfKNvhXwTflK5HQRDNI0ypQXoqmm+QPyG2IaPuQE5zMwSIQ==" + }, + "node_modules/vue-chart-3/node_modules/@vue/shared": { + "version": "3.2.19", + "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.2.19.tgz", + "integrity": "sha512-Knqhx7WieLdVgwCAZgTVrDCXZ50uItuecLh9JdLC8O+a5ayaSyIQYveUK3hCRNC7ws5zalHmZwfdLMGaS8r4Ew==" + }, + "node_modules/vue-chart-3/node_modules/csstype": { + "version": "3.0.9", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.0.9.tgz", + "integrity": "sha512-rpw6JPxK6Rfg1zLOYCSwle2GFOOsnjmDYDaBwEcwoOg4qlsIVCN789VkBZDJAGi4T07gI4YSutR43t9Zz4Lzuw==" + }, + "node_modules/vue-chart-3/node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" + }, + "node_modules/vue-chart-3/node_modules/nanoid": { + "version": "3.1.28", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.1.28.tgz", + "integrity": "sha512-gSu9VZ2HtmoKYe/lmyPFES5nknFrHa+/DT9muUFWFMi6Jh9E1I7bkvlQ8xxf1Kos9pi9o8lBnIOkatMhKX/YUw==", + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, "node_modules/vue-confirm-dialog": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/vue-confirm-dialog/-/vue-confirm-dialog-1.0.2.tgz", @@ -7804,6 +7857,12 @@ "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==" }, + "node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, "node_modules/yaml": { "version": "1.10.2", "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", @@ -10065,15 +10124,6 @@ "v8-compile-cache": "^2.0.3" }, "dependencies": { - "lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "requires": { - "yallist": "^4.0.0" - } - }, "semver": { "version": "7.3.5", "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", @@ -10082,12 +10132,6 @@ "requires": { "lru-cache": "^6.0.0" } - }, - "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true } } }, @@ -11260,6 +11304,15 @@ "integrity": "sha512-vM6rUVCVUJJt33bnmHiZEvr7wPT78ztX7rojL+LW51bHtLh6HTjx84LA5W4+oa6aKEJA7jJu5LR6vQRBpA5DVg==", "dev": true }, + "lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "requires": { + "yallist": "^4.0.0" + } + }, "magic-string": { "version": "0.25.7", "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.7.tgz", @@ -11489,7 +11542,8 @@ "nanoid": { "version": "3.1.25", "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.1.25.tgz", - "integrity": "sha512-rdwtIXaXCLFAQbnfqDRnI6jaRHp9fTcYBjtFKE8eezcZ7LuLjhUaQGNeMXf1HmRoCH32CLz6XwX0TtxEOS/A3Q==" + "integrity": "sha512-rdwtIXaXCLFAQbnfqDRnI6jaRHp9fTcYBjtFKE8eezcZ7LuLjhUaQGNeMXf1HmRoCH32CLz6XwX0TtxEOS/A3Q==", + "dev": true }, "natural-compare": { "version": "1.4.0", @@ -13683,6 +13737,62 @@ "lodash": "latest", "nanoid": "latest", "vue-demi": "^0.10.1" + }, + "dependencies": { + "@vue/reactivity": { + "version": "3.2.19", + "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.2.19.tgz", + "integrity": "sha512-FtachoYs2SnyrWup5UikP54xDX6ZJ1s5VgHcJp4rkGoutU3Ry61jhs+nCX7J64zjX992Mh9gGUC0LqTs8q9vCA==", + "requires": { + "@vue/shared": "3.2.19" + } + }, + "@vue/runtime-core": { + "version": "3.2.19", + "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.2.19.tgz", + "integrity": "sha512-qArZSWKxWsgKfxk9BelZ32nY0MZ31CAW2kUUyVJyxh4cTfHaXGbjiQB5JgsvKc49ROMNffv9t3/qjasQqAH+RQ==", + "requires": { + "@vue/reactivity": "3.2.19", + "@vue/shared": "3.2.19" + } + }, + "@vue/runtime-dom": { + "version": "3.2.19", + "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.2.19.tgz", + "integrity": "sha512-hIRboxXwafeHhbZEkZYNV0MiJXPNf4fP0X6hM2TJb0vssz8BKhD9cF92BkRgZztTQevecbhk0gu4uAPJ3dxL9A==", + "requires": { + "@vue/runtime-core": "3.2.19", + "@vue/shared": "3.2.19", + "csstype": "^2.6.8" + }, + "dependencies": { + "csstype": { + "version": "2.6.18", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-2.6.18.tgz", + "integrity": "sha512-RSU6Hyeg14am3Ah4VZEmeX8H7kLwEEirXe6aU2IPfKNvhXwTflK5HQRDNI0ypQXoqmm+QPyG2IaPuQE5zMwSIQ==" + } + } + }, + "@vue/shared": { + "version": "3.2.19", + "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.2.19.tgz", + "integrity": "sha512-Knqhx7WieLdVgwCAZgTVrDCXZ50uItuecLh9JdLC8O+a5ayaSyIQYveUK3hCRNC7ws5zalHmZwfdLMGaS8r4Ew==" + }, + "csstype": { + "version": "3.0.9", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.0.9.tgz", + "integrity": "sha512-rpw6JPxK6Rfg1zLOYCSwle2GFOOsnjmDYDaBwEcwoOg4qlsIVCN789VkBZDJAGi4T07gI4YSutR43t9Zz4Lzuw==" + }, + "lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" + }, + "nanoid": { + "version": "3.1.28", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.1.28.tgz", + "integrity": "sha512-gSu9VZ2HtmoKYe/lmyPFES5nknFrHa+/DT9muUFWFMi6Jh9E1I7bkvlQ8xxf1Kos9pi9o8lBnIOkatMhKX/YUw==" + } } }, "vue-confirm-dialog": { @@ -13922,6 +14032,12 @@ "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==" }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, "yaml": { "version": "1.10.2", "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", diff --git a/package.json b/package.json index 2834ea65..e2bda605 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "uptime-kuma", - "version": "1.7.0", + "version": "1.7.1", "license": "MIT", "repository": { "type": "git", @@ -23,12 +23,12 @@ "tsc": "tsc", "vite-preview-dist": "vite preview --host", "build-docker": "npm run build-docker-debian && npm run build-docker-alpine", - "build-docker-alpine": "docker buildx build -f dockerfile-alpine --platform linux/amd64,linux/arm64,linux/arm/v7 -t louislam/uptime-kuma:alpine -t louislam/uptime-kuma:1-alpine -t louislam/uptime-kuma:1.7.0-alpine --target release . --push", - "build-docker-debian": "docker buildx build --platform linux/amd64,linux/arm64,linux/arm/v7 -t louislam/uptime-kuma -t louislam/uptime-kuma:1 -t louislam/uptime-kuma:1.7.0 -t louislam/uptime-kuma:debian -t louislam/uptime-kuma:1-debian -t louislam/uptime-kuma:1.7.0-debian --target release . --push", + "build-docker-alpine": "docker buildx build -f dockerfile-alpine --platform linux/amd64,linux/arm64,linux/arm/v7 -t louislam/uptime-kuma:alpine -t louislam/uptime-kuma:1-alpine -t louislam/uptime-kuma:1.7.1-alpine --target release . --push", + "build-docker-debian": "docker buildx build --platform linux/amd64,linux/arm64,linux/arm/v7 -t louislam/uptime-kuma -t louislam/uptime-kuma:1 -t louislam/uptime-kuma:1.7.1 -t louislam/uptime-kuma:debian -t louislam/uptime-kuma:1-debian -t louislam/uptime-kuma:1.7.1-debian --target release . --push", "build-docker-nightly": "docker buildx build --platform linux/amd64,linux/arm64,linux/arm/v7 -t louislam/uptime-kuma:nightly --target nightly . --push", "build-docker-nightly-alpine": "docker buildx build -f dockerfile-alpine --platform linux/amd64,linux/arm64,linux/arm/v7 -t louislam/uptime-kuma:nightly-alpine --target nightly . --push", "build-docker-nightly-amd64": "docker buildx build --platform linux/amd64 -t louislam/uptime-kuma:nightly-amd64 --target nightly . --push --progress plain", - "setup": "git checkout 1.7.0 && npm install --legacy-peer-deps && node node_modules/esbuild/install.js && npm run build && npm prune", + "setup": "git checkout 1.7.1 && npm install --legacy-peer-deps && node node_modules/esbuild/install.js && npm run build && npm prune", "update-version": "node extra/update-version.js", "mark-as-nightly": "node extra/mark-as-nightly.js", "reset-password": "node extra/reset-password.js", diff --git a/src/App.vue b/src/App.vue index 0930852e..099450d4 100644 --- a/src/App.vue +++ b/src/App.vue @@ -1,27 +1,12 @@ diff --git a/src/i18n.js b/src/i18n.js index ecbc1b3e..6f9e5e7b 100644 --- a/src/i18n.js +++ b/src/i18n.js @@ -1,4 +1,5 @@ import { createI18n } from "vue-i18n"; +import bgBG from "./languages/bg-BG"; import daDK from "./languages/da-DK"; import deDE from "./languages/de-DE"; import en from "./languages/en"; @@ -23,6 +24,7 @@ import zhHK from "./languages/zh-HK"; const languageList = { en, "zh-HK": zhHK, + "bg-BG": bgBG, "de-DE": deDE, "nl-NL": nlNL, "es-ES": esEs, @@ -45,7 +47,7 @@ const languageList = { const rtlLangs = ["fa"]; -const currentLocale = () => localStorage.locale || "en"; +export const currentLocale = () => localStorage.locale || "en"; export const localeDirection = () => { return rtlLangs.includes(currentLocale()) ? "rtl" : "ltr" diff --git a/src/languages/bg-BG.js b/src/languages/bg-BG.js new file mode 100644 index 00000000..fcf26606 --- /dev/null +++ b/src/languages/bg-BG.js @@ -0,0 +1,181 @@ +export default { + languageName: "Български", + checkEverySecond: "Проверявай на всеки {0} секунди.", + retryCheckEverySecond: "Повторен опит на всеки {0} секунди.", + retriesDescription: "Максимакен брой опити преди услугата да бъде маркирана като недостъпна и да бъде изпратено известие", + ignoreTLSError: "Игнорирай TLS/SSL грешки за HTTPS уебсайтове", + upsideDownModeDescription: "Обърни статуса от достъпен на недостъпен. Ако услугата е достъпна се вижда НЕДОСТЪПНА.", + maxRedirectDescription: "Максимален брой пренасочвания, които да бъдат следвани. Въведете 0 за да изключите пренасочване.", + acceptedStatusCodesDescription: "Изберете статус кодове, които се считат за успешен отговор.", + passwordNotMatchMsg: "Повторената парола не съвпада.", + notificationDescription: "Моля, задайте известието към монитор(и), за да функционира.", + keywordDescription: "Търсете ключова дума в обикновен html или JSON отговор - чувствителна е към регистъра", + pauseDashboardHome: "Пауза", + deleteMonitorMsg: "Наистина ли желаете да изтриете този монитор?", + deleteNotificationMsg: "Наистина ли желаете да изтриете известието за всички монитори?", + resoverserverDescription: "Cloudflare е сървърът по подразбиране, можете да промените сървъра по всяко време.", + rrtypeDescription: "Изберете ресурсния запис, който желаете да наблюдавате", + pauseMonitorMsg: "Наистина ли желаете да поставите в режим пауза?", + enableDefaultNotificationDescription: "За всеки нов монитор това известие ще бъде активирано по подразбиране. Можете да изключите известието за всеки отделен монитор.", + clearEventsMsg: "Наистина ли желаете да изтриете всички събития за този монитор?", + clearHeartbeatsMsg: "Наистина ли желаете да изтриете всички записи за честотни проверки на този монитор?", + confirmClearStatisticsMsg: "Наистина ли желаете да изтриете всички статистически данни?", + importHandleDescription: "Изберете 'Пропусни съществуващите', ако искате да пропуснете всеки монитор или известие със същото име. 'Презапис' ще изтрие всеки съществуващ монитор и известие.", + confirmImportMsg: "Сигурни ли сте за импортирането на архива? Моля, уверете се, че сте избрали правилната опция за импортиране.", + twoFAVerifyLabel: "Моля, въведете вашия токен код, за да проверите дали 2FA работи", + tokenValidSettingsMsg: "Токен кодът е валиден! Вече можете да запазите настройките за 2FA.", + confirmEnableTwoFAMsg: "Сигурни ли сте, че желаете да активирате 2FA?", + confirmDisableTwoFAMsg: "Сигурни ли сте, че желаете да изключите 2FA?", + Settings: "Настройки", + Dashboard: "Табло", + "New Update": "Нова актуализация", + Language: "Език", + Appearance: "Изглед", + Theme: "Тема", + General: "Общи", + Version: "Версия", + "Check Update On GitHub": "Провери за актуализация в GitHub", + List: "Списък", + Add: "Добави", + "Add New Monitor": "Добави монитор", + "Quick Stats": "Кратка статистика", + Up: "Достъпни", + Down: "Недостъпни", + Pending: "В изчакване", + Unknown: "Неизвестни", + Pause: "В пауза", + Name: "Име", + Status: "Статус", + DateTime: "Дата и час", + Message: "Съобщение", + "No important events": "Няма важни събития", + Resume: "Възобнови", + Edit: "Редактирай", + Delete: "Изтрий", + Current: "Текущ", + Uptime: "Време на работа", + "Cert Exp.": "Вал. сертификат", + days: "дни", + day: "ден", + "-day": "-ден", + hour: "час", + "-hour": "-час", + Response: "Отговор", + Ping: "Пинг", + "Monitor Type": "Монитор тип", + Keyword: "Ключова дума", + "Friendly Name": "Псевдоним", + URL: "URL Адрес", + Hostname: "Име на хост", + Port: "Порт", + "Heartbeat Interval": "Честота на проверка", + Retries: "Повторни опити", + "Heartbeat Retry Interval": "Честота на повторните опити", + Advanced: "Разширени", + "Upside Down Mode": "Обърнат режим", + "Max. Redirects": "Макс. брой пренасочвания", + "Accepted Status Codes": "Допустими статус кодове", + Save: "Запази", + Notifications: "Известявания", + "Not available, please setup.": "Не е налично. Моля, настройте.", + "Setup Notification": "Настройка за известяване", + Light: "Светла", + Dark: "Тъмна", + Auto: "Автоматично", + "Theme - Heartbeat Bar": "Тема - поле проверки", + Normal: "Нормално", + Bottom: "Долу", + None: "Без", + Timezone: "Часова зона", + "Search Engine Visibility": "Видимост за търсачки", + "Allow indexing": "Разреши индексиране", + "Discourage search engines from indexing site": "Обезкуражи индексирането на сайта от търсачките", + "Change Password": "Промени парола", + "Current Password": "Текуща парола", + "New Password": "Нова парола", + "Repeat New Password": "Повторете новата парола", + "Update Password": "Актуализирай парола", + "Disable Auth": "Изключи удостоверяване", + "Enable Auth": "Включи удостоверяване", + Logout: "Изход от профила", + Leave: "Напускам", + "I understand, please disable": "Разбирам. Моля, изключи", + Confirm: "Потвърди", + Yes: "Да", + No: "Не", + Username: "Потребител", + Password: "Парола", + "Remember me": "Запомни ме", + Login: "Вход", + "No Monitors, please": "Моля, без монитори", + "add one": "добави един", + "Notification Type": "Тип известяване", + Email: "Имейл", + Test: "Тест", + "Certificate Info": "Информация за сертификат", + "Resolver Server": "Преобразуващ (DNS) сървър", + "Resource Record Type": "Тип запис", + "Last Result": "Последен резултат", + "Create your admin account": "Създаване на администриращ акаунт", + "Repeat Password": "Повторете паролата", + "Import Backup": "Импорт на архив", + "Export Backup": "Експорт на архив", + Export: "Експорт", + Import: "Импорт", + respTime: "Време за отговор (ms)", + notAvailableShort: "Няма", + "Default enabled": "Включен по подразбиране", + "Apply on all existing monitors": "Приложи върху всички съществуващи монитори", + Create: "Създай", + "Clear Data": "Изчисти данни", + Events: "Събития", + Heartbeats: "Проверки", + "Auto Get": "Автоматияно получаване", + backupDescription: "Можете да архивирате всички монитори и всички известия в JSON файл.", + backupDescription2: "PS: Данни за история и събития не са включени.", + backupDescription3: "Чувствителни данни, като токен кодове за известяване, се съдържат в експортирания файл. Моля, бъдете внимателни с неговото съхранение.", + alertNoFile: "Моля, изберете файл за импортиране.", + alertWrongFileType: "Моля, изберете JSON файл.", + "Clear all statistics": "Изчисти всички статистики", + "Skip existing": "Пропусни съществуващите", + Overwrite: "Презапиши", + Options: "Опции", + "Keep both": "Запази двете", + "Verify Token": "Проверка на токен код", + "Setup 2FA": "Настройка 2FA", + "Enable 2FA": "Включи 2FA", + "Disable 2FA": "Изключи 2FA", + "2FA Settings": "Настройки 2FA", + "Two Factor Authentication": "Двуфакторно удостоверяване", + Active: "Активно", + Inactive: "Неактивно", + Token: "Токен код", + "Show URI": "Покажи URI", + Tags: "Етикети", + "Add New below or Select...": "Добави нов по-долу или избери...", + "Tag with this name already exist.": "Етикет с това име вече съществува.", + "Tag with this value already exist.": "Етикет с тази стойност вече съществува.", + color: "цвят", + "value (optional)": "стойност (по желание)", + Gray: "Сиво", + Red: "Червено", + Orange: "Оранжево", + Green: "Зелено", + Blue: "Синьо", + Indigo: "Индиго", + Purple: "Лилаво", + Pink: "Розово", + "Search...": "Търси...", + "Avg. Ping": "Ср. пинг", + "Avg. Response": "Ср. отговор", + "Entry Page": "Основна страница", + statusPageNothing: "Все още няма нищо тук. Моля, добавете група или монитор.", + "No Services": "Няма Услуги", + "All Systems Operational": "Всички системи функционират", + "Partially Degraded Service": "Частично влошена услуга", + "Degraded Service": "Влошена услуга", + "Add Group": "Добави група", + "Add a monitor": "Добави монитор", + "Edit Status Page": "Редактирай статус страница", + "Go to Dashboard": "Към Таблото", +}; diff --git a/src/languages/da-DK.js b/src/languages/da-DK.js index b778c818..a4df8db8 100644 --- a/src/languages/da-DK.js +++ b/src/languages/da-DK.js @@ -126,57 +126,57 @@ export default { backupDescription3: "Følsom data, f.eks. underretnings-tokener, er inkluderet i eksportfilen. Gem den sikkert.", alertNoFile: "Vælg en fil der skal importeres.", alertWrongFileType: "Vælg venligst en JSON-fil.", - twoFAVerifyLabel: "Please type in your token to verify that 2FA is working", - tokenValidSettingsMsg: "Token is valid! You can now save the 2FA settings.", - confirmEnableTwoFAMsg: "Are you sure you want to enable 2FA?", - confirmDisableTwoFAMsg: "Are you sure you want to disable 2FA?", - "Apply on all existing monitors": "Apply on all existing monitors", - "Verify Token": "Verify Token", - "Setup 2FA": "Setup 2FA", - "Enable 2FA": "Enable 2FA", - "Disable 2FA": "Disable 2FA", - "2FA Settings": "2FA Settings", - "Two Factor Authentication": "Two Factor Authentication", - Active: "Active", - Inactive: "Inactive", + twoFAVerifyLabel: "Indtast venligst dit token for at bekræfte, at 2FA fungerer", + tokenValidSettingsMsg: "Token er gyldigt! Du kan nu gemme 2FA -indstillingerne.", + confirmEnableTwoFAMsg: "Er du sikker på at du vil aktivere 2FA?", + confirmDisableTwoFAMsg: "Er du sikker på at du vil deaktivere 2FA?", + "Apply on all existing monitors": "Anvend på alle eksisterende overvågere", + "Verify Token": "Verificere Token", + "Setup 2FA": "Opsæt 2FA", + "Enable 2FA": "Aktiver 2FA", + "Disable 2FA": "Deaktiver 2FA", + "2FA Settings": "2FA Indstillinger", + "Two Factor Authentication": "To-Faktor Autentificering", + Active: "Aktive", + Inactive: "Inaktive", Token: "Token", - "Show URI": "Show URI", - "Clear all statistics": "Clear all Statistics", - retryCheckEverySecond: "Retry every {0} seconds.", - importHandleDescription: "Choose 'Skip existing' if you want to skip every monitor or notification with the same name. 'Overwrite' will delete every existing monitor and notification.", - confirmImportMsg: "Are you sure to import the backup? Please make sure you've selected the right import option.", - "Heartbeat Retry Interval": "Heartbeat Retry Interval", - "Import Backup": "Import Backup", - "Export Backup": "Export Backup", - "Skip existing": "Skip existing", - Overwrite: "Overwrite", - Options: "Options", - "Keep both": "Keep both", + "Show URI": "Vis URI", + "Clear all statistics": "Ryd alle Statistikker", + retryCheckEverySecond: "Prøv igen hvert {0} sekund.", + importHandleDescription: "Vælg 'Spring over eksisterende', hvis du vil springe over hver overvåger eller underretning med samme navn. 'Overskriv' sletter alle eksisterende overvågere og underretninger.", + confirmImportMsg: "Er du sikker på at importere sikkerhedskopien? Sørg for, at du har valgt den rigtige importindstilling.", + "Heartbeat Retry Interval": "Heartbeat Gentagelsesinterval", + "Import Backup": "Importer Backup", + "Export Backup": "Eksporter Backup", + "Skip existing": "Spring over eksisterende", + Overwrite: "Overskriv", + Options: "Valgmuligheder", + "Keep both": "Behold begge", Tags: "Tags", - "Add New below or Select...": "Add New below or Select...", - "Tag with this name already exist.": "Tag with this name already exist.", - "Tag with this value already exist.": "Tag with this value already exist.", - color: "color", - "value (optional)": "value (optional)", - Gray: "Gray", - Red: "Red", + "Add New below or Select...": "Tilføj Nyt nedenfor eller Vælg ...", + "Tag with this name already exist.": "Et Tag med dette navn findes allerede.", + "Tag with this value already exist.": "Et Tag med denne værdi findes allerede.", + color: "farve", + "value (optional)": "værdi (valgfri)", + Gray: "Grå", + Red: "Rød", Orange: "Orange", - Green: "Green", - Blue: "Blue", + Green: "Grøn", + Blue: "Blå", Indigo: "Indigo", - Purple: "Purple", + Purple: "Lilla", Pink: "Pink", - "Search...": "Search...", - "Avg. Ping": "Avg. Ping", - "Avg. Response": "Avg. Response", - "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", + "Search...": "Søg...", + "Avg. Ping": "Gns. Ping", + "Avg. Response": "Gns. Respons", + "Entry Page": "Entry Side", + "statusPageNothing": "Intet her, tilføj venligst en Gruppe eller en Overvåger.", + "No Services": "Ingen Tjenester", + "All Systems Operational": "Alle Systemer i Drift", + "Partially Degraded Service": "Delvist Forringet Service", + "Degraded Service": "Forringet Service", + "Add Group": "Tilføj Gruppe", + "Add a monitor": "Tilføj en Overvåger", + "Edit Status Page": "Rediger Statusside", + "Go to Dashboard": "Gå til Dashboard", }; diff --git a/src/languages/de-DE.js b/src/languages/de-DE.js index ef2f7653..8f763ddc 100644 --- a/src/languages/de-DE.js +++ b/src/languages/de-DE.js @@ -169,7 +169,7 @@ export default { "Avg. Ping": "Durchsch. Ping", "Avg. Response": "Durchsch. Antwort", "Entry Page": "Einstiegsseite", - "statusPageNothing": "Nichts ist hier, bitte füge eine Gruppe oder Monitor hinzu.", + statusPageNothing: "Nichts ist hier, bitte füge eine Gruppe oder Monitor hinzu.", "No Services": "Keine Dienste", "All Systems Operational": "Alle Systeme Betriebsbereit", "Partially Degraded Service": "Teilweise beeinträchtigter Dienst", diff --git a/src/languages/en.js b/src/languages/en.js index 75d8f30c..c3faca82 100644 --- a/src/languages/en.js +++ b/src/languages/en.js @@ -169,7 +169,7 @@ export default { "Avg. Ping": "Avg. Ping", "Avg. Response": "Avg. Response", "Entry Page": "Entry Page", - "statusPageNothing": "Nothing here, please add a group or a monitor.", + 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", diff --git a/src/languages/es-ES.js b/src/languages/es-ES.js index 7571b130..8d73d2d6 100644 --- a/src/languages/es-ES.js +++ b/src/languages/es-ES.js @@ -170,7 +170,7 @@ export default { "Avg. Ping": "Avg. Ping", "Avg. Response": "Avg. Response", "Entry Page": "Entry Page", - "statusPageNothing": "Nothing here, please add a group or a monitor.", + 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", diff --git a/src/languages/et-EE.js b/src/languages/et-EE.js index b7d9722c..7ba819a1 100644 --- a/src/languages/et-EE.js +++ b/src/languages/et-EE.js @@ -170,7 +170,7 @@ export default { "Avg. Ping": "Avg. Ping", "Avg. Response": "Avg. Response", "Entry Page": "Entry Page", - "statusPageNothing": "Nothing here, please add a group or a monitor.", + 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", diff --git a/src/languages/fr-FR.js b/src/languages/fr-FR.js index 370de594..bc3c5d5d 100644 --- a/src/languages/fr-FR.js +++ b/src/languages/fr-FR.js @@ -109,74 +109,74 @@ export default { respTime: "Temps de réponse (ms)", notAvailableShort: "N/A", Create: "Créer", - clearEventsMsg: "Are you sure want to delete all events for this monitor?", - clearHeartbeatsMsg: "Are you sure want to delete all heartbeats for this monitor?", - confirmClearStatisticsMsg: "Are you sure want to delete ALL statistics?", - "Clear Data": "Clear Data", - Events: "Events", - Heartbeats: "Heartbeats", + clearEventsMsg: "Êtes-vous sûr de vouloir supprimer tous les événements pour cette sonde ?", + clearHeartbeatsMsg: "Êtes-vous sûr de vouloir supprimer tous les vérifications pour cette sonde ? Are you sure want to delete all heartbeats for this monitor?", + confirmClearStatisticsMsg: "tes-vous sûr de vouloir supprimer tous les statistiques ?", + "Clear Data": "Effacer les données", + Events: "Evénements", + Heartbeats: "Vérfications", "Auto Get": "Auto Get", - enableDefaultNotificationDescription: "For every new monitor this notification will be enabled by default. You can still disable the notification separately for each monitor.", - "Default enabled": "Default enabled", - "Also apply to existing monitors": "Also apply to existing monitors", - Export: "Export", - Import: "Import", - backupDescription: "You can backup all monitors and all notifications into a JSON file.", - backupDescription2: "PS: History and event data is not included.", - backupDescription3: "Sensitive data such as notification tokens is included in the export file, please keep it carefully.", - alertNoFile: "Please select a file to import.", - alertWrongFileType: "Please select a JSON file.", - twoFAVerifyLabel: "Please type in your token to verify that 2FA is working", - tokenValidSettingsMsg: "Token is valid! You can now save the 2FA settings.", - confirmEnableTwoFAMsg: "Are you sure you want to enable 2FA?", - confirmDisableTwoFAMsg: "Are you sure you want to disable 2FA?", - "Apply on all existing monitors": "Apply on all existing monitors", - "Verify Token": "Verify Token", - "Setup 2FA": "Setup 2FA", - "Enable 2FA": "Enable 2FA", - "Disable 2FA": "Disable 2FA", - "2FA Settings": "2FA Settings", - "Two Factor Authentication": "Two Factor Authentication", - Active: "Active", - Inactive: "Inactive", - Token: "Token", - "Show URI": "Show URI", - "Clear all statistics": "Clear all Statistics", - retryCheckEverySecond: "Retry every {0} seconds.", - importHandleDescription: "Choose 'Skip existing' if you want to skip every monitor or notification with the same name. 'Overwrite' will delete every existing monitor and notification.", - confirmImportMsg: "Are you sure to import the backup? Please make sure you've selected the right import option.", - "Heartbeat Retry Interval": "Heartbeat Retry Interval", - "Import Backup": "Import Backup", - "Export Backup": "Export Backup", - "Skip existing": "Skip existing", - Overwrite: "Overwrite", + enableDefaultNotificationDescription: "Pour chaque nouvelle sonde, cette notification sera activée par défaut. Vous pouvez toujours désactiver la notification séparément pour chaque sonde.", + "Default enabled": "Activé par défaut", + "Also apply to existing monitors": "S'applique également aux sondes existantes", + Export: "Exporter", + Import: "Importer", + backupDescription: "Vous pouvez sauvegarder toutes les sondes et toutes les notifications dans un fichier JSON.", + backupDescription2: "PS: Les données relatives à l'historique et aux événements ne sont pas incluses.", + backupDescription3: "Les données sensibles telles que les jetons de notification sont incluses dans le fichier d'exportation, veuillez les conserver soigneusement.", + alertNoFile: "Veuillez sélectionner un fichier à importer.", + alertWrongFileType: "Veuillez sélectionner un fichier JSON à importer.", + twoFAVerifyLabel: "Veuillez saisir votre jeton pour vérifier que le système 2FA fonctionne.", + tokenValidSettingsMsg: "Le jeton est valide ! Vous pouvez maintenant sauvegarder les paramètres 2FA.", + confirmEnableTwoFAMsg: "Êtes-vous sûr de vouloir activer le 2FA ?", + confirmDisableTwoFAMsg: "Êtes-vous sûr de vouloir désactiver le 2FA ?", + "Apply on all existing monitors": "Appliquer sur toutes les sondes existantes", + "Verify Token": "Vérifier le jeton", + "Setup 2FA": "Configurer 2FA", + "Enable 2FA": "Activer 2FA", + "Disable 2FA": "Désactiver 2FA", + "2FA Settings": "Paramètres 2FA", + "Two Factor Authentication": "Authentification à deux facteurs", + Active: "Actif", + Inactive: "Inactif", + Token: "Jeton", + "Show URI": "Afficher l'URI", + "Clear all statistics": "Effacer touutes les statistiques", + retryCheckEverySecond: "Réessayer toutes les {0} secondes.", + importHandleDescription: "Choisissez 'Ignorer l'existant' si vous voulez ignorer chaque sonde ou notification portant le même nom. L'option 'Écraser' supprime tous les sondes et notifications existantes.", + confirmImportMsg: "Êtes-vous sûr d'importer la sauvegarde ? Veuillez vous assurer que vous avez sélectionné la bonne option d'importation.", + "Heartbeat Retry Interval": "Réessayer l'intervale de vérification", + "Import Backup": "Importation de la sauvegarde", + "Export Backup": "Exportation de la sauvegarde", + "Skip existing": "Sauter l'existant", + Overwrite: "Ecraser", Options: "Options", - "Keep both": "Keep both", - Tags: "Tags", - "Add New below or Select...": "Add New below or Select...", - "Tag with this name already exist.": "Tag with this name already exist.", - "Tag with this value already exist.": "Tag with this value already exist.", - color: "color", - "value (optional)": "value (optional)", - Gray: "Gray", - Red: "Red", + "Keep both": "Garder les deux", + Tags: "Étiquettes", + "Add New below or Select...": "Ajouter nouveau ci-dessous ou sélectionner...", + "Tag with this name already exist.": "Une étiquette portant ce nom existe déjà.", + "Tag with this value already exist.": "Une étiquette avec cette valeur existe déjà.", + color: "couleur", + "value (optional)": "valeur (facultatif)", + Gray: "Gris", + Red: "Rouge", Orange: "Orange", - Green: "Green", - Blue: "Blue", + Green: "Vert", + Blue: "Bleu", Indigo: "Indigo", - Purple: "Purple", - Pink: "Pink", - "Search...": "Search...", - "Avg. Ping": "Avg. Ping", - "Avg. Response": "Avg. Response", - "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", + Purple: "Violet", + Pink: "Rose", + "Search...": "Rechercher...", + "Avg. Ping": "Ping moyen", + "Avg. Response": "Réponse moyenne", + "Entry Page": "Page d'accueil", + "statusPageNothing": "Rien ici, veuillez ajouter un groupe ou une sonde.", + "No Services": "Aucun service", + "All Systems Operational": "Tous les systèmes sont opérationnels", + "Partially Degraded Service": "Service partiellement dégradé", + "Degraded Service": "Service dégradé", + "Add Group": "Ajouter un groupe", + "Add a monitor": "Ajouter une sonde", + "Edit Status Page": "Modifier la page de statut", + "Go to Dashboard": "Accéder au tableau de bord", }; diff --git a/src/languages/it-IT.js b/src/languages/it-IT.js index 599761a2..9beb9db5 100644 --- a/src/languages/it-IT.js +++ b/src/languages/it-IT.js @@ -73,7 +73,7 @@ export default { "Heartbeat Retry Interval": "Intervallo tra un tentativo di controllo e l'altro", Advanced: "Avanzate", "Upside Down Mode": "Modalità capovolta", - "Max. Redirects": "Redirezionamenti massimi", + "Max. Redirects": "Reindirizzamenti massimi", "Accepted Status Codes": "Codici di stato accettati", Save: "Salva", Notifications: "Notifiche", @@ -166,16 +166,16 @@ export default { Purple: "Viola", Pink: "Rosa", "Search...": "Cerca...", - "Avg. Ping": "Avg. Ping", - "Avg. Response": "Avg. Response", + "Avg. Ping": "Ping medio", + "Avg. Response": "Risposta media", "Entry Page": "Entry Page", - "statusPageNothing": "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", + "statusPageNothing": "Non c'è nulla qui, aggiungere un gruppo oppure un monitoraggio.", + "No Services": "Nessun Servizio", + "All Systems Operational": "Tutti i sistemi sono operativi", + "Partially Degraded Service": "Servizio parzialmente degradato", + "Degraded Service": "Servizio degradato", + "Add Group": "Aggiungi Gruppo", + "Add a monitor": "Aggiungi un monitoraggio", + "Edit Status Page": "Modifica pagina di stato", + "Go to Dashboard": "Vai al Cruscotto", }; diff --git a/src/languages/ja.js b/src/languages/ja.js index bf8e3129..c0985825 100644 --- a/src/languages/ja.js +++ b/src/languages/ja.js @@ -170,7 +170,7 @@ export default { "Avg. Ping": "Avg. Ping", "Avg. Response": "Avg. Response", "Entry Page": "Entry Page", - "statusPageNothing": "Nothing here, please add a group or a monitor.", + 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", diff --git a/src/languages/ko-KR.js b/src/languages/ko-KR.js index fb3d65ea..566f07c1 100644 --- a/src/languages/ko-KR.js +++ b/src/languages/ko-KR.js @@ -170,7 +170,7 @@ export default { "Avg. Ping": "Avg. Ping", "Avg. Response": "Avg. Response", "Entry Page": "Entry Page", - "statusPageNothing": "Nothing here, please add a group or a monitor.", + 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", diff --git a/src/languages/nl-NL.js b/src/languages/nl-NL.js index 35442915..5fa9d4e1 100644 --- a/src/languages/nl-NL.js +++ b/src/languages/nl-NL.js @@ -87,7 +87,7 @@ export default { "Allow indexing": "Indexering toestaan", "Discourage search engines from indexing site": "Ontmoedig zoekmachines om de site te indexeren", "Change Password": "Verander wachtwoord", - "Current Password": "Huidig ​​wachtwoord", + "Current Password": "Huidig wachtwoord", "New Password": "Nieuw wachtwoord", "Repeat New Password": "Herhaal nieuw wachtwoord", "Update Password": "Vernieuw wachtwoord", @@ -170,7 +170,7 @@ export default { "Avg. Ping": "Avg. Ping", "Avg. Response": "Avg. Response", "Entry Page": "Entry Page", - "statusPageNothing": "Nothing here, please add a group or a monitor.", + 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", diff --git a/src/languages/pl.js b/src/languages/pl.js index 65f43aac..00603914 100644 --- a/src/languages/pl.js +++ b/src/languages/pl.js @@ -1,6 +1,6 @@ export default { languageName: "Polski", - checkEverySecond: "Sprawdzaj co {0} sekund.", + checkEverySecond: "Sprawdzam co {0} sekund.", retriesDescription: "Maksymalna liczba powtórzeń, zanim usługa zostanie oznaczona jako wyłączona i zostanie wysłane powiadomienie", ignoreTLSError: "Ignoruj błąd TLS/SSL dla stron HTTPS", upsideDownModeDescription: "Odwróć status do góry nogami. Jeśli usługa jest osiągalna, to jest oznaczona jako niedostępna.", @@ -169,14 +169,14 @@ export default { "Search...": "Szukaj...", "Avg. Ping": "Średni ping", "Avg. Response": "Średnia odpowiedź", - "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", + "Entry Page": "Wejdź na stronę", + "statusPageNothing": "Nic tu nie ma, dodaj monitor lub grupę.", + "No Services": "Brak usług", + "All Systems Operational": "Wszystkie systemy działają", + "Partially Degraded Service": "Częściowy błąd usługi", + "Degraded Service": "Błąd usługi", + "Add Group": "Dodaj grupę", + "Add a monitor": "Dodaj monitoe", + "Edit Status Page": "Edytuj stronę statusu", + "Go to Dashboard": "Idź do panelu", }; diff --git a/src/languages/pt-BR.js b/src/languages/pt-BR.js index 4fc22fef..4f65f603 100644 --- a/src/languages/pt-BR.js +++ b/src/languages/pt-BR.js @@ -170,7 +170,7 @@ export default { "Avg. Response": "Resposta Média. ", "Status Page": "Página de Status", "Entry Page": "Página de entrada", - "statusPageNothing": "Nada aqui, por favor, adicione um grupo ou monitor.", + statusPageNothing: "Nada aqui, por favor, adicione um grupo ou monitor.", "No Services": "Nenhum Serviço", "All Systems Operational": "Todos os Serviços Operacionais", "Partially Degraded Service": "Serviço parcialmente degradado", diff --git a/src/languages/ru-RU.js b/src/languages/ru-RU.js index b27baad1..1686aec4 100644 --- a/src/languages/ru-RU.js +++ b/src/languages/ru-RU.js @@ -1,11 +1,11 @@ export default { languageName: "Русский", - checkEverySecond: "Проверять каждые {0} секунд.", + checkEverySecond: "проверять каждые {0} секунд", retriesDescription: "Максимальное количество попыток перед пометкой сервиса как недоступного и отправкой уведомления", ignoreTLSError: "Игнорировать ошибку TLS/SSL для HTTPS сайтов", upsideDownModeDescription: "Реверс статуса сервиса. Если сервис доступен, то он помечается как НЕДОСТУПНЫЙ.", maxRedirectDescription: "Максимальное количество перенаправлений. Поставьте 0, чтобы отключить перенаправления.", - acceptedStatusCodesDescription: "Выберите коды статусов, которые должны считаться за успешный ответ.", + acceptedStatusCodesDescription: "Выберите коды статусов для определения доступности сервиса.", passwordNotMatchMsg: "Повтор пароля не совпадает.", notificationDescription: "Привяжите уведомления к мониторам.", keywordDescription: "Поиск слова в чистом HTML или в JSON-ответе (чувствительно к регистру)", @@ -16,7 +16,7 @@ export default { rrtypeDescription: "Выберите тип ресурсной записи, который вы хотите отслеживать", pauseMonitorMsg: "Вы действительно хотите поставить на паузу?", Settings: "Настройки", - Dashboard: "Панель", + Dashboard: "Панель мониторов", "New Update": "Обновление", Language: "Язык", Appearance: "Внешний вид", @@ -28,8 +28,8 @@ export default { Add: "Добавить", "Add New Monitor": "Новый монитор", "Quick Stats": "Статистика", - Up: "Доступно", - Down: "Недоступно", + Up: "Доступен", + Down: "Н/Д", Pending: "Ожидание", Unknown: "Неизвестно", Pause: "Пауза", @@ -61,7 +61,7 @@ export default { Retries: "Попыток", Advanced: "Дополнительно", "Upside Down Mode": "Режим реверса статуса", - "Max. Redirects": "Макс. перенаправлений", + "Max. Redirects": "Макс. количество перенаправлений", "Accepted Status Codes": "Допустимые коды статуса", Save: "Сохранить", Notifications: "Уведомления", @@ -112,18 +112,18 @@ export default { clearEventsMsg: "Вы действительно хотите удалить всю статистику событий данного монитора?", clearHeartbeatsMsg: "Вы действительно хотите удалить всю статистику опросов данного монитора?", confirmClearStatisticsMsg: "Вы действительно хотите удалить ВСЮ статистику?", - "Clear Data": "Очистить статистику", + "Clear Data": "Удалить статистику", Events: "События", Heartbeats: "Опросы", "Auto Get": "Авто-получение", enableDefaultNotificationDescription: "Для каждого нового монитора это уведомление будет включено по умолчанию. Вы всё ещё можете отключить уведомления в каждом мониторе отдельно.", "Default enabled": "Использовать по умолчанию", "Also apply to existing monitors": "Применить к существующим мониторам", - Export: "Экспорт", - Import: "Импорт", + Export: "Резервная копия", + Import: "Восстановление", backupDescription: "Вы можете сохранить резервную копию всех мониторов и уведомлений в виде JSON-файла", - backupDescription2: "P.S.: История и события сохранены не будут.", - backupDescription3: "Важные данные, такие как токены уведомлений, добавляются при экспорте, поэтому храните файлы в безопасном месте.", + backupDescription2: "P.S. История и события сохранены не будут", + backupDescription3: "Важные данные, такие как токены уведомлений, добавляются при экспорте, поэтому храните файлы в безопасном месте", alertNoFile: "Выберите файл для импорта.", alertWrongFileType: "Выберите JSON-файл.", twoFAVerifyLabel: "Пожалуйста, введите свой токен, чтобы проверить работу 2FA", @@ -141,19 +141,19 @@ export default { Inactive: "Неактивно", Token: "Токен", "Show URI": "Показать URI", - "Clear all statistics": "Очистить всю статистику", - retryCheckEverySecond: "Повторять каждые {0} секунд.", - importHandleDescription: "Выберите 'Пропустить существующие' если вы хотите пропустить каждый монитор или уведомление с таким же именем. 'Перезаписать' удалит каждый существующий монитор или уведомление.", + "Clear all statistics": "Удалить всю статистику", + retryCheckEverySecond: "повторять каждые {0} секунд", + importHandleDescription: "Выберите \"Пропустить существующие\", если вы хотите пропустить каждый монитор или уведомление с таким же именем. \"Перезаписать\" удалит каждый существующий монитор или уведомление и добавит заново. Вариант \"Не проверять\" принудительно восстанавливает все мониторы и уведомления, даже если они уже существуют.", confirmImportMsg: "Вы действительно хотите восстановить резервную копию? Убедитесь, что вы выбрали подходящий вариант импорта.", "Heartbeat Retry Interval": "Интервал повтора опроса", - "Import Backup": "Импорт резервной копии", - "Export Backup": "Экспорт резервной копии", + "Import Backup": "Восстановление резервной копии", + "Export Backup": "Резервная копия", "Skip existing": "Пропустить существующие", Overwrite: "Перезаписать", Options: "Опции", - "Keep both": "Оставить оба", + "Keep both": "Не проверять", Tags: "Теги", - "Add New below or Select...": "Добавить новое ниже или выбрать...", + "Add New below or Select...": "Добавить новый или выбрать...", "Tag with this name already exist.": "Такой тег уже существует.", "Tag with this value already exist.": "Тег с таким значением уже существует.", color: "цвет", @@ -167,16 +167,21 @@ export default { Purple: "Пурпурный", Pink: "Розовый", "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", + "Avg. Ping": "Средн. пинг", + "Avg. Response": "Средн. ответ", + "Entry Page": "Главная страница", + statusPageNothing: "Здесь пусто. Добавьте группу или монитор.", + "No Services": "Нет сервисов", + "All Systems Operational": "Все сервисы работают", + "Partially Degraded Service": "Сервисы частично не работают", + "Degraded Service": "Все сервисы не работают", + "Add Group": "Добавить группу", + "Add a monitor": "Добавить монитор", + "Edit Status Page": "Редактировать", + "Go to Dashboard": "Панель мониторов", + "Status Page": "Статус сервисов", + "Discard": "Отмена", + "Create Incident": "Создать инцидент", + "Switch to Dark Theme": "Тёмная тема", + "Switch to Light Theme": "Светлая тема", }; diff --git a/src/languages/sr-latn.js b/src/languages/sr-latn.js index 51cb7f8f..e91c3c28 100644 --- a/src/languages/sr-latn.js +++ b/src/languages/sr-latn.js @@ -170,7 +170,7 @@ export default { "Avg. Ping": "Avg. Ping", "Avg. Response": "Avg. Response", "Entry Page": "Entry Page", - "statusPageNothing": "Nothing here, please add a group or a monitor.", + 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", diff --git a/src/languages/sr.js b/src/languages/sr.js index 0c8b6ef4..60240550 100644 --- a/src/languages/sr.js +++ b/src/languages/sr.js @@ -170,7 +170,7 @@ export default { "Avg. Ping": "Avg. Ping", "Avg. Response": "Avg. Response", "Entry Page": "Entry Page", - "statusPageNothing": "Nothing here, please add a group or a monitor.", + 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", diff --git a/src/languages/sv-SE.js b/src/languages/sv-SE.js index de4fbcc7..d7174d34 100644 --- a/src/languages/sv-SE.js +++ b/src/languages/sv-SE.js @@ -170,7 +170,7 @@ export default { "Avg. Ping": "Avg. Ping", "Avg. Response": "Avg. Response", "Entry Page": "Entry Page", - "statusPageNothing": "Nothing here, please add a group or a monitor.", + 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", diff --git a/src/languages/tr-TR.js b/src/languages/tr-TR.js index c73775bb..c7f9af40 100644 --- a/src/languages/tr-TR.js +++ b/src/languages/tr-TR.js @@ -169,7 +169,7 @@ export default { "Avg. Ping": "Avg. Ping", "Avg. Response": "Avg. Response", "Entry Page": "Entry Page", - "statusPageNothing": "Nothing here, please add a group or a monitor.", + 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", diff --git a/src/languages/zh-CN.js b/src/languages/zh-CN.js index cf393cc7..e9b1c20e 100644 --- a/src/languages/zh-CN.js +++ b/src/languages/zh-CN.js @@ -126,57 +126,57 @@ export default { backupDescription3: "导出的文件中可能包含敏感信息,如消息通知的 Token 信息,请小心存放!", alertNoFile: "请选择一个文件导入", alertWrongFileType: "请选择一个 JSON 格式的文件", - twoFAVerifyLabel: "Please type in your token to verify that 2FA is working", - tokenValidSettingsMsg: "Token is valid! You can now save the 2FA settings.", - confirmEnableTwoFAMsg: "Are you sure you want to enable 2FA?", - confirmDisableTwoFAMsg: "Are you sure you want to disable 2FA?", + twoFAVerifyLabel: "请输入Token以验证2FA(二次验证)是否正常工作", + tokenValidSettingsMsg: "Token有效!您现在可以保存2FA(二次验证)设置", + confirmEnableTwoFAMsg: "确定要启用2FA(二次验证)吗?", + confirmDisableTwoFAMsg: "确定要禁用2FA(二次验证)吗?", "Apply on all existing monitors": "应用到所有监控项", - "Verify Token": "Verify Token", - "Setup 2FA": "Setup 2FA", - "Enable 2FA": "Enable 2FA", - "Disable 2FA": "Disable 2FA", - "2FA Settings": "2FA Settings", - "Two Factor Authentication": "Two Factor Authentication", - Active: "Active", - Inactive: "Inactive", + "Verify Token": "验证Token", + "Setup 2FA": "设置2FA", + "Enable 2FA": "启用2FA", + "Disable 2FA": "禁用2FA", + "2FA Settings": "2FA设置", + "Two Factor Authentication": "双因素认证", + Active: "有效", + Inactive: "无效", Token: "Token", - "Show URI": "Show URI", - "Clear all statistics": "Clear all Statistics", - retryCheckEverySecond: "Retry every {0} seconds.", - importHandleDescription: "Choose 'Skip existing' if you want to skip every monitor or notification with the same name. 'Overwrite' will delete every existing monitor and notification.", - confirmImportMsg: "Are you sure to import the backup? Please make sure you've selected the right import option.", - "Heartbeat Retry Interval": "Heartbeat Retry Interval", - "Import Backup": "Import Backup", - "Export Backup": "Export Backup", - "Skip existing": "Skip existing", - Overwrite: "Overwrite", - Options: "Options", - "Keep both": "Keep both", - Tags: "Tags", - "Add New below or Select...": "Add New below or Select...", - "Tag with this name already exist.": "Tag with this name already exist.", - "Tag with this value already exist.": "Tag with this value already exist.", - color: "color", - "value (optional)": "value (optional)", - Gray: "Gray", - Red: "Red", - Orange: "Orange", - Green: "Green", - Blue: "Blue", - Indigo: "Indigo", - Purple: "Purple", - Pink: "Pink", - "Search...": "Search...", - "Avg. Ping": "Avg. Ping", - "Avg. Response": "Avg. Response", - "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", + "Show URI": "显示URI", + "Clear all statistics": "清除所有统计数据", + retryCheckEverySecond: "重试间隔 {0} 秒", + importHandleDescription: "如果想跳过同名的监控项或通知,请选择“跳过”;“覆盖”将删除所有现有的监控项和通知。", + confirmImportMsg: "确定要导入备份吗?请确保已经选择了正确的导入选项。", + "Heartbeat Retry Interval": "心跳重试间隔", + "Import Backup": "导入备份", + "Export Backup": "导出备份", + "Skip existing": "跳过", + Overwrite: "覆盖", + Options: "选项", + "Keep both": "全部保留", + Tags: "标签", + "Add New below or Select...": "在下面新增或选择...", + "Tag with this name already exist.": "相同名称的标签已存在", + "Tag with this value already exist.": "相同内容的标签已存在", + color: "颜色", + "value (optional)": "值(可选)", + Gray: "灰色", + Red: "红色", + Orange: "橙色", + Green: "绿色", + Blue: "蓝色", + Indigo: "靛蓝", + Purple: "紫色", + Pink: "粉色", + "Search...": "搜索...", + "Avg. Ping": "平均Ping", + "Avg. Response": "平均响应", + "Entry Page": "入口页面", + "statusPageNothing": "这里什么也没有,请添加一个分组或一个监控项。", + "No Services": "无服务", + "All Systems Operational": "所有服务运行正常", + "Partially Degraded Service": "部分服务出现故障", + "Degraded Service": "全部服务出现故障", + "Add Group": "新建分组", + "Add a monitor": "添加监控项", + "Edit Status Page": "编辑状态页", + "Go to Dashboard": "前往仪表盘", }; diff --git a/src/languages/zh-HK.js b/src/languages/zh-HK.js index 92714d71..f08d6f13 100644 --- a/src/languages/zh-HK.js +++ b/src/languages/zh-HK.js @@ -170,7 +170,7 @@ export default { "Avg. Ping": "Avg. Ping", "Avg. Response": "Avg. Response", "Entry Page": "Entry Page", - "statusPageNothing": "Nothing here, please add a group or a monitor.", + 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", diff --git a/src/pages/Settings.vue b/src/pages/Settings.vue index 3f7ce23c..8b491b9b 100644 --- a/src/pages/Settings.vue +++ b/src/pages/Settings.vue @@ -322,6 +322,12 @@

لطفا از این امکان با دقت استفاده کنید.

+ +