mirror of
https://github.com/NginxProxyManager/nginx-proxy-manager.git
synced 2025-12-06 08:16:51 +00:00
Compare commits
92 Commits
118c4793e3
...
dependabot
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
f4081b34e0 | ||
|
|
fec8b3b083 | ||
|
|
d18c8cf4f1 | ||
|
|
bf4eab541a | ||
|
|
f9edcb10e6 | ||
|
|
ba43c144f6 | ||
|
|
896951f6cd | ||
|
|
865b566ea6 | ||
|
|
45bc44c6fa | ||
|
|
4ff402fff4 | ||
|
|
1c6f54fa3c | ||
|
|
e8ca72fb6a | ||
|
|
4712633568 | ||
|
|
a1fb54c394 | ||
|
|
e353a66556 | ||
|
|
991bddf891 | ||
|
|
c076ad145c | ||
|
|
80cf4406d5 | ||
|
|
3cb124d5a0 | ||
|
|
03b0513a24 | ||
|
|
0528d65317 | ||
|
|
f9991084fc | ||
|
|
20e2d5ffb3 | ||
|
|
e3cdc8bb30 | ||
|
|
ba79eefe5e | ||
|
|
bb94ce75c1 | ||
|
|
89b8b747e1 | ||
|
|
3231023513 | ||
|
|
dc89635971 | ||
|
|
cfa98361d1 | ||
|
|
c2177abe39 | ||
|
|
2c6d614597 | ||
|
|
484ce8db3c | ||
|
|
2c11c0c7e2 | ||
|
|
f1039ce2ef | ||
|
|
d49ff6e7c2 | ||
|
|
a87f24c9dc | ||
|
|
decdfec447 | ||
|
|
32ab3faf57 | ||
|
|
c7f999fa7a | ||
|
|
de7d3b0d19 | ||
|
|
2d4b7399c0 | ||
|
|
316b758455 | ||
|
|
890d06c863 | ||
|
|
81f2aa17d4 | ||
|
|
9b4c34915c | ||
|
|
fce569ca21 | ||
|
|
87ec9c4bdf | ||
|
|
2650648d68 | ||
|
|
fdc0c29f28 | ||
|
|
6cae088432 | ||
|
|
9d8c4cc30b | ||
|
|
66ebecdb43 | ||
|
|
60f3ee03c0 | ||
|
|
a4d54a0291 | ||
|
|
7536b1b1c9 | ||
|
|
5288fbd7af | ||
|
|
2c630bbdca | ||
|
|
0ec1a09c30 | ||
|
|
0bcfe0bba6 | ||
|
|
74cbfb2c58 | ||
|
|
8ef65caa5a | ||
|
|
bc341c1dff | ||
|
|
5fc9febf1f | ||
|
|
b23ceebfd8 | ||
|
|
c281fc54a1 | ||
|
|
d0f7dc5b48 | ||
|
|
fb53df862e | ||
|
|
8d8463ae41 | ||
|
|
8774cfe5f9 | ||
|
|
4ca5cadd19 | ||
|
|
45a8d50e03 | ||
|
|
960d4bfe6f | ||
|
|
8c3c964c52 | ||
|
|
afd6134a3e | ||
|
|
9b2d60e67b | ||
|
|
9807e25d45 | ||
|
|
824c895f52 | ||
|
|
7f9b9dfea4 | ||
|
|
d848ba9f65 | ||
|
|
47db5c9aa6 | ||
|
|
1c442dcce6 | ||
|
|
dadd10f89b | ||
|
|
75c012b558 | ||
|
|
9be1381ffe | ||
|
|
f40fe56572 | ||
|
|
911476f82f | ||
|
|
e86a34f2f3 | ||
|
|
f02145c5ef | ||
|
|
66fa08fd8e | ||
|
|
d783cc3b90 | ||
|
|
17cc75fe7d |
@@ -1,7 +1,7 @@
|
||||
<p align="center">
|
||||
<img src="https://nginxproxymanager.com/github.png">
|
||||
<br><br>
|
||||
<img src="https://img.shields.io/badge/version-2.13.4-green.svg?style=for-the-badge">
|
||||
<img src="https://img.shields.io/badge/version-2.13.5-green.svg?style=for-the-badge">
|
||||
<a href="https://hub.docker.com/repository/docker/jc21/nginx-proxy-manager">
|
||||
<img src="https://img.shields.io/docker/stars/jc21/nginx-proxy-manager.svg?style=for-the-badge">
|
||||
</a>
|
||||
|
||||
@@ -255,6 +255,14 @@
|
||||
"credentials": "dns_gcore_apitoken = 0123456789abcdef0123456789abcdef01234567",
|
||||
"full_plugin_name": "dns-gcore"
|
||||
},
|
||||
"glesys": {
|
||||
"name": "Glesys",
|
||||
"package_name": "certbot-dns-glesys",
|
||||
"version": "~=2.1.0",
|
||||
"dependencies": "",
|
||||
"credentials": "dns_glesys_user = CL00000\ndns_glesys_password = apikeyvalue",
|
||||
"full_plugin_name": "dns-glesys"
|
||||
},
|
||||
"godaddy": {
|
||||
"name": "GoDaddy",
|
||||
"package_name": "certbot-dns-godaddy",
|
||||
@@ -482,7 +490,7 @@
|
||||
"porkbun": {
|
||||
"name": "Porkbun",
|
||||
"package_name": "certbot-dns-porkbun",
|
||||
"version": "~=0.9",
|
||||
"version": "~=0.11.0",
|
||||
"dependencies": "",
|
||||
"credentials": "dns_porkbun_key=your-porkbun-api-key\ndns_porkbun_secret=your-porkbun-api-secret",
|
||||
"full_plugin_name": "dns-porkbun"
|
||||
|
||||
@@ -19,7 +19,7 @@
|
||||
"bcrypt": "^5.0.0",
|
||||
"body-parser": "^1.20.3",
|
||||
"compression": "^1.7.4",
|
||||
"express": "^4.20.0",
|
||||
"express": "^4.22.0",
|
||||
"express-fileupload": "^1.5.2",
|
||||
"gravatar": "^1.8.2",
|
||||
"jsonwebtoken": "^9.0.2",
|
||||
|
||||
@@ -389,23 +389,23 @@ blueimp-md5@^2.16.0:
|
||||
resolved "https://registry.yarnpkg.com/blueimp-md5/-/blueimp-md5-2.19.0.tgz#b53feea5498dcb53dc6ec4b823adb84b729c4af0"
|
||||
integrity sha512-DRQrD6gJyy8FbiE4s+bDoXS9hiW3Vbx5uCdwvcCf3zLHL+Iv7LtGHLpr+GZV8rHG8tK766FGYBwRbu8pELTt+w==
|
||||
|
||||
body-parser@1.20.3, body-parser@^1.20.3:
|
||||
version "1.20.3"
|
||||
resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.20.3.tgz#1953431221c6fb5cd63c4b36d53fab0928e548c6"
|
||||
integrity sha512-7rAxByjUMqQ3/bHJy7D6OGXvx/MMc4IqBn/X0fcM1QUcAItpZrBEYhWGem+tzXH90c+G01ypMcYJBO9Y30203g==
|
||||
body-parser@^1.20.3, body-parser@~1.20.3:
|
||||
version "1.20.4"
|
||||
resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.20.4.tgz#f8e20f4d06ca8a50a71ed329c15dccad1cdc547f"
|
||||
integrity sha512-ZTgYYLMOXY9qKU/57FAo8F+HA2dGX7bqGc71txDRC1rS4frdFI5R7NhluHxH6M0YItAP0sHB4uqAOcYKxO6uGA==
|
||||
dependencies:
|
||||
bytes "3.1.2"
|
||||
bytes "~3.1.2"
|
||||
content-type "~1.0.5"
|
||||
debug "2.6.9"
|
||||
depd "2.0.0"
|
||||
destroy "1.2.0"
|
||||
http-errors "2.0.0"
|
||||
iconv-lite "0.4.24"
|
||||
on-finished "2.4.1"
|
||||
qs "6.13.0"
|
||||
raw-body "2.5.2"
|
||||
destroy "~1.2.0"
|
||||
http-errors "~2.0.1"
|
||||
iconv-lite "~0.4.24"
|
||||
on-finished "~2.4.1"
|
||||
qs "~6.14.0"
|
||||
raw-body "~2.5.3"
|
||||
type-is "~1.6.18"
|
||||
unpipe "1.0.0"
|
||||
unpipe "~1.0.0"
|
||||
|
||||
brace-expansion@^1.1.7:
|
||||
version "1.1.12"
|
||||
@@ -454,7 +454,7 @@ busboy@^1.6.0:
|
||||
dependencies:
|
||||
streamsearch "^1.1.0"
|
||||
|
||||
bytes@3.1.2:
|
||||
bytes@3.1.2, bytes@~3.1.2:
|
||||
version "3.1.2"
|
||||
resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.2.tgz#8b0beeb98605adf1b128fa4386403c009e0221a5"
|
||||
integrity sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==
|
||||
@@ -649,7 +649,7 @@ console-control-strings@^1.0.0, console-control-strings@^1.1.0:
|
||||
resolved "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e"
|
||||
integrity sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==
|
||||
|
||||
content-disposition@0.5.4:
|
||||
content-disposition@~0.5.4:
|
||||
version "0.5.4"
|
||||
resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.4.tgz#8b82b4efac82512a02bb0b1dcec9d2c5e8eb5bfe"
|
||||
integrity sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==
|
||||
@@ -661,15 +661,15 @@ content-type@~1.0.4, content-type@~1.0.5:
|
||||
resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.5.tgz#8b773162656d1d1086784c8f23a54ce6d73d7918"
|
||||
integrity sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==
|
||||
|
||||
cookie-signature@1.0.6:
|
||||
version "1.0.6"
|
||||
resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c"
|
||||
integrity sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==
|
||||
cookie-signature@~1.0.6:
|
||||
version "1.0.7"
|
||||
resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.7.tgz#ab5dd7ab757c54e60f37ef6550f481c426d10454"
|
||||
integrity sha512-NXdYc3dLr47pBkpUCHtKSwIOQXLVn8dZEuywboCOJY/osA0wFSLlSawr3KN8qXJEyX66FcONTH8EIlVuK0yyFA==
|
||||
|
||||
cookie@0.7.1:
|
||||
version "0.7.1"
|
||||
resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.7.1.tgz#2f73c42142d5d5cf71310a74fc4ae61670e5dbc9"
|
||||
integrity sha512-6DnInpx7SJ2AK3+CTUE/ZM0vWTUboZCegxhC2xiIydHR9jNuTAASBrfEpHhiGOZw/nX51bHt6YQl8jsGo4y/0w==
|
||||
cookie@~0.7.1:
|
||||
version "0.7.2"
|
||||
resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.7.2.tgz#556369c472a2ba910f2979891b526b3436237ed7"
|
||||
integrity sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w==
|
||||
|
||||
core-util-is@~1.0.0:
|
||||
version "1.0.3"
|
||||
@@ -706,10 +706,10 @@ debug@2.6.9:
|
||||
dependencies:
|
||||
ms "2.0.0"
|
||||
|
||||
debug@4, debug@^4.3.3:
|
||||
version "4.4.1"
|
||||
resolved "https://registry.yarnpkg.com/debug/-/debug-4.4.1.tgz#e5a8bc6cbc4c6cd3e64308b0693a3d4fa550189b"
|
||||
integrity sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ==
|
||||
debug@4, debug@^4.3.3, debug@^4.3.4:
|
||||
version "4.4.3"
|
||||
resolved "https://registry.yarnpkg.com/debug/-/debug-4.4.3.tgz#c6ae432d9bd9662582fce08709b038c58e9e3d6a"
|
||||
integrity sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==
|
||||
dependencies:
|
||||
ms "^2.1.3"
|
||||
|
||||
@@ -727,13 +727,6 @@ debug@^3.2.7:
|
||||
dependencies:
|
||||
ms "^2.1.1"
|
||||
|
||||
debug@^4.3.4:
|
||||
version "4.4.3"
|
||||
resolved "https://registry.yarnpkg.com/debug/-/debug-4.4.3.tgz#c6ae432d9bd9662582fce08709b038c58e9e3d6a"
|
||||
integrity sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==
|
||||
dependencies:
|
||||
ms "^2.1.3"
|
||||
|
||||
decamelize@^1.2.0:
|
||||
version "1.2.0"
|
||||
resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290"
|
||||
@@ -770,12 +763,12 @@ denque@^2.1.0:
|
||||
resolved "https://registry.yarnpkg.com/denque/-/denque-2.1.0.tgz#e93e1a6569fb5e66f16a3c2a2964617d349d6ab1"
|
||||
integrity sha512-HVQE3AAb/pxF8fQAoiqpvg9i3evqug3hoiwakOyZAwJm+6vZehbkYXZ0l4JxS+I3QxM97v5aaRNhj8v5oBhekw==
|
||||
|
||||
depd@2.0.0:
|
||||
depd@2.0.0, depd@~2.0.0:
|
||||
version "2.0.0"
|
||||
resolved "https://registry.yarnpkg.com/depd/-/depd-2.0.0.tgz#b696163cc757560d09cf22cc8fad1571b79e76df"
|
||||
integrity sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==
|
||||
|
||||
destroy@1.2.0:
|
||||
destroy@1.2.0, destroy@~1.2.0:
|
||||
version "1.2.0"
|
||||
resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.2.0.tgz#4803735509ad8be552934c67df614f94e66fa015"
|
||||
integrity sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==
|
||||
@@ -937,39 +930,39 @@ express-fileupload@^1.5.2:
|
||||
dependencies:
|
||||
busboy "^1.6.0"
|
||||
|
||||
express@^4.20.0:
|
||||
version "4.21.2"
|
||||
resolved "https://registry.yarnpkg.com/express/-/express-4.21.2.tgz#cf250e48362174ead6cea4a566abef0162c1ec32"
|
||||
integrity sha512-28HqgMZAmih1Czt9ny7qr6ek2qddF4FclbMzwhCREB6OFfH+rXAnuNCwo1/wFvrtbgsQDb4kSbX9de9lFbrXnA==
|
||||
express@^4.22.0:
|
||||
version "4.22.0"
|
||||
resolved "https://registry.yarnpkg.com/express/-/express-4.22.0.tgz#a9d7abdce6d774ed1b4479019387763d1798bd03"
|
||||
integrity sha512-c2iPh3xp5vvCLgaHK03+mWLFPhox7j1LwyxcZwFVApEv5i0X+IjPpbT50SJJwwLpdBVfp45AkK/v+AFgv/XlfQ==
|
||||
dependencies:
|
||||
accepts "~1.3.8"
|
||||
array-flatten "1.1.1"
|
||||
body-parser "1.20.3"
|
||||
content-disposition "0.5.4"
|
||||
body-parser "~1.20.3"
|
||||
content-disposition "~0.5.4"
|
||||
content-type "~1.0.4"
|
||||
cookie "0.7.1"
|
||||
cookie-signature "1.0.6"
|
||||
cookie "~0.7.1"
|
||||
cookie-signature "~1.0.6"
|
||||
debug "2.6.9"
|
||||
depd "2.0.0"
|
||||
encodeurl "~2.0.0"
|
||||
escape-html "~1.0.3"
|
||||
etag "~1.8.1"
|
||||
finalhandler "1.3.1"
|
||||
fresh "0.5.2"
|
||||
http-errors "2.0.0"
|
||||
finalhandler "~1.3.1"
|
||||
fresh "~0.5.2"
|
||||
http-errors "~2.0.0"
|
||||
merge-descriptors "1.0.3"
|
||||
methods "~1.1.2"
|
||||
on-finished "2.4.1"
|
||||
on-finished "~2.4.1"
|
||||
parseurl "~1.3.3"
|
||||
path-to-regexp "0.1.12"
|
||||
path-to-regexp "~0.1.12"
|
||||
proxy-addr "~2.0.7"
|
||||
qs "6.13.0"
|
||||
qs "~6.14.0"
|
||||
range-parser "~1.2.1"
|
||||
safe-buffer "5.2.1"
|
||||
send "0.19.0"
|
||||
serve-static "1.16.2"
|
||||
send "~0.19.0"
|
||||
serve-static "~1.16.2"
|
||||
setprototypeof "1.2.0"
|
||||
statuses "2.0.1"
|
||||
statuses "~2.0.1"
|
||||
type-is "~1.6.18"
|
||||
utils-merge "1.0.1"
|
||||
vary "~1.1.2"
|
||||
@@ -1003,17 +996,17 @@ fill-range@^7.1.1:
|
||||
dependencies:
|
||||
to-regex-range "^5.0.1"
|
||||
|
||||
finalhandler@1.3.1:
|
||||
version "1.3.1"
|
||||
resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.3.1.tgz#0c575f1d1d324ddd1da35ad7ece3df7d19088019"
|
||||
integrity sha512-6BN9trH7bp3qvnrRyzsBz+g3lZxTNZTbVO2EV1CS0WIcDbawYVdYvGflME/9QP0h0pYlCDBCTjYa9nZzMDpyxQ==
|
||||
finalhandler@~1.3.1:
|
||||
version "1.3.2"
|
||||
resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.3.2.tgz#1ebc2228fc7673aac4a472c310cc05b77d852b88"
|
||||
integrity sha512-aA4RyPcd3badbdABGDuTXCMTtOneUCAYH/gxoYRTZlIJdF0YPWuGqiAsIrhNnnqdXGswYk6dGujem4w80UJFhg==
|
||||
dependencies:
|
||||
debug "2.6.9"
|
||||
encodeurl "~2.0.0"
|
||||
escape-html "~1.0.3"
|
||||
on-finished "2.4.1"
|
||||
on-finished "~2.4.1"
|
||||
parseurl "~1.3.3"
|
||||
statuses "2.0.1"
|
||||
statuses "~2.0.2"
|
||||
unpipe "~1.0.0"
|
||||
|
||||
find-up@^2.0.0:
|
||||
@@ -1036,7 +1029,7 @@ forwarded@0.2.0:
|
||||
resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.2.0.tgz#2269936428aad4c15c7ebe9779a84bf0b2a81811"
|
||||
integrity sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==
|
||||
|
||||
fresh@0.5.2:
|
||||
fresh@0.5.2, fresh@~0.5.2:
|
||||
version "0.5.2"
|
||||
resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7"
|
||||
integrity sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==
|
||||
@@ -1239,6 +1232,17 @@ http-errors@2.0.0:
|
||||
statuses "2.0.1"
|
||||
toidentifier "1.0.1"
|
||||
|
||||
http-errors@~2.0.0, http-errors@~2.0.1:
|
||||
version "2.0.1"
|
||||
resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-2.0.1.tgz#36d2f65bc909c8790018dd36fb4d93da6caae06b"
|
||||
integrity sha512-4FbRdAX+bSdmo4AUFuS0WNiPz8NgFt+r8ThgNWmlrjQjt1Q7ZR9+zTlce2859x4KSXrwIsaeTqDoKQmtP8pLmQ==
|
||||
dependencies:
|
||||
depd "~2.0.0"
|
||||
inherits "~2.0.4"
|
||||
setprototypeof "~1.2.0"
|
||||
statuses "~2.0.2"
|
||||
toidentifier "~1.0.1"
|
||||
|
||||
http-proxy-agent@^4.0.1:
|
||||
version "4.0.1"
|
||||
resolved "https://registry.yarnpkg.com/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz#8a8c8ef7f5932ccf953c296ca8291b95aa74aa3a"
|
||||
@@ -1279,13 +1283,6 @@ humanize-ms@^1.2.1:
|
||||
dependencies:
|
||||
ms "^2.0.0"
|
||||
|
||||
iconv-lite@0.4.24:
|
||||
version "0.4.24"
|
||||
resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b"
|
||||
integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==
|
||||
dependencies:
|
||||
safer-buffer ">= 2.1.2 < 3"
|
||||
|
||||
iconv-lite@^0.6.2:
|
||||
version "0.6.3"
|
||||
resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.6.3.tgz#a52f80bf38da1952eb5c681790719871a1a72501"
|
||||
@@ -1300,6 +1297,13 @@ iconv-lite@^0.7.0:
|
||||
dependencies:
|
||||
safer-buffer ">= 2.1.2 < 3.0.0"
|
||||
|
||||
iconv-lite@~0.4.24:
|
||||
version "0.4.24"
|
||||
resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b"
|
||||
integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==
|
||||
dependencies:
|
||||
safer-buffer ">= 2.1.2 < 3"
|
||||
|
||||
ieee754@^1.1.13:
|
||||
version "1.2.1"
|
||||
resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352"
|
||||
@@ -1333,7 +1337,7 @@ inflight@^1.0.4:
|
||||
once "^1.3.0"
|
||||
wrappy "1"
|
||||
|
||||
inherits@2, inherits@2.0.4, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.3:
|
||||
inherits@2, inherits@2.0.4, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.3, inherits@~2.0.4:
|
||||
version "2.0.4"
|
||||
resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c"
|
||||
integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==
|
||||
@@ -1430,9 +1434,9 @@ isexe@^2.0.0:
|
||||
integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==
|
||||
|
||||
js-yaml@^4.1.0:
|
||||
version "4.1.0"
|
||||
resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.0.tgz#c1fb65f8f5017901cdd2c951864ba18458a10602"
|
||||
integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==
|
||||
version "4.1.1"
|
||||
resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.1.tgz#854c292467705b699476e1a2decc0c8a3458806b"
|
||||
integrity sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==
|
||||
dependencies:
|
||||
argparse "^2.0.1"
|
||||
|
||||
@@ -1959,7 +1963,7 @@ objection@3.0.1:
|
||||
ajv "^8.6.2"
|
||||
db-errors "^0.2.3"
|
||||
|
||||
on-finished@2.4.1:
|
||||
on-finished@2.4.1, on-finished@~2.4.1:
|
||||
version "2.4.1"
|
||||
resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.4.1.tgz#58c8c44116e54845ad57f14ab10b03533184ac3f"
|
||||
integrity sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==
|
||||
@@ -2078,7 +2082,7 @@ path-parse@^1.0.7:
|
||||
resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735"
|
||||
integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==
|
||||
|
||||
path-to-regexp@0.1.12:
|
||||
path-to-regexp@~0.1.12:
|
||||
version "0.1.12"
|
||||
resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.12.tgz#d5e1a12e478a976d432ef3c58d534b9923164bb7"
|
||||
integrity sha512-RA1GjUVMnvYFxuqovrEqZoxxW5NUZqbwKtYz/Tt7nXerk0LbLblQmrsgdeOxV5SFHf0UDggjS/bSeOZwt1pmEQ==
|
||||
@@ -2273,12 +2277,12 @@ pump@^3.0.0:
|
||||
end-of-stream "^1.1.0"
|
||||
once "^1.3.1"
|
||||
|
||||
qs@6.13.0:
|
||||
version "6.13.0"
|
||||
resolved "https://registry.yarnpkg.com/qs/-/qs-6.13.0.tgz#6ca3bd58439f7e245655798997787b0d88a51906"
|
||||
integrity sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==
|
||||
qs@~6.14.0:
|
||||
version "6.14.0"
|
||||
resolved "https://registry.yarnpkg.com/qs/-/qs-6.14.0.tgz#c63fa40680d2c5c941412a0e899c89af60c0a930"
|
||||
integrity sha512-YWWTjgABSKcvs/nWBi9PycY/JiPJqOD4JA6o9Sej2AtvSGarXxKC3OQSk4pAarbdQlKAh5D4FCQkJNkW+GAn3w==
|
||||
dependencies:
|
||||
side-channel "^1.0.6"
|
||||
side-channel "^1.1.0"
|
||||
|
||||
querystring@0.2.0:
|
||||
version "0.2.0"
|
||||
@@ -2290,15 +2294,15 @@ range-parser@~1.2.1:
|
||||
resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031"
|
||||
integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==
|
||||
|
||||
raw-body@2.5.2:
|
||||
version "2.5.2"
|
||||
resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.5.2.tgz#99febd83b90e08975087e8f1f9419a149366b68a"
|
||||
integrity sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==
|
||||
raw-body@~2.5.3:
|
||||
version "2.5.3"
|
||||
resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.5.3.tgz#11c6650ee770a7de1b494f197927de0c923822e2"
|
||||
integrity sha512-s4VSOf6yN0rvbRZGxs8Om5CWj6seneMwK3oDb4lWDH0UPhWcxwOWw5+qk24bxq87szX1ydrwylIOp2uG1ojUpA==
|
||||
dependencies:
|
||||
bytes "3.1.2"
|
||||
http-errors "2.0.0"
|
||||
iconv-lite "0.4.24"
|
||||
unpipe "1.0.0"
|
||||
bytes "~3.1.2"
|
||||
http-errors "~2.0.1"
|
||||
iconv-lite "~0.4.24"
|
||||
unpipe "~1.0.0"
|
||||
|
||||
rc@^1.2.7:
|
||||
version "1.2.8"
|
||||
@@ -2448,12 +2452,31 @@ send@0.19.0:
|
||||
range-parser "~1.2.1"
|
||||
statuses "2.0.1"
|
||||
|
||||
send@~0.19.0:
|
||||
version "0.19.1"
|
||||
resolved "https://registry.yarnpkg.com/send/-/send-0.19.1.tgz#1c2563b2ee4fe510b806b21ec46f355005a369f9"
|
||||
integrity sha512-p4rRk4f23ynFEfcD9LA0xRYngj+IyGiEYyqqOak8kaN0TvNmuxC2dcVeBn62GpCeR2CpWqyHCNScTP91QbAVFg==
|
||||
dependencies:
|
||||
debug "2.6.9"
|
||||
depd "2.0.0"
|
||||
destroy "1.2.0"
|
||||
encodeurl "~2.0.0"
|
||||
escape-html "~1.0.3"
|
||||
etag "~1.8.1"
|
||||
fresh "0.5.2"
|
||||
http-errors "2.0.0"
|
||||
mime "1.6.0"
|
||||
ms "2.1.3"
|
||||
on-finished "2.4.1"
|
||||
range-parser "~1.2.1"
|
||||
statuses "2.0.1"
|
||||
|
||||
seq-queue@^0.0.5:
|
||||
version "0.0.5"
|
||||
resolved "https://registry.yarnpkg.com/seq-queue/-/seq-queue-0.0.5.tgz#d56812e1c017a6e4e7c3e3a37a1da6d78dd3c93e"
|
||||
integrity sha512-hr3Wtp/GZIc/6DAGPDcV4/9WoZhjrkXsi5B/07QgX8tsdc6ilr7BFM6PM6rbdAX1kFSDYeZGLipIZZKyQP0O5Q==
|
||||
|
||||
serve-static@1.16.2:
|
||||
serve-static@~1.16.2:
|
||||
version "1.16.2"
|
||||
resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.16.2.tgz#b6a5343da47f6bdd2673848bf45754941e803296"
|
||||
integrity sha512-VqpjJZKadQB/PEbEwvFdO43Ax5dFBZ2UECszz8bQ7pi7wt//PWe1P6MN7eCnjsatYtBT6EuiClbjSWP2WrIoTw==
|
||||
@@ -2468,7 +2491,7 @@ set-blocking@^2.0.0:
|
||||
resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7"
|
||||
integrity sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==
|
||||
|
||||
setprototypeof@1.2.0:
|
||||
setprototypeof@1.2.0, setprototypeof@~1.2.0:
|
||||
version "1.2.0"
|
||||
resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.2.0.tgz#66c9a24a73f9fc28cbe66b09fed3d33dcaf1b424"
|
||||
integrity sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==
|
||||
@@ -2502,7 +2525,7 @@ side-channel-weakmap@^1.0.2:
|
||||
object-inspect "^1.13.3"
|
||||
side-channel-map "^1.0.1"
|
||||
|
||||
side-channel@^1.0.6:
|
||||
side-channel@^1.1.0:
|
||||
version "1.1.0"
|
||||
resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.1.0.tgz#c3fcff9c4da932784873335ec9765fa94ff66bc9"
|
||||
integrity sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==
|
||||
@@ -2618,6 +2641,11 @@ statuses@2.0.1:
|
||||
resolved "https://registry.yarnpkg.com/statuses/-/statuses-2.0.1.tgz#55cb000ccf1d48728bd23c685a063998cf1a1b63"
|
||||
integrity sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==
|
||||
|
||||
statuses@~2.0.1, statuses@~2.0.2:
|
||||
version "2.0.2"
|
||||
resolved "https://registry.yarnpkg.com/statuses/-/statuses-2.0.2.tgz#8f75eecef765b5e1cfcdc080da59409ed424e382"
|
||||
integrity sha512-DvEy55V3DB7uknRo+4iOGT5fP1slR8wQohVdknigZPMpMstaKJQWhwiYBACJE3Ul2pTnATihhBYnRhZQHGBiRw==
|
||||
|
||||
streamsearch@^1.1.0:
|
||||
version "1.1.0"
|
||||
resolved "https://registry.yarnpkg.com/streamsearch/-/streamsearch-1.1.0.tgz#404dd1e2247ca94af554e841a8ef0eaa238da764"
|
||||
@@ -2748,7 +2776,7 @@ to-regex-range@^5.0.1:
|
||||
dependencies:
|
||||
is-number "^7.0.0"
|
||||
|
||||
toidentifier@1.0.1:
|
||||
toidentifier@1.0.1, toidentifier@~1.0.1:
|
||||
version "1.0.1"
|
||||
resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.1.tgz#3be34321a88a820ed1bd80dfaa33e479fbb8dd35"
|
||||
integrity sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==
|
||||
@@ -2802,7 +2830,7 @@ unique-slug@^2.0.0:
|
||||
dependencies:
|
||||
imurmurhash "^0.1.4"
|
||||
|
||||
unpipe@1.0.0, unpipe@~1.0.0:
|
||||
unpipe@~1.0.0:
|
||||
version "1.0.0"
|
||||
resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec"
|
||||
integrity sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==
|
||||
|
||||
@@ -8,12 +8,18 @@
|
||||
|
||||
const allLocales = [
|
||||
["en", "en-US"],
|
||||
["es", "es-ES"],
|
||||
["de", "de-DE"],
|
||||
["es", "es-ES"],
|
||||
["it", "it-IT"],
|
||||
["ja", "ja-JP"],
|
||||
["nl", "nl-NL"],
|
||||
["pl", "pl-PL"],
|
||||
["ru", "ru-RU"],
|
||||
["sk", "sk-SK"],
|
||||
["vi", "vi-VN"],
|
||||
["zh", "zh-CN"],
|
||||
["pl", "pl-PL"],
|
||||
["ko", "ko-KR"],
|
||||
["bg", "bg-BG"],
|
||||
];
|
||||
|
||||
const ignoreUnused = [
|
||||
|
||||
@@ -5,6 +5,7 @@
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||
<title>Nginx Proxy Manager</title>
|
||||
<meta name="description" content="In The Office Planner" />
|
||||
<link rel="preload" href="/images/logo-no-text.svg" as="image" type="image/svg+xml" fetchPriority="high">
|
||||
<link
|
||||
rel="apple-touch-icon"
|
||||
sizes="180x180"
|
||||
|
||||
@@ -13,6 +13,15 @@
|
||||
--tblr-backdrop-opacity: 0.8 !important;
|
||||
}
|
||||
|
||||
[data-bs-theme="dark"] .modal-content {
|
||||
--tblr-modal-box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15) !important;
|
||||
}
|
||||
|
||||
[data-bs-theme="dark"] .modal-backdrop {
|
||||
--tblr-backdrop-bg: #000 !important;
|
||||
--tblr-backdrop-opacity: 0.65 !important;
|
||||
}
|
||||
|
||||
.domain-name {
|
||||
font-family: monospace;
|
||||
}
|
||||
@@ -95,3 +104,15 @@ label.row {
|
||||
border-radius: var(--tblr-border-radius) 0 0 var(--tblr-border-radius);
|
||||
}
|
||||
}
|
||||
|
||||
/* Fix for dropdown menus being clipped by table-responsive containers. */
|
||||
.table-responsive .dropdown {
|
||||
position: static;
|
||||
}
|
||||
|
||||
/* Fix for Tabler scrollbar compensation */
|
||||
@media (min-width: 992px) {
|
||||
:host, :root {
|
||||
margin-left: 0;
|
||||
}
|
||||
}
|
||||
@@ -3,7 +3,7 @@ import cn from "classnames";
|
||||
import { useFormikContext } from "formik";
|
||||
import { useState } from "react";
|
||||
import type { AccessListClient } from "src/api/backend";
|
||||
import { T } from "src/locale";
|
||||
import { intl, T } from "src/locale";
|
||||
|
||||
interface Props {
|
||||
initialValues: AccessListClient[];
|
||||
@@ -65,8 +65,8 @@ export function AccessClientFields({ initialValues, name = "clients" }: Props) {
|
||||
value={client.directive}
|
||||
onChange={(e) => handleChange(idx, "directive", e.target.value)}
|
||||
>
|
||||
<option value="allow">Allow</option>
|
||||
<option value="deny">Deny</option>
|
||||
<option value="allow"><T id="action.allow" /></option>
|
||||
<option value="deny"><T id="action.deny" /></option>
|
||||
</select>
|
||||
</span>
|
||||
<input
|
||||
@@ -76,7 +76,7 @@ export function AccessClientFields({ initialValues, name = "clients" }: Props) {
|
||||
autoComplete="off"
|
||||
value={client.address}
|
||||
onChange={(e) => handleChange(idx, "address", e.target.value)}
|
||||
placeholder="192.168.1.100 or 192.168.1.0/24 or 2001:0db8::/32"
|
||||
placeholder={intl.formatMessage({ id: "access-list.rule-source.placeholder" })}
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
@@ -112,7 +112,7 @@ export function AccessClientFields({ initialValues, name = "clients" }: Props) {
|
||||
value="deny"
|
||||
disabled
|
||||
>
|
||||
<option value="deny">Deny</option>
|
||||
<option value="deny"><T id="action.deny" /></option>
|
||||
</select>
|
||||
</span>
|
||||
<input
|
||||
|
||||
@@ -5,7 +5,7 @@ import { useState } from "react";
|
||||
import Select, { type ActionMeta } from "react-select";
|
||||
import type { DNSProvider } from "src/api/backend";
|
||||
import { useDnsProviders } from "src/hooks";
|
||||
import { T } from "src/locale";
|
||||
import { intl, T } from "src/locale";
|
||||
import styles from "./DNSProviderFields.module.css";
|
||||
|
||||
interface DNSProviderOption {
|
||||
@@ -57,7 +57,7 @@ export function DNSProviderFields({ showBoundaryBox = false }: Props) {
|
||||
id="dnsProvider"
|
||||
closeMenuOnSelect={true}
|
||||
isClearable={false}
|
||||
placeholder="Select a Provider..."
|
||||
placeholder={intl.formatMessage({ id: "certificates.dns.provider.placeholder" })}
|
||||
isLoading={isLoading}
|
||||
isSearchable
|
||||
onChange={handleChange}
|
||||
@@ -116,7 +116,7 @@ export function DNSProviderFields({ showBoundaryBox = false }: Props) {
|
||||
type="number"
|
||||
className="form-control"
|
||||
min={0}
|
||||
max={600}
|
||||
max={7200}
|
||||
{...field}
|
||||
/>
|
||||
<small className="text-muted">
|
||||
|
||||
@@ -5,7 +5,11 @@ import { useTheme } from "src/hooks";
|
||||
import { changeLocale, getFlagCodeForLocale, localeOptions, T } from "src/locale";
|
||||
import styles from "./LocalePicker.module.css";
|
||||
|
||||
function LocalePicker() {
|
||||
interface Props {
|
||||
menuAlign?: "start" | "end";
|
||||
}
|
||||
|
||||
function LocalePicker({ menuAlign = "start" }: Props) {
|
||||
const { locale, setLocale } = useLocaleState();
|
||||
const { getTheme } = useTheme();
|
||||
|
||||
@@ -23,22 +27,24 @@ function LocalePicker() {
|
||||
<button type="button" className={cns} data-bs-toggle="dropdown">
|
||||
<Flag countryCode={getFlagCodeForLocale(locale)} />
|
||||
</button>
|
||||
<div className="dropdown-menu">
|
||||
{localeOptions.map((item) => {
|
||||
return (
|
||||
<a
|
||||
className="dropdown-item"
|
||||
href={`/locale/${item[0]}`}
|
||||
key={`locale-${item[0]}`}
|
||||
onClick={(e) => {
|
||||
e.preventDefault();
|
||||
changeTo(item[0]);
|
||||
}}
|
||||
>
|
||||
<Flag countryCode={getFlagCodeForLocale(item[0])} /> <T id={`locale-${item[1]}`} />
|
||||
</a>
|
||||
);
|
||||
<div
|
||||
className={cn("dropdown-menu", {
|
||||
"dropdown-menu-end": menuAlign === "end",
|
||||
})}
|
||||
>
|
||||
{localeOptions.map((item: any) => (
|
||||
<a
|
||||
className="dropdown-item"
|
||||
href={`/locale/${item[0]}`}
|
||||
key={`locale-${item[0]}`}
|
||||
onClick={(e) => {
|
||||
e.preventDefault();
|
||||
changeTo(item[0]);
|
||||
}}
|
||||
>
|
||||
<Flag countryCode={getFlagCodeForLocale(item[0])} /> <T id={`locale-${item[1]}`} />
|
||||
</a>
|
||||
))}
|
||||
</div>
|
||||
</div>
|
||||
);
|
||||
|
||||
@@ -2,5 +2,5 @@ interface Props {
|
||||
children: React.ReactNode;
|
||||
}
|
||||
export function SiteContainer({ children }: Props) {
|
||||
return <div className="container-xl py-3">{children}</div>;
|
||||
return <div className="container-xl py-3 min-w-0 overflow-x-auto">{children}</div>;
|
||||
}
|
||||
|
||||
@@ -25,7 +25,7 @@ export function SiteHeader() {
|
||||
>
|
||||
<span className="navbar-toggler-icon" />
|
||||
</button>
|
||||
<div className="navbar-brand navbar-brand-autodark d-none-navbar-horizontal pe-0 pe-md-3">
|
||||
<div className="navbar-brand navbar-brand-autodark pe-0 pe-md-3">
|
||||
<NavLink to="/">
|
||||
<div className={styles.logo}>
|
||||
<img
|
||||
@@ -48,11 +48,11 @@ export function SiteHeader() {
|
||||
<ThemeSwitcher />
|
||||
</div>
|
||||
</div>
|
||||
<div className="nav-item d-none d-md-flex me-3">
|
||||
<div className="nav-item d-md-flex">
|
||||
<div className="nav-item dropdown">
|
||||
<a
|
||||
href="/"
|
||||
className="nav-link d-flex lh-1 p-0 px-2"
|
||||
className="nav-link d-flex lh-1"
|
||||
data-bs-toggle="dropdown"
|
||||
aria-label="Open user menu"
|
||||
>
|
||||
@@ -70,6 +70,22 @@ export function SiteHeader() {
|
||||
</div>
|
||||
</a>
|
||||
<div className="dropdown-menu dropdown-menu-end dropdown-menu-arrow">
|
||||
<div className="d-md-none">
|
||||
{/* biome-ignore lint/a11y/noStaticElementInteractions lint/a11y/useKeyWithClickEvents: This div is not interactive. */}
|
||||
<div className="p-2 pb-1 pe-1 d-flex align-items-center" onClick={e => e.stopPropagation()}>
|
||||
<div className="ps-2 pe-1 me-auto">
|
||||
<div>{currentUser?.nickname}</div>
|
||||
<div className="mt-1 small text-secondary text-nowrap">
|
||||
<T id={isAdmin ? "role.admin" : "role.standard-user"} />
|
||||
</div>
|
||||
</div>
|
||||
<div className="d-flex align-items-center">
|
||||
<ThemeSwitcher className="me-n2" />
|
||||
<LocalePicker menuAlign="end" />
|
||||
</div>
|
||||
</div>
|
||||
<div className="dropdown-divider" />
|
||||
</div>
|
||||
<a
|
||||
href="?"
|
||||
className="dropdown-item"
|
||||
|
||||
@@ -176,17 +176,13 @@ const getMenuDropown = (item: MenuItem, onClick?: () => void) => {
|
||||
};
|
||||
|
||||
export function SiteMenu() {
|
||||
// This is hacky AF. But that's the price of using a non-react UI kit.
|
||||
const closeMenus = () => {
|
||||
const navMenus = document.querySelectorAll(".nav-item.dropdown");
|
||||
navMenus.forEach((menu) => {
|
||||
menu.classList.remove("show");
|
||||
const dropdown = menu.querySelector(".dropdown-menu");
|
||||
if (dropdown) {
|
||||
dropdown.classList.remove("show");
|
||||
}
|
||||
});
|
||||
};
|
||||
const closeMenu = () => setTimeout(() => {
|
||||
const navbarToggler = document.querySelector<HTMLElement>(".navbar-toggler");
|
||||
const navbarMenu = document.querySelector("#navbar-menu");
|
||||
if (navbarToggler && navbarMenu?.classList.contains("show")) {
|
||||
navbarToggler.click();
|
||||
}
|
||||
}, 300);
|
||||
|
||||
return (
|
||||
<header className="navbar-expand-md">
|
||||
@@ -198,7 +194,7 @@ export function SiteMenu() {
|
||||
<ul className="navbar-nav">
|
||||
{menuItems.length > 0 &&
|
||||
menuItems.map((item) => {
|
||||
return getMenuItem(item, closeMenus);
|
||||
return getMenuItem(item, closeMenu);
|
||||
})}
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
@@ -12,10 +12,12 @@ interface TableLayoutProps<TFields> {
|
||||
function TableLayout<TFields>(props: TableLayoutProps<TFields>) {
|
||||
const hasRows = props.tableInstance.getRowModel().rows.length > 0;
|
||||
return (
|
||||
<table className="table table-vcenter table-selectable mb-0">
|
||||
{hasRows ? <TableHeader tableInstance={props.tableInstance} /> : null}
|
||||
<TableBody {...props} />
|
||||
</table>
|
||||
<div className="table-responsive">
|
||||
<table className="table table-vcenter table-selectable mb-0">
|
||||
{hasRows ? <TableHeader tableInstance={props.tableInstance} /> : null}
|
||||
<TableBody {...props} />
|
||||
</table>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
@@ -2,75 +2,63 @@ import { createIntl, createIntlCache } from "react-intl";
|
||||
import langDe from "./lang/de.json";
|
||||
import langEn from "./lang/en.json";
|
||||
import langEs from "./lang/es.json";
|
||||
import langIt from "./lang/it.json";
|
||||
import langJa from "./lang/ja.json";
|
||||
import langList from "./lang/lang-list.json";
|
||||
import langNl from "./lang/nl.json";
|
||||
import langPl from "./lang/pl.json";
|
||||
import langRu from "./lang/ru.json";
|
||||
import langSk from "./lang/sk.json";
|
||||
import langVi from "./lang/vi.json";
|
||||
import langZh from "./lang/zh.json";
|
||||
import langPl from "./lang/pl.json";
|
||||
import langKo from "./lang/ko.json";
|
||||
import langBg from "./lang/bg.json";
|
||||
|
||||
// first item of each array should be the language code,
|
||||
// not the country code
|
||||
// Remember when adding to this list, also update check-locales.js script
|
||||
const localeOptions = [
|
||||
["en", "en-US"],
|
||||
["de", "de-DE"],
|
||||
["es", "es-ES"],
|
||||
["ja", "ja-JP"],
|
||||
["ru", "ru-RU"],
|
||||
["sk", "sk-SK"],
|
||||
["zh", "zh-CN"],
|
||||
["pl", "pl-PL"],
|
||||
["en", "en-US", langEn],
|
||||
["de", "de-DE", langDe],
|
||||
["es", "es-ES", langEs],
|
||||
["ja", "ja-JP", langJa],
|
||||
["it", "it-IT", langIt],
|
||||
["nl", "nl-NL", langNl],
|
||||
["pl", "pl-PL", langPl],
|
||||
["ru", "ru-RU", langRu],
|
||||
["sk", "sk-SK", langSk],
|
||||
["vi", "vi-VN", langVi],
|
||||
["zh", "zh-CN", langZh],
|
||||
["ko", "ko-KR", langKo],
|
||||
["bg", "bg-BG", langBg],
|
||||
];
|
||||
|
||||
const loadMessages = (locale?: string): typeof langList & typeof langEn => {
|
||||
const thisLocale = locale || "en";
|
||||
switch (thisLocale.slice(0, 2)) {
|
||||
case "de":
|
||||
return Object.assign({}, langList, langEn, langDe);
|
||||
case "es":
|
||||
return Object.assign({}, langList, langEn, langEs);
|
||||
case "ja":
|
||||
return Object.assign({}, langList, langEn, langJa);
|
||||
case "ru":
|
||||
return Object.assign({}, langList, langEn, langRu);
|
||||
case "sk":
|
||||
return Object.assign({}, langList, langEn, langSk);
|
||||
case "zh":
|
||||
return Object.assign({}, langList, langEn, langZh);
|
||||
case "pl":
|
||||
return Object.assign({}, langList, langEn, langPl);
|
||||
default:
|
||||
return Object.assign({}, langList, langEn);
|
||||
const thisLocale = (locale || "en").slice(0, 2);
|
||||
|
||||
// ensure this lang exists in localeOptions above, otherwise fallback to en
|
||||
if (thisLocale === "en" || !localeOptions.some(([code]) => code === thisLocale)) {
|
||||
return Object.assign({}, langList, langEn);
|
||||
}
|
||||
|
||||
return Object.assign({}, langList, langEn, localeOptions.find(([code]) => code === thisLocale)?.[2]);
|
||||
};
|
||||
|
||||
const getFlagCodeForLocale = (locale?: string) => {
|
||||
switch (locale) {
|
||||
case "es-ES":
|
||||
case "es":
|
||||
return "ES";
|
||||
case "de-DE":
|
||||
case "de":
|
||||
return "DE";
|
||||
case "ja-JP":
|
||||
case "ja":
|
||||
return "JP";
|
||||
case "ru-RU":
|
||||
case "ru":
|
||||
return "RU";
|
||||
case "sk-SK":
|
||||
case "sk":
|
||||
return "SK";
|
||||
case "zh":
|
||||
case "zh-CN":
|
||||
return "CN";
|
||||
case "pl":
|
||||
case "pl-PL":
|
||||
return "PL";
|
||||
default:
|
||||
return "EN";
|
||||
const thisLocale = (locale || "en").slice(0, 2);
|
||||
|
||||
// only add to this if your flag is different from the locale code
|
||||
const specialCases: Record<string, string> = {
|
||||
ja: "jp", // Japan
|
||||
zh: "cn", // China
|
||||
vi: "vn", // Vietnam
|
||||
ko: "kr", // Korea
|
||||
};
|
||||
|
||||
if (specialCases[thisLocale]) {
|
||||
return specialCases[thisLocale].toUpperCase();
|
||||
}
|
||||
return thisLocale.toUpperCase();
|
||||
};
|
||||
|
||||
const getLocale = (short = false) => {
|
||||
@@ -131,4 +119,6 @@ const T = ({
|
||||
);
|
||||
};
|
||||
|
||||
console.log("L:", localeOptions);
|
||||
|
||||
export { localeOptions, getFlagCodeForLocale, getLocale, createIntl, changeLocale, intl, T };
|
||||
|
||||
@@ -40,6 +40,7 @@ not be complete by the time you're reading this:
|
||||
- frontend/src/locale/src/[yourlang].json
|
||||
- frontend/src/locale/src/lang-list.json
|
||||
- frontend/src/locale/src/HelpDoc/[yourlang]/*
|
||||
- frontend/src/locale/src/HelpDoc/index.tsx
|
||||
- frontend/src/locale/IntlProvider.tsx
|
||||
- frontend/check-locales.cjs
|
||||
|
||||
|
||||
7
frontend/src/locale/src/HelpDoc/bg/AccessLists.md
Normal file
7
frontend/src/locale/src/HelpDoc/bg/AccessLists.md
Normal file
@@ -0,0 +1,7 @@
|
||||
## Какво представлява Списъкът за достъп?
|
||||
|
||||
Списъците за достъп предоставят черен или бял списък от конкретни клиентски IP адреси, както и удостоверяване за Прокси хостове чрез базова HTTP автентикация.
|
||||
|
||||
Можете да конфигурирате множество клиентски правила, потребителски имена и пароли в един Списък за достъп и след това да го приложите към един или повече _Прокси хостове_.
|
||||
|
||||
Това е най-полезно при препращани уеб услуги, които нямат вградени механизми за удостоверяване, или когато искате да защитите достъпа от неизвестни клиенти.
|
||||
21
frontend/src/locale/src/HelpDoc/bg/Certificates.md
Normal file
21
frontend/src/locale/src/HelpDoc/bg/Certificates.md
Normal file
@@ -0,0 +1,21 @@
|
||||
## Помощ за сертификати
|
||||
|
||||
### HTTP сертификат
|
||||
|
||||
HTTP валидираният сертификат означава, че сървърите на Let’s Encrypt ще се опитат да достигнат вашите домейни по HTTP (не по HTTPS!) и ако успеят, ще издадат сертификата.
|
||||
|
||||
За този метод трябва да имате създаден _Прокси хост_ за вашия/вашите домейни, който да е достъпен по HTTP и да сочи към тази Nginx инсталация. След като бъде издаден сертификат, можете да промените _Прокси хоста_ така, че да използва сертификата и за HTTPS връзки. Въпреки това, _Прокси хостът_ трябва да остане конфигуриран за достъп по HTTP, за да може сертификатът да се подновява.
|
||||
|
||||
Този процес _не_ поддържа wildcard домейни.
|
||||
|
||||
### DNS сертификат
|
||||
|
||||
DNS валидираният сертификат изисква използването на DNS Provider плъгин. Този DNS Provider ще бъде използван за временно създаване на записи във вашия домейн, след което Let’s Encrypt ще ги провери, за да се увери, че сте собственикът, и при успех ще издаде сертификата.
|
||||
|
||||
Не е необходимо да имате _Прокси хост_, създаден предварително, за да заявите този тип сертификат. Нито е нужно вашият _Прокси хост_ да бъде конфигуриран за достъп по HTTP.
|
||||
|
||||
Този процес _поддържа_ wildcard домейни.
|
||||
|
||||
### Персонализиран сертификат
|
||||
|
||||
Използвайте тази опция, за да качите собствен SSL сертификат, предоставен от ваша сертификатна агенция.
|
||||
10
frontend/src/locale/src/HelpDoc/bg/DeadHosts.md
Normal file
10
frontend/src/locale/src/HelpDoc/bg/DeadHosts.md
Normal file
@@ -0,0 +1,10 @@
|
||||
## Какво представлява 404 хост?
|
||||
|
||||
404 хост е просто конфигурация на хост, който показва страница с грешка 404.
|
||||
|
||||
Това може да е полезно, когато вашият домейн е индексиран в търсачките и искате
|
||||
да предоставите по-приятна страница за грешка или да уведомите индексиращите системи,
|
||||
че страниците на домейна вече не съществуват.
|
||||
|
||||
Допълнително предимство на този хост е възможността да проследявате логовете на заявките
|
||||
към него и да виждате реферерите.
|
||||
7
frontend/src/locale/src/HelpDoc/bg/ProxyHosts.md
Normal file
7
frontend/src/locale/src/HelpDoc/bg/ProxyHosts.md
Normal file
@@ -0,0 +1,7 @@
|
||||
## Какво представлява Прокси хост?
|
||||
|
||||
Прокси хост е входна точка за уеб услуга, която искате да препращате.
|
||||
|
||||
Той предоставя възможност за SSL терминaция на услуга, която може да няма вградена поддръжка на SSL.
|
||||
|
||||
Прокси хостовете са най-често използваната функция в Nginx Proxy Manager.
|
||||
7
frontend/src/locale/src/HelpDoc/bg/RedirectionHosts.md
Normal file
7
frontend/src/locale/src/HelpDoc/bg/RedirectionHosts.md
Normal file
@@ -0,0 +1,7 @@
|
||||
## Какво представлява Хост за пренасочване?
|
||||
|
||||
Хостът за пренасочване пренасочва заявките от входящия домейн и прехвърля
|
||||
потребителя към друг домейн.
|
||||
|
||||
Най-честата причина за използване на този тип хост е, когато вашият уебсайт
|
||||
промени домейна си, но все още има линкове от търсачки или реферери, които сочат към стария домейн.
|
||||
6
frontend/src/locale/src/HelpDoc/bg/Streams.md
Normal file
6
frontend/src/locale/src/HelpDoc/bg/Streams.md
Normal file
@@ -0,0 +1,6 @@
|
||||
## Какво представлява Потокът (Stream)?
|
||||
|
||||
Относително нова функция за Nginx, Потокът позволява препращане на TCP/UDP
|
||||
трафик директно към друг компютър в мрежата.
|
||||
|
||||
Това е полезно, ако хоствате игрови сървъри, FTP или SSH сървъри.
|
||||
6
frontend/src/locale/src/HelpDoc/bg/index.ts
Normal file
6
frontend/src/locale/src/HelpDoc/bg/index.ts
Normal file
@@ -0,0 +1,6 @@
|
||||
export * as AccessLists from "./AccessLists.md";
|
||||
export * as Certificates from "./Certificates.md";
|
||||
export * as DeadHosts from "./DeadHosts.md";
|
||||
export * as ProxyHosts from "./ProxyHosts.md";
|
||||
export * as RedirectionHosts from "./RedirectionHosts.md";
|
||||
export * as Streams from "./Streams.md";
|
||||
@@ -1,20 +1,32 @@
|
||||
import * as de from "./de/index";
|
||||
import * as en from "./en/index";
|
||||
import * as it from "./it/index";
|
||||
import * as ja from "./ja/index";
|
||||
import * as nl from "./nl/index";
|
||||
import * as pl from "./pl/index";
|
||||
import * as ru from "./ru/index";
|
||||
import * as sk from "./sk/index";
|
||||
import * as vi from "./vi/index";
|
||||
import * as zh from "./zh/index";
|
||||
import * as ko from "./ko/index";
|
||||
import * as bg from "./bg/index";
|
||||
|
||||
const items: any = { en, de, ja, sk, zh, pl };
|
||||
const items: any = { en, de, ja, sk, zh, pl, ru, it, vi, nl, bg, ko };
|
||||
|
||||
const fallbackLang = "en";
|
||||
|
||||
export const getHelpFile = (lang: string, section: string): string => {
|
||||
if (typeof items[lang] !== "undefined" && typeof items[lang][section] !== "undefined") {
|
||||
if (
|
||||
typeof items[lang] !== "undefined" &&
|
||||
typeof items[lang][section] !== "undefined"
|
||||
) {
|
||||
return items[lang][section].default;
|
||||
}
|
||||
// Fallback to English
|
||||
if (typeof items[fallbackLang] !== "undefined" && typeof items[fallbackLang][section] !== "undefined") {
|
||||
if (
|
||||
typeof items[fallbackLang] !== "undefined" &&
|
||||
typeof items[fallbackLang][section] !== "undefined"
|
||||
) {
|
||||
return items[fallbackLang][section].default;
|
||||
}
|
||||
throw new Error(`Cannot load help doc for ${lang}-${section}`);
|
||||
|
||||
7
frontend/src/locale/src/HelpDoc/it/AccessLists.md
Normal file
7
frontend/src/locale/src/HelpDoc/it/AccessLists.md
Normal file
@@ -0,0 +1,7 @@
|
||||
## Che cos'è una Lista di Accesso?
|
||||
|
||||
La Lista di Accesso fornisce una blacklist o una whitelist di indirizzi IP specifici dei client insieme all'autenticazione per gli host proxy tramite autenticazione HTTP di base.
|
||||
|
||||
È possibile configurare più regole client, nomi utente e password per un singolo lista di accesso e quindi applicarlo a uno o più host proxy.
|
||||
|
||||
Ciò è particolarmente utile per i servizi web inoltrati che non dispongono di meccanismi di autenticazione integrati o quando si desidera proteggersi da client sconosciuti.
|
||||
24
frontend/src/locale/src/HelpDoc/it/Certificates.md
Normal file
24
frontend/src/locale/src/HelpDoc/it/Certificates.md
Normal file
@@ -0,0 +1,24 @@
|
||||
## Guida sui Certificati
|
||||
|
||||
### Certificato HTTP
|
||||
|
||||
Un certificato convalidato HTTP significa che i server Let's Encrypttenteranno di raggiungere i tuoi domini tramite HTTP (non HTTPS!) e, in caso di esito positivo, emetteranno il tuo certificato.
|
||||
|
||||
Per questo metodo, dovrai creare un _Proxy Host_ per i tuoi domini chesia accessibile con HTTP e che punti a questa installazione Nginx.
|
||||
Dopo che il certificato è stato rilasciato, puoi modificare il _Proxy Host_ per utilizzare questo certificato anche per le connessioni HTTPS.
|
||||
Tuttavia, il _Proxy Host_ dovrà comunque essere configurato per l'accesso HTTP affinché il certificato possa essere rinnovato.
|
||||
|
||||
Questo processo _non_ supporta i domini wildcard.
|
||||
|
||||
### Certificato DNS
|
||||
|
||||
Un certificato convalidato dal DNS richiede l'uso di un plugin DNS Provider. Questo DNS Provider verrà utilizzato per creare record temporanei sul tuo dominio,
|
||||
quindi Let's Encrypt interrogherà tali record per assicurarsi che tu sia il proprietario e, in caso di esito positivo,rilascerà il tuo certificato.
|
||||
|
||||
Non è necessario creare un _Proxy Host_ prima di richiedere questo tipo di certificato. Non è nemmeno necessario configurare il tuo _proxy host_ per l'accesso HTTP.
|
||||
|
||||
Questo processo _supporta_ i domini wildcard.
|
||||
|
||||
### Certificato personalizzato
|
||||
|
||||
Utilizza questa opzione per caricare il tuo certificato SSL, fornito dalla tua autorità di certificazione.
|
||||
9
frontend/src/locale/src/HelpDoc/it/DeadHosts.md
Normal file
9
frontend/src/locale/src/HelpDoc/it/DeadHosts.md
Normal file
@@ -0,0 +1,9 @@
|
||||
## Che cos'è un Host 404?
|
||||
|
||||
Un Host 404 è semplicemente una configurazione host che mostra una pagina 404.
|
||||
|
||||
Questo può essere utile quando il tuo dominio è elencato nei motori di ricerca e desideri fornire una pagina di errore più gradevole o specificare agli
|
||||
indicizzatori di ricerca che le pagine del dominio non esistono più.
|
||||
|
||||
Un altro vantaggio di avere questo host è quello di tracciare i log degli accessi e
|
||||
visualizzare i referrer.
|
||||
7
frontend/src/locale/src/HelpDoc/it/ProxyHosts.md
Normal file
7
frontend/src/locale/src/HelpDoc/it/ProxyHosts.md
Normal file
@@ -0,0 +1,7 @@
|
||||
## Che cos'è un Proxy Host?
|
||||
|
||||
Un host proxy è l'endpoint in entrata per un servizio web che si desidera inoltrare.
|
||||
|
||||
Fornisce la terminazione SSL opzionale per il servizio che potrebbe non avere il supporto SSL integrato.
|
||||
|
||||
Gli host proxy sono l'uso più comune per Nginx Proxy Manager.
|
||||
7
frontend/src/locale/src/HelpDoc/it/RedirectionHosts.md
Normal file
7
frontend/src/locale/src/HelpDoc/it/RedirectionHosts.md
Normal file
@@ -0,0 +1,7 @@
|
||||
## Che cos'è un Host di reindirizzamento?
|
||||
|
||||
Un Host di reindirizzamento reindirizza le richieste provenienti dal dominio in entrata e indirizza il
|
||||
visitatore verso un altro dominio.
|
||||
|
||||
Il motivo più comune per utilizzare questo tipo di host è quando il tuo sito web cambia
|
||||
dominio, ma hai ancora link di motori di ricerca o referrer che puntano al vecchio dominio.
|
||||
6
frontend/src/locale/src/HelpDoc/it/Streams.md
Normal file
6
frontend/src/locale/src/HelpDoc/it/Streams.md
Normal file
@@ -0,0 +1,6 @@
|
||||
## Che cos'è uno Stream?
|
||||
|
||||
Una funzionalità relativamente nuova per Nginx, uno Stream serve a inoltrare il traffico TCP/UDP
|
||||
direttamente a un altro computer sulla rete.
|
||||
|
||||
Se gestisci server di gioco, FTP o SSH, questa funzionalità può rivelarsi molto utile.
|
||||
6
frontend/src/locale/src/HelpDoc/it/index.ts
Normal file
6
frontend/src/locale/src/HelpDoc/it/index.ts
Normal file
@@ -0,0 +1,6 @@
|
||||
export * as AccessLists from "./AccessLists.md";
|
||||
export * as Certificates from "./Certificates.md";
|
||||
export * as DeadHosts from "./DeadHosts.md";
|
||||
export * as ProxyHosts from "./ProxyHosts.md";
|
||||
export * as RedirectionHosts from "./RedirectionHosts.md";
|
||||
export * as Streams from "./Streams.md";
|
||||
11
frontend/src/locale/src/HelpDoc/ko/AccessLists.md
Normal file
11
frontend/src/locale/src/HelpDoc/ko/AccessLists.md
Normal file
@@ -0,0 +1,11 @@
|
||||
## 접근 정책이란?
|
||||
|
||||
접근 정책은 특정 클라이언트 IP 주소를 허용하거나 거부할 수 있으며,
|
||||
프록시 호스트에 기본 HTTP 인증(Basic Auth) 을 적용할 수 있는 기능입니다.
|
||||
|
||||
하나의 접근 목록에 여러 클라이언트 규칙과 사용자 이름, 비밀번호를 추가한 뒤
|
||||
이를 하나 이상의 프록시 호스트에 적용할 수 있습니다.
|
||||
|
||||
이 기능은 인증 기능이 없는 웹 서비스에 인증을 추가하거나,
|
||||
알 수 없는 클라이언트로부터 서비스를 보호할 때 유용합니다.
|
||||
|
||||
28
frontend/src/locale/src/HelpDoc/ko/Certificates.md
Normal file
28
frontend/src/locale/src/HelpDoc/ko/Certificates.md
Normal file
@@ -0,0 +1,28 @@
|
||||
## 인증서 도움말
|
||||
|
||||
### HTTP 인증서
|
||||
|
||||
HTTP 검증 방식의 인증서는 Let's Encrypt 서버가 **HTTPS가 아닌 HTTP로** 해당 도메인에 접속을 시도해 응답이 확인되면 인증서를 발급하는 방식입니다.
|
||||
|
||||
이 방식을 사용하려면 도메인에 대한 **프록시 호스트가 미리 생성되어 있어야 하며**, HTTP로 접근할 수 있어야 하고 Nginx Proxy Manager가 설치된 서버를 가리켜야 합니다. 인증서가 발급된 이후에는 해당 프록시 호스트에 HTTPS용 인증서를 적용할 수 있습니다.
|
||||
|
||||
다만, **인증서 자동 갱신을 위해서는 HTTP 접근이 계속 필요합니다.**
|
||||
|
||||
이 방식은 **와일드카드 도메인을 지원하지 않습니다.**
|
||||
|
||||
---
|
||||
|
||||
### DNS 인증서
|
||||
|
||||
DNS 검증 방식의 인증서는 DNS 공급자 플러그인을 사용해야 합니다. 이 플러그인은 도메인에 임시 DNS 레코드를 생성하며, Let's Encrypt는 해당 레코드를 조회해 도메인 소유 여부를 확인합니다. 검증이 성공하면 인증서가 발급됩니다.
|
||||
|
||||
이 방식은 인증서를 요청하기 전에 **프록시 호스트를 생성할 필요가 없으며**, 프록시 호스트에 HTTP 접근을 설정할 필요도 없습니다.
|
||||
|
||||
이 방식은 **와일드카드 도메인을 지원합니다.**
|
||||
|
||||
---
|
||||
|
||||
### 사용자 지정 인증서
|
||||
|
||||
이 옵션을 사용하면 직접 보유한 인증 기관(CA)에서 발급한 SSL 인증서를 직접 업로드하여 사용할 수 있습니다.
|
||||
|
||||
10
frontend/src/locale/src/HelpDoc/ko/DeadHosts.md
Normal file
10
frontend/src/locale/src/HelpDoc/ko/DeadHosts.md
Normal file
@@ -0,0 +1,10 @@
|
||||
## 404 호스트란?
|
||||
|
||||
404 호스트는 404 오류 페이지를 표시하도록 구성된 호스트입니다.
|
||||
|
||||
이 기능은 도메인이 검색 엔진에 이미 색인되어 있을 때,
|
||||
더 깔끔한 오류 페이지를 제공하거나 해당 페이지가 더 이상 존재하지 않음을
|
||||
검색 엔진에게 명확하게 알려야 할 때 유용합니다.
|
||||
|
||||
또한 404 호스트를 사용하면 접근 로그를 확인하고, 어떤 경로(Referrer)를 통해 들어왔는지 추적할 수 있다는 장점도 있습니다.
|
||||
|
||||
8
frontend/src/locale/src/HelpDoc/ko/ProxyHosts.md
Normal file
8
frontend/src/locale/src/HelpDoc/ko/ProxyHosts.md
Normal file
@@ -0,0 +1,8 @@
|
||||
## 프록시 호스트란?
|
||||
|
||||
프록시 호스트는 외부에서 들어오는 웹 요청을 받아 지정한 전달 대상으로 전달하는 역할을 합니다.
|
||||
|
||||
원래 SSL을 지원하지 않는 대상이라도, 프록시 호스트를 통해 SSL(HTTPS) 연결을 적용할 수 있습니다.
|
||||
|
||||
프록시 호스트는 Nginx Proxy Manager에서 가장 일반적으로 사용되는 기능입니다.
|
||||
|
||||
7
frontend/src/locale/src/HelpDoc/ko/RedirectionHosts.md
Normal file
7
frontend/src/locale/src/HelpDoc/ko/RedirectionHosts.md
Normal file
@@ -0,0 +1,7 @@
|
||||
## 리다이렉션 호스트란?
|
||||
|
||||
리다이렉션 호스트는 외부에서 들어오는 도메인 요청을 다른 도메인으로 자동 이동(리다이렉트)시키는 역할을 합니다.
|
||||
|
||||
이 유형의 호스트는 주로 웹사이트의 도메인이 변경되었지만,
|
||||
검색 엔진이나 다른 사이트에 이전 도메인 링크가 남아 있을 때 사용하면 가장 효과적입니다.
|
||||
|
||||
7
frontend/src/locale/src/HelpDoc/ko/Streams.md
Normal file
7
frontend/src/locale/src/HelpDoc/ko/Streams.md
Normal file
@@ -0,0 +1,7 @@
|
||||
## 호스트 스트림이란?
|
||||
|
||||
호스트 스트림은 비교적 최근에 Nginx에 추가된 기능으로,
|
||||
TCP/UDP 트래픽을 네트워크 내의 다른 컴퓨터로 직접 전달하는 데 사용됩니다.
|
||||
|
||||
게임 서버나 FTP, SSH 서버 등을 운영할 때 유용하게 사용할 수 있습니다.
|
||||
|
||||
7
frontend/src/locale/src/HelpDoc/ko/index.ts
Normal file
7
frontend/src/locale/src/HelpDoc/ko/index.ts
Normal file
@@ -0,0 +1,7 @@
|
||||
export * as AccessLists from "./AccessLists.md";
|
||||
export * as Certificates from "./Certificates.md";
|
||||
export * as DeadHosts from "./DeadHosts.md";
|
||||
export * as ProxyHosts from "./ProxyHosts.md";
|
||||
export * as RedirectionHosts from "./RedirectionHosts.md";
|
||||
export * as Streams from "./Streams.md";
|
||||
|
||||
7
frontend/src/locale/src/HelpDoc/nl/AccessLists.md
Normal file
7
frontend/src/locale/src/HelpDoc/nl/AccessLists.md
Normal file
@@ -0,0 +1,7 @@
|
||||
## Wat is een Toegangslijst?
|
||||
|
||||
Toeganslijsten bieden een zwarte- of witte lijst van specifieke client IP-adressen samen met authenticatie voor de Proxy Hosts via Basic HTTP Authenticatie.
|
||||
|
||||
Je kan meerdere client regels, gebruikersnamen en wachtwoorden voor een enkele Toegangslijst configureren en toepassen op één of meerdere _Proxy Hosts_.
|
||||
|
||||
Dit is het meest nuttig voor doorgestuurde webdiensten die geen authenticatiemechanismen hebben of wanneer je wilt beveiligen tegen onbekende bezoekers.
|
||||
31
frontend/src/locale/src/HelpDoc/nl/Certificates.md
Normal file
31
frontend/src/locale/src/HelpDoc/nl/Certificates.md
Normal file
@@ -0,0 +1,31 @@
|
||||
## Certificaten Hulp
|
||||
|
||||
### HTTP Certificaat
|
||||
|
||||
Een HTTP gevalideerd certificaat betekent dat Let's Encrypt servers
|
||||
zullen proberen om over HTTP te bereiken (niet HTTPS!) en als dat gelukt is, zal
|
||||
jouw certificaat worden uitgegeven.
|
||||
|
||||
Voor deze zal je een _Proxy Host_ moeten hebben die is toegankelijk via HTTP en
|
||||
die naar deze Nginx installatie wijst. Nadat een certificaat is uitgegeven kan je
|
||||
de _Proxy Host_ wijzigen om ook HTTPS toegang te geven. Maar de _Proxy Host_ zal
|
||||
nog moeten worden geconfigureerd voor HTTP toegang om het certificaat te verlengen.
|
||||
|
||||
Dit proces ondersteunt geen domeinen met wildcards.
|
||||
|
||||
### DNS Certificaat
|
||||
|
||||
Een DNS gevalideerd certificaat zal gebruik maken van een DNS Provider plugin. De
|
||||
DNS Provider zal tijdelijke records op jouw domein maken en Let's Encrypt zal deze
|
||||
records opvragen om te controleren of je de eigenaar bent. Als dat is gecontroleerd
|
||||
is zal Let's Encrypt het certificaat uitgeven.
|
||||
|
||||
Je hebt geen _Proxy Host_ nodig om dit soort certificaat aan te vragen. Je hebt dus
|
||||
geen HTTP _Proxy Host_ nodig.
|
||||
|
||||
Dit proces ondersteunt _wel_ domeinen met wildcards.
|
||||
|
||||
### Aangepast Certificaat
|
||||
|
||||
Gebruik deze optie om jouw eigen SSL Certificaat te uploaden, zoals
|
||||
geleverd door jouw eigen Certificate Authority.
|
||||
10
frontend/src/locale/src/HelpDoc/nl/DeadHosts.md
Normal file
10
frontend/src/locale/src/HelpDoc/nl/DeadHosts.md
Normal file
@@ -0,0 +1,10 @@
|
||||
## Wat is een 404 Host?
|
||||
|
||||
Simpel gezegd is een 404 Host een host setup die een 404 pagina weergeeft.
|
||||
|
||||
Dit kan nuttig zijn wanneer jouw domein is opgegeven in zoekmachines en je wil
|
||||
een betere foutpagina leveren of specifiek om te zeggen tegen de zoekmachines dat
|
||||
het domein niet langer bestaat.
|
||||
|
||||
Een ander voordeel van het hebben van een 404 Host is om de logs voor bezoeken
|
||||
te volgen en de referenties te bekijken.
|
||||
7
frontend/src/locale/src/HelpDoc/nl/ProxyHosts.md
Normal file
7
frontend/src/locale/src/HelpDoc/nl/ProxyHosts.md
Normal file
@@ -0,0 +1,7 @@
|
||||
## Wat is een Proxy Host?
|
||||
|
||||
Een Proxy Host is de inkomende endpoint voor een webdienst dat je wilt doorsturen.
|
||||
|
||||
Het biedt optionele SSL voor je dienst die mogelijk geen SSL ondersteuning heeft.
|
||||
|
||||
Proxy Hosts worden het meest gebruikt in Nginx Proxy Manager.
|
||||
7
frontend/src/locale/src/HelpDoc/nl/RedirectionHosts.md
Normal file
7
frontend/src/locale/src/HelpDoc/nl/RedirectionHosts.md
Normal file
@@ -0,0 +1,7 @@
|
||||
## Wat is een Redirection Host?
|
||||
|
||||
Een Redirection Host zal verzoeken van de inkomende domeinnaam doorsturen, en de bezoeker
|
||||
omleiden naar een andere domeinnaam.
|
||||
|
||||
Het gebruik van een Redirection Host is vooral handig wanneer je jouw website verandert
|
||||
maar je nog zoekmachines of referenties naar de oude domeinnaam hebben.
|
||||
6
frontend/src/locale/src/HelpDoc/nl/Streams.md
Normal file
6
frontend/src/locale/src/HelpDoc/nl/Streams.md
Normal file
@@ -0,0 +1,6 @@
|
||||
## Wat is een Stream?
|
||||
|
||||
Streams zijn een nieuwe toevoeging aan Nginx, die toelaat om TCP/UDP
|
||||
verkeer naar een ander computer op het netwerk te sturen.
|
||||
|
||||
Als je game servers, FTP of SSH servers draait kan dit handig zijn.
|
||||
6
frontend/src/locale/src/HelpDoc/nl/index.ts
Normal file
6
frontend/src/locale/src/HelpDoc/nl/index.ts
Normal file
@@ -0,0 +1,6 @@
|
||||
export * as AccessLists from "./AccessLists.md";
|
||||
export * as Certificates from "./Certificates.md";
|
||||
export * as DeadHosts from "./DeadHosts.md";
|
||||
export * as ProxyHosts from "./ProxyHosts.md";
|
||||
export * as RedirectionHosts from "./RedirectionHosts.md";
|
||||
export * as Streams from "./Streams.md";
|
||||
7
frontend/src/locale/src/HelpDoc/ru/AccessLists.md
Normal file
7
frontend/src/locale/src/HelpDoc/ru/AccessLists.md
Normal file
@@ -0,0 +1,7 @@
|
||||
## Что такое список доступа?
|
||||
|
||||
Списки доступа позволяют задавать белый/чёрный список IP‑адресов клиентов и настраивать аутентификацию для прокси‑хостов через базовую HTTP‑аутентификацию.
|
||||
|
||||
Для одного списка доступа можно настроить несколько правил клиентов, логины и пароли, а затем применить его к одному или нескольким _прокси‑хостам_.
|
||||
|
||||
Это особенно полезно для проксируемых веб‑сервисов без встроенной аутентификации или когда нужно защититься от неизвестных клиентов.
|
||||
21
frontend/src/locale/src/HelpDoc/ru/Certificates.md
Normal file
21
frontend/src/locale/src/HelpDoc/ru/Certificates.md
Normal file
@@ -0,0 +1,21 @@
|
||||
## Справка по сертификатам
|
||||
|
||||
### HTTP-сертификат
|
||||
|
||||
Сертификат, подтверждённый по HTTP, означает, что серверы Let's Encrypt попытаются обратиться к вашим доменам по HTTP (не HTTPS!) и при успехе выпустят сертификат.
|
||||
|
||||
Для этого метода должен существовать _прокси‑хост_ для ваших доменов, доступный по HTTP и указывающий на эту установку Nginx. После выдачи сертификата вы можете настроить _прокси‑хост_ на использование этого сертификата для HTTPS‑подключений. Однако доступ по HTTP должен сохраняться, чтобы сертификат мог обновляться.
|
||||
|
||||
Этот способ _не_ поддерживает wildcard‑домены.
|
||||
|
||||
### DNS-сертификат
|
||||
|
||||
Сертификат, подтверждённый по DNS, требует использования плагина DNS‑провайдера. Такой провайдер создаст временные записи в вашем домене, затем Let's Encrypt проверит эти записи, чтобы убедиться, что вы владелец домена, и при успехе выпустит сертификат.
|
||||
|
||||
Для запроса такого сертификата предварительно создавать _прокси‑хост_ не требуется. Также не нужен доступ по HTTP для вашего _прокси‑хоста_.
|
||||
|
||||
Этот способ _поддерживает_ wildcard‑домены.
|
||||
|
||||
### Свой сертификат
|
||||
|
||||
Используйте этот вариант, чтобы загрузить собственный SSL‑сертификат, выданный вашим удостоверяющим центром (CA).
|
||||
7
frontend/src/locale/src/HelpDoc/ru/DeadHosts.md
Normal file
7
frontend/src/locale/src/HelpDoc/ru/DeadHosts.md
Normal file
@@ -0,0 +1,7 @@
|
||||
## Что такое 404‑хост?
|
||||
|
||||
404‑хост — это конфигурация, которая показывает страницу 404.
|
||||
|
||||
Это полезно, когда ваш домен присутствует в поисковых системах и вы хотите показать более дружелюбную страницу ошибки или явно сообщить индексаторам, что страницы домена больше не существуют.
|
||||
|
||||
Ещё одно преимущество — можно отдельно отслеживать обращения в журналах и смотреть источники переходов.
|
||||
7
frontend/src/locale/src/HelpDoc/ru/ProxyHosts.md
Normal file
7
frontend/src/locale/src/HelpDoc/ru/ProxyHosts.md
Normal file
@@ -0,0 +1,7 @@
|
||||
## Что такое прокси‑хост?
|
||||
|
||||
Прокси‑хост — это входная точка веб‑сервиса, который вы проксируете.
|
||||
|
||||
Он может выполнять терминaцию SSL для сервиса, у которого нет собственной поддержки SSL.
|
||||
|
||||
Прокси‑хосты — самый распространённый сценарий использования Nginx Proxy Manager.
|
||||
5
frontend/src/locale/src/HelpDoc/ru/RedirectionHosts.md
Normal file
5
frontend/src/locale/src/HelpDoc/ru/RedirectionHosts.md
Normal file
@@ -0,0 +1,5 @@
|
||||
## Что такое редирект‑хост?
|
||||
|
||||
Редирект‑хост перенаправляет запросы, поступающие на входящий домен, на другой домен.
|
||||
|
||||
Чаще всего это используют, когда сайт сменил домен, а в поиске или на сторонних ресурсах всё ещё остаются ссылки на старый домен.
|
||||
5
frontend/src/locale/src/HelpDoc/ru/Streams.md
Normal file
5
frontend/src/locale/src/HelpDoc/ru/Streams.md
Normal file
@@ -0,0 +1,5 @@
|
||||
## Что такое поток?
|
||||
|
||||
Относительно новая возможность Nginx: поток позволяет напрямую проксировать TCP/UDP‑трафик на другой компьютер в сети.
|
||||
|
||||
Полезно для игровых серверов, FTP или SSH‑серверов.
|
||||
6
frontend/src/locale/src/HelpDoc/ru/index.ts
Normal file
6
frontend/src/locale/src/HelpDoc/ru/index.ts
Normal file
@@ -0,0 +1,6 @@
|
||||
export * as AccessLists from "./AccessLists.md";
|
||||
export * as Certificates from "./Certificates.md";
|
||||
export * as DeadHosts from "./DeadHosts.md";
|
||||
export * as ProxyHosts from "./ProxyHosts.md";
|
||||
export * as RedirectionHosts from "./RedirectionHosts.md";
|
||||
export * as Streams from "./Streams.md";
|
||||
11
frontend/src/locale/src/HelpDoc/vi/AccessLists.md
Normal file
11
frontend/src/locale/src/HelpDoc/vi/AccessLists.md
Normal file
@@ -0,0 +1,11 @@
|
||||
## Khái niệm Access List là gì?
|
||||
|
||||
Access List (Danh sách truy cập) cung cấp cơ chế chặn (blacklist) hoặc cho phép (whitelist) các địa chỉ IP của client, đồng thời hỗ trợ xác thực Basic HTTP Authentication cho các Proxy Host.
|
||||
|
||||
Bạn có thể cấu hình nhiều quy tắc client, nhiều tên người dùng và mật khẩu trong một Access List duy nhất, sau đó áp dụng Access List đó cho một hoặc nhiều Proxy Host.
|
||||
|
||||
Tính năng này đặc biệt hữu ích đối với:
|
||||
|
||||
các dịch vụ web được forward mà không có cơ chế xác thực tích hợp, hoặc
|
||||
|
||||
khi bạn muốn bảo vệ tài nguyên khỏi những client không xác định.
|
||||
25
frontend/src/locale/src/HelpDoc/vi/Certificates.md
Normal file
25
frontend/src/locale/src/HelpDoc/vi/Certificates.md
Normal file
@@ -0,0 +1,25 @@
|
||||
## Hỗ trợ Chứng chỉ
|
||||
|
||||
### Chứng chỉ HTTP (HTTP Certificate)
|
||||
|
||||
Chứng chỉ được xác thực qua HTTP nghĩa là máy chủ của Let's Encrypt sẽ cố gắng truy cập vào tên miền của bạn thông qua HTTP (không phải HTTPS!). Nếu kiểm tra thành công, chứng chỉ sẽ được cấp.
|
||||
|
||||
Với phương thức này, bạn phải tạo trước một Proxy Host cho tên miền, có thể truy cập qua HTTP và trỏ về đúng cài đặt Nginx này.
|
||||
Sau khi chứng chỉ được cấp, bạn có thể chỉnh sửa Proxy Host để sử dụng chứng chỉ đó cho kết nối HTTPS.
|
||||
|
||||
Tuy nhiên, Proxy Host vẫn phải hỗ trợ truy cập HTTP để việc gia hạn chứng chỉ diễn ra bình thường.
|
||||
|
||||
Phương thức này _không hỗ trợ_ wildcard domain.
|
||||
|
||||
### Chứng chỉ DNS (DNS Certificate)
|
||||
|
||||
Chứng chỉ được xác thực qua DNS yêu cầu bạn sử dụng plugin của DNS Provider.
|
||||
Plugin này sẽ tạo các bản ghi tạm thời trong DNS của bạn để Let's Encrypt kiểm tra quyền sở hữu tên miền. Nếu hợp lệ, chứng chỉ sẽ được cấp.
|
||||
|
||||
Khi dùng phương thức này: Bạn không cần tạo sẵn Proxy Host trước và bạn không cần mở HTTP cho Proxy Host.
|
||||
|
||||
Phương thức DNS _có hỗ trợ_ wildcard domain.
|
||||
|
||||
### Chứng chỉ tùy chỉnh (Custom Certificate)
|
||||
|
||||
Tùy chọn này cho phép bạn tải lên chứng chỉ SSL của riêng mình, được cung cấp bởi Certificate Authority (CA) mà bạn tự chọn.
|
||||
8
frontend/src/locale/src/HelpDoc/vi/DeadHosts.md
Normal file
8
frontend/src/locale/src/HelpDoc/vi/DeadHosts.md
Normal file
@@ -0,0 +1,8 @@
|
||||
## 404 Host là gì?
|
||||
|
||||
404 Host đơn giản là một host được thiết lập để hiển thị trang 404.
|
||||
|
||||
Điều này có thể hữu ích khi tên miền của bạn vẫn xuất hiện trên các công cụ tìm kiếm và bạn muốn hiển thị một trang lỗi đẹp hơn, hoặc muốn thông báo rõ ràng cho các trình thu thập dữ liệu tìm kiếm rằng các trang thuộc tên miền đó không còn tồn tại.
|
||||
|
||||
Một lợi ích khác của việc có 404 Host là bạn có thể theo dõi nhật ký truy cập vào nó và
|
||||
xem các nguồn giới thiệu (referrers).
|
||||
7
frontend/src/locale/src/HelpDoc/vi/ProxyHosts.md
Normal file
7
frontend/src/locale/src/HelpDoc/vi/ProxyHosts.md
Normal file
@@ -0,0 +1,7 @@
|
||||
## Proxy Host là gì?
|
||||
|
||||
Proxy Host là điểm truy cập đầu vào cho một dịch vụ web mà bạn muốn chuyển tiếp.
|
||||
|
||||
Nó cung cấp khả năng kết thúc SSL (SSL termination) tùy chọn cho các dịch vụ vốn không hỗ trợ SSL tích hợp.
|
||||
|
||||
Proxy Host là loại cấu hình phổ biến nhất trong Nginx Proxy Manager.
|
||||
5
frontend/src/locale/src/HelpDoc/vi/RedirectionHosts.md
Normal file
5
frontend/src/locale/src/HelpDoc/vi/RedirectionHosts.md
Normal file
@@ -0,0 +1,5 @@
|
||||
## Redirection Host là gì?
|
||||
|
||||
Redirection Host sẽ chuyển hướng các yêu cầu từ tên miền truy cập vào và đưa người xem sang một tên miền khác
|
||||
|
||||
Lý do phổ biến nhất để sử dụng loại host này là khi trang web của bạn đổi sang tên miền mới nhưng vẫn còn các liên kết từ công cụ tìm kiếm hoặc nguồn giới thiệu trỏ về tên miền cũ.
|
||||
6
frontend/src/locale/src/HelpDoc/vi/Streams.md
Normal file
6
frontend/src/locale/src/HelpDoc/vi/Streams.md
Normal file
@@ -0,0 +1,6 @@
|
||||
## Stream là gì?
|
||||
|
||||
Stream là một tính năng tương đối mới của Nginx, dùng để chuyển tiếp lưu lượng
|
||||
TCP/UDP trực tiếp tới một máy khác trong mạng.
|
||||
|
||||
Nếu bạn đang vận hành các máy chủ game, FTP hoặc SSH thì tính năng này sẽ rất hữu ích.
|
||||
6
frontend/src/locale/src/HelpDoc/vi/index.ts
Normal file
6
frontend/src/locale/src/HelpDoc/vi/index.ts
Normal file
@@ -0,0 +1,6 @@
|
||||
export * as AccessLists from "./AccessLists.md";
|
||||
export * as Certificates from "./Certificates.md";
|
||||
export * as DeadHosts from "./DeadHosts.md";
|
||||
export * as ProxyHosts from "./ProxyHosts.md";
|
||||
export * as RedirectionHosts from "./RedirectionHosts.md";
|
||||
export * as Streams from "./Streams.md";
|
||||
683
frontend/src/locale/src/bg.json
Normal file
683
frontend/src/locale/src/bg.json
Normal file
@@ -0,0 +1,683 @@
|
||||
{
|
||||
"access-list": {
|
||||
"defaultMessage": "Списък за достъп"
|
||||
},
|
||||
"access-list.access-count": {
|
||||
"defaultMessage": "{count} {count, plural, one {правило} other {правила}}"
|
||||
},
|
||||
"access-list.auth-count": {
|
||||
"defaultMessage": "{count} {count, plural, one {потребител} other {потребители}}"
|
||||
},
|
||||
"access-list.help-rules-last": {
|
||||
"defaultMessage": "Когато съществува поне 1 правило, това правило за отказ се добавя последно"
|
||||
},
|
||||
"access-list.help.rules-order": {
|
||||
"defaultMessage": "Обърнете внимание, че правилата Позволяване и Отказване се прилагат в реда, в който са зададени."
|
||||
},
|
||||
"access-list.pass-auth": {
|
||||
"defaultMessage": "Предаване на автентикация към Upstream"
|
||||
},
|
||||
"access-list.public": {
|
||||
"defaultMessage": "Публичен достъп"
|
||||
},
|
||||
"access-list.public.subtitle": {
|
||||
"defaultMessage": "Без базова автентикация"
|
||||
},
|
||||
"access-list.rule-source.placeholder": {
|
||||
"defaultMessage": "192.168.1.100 или 192.168.1.0/24 или 2001:0db8::/32"
|
||||
},
|
||||
"access-list.satisfy-any": {
|
||||
"defaultMessage": "Удовлетворяване на което и да е"
|
||||
},
|
||||
"access-list.subtitle": {
|
||||
"defaultMessage": "{users} {users, plural, one {потребител} other {потребители}}, {rules} {rules, plural, one {правило} other {правила}} - Създадено: {date}"
|
||||
},
|
||||
"access-lists": {
|
||||
"defaultMessage": "Списъци за достъп"
|
||||
},
|
||||
"action.add": {
|
||||
"defaultMessage": "Добавяне"
|
||||
},
|
||||
"action.add-location": {
|
||||
"defaultMessage": "Добавяне на маршрут"
|
||||
},
|
||||
"action.allow": {
|
||||
"defaultMessage": "Разрешаване"
|
||||
},
|
||||
"action.close": {
|
||||
"defaultMessage": "Затваряне"
|
||||
},
|
||||
"action.delete": {
|
||||
"defaultMessage": "Изтриване"
|
||||
},
|
||||
"action.deny": {
|
||||
"defaultMessage": "Отказване"
|
||||
},
|
||||
"action.disable": {
|
||||
"defaultMessage": "Деактивиране"
|
||||
},
|
||||
"action.download": {
|
||||
"defaultMessage": "Изтегляне"
|
||||
},
|
||||
"action.edit": {
|
||||
"defaultMessage": "Редактиране"
|
||||
},
|
||||
"action.enable": {
|
||||
"defaultMessage": "Активиране"
|
||||
},
|
||||
"action.permissions": {
|
||||
"defaultMessage": "Права"
|
||||
},
|
||||
"action.renew": {
|
||||
"defaultMessage": "Подновяване"
|
||||
},
|
||||
"action.view-details": {
|
||||
"defaultMessage": "Преглед на детайли"
|
||||
},
|
||||
"auditlogs": {
|
||||
"defaultMessage": "Журнали за одит"
|
||||
},
|
||||
"auto": {
|
||||
"defaultMessage": "Автоматично"
|
||||
},
|
||||
"cancel": {
|
||||
"defaultMessage": "Отказ"
|
||||
},
|
||||
"certificate": {
|
||||
"defaultMessage": "Сертификат"
|
||||
},
|
||||
"certificate.custom-certificate": {
|
||||
"defaultMessage": "Сертификат"
|
||||
},
|
||||
"certificate.custom-certificate-key": {
|
||||
"defaultMessage": "Ключ на сертификата"
|
||||
},
|
||||
"certificate.custom-intermediate": {
|
||||
"defaultMessage": "Междинен сертификат"
|
||||
},
|
||||
"certificate.in-use": {
|
||||
"defaultMessage": "Използва се"
|
||||
},
|
||||
"certificate.none.subtitle": {
|
||||
"defaultMessage": "Не е назначен сертификат"
|
||||
},
|
||||
"certificate.none.subtitle.for-http": {
|
||||
"defaultMessage": "Този хост няма да използва HTTPS"
|
||||
},
|
||||
"certificate.none.title": {
|
||||
"defaultMessage": "Без сертификат"
|
||||
},
|
||||
"certificate.not-in-use": {
|
||||
"defaultMessage": "Не се използва"
|
||||
},
|
||||
"certificate.renew": {
|
||||
"defaultMessage": "Подновяване на сертификат"
|
||||
},
|
||||
"certificates": {
|
||||
"defaultMessage": "Сертификати"
|
||||
},
|
||||
"certificates.custom": {
|
||||
"defaultMessage": "Потребителски сертификат"
|
||||
},
|
||||
"certificates.custom.warning": {
|
||||
"defaultMessage": "Ключове, защитени с парола, не се поддържат."
|
||||
},
|
||||
"certificates.dns.credentials": {
|
||||
"defaultMessage": "Съдържание на файл с удостоверения"
|
||||
},
|
||||
"certificates.dns.credentials-note": {
|
||||
"defaultMessage": "Този плъгин изисква конфигурационен файл с API токен или други идентификационни данни."
|
||||
},
|
||||
"certificates.dns.credentials-warning": {
|
||||
"defaultMessage": "Тези данни ще бъдат съхранени като обикновен текст в базата и във файл!"
|
||||
},
|
||||
"certificates.dns.propagation-seconds": {
|
||||
"defaultMessage": "Секунди за разпространение"
|
||||
},
|
||||
"certificates.dns.propagation-seconds-note": {
|
||||
"defaultMessage": "Оставете празно, за да се използва стойността по подразбиране. Брой секунди за изчакване на DNS разпространение."
|
||||
},
|
||||
"certificates.dns.provider": {
|
||||
"defaultMessage": "DNS доставчик"
|
||||
},
|
||||
"certificates.dns.provider.placeholder": {
|
||||
"defaultMessage": "Изберете доставчик..."
|
||||
},
|
||||
"certificates.dns.warning": {
|
||||
"defaultMessage": "Този раздел изисква познания за Certbot и неговите DNS плъгини. Моля, консултирайте се с документацията."
|
||||
},
|
||||
"certificates.http.reachability-404": {
|
||||
"defaultMessage": "Сървър е намерен на този домейн, но не изглежда да е Nginx Proxy Manager. Уверете се, че домейнът сочи към IP адреса, където работи NPM."
|
||||
},
|
||||
"certificates.http.reachability-failed-to-check": {
|
||||
"defaultMessage": "Неуспешна проверка поради грешка в комуникацията със site24x7.com."
|
||||
},
|
||||
"certificates.http.reachability-not-resolved": {
|
||||
"defaultMessage": "Няма достъпен сървър на този домейн. Проверете, че домейнът съществува и сочи към IP-та, където се изпълнява NPM, и ако е необходимо, че порт 80 е пренасочен."
|
||||
},
|
||||
"certificates.http.reachability-ok": {
|
||||
"defaultMessage": "Вашият сървър е достъпен и създаването на сертификати е възможно."
|
||||
},
|
||||
"certificates.http.reachability-other": {
|
||||
"defaultMessage": "Намерен е сървър, но върна неочакван код {code}. Това NPM ли е? Уверете се, че домейнът сочи към вашия NPM сървър."
|
||||
},
|
||||
"certificates.http.reachability-wrong-data": {
|
||||
"defaultMessage": "Намерен е сървър, но върна неочаквани данни. Това NPM ли е? Уверете се, че домейнът сочи към вашия NPM сървър."
|
||||
},
|
||||
"certificates.http.test-results": {
|
||||
"defaultMessage": "Резултати от теста"
|
||||
},
|
||||
"certificates.http.warning": {
|
||||
"defaultMessage": "Тези домейни трябва вече да сочат към тази инсталация."
|
||||
},
|
||||
"certificates.request.subtitle": {
|
||||
"defaultMessage": "с Let's Encrypt"
|
||||
},
|
||||
"certificates.request.title": {
|
||||
"defaultMessage": "Заявка за нов сертификат"
|
||||
},
|
||||
"column.access": {
|
||||
"defaultMessage": "Достъп"
|
||||
},
|
||||
"column.authorization": {
|
||||
"defaultMessage": "Автентикация"
|
||||
},
|
||||
"column.authorizations": {
|
||||
"defaultMessage": "Автентикации"
|
||||
},
|
||||
"column.custom-locations": {
|
||||
"defaultMessage": "Персонализирани маршрути"
|
||||
},
|
||||
"column.destination": {
|
||||
"defaultMessage": "Дестинация"
|
||||
},
|
||||
"column.details": {
|
||||
"defaultMessage": "Детайли"
|
||||
},
|
||||
"column.email": {
|
||||
"defaultMessage": "Имейл"
|
||||
},
|
||||
"column.event": {
|
||||
"defaultMessage": "Събитие"
|
||||
},
|
||||
"column.expires": {
|
||||
"defaultMessage": "Изтича"
|
||||
},
|
||||
"column.http-code": {
|
||||
"defaultMessage": "HTTP код"
|
||||
},
|
||||
"column.incoming-port": {
|
||||
"defaultMessage": "Входящ порт"
|
||||
},
|
||||
"column.name": {
|
||||
"defaultMessage": "Име"
|
||||
},
|
||||
"column.protocol": {
|
||||
"defaultMessage": "Протокол"
|
||||
},
|
||||
"column.provider": {
|
||||
"defaultMessage": "Доставчик"
|
||||
},
|
||||
"column.roles": {
|
||||
"defaultMessage": "Роли"
|
||||
},
|
||||
"column.rules": {
|
||||
"defaultMessage": "Правила"
|
||||
},
|
||||
"column.satisfy": {
|
||||
"defaultMessage": "Удовлетворяване"
|
||||
},
|
||||
"column.satisfy-all": {
|
||||
"defaultMessage": "Всички"
|
||||
},
|
||||
"column.satisfy-any": {
|
||||
"defaultMessage": "Кое и да е"
|
||||
},
|
||||
"column.scheme": {
|
||||
"defaultMessage": "Схема"
|
||||
},
|
||||
"column.source": {
|
||||
"defaultMessage": "Източник"
|
||||
},
|
||||
"column.ssl": {
|
||||
"defaultMessage": "SSL"
|
||||
},
|
||||
"column.status": {
|
||||
"defaultMessage": "Статус"
|
||||
},
|
||||
"created-on": {
|
||||
"defaultMessage": "Създадено: {date}"
|
||||
},
|
||||
"dashboard": {
|
||||
"defaultMessage": "Табло"
|
||||
},
|
||||
"dead-host": {
|
||||
"defaultMessage": "404 хост"
|
||||
},
|
||||
"dead-hosts": {
|
||||
"defaultMessage": "404 хостове"
|
||||
},
|
||||
"dead-hosts.count": {
|
||||
"defaultMessage": "{count} {count, plural, one {404 хост} other {404 хостове}}"
|
||||
},
|
||||
"disabled": {
|
||||
"defaultMessage": "Деактивиран"
|
||||
},
|
||||
"domain-names": {
|
||||
"defaultMessage": "Домейн имена"
|
||||
},
|
||||
"domain-names.max": {
|
||||
"defaultMessage": "Максимум {count} домейна"
|
||||
},
|
||||
"domain-names.placeholder": {
|
||||
"defaultMessage": "Започнете да въвеждате, за да добавите домейн..."
|
||||
},
|
||||
"domain-names.wildcards-not-permitted": {
|
||||
"defaultMessage": "Wildcard не е разрешен за този тип"
|
||||
},
|
||||
"domain-names.wildcards-not-supported": {
|
||||
"defaultMessage": "Wildcard не се поддържа от това CA"
|
||||
},
|
||||
"domains.force-ssl": {
|
||||
"defaultMessage": "Принудително SSL"
|
||||
},
|
||||
"domains.hsts-enabled": {
|
||||
"defaultMessage": "HSTS активирано"
|
||||
},
|
||||
"domains.hsts-subdomains": {
|
||||
"defaultMessage": "HSTS за поддомейни"
|
||||
},
|
||||
"domains.http2-support": {
|
||||
"defaultMessage": "Поддръжка на HTTP/2"
|
||||
},
|
||||
"domains.use-dns": {
|
||||
"defaultMessage": "Използване на DNS Challenge"
|
||||
},
|
||||
"email-address": {
|
||||
"defaultMessage": "Имейл адрес"
|
||||
},
|
||||
"empty-search": {
|
||||
"defaultMessage": "Няма резултати"
|
||||
},
|
||||
"empty-subtitle": {
|
||||
"defaultMessage": "Защо не създадете един?"
|
||||
},
|
||||
"enabled": {
|
||||
"defaultMessage": "Активиран"
|
||||
},
|
||||
"error.access.at-least-one": {
|
||||
"defaultMessage": "Необходимо е поне една Автентикация или едно Правило за достъп"
|
||||
},
|
||||
"error.access.duplicate-usernames": {
|
||||
"defaultMessage": "Потребителските имена за достъп трябва да са уникални"
|
||||
},
|
||||
"error.invalid-auth": {
|
||||
"defaultMessage": "Невалиден имейл или парола"
|
||||
},
|
||||
"error.invalid-domain": {
|
||||
"defaultMessage": "Невалиден домейн: {domain}"
|
||||
},
|
||||
"error.invalid-email": {
|
||||
"defaultMessage": "Невалиден имейл адрес"
|
||||
},
|
||||
"error.max-character-length": {
|
||||
"defaultMessage": "Максималната дължина е {max} знак{max, plural, one {} other {а}}"
|
||||
},
|
||||
"error.max-domains": {
|
||||
"defaultMessage": "Твърде много домейни, максимум {max}"
|
||||
},
|
||||
"error.maximum": {
|
||||
"defaultMessage": "Максимум {max}"
|
||||
},
|
||||
"error.min-character-length": {
|
||||
"defaultMessage": "Минималната дължина е {min} знак{min, plural, one {} other {а}}"
|
||||
},
|
||||
"error.minimum": {
|
||||
"defaultMessage": "Минимум e {min}"
|
||||
},
|
||||
"error.passwords-must-match": {
|
||||
"defaultMessage": "Паролите трябва да съвпадат"
|
||||
},
|
||||
"error.required": {
|
||||
"defaultMessage": "Това поле е задължително"
|
||||
},
|
||||
"expires.on": {
|
||||
"defaultMessage": "Изтича: {date}"
|
||||
},
|
||||
"footer.github-fork": {
|
||||
"defaultMessage": "Fork в GitHub"
|
||||
},
|
||||
"host.flags.block-exploits": {
|
||||
"defaultMessage": "Блокиране на често срещани експлойти"
|
||||
},
|
||||
"host.flags.cache-assets": {
|
||||
"defaultMessage": "Кеширане на ресурси"
|
||||
},
|
||||
"host.flags.preserve-path": {
|
||||
"defaultMessage": "Запазване на пътя"
|
||||
},
|
||||
"host.flags.protocols": {
|
||||
"defaultMessage": "Протоколи"
|
||||
},
|
||||
"host.flags.websockets-upgrade": {
|
||||
"defaultMessage": "Поддръжка на WebSockets"
|
||||
},
|
||||
"host.forward-port": {
|
||||
"defaultMessage": "Порт"
|
||||
},
|
||||
"host.forward-scheme": {
|
||||
"defaultMessage": "Схема"
|
||||
},
|
||||
"hosts": {
|
||||
"defaultMessage": "Хостове"
|
||||
},
|
||||
"http-only": {
|
||||
"defaultMessage": "Само HTTP"
|
||||
},
|
||||
"lets-encrypt": {
|
||||
"defaultMessage": "Let's Encrypt"
|
||||
},
|
||||
"lets-encrypt-via-dns": {
|
||||
"defaultMessage": "Let's Encrypt чрез DNS"
|
||||
},
|
||||
"lets-encrypt-via-http": {
|
||||
"defaultMessage": "Let's Encrypt чрез HTTP"
|
||||
},
|
||||
"loading": {
|
||||
"defaultMessage": "Зареждане…"
|
||||
},
|
||||
"login.title": {
|
||||
"defaultMessage": "Вход в акаунта"
|
||||
},
|
||||
"nginx-config.label": {
|
||||
"defaultMessage": "Персонализирана Nginx конфигурация"
|
||||
},
|
||||
"nginx-config.placeholder": {
|
||||
"defaultMessage": "# Въведете вашата персонализирана Nginx конфигурация на собствен риск!"
|
||||
},
|
||||
"no-permission-error": {
|
||||
"defaultMessage": "Нямате достъп до тази страница."
|
||||
},
|
||||
"notfound.action": {
|
||||
"defaultMessage": "Към началната страница"
|
||||
},
|
||||
"notfound.content": {
|
||||
"defaultMessage": "Страницата, която търсите, не беше намерена"
|
||||
},
|
||||
"notfound.title": {
|
||||
"defaultMessage": "Упс… Намерихте грешка"
|
||||
},
|
||||
"notification.error": {
|
||||
"defaultMessage": "Грешка"
|
||||
},
|
||||
"notification.object-deleted": {
|
||||
"defaultMessage": "{object} беше изтрит"
|
||||
},
|
||||
"notification.object-disabled": {
|
||||
"defaultMessage": "{object} беше деактивиран"
|
||||
},
|
||||
"notification.object-enabled": {
|
||||
"defaultMessage": "{object} беше активиран"
|
||||
},
|
||||
"notification.object-renewed": {
|
||||
"defaultMessage": "{object} беше подновен"
|
||||
},
|
||||
"notification.object-saved": {
|
||||
"defaultMessage": "{object} беше запазен"
|
||||
},
|
||||
"notification.success": {
|
||||
"defaultMessage": "Успех"
|
||||
},
|
||||
"object.actions-title": {
|
||||
"defaultMessage": "{object} №{id}"
|
||||
},
|
||||
"object.add": {
|
||||
"defaultMessage": "Добавяне: {object}"
|
||||
},
|
||||
"object.delete": {
|
||||
"defaultMessage": "Изтриване: {object}"
|
||||
},
|
||||
"object.delete.content": {
|
||||
"defaultMessage": "Сигурни ли сте, че искате да изтриете {object}?"
|
||||
},
|
||||
"object.edit": {
|
||||
"defaultMessage": "Редактиране: {object}"
|
||||
},
|
||||
"object.empty": {
|
||||
"defaultMessage": "Няма налични {objects}"
|
||||
},
|
||||
"object.event.created": {
|
||||
"defaultMessage": "Създаден {object}"
|
||||
},
|
||||
"object.event.deleted": {
|
||||
"defaultMessage": "Изтрит {object}"
|
||||
},
|
||||
"object.event.disabled": {
|
||||
"defaultMessage": "Деактивиран {object}"
|
||||
},
|
||||
"object.event.enabled": {
|
||||
"defaultMessage": "Активиран {object}"
|
||||
},
|
||||
"object.event.renewed": {
|
||||
"defaultMessage": "Подновен {object}"
|
||||
},
|
||||
"object.event.updated": {
|
||||
"defaultMessage": "Актуализиран {object}"
|
||||
},
|
||||
"offline": {
|
||||
"defaultMessage": "Офлайн"
|
||||
},
|
||||
"online": {
|
||||
"defaultMessage": "Онлайн"
|
||||
},
|
||||
"options": {
|
||||
"defaultMessage": "Опции"
|
||||
},
|
||||
"password": {
|
||||
"defaultMessage": "Парола"
|
||||
},
|
||||
"password.generate": {
|
||||
"defaultMessage": "Генериране на случайна парола"
|
||||
},
|
||||
"password.hide": {
|
||||
"defaultMessage": "Скриване на паролата"
|
||||
},
|
||||
"password.show": {
|
||||
"defaultMessage": "Показване на паролата"
|
||||
},
|
||||
"permissions.hidden": {
|
||||
"defaultMessage": "Скрито"
|
||||
},
|
||||
"permissions.manage": {
|
||||
"defaultMessage": "Управление"
|
||||
},
|
||||
"permissions.view": {
|
||||
"defaultMessage": "Само преглед"
|
||||
},
|
||||
"permissions.visibility.all": {
|
||||
"defaultMessage": "Всички елементи"
|
||||
},
|
||||
"permissions.visibility.title": {
|
||||
"defaultMessage": "Видимост на елементите"
|
||||
},
|
||||
"permissions.visibility.user": {
|
||||
"defaultMessage": "Само създадените от потребителя"
|
||||
},
|
||||
"proxy-host": {
|
||||
"defaultMessage": "Прокси хост"
|
||||
},
|
||||
"proxy-host.forward-host": {
|
||||
"defaultMessage": "Хост/IP за препращане"
|
||||
},
|
||||
"proxy-hosts": {
|
||||
"defaultMessage": "Прокси хостове"
|
||||
},
|
||||
"proxy-hosts.count": {
|
||||
"defaultMessage": "{count} {count, plural, one {прокси хост} other {прокси хостове}}"
|
||||
},
|
||||
"public": {
|
||||
"defaultMessage": "Публичен"
|
||||
},
|
||||
"redirection-host": {
|
||||
"defaultMessage": "Хост за пренасочване"
|
||||
},
|
||||
"redirection-host.forward-domain": {
|
||||
"defaultMessage": "Домейн за пренасочване"
|
||||
},
|
||||
"redirection-host.forward-http-code": {
|
||||
"defaultMessage": "HTTP код"
|
||||
},
|
||||
"redirection-hosts": {
|
||||
"defaultMessage": "Хостове за пренасочване"
|
||||
},
|
||||
"redirection-hosts.count": {
|
||||
"defaultMessage": "{count} {count, plural, one {хост за пренасочване} other {хостове за пренасочване}}"
|
||||
},
|
||||
"redirection-hosts.http-code.300": {
|
||||
"defaultMessage": "300 Multiple Choices"
|
||||
},
|
||||
"redirection-hosts.http-code.301": {
|
||||
"defaultMessage": "301 Преместено постоянно"
|
||||
},
|
||||
"redirection-hosts.http-code.302": {
|
||||
"defaultMessage": "302 Преместено временно"
|
||||
},
|
||||
"redirection-hosts.http-code.303": {
|
||||
"defaultMessage": "303 See other"
|
||||
},
|
||||
"redirection-hosts.http-code.307": {
|
||||
"defaultMessage": "307 Временно пренасочване"
|
||||
},
|
||||
"redirection-hosts.http-code.308": {
|
||||
"defaultMessage": "308 Постоянно пренасочване"
|
||||
},
|
||||
"role.admin": {
|
||||
"defaultMessage": "Администратор"
|
||||
},
|
||||
"role.standard-user": {
|
||||
"defaultMessage": "Обикновен потребител"
|
||||
},
|
||||
"save": {
|
||||
"defaultMessage": "Запазване"
|
||||
},
|
||||
"setting": {
|
||||
"defaultMessage": "Настройка"
|
||||
},
|
||||
"settings": {
|
||||
"defaultMessage": "Настройки"
|
||||
},
|
||||
"settings.default-site": {
|
||||
"defaultMessage": "Сайт по подразбиране"
|
||||
},
|
||||
"settings.default-site.404": {
|
||||
"defaultMessage": "404 страница"
|
||||
},
|
||||
"settings.default-site.444": {
|
||||
"defaultMessage": "Без отговор (444)"
|
||||
},
|
||||
"settings.default-site.congratulations": {
|
||||
"defaultMessage": "Страница поздравление"
|
||||
},
|
||||
"settings.default-site.description": {
|
||||
"defaultMessage": "Какво да се показва при заявка към неизвестен хост"
|
||||
},
|
||||
"settings.default-site.html": {
|
||||
"defaultMessage": "Персонализиран HTML"
|
||||
},
|
||||
"settings.default-site.html.placeholder": {
|
||||
"defaultMessage": "<!-- Въведете вашето персонализирано HTML съдържание тук -->"
|
||||
},
|
||||
"settings.default-site.redirect": {
|
||||
"defaultMessage": "Пренасочване"
|
||||
},
|
||||
"setup.preamble": {
|
||||
"defaultMessage": "Започнете, като създадете администраторски акаунт."
|
||||
},
|
||||
"setup.title": {
|
||||
"defaultMessage": "Добре дошли!"
|
||||
},
|
||||
"sign-in": {
|
||||
"defaultMessage": "Вход"
|
||||
},
|
||||
"ssl-certificate": {
|
||||
"defaultMessage": "SSL сертификат"
|
||||
},
|
||||
"stream": {
|
||||
"defaultMessage": "Поток"
|
||||
},
|
||||
"stream.forward-host": {
|
||||
"defaultMessage": "Хост за препращане"
|
||||
},
|
||||
"stream.forward-host.placeholder": {
|
||||
"defaultMessage": "example.com или 10.0.0.1 или 2001:db8:3333:4444:5555:6666:7777:8888"
|
||||
},
|
||||
"stream.incoming-port": {
|
||||
"defaultMessage": "Входящ порт"
|
||||
},
|
||||
"streams": {
|
||||
"defaultMessage": "Потоци"
|
||||
},
|
||||
"streams.count": {
|
||||
"defaultMessage": "{count} {count, plural, one {поток} other {потоци}}"
|
||||
},
|
||||
"streams.tcp": {
|
||||
"defaultMessage": "TCP"
|
||||
},
|
||||
"streams.udp": {
|
||||
"defaultMessage": "UDP"
|
||||
},
|
||||
"test": {
|
||||
"defaultMessage": "Тест"
|
||||
},
|
||||
"update-available": {
|
||||
"defaultMessage": "Налична актуализация: {latestVersion}"
|
||||
},
|
||||
"user": {
|
||||
"defaultMessage": "Потребител"
|
||||
},
|
||||
"user.change-password": {
|
||||
"defaultMessage": "Смяна на парола"
|
||||
},
|
||||
"user.confirm-password": {
|
||||
"defaultMessage": "Потвърждение на парола"
|
||||
},
|
||||
"user.current-password": {
|
||||
"defaultMessage": "Текуща парола"
|
||||
},
|
||||
"user.edit-profile": {
|
||||
"defaultMessage": "Редактиране на профил"
|
||||
},
|
||||
"user.full-name": {
|
||||
"defaultMessage": "Пълно име"
|
||||
},
|
||||
"user.login-as": {
|
||||
"defaultMessage": "Вход като {name}"
|
||||
},
|
||||
"user.logout": {
|
||||
"defaultMessage": "Изход"
|
||||
},
|
||||
"user.new-password": {
|
||||
"defaultMessage": "Нова парола"
|
||||
},
|
||||
"user.nickname": {
|
||||
"defaultMessage": "Псевдоним"
|
||||
},
|
||||
"user.set-password": {
|
||||
"defaultMessage": "Задаване на парола"
|
||||
},
|
||||
"user.set-permissions": {
|
||||
"defaultMessage": "Настройка на права за {name}"
|
||||
},
|
||||
"user.switch-dark": {
|
||||
"defaultMessage": "Тъмна тема"
|
||||
},
|
||||
"user.switch-light": {
|
||||
"defaultMessage": "Светла тема"
|
||||
},
|
||||
"username": {
|
||||
"defaultMessage": "Потребителско име"
|
||||
},
|
||||
"users": {
|
||||
"defaultMessage": "Потребители"
|
||||
}
|
||||
}
|
||||
@@ -23,6 +23,9 @@
|
||||
"access-list.public.subtitle": {
|
||||
"defaultMessage": "No basic auth required"
|
||||
},
|
||||
"access-list.rule-source.placeholder": {
|
||||
"defaultMessage": "192.168.1.100 or 192.168.1.0/24 or 2001:0db8::/32"
|
||||
},
|
||||
"access-list.satisfy-any": {
|
||||
"defaultMessage": "Satisfy Any"
|
||||
},
|
||||
@@ -38,12 +41,18 @@
|
||||
"action.add-location": {
|
||||
"defaultMessage": "Add Location"
|
||||
},
|
||||
"action.allow": {
|
||||
"defaultMessage": "Allow"
|
||||
},
|
||||
"action.close": {
|
||||
"defaultMessage": "Close"
|
||||
},
|
||||
"action.delete": {
|
||||
"defaultMessage": "Delete"
|
||||
},
|
||||
"action.deny": {
|
||||
"defaultMessage": "Deny"
|
||||
},
|
||||
"action.disable": {
|
||||
"defaultMessage": "Disable"
|
||||
},
|
||||
@@ -68,6 +77,9 @@
|
||||
"auditlogs": {
|
||||
"defaultMessage": "Audit Logs"
|
||||
},
|
||||
"auto": {
|
||||
"defaultMessage": "Auto"
|
||||
},
|
||||
"cancel": {
|
||||
"defaultMessage": "Cancel"
|
||||
},
|
||||
@@ -128,6 +140,9 @@
|
||||
"certificates.dns.provider": {
|
||||
"defaultMessage": "DNS Provider"
|
||||
},
|
||||
"certificates.dns.provider.placeholder": {
|
||||
"defaultMessage": "Select a Provider..."
|
||||
},
|
||||
"certificates.dns.warning": {
|
||||
"defaultMessage": "This section requires some knowledge about Certbot and its DNS plugins. Please consult the respective plugins documentation."
|
||||
},
|
||||
@@ -518,6 +533,24 @@
|
||||
"redirection-hosts.count": {
|
||||
"defaultMessage": "{count} {count, plural, one {Redirection Host} other {Redirection Hosts}}"
|
||||
},
|
||||
"redirection-hosts.http-code.300": {
|
||||
"defaultMessage": "300 Multiple Choices"
|
||||
},
|
||||
"redirection-hosts.http-code.301": {
|
||||
"defaultMessage": "301 Moved permanently"
|
||||
},
|
||||
"redirection-hosts.http-code.302": {
|
||||
"defaultMessage": "302 Moved temporarily"
|
||||
},
|
||||
"redirection-hosts.http-code.303": {
|
||||
"defaultMessage": "303 See other"
|
||||
},
|
||||
"redirection-hosts.http-code.307": {
|
||||
"defaultMessage": "307 Temporary redirect"
|
||||
},
|
||||
"redirection-hosts.http-code.308": {
|
||||
"defaultMessage": "308 Permanent redirect"
|
||||
},
|
||||
"role.admin": {
|
||||
"defaultMessage": "Administrator"
|
||||
},
|
||||
@@ -575,6 +608,9 @@
|
||||
"stream.forward-host": {
|
||||
"defaultMessage": "Forward Host"
|
||||
},
|
||||
"stream.forward-host.placeholder": {
|
||||
"defaultMessage": "example.com or 10.0.0.1 or 2001:db8:3333:4444:5555:6666:7777:8888"
|
||||
},
|
||||
"stream.incoming-port": {
|
||||
"defaultMessage": "Incoming Port"
|
||||
},
|
||||
|
||||
@@ -23,6 +23,9 @@
|
||||
"access-list.public.subtitle": {
|
||||
"defaultMessage": "No se requiere autenticación básica"
|
||||
},
|
||||
"access-list.rule-source.placeholder": {
|
||||
"defaultMessage": "192.168.1.100 o 192.168.1.0/24 o 2001:0db8::/32"
|
||||
},
|
||||
"access-list.satisfy-any": {
|
||||
"defaultMessage": "Satisfacer Cualquiera"
|
||||
},
|
||||
@@ -38,12 +41,18 @@
|
||||
"action.add-location": {
|
||||
"defaultMessage": "Añadir Ubicación"
|
||||
},
|
||||
"action.allow": {
|
||||
"defaultMessage": "Permitir"
|
||||
},
|
||||
"action.close": {
|
||||
"defaultMessage": "Cerrar"
|
||||
},
|
||||
"action.delete": {
|
||||
"defaultMessage": "Eliminar"
|
||||
},
|
||||
"action.deny": {
|
||||
"defaultMessage": "Denegar"
|
||||
},
|
||||
"action.disable": {
|
||||
"defaultMessage": "Deshabilitar"
|
||||
},
|
||||
@@ -68,6 +77,9 @@
|
||||
"auditlogs": {
|
||||
"defaultMessage": "Registros de Auditoría"
|
||||
},
|
||||
"auto": {
|
||||
"defaultMessage": "Auto"
|
||||
},
|
||||
"cancel": {
|
||||
"defaultMessage": "Cancelar"
|
||||
},
|
||||
@@ -128,6 +140,9 @@
|
||||
"certificates.dns.provider": {
|
||||
"defaultMessage": "Proveedor DNS"
|
||||
},
|
||||
"certificates.dns.provider.placeholder": {
|
||||
"defaultMessage": "Selecciona un Proveedor..."
|
||||
},
|
||||
"certificates.dns.warning": {
|
||||
"defaultMessage": "Esta sección requiere algunos conocimientos sobre Certbot y sus plugins DNS. Consulta la documentación de los plugins respectivos."
|
||||
},
|
||||
@@ -348,7 +363,7 @@
|
||||
"defaultMessage": "Soporte de Websockets"
|
||||
},
|
||||
"host.forward-port": {
|
||||
"defaultMessage": "Puerto de Reenvío"
|
||||
"defaultMessage": "Puerto"
|
||||
},
|
||||
"host.forward-scheme": {
|
||||
"defaultMessage": "Esquema"
|
||||
@@ -518,6 +533,24 @@
|
||||
"redirection-hosts.count": {
|
||||
"defaultMessage": "{count} {count, plural, one {Host de Redirección} other {Hosts de Redirección}}"
|
||||
},
|
||||
"redirection-hosts.http-code.300": {
|
||||
"defaultMessage": "300 Multiples Opciones"
|
||||
},
|
||||
"redirection-hosts.http-code.301": {
|
||||
"defaultMessage": "301 Movido permanentemente"
|
||||
},
|
||||
"redirection-hosts.http-code.302": {
|
||||
"defaultMessage": "302 Movido temporalmente"
|
||||
},
|
||||
"redirection-hosts.http-code.303": {
|
||||
"defaultMessage": "303 Ver otro"
|
||||
},
|
||||
"redirection-hosts.http-code.307": {
|
||||
"defaultMessage": "307 Redirección temporal"
|
||||
},
|
||||
"redirection-hosts.http-code.308": {
|
||||
"defaultMessage": "308 Redirección permanente"
|
||||
},
|
||||
"role.admin": {
|
||||
"defaultMessage": "Administrador"
|
||||
},
|
||||
@@ -575,6 +608,9 @@
|
||||
"stream.forward-host": {
|
||||
"defaultMessage": "Host de Reenvío"
|
||||
},
|
||||
"stream.forward-host.placeholder": {
|
||||
"defaultMessage": "example.com o 10.0.0.1 o 2001:db8:3333:4444:5555:6666:7777:8888"
|
||||
},
|
||||
"stream.incoming-port": {
|
||||
"defaultMessage": "Puerto de Entrada"
|
||||
},
|
||||
|
||||
647
frontend/src/locale/src/it.json
Normal file
647
frontend/src/locale/src/it.json
Normal file
@@ -0,0 +1,647 @@
|
||||
{
|
||||
"access-list": {
|
||||
"defaultMessage": "Lista di Accesso"
|
||||
},
|
||||
"access-list.access-count": {
|
||||
"defaultMessage": "{count} {count, plural, one {Regola} other {Regole}}"
|
||||
},
|
||||
"access-list.auth-count": {
|
||||
"defaultMessage": "{count} {count, plural, one {Utente} other {Utenti}}"
|
||||
},
|
||||
"access-list.help-rules-last": {
|
||||
"defaultMessage": "Quando esiste almeno 1 regola, questa regola di negazione verrà aggiunta per ultima"
|
||||
},
|
||||
"access-list.help.rules-order": {
|
||||
"defaultMessage": "Nota che le direttive di allow e deny saranno applicate nell'ordine in cui sono definite."
|
||||
},
|
||||
"access-list.pass-auth": {
|
||||
"defaultMessage": "Passa Autenticazione all'Upstream"
|
||||
},
|
||||
"access-list.public": {
|
||||
"defaultMessage": "Accessibile Pubblicamente"
|
||||
},
|
||||
"access-list.public.subtitle": {
|
||||
"defaultMessage": "Nessuna autenticazione base richiesta"
|
||||
},
|
||||
"access-list.satisfy-any": {
|
||||
"defaultMessage": "Soddisfa Qualsiasi"
|
||||
},
|
||||
"access-list.subtitle": {
|
||||
"defaultMessage": "{users} {users, plural, one {Utente} other {Utenti}}, {rules} {rules, plural, one {Regola} other {Regole}} - Creato: {date}"
|
||||
},
|
||||
"access-lists": {
|
||||
"defaultMessage": "Liste di Accesso"
|
||||
},
|
||||
"action.add": {
|
||||
"defaultMessage": "Aggiungi"
|
||||
},
|
||||
"action.add-location": {
|
||||
"defaultMessage": "Aggiungi Percorso"
|
||||
},
|
||||
"action.close": {
|
||||
"defaultMessage": "Chiudi"
|
||||
},
|
||||
"action.delete": {
|
||||
"defaultMessage": "Elimina"
|
||||
},
|
||||
"action.disable": {
|
||||
"defaultMessage": "Disabilita"
|
||||
},
|
||||
"action.download": {
|
||||
"defaultMessage": "Scarica"
|
||||
},
|
||||
"action.edit": {
|
||||
"defaultMessage": "Modifica"
|
||||
},
|
||||
"action.enable": {
|
||||
"defaultMessage": "Abilita"
|
||||
},
|
||||
"action.permissions": {
|
||||
"defaultMessage": "Permessi"
|
||||
},
|
||||
"action.renew": {
|
||||
"defaultMessage": "Rinnova"
|
||||
},
|
||||
"action.view-details": {
|
||||
"defaultMessage": "Visualizza Dettagli"
|
||||
},
|
||||
"auditlogs": {
|
||||
"defaultMessage": "Log di Audit"
|
||||
},
|
||||
"cancel": {
|
||||
"defaultMessage": "Annulla"
|
||||
},
|
||||
"certificate": {
|
||||
"defaultMessage": "Certificato"
|
||||
},
|
||||
"certificate.custom-certificate": {
|
||||
"defaultMessage": "Certificato"
|
||||
},
|
||||
"certificate.custom-certificate-key": {
|
||||
"defaultMessage": "Chiave del Certificato"
|
||||
},
|
||||
"certificate.custom-intermediate": {
|
||||
"defaultMessage": "Certificato Intermedio"
|
||||
},
|
||||
"certificate.in-use": {
|
||||
"defaultMessage": "In Uso"
|
||||
},
|
||||
"certificate.none.subtitle": {
|
||||
"defaultMessage": "Nessun certificato assegnato"
|
||||
},
|
||||
"certificate.none.subtitle.for-http": {
|
||||
"defaultMessage": "Questo host non utilizzerà HTTPS"
|
||||
},
|
||||
"certificate.none.title": {
|
||||
"defaultMessage": "Nessuno"
|
||||
},
|
||||
"certificate.not-in-use": {
|
||||
"defaultMessage": "Non in Uso"
|
||||
},
|
||||
"certificate.renew": {
|
||||
"defaultMessage": "Rinnova Certificato"
|
||||
},
|
||||
"certificates": {
|
||||
"defaultMessage": "Certificati"
|
||||
},
|
||||
"certificates.custom": {
|
||||
"defaultMessage": "Certificato Personalizzato"
|
||||
},
|
||||
"certificates.custom.warning": {
|
||||
"defaultMessage": "I file di chiave protetti da passphrase non sono supportati."
|
||||
},
|
||||
"certificates.dns.credentials": {
|
||||
"defaultMessage": "Contenuto File Credenziali"
|
||||
},
|
||||
"certificates.dns.credentials-note": {
|
||||
"defaultMessage": "Questo plugin richiede un file di configurazione contenente un token API o altre credenziali per il tuo provider"
|
||||
},
|
||||
"certificates.dns.credentials-warning": {
|
||||
"defaultMessage": "Questi dati saranno memorizzati in chiaro nel database e in un file!"
|
||||
},
|
||||
"certificates.dns.propagation-seconds": {
|
||||
"defaultMessage": "Secondi di Propagazione"
|
||||
},
|
||||
"certificates.dns.propagation-seconds-note": {
|
||||
"defaultMessage": "Lascia vuoto per usare il valore predefinito del plugin. Numero di secondi da attendere per la propagazione DNS."
|
||||
},
|
||||
"certificates.dns.provider": {
|
||||
"defaultMessage": "Provider DNS"
|
||||
},
|
||||
"certificates.dns.warning": {
|
||||
"defaultMessage": "Questa sezione richiede conoscenze su Certbot e i relativi plugin DNS. Consulta la documentazione del plugin."
|
||||
},
|
||||
"certificates.http.reachability-404": {
|
||||
"defaultMessage": "È stato trovato un server su questo dominio, ma non sembra essere Nginx Proxy Manager. Assicurati che il dominio punti all'IP dove è in esecuzione NPM."
|
||||
},
|
||||
"certificates.http.reachability-failed-to-check": {
|
||||
"defaultMessage": "Verifica di raggiungibilità fallita per errore di comunicazione con site24x7.com."
|
||||
},
|
||||
"certificates.http.reachability-not-resolved": {
|
||||
"defaultMessage": "Nessun server disponibile su questo dominio. Assicurati che il dominio esista e punti all'IP corretto e che la porta 80 sia inoltrata."
|
||||
},
|
||||
"certificates.http.reachability-ok": {
|
||||
"defaultMessage": "Il server è raggiungibile e la creazione dei certificati è possibile."
|
||||
},
|
||||
"certificates.http.reachability-other": {
|
||||
"defaultMessage": "È stato trovato un server su questo dominio ma ha restituito un codice di stato imprevisto {code}. È il server NPM? Controlla che il dominio punti correttamente all'IP."
|
||||
},
|
||||
"certificates.http.reachability-wrong-data": {
|
||||
"defaultMessage": "È stato trovato un server su questo dominio ma ha restituito dati imprevisti. È il server NPM? Controlla che il dominio punti correttamente all'IP."
|
||||
},
|
||||
"certificates.http.test-results": {
|
||||
"defaultMessage": "Risultati Test"
|
||||
},
|
||||
"certificates.http.warning": {
|
||||
"defaultMessage": "Questi domini devono già essere configurati per puntare a questa installazione."
|
||||
},
|
||||
"certificates.request.subtitle": {
|
||||
"defaultMessage": "con Let's Encrypt"
|
||||
},
|
||||
"certificates.request.title": {
|
||||
"defaultMessage": "Richiedi un nuovo Certificato"
|
||||
},
|
||||
"column.access": {
|
||||
"defaultMessage": "Accesso"
|
||||
},
|
||||
"column.authorization": {
|
||||
"defaultMessage": "Autorizzazione"
|
||||
},
|
||||
"column.authorizations": {
|
||||
"defaultMessage": "Autorizzazioni"
|
||||
},
|
||||
"column.custom-locations": {
|
||||
"defaultMessage": "Percorsi Personalizzati"
|
||||
},
|
||||
"column.destination": {
|
||||
"defaultMessage": "Destinazione"
|
||||
},
|
||||
"column.details": {
|
||||
"defaultMessage": "Dettagli"
|
||||
},
|
||||
"column.email": {
|
||||
"defaultMessage": "Email"
|
||||
},
|
||||
"column.event": {
|
||||
"defaultMessage": "Evento"
|
||||
},
|
||||
"column.expires": {
|
||||
"defaultMessage": "Scadenza"
|
||||
},
|
||||
"column.http-code": {
|
||||
"defaultMessage": "Codice HTTP"
|
||||
},
|
||||
"column.incoming-port": {
|
||||
"defaultMessage": "Porta in Ingresso"
|
||||
},
|
||||
"column.name": {
|
||||
"defaultMessage": "Nome"
|
||||
},
|
||||
"column.protocol": {
|
||||
"defaultMessage": "Protocollo"
|
||||
},
|
||||
"column.provider": {
|
||||
"defaultMessage": "Provider"
|
||||
},
|
||||
"column.roles": {
|
||||
"defaultMessage": "Ruoli"
|
||||
},
|
||||
"column.rules": {
|
||||
"defaultMessage": "Regole"
|
||||
},
|
||||
"column.satisfy": {
|
||||
"defaultMessage": "Condizione"
|
||||
},
|
||||
"column.satisfy-all": {
|
||||
"defaultMessage": "Tutte"
|
||||
},
|
||||
"column.satisfy-any": {
|
||||
"defaultMessage": "Qualsiasi"
|
||||
},
|
||||
"column.scheme": {
|
||||
"defaultMessage": "Schema"
|
||||
},
|
||||
"column.source": {
|
||||
"defaultMessage": "Origine"
|
||||
},
|
||||
"column.ssl": {
|
||||
"defaultMessage": "SSL"
|
||||
},
|
||||
"column.status": {
|
||||
"defaultMessage": "Stato"
|
||||
},
|
||||
"created-on": {
|
||||
"defaultMessage": "Creato: {date}"
|
||||
},
|
||||
"dashboard": {
|
||||
"defaultMessage": "Dashboard"
|
||||
},
|
||||
"dead-host": {
|
||||
"defaultMessage": "Host 404"
|
||||
},
|
||||
"dead-hosts": {
|
||||
"defaultMessage": "Hosts 404"
|
||||
},
|
||||
"dead-hosts.count": {
|
||||
"defaultMessage": "{count} {count, plural, one {Host 404} other {Hosts 404}}"
|
||||
},
|
||||
"disabled": {
|
||||
"defaultMessage": "Disabilitato"
|
||||
},
|
||||
"domain-names": {
|
||||
"defaultMessage": "Nomi di Dominio"
|
||||
},
|
||||
"domain-names.max": {
|
||||
"defaultMessage": "Massimo {count} nomi di dominio"
|
||||
},
|
||||
"domain-names.placeholder": {
|
||||
"defaultMessage": "Inizia a digitare per aggiungere un dominio..."
|
||||
},
|
||||
"domain-names.wildcards-not-permitted": {
|
||||
"defaultMessage": "Wildcard non consentite per questo tipo"
|
||||
},
|
||||
"domain-names.wildcards-not-supported": {
|
||||
"defaultMessage": "Wildcard non supportate per questa CA"
|
||||
},
|
||||
"domains.force-ssl": {
|
||||
"defaultMessage": "Forza SSL"
|
||||
},
|
||||
"domains.hsts-enabled": {
|
||||
"defaultMessage": "HSTS Abilitato"
|
||||
},
|
||||
"domains.hsts-subdomains": {
|
||||
"defaultMessage": "Sottodomini HSTS"
|
||||
},
|
||||
"domains.http2-support": {
|
||||
"defaultMessage": "Supporto HTTP/2"
|
||||
},
|
||||
"domains.use-dns": {
|
||||
"defaultMessage": "Usa Challenge DNS"
|
||||
},
|
||||
"email-address": {
|
||||
"defaultMessage": "Indirizzo Email"
|
||||
},
|
||||
"empty-search": {
|
||||
"defaultMessage": "Nessun risultato trovato"
|
||||
},
|
||||
"empty-subtitle": {
|
||||
"defaultMessage": "Perché non ne crei uno?"
|
||||
},
|
||||
"enabled": {
|
||||
"defaultMessage": "Abilitato"
|
||||
},
|
||||
"error.access.at-least-one": {
|
||||
"defaultMessage": "È richiesta almeno un'Autorizzazione o una Regola di Accesso"
|
||||
},
|
||||
"error.access.duplicate-usernames": {
|
||||
"defaultMessage": "I nomi utente devono essere unici"
|
||||
},
|
||||
"error.invalid-auth": {
|
||||
"defaultMessage": "Email o password non validi"
|
||||
},
|
||||
"error.invalid-domain": {
|
||||
"defaultMessage": "Dominio non valido: {domain}"
|
||||
},
|
||||
"error.invalid-email": {
|
||||
"defaultMessage": "Indirizzo email non valido"
|
||||
},
|
||||
"error.max-character-length": {
|
||||
"defaultMessage": "Lunghezza massima {max} caratter{max, plural, one {e} other {i}}"
|
||||
},
|
||||
"error.max-domains": {
|
||||
"defaultMessage": "Troppi domini, massimo {max}"
|
||||
},
|
||||
"error.maximum": {
|
||||
"defaultMessage": "Massimo {max}"
|
||||
},
|
||||
"error.min-character-length": {
|
||||
"defaultMessage": "Lunghezza minima {min} caratter{min, plural, one {e} other {i}}"
|
||||
},
|
||||
"error.minimum": {
|
||||
"defaultMessage": "Minimo {min}"
|
||||
},
|
||||
"error.passwords-must-match": {
|
||||
"defaultMessage": "Le password devono coincidere"
|
||||
},
|
||||
"error.required": {
|
||||
"defaultMessage": "Campo obbligatorio"
|
||||
},
|
||||
"expires.on": {
|
||||
"defaultMessage": "Scade: {date}"
|
||||
},
|
||||
"footer.github-fork": {
|
||||
"defaultMessage": "Forkami su GitHub"
|
||||
},
|
||||
"host.flags.block-exploits": {
|
||||
"defaultMessage": "Blocca Exploit Comuni"
|
||||
},
|
||||
"host.flags.cache-assets": {
|
||||
"defaultMessage": "Cache degli Asset"
|
||||
},
|
||||
"host.flags.preserve-path": {
|
||||
"defaultMessage": "Preserva Percorso"
|
||||
},
|
||||
"host.flags.protocols": {
|
||||
"defaultMessage": "Protocolli"
|
||||
},
|
||||
"host.flags.websockets-upgrade": {
|
||||
"defaultMessage": "Supporto WebSockets"
|
||||
},
|
||||
"host.forward-port": {
|
||||
"defaultMessage": "Porta di Destinazione"
|
||||
},
|
||||
"host.forward-scheme": {
|
||||
"defaultMessage": "Schema"
|
||||
},
|
||||
"hosts": {
|
||||
"defaultMessage": "Host"
|
||||
},
|
||||
"http-only": {
|
||||
"defaultMessage": "Solo HTTP"
|
||||
},
|
||||
"lets-encrypt": {
|
||||
"defaultMessage": "Let's Encrypt"
|
||||
},
|
||||
"lets-encrypt-via-dns": {
|
||||
"defaultMessage": "Let's Encrypt via DNS"
|
||||
},
|
||||
"lets-encrypt-via-http": {
|
||||
"defaultMessage": "Let's Encrypt via HTTP"
|
||||
},
|
||||
"loading": {
|
||||
"defaultMessage": "Caricamento…"
|
||||
},
|
||||
"login.title": {
|
||||
"defaultMessage": "Accedi al tuo account"
|
||||
},
|
||||
"nginx-config.label": {
|
||||
"defaultMessage": "Configurazione Nginx Personalizzata"
|
||||
},
|
||||
"nginx-config.placeholder": {
|
||||
"defaultMessage": "# Inserisci qui la configurazione Nginx personalizzata a tuo rischio!"
|
||||
},
|
||||
"no-permission-error": {
|
||||
"defaultMessage": "Non hai accesso per visualizzare questa pagina."
|
||||
},
|
||||
"notfound.action": {
|
||||
"defaultMessage": "Torna alla Home"
|
||||
},
|
||||
"notfound.content": {
|
||||
"defaultMessage": "Spiacenti, la pagina richiesta non è stata trovata"
|
||||
},
|
||||
"notfound.title": {
|
||||
"defaultMessage": "Oops… Hai trovato una pagina di errore"
|
||||
},
|
||||
"notification.error": {
|
||||
"defaultMessage": "Errore"
|
||||
},
|
||||
"notification.object-deleted": {
|
||||
"defaultMessage": "{object} è stato eliminato"
|
||||
},
|
||||
"notification.object-disabled": {
|
||||
"defaultMessage": "{object} è stato disabilitato"
|
||||
},
|
||||
"notification.object-enabled": {
|
||||
"defaultMessage": "{object} è stato abilitato"
|
||||
},
|
||||
"notification.object-renewed": {
|
||||
"defaultMessage": "{object} è stato rinnovato"
|
||||
},
|
||||
"notification.object-saved": {
|
||||
"defaultMessage": "{object} è stato salvato"
|
||||
},
|
||||
"notification.success": {
|
||||
"defaultMessage": "Successo"
|
||||
},
|
||||
"object.actions-title": {
|
||||
"defaultMessage": "{object} #{id}"
|
||||
},
|
||||
"object.add": {
|
||||
"defaultMessage": "Aggiungi {object}"
|
||||
},
|
||||
"object.delete": {
|
||||
"defaultMessage": "Elimina {object}"
|
||||
},
|
||||
"object.delete.content": {
|
||||
"defaultMessage": "Sei sicuro di voler eliminare questo {object}?"
|
||||
},
|
||||
"object.edit": {
|
||||
"defaultMessage": "Modifica {object}"
|
||||
},
|
||||
"object.empty": {
|
||||
"defaultMessage": "Nessun {objects} presente"
|
||||
},
|
||||
"object.event.created": {
|
||||
"defaultMessage": "{object} creato"
|
||||
},
|
||||
"object.event.deleted": {
|
||||
"defaultMessage": "{object} eliminato"
|
||||
},
|
||||
"object.event.disabled": {
|
||||
"defaultMessage": "{object} disabilitato"
|
||||
},
|
||||
"object.event.enabled": {
|
||||
"defaultMessage": "{object} abilitato"
|
||||
},
|
||||
"object.event.renewed": {
|
||||
"defaultMessage": "{object} rinnovato"
|
||||
},
|
||||
"object.event.updated": {
|
||||
"defaultMessage": "{object} aggiornato"
|
||||
},
|
||||
"offline": {
|
||||
"defaultMessage": "Offline"
|
||||
},
|
||||
"online": {
|
||||
"defaultMessage": "Online"
|
||||
},
|
||||
"options": {
|
||||
"defaultMessage": "Opzioni"
|
||||
},
|
||||
"password": {
|
||||
"defaultMessage": "Password"
|
||||
},
|
||||
"password.generate": {
|
||||
"defaultMessage": "Genera password casuale"
|
||||
},
|
||||
"password.hide": {
|
||||
"defaultMessage": "Nascondi Password"
|
||||
},
|
||||
"password.show": {
|
||||
"defaultMessage": "Mostra Password"
|
||||
},
|
||||
"permissions.hidden": {
|
||||
"defaultMessage": "Nascosto"
|
||||
},
|
||||
"permissions.manage": {
|
||||
"defaultMessage": "Gestisci"
|
||||
},
|
||||
"permissions.view": {
|
||||
"defaultMessage": "Sola Lettura"
|
||||
},
|
||||
"permissions.visibility.all": {
|
||||
"defaultMessage": "Tutti gli Elementi"
|
||||
},
|
||||
"permissions.visibility.title": {
|
||||
"defaultMessage": "Visibilità Elementi"
|
||||
},
|
||||
"permissions.visibility.user": {
|
||||
"defaultMessage": "Solo Elementi Creati"
|
||||
},
|
||||
"proxy-host": {
|
||||
"defaultMessage": "Proxy Host"
|
||||
},
|
||||
"proxy-host.forward-host": {
|
||||
"defaultMessage": "Hostname / IP di Destinazione"
|
||||
},
|
||||
"proxy-hosts": {
|
||||
"defaultMessage": "Proxy Hosts"
|
||||
},
|
||||
"proxy-hosts.count": {
|
||||
"defaultMessage": "{count} {count, plural, one {Host Proxy} other {Host Proxy}}"
|
||||
},
|
||||
"public": {
|
||||
"defaultMessage": "Pubblico"
|
||||
},
|
||||
"redirection-host": {
|
||||
"defaultMessage": "Host di Reindirizzamento"
|
||||
},
|
||||
"redirection-host.forward-domain": {
|
||||
"defaultMessage": "Dominio di Destinazione"
|
||||
},
|
||||
"redirection-host.forward-http-code": {
|
||||
"defaultMessage": "Codice HTTP"
|
||||
},
|
||||
"redirection-hosts": {
|
||||
"defaultMessage": "Host di Reindirizzamento"
|
||||
},
|
||||
"redirection-hosts.count": {
|
||||
"defaultMessage": "{count} {count, plural, one {Host di Reindirizzamento} other {Host di Reindirizzamento}}"
|
||||
},
|
||||
"role.admin": {
|
||||
"defaultMessage": "Amministratore"
|
||||
},
|
||||
"role.standard-user": {
|
||||
"defaultMessage": "Utente Standard"
|
||||
},
|
||||
"save": {
|
||||
"defaultMessage": "Salva"
|
||||
},
|
||||
"setting": {
|
||||
"defaultMessage": "Impostazione"
|
||||
},
|
||||
"settings": {
|
||||
"defaultMessage": "Impostazioni"
|
||||
},
|
||||
"settings.default-site": {
|
||||
"defaultMessage": "Sito Predefinito"
|
||||
},
|
||||
"settings.default-site.404": {
|
||||
"defaultMessage": "Pagina 404"
|
||||
},
|
||||
"settings.default-site.444": {
|
||||
"defaultMessage": "Nessuna Risposta (444)"
|
||||
},
|
||||
"settings.default-site.congratulations": {
|
||||
"defaultMessage": "Pagina di Congratulazioni"
|
||||
},
|
||||
"settings.default-site.description": {
|
||||
"defaultMessage": "Cosa mostrare quando Nginx riceve una richiesta da un host sconosciuto"
|
||||
},
|
||||
"settings.default-site.html": {
|
||||
"defaultMessage": "HTML Personalizzato"
|
||||
},
|
||||
"settings.default-site.html.placeholder": {
|
||||
"defaultMessage": "<!-- Inserisci qui il tuo contenuto HTML personalizzato -->"
|
||||
},
|
||||
"settings.default-site.redirect": {
|
||||
"defaultMessage": "Reindirizza"
|
||||
},
|
||||
"setup.preamble": {
|
||||
"defaultMessage": "Inizia creando il tuo account amministratore."
|
||||
},
|
||||
"setup.title": {
|
||||
"defaultMessage": "Benvenuto!"
|
||||
},
|
||||
"sign-in": {
|
||||
"defaultMessage": "Accedi"
|
||||
},
|
||||
"ssl-certificate": {
|
||||
"defaultMessage": "Certificato SSL"
|
||||
},
|
||||
"stream": {
|
||||
"defaultMessage": "Stream"
|
||||
},
|
||||
"stream.forward-host": {
|
||||
"defaultMessage": "Host di Destinazione"
|
||||
},
|
||||
"stream.incoming-port": {
|
||||
"defaultMessage": "Porta in Ingresso"
|
||||
},
|
||||
"streams": {
|
||||
"defaultMessage": "Stream"
|
||||
},
|
||||
"streams.count": {
|
||||
"defaultMessage": "{count} {count, plural, one {Stream} other {Stream}}"
|
||||
},
|
||||
"streams.tcp": {
|
||||
"defaultMessage": "TCP"
|
||||
},
|
||||
"streams.udp": {
|
||||
"defaultMessage": "UDP"
|
||||
},
|
||||
"test": {
|
||||
"defaultMessage": "Test"
|
||||
},
|
||||
"update-available": {
|
||||
"defaultMessage": "Aggiornamento Disponibile: {latestVersion}"
|
||||
},
|
||||
"user": {
|
||||
"defaultMessage": "Utente"
|
||||
},
|
||||
"user.change-password": {
|
||||
"defaultMessage": "Cambia Password"
|
||||
},
|
||||
"user.confirm-password": {
|
||||
"defaultMessage": "Conferma Password"
|
||||
},
|
||||
"user.current-password": {
|
||||
"defaultMessage": "Password Attuale"
|
||||
},
|
||||
"user.edit-profile": {
|
||||
"defaultMessage": "Modifica Profilo"
|
||||
},
|
||||
"user.full-name": {
|
||||
"defaultMessage": "Nome Completo"
|
||||
},
|
||||
"user.login-as": {
|
||||
"defaultMessage": "Accedi come {name}"
|
||||
},
|
||||
"user.logout": {
|
||||
"defaultMessage": "Disconnetti"
|
||||
},
|
||||
"user.new-password": {
|
||||
"defaultMessage": "Nuova Password"
|
||||
},
|
||||
"user.nickname": {
|
||||
"defaultMessage": "Soprannome"
|
||||
},
|
||||
"user.set-password": {
|
||||
"defaultMessage": "Imposta Password"
|
||||
},
|
||||
"user.set-permissions": {
|
||||
"defaultMessage": "Imposta Permessi per {name}"
|
||||
},
|
||||
"user.switch-dark": {
|
||||
"defaultMessage": "Passa alla modalità Scura"
|
||||
},
|
||||
"user.switch-light": {
|
||||
"defaultMessage": "Passa alla modalità Chiara"
|
||||
},
|
||||
"username": {
|
||||
"defaultMessage": "Nome Utente"
|
||||
},
|
||||
"users": {
|
||||
"defaultMessage": "Utenti"
|
||||
}
|
||||
}
|
||||
683
frontend/src/locale/src/ko.json
Normal file
683
frontend/src/locale/src/ko.json
Normal file
@@ -0,0 +1,683 @@
|
||||
{
|
||||
"access-list": {
|
||||
"defaultMessage": "접근 정책"
|
||||
},
|
||||
"access-list.access-count": {
|
||||
"defaultMessage": "{count}개의 정책"
|
||||
},
|
||||
"access-list.auth-count": {
|
||||
"defaultMessage": "{count}명의 사용자"
|
||||
},
|
||||
"access-list.help-rules-last": {
|
||||
"defaultMessage": "규칙이 하나라도 있으면 아래 ‘전체 거부’ 규칙이 마지막에 추가됩니다."
|
||||
},
|
||||
"access-list.help.rules-order": {
|
||||
"defaultMessage": "허용/거부 규칙은 정의된 순서대로 적용됩니다."
|
||||
},
|
||||
"access-list.pass-auth": {
|
||||
"defaultMessage": "인증 정보를 원본 서버로 전달"
|
||||
},
|
||||
"access-list.public": {
|
||||
"defaultMessage": "누구나 접근 가능"
|
||||
},
|
||||
"access-list.public.subtitle": {
|
||||
"defaultMessage": "기본 인증 필요 없음"
|
||||
},
|
||||
"access-list.rule-source.placeholder": {
|
||||
"defaultMessage": "192.168.1.100 / 192.168.1.0/24 / IPv6"
|
||||
},
|
||||
"access-list.satisfy-any": {
|
||||
"defaultMessage": "조건 중 하나라도 충족"
|
||||
},
|
||||
"access-list.subtitle": {
|
||||
"defaultMessage": "{users}명 {users, plural, one {사용자} other {사용자}}, {rules}개 {rules, plural, one {규칙} other {규칙}} - 생성일: {date}"
|
||||
},
|
||||
"access-lists": {
|
||||
"defaultMessage": "접근 정책"
|
||||
},
|
||||
"action.add": {
|
||||
"defaultMessage": "추가"
|
||||
},
|
||||
"action.add-location": {
|
||||
"defaultMessage": "경로 추가"
|
||||
},
|
||||
"action.allow": {
|
||||
"defaultMessage": "허용"
|
||||
},
|
||||
"action.close": {
|
||||
"defaultMessage": "닫기"
|
||||
},
|
||||
"action.delete": {
|
||||
"defaultMessage": "삭제"
|
||||
},
|
||||
"action.deny": {
|
||||
"defaultMessage": "거부"
|
||||
},
|
||||
"action.disable": {
|
||||
"defaultMessage": "비활성화"
|
||||
},
|
||||
"action.download": {
|
||||
"defaultMessage": "다운로드"
|
||||
},
|
||||
"action.edit": {
|
||||
"defaultMessage": "편집"
|
||||
},
|
||||
"action.enable": {
|
||||
"defaultMessage": "활성화"
|
||||
},
|
||||
"action.permissions": {
|
||||
"defaultMessage": "권한"
|
||||
},
|
||||
"action.renew": {
|
||||
"defaultMessage": "갱신"
|
||||
},
|
||||
"action.view-details": {
|
||||
"defaultMessage": "자세히 보기"
|
||||
},
|
||||
"auditlogs": {
|
||||
"defaultMessage": "감사 로그"
|
||||
},
|
||||
"auto": {
|
||||
"defaultMessage": "자동"
|
||||
},
|
||||
"cancel": {
|
||||
"defaultMessage": "취소"
|
||||
},
|
||||
"certificate": {
|
||||
"defaultMessage": "인증서"
|
||||
},
|
||||
"certificate.custom-certificate": {
|
||||
"defaultMessage": "인증서"
|
||||
},
|
||||
"certificate.custom-certificate-key": {
|
||||
"defaultMessage": "인증서 키"
|
||||
},
|
||||
"certificate.custom-intermediate": {
|
||||
"defaultMessage": "중간 인증서"
|
||||
},
|
||||
"certificate.in-use": {
|
||||
"defaultMessage": "사용 중"
|
||||
},
|
||||
"certificate.none.subtitle": {
|
||||
"defaultMessage": "지정된 인증서 없음"
|
||||
},
|
||||
"certificate.none.subtitle.for-http": {
|
||||
"defaultMessage": "이 호스트는 HTTPS를 사용하지 않습니다."
|
||||
},
|
||||
"certificate.none.title": {
|
||||
"defaultMessage": "없음"
|
||||
},
|
||||
"certificate.not-in-use": {
|
||||
"defaultMessage": "사용 안 함"
|
||||
},
|
||||
"certificate.renew": {
|
||||
"defaultMessage": "인증서 갱신"
|
||||
},
|
||||
"certificates": {
|
||||
"defaultMessage": "인증서"
|
||||
},
|
||||
"certificates.custom": {
|
||||
"defaultMessage": "사용자 지정 인증서"
|
||||
},
|
||||
"certificates.custom.warning": {
|
||||
"defaultMessage": "비밀번호로 보호된 키 파일은 지원되지 않습니다."
|
||||
},
|
||||
"certificates.dns.credentials": {
|
||||
"defaultMessage": "DNS 자격 증명 입력"
|
||||
},
|
||||
"certificates.dns.credentials-note": {
|
||||
"defaultMessage": "이 플러그인은 API 토큰 등이 포함된 설정 파일이 필요합니다."
|
||||
},
|
||||
"certificates.dns.credentials-warning": {
|
||||
"defaultMessage": "입력한 정보는 데이터베이스와 파일에 평문으로 저장됩니다."
|
||||
},
|
||||
"certificates.dns.propagation-seconds": {
|
||||
"defaultMessage": "DNS 전파 시간"
|
||||
},
|
||||
"certificates.dns.propagation-seconds-note": {
|
||||
"defaultMessage": "비워두면 기본값을 사용합니다. DNS 전파를 기다리는 시간(초)입니다."
|
||||
},
|
||||
"certificates.dns.provider": {
|
||||
"defaultMessage": "DNS 공급자"
|
||||
},
|
||||
"certificates.dns.provider.placeholder": {
|
||||
"defaultMessage": "공급자를 선택하세요..."
|
||||
},
|
||||
"certificates.dns.warning": {
|
||||
"defaultMessage": "이 기능을 사용하려면 Certbot과 DNS 플러그인에 대한 기본적인 이해가 필요합니다. 자세한 내용은 관련 문서를 참고해 주세요."
|
||||
},
|
||||
"certificates.http.reachability-404": {
|
||||
"defaultMessage": "해당 도메인에서 서버가 탐지되었지만 Nginx Proxy Manager가 아닌 것으로 보입니다. 도메인이 NPM이 실행 중인 IP를 가리키는지 확인하세요."
|
||||
},
|
||||
"certificates.http.reachability-failed-to-check": {
|
||||
"defaultMessage": "site24x7.com과의 통신 오류로 인해 도달 가능 여부를 확인할 수 없습니다."
|
||||
},
|
||||
"certificates.http.reachability-not-resolved": {
|
||||
"defaultMessage": "해당 도메인에 접근 가능한 서버가 없습니다. 도메인이 존재하며 NPM이 실행되는 IP를 가리키고, 필요하면 라우터에서 80포트가 포워딩되어 있는지 확인하세요."
|
||||
},
|
||||
"certificates.http.reachability-ok": {
|
||||
"defaultMessage": "서버에 정상적으로 접근할 수 있으며 인증서 발급이 가능합니다."
|
||||
},
|
||||
"certificates.http.reachability-other": {
|
||||
"defaultMessage": "해당 도메인에서 서버가 발견되었지만 예상치 못한 상태 코드 {code}를 반환했습니다. NPM 서버가 맞는지 확인하세요."
|
||||
},
|
||||
"certificates.http.reachability-wrong-data": {
|
||||
"defaultMessage": "서버가 응답했지만 예상치 못한 데이터를 반환했습니다. NPM 서버가 맞는지 확인하세요."
|
||||
},
|
||||
"certificates.http.test-results": {
|
||||
"defaultMessage": "테스트 결과"
|
||||
},
|
||||
"certificates.http.warning": {
|
||||
"defaultMessage": "도메인이 이 서버를 가리키도록 설정되어 있어야 합니다."
|
||||
},
|
||||
"certificates.request.subtitle": {
|
||||
"defaultMessage": "Let's Encrypt 사용"
|
||||
},
|
||||
"certificates.request.title": {
|
||||
"defaultMessage": "새 인증서 요청"
|
||||
},
|
||||
"column.access": {
|
||||
"defaultMessage": "접근 정책"
|
||||
},
|
||||
"column.authorization": {
|
||||
"defaultMessage": "인증 사용자"
|
||||
},
|
||||
"column.authorizations": {
|
||||
"defaultMessage": "인증 사용자"
|
||||
},
|
||||
"column.custom-locations": {
|
||||
"defaultMessage": "사용자 지정 경로"
|
||||
},
|
||||
"column.destination": {
|
||||
"defaultMessage": "전달 대상"
|
||||
},
|
||||
"column.details": {
|
||||
"defaultMessage": "기본 설정"
|
||||
},
|
||||
"column.email": {
|
||||
"defaultMessage": "이메일"
|
||||
},
|
||||
"column.event": {
|
||||
"defaultMessage": "이벤트"
|
||||
},
|
||||
"column.expires": {
|
||||
"defaultMessage": "만료일"
|
||||
},
|
||||
"column.http-code": {
|
||||
"defaultMessage": "HTTP 코드"
|
||||
},
|
||||
"column.incoming-port": {
|
||||
"defaultMessage": "수신 포트"
|
||||
},
|
||||
"column.name": {
|
||||
"defaultMessage": "이름"
|
||||
},
|
||||
"column.protocol": {
|
||||
"defaultMessage": "프로토콜"
|
||||
},
|
||||
"column.provider": {
|
||||
"defaultMessage": "공급자"
|
||||
},
|
||||
"column.roles": {
|
||||
"defaultMessage": "권한"
|
||||
},
|
||||
"column.rules": {
|
||||
"defaultMessage": "IP 정책"
|
||||
},
|
||||
"column.satisfy": {
|
||||
"defaultMessage": "조건 방식"
|
||||
},
|
||||
"column.satisfy-all": {
|
||||
"defaultMessage": "모두 충족"
|
||||
},
|
||||
"column.satisfy-any": {
|
||||
"defaultMessage": "하나라도 충족"
|
||||
},
|
||||
"column.scheme": {
|
||||
"defaultMessage": "프로토콜"
|
||||
},
|
||||
"column.source": {
|
||||
"defaultMessage": "도메인"
|
||||
},
|
||||
"column.ssl": {
|
||||
"defaultMessage": "SSL"
|
||||
},
|
||||
"column.status": {
|
||||
"defaultMessage": "상태"
|
||||
},
|
||||
"created-on": {
|
||||
"defaultMessage": "생성일: {date}"
|
||||
},
|
||||
"dashboard": {
|
||||
"defaultMessage": "대시보드"
|
||||
},
|
||||
"dead-host": {
|
||||
"defaultMessage": "404 호스트"
|
||||
},
|
||||
"dead-hosts": {
|
||||
"defaultMessage": "404 호스트"
|
||||
},
|
||||
"dead-hosts.count": {
|
||||
"defaultMessage": "{count}개의 404 호스트"
|
||||
},
|
||||
"disabled": {
|
||||
"defaultMessage": "비활성화"
|
||||
},
|
||||
"domain-names": {
|
||||
"defaultMessage": "도메인 이름"
|
||||
},
|
||||
"domain-names.max": {
|
||||
"defaultMessage": "최대 {count}개의 도메인 이름"
|
||||
},
|
||||
"domain-names.placeholder": {
|
||||
"defaultMessage": "도메인을 입력해주세요."
|
||||
},
|
||||
"domain-names.wildcards-not-permitted": {
|
||||
"defaultMessage": "HTTP 방식으로는 와일드카드 인증서를 발급할 수 없습니다."
|
||||
},
|
||||
"domain-names.wildcards-not-supported": {
|
||||
"defaultMessage": "이 인증 기관(CA)은 와일드카드를 지원하지 않습니다."
|
||||
},
|
||||
"domains.force-ssl": {
|
||||
"defaultMessage": "SSL 강제 적용"
|
||||
},
|
||||
"domains.hsts-enabled": {
|
||||
"defaultMessage": "HSTS 활성화"
|
||||
},
|
||||
"domains.hsts-subdomains": {
|
||||
"defaultMessage": "HSTS 서브도메인 포함"
|
||||
},
|
||||
"domains.http2-support": {
|
||||
"defaultMessage": "HTTP/2 지원"
|
||||
},
|
||||
"domains.use-dns": {
|
||||
"defaultMessage": "DNS 챌린지 사용"
|
||||
},
|
||||
"email-address": {
|
||||
"defaultMessage": "이메일 주소"
|
||||
},
|
||||
"empty-search": {
|
||||
"defaultMessage": "검색 결과 없음"
|
||||
},
|
||||
"empty-subtitle": {
|
||||
"defaultMessage": "하나 만들어 보는 건 어떨까요?"
|
||||
},
|
||||
"enabled": {
|
||||
"defaultMessage": "활성화"
|
||||
},
|
||||
"error.access.at-least-one": {
|
||||
"defaultMessage": "인증 또는 접근 규칙 중 하나는 반드시 필요합니다."
|
||||
},
|
||||
"error.access.duplicate-usernames": {
|
||||
"defaultMessage": "인증 사용자 이름은 중복될 수 없습니다."
|
||||
},
|
||||
"error.invalid-auth": {
|
||||
"defaultMessage": "이메일 또는 비밀번호가 잘못되었습니다."
|
||||
},
|
||||
"error.invalid-domain": {
|
||||
"defaultMessage": "잘못된 도메인: {domain}"
|
||||
},
|
||||
"error.invalid-email": {
|
||||
"defaultMessage": "잘못된 이메일 주소입니다."
|
||||
},
|
||||
"error.max-character-length": {
|
||||
"defaultMessage": "최대 길이는 {max}자입니다."
|
||||
},
|
||||
"error.max-domains": {
|
||||
"defaultMessage": "도메인이 너무 많습니다. 최대 {max}개까지 가능합니다."
|
||||
},
|
||||
"error.maximum": {
|
||||
"defaultMessage": "최댓값은 {max}입니다."
|
||||
},
|
||||
"error.min-character-length": {
|
||||
"defaultMessage": "최소 길이는 {min}자입니다."
|
||||
},
|
||||
"error.minimum": {
|
||||
"defaultMessage": "최솟값은 {min}입니다."
|
||||
},
|
||||
"error.passwords-must-match": {
|
||||
"defaultMessage": "비밀번호가 일치해야 합니다."
|
||||
},
|
||||
"error.required": {
|
||||
"defaultMessage": "필수 항목입니다."
|
||||
},
|
||||
"expires.on": {
|
||||
"defaultMessage": "만료일: {date}"
|
||||
},
|
||||
"footer.github-fork": {
|
||||
"defaultMessage": "GitHub에서 포크하기"
|
||||
},
|
||||
"host.flags.block-exploits": {
|
||||
"defaultMessage": "일반적인 공격 차단"
|
||||
},
|
||||
"host.flags.cache-assets": {
|
||||
"defaultMessage": "정적 에셋 캐싱"
|
||||
},
|
||||
"host.flags.preserve-path": {
|
||||
"defaultMessage": "요청 경로 유지"
|
||||
},
|
||||
"host.flags.protocols": {
|
||||
"defaultMessage": "프로토콜"
|
||||
},
|
||||
"host.flags.websockets-upgrade": {
|
||||
"defaultMessage": "웹소켓 지원"
|
||||
},
|
||||
"host.forward-port": {
|
||||
"defaultMessage": "전달할 포트"
|
||||
},
|
||||
"host.forward-scheme": {
|
||||
"defaultMessage": "프로토콜"
|
||||
},
|
||||
"hosts": {
|
||||
"defaultMessage": "호스트 목록"
|
||||
},
|
||||
"http-only": {
|
||||
"defaultMessage": "HTTP 전용"
|
||||
},
|
||||
"lets-encrypt": {
|
||||
"defaultMessage": "Let's Encrypt"
|
||||
},
|
||||
"lets-encrypt-via-dns": {
|
||||
"defaultMessage": "Let's Encrypt (DNS 방식)"
|
||||
},
|
||||
"lets-encrypt-via-http": {
|
||||
"defaultMessage": "Let's Encrypt (HTTP 방식)"
|
||||
},
|
||||
"loading": {
|
||||
"defaultMessage": "불러오는 중…"
|
||||
},
|
||||
"login.title": {
|
||||
"defaultMessage": "로그인"
|
||||
},
|
||||
"nginx-config.label": {
|
||||
"defaultMessage": "사용자 지정 Nginx 설정"
|
||||
},
|
||||
"nginx-config.placeholder": {
|
||||
"defaultMessage": "# 위험을 감수하고 여기에 사용자 지정 Nginx 설정을 입력하세요!"
|
||||
},
|
||||
"no-permission-error": {
|
||||
"defaultMessage": "이 내용을 볼 권한이 없습니다."
|
||||
},
|
||||
"notfound.action": {
|
||||
"defaultMessage": "홈으로 이동"
|
||||
},
|
||||
"notfound.content": {
|
||||
"defaultMessage": "죄송합니다. 찾으시는 페이지를 찾을 수 없습니다."
|
||||
},
|
||||
"notfound.title": {
|
||||
"defaultMessage": "이런… 오류 페이지에 도착했습니다."
|
||||
},
|
||||
"notification.error": {
|
||||
"defaultMessage": "오류"
|
||||
},
|
||||
"notification.object-deleted": {
|
||||
"defaultMessage": "{object}이(가) 삭제되었습니다."
|
||||
},
|
||||
"notification.object-disabled": {
|
||||
"defaultMessage": "{object}이(가) 비활성화되었습니다."
|
||||
},
|
||||
"notification.object-enabled": {
|
||||
"defaultMessage": "{object}이(가) 활성화되었습니다."
|
||||
},
|
||||
"notification.object-renewed": {
|
||||
"defaultMessage": "{object}이(가) 갱신되었습니다."
|
||||
},
|
||||
"notification.object-saved": {
|
||||
"defaultMessage": "{object}이(가) 저장되었습니다."
|
||||
},
|
||||
"notification.success": {
|
||||
"defaultMessage": "성공"
|
||||
},
|
||||
"object.actions-title": {
|
||||
"defaultMessage": "{object} #{id}"
|
||||
},
|
||||
"object.add": {
|
||||
"defaultMessage": "{object} 추가"
|
||||
},
|
||||
"object.delete": {
|
||||
"defaultMessage": "{object} 삭제"
|
||||
},
|
||||
"object.delete.content": {
|
||||
"defaultMessage": "이 {object}을(를) 정말 삭제하시겠습니까?"
|
||||
},
|
||||
"object.edit": {
|
||||
"defaultMessage": "{object} 편집"
|
||||
},
|
||||
"object.empty": {
|
||||
"defaultMessage": "{objects}이(가) 없습니다."
|
||||
},
|
||||
"object.event.created": {
|
||||
"defaultMessage": "{object}이(가) 생성됨"
|
||||
},
|
||||
"object.event.deleted": {
|
||||
"defaultMessage": "{object}이(가) 삭제됨"
|
||||
},
|
||||
"object.event.disabled": {
|
||||
"defaultMessage": "{object}이(가) 비활성화됨"
|
||||
},
|
||||
"object.event.enabled": {
|
||||
"defaultMessage": "{object}이(가) 활성화됨"
|
||||
},
|
||||
"object.event.renewed": {
|
||||
"defaultMessage": "{object}이(가) 갱신됨"
|
||||
},
|
||||
"object.event.updated": {
|
||||
"defaultMessage": "{object}이(가) 업데이트됨"
|
||||
},
|
||||
"offline": {
|
||||
"defaultMessage": "비활성화"
|
||||
},
|
||||
"online": {
|
||||
"defaultMessage": "활성화"
|
||||
},
|
||||
"options": {
|
||||
"defaultMessage": "옵션"
|
||||
},
|
||||
"password": {
|
||||
"defaultMessage": "비밀번호"
|
||||
},
|
||||
"password.generate": {
|
||||
"defaultMessage": "무작위 비밀번호 생성"
|
||||
},
|
||||
"password.hide": {
|
||||
"defaultMessage": "비밀번호 숨기기"
|
||||
},
|
||||
"password.show": {
|
||||
"defaultMessage": "비밀번호 표시"
|
||||
},
|
||||
"permissions.hidden": {
|
||||
"defaultMessage": "숨김"
|
||||
},
|
||||
"permissions.manage": {
|
||||
"defaultMessage": "관리"
|
||||
},
|
||||
"permissions.view": {
|
||||
"defaultMessage": "보기 전용"
|
||||
},
|
||||
"permissions.visibility.all": {
|
||||
"defaultMessage": "모든 항목"
|
||||
},
|
||||
"permissions.visibility.title": {
|
||||
"defaultMessage": "항목 표시 설정"
|
||||
},
|
||||
"permissions.visibility.user": {
|
||||
"defaultMessage": "내가 만든 항목만"
|
||||
},
|
||||
"proxy-host": {
|
||||
"defaultMessage": "프록시 호스트"
|
||||
},
|
||||
"proxy-host.forward-host": {
|
||||
"defaultMessage": "전달할 호스트명 / IP"
|
||||
},
|
||||
"proxy-hosts": {
|
||||
"defaultMessage": "프록시 호스트"
|
||||
},
|
||||
"proxy-hosts.count": {
|
||||
"defaultMessage": "{count}개의 프록시 호스트"
|
||||
},
|
||||
"public": {
|
||||
"defaultMessage": "공개"
|
||||
},
|
||||
"redirection-host": {
|
||||
"defaultMessage": "리다이렉션 호스트"
|
||||
},
|
||||
"redirection-host.forward-domain": {
|
||||
"defaultMessage": "전달할 도메인"
|
||||
},
|
||||
"redirection-host.forward-http-code": {
|
||||
"defaultMessage": "HTTP 코드"
|
||||
},
|
||||
"redirection-hosts": {
|
||||
"defaultMessage": "리다이렉션 호스트"
|
||||
},
|
||||
"redirection-hosts.count": {
|
||||
"defaultMessage": "{count}개의 리다이렉션 호스트"
|
||||
},
|
||||
"redirection-hosts.http-code.300": {
|
||||
"defaultMessage": "300 Multiple Choices"
|
||||
},
|
||||
"redirection-hosts.http-code.301": {
|
||||
"defaultMessage": "301 Moved permanently"
|
||||
},
|
||||
"redirection-hosts.http-code.302": {
|
||||
"defaultMessage": "302 Moved temporarily"
|
||||
},
|
||||
"redirection-hosts.http-code.303": {
|
||||
"defaultMessage": "303 See other"
|
||||
},
|
||||
"redirection-hosts.http-code.307": {
|
||||
"defaultMessage": "307 Temporary redirect"
|
||||
},
|
||||
"redirection-hosts.http-code.308": {
|
||||
"defaultMessage": "308 Permanent redirect"
|
||||
},
|
||||
"role.admin": {
|
||||
"defaultMessage": "관리자"
|
||||
},
|
||||
"role.standard-user": {
|
||||
"defaultMessage": "일반 사용자"
|
||||
},
|
||||
"save": {
|
||||
"defaultMessage": "저장"
|
||||
},
|
||||
"setting": {
|
||||
"defaultMessage": "설정"
|
||||
},
|
||||
"settings": {
|
||||
"defaultMessage": "설정"
|
||||
},
|
||||
"settings.default-site": {
|
||||
"defaultMessage": "기본 사이트"
|
||||
},
|
||||
"settings.default-site.404": {
|
||||
"defaultMessage": "404 페이지"
|
||||
},
|
||||
"settings.default-site.444": {
|
||||
"defaultMessage": "응답 없음 (444)"
|
||||
},
|
||||
"settings.default-site.congratulations": {
|
||||
"defaultMessage": "축하 페이지"
|
||||
},
|
||||
"settings.default-site.description": {
|
||||
"defaultMessage": "알 수 없는 호스트로 요청이 들어왔을 때 표시할 내용"
|
||||
},
|
||||
"settings.default-site.html": {
|
||||
"defaultMessage": "사용자 지정 HTML"
|
||||
},
|
||||
"settings.default-site.html.placeholder": {
|
||||
"defaultMessage": "<!-- 여기에 사용자 정의 HTML 내용을 입력하세요. -->"
|
||||
},
|
||||
"settings.default-site.redirect": {
|
||||
"defaultMessage": "리다이렉트"
|
||||
},
|
||||
"setup.preamble": {
|
||||
"defaultMessage": "관리자 계정을 만들어 시작하세요."
|
||||
},
|
||||
"setup.title": {
|
||||
"defaultMessage": "환영합니다!"
|
||||
},
|
||||
"sign-in": {
|
||||
"defaultMessage": "로그인"
|
||||
},
|
||||
"ssl-certificate": {
|
||||
"defaultMessage": "SSL 인증서"
|
||||
},
|
||||
"stream": {
|
||||
"defaultMessage": "호스트 스트림"
|
||||
},
|
||||
"stream.forward-host": {
|
||||
"defaultMessage": "전달할 호스트"
|
||||
},
|
||||
"stream.forward-host.placeholder": {
|
||||
"defaultMessage": "example.com / 10.0.0.1 / IPv6"
|
||||
},
|
||||
"stream.incoming-port": {
|
||||
"defaultMessage": "수신 포트"
|
||||
},
|
||||
"streams": {
|
||||
"defaultMessage": "호스트 스트림"
|
||||
},
|
||||
"streams.count": {
|
||||
"defaultMessage": "{count}개의 호스트 스트림"
|
||||
},
|
||||
"streams.tcp": {
|
||||
"defaultMessage": "TCP"
|
||||
},
|
||||
"streams.udp": {
|
||||
"defaultMessage": "UDP"
|
||||
},
|
||||
"test": {
|
||||
"defaultMessage": "테스트"
|
||||
},
|
||||
"update-available": {
|
||||
"defaultMessage": "업데이트 가능: {latestVersion}"
|
||||
},
|
||||
"user": {
|
||||
"defaultMessage": "사용자"
|
||||
},
|
||||
"user.change-password": {
|
||||
"defaultMessage": "비밀번호 변경"
|
||||
},
|
||||
"user.confirm-password": {
|
||||
"defaultMessage": "비밀번호 확인"
|
||||
},
|
||||
"user.current-password": {
|
||||
"defaultMessage": "현재 비밀번호"
|
||||
},
|
||||
"user.edit-profile": {
|
||||
"defaultMessage": "프로필 편집"
|
||||
},
|
||||
"user.full-name": {
|
||||
"defaultMessage": "전체 이름"
|
||||
},
|
||||
"user.login-as": {
|
||||
"defaultMessage": "{name}으로 로그인"
|
||||
},
|
||||
"user.logout": {
|
||||
"defaultMessage": "로그아웃"
|
||||
},
|
||||
"user.new-password": {
|
||||
"defaultMessage": "새 비밀번호"
|
||||
},
|
||||
"user.nickname": {
|
||||
"defaultMessage": "닉네임"
|
||||
},
|
||||
"user.set-password": {
|
||||
"defaultMessage": "비밀번호 설정"
|
||||
},
|
||||
"user.set-permissions": {
|
||||
"defaultMessage": "{name}의 권한 설정"
|
||||
},
|
||||
"user.switch-dark": {
|
||||
"defaultMessage": "다크 모드로 전환"
|
||||
},
|
||||
"user.switch-light": {
|
||||
"defaultMessage": "라이트 모드로 전환"
|
||||
},
|
||||
"username": {
|
||||
"defaultMessage": "사용자 이름"
|
||||
},
|
||||
"users": {
|
||||
"defaultMessage": "사용자"
|
||||
}
|
||||
}
|
||||
@@ -15,12 +15,27 @@
|
||||
"defaultMessage": "Русский"
|
||||
},
|
||||
"locale-sk-SK": {
|
||||
"defaultMessage": "Slovak"
|
||||
"defaultMessage": "Slovenčina"
|
||||
},
|
||||
"locale-zh-CN": {
|
||||
"defaultMessage": "中文"
|
||||
},
|
||||
"locale-pl-PL": {
|
||||
"defaultMessage": "Polski"
|
||||
},
|
||||
"locale-it-IT": {
|
||||
"defaultMessage": "Italiano"
|
||||
},
|
||||
"locale-vi-VN": {
|
||||
"defaultMessage": "Tiếng Việt"
|
||||
},
|
||||
"locale-nl-NL": {
|
||||
"defaultMessage": "Nederlands"
|
||||
},
|
||||
"locale-ko-KR": {
|
||||
"defaultMessage": "한국어"
|
||||
},
|
||||
"locale-bg-BG": {
|
||||
"defaultMessage": "Български"
|
||||
}
|
||||
}
|
||||
|
||||
647
frontend/src/locale/src/nl.json
Normal file
647
frontend/src/locale/src/nl.json
Normal file
@@ -0,0 +1,647 @@
|
||||
{
|
||||
"access-list": {
|
||||
"defaultMessage": "Toegangslijst"
|
||||
},
|
||||
"access-list.access-count": {
|
||||
"defaultMessage": "{count} {count, plural, one {Regel} other {Regels}}"
|
||||
},
|
||||
"access-list.auth-count": {
|
||||
"defaultMessage": "{count} {count, plural, one {Gebruiker} other {Gebruikers}}"
|
||||
},
|
||||
"access-list.help-rules-last": {
|
||||
"defaultMessage": "Als er minimaal 1 regel bestaat, wordt deze regel als laatste toegevoegd"
|
||||
},
|
||||
"access-list.help.rules-order": {
|
||||
"defaultMessage": "Onthoud dat de regels van boven naar beneden worden toegevoegd."
|
||||
},
|
||||
"access-list.pass-auth": {
|
||||
"defaultMessage": "Pass Auth to Upstream"
|
||||
},
|
||||
"access-list.public": {
|
||||
"defaultMessage": "Publiekelijk toegankelijk"
|
||||
},
|
||||
"access-list.public.subtitle": {
|
||||
"defaultMessage": "Geen basisautentificatie vereist"
|
||||
},
|
||||
"access-list.satisfy-any": {
|
||||
"defaultMessage": "Voldoe aan elke"
|
||||
},
|
||||
"access-list.subtitle": {
|
||||
"defaultMessage": "{users} {users, plural, one {Gebruiker} other {Gebruikers}}, {rules} {rules, plural, one {Regel} other {Regels}} - Aangemaakt: {date}"
|
||||
},
|
||||
"access-lists": {
|
||||
"defaultMessage": "Toegangslijsten"
|
||||
},
|
||||
"action.add": {
|
||||
"defaultMessage": "Toevoegen"
|
||||
},
|
||||
"action.add-location": {
|
||||
"defaultMessage": "Locatie Toevoegen"
|
||||
},
|
||||
"action.close": {
|
||||
"defaultMessage": "Sluiten"
|
||||
},
|
||||
"action.delete": {
|
||||
"defaultMessage": "Verwijderen"
|
||||
},
|
||||
"action.disable": {
|
||||
"defaultMessage": "Uitzetten"
|
||||
},
|
||||
"action.download": {
|
||||
"defaultMessage": "Download"
|
||||
},
|
||||
"action.edit": {
|
||||
"defaultMessage": "Bewerken"
|
||||
},
|
||||
"action.enable": {
|
||||
"defaultMessage": "Aanzetten"
|
||||
},
|
||||
"action.permissions": {
|
||||
"defaultMessage": "Rechten"
|
||||
},
|
||||
"action.renew": {
|
||||
"defaultMessage": "Vernieuwen"
|
||||
},
|
||||
"action.view-details": {
|
||||
"defaultMessage": "Bekijk Details"
|
||||
},
|
||||
"auditlogs": {
|
||||
"defaultMessage": "Logboeken"
|
||||
},
|
||||
"cancel": {
|
||||
"defaultMessage": "Annuleren"
|
||||
},
|
||||
"certificate": {
|
||||
"defaultMessage": "Certificaat"
|
||||
},
|
||||
"certificate.custom-certificate": {
|
||||
"defaultMessage": "Certificaat"
|
||||
},
|
||||
"certificate.custom-certificate-key": {
|
||||
"defaultMessage": "Certificaat Sleutel"
|
||||
},
|
||||
"certificate.custom-intermediate": {
|
||||
"defaultMessage": "Intermediate Certificaat"
|
||||
},
|
||||
"certificate.in-use": {
|
||||
"defaultMessage": "In Gebruik"
|
||||
},
|
||||
"certificate.none.subtitle": {
|
||||
"defaultMessage": "Geen certificaat toegewezen"
|
||||
},
|
||||
"certificate.none.subtitle.for-http": {
|
||||
"defaultMessage": "Deze host gebruikt geen HTTPS"
|
||||
},
|
||||
"certificate.none.title": {
|
||||
"defaultMessage": "Geen"
|
||||
},
|
||||
"certificate.not-in-use": {
|
||||
"defaultMessage": "Niet Gebruikt"
|
||||
},
|
||||
"certificate.renew": {
|
||||
"defaultMessage": "Certificaat Vernieuwen"
|
||||
},
|
||||
"certificates": {
|
||||
"defaultMessage": "Certificaten"
|
||||
},
|
||||
"certificates.custom": {
|
||||
"defaultMessage": "Aangepast Certificaat"
|
||||
},
|
||||
"certificates.custom.warning": {
|
||||
"defaultMessage": "Sleutels met een wachtzin zijn niet ondersteund."
|
||||
},
|
||||
"certificates.dns.credentials": {
|
||||
"defaultMessage": "Credentials File Content"
|
||||
},
|
||||
"certificates.dns.credentials-note": {
|
||||
"defaultMessage": "Deze plugin vereist een configuratiebestand met een API token of andere gegevens van de provider."
|
||||
},
|
||||
"certificates.dns.credentials-warning": {
|
||||
"defaultMessage": "Deze data zal worden opgeslagen als plaintext in de database en in een bestand!"
|
||||
},
|
||||
"certificates.dns.propagation-seconds": {
|
||||
"defaultMessage": "Verwerkingstijd (seconden)"
|
||||
},
|
||||
"certificates.dns.propagation-seconds-note": {
|
||||
"defaultMessage": "Laat leeg om de standaardwaarde van de plugin te gebruiken. Aantal seconden om te wachten op DNS propagatie."
|
||||
},
|
||||
"certificates.dns.provider": {
|
||||
"defaultMessage": "DNS Provider"
|
||||
},
|
||||
"certificates.dns.warning": {
|
||||
"defaultMessage": "Deze sectie vereist wat informatie over Certbot en zijn DNS plugins. Gebruik de documentatie van de bijbehorende plugins."
|
||||
},
|
||||
"certificates.http.reachability-404": {
|
||||
"defaultMessage": "Er is een server gevonden op deze domeinnaam, maar dat lijkt niet Nginx Proxy Manager te zijn. Zorg ervoor dat je domein naar het IP waar je NPM instance draait wijst."
|
||||
},
|
||||
"certificates.http.reachability-failed-to-check": {
|
||||
"defaultMessage": "Bereikbaarheid kan niet worden bepaald door een communicatiefout met site24x7.com."
|
||||
},
|
||||
"certificates.http.reachability-not-resolved": {
|
||||
"defaultMessage": "Er is geen server beschikbaar op dit domein. Zorg ervoor dat je domein bestaat en naar het IP waar je NPM instance draait wijst en eventueel port 80 wordt doorgegeven in je router."
|
||||
},
|
||||
"certificates.http.reachability-ok": {
|
||||
"defaultMessage": "Jouw server is bereikbaar en certificaten kunnen worden aangemaakt."
|
||||
},
|
||||
"certificates.http.reachability-other": {
|
||||
"defaultMessage": "Er is een server gevonden op deze domeinnaam, maar heeft een onverwachte statuscode ({code}) teruggegeven. Is dat de NPM server? Zorg ervoor dat je domein naar het IP waar je NPM instance draait wijst."
|
||||
},
|
||||
"certificates.http.reachability-wrong-data": {
|
||||
"defaultMessage": "Er is een server gevonden op deze domeinnaam, maar heeft een onverwachte gegevens teruggegeven. Is dat de NPM server? Zorg ervoor dat je domein naar het IP waar je NPM instance draait wijst."
|
||||
},
|
||||
"certificates.http.test-results": {
|
||||
"defaultMessage": "Testresultaten"
|
||||
},
|
||||
"certificates.http.warning": {
|
||||
"defaultMessage": "Deze domeinen moeten al worden geconfigureerd om naar deze installatie te wijzen."
|
||||
},
|
||||
"certificates.request.subtitle": {
|
||||
"defaultMessage": "met Let's Encrypt"
|
||||
},
|
||||
"certificates.request.title": {
|
||||
"defaultMessage": "Vraag een nieuwe Certificaat aan"
|
||||
},
|
||||
"column.access": {
|
||||
"defaultMessage": "Toegang"
|
||||
},
|
||||
"column.authorization": {
|
||||
"defaultMessage": "Authorizatie"
|
||||
},
|
||||
"column.authorizations": {
|
||||
"defaultMessage": "Authorizaties"
|
||||
},
|
||||
"column.custom-locations": {
|
||||
"defaultMessage": "Aangepaste Locaties"
|
||||
},
|
||||
"column.destination": {
|
||||
"defaultMessage": "Doel"
|
||||
},
|
||||
"column.details": {
|
||||
"defaultMessage": "Details"
|
||||
},
|
||||
"column.email": {
|
||||
"defaultMessage": "Email"
|
||||
},
|
||||
"column.event": {
|
||||
"defaultMessage": "Gebeurtenis"
|
||||
},
|
||||
"column.expires": {
|
||||
"defaultMessage": "Verloopt"
|
||||
},
|
||||
"column.http-code": {
|
||||
"defaultMessage": "HTTP Code"
|
||||
},
|
||||
"column.incoming-port": {
|
||||
"defaultMessage": "Inkomende Poort"
|
||||
},
|
||||
"column.name": {
|
||||
"defaultMessage": "Naam"
|
||||
},
|
||||
"column.protocol": {
|
||||
"defaultMessage": "Protocol"
|
||||
},
|
||||
"column.provider": {
|
||||
"defaultMessage": "Provider"
|
||||
},
|
||||
"column.roles": {
|
||||
"defaultMessage": "Rollen"
|
||||
},
|
||||
"column.rules": {
|
||||
"defaultMessage": "Regels"
|
||||
},
|
||||
"column.satisfy": {
|
||||
"defaultMessage": "Vervul"
|
||||
},
|
||||
"column.satisfy-all": {
|
||||
"defaultMessage": "Alle"
|
||||
},
|
||||
"column.satisfy-any": {
|
||||
"defaultMessage": "Elke"
|
||||
},
|
||||
"column.scheme": {
|
||||
"defaultMessage": "Schema"
|
||||
},
|
||||
"column.source": {
|
||||
"defaultMessage": "Bron"
|
||||
},
|
||||
"column.ssl": {
|
||||
"defaultMessage": "SSL"
|
||||
},
|
||||
"column.status": {
|
||||
"defaultMessage": "Status"
|
||||
},
|
||||
"created-on": {
|
||||
"defaultMessage": "Aangemaakt: {date}"
|
||||
},
|
||||
"dashboard": {
|
||||
"defaultMessage": "Dashboard"
|
||||
},
|
||||
"dead-host": {
|
||||
"defaultMessage": "404 Host"
|
||||
},
|
||||
"dead-hosts": {
|
||||
"defaultMessage": "404 Hosts"
|
||||
},
|
||||
"dead-hosts.count": {
|
||||
"defaultMessage": "{count} {count, plural, one {404 Host} other {404 Hosts}}"
|
||||
},
|
||||
"disabled": {
|
||||
"defaultMessage": "Uitgezet"
|
||||
},
|
||||
"domain-names": {
|
||||
"defaultMessage": "Domeinnamen"
|
||||
},
|
||||
"domain-names.max": {
|
||||
"defaultMessage": "{count} domeinnamen toegestaan"
|
||||
},
|
||||
"domain-names.placeholder": {
|
||||
"defaultMessage": "Voeg een domeinnaam toe..."
|
||||
},
|
||||
"domain-names.wildcards-not-permitted": {
|
||||
"defaultMessage": "Wildcards zijn niet toegestaan voor dit type"
|
||||
},
|
||||
"domain-names.wildcards-not-supported": {
|
||||
"defaultMessage": "Wildcards zijn niet ondersteund voor deze CA"
|
||||
},
|
||||
"domains.force-ssl": {
|
||||
"defaultMessage": "Forceer SSL"
|
||||
},
|
||||
"domains.hsts-enabled": {
|
||||
"defaultMessage": "HSTS Aangezet"
|
||||
},
|
||||
"domains.hsts-subdomains": {
|
||||
"defaultMessage": "HSTS Subdomein"
|
||||
},
|
||||
"domains.http2-support": {
|
||||
"defaultMessage": "HTTP/2 Ondersteuning"
|
||||
},
|
||||
"domains.use-dns": {
|
||||
"defaultMessage": "Gebruik DNS Challenge"
|
||||
},
|
||||
"email-address": {
|
||||
"defaultMessage": "E-mailadres"
|
||||
},
|
||||
"empty-search": {
|
||||
"defaultMessage": "Geen resultaten gevonden"
|
||||
},
|
||||
"empty-subtitle": {
|
||||
"defaultMessage": "Waarom niet een maken?"
|
||||
},
|
||||
"enabled": {
|
||||
"defaultMessage": "Aangezet"
|
||||
},
|
||||
"error.access.at-least-one": {
|
||||
"defaultMessage": "Minimaal één authorizatie- of één toegangsregel is vereist"
|
||||
},
|
||||
"error.access.duplicate-usernames": {
|
||||
"defaultMessage": "Gebruikersnamen moeten uniek zijn"
|
||||
},
|
||||
"error.invalid-auth": {
|
||||
"defaultMessage": "Ongeldige email of wachtwoord"
|
||||
},
|
||||
"error.invalid-domain": {
|
||||
"defaultMessage": "Ongeldige domeinnaam: {domain}"
|
||||
},
|
||||
"error.invalid-email": {
|
||||
"defaultMessage": "Ongeldig e-mailadres"
|
||||
},
|
||||
"error.max-character-length": {
|
||||
"defaultMessage": "Maximale lengte is {max} karakter{max, plural, one {} other {s}}"
|
||||
},
|
||||
"error.max-domains": {
|
||||
"defaultMessage": "Te veel domeinnamen, max is {max}"
|
||||
},
|
||||
"error.maximum": {
|
||||
"defaultMessage": "Maximale is {max}"
|
||||
},
|
||||
"error.min-character-length": {
|
||||
"defaultMessage": "Minimale lengte is {min} karakter{min, plural, one {} other {s}}"
|
||||
},
|
||||
"error.minimum": {
|
||||
"defaultMessage": "Minimale is {min}"
|
||||
},
|
||||
"error.passwords-must-match": {
|
||||
"defaultMessage": "Wachtwoorden moeten overeenkomen"
|
||||
},
|
||||
"error.required": {
|
||||
"defaultMessage": "Dit is verplicht"
|
||||
},
|
||||
"expires.on": {
|
||||
"defaultMessage": "Verloopt: {date}"
|
||||
},
|
||||
"footer.github-fork": {
|
||||
"defaultMessage": "Maak een Fork op Github"
|
||||
},
|
||||
"host.flags.block-exploits": {
|
||||
"defaultMessage": "Blokkeer Veelvoorkomende Kwetsbaarheden"
|
||||
},
|
||||
"host.flags.cache-assets": {
|
||||
"defaultMessage": "Cache Assets"
|
||||
},
|
||||
"host.flags.preserve-path": {
|
||||
"defaultMessage": "Pad Behouden"
|
||||
},
|
||||
"host.flags.protocols": {
|
||||
"defaultMessage": "Protocollen"
|
||||
},
|
||||
"host.flags.websockets-upgrade": {
|
||||
"defaultMessage": "Websockets Ondersteuning"
|
||||
},
|
||||
"host.forward-port": {
|
||||
"defaultMessage": "Poort Doorsturen"
|
||||
},
|
||||
"host.forward-scheme": {
|
||||
"defaultMessage": "Schema"
|
||||
},
|
||||
"hosts": {
|
||||
"defaultMessage": "Hosts"
|
||||
},
|
||||
"http-only": {
|
||||
"defaultMessage": "Alleen HTTP"
|
||||
},
|
||||
"lets-encrypt": {
|
||||
"defaultMessage": "Let's Encrypt"
|
||||
},
|
||||
"lets-encrypt-via-dns": {
|
||||
"defaultMessage": "Let's Encrypt via DNS"
|
||||
},
|
||||
"lets-encrypt-via-http": {
|
||||
"defaultMessage": "Let's Encrypt via HTTP"
|
||||
},
|
||||
"loading": {
|
||||
"defaultMessage": "Laden…"
|
||||
},
|
||||
"login.title": {
|
||||
"defaultMessage": "Inloggen"
|
||||
},
|
||||
"nginx-config.label": {
|
||||
"defaultMessage": "Aangepaste Nginx Configuratie"
|
||||
},
|
||||
"nginx-config.placeholder": {
|
||||
"defaultMessage": "# Voeg jouw aangepaste Nginx configuratie hier op eigen risico toe!"
|
||||
},
|
||||
"no-permission-error": {
|
||||
"defaultMessage": "Jij hebt geen toegang om dit te bekijken."
|
||||
},
|
||||
"notfound.action": {
|
||||
"defaultMessage": "Thuis"
|
||||
},
|
||||
"notfound.content": {
|
||||
"defaultMessage": "De pagina waar je naar op zoek bent kan niet worden gevonden"
|
||||
},
|
||||
"notfound.title": {
|
||||
"defaultMessage": "Oeps… Je hebt een foutpagina gevonden"
|
||||
},
|
||||
"notification.error": {
|
||||
"defaultMessage": "Fout"
|
||||
},
|
||||
"notification.object-deleted": {
|
||||
"defaultMessage": "{object} is verwijderd"
|
||||
},
|
||||
"notification.object-disabled": {
|
||||
"defaultMessage": "{object} is uitgezet"
|
||||
},
|
||||
"notification.object-enabled": {
|
||||
"defaultMessage": "{object} is aangezet"
|
||||
},
|
||||
"notification.object-renewed": {
|
||||
"defaultMessage": "{object} is vernieuwd"
|
||||
},
|
||||
"notification.object-saved": {
|
||||
"defaultMessage": "{object} is opgeslagen"
|
||||
},
|
||||
"notification.success": {
|
||||
"defaultMessage": "Succes"
|
||||
},
|
||||
"object.actions-title": {
|
||||
"defaultMessage": "{object} #{id}"
|
||||
},
|
||||
"object.add": {
|
||||
"defaultMessage": "Voeg {object} toe"
|
||||
},
|
||||
"object.delete": {
|
||||
"defaultMessage": "Verwijder {object}"
|
||||
},
|
||||
"object.delete.content": {
|
||||
"defaultMessage": "Weet je zeker dat je {object} wilt verwijderen?"
|
||||
},
|
||||
"object.edit": {
|
||||
"defaultMessage": "Bewerk {object}"
|
||||
},
|
||||
"object.empty": {
|
||||
"defaultMessage": "Er zijn geen {objects}"
|
||||
},
|
||||
"object.event.created": {
|
||||
"defaultMessage": "{object} is aangemaakt"
|
||||
},
|
||||
"object.event.deleted": {
|
||||
"defaultMessage": "{object} is verwijderd"
|
||||
},
|
||||
"object.event.disabled": {
|
||||
"defaultMessage": "{object} is uitgezet"
|
||||
},
|
||||
"object.event.enabled": {
|
||||
"defaultMessage": "{object} is aangezet"
|
||||
},
|
||||
"object.event.renewed": {
|
||||
"defaultMessage": "{object} is vernieuwd"
|
||||
},
|
||||
"object.event.updated": {
|
||||
"defaultMessage": "{object} is bijgewerkt"
|
||||
},
|
||||
"offline": {
|
||||
"defaultMessage": "Offline"
|
||||
},
|
||||
"online": {
|
||||
"defaultMessage": "Online"
|
||||
},
|
||||
"options": {
|
||||
"defaultMessage": "Opties"
|
||||
},
|
||||
"password": {
|
||||
"defaultMessage": "Wachtwoord"
|
||||
},
|
||||
"password.generate": {
|
||||
"defaultMessage": "Willekeurig wachtwoord genereren"
|
||||
},
|
||||
"password.hide": {
|
||||
"defaultMessage": "Wachtwoord Verbergen"
|
||||
},
|
||||
"password.show": {
|
||||
"defaultMessage": "Toon Wachtwoord"
|
||||
},
|
||||
"permissions.hidden": {
|
||||
"defaultMessage": "Verborgen"
|
||||
},
|
||||
"permissions.manage": {
|
||||
"defaultMessage": "Beheer"
|
||||
},
|
||||
"permissions.view": {
|
||||
"defaultMessage": "Alleen Bekijken"
|
||||
},
|
||||
"permissions.visibility.all": {
|
||||
"defaultMessage": "Alle Items"
|
||||
},
|
||||
"permissions.visibility.title": {
|
||||
"defaultMessage": "Item Zichtbaarheid"
|
||||
},
|
||||
"permissions.visibility.user": {
|
||||
"defaultMessage": "Alleen Aangemaakte Items"
|
||||
},
|
||||
"proxy-host": {
|
||||
"defaultMessage": "Proxy Host"
|
||||
},
|
||||
"proxy-host.forward-host": {
|
||||
"defaultMessage": "Hostname / IP Doorsturen"
|
||||
},
|
||||
"proxy-hosts": {
|
||||
"defaultMessage": "Proxy Hosts"
|
||||
},
|
||||
"proxy-hosts.count": {
|
||||
"defaultMessage": "{count} {count, plural, one {Proxy Host} other {Proxy Hosts}}"
|
||||
},
|
||||
"public": {
|
||||
"defaultMessage": "Openbaar"
|
||||
},
|
||||
"redirection-host": {
|
||||
"defaultMessage": "Redirection Host"
|
||||
},
|
||||
"redirection-host.forward-domain": {
|
||||
"defaultMessage": "Doorgestuurd Domein"
|
||||
},
|
||||
"redirection-host.forward-http-code": {
|
||||
"defaultMessage": "HTTP Code"
|
||||
},
|
||||
"redirection-hosts": {
|
||||
"defaultMessage": "Redirection Hosts"
|
||||
},
|
||||
"redirection-hosts.count": {
|
||||
"defaultMessage": "{count} {count, plural, one {Redirection Host} other {Redirection Hosts}}"
|
||||
},
|
||||
"role.admin": {
|
||||
"defaultMessage": "Beheerder"
|
||||
},
|
||||
"role.standard-user": {
|
||||
"defaultMessage": "Standaard Gebruiker"
|
||||
},
|
||||
"save": {
|
||||
"defaultMessage": "Opslaan"
|
||||
},
|
||||
"setting": {
|
||||
"defaultMessage": "Instelling"
|
||||
},
|
||||
"settings": {
|
||||
"defaultMessage": "Instellingen"
|
||||
},
|
||||
"settings.default-site": {
|
||||
"defaultMessage": "Standaard Site"
|
||||
},
|
||||
"settings.default-site.404": {
|
||||
"defaultMessage": "404 Pagina"
|
||||
},
|
||||
"settings.default-site.444": {
|
||||
"defaultMessage": "Geen Antwoord (444)"
|
||||
},
|
||||
"settings.default-site.congratulations": {
|
||||
"defaultMessage": "Felicitatiepagina"
|
||||
},
|
||||
"settings.default-site.description": {
|
||||
"defaultMessage": "Wat te tonen als Nginx een onbekende Host ontvangt"
|
||||
},
|
||||
"settings.default-site.html": {
|
||||
"defaultMessage": "Aangepaste HTML"
|
||||
},
|
||||
"settings.default-site.html.placeholder": {
|
||||
"defaultMessage": "<!-- Plaats jouw aangepaste HTML hier -->"
|
||||
},
|
||||
"settings.default-site.redirect": {
|
||||
"defaultMessage": "Omleiding"
|
||||
},
|
||||
"setup.preamble": {
|
||||
"defaultMessage": "Begin met het aanmaken van je beheerder account."
|
||||
},
|
||||
"setup.title": {
|
||||
"defaultMessage": "Welkom!"
|
||||
},
|
||||
"sign-in": {
|
||||
"defaultMessage": "Inloggen"
|
||||
},
|
||||
"ssl-certificate": {
|
||||
"defaultMessage": "SSL Certificaten"
|
||||
},
|
||||
"stream": {
|
||||
"defaultMessage": "Stream"
|
||||
},
|
||||
"stream.forward-host": {
|
||||
"defaultMessage": "Doorgestuurde Host"
|
||||
},
|
||||
"stream.incoming-port": {
|
||||
"defaultMessage": "Inkomende Poort"
|
||||
},
|
||||
"streams": {
|
||||
"defaultMessage": "Streams"
|
||||
},
|
||||
"streams.count": {
|
||||
"defaultMessage": "{count} {count, plural, one {Stream} other {Streams}}"
|
||||
},
|
||||
"streams.tcp": {
|
||||
"defaultMessage": "TCP"
|
||||
},
|
||||
"streams.udp": {
|
||||
"defaultMessage": "UDP"
|
||||
},
|
||||
"test": {
|
||||
"defaultMessage": "Test"
|
||||
},
|
||||
"update-available": {
|
||||
"defaultMessage": "Update Beschikbaar: {latestVersion}"
|
||||
},
|
||||
"user": {
|
||||
"defaultMessage": "Gebruiker"
|
||||
},
|
||||
"user.change-password": {
|
||||
"defaultMessage": "Verander Wachtwoord"
|
||||
},
|
||||
"user.confirm-password": {
|
||||
"defaultMessage": "Bevestig Wachtwoord"
|
||||
},
|
||||
"user.current-password": {
|
||||
"defaultMessage": "Huidig Wachtwoord"
|
||||
},
|
||||
"user.edit-profile": {
|
||||
"defaultMessage": "Profiel Bewerken"
|
||||
},
|
||||
"user.full-name": {
|
||||
"defaultMessage": "Volledige Naam"
|
||||
},
|
||||
"user.login-as": {
|
||||
"defaultMessage": "Inloggen als {name}"
|
||||
},
|
||||
"user.logout": {
|
||||
"defaultMessage": "Uitloggen"
|
||||
},
|
||||
"user.new-password": {
|
||||
"defaultMessage": "Nieuw Wachtwoord"
|
||||
},
|
||||
"user.nickname": {
|
||||
"defaultMessage": "Bijnaam"
|
||||
},
|
||||
"user.set-password": {
|
||||
"defaultMessage": "Zet Wachtwoord"
|
||||
},
|
||||
"user.set-permissions": {
|
||||
"defaultMessage": "Zet machtigingen voor {name}"
|
||||
},
|
||||
"user.switch-dark": {
|
||||
"defaultMessage": "Verander naar donkere modus"
|
||||
},
|
||||
"user.switch-light": {
|
||||
"defaultMessage": "Verander naar lichte modus"
|
||||
},
|
||||
"username": {
|
||||
"defaultMessage": "Gebruikersnaam"
|
||||
},
|
||||
"users": {
|
||||
"defaultMessage": "Gebruikers"
|
||||
}
|
||||
}
|
||||
@@ -204,7 +204,7 @@
|
||||
"defaultMessage": "Dostawca"
|
||||
},
|
||||
"column.roles": {
|
||||
"defaultMessage": "Role"
|
||||
"defaultMessage": "Rola"
|
||||
},
|
||||
"column.rules": {
|
||||
"defaultMessage": "Reguły"
|
||||
@@ -417,7 +417,7 @@
|
||||
"defaultMessage": "{object} #{id}"
|
||||
},
|
||||
"object.add": {
|
||||
"defaultMessage": "Dodaj {object}"
|
||||
"defaultMessage": "Nowy {object}"
|
||||
},
|
||||
"object.delete": {
|
||||
"defaultMessage": "Usuń {object}"
|
||||
|
||||
@@ -9,16 +9,16 @@
|
||||
"defaultMessage": "{count} {count, plural, one {пользователь} few {пользователя} many {пользователей} other {пользователя}}"
|
||||
},
|
||||
"access-list.help-rules-last": {
|
||||
"defaultMessage": "When at least 1 rule exists, this deny all rule will be added last"
|
||||
"defaultMessage": "Если есть хотя бы одно правило, правило 'запретить всё' будет добавлено последним"
|
||||
},
|
||||
"access-list.help.rules-order": {
|
||||
"defaultMessage": "Note that the allow and deny directives will be applied in the order they are defined."
|
||||
"defaultMessage": "Обратите внимание: разрешающие и запрещающие директивы применяются в порядке их определения."
|
||||
},
|
||||
"access-list.pass-auth": {
|
||||
"defaultMessage": "Pass Auth to Upstream"
|
||||
"defaultMessage": "Передавать авторизацию на upstream-сервер"
|
||||
},
|
||||
"access-list.public": {
|
||||
"defaultMessage": "Публично доступен"
|
||||
"defaultMessage": "Общедоступный"
|
||||
},
|
||||
"access-list.public.subtitle": {
|
||||
"defaultMessage": "Без аутентификации"
|
||||
@@ -27,7 +27,7 @@
|
||||
"defaultMessage": "Любое совпадение"
|
||||
},
|
||||
"access-list.subtitle": {
|
||||
"defaultMessage": "{users} {users, plural, one {User} other {Users}}, {rules} {rules, plural, one {Rule} other {Rules}} - Created: {date}"
|
||||
"defaultMessage": "{users} {users, plural, one {пользователь} few {пользователя} many {пользователей} other {пользователя}}, {rules} {rules, plural, one {правило} few {правила} many {правил} other {правила}} - создан: {date}"
|
||||
},
|
||||
"access-lists": {
|
||||
"defaultMessage": "Списки доступа"
|
||||
@@ -63,7 +63,7 @@
|
||||
"defaultMessage": "Продлить"
|
||||
},
|
||||
"action.view-details": {
|
||||
"defaultMessage": "Просмотреть детали"
|
||||
"defaultMessage": "Просмотреть сведения"
|
||||
},
|
||||
"auditlogs": {
|
||||
"defaultMessage": "Журнал аудита"
|
||||
@@ -111,49 +111,49 @@
|
||||
"defaultMessage": "Файлы ключей, защищённые паролем, не поддерживаются."
|
||||
},
|
||||
"certificates.dns.credentials": {
|
||||
"defaultMessage": "Credentials File Content"
|
||||
"defaultMessage": "Содержимое файла учётных данных"
|
||||
},
|
||||
"certificates.dns.credentials-note": {
|
||||
"defaultMessage": "This plugin requires a configuration file containing an API token or other credentials for your provider"
|
||||
"defaultMessage": "Этот плагин требует файл конфигурации, содержащий API-токен или другие учётные данные вашего провайдера"
|
||||
},
|
||||
"certificates.dns.credentials-warning": {
|
||||
"defaultMessage": "This data will be stored as plaintext in the database and in a file!"
|
||||
"defaultMessage": "Эти данные будут храниться в незашифрованном виде в базе данных и файле!"
|
||||
},
|
||||
"certificates.dns.propagation-seconds": {
|
||||
"defaultMessage": "Propagation Seconds"
|
||||
"defaultMessage": "Ожидание распространения (сек.)"
|
||||
},
|
||||
"certificates.dns.propagation-seconds-note": {
|
||||
"defaultMessage": "Leave empty to use the plugins default value. Number of seconds to wait for DNS propagation."
|
||||
"defaultMessage": "Оставьте пустым для значения по умолчанию плагина. Секунды ожидания распространения DNS."
|
||||
},
|
||||
"certificates.dns.provider": {
|
||||
"defaultMessage": "DNS-провайдер"
|
||||
},
|
||||
"certificates.dns.warning": {
|
||||
"defaultMessage": "This section requires some knowledge about Certbot and its DNS plugins. Please consult the respective plugins documentation."
|
||||
"defaultMessage": "Этот раздел требует знаний о Certbot и его DNS-плагинах. Пожалуйста, обратитесь к документации соответствующих плагинов."
|
||||
},
|
||||
"certificates.http.reachability-404": {
|
||||
"defaultMessage": "There is a server found at this domain but it does not seem to be Nginx Proxy Manager. Please make sure your domain points to the IP where your NPM instance is running."
|
||||
"defaultMessage": "На этом домене найден сервер, но, похоже, это не Nginx Proxy Manager. Убедитесь, что ваш домен указывает на IP-адрес, где запущен ваш экземпляр NPM."
|
||||
},
|
||||
"certificates.http.reachability-failed-to-check": {
|
||||
"defaultMessage": "Failed to check the reachability due to a communication error with site24x7.com."
|
||||
"defaultMessage": "Не удалось проверить доступность из‑за ошибки связи с site24x7.com."
|
||||
},
|
||||
"certificates.http.reachability-not-resolved": {
|
||||
"defaultMessage": "There is no server available at this domain. Please make sure your domain exists and points to the IP where your NPM instance is running and if necessary port 80 is forwarded in your router."
|
||||
"defaultMessage": "На этом домене недоступен сервер. Убедитесь, что домен существует и указывает на IP-адрес, где запущен ваш экземпляр NPM, и при необходимости порт 80 проброшен на вашем роутере."
|
||||
},
|
||||
"certificates.http.reachability-ok": {
|
||||
"defaultMessage": "Your server is reachable and creating certificates should be possible."
|
||||
"defaultMessage": "Сервер доступен, выпуск сертификатов возможен."
|
||||
},
|
||||
"certificates.http.reachability-other": {
|
||||
"defaultMessage": "There is a server found at this domain but it returned an unexpected status code {code}. Is it the NPM server? Please make sure your domain points to the IP where your NPM instance is running."
|
||||
"defaultMessage": "На этом домене найден сервер, но он вернул неожиданный статус‑код {code}. Это сервер NPM? Убедитесь, что ваш домен указывает на IP-адрес, где запущен ваш экземпляр NPM."
|
||||
},
|
||||
"certificates.http.reachability-wrong-data": {
|
||||
"defaultMessage": "There is a server found at this domain but it returned an unexpected data. Is it the NPM server? Please make sure your domain points to the IP where your NPM instance is running."
|
||||
"defaultMessage": "На этом домене найден сервер, но он вернул неожиданные данные. Это сервер NPM? Убедитесь, что ваш домен указывает на IP-адрес, где запущен ваш экземпляр NPM."
|
||||
},
|
||||
"certificates.http.test-results": {
|
||||
"defaultMessage": "Результаты проверки"
|
||||
},
|
||||
"certificates.http.warning": {
|
||||
"defaultMessage": "These domains must be already configured to point to this installation."
|
||||
"defaultMessage": "Эти домены должны быть настроены и указывать на этот экземпляр."
|
||||
},
|
||||
"certificates.request.subtitle": {
|
||||
"defaultMessage": "через Let's Encrypt"
|
||||
@@ -177,10 +177,10 @@
|
||||
"defaultMessage": "Назначение"
|
||||
},
|
||||
"column.details": {
|
||||
"defaultMessage": "Детали"
|
||||
"defaultMessage": "Сведения"
|
||||
},
|
||||
"column.email": {
|
||||
"defaultMessage": "Email"
|
||||
"defaultMessage": "Эл. почта"
|
||||
},
|
||||
"column.event": {
|
||||
"defaultMessage": "Событие"
|
||||
@@ -189,7 +189,7 @@
|
||||
"defaultMessage": "Истекает"
|
||||
},
|
||||
"column.http-code": {
|
||||
"defaultMessage": "HTTP Code"
|
||||
"defaultMessage": "HTTP-код"
|
||||
},
|
||||
"column.incoming-port": {
|
||||
"defaultMessage": "Входящий порт"
|
||||
@@ -210,7 +210,7 @@
|
||||
"defaultMessage": "Правила"
|
||||
},
|
||||
"column.satisfy": {
|
||||
"defaultMessage": "Совпадение"
|
||||
"defaultMessage": "Условия"
|
||||
},
|
||||
"column.satisfy-all": {
|
||||
"defaultMessage": "Все"
|
||||
@@ -252,16 +252,16 @@
|
||||
"defaultMessage": "Домены"
|
||||
},
|
||||
"domain-names.max": {
|
||||
"defaultMessage": "Максимум доменов: {count}"
|
||||
"defaultMessage": "Максимум {count} доменов"
|
||||
},
|
||||
"domain-names.placeholder": {
|
||||
"defaultMessage": "Начните ввод, чтобы добавить домен..."
|
||||
},
|
||||
"domain-names.wildcards-not-permitted": {
|
||||
"defaultMessage": "Wildcard'ы не разрешены для этого типа"
|
||||
"defaultMessage": "Подстановочные домены не разрешены для этого типа"
|
||||
},
|
||||
"domain-names.wildcards-not-supported": {
|
||||
"defaultMessage": "Wildcard'ы не поддерживаются этим CA"
|
||||
"defaultMessage": "Подстановочные домены не поддерживаются этим центром сертификации"
|
||||
},
|
||||
"domains.force-ssl": {
|
||||
"defaultMessage": "Всегда SSL"
|
||||
@@ -276,10 +276,10 @@
|
||||
"defaultMessage": "Поддержка HTTP/2"
|
||||
},
|
||||
"domains.use-dns": {
|
||||
"defaultMessage": "Использовать DNS Challenge"
|
||||
"defaultMessage": "Проверка через DNS"
|
||||
},
|
||||
"email-address": {
|
||||
"defaultMessage": "Email-адрес"
|
||||
"defaultMessage": "Адрес эл. почты"
|
||||
},
|
||||
"empty-search": {
|
||||
"defaultMessage": "Ничего не найдено"
|
||||
@@ -288,25 +288,25 @@
|
||||
"defaultMessage": "Почему бы не создать его?"
|
||||
},
|
||||
"enabled": {
|
||||
"defaultMessage": "Включен"
|
||||
"defaultMessage": "Включён"
|
||||
},
|
||||
"error.access.at-least-one": {
|
||||
"defaultMessage": "Either one Authorization or one Access Rule is required"
|
||||
"defaultMessage": "Требуется хотя бы одна авторизация или одно правило доступа"
|
||||
},
|
||||
"error.access.duplicate-usernames": {
|
||||
"defaultMessage": "Authorization Usernames must be unique"
|
||||
"defaultMessage": "Имена пользователей для авторизации должны быть уникальными"
|
||||
},
|
||||
"error.invalid-auth": {
|
||||
"defaultMessage": "Неверный email или пароль"
|
||||
"defaultMessage": "Неверный адрес эл. почты или пароль"
|
||||
},
|
||||
"error.invalid-domain": {
|
||||
"defaultMessage": "Неверный домен: {domain}"
|
||||
},
|
||||
"error.invalid-email": {
|
||||
"defaultMessage": "Неверный email-адрес"
|
||||
"defaultMessage": "Неверный адрес эл. почты"
|
||||
},
|
||||
"error.max-character-length": {
|
||||
"defaultMessage": "Maximum length is {max} character{max, plural, one {} other {s}}"
|
||||
"defaultMessage": "Максимальная длина {max} {max, plural, one {символ} few {символа} many {символов} other {символа}}"
|
||||
},
|
||||
"error.max-domains": {
|
||||
"defaultMessage": "Слишком много доменов, максимум {max}"
|
||||
@@ -315,7 +315,7 @@
|
||||
"defaultMessage": "Максимум {max}"
|
||||
},
|
||||
"error.min-character-length": {
|
||||
"defaultMessage": "Minimum length is {min} character{min, plural, one {} other {s}}"
|
||||
"defaultMessage": "Минимальная длина {min} {min, plural, one {символ} few {символа} many {символов} other {символа}}"
|
||||
},
|
||||
"error.minimum": {
|
||||
"defaultMessage": "Минимум {min}"
|
||||
@@ -330,7 +330,7 @@
|
||||
"defaultMessage": "Истекает: {date}"
|
||||
},
|
||||
"footer.github-fork": {
|
||||
"defaultMessage": "Fork me on Github"
|
||||
"defaultMessage": "Сделать форк на GitHub"
|
||||
},
|
||||
"host.flags.block-exploits": {
|
||||
"defaultMessage": "Блокировать известные эксплойты"
|
||||
@@ -381,7 +381,7 @@
|
||||
"defaultMessage": "# Введите здесь свою Nginx-конфигурацию, будьте осторожны!"
|
||||
},
|
||||
"no-permission-error": {
|
||||
"defaultMessage": "You do not have access to view this."
|
||||
"defaultMessage": "У вас нет доступа для просмотра."
|
||||
},
|
||||
"notfound.action": {
|
||||
"defaultMessage": "Вернуться на главную"
|
||||
@@ -429,7 +429,7 @@
|
||||
"defaultMessage": "Изменить {object}"
|
||||
},
|
||||
"object.empty": {
|
||||
"defaultMessage": "{objects} отстутствуют"
|
||||
"defaultMessage": "{objects} отсутствуют"
|
||||
},
|
||||
"object.event.created": {
|
||||
"defaultMessage": "{object} создан"
|
||||
@@ -501,7 +501,7 @@
|
||||
"defaultMessage": "{count} {count, plural, one {прокси-хост} few {прокси-хоста} many {прокси-хостов} other {прокси-хоста}}"
|
||||
},
|
||||
"public": {
|
||||
"defaultMessage": "Публичный"
|
||||
"defaultMessage": "Общедоступный"
|
||||
},
|
||||
"redirection-host": {
|
||||
"defaultMessage": "Редирект-хост"
|
||||
@@ -510,7 +510,7 @@
|
||||
"defaultMessage": "Домен перенаправления"
|
||||
},
|
||||
"redirection-host.forward-http-code": {
|
||||
"defaultMessage": "HTTP Code"
|
||||
"defaultMessage": "HTTP-код"
|
||||
},
|
||||
"redirection-hosts": {
|
||||
"defaultMessage": "Редирект-хосты"
|
||||
@@ -627,7 +627,7 @@
|
||||
"defaultMessage": "Задать пароль"
|
||||
},
|
||||
"user.set-permissions": {
|
||||
"defaultMessage": "Set Permissions for {name}"
|
||||
"defaultMessage": "Задать разрешения для {name}"
|
||||
},
|
||||
"user.switch-dark": {
|
||||
"defaultMessage": "Включить тёмную тему"
|
||||
@@ -636,7 +636,7 @@
|
||||
"defaultMessage": "Включить светлую тему"
|
||||
},
|
||||
"username": {
|
||||
"defaultMessage": "Логин"
|
||||
"defaultMessage": "Имя пользователя"
|
||||
},
|
||||
"users": {
|
||||
"defaultMessage": "Пользователи"
|
||||
|
||||
647
frontend/src/locale/src/vi.json
Normal file
647
frontend/src/locale/src/vi.json
Normal file
@@ -0,0 +1,647 @@
|
||||
{
|
||||
"access-list": {
|
||||
"defaultMessage": "Danh sách truy cập"
|
||||
},
|
||||
"access-list.access-count": {
|
||||
"defaultMessage": "{count} quy tắc"
|
||||
},
|
||||
"access-list.auth-count": {
|
||||
"defaultMessage": "{count} người dùng"
|
||||
},
|
||||
"access-list.help-rules-last": {
|
||||
"defaultMessage": "Quy tắc từ chối tất cả này sẽ được thêm vào cuối khi tồn tại ít nhất 1 quy tắc"
|
||||
},
|
||||
"access-list.help.rules-order": {
|
||||
"defaultMessage": "Các quy tắc cho phép và từ chối sẽ được thực thi theo thứ tự được xác định."
|
||||
},
|
||||
"access-list.pass-auth": {
|
||||
"defaultMessage": "Chuyển xác thực lên thượng nguồn"
|
||||
},
|
||||
"access-list.public": {
|
||||
"defaultMessage": "Có thể truy cập công khai"
|
||||
},
|
||||
"access-list.public.subtitle": {
|
||||
"defaultMessage": "Không cần xác thực cơ bản"
|
||||
},
|
||||
"access-list.satisfy-any": {
|
||||
"defaultMessage": "Thỏa mãn điều kiện bất kỳ"
|
||||
},
|
||||
"access-list.subtitle": {
|
||||
"defaultMessage": "{users} người dùng, {rules} quy tắc - Tạo lúc: {date}"
|
||||
},
|
||||
"access-lists": {
|
||||
"defaultMessage": "Danh sách truy cập"
|
||||
},
|
||||
"action.add": {
|
||||
"defaultMessage": "Thêm"
|
||||
},
|
||||
"action.add-location": {
|
||||
"defaultMessage": "Thêm Vị trí"
|
||||
},
|
||||
"action.close": {
|
||||
"defaultMessage": "Đóng"
|
||||
},
|
||||
"action.delete": {
|
||||
"defaultMessage": "Xóa"
|
||||
},
|
||||
"action.disable": {
|
||||
"defaultMessage": "Tắt"
|
||||
},
|
||||
"action.download": {
|
||||
"defaultMessage": "Tải xuống"
|
||||
},
|
||||
"action.edit": {
|
||||
"defaultMessage": "Chỉnh sửa"
|
||||
},
|
||||
"action.enable": {
|
||||
"defaultMessage": "Bật"
|
||||
},
|
||||
"action.permissions": {
|
||||
"defaultMessage": "Quyền"
|
||||
},
|
||||
"action.renew": {
|
||||
"defaultMessage": "Gia hạn"
|
||||
},
|
||||
"action.view-details": {
|
||||
"defaultMessage": "Xem Chi tiết"
|
||||
},
|
||||
"auditlogs": {
|
||||
"defaultMessage": "Nhật ký kiểm tra"
|
||||
},
|
||||
"cancel": {
|
||||
"defaultMessage": "Hủy"
|
||||
},
|
||||
"certificate": {
|
||||
"defaultMessage": "Chứng chỉ"
|
||||
},
|
||||
"certificate.custom-certificate": {
|
||||
"defaultMessage": "Certificate (crt)"
|
||||
},
|
||||
"certificate.custom-certificate-key": {
|
||||
"defaultMessage": "Certificate Key"
|
||||
},
|
||||
"certificate.custom-intermediate": {
|
||||
"defaultMessage": "Intermediate Certificate"
|
||||
},
|
||||
"certificate.in-use": {
|
||||
"defaultMessage": "Đang sử dụng"
|
||||
},
|
||||
"certificate.none.subtitle": {
|
||||
"defaultMessage": "Không có chứng chỉ nào được chỉ định"
|
||||
},
|
||||
"certificate.none.subtitle.for-http": {
|
||||
"defaultMessage": "Máy chủ này sẽ không sử dụng HTTPS"
|
||||
},
|
||||
"certificate.none.title": {
|
||||
"defaultMessage": "Không có"
|
||||
},
|
||||
"certificate.not-in-use": {
|
||||
"defaultMessage": "Không được dùng"
|
||||
},
|
||||
"certificate.renew": {
|
||||
"defaultMessage": "Gia hạn Chứng chỉ"
|
||||
},
|
||||
"certificates": {
|
||||
"defaultMessage": "Danh sách chứng chỉ"
|
||||
},
|
||||
"certificates.custom": {
|
||||
"defaultMessage": "Chứng chỉ tùy chỉnh"
|
||||
},
|
||||
"certificates.custom.warning": {
|
||||
"defaultMessage": "Các tệp chính được bảo vệ bằng cụm mật khẩu không được hỗ trợ."
|
||||
},
|
||||
"certificates.dns.credentials": {
|
||||
"defaultMessage": "Nội dung tệp thông tin xác thực"
|
||||
},
|
||||
"certificates.dns.credentials-note": {
|
||||
"defaultMessage": "Plugin này yêu cầu tệp cấu hình chứa mã thông báo API hoặc thông tin xác thực khác cho nhà cung cấp của bạn"
|
||||
},
|
||||
"certificates.dns.credentials-warning": {
|
||||
"defaultMessage": "Dữ liệu này sẽ được lưu trữ dưới dạng bản rõ trong cơ sở dữ liệu và trong một tệp!"
|
||||
},
|
||||
"certificates.dns.propagation-seconds": {
|
||||
"defaultMessage": "Thời gian lan truyền (Giây)"
|
||||
},
|
||||
"certificates.dns.propagation-seconds-note": {
|
||||
"defaultMessage": "Để trống để sử dụng giá trị mặc định của plugin. Số giây chờ truyền DNS."
|
||||
},
|
||||
"certificates.dns.provider": {
|
||||
"defaultMessage": "Nhà cung cấp DNS"
|
||||
},
|
||||
"certificates.dns.warning": {
|
||||
"defaultMessage": "Phần này yêu cầu một số kiến thức về Certbot và các plugin DNS của nó. Vui lòng tham khảo tài liệu plugin tương ứng."
|
||||
},
|
||||
"certificates.http.reachability-404": {
|
||||
"defaultMessage": "Có một máy chủ được tìm thấy ở miền này nhưng có vẻ như nó không phải là NPM. Vui lòng đảm bảo tên miền của bạn trỏ đến IP nơi phiên bản NPM của bạn đang chạy."
|
||||
},
|
||||
"certificates.http.reachability-failed-to-check": {
|
||||
"defaultMessage": "Không thể kiểm tra khả năng truy cập do lỗi giao tiếp với site24x7.com."
|
||||
},
|
||||
"certificates.http.reachability-not-resolved": {
|
||||
"defaultMessage": "Không có máy chủ có sẵn tại tên miền này. Vui lòng đảm bảo rằng miền của bạn tồn tại và trỏ đến IP nơi phiên bản NPM của bạn đang chạy và nếu cần, cổng 80 sẽ được chuyển tiếp trong bộ định tuyến của bạn."
|
||||
},
|
||||
"certificates.http.reachability-ok": {
|
||||
"defaultMessage": "Máy chủ của bạn có thể truy cập được và có thể tạo chứng chỉ."
|
||||
},
|
||||
"certificates.http.reachability-other": {
|
||||
"defaultMessage": "Có một máy chủ được tìm thấy ở miền này nhưng nó trả về mã trạng thái không mong muốn {code}. Đây có phải là máy chủ NPM không? Vui lòng đảm bảo tên miền của bạn trỏ đến IP nơi phiên bản NPM của bạn đang chạy."
|
||||
},
|
||||
"certificates.http.reachability-wrong-data": {
|
||||
"defaultMessage": "Có một máy chủ được tìm thấy ở miền này nhưng nó trả về một dữ liệu không mong muốn. Đây có phải là máy chủ NPM không? Vui lòng đảm bảo tên miền của bạn trỏ đến IP nơi phiên bản NPM của bạn đang chạy."
|
||||
},
|
||||
"certificates.http.test-results": {
|
||||
"defaultMessage": "Kết quả kiểm tra"
|
||||
},
|
||||
"certificates.http.warning": {
|
||||
"defaultMessage": "Các miền này phải được cấu hình sẵn để trỏ đến cài đặt này."
|
||||
},
|
||||
"certificates.request.subtitle": {
|
||||
"defaultMessage": "bằng Let's Encrypt"
|
||||
},
|
||||
"certificates.request.title": {
|
||||
"defaultMessage": "Yêu cầu chứng chỉ mới"
|
||||
},
|
||||
"column.access": {
|
||||
"defaultMessage": "Truy cập"
|
||||
},
|
||||
"column.authorization": {
|
||||
"defaultMessage": "Ủy quyền"
|
||||
},
|
||||
"column.authorizations": {
|
||||
"defaultMessage": "Danh sách ủy quyền"
|
||||
},
|
||||
"column.custom-locations": {
|
||||
"defaultMessage": "Quy tắc đường dẫn tùy chỉnh (Vị trí)"
|
||||
},
|
||||
"column.destination": {
|
||||
"defaultMessage": "Mục tiêu"
|
||||
},
|
||||
"column.details": {
|
||||
"defaultMessage": "Chi tiết"
|
||||
},
|
||||
"column.email": {
|
||||
"defaultMessage": "Email"
|
||||
},
|
||||
"column.event": {
|
||||
"defaultMessage": "Sự kiện"
|
||||
},
|
||||
"column.expires": {
|
||||
"defaultMessage": "Hết hạn"
|
||||
},
|
||||
"column.http-code": {
|
||||
"defaultMessage": "HTTP Code"
|
||||
},
|
||||
"column.incoming-port": {
|
||||
"defaultMessage": "Cổng đến"
|
||||
},
|
||||
"column.name": {
|
||||
"defaultMessage": "Tên"
|
||||
},
|
||||
"column.protocol": {
|
||||
"defaultMessage": "Giao thức"
|
||||
},
|
||||
"column.provider": {
|
||||
"defaultMessage": "Nhà cung cấp"
|
||||
},
|
||||
"column.roles": {
|
||||
"defaultMessage": "Vai trò"
|
||||
},
|
||||
"column.rules": {
|
||||
"defaultMessage": "Quy tắc"
|
||||
},
|
||||
"column.satisfy": {
|
||||
"defaultMessage": "Thỏa mãn"
|
||||
},
|
||||
"column.satisfy-all": {
|
||||
"defaultMessage": "Tất cả"
|
||||
},
|
||||
"column.satisfy-any": {
|
||||
"defaultMessage": "Bất kì"
|
||||
},
|
||||
"column.scheme": {
|
||||
"defaultMessage": "Scheme"
|
||||
},
|
||||
"column.source": {
|
||||
"defaultMessage": "Nguồn"
|
||||
},
|
||||
"column.ssl": {
|
||||
"defaultMessage": "SSL"
|
||||
},
|
||||
"column.status": {
|
||||
"defaultMessage": "Trạng thái"
|
||||
},
|
||||
"created-on": {
|
||||
"defaultMessage": "Đã tạo: {date}"
|
||||
},
|
||||
"dashboard": {
|
||||
"defaultMessage": "Bảng điều khiển"
|
||||
},
|
||||
"dead-host": {
|
||||
"defaultMessage": "Máy chủ 404"
|
||||
},
|
||||
"dead-hosts": {
|
||||
"defaultMessage": "Máy chủ 404"
|
||||
},
|
||||
"dead-hosts.count": {
|
||||
"defaultMessage": "Số trang lỗi {count}"
|
||||
},
|
||||
"disabled": {
|
||||
"defaultMessage": "Đã tắt"
|
||||
},
|
||||
"domain-names": {
|
||||
"defaultMessage": "Danh sách tên miền"
|
||||
},
|
||||
"domain-names.max": {
|
||||
"defaultMessage": "Tối đa {count} tên miền"
|
||||
},
|
||||
"domain-names.placeholder": {
|
||||
"defaultMessage": "Nhập tên miền vào đây..."
|
||||
},
|
||||
"domain-names.wildcards-not-permitted": {
|
||||
"defaultMessage": "Ký tự đại diện không được phép cho loại này"
|
||||
},
|
||||
"domain-names.wildcards-not-supported": {
|
||||
"defaultMessage": "Ký tự đại diện không được hỗ trợ cho CA này"
|
||||
},
|
||||
"domains.force-ssl": {
|
||||
"defaultMessage": "Bắt buộc SSL"
|
||||
},
|
||||
"domains.hsts-enabled": {
|
||||
"defaultMessage": "Bật HSTS"
|
||||
},
|
||||
"domains.hsts-subdomains": {
|
||||
"defaultMessage": "Tên miền phụ HSTS"
|
||||
},
|
||||
"domains.http2-support": {
|
||||
"defaultMessage": "Hỗ trợ HTTP/2"
|
||||
},
|
||||
"domains.use-dns": {
|
||||
"defaultMessage": "Dùng thử thách DNS"
|
||||
},
|
||||
"email-address": {
|
||||
"defaultMessage": "Địa chỉ email"
|
||||
},
|
||||
"empty-search": {
|
||||
"defaultMessage": "Không có kết quả nào"
|
||||
},
|
||||
"empty-subtitle": {
|
||||
"defaultMessage": "Tại sao bạn không tạo một cái luôn?"
|
||||
},
|
||||
"enabled": {
|
||||
"defaultMessage": "Đã bật"
|
||||
},
|
||||
"error.access.at-least-one": {
|
||||
"defaultMessage": "Yêu cầu ít nhất một quy tắc ủy quyền hoặc truy cập"
|
||||
},
|
||||
"error.access.duplicate-usernames": {
|
||||
"defaultMessage": "Tên người dùng được ủy quyền phải là duy nhất"
|
||||
},
|
||||
"error.invalid-auth": {
|
||||
"defaultMessage": "Email hoặc Mật khẩu không hợp lệ"
|
||||
},
|
||||
"error.invalid-domain": {
|
||||
"defaultMessage": "Tên miền không hợp lệ: {domain}"
|
||||
},
|
||||
"error.invalid-email": {
|
||||
"defaultMessage": "Địa chỉ email không hợp lệ"
|
||||
},
|
||||
"error.max-character-length": {
|
||||
"defaultMessage": "Độ dài tối đa là {max} ký tự"
|
||||
},
|
||||
"error.max-domains": {
|
||||
"defaultMessage": "Quá nhiều tên miền, tối đa là {max}"
|
||||
},
|
||||
"error.maximum": {
|
||||
"defaultMessage": "Tối đa là {max}"
|
||||
},
|
||||
"error.min-character-length": {
|
||||
"defaultMessage": "Độ dài tối thiểu là {min} ký tự"
|
||||
},
|
||||
"error.minimum": {
|
||||
"defaultMessage": "Tối thiểu là {min}"
|
||||
},
|
||||
"error.passwords-must-match": {
|
||||
"defaultMessage": "Mật khẩu phải khớp"
|
||||
},
|
||||
"error.required": {
|
||||
"defaultMessage": "Điều này là bắt buộc"
|
||||
},
|
||||
"expires.on": {
|
||||
"defaultMessage": "Hết hạn: {date}"
|
||||
},
|
||||
"footer.github-fork": {
|
||||
"defaultMessage": "Fork dự án này trên Github"
|
||||
},
|
||||
"host.flags.block-exploits": {
|
||||
"defaultMessage": "Chặn các hoạt động khai thác phổ biến"
|
||||
},
|
||||
"host.flags.cache-assets": {
|
||||
"defaultMessage": "Cache tài nguyên"
|
||||
},
|
||||
"host.flags.preserve-path": {
|
||||
"defaultMessage": "Bảo toàn đường dẫn"
|
||||
},
|
||||
"host.flags.protocols": {
|
||||
"defaultMessage": "Giao thức"
|
||||
},
|
||||
"host.flags.websockets-upgrade": {
|
||||
"defaultMessage": "Hỗ trợ Websockets"
|
||||
},
|
||||
"host.forward-port": {
|
||||
"defaultMessage": "Chuyển tiếp cổng"
|
||||
},
|
||||
"host.forward-scheme": {
|
||||
"defaultMessage": "Scheme"
|
||||
},
|
||||
"hosts": {
|
||||
"defaultMessage": "Máy chủ"
|
||||
},
|
||||
"http-only": {
|
||||
"defaultMessage": "HTTP Only"
|
||||
},
|
||||
"lets-encrypt": {
|
||||
"defaultMessage": "Let's Encrypt"
|
||||
},
|
||||
"lets-encrypt-via-dns": {
|
||||
"defaultMessage": "Let's Encrypt qua DNS"
|
||||
},
|
||||
"lets-encrypt-via-http": {
|
||||
"defaultMessage": "Let's Encrypt qua HTTP"
|
||||
},
|
||||
"loading": {
|
||||
"defaultMessage": "Đang tải..."
|
||||
},
|
||||
"login.title": {
|
||||
"defaultMessage": "Đăng nhập vào tài khoản của bạn"
|
||||
},
|
||||
"nginx-config.label": {
|
||||
"defaultMessage": "Cấu hình Nginx tùy chỉnh"
|
||||
},
|
||||
"nginx-config.placeholder": {
|
||||
"defaultMessage": "# Nhập cấu hình Nginx tùy chỉnh của bạn vào đây và bạn phải tự chịu rủi ro!"
|
||||
},
|
||||
"no-permission-error": {
|
||||
"defaultMessage": "Bạn không có quyền truy cập trang này."
|
||||
},
|
||||
"notfound.action": {
|
||||
"defaultMessage": "Về trang chủ"
|
||||
},
|
||||
"notfound.content": {
|
||||
"defaultMessage": "Chúng tôi xin lỗi nhưng trang bạn đang tìm kiếm không được tìm thấy"
|
||||
},
|
||||
"notfound.title": {
|
||||
"defaultMessage": "Rất tiếc… Bạn vừa tìm thấy một trang lỗi"
|
||||
},
|
||||
"notification.error": {
|
||||
"defaultMessage": "Lỗi"
|
||||
},
|
||||
"notification.object-deleted": {
|
||||
"defaultMessage": "{object} đã được xóa"
|
||||
},
|
||||
"notification.object-disabled": {
|
||||
"defaultMessage": "{object} đã được tắt"
|
||||
},
|
||||
"notification.object-enabled": {
|
||||
"defaultMessage": "{object} đã được bật"
|
||||
},
|
||||
"notification.object-renewed": {
|
||||
"defaultMessage": "{object} đã được làm mới"
|
||||
},
|
||||
"notification.object-saved": {
|
||||
"defaultMessage": "{object} đã được lưu"
|
||||
},
|
||||
"notification.success": {
|
||||
"defaultMessage": "Thành công"
|
||||
},
|
||||
"object.actions-title": {
|
||||
"defaultMessage": "{object} #{id}"
|
||||
},
|
||||
"object.add": {
|
||||
"defaultMessage": "Thêm {object}"
|
||||
},
|
||||
"object.delete": {
|
||||
"defaultMessage": "Xóa {object}"
|
||||
},
|
||||
"object.delete.content": {
|
||||
"defaultMessage": "Bạn có chắc muốn xóa {object} không?"
|
||||
},
|
||||
"object.edit": {
|
||||
"defaultMessage": "Chỉnh sửa {object}"
|
||||
},
|
||||
"object.empty": {
|
||||
"defaultMessage": "Không có {objects}"
|
||||
},
|
||||
"object.event.created": {
|
||||
"defaultMessage": "Đã tạo {object}"
|
||||
},
|
||||
"object.event.deleted": {
|
||||
"defaultMessage": "Đã xóa {object}"
|
||||
},
|
||||
"object.event.disabled": {
|
||||
"defaultMessage": "Đã tắt {object}"
|
||||
},
|
||||
"object.event.enabled": {
|
||||
"defaultMessage": "Đã bật {object}"
|
||||
},
|
||||
"object.event.renewed": {
|
||||
"defaultMessage": "Đã gia hạn {object}"
|
||||
},
|
||||
"object.event.updated": {
|
||||
"defaultMessage": "Đã cập nhật {object}"
|
||||
},
|
||||
"offline": {
|
||||
"defaultMessage": "Ngoại tuyến"
|
||||
},
|
||||
"online": {
|
||||
"defaultMessage": "Trực tuyến"
|
||||
},
|
||||
"options": {
|
||||
"defaultMessage": "Tùy chọn"
|
||||
},
|
||||
"password": {
|
||||
"defaultMessage": "Mật khẩu"
|
||||
},
|
||||
"password.generate": {
|
||||
"defaultMessage": "Tạo mật khẩu ngẫu nhiên"
|
||||
},
|
||||
"password.hide": {
|
||||
"defaultMessage": "Ẩn Mật khẩu"
|
||||
},
|
||||
"password.show": {
|
||||
"defaultMessage": "Hiện Mật khẩu"
|
||||
},
|
||||
"permissions.hidden": {
|
||||
"defaultMessage": "Ẩn"
|
||||
},
|
||||
"permissions.manage": {
|
||||
"defaultMessage": "Quản lý"
|
||||
},
|
||||
"permissions.view": {
|
||||
"defaultMessage": "Chỉ xem"
|
||||
},
|
||||
"permissions.visibility.all": {
|
||||
"defaultMessage": "Tất cả các mục"
|
||||
},
|
||||
"permissions.visibility.title": {
|
||||
"defaultMessage": "Khả năng hiển thị mục"
|
||||
},
|
||||
"permissions.visibility.user": {
|
||||
"defaultMessage": "Chỉ các mục đã tạo"
|
||||
},
|
||||
"proxy-host": {
|
||||
"defaultMessage": "Máy chủ proxy"
|
||||
},
|
||||
"proxy-host.forward-host": {
|
||||
"defaultMessage": "Chuyển tiếp Hostname / IP"
|
||||
},
|
||||
"proxy-hosts": {
|
||||
"defaultMessage": "Máy chủ proxy"
|
||||
},
|
||||
"proxy-hosts.count": {
|
||||
"defaultMessage": "{count} máy chủ proxy"
|
||||
},
|
||||
"public": {
|
||||
"defaultMessage": "Công khai"
|
||||
},
|
||||
"redirection-host": {
|
||||
"defaultMessage": "Redirection Host"
|
||||
},
|
||||
"redirection-host.forward-domain": {
|
||||
"defaultMessage": "Chuyển tiếp Tên miền"
|
||||
},
|
||||
"redirection-host.forward-http-code": {
|
||||
"defaultMessage": "HTTP Code"
|
||||
},
|
||||
"redirection-hosts": {
|
||||
"defaultMessage": "Redirection Hosts"
|
||||
},
|
||||
"redirection-hosts.count": {
|
||||
"defaultMessage": "{count} máy chủ chuyển hướng"
|
||||
},
|
||||
"role.admin": {
|
||||
"defaultMessage": "Quản trị viên"
|
||||
},
|
||||
"role.standard-user": {
|
||||
"defaultMessage": "Người dùng bình thường"
|
||||
},
|
||||
"save": {
|
||||
"defaultMessage": "Lưu"
|
||||
},
|
||||
"setting": {
|
||||
"defaultMessage": "Cài đặt"
|
||||
},
|
||||
"settings": {
|
||||
"defaultMessage": "Cài đặt"
|
||||
},
|
||||
"settings.default-site": {
|
||||
"defaultMessage": "Trang web mặc định"
|
||||
},
|
||||
"settings.default-site.404": {
|
||||
"defaultMessage": "Trang 404"
|
||||
},
|
||||
"settings.default-site.444": {
|
||||
"defaultMessage": "Không có phản hồi (444)"
|
||||
},
|
||||
"settings.default-site.congratulations": {
|
||||
"defaultMessage": "Trang chào mừng"
|
||||
},
|
||||
"settings.default-site.description": {
|
||||
"defaultMessage": "Hiển thị gì khi Nginx gặp phải Máy chủ không xác định"
|
||||
},
|
||||
"settings.default-site.html": {
|
||||
"defaultMessage": "HTML tùy chỉnh"
|
||||
},
|
||||
"settings.default-site.html.placeholder": {
|
||||
"defaultMessage": "<!-- Nhập nội dung HTML tùy chỉnh tại đây -->"
|
||||
},
|
||||
"settings.default-site.redirect": {
|
||||
"defaultMessage": "Chuyển hướng"
|
||||
},
|
||||
"setup.preamble": {
|
||||
"defaultMessage": "Bắt đầu bằng cách tạo tài khoản quản trị viên."
|
||||
},
|
||||
"setup.title": {
|
||||
"defaultMessage": "Chào mừng!"
|
||||
},
|
||||
"sign-in": {
|
||||
"defaultMessage": "Đăng nhập"
|
||||
},
|
||||
"ssl-certificate": {
|
||||
"defaultMessage": "Chứng chỉ SSL"
|
||||
},
|
||||
"stream": {
|
||||
"defaultMessage": "Stream"
|
||||
},
|
||||
"stream.forward-host": {
|
||||
"defaultMessage": "Chuyển tiếp Host"
|
||||
},
|
||||
"stream.incoming-port": {
|
||||
"defaultMessage": "Cổng vào"
|
||||
},
|
||||
"streams": {
|
||||
"defaultMessage": "Danh sách các Stream"
|
||||
},
|
||||
"streams.count": {
|
||||
"defaultMessage": "Số Stream {count}"
|
||||
},
|
||||
"streams.tcp": {
|
||||
"defaultMessage": "TCP"
|
||||
},
|
||||
"streams.udp": {
|
||||
"defaultMessage": "UDP"
|
||||
},
|
||||
"test": {
|
||||
"defaultMessage": "Kiểm tra"
|
||||
},
|
||||
"update-available": {
|
||||
"defaultMessage": "Cập nhật khả dụng: {latestVersion}"
|
||||
},
|
||||
"user": {
|
||||
"defaultMessage": "Người dùng"
|
||||
},
|
||||
"user.change-password": {
|
||||
"defaultMessage": "Đổi Mật khẩu"
|
||||
},
|
||||
"user.confirm-password": {
|
||||
"defaultMessage": "Xác nhận Mật khẩu"
|
||||
},
|
||||
"user.current-password": {
|
||||
"defaultMessage": "Mật khẩu hiện tại"
|
||||
},
|
||||
"user.edit-profile": {
|
||||
"defaultMessage": "Chỉnh sửa hồ sơ"
|
||||
},
|
||||
"user.full-name": {
|
||||
"defaultMessage": "Tên"
|
||||
},
|
||||
"user.login-as": {
|
||||
"defaultMessage": "Đăng nhập bằng {name}"
|
||||
},
|
||||
"user.logout": {
|
||||
"defaultMessage": "Đăng xuất"
|
||||
},
|
||||
"user.new-password": {
|
||||
"defaultMessage": "Mật khẩu mới"
|
||||
},
|
||||
"user.nickname": {
|
||||
"defaultMessage": "Tên hiển thị"
|
||||
},
|
||||
"user.set-password": {
|
||||
"defaultMessage": "Đặt Mật khẩu"
|
||||
},
|
||||
"user.set-permissions": {
|
||||
"defaultMessage": "Đặt quyền cho {name}"
|
||||
},
|
||||
"user.switch-dark": {
|
||||
"defaultMessage": "Chuyển sang chế độ tối"
|
||||
},
|
||||
"user.switch-light": {
|
||||
"defaultMessage": "Chuyển sang chế độ sáng"
|
||||
},
|
||||
"username": {
|
||||
"defaultMessage": "Tên người dùng"
|
||||
},
|
||||
"users": {
|
||||
"defaultMessage": "Danh sách người dùng"
|
||||
}
|
||||
}
|
||||
@@ -330,7 +330,7 @@
|
||||
"defaultMessage": "过期时间: {date}"
|
||||
},
|
||||
"footer.github-fork": {
|
||||
"defaultMessage": "在 Github 上复刻 (For) 本项目"
|
||||
"defaultMessage": "在 Github 上复刻 (Fork) 本项目"
|
||||
},
|
||||
"host.flags.block-exploits": {
|
||||
"defaultMessage": "阻止常见攻击"
|
||||
|
||||
@@ -162,7 +162,7 @@ const RedirectionHostModal = EasyModal.create(({ id, visible, remove }: Props) =
|
||||
required
|
||||
{...field}
|
||||
>
|
||||
<option value="auto">Auto</option>
|
||||
<option value="auto"><T id="auto" /></option>
|
||||
<option value="http">http</option>
|
||||
<option value="https">https</option>
|
||||
</select>
|
||||
@@ -224,12 +224,12 @@ const RedirectionHostModal = EasyModal.create(({ id, visible, remove }: Props) =
|
||||
required
|
||||
{...field}
|
||||
>
|
||||
<option value="300">300 Multiple choices</option>
|
||||
<option value="301">301 Moved permanently</option>
|
||||
<option value="302">302 Moved temporarily</option>
|
||||
<option value="303">303 See other</option>
|
||||
<option value="307">307 Temporary redirect</option>
|
||||
<option value="308">308 Permanent redirect</option>
|
||||
<option value="300"><T id="redirection-hosts.http-code.300" /></option>
|
||||
<option value="301"><T id="redirection-hosts.http-code.301" /></option>
|
||||
<option value="302"><T id="redirection-hosts.http-code.302" /></option>
|
||||
<option value="303"><T id="redirection-hosts.http-code.303" /></option>
|
||||
<option value="307"><T id="redirection-hosts.http-code.307" /></option>
|
||||
<option value="308"><T id="redirection-hosts.http-code.308" /></option>
|
||||
</select>
|
||||
{form.errors.forwardHttpCode ? (
|
||||
<div className="invalid-feedback">
|
||||
|
||||
@@ -5,7 +5,7 @@ import { Alert } from "react-bootstrap";
|
||||
import Modal from "react-bootstrap/Modal";
|
||||
import { Button, Loading, SSLCertificateField, SSLOptionsFields } from "src/components";
|
||||
import { useSetStream, useStream } from "src/hooks";
|
||||
import { T } from "src/locale";
|
||||
import { intl, T } from "src/locale";
|
||||
import { validateNumber, validateString } from "src/modules/Validations";
|
||||
import { showObjectSuccess } from "src/notifications";
|
||||
|
||||
@@ -154,7 +154,7 @@ const StreamModal = EasyModal.create(({ id, visible, remove }: Props) => {
|
||||
type="text"
|
||||
className={`form-control ${form.errors.forwardingHost && form.touched.forwardingHost ? "is-invalid" : ""}`}
|
||||
required
|
||||
placeholder="example.com or 10.0.0.1 or 2001:db8:3333:4444:5555:6666:7777:8888"
|
||||
placeholder={intl.formatMessage({ id: "stream.forward-host.placeholder" })}
|
||||
{...field}
|
||||
/>
|
||||
{form.errors.forwardingHost ? (
|
||||
|
||||
@@ -1,10 +1,3 @@
|
||||
.logo {
|
||||
width: 200px;
|
||||
}
|
||||
|
||||
.helperBtns {
|
||||
position: absolute;
|
||||
top: 10px;
|
||||
right: 10px;
|
||||
z-index: 1000;
|
||||
}
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
import cn from "classnames";
|
||||
import { Field, Form, Formik } from "formik";
|
||||
import { useEffect, useRef, useState } from "react";
|
||||
import Alert from "react-bootstrap/Alert";
|
||||
@@ -43,17 +42,17 @@ export default function Login() {
|
||||
|
||||
return (
|
||||
<Page className="page page-center">
|
||||
<div className={cn("d-none", "d-md-flex", styles.helperBtns)}>
|
||||
<LocalePicker />
|
||||
<ThemeSwitcher />
|
||||
</div>
|
||||
<div className="container container-tight py-4">
|
||||
<div className="text-center mb-4">
|
||||
<div className="d-flex justify-content-between align-items-center mb-4 ps-4 pe-3">
|
||||
<img
|
||||
className={styles.logo}
|
||||
src="/images/logo-text-horizontal-grey.png"
|
||||
alt="Nginx Proxy Manager"
|
||||
/>
|
||||
<div className="d-flex align-items-center gap-1">
|
||||
<LocalePicker />
|
||||
<ThemeSwitcher />
|
||||
</div>
|
||||
</div>
|
||||
<div className="card card-md">
|
||||
<div className="card-body">
|
||||
@@ -103,7 +102,7 @@ export default function Login() {
|
||||
required
|
||||
maxLength={255}
|
||||
className={`form-control ${form.errors.password && form.touched.password ? " is-invalid" : ""}`}
|
||||
placeholder="Password"
|
||||
placeholder={intl.formatMessage({ id: "password" })}
|
||||
/>
|
||||
<div className="invalid-feedback">{form.errors.password}</div>
|
||||
</label>
|
||||
|
||||
@@ -1,21 +1,7 @@
|
||||
/// <reference types="cypress" />
|
||||
|
||||
const SWAGGER_SCHEMA_FILENAME = 'results/swagger-schema.json';
|
||||
|
||||
describe('Swagger Schema Linting', () => {
|
||||
it('Should be a completely valid schema', () => {
|
||||
// Save the schema to a file and lint it
|
||||
cy.request('/api/schema')
|
||||
.then((response) => {
|
||||
const fileContent = response.body;
|
||||
cy.writeFile(SWAGGER_SCHEMA_FILENAME, fileContent);
|
||||
})
|
||||
.then(() => {
|
||||
cy.exec(`yarn swagger-lint '${SWAGGER_SCHEMA_FILENAME}'`)
|
||||
.then((result) => {
|
||||
cy.log("Swagger Vacuum Results:\n", result.stdout);
|
||||
expect(result.code).to.eq(0);
|
||||
});
|
||||
});
|
||||
cy.validateSwaggerFile('/api/schema', 'results/swagger-schema.json');
|
||||
});
|
||||
});
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
const { SwaggerValidation } = require('@jc21/cypress-swagger-validation');
|
||||
const chalk = require('chalk');
|
||||
|
||||
module.exports = (on, config) => {
|
||||
// Replace swaggerBase config var wildcard
|
||||
@@ -11,7 +12,7 @@ module.exports = (on, config) => {
|
||||
on('task', require('./backendApi/task')(config));
|
||||
on('task', {
|
||||
log(message) {
|
||||
console.log(message);
|
||||
console.log(`${chalk.cyan.bold('[')}${chalk.blue.bold('LOG')}${chalk.cyan.bold(']')} ${chalk.red.bold(message)}`);
|
||||
return null;
|
||||
}
|
||||
});
|
||||
|
||||
@@ -22,7 +22,25 @@ Cypress.Commands.add('randomString', (length) => {
|
||||
});
|
||||
|
||||
/**
|
||||
* Check the swagger schema:
|
||||
* Check the swagger schema file:
|
||||
*
|
||||
* @param {string} url
|
||||
* @param {string} savePath
|
||||
*/
|
||||
Cypress.Commands.add("validateSwaggerFile", (url, savePath) => {
|
||||
cy.task('log', `validateSwaggerFile: ${url} -- ${savePath}`)
|
||||
.then(() => {
|
||||
return cy
|
||||
.request(url)
|
||||
.then((response) => cy.writeFile(savePath, response.body, { log: false }))
|
||||
.then(() => cy.exec(`yarn swagger-lint '${savePath}'`, { failOnNonZeroExit: false }))
|
||||
.then((result) => cy.task('log', `Swagger Vacuum Results:\n${result.stdout || ''}`)
|
||||
.then(() => expect(result.code).to.eq(0)));
|
||||
});
|
||||
});
|
||||
|
||||
/**
|
||||
* Check the swagger schema for a specific endpoint:
|
||||
*
|
||||
* @param {string} method API Method in swagger doc, "get", "put", "post", "delete"
|
||||
* @param {integer} code Swagger doc endpoint response code, exactly as defined in swagger doc
|
||||
|
||||
@@ -7,6 +7,7 @@
|
||||
"@jc21/cypress-swagger-validation": "^0.3.2",
|
||||
"@quobix/vacuum": "^0.19.4",
|
||||
"axios": "^1.13.1",
|
||||
"chalk": "^4.1.0",
|
||||
"cypress": "^14.0.1",
|
||||
"cypress-multi-reporters": "^2.0.5",
|
||||
"cypress-wait-until": "^3.0.2",
|
||||
@@ -23,7 +24,7 @@
|
||||
"cypress": "HTTP_PROXY=127.0.0.1:8128 HTTPS_PROXY=127.0.0.1:8128 cypress open --config-file=cypress/config/ci.js",
|
||||
"cypress:headless": "HTTP_PROXY=127.0.0.1:8128 HTTPS_PROXY=127.0.0.1:8128 cypress run --config-file=cypress/config/ci.js",
|
||||
"cypress:dev": "cypress run --config-file=cypress/config/dev.js",
|
||||
"swagger-lint": "vacuum lint -b -q -d -a -n=warn"
|
||||
"swagger-lint": "vacuum lint -b -q -d -a --no-clip -n=warn"
|
||||
},
|
||||
"author": "",
|
||||
"license": "ISC"
|
||||
|
||||
@@ -247,11 +247,6 @@
|
||||
resolved "https://registry.yarnpkg.com/@types/sizzle/-/sizzle-2.3.2.tgz#a811b8c18e2babab7d542b3365887ae2e4d9de47"
|
||||
integrity sha512-7EJYyKTL7tFR8+gDbB6Wwz/arpGa0Mywk1TJbNzKzHtzbwVmY4HR9WqS5VV7dsBUKQmPNr192jHr/VpBluj/hg==
|
||||
|
||||
"@types/tmp@^0.2.3":
|
||||
version "0.2.6"
|
||||
resolved "https://registry.yarnpkg.com/@types/tmp/-/tmp-0.2.6.tgz#d785ee90c52d7cc020e249c948c36f7b32d1e217"
|
||||
integrity sha512-chhaNf2oKHlRkDGt+tiKE2Z5aJ6qalm7Z9rlLdBwmOiAAf09YQvvoLXjWK4HWPF1xU/fqvMgfNfpVoBscA/tKA==
|
||||
|
||||
"@types/yauzl@^2.9.1":
|
||||
version "2.10.0"
|
||||
resolved "https://registry.yarnpkg.com/@types/yauzl/-/yauzl-2.10.0.tgz#b3248295276cf8c6f153ebe6a9aba0c988cb2599"
|
||||
@@ -405,6 +400,11 @@ astral-regex@^2.0.0:
|
||||
resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-2.0.0.tgz#483143c567aeed4785759c0865786dc77d7d2e31"
|
||||
integrity sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==
|
||||
|
||||
async@^3.2.0:
|
||||
version "3.2.6"
|
||||
resolved "https://registry.yarnpkg.com/async/-/async-3.2.6.tgz#1b0728e14929d51b85b449b7f06e27c1145e38ce"
|
||||
integrity sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA==
|
||||
|
||||
asynckit@^0.4.0:
|
||||
version "0.4.0"
|
||||
resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79"
|
||||
@@ -557,6 +557,11 @@ charenc@0.0.2:
|
||||
resolved "https://registry.yarnpkg.com/charenc/-/charenc-0.0.2.tgz#c0a1d2f3a7092e03774bfa83f14c0fc5790a8667"
|
||||
integrity sha512-yrLQ/yVUFXkzg7EDQsPieE/53+0RlaWTs+wBrvW36cyilJ2SaDWfl4Yj7MtLTXleV9uEKefbAGUPv2/iWSooRA==
|
||||
|
||||
check-more-types@^2.24.0:
|
||||
version "2.24.0"
|
||||
resolved "https://registry.yarnpkg.com/check-more-types/-/check-more-types-2.24.0.tgz#1420ffb10fd444dcfc79b43891bbfffd32a84600"
|
||||
integrity sha512-Pj779qHxV2tuapviy1bSZNEL1maXr13bPYpsvSDB68HlYcYuhlDrmGd63i0JHMCLKzc7rUSNIrpdJlhVlNwrxA==
|
||||
|
||||
chokidar@^4.0.1:
|
||||
version "4.0.3"
|
||||
resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-4.0.3.tgz#7be37a4c03c9aee1ecfe862a4a23b2c70c205d30"
|
||||
@@ -689,22 +694,22 @@ cypress-wait-until@^3.0.2:
|
||||
resolved "https://registry.yarnpkg.com/cypress-wait-until/-/cypress-wait-until-3.0.2.tgz#c90dddfa4c46a2c422f5b91d486531c560bae46e"
|
||||
integrity sha512-iemies796dD5CgjG5kV0MnpEmKSH+s7O83ZoJLVzuVbZmm4lheMsZqAVT73hlMx4QlkwhxbyUzhOBUOZwoOe0w==
|
||||
|
||||
cypress@^15.5.0:
|
||||
version "15.5.0"
|
||||
resolved "https://registry.yarnpkg.com/cypress/-/cypress-15.5.0.tgz#039c8549f623957a14e57adee46dbfabaabac741"
|
||||
integrity sha512-7jXBsh5hTfjxr9QQONC2IbdTj0nxSyU8x4eiarMZBzXzCj3pedKviUx8JnLcE4vL8e0TsOzp70WSLRORjEssRA==
|
||||
cypress@^14.0.1:
|
||||
version "14.5.4"
|
||||
resolved "https://registry.yarnpkg.com/cypress/-/cypress-14.5.4.tgz#d821fbb6220c3328e7413acc7724b75319c9e64d"
|
||||
integrity sha512-0Dhm4qc9VatOcI1GiFGVt8osgpPdqJLHzRwcAB5MSD/CAAts3oybvPUPawHyvJZUd8osADqZe/xzMsZ8sDTjXw==
|
||||
dependencies:
|
||||
"@cypress/request" "^3.0.9"
|
||||
"@cypress/xvfb" "^1.2.4"
|
||||
"@types/sinonjs__fake-timers" "8.1.1"
|
||||
"@types/sizzle" "^2.3.2"
|
||||
"@types/tmp" "^0.2.3"
|
||||
arch "^2.2.0"
|
||||
blob-util "^2.0.2"
|
||||
bluebird "^3.7.2"
|
||||
buffer "^5.7.1"
|
||||
cachedir "^2.3.0"
|
||||
chalk "^4.1.0"
|
||||
check-more-types "^2.24.0"
|
||||
ci-info "^4.1.0"
|
||||
cli-cursor "^3.1.0"
|
||||
cli-table3 "0.6.1"
|
||||
@@ -719,8 +724,10 @@ cypress@^15.5.0:
|
||||
extract-zip "2.0.1"
|
||||
figures "^3.2.0"
|
||||
fs-extra "^9.1.0"
|
||||
getos "^3.2.1"
|
||||
hasha "5.2.2"
|
||||
is-installed-globally "~0.4.0"
|
||||
lazy-ass "^1.6.0"
|
||||
listr2 "^3.8.3"
|
||||
lodash "^4.17.21"
|
||||
log-symbols "^4.0.0"
|
||||
@@ -732,8 +739,7 @@ cypress@^15.5.0:
|
||||
request-progress "^3.0.0"
|
||||
semver "^7.7.1"
|
||||
supports-color "^8.1.1"
|
||||
systeminformation "5.27.7"
|
||||
tmp "~0.2.4"
|
||||
tmp "~0.2.3"
|
||||
tree-kill "1.2.2"
|
||||
untildify "^4.0.0"
|
||||
yauzl "^2.10.0"
|
||||
@@ -1279,6 +1285,13 @@ get-stream@^5.0.0, get-stream@^5.1.0:
|
||||
dependencies:
|
||||
pump "^3.0.0"
|
||||
|
||||
getos@^3.2.1:
|
||||
version "3.2.1"
|
||||
resolved "https://registry.yarnpkg.com/getos/-/getos-3.2.1.tgz#0134d1f4e00eb46144c5a9c0ac4dc087cbb27dc5"
|
||||
integrity sha512-U56CfOK17OKgTVqozZjUKNdkfEv6jk5WISBJ8SHoagjE6L69zOwl3Z+O8myjY9MEW3i2HPWQBt/LTbCgcC973Q==
|
||||
dependencies:
|
||||
async "^3.2.0"
|
||||
|
||||
getpass@^0.1.1:
|
||||
version "0.1.7"
|
||||
resolved "https://registry.yarnpkg.com/getpass/-/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa"
|
||||
@@ -1582,6 +1595,11 @@ keyv@^4.5.4:
|
||||
dependencies:
|
||||
json-buffer "3.0.1"
|
||||
|
||||
lazy-ass@^1.6.0:
|
||||
version "1.6.0"
|
||||
resolved "https://registry.yarnpkg.com/lazy-ass/-/lazy-ass-1.6.0.tgz#7999655e8646c17f089fdd187d150d3324d54513"
|
||||
integrity sha512-cc8oEVoctTvsFZ/Oje/kGnHbpWHYBe8IAJe4C0QNc3t8uM/0Y8+erSz/7Y1ALuXTEZTMvxXwO6YbX1ey3ujiZw==
|
||||
|
||||
levn@^0.4.1:
|
||||
version "0.4.1"
|
||||
resolved "https://registry.yarnpkg.com/levn/-/levn-0.4.1.tgz#ae4562c007473b932a6200d403268dd2fffc6ade"
|
||||
@@ -2281,11 +2299,6 @@ supports-color@^8.1.1:
|
||||
dependencies:
|
||||
has-flag "^4.0.0"
|
||||
|
||||
systeminformation@5.27.7:
|
||||
version "5.27.7"
|
||||
resolved "https://registry.yarnpkg.com/systeminformation/-/systeminformation-5.27.7.tgz#4dc9d436419948cd5e5f076779a1298220d19a72"
|
||||
integrity sha512-saaqOoVEEFaux4v0K8Q7caiauRwjXC4XbD2eH60dxHXbpKxQ8kH9Rf7Jh+nryKpOUSEFxtCdBlSUx0/lO6rwRg==
|
||||
|
||||
tar@^6.1.11:
|
||||
version "6.2.1"
|
||||
resolved "https://registry.yarnpkg.com/tar/-/tar-6.2.1.tgz#717549c541bc3c2af15751bea94b1dd068d4b03a"
|
||||
@@ -2320,7 +2333,7 @@ tldts@^6.1.32:
|
||||
dependencies:
|
||||
tldts-core "^6.1.86"
|
||||
|
||||
tmp@~0.2.4:
|
||||
tmp@~0.2.3:
|
||||
version "0.2.5"
|
||||
resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.2.5.tgz#b06bcd23f0f3c8357b426891726d16015abfd8f8"
|
||||
integrity sha512-voyz6MApa1rQGUxT3E+BK7/ROe8itEx7vD8/HEvt4xwXucvQ5G5oeEiHkmHZJuBO21RpOf+YYm9MOivj709jow==
|
||||
|
||||
Reference in New Issue
Block a user