diff --git a/public/locales/ko/translation.json b/public/locales/ko/translation.json
new file mode 100644
index 00000000..3d0792b0
--- /dev/null
+++ b/public/locales/ko/translation.json
@@ -0,0 +1,479 @@
+{
+ "common.action.back": "뒤로",
+ "common.action.cancel": "취소",
+ "common.action.click-here-to-learn-more": "자세히 알아보려면 여기를 클릭하세요.",
+ "common.action.confirm-delete": "삭제 확인",
+ "common.action.delete": "삭제",
+ "common.action.next": "다음",
+ "common.action.return": "돌아가기",
+ "common.action.stop": "중지",
+ "common.label.loading": "로드 중...",
+ "event.cli.copy-to-clipboard": "클립보드에 복사",
+ "event.cli.show-cli-equivalent": "클릭하여 CLI와 동등한 명령을 표시합니다.",
+ "event.log.hide-log": "로그 숨기기",
+ "event.log.show-log": "로그 표시",
+ "event.pin.add-pin": "고정항목 추가",
+ "event.pin.pin-snapshot": "스냅샷 고정",
+ "event.pin.remove-pin": "고정 제거",
+ "event.pin.update-pin": "고정항목 업데이트",
+ "event.policy.delete": "정책 제거",
+ "event.policy.edit": "수정",
+ "event.policy.save": "정책 저장",
+ "event.policy.set-policy": "정책 설정",
+ "event.repository.cancel-connection": "연결 취소",
+ "event.repository.connect-to-repository": "리포지토리에 연결",
+ "event.repository.create-repository": "리포지토리 생성",
+ "event.repository.disconnect-from-repository": "리포지토리 연결 해제",
+ "event.repository.hide-advanced-options": "고급 옵션 숨기기",
+ "event.repository.show-advanced-options": "고급 옵션 표시",
+ "event.repository.update-description": "설명 업데이트",
+ "event.snapshot.browse-directory": "탐색",
+ "event.snapshot.delete-selected": "event.snapshot.delete-selected",
+ "event.snapshot.delete-selected_one": "선택한 {{count}} 개의 스냅샷을 삭제하시겠습니까?",
+ "event.snapshot.delete-selected_other": "선택한 {{count}} 개의 스냅샷을 삭제하시겠습니까?",
+ "event.snapshot.description.enter-new-description": "새 설명 입력",
+ "event.snapshot.description.remove-description": "설명 제거",
+ "event.snapshot.description.update-description": "설명 업데이트",
+ "event.snapshot.estimate": "추정",
+ "event.snapshot.fetch-snapshots": "스냅샷 가져오기",
+ "event.snapshot.history.delete-selected": "선택한 ({{count}}) 개의 항목 삭제",
+ "event.snapshot.history.delete-snapshot-source": "스냅샷 소스 삭제",
+ "event.snapshot.history.deselect-all": "모두 선택 해제",
+ "event.snapshot.history.select-all-snapshots": "모두 선택",
+ "event.snapshot.history.update-snapshot-description": "{{description}} - 스냅샷 설명을 클릭해서 업데이트하세요.",
+ "event.snapshot.mount-directory": "로컬 파일 시스템으로 마운트",
+ "event.snapshot.new-snapshot": "새 스냅샷",
+ "event.snapshot.restore-file-directories": "파일 및 디렉터리 복원\n",
+ "event.snapshot.restore.begin-restore": "복원 시작",
+ "event.snapshot.restore.go-to-restore-task": "복원 작업으로 이동",
+ "event.snapshot.show-policy": "정책",
+ "event.snapshot.snapshot-now": "지금 스냅샷 생성",
+ "event.snapshot.synchronize": "동기화",
+ "event.snapshot.unmount-directory": "마운트 해제",
+ "event.task.action.cancel": "작업 취소",
+ "event.task.select.task-all": "모두",
+ "event.task.select.task-failed": "실패",
+ "event.task.select.task-running": "진행",
+ "feedback.directory.header.directories": "디렉토리",
+ "feedback.directory.header.files": "파일",
+ "feedback.directory.header.last-modification": "최종 수정",
+ "feedback.directory.header.name": "이름",
+ "feedback.directory.header.size": "사이즈",
+ "feedback.error.common": "오류",
+ "feedback.error.connection": "연결 오류:",
+ "feedback.header.effective": "Effective",
+ "feedback.header.username": "사용자 이름",
+ "feedback.pin.add-pin-to-protect": "고정 항목으로 추가해서 스냅샷 제거를 방지합니다",
+ "feedback.pin.do-not-delete": "do-not-delete",
+ "feedback.pin.name-of-the-pin": "고정 항목 이름",
+ "feedback.policy.action.command-mode": "명령 모드",
+ "feedback.policy.actions.after-folder": "폴더 작업 후",
+ "feedback.policy.actions.after-folder-help": "폴더 작업 다음에 실행할 스크립트",
+ "feedback.policy.actions.after-snapshot": "스냅샷 작업 후",
+ "feedback.policy.actions.after-snapshot-help": "스냅샷 작업 다음에 실행할 스크립트",
+ "feedback.policy.actions.before-folder": "폴더 작업 전",
+ "feedback.policy.actions.before-folder-help": "폴더 작업 전에 실행할 스크립트",
+ "feedback.policy.actions.before-snapshot": "스냅샷 작업 전",
+ "feedback.policy.actions.before-snapshot-help": "스냅샷 작업 전에 실행할 스크립트",
+ "feedback.policy.actions.timeout": "타임아웃",
+ "feedback.policy.command-mode-help": "필수(반드시 성공해야 함, 기본 동작), 선택(실패도 허용함) 또는 비동기(Kopia가 동작을 시작하지만 완료할 때까지 기다리지 않음)",
+ "feedback.policy.compression.compression-algorithm": "압축 알고리즘",
+ "feedback.policy.compression.compression-algorithm-help": "현재 디렉토리 및 하위 디렉터리에 있는 파일을 스냅샷할 때 사용할 압축 알고리즘을 지정합니다",
+ "feedback.policy.compression.maximal-file-size": "최대 파일 크기",
+ "feedback.policy.compression.maximal-file-size-help": "설정된 값을 초과하는 파일은 압축하지 않습니다",
+ "feedback.policy.compression.maximal-file-size-hint": "최대 파일 크기(바이트)",
+ "feedback.policy.compression.minimal-file-size": "최소 파일 크기",
+ "feedback.policy.compression.minimal-file-size-help": "설정된 값보다 작은 파일은 압축하지 않습니다",
+ "feedback.policy.compression.minimal-file-size-hint": "최소 파일 크기(바이트)",
+ "feedback.policy.compression.never-compress-extensions": "압축하지 않는 확장자",
+ "feedback.policy.compression.never-compress-extensions-help": "다음 파일 확장자는 압축하지 않습니다(한 줄에 하나의 확장자만 입력).",
+ "feedback.policy.compression.never-compress-extensions-hint": "예시: *.mp4",
+ "feedback.policy.compression.only-compress-extensions": "반드시 압축할 확장자",
+ "feedback.policy.compression.only-compress-extensions-help": "다음 파일 확장자를 가진 파일만 압축합니다(한 줄에 하나의 확장자만 입력). ",
+ "feedback.policy.compression.only-compress-extensions-hint": "예시: *.txt",
+ "feedback.policy.confirm-delete-policy": "이 정책을 삭제하시겠습니까?",
+ "feedback.policy.defined-by": "다음 정책을 따름:",
+ "feedback.policy.defined-by-this-policy": "현재 정책으로 정의함",
+ "feedback.policy.error-delete-policy": "정책 삭제 중 오류 발생",
+ "feedback.policy.error-handling.ignore-directory-errors": "디렉토리 오류 무시",
+ "feedback.policy.error-handling.ignore-directory-errors-help": "디렉터리 읽기 오류는 치명적이지 않은 것으로 처리합니다.",
+ "feedback.policy.error-handling.ignore-file-errors": "파일 오류 무시",
+ "feedback.policy.error-handling.ignore-file-errors-help": "파일 읽기 오류를 치명적이지 않은 오류로 처리합니다.",
+ "feedback.policy.error-handling.ignore-unknown-directories": "알 수 없는 디렉터리 항목 무시",
+ "feedback.policy.error-handling.ignore-unknown-directories-help": "인식할 수 없거나 지원되지 않는 디렉터리 항목은 치명적이지 않은 오류로 처리합니다.",
+ "feedback.policy.error-saving-policy": "정책 저장 중 오류 발생",
+ "feedback.policy.files.ignore-files": "무시할 파일 목록",
+ "feedback.policy.files.ignore-files-help": "파일과 디렉토리 이름을 무시할 목록입니다.
파일을 무시하는 방법에 대한 문서를 참조하세요.",
+ "feedback.policy.files.ignore-files-hint": "예시: /file.txt",
+ "feedback.policy.files.ignore-rule-files": "무시 규칙 파일 목록",
+ "feedback.policy.files.ignore-rule-files-from-parent-directories": "상위 디렉토리의 무시 규칙 파일 적용",
+ "feedback.policy.files.ignore-rule-files-from-parent-directories-help": "설정하면, 상위 디렉토리의 무시 규칙을 지정하는 파일(.kopiaignore 등)을 무시합니다.",
+ "feedback.policy.files.ignore-rule-files-help": "무시 규칙이 포함된 추가 파일 목록(각 파일은 디렉터리 및 하위 디렉터리에 대한 무시 규칙을 구성)",
+ "feedback.policy.files.ignore-rule-files-hint": "예시: .kopiaignore",
+ "feedback.policy.files.ignore-rules-from-parent-directories": "상위 디렉토리의 무시 규칙 적용",
+ "feedback.policy.files.ignore-rules-from-parent-directories-help": "설정하면, 상위 디렉토리의 무시 규칙을 무시합니다.",
+ "feedback.policy.files.ignore-well-known-cache-directories": "Well-Known 캐시 디렉토리를 무시합니다",
+ "feedback.policy.files.ignore-well-known-cache-directories-help": "CACHEDIR.TAG와 유사한 파일을 포함하는 디렉토리를 무시합니다.",
+ "feedback.policy.files.scan-only-one-filesystem": "하나의 파일 시스템만 스캔",
+ "feedback.policy.files.scan-only-one-filesystem-help": "스냅샷을 만들 때 파일 시스템 경계를 넘어가지 않습니다.",
+ "feedback.policy.find-count": "feedback.policy.find-count",
+ "feedback.policy.find-count_one": "지정된 기준과 일치하는 {{count}} 개의 정책을 찾음",
+ "feedback.policy.find-count_other": "지정된 기준과 일치하는 {{count}} 개의 정책을 찾음",
+ "feedback.policy.find-hint": "정책을 찾거나 설정할 디렉토리를 입력",
+ "feedback.policy.find-none": "정책을 찾을 수 없음",
+ "feedback.policy.find-none-create": "디렉토리 {{path}}에 대한 정책을 찾을 수 없습니다. 새로운 정책을 설정해주세요.",
+ "feedback.policy.header.actions": "작업",
+ "feedback.policy.header.compression": "압축",
+ "feedback.policy.header.defined": "정의",
+ "feedback.policy.header.error-handling": "오류 처리",
+ "feedback.policy.header.files": "파일",
+ "feedback.policy.header.folder-actions": "폴더 작업",
+ "feedback.policy.header.host": "호스트",
+ "feedback.policy.header.logging": "로깅",
+ "feedback.policy.header.other": "기타",
+ "feedback.policy.header.path": "경로",
+ "feedback.policy.header.scheduling": "스케줄링",
+ "feedback.policy.header.snapshot-action": "스냅샷 작업",
+ "feedback.policy.header.snapshot-retention": "스냅샷 잔존율",
+ "feedback.policy.header.upload": "업로드",
+ "feedback.policy.kind.all": "모든 정책 목록",
+ "feedback.policy.kind.applicable": "사용 가능한 정책 목록",
+ "feedback.policy.kind.global": "전역적 정책 목록",
+ "feedback.policy.kind.local": "지역적 정책 목록",
+ "feedback.policy.kind.per-host-policies": "호스트별 정책 목록",
+ "feedback.policy.kind.per-user-policies": "사용자별 정책 목록",
+ "feedback.policy.logging.cache-hit": "캐시 적중",
+ "feedback.policy.logging.cache-hit-help": "파일 업로드 대신 캐시를 사용할 때의 로그 상세도 설정",
+ "feedback.policy.logging.cache-miss": "캐시 실패",
+ "feedback.policy.logging.cache-miss-help": "파일을 해싱해야 하며 캐시를 사용할 수 없는 경우의 로그 상세도",
+ "feedback.policy.logging.directory-ignored": "디렉토리 무시함",
+ "feedback.policy.logging.directory-ignored-help": "디렉토리를 무시할 때의 로그 상세도",
+ "feedback.policy.logging.directory-snapshotted": "디렉토리 스냅샷",
+ "feedback.policy.logging.directory-snapshotted-help": "디렉토리를 스냅샷에 포함할 때의 로그 상세도",
+ "feedback.policy.logging.file-ignored": "파일 무시함",
+ "feedback.policy.logging.file-ignored-help": "파일, 심볼릭 링크 등을 무시할 때의 로그 상세도",
+ "feedback.policy.logging.file-snapshotted": "파일 스냅샷",
+ "feedback.policy.logging.file-snapshotted-help": "파일, 심볼릭 링크 등을 스냅샷에 포함할 때의 로그 상세도",
+ "feedback.policy.other.disable-parent-policy-evaluation": "상위 정책 평가 비활성화",
+ "feedback.policy.other.disable-parent-policy-evaluation-help": "상위 정책이 이 디렉터리 및 하위 디렉터리에 영향을 미치지 않도록 합니다.",
+ "feedback.policy.other.json-representation": "JSON 표현",
+ "feedback.policy.other.json-representation-help": "정책의 내부 표현입니다.",
+ "feedback.policy.policies-defined-by-path-absolute": "정책은 절대 경로에 대해서만 정의할 수 있습니다.",
+ "feedback.policy.retention.annual-snapshot-retain": "연간",
+ "feedback.policy.retention.annual-snapshot-retain-help": "각 소스별로 유지할 연간 스냅샷의 수입니다. 각 캘린더 연도의 최신 스냅샷이 유지됩니다",
+ "feedback.policy.retention.annual-snapshot-retain-hint": "연간 스냅샷 수",
+ "feedback.policy.retention.daily-snapshot-retain": "일간",
+ "feedback.policy.retention.daily-snapshot-retain-help": "각 소스별로 유지할 일일 스냅샷의 수입니다. 각 날짜의 최신 스냅샷이 유지됩니다",
+ "feedback.policy.retention.daily-snapshot-retain-hint": "일일 스냅샷의 수",
+ "feedback.policy.retention.hourly-snapshot-retain": "시간별",
+ "feedback.policy.retention.hourly-snapshot-retain-help": "각 소스별로 유지할 시간별 스냅샷의 수입니다. 각 시간의 최신 스냅샷이 유지됩니다",
+ "feedback.policy.retention.hourly-snapshot-retain-hint": "시간별 스냅샷의 수",
+ "feedback.policy.retention.ignore-identical-snapshots": "동일한 스냅샷을 무시",
+ "feedback.policy.retention.ignore-identical-snapshots-help": "파일이 변경되지 않은 경우 스냅샷을 저장하지 않습니다",
+ "feedback.policy.retention.keep-latest-help": "가장 최근 스냅샷의 수",
+ "feedback.policy.retention.latest-snapshot-retain": "가장 최근 스냅샷 목록",
+ "feedback.policy.retention.latest-snapshot-retain-help": "각 소스별로 유지할 가장 최근 스냅샷의 수",
+ "feedback.policy.retention.monthly-snapshot-retain": "월간",
+ "feedback.policy.retention.monthly-snapshot-retain-help": "각 소스별로 유지할 월간 스냅샷의 수입니다. 각 달의 최신 스냅샷이 유지됩니다",
+ "feedback.policy.retention.monthly-snapshot-retain-hint": "월간 스냅샷의 수",
+ "feedback.policy.retention.weekly-snapshot-retain": "주간",
+ "feedback.policy.retention.weekly-snapshot-retain-help": "각 소스별로 유지할 주간 스냅샷의 수입니다. 각 주의 최신 스냅샷이 유지됩니다",
+ "feedback.policy.retention.weekly-snapshot-retain-hint": "주간 스냅샷의 수",
+ "feedback.policy.scheduling.cron-expressions": "크론 표현식",
+ "feedback.policy.scheduling.cron-expressions-hint": "분 시간 일 월 요일 #comment",
+ "feedback.policy.scheduling.cron-help": "UNIX 크론탭 구문을 사용한 스냅샷 스케줄 (한 줄에 하나씩):
지원되는 형식 세부 정보는 지원되는 형식 세부 정보를 참조하세요.",
+ "feedback.policy.scheduling.manual-snapshots-only": "수동 스냅샷만 가능",
+ "feedback.policy.scheduling.manual-snapshots-only-help": "스냅샷은 수동으로만 생성됩니다 (예약된 스냅샷이 비활성화됨)",
+ "feedback.policy.scheduling.missed-snapshots-startup": "시작시 누락된 스냅샷 실행",
+ "feedback.policy.scheduling.missed-snapshots-startup-help": "Kopia 시작 시 누락된 스냅샷을 즉시 실행합니다 (시간별 스냅샷에만 해당)",
+ "feedback.policy.scheduling.no-upcoming-snapshots": "다가오는 스냅샷이 없음",
+ "feedback.policy.scheduling.snapshot-frequency": "스냅샷 빈도",
+ "feedback.policy.scheduling.snapshot-frequency-help": "KopiaUI 또는 Kopia 서버에서 스냅샷을 만드는 빈도입니다. (서버 모드 외에는 영향을 미치지 않음)",
+ "feedback.policy.scheduling.times-of-day": "하루의 특정 시간대",
+ "feedback.policy.scheduling.times-of-day-help": "하루 중 특정 시간대(24시간 형식)에 스냅샷을 생성합니다",
+ "feedback.policy.scheduling.times-of-day-hint": "예시: 17:00",
+ "feedback.policy.scheduling.upcoming": "예약됨",
+ "feedback.policy.scheduling.upcoming-snapshots": "다가오는 스냅샷 목록",
+ "feedback.policy.scheduling.upcoming-snapshots-help": "다가오는 스냅샷의 시간은 정책 매개변수를 기반으로 계산됩니다",
+ "feedback.policy.time-of-day.invalid": "유효하지 않은 시간대: {{tod}}",
+ "feedback.policy.timeout-help": "Kopia가 프로세스를 종료하기 전의 타임아웃(초 단위)",
+ "feedback.policy.upload.maximum-parallel-file-reads": "최대 병렬 파일 읽기",
+ "feedback.policy.upload.maximum-parallel-file-reads-help": "병렬로 읽는 최대 파일 수 (기본값은 논리 프로세서의 수)",
+ "feedback.policy.upload.maximum-parallel-file-reads-hint": "병렬 파일 읽기의 최대 수",
+ "feedback.policy.upload.maximum-parallel-snapshots": "최대 병렬 스냅샷",
+ "feedback.policy.upload.maximum-parallel-snapshots-help": "동시에 업로드할 수 있는 최대 스냅샷 수",
+ "feedback.policy.upload.maximum-parallel-snapshots-hint-set": "병렬 스냅샷의 최대 수",
+ "feedback.policy.upload.maximum-parallel-snapshots-hint-unset": "전역, 사용자 또는 호스트 정책을 사용하여 지정해야 합니다.",
+ "feedback.prodiver.gcs.paste-json-credentials": "JSON 자격 증명을 여기에 붙여넣으세요",
+ "feedback.provider.azure-blob-storage": "Azure Blob Storage",
+ "feedback.provider.azure.access-key": "Access Key",
+ "feedback.provider.azure.azure-storage-domain": "Azure Storage 도메인",
+ "feedback.provider.azure.container": "컨테이너",
+ "feedback.provider.azure.enter-access-key": "Secret access key 입력",
+ "feedback.provider.azure.enter-azure-storage-domain": "Azure storage 도메인을 입력하거나 기본값인 'blob.core.windows.net'를 사용하려면 비워 두세요.",
+ "feedback.provider.azure.enter-container-name": "컨테이너 이름 입력",
+ "feedback.provider.azure.enter-object-name-prefix": "객체 이름 접두사를 입력하거나 비워 두세요",
+ "feedback.provider.azure.enter-sas-token": "Secret SAS 토큰 입력",
+ "feedback.provider.azure.enter-storage-account": "Storage 사용자명 입력",
+ "feedback.provider.azure.object-name-prefix": "객체 이름 접두사",
+ "feedback.provider.azure.sas-token": "SAS 토큰",
+ "feedback.provider.azure.storage-account": "스토리지 계정",
+ "feedback.provider.b2.bucket-name": "B2 버킷",
+ "feedback.provider.b2.enter-account-key": "Secret application 혹은 account key 입력",
+ "feedback.provider.b2.enter-account-key-id": "Application 혹은 account key ID 입력",
+ "feedback.provider.b2.enter-bucket-name": "버킷 이름 입력",
+ "feedback.provider.b2.enter-object-name-prefix": "객체 이름 접두사를 입력하거나 비워 두세요",
+ "feedback.provider.b2.key": "Key",
+ "feedback.provider.b2.key-id": "Key ID",
+ "feedback.provider.b2.object-name-prefix": "객체 이름 접두사",
+ "feedback.provider.backblaze-b2": "Backblaze B2",
+ "feedback.provider.filesystem.directory-path": "디렉토리 경로",
+ "feedback.provider.filesystem.enter-directory-path": "리포지토리 파일을 저장할 디렉토리 경로를 입력",
+ "feedback.provider.gcs.bucket-name": "GCS 버킷",
+ "feedback.provider.gcs.credentials-file": "Credentials File",
+ "feedback.provider.gcs.credentials-json": "Credentials JSON",
+ "feedback.provider.gcs.enter-bucket-name": "버킷 이름 입력",
+ "feedback.provider.gcs.enter-credentials-file-name": "Credentials JSON 파일의 이름 입력",
+ "feedback.provider.gcs.enter-object-name-prefix": "객체 이름 접두사를 입력하거나 비워 두세요",
+ "feedback.provider.gcs.object-name-prefix": "객체 이름 접두사",
+ "feedback.provider.google-cloud-storage": "Google Cloud Storage",
+ "feedback.provider.kopia-repository-server": "Kopia 리포지토리 서버",
+ "feedback.provider.local-directory-or-nas": "로컬 디렉토리 or NAS",
+ "feedback.provider.rclone-remote": "Rclone Remote",
+ "feedback.provider.rclone.rclone-executable-path": "Rclone 실행 파일 경로",
+ "feedback.provider.rclone.rclone-executable-path-hint": "rclone 실행 파일의 경로를 입력",
+ "feedback.provider.rclone.rclone-remote-path": "Rclone Remote 경로",
+ "feedback.provider.rclone.rclone-remote-path-hint": ":<경로> 입력",
+ "feedback.provider.repositoryserver.enter-server-certificate-fingerprint": "서버 시작 시 출력된 신뢰할 수 있는 서버 인증서 지문을 입력",
+ "feedback.provider.repositoryserver.enter-server-url": "서버 URL 입력 (https://<호스트>:포트)",
+ "feedback.provider.repositoryserver.server-address": "서버 주소",
+ "feedback.provider.repositoryserver.server-certificate-fingerprint": "신뢰할 수 있는 서버 인증서 지문 (SHA256)을 입력",
+ "feedback.provider.repositorytoken.paste-token": "연결 토큰을 붙여넣기",
+ "feedback.provider.repositorytoken.token": "토큰",
+ "feedback.provider.required-either-key-file": "비밀번호, 키 파일, 또는 키 데이터 중 하나가 필요합니다.",
+ "feedback.provider.required-either-known-host-data": "Known hosts file 또는 Known hosts data 중 하나가 필요하지만 둘 다 필요하지는 않습니다.",
+ "feedback.provider.s3-or-compatible-storage": "Amazon S3 또는 호환 가능한 저장소",
+ "feedback.provider.s3.access-key-id": "Access Key ID",
+ "feedback.provider.s3.access-key-id-hint": "Access Key ID 입력",
+ "feedback.provider.s3.bucket-name": "버킷",
+ "feedback.provider.s3.bucket-name-hint": "버킷 이름 입력",
+ "feedback.provider.s3.enter-object-name-prefix-hint": "객체 이름 접두사를 입력하거나 비워 두세요",
+ "feedback.provider.s3.object-name-prefix": "객체 이름 접두사",
+ "feedback.provider.s3.override-region": "Region 재정의",
+ "feedback.provider.s3.override-region-hint": "특정 Region을 입력하거나 (예시: us-west-1) 비워 두세요",
+ "feedback.provider.s3.secret-access-key": "Secret Access Key",
+ "feedback.provider.s3.secret-access-key-hint": "Secret Access Key 입력",
+ "feedback.provider.s3.server-endpoint": "Server Endpoint",
+ "feedback.provider.s3.server-endpoint-hint": "서버 주소 입력 (예시: s3.amazonaws.com)",
+ "feedback.provider.s3.session-token": "Session Token",
+ "feedback.provider.s3.session-token-hint": "Session Token을 입력하거나 비워 두세요",
+ "feedback.provider.sftp-key-data": "Key data",
+ "feedback.provider.sftp-key-data-hint": "키 파일의 내용을 붙여넣기",
+ "feedback.provider.sftp-server": "SFTP 서버",
+ "feedback.provider.sftp.enter-password": "비밀번호 입력",
+ "feedback.provider.sftp.enter-path-host-file": "known_hosts 파일의 경로 입력",
+ "feedback.provider.sftp.enter-path-to-key-file": "키 파일의 경로 입력",
+ "feedback.provider.sftp.enter-remote-path": "저장소의 원격 경로를 입력하세요. 예시: '/mnt/data/repository'",
+ "feedback.provider.sftp.enter-ssh-arguments": "SSH 명령 인수를 입력하세요 ('user@host -s sftp'가 자동으로 추가됩니다).",
+ "feedback.provider.sftp.enter-ssh-host-name": "SSH 호스트 이름 입력 (예시: example.com)",
+ "feedback.provider.sftp.host": "호스트",
+ "feedback.provider.sftp.known-host-data": "known_hosts Data",
+ "feedback.provider.sftp.launch-external-ssh-command": "외부 비밀번호 없는 SSH 명령 실행",
+ "feedback.provider.sftp.launch-external-ssh-command-hint": "기본적으로 Kopia는 내부 SSH 클라이언트를 사용하여 서버에 연결합니다. 이 클라이언트는 제한된 옵션을 지원합니다. 대안으로 외부 비밀번호 없는 SSH 명령을 실행할 수도 있습니다. 이 방법은 내장된 클라이언트보다 효율적이지 않을 수 있지만 추가적인 옵션을 지원합니다.",
+ "feedback.provider.sftp.password": "비밀번호",
+ "feedback.provider.sftp.paste-content-of-known-host": "known_hosts 파일의 내용 붙여넣기",
+ "feedback.provider.sftp.path": "경로",
+ "feedback.provider.sftp.path-host-file": "known_hosts 파일의 경로 입력",
+ "feedback.provider.sftp.path-key-file": "키 파일의 경로 입력",
+ "feedback.provider.sftp.port": "포트",
+ "feedback.provider.sftp.port-number": "포트 번호 (예시: 22)",
+ "feedback.provider.sftp.provide-passwordless-ssh-command": "비밀번호 없는 SSH 명령을 제공하세요 (일반적으로 'ssh'입니다).",
+ "feedback.provider.sftp.ssh-arguments": "SSH 인수",
+ "feedback.provider.sftp.ssh-command": "SSH 명령",
+ "feedback.provider.sftp.user": "사용자",
+ "feedback.provider.sftp.user-name": "사용자명",
+ "feedback.provider.use-repository-token": "리포지토리 Token 사용",
+ "feedback.provider.webdav-server": "WebDAV 서버",
+ "feedback.provider.webdav.enter-password": "비밀번호 입력",
+ "feedback.provider.webdav.enter-username": "사용자명 입력",
+ "feedback.provider.webdav.password": "비밀번호",
+ "feedback.provider.webdav.server-url": "WebDAV 서버 URL",
+ "feedback.provider.webdav.username": "사용자명",
+ "feedback.repository.additional-parameters-hint": "명령줄을 사용하여 저장소를 생성할 때 추가 매개변수를 설정할 수 있습니다.",
+ "feedback.repository.attribute.algorithm-eco": "오류 정정 알고리즘",
+ "feedback.repository.attribute.algorithm-encryption": "암호화 알고리즘",
+ "feedback.repository.attribute.algorithm-hash": "해시 알고리즘",
+ "feedback.repository.attribute.algorithm-splitter": "분할 알고리즘",
+ "feedback.repository.attribute.config-file": "설정 파일",
+ "feedback.repository.attribute.connected-as": "다음으로 연결됨",
+ "feedback.repository.attribute.internal-compression": "내부 압축",
+ "feedback.repository.attribute.repository-eco": "오류 정정 오버헤드",
+ "feedback.repository.attribute.repository-format": "리포지토리 형식",
+ "feedback.repository.attribute.repository-provider": "Provider",
+ "feedback.repository.attribute.server-url": "서버 URL",
+ "feedback.repository.configuration": "Storage Configuration",
+ "feedback.repository.connect-as": "다음으로 연결됨",
+ "feedback.repository.connect-in-read-only-mode": "읽기 전용 모드로 연결",
+ "feedback.repository.connect-in-read-only-mode-hint": "읽기 전용 모드는 저장소에 대한 모든 변경을 방지합니다.",
+ "feedback.repository.connect-to-repository": "리포지토리에 연결",
+ "feedback.repository.create-repository-new": "새 리포지토리 생성",
+ "feedback.repository.create-repository-new-help": "제공된 저장소에 Kopia 저장소를 생성하려면 강력한 암호를 입력하세요.",
+ "feedback.repository.eco-disabled": "해제됨",
+ "feedback.repository.eec-warning": "[실험적] 오류 정정은 저장 매체에서 발생하는 자발적인 비트 플립으로 인한 특정 종류의 데이터 손상으로부터 보호할 수 있습니다.",
+ "feedback.repository.encryption": "암호화",
+ "feedback.repository.enter-repository-password": "리포지토리 비밀번호 입력",
+ "feedback.repository.hostname": "호스트명",
+ "feedback.repository.hostname-hint": "다른 컴퓨터에서 생성한 스냅샷을 복원할 때 재정의",
+ "feedback.repository.internal-compression-supported-no": "아니요",
+ "feedback.repository.internal-compression-supported-yes": "네",
+ "feedback.repository.kopia-server-parameters": "Kopia 서버 매개변수",
+ "feedback.repository.name-default": "내 리포지토리",
+ "feedback.repository.override-hint": "재정의 하려면 '고급 옵션 표시'을 클릭하세요",
+ "feedback.repository.provider-selection": "Storage Type 선택",
+ "feedback.repository.provider-selection-hint": "저장소에 연결하거나 생성하기 위해 원하는 저장 유형을 선택하세요:",
+ "feedback.repository.repository-description": "리포지토리 설명",
+ "feedback.repository.repository-description-help": "연결된 여러 저장소를 구별하는 데 도움이 됩니다",
+ "feedback.repository.repository-description-hint": "리포지토리 설명 입력",
+ "feedback.repository.repository-description-required": "리포지토리 설명은 필수적입니다.",
+ "feedback.repository.repository-initializing": "리포지토리 초기화...",
+ "feedback.repository.repository-is-read-only": "리포지토리 읽기 전용",
+ "feedback.repository.repository-password": "리포지토리 비밀번호",
+ "feedback.repository.repository-password-confirm": "리포지토리 비밀번호 확인",
+ "feedback.repository.repository-password-confirm-again": "다시 한 번 리포지토리 비밀번호를 입력하세요",
+ "feedback.repository.repository-password-help": "저장소의 내용을 암호화하는 데 사용",
+ "feedback.repository.repository-token-enter": "리포지토리 토큰 입력",
+ "feedback.repository.server-password": "서버 비밀번호",
+ "feedback.repository.server-password-hint": "서버에 연결하기 위한 암호 입력",
+ "feedback.repository.status-connected": "리포지토리에 연결됨",
+ "feedback.repository.username": "사용자명",
+ "feedback.repository.username-hint": "다른 사용자가 생성한 스냅샷을 복원할 때 재정의",
+ "feedback.snapshot.create.enter-path-to-snapshot-hint": "스냅샷의 경로를 입력",
+ "feedback.snapshot.create.must-specify-path": "스냅샷을 생성할 디렉토리를 지정해야 합니다.",
+ "feedback.snapshot.create.snapshot-new": "새 스냅샷",
+ "feedback.snapshot.description": "설명",
+ "feedback.snapshot.description.snapshot-description": "스냅샷 설명",
+ "feedback.snapshot.directory.browsing-not-supported": "웹 브라우저에서 디렉토리 탐색은 지원되지 않습니다. Kopia UI를 사용하세요.",
+ "feedback.snapshot.directory.restore-all-files-help": "아래에 보이는 모든 파일과 디렉토리를 마운트하거나 복원하거나, 파일을 개별적으로 복원할 수 있습니다.",
+ "feedback.snapshot.header.actions": "작업",
+ "feedback.snapshot.header.details": "세부사항",
+ "feedback.snapshot.header.directories": "디렉토리",
+ "feedback.snapshot.header.files": "파일",
+ "feedback.snapshot.header.last-snapshot": "마지막 스냅샷",
+ "feedback.snapshot.header.next-snapshot": "다음 스냅샷",
+ "feedback.snapshot.header.retention": "잔존율",
+ "feedback.snapshot.header.root": "Root",
+ "feedback.snapshot.header.selected": "선택함",
+ "feedback.snapshot.header.snapshot-owner": "소유자",
+ "feedback.snapshot.header.snapshot-path": "경로",
+ "feedback.snapshot.header.snapshot-size": "크기",
+ "feedback.snapshot.header.start-time": "시작 시간",
+ "feedback.snapshot.header.status": "상태",
+ "feedback.snapshot.history.snapshot-displaying": "표시",
+ "feedback.snapshot.history.wipe-all-snapshots": "이 소스의 모든 스냅샷과 정책을 삭제합니다.",
+ "feedback.snapshot.restore.continue-on-errors": "오류 발생 시 계속 진행",
+ "feedback.snapshot.restore.continue-on-errors-help": "복원 오류가 발생할 때, 빠르게 실패 처리하는 대신 계속 시도합니다.",
+ "feedback.snapshot.restore.destination": "대상",
+ "feedback.snapshot.restore.destination-help": "적절한 확장자를 제공하여 .zip 또는 .tar 파일로도 복원할 수 있습니다.",
+ "feedback.snapshot.restore.destination-hint": "대상 경로 입력",
+ "feedback.snapshot.restore.disable-zip-compression": "ZIP 압축 안함",
+ "feedback.snapshot.restore.disable-zip-compression-help": "ZIP 파일로 복원할 때 압축하지 않습니다 (속도가 빠릅니다).",
+ "feedback.snapshot.restore.minimal-file-size-for-shallow-restore": "얕은 복원을 위한 최소 파일 크기",
+ "feedback.snapshot.restore.overwrite-directory": "디렉토리 덮어쓰기",
+ "feedback.snapshot.restore.overwrite-files": "파일 덮어쓰기",
+ "feedback.snapshot.restore.overwrite-symbolic-links": "심볼릭 링크 덮어쓰기",
+ "feedback.snapshot.restore.restore-file-modification-time": "파일 수정시간 복원",
+ "feedback.snapshot.restore.restore-file-ownership": "파일 소유자 복원",
+ "feedback.snapshot.restore.restore-file-permissions": "파일 권한 복원",
+ "feedback.snapshot.restore.shallow-restore-at-depth": "깊이에서 얕은 복원",
+ "feedback.snapshot.restore.skip-previously-restored-files": "이전에 복원된 파일 및 심볼릭 링크 건너뛰기",
+ "feedback.snapshot.restore.snapshot-restore": "복원",
+ "feedback.snapshot.restore.write-files-atomically": "Atomicity 파일 쓰기",
+ "feedback.snapshot.restore.write-sparse-files": "Sparse 파일 쓰기",
+ "feedback.snapshot.show-individual-snapshots-count": "feedback.snapshot.show-individual-snapshots-count",
+ "feedback.snapshot.show-individual-snapshots-count_one": "개별 스냅샷 {{count}} 표시",
+ "feedback.snapshot.show-individual-snapshots-count_other": "개별 스냅샷 목록 {{count}} 표시",
+ "feedback.snapshot.start-after-previous-snapshot": "스냅샷은 이전 스냅샷이 완료된 후 시작됩니다.",
+ "feedback.snapshot.status.status-overdue": "기한 경과",
+ "feedback.snapshot.status.status-pending": "보류 중",
+ "feedback.tab.policies": "정책 목록",
+ "feedback.tab.preferences": "선호",
+ "feedback.tab.repository": "리포지토리",
+ "feedback.tab.repository-is-not-connected": "리포지토리가 연결되지 않았습니다",
+ "feedback.tab.snapshots": "스냅샷 목록",
+ "feedback.tab.tasks": "업무",
+ "feedback.task.estimated-results": "{{description}} 바이트: {{bytes}} ({{bytes.excluded}} 제외됨) 파일: {{files}} ({{files.excluded}} 제외됨) 디렉토리: {{directories}} ({{directories.excluded}} 제외됨) 오류: {{errors}} ({{errors.ignored}} 무시됨)",
+ "feedback.task.header.counter": "Counter",
+ "feedback.task.header.value": "Value",
+ "feedback.task.logs": "로그",
+ "feedback.task.no-tasks-help": "스냅샷 생성, 복원, 유지 관리 실행 등을 할 때 업무 목록이 여기에 표시됩니다.",
+ "feedback.task.search-tasks-by-hint": "설명으로 업무 로그 검색",
+ "feedback.task.status.task-canceled": "업무 취소됨",
+ "feedback.task.status.task-canceled-after": "다음 이후에 업무가 취소됨",
+ "feedback.task.status.task-canceling": "취소중",
+ "feedback.task.status.task-error": "업무 오류",
+ "feedback.task.status.task-failed-after": "다음 이후에 업무가 실패함",
+ "feedback.task.status.task-finished": "완료",
+ "feedback.task.status.task-finished-in": "완료 소요시간",
+ "feedback.task.status.task-running-for": "Task running for",
+ "feedback.task.status.task-started": "시작함",
+ "feedback.task.status.task-succeeded-after": "업무를 완료했습니다",
+ "feedback.task.table.header-description": "설명",
+ "feedback.task.table.header-kind": "유형",
+ "feedback.task.table.header-start-time": "시작 시간",
+ "feedback.task.table.header-status": "상태",
+ "feedback.task.tasks-total": "총",
+ "feedback.ui.appearance": "외형",
+ "feedback.ui.appearance-help": "사용자 인터페이스의 외관을 지정",
+ "feedback.ui.appearance-hint": "폰트 사이즈 선택",
+ "feedback.ui.byte-representation-description": "바이트 표현 선택",
+ "feedback.ui.byte-representation-help": "바이트 단위의 표현을 지정",
+ "feedback.ui.byte-representation-select": "바이트 표현 선택",
+ "feedback.ui.pagesize-description": "페이지 크기",
+ "feedback.ui.pagesize-help": "테이블의 페이지네이션 크기를 지정합니다",
+ "feedback.ui.pagesize-hint": "페이지 크기",
+ "feedback.ui.theme-description": "테마",
+ "feedback.ui.theme-help": "현재 활성 테마",
+ "feedback.ui.theme-select": "테마 선택",
+ "feedback.validation.invalid-times-of-day": "유효하지 않은 시간입니다",
+ "feedback.validation.optional.valid-number-or-empty": "유효한 숫자이거나 비어 있어야 합니다",
+ "feedback.validation.passwords-dont-match": "비밀번호가 일치하지 않음",
+ "feedback.validation.required.directory": "필수 필드",
+ "feedback.validation.required.field": "필수 필드",
+ "feedback.validation.required.valid-number-or-empty": "유효한 숫자이거나 비어 있어야 합니다",
+ "value.algorithm.eco-disabled": "비활성화됨",
+ "value.algorithm.suffix-not-recommended": "(추천하지 않음)",
+ "value.algorithm.suffix-recommended": "(추천함)",
+ "value.log.details-0-no-output": "0 - 출력 없음",
+ "value.log.details-1-minimal-details": "1 - 최소 세부사항",
+ "value.log.details-10-maximum-details": "10 - 최대 세부사항",
+ "value.log.details-5-normal-details": "5 - 기본 세부사항",
+ "value.log.details-inherit-from-parent": "(상위에서 상속)",
+ "value.policy.async": "비동기적으로 실행하고, 실패 무시",
+ "value.policy.essential": "반드시 성공해야 함",
+ "value.policy.inherent-from-parent": "상위에서 상속",
+ "value.policy.none": "없음",
+ "value.policy.optional": "실패 무시",
+ "value.provider.s3.http-connection-insecure": "HTTP 연결 사용 (안전하지 않음)",
+ "value.provider.s3.no-tls-verification": "TLS 인증서를 확인하지 않음",
+ "value.repository.latest-format": "마지막 형식",
+ "value.repository.legacy-format": "v0.8 과 호환되는 레거시 형식",
+ "value.snapshot-frequency.10-minutes": "매 10분 마다",
+ "value.snapshot-frequency.12-hours": "매 12시간 마다",
+ "value.snapshot-frequency.15-minutes": "매 15분 마다",
+ "value.snapshot-frequency.20-minutes": "매 20분 마다",
+ "value.snapshot-frequency.3-hours": "매 3시간 마다",
+ "value.snapshot-frequency.30-minutes": "매 30분 마다",
+ "value.snapshot-frequency.6-hours": "매 6시간 마다",
+ "value.snapshot-frequency.hour": "매 시간 마다",
+ "value.ui.appearance-large": "크게",
+ "value.ui.appearance-medium": "중간",
+ "value.ui.appearance-small": "작게",
+ "value.ui.byte-representation-base10": "Base-10 (KB, MB, GB, TB)",
+ "value.ui.byte-representation-base2": "Base-2 (KiB, MiB, GiB, TiB)",
+ "value.ui.theme-dark": "어두움",
+ "value.ui.theme-light": "밝음",
+ "value.ui.theme-ocean": "오션",
+ "value.ui.theme-pastel": "파스텔",
+ "value.validation.optional-no": "아니요",
+ "value.validation.optional-yes": "네"
+}
\ No newline at end of file
diff --git a/src/assets/languages.json b/src/assets/languages.json
index 776a91a2..79f2d6b3 100644
--- a/src/assets/languages.json
+++ b/src/assets/languages.json
@@ -38,5 +38,10 @@
"label": "Polski",
"code": "PL",
"value": "pl"
+ },
+ "ko": {
+ "label": "한국어",
+ "code": "KO",
+ "value": "ko"
}
}
\ No newline at end of file