home-hosted 0.8.2 → 0.8.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +34 -9
- package/dist/cli.js +456 -63
- package/dist/cli.js.map +1 -1
- package/docs/SERVERS.md +19 -1
- package/docs/UI_CREATION.md +6 -1
- package/docs/branding/logo.svg +33 -0
- package/docs/branding/social-preview.png +0 -0
- package/package.json +4 -1
- package/uis/stock/dist/assets/{de-DQxDtYp2.js → de-CiT_tMnf.js} +1 -1
- package/uis/stock/dist/assets/es-JJDGEbt0.js +1 -0
- package/uis/stock/dist/assets/{fr-DHCvxiys.js → fr-CYIAuJgb.js} +1 -1
- package/uis/stock/dist/assets/{index-C02FUAwz.js → index-BCPp9MUj.js} +4 -4
- package/uis/stock/dist/assets/{ja-DseIeS1D.js → ja-DmykOijW.js} +1 -1
- package/uis/stock/dist/assets/{ko-Dcu2b6c2.js → ko-C4EcOJB0.js} +1 -1
- package/uis/stock/dist/assets/{ru-DaAAVw09.js → ru-Dlbre_Q1.js} +1 -1
- package/uis/stock/dist/assets/{vi-D780h-t9.js → vi-DhBWYY9I.js} +1 -1
- package/uis/stock/dist/assets/{zh-CN-C8OC-N1b.js → zh-CN-BI0ZDO_Y.js} +1 -1
- package/uis/stock/dist/favicon.ico +0 -0
- package/uis/stock/dist/favicon.svg +14 -0
- package/uis/stock/dist/index.html +5 -1
- package/uis/stock/dist/ui.json +3 -3
- package/uis/stock/dist/assets/es-BP0qzCTU.js +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
var e={"activity.emptyTitle":`지난 24시간 동안 이벤트 없음`,"activity.emptyDescription":`시작, 종료, 충돌, 복구가 발생하는 대로 여기에 표시됩니다.`,"activity.ran":`{duration} 실행`,"addServer.title":`서버 추가`,"addServer.description":`{workspace}의 servers.config.json에 항목을 추가합니다. 생략한 정책은 모두 기본값에서 상속됩니다.`,"addServer.thisWorkspace":`이 워크스페이스`,"addServer.identity":`식별 정보`,"addServer.id":`Id`,"addServer.idHint":`소문자, 숫자, 대시, 밑줄. URL과 로그에 사용됩니다.`,"addServer.labelHint":`제어판에 표시됩니다. 기본값은 id입니다.`,"addServer.process":`프로세스`,"addServer.commandHint":`셸 없이 실행됩니다.`,"addServer.argumentsHint":`한 줄에 인수 하나. 줄 안의 공백은 유지됩니다.`,"addServer.portLifecycle":`포트와 수명 주기`,"addServer.bindHint":`lan은 네트워크에 노출합니다. 인증 뒤에서만 사용하세요.`,"addServer.advanced":`고급 설정`,"addServer.advancedHint":`환경 변수, 백업, 정책, 수명 주기, 부트스트랩`,"addServer.backups":`백업`,"addServer.backupIgnore":`알려진 생성 파일 무시`,"addServer.bootstrapDescription":`첫 시작 전에 실행되는 일회성 명령입니다.`,"addServer.bootstrapHint":`설치, 마이그레이션, 다운로드 — 매번이 아니라 첫 시작 전에.`,"addServer.policyResources":`정책과 리소스`,"addServer.logBufferHint":`비워 두면 기본값을 사용합니다.`,"addServer.inheritNote":`다시 시작, 상태, 중지는 {settings}와 같게 시작합니다. 여기서 변경하면 상속으로 남지 않고 이 항목에 기록됩니다.`,"addServer.serverDefaults":`설정 → 서버 기본값`,"addServer.placeholdersTitle":`사용 가능한 인수 자리표시자`,"addServer.submit":`servers.config.json에 추가`,"app.name":`home-hosted`,"app.tagline":`프로세스 감독 제어판`,"bind.local":`local — 127.0.0.1`,"bind.lan":`lan — 0.0.0.0`,"bind.explicit":`{bind} — 명시적`,"common.cancel":`취소`,"common.confirm":`확인`,"common.reset":`초기화`,"common.keepIt":`그대로 두기`,"common.remove":`제거`,"common.close":`닫기`,"common.save":`저장`,"common.saving":`저장 중…`,"common.discard":`변경 사항 버리기`,"common.delete":`삭제`,"common.edit":`편집`,"common.add":`추가`,"common.retry":`다시 시도`,"common.copy":`복사`,"common.copied":`복사됨`,"common.enabled":`사용`,"common.disabled":`사용 안 함`,"common.none":`없음`,"common.unknown":`알 수 없음`,"common.loading":`불러오는 중…`,"common.selectAll":`모두 선택`,"common.selectNone":`선택 해제`,"common.name":`이름`,"common.label":`레이블`,"common.hostname":`호스트 이름`,"common.port":`포트`,"common.command":`명령`,"common.environment":`환경 변수`,"common.memory":`메모리`,"common.cpu":`CPU`,"common.disk":`디스크`,"common.uptime":`가동 시간`,"common.status":`상태`,"common.actions":`작업`,"common.details":`세부 정보`,"common.overview":`개요`,"common.warning":`경고`,"common.error":`오류`,"common.confirmQuestion":`{label}?`,"common.unset":`설정 안 됨`,"common.never":`없음`,"common.now":`방금`,"common.dismiss":`닫기`,"connection.live":`실시간`,"connection.connecting":`연결 중`,"connection.reconnecting":`다시 연결 중`,"connection.liveUpdates":`실시간 업데이트`,"editor.title":`설정 편집`,"editor.description":`{file}에 재정의를 기록합니다. 건드리지 않은 항목은 계속 기본값을 상속합니다.`,"editor.inSync":`동기화됨`,"editor.process":`프로세스`,"editor.processDescription":`무엇을, 어디서, 어떤 환경으로 실행하는지.`,"editor.labelPlaceholder":`비워 두면 id 사용`,"editor.argumentsHint":`한 줄에 하나. {port} {host} {home} {projectDir} {dataRoot} {id} {label} {cwd} {bind} {lanIp}가 치환됩니다.`,"editor.portTitle":`포트와 바인딩`,"editor.portDescription":`포트를 어떻게 사전 확인하고 프로세스가 어디에서 접근 가능한지.`,"editor.bindHint":`설정이 이미 지정한 사용자 지정 IPv4는 계속 선택할 수 있습니다.`,"editor.lifecycle":`수명 주기`,"editor.lifecycleDescription":`감독자가 이 항목을 관리하는지 여부.`,"editor.save":`servers.config.json에 저장`,"editor.changesTitle":`저장하지 않은 변경`,"editor.changesDescription":`저장하면 servers.config.json에 기록될 내용.`,"editor.nothingToSave":`저장할 항목이 없습니다.`,"health.disabled":`확인 안 함`,"health.unknown":`검사 안 됨`,"health.healthy":`정상`,"health.unhealthy":`비정상`,"history.start":`시작됨`,"history.exit":`종료됨`,"history.crash":`충돌함`,"history.forcedRestart":`강제 재시작`,"history.unhealthy":`비정상`,"history.recovered":`복구됨`,"host.loadPerCpu":`부하 / cpu`,"host.cpuTemp":`CPU 온도`,"host.samplingOff":`호스트 샘플링이 꺼져 있습니다`,"host.samplingOffDescription":`부하, 메모리, 디스크, 온도를 수집하려면 설정에서 켜세요.`,"host.swap":`스왑`,"host.cpus":`CPU`,"host.loadAverage":`부하 1 / 5 / 15`,"host.memoryUsed":`메모리 사용량`,"host.sampled":`샘플링 시각`,"host.filesystems":`파일 시스템`,"host.thresholdsBreached":`임계값 초과`,"killPort.trigger":`포트 {port}를 점유한 대상 강제 종료`,"killPort.title":`포트 {port}의 프로세스를 강제 종료할까요?`,"killPort.body":`먼저 중지를 요청하고, 무시할 때만 강제 종료합니다. 이 제어판이 감독하는 대상은 거부되므로 관리 중인 서버가 이렇게 사라지지는 않습니다.`,"killPort.confirm":`강제 종료`,"language.label":`언어`,"language.select":`언어 선택`,"lifecycle.restartTitle":`재시작 정책`,"lifecycle.restartDescription":`충돌 후 시도 사이의 백오프.`,"lifecycle.restartOnCrash":`충돌 시 다시 시작`,"lifecycle.maxRetries":`최대 재시도`,"lifecycle.maxRetriesHint":`서버가 충돌 상태로 남기까지의 시도 횟수.`,"lifecycle.baseDelay":`기본 지연 (ms)`,"lifecycle.factor":`백오프 계수`,"lifecycle.maxDelay":`최대 지연 (ms)`,"lifecycle.resetAfter":`리셋까지 (ms)`,"lifecycle.resetAfterHint":`이만큼 실행하면 재시도 카운터가 초기화됩니다.`,"lifecycle.healthTitle":`상태 확인`,"lifecycle.healthDescription":`프로세스가 올라온 뒤 준비 상태를 어떻게 검사하는지.`,"lifecycle.probe":`이 서버 검사`,"lifecycle.probeType":`검사 유형`,"lifecycle.probePort":`TCP 포트 — 연결만`,"lifecycle.probeHttp":`HTTP 요청 — 응답 검증`,"lifecycle.interval":`간격 (ms)`,"lifecycle.timeout":`시간 제한 (ms)`,"lifecycle.unhealthyAfter":`비정상 판정 실패 횟수`,"lifecycle.unhealthyAfterHint":`연속 실패한 검사 횟수.`,"lifecycle.forceRestartAfter":`강제 재시작까지 (ms)`,"lifecycle.forceRestartAfterHint":`0이면 사용하지 않습니다.`,"lifecycle.startTimeout":`시작 시간 제한 (ms)`,"lifecycle.httpPath":`HTTP 경로`,"lifecycle.httpMethod":`HTTP 메서드`,"lifecycle.expectStatus":`기대 상태`,"lifecycle.expectStatusHint":`비워 두면 아래 값을 모두 허용합니다.`,"lifecycle.expectStatusBelow":`이 상태 미만이면 정상`,"lifecycle.expectBody":`본문에 포함할 문자열`,"lifecycle.expectBodyPlaceholder":`선택 사항인 부분 문자열`,"lifecycle.headBodyHint":`HEAD에는 응답 본문이 없어 이 검사는 무시됩니다 — GET을 사용하거나 비우세요.`,"lifecycle.stopTitle":`중지 동작`,"lifecycle.stopDescription":`프로세스 트리를 어떻게 종료시키는지.`,"lifecycle.signal":`시그널`,"lifecycle.signalTerm":`SIGTERM — 중지 요청`,"lifecycle.signalInt":`SIGINT — 인터럽트 (Ctrl-C)`,"lifecycle.signalKill":`SIGKILL — 즉시 강제 종료`,"lifecycle.grace":`유예 기간 (ms)`,"lifecycle.killGroup":`프로세스 그룹 전체 강제 종료`,"lifecycle.killPortHolders":`포트를 점유한 대상도 강제 종료`,"login.title":`계속하려면 로그인하세요`,"login.firstRunTitle":`이 제어판에는 아직 비밀번호가 없습니다`,"login.firstRunSubtitle":`이 컴퓨터의 어떤 것이든 접근할 수 있습니다. 로그인한 직후에 비밀번호를 설정하세요.`,"login.authOffTitle":`인증이 꺼져 있습니다`,"login.authOffSubtitle":`제어판은 루프백에서만 수신하며, 지금은 그것이 유일한 보호입니다.`,"login.subtitle":`제어판이 보호되고 있습니다. 계속하려면 비밀번호를 입력하세요.`,"login.password":`비밀번호`,"login.showPassword":`비밀번호 표시`,"login.hidePassword":`비밀번호 숨기기`,"login.signIn":`로그인`,"login.openDashboard":`대시보드 열기`,"login.exposed":`노출됨`,"login.defaultPasswordWarning":`아직 기본 비밀번호 {password}를 사용 중입니다. 설정에서 변경하세요 — 변경하기 전까지 127.0.0.1 밖으로의 바인딩은 거부됩니다.`,"login.noPasswordWarning":`비밀번호가 설정되지 않았습니다. 이 컴퓨터에서 설정을 열어 추가하거나 {command}를 실행하세요.`,"login.sessionNote":`세션은 마지막 방문 후 {days}일 동안 로그인 상태를 유지합니다 — 요청마다 기간이 연장됩니다. 로그아웃은 이 브라우저만 정리합니다.`,"login.servedFromThisMachine":`이 컴퓨터에서 제공됨`,"logs.emptyHint":`아직 출력이 없습니다.`,"logs.noMatches":`이 검색이나 스트림 필터와 일치하는 항목이 없습니다.`,"logs.searchPlaceholder":`이 출력 검색`,"logs.searchLabel":`로그 출력 검색`,"logs.clearSearch":`검색 지우기`,"logs.prevMatch":`이전 일치`,"logs.nextMatch":`다음 일치`,"logs.showTimestamps":`타임스탬프 표시`,"logs.hideTimestamps":`타임스탬프 숨기기`,"logs.timestampsShort":`ts`,"logs.pause":`일시 정지`,"logs.follow":`따라가기`,"logs.clearHint":`메모리 버퍼 비우기`,"logs.clearLabel":`로그 버퍼 비우기`,"logs.downloadHint":`저장된 파일 다운로드`,"logs.downloadLabel":`로그 파일 다운로드`,"logs.outputLabel":`로그 출력`,"logs.jumpToLatest":`최신으로 이동`,"logs.streaming":`스트리밍 중`,"logs.paused":`일시 정지됨`,"logs.snapshot":`스냅숏`,"logs.linesOf":`{total}줄 중 {count}줄`,"logs.matches":`{count}건 일치`,"logs.rowHeight":`행 높이 {height}px · 윈도 처리`,"logs.streamAll":`전체`,"logs.streamOut":`out`,"logs.streamErr":`err`,"logs.streamSys":`sys`,"metric.emptyHint":`수집 중…`,"nav.global":`전역`,"nav.workspace":`워크스페이스`,"nav.others":`기타`,"nav.overview":`개요`,"nav.servers":`서버`,"nav.logs":`로그`,"nav.workspaceSettings":`워크스페이스 설정`,"nav.globalOverview":`전역 개요`,"nav.globalSettings":`전역 설정`,"nav.reverseProxy":`리버스 프록시`,"nav.navigation":`탐색`,"nav.closeNavigation":`탐색 닫기`,"nav.hostVitals":`호스트 상태`,"notice.configError":`설정을 읽을 수 없습니다: {error}`,"notice.configErrorHint":`제어판은 기존 설정으로 계속 실행됩니다. {path}를 고치면 스스로 다시 불러옵니다.`,"notice.defaultPassword":`이 제어판은 아직 기본 비밀번호를 사용 중입니다.`,"notice.defaultPasswordHint":`전역 설정에서 변경하세요 — 변경하기 전까지 127.0.0.1 밖으로의 바인딩은 거부됩니다.`,"notice.noPassword":`인증은 켜져 있지만 비밀번호가 없어 아무것도 요구하지 않습니다.`,"notice.noPasswordHint":`전역 설정에서 비밀번호를 설정해 제어판을 실제로 잠그세요.`,"notice.exposed":`이 제어판은 127.0.0.1 밖에서 접근할 수 있습니다.`,"notice.exposedHint":`비밀번호를 강하게 유지하거나, TLS를 종료하는 프록시를 앞에 두세요.`,"notice.authOff":`인증이 사용 안 함입니다 — 제어판은 루프백 바인딩으로만 보호됩니다.`,"onPortConflict.block":`block — 시작 거부`,"onPortConflict.warn":`warn — 그래도 시작`,"onPortConflict.follow":`follow — 자신의 분리된 재시작을 인수`,"onPortConflict.reclaim":`reclaim — 감독되는 복사본으로 교체`,"onPortConflict.kill":`kill — 포트를 점유한 대상을 중지`,"palette.placeholder":`서버로 이동, 작업 실행, 설정 열기…`,"palette.openServer":`{label} 열기`,"palette.serverLogs":`{label}의 로그`,"palette.startServer":`{label} 시작`,"palette.stopServer":`{label} 중지`,"palette.restartServer":`{label} 다시 시작`,"palette.goOverview":`개요로 이동`,"palette.goGlobalOverview":`전역 개요로 이동`,"palette.goGlobalSettings":`전역 설정으로 이동`,"palette.goProxy":`리버스 프록시로 이동`,"palette.goServers":`서버로 이동`,"palette.goLogs":`로그로 이동`,"palette.goWorkspaceSettings":`워크스페이스 설정으로 이동`,"palette.startAll":`여기에서 사용 설정된 모든 서버 시작`,"palette.stopAll":`여기에서 모든 서버 중지`,"palette.switchWorkspace":`{label}(으)로 전환`,"palette.globalSetting":`전역 설정: {label}`,"palette.workspaceSetting":`워크스페이스 설정: {label}`,"palette.theme":`{theme} 테마`,"palette.groupServers":`서버`,"palette.groupActions":`작업`,"palette.groupNavigate":`이동`,"palette.groupWorkspaces":`워크스페이스`,"palette.groupAppearance":`모양`,"palette.navigate":`이동`,"palette.run":`실행`,"palette.noMatches":`“{query}”와 일치하는 항목이 없습니다.`,"proxy.account.automatic":`자동 (응답할 수 있는 유일한 계정)`,"proxy.account.noTxt":`TXT 미지원`,"proxy.account.noCredentials":`자격 증명 없음`,"proxy.account.gone":`해당 계정은 더 이상 설정되어 있지 않습니다.`,"proxy.account.emptyHint":`DNS-01은 여기에 챌린지 레코드를 기록합니다. 비워 두면 챌린지에 응답할 수 있는 계정이 하나뿐일 때 그것을 사용합니다.`,"proxy.account.cannotWrite":`{provider} 계정은 TXT 레코드를 기록할 수 없어 DNS-01 챌린지에 응답할 수 없습니다.`,"proxy.account.noCredentialsYet":`이 {provider} 계정에는 아직 저장된 자격 증명이 없습니다.`,"proxy.account.through":`챌린지는 이 {provider} 계정을 통해 기록됩니다.`,"proxy.certificate.title":`업로드된 인증서`,"proxy.certificate.description":`“업로드된 인증서”로 설정된 경로가 제공합니다. 그 외 — 공인이든 로컬이든 — 는 엔진이 스스로 인증합니다.`,"proxy.certificate.add":`인증서 추가`,"proxy.certificate.emptyTitle":`업로드된 인증서 없음`,"proxy.certificate.emptyDescription":`“업로드된 인증서”로 설정된 경로에는 호스트 이름을 포괄하는 쌍이 필요합니다. 없으면 엔진이 제공할 것이 없습니다.`,"proxy.certificate.daysLeft":`{days}일 남음`,"proxy.certificate.subject":`주체`,"proxy.certificate.issuer":`발급자`,"proxy.certificate.validUntil":`만료일`,"proxy.certificate.covers":`포괄`,"proxy.certificate.noSans":`SAN에 호스트 이름 없음`,"proxy.certificate.removeAria":`{name} 제거`,"proxy.certificate.removeQuestion":`“{name}”을(를) 제거할까요?`,"proxy.certificate.removeBody":`쌍이 디스크에서 삭제됩니다. “업로드된 인증서”로 설정된 경로는 변경할 때까지 엔진 자체 인증서를 계속 제공하며, 아직 그것을 제공하는 동안에는 제어판이 이 삭제를 거부합니다.`,"proxy.certificate.removeIt":`제거하기`,"proxy.certificate.stored":`“{label}”을(를) 저장했습니다.`,"proxy.certificate.removed":`“{name}”을(를) 제거했습니다.`,"proxy.certificateDialog.title":`인증서 추가`,"proxy.certificateDialog.description":`쌍은 id 이름으로 디스크에 저장되며, “업로드된 인증서”로 설정된 경로가 이를 제공할 수 있습니다.`,"proxy.certificateDialog.label":`레이블`,"proxy.certificateDialog.labelPlaceholder":`홈 와일드카드`,"proxy.certificateDialog.id":`Id`,"proxy.certificateDialog.idHint":`디스크의 파일 이름이 됩니다`,"proxy.certificateDialog.certFile":`인증서 파일 (.pem, .crt)`,"proxy.certificateDialog.keyFile":`개인 키 파일 (.pem, .key)`,"proxy.certificateDialog.pasteCert":`또는 인증서 붙여 넣기`,"proxy.certificateDialog.pasteKey":`또는 개인 키 붙여 넣기`,"proxy.certificateDialog.certPlaceholder":`-----BEGIN CERTIFICATE-----`,"proxy.certificateDialog.keyPlaceholder":`-----BEGIN PRIVATE KEY-----`,"proxy.certificateDialog.store":`인증서 저장`,"proxy.certificateDialog.errorLabel":`레이블은 필수입니다`,"proxy.certificateDialog.errorId":`id는 문자나 숫자로 시작하고 그 뒤에 문자, 숫자, 대시, 밑줄만 올 수 있습니다`,"proxy.certificateDialog.errorTaken":`“{id}”는 다른 인증서가 이미 사용 중입니다`,"proxy.certificateDialog.errorCertificate":`인증서를 붙여 넣거나 선택하세요`,"proxy.certificateDialog.errorPrivateKey":`개인 키를 붙여 넣거나 선택하세요`,"proxy.engine.title":`엔진`,"proxy.engine.description":`리버스 프록시 본체. 제어판은 현재 빌드를 내려받아 감독하고, 엔진 자체의 관리 API를 통해 설정을 적용합니다.`,"proxy.engine.notInFrame":`프록시 상태는 아직 이 제어판의 범위에 없습니다.`,"proxy.engine.readFailed":`엔진을 읽을 수 없습니다`,"proxy.engine.notInstalled":`설치된 엔진 없음`,"proxy.engine.installNote":`설치하면 제어판이 감독하는 현재 {engine} 릴리스를 내려받습니다 — 약 46 MB, 한 번만. 경로를 추가하고 프록시를 켜기 전까지는 아무것도 노출되지 않습니다.`,"proxy.engine.version":`버전`,"proxy.engine.notProbed":`아직 검사 안 됨`,"proxy.engine.source":`출처`,"proxy.engine.sourceCustom":`직접 설정한 경로`,"proxy.engine.sourceDownloaded":`제어판이 내려받음`,"proxy.engine.size":`크기`,"proxy.engine.binary":`바이너리`,"proxy.engine.copyPath":`바이너리 경로 복사`,"proxy.engine.address":`현재 주소`,"proxy.engine.process":`프로세스`,"proxy.engine.certificates":`인증서`,"proxy.engine.noCert":`아직 공인 인증서 없음`,"proxy.engine.expiresSoon":`가장 빠른 만료가 {days}일 후`,"proxy.engine.acme":`ACME 인증서`,"proxy.engine.localCa":`로컬 CA`,"proxy.engine.dns01":`DNS-01`,"proxy.engine.tcpUdp":`TCP/UDP`,"proxy.engine.documentation":`{engine} 문서`,"proxy.engine.failed":`엔진이 실패를 보고했습니다`,"proxy.engine.setcapHint":`특권 포트(1024 미만)는 Linux에서 한 번 이 작업이 필요합니다:`,"proxy.engine.copyCommand":`명령 복사`,"proxy.engine.install":`엔진 설치`,"proxy.engine.start":`시작`,"proxy.engine.stop":`중지`,"proxy.engine.apply":`설정 적용`,"proxy.engine.revert":`되돌리기`,"proxy.engine.revertHint":`마지막 설정 이전에 적용된 설정으로 돌아갑니다`,"proxy.engine.update":`엔진 업데이트`,"proxy.listener.title":`리스너와 인증서`,"proxy.listener.description":`프록시가 리스닝하는 위치. 80과 443은 라우터가 전달하는 포트이자 ACME 챌린지가 기대하는 포트입니다. 1024 미만 포트에는 특권 바인딩이 필요합니다.`,"proxy.listener.unprivilegedPorts":`비특권 포트`,"proxy.listener.run":`리버스 프록시 실행`,"proxy.listener.runHint":`설정 저장으로 저장됩니다. 제어판이 그에 맞춰 엔진을 시작하거나 중지합니다.`,"proxy.listener.httpPort":`HTTP 포트`,"proxy.listener.httpPortHint":`ACME HTTP-01 챌린지와 HTTPS로의 리디렉션.`,"proxy.listener.httpsPort":`HTTPS 포트`,"proxy.listener.httpsPortHint":`인증서를 제공하는 위치.`,"proxy.listener.useFallback":`{http} / {https} 사용`,"proxy.listener.useStandard":`80 / 443 사용`,"proxy.listener.forwardHint":`비특권으로 실행 중 — 라우터에서 80과 443을 이 포트로 전달하세요.`,"proxy.listener.privilegedTitle":`1024 미만 포트에는 특권 바인딩이 필요합니다`,"proxy.listener.privilegedBody":`제어판을 본인 사용자로 실행하면 권한 없이 80이나 443을 바인딩할 수 없습니다. 한 번 {how}한 뒤 엔진을 다시 시작하거나, {http}/{https}를 유지하고 라우터에서 80/443을 전달하세요. Windows에서는 바인딩 자체는 자유롭지만 다른 대상이 점유하고 있을 수 있습니다.`,"proxy.listener.privilegedWithSetcap":`엔진 바이너리에 {command} 적용`,"proxy.listener.email":`ACME 계정 이메일`,"proxy.listener.emailPlaceholder":`you@example.com`,"proxy.listener.emailHint":`Let's Encrypt가 인증서 만료를 경고하는 데 사용합니다. 로컬 전용 이름은 엔진 자체 CA를 쓰므로 필요하지 않습니다.`,"proxy.listener.emailNeededTitle":`자동 HTTPS에는 이메일이 필요합니다`,"proxy.listener.emailNeededBody":`“{host}”는 공인 호스트 이름이므로 엔진이 CA에 인증서를 요청하며 계정 주소가 필요합니다. 주소를 입력하거나, 경로의 TLS를 끄거나, 시험 중에는 스테이징 엔드포인트를 켜세요.`,"proxy.listener.staging":`ACME 스테이징 엔드포인트 사용`,"proxy.listener.stagingHint":`시험 중에는 신뢰되지 않는 인증서가 발급되고 요청 한도도 소모하지 않습니다.`,"proxy.listener.dns01":`DNS-01로 챌린지 응답`,"proxy.listener.dns01Hint":`제어판이 경로의 DNS 계정을 통해 챌린지 레코드를 기록하므로 인증서 발급에 인바운드 포트가 필요하지 않습니다.`,"proxy.listener.resolvers":`레코드 확인 대상`,"proxy.listener.resolversPlaceholder":`1.1.1.1, 8.8.8.8`,"proxy.listener.resolversHint":`엔진이 레코드를 읽는 네임서버. 비워 두면 자체 네임서버를 사용합니다. 스플릿 호라이즌 DNS로 다른 뷰가 보이는 경우 필요합니다.`,"proxy.listener.noAccountTitle":`챌린지에 응답할 DNS 계정이 없습니다`,"proxy.listener.noAccountBody":`DNS-01이 켜져 있지만 사용할 자격 증명을 가진 계정이 없습니다. 워크스페이스 설정 → 동적 DNS에서 추가하거나, 공인 이름은 포트 챌린지에 남아 도달할 수 없는 CA를 계속 기다립니다.`,"proxy.listener.manyAccountsTitle":`공인 경로마다 계정을 골라야 합니다`,"proxy.listener.manyAccountsBody":`응답할 수 있는 계정이 여러 개라 “자동”으로는 고를 수 없습니다. 경로마다 하나를 고르거나, 그 이름들은 포트 챌린지에 남습니다.`,"proxy.listener.accountNote":`경로마다 자체 계정을 고르므로 서로 다른 영역의 이름에도 알맞은 계정이 쓰입니다. “자동”으로 남긴 경로는 표에 있는 유일한 계정을 사용합니다. 어떤 계정도 응답하지 않는 이름은 포트 챌린지에 남습니다.`,"proxy.listener.pendingNote":`인증서가 아직 발급 중인 공인 이름도 그동안 접근할 수 있습니다 — 임시의 신뢰되지 않는 인증서를 쓰는 HTTPS, 또는 전달할 포트를 안내하는 페이지와 함께 일반 HTTP로.`,"proxy.retry.inFallback":`약 8시간`,"proxy.retryButton.force":`인증서 재시도 강제`,"proxy.retryButton.question":`{host}에 대해 CA에 다시 요청할까요?`,"proxy.retryButton.body":`이 호스트 이름의 CA 인증서를 이전에 받지 못해 엔진이 로컬 CA를 사용하고 있습니다. {retryIn}마다 자동으로 재시도합니다.`,"proxy.retryButton.warning":`지금 재시도하면 이 경로가 종료되어 잠시 사용할 수 없게 됩니다. 계속할까요?`,"proxy.retryButton.leave":`그대로 두기`,"proxy.retryButton.now":`지금 재시도`,"proxy.routeDialog.titleEdit":`경로 편집`,"proxy.routeDialog.titleAdd":`경로 추가`,"proxy.routeDialog.description":`호스트 이름, 전달 대상, 그리고 TLS로 제공하는 방식.`,"proxy.routeDialog.hostname":`호스트 이름`,"proxy.routeDialog.hostnamePlaceholder":`gitea.example.com`,"proxy.routeDialog.path":`경로 접두사`,"proxy.routeDialog.pathPlaceholder":`/optional`,"proxy.routeDialog.pathHint":`비워 두면 호스트 전체를 제공합니다.`,"proxy.routeDialog.target":`대상`,"proxy.routeDialog.tls":`TLS`,"proxy.routeDialog.dnsAccount":`DNS 계정`,"proxy.routeDialog.localNote":`로컬 전용 이름은 엔진 자체 CA가 서명하므로 DNS 계정이 관여하지 않습니다.`,"proxy.routeDialog.workspace":`워크스페이스`,"proxy.routeDialog.server":`서버`,"proxy.routeDialog.noServers":`이 워크스페이스에는 서버가 없습니다`,"proxy.routeDialog.stoppedNote":`중지된 서버는 라우팅되지 않습니다. 다시 실행될 때까지 행은 “업스트림 없음”을 표시합니다.`,"proxy.routeDialog.upstream":`업스트림`,"proxy.routeDialog.upstreamPlaceholder":`http://10.0.0.5:8080`,"proxy.routeDialog.upstreamHint":`포트를 포함한 리터럴 주소. 스킴은 선택 사항입니다.`,"proxy.routeDialog.panelNote":`제어판을 제공하려면 인증이 켜져 있어야 하고 기본값이 아닌 비밀번호가 필요합니다 — 그렇지 않으면 제어판이 저장을 거부합니다.`,"proxy.routeDialog.save":`경로 저장`,"proxy.routes.title":`경로`,"proxy.routes.description":`서비스마다 공인 호스트 이름 하나. 경로는 어느 워크스페이스의 감독되는 서버, 이 제어판, 또는 리터럴 업스트림을 가리킬 수 있습니다.`,"proxy.routes.add":`경로 추가`,"proxy.routes.cannotSaveTitle":`이 상태로는 이 경로들을 저장할 수 없습니다`,"proxy.routes.cannotRoute":`{host}은(는) 라우팅할 수 없습니다`,"proxy.routes.emptyTitle":`아직 경로 없음`,"proxy.routes.emptyDescription":`하나를 추가해 도메인을 통해 서버를 노출하세요 — 엔진이 스스로 인증서를 받습니다.`,"proxy.routes.addFirst":`첫 경로 추가`,"proxy.routes.columnHostname":`호스트 이름`,"proxy.routes.columnTarget":`대상`,"proxy.routes.columnUpstream":`업스트림`,"proxy.routes.columnTls":`TLS`,"proxy.routes.columnState":`상태`,"proxy.routes.columnOn":`켜짐`,"proxy.routes.openInTab":`새 탭에서 {url} 열기`,"proxy.routes.noHostname":`아직 호스트 이름 없음`,"proxy.routes.toggle":`경로 {name}`,"proxy.routes.edit":`{name} 편집`,"proxy.routes.remove":`{name} 제거`,"proxy.status.certified":`인증서 준비됨`,"proxy.status.localCa":`엔진 CA`,"proxy.status.uploaded":`업로드된 쌍`,"proxy.status.awaitingCa":`CA 대기 중`,"proxy.status.failed":`인증서 실패`,"proxy.status.fellBack":`로컬 CA로 폴백`,"proxy.status.serving":`제공 중`,"proxy.status.disabled":`사용 안 함`,"proxy.status.noUpstream":`업스트림 없음`,"proxy.status.error":`오류`,"proxy.status.unapplied":`아직 적용 안 됨`,"proxy.status.off":`꺼짐`,"proxy.status.stopped":`중지됨`,"proxy.status.starting":`시작 중`,"proxy.status.running":`실행 중`,"proxy.status.unsupported":`지원 안 됨`,"proxy.target.server":`감독되는 서버`,"proxy.target.panel":`이 제어판`,"proxy.target.external":`리터럴 업스트림`,"proxy.target.controlPanel":`제어판`,"proxy.target.noServer":`선택한 서버 없음`,"proxy.target.noUpstream":`업스트림 없음`,"proxy.tls.auto":`자동 — 엔진이 결정`,"proxy.tls.off":`끔 — 일반 HTTP`,"proxy.tls.manual":`업로드된 인증서`,"proxy.tls.plain":`일반 HTTP`,"proxy.tls.uploaded":`업로드된 인증서`,"proxy.tls.letsEncrypt":`Let’s Encrypt`,"proxy.tls.engineCa":`엔진 CA (로컬)`,"proxy.tls.hintOff":`일반 HTTP: 이 호스트 이름에는 인증서가 제공되지 않습니다.`,"proxy.tls.hintManual":`아래에서 업로드한 인증서 쌍을 제공합니다.`,"proxy.tls.hintEmpty":`공인 호스트 이름에는 ACME 인증서가, 로컬 전용 이름에는 엔진 자체 CA가 사용됩니다.`,"proxy.tls.hintPublic":`공인 호스트 이름이므로 엔진이 CA에 인증서를 요청합니다 — ACME 계정 이메일이 필요합니다.`,"proxy.tls.hintLocal":`로컬 전용 이름이므로 엔진이 자체 로컬 신뢰 CA로 서명합니다.`,"proxy.validation.labelRequired":`레이블은 필수입니다`,"proxy.validation.idPattern":`id는 문자나 숫자로 시작하고 그 뒤에 문자, 숫자, 대시, 밑줄만 올 수 있습니다`,"proxy.validation.hostRequired":`호스트 이름은 필수입니다`,"proxy.validation.hostPattern":`문자, 숫자, 점, 대시로 된 호스트 이름. 예: home.example.com`,"proxy.validation.hostTaken":`"{host}"는 이 경로에 이미 라우팅되어 있습니다`,"proxy.validation.pathSlash":`경로 접두사는 /로 시작합니다`,"proxy.validation.pathSpace":`경로 접두사에는 공백을 넣을 수 없습니다`,"proxy.validation.idTaken":`경로 id "{id}"가 두 번 사용되었습니다`,"proxy.validation.workspaceRequired":`서버를 소유한 워크스페이스를 고르세요`,"proxy.validation.serverRequired":`해당 워크스페이스의 서버를 고르세요`,"proxy.validation.url":`http://10.0.0.5:8080 같은 업스트림`,"proxy.view.title":`리버스 프록시`,"proxy.view.description":`도메인을 통해 서버를 노출하고, 80/443 또는 DNS 챌린지로 자동 HTTPS를 사용합니다.`,"proxy.view.dnsNote":`DNS-01의 경우, 워크스페이스 설정 → 동적 DNS에서 어느 워크스페이스에든 해당 도메인의 DNS 공급자를 추가하세요. 그러면 어느 워크스페이스에서든 경로가 그 계정을 고를 수 있습니다.`,"proxy.view.readFailed":`리버스 프록시를 읽을 수 없습니다`,"proxy.view.reading":`리버스 프록시를 읽는 중…`,"proxy.view.engineInstalled":`엔진 설치됨`,"proxy.view.engineStarting":`엔진 시작 중`,"proxy.view.engineStopping":`엔진 중지 중`,"proxy.view.configApplied":`설정 적용됨`,"proxy.view.configReverted":`설정 되돌림`,"proxy.view.settingsSaved":`설정을 저장했습니다.`,"proxy.view.settingsSavedToast":`설정 저장됨`,"proxy.view.retryFailed":`재시도에 실패했습니다`,"proxy.view.retryAsked":`{host}에 대해 CA에 다시 요청하는 중`,"proxy.view.fieldChanged":`필드 변경됨`,"proxy.view.fieldsChanged":`필드 변경됨`,"proxy.view.noChanges":`저장하지 않은 변경 없음`,"proxy.view.discard":`변경 사항 버리기`,"proxy.view.save":`설정 저장`,"serverCard.open":`{url} 열기`,"serverCard.adoptedHint":`이 프로세스는 스스로를 교체했습니다. 제어판은 두 번째 복사본을 시작하지 않고 후속 프로세스를 인수했습니다. 중지는 계속 작동하며, 출력은 후속 프로세스가 보낸 곳에 남습니다.`,"serverCard.detached":`분리됨`,"serverCard.persistentHint":"이 항목은 자체 nanny로 실행되므로 제어판이 중지, 재시작 또는 종료되어도 계속 실행됩니다. `home-hosted down`은 중지하지 않고 보고만 하며, 명시적 중지만이 중지합니다.","serverCard.persistent":`상주`,"serverCard.disabled":`사용 안 함`,"serverCard.autostart":`자동 시작`,"serverCard.healthProbe":`상태 검사`,"serverCard.notProbed":`검사 안 됨`,"serverCard.restarts":`재시작`,"serverCard.pid":`PID`,"serverCard.rss":`RSS`,"serverCard.procs":`프로세스`,"serverCard.portFree":`사용 가능`,"serverCard.portInUse":`사용 중`,"serverCard.uptime24h":`24시간 가동`,"serverCard.probe":`검사`,"serverCard.crashes24h":`24시간 충돌`,"serverCard.lastCrash":`마지막 충돌`,"serverCard.unhealthyFor":`{duration} 동안 비정상`,"serverCard.nextAttempt":`다음 시도 {when}`,"serverCard.start":`시작`,"serverCard.stop":`중지`,"serverCard.restart":`다시 시작`,"serverCard.detailsHint":`실시간 로그와 전체 텔레메트리`,"serverCard.moreActions":`{label}의 추가 작업`,"serverCard.disable":`서버 사용 안 함`,"serverCard.enable":`서버 사용`,"serverCard.removeFromAutostart":`자동 시작에서 제거`,"serverCard.autostartWithPanel":`제어판과 함께 자동 시작`,"serverCard.clearLogBuffer":`로그 버퍼 비우기`,"serverCard.removeServer":`서버 제거`,"serverCard.removeTitle":`이 서버를 제거할까요?`,"serverCard.removeDescription":`{label}이(가) servers.config.json에서 제거됩니다. 프로세스가 중지되고 로그와 충돌 기록도 함께 삭제됩니다.`,"serverCard.statusField":`상태`,"serverForm.workingDirectory":`작업 디렉터리`,"serverForm.cwdHint":`상대 경로는 projectDir 아래에서 확인됩니다.`,"serverForm.arguments":`인수`,"serverForm.portHint":`비워 두면 검사하거나 사전 확인할 포트가 없다는 뜻입니다.`,"serverForm.bindAddress":`바인드 주소`,"serverForm.autostart":`up과 함께 자동 시작`,"serverForm.autostartHint":`제어 플레인이 시작될 때마다 시작합니다.`,"serverForm.persistent":`상주`,"serverForm.persistentHint":"제어판이 중지되어도 계속 실행됩니다. `down`은 중지하지 않고 보고만 합니다.","serverForm.envHint":`한 줄에 KEY=value 하나, 프로세스로 내보냅니다.`,"serverForm.dataEnvs":`데이터 환경 변수`,"serverForm.dataEnvsHint":`한 줄에 ENV=path 하나 — 프로세스로 내보내고 자동으로 백업합니다.`,"serverForm.envFile":`환경 파일`,"serverForm.envFilePlaceholder":`선택 사항인 KEY=value 파일`,"serverForm.envFileHint":`시작할 때 읽으며, 값이 env를 덮어씁니다.`,"serverForm.dependsOn":`의존 대상`,"serverForm.dependsOnHint":`쉼표로 구분. 먼저 시작해 정상이 될 때까지 기다리고, 마지막에 중지합니다.`,"serverForm.backupPaths":`추가 백업 경로`,"serverForm.backupPathsHint":`한 줄에 하나, 자리표시자 사용 가능. 데이터 환경 변수는 이미 포함됩니다.`,"serverForm.backupIgnore":`이 항목을 백업할 때 알려진 생성 파일 무시`,"serverForm.backupIgnoreHint":`node_modules, dist, .next 등 복원에 필요 없는 캐시를 건너뜁니다.`,"serverForm.bootstrap":`부트스트랩`,"serverForm.bootstrapDescription":`첫 시작 전에 실행되는 일회성 명령 — 설치, 마이그레이션, 다운로드.`,"serverForm.runBootstrap":`부트스트랩 실행`,"serverForm.bootstrapHint":`끄면 항목에 부트스트랩이 없고 키가 null로 전송됩니다.`,"serverForm.timeoutMs":`시간 제한 (ms)`,"serverForm.runOnce":`세션마다 한 번만`,"serverForm.runOnceHint":`끄면 시작할 때마다 다시 실행합니다.`,"serverForm.bootstrapArgs":`부트스트랩 인수`,"serverForm.bootstrapArgsHint":`한 줄에 하나, 자리표시자는 기본 인수와 같습니다.`,"serverForm.bootstrapEnv":`부트스트랩 환경 변수`,"serverForm.bootstrapEnvHint":`한 줄에 KEY=value 하나, 부트스트랩 프로세스에만 내보냅니다.`,"serverForm.onPortConflict":`포트 충돌 시`,"serverForm.logBufferLines":`로그 버퍼 줄 수`,"serverForm.maxRssMb":`최대 RSS (MB)`,"serverForm.maxRssHint":`이 값을 넘으면 다시 시작합니다. 비우거나 0이면 사용하지 않습니다.`,"serverForm.enabledHint":`끄면 항목은 설정에 남지만 시작은 거부됩니다.`,"settings.auth.policyTitle":`접근 정책`,"settings.auth.policyDescription":`제어판이 루프백에 있든 네트워크에 노출되어 있든 인증이 적용됩니다.`,"settings.auth.requirePassword":`비밀번호 요구`,"settings.auth.requirePasswordHint":`모든 요청에 로그인된 세션이 필요합니다.`,"settings.auth.sessionLifetime":`세션 수명 (ms)`,"settings.auth.sessionLifetimeHint":`유휴 시간 제한. 604800000은 1주일간 활동이 없는 것입니다. 요청마다 다시 시작됩니다.`,"settings.auth.cookieSecure":`Cookie Secure`,"settings.auth.cookieSecureAuto":`자동 — HTTPS에서만`,"settings.auth.cookieSecureAlways":`항상`,"settings.auth.cookieSecureNever":`안 함 — 일반 HTTP`,"settings.auth.trustProxy":`리버스 프록시 뒤`,"settings.auth.trustProxyOff":`아니요 — x-forwarded-* 무시`,"settings.auth.trustProxyLoopback":`예, 이 컴퓨터에서만`,"settings.auth.trustProxyAny":`예, 모든 호출자로부터`,"settings.auth.trustProxyHint":`클라이언트 주소와 프로토콜에 x-forwarded-*를 신뢰합니다. '이 컴퓨터에서만'은 같은 호스트의 프록시에 안전한 선택입니다. '모든 호출자로부터'는 호출자 자신의 헤더를 믿으므로 로그인 잠금이 위조된 주소별로 집계되어 우회될 수 있습니다.`,"settings.auth.maxLoginAttempts":`최대 로그인 시도`,"settings.auth.maxLoginAttemptsHint":`임시 잠금까지의 실패 횟수.`,"settings.auth.lockout":`잠금 (ms)`,"settings.auth.apiTokenSet":`API 토큰이 설정됨`,"settings.auth.apiTokenMissing":`API 토큰 없음`,"settings.auth.apiTokenNote":`스크립트는 로그인 대신 {code}로 API를 호출할 수 있습니다.`,"settings.auth.noTokenNote":`셸 스크립트와 에이전트용으로는 {command}로 생성하세요.`,"settings.auth.defaultPasswordTitle":`아직 기본 비밀번호를 사용 중입니다`,"settings.auth.defaultPasswordText":`아래에서 직접 비밀번호를 설정하세요. 설정하기 전까지 {address} 밖으로의 바인딩은 계속 거부됩니다.`,"settings.auth.blockedTitle":`이 리스너는 거부되고 있습니다`,"settings.auth.noPasswordTitle":`인증은 켜져 있지만 비밀번호가 없습니다`,"settings.auth.noPasswordText":`아직 실제로 요구되는 것이 없으며, 비밀번호가 생기기 전까지 {address} 밖으로의 바인딩은 계속 거부됩니다.`,"settings.auth.exposedTitle":`127.0.0.1 밖에서 접근 가능`,"settings.auth.exposedText":`비밀번호를 강하게 유지하거나, 제어판 앞에 TLS를 종료하는 프록시를 두세요.`,"settings.auth.changePassword":`비밀번호 변경`,"settings.auth.setPassword":`비밀번호 설정`,"settings.auth.passwordDescription":`시크릿 파일에 scrypt 해시로 저장되며 설정에는 절대 들어가지 않습니다.`,"settings.auth.currentPassword":`현재 비밀번호`,"settings.auth.newPassword":`새 비밀번호`,"settings.auth.repeatPassword":`새 비밀번호 다시 입력`,"settings.auth.passwordMismatch":`두 비밀번호가 일치하지 않습니다.`,"settings.auth.updatePassword":`비밀번호 업데이트`,"settings.auth.setPasswordAndEnable":`비밀번호 설정 및 인증 사용`,"settings.auth.clearPassword":`비밀번호 지우기`,"settings.auth.clearPasswordConfirm":`지우기 확인`,"settings.auth.clearPasswordTitle":`비밀번호를 지울까요?`,"settings.auth.clearPasswordHint":`인증도 함께 꺼지며, 제어판에 접근하는 사람은 누구든 바로 들어올 수 있습니다.`,"settings.auth.shortPasswordTitle":`짧은 비밀번호입니다`,"settings.auth.shortPasswordText":`허용되지만, 네트워크와 이 제어판 사이에 있는 것은 길이뿐입니다.`,"settings.auth.passwordUpdated":`비밀번호를 업데이트했습니다. 다른 세션은 로그아웃되었습니다.`,"settings.auth.passwordCleared":`비밀번호를 지우고 인증을 사용 안 함으로 설정했습니다.`,"settings.backup.createTitle":`백업 만들기`,"settings.backup.createDescription":`이 아카이브가 담을 항목을 선택하세요. 만들기 전까지는 아무것도 기록되지 않습니다.`,"settings.backup.chooseItems":`항목 선택`,"settings.backup.partialCapture":`선택한 항목만 담깁니다.`,"settings.backup.withoutGlobalSettings":`전역 설정이 없으면 복원은 대상 제어판이 이미 선언한 위치에만 워크스페이스를 배치할 수 있습니다.`,"settings.backup.password":`비밀번호 (선택 사항)`,"settings.backup.passwordHint":`아카이브를 암호화합니다. 복원할 때 같은 비밀번호를 요구합니다.`,"settings.backup.create":`백업 만들기`,"settings.backup.chooseItemsFor":`{label} — 항목 선택`,"settings.backup.subDescription":`워크스페이스는 전체를 담을 수도 있고 설정, 서버, 시크릿, 선언된 데이터 경로만 담을 수도 있습니다.`,"settings.backup.selectedOf":`{total}개 중 {selected}개 선택됨`,"settings.backup.nothingSelectable":`이 워크스페이스에는 아직 선택할 수 있는 항목이 없습니다.`,"settings.backup.apply":`적용`,"settings.backup.created":`백업을 만들었습니다.`,"settings.backup.leafSettingsHint":`서버 기본값, 로그 보존, 알림`,"settings.backup.leafServersHint":`servers.config.json의 모든 항목`,"settings.backup.leafSecretsHint":`Telegram 봇 토큰과 DDNS 자격 증명`,"settings.backup.leafDataHint":`선언된 데이터 경로`,"settings.backup.pathFromOrigin":`{path} — {origin}에서`,"settings.backup.entrySettingsHint":`리스너, 인증, 호스트 상태, 백업 정책`,"settings.backup.entrySecretsHint":`비밀번호 해시와 API 토큰 해시`,"settings.backup.entryTlsHint":`제어판 자체의 인증서 쌍`,"settings.backup.entryWorkspaceHint":`해당 설정, 서버, 시크릿, 선언된 데이터 경로`,"settings.backup.entryGlobalSettings":`전역 설정`,"settings.backup.entryGlobalSecrets":`전역 시크릿(비밀번호, API 토큰)`,"settings.backup.entryTlsCertificate":`TLS 인증서`,"settings.backup.leafSettings":`설정`,"settings.backup.leafServers":`서버`,"settings.backup.leafSecrets":`시크릿`,"settings.backup.restoreItemLabel":`{workspace}: {item}`,"settings.backup.noteMissing":`아직 없음`,"settings.backup.noteCovered":`{path}에 포함됨`,"settings.backup.noteAlreadyDeclared":`{origin}에서 이미 선언함`,"settings.backup.noteContainsBackupDir":`백업 디렉터리를 포함함`,"settings.backup.noteUnknownWorkspace":`알 수 없는 워크스페이스`,"settings.backup.noteMissingFromArchive":`아카이브에 없음`,"settings.backup.noteDeclaredByBackup":`백업의 설정에서 선언되었지만 그 설정은 복원되지 않습니다`,"settings.backup.noteNotDeclared":`이 설정에서도 백업에서도 선언되지 않았습니다`,"settings.backup.noteRestoredFrom":`{path}에서 복원됨`,"settings.backups.policyTitle":`정책`,"settings.backups.policyDescription":`제어판이 보관하는 아카이브 수와 모든 아카이브가 추가로 담는 경로.`,"settings.backups.allow":`백업 허용`,"settings.backups.allowHint":`끄면 새 아카이브가 만들어지지 않습니다. 이미 디스크에 있는 것은 계속 다운로드하고 복원할 수 있습니다.`,"settings.backups.offTitle":`백업이 꺼져 있습니다`,"settings.backups.offText":`다시 켤 때까지 새로 보관되는 것은 없습니다. 아래 아카이브는 계속 다운로드, 복원, 삭제할 수 있습니다.`,"settings.backups.keep":`보관 개수`,"settings.backups.keepHint":`백업할 때마다 오래된 아카이브가 정리됩니다.`,"settings.backups.extraPaths":`추가 경로`,"settings.backups.extraPathsHint":`쉼표로 구분. 각 워크스페이스가 선언한 것에 더해 모든 아카이브에 담깁니다.`,"settings.backups.extraPathsPlaceholder":`{home}/myapp-data`,"settings.backups.archiveDirectory":`아카이브 디렉터리`,"settings.backups.copyArchiveDirectory":`아카이브 디렉터리 복사`,"settings.backups.changeDirectory":`변경은 파일 단위 결정입니다. {path}를 편집하세요.`,"settings.backups.theSettingsFile":`설정 파일`,"settings.backups.capturesTitle":`백업이 담는 항목`,"settings.backups.capturesDescription":`만들기 대화 상자에서 선택합니다. 워크스페이스는 전체를 담을 수도 있고 설정, 서버, 시크릿, 선언된 데이터 경로만 담을 수도 있습니다.`,"settings.backups.nothingSelectable":`아직 선택할 수 있는 항목이 없습니다.`,"settings.backups.fromOrigin":`{origin}에서`,"settings.backups.notCaptured":`담기지 않음`,"settings.backups.generatedSkipped":`생성 디렉터리 건너뜀`,"settings.backups.included":`포함됨`,"settings.backups.skipped":`건너뜀`,"settings.backups.workspacesNote":`이 제어판은 워크스페이스 {count}개를 제공하며, 각각이 선택 가능한 별도 항목입니다.`,"settings.backups.archivesTitle":`아카이브`,"settings.backups.archivesDescription":`백업 디렉터리에 저장되며 언제든 다운로드할 수 있습니다.`,"settings.backups.create":`백업 만들기…`,"settings.backups.restore":`복원…`,"settings.backups.noArchives":`아직 아카이브 없음`,"settings.backups.noArchivesEnabled":`지금 만들어 제어판과 원하는 워크스페이스를 담으세요.`,"settings.backups.noArchivesDisabled":`아직 아무것도 보관되지 않았고 백업이 꺼져 있습니다.`,"settings.backups.encrypted":`암호화됨`,"settings.backups.download":`다운로드`,"settings.backups.restoreAction":`복원`,"settings.backups.confirmDelete":`삭제 확인`,"settings.backups.deleted":`{name}을(를) 삭제했습니다.`,"settings.backups.kindSettings":`설정`,"settings.backups.kindServers":`서버`,"settings.backups.kindSecrets":`시크릿`,"settings.backups.kindTls":`tls`,"settings.backups.kindData":`데이터`,"settings.backups.kindWorkspace":`워크스페이스`,"settings.ddns.statePending":`대기 중`,"settings.ddns.stateOk":`업데이트됨`,"settings.ddns.stateUnchanged":`최신`,"settings.ddns.stateSkipped":`건너뜀`,"settings.ddns.stateError":`실패`,"settings.ddns.passFinished":`동적 DNS 실행 완료`,"settings.ddns.credentialsSaved":`{account}의 자격 증명을 저장했습니다`,"settings.ddns.credentialsRemoved":`{account}의 자격 증명을 제거했습니다`,"settings.ddns.loadErrorTitle":`동적 DNS 설정을 불러올 수 없습니다`,"settings.ddns.title":`동적 DNS`,"settings.ddns.description":`이 호스트 이름들이 이 컴퓨터의 공인 주소를 계속 가리키게 합니다. 자격 증명은 시크릿 파일에 있으며 servers.config.json에는 절대 들어가지 않습니다.`,"settings.ddns.checking":`확인 중`,"settings.ddns.needsAttention":`확인 필요`,"settings.ddns.watching":`감시 중`,"settings.ddns.updateNow":`지금 업데이트`,"settings.ddns.enabled":`동적 DNS 계속 업데이트`,"settings.ddns.enabledHint":`아래 간격으로 실행됩니다. 공급자는 주소가 실제로 바뀐 경우에만 호출됩니다.`,"settings.ddns.interval":`확인 간격 (ms)`,"settings.ddns.intervalHint":`60000은 1분이며 기본값은 5분입니다.`,"settings.ddns.ttl":`TTL (초)`,"settings.ddns.ttlHint":`1은 공급자가 지원하는 경우 자동을 뜻합니다.`,"settings.ddns.detectIpv4":`IPv4 감지`,"settings.ddns.detectIpv4Hint":`A 레코드에 필요합니다.`,"settings.ddns.detectIpv6":`IPv6 감지`,"settings.ddns.detectIpv6Hint":`AAAA 레코드에 필요합니다.`,"settings.ddns.accountsTitle":`공급자 계정`,"settings.ddns.accountsDescription":`API 토큰마다 항목 하나. 자격 증명은 서버에 저장되며 다시 돌아오지 않습니다.`,"settings.ddns.credentialsSet":`자격 증명 저장됨`,"settings.ddns.noCredentials":`자격 증명 없음`,"settings.ddns.credentials":`자격 증명`,"settings.ddns.removeAccountBlocked":`먼저 이 계정을 쓰는 호스트 이름을 제거하세요`,"settings.ddns.noAccounts":`아직 계정이 없습니다. 공급자를 선택해 추가하세요.`,"settings.ddns.provider":`공급자`,"settings.ddns.accountId":`계정 id`,"settings.ddns.accountIdPlaceholder":`cloudflare-home`,"settings.ddns.accountIdHint":"계정 id는 계정을 식별하고 저장된 자격 증명의 키가 됩니다. 소문자, 숫자, `-`, `_`.","settings.ddns.hostnamesTitle":`호스트 이름`,"settings.ddns.hostnamesDescription":`계속 업데이트할 전체 목록 — suba.domain.com, domain.xyz 등.`,"settings.ddns.account":`계정`,"settings.ddns.recordA":`A (IPv4)`,"settings.ddns.recordAaaa":`AAAA (IPv6)`,"settings.ddns.aaaaUnsupported":`이 공급자는 AAAA 레코드를 관리할 수 없습니다.`,"settings.ddns.proxied":`프록시됨`,"settings.ddns.proxiedHint":`Cloudflare가 자체 네트워크를 통해 이 레코드를 제공합니다.`,"settings.ddns.ipv6Off":`IPv6 감지가 꺼져 있습니다`,"settings.ddns.advanced":`고급`,"settings.ddns.advancedHint":`등록 도메인과 TTL 재정의`,"settings.ddns.registeredDomain":`등록 도메인`,"settings.ddns.registeredDomainPlaceholder":`example.co.uk`,"settings.ddns.registeredDomainHint":`공급자에게 apex를 알려야 할 때만. 예: 3단계 레이블 도메인.`,"settings.ddns.ttlOverride":`TTL 재정의 (초)`,"settings.ddns.ttlOverrideHint":`비워 두면 위 값을 사용합니다.`,"settings.ddns.noHostnames":`아직 호스트 이름이 없습니다.`,"settings.ddns.hostnamePlaceholder":`home.example.com`,"settings.ddns.lastPass":`마지막 실행`,"settings.ddns.ipv4Value":`IPv4 {address}`,"settings.ddns.ipv6Value":`IPv6 {address}`,"settings.ddns.type":`유형`,"settings.ddns.state":`상태`,"settings.ddns.address":`주소`,"settings.ddns.detail":`세부 정보`,"settings.ddns.credentialsTitle":`공급자 자격 증명`,"settings.ddns.credentialsDescription":`저장된 필드는 다시 전송되지 않습니다. 저장하면 이 계정의 모든 필드가 교체되고 곧바로 한 번 실행됩니다.`,"settings.ddns.optional":`선택 사항.`,"settings.ddns.whereToGet":`발급 방법`,"settings.ddns.forget":`삭제`,"settings.ddns.forgetConfirm":`삭제하기`,"settings.ddns.forgetTitle":`저장된 자격 증명을 삭제할까요?`,"settings.ddns.forgetHint":`디스크에서 제거되어 다시 읽을 수 없으며, 다시 붙여 넣어야 합니다.`,"settings.ddns.saveCredentials":`자격 증명 저장`,"settings.defaults.title":`서버 기본값`,"settings.defaults.description":`자체 값을 설정하지 않은 모든 항목에 적용됩니다.`,"settings.defaults.enabledHint":`새 항목은 사용 상태로 시작합니다.`,"settings.defaults.autostart":`제어판과 함께 자동 시작`,"settings.defaults.bind":`바인드`,"settings.defaults.bindLocal":`로컬 — 127.0.0.1`,"settings.defaults.bindLan":`LAN — 0.0.0.0`,"settings.defaults.onPortConflict":`포트 충돌 시`,"settings.defaults.conflictBlock":`시작 차단`,"settings.defaults.conflictWarn":`경고 후 그래도 시작`,"settings.defaults.conflictFollow":`자신의 분리된 재시작을 인수`,"settings.defaults.conflictReclaim":`분리된 재시작을 감독되는 복사본으로 교체`,"settings.defaults.conflictKill":`포트를 점유한 대상 강제 종료`,"settings.defaults.logBufferLines":`로그 버퍼 줄 수`,"settings.defaults.logBufferLinesHint":`서버마다 메모리에 보관됩니다.`,"settings.host.title":`임계값`,"settings.host.description":`임계값 0은 해당 경고를 사용하지 않습니다. 초과 시 한 번, 복구 시 다시 한 번 알립니다.`,"settings.host.enabled":`이 컴퓨터 샘플링`,"settings.host.enabledHint":`부하, 메모리, 스왑, 디스크, CPU 온도를 아래 간격으로 수집합니다.`,"settings.host.interval":`간격 (ms)`,"settings.host.intervalHint":`호스트를 샘플링하고 경고를 확인하는 주기.`,"settings.host.diskPaths":`디스크 경로`,"settings.host.diskPathsHint":`쉼표로 구분. {home} 같은 템플릿은 확장됩니다.`,"settings.host.diskUsed":`디스크 사용률 (%)`,"settings.host.memoryUsed":`메모리 사용률 (%)`,"settings.host.swapUsed":`스왑 사용률 (%)`,"settings.host.zeroDisables":`0이면 경고를 사용하지 않습니다.`,"settings.host.loadPerCpu":`CPU당 부하`,"settings.host.loadPerCpuHint":`1분 평균 부하를 코어 수로 나눈 값.`,"settings.host.tempCelsius":`CPU 온도 (°C)`,"settings.host.tempCelsiusHint":`Linux 전용. OS가 제공하지 않으면 무시됩니다.`,"settings.host.breachingNow":`현재 초과 중:`,"settings.host.nothingBreaching":`현재 초과 중인 항목이 없습니다.`,"settings.interface.title":`인터페이스`,"settings.interface.description":`제어판은 정적 사이트입니다. 기본 제공 UI를 쓰거나 상태 디렉터리에서 직접 빌드한 UI를 제공하세요.`,"settings.interface.currentlyServing":`현재 제공 중`,"settings.interface.copyDirectory":`UI 디렉터리 복사`,"settings.interface.fileCount":`파일 {count}개`,"settings.interface.sourceStock":`기본`,"settings.interface.sourceCustom":`사용자 지정`,"settings.interface.unnamed":`이름 없음`,"settings.interface.panelVersion":`제어판 버전`,"settings.interface.copyPanelVersion":`제어판 버전 복사`,"settings.interface.panelVersionHint":`이 제어판 프로세스가 실행 중인 릴리스 — {command}도 같은 번호를 출력합니다.`,"settings.interface.panelName":`제어판 이름`,"settings.interface.panelNameHint":`기본 UI가 사이드바에 표시합니다. 사용자 지정 UI는 대신 자체 이름을 표시할 수 있습니다.`,"settings.interface.uploadLabel":`UI 빌드 업로드 (index.html이 있는 .zip)`,"settings.interface.docsHint":`API 계약은 {docs}를 참고하세요. 사용자 지정 UI가 제어판을 망가뜨리면 {command}로 터미널에서 기본 UI를 되돌릴 수 있습니다.`,"settings.interface.resetName":`이름 초기화`,"settings.interface.confirmRevert":`되돌리기 확인`,"settings.interface.revertToStock":`기본으로 되돌리기`,"settings.interface.install":`UI 설치`,"settings.interface.installed":`UI를 {name}(으)로 교체했습니다 — 페이지를 새로 고치세요`,"settings.interface.yourBuild":`직접 빌드`,"settings.interface.restored":`기본 UI를 복원했습니다 — 페이지를 새로 고치세요`,"settings.interface.nothingInstalled":`설치된 사용자 지정 UI 없음`,"settings.listener.title":`리스너`,"settings.listener.description":`제어판이 응답하는 위치. 변경하면 제어판이 다시 시작되고 이 페이지는 새 주소로 이동합니다.`,"settings.listener.port":`제어 포트`,"settings.listener.portHint":`기본값 3999.`,"settings.listener.bind":`바인드`,"settings.listener.bindLocal":`로컬`,"settings.listener.bindLan":`LAN`,"settings.listener.bindCustom":`사용자 지정`,"settings.listener.bindLanHint":`0.0.0.0 — 네트워크 전체에서 접근 가능합니다.`,"settings.listener.bindLocalHint":`127.0.0.1 — 이 컴퓨터에서만.`,"settings.listener.bindCustomHint":`아래에 입력하는 특정 인터페이스 주소.`,"settings.listener.ipv4":`IPv4 주소`,"settings.listener.ipv4Placeholder":`192.168.1.20`,"settings.listener.ipv4Error":`IPv4 주소를 입력하세요. 예: 192.168.1.20.`,"settings.listener.ipv4Hint":`127.0.0.1 밖으로 바인딩하려면 실제 비밀번호가 필요합니다.`,"settings.listener.openBrowser":`제어판이 뜰 때 브라우저 열기`,"settings.listener.liveAddress":`현재 주소`,"settings.listener.restartRequired":`다시 시작 필요`,"settings.listener.copyLiveAddress":`현재 주소 복사`,"settings.listener.liveAddressHint":`리스너가 지금 바인딩된 주소. 저장한 변경은 제어판이 다시 바인딩한 뒤 적용됩니다.`,"settings.logs.title":`보존`,"settings.logs.description":`실시간 보기는 항상 메모리에서 옵니다. 이 파일들은 다시 시작해도 남아 로그 페이지에 공급됩니다.`,"settings.logs.persist":`로그를 디스크에 보관`,"settings.logs.persistHint":`끄면 모든 것을 메모리에만 보관합니다.`,"settings.logs.maxBytes":`로테이션 크기 (바이트)`,"settings.logs.maxBytesHint":`서버마다. .1, .2, …로 넘어가기 전 크기.`,"settings.logs.keep":`로테이션된 파일 보관`,"settings.logs.directory":`로그 디렉터리`,"settings.logs.copyDirectory":`로그 디렉터리 복사`,"settings.logs.browseHint":`{logs} 페이지에서 이 파일들을 살펴보고 다운로드할 수 있습니다.`,"settings.paths.dataRoot":`데이터 루트`,"settings.paths.dataRootHint":`HHOSTED_HOME — 전역 설정, 워크스페이스, TLS, 백업, UI.`,"settings.paths.globalSettings":`전역 설정`,"settings.paths.globalSettingsHint":`settings.json — 리스너, 인증, TLS 정책, 호스트 상태, 백업.`,"settings.paths.projectDir":`프로젝트 디렉터리`,"settings.paths.projectDirHint":`상대 항목 경로의 기준.`,"settings.paths.panelAddress":`제어판 주소`,"settings.paths.panelAddressHint":`이 제어판이 현재 실행 중인 위치.`,"settings.paths.serversConfig":`서버 설정`,"settings.paths.serversConfigHint":`{label}의 servers.config.json.`,"settings.paths.workspaceSettings":`워크스페이스 설정`,"settings.paths.workspaceSettingsHint":`서버 기본값, 로그 보존, 알림, DDNS.`,"settings.paths.logs":`로그`,"settings.paths.logsHint":`이 워크스페이스의 영구 저장된 출력.`,"settings.paths.copyPath":`{label} 복사`,"settings.paths.whereThingsLive":`파일 위치`,"settings.paths.whereThingsLiveDescription":`읽기 전용. 경로를 셸이나 편집기에 바로 복사할 수 있습니다.`,"settings.paths.workspaceFiles":`워크스페이스 파일`,"settings.paths.workspaceFilesDescription":`각 워크스페이스는 자체 설정, 구성, 로그 디렉터리를 가지며 서로 공유하지 않습니다.`,"settings.rebind.failed":`제어판이 {target}에서 응답하지 않았습니다. 새 리스너는 콘솔을 확인하세요.`,"settings.restore.title":`백업 복원`,"settings.restore.description":`계획을 적용하기 전까지는 아무것도 기록되지 않습니다.`,"settings.restore.archive":`아카이브`,"settings.restore.archiveHint":`저장된 아카이브 또는 이 컴퓨터의 .zip.`,"settings.restore.encryptedName":`{name} — 암호화됨`,"settings.restore.uploadOption":`파일 업로드…`,"settings.restore.archiveFile":`아카이브 파일 (.zip)`,"settings.restore.unchangedTitle":`아직 변경된 것이 없습니다`,"settings.restore.archiveLine":`아카이브 {name}.`,"settings.restore.uploadedArchive":`업로드한 아카이브.`,"settings.restore.passwordProtected":`이 백업은 비밀번호로 보호되어 있습니다.`,"settings.restore.password":`비밀번호`,"settings.restore.checkAgain":`비밀번호로 다시 확인`,"settings.restore.choosePrompt":`복원할 항목 선택 — {total}개 중 {selected}개 선택됨.`,"settings.restore.willRestore":`복원합니다: {items}.`,"settings.restore.skipped":`건너뜁니다: {items}.`,"settings.restore.nothing":`없음`,"settings.restore.restartNote":`제어판 자체의 설정이 달라, 나중에 제어판을 다시 시작하세요.`,"settings.restore.reloadedNote":`복원된 워크스페이스는 즉시 다시 로드됩니다. 자동 시작으로 표시된 항목은 스스로 시작합니다.`,"settings.restore.applyStored":`이 복원 적용`,"settings.restore.applyUpload":`업로드 복원`,"settings.restore.restored":`{count}개 항목을 복원했습니다.`,"settings.restore.restoredWithNotes":`{count}개 항목을 복원했습니다 — {notes}.`,"settings.restore.noteReloaded":`복원된 서버가 실행 중이고 자동 시작 항목이 시작 중입니다`,"settings.restore.noteRestart":`제어판 자체 설정을 적용하려면 다시 시작하세요`,"settings.restore.reasonSymbolicLink":`심볼릭 링크, 건너뜀`,"settings.restore.reasonNotSelected":`선택하지 않음`,"settings.restore.reasonUnrestorable":`여기에서는 복원할 수 없음`,"settings.restore.reasonInvalidSettings":`아카이브의 설정이 유효하지 않음`,"settings.restore.reasonInvalidServers":`아카이브의 서버가 유효하지 않음`,"settings.shell.noUnsavedChanges":`저장하지 않은 변경 없음`,"settings.shell.discard":`변경 사항 버리기`,"settings.shell.save":`설정 저장`,"settings.shell.unsavedTitle":`저장하지 않은 변경`,"settings.shell.nothingToSave":`저장할 항목이 없습니다.`,"settings.telegram.title":`Telegram`,"settings.telegram.description":`정책은 설정에 있고 봇 토큰은 시크릿이라 서버에서 다시 돌아오지 않습니다.`,"settings.telegram.enabled":`알림 보내기`,"settings.telegram.enabledHint":`이벤트마다 메시지 하나, 아래 쿨다운으로 제한됩니다.`,"settings.telegram.chatId":`채팅 id`,"settings.telegram.chatIdPlaceholder":`123456789 또는 @channel`,"settings.telegram.chatIdHint":`채팅 감지를 사용하면 봇의 업데이트에서 자동으로 채웁니다.`,"settings.telegram.cooldown":`이벤트별 쿨다운 (ms)`,"settings.telegram.cooldownHint":`서버와 사유별이므로 계속 요동치는 서버도 도배하지 못합니다.`,"settings.telegram.onCrash":`재시도 소진`,"settings.telegram.onUnhealthy":`포트 비정상`,"settings.telegram.onForcedRestart":`강제 재시작`,"settings.telegram.onRecovered":`복구됨`,"settings.telegram.onHost":`호스트 상태 임계값 초과`,"settings.telegram.onHostHint":`디스크, 메모리, 스왑, 부하, CPU 온도. 호스트 상태의 임계값을 따릅니다.`,"settings.telegram.onDdns":`동적 DNS 변경 또는 실패`,"settings.telegram.onDdnsHint":`레코드를 바꾼 실행마다 한 건, 실패한 실행에도 한 건.`,"settings.telegram.botToken":`봇 토큰`,"settings.telegram.tokenSet":`토큰 설정됨`,"settings.telegram.noToken":`토큰 없음`,"settings.telegram.tokenNote":`@BotFather에서 발급 — 시크릿이며 servers.config.json에 절대 넣지 않습니다.`,"settings.telegram.tokenPlaceholder":`123456789:AA…`,"settings.telegram.tokenSavedPlaceholder":`저장됨 — 교체하려면 새 토큰을 입력하세요`,"settings.telegram.saveToken":`토큰 저장`,"settings.telegram.detectChats":`채팅 감지`,"settings.telegram.sendTest":`테스트 전송`,"settings.telegram.removeToken":`토큰 제거`,"settings.telegram.removeTokenConfirm":`제거 확인`,"settings.telegram.removeTokenTitle":`봇 토큰을 제거할까요?`,"settings.telegram.removeTokenHint":`다시 토큰을 붙여 넣을 때까지 알림이 중지됩니다.`,"settings.telegram.tokenSaved":`토큰을 저장했습니다.`,"settings.telegram.tokenSavedFor":`@{username}의 토큰을 저장했습니다.`,"settings.telegram.tokenRemoved":`토큰을 제거했습니다.`,"settings.telegram.noChats":`채팅을 찾지 못했습니다. 먼저 봇에 /start를 보낸 뒤 다시 감지하세요.`,"settings.telegram.testSent":`테스트 메시지를 보냈습니다.`,"settings.telegram.testFailed":`테스트 메시지를 보내지 못했습니다.`,"settings.telegram.chatsSeen":`봇이 확인한 채팅:`,"settings.telegram.lastSend":`마지막 전송: {result}`,"settings.tls.title":`HTTPS`,"settings.tls.description":`PEM 쌍을 업로드하면 제어판이 자체 리스너에서 TLS를 제공합니다. 홈 네트워크에서는 자체 서명 인증서로 충분합니다.`,"settings.tls.serve":`제어판을 HTTPS로 제공`,"settings.tls.serveHint":`설정 저장으로 저장됩니다. 제어판이 다시 바인딩하고 이 페이지도 따라갑니다.`,"settings.tls.certificateTitle":`인증서`,"settings.tls.certificateDescription":`PEM으로 인코딩된 인증서와 개인 키. 둘 다 시크릿 파일에 남습니다.`,"settings.tls.unusableTitle":`저장된 인증서를 사용할 수 없습니다`,"settings.tls.subject":`주체`,"settings.tls.issuer":`발급자`,"settings.tls.validUntil":`만료일`,"settings.tls.days":`{count}일`,"settings.tls.privateKey":`개인 키`,"settings.tls.keyMatches":`인증서와 일치함`,"settings.tls.keyMismatch":`일치하지 않음`,"settings.tls.fingerprint":`지문`,"settings.tls.copyFingerprint":`지문 복사`,"settings.tls.noCertificateTitle":`업로드된 인증서 없음`,"settings.tls.noCertificateText":`아래에서 PEM 인증서와 키를 업로드한 뒤 저장하세요. 인증서가 있을 때까지 HTTPS는 제공되지 않습니다.`,"settings.tls.certFile":`인증서 파일 (.pem, .crt)`,"settings.tls.keyFile":`개인 키 파일 (.pem, .key)`,"settings.tls.pasteCertificate":`또는 인증서 붙여 넣기`,"settings.tls.pasteKey":`또는 개인 키 붙여 넣기`,"settings.tls.saveCertificate":`인증서 저장`,"settings.tls.removeCertificate":`인증서 제거`,"settings.tls.confirmRemove":`제거 확인`,"settings.tls.removeTitle":`인증서를 제거할까요?`,"settings.tls.removeHint":`TLS는 켜진 채로 남지만 제공할 것이 없어, 리스너가 다시 바인딩되면 제어판이 http로 돌아갑니다.`,"settings.tls.stored":`인증서를 저장했습니다.`,"settings.tls.removed":`인증서를 제거했습니다.`,"status.stopped":`중지됨`,"status.starting":`시작 중`,"status.running":`실행 중`,"status.stopping":`중지 중`,"status.backoff":`다시 시작 중`,"status.crashed":`충돌함`,"status.conflict":`포트 충돌`,"theme.label":`테마: {theme}`,"theme.light":`라이트`,"theme.dark":`다크`,"theme.system":`시스템`,"topbar.search":`검색하거나 명령 실행`,"topbar.openNavigation":`탐색 열기`,"topbar.commandPalette":`명령 팔레트`,"topbar.account":`계정`,"topbar.signedIn":`로그인됨`,"topbar.signOut":`로그아웃`,"topbar.workspaceLabel":`워크스페이스: {name}`,"validation.port":`포트는 1에서 65535 사이의 정수여야 합니다.`,"validation.idRequired":`id는 필수입니다 — 이 서버가 속한 키입니다.`,"validation.idPattern":`id는 소문자나 숫자로 시작하고 소문자, 숫자, 대시, 밑줄만 포함해야 합니다.`,"validation.commandRequired":`명령은 필수입니다 — 감독자가 실행하는 실행 파일입니다.`,"validation.bootstrapCommand":`부트스트랩에는 실행할 명령이 필요합니다.`,"views.actions.addAServer":`서버 추가`,"views.actions.addServer":`서버 추가`,"views.actions.startAll":`모두 시작`,"views.actions.stopAll":`모두 중지`,"views.common.thisWorkspace":`이 워크스페이스`,"views.globalOverview.configError":`구성을 읽을 수 없습니다: {error}`,"views.globalOverview.degraded":`성능 저하`,"views.globalOverview.description":`호스트 상태와 모든 워크스페이스의 모든 서버를 위치별로 묶어 표시합니다.`,"views.globalOverview.emptyDescription":`상단에서 워크스페이스를 고르고, 처음으로 계속 살려 둘 프로세스를 추가하세요.`,"views.globalOverview.emptyTitle":`아직 어디에도 서버가 없습니다`,"views.globalOverview.groupEmptyDescription":`하나 추가하면 여기와 워크스페이스 페이지에 표시됩니다.`,"views.globalOverview.groupRunning":`{running}/{total} 실행 중`,"views.globalOverview.hostUptime":`호스트 가동 시간`,"views.globalOverview.hostVitals":`호스트 상태`,"views.globalOverview.hostVitalsNote":`이 컴퓨터이며 모든 워크스페이스가 공유합니다.`,"views.globalOverview.openWorkspace":`워크스페이스 열기`,"views.globalOverview.panelUptime":`제어판 가동 시간`,"views.globalOverview.samplingOff":`샘플링 꺼짐`,"views.globalOverview.samplingOn":`샘플링 켜짐`,"views.globalOverview.serversTotal":`총 서버 {count}대`,"views.globalOverview.serving":`제공 중`,"views.globalOverview.workspaces":`워크스페이스`,"views.globalSettings.authenticationDescription":`누가 이 제어판에 로그인할 수 있는지, 세션을 어떻게 신뢰하는지.`,"views.globalSettings.backupsDescription":`한 번의 수집마다 아카이브 하나로, 제어판과 선택한 워크스페이스를 담습니다.`,"views.globalSettings.changesDescription":`저장하면 제어판의 설정 파일에 기록될 내용.`,"views.globalSettings.description":`이 제어판의 리스너, 접근, 호스트 상태, 백업, TLS, 경로 — 모든 워크스페이스가 공유합니다.`,"views.globalSettings.hostDescription":`이 컴퓨터 자체 리소스에 대한 경고 임계값.`,"views.globalSettings.interfaceDescription":`기본 UI 대신 직접 만든 제어판 UI를 제공합니다.`,"views.globalSettings.languageDescription":`이 제어판을 표시할 언어. 이 브라우저에 적용됩니다.`,"views.globalSettings.languageNote":`선택은 이 브라우저에 저장되며 로그인 페이지에도 적용됩니다. 제어판 자체의 로그 출력이나 API 메시지는 바뀌지 않습니다.`,"views.globalSettings.listenerDescription":`제어판이 리스닝하는 위치와 자신을 알리는 방식.`,"views.globalSettings.loadErrorTitle":`파일에만 있는 일부 값을 불러올 수 없습니다`,"views.globalSettings.navLabel":`전역 설정 섹션`,"views.globalSettings.pathsDescription":`home-hosted가 파일을 두는 위치. 전역과 워크스페이스별.`,"views.globalSettings.saveFailed":`설정을 저장할 수 없습니다.`,"views.globalSettings.saved":`설정을 저장했습니다.`,"views.globalSettings.savedRebinding":`설정을 저장했습니다 — 제어판이 새 주소로 이동 중입니다.`,"views.globalSettings.savedToast":`설정 저장됨`,"views.globalSettings.sectionAuthentication":`인증`,"views.globalSettings.sectionBackups":`백업`,"views.globalSettings.sectionHost":`호스트 상태`,"views.globalSettings.sectionInterface":`인터페이스`,"views.globalSettings.sectionListener":`리스너`,"views.globalSettings.sectionPaths":`경로`,"views.globalSettings.sectionTls":`TLS`,"views.globalSettings.title":`전역 설정`,"views.globalSettings.tlsDescription":`자체 인증서로 제어판을 HTTPS로 제공합니다.`,"views.logs.allStreams":`모든 스트림`,"views.logs.clear":`지우기`,"views.logs.clearDescription":`{server} — 디스크의 파일이 잘립니다. 프로세스는 계속 실행되며 이후 줄은 여기서부터 기록됩니다.`,"views.logs.clearFile":`파일 지우기`,"views.logs.clearNote":`출력이 아직 필요하면 먼저 다운로드하세요 — 제어판에서는 되돌릴 수 없습니다.`,"views.logs.clearTitle":`저장된 로그 파일을 지울까요?`,"views.logs.fileEmpty":`저장된 파일이 비어 있습니다.`,"views.logs.loadedLines":`{count}줄을 불러왔습니다`,"views.logs.modeLive":`실시간 스트림`,"views.logs.modePersisted":`영구 저장`,"views.logs.noServersDescription":`하나 추가하면 그 출력이 여기에 영구 저장됩니다.`,"views.logs.noServersTitle":`서버 없음`,"views.logs.nothingOnDisk":`이 서버의 디스크에는 아무것도 없습니다 — 영구 저장이 꺼져 있거나 아직 기록한 내용이 없습니다.`,"views.logs.nothingPersisted":`영구 저장된 것 없음`,"views.logs.persistedSummary":`{workspace} · 서버 {total}대 중 {persisted}대가 디스크에 · {size}`,"views.logs.persistedTitle":`영구 저장된 로그`,"views.logs.pickServerDescription":`영구 저장된 출력과 실시간 스트림은 서버별입니다. 목록에서 하나를 고르세요.`,"views.logs.pickServerTitle":`서버 선택`,"views.logs.reload":`다시 불러오기`,"views.logs.retentionNote":`로테이션과 보존은 워크스페이스 설정 → 로그에서 설정합니다.`,"views.logs.searchAria":`로그 검색`,"views.logs.searchPlaceholder":`끝부분 창 검색`,"views.logs.searchedLines":`{count}줄을 검색했습니다`,"views.logs.streamAria":`스트림`,"views.logs.tailAria":`끝부분 크기`,"views.logs.waitingOutput":`연결됨 — 출력을 기다리는 중입니다.`,"views.overview.acrossTree":`트리 전체에서`,"views.overview.cpuNow":`지금 {value}% cpu`,"views.overview.crashedOrUnhealthy":`충돌 또는 비정상`,"views.overview.description":`이 워크스페이스의 모든 서버 라이브 상태. 하나의 이벤트 스트림으로 갱신됩니다.`,"views.overview.emptyDescription":`이 워크스페이스가 계속 살려 둘 첫 프로세스를 추가하세요.`,"views.overview.emptyTitle":`이 워크스페이스에 서버가 없습니다`,"views.overview.enabled":`{count}대 사용`,"views.overview.longestUptime":`최장 가동 시간`,"views.overview.needsAttention":`확인 필요`,"views.overview.notUp":`{count}대 중지됨`,"views.overview.nothingBroken":`고장 난 것이 없습니다`,"views.overview.nothingRunning":`실행 중인 것이 없습니다`,"views.overview.openFullList":`전체 목록 열기`,"views.overview.peak":`최고 {value}`,"views.overview.processMemory":`프로세스 메모리`,"views.overview.recentActivity":`최근 활동`,"views.overview.running":`실행 중`,"views.overview.sampling":`리소스 기록은 5초마다 샘플링되어 이 세션 동안 보관됩니다`,"views.overview.stopped":`중지됨`,"views.overview.workspaceLabel":`워크스페이스 {id}`,"views.route.server":`서버`,"views.serverDetail.allServers":`모든 서버`,"views.serverDetail.autostart":`제어판과 함께 자동 시작`,"views.serverDetail.backToServers":`서버로 돌아가기`,"views.serverDetail.bind":`바인드`,"views.serverDetail.bindCustom":`{bind} — 사용자 지정`,"views.serverDetail.bindLan":`0.0.0.0 — 모든 인터페이스`,"views.serverDetail.bindLocal":`127.0.0.1 — 이 컴퓨터에서만`,"views.serverDetail.closeEditor":`편집기 닫기`,"views.serverDetail.copyJson":`JSON 구성 복사`,"views.serverDetail.crashes24":`24시간 충돌`,"views.serverDetail.dependencies":`의존성`,"views.serverDetail.detached":`분리됨`,"views.serverDetail.detachedHint":`이 프로세스는 스스로를 교체했습니다. 제어판은 두 번째 복사본을 시작하지 않고 후속 프로세스를 인수했습니다. 중지는 계속 작동하며, 출력은 후속 프로세스가 보낸 곳에 남습니다.`,"views.serverDetail.disableServer":`서버 사용 안 함`,"views.serverDetail.editHint":`이 항목의 모든 필드 편집`,"views.serverDetail.effectiveConfig":`적용되는 구성`,"views.serverDetail.effectiveConfigNote":`설정의 기본값이 이미 이 값들에 병합되어 있습니다.`,"views.serverDetail.enableServer":`서버 사용`,"views.serverDetail.eventHistory":`이벤트 기록`,"views.serverDetail.eventHistoryNote":`제어판이 24시간 동안 보관합니다.`,"views.serverDetail.fieldArgs":`인수`,"views.serverDetail.fieldBackupPaths":`백업 경로`,"views.serverDetail.fieldBootstrap":`부트스트랩`,"views.serverDetail.fieldCommand":`명령`,"views.serverDetail.fieldCwd":`작업 디렉터리`,"views.serverDetail.fieldDataEnvs":`데이터 환경 변수`,"views.serverDetail.fieldDependsOn":`의존 대상`,"views.serverDetail.fieldEnv":`환경 변수`,"views.serverDetail.fieldEnvFile":`환경 파일`,"views.serverDetail.fieldHealth":`상태`,"views.serverDetail.fieldLogBuffer":`로그 버퍼`,"views.serverDetail.fieldOnPortConflict":`포트 충돌 시`,"views.serverDetail.fieldPortBind":`포트 · 바인드`,"views.serverDetail.fieldRestart":`다시 시작`,"views.serverDetail.fieldRssLimit":`RSS 제한`,"views.serverDetail.fieldStop":`중지`,"views.serverDetail.fields":`필드`,"views.serverDetail.goneDescription":`{id}이(가) 더 이상 servers.config.json에 없습니다. 다른 탭에서 제거되었을 수 있습니다.`,"views.serverDetail.goneTitle":`해당 서버가 없습니다`,"views.serverDetail.health":`상태`,"views.serverDetail.healthProbe":`상태 검사`,"views.serverDetail.lastCrash":`마지막 충돌`,"views.serverDetail.lastProbe":`마지막 검사`,"views.serverDetail.logBufferLines":`{count}줄`,"views.serverDetail.memoryRss":`메모리 (RSS)`,"views.serverDetail.moreActions":`{label}의 추가 작업`,"views.serverDetail.neverWritten":`이 서버는 아직 아무것도 기록하지 않았습니다.`,"views.serverDetail.nextAttempt":`다음 시도`,"views.serverDetail.none":`없음`,"views.serverDetail.off":`꺼짐`,"views.serverDetail.persistent":`상주`,"views.serverDetail.persistentHint":"이 항목은 자체 nanny로 실행되므로 제어판이 중지, 재시작 또는 종료되어도 계속 실행됩니다. `home-hosted down`은 중지하지 않고 보고만 하며, 중지하는 것은 중지뿐입니다.","views.serverDetail.pid":`PID`,"views.serverDetail.portFree":`사용 가능`,"views.serverDetail.portInUse":`사용 중`,"views.serverDetail.portState":`포트 상태`,"views.serverDetail.probeFailed":`상태 검사가 통과되지 않았습니다.`,"views.serverDetail.probeFailedFor":`상태 검사가 {duration} 동안 통과되지 않았습니다.`,"views.serverDetail.processes":`프로세스`,"views.serverDetail.rawJson":`원시 JSON`,"views.serverDetail.removeAutostart":`자동 시작에서 제거`,"views.serverDetail.removeDescription":`{label}이(가) servers.config.json에서 제거됩니다. 프로세스가 중지되고 로그와 충돌 기록도 함께 삭제됩니다.`,"views.serverDetail.removeNote":`제어판에서는 되돌릴 수 없습니다 — 항목을 직접 또는 백업에서 다시 추가해야 합니다.`,"views.serverDetail.removeServer":`서버 제거`,"views.serverDetail.removeTitle":`이 서버를 제거할까요?`,"views.serverDetail.restart":`다시 시작`,"views.serverDetail.restarts":`재시작`,"views.serverDetail.sectionConfig":`구성`,"views.serverDetail.sectionHistory":`기록`,"views.serverDetail.sectionOutput":`실시간 출력`,"views.serverDetail.start":`시작`,"views.serverDetail.startsOnItsOwn":`스스로 시작합니다. {code}에 id를 추가하면 다른 서버 뒤에 오도록 순서를 정할 수 있습니다.`,"views.serverDetail.stop":`중지`,"views.serverDetail.telemetry":`텔레메트리`,"views.serverDetail.telemetryNote":`이 페이지가 열려 있는 동안 5초마다 샘플링됩니다.`,"views.serverDetail.unhealthyFor":`비정상 지속 시간`,"views.serverDetail.uptime24":`24시간 가동`,"views.serverDetail.waitingFirstLine":`첫 줄을 기다리는 중…`,"views.servers.clearFilter":`필터 지우기`,"views.servers.clearFilters":`필터 지우기`,"views.servers.description":`{workspace}의 servers.config.json에 있는 모든 항목. 실시간 리소스, 상태, 기록 포함.`,"views.servers.emptyDescription":`이 제어판이 감독할 첫 프로세스를 추가하세요. 명령, 인수, 환경 변수, 작업 디렉터리는 모두 구성 파일에 있습니다.`,"views.servers.emptyTitle":`구성된 서버 없음`,"views.servers.filterAll":`전체`,"views.servers.filterAria":`서버 필터링`,"views.servers.filterAttention":`주의`,"views.servers.filterDisabled":`사용 안 함`,"views.servers.filterPlaceholder":`id, 레이블, 명령 또는 포트로 필터링`,"views.servers.filterRunning":`실행 중`,"views.servers.filterStopped":`중지됨`,"views.servers.noMatchDescription":`다른 상태를 시도하거나 검색을 지우세요.`,"views.servers.noMatchTitle":`이 필터와 일치하는 항목이 없습니다`,"views.settings.changesDescription":`저장하면 {workspace}의 설정에 기록될 내용.`,"views.settings.configErrorNote":`제어판은 기존 구성으로 계속 감독합니다. 파일을 고치면 스스로 다시 불러옵니다.`,"views.settings.configErrorTitle":`워크스페이스 구성을 읽을 수 없습니다`,"views.settings.configWarningTitle":`이 워크스페이스의 구성에 경고가 있습니다`,"views.settings.ddnsDescription":`어느 등록 기관이 보유하든 호스트 이름을 이 컴퓨터의 공인 주소로 계속 가리키게 합니다.`,"views.settings.defaultsDescription":`이 워크스페이스에서 자체 값을 설정하지 않은 모든 항목에 적용됩니다.`,"views.settings.description":`{workspace}의 서버 기본값, 로그 보존, 알림, 동적 DNS.`,"views.settings.logsDescription":`이 워크스페이스가 출력을 디스크에 얼마나 오래 보관하는지.`,"views.settings.navLabel":`워크스페이스 설정 섹션`,"views.settings.notificationsDescription":`이 워크스페이스의 충돌과 상태 경고를 Telegram 채팅으로 보냅니다.`,"views.settings.saveFailed":`설정을 저장할 수 없습니다.`,"views.settings.saved":`워크스페이스 설정을 저장했습니다.`,"views.settings.savedToast":`워크스페이스 설정 저장됨`,"views.settings.sectionDdns":`동적 DNS`,"views.settings.sectionDefaults":`서버 기본값`,"views.settings.sectionLogs":`로그`,"views.settings.sectionNotifications":`알림`,"workspace.new":`새 워크스페이스`,"workspace.rename":`워크스페이스 이름 변경`,"workspace.create":`워크스페이스 만들기`,"workspace.renameAction":`이름 변경`,"workspace.createHint":`자체 설정, 서버, 로그, 시크릿, 백업 항목을 가지며 같은 제어판에서 제공됩니다.`,"workspace.renameHint":`이름만 바뀝니다. 워크스페이스 id는 그대로라 URL과 경로가 계속 작동합니다.`,"workspace.nameHint":`상단 표시줄에 표시됩니다.`,"workspace.nameHintId":`상단 표시줄에 표시됩니다. Id: {id}`,"workspace.none":`워크스페이스 없음`,"workspace.delete":`워크스페이스 삭제`,"days.remaining":{other:`{count}일`},"editor.unsaved":{one:`저장하지 않은 변경`,other:`저장하지 않은 변경`},"editor.saveChanges":{one:`변경 {count}건 저장`,other:`변경 {count}건 저장`},"logs.lines":{other:`{count}줄`},"palette.results":{other:`결과 {count}개`},"proxy.retry.inMinutes":{one:`약 {count}분`,other:`약 {count}분`},"proxy.retry.inHours":{one:`약 {count}시간`,other:`약 {count}시간`},"servers.total":{other:`서버 {count}개`},"servers.running":{other:`{count}개 실행 중`},"settings.backup.entriesCount":{one:`항목 {count}개`,other:`항목 {count}개`},"settings.backup.itemsSelected":{one:`{count}개 선택됨`,other:`{count}개 선택됨`},"settings.ddns.hostnameCount":{one:`호스트 이름 {count}개`,other:`호스트 이름 {count}개`},"settings.shell.fieldsChanged":{one:`필드 변경됨`,other:`필드 변경됨`},"settings.shell.saveChanges":{one:`변경 {count}건 저장`,other:`변경 {count}건 저장`},"views.globalOverview.needLook":{one:`서버 {count}대를 살펴봐야 합니다`,other:`서버 {count}대를 살펴봐야 합니다`},"views.logs.filesOnDisk":{one:`파일 {count}개`,other:`파일 {count}개`},"views.overview.needLook":{one:`서버 {count}대를 살펴봐야 합니다`,other:`서버 {count}대를 살펴봐야 합니다`}};export{e as default};
|
|
1
|
+
var e={"activity.emptyTitle":`지난 24시간 동안 이벤트 없음`,"activity.emptyDescription":`시작, 종료, 충돌, 복구가 발생하는 대로 여기에 표시됩니다.`,"activity.ran":`{duration} 실행`,"addServer.title":`서버 추가`,"addServer.description":`{workspace}의 servers.config.json에 항목을 추가합니다. 생략한 정책은 모두 기본값에서 상속됩니다.`,"addServer.thisWorkspace":`이 워크스페이스`,"addServer.identity":`식별 정보`,"addServer.id":`Id`,"addServer.idHint":`소문자, 숫자, 대시, 밑줄. URL과 로그에 사용됩니다.`,"addServer.labelHint":`제어판에 표시됩니다. 기본값은 id입니다.`,"addServer.process":`프로세스`,"addServer.commandHint":`셸 없이 실행됩니다.`,"addServer.argumentsHint":`한 줄에 인수 하나. 줄 안의 공백은 유지됩니다.`,"addServer.portLifecycle":`포트와 수명 주기`,"addServer.bindHint":`lan은 네트워크에 노출합니다. 인증 뒤에서만 사용하세요.`,"addServer.advanced":`고급 설정`,"addServer.advancedHint":`환경 변수, 백업, 정책, 수명 주기, 부트스트랩`,"addServer.backups":`백업`,"addServer.backupIgnore":`알려진 생성 파일 무시`,"addServer.bootstrapDescription":`첫 시작 전에 실행되는 일회성 명령입니다.`,"addServer.bootstrapHint":`설치, 마이그레이션, 다운로드 — 매번이 아니라 첫 시작 전에.`,"addServer.policyResources":`정책과 리소스`,"addServer.logBufferHint":`비워 두면 기본값을 사용합니다.`,"addServer.inheritNote":`다시 시작, 상태, 중지는 {settings}와 같게 시작합니다. 여기서 변경하면 상속으로 남지 않고 이 항목에 기록됩니다.`,"addServer.serverDefaults":`설정 → 서버 기본값`,"addServer.placeholdersTitle":`사용 가능한 인수 자리표시자`,"addServer.submit":`servers.config.json에 추가`,"app.name":`home-hosted`,"app.tagline":`프로세스 감독 제어판`,"bind.local":`local — 127.0.0.1`,"bind.lan":`lan — 0.0.0.0`,"bind.explicit":`{bind} — 명시적`,"common.cancel":`취소`,"common.confirm":`확인`,"common.reset":`초기화`,"common.keepIt":`그대로 두기`,"common.remove":`제거`,"common.close":`닫기`,"common.save":`저장`,"common.saving":`저장 중…`,"common.discard":`변경 사항 버리기`,"common.delete":`삭제`,"common.edit":`편집`,"common.add":`추가`,"common.retry":`다시 시도`,"common.copy":`복사`,"common.copied":`복사됨`,"common.enabled":`사용`,"common.disabled":`사용 안 함`,"common.none":`없음`,"common.unknown":`알 수 없음`,"common.loading":`불러오는 중…`,"common.selectAll":`모두 선택`,"common.selectNone":`선택 해제`,"common.name":`이름`,"common.label":`레이블`,"common.hostname":`호스트 이름`,"common.port":`포트`,"common.command":`명령`,"common.environment":`환경 변수`,"common.memory":`메모리`,"common.cpu":`CPU`,"common.disk":`디스크`,"common.uptime":`가동 시간`,"common.status":`상태`,"common.actions":`작업`,"common.details":`세부 정보`,"common.overview":`개요`,"common.warning":`경고`,"common.error":`오류`,"common.confirmQuestion":`{label}?`,"common.unset":`설정 안 됨`,"common.never":`없음`,"common.now":`방금`,"common.dismiss":`닫기`,"connection.live":`실시간`,"connection.connecting":`연결 중`,"connection.reconnecting":`다시 연결 중`,"connection.liveUpdates":`실시간 업데이트`,"editor.title":`설정 편집`,"editor.description":`{file}에 재정의를 기록합니다. 건드리지 않은 항목은 계속 기본값을 상속합니다.`,"editor.inSync":`동기화됨`,"editor.process":`프로세스`,"editor.processDescription":`무엇을, 어디서, 어떤 환경으로 실행하는지.`,"editor.labelPlaceholder":`비워 두면 id 사용`,"editor.argumentsHint":`한 줄에 하나. {port} {host} {home} {projectDir} {dataRoot} {id} {label} {cwd} {bind} {lanIp}가 치환됩니다.`,"editor.portTitle":`포트와 바인딩`,"editor.portDescription":`포트를 어떻게 사전 확인하고 프로세스가 어디에서 접근 가능한지.`,"editor.bindHint":`설정이 이미 지정한 사용자 지정 IPv4는 계속 선택할 수 있습니다.`,"editor.lifecycle":`수명 주기`,"editor.lifecycleDescription":`감독자가 이 항목을 관리하는지 여부.`,"editor.save":`servers.config.json에 저장`,"editor.changesTitle":`저장하지 않은 변경`,"editor.changesDescription":`저장하면 servers.config.json에 기록될 내용.`,"editor.nothingToSave":`저장할 항목이 없습니다.`,"health.disabled":`확인 안 함`,"health.unknown":`검사 안 됨`,"health.healthy":`정상`,"health.unhealthy":`비정상`,"history.start":`시작됨`,"history.exit":`종료됨`,"history.crash":`충돌함`,"history.forcedRestart":`강제 재시작`,"history.unhealthy":`비정상`,"history.recovered":`복구됨`,"host.loadPerCpu":`부하 / cpu`,"host.cpuTemp":`CPU 온도`,"host.samplingOff":`호스트 샘플링이 꺼져 있습니다`,"host.samplingOffDescription":`부하, 메모리, 디스크, 온도를 수집하려면 설정에서 켜세요.`,"host.swap":`스왑`,"host.cpus":`CPU`,"host.loadAverage":`부하 1 / 5 / 15`,"host.memoryUsed":`메모리 사용량`,"host.sampled":`샘플링 시각`,"host.filesystems":`파일 시스템`,"host.thresholdsBreached":`임계값 초과`,"killPort.trigger":`포트 {port}를 점유한 대상 강제 종료`,"killPort.title":`포트 {port}의 프로세스를 강제 종료할까요?`,"killPort.body":`먼저 중지를 요청하고, 무시할 때만 강제 종료합니다. 이 제어판이 감독하는 대상은 거부되므로 관리 중인 서버가 이렇게 사라지지는 않습니다.`,"killPort.confirm":`강제 종료`,"language.label":`언어`,"language.select":`언어 선택`,"lifecycle.restartTitle":`재시작 정책`,"lifecycle.restartDescription":`충돌 후 시도 사이의 백오프.`,"lifecycle.restartOnCrash":`충돌 시 다시 시작`,"lifecycle.maxRetries":`최대 재시도`,"lifecycle.maxRetriesHint":`서버가 충돌 상태로 남기까지의 시도 횟수.`,"lifecycle.baseDelay":`기본 지연 (ms)`,"lifecycle.factor":`백오프 계수`,"lifecycle.maxDelay":`최대 지연 (ms)`,"lifecycle.resetAfter":`리셋까지 (ms)`,"lifecycle.resetAfterHint":`이만큼 실행하면 재시도 카운터가 초기화됩니다.`,"lifecycle.healthTitle":`상태 확인`,"lifecycle.healthDescription":`프로세스가 올라온 뒤 준비 상태를 어떻게 검사하는지.`,"lifecycle.probe":`이 서버 검사`,"lifecycle.probeType":`검사 유형`,"lifecycle.probePort":`TCP 포트 — 연결만`,"lifecycle.probeHttp":`HTTP 요청 — 응답 검증`,"lifecycle.interval":`간격 (ms)`,"lifecycle.timeout":`시간 제한 (ms)`,"lifecycle.unhealthyAfter":`비정상 판정 실패 횟수`,"lifecycle.unhealthyAfterHint":`연속 실패한 검사 횟수.`,"lifecycle.forceRestartAfter":`강제 재시작까지 (ms)`,"lifecycle.forceRestartAfterHint":`0이면 사용하지 않습니다.`,"lifecycle.startTimeout":`시작 시간 제한 (ms)`,"lifecycle.httpPath":`HTTP 경로`,"lifecycle.httpMethod":`HTTP 메서드`,"lifecycle.expectStatus":`기대 상태`,"lifecycle.expectStatusHint":`비워 두면 아래 값을 모두 허용합니다.`,"lifecycle.expectStatusBelow":`이 상태 미만이면 정상`,"lifecycle.expectBody":`본문에 포함할 문자열`,"lifecycle.expectBodyPlaceholder":`선택 사항인 부분 문자열`,"lifecycle.headBodyHint":`HEAD에는 응답 본문이 없어 이 검사는 무시됩니다 — GET을 사용하거나 비우세요.`,"lifecycle.stopTitle":`중지 동작`,"lifecycle.stopDescription":`프로세스 트리를 어떻게 종료시키는지.`,"lifecycle.signal":`시그널`,"lifecycle.signalTerm":`SIGTERM — 중지 요청`,"lifecycle.signalInt":`SIGINT — 인터럽트 (Ctrl-C)`,"lifecycle.signalKill":`SIGKILL — 즉시 강제 종료`,"lifecycle.grace":`유예 기간 (ms)`,"lifecycle.killGroup":`프로세스 그룹 전체 강제 종료`,"lifecycle.killPortHolders":`포트를 점유한 대상도 강제 종료`,"login.title":`계속하려면 로그인하세요`,"login.firstRunTitle":`이 제어판에는 아직 비밀번호가 없습니다`,"login.firstRunSubtitle":`이 컴퓨터의 어떤 것이든 접근할 수 있습니다. 로그인한 직후에 비밀번호를 설정하세요.`,"login.authOffTitle":`인증이 꺼져 있습니다`,"login.authOffSubtitle":`제어판은 루프백에서만 수신하며, 지금은 그것이 유일한 보호입니다.`,"login.subtitle":`제어판이 보호되고 있습니다. 계속하려면 비밀번호를 입력하세요.`,"login.password":`비밀번호`,"login.showPassword":`비밀번호 표시`,"login.hidePassword":`비밀번호 숨기기`,"login.signIn":`로그인`,"login.openDashboard":`대시보드 열기`,"login.exposed":`노출됨`,"login.defaultPasswordWarning":`아직 기본 비밀번호 {password}를 사용 중입니다. 설정에서 변경하세요 — 변경하기 전까지 127.0.0.1 밖으로의 바인딩은 거부됩니다.`,"login.noPasswordWarning":`비밀번호가 설정되지 않았습니다. 이 컴퓨터에서 설정을 열어 추가하거나 {command}를 실행하세요.`,"login.sessionNote":`세션은 마지막 방문 후 {days}일 동안 로그인 상태를 유지합니다 — 요청마다 기간이 연장됩니다. 로그아웃은 이 브라우저만 정리합니다.`,"login.servedFromThisMachine":`이 컴퓨터에서 제공됨`,"logs.emptyHint":`아직 출력이 없습니다.`,"logs.noMatches":`이 검색이나 스트림 필터와 일치하는 항목이 없습니다.`,"logs.searchPlaceholder":`이 출력 검색`,"logs.searchLabel":`로그 출력 검색`,"logs.clearSearch":`검색 지우기`,"logs.prevMatch":`이전 일치`,"logs.nextMatch":`다음 일치`,"logs.showTimestamps":`타임스탬프 표시`,"logs.hideTimestamps":`타임스탬프 숨기기`,"logs.timestampsShort":`ts`,"logs.pause":`일시 정지`,"logs.follow":`따라가기`,"logs.clearHint":`메모리 버퍼 비우기`,"logs.clearLabel":`로그 버퍼 비우기`,"logs.downloadHint":`저장된 파일 다운로드`,"logs.downloadLabel":`로그 파일 다운로드`,"logs.outputLabel":`로그 출력`,"logs.jumpToLatest":`최신으로 이동`,"logs.streaming":`스트리밍 중`,"logs.paused":`일시 정지됨`,"logs.snapshot":`스냅숏`,"logs.linesOf":`{total}줄 중 {count}줄`,"logs.matches":`{count}건 일치`,"logs.rowHeight":`행 높이 {height}px · 윈도 처리`,"logs.streamAll":`전체`,"logs.streamOut":`out`,"logs.streamErr":`err`,"logs.streamSys":`sys`,"metric.emptyHint":`수집 중…`,"nav.global":`전역`,"nav.workspace":`워크스페이스`,"nav.others":`기타`,"nav.overview":`개요`,"nav.servers":`서버`,"nav.logs":`로그`,"nav.workspaceSettings":`워크스페이스 설정`,"nav.globalOverview":`전역 개요`,"nav.globalSettings":`전역 설정`,"nav.reverseProxy":`리버스 프록시`,"nav.navigation":`탐색`,"nav.closeNavigation":`탐색 닫기`,"nav.hostVitals":`호스트 상태`,"notice.configError":`설정을 읽을 수 없습니다: {error}`,"notice.configErrorHint":`제어판은 기존 설정으로 계속 실행됩니다. {path}를 고치면 스스로 다시 불러옵니다.`,"notice.defaultPassword":`이 제어판은 아직 기본 비밀번호를 사용 중입니다.`,"notice.defaultPasswordHint":`전역 설정에서 변경하세요 — 변경하기 전까지 127.0.0.1 밖으로의 바인딩은 거부됩니다.`,"notice.noPassword":`인증은 켜져 있지만 비밀번호가 없어 아무것도 요구하지 않습니다.`,"notice.noPasswordHint":`전역 설정에서 비밀번호를 설정해 제어판을 실제로 잠그세요.`,"notice.exposed":`이 제어판은 127.0.0.1 밖에서 접근할 수 있습니다.`,"notice.exposedHint":`비밀번호를 강하게 유지하거나, TLS를 종료하는 프록시를 앞에 두세요.`,"notice.authOff":`인증이 사용 안 함입니다 — 제어판은 루프백 바인딩으로만 보호됩니다.`,"onPortConflict.block":`block — 시작 거부`,"onPortConflict.warn":`warn — 그래도 시작`,"onPortConflict.follow":`follow — 자신의 분리된 재시작을 인수`,"onPortConflict.reclaim":`reclaim — 감독되는 복사본으로 교체`,"onPortConflict.kill":`kill — 포트를 점유한 대상을 중지`,"palette.placeholder":`서버로 이동, 작업 실행, 설정 열기…`,"palette.openServer":`{label} 열기`,"palette.serverLogs":`{label}의 로그`,"palette.startServer":`{label} 시작`,"palette.stopServer":`{label} 중지`,"palette.restartServer":`{label} 다시 시작`,"palette.goOverview":`개요로 이동`,"palette.goGlobalOverview":`전역 개요로 이동`,"palette.goGlobalSettings":`전역 설정으로 이동`,"palette.goProxy":`리버스 프록시로 이동`,"palette.goServers":`서버로 이동`,"palette.goLogs":`로그로 이동`,"palette.goWorkspaceSettings":`워크스페이스 설정으로 이동`,"palette.startAll":`여기에서 사용 설정된 모든 서버 시작`,"palette.stopAll":`여기에서 모든 서버 중지`,"palette.switchWorkspace":`{label}(으)로 전환`,"palette.globalSetting":`전역 설정: {label}`,"palette.workspaceSetting":`워크스페이스 설정: {label}`,"palette.theme":`{theme} 테마`,"palette.groupServers":`서버`,"palette.groupActions":`작업`,"palette.groupNavigate":`이동`,"palette.groupWorkspaces":`워크스페이스`,"palette.groupAppearance":`모양`,"palette.navigate":`이동`,"palette.run":`실행`,"palette.noMatches":`“{query}”와 일치하는 항목이 없습니다.`,"proxy.account.automatic":`자동 (응답할 수 있는 유일한 계정)`,"proxy.account.noTxt":`TXT 미지원`,"proxy.account.noCredentials":`자격 증명 없음`,"proxy.account.gone":`해당 계정은 더 이상 설정되어 있지 않습니다.`,"proxy.account.emptyHint":`DNS-01은 여기에 챌린지 레코드를 기록합니다. 비워 두면 챌린지에 응답할 수 있는 계정이 하나뿐일 때 그것을 사용합니다.`,"proxy.account.cannotWrite":`{provider} 계정은 TXT 레코드를 기록할 수 없어 DNS-01 챌린지에 응답할 수 없습니다.`,"proxy.account.noCredentialsYet":`이 {provider} 계정에는 아직 저장된 자격 증명이 없습니다.`,"proxy.account.through":`챌린지는 이 {provider} 계정을 통해 기록됩니다.`,"proxy.certificate.title":`업로드된 인증서`,"proxy.certificate.description":`“업로드된 인증서”로 설정된 경로가 제공합니다. 그 외 — 공인이든 로컬이든 — 는 엔진이 스스로 인증합니다.`,"proxy.certificate.add":`인증서 추가`,"proxy.certificate.emptyTitle":`업로드된 인증서 없음`,"proxy.certificate.emptyDescription":`“업로드된 인증서”로 설정된 경로에는 호스트 이름을 포괄하는 쌍이 필요합니다. 없으면 엔진이 제공할 것이 없습니다.`,"proxy.certificate.daysLeft":`{days}일 남음`,"proxy.certificate.subject":`주체`,"proxy.certificate.issuer":`발급자`,"proxy.certificate.validUntil":`만료일`,"proxy.certificate.covers":`포괄`,"proxy.certificate.noSans":`SAN에 호스트 이름 없음`,"proxy.certificate.removeAria":`{name} 제거`,"proxy.certificate.removeQuestion":`“{name}”을(를) 제거할까요?`,"proxy.certificate.removeBody":`쌍이 디스크에서 삭제됩니다. “업로드된 인증서”로 설정된 경로는 변경할 때까지 엔진 자체 인증서를 계속 제공하며, 아직 그것을 제공하는 동안에는 제어판이 이 삭제를 거부합니다.`,"proxy.certificate.removeIt":`제거하기`,"proxy.certificate.stored":`“{label}”을(를) 저장했습니다.`,"proxy.certificate.removed":`“{name}”을(를) 제거했습니다.`,"proxy.certificateDialog.title":`인증서 추가`,"proxy.certificateDialog.description":`쌍은 id 이름으로 디스크에 저장되며, “업로드된 인증서”로 설정된 경로가 이를 제공할 수 있습니다.`,"proxy.certificateDialog.label":`레이블`,"proxy.certificateDialog.labelPlaceholder":`홈 와일드카드`,"proxy.certificateDialog.id":`Id`,"proxy.certificateDialog.idHint":`디스크의 파일 이름이 됩니다`,"proxy.certificateDialog.certFile":`인증서 파일 (.pem, .crt)`,"proxy.certificateDialog.keyFile":`개인 키 파일 (.pem, .key)`,"proxy.certificateDialog.pasteCert":`또는 인증서 붙여 넣기`,"proxy.certificateDialog.pasteKey":`또는 개인 키 붙여 넣기`,"proxy.certificateDialog.certPlaceholder":`-----BEGIN CERTIFICATE-----`,"proxy.certificateDialog.keyPlaceholder":`-----BEGIN PRIVATE KEY-----`,"proxy.certificateDialog.store":`인증서 저장`,"proxy.certificateDialog.errorLabel":`레이블은 필수입니다`,"proxy.certificateDialog.errorId":`id는 문자나 숫자로 시작하고 그 뒤에 문자, 숫자, 대시, 밑줄만 올 수 있습니다`,"proxy.certificateDialog.errorTaken":`“{id}”는 다른 인증서가 이미 사용 중입니다`,"proxy.certificateDialog.errorCertificate":`인증서를 붙여 넣거나 선택하세요`,"proxy.certificateDialog.errorPrivateKey":`개인 키를 붙여 넣거나 선택하세요`,"proxy.engine.title":`엔진`,"proxy.engine.description":`리버스 프록시 본체. 제어판은 현재 빌드를 내려받아 감독하고, 엔진 자체의 관리 API를 통해 설정을 적용합니다.`,"proxy.engine.notInFrame":`프록시 상태는 아직 이 제어판의 범위에 없습니다.`,"proxy.engine.readFailed":`엔진을 읽을 수 없습니다`,"proxy.engine.notInstalled":`설치된 엔진 없음`,"proxy.engine.installNote":`설치하면 제어판이 감독하는 현재 {engine} 릴리스를 내려받습니다 — 약 46 MB, 한 번만. 경로를 추가하고 프록시를 켜기 전까지는 아무것도 노출되지 않습니다.`,"proxy.engine.version":`버전`,"proxy.engine.notProbed":`아직 검사 안 됨`,"proxy.engine.source":`출처`,"proxy.engine.sourceCustom":`직접 설정한 경로`,"proxy.engine.sourceDownloaded":`제어판이 내려받음`,"proxy.engine.size":`크기`,"proxy.engine.binary":`바이너리`,"proxy.engine.copyPath":`바이너리 경로 복사`,"proxy.engine.address":`현재 주소`,"proxy.engine.process":`프로세스`,"proxy.engine.certificates":`인증서`,"proxy.engine.noCert":`아직 공인 인증서 없음`,"proxy.engine.expiresSoon":`가장 빠른 만료가 {days}일 후`,"proxy.engine.acme":`ACME 인증서`,"proxy.engine.localCa":`로컬 CA`,"proxy.engine.dns01":`DNS-01`,"proxy.engine.tcpUdp":`TCP/UDP`,"proxy.engine.documentation":`{engine} 문서`,"proxy.engine.failed":`엔진이 실패를 보고했습니다`,"proxy.engine.setcapHint":`특권 포트(1024 미만)는 Linux에서 한 번 이 작업이 필요합니다:`,"proxy.engine.copyCommand":`명령 복사`,"proxy.engine.install":`엔진 설치`,"proxy.engine.start":`시작`,"proxy.engine.stop":`중지`,"proxy.engine.apply":`설정 적용`,"proxy.engine.revert":`되돌리기`,"proxy.engine.revertHint":`마지막 설정 이전에 적용된 설정으로 돌아갑니다`,"proxy.engine.update":`엔진 업데이트`,"proxy.listener.title":`리스너와 인증서`,"proxy.listener.description":`프록시가 리스닝하는 위치. 80과 443은 라우터가 전달하는 포트이자 ACME 챌린지가 기대하는 포트입니다. 1024 미만 포트에는 특권 바인딩이 필요합니다.`,"proxy.listener.unprivilegedPorts":`비특권 포트`,"proxy.listener.run":`리버스 프록시 실행`,"proxy.listener.runHint":`설정 저장으로 저장됩니다. 제어판이 그에 맞춰 엔진을 시작하거나 중지합니다.`,"proxy.listener.httpPort":`HTTP 포트`,"proxy.listener.httpPortHint":`ACME HTTP-01 챌린지와 HTTPS로의 리디렉션.`,"proxy.listener.httpsPort":`HTTPS 포트`,"proxy.listener.httpsPortHint":`인증서를 제공하는 위치.`,"proxy.listener.useFallback":`{http} / {https} 사용`,"proxy.listener.useStandard":`80 / 443 사용`,"proxy.listener.forwardHint":`비특권으로 실행 중 — 라우터에서 80과 443을 이 포트로 전달하세요.`,"proxy.listener.privilegedTitle":`1024 미만 포트에는 특권 바인딩이 필요합니다`,"proxy.listener.privilegedBody":`제어판을 본인 사용자로 실행하면 권한 없이 80이나 443을 바인딩할 수 없습니다. 한 번 {how}한 뒤 엔진을 다시 시작하거나, {http}/{https}를 유지하고 라우터에서 80/443을 전달하세요. Windows에서는 바인딩 자체는 자유롭지만 다른 대상이 점유하고 있을 수 있습니다.`,"proxy.listener.privilegedWithSetcap":`엔진 바이너리에 {command} 적용`,"proxy.listener.email":`ACME 계정 이메일`,"proxy.listener.emailPlaceholder":`you@example.com`,"proxy.listener.emailHint":`Let's Encrypt가 인증서 만료를 경고하는 데 사용합니다. 로컬 전용 이름은 엔진 자체 CA를 쓰므로 필요하지 않습니다.`,"proxy.listener.emailNeededTitle":`자동 HTTPS에는 이메일이 필요합니다`,"proxy.listener.emailNeededBody":`“{host}”는 공인 호스트 이름이므로 엔진이 CA에 인증서를 요청하며 계정 주소가 필요합니다. 주소를 입력하거나, 경로의 TLS를 끄거나, 시험 중에는 스테이징 엔드포인트를 켜세요.`,"proxy.listener.staging":`ACME 스테이징 엔드포인트 사용`,"proxy.listener.stagingHint":`시험 중에는 신뢰되지 않는 인증서가 발급되고 요청 한도도 소모하지 않습니다.`,"proxy.listener.dns01":`DNS-01로 챌린지 응답`,"proxy.listener.dns01Hint":`제어판이 경로의 DNS 계정을 통해 챌린지 레코드를 기록하므로 인증서 발급에 인바운드 포트가 필요하지 않습니다.`,"proxy.listener.resolvers":`레코드 확인 대상`,"proxy.listener.resolversPlaceholder":`1.1.1.1, 8.8.8.8`,"proxy.listener.resolversHint":`엔진이 레코드를 읽는 네임서버. 비워 두면 자체 네임서버를 사용합니다. 스플릿 호라이즌 DNS로 다른 뷰가 보이는 경우 필요합니다.`,"proxy.listener.noAccountTitle":`챌린지에 응답할 DNS 계정이 없습니다`,"proxy.listener.noAccountBody":`DNS-01이 켜져 있지만 사용할 자격 증명을 가진 계정이 없습니다. 워크스페이스 설정 → 동적 DNS에서 추가하거나, 공인 이름은 포트 챌린지에 남아 도달할 수 없는 CA를 계속 기다립니다.`,"proxy.listener.manyAccountsTitle":`공인 경로마다 계정을 골라야 합니다`,"proxy.listener.manyAccountsBody":`응답할 수 있는 계정이 여러 개라 “자동”으로는 고를 수 없습니다. 경로마다 하나를 고르거나, 그 이름들은 포트 챌린지에 남습니다.`,"proxy.listener.accountNote":`경로마다 자체 계정을 고르므로 서로 다른 영역의 이름에도 알맞은 계정이 쓰입니다. “자동”으로 남긴 경로는 표에 있는 유일한 계정을 사용합니다. 어떤 계정도 응답하지 않는 이름은 포트 챌린지에 남습니다.`,"proxy.listener.pendingNote":`인증서가 아직 발급 중인 공인 이름도 그동안 접근할 수 있습니다 — 임시의 신뢰되지 않는 인증서를 쓰는 HTTPS, 또는 전달할 포트를 안내하는 페이지와 함께 일반 HTTP로.`,"proxy.retry.inFallback":`약 8시간`,"proxy.retryButton.force":`인증서 재시도 강제`,"proxy.retryButton.question":`{host}에 대해 CA에 다시 요청할까요?`,"proxy.retryButton.body":`이 호스트 이름의 CA 인증서를 이전에 받지 못해 엔진이 로컬 CA를 사용하고 있습니다. {retryIn}마다 자동으로 재시도합니다.`,"proxy.retryButton.warning":`지금 재시도하면 이 경로가 종료되어 잠시 사용할 수 없게 됩니다. 계속할까요?`,"proxy.retryButton.leave":`그대로 두기`,"proxy.retryButton.now":`지금 재시도`,"proxy.routeDialog.titleEdit":`경로 편집`,"proxy.routeDialog.titleAdd":`경로 추가`,"proxy.routeDialog.description":`호스트 이름, 전달 대상, 그리고 TLS로 제공하는 방식.`,"proxy.routeDialog.hostname":`호스트 이름`,"proxy.routeDialog.hostnamePlaceholder":`gitea.example.com`,"proxy.routeDialog.path":`경로 접두사`,"proxy.routeDialog.pathPlaceholder":`/optional`,"proxy.routeDialog.pathHint":`비워 두면 호스트 전체를 제공합니다.`,"proxy.routeDialog.target":`대상`,"proxy.routeDialog.tls":`TLS`,"proxy.routeDialog.dnsAccount":`DNS 계정`,"proxy.routeDialog.localNote":`로컬 전용 이름은 엔진 자체 CA가 서명하므로 DNS 계정이 관여하지 않습니다.`,"proxy.routeDialog.workspace":`워크스페이스`,"proxy.routeDialog.server":`서버`,"proxy.routeDialog.noServers":`이 워크스페이스에는 서버가 없습니다`,"proxy.routeDialog.stoppedNote":`중지된 서버는 라우팅되지 않습니다. 다시 실행될 때까지 행은 “업스트림 없음”을 표시합니다.`,"proxy.routeDialog.upstream":`업스트림`,"proxy.routeDialog.upstreamPlaceholder":`http://10.0.0.5:8080`,"proxy.routeDialog.upstreamHint":`포트를 포함한 리터럴 주소. 스킴은 선택 사항입니다.`,"proxy.routeDialog.panelNote":`제어판을 제공하려면 인증이 켜져 있어야 하고 기본값이 아닌 비밀번호가 필요합니다 — 그렇지 않으면 제어판이 저장을 거부합니다.`,"proxy.routeDialog.save":`경로 저장`,"proxy.routes.title":`경로`,"proxy.routes.description":`서비스마다 공인 호스트 이름 하나. 경로는 어느 워크스페이스의 감독되는 서버, 이 제어판, 또는 리터럴 업스트림을 가리킬 수 있습니다.`,"proxy.routes.add":`경로 추가`,"proxy.routes.cannotSaveTitle":`이 상태로는 이 경로들을 저장할 수 없습니다`,"proxy.routes.cannotRoute":`{host}은(는) 라우팅할 수 없습니다`,"proxy.routes.emptyTitle":`아직 경로 없음`,"proxy.routes.emptyDescription":`하나를 추가해 도메인을 통해 서버를 노출하세요 — 엔진이 스스로 인증서를 받습니다.`,"proxy.routes.addFirst":`첫 경로 추가`,"proxy.routes.columnHostname":`호스트 이름`,"proxy.routes.columnTarget":`대상`,"proxy.routes.columnUpstream":`업스트림`,"proxy.routes.columnTls":`TLS`,"proxy.routes.columnState":`상태`,"proxy.routes.columnOn":`켜짐`,"proxy.routes.openInTab":`새 탭에서 {url} 열기`,"proxy.routes.noHostname":`아직 호스트 이름 없음`,"proxy.routes.toggle":`경로 {name}`,"proxy.routes.edit":`{name} 편집`,"proxy.routes.remove":`{name} 제거`,"proxy.status.certified":`인증서 준비됨`,"proxy.status.localCa":`엔진 CA`,"proxy.status.uploaded":`업로드된 쌍`,"proxy.status.awaitingCa":`CA 대기 중`,"proxy.status.failed":`인증서 실패`,"proxy.status.fellBack":`로컬 CA로 폴백`,"proxy.status.serving":`제공 중`,"proxy.status.disabled":`사용 안 함`,"proxy.status.noUpstream":`업스트림 없음`,"proxy.status.error":`오류`,"proxy.status.unapplied":`아직 적용 안 됨`,"proxy.status.off":`꺼짐`,"proxy.status.stopped":`중지됨`,"proxy.status.starting":`시작 중`,"proxy.status.running":`실행 중`,"proxy.status.unsupported":`지원 안 됨`,"proxy.target.server":`감독되는 서버`,"proxy.target.panel":`이 제어판`,"proxy.target.external":`리터럴 업스트림`,"proxy.target.controlPanel":`제어판`,"proxy.target.noServer":`선택한 서버 없음`,"proxy.target.noUpstream":`업스트림 없음`,"proxy.tls.auto":`자동 — 엔진이 결정`,"proxy.tls.off":`끔 — 일반 HTTP`,"proxy.tls.manual":`업로드된 인증서`,"proxy.tls.plain":`일반 HTTP`,"proxy.tls.uploaded":`업로드된 인증서`,"proxy.tls.letsEncrypt":`Let’s Encrypt`,"proxy.tls.engineCa":`엔진 CA (로컬)`,"proxy.tls.hintOff":`일반 HTTP: 이 호스트 이름에는 인증서가 제공되지 않습니다.`,"proxy.tls.hintManual":`아래에서 업로드한 인증서 쌍을 제공합니다.`,"proxy.tls.hintEmpty":`공인 호스트 이름에는 ACME 인증서가, 로컬 전용 이름에는 엔진 자체 CA가 사용됩니다.`,"proxy.tls.hintPublic":`공인 호스트 이름이므로 엔진이 CA에 인증서를 요청합니다 — ACME 계정 이메일이 필요합니다.`,"proxy.tls.hintLocal":`로컬 전용 이름이므로 엔진이 자체 로컬 신뢰 CA로 서명합니다.`,"proxy.validation.labelRequired":`레이블은 필수입니다`,"proxy.validation.idPattern":`id는 문자나 숫자로 시작하고 그 뒤에 문자, 숫자, 대시, 밑줄만 올 수 있습니다`,"proxy.validation.hostRequired":`호스트 이름은 필수입니다`,"proxy.validation.hostPattern":`문자, 숫자, 점, 대시로 된 호스트 이름. 예: home.example.com`,"proxy.validation.hostTaken":`"{host}"는 이 경로에 이미 라우팅되어 있습니다`,"proxy.validation.pathSlash":`경로 접두사는 /로 시작합니다`,"proxy.validation.pathSpace":`경로 접두사에는 공백을 넣을 수 없습니다`,"proxy.validation.idTaken":`경로 id "{id}"가 두 번 사용되었습니다`,"proxy.validation.workspaceRequired":`서버를 소유한 워크스페이스를 고르세요`,"proxy.validation.serverRequired":`해당 워크스페이스의 서버를 고르세요`,"proxy.validation.url":`http://10.0.0.5:8080 같은 업스트림`,"proxy.view.title":`리버스 프록시`,"proxy.view.description":`도메인을 통해 서버를 노출하고, 80/443 또는 DNS 챌린지로 자동 HTTPS를 사용합니다.`,"proxy.view.dnsNote":`DNS-01의 경우, 워크스페이스 설정 → 동적 DNS에서 어느 워크스페이스에든 해당 도메인의 DNS 공급자를 추가하세요. 그러면 어느 워크스페이스에서든 경로가 그 계정을 고를 수 있습니다.`,"proxy.view.readFailed":`리버스 프록시를 읽을 수 없습니다`,"proxy.view.reading":`리버스 프록시를 읽는 중…`,"proxy.view.engineInstalled":`엔진 설치됨`,"proxy.view.engineStarting":`엔진 시작 중`,"proxy.view.engineStopping":`엔진 중지 중`,"proxy.view.configApplied":`설정 적용됨`,"proxy.view.configReverted":`설정 되돌림`,"proxy.view.settingsSaved":`설정을 저장했습니다.`,"proxy.view.settingsSavedToast":`설정 저장됨`,"proxy.view.retryFailed":`재시도에 실패했습니다`,"proxy.view.retryAsked":`{host}에 대해 CA에 다시 요청하는 중`,"proxy.view.fieldChanged":`필드 변경됨`,"proxy.view.fieldsChanged":`필드 변경됨`,"proxy.view.noChanges":`저장하지 않은 변경 없음`,"proxy.view.discard":`변경 사항 버리기`,"proxy.view.save":`설정 저장`,"serverCard.open":`{url} 열기`,"serverCard.adoptedHint":`이 프로세스는 스스로를 교체했습니다. 제어판은 두 번째 복사본을 시작하지 않고 후속 프로세스를 인수했습니다. 중지는 계속 작동하며, 출력은 후속 프로세스가 보낸 곳에 남습니다.`,"serverCard.detached":`분리됨`,"serverCard.persistentHint":"이 항목은 자체 nanny로 실행되므로 제어판이 중지, 재시작 또는 종료되어도 계속 실행됩니다. `home-hosted down`은 중지하지 않고 보고만 하며, 명시적 중지만이 중지합니다.","serverCard.persistent":`상주`,"serverCard.disabled":`사용 안 함`,"serverCard.autostart":`자동 시작`,"serverCard.healthProbe":`상태 검사`,"serverCard.notProbed":`검사 안 됨`,"serverCard.restarts":`재시작`,"serverCard.pid":`PID`,"serverCard.rss":`RSS`,"serverCard.procs":`프로세스`,"serverCard.portFree":`사용 가능`,"serverCard.portInUse":`사용 중`,"serverCard.uptime24h":`24시간 가동`,"serverCard.probe":`검사`,"serverCard.crashes24h":`24시간 충돌`,"serverCard.lastCrash":`마지막 충돌`,"serverCard.unhealthyFor":`{duration} 동안 비정상`,"serverCard.nextAttempt":`다음 시도 {when}`,"serverCard.start":`시작`,"serverCard.stop":`중지`,"serverCard.restart":`다시 시작`,"serverCard.detailsHint":`실시간 로그와 전체 텔레메트리`,"serverCard.moreActions":`{label}의 추가 작업`,"serverCard.disable":`서버 사용 안 함`,"serverCard.enable":`서버 사용`,"serverCard.removeFromAutostart":`자동 시작에서 제거`,"serverCard.autostartWithPanel":`제어판과 함께 자동 시작`,"serverCard.clearLogBuffer":`로그 버퍼 비우기`,"serverCard.removeServer":`서버 제거`,"serverCard.removeTitle":`이 서버를 제거할까요?`,"serverCard.removeDescription":`{label}이(가) servers.config.json에서 제거됩니다. 프로세스가 중지되고 로그와 충돌 기록도 함께 삭제됩니다.`,"serverCard.statusField":`상태`,"serverForm.workingDirectory":`작업 디렉터리`,"serverForm.cwdHint":`상대 경로는 projectDir 아래에서 확인됩니다.`,"serverForm.arguments":`인수`,"serverForm.portHint":`비워 두면 검사하거나 사전 확인할 포트가 없다는 뜻입니다.`,"serverForm.bindAddress":`바인드 주소`,"serverForm.autostart":`up과 함께 자동 시작`,"serverForm.autostartHint":`제어 플레인이 시작될 때마다 시작합니다.`,"serverForm.persistent":`상주`,"serverForm.persistentHint":"제어판이 중지되어도 계속 실행됩니다. `down`은 중지하지 않고 보고만 합니다.","serverForm.envHint":`한 줄에 KEY=value 하나, 프로세스로 내보냅니다.`,"serverForm.dataEnvs":`데이터 환경 변수`,"serverForm.dataEnvsHint":`한 줄에 ENV=path 하나 — 프로세스로 내보내고 자동으로 백업합니다.`,"serverForm.envFile":`환경 파일`,"serverForm.envFilePlaceholder":`선택 사항인 KEY=value 파일`,"serverForm.envFileHint":`시작할 때 읽으며, 값이 env를 덮어씁니다.`,"serverForm.dependsOn":`의존 대상`,"serverForm.dependsOnHint":`쉼표로 구분. 먼저 시작해 정상이 될 때까지 기다리고, 마지막에 중지합니다.`,"serverForm.backupPaths":`추가 백업 경로`,"serverForm.backupPathsHint":`한 줄에 하나, 자리표시자 사용 가능. 데이터 환경 변수는 이미 포함됩니다.`,"serverForm.backupIgnore":`이 항목을 백업할 때 알려진 생성 파일 무시`,"serverForm.backupIgnoreHint":`node_modules, dist, .next 등 복원에 필요 없는 캐시를 건너뜁니다.`,"serverForm.bootstrap":`부트스트랩`,"serverForm.bootstrapDescription":`첫 시작 전에 실행되는 일회성 명령 — 설치, 마이그레이션, 다운로드.`,"serverForm.runBootstrap":`부트스트랩 실행`,"serverForm.bootstrapHint":`끄면 항목에 부트스트랩이 없고 키가 null로 전송됩니다.`,"serverForm.timeoutMs":`시간 제한 (ms)`,"serverForm.runOnce":`세션마다 한 번만`,"serverForm.runOnceHint":`끄면 시작할 때마다 다시 실행합니다.`,"serverForm.bootstrapArgs":`부트스트랩 인수`,"serverForm.bootstrapArgsHint":`한 줄에 하나, 자리표시자는 기본 인수와 같습니다.`,"serverForm.bootstrapEnv":`부트스트랩 환경 변수`,"serverForm.bootstrapEnvHint":`한 줄에 KEY=value 하나, 부트스트랩 프로세스에만 내보냅니다.`,"serverForm.onPortConflict":`포트 충돌 시`,"serverForm.logBufferLines":`로그 버퍼 줄 수`,"serverForm.maxRssMb":`최대 RSS (MB)`,"serverForm.maxRssHint":`이 값을 넘으면 다시 시작합니다. 비우거나 0이면 사용하지 않습니다.`,"serverForm.enabledHint":`끄면 항목은 설정에 남지만 시작은 거부됩니다.`,"settings.auth.policyTitle":`접근 정책`,"settings.auth.policyDescription":`제어판이 루프백에 있든 네트워크에 노출되어 있든 인증이 적용됩니다.`,"settings.auth.requirePassword":`비밀번호 요구`,"settings.auth.requirePasswordHint":`모든 요청에 로그인된 세션이 필요합니다.`,"settings.auth.sessionLifetime":`세션 수명 (ms)`,"settings.auth.sessionLifetimeHint":`유휴 시간 제한. 604800000은 1주일간 활동이 없는 것입니다. 요청마다 다시 시작됩니다.`,"settings.auth.cookieSecure":`Cookie Secure`,"settings.auth.cookieSecureAuto":`자동 — HTTPS에서만`,"settings.auth.cookieSecureAlways":`항상`,"settings.auth.cookieSecureNever":`안 함 — 일반 HTTP`,"settings.auth.trustProxy":`리버스 프록시 뒤`,"settings.auth.trustProxyOff":`아니요 — x-forwarded-* 무시`,"settings.auth.trustProxyLoopback":`예, 이 컴퓨터에서만`,"settings.auth.trustProxyAny":`예, 모든 호출자로부터`,"settings.auth.trustProxyHint":`클라이언트 주소와 프로토콜에 x-forwarded-*를 신뢰합니다. '이 컴퓨터에서만'은 같은 호스트의 프록시에 안전한 선택입니다. '모든 호출자로부터'는 호출자 자신의 헤더를 믿으므로 로그인 잠금이 위조된 주소별로 집계되어 우회될 수 있습니다.`,"settings.auth.maxLoginAttempts":`최대 로그인 시도`,"settings.auth.maxLoginAttemptsHint":`임시 잠금까지의 실패 횟수.`,"settings.auth.lockout":`잠금 (ms)`,"settings.auth.apiTokenSet":`API 토큰이 설정됨`,"settings.auth.apiTokenMissing":`API 토큰 없음`,"settings.auth.apiTokenNote":`스크립트는 로그인 대신 {code}로 API를 호출할 수 있습니다.`,"settings.auth.noTokenNote":`셸 스크립트와 에이전트용으로는 {command}로 생성하세요.`,"settings.auth.defaultPasswordTitle":`아직 기본 비밀번호를 사용 중입니다`,"settings.auth.defaultPasswordText":`아래에서 직접 비밀번호를 설정하세요. 설정하기 전까지 {address} 밖으로의 바인딩은 계속 거부됩니다.`,"settings.auth.blockedTitle":`이 리스너는 거부되고 있습니다`,"settings.auth.noPasswordTitle":`인증은 켜져 있지만 비밀번호가 없습니다`,"settings.auth.noPasswordText":`아직 실제로 요구되는 것이 없으며, 비밀번호가 생기기 전까지 {address} 밖으로의 바인딩은 계속 거부됩니다.`,"settings.auth.exposedTitle":`127.0.0.1 밖에서 접근 가능`,"settings.auth.exposedText":`비밀번호를 강하게 유지하거나, 제어판 앞에 TLS를 종료하는 프록시를 두세요.`,"settings.auth.changePassword":`비밀번호 변경`,"settings.auth.setPassword":`비밀번호 설정`,"settings.auth.passwordDescription":`시크릿 파일에 scrypt 해시로 저장되며 설정에는 절대 들어가지 않습니다.`,"settings.auth.currentPassword":`현재 비밀번호`,"settings.auth.newPassword":`새 비밀번호`,"settings.auth.repeatPassword":`새 비밀번호 다시 입력`,"settings.auth.passwordMismatch":`두 비밀번호가 일치하지 않습니다.`,"settings.auth.updatePassword":`비밀번호 업데이트`,"settings.auth.setPasswordAndEnable":`비밀번호 설정 및 인증 사용`,"settings.auth.clearPassword":`비밀번호 지우기`,"settings.auth.clearPasswordConfirm":`지우기 확인`,"settings.auth.clearPasswordTitle":`비밀번호를 지울까요?`,"settings.auth.clearPasswordHint":`인증도 함께 꺼지며, 제어판에 접근하는 사람은 누구든 바로 들어올 수 있습니다.`,"settings.auth.shortPasswordTitle":`짧은 비밀번호입니다`,"settings.auth.shortPasswordText":`허용되지만, 네트워크와 이 제어판 사이에 있는 것은 길이뿐입니다.`,"settings.auth.passwordUpdated":`비밀번호를 업데이트했습니다. 다른 세션은 로그아웃되었습니다.`,"settings.auth.passwordCleared":`비밀번호를 지우고 인증을 사용 안 함으로 설정했습니다.`,"settings.backup.createTitle":`백업 만들기`,"settings.backup.createDescription":`이 아카이브가 담을 항목을 선택하세요. 만들기 전까지는 아무것도 기록되지 않습니다.`,"settings.backup.chooseItems":`항목 선택`,"settings.backup.partialCapture":`선택한 항목만 담깁니다.`,"settings.backup.withoutGlobalSettings":`전역 설정이 없으면 복원은 대상 제어판이 이미 선언한 위치에만 워크스페이스를 배치할 수 있습니다.`,"settings.backup.password":`비밀번호 (선택 사항)`,"settings.backup.passwordHint":`아카이브를 암호화합니다. 복원할 때 같은 비밀번호를 요구합니다.`,"settings.backup.create":`백업 만들기`,"settings.backup.chooseItemsFor":`{label} — 항목 선택`,"settings.backup.subDescription":`워크스페이스는 전체를 담을 수도 있고 설정, 서버, 시크릿, 선언된 데이터 경로만 담을 수도 있습니다.`,"settings.backup.selectedOf":`{total}개 중 {selected}개 선택됨`,"settings.backup.nothingSelectable":`이 워크스페이스에는 아직 선택할 수 있는 항목이 없습니다.`,"settings.backup.apply":`적용`,"settings.backup.created":`백업을 만들었습니다.`,"settings.backup.leafSettingsHint":`서버 기본값, 로그 보존, 알림`,"settings.backup.leafServersHint":`servers.config.json의 모든 항목`,"settings.backup.leafSecretsHint":`Telegram 봇 토큰과 DDNS 자격 증명`,"settings.backup.leafDataHint":`선언된 데이터 경로`,"settings.backup.pathFromOrigin":`{path} — {origin}에서`,"settings.backup.entrySettingsHint":`리스너, 인증, 호스트 상태, 백업 정책`,"settings.backup.entrySecretsHint":`비밀번호 해시와 API 토큰 해시`,"settings.backup.entryTlsHint":`제어판 자체의 인증서 쌍`,"settings.backup.entryWorkspaceHint":`해당 설정, 서버, 시크릿, 선언된 데이터 경로`,"settings.backup.entryGlobalSettings":`전역 설정`,"settings.backup.entryGlobalSecrets":`전역 시크릿(비밀번호, API 토큰)`,"settings.backup.entryTlsCertificate":`TLS 인증서`,"settings.backup.leafSettings":`설정`,"settings.backup.leafServers":`서버`,"settings.backup.leafSecrets":`시크릿`,"settings.backup.secretPassword":`비밀번호`,"settings.backup.secretPasswordHint":`제어판 자체의 비밀번호 해시입니다. 복원하면 이전 비밀번호로 돌아갑니다`,"settings.backup.secretApiToken":`API 토큰`,"settings.backup.secretApiTokenHint":`스크립트와 에이전트가 사용하는 장기 토큰`,"settings.backup.secretTelegram":`Telegram 봇 토큰`,"settings.backup.secretTelegramHint":`알림에 사용됩니다`,"settings.backup.secretDdns":`DDNS 자격 증명`,"settings.backup.secretDdnsHint":`공급자 자격 증명은 해당 키와 함께 봉인되어 보관됩니다`,"settings.backup.restoreItemLabel":`{workspace}: {item}`,"settings.backup.noteMissing":`아직 없음`,"settings.backup.noteCovered":`{path}에 포함됨`,"settings.backup.noteAlreadyDeclared":`{origin}에서 이미 선언함`,"settings.backup.noteContainsBackupDir":`백업 디렉터리를 포함함`,"settings.backup.noteUnknownWorkspace":`알 수 없는 워크스페이스`,"settings.backup.noteMissingFromArchive":`아카이브에 없음`,"settings.backup.noteDeclaredByBackup":`백업의 설정에서 선언되었지만 그 설정은 복원되지 않습니다`,"settings.backup.noteNotDeclared":`이 설정에서도 백업에서도 선언되지 않았습니다`,"settings.backup.noteRestoredFrom":`{path}에서 복원됨`,"settings.backups.policyTitle":`정책`,"settings.backups.policyDescription":`제어판이 보관하는 아카이브 수와 모든 아카이브가 추가로 담는 경로.`,"settings.backups.allow":`백업 허용`,"settings.backups.allowHint":`끄면 새 아카이브가 만들어지지 않습니다. 이미 디스크에 있는 것은 계속 다운로드하고 복원할 수 있습니다.`,"settings.backups.offTitle":`백업이 꺼져 있습니다`,"settings.backups.offText":`다시 켤 때까지 새로 보관되는 것은 없습니다. 아래 아카이브는 계속 다운로드, 복원, 삭제할 수 있습니다.`,"settings.backups.keep":`보관 개수`,"settings.backups.keepHint":`백업할 때마다 오래된 아카이브가 정리됩니다.`,"settings.backups.extraPaths":`추가 경로`,"settings.backups.extraPathsHint":`쉼표로 구분. 각 워크스페이스가 선언한 것에 더해 모든 아카이브에 담깁니다.`,"settings.backups.extraPathsPlaceholder":`{home}/myapp-data`,"settings.backups.archiveDirectory":`아카이브 디렉터리`,"settings.backups.copyArchiveDirectory":`아카이브 디렉터리 복사`,"settings.backups.changeDirectory":`변경은 파일 단위 결정입니다. {path}를 편집하세요.`,"settings.backups.theSettingsFile":`설정 파일`,"settings.backups.capturesTitle":`백업이 담는 항목`,"settings.backups.capturesDescription":`만들기 대화 상자에서 선택합니다. 워크스페이스는 전체를 담을 수도 있고 설정, 서버, 시크릿, 선언된 데이터 경로만 담을 수도 있습니다.`,"settings.backups.nothingSelectable":`아직 선택할 수 있는 항목이 없습니다.`,"settings.backups.fromOrigin":`{origin}에서`,"settings.backups.notCaptured":`담기지 않음`,"settings.backups.generatedSkipped":`생성 디렉터리 건너뜀`,"settings.backups.included":`포함됨`,"settings.backups.skipped":`건너뜀`,"settings.backups.workspacesNote":`이 제어판은 워크스페이스 {count}개를 제공하며, 각각이 선택 가능한 별도 항목입니다.`,"settings.backups.archivesTitle":`아카이브`,"settings.backups.archivesDescription":`백업 디렉터리에 저장되며 언제든 다운로드할 수 있습니다.`,"settings.backups.create":`백업 만들기…`,"settings.backups.restore":`복원…`,"settings.backups.noArchives":`아직 아카이브 없음`,"settings.backups.noArchivesEnabled":`지금 만들어 제어판과 원하는 워크스페이스를 담으세요.`,"settings.backups.noArchivesDisabled":`아직 아무것도 보관되지 않았고 백업이 꺼져 있습니다.`,"settings.backups.encrypted":`암호화됨`,"settings.backups.download":`다운로드`,"settings.backups.restoreAction":`복원`,"settings.backups.confirmDelete":`삭제 확인`,"settings.backups.deleted":`{name}을(를) 삭제했습니다.`,"settings.backups.kindSettings":`설정`,"settings.backups.kindServers":`서버`,"settings.backups.kindSecrets":`시크릿`,"settings.backups.kindTls":`tls`,"settings.backups.kindData":`데이터`,"settings.backups.kindWorkspace":`워크스페이스`,"settings.ddns.statePending":`대기 중`,"settings.ddns.stateOk":`업데이트됨`,"settings.ddns.stateUnchanged":`최신`,"settings.ddns.stateSkipped":`건너뜀`,"settings.ddns.stateError":`실패`,"settings.ddns.passFinished":`동적 DNS 실행 완료`,"settings.ddns.credentialsSaved":`{account}의 자격 증명을 저장했습니다`,"settings.ddns.credentialsRemoved":`{account}의 자격 증명을 제거했습니다`,"settings.ddns.loadErrorTitle":`동적 DNS 설정을 불러올 수 없습니다`,"settings.ddns.title":`동적 DNS`,"settings.ddns.description":`이 호스트 이름들이 이 컴퓨터의 공인 주소를 계속 가리키게 합니다. 자격 증명은 시크릿 파일에 있으며 servers.config.json에는 절대 들어가지 않습니다.`,"settings.ddns.checking":`확인 중`,"settings.ddns.needsAttention":`확인 필요`,"settings.ddns.watching":`감시 중`,"settings.ddns.updateNow":`지금 업데이트`,"settings.ddns.enabled":`동적 DNS 계속 업데이트`,"settings.ddns.enabledHint":`아래 간격으로 실행됩니다. 공급자는 주소가 실제로 바뀐 경우에만 호출됩니다.`,"settings.ddns.interval":`확인 간격 (ms)`,"settings.ddns.intervalHint":`60000은 1분이며 기본값은 5분입니다.`,"settings.ddns.ttl":`TTL (초)`,"settings.ddns.ttlHint":`1은 공급자가 지원하는 경우 자동을 뜻합니다.`,"settings.ddns.detectIpv4":`IPv4 감지`,"settings.ddns.detectIpv4Hint":`A 레코드에 필요합니다.`,"settings.ddns.detectIpv6":`IPv6 감지`,"settings.ddns.detectIpv6Hint":`AAAA 레코드에 필요합니다.`,"settings.ddns.accountsTitle":`공급자 계정`,"settings.ddns.accountsDescription":`API 토큰마다 항목 하나. 자격 증명은 서버에 저장되며 다시 돌아오지 않습니다.`,"settings.ddns.credentialsSet":`자격 증명 저장됨`,"settings.ddns.noCredentials":`자격 증명 없음`,"settings.ddns.credentials":`자격 증명`,"settings.ddns.removeAccountBlocked":`먼저 이 계정을 쓰는 호스트 이름을 제거하세요`,"settings.ddns.noAccounts":`아직 계정이 없습니다. 공급자를 선택해 추가하세요.`,"settings.ddns.provider":`공급자`,"settings.ddns.accountId":`계정 id`,"settings.ddns.accountIdPlaceholder":`cloudflare-home`,"settings.ddns.accountIdHint":"계정 id는 계정을 식별하고 저장된 자격 증명의 키가 됩니다. 소문자, 숫자, `-`, `_`.","settings.ddns.hostnamesTitle":`호스트 이름`,"settings.ddns.hostnamesDescription":`계속 업데이트할 전체 목록 — suba.domain.com, domain.xyz 등.`,"settings.ddns.account":`계정`,"settings.ddns.recordA":`A (IPv4)`,"settings.ddns.recordAaaa":`AAAA (IPv6)`,"settings.ddns.aaaaUnsupported":`이 공급자는 AAAA 레코드를 관리할 수 없습니다.`,"settings.ddns.proxied":`프록시됨`,"settings.ddns.proxiedHint":`Cloudflare가 자체 네트워크를 통해 이 레코드를 제공합니다.`,"settings.ddns.ipv6Off":`IPv6 감지가 꺼져 있습니다`,"settings.ddns.advanced":`고급`,"settings.ddns.advancedHint":`등록 도메인과 TTL 재정의`,"settings.ddns.registeredDomain":`등록 도메인`,"settings.ddns.registeredDomainPlaceholder":`example.co.uk`,"settings.ddns.registeredDomainHint":`공급자에게 apex를 알려야 할 때만. 예: 3단계 레이블 도메인.`,"settings.ddns.ttlOverride":`TTL 재정의 (초)`,"settings.ddns.ttlOverrideHint":`비워 두면 위 값을 사용합니다.`,"settings.ddns.noHostnames":`아직 호스트 이름이 없습니다.`,"settings.ddns.hostnamePlaceholder":`home.example.com`,"settings.ddns.lastPass":`마지막 실행`,"settings.ddns.ipv4Value":`IPv4 {address}`,"settings.ddns.ipv6Value":`IPv6 {address}`,"settings.ddns.type":`유형`,"settings.ddns.state":`상태`,"settings.ddns.address":`주소`,"settings.ddns.detail":`세부 정보`,"settings.ddns.credentialsTitle":`공급자 자격 증명`,"settings.ddns.credentialsDescription":`저장된 필드는 다시 전송되지 않습니다. 저장하면 이 계정의 모든 필드가 교체되고 곧바로 한 번 실행됩니다.`,"settings.ddns.optional":`선택 사항.`,"settings.ddns.whereToGet":`발급 방법`,"settings.ddns.forget":`삭제`,"settings.ddns.forgetConfirm":`삭제하기`,"settings.ddns.forgetTitle":`저장된 자격 증명을 삭제할까요?`,"settings.ddns.forgetHint":`디스크에서 제거되어 다시 읽을 수 없으며, 다시 붙여 넣어야 합니다.`,"settings.ddns.saveCredentials":`자격 증명 저장`,"settings.defaults.title":`서버 기본값`,"settings.defaults.description":`자체 값을 설정하지 않은 모든 항목에 적용됩니다.`,"settings.defaults.enabledHint":`새 항목은 사용 상태로 시작합니다.`,"settings.defaults.autostart":`제어판과 함께 자동 시작`,"settings.defaults.bind":`바인드`,"settings.defaults.bindLocal":`로컬 — 127.0.0.1`,"settings.defaults.bindLan":`LAN — 0.0.0.0`,"settings.defaults.onPortConflict":`포트 충돌 시`,"settings.defaults.conflictBlock":`시작 차단`,"settings.defaults.conflictWarn":`경고 후 그래도 시작`,"settings.defaults.conflictFollow":`자신의 분리된 재시작을 인수`,"settings.defaults.conflictReclaim":`분리된 재시작을 감독되는 복사본으로 교체`,"settings.defaults.conflictKill":`포트를 점유한 대상 강제 종료`,"settings.defaults.logBufferLines":`로그 버퍼 줄 수`,"settings.defaults.logBufferLinesHint":`서버마다 메모리에 보관됩니다.`,"settings.host.title":`임계값`,"settings.host.description":`임계값 0은 해당 경고를 사용하지 않습니다. 초과 시 한 번, 복구 시 다시 한 번 알립니다.`,"settings.host.enabled":`이 컴퓨터 샘플링`,"settings.host.enabledHint":`부하, 메모리, 스왑, 디스크, CPU 온도를 아래 간격으로 수집합니다.`,"settings.host.interval":`간격 (ms)`,"settings.host.intervalHint":`호스트를 샘플링하고 경고를 확인하는 주기.`,"settings.host.diskPaths":`디스크 경로`,"settings.host.diskPathsHint":`쉼표로 구분. {home} 같은 템플릿은 확장됩니다.`,"settings.host.diskUsed":`디스크 사용률 (%)`,"settings.host.memoryUsed":`메모리 사용률 (%)`,"settings.host.swapUsed":`스왑 사용률 (%)`,"settings.host.zeroDisables":`0이면 경고를 사용하지 않습니다.`,"settings.host.loadPerCpu":`CPU당 부하`,"settings.host.loadPerCpuHint":`1분 평균 부하를 코어 수로 나눈 값.`,"settings.host.tempCelsius":`CPU 온도 (°C)`,"settings.host.tempCelsiusHint":`Linux 전용. OS가 제공하지 않으면 무시됩니다.`,"settings.host.breachingNow":`현재 초과 중:`,"settings.host.nothingBreaching":`현재 초과 중인 항목이 없습니다.`,"settings.interface.title":`인터페이스`,"settings.interface.description":`제어판은 정적 사이트입니다. 기본 제공 UI를 쓰거나 상태 디렉터리에서 직접 빌드한 UI를 제공하세요.`,"settings.interface.currentlyServing":`현재 제공 중`,"settings.interface.copyDirectory":`UI 디렉터리 복사`,"settings.interface.fileCount":`파일 {count}개`,"settings.interface.sourceStock":`기본`,"settings.interface.sourceCustom":`사용자 지정`,"settings.interface.unnamed":`이름 없음`,"settings.interface.panelVersion":`제어판 버전`,"settings.interface.copyPanelVersion":`제어판 버전 복사`,"settings.interface.panelVersionHint":`이 제어판 프로세스가 실행 중인 릴리스 — {command}도 같은 번호를 출력합니다.`,"settings.interface.panelName":`제어판 이름`,"settings.interface.panelNameHint":`기본 UI가 사이드바에 표시합니다. 사용자 지정 UI는 대신 자체 이름을 표시할 수 있습니다.`,"settings.interface.uploadLabel":`UI 빌드 업로드 (index.html이 있는 .zip)`,"settings.interface.docsHint":`API 계약은 {docs}를 참고하세요. 사용자 지정 UI가 제어판을 망가뜨리면 {command}로 터미널에서 기본 UI를 되돌릴 수 있습니다.`,"settings.interface.resetName":`이름 초기화`,"settings.interface.confirmRevert":`되돌리기 확인`,"settings.interface.revertToStock":`기본으로 되돌리기`,"settings.interface.install":`UI 설치`,"settings.interface.installed":`UI를 {name}(으)로 교체했습니다 — 페이지를 새로 고치세요`,"settings.interface.yourBuild":`직접 빌드`,"settings.interface.restored":`기본 UI를 복원했습니다 — 페이지를 새로 고치세요`,"settings.interface.nothingInstalled":`설치된 사용자 지정 UI 없음`,"settings.listener.title":`리스너`,"settings.listener.description":`제어판이 응답하는 위치. 변경하면 제어판이 다시 시작되고 이 페이지는 새 주소로 이동합니다.`,"settings.listener.port":`제어 포트`,"settings.listener.portHint":`기본값 3999.`,"settings.listener.bind":`바인드`,"settings.listener.bindLocal":`로컬`,"settings.listener.bindLan":`LAN`,"settings.listener.bindCustom":`사용자 지정`,"settings.listener.bindLanHint":`0.0.0.0 — 네트워크 전체에서 접근 가능합니다.`,"settings.listener.bindLocalHint":`127.0.0.1 — 이 컴퓨터에서만.`,"settings.listener.bindCustomHint":`아래에 입력하는 특정 인터페이스 주소.`,"settings.listener.ipv4":`IPv4 주소`,"settings.listener.ipv4Placeholder":`192.168.1.20`,"settings.listener.ipv4Error":`IPv4 주소를 입력하세요. 예: 192.168.1.20.`,"settings.listener.ipv4Hint":`127.0.0.1 밖으로 바인딩하려면 실제 비밀번호가 필요합니다.`,"settings.listener.openBrowser":`제어판이 뜰 때 브라우저 열기`,"settings.listener.liveAddress":`현재 주소`,"settings.listener.restartRequired":`다시 시작 필요`,"settings.listener.copyLiveAddress":`현재 주소 복사`,"settings.listener.liveAddressHint":`리스너가 지금 바인딩된 주소. 저장한 변경은 제어판이 다시 바인딩한 뒤 적용됩니다.`,"settings.logs.title":`보존`,"settings.logs.description":`실시간 보기는 항상 메모리에서 옵니다. 이 파일들은 다시 시작해도 남아 로그 페이지에 공급됩니다.`,"settings.logs.persist":`로그를 디스크에 보관`,"settings.logs.persistHint":`끄면 모든 것을 메모리에만 보관합니다.`,"settings.logs.maxBytes":`로테이션 크기 (바이트)`,"settings.logs.maxBytesHint":`서버마다. .1, .2, …로 넘어가기 전 크기.`,"settings.logs.keep":`로테이션된 파일 보관`,"settings.logs.directory":`로그 디렉터리`,"settings.logs.copyDirectory":`로그 디렉터리 복사`,"settings.logs.browseHint":`{logs} 페이지에서 이 파일들을 살펴보고 다운로드할 수 있습니다.`,"settings.paths.dataRoot":`데이터 루트`,"settings.paths.dataRootHint":`HHOSTED_HOME — 전역 설정, 워크스페이스, TLS, 백업, UI.`,"settings.paths.globalSettings":`전역 설정`,"settings.paths.globalSettingsHint":`settings.json — 리스너, 인증, TLS 정책, 호스트 상태, 백업.`,"settings.paths.projectDir":`프로젝트 디렉터리`,"settings.paths.projectDirHint":`상대 항목 경로의 기준.`,"settings.paths.panelAddress":`제어판 주소`,"settings.paths.panelAddressHint":`이 제어판이 현재 실행 중인 위치.`,"settings.paths.serversConfig":`서버 설정`,"settings.paths.serversConfigHint":`{label}의 servers.config.json.`,"settings.paths.workspaceSettings":`워크스페이스 설정`,"settings.paths.workspaceSettingsHint":`서버 기본값, 로그 보존, 알림, DDNS.`,"settings.paths.logs":`로그`,"settings.paths.logsHint":`이 워크스페이스의 영구 저장된 출력.`,"settings.paths.copyPath":`{label} 복사`,"settings.paths.whereThingsLive":`파일 위치`,"settings.paths.whereThingsLiveDescription":`읽기 전용. 경로를 셸이나 편집기에 바로 복사할 수 있습니다.`,"settings.paths.workspaceFiles":`워크스페이스 파일`,"settings.paths.workspaceFilesDescription":`각 워크스페이스는 자체 설정, 구성, 로그 디렉터리를 가지며 서로 공유하지 않습니다.`,"settings.rebind.failed":`제어판이 {target}에서 응답하지 않았습니다. 새 리스너는 콘솔을 확인하세요.`,"settings.restore.title":`백업 복원`,"settings.restore.description":`계획을 적용하기 전까지는 아무것도 기록되지 않습니다.`,"settings.restore.archive":`아카이브`,"settings.restore.archiveHint":`저장된 아카이브 또는 이 컴퓨터의 .zip.`,"settings.restore.encryptedName":`{name} — 암호화됨`,"settings.restore.uploadOption":`파일 업로드…`,"settings.restore.archiveFile":`아카이브 파일 (.zip)`,"settings.restore.unchangedTitle":`아직 변경된 것이 없습니다`,"settings.restore.archiveLine":`아카이브 {name}.`,"settings.restore.uploadedArchive":`업로드한 아카이브.`,"settings.restore.passwordProtected":`이 백업은 비밀번호로 보호되어 있습니다.`,"settings.restore.password":`비밀번호`,"settings.restore.checkAgain":`비밀번호로 다시 확인`,"settings.restore.choosePrompt":`복원할 항목 선택 — {total}개 중 {selected}개 선택됨.`,"settings.restore.willRestore":`복원합니다: {items}.`,"settings.restore.skipped":`건너뜁니다: {items}.`,"settings.restore.nothing":`없음`,"settings.restore.restartNote":`제어판 자체의 설정이 달라, 나중에 제어판을 다시 시작하세요.`,"settings.restore.reloadedNote":`복원된 워크스페이스는 즉시 다시 로드됩니다. 자동 시작으로 표시된 항목은 스스로 시작합니다.`,"settings.restore.applyStored":`이 복원 적용`,"settings.restore.applyUpload":`업로드 복원`,"settings.restore.restored":`{count}개 항목을 복원했습니다.`,"settings.restore.restoredWithNotes":`{count}개 항목을 복원했습니다 — {notes}.`,"settings.restore.noteReloaded":`복원된 서버가 실행 중이고 자동 시작 항목이 시작 중입니다`,"settings.restore.noteRestart":`제어판 자체 설정을 적용하려면 다시 시작하세요`,"settings.restore.reasonSymbolicLink":`심볼릭 링크, 건너뜀`,"settings.restore.reasonNotSelected":`선택하지 않음`,"settings.restore.reasonUnrestorable":`여기에서는 복원할 수 없음`,"settings.restore.reasonInvalidSettings":`아카이브의 설정이 유효하지 않음`,"settings.restore.reasonInvalidServers":`아카이브의 서버가 유효하지 않음`,"settings.shell.noUnsavedChanges":`저장하지 않은 변경 없음`,"settings.shell.discard":`변경 사항 버리기`,"settings.shell.save":`설정 저장`,"settings.shell.unsavedTitle":`저장하지 않은 변경`,"settings.shell.nothingToSave":`저장할 항목이 없습니다.`,"settings.telegram.title":`Telegram`,"settings.telegram.description":`정책은 설정에 있고 봇 토큰은 시크릿이라 서버에서 다시 돌아오지 않습니다.`,"settings.telegram.enabled":`알림 보내기`,"settings.telegram.enabledHint":`이벤트마다 메시지 하나, 아래 쿨다운으로 제한됩니다.`,"settings.telegram.chatId":`채팅 id`,"settings.telegram.chatIdPlaceholder":`123456789 또는 @channel`,"settings.telegram.chatIdHint":`채팅 감지를 사용하면 봇의 업데이트에서 자동으로 채웁니다.`,"settings.telegram.cooldown":`이벤트별 쿨다운 (ms)`,"settings.telegram.cooldownHint":`서버와 사유별이므로 계속 요동치는 서버도 도배하지 못합니다.`,"settings.telegram.onCrash":`재시도 소진`,"settings.telegram.onUnhealthy":`포트 비정상`,"settings.telegram.onForcedRestart":`강제 재시작`,"settings.telegram.onRecovered":`복구됨`,"settings.telegram.onHost":`호스트 상태 임계값 초과`,"settings.telegram.onHostHint":`디스크, 메모리, 스왑, 부하, CPU 온도. 호스트 상태의 임계값을 따릅니다.`,"settings.telegram.onDdns":`동적 DNS 변경 또는 실패`,"settings.telegram.onDdnsHint":`레코드를 바꾼 실행마다 한 건, 실패한 실행에도 한 건.`,"settings.telegram.botToken":`봇 토큰`,"settings.telegram.tokenSet":`토큰 설정됨`,"settings.telegram.noToken":`토큰 없음`,"settings.telegram.tokenNote":`@BotFather에서 발급 — 시크릿이며 servers.config.json에 절대 넣지 않습니다.`,"settings.telegram.tokenPlaceholder":`123456789:AA…`,"settings.telegram.tokenSavedPlaceholder":`저장됨 — 교체하려면 새 토큰을 입력하세요`,"settings.telegram.saveToken":`토큰 저장`,"settings.telegram.detectChats":`채팅 감지`,"settings.telegram.sendTest":`테스트 전송`,"settings.telegram.removeToken":`토큰 제거`,"settings.telegram.removeTokenConfirm":`제거 확인`,"settings.telegram.removeTokenTitle":`봇 토큰을 제거할까요?`,"settings.telegram.removeTokenHint":`다시 토큰을 붙여 넣을 때까지 알림이 중지됩니다.`,"settings.telegram.tokenSaved":`토큰을 저장했습니다.`,"settings.telegram.tokenSavedFor":`@{username}의 토큰을 저장했습니다.`,"settings.telegram.tokenRemoved":`토큰을 제거했습니다.`,"settings.telegram.noChats":`채팅을 찾지 못했습니다. 먼저 봇에 /start를 보낸 뒤 다시 감지하세요.`,"settings.telegram.testSent":`테스트 메시지를 보냈습니다.`,"settings.telegram.testFailed":`테스트 메시지를 보내지 못했습니다.`,"settings.telegram.chatsSeen":`봇이 확인한 채팅:`,"settings.telegram.lastSend":`마지막 전송: {result}`,"settings.tls.title":`HTTPS`,"settings.tls.description":`PEM 쌍을 업로드하면 제어판이 자체 리스너에서 TLS를 제공합니다. 홈 네트워크에서는 자체 서명 인증서로 충분합니다.`,"settings.tls.serve":`제어판을 HTTPS로 제공`,"settings.tls.serveHint":`설정 저장으로 저장됩니다. 제어판이 다시 바인딩하고 이 페이지도 따라갑니다.`,"settings.tls.certificateTitle":`인증서`,"settings.tls.certificateDescription":`PEM으로 인코딩된 인증서와 개인 키. 둘 다 시크릿 파일에 남습니다.`,"settings.tls.unusableTitle":`저장된 인증서를 사용할 수 없습니다`,"settings.tls.subject":`주체`,"settings.tls.issuer":`발급자`,"settings.tls.validUntil":`만료일`,"settings.tls.days":`{count}일`,"settings.tls.privateKey":`개인 키`,"settings.tls.keyMatches":`인증서와 일치함`,"settings.tls.keyMismatch":`일치하지 않음`,"settings.tls.fingerprint":`지문`,"settings.tls.copyFingerprint":`지문 복사`,"settings.tls.noCertificateTitle":`업로드된 인증서 없음`,"settings.tls.noCertificateText":`아래에서 PEM 인증서와 키를 업로드한 뒤 저장하세요. 인증서가 있을 때까지 HTTPS는 제공되지 않습니다.`,"settings.tls.certFile":`인증서 파일 (.pem, .crt)`,"settings.tls.keyFile":`개인 키 파일 (.pem, .key)`,"settings.tls.pasteCertificate":`또는 인증서 붙여 넣기`,"settings.tls.pasteKey":`또는 개인 키 붙여 넣기`,"settings.tls.saveCertificate":`인증서 저장`,"settings.tls.removeCertificate":`인증서 제거`,"settings.tls.confirmRemove":`제거 확인`,"settings.tls.removeTitle":`인증서를 제거할까요?`,"settings.tls.removeHint":`TLS는 켜진 채로 남지만 제공할 것이 없어, 리스너가 다시 바인딩되면 제어판이 http로 돌아갑니다.`,"settings.tls.stored":`인증서를 저장했습니다.`,"settings.tls.removed":`인증서를 제거했습니다.`,"status.stopped":`중지됨`,"status.starting":`시작 중`,"status.running":`실행 중`,"status.stopping":`중지 중`,"status.backoff":`다시 시작 중`,"status.crashed":`충돌함`,"status.conflict":`포트 충돌`,"theme.label":`테마: {theme}`,"theme.light":`라이트`,"theme.dark":`다크`,"theme.system":`시스템`,"topbar.search":`검색하거나 명령 실행`,"topbar.openNavigation":`탐색 열기`,"topbar.commandPalette":`명령 팔레트`,"topbar.account":`계정`,"topbar.signedIn":`로그인됨`,"topbar.signOut":`로그아웃`,"topbar.workspaceLabel":`워크스페이스: {name}`,"validation.port":`포트는 1에서 65535 사이의 정수여야 합니다.`,"validation.idRequired":`id는 필수입니다 — 이 서버가 속한 키입니다.`,"validation.idPattern":`id는 소문자나 숫자로 시작하고 소문자, 숫자, 대시, 밑줄만 포함해야 합니다.`,"validation.commandRequired":`명령은 필수입니다 — 감독자가 실행하는 실행 파일입니다.`,"validation.bootstrapCommand":`부트스트랩에는 실행할 명령이 필요합니다.`,"views.actions.addAServer":`서버 추가`,"views.actions.addServer":`서버 추가`,"views.actions.startAll":`모두 시작`,"views.actions.stopAll":`모두 중지`,"views.common.thisWorkspace":`이 워크스페이스`,"views.globalOverview.configError":`구성을 읽을 수 없습니다: {error}`,"views.globalOverview.degraded":`성능 저하`,"views.globalOverview.description":`호스트 상태와 모든 워크스페이스의 모든 서버를 위치별로 묶어 표시합니다.`,"views.globalOverview.emptyDescription":`상단에서 워크스페이스를 고르고, 처음으로 계속 살려 둘 프로세스를 추가하세요.`,"views.globalOverview.emptyTitle":`아직 어디에도 서버가 없습니다`,"views.globalOverview.groupEmptyDescription":`하나 추가하면 여기와 워크스페이스 페이지에 표시됩니다.`,"views.globalOverview.groupRunning":`{running}/{total} 실행 중`,"views.globalOverview.hostUptime":`호스트 가동 시간`,"views.globalOverview.hostVitals":`호스트 상태`,"views.globalOverview.hostVitalsNote":`이 컴퓨터이며 모든 워크스페이스가 공유합니다.`,"views.globalOverview.openWorkspace":`워크스페이스 열기`,"views.globalOverview.panelUptime":`제어판 가동 시간`,"views.globalOverview.samplingOff":`샘플링 꺼짐`,"views.globalOverview.samplingOn":`샘플링 켜짐`,"views.globalOverview.serversTotal":`총 서버 {count}대`,"views.globalOverview.serving":`제공 중`,"views.globalOverview.workspaces":`워크스페이스`,"views.globalSettings.authenticationDescription":`누가 이 제어판에 로그인할 수 있는지, 세션을 어떻게 신뢰하는지.`,"views.globalSettings.backupsDescription":`한 번의 수집마다 아카이브 하나로, 제어판과 선택한 워크스페이스를 담습니다.`,"views.globalSettings.changesDescription":`저장하면 제어판의 설정 파일에 기록될 내용.`,"views.globalSettings.description":`이 제어판의 리스너, 접근, 호스트 상태, 백업, TLS, 경로 — 모든 워크스페이스가 공유합니다.`,"views.globalSettings.hostDescription":`이 컴퓨터 자체 리소스에 대한 경고 임계값.`,"views.globalSettings.interfaceDescription":`기본 UI 대신 직접 만든 제어판 UI를 제공합니다.`,"views.globalSettings.languageDescription":`이 제어판을 표시할 언어. 이 브라우저에 적용됩니다.`,"views.globalSettings.languageNote":`선택은 이 브라우저에 저장되며 로그인 페이지에도 적용됩니다. 제어판 자체의 로그 출력이나 API 메시지는 바뀌지 않습니다.`,"views.globalSettings.listenerDescription":`제어판이 리스닝하는 위치와 자신을 알리는 방식.`,"views.globalSettings.loadErrorTitle":`파일에만 있는 일부 값을 불러올 수 없습니다`,"views.globalSettings.navLabel":`전역 설정 섹션`,"views.globalSettings.pathsDescription":`home-hosted가 파일을 두는 위치. 전역과 워크스페이스별.`,"views.globalSettings.saveFailed":`설정을 저장할 수 없습니다.`,"views.globalSettings.saved":`설정을 저장했습니다.`,"views.globalSettings.savedRebinding":`설정을 저장했습니다 — 제어판이 새 주소로 이동 중입니다.`,"views.globalSettings.savedToast":`설정 저장됨`,"views.globalSettings.sectionAuthentication":`인증`,"views.globalSettings.sectionBackups":`백업`,"views.globalSettings.sectionHost":`호스트 상태`,"views.globalSettings.sectionInterface":`인터페이스`,"views.globalSettings.sectionListener":`리스너`,"views.globalSettings.sectionPaths":`경로`,"views.globalSettings.sectionTls":`TLS`,"views.globalSettings.title":`전역 설정`,"views.globalSettings.tlsDescription":`자체 인증서로 제어판을 HTTPS로 제공합니다.`,"views.logs.allStreams":`모든 스트림`,"views.logs.clear":`지우기`,"views.logs.clearDescription":`{server} — 디스크의 파일이 잘립니다. 프로세스는 계속 실행되며 이후 줄은 여기서부터 기록됩니다.`,"views.logs.clearFile":`파일 지우기`,"views.logs.clearNote":`출력이 아직 필요하면 먼저 다운로드하세요 — 제어판에서는 되돌릴 수 없습니다.`,"views.logs.clearTitle":`저장된 로그 파일을 지울까요?`,"views.logs.fileEmpty":`저장된 파일이 비어 있습니다.`,"views.logs.loadedLines":`{count}줄을 불러왔습니다`,"views.logs.modeLive":`실시간 스트림`,"views.logs.modePersisted":`영구 저장`,"views.logs.noServersDescription":`하나 추가하면 그 출력이 여기에 영구 저장됩니다.`,"views.logs.noServersTitle":`서버 없음`,"views.logs.nothingOnDisk":`이 서버의 디스크에는 아무것도 없습니다 — 영구 저장이 꺼져 있거나 아직 기록한 내용이 없습니다.`,"views.logs.nothingPersisted":`영구 저장된 것 없음`,"views.logs.persistedSummary":`{workspace} · 서버 {total}대 중 {persisted}대가 디스크에 · {size}`,"views.logs.persistedTitle":`영구 저장된 로그`,"views.logs.pickServerDescription":`영구 저장된 출력과 실시간 스트림은 서버별입니다. 목록에서 하나를 고르세요.`,"views.logs.pickServerTitle":`서버 선택`,"views.logs.reload":`다시 불러오기`,"views.logs.retentionNote":`로테이션과 보존은 워크스페이스 설정 → 로그에서 설정합니다.`,"views.logs.searchAria":`로그 검색`,"views.logs.searchPlaceholder":`끝부분 창 검색`,"views.logs.searchedLines":`{count}줄을 검색했습니다`,"views.logs.streamAria":`스트림`,"views.logs.tailAria":`끝부분 크기`,"views.logs.waitingOutput":`연결됨 — 출력을 기다리는 중입니다.`,"views.overview.acrossTree":`트리 전체에서`,"views.overview.cpuNow":`지금 {value}% cpu`,"views.overview.crashedOrUnhealthy":`충돌 또는 비정상`,"views.overview.description":`이 워크스페이스의 모든 서버 라이브 상태. 하나의 이벤트 스트림으로 갱신됩니다.`,"views.overview.emptyDescription":`이 워크스페이스가 계속 살려 둘 첫 프로세스를 추가하세요.`,"views.overview.emptyTitle":`이 워크스페이스에 서버가 없습니다`,"views.overview.enabled":`{count}대 사용`,"views.overview.longestUptime":`최장 가동 시간`,"views.overview.needsAttention":`확인 필요`,"views.overview.notUp":`{count}대 중지됨`,"views.overview.nothingBroken":`고장 난 것이 없습니다`,"views.overview.nothingRunning":`실행 중인 것이 없습니다`,"views.overview.openFullList":`전체 목록 열기`,"views.overview.peak":`최고 {value}`,"views.overview.processMemory":`프로세스 메모리`,"views.overview.recentActivity":`최근 활동`,"views.overview.running":`실행 중`,"views.overview.sampling":`리소스 기록은 5초마다 샘플링되어 이 세션 동안 보관됩니다`,"views.overview.stopped":`중지됨`,"views.overview.workspaceLabel":`워크스페이스 {id}`,"views.route.server":`서버`,"views.serverDetail.allServers":`모든 서버`,"views.serverDetail.autostart":`제어판과 함께 자동 시작`,"views.serverDetail.backToServers":`서버로 돌아가기`,"views.serverDetail.bind":`바인드`,"views.serverDetail.bindCustom":`{bind} — 사용자 지정`,"views.serverDetail.bindLan":`0.0.0.0 — 모든 인터페이스`,"views.serverDetail.bindLocal":`127.0.0.1 — 이 컴퓨터에서만`,"views.serverDetail.closeEditor":`편집기 닫기`,"views.serverDetail.copyJson":`JSON 구성 복사`,"views.serverDetail.crashes24":`24시간 충돌`,"views.serverDetail.dependencies":`의존성`,"views.serverDetail.detached":`분리됨`,"views.serverDetail.detachedHint":`이 프로세스는 스스로를 교체했습니다. 제어판은 두 번째 복사본을 시작하지 않고 후속 프로세스를 인수했습니다. 중지는 계속 작동하며, 출력은 후속 프로세스가 보낸 곳에 남습니다.`,"views.serverDetail.disableServer":`서버 사용 안 함`,"views.serverDetail.editHint":`이 항목의 모든 필드 편집`,"views.serverDetail.effectiveConfig":`적용되는 구성`,"views.serverDetail.effectiveConfigNote":`설정의 기본값이 이미 이 값들에 병합되어 있습니다.`,"views.serverDetail.enableServer":`서버 사용`,"views.serverDetail.eventHistory":`이벤트 기록`,"views.serverDetail.eventHistoryNote":`제어판이 24시간 동안 보관합니다.`,"views.serverDetail.fieldArgs":`인수`,"views.serverDetail.fieldBackupPaths":`백업 경로`,"views.serverDetail.fieldBootstrap":`부트스트랩`,"views.serverDetail.fieldCommand":`명령`,"views.serverDetail.fieldCwd":`작업 디렉터리`,"views.serverDetail.fieldDataEnvs":`데이터 환경 변수`,"views.serverDetail.fieldDependsOn":`의존 대상`,"views.serverDetail.fieldEnv":`환경 변수`,"views.serverDetail.fieldEnvFile":`환경 파일`,"views.serverDetail.fieldHealth":`상태`,"views.serverDetail.fieldLogBuffer":`로그 버퍼`,"views.serverDetail.fieldOnPortConflict":`포트 충돌 시`,"views.serverDetail.fieldPortBind":`포트 · 바인드`,"views.serverDetail.fieldRestart":`다시 시작`,"views.serverDetail.fieldRssLimit":`RSS 제한`,"views.serverDetail.fieldStop":`중지`,"views.serverDetail.fields":`필드`,"views.serverDetail.goneDescription":`{id}이(가) 더 이상 servers.config.json에 없습니다. 다른 탭에서 제거되었을 수 있습니다.`,"views.serverDetail.goneTitle":`해당 서버가 없습니다`,"views.serverDetail.health":`상태`,"views.serverDetail.healthProbe":`상태 검사`,"views.serverDetail.lastCrash":`마지막 충돌`,"views.serverDetail.lastProbe":`마지막 검사`,"views.serverDetail.logBufferLines":`{count}줄`,"views.serverDetail.memoryRss":`메모리 (RSS)`,"views.serverDetail.moreActions":`{label}의 추가 작업`,"views.serverDetail.neverWritten":`이 서버는 아직 아무것도 기록하지 않았습니다.`,"views.serverDetail.nextAttempt":`다음 시도`,"views.serverDetail.none":`없음`,"views.serverDetail.off":`꺼짐`,"views.serverDetail.persistent":`상주`,"views.serverDetail.persistentHint":"이 항목은 자체 nanny로 실행되므로 제어판이 중지, 재시작 또는 종료되어도 계속 실행됩니다. `home-hosted down`은 중지하지 않고 보고만 하며, 중지하는 것은 중지뿐입니다.","views.serverDetail.pid":`PID`,"views.serverDetail.portFree":`사용 가능`,"views.serverDetail.portInUse":`사용 중`,"views.serverDetail.portState":`포트 상태`,"views.serverDetail.probeFailed":`상태 검사가 통과되지 않았습니다.`,"views.serverDetail.probeFailedFor":`상태 검사가 {duration} 동안 통과되지 않았습니다.`,"views.serverDetail.processes":`프로세스`,"views.serverDetail.rawJson":`원시 JSON`,"views.serverDetail.removeAutostart":`자동 시작에서 제거`,"views.serverDetail.removeDescription":`{label}이(가) servers.config.json에서 제거됩니다. 프로세스가 중지되고 로그와 충돌 기록도 함께 삭제됩니다.`,"views.serverDetail.removeNote":`제어판에서는 되돌릴 수 없습니다 — 항목을 직접 또는 백업에서 다시 추가해야 합니다.`,"views.serverDetail.removeServer":`서버 제거`,"views.serverDetail.removeTitle":`이 서버를 제거할까요?`,"views.serverDetail.restart":`다시 시작`,"views.serverDetail.restarts":`재시작`,"views.serverDetail.sectionConfig":`구성`,"views.serverDetail.sectionHistory":`기록`,"views.serverDetail.sectionOutput":`실시간 출력`,"views.serverDetail.start":`시작`,"views.serverDetail.startsOnItsOwn":`스스로 시작합니다. {code}에 id를 추가하면 다른 서버 뒤에 오도록 순서를 정할 수 있습니다.`,"views.serverDetail.stop":`중지`,"views.serverDetail.telemetry":`텔레메트리`,"views.serverDetail.telemetryNote":`이 페이지가 열려 있는 동안 5초마다 샘플링됩니다.`,"views.serverDetail.unhealthyFor":`비정상 지속 시간`,"views.serverDetail.uptime24":`24시간 가동`,"views.serverDetail.waitingFirstLine":`첫 줄을 기다리는 중…`,"views.servers.clearFilter":`필터 지우기`,"views.servers.clearFilters":`필터 지우기`,"views.servers.description":`{workspace}의 servers.config.json에 있는 모든 항목. 실시간 리소스, 상태, 기록 포함.`,"views.servers.emptyDescription":`이 제어판이 감독할 첫 프로세스를 추가하세요. 명령, 인수, 환경 변수, 작업 디렉터리는 모두 구성 파일에 있습니다.`,"views.servers.emptyTitle":`구성된 서버 없음`,"views.servers.filterAll":`전체`,"views.servers.filterAria":`서버 필터링`,"views.servers.filterAttention":`주의`,"views.servers.filterDisabled":`사용 안 함`,"views.servers.filterPlaceholder":`id, 레이블, 명령 또는 포트로 필터링`,"views.servers.filterRunning":`실행 중`,"views.servers.filterStopped":`중지됨`,"views.servers.noMatchDescription":`다른 상태를 시도하거나 검색을 지우세요.`,"views.servers.noMatchTitle":`이 필터와 일치하는 항목이 없습니다`,"views.settings.changesDescription":`저장하면 {workspace}의 설정에 기록될 내용.`,"views.settings.configErrorNote":`제어판은 기존 구성으로 계속 감독합니다. 파일을 고치면 스스로 다시 불러옵니다.`,"views.settings.configErrorTitle":`워크스페이스 구성을 읽을 수 없습니다`,"views.settings.configWarningTitle":`이 워크스페이스의 구성에 경고가 있습니다`,"views.settings.ddnsDescription":`어느 등록 기관이 보유하든 호스트 이름을 이 컴퓨터의 공인 주소로 계속 가리키게 합니다.`,"views.settings.defaultsDescription":`이 워크스페이스에서 자체 값을 설정하지 않은 모든 항목에 적용됩니다.`,"views.settings.description":`{workspace}의 서버 기본값, 로그 보존, 알림, 동적 DNS.`,"views.settings.logsDescription":`이 워크스페이스가 출력을 디스크에 얼마나 오래 보관하는지.`,"views.settings.navLabel":`워크스페이스 설정 섹션`,"views.settings.notificationsDescription":`이 워크스페이스의 충돌과 상태 경고를 Telegram 채팅으로 보냅니다.`,"views.settings.saveFailed":`설정을 저장할 수 없습니다.`,"views.settings.saved":`워크스페이스 설정을 저장했습니다.`,"views.settings.savedToast":`워크스페이스 설정 저장됨`,"views.settings.sectionDdns":`동적 DNS`,"views.settings.sectionDefaults":`서버 기본값`,"views.settings.sectionLogs":`로그`,"views.settings.sectionNotifications":`알림`,"workspace.new":`새 워크스페이스`,"workspace.rename":`워크스페이스 이름 변경`,"workspace.create":`워크스페이스 만들기`,"workspace.renameAction":`이름 변경`,"workspace.createHint":`자체 설정, 서버, 로그, 시크릿, 백업 항목을 가지며 같은 제어판에서 제공됩니다.`,"workspace.renameHint":`이름만 바뀝니다. 워크스페이스 id는 그대로라 URL과 경로가 계속 작동합니다.`,"workspace.nameHint":`상단 표시줄에 표시됩니다.`,"workspace.nameHintId":`상단 표시줄에 표시됩니다. Id: {id}`,"workspace.none":`워크스페이스 없음`,"workspace.delete":`워크스페이스 삭제`,"days.remaining":{other:`{count}일`},"editor.unsaved":{one:`저장하지 않은 변경`,other:`저장하지 않은 변경`},"editor.saveChanges":{one:`변경 {count}건 저장`,other:`변경 {count}건 저장`},"logs.lines":{other:`{count}줄`},"palette.results":{other:`결과 {count}개`},"proxy.retry.inMinutes":{one:`약 {count}분`,other:`약 {count}분`},"proxy.retry.inHours":{one:`약 {count}시간`,other:`약 {count}시간`},"servers.total":{other:`서버 {count}개`},"servers.running":{other:`{count}개 실행 중`},"settings.backup.entriesCount":{one:`항목 {count}개`,other:`항목 {count}개`},"settings.backup.itemsSelected":{one:`{count}개 선택됨`,other:`{count}개 선택됨`},"settings.ddns.hostnameCount":{one:`호스트 이름 {count}개`,other:`호스트 이름 {count}개`},"settings.shell.fieldsChanged":{one:`필드 변경됨`,other:`필드 변경됨`},"settings.shell.saveChanges":{one:`변경 {count}건 저장`,other:`변경 {count}건 저장`},"views.globalOverview.needLook":{one:`서버 {count}대를 살펴봐야 합니다`,other:`서버 {count}대를 살펴봐야 합니다`},"views.logs.filesOnDisk":{one:`파일 {count}개`,other:`파일 {count}개`},"views.overview.needLook":{one:`서버 {count}대를 살펴봐야 합니다`,other:`서버 {count}대를 살펴봐야 합니다`}};export{e as default};
|