Compare commits

...

11 Commits

Author SHA1 Message Date
dependabot[bot]
f4081b34e0 Bump express from 4.21.2 to 4.22.0 in /backend
Bumps [express](https://github.com/expressjs/express) from 4.21.2 to 4.22.0.
- [Release notes](https://github.com/expressjs/express/releases)
- [Changelog](https://github.com/expressjs/express/blob/4.22.0/History.md)
- [Commits](https://github.com/expressjs/express/compare/4.21.2...4.22.0)

---
updated-dependencies:
- dependency-name: express
  dependency-version: 4.22.0
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-12-01 23:19:49 +00:00
Jamie Curnow
fec8b3b083 Show full swagger validation errors in tests
All checks were successful
Close stale issues and PRs / stale (push) Successful in 21s
2025-12-02 07:09:54 +10:00
jc21
d18c8cf4f1 Merge pull request #4979 from abinas-hdb/develop
All checks were successful
Close stale issues and PRs / stale (push) Successful in 23s
Add Korean Locale
2025-11-26 14:04:31 +10:00
abinas
bf4eab541a Update index.ts
Fix missing 'ko' in index.ts
2025-11-26 11:57:05 +09:00
jc21
ba43c144f6 Merge branch 'develop' into develop 2025-11-26 08:35:32 +10:00
abinas
e353a66556 Update IntlProvider.tsx 2025-11-22 00:33:27 +09:00
abinas
991bddf891 Add Korean translation 2025-11-22 00:18:36 +09:00
abinas
c076ad145c Add Korean translation 2025-11-22 00:18:19 +09:00
abinas
80cf4406d5 Update Korean language support 2025-11-22 00:15:08 +09:00
abinas
3cb124d5a0 Update Korean language support 2025-11-22 00:14:45 +09:00
abinas
03b0513a24 Add Korean translation 2025-11-22 00:12:33 +09:00
15 changed files with 887 additions and 90 deletions

View File

@@ -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",

View File

@@ -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==
@@ -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==

View File

@@ -18,6 +18,7 @@ const allLocales = [
["sk", "sk-SK"],
["vi", "vi-VN"],
["zh", "zh-CN"],
["ko", "ko-KR"],
["bg", "bg-BG"],
];

View File

@@ -11,6 +11,7 @@ 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 langKo from "./lang/ko.json";
import langBg from "./lang/bg.json";
// first item of each array should be the language code,
@@ -28,6 +29,7 @@ const localeOptions = [
["sk", "sk-SK", langSk],
["vi", "vi-VN", langVi],
["zh", "zh-CN", langZh],
["ko", "ko-KR", langKo],
["bg", "bg-BG", langBg],
];
@@ -50,6 +52,7 @@ const getFlagCodeForLocale = (locale?: string) => {
ja: "jp", // Japan
zh: "cn", // China
vi: "vn", // Vietnam
ko: "kr", // Korea
};
if (specialCases[thisLocale]) {

View File

@@ -8,9 +8,10 @@ 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, ru, it, vi, nl, bg };
const items: any = { en, de, ja, sk, zh, pl, ru, it, vi, nl, bg, ko };
const fallbackLang = "en";

View File

@@ -0,0 +1,11 @@
## 접근 정책이란?
접근 정책은 특정 클라이언트 IP 주소를 허용하거나 거부할 수 있으며,
프록시 호스트에 기본 HTTP 인증(Basic Auth) 을 적용할 수 있는 기능입니다.
하나의 접근 목록에 여러 클라이언트 규칙과 사용자 이름, 비밀번호를 추가한 뒤
이를 하나 이상의 프록시 호스트에 적용할 수 있습니다.
이 기능은 인증 기능이 없는 웹 서비스에 인증을 추가하거나,
알 수 없는 클라이언트로부터 서비스를 보호할 때 유용합니다.

View 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 인증서를 직접 업로드하여 사용할 수 있습니다.

View File

@@ -0,0 +1,10 @@
## 404 호스트란?
404 호스트는 404 오류 페이지를 표시하도록 구성된 호스트입니다.
이 기능은 도메인이 검색 엔진에 이미 색인되어 있을 때,
더 깔끔한 오류 페이지를 제공하거나 해당 페이지가 더 이상 존재하지 않음을
검색 엔진에게 명확하게 알려야 할 때 유용합니다.
또한 404 호스트를 사용하면 접근 로그를 확인하고, 어떤 경로(Referrer)를 통해 들어왔는지 추적할 수 있다는 장점도 있습니다.

View File

@@ -0,0 +1,8 @@
## 프록시 호스트란?
프록시 호스트는 외부에서 들어오는 웹 요청을 받아 지정한 전달 대상으로 전달하는 역할을 합니다.
원래 SSL을 지원하지 않는 대상이라도, 프록시 호스트를 통해 SSL(HTTPS) 연결을 적용할 수 있습니다.
프록시 호스트는 Nginx Proxy Manager에서 가장 일반적으로 사용되는 기능입니다.

View File

@@ -0,0 +1,7 @@
## 리다이렉션 호스트란?
리다이렉션 호스트는 외부에서 들어오는 도메인 요청을 다른 도메인으로 자동 이동(리다이렉트)시키는 역할을 합니다.
이 유형의 호스트는 주로 웹사이트의 도메인이 변경되었지만,
검색 엔진이나 다른 사이트에 이전 도메인 링크가 남아 있을 때 사용하면 가장 효과적입니다.

View File

@@ -0,0 +1,7 @@
## 호스트 스트림이란?
호스트 스트림은 비교적 최근에 Nginx에 추가된 기능으로,
TCP/UDP 트래픽을 네트워크 내의 다른 컴퓨터로 직접 전달하는 데 사용됩니다.
게임 서버나 FTP, SSH 서버 등을 운영할 때 유용하게 사용할 수 있습니다.

View 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";

View 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": "사용자"
}
}

View File

@@ -32,6 +32,9 @@
"locale-nl-NL": {
"defaultMessage": "Nederlands"
},
"locale-ko-KR": {
"defaultMessage": "한국어"
},
"locale-bg-BG": {
"defaultMessage": "Български"
}

View File

@@ -24,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"