Fixed Change Language Direction In Setting Page
This commit is contained in:
		
						commit
						f2c7308c96
					
				
					 29 changed files with 605 additions and 301 deletions
				
			
		|  | @ -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 | ||||
|  |  | |||
|  | @ -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 | ||||
|  |  | |||
|  | @ -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. | ||||
|  |  | |||
							
								
								
									
										188
									
								
								package-lock.json
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										188
									
								
								package-lock.json
									
									
									
										generated
									
									
									
								
							|  | @ -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", | ||||
|  |  | |||
|  | @ -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", | ||||
|  |  | |||
							
								
								
									
										25
									
								
								src/App.vue
									
									
									
									
									
								
							
							
						
						
									
										25
									
								
								src/App.vue
									
									
									
									
									
								
							|  | @ -1,27 +1,12 @@ | |||
| <template> | ||||
|     <router-view /> | ||||
|   <router-view /> | ||||
| </template> | ||||
| 
 | ||||
| <script> | ||||
| 
 | ||||
| import { i18n, localeDirection } from "./i18n"; | ||||
| 
 | ||||
| import { setPageLocale } from "./util-frontend"; | ||||
| export default { | ||||
|     created() { | ||||
|      | ||||
|     this.setPageLocale(); | ||||
|   created() { | ||||
|     setPageLocale(); | ||||
|   }, | ||||
|   methods: { | ||||
|       setPageLocale() { | ||||
|         const html = document.documentElement  | ||||
|         html.setAttribute('lang', this.$i18n.locale ) | ||||
|         html.setAttribute('dir', localeDirection() ) | ||||
|       } | ||||
|   }, | ||||
|   watch: { | ||||
|         "$i18n.locale"() { | ||||
|             this.setPageLocale(); | ||||
|         }, | ||||
|     }, | ||||
| } | ||||
| }; | ||||
| </script> | ||||
|  |  | |||
|  | @ -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" | ||||
|  |  | |||
							
								
								
									
										181
									
								
								src/languages/bg-BG.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										181
									
								
								src/languages/bg-BG.js
									
									
									
									
									
										Normal file
									
								
							|  | @ -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": "Към Таблото", | ||||
| }; | ||||
|  | @ -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", | ||||
| }; | ||||
|  |  | |||
|  | @ -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", | ||||
|  |  | |||
|  | @ -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", | ||||
|  |  | |||
|  | @ -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", | ||||
|  |  | |||
|  | @ -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", | ||||
|  |  | |||
|  | @ -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", | ||||
| }; | ||||
|  |  | |||
|  | @ -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", | ||||
| }; | ||||
|  |  | |||
|  | @ -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", | ||||
|  |  | |||
|  | @ -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", | ||||
|  |  | |||
|  | @ -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", | ||||
|  |  | |||
|  | @ -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", | ||||
| }; | ||||
|  |  | |||
|  | @ -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", | ||||
|  |  | |||
|  | @ -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": "Светлая тема", | ||||
| }; | ||||
|  |  | |||
|  | @ -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", | ||||
|  |  | |||
|  | @ -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", | ||||
|  |  | |||
|  | @ -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", | ||||
|  |  | |||
|  | @ -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", | ||||
|  |  | |||
|  | @ -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": "前往仪表盘", | ||||
| }; | ||||
|  |  | |||
|  | @ -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", | ||||
|  |  | |||
|  | @ -322,6 +322,12 @@ | |||
|                     <p>لطفا از این امکان با دقت استفاده کنید.</p> | ||||
|                 </template> | ||||
| 
 | ||||
|                 <template v-else-if="$i18n.locale === 'bg-BG' "> | ||||
|                     <p>Сигурни ли сте, че желаете да <strong>изключите удостоверяването</strong>?</p> | ||||
|                     <p>Използва се в случаите, когато <strong>има настроен алтернативен метод за удостоверяване</strong> преди Uptime Kuma, например Cloudflare Access.</p> | ||||
|                     <p>Моля, използвайте внимателно.</p> | ||||
|                 </template> | ||||
| 
 | ||||
|                 <!-- English (en) --> | ||||
|                 <template v-else> | ||||
|                     <p>Are you sure want to <strong>disable auth</strong>?</p> | ||||
|  | @ -350,8 +356,9 @@ import TwoFADialog from "../components/TwoFADialog.vue"; | |||
| dayjs.extend(utc); | ||||
| dayjs.extend(timezone); | ||||
| 
 | ||||
| import { timezoneList } from "../util-frontend"; | ||||
| import { timezoneList, setPageLocale } from "../util-frontend"; | ||||
| import { useToast } from "vue-toastification"; | ||||
| 
 | ||||
| const toast = useToast(); | ||||
| 
 | ||||
| export default { | ||||
|  | @ -387,6 +394,7 @@ export default { | |||
| 
 | ||||
|         "$i18n.locale"() { | ||||
|             localStorage.locale = this.$i18n.locale; | ||||
|             setPageLocale() | ||||
|         }, | ||||
|     }, | ||||
| 
 | ||||
|  |  | |||
|  | @ -2,6 +2,7 @@ import dayjs from "dayjs"; | |||
| import timezone from "dayjs/plugin/timezone"; | ||||
| import utc from "dayjs/plugin/utc"; | ||||
| import timezones from "timezones-list"; | ||||
| import { localeDirection, currentLocale } from "./i18n"; | ||||
| 
 | ||||
| dayjs.extend(utc); | ||||
| dayjs.extend(timezone); | ||||
|  | @ -30,7 +31,7 @@ export function timezoneList() { | |||
|                 time: getTimezoneOffset(timezone.tzCode), | ||||
|             }); | ||||
|         } catch (e) { | ||||
|             console.log("Skip Timezone: " + timezone.tzCode); | ||||
|             // Skipping not supported timezone.tzCode by dayjs
 | ||||
|         } | ||||
|     } | ||||
| 
 | ||||
|  | @ -48,3 +49,9 @@ export function timezoneList() { | |||
| 
 | ||||
|     return result; | ||||
| } | ||||
| 
 | ||||
| export function setPageLocale() { | ||||
|     const html = document.documentElement  | ||||
|     html.setAttribute('lang', currentLocale() ) | ||||
|     html.setAttribute('dir', localeDirection() ) | ||||
|   } | ||||
		Loading…
	
		Reference in a new issue