From 15ddf655a786a20921c591605732c4541d636f9e Mon Sep 17 00:00:00 2001 From: Luke Gustafson <88517757+LukeGus@users.noreply.github.com> Date: Tue, 13 Jan 2026 00:52:21 -0600 Subject: [PATCH] New translations en.json (Korean) --- src/locales/translated/ko.json | 4566 ++++++++++++++++---------------- 1 file changed, 2283 insertions(+), 2283 deletions(-) diff --git a/src/locales/translated/ko.json b/src/locales/translated/ko.json index e319cfd7..4c7263e2 100644 --- a/src/locales/translated/ko.json +++ b/src/locales/translated/ko.json @@ -1,1899 +1,1899 @@ { "credentials": { - "credentialsViewer": "Credentials Viewer", - "manageYourSSHCredentials": "Manage your SSH credentials securely", - "addCredential": "Add Credential", - "createCredential": "Create Credential", - "editCredential": "Edit Credential", - "viewCredential": "View Credential", - "duplicateCredential": "Duplicate Credential", - "deleteCredential": "Delete Credential", - "updateCredential": "Update Credential", - "credentialName": "Credential Name", - "credentialDescription": "Description", - "username": "Username", - "searchCredentials": "Search credentials...", - "selectFolder": "Select Folder", - "selectAuthType": "Select Auth Type", - "allFolders": "All Folders", - "allAuthTypes": "All Auth Types", - "uncategorized": "Uncategorized", - "totalCredentials": "Total", - "keyBased": "Key-based", - "passwordBased": "Password-based", - "folders": "Folders", - "noCredentialsMatchFilters": "No credentials match your filters", - "noCredentialsYet": "No credentials created yet", - "createFirstCredential": "Create your first credential", - "failedToFetchCredentials": "Failed to fetch credentials", - "credentialDeletedSuccessfully": "Credential deleted successfully", - "failedToDeleteCredential": "Failed to delete credential", - "confirmDeleteCredential": "Are you sure you want to delete credential \"{{name}}\"?", - "credentialCreatedSuccessfully": "Credential created successfully", - "credentialUpdatedSuccessfully": "Credential updated successfully", - "failedToSaveCredential": "Failed to save credential", - "failedToFetchCredentialDetails": "Failed to fetch credential details", - "failedToFetchHostsUsing": "Failed to fetch hosts using this credential", - "loadingCredentials": "Loading credentials...", - "retry": "Retry", - "noCredentials": "No Credentials", - "noCredentialsMessage": "You haven't added any credentials yet. Click \"Add Credential\" to get started.", - "sshCredentials": "SSH Credentials", - "credentialsCount": "{{count}} credentials", - "refresh": "Refresh", - "passwordRequired": "Password is required", - "sshKeyRequired": "SSH key is required", - "credentialAddedSuccessfully": "Credential \"{{name}}\" added successfully", - "general": "General", - "description": "Description", - "folder": "Folder", - "tags": "Tags", - "addTagsSpaceToAdd": "Add tags (press space to add)", - "password": "Password", - "key": "Key", - "sshPrivateKey": "SSH Private Key", - "upload": "Upload", - "updateKey": "Update Key", - "keyPassword": "Key Password", - "keyType": "Key Type", + "credentialsViewer": "자격 증명 뷰어", + "manageYourSSHCredentials": "SSH 자격 증명을 안전하게 관리하세요", + "addCredential": "자격 증명 추가", + "createCredential": "자격 증명 생성", + "editCredential": "자격 증명 수정", + "viewCredential": "자격 증명 보기", + "duplicateCredential": "자격 증명 중복", + "deleteCredential": "자격 증명 삭제", + "updateCredential": "자격 증명 업데이트", + "credentialName": "자격증명", + "credentialDescription": "설명", + "username": "사용자 이름", + "searchCredentials": "자격 증명을 검색하세요...", + "selectFolder": "폴더를 선택하세요", + "selectAuthType": "인증 유형을 선택하세요", + "allFolders": "모든 폴더", + "allAuthTypes": "모든 인증 유형", + "uncategorized": "분류되지 않음", + "totalCredentials": "총", + "keyBased": "키 기반", + "passwordBased": "비밀번호 기반", + "folders": "폴더", + "noCredentialsMatchFilters": "필터 조건에 맞는 자격 증명이 없습니다.", + "noCredentialsYet": "아직 자격 증명이 생성되지 않았습니다.", + "createFirstCredential": "첫 번째 자격증명을 만드세요", + "failedToFetchCredentials": "자격 증명을 가져오는 데 실패했습니다.", + "credentialDeletedSuccessfully": "자격 증명이 성공적으로 삭제되었습니다.", + "failedToDeleteCredential": "자격 증명 삭제에 실패했습니다.", + "confirmDeleteCredential": "자격 증명 \"{{name}}\"을 삭제하시겠습니까?", + "credentialCreatedSuccessfully": "자격 증명이 성공적으로 생성되었습니다.", + "credentialUpdatedSuccessfully": "자격 증명이 성공적으로 업데이트되었습니다.", + "failedToSaveCredential": "자격 증명을 저장하는 데 실패했습니다.", + "failedToFetchCredentialDetails": "자격 증명 정보를 가져오는 데 실패했습니다.", + "failedToFetchHostsUsing": "이 자격 증명을 사용하여 호스트를 가져오는 데 실패했습니다.", + "loadingCredentials": "자격 증명을 불러오는 중...", + "retry": "다시 해 보다", + "noCredentials": "자격증 없음", + "noCredentialsMessage": "아직 자격 증명을 추가하지 않았습니다. 시작하려면 \"자격 증명 추가\"를 클릭하세요.", + "sshCredentials": "SSH 자격 증명", + "credentialsCount": "{{count}} 자격 증명", + "refresh": "새로 고치다", + "passwordRequired": "비밀번호가 필요합니다", + "sshKeyRequired": "SSH 키가 필요합니다.", + "credentialAddedSuccessfully": "자격 증명 \"{{name}}\"이 성공적으로 추가되었습니다.", + "general": "일반적인", + "description": "설명", + "folder": "접는 사람", + "tags": "태그", + "addTagsSpaceToAdd": "태그를 추가하세요 (스페이스 키를 눌러 추가)", + "password": "비밀번호", + "key": "열쇠", + "sshPrivateKey": "SSH 개인 키", + "upload": "업로드", + "updateKey": "업데이트 키", + "keyPassword": "키 비밀번호", + "keyType": "키 유형", "keyTypeRSA": "RSA", "keyTypeECDSA": "ECDSA", - "keyTypeEd25519": "Ed25519", - "basicInfo": "Basic Info", - "authentication": "Authentication", - "organization": "Organization", - "basicInformation": "Basic Information", - "basicInformationDescription": "Enter the basic information for this credential", - "authenticationMethod": "Authentication Method", - "authenticationMethodDescription": "Choose how you want to authenticate with SSH servers", - "organizationDescription": "Organize your credentials with folders and tags", - "enterCredentialName": "Enter credential name", - "enterCredentialDescription": "Enter description (optional)", - "enterUsername": "Enter username", - "nameIsRequired": "Credential name is required", - "usernameIsRequired": "Username is required", - "authenticationType": "Authentication Type", - "passwordAuthDescription": "Use password authentication", - "sshKeyAuthDescription": "Use SSH key authentication", - "passwordIsRequired": "Password is required", - "sshKeyIsRequired": "SSH key is required", - "sshKeyType": "SSH Key Type", - "privateKey": "Private Key", - "enterPassword": "Enter password", - "enterPrivateKey": "Enter private key", - "keyPassphrase": "Key Passphrase", - "enterKeyPassphrase": "Enter key passphrase (optional)", - "keyPassphraseOptional": "Optional: leave empty if your key has no passphrase", - "leaveEmptyToKeepCurrent": "Leave empty to keep current value", - "uploadKeyFile": "Upload Key File", - "generateKeyPairButton": "Generate Key Pair", - "generateKeyPair": "Generate Key Pair", - "generateKeyPairDescription": "Generate a new SSH key pair. If you want to protect the key with a passphrase, enter it in the Key Password field below first.", - "deploySSHKey": "Deploy SSH Key", - "deploySSHKeyDescription": "Deploy public key to target server", - "sourceCredential": "Source Credential", - "targetHost": "Target Host", - "deploymentProcess": "Deployment Process", - "deploymentProcessDescription": "This will safely add the public key to the target host's ~/.ssh/authorized_keys file without overwriting existing keys. The operation is reversible.", - "chooseHostToDeploy": "Choose a host to deploy to...", - "deploying": "Deploying...", - "name": "Name", - "noHostsAvailable": "No hosts available", - "noHostsMatchSearch": "No hosts match your search", - "sshKeyGenerationNotImplemented": "SSH key generation feature coming soon", - "connectionTestingNotImplemented": "Connection testing feature coming soon", - "testConnection": "Test Connection", - "selectOrCreateFolder": "Select or create folder", - "noFolder": "No folder", - "orCreateNewFolder": "Or create new folder", - "addTag": "Add tag", - "saving": "Saving...", - "credentialId": "Credential ID", - "overview": "Overview", - "security": "Security", - "usage": "Usage", - "securityDetails": "Security Details", - "securityDetailsDescription": "View encrypted credential information", - "credentialSecured": "Credential Secured", - "credentialSecuredDescription": "All sensitive data is encrypted with AES-256", - "passwordAuthentication": "Password Authentication", - "keyAuthentication": "Key Authentication", - "securityReminder": "Security Reminder", - "securityReminderText": "Never share your credentials. All data is encrypted at rest.", - "hostsUsingCredential": "Hosts Using This Credential", - "noHostsUsingCredential": "No hosts are currently using this credential", - "timesUsed": "Times Used", - "lastUsed": "Last Used", - "connectedHosts": "Connected Hosts", - "created": "Created", - "lastModified": "Last Modified", - "usageStatistics": "Usage Statistics", - "copiedToClipboard": "{{field}} copied to clipboard", - "failedToCopy": "Failed to copy to clipboard", - "sshKey": "SSH Key", - "createCredentialDescription": "Create a new SSH credential for secure access", - "editCredentialDescription": "Update the credential information", - "listView": "List", - "folderView": "Folders", - "unknownCredential": "Unknown", - "confirmRemoveFromFolder": "Are you sure you want to remove \"{{name}}\" from folder \"{{folder}}\"? The credential will be moved to \"Uncategorized\".", - "removedFromFolder": "Credential \"{{name}}\" removed from folder successfully", - "failedToRemoveFromFolder": "Failed to remove credential from folder", - "folderRenamed": "Folder \"{{oldName}}\" renamed to \"{{newName}}\" successfully", - "failedToRenameFolder": "Failed to rename folder", - "movedToFolder": "Credential \"{{name}}\" moved to \"{{folder}}\" successfully", - "failedToMoveToFolder": "Failed to move credential to folder", - "sshPublicKey": "SSH Public Key", - "publicKeyNote": "Public key is optional but recommended for key validation", - "publicKeyUploaded": "Public Key Uploaded", - "uploadPublicKey": "Upload Public Key", - "uploadPrivateKeyFile": "Upload Private Key File", - "uploadPublicKeyFile": "Upload Public Key File", - "privateKeyRequiredForGeneration": "Private key is required to generate public key", - "failedToGeneratePublicKey": "Failed to generate public key", - "generatePublicKey": "Generate from Private Key", - "publicKeyGeneratedSuccessfully": "Public key generated successfully", - "detectedKeyType": "Detected key type", - "detectingKeyType": "detecting...", - "optional": "Optional", - "generateKeyPairNew": "Generate New Key Pair", - "generateEd25519": "Generate Ed25519", - "generateECDSA": "Generate ECDSA", - "generateRSA": "Generate RSA", - "keyTypeEcdsaP256": "ECDSA P-256 (SSH)", - "keyTypeEcdsaP384": "ECDSA P-384 (SSH)", - "keyTypeEcdsaP521": "ECDSA P-521 (SSH)", - "keyTypeDsa": "DSA (SSH)", + "keyTypeEd25519": "에드25519", + "basicInfo": "기본 정보", + "authentication": "입증", + "organization": "조직", + "basicInformation": "기본 정보", + "basicInformationDescription": "이 자격증에 필요한 기본 정보를 입력하세요.", + "authenticationMethod": "인증 방법", + "authenticationMethodDescription": "SSH 서버에서 인증하는 방법을 선택하세요.", + "organizationDescription": "폴더와 태그를 사용하여 자격 증명을 정리하세요.", + "enterCredentialName": "자격 증명 이름을 입력하세요", + "enterCredentialDescription": "설명을 입력하세요 (선택 사항)", + "enterUsername": "사용자 이름을 입력하세요", + "nameIsRequired": "자격증명은 필수 입력 사항입니다.", + "usernameIsRequired": "사용자 이름은 필수입니다.", + "authenticationType": "인증 유형", + "passwordAuthDescription": "비밀번호 인증을 사용하세요", + "sshKeyAuthDescription": "SSH 키 인증을 사용하세요", + "passwordIsRequired": "비밀번호가 필요합니다", + "sshKeyIsRequired": "SSH 키가 필요합니다.", + "sshKeyType": "SSH 키 유형", + "privateKey": "개인 키", + "enterPassword": "비밀번호를 입력하세요", + "enterPrivateKey": "개인 키를 입력하세요", + "keyPassphrase": "키 암호문", + "enterKeyPassphrase": "키 암호를 입력하세요(선택 사항).", + "keyPassphraseOptional": "선택 사항: 키에 암호가 없는 경우 비워 두십시오.", + "leaveEmptyToKeepCurrent": "현재 값을 유지하려면 비워 두십시오.", + "uploadKeyFile": "업로드 키 파일", + "generateKeyPairButton": "키 페어 생성", + "generateKeyPair": "키 페어 생성", + "generateKeyPairDescription": "새 SSH 키 쌍을 생성합니다. 암호를 사용하여 키를 보호하려면 먼저 아래의 키 암호 필드에 암호를 입력하십시오.", + "deploySSHKey": "SSH 키 배포", + "deploySSHKeyDescription": "대상 서버에 공개 키를 배포합니다.", + "sourceCredential": "출처 자격 증명", + "targetHost": "대상 호스트", + "deploymentProcess": "배포 프로세스", + "deploymentProcessDescription": "이렇게 하면 기존 키를 덮어쓰지 않고 대상 호스트의 ~/.ssh/authorized_keys 파일에 공개 키가 안전하게 추가됩니다. 이 작업은 되돌릴 수 있습니다.", + "chooseHostToDeploy": "배포할 호스트를 선택하세요...", + "deploying": "배포 중...", + "name": "이름", + "noHostsAvailable": "호스트를 사용할 수 없습니다.", + "noHostsMatchSearch": "검색 조건에 맞는 호스트가 없습니다.", + "sshKeyGenerationNotImplemented": "SSH 키 생성 기능이 곧 출시될 예정입니다.", + "connectionTestingNotImplemented": "연결 테스트 기능이 곧 출시될 예정입니다.", + "testConnection": "테스트 연결", + "selectOrCreateFolder": "폴더를 선택하거나 생성하세요.", + "noFolder": "폴더 없음", + "orCreateNewFolder": "또는 새 폴더를 만드세요", + "addTag": "태그 추가", + "saving": "절약...", + "credentialId": "자격 증명 ID", + "overview": "개요", + "security": "보안", + "usage": "용법", + "securityDetails": "보안 세부 정보", + "securityDetailsDescription": "암호화된 자격 증명 정보를 확인하세요", + "credentialSecured": "자격 증명 확보됨", + "credentialSecuredDescription": "모든 중요 데이터는 AES-256으로 암호화됩니다.", + "passwordAuthentication": "비밀번호 인증", + "keyAuthentication": "키 인증", + "securityReminder": "보안 알림", + "securityReminderText": "절대로 로그인 정보를 공유하지 마세요. 모든 데이터는 저장 시 암호화됩니다.", + "hostsUsingCredential": "이 자격 증명을 사용하는 호스트", + "noHostsUsingCredential": "현재 이 자격 증명을 사용하는 호스트가 없습니다.", + "timesUsed": "사용 횟수", + "lastUsed": "최근 사용", + "connectedHosts": "연결된 호스트", + "created": "생성됨", + "lastModified": "최종 수정일", + "usageStatistics": "사용 통계", + "copiedToClipboard": "{{field}} 클립보드에 복사됨", + "failedToCopy": "클립보드에 복사하는 데 실패했습니다.", + "sshKey": "SSH 키", + "createCredentialDescription": "안전한 접속을 위해 새 SSH 자격 증명을 생성하세요.", + "editCredentialDescription": "자격 증명 정보를 업데이트하세요", + "listView": "목록", + "folderView": "폴더", + "unknownCredential": "알려지지 않은", + "confirmRemoveFromFolder": "\"{{folder}}\" 폴더에서 \"{{name}}\"을 삭제하시겠습니까? 자격 증명은 \"분류되지 않음\"으로 이동됩니다.", + "removedFromFolder": "자격 증명 \"{{name}}\"이 폴더에서 성공적으로 제거되었습니다.", + "failedToRemoveFromFolder": "폴더에서 자격 증명을 제거하는 데 실패했습니다.", + "folderRenamed": "폴더 \"{{oldName}}\"의 이름이 \"{{newName}}\"로 성공적으로 변경되었습니다.", + "failedToRenameFolder": "폴더 이름 변경에 실패했습니다", + "movedToFolder": "자격 증명 \"{{name}}\"이 \"{{folder}}\"으로 성공적으로 이동되었습니다.", + "failedToMoveToFolder": "자격 증명을 폴더로 이동하는 데 실패했습니다.", + "sshPublicKey": "SSH 공개 키", + "publicKeyNote": "공개 키는 선택 사항이지만 키 유효성 검사를 위해 권장됩니다.", + "publicKeyUploaded": "공개키 업로드됨", + "uploadPublicKey": "공개 키 업로드", + "uploadPrivateKeyFile": "개인 키 파일 업로드", + "uploadPublicKeyFile": "공개 키 파일 업로드", + "privateKeyRequiredForGeneration": "공개키를 생성하려면 개인키가 필요합니다.", + "failedToGeneratePublicKey": "공개 키 생성에 실패했습니다.", + "generatePublicKey": "개인 키에서 생성", + "publicKeyGeneratedSuccessfully": "공개 키가 성공적으로 생성되었습니다.", + "detectedKeyType": "감지된 키 유형", + "detectingKeyType": "감지 중...", + "optional": "선택 과목", + "generateKeyPairNew": "새 키 쌍 생성", + "generateEd25519": "Ed25519 생성", + "generateECDSA": "ECDSA를 생성합니다", + "generateRSA": "RSA 생성", + "keyTypeEcdsaP256": "ECDSA P-256(SSH)", + "keyTypeEcdsaP384": "ECDSA P-384(SSH)", + "keyTypeEcdsaP521": "ECDSA P-521(SSH)", + "keyTypeDsa": "DSA(SSH)", "keyTypeRsaSha256": "RSA-SHA2-256", "keyTypeRsaSha512": "RSA-SHA2-512", - "keyPairGeneratedSuccessfully": "{{keyType}} key pair generated successfully", - "failedToGenerateKeyPair": "Failed to generate key pair", - "generateKeyPairNote": "Generate a new SSH key pair directly. This will replace any existing keys in the form.", - "invalidKey": "Invalid Key", - "detectionError": "Detection Error", - "removing": "Removing:", - "clickToEditCredential": "Click to edit credential", - "dragToMoveBetweenFolders": "Drag to move between folders", - "keyBasedOnlyForDeployment": "Only SSH key-based credentials can be deployed", - "publicKeyRequiredForDeployment": "Public key is required for deployment", - "selectTargetHost": "Please select a target host", - "keyDeployedSuccessfully": "SSH key deployed successfully", - "deploymentFailed": "Deployment failed", - "failedToDeployKey": "Failed to deploy SSH key", - "clickToRenameFolder": "Click to rename folder", - "renameFolder": "Rename folder", + "keyPairGeneratedSuccessfully": "{{keyType}} 키 쌍이 성공적으로 생성되었습니다.", + "failedToGenerateKeyPair": "키 쌍 생성에 실패했습니다.", + "generateKeyPairNote": "새로운 SSH 키 쌍을 직접 생성합니다. 이렇게 하면 기존 키가 모두 대체됩니다.", + "invalidKey": "잘못된 키입니다", + "detectionError": "감지 오류", + "removing": "풀이:", + "clickToEditCredential": "자격 증명을 수정하려면 클릭하세요.", + "dragToMoveBetweenFolders": "드래그하여 폴더 간 이동", + "keyBasedOnlyForDeployment": "SSH 키 기반 자격 증명만 배포할 수 있습니다.", + "publicKeyRequiredForDeployment": "배포를 위해서는 공개 키가 필요합니다.", + "selectTargetHost": "대상 호스트를 선택하십시오.", + "keyDeployedSuccessfully": "SSH 키가 성공적으로 배포되었습니다.", + "deploymentFailed": "배포 실패", + "failedToDeployKey": "SSH 키 배포에 실패했습니다.", + "clickToRenameFolder": "폴더 이름을 바꾸려면 클릭하세요", + "renameFolder": "폴더 이름 변경", "idLabel": "ID:" }, "dragIndicator": { - "error": "Error: {{error}}", - "dragging": "Dragging {{fileName}}", - "preparing": "Preparing {{fileName}}", - "readySingle": "Ready to download {{fileName}}", - "readyMultiple": "Ready to download {{count}} files", - "batchDrag": "Drag {{count}} files to desktop", - "dragToDesktop": "Drag to desktop", - "canDragAnywhere": "You can drag files anywhere on your desktop" + "error": "오류: {{error}}", + "dragging": "드래그 중 {{fileName}}", + "preparing": "{{fileName}}준비 중", + "readySingle": "다운로드 준비 완료 {{fileName}}", + "readyMultiple": "{{count}} 파일을 다운로드할 준비가 되었습니다.", + "batchDrag": "{{count}} 파일을 바탕 화면으로 드래그하세요.", + "dragToDesktop": "바탕화면으로 드래그하세요", + "canDragAnywhere": "바탕화면 어디든 파일을 드래그해서 옮길 수 있습니다." }, "sshTools": { - "title": "SSH Tools", - "closeTools": "Close SSH Tools", - "keyRecording": "Key Recording", - "startKeyRecording": "Start Key Recording", - "stopKeyRecording": "Stop Key Recording", - "selectTerminals": "Select terminals:", - "typeCommands": "Type commands (all keys supported):", - "commandsWillBeSent": "Commands will be sent to {{count}} selected terminal(s).", - "settings": "Settings", - "enableRightClickCopyPaste": "Enable right‑click copy/paste", - "shareIdeas": "Have ideas for what should come next for ssh tools? Share them on", + "title": "SSH 도구", + "closeTools": "SSH 도구를 닫습니다", + "keyRecording": "주요 녹음", + "startKeyRecording": "시작 키 녹음", + "stopKeyRecording": "키 녹음 중지", + "selectTerminals": "터미널을 선택하세요:", + "typeCommands": "명령어를 입력하세요(모든 키 지원):", + "commandsWillBeSent": "명령은 {{count}} 선택된 터미널로 전송됩니다.", + "settings": "설정", + "enableRightClickCopyPaste": "마우스 오른쪽 버튼을 클릭하여 복사/붙여넣기를 활성화합니다.", + "shareIdeas": "SSH 도구의 향후 기능에 대한 아이디어가 있으신가요? 공유해 주세요!", "scripts": { - "inputPlaceholder": "e.g., System Commands, Docker Scripts" + "inputPlaceholder": "예: 시스템 명령, Docker 스크립트" } }, "snippets": { - "title": "Snippets", - "new": "New Snippet", - "create": "Create Snippet", - "edit": "Edit Snippet", - "run": "Run", - "empty": "No snippets yet", - "emptyHint": "Create a snippet to save commonly used commands", - "searchSnippets": "Search snippets...", - "name": "Name", - "description": "Description", - "content": "Command", - "namePlaceholder": "e.g., Restart Nginx", - "descriptionPlaceholder": "Optional description", - "contentPlaceholder": "e.g., sudo systemctl restart nginx", - "nameRequired": "Name is required", - "contentRequired": "Command is required", - "createDescription": "Create a new command snippet for quick execution", - "editDescription": "Edit this command snippet", - "deleteConfirmTitle": "Delete Snippet", - "deleteConfirmDescription": "Are you sure you want to delete \"{{name}}\"?", - "createSuccess": "Snippet created successfully", - "updateSuccess": "Snippet updated successfully", - "deleteSuccess": "Snippet deleted successfully", - "createFailed": "Failed to create snippet", - "updateFailed": "Failed to update snippet", - "deleteFailed": "Failed to delete snippet", - "failedToFetch": "Failed to fetch snippets", - "executeSuccess": "Executing: {{name}}", - "copySuccess": "Copied \"{{name}}\" to clipboard", - "runTooltip": "Execute this snippet in the terminal", - "copyTooltip": "Copy snippet to clipboard", - "editTooltip": "Edit this snippet", - "deleteTooltip": "Delete this snippet", - "newFolder": "New Folder", - "reorderSameFolder": "Can only reorder snippets within the same folder", - "reorderSuccess": "Snippets reordered successfully", - "reorderFailed": "Failed to reorder snippets", - "deleteFolderConfirm": "Delete folder \"{{name}}\"? All snippets will be moved to Uncategorized.", - "deleteFolderSuccess": "Folder deleted successfully", - "deleteFolderFailed": "Failed to delete folder", - "updateFolderSuccess": "Folder updated successfully", - "createFolderSuccess": "Folder created successfully", - "updateFolderFailed": "Failed to update folder", - "createFolderFailed": "Failed to create folder", - "selectTerminals": "Select Terminals (optional)", - "executeOnSelected": "Execute on {{count}} selected terminal(s)", - "executeOnCurrent": "Execute on current terminal (click to select multiple)", - "folder": "Folder", - "selectFolder": "Select a folder or leave empty", - "noFolder": "No folder (Uncategorized)", - "folderName": "Folder Name", - "folderNameRequired": "Folder name is required", - "folderColor": "Folder Color", - "folderIcon": "Folder Icon", - "preview": "Preview", - "updateFolder": "Update Folder", - "createFolder": "Create Folder", - "editFolder": "Edit Folder", - "editFolderDescription": "Customize your snippet folder", - "createFolderDescription": "Organize your snippets into folders" + "title": "짧은 발췌", + "new": "새로운 스니펫", + "create": "코드 조각 생성", + "edit": "코드 조각 편집", + "run": "달리다", + "empty": "아직 스니펫이 없습니다.", + "emptyHint": "자주 사용하는 명령어를 저장할 수 있는 코드 조각을 만드세요.", + "searchSnippets": "검색 스니펫...", + "name": "이름", + "description": "설명", + "content": "명령", + "namePlaceholder": "예: Nginx 재시작", + "descriptionPlaceholder": "선택적 설명", + "contentPlaceholder": "예: sudo systemctl restart nginx", + "nameRequired": "이름은 필수 입력 사항입니다.", + "contentRequired": "명령어가 필요합니다.", + "createDescription": "빠른 실행을 위해 새로운 명령 스니펫을 만드세요.", + "editDescription": "이 명령 조각을 편집하세요", + "deleteConfirmTitle": "코드 조각 삭제", + "deleteConfirmDescription": "\"{{name}}\"을 삭제하시겠습니까?", + "createSuccess": "코드 조각이 성공적으로 생성되었습니다.", + "updateSuccess": "코드 조각이 성공적으로 업데이트되었습니다.", + "deleteSuccess": "스니펫이 성공적으로 삭제되었습니다.", + "createFailed": "코드 조각을 생성하는 데 실패했습니다.", + "updateFailed": "코드 조각 업데이트에 실패했습니다.", + "deleteFailed": "코드 조각을 삭제하는 데 실패했습니다.", + "failedToFetch": "코드 조각을 가져오는 데 실패했습니다.", + "executeSuccess": "실행 중: {{name}}", + "copySuccess": "\"{{name}}\"를 클립보드에 복사했습니다.", + "runTooltip": "터미널에서 다음 코드 조각을 실행하세요.", + "copyTooltip": "코드 조각을 클립보드에 복사합니다", + "editTooltip": "이 코드 조각을 수정하세요", + "deleteTooltip": "이 부분을 삭제하세요", + "newFolder": "새 폴더", + "reorderSameFolder": "같은 폴더 내에서만 스니펫 순서를 변경할 수 있습니다.", + "reorderSuccess": "스니펫 순서가 성공적으로 재정렬되었습니다.", + "reorderFailed": "스니펫 순서 변경에 실패했습니다.", + "deleteFolderConfirm": "\"{{name}}\" 폴더를 삭제하시겠습니까? 모든 스니펫은 미분류로 이동됩니다.", + "deleteFolderSuccess": "폴더가 성공적으로 삭제되었습니다.", + "deleteFolderFailed": "폴더 삭제에 실패했습니다", + "updateFolderSuccess": "폴더가 성공적으로 업데이트되었습니다.", + "createFolderSuccess": "폴더가 성공적으로 생성되었습니다.", + "updateFolderFailed": "폴더 업데이트에 실패했습니다", + "createFolderFailed": "폴더 생성에 실패했습니다", + "selectTerminals": "터미널 선택 (선택 사항)", + "executeOnSelected": "{{count}} 선택된 터미널에서 실행", + "executeOnCurrent": "현재 터미널에서 실행 (여러 개를 선택하려면 클릭하세요)", + "folder": "접는 사람", + "selectFolder": "폴더를 선택하거나 비워 두세요.", + "noFolder": "폴더 없음 (미분류)", + "folderName": "폴더 이름", + "folderNameRequired": "폴더 이름은 필수 입력 사항입니다.", + "folderColor": "폴더 색상", + "folderIcon": "폴더 아이콘", + "preview": "시사", + "updateFolder": "업데이트 폴더", + "createFolder": "폴더 생성", + "editFolder": "폴더 편집", + "editFolderDescription": "스니펫 폴더를 사용자 지정하세요", + "createFolderDescription": "메모들을 폴더별로 정리하세요" }, "commandHistory": { - "title": "History", - "searchPlaceholder": "Search commands...", - "noTerminal": "No active terminal", - "noTerminalHint": "Open a terminal to see its command history.", - "empty": "No command history yet", - "emptyHint": "Execute commands in the active terminal to build its history.", - "noResults": "No commands found", - "noResultsHint": "No commands matching \"{{query}}\"", - "deleteSuccess": "Command deleted from history", - "deleteFailed": "Failed to delete command.", - "deleteTooltip": "Delete command", - "tabHint": "Use Tab in Terminal to autocomplete from command history if enabled in User Profile", - "authRequiredRefresh": "Authentication required. Please refresh the page.", - "dataAccessLockedReauth": "Data access locked. Please re-authenticate.", - "loading": "Loading command history...", - "error": "Error Loading History" + "title": "역사", + "searchPlaceholder": "검색 명령...", + "noTerminal": "활성화된 단말기 없음", + "noTerminalHint": "터미널을 열어 명령 기록을 확인하세요.", + "empty": "아직 명령 기록이 없습니다.", + "emptyHint": "현재 실행 중인 터미널에서 명령어를 실행하여 터미널의 히스토리를 구축합니다.", + "noResults": "명령어를 찾을 수 없습니다.", + "noResultsHint": "\"{{query}}\" 와 일치하는 명령이 없습니다.", + "deleteSuccess": "명령이 기록에서 삭제되었습니다.", + "deleteFailed": "삭제 명령에 실패했습니다.", + "deleteTooltip": "삭제 명령", + "tabHint": "사용자 프로필에서 자동 완성 기능이 활성화된 경우 터미널에서 Tab 키를 사용하여 명령 기록에서 자동 완성 기능을 활용하세요.", + "authRequiredRefresh": "인증이 필요합니다. 페이지를 새로고침하세요.", + "dataAccessLockedReauth": "데이터 접근이 잠겼습니다. 다시 인증해 주세요.", + "loading": "명령 기록을 불러오는 중...", + "error": "기록 불러오기 오류" }, "splitScreen": { - "title": "Split Screen", - "none": "None", - "twoSplit": "2-Way", - "threeSplit": "3-Way", - "fourSplit": "4-Way", - "availableTabs": "Available Tabs", - "dragTabsHint": "Drag tabs to the layout cells below to assign them", - "layout": "Split Screen Layout", - "dropHere": "Drop tab here", - "apply": "Apply Split", - "clear": "Clear Split", - "selectMode": "Select a split screen mode", - "helpText": "Choose how many tabs you want to view at once", - "success": "Split screen applied successfully", - "cleared": "Split screen cleared", + "title": "분할 화면", + "none": "없음", + "twoSplit": "양방향", + "threeSplit": "3방향", + "fourSplit": "4방향", + "availableTabs": "사용 가능한 탭", + "dragTabsHint": "탭을 아래 레이아웃 셀로 드래그하여 할당하세요.", + "layout": "분할 화면 레이아웃", + "dropHere": "여기에 탭을 드롭하세요", + "apply": "분할 적용", + "clear": "클리어 스플릿", + "selectMode": "화면 분할 모드를 선택하세요", + "helpText": "동시에 표시할 탭 개수를 선택하세요", + "success": "분할 화면이 성공적으로 적용되었습니다.", + "cleared": "분할 화면이 지워졌습니다", "error": { - "noAssignments": "Please assign at least one tab to the layout", - "fillAllSlots": "Please fill all {{count}} slots before applying" + "noAssignments": "레이아웃에 최소 하나 이상의 탭을 지정해 주세요.", + "fillAllSlots": "지원하시려면 {{count}} 칸을 모두 채우신 후 지원해 주세요." } }, "homepage": { - "loggedInTitle": "Logged in!", - "loggedInMessage": "You are logged in! Use the sidebar to access all available tools. To get started, create an SSH Host in the SSH Manager tab. Once created, you can connect to that host using the other apps in the sidebar.", - "failedToLoadAlerts": "Failed to load alerts", - "failedToDismissAlert": "Failed to dismiss alert" + "loggedInTitle": "로그인 완료!", + "loggedInMessage": "로그인하셨습니다! 사이드바를 이용하여 모든 도구를 사용하세요. 시작하려면 SSH 관리자 탭에서 SSH 호스트를 생성하세요. 호스트가 생성되면 사이드바의 다른 앱을 사용하여 연결할 수 있습니다.", + "failedToLoadAlerts": "알림을 불러오는 데 실패했습니다.", + "failedToDismissAlert": "경고를 해제하지 못했습니다" }, "serverConfig": { - "title": "Server Configuration", - "description": "Configure the Termix server URL to connect to your backend services", - "serverUrl": "Server URL", - "enterServerUrl": "Please enter a server URL", - "testConnectionFirst": "Please test the connection first", - "connectionSuccess": "Connection successful!", - "connectionFailed": "Connection failed", - "connectionError": "Connection error occurred", - "connected": "Connected", - "disconnected": "Disconnected", - "configSaved": "Configuration saved successfully", - "saveFailed": "Failed to save configuration", - "saveError": "Error saving configuration", - "saving": "Saving...", - "saveConfig": "Save Configuration", - "helpText": "Enter the URL where your Termix server is running (e.g., http://localhost:30001 or https://your-server.com)", - "warning": "Warning", - "notValidatedWarning": "URL not validated - ensure it's correct", - "changeServer": "Change Server", - "mustIncludeProtocol": "Server URL must start with http:// or https://" + "title": "서버 구성", + "description": "Termix 서버 URL을 구성하여 백엔드 서비스에 연결하십시오.", + "serverUrl": "서버 URL", + "enterServerUrl": "서버 URL을 입력해 주세요.", + "testConnectionFirst": "먼저 연결 상태를 테스트해 주세요.", + "connectionSuccess": "연결 성공!", + "connectionFailed": "연결 실패", + "connectionError": "연결 오류가 발생했습니다", + "connected": "연결됨", + "disconnected": "연결이 끊어졌습니다", + "configSaved": "설정이 성공적으로 저장되었습니다.", + "saveFailed": "설정을 저장하는 데 실패했습니다.", + "saveError": "설정 저장 오류", + "saving": "절약...", + "saveConfig": "설정 저장", + "helpText": "Termix 서버가 실행 중인 URL을 입력하십시오(예: http://localhost:30001 또는 https://your-server.com).", + "warning": "경고", + "notValidatedWarning": "URL 유효성 검사에 실패했습니다. URL이 올바른지 확인하세요.", + "changeServer": "서버 변경", + "mustIncludeProtocol": "서버 URL은 http:// 또는 https://로 시작해야 합니다." }, "versionCheck": { - "error": "Version Check Error", - "checkFailed": "Failed to check for updates", - "upToDate": "App is Up to Date", - "currentVersion": "You are running version {{version}}", - "updateAvailable": "Update Available", - "newVersionAvailable": "A new version is available! You are running {{current}}, but {{latest}} is available.", - "releasedOn": "Released on {{date}}", - "downloadUpdate": "Download Update", - "dismiss": "Dismiss", - "checking": "Checking for updates...", - "checkUpdates": "Check for Updates", - "checkingUpdates": "Checking for updates...", - "refresh": "Refresh", - "updateRequired": "Update Required", - "updateDismissed": "Update notification dismissed", - "noUpdatesFound": "No updates found" + "error": "버전 확인 오류", + "checkFailed": "업데이트 확인에 실패했습니다.", + "upToDate": "앱이 최신 버전입니다.", + "currentVersion": "현재 {{version}}버전을 실행 중입니다.", + "updateAvailable": "업데이트 가능", + "newVersionAvailable": "새 버전이 나왔습니다! 현재 {{current}}을 실행 중이지만 {{latest}} 을 사용할 수 있습니다.", + "releasedOn": "{{date}}에 출시됨", + "downloadUpdate": "업데이트 다운로드", + "dismiss": "해고하다", + "checking": "업데이트를 확인하는 중...", + "checkUpdates": "업데이트를 확인하세요", + "checkingUpdates": "업데이트를 확인하는 중...", + "refresh": "새로 고치다", + "updateRequired": "업데이트 필요", + "updateDismissed": "업데이트 알림이 닫혔습니다", + "noUpdatesFound": "업데이트를 찾을 수 없습니다." }, "common": { - "close": "Close", - "minimize": "Minimize", - "online": "Online", - "offline": "Offline", - "continue": "Continue", - "maintenance": "Maintenance", - "degraded": "Degraded", - "discord": "Discord", - "error": "Error", - "warning": "Warning", - "info": "Info", - "success": "Success", - "loading": "Loading...", - "required": "Required", - "optional": "Optional", - "connect": "Connect", - "connecting": "Connecting...", - "creating": "Creating...", - "clear": "Clear", - "toggleSidebar": "Toggle Sidebar", - "sidebar": "Sidebar", - "home": "Home", - "expired": "Expired", - "expiresToday": "Expires today", - "expiresTomorrow": "Expires in {{days}} days", - "updateAvailable": "Update Available", - "sshPath": "SSH Path", - "localPath": "Local Path", - "appName": "Termix", - "resetSidebarWidth": "Reset sidebar width", - "dragToResizeSidebar": "Drag to resize sidebar", - "noAuthCredentials": "No authentication credentials available for this SSH host", - "noReleases": "No Releases", - "updatesAndReleases": "Updates & Releases", - "newVersionAvailable": "A new version ({{version}}) is available.", - "failedToFetchUpdateInfo": "Failed to fetch update information", - "preRelease": "Pre-release", - "loginFailed": "Login failed", - "noReleasesFound": "No releases found.", - "yourBackupCodes": "Your Backup Codes", - "sendResetCode": "Send Reset Code", - "verifyCode": "Verify Code", - "resetPassword": "Reset Password", - "resetCode": "Reset Code", - "newPassword": "New Password", - "folder": "Folder", - "file": "File", - "renamedSuccessfully": "renamed successfully", - "deletedSuccessfully": "deleted successfully", - "noTunnelConnections": "No tunnel connections configured", - "sshTools": "SSH Tools", - "english": "English", - "chinese": "Chinese", - "german": "German", - "cancel": "Cancel", - "username": "Username", - "name": "Name", - "login": "Login", - "logout": "Logout", - "register": "Register", - "password": "Password", - "version": "Version", - "confirmPassword": "Confirm Password", - "back": "Back", - "email": "Email", - "submit": "Submit", - "change": "Change", - "save": "Save", - "saving": "Saving...", - "delete": "Delete", - "edit": "Edit", - "add": "Add", - "search": "Search", - "confirm": "Confirm", - "yes": "Yes", - "no": "No", - "ok": "OK", - "enabled": "Enabled", - "disabled": "Disabled", - "important": "Important", - "notEnabled": "Not Enabled", - "settingUp": "Setting up...", - "next": "Next", - "previous": "Previous", - "refresh": "Refresh", - "settings": "Settings", - "profile": "Profile", - "help": "Help", - "about": "About", - "language": "Language", - "autoDetect": "Auto-detect", - "changeAccountPassword": "Change your account password", - "passwordResetTitle": "Password Reset", - "passwordResetDescription": "You are about to reset your password. This will log you out of all active sessions.", - "enterSixDigitCode": "Enter the 6-digit code from the docker container logs for user:", - "enterNewPassword": "Enter your new password for user:", - "passwordsDoNotMatch": "Passwords do not match", - "passwordMinLength": "Password must be at least 6 characters long", - "passwordResetSuccess": "Password reset successfully! You can now log in with your new password.", - "failedToInitiatePasswordReset": "Failed to initiate password reset", - "failedToVerifyResetCode": "Failed to verify reset code", - "failedToCompletePasswordReset": "Failed to complete password reset", - "documentation": "Documentation", - "retry": "Retry", - "checking": "Checking...", - "checkingDatabase": "Checking database connection...", - "actions": "Actions", - "remove": "Remove", - "revoke": "Revoke", - "create": "Create" + "close": "닫다", + "minimize": "최소화", + "online": "온라인", + "offline": "오프라인", + "continue": "계속하다", + "maintenance": "유지", + "degraded": "타락한", + "discord": "불화", + "error": "오류", + "warning": "경고", + "info": "정보", + "success": "성공", + "loading": "로딩 중...", + "required": "필수의", + "optional": "선택 과목", + "connect": "연결하다", + "connecting": "연결 중...", + "creating": "생성 중...", + "clear": "분명한", + "toggleSidebar": "사이드바 토글", + "sidebar": "사이드바", + "home": "집", + "expired": "만료됨", + "expiresToday": "오늘 만료됩니다", + "expiresTomorrow": "{{days}} 일 후에 만료됩니다", + "updateAvailable": "업데이트 가능", + "sshPath": "SSH 경로", + "localPath": "로컬 경로", + "appName": "터믹스", + "resetSidebarWidth": "사이드바 너비 재설정", + "dragToResizeSidebar": "드래그하여 사이드바 크기를 조절하세요", + "noAuthCredentials": "이 SSH 호스트에 대한 인증 자격 증명을 사용할 수 없습니다.", + "noReleases": "출시 없음", + "updatesAndReleases": "업데이트 및 릴리스", + "newVersionAvailable": "새 버전({{version}})이 있습니다.", + "failedToFetchUpdateInfo": "업데이트 정보를 가져오는 데 실패했습니다.", + "preRelease": "사전 공개", + "loginFailed": "로그인 실패", + "noReleasesFound": "새로운 릴리스를 찾을 수 없습니다.", + "yourBackupCodes": "백업 코드", + "sendResetCode": "재설정 코드 전송", + "verifyCode": "확인 코드", + "resetPassword": "비밀번호 재설정", + "resetCode": "재설정 코드", + "newPassword": "새 비밀번호", + "folder": "접는 사람", + "file": "파일", + "renamedSuccessfully": "성공적으로 이름이 변경되었습니다", + "deletedSuccessfully": "성공적으로 삭제되었습니다", + "noTunnelConnections": "구성된 터널 연결이 없습니다.", + "sshTools": "SSH 도구", + "english": "영어", + "chinese": "중국인", + "german": "독일 사람", + "cancel": "취소", + "username": "사용자 이름", + "name": "이름", + "login": "로그인", + "logout": "로그아웃", + "register": "등록하다", + "password": "비밀번호", + "version": "버전", + "confirmPassword": "비밀번호 확인", + "back": "뒤쪽에", + "email": "이메일", + "submit": "제출하다", + "change": "변화", + "save": "구하다", + "saving": "절약...", + "delete": "삭제", + "edit": "편집하다", + "add": "추가하다", + "search": "찾다", + "confirm": "확인하다", + "yes": "예", + "no": "아니요", + "ok": "좋아요", + "enabled": "활성화됨", + "disabled": "장애가 있는", + "important": "중요한", + "notEnabled": "비활성화됨", + "settingUp": "설정 중...", + "next": "다음", + "previous": "이전의", + "refresh": "새로 고치다", + "settings": "설정", + "profile": "윤곽", + "help": "돕다", + "about": "에 대한", + "language": "언어", + "autoDetect": "자동 감지", + "changeAccountPassword": "계정 비밀번호를 변경하세요", + "passwordResetTitle": "비밀번호 재설정", + "passwordResetDescription": "비밀번호를 재설정하려고 합니다. 이렇게 하면 모든 활성 세션에서 로그아웃됩니다.", + "enterSixDigitCode": "Docker 컨테이너 로그에서 사용자에 대한 6자리 코드를 입력하십시오.", + "enterNewPassword": "사용자 계정의 새 비밀번호를 입력하세요:", + "passwordsDoNotMatch": "비밀번호가 일치하지 않습니다", + "passwordMinLength": "비밀번호는 최소 6자 이상이어야 합니다.", + "passwordResetSuccess": "비밀번호 재설정이 완료되었습니다! 이제 새 비밀번호로 로그인하실 수 있습니다.", + "failedToInitiatePasswordReset": "비밀번호 재설정을 시작하는 데 실패했습니다.", + "failedToVerifyResetCode": "재설정 코드 확인에 실패했습니다.", + "failedToCompletePasswordReset": "비밀번호 재설정을 완료하지 못했습니다.", + "documentation": "선적 서류 비치", + "retry": "다시 해 보다", + "checking": "확인 중...", + "checkingDatabase": "데이터베이스 연결을 확인하는 중...", + "actions": "행위", + "remove": "제거하다", + "revoke": "취소", + "create": "만들다" }, "nav": { - "home": "Home", - "hosts": "Hosts", - "credentials": "Credentials", - "terminal": "Terminal", - "docker": "Docker", - "tunnels": "Tunnels", - "fileManager": "File Manager", - "serverStats": "Server Stats", - "admin": "Admin", - "userProfile": "User Profile", - "tools": "Tools", - "snippets": "Snippets", - "newTab": "New Tab", - "splitScreen": "Split Screen", - "closeTab": "Close Tab", - "sshManager": "SSH Manager", - "hostManager": "Host Manager", - "cannotSplitTab": "Cannot split this tab", - "tabNavigation": "Tab Navigation", + "home": "집", + "hosts": "호스트", + "credentials": "신임장", + "terminal": "단말기", + "docker": "도커", + "tunnels": "터널", + "fileManager": "파일 관리자", + "serverStats": "서버 통계", + "admin": "관리자", + "userProfile": "사용자 프로필", + "tools": "도구", + "snippets": "짧은 발췌", + "newTab": "새 탭", + "splitScreen": "분할 화면", + "closeTab": "탭 닫기", + "sshManager": "SSH 관리자", + "hostManager": "호스트 관리자", + "cannotSplitTab": "이 탭을 분할할 수 없습니다.", + "tabNavigation": "탭 탐색", "hostTabTitle": "{{username}}@{{ip}}:{{port}}" }, "admin": { - "title": "Admin Settings", + "title": "관리자 설정", "oidc": "OIDC", - "users": "Users", - "userManagement": "User Management", - "makeAdmin": "Make Admin", - "removeAdmin": "Remove Admin", - "deleteUser": "Delete user {{username}}? This cannot be undone.", - "allowRegistration": "Allow Registration", - "oidcSettings": "OIDC Settings", - "clientId": "Client ID", - "clientSecret": "Client Secret", - "issuerUrl": "Issuer URL", - "authorizationUrl": "Authorization URL", - "tokenUrl": "Token URL", - "updateSettings": "Update Settings", - "confirmDelete": "Are you sure you want to delete this user?", - "confirmMakeAdmin": "Are you sure you want to make {{username}} an admin?", - "confirmRemoveAdmin": "Are you sure you want to remove admin status from {{username}}?", - "externalAuthentication": "External Authentication (OIDC)", - "configureExternalProvider": "Configure external identity provider for OIDC/OAuth2 authentication.", - "userIdentifierPath": "User Identifier Path", - "displayNamePath": "Display Name Path", - "scopes": "Scopes", - "saving": "Saving...", - "saveConfiguration": "Save Configuration", - "reset": "Reset", - "success": "Success", - "loading": "Loading...", - "refresh": "Refresh", - "loadingUsers": "Loading users...", - "username": "Username", - "type": "Type", - "actions": "Actions", - "external": "External", - "local": "Local", - "adminManagement": "Admin Management", - "makeUserAdmin": "Make User Admin", - "adding": "Adding...", - "currentAdmins": "Current Admins", - "adminBadge": "Admin", - "removeAdminButton": "Remove Admin", - "general": "General", - "userRegistration": "User Registration", - "allowNewAccountRegistration": "Allow new account registration", - "allowPasswordLogin": "Allow username/password login", - "missingRequiredFields": "Missing required fields: {{fields}}", - "oidcConfigurationUpdated": "OIDC configuration updated successfully!", - "failedToFetchOidcConfig": "Failed to fetch OIDC configuration", - "failedToFetchRegistrationStatus": "Failed to fetch registration status", - "failedToFetchPasswordLoginStatus": "Failed to fetch password login status", - "failedToFetchUsers": "Failed to fetch users", - "oidcConfigurationDisabled": "OIDC configuration disabled successfully!", - "failedToUpdateOidcConfig": "Failed to update OIDC configuration", - "failedToDisableOidcConfig": "Failed to disable OIDC configuration", - "enterUsernameToMakeAdmin": "Enter username to make admin", - "userIsNowAdmin": "User {{username}} is now an admin", - "failedToMakeUserAdmin": "Failed to make user admin", - "removeAdminStatus": "Remove admin status from {{username}}?", - "adminStatusRemoved": "Admin status removed from {{username}}", - "failedToRemoveAdminStatus": "Failed to remove admin status", - "userDeletedSuccessfully": "User {{username}} deleted successfully", - "failedToDeleteUser": "Failed to delete user", - "overrideUserInfoUrl": "Override User Info URL (not required)", - "failedToFetchSessions": "Failed to fetch sessions", - "sessionRevokedSuccessfully": "Session revoked successfully", - "failedToRevokeSession": "Failed to revoke session", - "confirmRevokeSession": "Are you sure you want to revoke this session?", - "confirmRevokeAllSessions": "Are you sure you want to revoke all sessions for this user?", - "failedToRevokeSessions": "Failed to revoke sessions", - "sessionsRevokedSuccessfully": "Sessions revoked successfully", - "linkToPasswordAccount": "Link to Password Account", - "linkOIDCDialogTitle": "Link OIDC Account to Password Account", - "linkOIDCDialogDescription": "Link {{username}} (OIDC user) to an existing password account. This will enable dual authentication for the password account.", - "createUser": "Create User", - "createUserDescription": "Create a new local user with username and password", - "enterUsername": "Enter username", - "enterPassword": "Enter password", - "userCreatedSuccessfully": "User {{username}} created successfully", - "failedToCreateUser": "Failed to create user", - "manageUser": "Manage User", - "manageUserDescription": "Manage user settings, roles, and permissions", - "authType": "Authentication Type", - "adminStatus": "Admin Status", - "userId": "User ID", - "regularUser": "Regular User", - "adminPrivileges": "Administrator Privileges", - "administratorRole": "Administrator Role", - "administratorRoleDescription": "Grant full system access and management privileges", - "passwordManagement": "Password Management", - "passwordResetWarning": "Resetting a user's password will delete all their data (SSH hosts, credentials, settings). This action cannot be undone.", - "resetUserPassword": "Reset User Password", - "resettingPassword": "Resetting...", - "passwordResetInitiated": "Password reset initiated for {{username}}. Reset code sent.", - "failedToResetPassword": "Failed to initiate password reset", - "sessionManagement": "Session Management", - "revokeAllSessions": "Revoke All Sessions", - "revokeAllSessionsDescription": "Force logout from all devices and sessions", - "revoking": "Revoking...", - "revoke": "Revoke All", - "dangerZone": "Danger Zone", - "deleteUserTitle": "Delete User Account", - "deleteUserWarning": "Permanently delete this user account and all associated data. This action cannot be undone.", - "deleting": "Deleting...", - "cannotDeleteSelf": "You cannot delete your own account", - "cannotRemoveLastAdmin": "Cannot remove the last administrator", - "cannotRemoveOwnAdmin": "You cannot remove your own admin privileges", - "cannotModifyOwnAdminStatus": "You cannot modify your own admin status", - "dualAuth": "Dual Auth", - "externalOIDC": "External (OIDC)", - "localPassword": "Local Password", - "confirmRevokeOwnSessions": "Are you sure you want to revoke all your own sessions? You will be logged out.", - "linkOIDCWarningTitle": "Warning: OIDC User Data Will Be Deleted", - "linkOIDCActionDeleteUser": "Delete the OIDC user account and all their data", - "linkOIDCActionAddCapability": "Add OIDC login capability to the target password account", - "linkOIDCActionDualAuth": "Allow the password account to login with both password and OIDC", - "linkTargetUsernameLabel": "Target Password Account Username", - "linkTargetUsernamePlaceholder": "Enter username of password account", - "linkAccountsButton": "Link Accounts", - "linkingAccounts": "Linking...", - "accountsLinkedSuccessfully": "OIDC user {{oidcUsername}} has been linked to {{targetUsername}}", - "failedToLinkAccounts": "Failed to link accounts", - "linkTargetUsernameRequired": "Target username is required", - "unlinkOIDCTitle": "Unlink OIDC Authentication", - "unlinkOIDCDescription": "Remove OIDC authentication from {{username}}? The user will only be able to login with username/password after this.", - "unlinkOIDCSuccess": "OIDC unlinked from {{username}}", - "failedToUnlinkOIDC": "Failed to unlink OIDC", - "databaseSecurity": "Database Security", - "encryptionStatus": "Encryption Status", - "encryptionEnabled": "Encryption Enabled", - "enabled": "Enabled", - "disabled": "Disabled", - "keyId": "Key ID", - "created": "Created", - "migrationStatus": "Migration Status", - "migrationCompleted": "Migration completed", - "migrationRequired": "Migration required", - "deviceProtectedMasterKey": "Environment-Protected Master Key", - "legacyKeyStorage": "Legacy Key Storage", - "masterKeyEncryptedWithDeviceFingerprint": "Master key encrypted with environment fingerprint (KEK protection active)", - "keyNotProtectedByDeviceBinding": "Key not protected by environment binding (upgrade recommended)", - "valid": "Valid", - "initializeDatabaseEncryption": "Initialize Database Encryption", - "enableAes256EncryptionWithDeviceBinding": "Enable AES-256 encryption with environment-bound master key protection. This creates enterprise-grade security for SSH keys, passwords, and authentication tokens.", - "featuresEnabled": "Features enabled:", - "aes256GcmAuthenticatedEncryption": "AES-256-GCM authenticated encryption", - "deviceFingerprintMasterKeyProtection": "Environment fingerprint master key protection (KEK)", - "pbkdf2KeyDerivation": "PBKDF2 key derivation with 100K iterations", - "automaticKeyManagement": "Automatic key management and rotation", - "initializing": "Initializing...", - "initializeEnterpriseEncryption": "Initialize Enterprise Encryption", - "migrateExistingData": "Migrate Existing Data", - "encryptExistingUnprotectedData": "Encrypt existing unprotected data in your database. This process is safe and creates automatic backups.", - "testMigrationDryRun": "Verify Encryption Compatibility", - "migrating": "Migrating...", - "migrateData": "Migrate Data", - "securityInformation": "Security Information", - "sshPrivateKeysEncryptedWithAes256": "SSH private keys and passwords are encrypted with AES-256-GCM", - "userAuthTokensProtected": "User authentication tokens and 2FA secrets are protected", - "masterKeysProtectedByDeviceFingerprint": "Master encryption keys are protected by device fingerprint (KEK)", - "keysBoundToServerInstance": "Keys are bound to current server environment (migratable via environment variables)", - "pbkdf2HkdfKeyDerivation": "PBKDF2 + HKDF key derivation with 100K iterations", - "backwardCompatibleMigration": "All data remains backward compatible during migration", - "enterpriseGradeSecurityActive": "Enterprise-Grade Security Active", - "masterKeysProtectedByDeviceBinding": "Your master encryption keys are protected by environment fingerprinting. This uses server hostname, paths, and other environment info to generate protection keys. To migrate servers, set the DB_ENCRYPTION_KEY environment variable on the new server.", - "important": "Important", - "keepEncryptionKeysSecure": "Ensure data security: regularly backup your database files and server configuration. To migrate to a new server, set the DB_ENCRYPTION_KEY environment variable on the new environment, or maintain the same hostname and directory structure.", - "loadingEncryptionStatus": "Loading encryption status...", - "testMigrationDescription": "Verify that existing data can be safely migrated to encrypted format without actually modifying any data", - "serverMigrationGuide": "Server Migration Guide", - "migrationInstructions": "To migrate encrypted data to a new server: 1) Backup database files, 2) Set environment variable DB_ENCRYPTION_KEY=\"your-key\" on new server, 3) Restore database files", - "environmentProtection": "Environment Protection", - "environmentProtectionDesc": "Protects encryption keys based on server environment info (hostname, paths, etc.), migratable via environment variables", - "verificationCompleted": "Compatibility verification completed - no data was changed", - "verificationInProgress": "Verification completed", - "dataMigrationCompleted": "Data migration completed successfully!", - "verificationFailed": "Compatibility verification failed", - "migrationFailed": "Migration failed", - "runningVerification": "Running compatibility verification...", - "startingMigration": "Starting migration...", - "hardwareFingerprintSecurity": "Hardware Fingerprint Security", - "hardwareBoundEncryption": "Hardware-Bound Encryption Active", - "masterKeysNowProtectedByHardwareFingerprint": "Master keys are now protected by real hardware fingerprinting instead of environment variables", - "cpuSerialNumberDetection": "CPU serial number detection", - "motherboardUuidIdentification": "Motherboard UUID identification", - "diskSerialNumberVerification": "Disk serial number verification", - "biosSerialNumberCheck": "BIOS serial number check", - "stableMacAddressFiltering": "Stable MAC address filtering", - "databaseFileEncryption": "Database File Encryption", - "dualLayerProtection": "Dual-Layer Protection Active", - "bothFieldAndFileEncryptionActive": "Both field-level and file-level encryption are now active for maximum security", - "fieldLevelAes256Encryption": "Field-level AES-256 encryption for sensitive data", - "fileLevelDatabaseEncryption": "File-level database encryption with hardware binding", - "hardwareBoundFileKeys": "Hardware-bound file encryption keys", - "automaticEncryptedBackups": "Automatic encrypted backup creation", - "createEncryptedBackup": "Create Encrypted Backup", - "creatingBackup": "Creating Backup...", - "backupCreated": "Backup Created", - "encryptedBackupCreatedSuccessfully": "Encrypted backup created successfully", - "backupCreationFailed": "Backup creation failed", - "databaseMigration": "Database Migration", - "exportForMigration": "Export for Migration", - "exportDatabaseForHardwareMigration": "Export database as SQLite file with decrypted data for migration to new hardware", - "exportDatabase": "Export SQLite Database", - "exporting": "Exporting...", - "exportCreated": "SQLite Export Created", - "exportContainsDecryptedData": "SQLite export contains decrypted data - keep secure!", - "databaseExportedSuccessfully": "SQLite database exported successfully", - "databaseExportFailed": "SQLite database export failed", - "importFromMigration": "Import from Migration", - "importDatabaseFromAnotherSystem": "Import SQLite database from another system or hardware", - "importDatabase": "Import SQLite Database", - "importing": "Importing...", - "selectedFile": "Selected SQLite File", - "importWillReplaceExistingData": "SQLite import will replace existing data - backup recommended!", - "pleaseSelectImportFile": "Please select a SQLite import file", - "databaseImportedSuccessfully": "SQLite database imported successfully", - "databaseImportFailed": "SQLite database import failed", - "manageEncryptionAndBackups": "Manage encryption keys, database security, and backup operations", - "activeSecurityFeatures": "Currently active security measures and protections", - "deviceBindingTechnology": "Advanced hardware-based key protection technology", - "backupAndRecovery": "Secure backup creation and database recovery options", - "crossSystemDataTransfer": "Export and import databases across different systems", - "noMigrationNeeded": "No migration needed", - "encryptionKey": "Encryption Key", - "keyProtection": "Key Protection", - "active": "Active", - "legacy": "Legacy", - "dataStatus": "Data Status", - "encrypted": "Encrypted", - "needsMigration": "Needs Migration", - "ready": "Ready", - "initializeEncryption": "Initialize Encryption", - "initialize": "Initialize", - "test": "Test", - "migrate": "Migrate", - "backup": "Backup", - "createBackup": "Create Backup", - "exportImport": "Export/Import", - "export": "Export", - "import": "Import", - "passwordRequired": "Password required", - "confirmExport": "Confirm Export", - "exportDescription": "Export SSH hosts and credentials as SQLite file", - "importDescription": "Import SQLite file with incremental merge (skips duplicates)", - "criticalWarning": "Critical Warning", - "cannotDisablePasswordLoginWithoutOIDC": "Cannot disable password login without OIDC configured! You must configure OIDC authentication before disabling password login, or you will lose access to Termix.", - "confirmDisablePasswordLogin": "Are you sure you want to disable password login? Make sure OIDC is properly configured and working before proceeding, or you will lose access to your Termix instance.", - "passwordLoginDisabled": "Password login disabled successfully", - "passwordLoginAndRegistrationDisabled": "Password login and new account registration disabled successfully", - "requiresPasswordLogin": "Requires password login enabled", - "passwordLoginDisabledWarning": "Password login is disabled. Ensure OIDC is properly configured or you will not be able to log in to Termix.", - "oidcRequiredWarning": "CRITICAL: Password login is disabled. If you reset or misconfigure OIDC, you will lose all access to Termix and brick your instance. Only proceed if you are absolutely certain.", - "confirmDisableOIDCWarning": "WARNING: You are about to disable OIDC while password login is also disabled. This will brick your Termix instance and you will lose all access. Are you absolutely sure you want to proceed?", - "failedToUpdatePasswordLoginStatus": "Failed to update password login status", - "loadingSessions": "Loading sessions...", - "noActiveSessions": "No active sessions found.", - "device": "Device", - "user": "User", - "lastActive": "Last Active", - "expires": "Expires", - "revoked": "Revoked", - "revokeAllUserSessionsTitle": "Revoke all sessions for this user", - "revokeAll": "Revoke All", - "linkOidcToPasswordAccount": "Link OIDC Account to Password Account", - "linkOidcToPasswordAccountDescription": "Link {{username}} (OIDC user) to an existing password account. This will enable dual authentication for the password account.", - "linkOidcWarningTitle": "Warning: OIDC User Data Will Be Deleted", - "linkOidcWarningDescription": "This action will:", - "linkOidcActionDeleteUser": "Delete the OIDC user account and all their data", - "linkOidcActionAddCapability": "Add OIDC login capability to the target password account", - "linkOidcActionDualAuth": "Allow the password account to login with both password and OIDC", - "passwordMinLength": "Password must be at least 6 characters", - "currentRoles": "Current Roles", - "noRolesAssigned": "No roles assigned", - "assignNewRole": "Assign New Role" + "users": "사용자", + "userManagement": "사용자 관리", + "makeAdmin": "관리자 생성", + "removeAdmin": "관리자 제거", + "deleteUser": "사용자 {{username}}를 삭제하시겠습니까? 이 작업은 되돌릴 수 없습니다.", + "allowRegistration": "등록을 허용합니다", + "oidcSettings": "OIDC 설정", + "clientId": "클라이언트 ID", + "clientSecret": "고객 비밀", + "issuerUrl": "발급자 URL", + "authorizationUrl": "인증 URL", + "tokenUrl": "토큰 URL", + "updateSettings": "업데이트 설정", + "confirmDelete": "이 사용자를 삭제하시겠습니까?", + "confirmMakeAdmin": "{{username}} 님을 관리자로 지정하시겠습니까?", + "confirmRemoveAdmin": "{{username}}에서 관리자 권한을 제거하시겠습니까?", + "externalAuthentication": "외부 인증(OIDC)", + "configureExternalProvider": "OIDC/OAuth2 인증을 위해 외부 ID 공급자를 구성합니다.", + "userIdentifierPath": "사용자 식별자 경로", + "displayNamePath": "표시 이름 경로", + "scopes": "스코프", + "saving": "절약...", + "saveConfiguration": "설정 저장", + "reset": "다시 놓기", + "success": "성공", + "loading": "로딩 중...", + "refresh": "새로 고치다", + "loadingUsers": "사용자 불러오는 중...", + "username": "사용자 이름", + "type": "유형", + "actions": "행위", + "external": "외부", + "local": "현지의", + "adminManagement": "관리자 관리", + "makeUserAdmin": "사용자를 관리자로 만들기", + "adding": "첨가...", + "currentAdmins": "현 관리자", + "adminBadge": "관리자", + "removeAdminButton": "관리자 제거", + "general": "일반적인", + "userRegistration": "사용자 등록", + "allowNewAccountRegistration": "새 계정 등록을 허용합니다", + "allowPasswordLogin": "사용자 이름/비밀번호 로그인 허용", + "missingRequiredFields": "필수 입력란이 누락되었습니다: {{fields}}", + "oidcConfigurationUpdated": "OIDC 구성이 성공적으로 업데이트되었습니다!", + "failedToFetchOidcConfig": "OIDC 구성을 가져오는 데 실패했습니다.", + "failedToFetchRegistrationStatus": "등록 상태를 가져오는 데 실패했습니다.", + "failedToFetchPasswordLoginStatus": "비밀번호 로그인 상태를 가져오는 데 실패했습니다.", + "failedToFetchUsers": "사용자 정보를 가져오는 데 실패했습니다.", + "oidcConfigurationDisabled": "OIDC 구성이 성공적으로 비활성화되었습니다!", + "failedToUpdateOidcConfig": "OIDC 구성 업데이트에 실패했습니다.", + "failedToDisableOidcConfig": "OIDC 구성을 비활성화하는 데 실패했습니다.", + "enterUsernameToMakeAdmin": "관리자 권한을 얻으려면 사용자 이름을 입력하세요.", + "userIsNowAdmin": "사용자 {{username}} 님이 이제 관리자입니다.", + "failedToMakeUserAdmin": "사용자를 관리자로 만드는 데 실패했습니다.", + "removeAdminStatus": "{{username}}에서 관리자 상태를 제거하시겠습니까?", + "adminStatusRemoved": "{{username}}에서 관리자 상태가 제거되었습니다.", + "failedToRemoveAdminStatus": "관리자 권한 제거에 실패했습니다.", + "userDeletedSuccessfully": "사용자 {{username}} 님이 성공적으로 삭제했습니다.", + "failedToDeleteUser": "사용자 삭제에 실패했습니다", + "overrideUserInfoUrl": "사용자 정보 URL 재정의 (필수 아님)", + "failedToFetchSessions": "세션을 가져오는 데 실패했습니다.", + "sessionRevokedSuccessfully": "세션이 성공적으로 취소되었습니다.", + "failedToRevokeSession": "세션 취소에 실패했습니다.", + "confirmRevokeSession": "이 세션을 취소하시겠습니까?", + "confirmRevokeAllSessions": "이 사용자의 모든 세션을 취소하시겠습니까?", + "failedToRevokeSessions": "세션 취소에 실패했습니다", + "sessionsRevokedSuccessfully": "세션이 성공적으로 취소되었습니다.", + "linkToPasswordAccount": "비밀번호 계정 링크", + "linkOIDCDialogTitle": "OIDC 계정을 비밀번호 계정에 연결", + "linkOIDCDialogDescription": "{{username}} (OIDC 사용자)를 기존 암호 계정에 연결합니다. 이렇게 하면 암호 계정에 이중 인증이 활성화됩니다.", + "createUser": "사용자 생성", + "createUserDescription": "사용자 이름과 비밀번호를 사용하여 새 로컬 사용자를 생성합니다.", + "enterUsername": "사용자 이름을 입력하세요", + "enterPassword": "비밀번호를 입력하세요", + "userCreatedSuccessfully": "사용자 {{username}} 님이 성공적으로 생성했습니다.", + "failedToCreateUser": "사용자 생성에 실패했습니다", + "manageUser": "사용자 관리", + "manageUserDescription": "사용자 설정, 역할 및 권한을 관리합니다.", + "authType": "인증 유형", + "adminStatus": "관리자 상태", + "userId": "사용자 ID", + "regularUser": "일반 사용자", + "adminPrivileges": "관리자 권한", + "administratorRole": "관리자 역할", + "administratorRoleDescription": "전체 시스템 접근 권한 및 관리 권한을 부여하십시오.", + "passwordManagement": "비밀번호 관리", + "passwordResetWarning": "사용자 비밀번호를 재설정하면 해당 사용자의 모든 데이터(SSH 호스트, 자격 증명, 설정)가 삭제됩니다. 이 작업은 되돌릴 수 없습니다.", + "resetUserPassword": "사용자 비밀번호 재설정", + "resettingPassword": "재설정 중...", + "passwordResetInitiated": "{{username}}에 대한 비밀번호 재설정이 시작되었습니다. 재설정 코드가 전송되었습니다.", + "failedToResetPassword": "비밀번호 재설정을 시작하는 데 실패했습니다.", + "sessionManagement": "세션 관리", + "revokeAllSessions": "모든 세션 취소", + "revokeAllSessionsDescription": "모든 기기 및 세션에서 강제 로그아웃", + "revoking": "취소 중...", + "revoke": "모두 취소", + "dangerZone": "위험 지역", + "deleteUserTitle": "사용자 계정 삭제", + "deleteUserWarning": "이 사용자 계정과 관련된 모든 데이터를 영구적으로 삭제합니다. 이 작업은 되돌릴 수 없습니다.", + "deleting": "삭제 중...", + "cannotDeleteSelf": "본인 계정은 삭제할 수 없습니다.", + "cannotRemoveLastAdmin": "마지막 관리자를 제거할 수 없습니다", + "cannotRemoveOwnAdmin": "본인은 관리자 권한을 삭제할 수 없습니다.", + "cannotModifyOwnAdminStatus": "본인은 관리자 상태를 수정할 수 없습니다.", + "dualAuth": "이중 인증", + "externalOIDC": "외부(OIDC)", + "localPassword": "로컬 암호", + "confirmRevokeOwnSessions": "본인의 모든 세션을 취소하시겠습니까? 로그아웃됩니다.", + "linkOIDCWarningTitle": "경고: OIDC 사용자 데이터가 삭제됩니다.", + "linkOIDCActionDeleteUser": "OIDC 사용자 계정과 해당 계정의 모든 데이터를 삭제하세요.", + "linkOIDCActionAddCapability": "대상 암호 계정에 OIDC 로그인 기능을 추가합니다.", + "linkOIDCActionDualAuth": "비밀번호 계정이 비밀번호와 OIDC 모두를 사용하여 로그인할 수 있도록 허용합니다.", + "linkTargetUsernameLabel": "대상 비밀번호 계정 사용자 이름", + "linkTargetUsernamePlaceholder": "사용자 이름과 비밀번호를 입력하세요.", + "linkAccountsButton": "계정 연동", + "linkingAccounts": "연결 중...", + "accountsLinkedSuccessfully": "OIDC 사용자 {{oidcUsername}} 가 {{targetUsername}}에 연결되었습니다.", + "failedToLinkAccounts": "계정 연결에 실패했습니다", + "linkTargetUsernameRequired": "대상 사용자 이름은 필수입니다.", + "unlinkOIDCTitle": "OIDC 인증 연결 해제", + "unlinkOIDCDescription": "{{username}}에서 OIDC 인증을 제거하시겠습니까? 이렇게 하면 사용자는 사용자 이름/비밀번호로만 로그인할 수 있습니다.", + "unlinkOIDCSuccess": "OIDC가 {{username}}에서 연결 해제되었습니다.", + "failedToUnlinkOIDC": "OIDC 연결 해제에 실패했습니다.", + "databaseSecurity": "데이터베이스 보안", + "encryptionStatus": "암호화 상태", + "encryptionEnabled": "암호화 활성화됨", + "enabled": "활성화됨", + "disabled": "장애가 있는", + "keyId": "키 ID", + "created": "생성됨", + "migrationStatus": "이민 상태", + "migrationCompleted": "마이그레이션이 완료되었습니다", + "migrationRequired": "마이그레이션 필요", + "deviceProtectedMasterKey": "환경 보호 마스터 키", + "legacyKeyStorage": "레거시 키 저장소", + "masterKeyEncryptedWithDeviceFingerprint": "환경 지문으로 암호화된 마스터 키 (KEK 보호 기능 활성화됨)", + "keyNotProtectedByDeviceBinding": "환경 바인딩으로 보호되지 않는 키입니다(업그레이드 권장).", + "valid": "유효한", + "initializeDatabaseEncryption": "데이터베이스 암호화 초기화", + "enableAes256EncryptionWithDeviceBinding": "환경 변수에 따라 마스터 키가 보호되는 AES-256 암호화를 활성화합니다. 이를 통해 SSH 키, 암호 및 인증 토큰에 대한 기업 수준의 보안을 구축할 수 있습니다.", + "featuresEnabled": "활성화된 기능:", + "aes256GcmAuthenticatedEncryption": "AES-256-GCM 인증 암호화", + "deviceFingerprintMasterKeyProtection": "환경 지문 마스터 키 보호(KEK)", + "pbkdf2KeyDerivation": "10만 번 반복을 사용한 PBKDF2 키 유도", + "automaticKeyManagement": "자동 키 관리 및 순환", + "initializing": "초기화 중...", + "initializeEnterpriseEncryption": "엔터프라이즈 암호화 초기화", + "migrateExistingData": "기존 데이터 마이그레이션", + "encryptExistingUnprotectedData": "데이터베이스에 있는 보호되지 않은 기존 데이터를 암호화하세요. 이 과정은 안전하며 자동 백업을 생성합니다.", + "testMigrationDryRun": "암호화 호환성을 확인하세요", + "migrating": "마이그레이션 중...", + "migrateData": "데이터 마이그레이션", + "securityInformation": "보안 정보", + "sshPrivateKeysEncryptedWithAes256": "SSH 개인 키와 비밀번호는 AES-256-GCM으로 암호화됩니다.", + "userAuthTokensProtected": "사용자 인증 토큰과 2FA 비밀 키는 보호됩니다.", + "masterKeysProtectedByDeviceFingerprint": "마스터 암호화 키는 장치 지문(KEK)으로 보호됩니다.", + "keysBoundToServerInstance": "키는 현재 서버 환경에 연결되어 있습니다(환경 변수를 통해 마이그레이션 가능).", + "pbkdf2HkdfKeyDerivation": "10만 번 반복을 사용한 PBKDF2 + HKDF 키 유도", + "backwardCompatibleMigration": "마이그레이션 중에도 모든 데이터는 이전 버전과의 호환성을 유지합니다.", + "enterpriseGradeSecurityActive": "엔터프라이즈급 보안 활성화", + "masterKeysProtectedByDeviceBinding": "마스터 암호화 키는 환경 지문 인식을 통해 보호됩니다. 이 기능은 서버 호스트 이름, 경로 및 기타 환경 정보를 사용하여 보호 키를 생성합니다. 서버를 마이그레이션하려면 새 서버에서 DB_ENCRYPTION_KEY 환경 변수를 설정하십시오.", + "important": "중요한", + "keepEncryptionKeysSecure": "데이터 보안을 확보하려면 데이터베이스 파일과 서버 구성을 정기적으로 백업하십시오. 새 서버로 마이그레이션하려면 새 환경에서 DB_ENCRYPTION_KEY 환경 변수를 설정하거나 동일한 호스트 이름과 디렉터리 구조를 유지하십시오.", + "loadingEncryptionStatus": "암호화 상태를 불러오는 중...", + "testMigrationDescription": "기존 데이터를 실제로 수정하지 않고 안전하게 암호화된 형식으로 마이그레이션할 수 있는지 확인하십시오.", + "serverMigrationGuide": "서버 마이그레이션 가이드", + "migrationInstructions": "암호화된 데이터를 새 서버로 마이그레이션하려면 다음 단계를 따르세요. 1) 데이터베이스 파일을 백업합니다. 2) 새 서버에서 환경 변수 DB_ENCRYPTION_KEY=\"your-key\"를 설정합니다. 3) 데이터베이스 파일을 복원합니다.", + "environmentProtection": "환경 보호", + "environmentProtectionDesc": "서버 환경 정보(호스트 이름, 경로 등)를 기반으로 암호화 키를 보호하며, 환경 변수를 통해 마이그레이션할 수 있습니다.", + "verificationCompleted": "호환성 검증이 완료되었습니다. 데이터 변경 사항은 없습니다.", + "verificationInProgress": "확인 완료", + "dataMigrationCompleted": "데이터 마이그레이션이 성공적으로 완료되었습니다!", + "verificationFailed": "호환성 검증에 실패했습니다.", + "migrationFailed": "마이그레이션이 실패했습니다", + "runningVerification": "호환성 검증을 실행 중...", + "startingMigration": "마이그레이션을 시작합니다...", + "hardwareFingerprintSecurity": "하드웨어 지문 보안", + "hardwareBoundEncryption": "하드웨어 기반 암호화 활성화", + "masterKeysNowProtectedByHardwareFingerprint": "이제 마스터 키는 환경 변수 대신 실제 하드웨어 지문 인식으로 보호됩니다.", + "cpuSerialNumberDetection": "CPU 시리얼 번호 감지", + "motherboardUuidIdentification": "마더보드 UUID 식별", + "diskSerialNumberVerification": "디스크 일련 번호 확인", + "biosSerialNumberCheck": "BIOS 시리얼 번호 확인", + "stableMacAddressFiltering": "안정적인 MAC 주소 필터링", + "databaseFileEncryption": "데이터베이스 파일 암호화", + "dualLayerProtection": "이중 레이어 보호 기능 활성화", + "bothFieldAndFileEncryptionActive": "최고 수준의 보안을 위해 필드 수준 암호화와 파일 수준 암호화가 모두 활성화되었습니다.", + "fieldLevelAes256Encryption": "중요 데이터용 필드 레벨 AES-256 암호화", + "fileLevelDatabaseEncryption": "하드웨어 바인딩을 이용한 파일 수준 데이터베이스 암호화", + "hardwareBoundFileKeys": "하드웨어 기반 파일 암호화 키", + "automaticEncryptedBackups": "자동 암호화 백업 생성", + "createEncryptedBackup": "암호화된 백업 생성", + "creatingBackup": "백업 생성 중...", + "backupCreated": "백업이 생성되었습니다", + "encryptedBackupCreatedSuccessfully": "암호화된 백업이 성공적으로 생성되었습니다.", + "backupCreationFailed": "백업 생성 실패", + "databaseMigration": "데이터베이스 마이그레이션", + "exportForMigration": "이민을 위한 수출", + "exportDatabaseForHardwareMigration": "새 하드웨어로 마이그레이션하기 위해 암호화가 해제된 데이터가 포함된 SQLite 파일로 데이터베이스를 내보냅니다.", + "exportDatabase": "SQLite 데이터베이스 내보내기", + "exporting": "수출 중...", + "exportCreated": "SQLite 내보내기가 생성되었습니다.", + "exportContainsDecryptedData": "SQLite 내보내기 파일에는 암호 해독된 데이터가 포함되어 있습니다. 안전하게 보관하세요!", + "databaseExportedSuccessfully": "SQLite 데이터베이스 내보내기가 성공적으로 완료되었습니다.", + "databaseExportFailed": "SQLite 데이터베이스 내보내기 실패", + "importFromMigration": "마이그레이션에서 가져오기", + "importDatabaseFromAnotherSystem": "다른 시스템 또는 하드웨어에서 SQLite 데이터베이스를 가져옵니다.", + "importDatabase": "SQLite 데이터베이스 가져오기", + "importing": "가져오는 중...", + "selectedFile": "선택된 SQLite 파일", + "importWillReplaceExistingData": "SQLite 가져오기는 기존 데이터를 덮어씁니다. 백업을 권장합니다!", + "pleaseSelectImportFile": "SQLite 가져오기 파일을 선택하십시오.", + "databaseImportedSuccessfully": "SQLite 데이터베이스를 성공적으로 가져왔습니다.", + "databaseImportFailed": "SQLite 데이터베이스 가져오기 실패", + "manageEncryptionAndBackups": "암호화 키, 데이터베이스 보안 및 백업 작업을 관리합니다.", + "activeSecurityFeatures": "현재 시행 중인 보안 조치 및 보호 조치", + "deviceBindingTechnology": "첨단 하드웨어 기반 키 보호 기술", + "backupAndRecovery": "안전한 백업 생성 및 데이터베이스 복구 옵션", + "crossSystemDataTransfer": "서로 다른 시스템 간 데이터베이스 내보내기 및 가져오기", + "noMigrationNeeded": "마이그레이션이 필요하지 않습니다.", + "encryptionKey": "암호화 키", + "keyProtection": "키 보호", + "active": "활동적인", + "legacy": "유산", + "dataStatus": "데이터 상태", + "encrypted": "암호화됨", + "needsMigration": "마이그레이션 필요", + "ready": "준비가 된", + "initializeEncryption": "암호화 초기화", + "initialize": "초기화", + "test": "시험", + "migrate": "이주하다", + "backup": "지원", + "createBackup": "백업 생성", + "exportImport": "수출/수입", + "export": "내보내다", + "import": "수입", + "passwordRequired": "비밀번호가 필요합니다", + "confirmExport": "내보내기 확인", + "exportDescription": "SSH 호스트 및 자격 증명을 SQLite 파일로 내보내기", + "importDescription": "중복 항목을 건너뛰는 증분 병합을 사용하여 SQLite 파일을 가져옵니다.", + "criticalWarning": "심각한 경고", + "cannotDisablePasswordLoginWithoutOIDC": "OIDC가 구성되지 않은 상태에서는 암호 로그인을 비활성화할 수 없습니다! 암호 로그인을 비활성화하기 전에 OIDC 인증을 구성해야 합니다. 그렇지 않으면 Termix에 액세스할 수 없게 됩니다.", + "confirmDisablePasswordLogin": "암호 로그인을 비활성화하시겠습니까? 진행하기 전에 OIDC가 제대로 구성되어 작동하는지 확인하십시오. 그렇지 않으면 Termix 인스턴스에 액세스할 수 없게 됩니다.", + "passwordLoginDisabled": "비밀번호 로그인이 성공적으로 비활성화되었습니다.", + "passwordLoginAndRegistrationDisabled": "비밀번호 로그인 및 신규 계정 등록 기능이 성공적으로 비활성화되었습니다.", + "requiresPasswordLogin": "비밀번호 로그인이 활성화되어 있어야 합니다.", + "passwordLoginDisabledWarning": "비밀번호 로그인이 비활성화되었습니다. OIDC가 올바르게 구성되어 있는지 확인하십시오. 그렇지 않으면 Termix에 로그인할 수 없습니다.", + "oidcRequiredWarning": "중요: 비밀번호 로그인이 비활성화되었습니다. OIDC를 재설정하거나 잘못 구성하면 Termix에 대한 모든 접근 권한을 잃고 인스턴스가 완전히 먹통이 됩니다. 절대적으로 확신하는 경우에만 진행하십시오.", + "confirmDisableOIDCWarning": "경고: 비밀번호 로그인이 비활성화된 상태에서 OIDC를 비활성화하려고 합니다. 이렇게 하면 Termix 인스턴스가 완전히 먹통이 되어 모든 접근 권한을 잃게 됩니다. 정말로 계속 진행하시겠습니까?", + "failedToUpdatePasswordLoginStatus": "비밀번호 로그인 상태 업데이트에 실패했습니다.", + "loadingSessions": "세션 불러오는 중...", + "noActiveSessions": "활성화된 세션이 없습니다.", + "device": "장치", + "user": "사용자", + "lastActive": "최근 활동", + "expires": "만료됨", + "revoked": "취소됨", + "revokeAllUserSessionsTitle": "이 사용자에 대한 모든 세션을 취소합니다.", + "revokeAll": "모두 취소", + "linkOidcToPasswordAccount": "OIDC 계정을 비밀번호 계정에 연결", + "linkOidcToPasswordAccountDescription": "{{username}} (OIDC 사용자)를 기존 암호 계정에 연결합니다. 이렇게 하면 암호 계정에 이중 인증이 활성화됩니다.", + "linkOidcWarningTitle": "경고: OIDC 사용자 데이터가 삭제됩니다.", + "linkOidcWarningDescription": "이 작업은 다음과 같은 결과를 가져올 것입니다:", + "linkOidcActionDeleteUser": "OIDC 사용자 계정과 해당 계정의 모든 데이터를 삭제하세요.", + "linkOidcActionAddCapability": "대상 암호 계정에 OIDC 로그인 기능을 추가합니다.", + "linkOidcActionDualAuth": "비밀번호 계정이 비밀번호와 OIDC 모두를 사용하여 로그인할 수 있도록 허용합니다.", + "passwordMinLength": "비밀번호는 최소 6자 이상이어야 합니다.", + "currentRoles": "현재 담당 업무", + "noRolesAssigned": "역할이 할당되지 않았습니다.", + "assignNewRole": "새 역할 할당" }, "hosts": { - "title": "Host Manager", - "sshHosts": "SSH Hosts", - "noHosts": "No SSH Hosts", - "noHostsMessage": "You haven't added any SSH hosts yet. Click \"Add Host\" to get started.", - "loadingHosts": "Loading hosts...", - "failedToLoadHosts": "Failed to load hosts", - "retry": "Retry", - "refresh": "Refresh", - "optional": "Optional", - "hostsCount": "{{count}} hosts", - "importJson": "Import JSON", - "importing": "Importing...", - "importJsonTitle": "Import SSH Hosts from JSON", - "importJsonDesc": "Upload a JSON file to bulk import multiple SSH hosts (max 100).", - "downloadSample": "Download Sample", - "formatGuide": "Format Guide", - "exportCredentialWarning": "Warning: Host \"{{name}}\" uses credential authentication. The exported file will not include the credential data and will need to be manually reconfigured after import. Do you want to continue?", - "exportSensitiveDataWarning": "Warning: Host \"{{name}}\" contains sensitive authentication data (password/SSH key). The exported file will include this data in plaintext. Please keep the file secure and delete it after use. Do you want to continue?", - "uncategorized": "Uncategorized", - "confirmDelete": "Are you sure you want to delete \"{{name}}\" ?", - "failedToDeleteHost": "Failed to delete host", - "failedToExportHost": "Failed to export host. Please ensure you're logged in and have access to the host data.", - "jsonMustContainHosts": "JSON must contain a \"hosts\" array or be an array of hosts", - "noHostsInJson": "No hosts found in JSON file", - "maxHostsAllowed": "Maximum 100 hosts allowed per import", - "importCompleted": "Import completed: {{success}} successful, {{failed}} failed", - "importFailed": "Import failed", - "importError": "Import error", - "failedToImportJson": "Failed to import JSON file", - "connectionDetails": "Connection Details", - "organization": "Organization", - "ipAddress": "IP Address", - "port": "Port", - "name": "Name", - "username": "Username", - "folder": "Folder", - "tags": "Tags", - "pin": "Pin", - "notes": "Notes", - "expirationDate": "Expiration Date", - "passwordRequired": "Password is required when using password authentication", - "sshKeyRequired": "SSH Private Key is required when using key authentication", - "keyTypeRequired": "Key Type is required when using key authentication", - "mustSelectValidSshConfig": "Must select a valid SSH configuration from the list", - "addHost": "Add Host", - "editHost": "Edit Host", - "cloneHost": "Clone Host", - "updateHost": "Update Host", - "hostUpdatedSuccessfully": "Host \"{{name}}\" updated successfully!", - "hostAddedSuccessfully": "Host \"{{name}}\" added successfully!", - "hostDeletedSuccessfully": "Host \"{{name}}\" deleted successfully!", - "failedToSaveHost": "Failed to save host. Please try again.", - "savingHost": "Saving host...", - "updatingHost": "Updating host...", - "cloningHost": "Cloning host...", - "enableTerminal": "Enable Terminal", - "enableTerminalDesc": "Enable/disable host visibility in Terminal tab", - "enableTunnel": "Enable Tunnel", - "enableTunnelDesc": "Enable/disable host visibility in Tunnel tab", - "enableFileManager": "Enable File Manager", - "enableFileManagerDesc": "Enable/disable host visibility in File Manager tab", - "enableDockerDesc": "Enable/disable host visibility in Docker tab", - "enableDocker": "Enable Docker", - "defaultPath": "Default Path", - "defaultPathDesc": "Default directory when opening file manager for this host", - "tunnelConnections": "Tunnel Connections", - "connection": "Connection", - "remove": "Remove", - "sourcePort": "Source Port", - "sourcePortDesc": " (Source refers to the Current Connection Details in the General tab)", - "endpointPort": "Endpoint Port", - "endpointSshConfig": "Endpoint SSH Configuration", - "tunnelForwardDescription": "This tunnel will forward traffic from port {{sourcePort}} on the source machine (current connection details in general tab) to port {{endpointPort}} on the endpoint machine.", - "maxRetries": "Max Retries", - "maxRetriesDescription": "Maximum number of retry attempts for tunnel connection.", - "retryInterval": "Retry Interval (seconds)", - "retryIntervalDescription": "Time to wait between retry attempts.", - "autoStartContainer": "Auto Start on Container Launch", - "autoStartDesc": "Automatically start this tunnel when the container launches", - "addConnection": "Add Tunnel Connection", - "sshpassRequired": "Sshpass Required For Password Authentication", - "sshpassRequiredDesc": "For password authentication in tunnels, sshpass must be installed on the system.", - "otherInstallMethods": "Other installation methods:", - "debianUbuntuEquivalent": "(Debian/Ubuntu) or the equivalent for your OS.", - "or": "or", + "title": "호스트 관리자", + "sshHosts": "SSH 호스트", + "noHosts": "SSH 호스트 없음", + "noHostsMessage": "아직 SSH 호스트를 추가하지 않았습니다. 시작하려면 \"호스트 추가\"를 클릭하세요.", + "loadingHosts": "호스트를 불러오는 중...", + "failedToLoadHosts": "호스트를 로드하는 데 실패했습니다.", + "retry": "다시 해 보다", + "refresh": "새로 고치다", + "optional": "선택 과목", + "hostsCount": "{{count}} 호스트", + "importJson": "JSON 가져오기", + "importing": "가져오는 중...", + "importJsonTitle": "JSON에서 SSH 호스트 가져오기", + "importJsonDesc": "JSON 파일을 업로드하여 여러 SSH 호스트(최대 100개)를 일괄 가져올 수 있습니다.", + "downloadSample": "샘플 다운로드", + "formatGuide": "형식 가이드", + "exportCredentialWarning": "경고: 호스트 \"{{name}}\"는 자격 증명 인증을 사용합니다. 내보낸 파일에는 자격 증명 데이터가 포함되지 않으므로 가져온 후 수동으로 다시 구성해야 합니다. 계속하시겠습니까?", + "exportSensitiveDataWarning": "경고: 호스트 \"{{name}}\"에 민감한 인증 데이터(암호/SSH 키)가 포함되어 있습니다. 내보낸 파일에는 이 데이터가 평문으로 포함됩니다. 파일을 안전하게 보관하고 사용 후 삭제하십시오. 계속하시겠습니까?", + "uncategorized": "분류되지 않음", + "confirmDelete": "\"{{name}}\" 을 정말로 삭제하시겠습니까?", + "failedToDeleteHost": "호스트 삭제에 실패했습니다", + "failedToExportHost": "호스트 내보내기에 실패했습니다. 로그인되어 있고 호스트 데이터에 접근 권한이 있는지 확인하십시오.", + "jsonMustContainHosts": "JSON에는 \"hosts\" 배열이 포함되어 있거나 호스트 배열이어야 합니다.", + "noHostsInJson": "JSON 파일에서 호스트를 찾을 수 없습니다.", + "maxHostsAllowed": "가져오기당 최대 100개의 호스트가 허용됩니다.", + "importCompleted": "가져오기 완료: {{success}} 성공, {{failed}} 실패", + "importFailed": "가져오기 실패", + "importError": "가져오기 오류", + "failedToImportJson": "JSON 파일을 가져오는 데 실패했습니다.", + "connectionDetails": "연결 정보", + "organization": "조직", + "ipAddress": "IP 주소", + "port": "포트", + "name": "이름", + "username": "사용자 이름", + "folder": "접는 사람", + "tags": "태그", + "pin": "핀", + "notes": "메모", + "expirationDate": "만료일", + "passwordRequired": "비밀번호 인증을 사용할 때는 비밀번호가 필요합니다.", + "sshKeyRequired": "키 인증을 사용할 때는 SSH 개인 키가 필요합니다.", + "keyTypeRequired": "키 인증을 사용할 때는 키 유형을 지정해야 합니다.", + "mustSelectValidSshConfig": "목록에서 유효한 SSH 구성을 선택해야 합니다.", + "addHost": "호스트 추가", + "editHost": "호스트 편집", + "cloneHost": "클론 호스트", + "updateHost": "호스트 업데이트", + "hostUpdatedSuccessfully": "호스트 \"{{name}}\"가 성공적으로 업데이트되었습니다!", + "hostAddedSuccessfully": "호스트 \"{{name}}\"가 성공적으로 추가되었습니다!", + "hostDeletedSuccessfully": "호스트 \"{{name}}\"가 성공적으로 삭제되었습니다!", + "failedToSaveHost": "호스트 저장에 실패했습니다. 다시 시도해 주세요.", + "savingHost": "호스트를 저장하는 중...", + "updatingHost": "호스트를 업데이트하는 중...", + "cloningHost": "호스트 복제 중...", + "enableTerminal": "터미널 활성화", + "enableTerminalDesc": "터미널 탭에서 호스트 표시 여부를 활성화/비활성화합니다.", + "enableTunnel": "터널 활성화", + "enableTunnelDesc": "터널 탭에서 호스트 가시성 활성화/비활성화", + "enableFileManager": "파일 관리자 활성화", + "enableFileManagerDesc": "파일 관리자 탭에서 호스트 표시 여부를 활성화/비활성화합니다.", + "enableDockerDesc": "Docker 탭에서 호스트 가시성 활성화/비활성화", + "enableDocker": "Docker 활성화", + "defaultPath": "기본 경로", + "defaultPathDesc": "이 호스트에서 파일 관리자를 열 때 기본 디렉터리가 설정됩니다.", + "tunnelConnections": "터널 연결", + "connection": "연결", + "remove": "제거하다", + "sourcePort": "소스 포트", + "sourcePortDesc": " (출처는 일반 탭의 현재 연결 세부 정보입니다.)", + "endpointPort": "엔드포인트 포트", + "endpointSshConfig": "엔드포인트 SSH 구성", + "tunnelForwardDescription": "이 터널은 소스 머신(일반 탭의 현재 연결 세부 정보 참조)의 포트 {{sourcePort}} 에서 엔드포인트 머신의 포트 {{endpointPort}} 로 트래픽을 전달합니다.", + "maxRetries": "최대 재시도 횟수", + "maxRetriesDescription": "터널 연결에 대한 최대 재시도 횟수입니다.", + "retryInterval": "재시도 간격(초)", + "retryIntervalDescription": "재시도 시도 간 대기 시간.", + "autoStartContainer": "컨테이너 실행 시 자동 시작", + "autoStartDesc": "컨테이너가 시작될 때 이 터널을 자동으로 시작합니다.", + "addConnection": "터널 연결 추가", + "sshpassRequired": "비밀번호 인증을 위해서는 SSH 비밀번호가 필요합니다.", + "sshpassRequiredDesc": "터널에서 암호 인증을 사용하려면 시스템에 sshpass가 설치되어 있어야 합니다.", + "otherInstallMethods": "기타 설치 방법:", + "debianUbuntuEquivalent": "(데비안/우분투) 또는 사용 중인 운영체제에 해당하는 명령어를 입력하세요.", + "or": "또는", "centosRhelFedora": "CentOS/RHEL/Fedora", "macos": "macOS", - "windows": "Windows", - "sshServerConfigRequired": "SSH Server Configuration Required", - "sshServerConfigDesc": "For tunnel connections, the SSH server must be configured to allow port forwarding:", - "gatewayPortsYes": "to bind remote ports to all interfaces", - "allowTcpForwardingYes": "to enable port forwarding", - "permitRootLoginYes": "if using root user for tunneling", - "editSshConfig": "Edit /etc/ssh/sshd_config and restart SSH: sudo systemctl restart sshd", - "upload": "Upload", - "authentication": "Authentication", - "password": "Password", - "key": "Key", - "credential": "Credential", - "none": "None", - "selectCredential": "Select Credential", - "selectCredentialPlaceholder": "Choose a credential...", - "credentialRequired": "Credential is required when using credential authentication", - "credentialDescription": "Selecting a credential will overwrite the current username and use the credential's authentication details.", - "cannotChangeAuthAsSharedUser": "Cannot change authentication as shared user", - "sshPrivateKey": "SSH Private Key", - "keyPassword": "Key Password", - "keyType": "Key Type", - "autoDetect": "Auto-detect", + "windows": "윈도우", + "sshServerConfigRequired": "SSH 서버 구성이 필요합니다", + "sshServerConfigDesc": "터널 연결의 경우 SSH 서버에서 포트 포워딩을 허용하도록 구성해야 합니다.", + "gatewayPortsYes": "원격 포트를 모든 인터페이스에 바인딩합니다.", + "allowTcpForwardingYes": "포트 포워딩을 활성화하려면", + "permitRootLoginYes": "루트 사용자를 터널링에 사용하는 경우", + "editSshConfig": "/etc/ssh/sshd_config 파일을 편집하고 SSH를 재시작하세요: sudo systemctl restart sshd", + "upload": "업로드", + "authentication": "입증", + "password": "비밀번호", + "key": "열쇠", + "credential": "신임장", + "none": "없음", + "selectCredential": "자격증명을 선택하세요", + "selectCredentialPlaceholder": "자격증을 선택하세요...", + "credentialRequired": "자격 증명 인증을 사용할 때는 자격 증명이 필요합니다.", + "credentialDescription": "자격 증명을 선택하면 현재 사용자 이름이 덮어쓰여지고 해당 자격 증명의 인증 정보가 사용됩니다.", + "cannotChangeAuthAsSharedUser": "공유 사용자로 인증 방식을 변경할 수 없습니다.", + "sshPrivateKey": "SSH 개인 키", + "keyPassword": "키 비밀번호", + "keyType": "키 유형", + "autoDetect": "자동 감지", "rsa": "RSA", "ed25519": "ED25519", "ecdsaNistP256": "ECDSA NIST P-256", "ecdsaNistP384": "ECDSA NIST P-384", "ecdsaNistP521": "ECDSA NIST P-521", - "dsa": "DSA", + "dsa": "디사", "rsaSha2256": "RSA SHA2-256", "rsaSha2512": "RSA SHA2-512", - "uploadFile": "Upload File", - "pasteKey": "Paste Key", - "updateKey": "Update Key", - "existingKey": "Existing Key (click to change)", - "existingCredential": "Existing Credential (click to change)", - "addTagsSpaceToAdd": "add tags (space to add)", - "terminalBadge": "Terminal", - "tunnelBadge": "Tunnel", - "fileManagerBadge": "File Manager", - "general": "General", - "terminal": "Terminal", - "tunnel": "Tunnel", - "fileManager": "File Manager", - "serverStats": "Server Stats", - "hostViewer": "Host Viewer", - "enableServerStats": "Enable Server Stats", - "enableServerStatsDesc": "Enable/disable server statistics collection for this host", - "displayItems": "Display Items", - "displayItemsDesc": "Choose which metrics to display on the server stats page", - "enableCpu": "CPU Usage", - "enableMemory": "Memory Usage", - "enableDisk": "Disk Usage", - "enableNetwork": "Network Statistics (Coming Soon)", - "enableProcesses": "Process Count (Coming Soon)", - "enableUptime": "Uptime (Coming Soon)", - "enableHostname": "Hostname (Coming Soon)", - "enableOs": "Operating System (Coming Soon)", - "customCommands": "Custom Commands (Coming Soon)", - "customCommandsDesc": "Define custom shutdown and reboot commands for this server", - "shutdownCommand": "Shutdown Command", - "rebootCommand": "Reboot Command", - "confirmRemoveFromFolder": "Are you sure you want to remove \"{{name}}\" from folder \"{{folder}}\"? The host will be moved to \"No Folder\".", - "removedFromFolder": "Host \"{{name}}\" removed from folder successfully", - "failedToRemoveFromFolder": "Failed to remove host from folder", - "folderRenamed": "Folder \"{{oldName}}\" renamed to \"{{newName}}\" successfully", - "failedToRenameFolder": "Failed to rename folder", - "editFolderAppearance": "Edit Folder Appearance", - "editFolderAppearanceDesc": "Customize the color and icon for folder", - "folderColor": "Folder Color", - "folderIcon": "Folder Icon", - "preview": "Preview", - "folderAppearanceUpdated": "Folder appearance updated successfully", - "failedToUpdateFolderAppearance": "Failed to update folder appearance", - "deleteAllHostsInFolder": "Delete All Hosts in Folder", - "confirmDeleteAllHostsInFolder": "Are you sure you want to delete all {{count}} hosts in folder \"{{folder}}\"? This action cannot be undone.", - "allHostsInFolderDeleted": "Deleted {{count}} hosts from folder \"{{folder}}\" successfully", - "failedToDeleteHostsInFolder": "Failed to delete hosts in folder", - "movedToFolder": "Host \"{{name}}\" moved to \"{{folder}}\" successfully", - "failedToMoveToFolder": "Failed to move host to folder", - "clickToRenameFolder": "Click to rename folder", - "renameFolder": "Rename folder", - "removeFromFolder": "Remove from folder \"{{folder}}\"", - "editHostTooltip": "Edit host", - "deleteHostTooltip": "Delete host", - "exportHostTooltip": "Export host", - "cloneHostTooltip": "Clone host", - "clickToEditHost": "Click to edit host", - "dragToMoveBetweenFolders": "Drag to move between folders", - "exportedHostConfig": "Exported host configuration for {{name}}", - "openTerminal": "Open Terminal", - "openFileManager": "Open File Manager", - "openTunnels": "Open Tunnels", - "openServerDetails": "Open Server Details", - "statistics": "Statistics", - "enabledWidgets": "Enabled Widgets", - "openServerStats": "Open Server Stats", - "enabledWidgetsDesc": "Select which statistics widgets to display for this host", - "monitoringConfiguration": "Monitoring Configuration", - "monitoringConfigurationDesc": "Configure how often server statistics and status are checked", - "statusCheckEnabled": "Enable Status Monitoring", - "statusCheckEnabledDesc": "Check if the server is online or offline", - "statusCheckInterval": "Status Check Interval", - "statusCheckIntervalDesc": "How often to check if host is online (5s - 1h)", - "metricsEnabled": "Enable Metrics Monitoring", - "metricsEnabledDesc": "Collect CPU, RAM, disk, and other system statistics", - "metricsInterval": "Metrics Collection Interval", - "metricsIntervalDesc": "How often to collect server statistics (5s - 1h)", - "intervalSeconds": "seconds", - "intervalMinutes": "minutes", - "intervalValidation": "Monitoring intervals must be between 5 seconds and 1 hour (3600 seconds)", - "monitoringDisabled": "Server monitoring is disabled for this host", - "enableMonitoring": "Enable monitoring in Host Manager → Statistics tab", - "monitoringDisabledBadge": "Monitoring Off", - "statusMonitoring": "Status", - "metricsMonitoring": "Metrics", - "terminalCustomization": "Terminal Customization", - "appearance": "Appearance", - "behavior": "Behavior", - "advanced": "Advanced", - "themePreview": "Theme Preview", - "theme": "Theme", - "selectTheme": "Select theme", - "chooseColorTheme": "Choose a color theme for the terminal", - "fontFamily": "Font Family", - "selectFont": "Select font", - "selectFontDesc": "Select the font to use in the terminal", - "fontSize": "Font Size", - "fontSizeValue": "Font Size: {{value}}px", - "adjustFontSize": "Adjust the terminal font size", - "letterSpacing": "Letter Spacing", - "letterSpacingValue": "Letter Spacing: {{value}}px", - "adjustLetterSpacing": "Adjust spacing between characters", - "lineHeight": "Line Height", - "lineHeightValue": "Line Height: {{value}}", - "adjustLineHeight": "Adjust spacing between lines", - "cursorStyle": "Cursor Style", - "selectCursorStyle": "Select cursor style", - "cursorStyleBlock": "Block", - "cursorStyleUnderline": "Underline", - "cursorStyleBar": "Bar", - "chooseCursorAppearance": "Choose the cursor appearance", - "cursorBlink": "Cursor Blink", - "enableCursorBlink": "Enable cursor blinking animation", - "scrollbackBuffer": "Scrollback Buffer", - "scrollbackBufferValue": "Scrollback Buffer: {{value}} lines", - "scrollbackBufferDesc": "Number of lines to keep in scrollback history", - "bellStyle": "Bell Style", - "selectBellStyle": "Select bell style", - "bellStyleNone": "None", - "bellStyleSound": "Sound", - "bellStyleVisual": "Visual", - "bellStyleBoth": "Both", - "bellStyleDesc": "How to handle terminal bell (BEL character, \\x07). Programs trigger this when completing tasks, encountering errors, or for notifications. \"Sound\" plays an audio beep, \"Visual\" flashes the screen briefly, \"Both\" does both, \"None\" disables bell alerts.", - "rightClickSelectsWord": "Right Click Selects Word", - "rightClickSelectsWordDesc": "Right-clicking selects the word under cursor", - "fastScrollModifier": "Fast Scroll Modifier", - "selectModifier": "Select modifier", + "uploadFile": "파일 업로드", + "pasteKey": "붙여넣기 키", + "updateKey": "업데이트 키", + "existingKey": "기존 키 (클릭하여 변경)", + "existingCredential": "기존 자격 증명 (클릭하여 변경)", + "addTagsSpaceToAdd": "태그 추가 (추가할 공간)", + "terminalBadge": "단말기", + "tunnelBadge": "터널", + "fileManagerBadge": "파일 관리자", + "general": "일반적인", + "terminal": "단말기", + "tunnel": "터널", + "fileManager": "파일 관리자", + "serverStats": "서버 통계", + "hostViewer": "호스트 뷰어", + "enableServerStats": "서버 통계 활성화", + "enableServerStatsDesc": "이 호스트에 대한 서버 통계 수집을 활성화/비활성화합니다.", + "displayItems": "전시품", + "displayItemsDesc": "서버 통계 페이지에 표시할 지표를 선택하세요.", + "enableCpu": "CPU 사용량", + "enableMemory": "메모리 사용량", + "enableDisk": "디스크 사용량", + "enableNetwork": "네트워크 통계 (출시 예정)", + "enableProcesses": "처리 건수 (곧 공개 예정)", + "enableUptime": "가동 시간 (출시 예정)", + "enableHostname": "호스트 이름 (출시 예정)", + "enableOs": "운영 체제 (출시 예정)", + "customCommands": "사용자 지정 명령 (출시 예정)", + "customCommandsDesc": "이 서버에 대한 사용자 지정 종료 및 재부팅 명령을 정의하십시오.", + "shutdownCommand": "종료 명령", + "rebootCommand": "재부팅 명령", + "confirmRemoveFromFolder": "\"{{folder}}\" 폴더에서 \"{{name}}\"를 삭제하시겠습니까? 호스트가 \"폴더 없음\"으로 이동됩니다.", + "removedFromFolder": "호스트 \"{{name}}\"가 폴더에서 성공적으로 제거되었습니다.", + "failedToRemoveFromFolder": "호스트를 폴더에서 제거하는 데 실패했습니다.", + "folderRenamed": "폴더 \"{{oldName}}\"의 이름이 \"{{newName}}\"로 성공적으로 변경되었습니다.", + "failedToRenameFolder": "폴더 이름 변경에 실패했습니다", + "editFolderAppearance": "폴더 모양 편집", + "editFolderAppearanceDesc": "폴더의 색상과 아이콘을 사용자 지정하세요", + "folderColor": "폴더 색상", + "folderIcon": "폴더 아이콘", + "preview": "시사", + "folderAppearanceUpdated": "폴더 모양이 성공적으로 업데이트되었습니다.", + "failedToUpdateFolderAppearance": "폴더 모양 업데이트에 실패했습니다.", + "deleteAllHostsInFolder": "폴더 안의 모든 호스트를 삭제합니다", + "confirmDeleteAllHostsInFolder": "\"{{folder}}\" 폴더에 있는 모든 {{count}} 호스트를 삭제하시겠습니까? 이 작업은 되돌릴 수 없습니다.", + "allHostsInFolderDeleted": "폴더 \"{{folder}}\"에서 {{count}} 호스트를 성공적으로 삭제했습니다.", + "failedToDeleteHostsInFolder": "폴더에서 호스트를 삭제하는 데 실패했습니다.", + "movedToFolder": "호스트 \"{{name}}\"가 \"{{folder}}\"로 성공적으로 이동했습니다.", + "failedToMoveToFolder": "호스트를 폴더로 이동하는 데 실패했습니다.", + "clickToRenameFolder": "폴더 이름을 바꾸려면 클릭하세요", + "renameFolder": "폴더 이름 변경", + "removeFromFolder": "폴더에서 제거 \"{{folder}}\"", + "editHostTooltip": "호스트 편집", + "deleteHostTooltip": "호스트 삭제", + "exportHostTooltip": "호스트 내보내기", + "cloneHostTooltip": "클론 호스트", + "clickToEditHost": "호스트를 수정하려면 클릭하세요", + "dragToMoveBetweenFolders": "드래그하여 폴더 간 이동", + "exportedHostConfig": "{{name}}에 대한 호스트 구성을 내보냈습니다.", + "openTerminal": "터미널 열기", + "openFileManager": "파일 관리자 열기", + "openTunnels": "개방형 터널", + "openServerDetails": "오픈 서버 세부 정보", + "statistics": "통계", + "enabledWidgets": "활성화된 위젯", + "openServerStats": "오픈 서버 통계", + "enabledWidgetsDesc": "이 호스트에 대해 표시할 통계 위젯을 선택하세요.", + "monitoringConfiguration": "모니터링 구성", + "monitoringConfigurationDesc": "서버 통계 및 상태 확인 빈도를 구성합니다.", + "statusCheckEnabled": "상태 모니터링 활성화", + "statusCheckEnabledDesc": "서버가 온라인 상태인지 오프라인 상태인지 확인하십시오.", + "statusCheckInterval": "상태 확인 간격", + "statusCheckIntervalDesc": "호스트가 온라인 상태인지 확인하는 빈도 (5초 ~ 1시간)", + "metricsEnabled": "메트릭 모니터링 활성화", + "metricsEnabledDesc": "CPU, RAM, 디스크 및 기타 시스템 통계를 수집합니다.", + "metricsInterval": "측정항목 수집 간격", + "metricsIntervalDesc": "서버 통계 수집 빈도 (5초 ~ 1시간)", + "intervalSeconds": "초", + "intervalMinutes": "분", + "intervalValidation": "모니터링 간격은 5초에서 1시간(3600초) 사이여야 합니다.", + "monitoringDisabled": "이 호스트에 대한 서버 모니터링이 비활성화되었습니다.", + "enableMonitoring": "호스트 관리자 → 통계 탭에서 모니터링을 활성화합니다.", + "monitoringDisabledBadge": "모니터링 중지", + "statusMonitoring": "상태", + "metricsMonitoring": "측정 기준", + "terminalCustomization": "터미널 맞춤 설정", + "appearance": "모습", + "behavior": "행동", + "advanced": "고급의", + "themePreview": "테마 미리보기", + "theme": "주제", + "selectTheme": "테마를 선택하세요", + "chooseColorTheme": "터미널에 사용할 색상 테마를 선택하세요", + "fontFamily": "글꼴 패밀리", + "selectFont": "글꼴을 선택하세요", + "selectFontDesc": "터미널에서 사용할 글꼴을 선택하세요.", + "fontSize": "글꼴 크기", + "fontSizeValue": "글꼴 크기: {{value}}픽셀", + "adjustFontSize": "터미널 글꼴 크기를 조정하세요", + "letterSpacing": "글자 간격", + "letterSpacingValue": "글자 간격: {{value}}픽셀", + "adjustLetterSpacing": "문자 간 간격을 조정하세요", + "lineHeight": "선 높이", + "lineHeightValue": "선 높이: {{value}}", + "adjustLineHeight": "줄 간격을 조정하세요", + "cursorStyle": "커서 스타일", + "selectCursorStyle": "커서 스타일을 선택하세요", + "cursorStyleBlock": "차단하다", + "cursorStyleUnderline": "밑줄", + "cursorStyleBar": "술집", + "chooseCursorAppearance": "커서 모양을 선택하세요", + "cursorBlink": "커서 깜빡임", + "enableCursorBlink": "커서 깜빡임 애니메이션 활성화", + "scrollbackBuffer": "스크롤백 버퍼", + "scrollbackBufferValue": "스크롤백 버퍼: {{value}} 줄", + "scrollbackBufferDesc": "스크롤백 기록에 유지할 줄 수", + "bellStyle": "벨 스타일", + "selectBellStyle": "벨 스타일을 선택하세요", + "bellStyleNone": "없음", + "bellStyleSound": "소리", + "bellStyleVisual": "시각", + "bellStyleBoth": "둘 다", + "bellStyleDesc": "터미널 알림음(BEL 문자, \\x07)을 처리하는 방법입니다. 프로그램은 작업 완료, 오류 발생 또는 알림 시 이 알림음을 발생시킵니다. \"소리\"는 경고음을 재생하고, \"시각\"은 화면을 잠깐 깜빡이게 하며, \"둘 다\"는 경고음과 화면 깜빡임을 모두 표시하고, \"없음\"은 알림음을 비활성화합니다.", + "rightClickSelectsWord": "마우스 오른쪽 버튼을 클릭하고 단어를 선택하세요.", + "rightClickSelectsWordDesc": "마우스 오른쪽 버튼을 클릭하면 커서 아래에 있는 단어가 선택됩니다.", + "fastScrollModifier": "빠른 스크롤 수정자", + "selectModifier": "수정자를 선택하세요", "modifierAlt": "Alt", - "modifierCtrl": "Ctrl", - "modifierShift": "Shift", - "fastScrollModifierDesc": "Modifier key for fast scrolling", - "fastScrollSensitivity": "Fast Scroll Sensitivity", - "fastScrollSensitivityValue": "Fast Scroll Sensitivity: {{value}}", - "fastScrollSensitivityDesc": "Scroll speed multiplier when modifier is held", - "minimumContrastRatio": "Minimum Contrast Ratio", - "minimumContrastRatioValue": "Minimum Contrast Ratio: {{value}}", - "minimumContrastRatioDesc": "Automatically adjust colors for better readability", - "sshAgentForwarding": "SSH Agent Forwarding", - "sshAgentForwardingDesc": "Forward SSH authentication agent to remote host", - "backspaceMode": "Backspace Mode", - "selectBackspaceMode": "Select backspace mode", - "backspaceModeNormal": "Normal (DEL)", - "backspaceModeControlH": "Control-H (^H)", - "backspaceModeDesc": "Backspace key behavior for compatibility", - "startupSnippet": "Startup Snippet", - "selectSnippet": "Select snippet", - "searchSnippets": "Search snippets...", - "snippetNone": "None", - "noneAuthTitle": "Keyboard-Interactive Authentication", - "noneAuthDescription": "This authentication method will use keyboard-interactive authentication when connecting to the SSH server.", - "noneAuthDetails": "Keyboard-interactive authentication allows the server to prompt you for credentials during connection. This is useful for servers that require multi-factor authentication or if you do not want to save credentials locally.", - "forceKeyboardInteractive": "Force Keyboard-Interactive", - "forceKeyboardInteractiveDesc": "Forces the use of keyboard-interactive authentication. This is sometimes required for servers that use Two-Factor Authentication (TOTP/2FA).", - "overrideCredentialUsername": "Override Credential Username", - "overrideCredentialUsernameDesc": "Use a different username than the one stored in the credential. This allows you to use the same credential with different usernames.", - "jumpHosts": "Jump Hosts", - "jumpHostsDescription": "Jump hosts (also known as bastion hosts) allow you to connect to a target server through one or more intermediate servers. This is useful for accessing servers behind firewalls or in private networks.", - "jumpHostChain": "Jump Host Chain", - "addJumpHost": "Add Jump Host", - "selectServer": "Select Server", - "searchServers": "Search servers...", - "noServerFound": "No server found", - "jumpHostsOrder": "Connections will be made in order: Jump Host 1 → Jump Host 2 → ... → Target Server", - "socks5Proxy": "SOCKS5 Proxy", - "socks5Description": "Configure SOCKS5 proxy for SSH connection. All traffic will be routed through the specified proxy server.", - "enableSocks5": "Enable SOCKS5 Proxy", - "enableSocks5Description": "Use SOCKS5 proxy for this SSH connection", - "socks5Host": "Proxy Host", - "socks5Port": "Proxy Port", - "socks5Username": "Proxy Username", - "socks5Password": "Proxy Password", - "socks5UsernameOptional": "Optional: leave empty if proxy doesn't require authentication", - "socks5PasswordOptional": "Optional: leave empty if proxy doesn't require authentication", - "socks5ProxyChain": "Proxy Chain", - "socks5ProxyChainDescription": "Configure a chain of SOCKS proxies. Each proxy in the chain will connect through the previous one.", - "socks5ProxyMode": "Proxy Mode", - "socks5UseSingleProxy": "Use Single Proxy", - "socks5UseProxyChain": "Use Proxy Chain", - "socks5UsePreset": "Use Saved Preset", - "socks5SelectPreset": "Select Preset", - "socks5ManagePresets": "Manage Presets", - "socks5ProxyNode": "Proxy {{number}}", - "socks5AddProxy": "Add Proxy to Chain", - "socks5RemoveProxy": "Remove Proxy", - "socks5ProxyType": "Proxy Type", - "socks5SaveAsPreset": "Save as Preset", - "socks5SavePresetTitle": "Save Proxy Chain as Preset", - "socks5SavePresetDescription": "Save the current proxy chain configuration as a reusable preset", - "socks5PresetName": "Preset Name", - "socks5PresetDescription": "Description (optional)", - "socks5PresetCreated": "Proxy chain preset created", - "socks5PresetUpdated": "Proxy chain preset updated", - "socks5PresetDeleted": "Proxy chain preset deleted", - "socks5PresetSaved": "Preset \"{{name}}\" saved successfully", - "socks5PresetSaveError": "Failed to save preset", - "socks5PresetNameRequired": "Preset name is required", - "socks5EmptyChainError": "Cannot save an empty proxy chain", - "socks5ProxyChainEmpty": "Add at least one proxy to the chain", - "socks5HostDescription": "Hostname or IP address of the SOCKS proxy server", - "socks5PortDescription": "Port number of the SOCKS proxy server (default: 1080)", - "addProxyNode": "Add Proxy Node", - "noProxyNodes": "No proxy nodes configured. Click 'Add Proxy Node' to add one.", - "proxyNode": "Proxy Node", - "proxyType": "Proxy Type", - "quickActions": "Quick Actions", - "quickActionsDescription": "Quick actions allow you to create custom buttons that execute SSH snippets on this server. These buttons will appear at the top of the Server Stats page for quick access.", - "quickActionsList": "Quick Actions List", - "addQuickAction": "Add Quick Action", - "quickActionName": "Action name", - "noSnippetFound": "No snippet found", - "quickActionsOrder": "Quick action buttons will appear in the order listed above on the Server Stats page", - "advancedAuthSettings": "Advanced Authentication Settings", - "sudoPasswordAutoFill": "Sudo Password Auto-Fill", - "sudoPasswordAutoFillDesc": "Automatically offer to insert SSH password when sudo prompts for password", - "sudoPassword": "Sudo Password", - "sudoPasswordDesc": "Optional password for sudo commands (useful with key authentication)", - "socks4": "SOCKS4", - "socks5": "SOCKS5", - "executeSnippetOnConnect": "Execute a snippet when the terminal connects", - "autoMosh": "Auto-MOSH", - "autoMoshDesc": "Automatically run MOSH command on connect", - "moshCommand": "MOSH Command", - "moshCommandDesc": "The MOSH command to execute", - "environmentVariables": "Environment Variables", - "environmentVariablesDesc": "Set custom environment variables for the terminal session", - "variableName": "Variable name", - "variableValue": "Value", - "addVariable": "Add Variable", - "docker": "Docker", - "openDocker": "Open Docker", - "notEnabled": "Docker is not enabled for this host. Enable it in Host Settings to use Docker features.", - "validating": "Validating Docker...", - "error": "Error", - "errorCode": "Error code: {{code}}", + "modifierCtrl": "Ctrl 키", + "modifierShift": "옮기다", + "fastScrollModifierDesc": "빠른 스크롤을 위한 보조 키", + "fastScrollSensitivity": "빠른 스크롤 감도", + "fastScrollSensitivityValue": "빠른 스크롤 감도: {{value}}", + "fastScrollSensitivityDesc": "수정 키를 누른 상태에서 스크롤 속도 배율", + "minimumContrastRatio": "최소 대비비", + "minimumContrastRatioValue": "최소 명암비: {{value}}", + "minimumContrastRatioDesc": "가독성을 높이기 위해 색상을 자동으로 조정합니다.", + "sshAgentForwarding": "SSH 에이전트 포워딩", + "sshAgentForwardingDesc": "SSH 인증 에이전트를 원격 호스트로 전달합니다.", + "backspaceMode": "백스페이스 모드", + "selectBackspaceMode": "백스페이스 모드를 선택하세요", + "backspaceModeNormal": "정상(DEL)", + "backspaceModeControlH": "컨트롤-H (^H)", + "backspaceModeDesc": "호환성을 위한 백스페이스 키 동작", + "startupSnippet": "스타트업 스니펫", + "selectSnippet": "스니펫을 선택하세요", + "searchSnippets": "검색 스니펫...", + "snippetNone": "없음", + "noneAuthTitle": "키보드 인터랙티브 인증", + "noneAuthDescription": "이 인증 방식은 SSH 서버에 연결할 때 키보드 대화형 인증을 사용합니다.", + "noneAuthDetails": "키보드 대화형 인증을 사용하면 서버에 연결하는 동안 자격 증명을 입력하라는 메시지가 표시됩니다. 이는 다단계 인증이 필요한 서버나 자격 증명을 로컬에 저장하지 않으려는 경우에 유용합니다.", + "forceKeyboardInteractive": "키보드 상호작용 강제 적용", + "forceKeyboardInteractiveDesc": "키보드 입력 방식의 인증을 강제로 사용하게 합니다. 이는 2단계 인증(TOTP/2FA)을 사용하는 서버에서 필요한 경우가 있습니다.", + "overrideCredentialUsername": "자격 증명 사용자 이름 재정의", + "overrideCredentialUsernameDesc": "자격 증명에 저장된 사용자 이름과 다른 사용자 이름을 사용하십시오. 이렇게 하면 동일한 자격 증명을 여러 사용자 이름으로 사용할 수 있습니다.", + "jumpHosts": "점프 호스트", + "jumpHostsDescription": "점프 호스트(또는 배스천 호스트)를 사용하면 하나 이상의 중간 서버를 통해 대상 서버에 연결할 수 있습니다. 이는 방화벽 뒤에 있거나 사설 네트워크에 있는 서버에 액세스할 때 유용합니다.", + "jumpHostChain": "점프 호스트 체인", + "addJumpHost": "점프 호스트 추가", + "selectServer": "서버를 선택하세요", + "searchServers": "검색 서버...", + "noServerFound": "서버를 찾을 수 없습니다.", + "jumpHostsOrder": "연결은 다음 순서로 이루어집니다: 점프 호스트 1 → 점프 호스트 2 → ... → 대상 서버", + "socks5Proxy": "SOCKS5 프록시", + "socks5Description": "SSH 연결을 위해 SOCKS5 프록시를 구성합니다. 모든 트래픽은 지정된 프록시 서버를 통해 라우팅됩니다.", + "enableSocks5": "SOCKS5 프록시 활성화", + "enableSocks5Description": "이 SSH 연결에는 SOCKS5 프록시를 사용하십시오.", + "socks5Host": "프록시 호스트", + "socks5Port": "프록시 포트", + "socks5Username": "프록시 사용자 이름", + "socks5Password": "프록시 비밀번호", + "socks5UsernameOptional": "선택 사항: 프록시에 인증이 필요하지 않은 경우 비워 두십시오.", + "socks5PasswordOptional": "선택 사항: 프록시에 인증이 필요하지 않은 경우 비워 두십시오.", + "socks5ProxyChain": "프록시 체인", + "socks5ProxyChainDescription": "SOCKS 프록시 체인을 구성하십시오. 체인의 각 프록시는 이전 프록시를 통해 연결됩니다.", + "socks5ProxyMode": "프록시 모드", + "socks5UseSingleProxy": "단일 프록시 사용", + "socks5UseProxyChain": "프록시 체인을 사용하세요", + "socks5UsePreset": "저장된 사전 설정 사용", + "socks5SelectPreset": "사전 설정 선택", + "socks5ManagePresets": "사전 설정 관리", + "socks5ProxyNode": "프록시 {{number}}", + "socks5AddProxy": "체인에 프록시 추가", + "socks5RemoveProxy": "프록시 제거", + "socks5ProxyType": "프록시 유형", + "socks5SaveAsPreset": "프리셋으로 저장", + "socks5SavePresetTitle": "프록시 체인을 사전 설정으로 저장", + "socks5SavePresetDescription": "현재 프록시 체인 구성을 재사용 가능한 사전 설정으로 저장합니다.", + "socks5PresetName": "사전 설정 이름", + "socks5PresetDescription": "설명 (선택 사항)", + "socks5PresetCreated": "프록시 체인 사전 설정이 생성되었습니다.", + "socks5PresetUpdated": "프록시 체인 사전 설정이 업데이트되었습니다.", + "socks5PresetDeleted": "프록시 체인 사전 설정이 삭제되었습니다.", + "socks5PresetSaved": "사전 설정 \"{{name}}\"이 성공적으로 저장되었습니다.", + "socks5PresetSaveError": "사전 설정 저장에 실패했습니다.", + "socks5PresetNameRequired": "사전 설정 이름은 필수 입력 사항입니다.", + "socks5EmptyChainError": "빈 프록시 체인을 저장할 수 없습니다.", + "socks5ProxyChainEmpty": "체인에 프록시를 하나 이상 추가하세요", + "socks5HostDescription": "SOCKS 프록시 서버의 호스트 이름 또는 IP 주소", + "socks5PortDescription": "SOCKS 프록시 서버의 포트 번호(기본값: 1080)", + "addProxyNode": "프록시 노드 추가", + "noProxyNodes": "구성된 프록시 노드가 없습니다. '프록시 노드 추가'를 클릭하여 추가하세요.", + "proxyNode": "프록시 노드", + "proxyType": "프록시 유형", + "quickActions": "빠른 조치", + "quickActionsDescription": "빠른 실행 기능을 사용하면 이 서버에서 SSH 코드 조각을 실행하는 사용자 지정 버튼을 만들 수 있습니다. 이러한 버튼은 서버 통계 페이지 상단에 표시되어 빠르게 접근할 수 있습니다.", + "quickActionsList": "빠른 실행 목록", + "addQuickAction": "빠른 실행 추가", + "quickActionName": "액션 이름", + "noSnippetFound": "스니펫을 찾을 수 없습니다.", + "quickActionsOrder": "빠른 실행 버튼은 서버 통계 페이지에 위 목록 순서대로 표시됩니다.", + "advancedAuthSettings": "고급 인증 설정", + "sudoPasswordAutoFill": "Sudo 비밀번호 자동 완성", + "sudoPasswordAutoFillDesc": "sudo 명령어가 암호를 입력하라는 메시지를 표시할 때 SSH 암호를 자동으로 입력하도록 제안합니다.", + "sudoPassword": "Sudo 비밀번호", + "sudoPasswordDesc": "sudo 명령어에 사용할 선택적 암호 (키 인증 시 유용)", + "socks4": "양말4개", + "socks5": "양말5", + "executeSnippetOnConnect": "터미널이 연결될 때 코드 조각을 실행합니다.", + "autoMosh": "자동 MOSH", + "autoMoshDesc": "연결 시 MOSH 명령을 자동으로 실행합니다.", + "moshCommand": "MOSH 명령", + "moshCommandDesc": "실행할 MOSH 명령어", + "environmentVariables": "환경 변수", + "environmentVariablesDesc": "터미널 세션에 대한 사용자 지정 환경 변수를 설정합니다.", + "variableName": "변수 이름", + "variableValue": "값", + "addVariable": "변수 추가", + "docker": "도커", + "openDocker": "오픈 도커", + "notEnabled": "이 호스트에서는 Docker가 활성화되어 있지 않습니다. Docker 기능을 사용하려면 호스트 설정에서 Docker를 활성화하십시오.", + "validating": "Docker 유효성 검사 중...", + "error": "오류", + "errorCode": "오류 코드: {{code}}", "version": "Docker v{{version}}", - "current": "Current", - "used_limit": "Used / Limit", - "percentage": "Percentage", - "input": "Input", - "output": "Output", - "read": "Read", - "write": "Write", + "current": "현재의", + "used_limit": "사용량/한도", + "percentage": "백분율", + "input": "입력", + "output": "산출", + "read": "읽다", + "write": "쓰다", "pids": "PIDs", "id": "ID", - "state": "State", - "console": "Console", - "containerMustBeRunning": "Container must be running to connect to console", - "authenticationRequired": "Authentication required", - "connectedTo": "Connected to {{containerName}}", - "disconnected": "Disconnected", - "consoleError": "Console error", - "errorMessage": "Error: {{message}}", - "failedToConnect": "Failed to connect to console", - "disconnectedFromContainer": "Disconnected from container console.", - "containerNotRunning": "Container is not running", - "startContainerToAccess": "Start the container to access the console", - "selectShell": "Select shell", - "bash": "Bash", - "sh": "Sh", - "ash": "Ash", - "connecting": "Connecting...", - "connect": "Connect", - "disconnect": "Disconnect", - "notConnected": "Not connected", - "clickToConnect": "Click Connect to start an interactive shell", - "connectingTo": "Connecting to {{containerName}}...", - "containerMustBeRunningToViewStats": "Container must be running to view stats", - "failedToFetchStats": "Failed to fetch stats", - "noContainersFound": "No containers found", - "noContainersFoundHint": "Start by creating containers on your server", - "searchPlaceholder": "Search by name, image, or ID...", - "filterByStatusPlaceholder": "Filter by status", - "allContainersCount": "All ({{count}})", + "state": "상태", + "console": "콘솔", + "containerMustBeRunning": "콘솔에 연결하려면 컨테이너가 실행 중이어야 합니다.", + "authenticationRequired": "인증 필요", + "connectedTo": "{{containerName}}에 연결됨", + "disconnected": "연결이 끊어졌습니다", + "consoleError": "콘솔 오류", + "errorMessage": "오류: {{message}}", + "failedToConnect": "콘솔에 연결하지 못했습니다.", + "disconnectedFromContainer": "컨테이너 콘솔 연결이 끊어졌습니다.", + "containerNotRunning": "컨테이너가 실행 중이 아닙니다.", + "startContainerToAccess": "콘솔에 접근하려면 컨테이너를 시작하세요.", + "selectShell": "쉘을 선택하세요", + "bash": "세게 때리다", + "sh": "쉿", + "ash": "금연 건강 증진 협회", + "connecting": "연결 중...", + "connect": "연결하다", + "disconnect": "연결을 끊으세요", + "notConnected": "연결되지 않음", + "clickToConnect": "연결을 클릭하여 대화형 셸을 시작하세요.", + "connectingTo": "{{containerName}}에 연결 중...", + "containerMustBeRunningToViewStats": "통계를 보려면 컨테이너가 실행 중이어야 합니다.", + "failedToFetchStats": "통계 데이터를 가져오는 데 실패했습니다.", + "noContainersFound": "컨테이너를 찾을 수 없습니다.", + "noContainersFoundHint": "먼저 서버에 컨테이너를 생성하세요.", + "searchPlaceholder": "이름, 이미지 또는 ID로 검색하세요...", + "filterByStatusPlaceholder": "상태별 필터링", + "allContainersCount": "모두 ({{count}})", "statusCount": "{{status}} ({{count}})", - "noContainersMatchFilters": "No containers match your filters", - "noContainersMatchFiltersHint": "Try adjusting your search or filter", - "containerStarted": "Container {{name}} started", - "failedToStartContainer": "Failed to start container: {{error}}", - "containerStopped": "Container {{name}} stopped", - "failedToStopContainer": "Failed to stop container: {{error}}", - "containerRestarted": "Container {{name}} restarted", - "failedToRestartContainer": "Failed to restart container: {{error}}", - "containerUnpaused": "Container {{name}} unpaused", - "containerPaused": "Container {{name}} paused", - "failedToTogglePauseContainer": "Failed to {{action}} container: {{error}}", - "containerRemoved": "Container {{name}} removed", - "failedToRemoveContainer": "Failed to remove container: {{error}}", - "image": "Image:", + "noContainersMatchFilters": "필터 조건에 맞는 컨테이너가 없습니다.", + "noContainersMatchFiltersHint": "검색 또는 필터 설정을 조정해 보세요.", + "containerStarted": "컨테이너 {{name}} 시작됨", + "failedToStartContainer": "컨테이너 시작 실패: {{error}}", + "containerStopped": "컨테이너 {{name}} 가 중지되었습니다.", + "failedToStopContainer": "컨테이너 {{error}}를 중지하는 데 실패했습니다.", + "containerRestarted": "컨테이너 {{name}} 가 재시작되었습니다.", + "failedToRestartContainer": "컨테이너 재시작 실패: {{error}}", + "containerUnpaused": "컨테이너 {{name}} 일시 중지 해제됨", + "containerPaused": "컨테이너 {{name}} 일시 중지됨", + "failedToTogglePauseContainer": "{{action}} 컨테이너에 실패했습니다: {{error}}", + "containerRemoved": "컨테이너 {{name}} 가 제거되었습니다.", + "failedToRemoveContainer": "컨테이너 {{error}}를 제거하는 데 실패했습니다.", + "image": "영상:", "idLabel": "ID:", - "ports": "Ports:", - "noPorts": "None", - "created": "Created:", - "start": "Start", - "stop": "Stop", - "unpause": "Unpause", - "pause": "Pause", - "restart": "Restart", - "removeContainer": "Remove Container", - "confirmRemoveContainer": "Are you sure you want to remove container \"{{name}}\"?", - "runningContainerWarning": "Warning: This container is currently running and will be force-removed.", - "removing": "Removing:", - "containerNotFound": "Container not found", - "backToList": "Back to list", - "logs": "Logs", - "stats": "Stats", - "consoleTab": "Console", - "failedToFetchLogs": "Failed to fetch logs: {{error}}", - "failedToDownloadLogs": "Failed to download logs: {{error}}", - "linesToShow": "Lines to show", - "last50Lines": "Last 50 lines", - "last100Lines": "Last 100 lines", - "last500Lines": "Last 500 lines", - "last1000Lines": "Last 1000 lines", - "allLogs": "All logs", - "showTimestamps": "Show Timestamps", - "autoRefresh": "Auto Refresh", - "filterLogsPlaceholder": "Filter logs...", - "noLogsAvailable": "No logs available" + "ports": "항구:", + "noPorts": "없음", + "created": "생성일:", + "start": "시작", + "stop": "멈추다", + "unpause": "일시 정지 해제", + "pause": "정지시키다", + "restart": "재시작", + "removeContainer": "컨테이너를 제거하세요", + "confirmRemoveContainer": "컨테이너 \"{{name}}\"를 정말로 제거하시겠습니까?", + "runningContainerWarning": "경고: 이 컨테이너는 현재 실행 중이며 강제로 제거될 예정입니다.", + "removing": "풀이:", + "containerNotFound": "컨테이너를 찾을 수 없습니다", + "backToList": "목록으로 돌아가기", + "logs": "로그", + "stats": "통계", + "consoleTab": "콘솔", + "failedToFetchLogs": "로그를 가져오는 데 실패했습니다: {{error}}", + "failedToDownloadLogs": "로그 다운로드 실패: {{error}}", + "linesToShow": "표시할 줄", + "last50Lines": "마지막 50줄", + "last100Lines": "마지막 100줄", + "last500Lines": "마지막 500줄", + "last1000Lines": "마지막 1000줄", + "allLogs": "모든 로그", + "showTimestamps": "타임스탬프 표시", + "autoRefresh": "자동 새로 고침", + "filterLogsPlaceholder": "로그 필터링...", + "noLogsAvailable": "로그 파일이 없습니다." }, "terminal": { - "title": "Terminal", - "connect": "Connect to Host", - "disconnect": "Disconnect", - "clear": "Clear", - "copy": "Copy", - "paste": "Paste", - "find": "Find", - "fullscreen": "Fullscreen", - "splitHorizontal": "Split Horizontal", - "splitVertical": "Split Vertical", - "closePanel": "Close Panel", - "reconnect": "Reconnect", - "sessionEnded": "Session Ended", - "connectionLost": "Connection Lost", - "error": "ERROR: {{message}}", - "disconnected": "Disconnected", - "connectionClosed": "Connection closed", - "connectionError": "Connection error: {{message}}", - "connected": "Connected", - "sshConnected": "SSH connection established", - "authError": "Authentication failed: {{message}}", - "unknownError": "Unknown error occurred", - "messageParseError": "Failed to parse server message", - "websocketError": "WebSocket connection error", - "connecting": "Connecting...", - "reconnecting": "Reconnecting... ({{attempt}}/{{max}})", - "reconnected": "Reconnected successfully", - "maxReconnectAttemptsReached": "Maximum reconnection attempts reached", - "connectionTimeout": "Connection timeout", - "terminalTitle": "Terminal - {{host}}", - "terminalWithPath": "Terminal - {{host}}:{{path}}", - "runTitle": "Running {{command}} - {{host}}", - "totpRequired": "Two-Factor Authentication Required", - "totpCodeLabel": "Verification Code", + "title": "단말기", + "connect": "호스트에 연결", + "disconnect": "연결을 끊으세요", + "clear": "분명한", + "copy": "복사", + "paste": "반죽", + "find": "찾다", + "fullscreen": "전체 화면", + "splitHorizontal": "가로 분할", + "splitVertical": "세로 분할", + "closePanel": "패널 닫기", + "reconnect": "다시 연결", + "sessionEnded": "세션이 종료되었습니다", + "connectionLost": "연결이 끊어졌습니다", + "error": "오류: {{message}}", + "disconnected": "연결이 끊어졌습니다", + "connectionClosed": "연결이 종료되었습니다", + "connectionError": "연결 오류: {{message}}", + "connected": "연결됨", + "sshConnected": "SSH 연결이 설정되었습니다.", + "authError": "인증 실패: {{message}}", + "unknownError": "알 수 없는 오류가 발생했습니다.", + "messageParseError": "서버 메시지를 구문 분석하는 데 실패했습니다.", + "websocketError": "웹소켓 연결 오류", + "connecting": "연결 중...", + "reconnecting": "다시 연결 중... ({{attempt}}/{{max}})", + "reconnected": "성공적으로 다시 연결되었습니다.", + "maxReconnectAttemptsReached": "최대 재연결 시도 횟수에 도달했습니다.", + "connectionTimeout": "연결 시간 초과", + "terminalTitle": "터미널 - {{host}}", + "terminalWithPath": "터미널 - {{host}}:{{path}}", + "runTitle": "{{command}} - {{host}}실행 중", + "totpRequired": "2단계 인증이 필요합니다", + "totpCodeLabel": "인증 코드", "totpPlaceholder": "000000", - "totpVerify": "Verify", - "sudoPasswordPopupTitle": "Insert Password?", - "sudoPasswordPopupHint": "Press Enter to insert, Esc to dismiss", - "sudoPasswordPopupConfirm": "Insert", - "sudoPasswordPopupDismiss": "Dismiss" + "totpVerify": "확인하다", + "sudoPasswordPopupTitle": "비밀번호를 입력하시겠습니까?", + "sudoPasswordPopupHint": "Enter 키를 눌러 삽입하고, Esc 키를 눌러 닫습니다.", + "sudoPasswordPopupConfirm": "끼워 넣다", + "sudoPasswordPopupDismiss": "해고하다" }, "fileManager": { - "title": "File Manager", - "file": "File", - "folder": "Folder", - "connectToSsh": "Connect to SSH to use file operations", - "uploadFile": "Upload File", - "downloadFile": "Download", - "extractArchive": "Extract Archive", - "extractingArchive": "Extracting {{name}}...", - "archiveExtractedSuccessfully": "{{name}} extracted successfully", - "extractFailed": "Extract failed", - "compressFile": "Compress File", - "compressFiles": "Compress Files", - "compressFilesDesc": "Compress {{count}} items into an archive", - "archiveName": "Archive Name", - "enterArchiveName": "Enter archive name...", - "compressionFormat": "Compression Format", - "selectedFiles": "Selected files", - "andMoreFiles": "and {{count}} more...", - "compress": "Compress", - "compressingFiles": "Compressing {{count}} items into {{name}}...", - "filesCompressedSuccessfully": "{{name}} created successfully", - "compressFailed": "Compression failed", - "edit": "Edit", - "preview": "Preview", - "previous": "Previous", - "next": "Next", - "pageXOfY": "Page {{current}} of {{total}}", - "zoomOut": "Zoom Out", - "zoomIn": "Zoom In", - "newFile": "New File", - "newFolder": "New Folder", - "rename": "Rename", - "renameItem": "Rename Item", - "deleteItem": "Delete Item", - "currentPath": "Current Path", - "uploadFileTitle": "Upload File", - "maxFileSize": "Max: 1GB (JSON) / 5GB (Binary) - Large files supported", - "removeFile": "Remove File", - "clickToSelectFile": "Click to select a file", - "chooseFile": "Choose File", - "uploading": "Uploading...", - "downloading": "Downloading...", - "uploadingFile": "Uploading {{name}}...", - "uploadingLargeFile": "Uploading large file {{name}} ({{size}})...", - "downloadingFile": "Downloading {{name}}...", - "creatingFile": "Creating {{name}}...", - "creatingFolder": "Creating {{name}}...", - "deletingItem": "Deleting {{type}} {{name}}...", - "renamingItem": "Renaming {{type}} {{oldName}} to {{newName}}...", - "createNewFile": "Create New File", - "fileName": "File Name", - "creating": "Creating...", - "createFile": "Create File", - "createNewFolder": "Create New Folder", - "folderName": "Folder Name", - "createFolder": "Create Folder", - "warningCannotUndo": "Warning: This action cannot be undone", - "itemPath": "Item Path", - "thisIsDirectory": "This is a directory (will delete recursively)", - "deleting": "Deleting...", - "currentPathLabel": "Current Path", - "newName": "New Name", - "thisIsDirectoryRename": "This is a directory", - "renaming": "Renaming...", - "fileUploadedSuccessfully": "File \"{{name}}\" uploaded successfully", - "failedToUploadFile": "Failed to upload file", - "fileDownloadedSuccessfully": "File \"{{name}}\" downloaded successfully", - "failedToDownloadFile": "Failed to download file", - "noFileContent": "No file content received", - "filePath": "File Path", - "fileCreatedSuccessfully": "File \"{{name}}\" created successfully", - "failedToCreateFile": "Failed to create file", - "folderCreatedSuccessfully": "Folder \"{{name}}\" created successfully", - "failedToCreateFolder": "Failed to create folder", - "failedToCreateItem": "Failed to create item", - "operationFailed": "{{operation}} operation failed for {{name}}: {{error}}", - "failedToResolveSymlink": "Failed to resolve symlink", - "itemDeletedSuccessfully": "{{type}} deleted successfully", - "itemsDeletedSuccessfully": "{{count}} items deleted successfully", - "failedToDeleteItems": "Failed to delete items", - "dragFilesToUpload": "Drop files here to upload", - "emptyFolder": "This folder is empty", - "itemCount": "{{count}} items", - "selectedCount": "{{count}} selected", - "searchFiles": "Search files...", - "upload": "Upload", - "selectHostToStart": "Select a host to start file management", - "failedToConnect": "Failed to connect to SSH", - "failedToLoadDirectory": "Failed to load directory", - "noSSHConnection": "No SSH connection available", - "enterFolderName": "Enter folder name:", - "enterFileName": "Enter file name:", - "copy": "Copy", - "cut": "Cut", - "paste": "Paste", - "copyPath": "Copy Path", - "copyPaths": "Copy Paths", - "delete": "Delete", - "properties": "Properties", - "refresh": "Refresh", - "downloadFiles": "Download {{count}} files to Browser", - "copyFiles": "Copy {{count}} items", - "cutFiles": "Cut {{count}} items", - "deleteFiles": "Delete {{count}} items", - "filesCopiedToClipboard": "{{count}} items copied to clipboard", - "filesCutToClipboard": "{{count}} items cut to clipboard", - "pathCopiedToClipboard": "Path copied to clipboard", - "pathsCopiedToClipboard": "{{count}} paths copied to clipboard", - "failedToCopyPath": "Failed to copy path to clipboard", - "movedItems": "Moved {{count}} items", - "failedToDeleteItem": "Failed to delete item", - "itemRenamedSuccessfully": "{{type}} renamed successfully", - "failedToRenameItem": "Failed to rename item", - "download": "Download", - "permissions": "Permissions", - "size": "Size", - "modified": "Modified", - "path": "Path", - "confirmDelete": "Are you sure you want to delete {{name}}?", - "uploadSuccess": "File uploaded successfully", - "uploadFailed": "File upload failed", - "downloadSuccess": "File downloaded successfully", - "downloadFailed": "File download failed", - "permissionDenied": "Permission denied", - "checkDockerLogs": "Check the Docker logs for detailed error information", - "internalServerError": "Internal server error occurred", - "serverError": "Server Error", - "error": "Error", - "requestFailed": "Request failed with status code", - "unknownFileError": "unknown", - "cannotReadFile": "Cannot read file", - "noSshSessionId": "No SSH session ID available", - "noFilePath": "No file path available", - "noCurrentHost": "No current host available", - "fileSavedSuccessfully": "File saved successfully", - "saveTimeout": "Save operation timed out. The file may have been saved successfully, but the operation took too long to complete. Check the Docker logs for confirmation.", - "failedToSaveFile": "Failed to save file", - "deletedSuccessfully": "deleted successfully", - "connectToServer": "Connect to a Server", - "selectServerToEdit": "Select a server from the sidebar to start editing files", - "fileOperations": "File Operations", - "confirmDeleteMessage": "Are you sure you want to delete {{name}}?", - "confirmDeleteSingleItem": "Are you sure you want to permanently delete \"{{name}}\"?", - "confirmDeleteMultipleItems": "Are you sure you want to permanently delete {{count}} items?", - "confirmDeleteMultipleItemsWithFolders": "Are you sure you want to permanently delete {{count}} items? This includes folders and their contents.", - "confirmDeleteFolder": "Are you sure you want to permanently delete the folder \"{{name}}\" and all its contents?", - "deleteDirectoryWarning": "This will delete the folder and all its contents.", - "actionCannotBeUndone": "This action cannot be undone.", - "permanentDeleteWarning": "This action cannot be undone. The item(s) will be permanently deleted from the server.", - "recent": "Recent", - "pinned": "Pinned", - "folderShortcuts": "Folder Shortcuts", - "noRecentFiles": "No recent files.", - "noPinnedFiles": "No pinned files.", - "enterFolderPath": "Enter folder path", - "noShortcuts": "No shortcuts.", - "searchFilesAndFolders": "Search files and folders...", - "noFilesOrFoldersFound": "No files or folders found.", - "failedToConnectSSH": "Failed to connect to SSH", - "failedToReconnectSSH": "Failed to reconnect SSH session", - "failedToListFiles": "Failed to list files", - "fetchHomeDataTimeout": "Fetch home data timed out", - "sshStatusCheckTimeout": "SSH status check timed out", - "sshReconnectionTimeout": "SSH reconnection timed out", - "saveOperationTimeout": "Save operation timed out", - "cannotSaveFile": "Cannot save file", - "dragSystemFilesToUpload": "Drag system files here to upload", - "dragFilesToWindowToDownload": "Drag files outside window to download", - "openTerminalHere": "Open Terminal Here", - "run": "Run", - "saveToSystem": "Save as...", - "selectLocationToSave": "Select Location to Save", - "openTerminalInFolder": "Open Terminal in This Folder", - "openTerminalInFileLocation": "Open Terminal at File Location", - "terminalWithPath": "Terminal - {{host}}:{{path}}", - "runningFile": "Running - {{file}}", - "onlyRunExecutableFiles": "Can only run executable files", - "noHostSelected": "No host selected", - "starred": "Starred", - "shortcuts": "Shortcuts", - "directories": "Directories", - "removedFromRecentFiles": "Removed \"{{name}}\" from recent files", - "removeFailed": "Remove failed", - "unpinnedSuccessfully": "Unpinned \"{{name}}\" successfully", - "unpinFailed": "Unpin failed", - "removedShortcut": "Removed shortcut \"{{name}}\"", - "removeShortcutFailed": "Remove shortcut failed", - "clearedAllRecentFiles": "Cleared all recent files", - "clearFailed": "Clear failed", - "removeFromRecentFiles": "Remove from recent files", - "clearAllRecentFiles": "Clear all recent files", - "unpinFile": "Unpin file", - "removeShortcut": "Remove shortcut", - "saveFilesToSystem": "Save {{count}} files as...", - "pinFile": "Pin file", - "addToShortcuts": "Add to shortcuts", - "downloadToDefaultLocation": "Download to default location", - "pasteFailed": "Paste failed", - "noUndoableActions": "No undoable actions", - "undoCopySuccess": "Undid copy operation: Deleted {{count}} copied files", - "undoCopyFailedDelete": "Undo failed: Could not delete any copied files", - "undoCopyFailedNoInfo": "Undo failed: Could not find copied file information", - "undoMoveSuccess": "Undid move operation: Moved {{count}} files back to original location", - "undoMoveFailedMove": "Undo failed: Could not move any files back", - "undoMoveFailedNoInfo": "Undo failed: Could not find moved file information", - "undoDeleteNotSupported": "Delete operation cannot be undone: Files have been permanently deleted from server", - "undoTypeNotSupported": "Unsupported undo operation type", - "undoOperationFailed": "Undo operation failed", - "unknownError": "Unknown error", - "enterPath": "Enter path...", - "editPath": "Edit path", - "confirm": "Confirm", - "cancel": "Cancel", - "find": "Find...", - "replaceWith": "Replace with...", - "replace": "Replace", - "replaceAll": "Replace All", - "downloadInstead": "Download Instead", - "keyboardShortcuts": "Keyboard Shortcuts", - "searchAndReplace": "Search & Replace", - "editing": "Editing", - "navigation": "Navigation", - "code": "Code", - "search": "Search", - "findNext": "Find Next", - "findPrevious": "Find Previous", - "save": "Save", - "selectAll": "Select All", - "undo": "Undo", - "redo": "Redo", - "goToLine": "Go to Line", - "moveLineUp": "Move Line Up", - "moveLineDown": "Move Line Down", - "toggleComment": "Toggle Comment", - "indent": "Indent", - "outdent": "Outdent", - "autoComplete": "Auto Complete", - "imageLoadError": "Failed to load image", - "rotate": "Rotate", - "originalSize": "Original Size", - "startTyping": "Start typing...", - "unknownSize": "Unknown size", - "fileIsEmpty": "File is empty", - "largeFileWarning": "Large File Warning", - "largeFileWarningDesc": "This file is {{size}} in size, which may cause performance issues when opened as text.", - "fileNotFoundAndRemoved": "File \"{{name}}\" not found and has been removed from recent/pinned files", - "failedToLoadFile": "Failed to load file: {{error}}", - "serverErrorOccurred": "Server error occurred. Please try again later.", - "autoSaveFailed": "Auto-save failed", - "fileAutoSaved": "File auto-saved", - "moveFileFailed": "Failed to move {{name}}", - "moveOperationFailed": "Move operation failed", - "canOnlyCompareFiles": "Can only compare two files", - "comparingFiles": "Comparing files: {{file1}} and {{file2}}", - "dragFailed": "Drag operation failed", - "filePinnedSuccessfully": "File \"{{name}}\" pinned successfully", - "pinFileFailed": "Failed to pin file", - "fileUnpinnedSuccessfully": "File \"{{name}}\" unpinned successfully", - "unpinFileFailed": "Failed to unpin file", - "shortcutAddedSuccessfully": "Folder shortcut \"{{name}}\" added successfully", - "addShortcutFailed": "Failed to add shortcut", - "operationCompletedSuccessfully": "{{operation}} {{count}} items successfully", - "operationCompleted": "{{operation}} {{count}} items", - "downloadFileSuccess": "File {{name}} downloaded successfully", - "downloadFileFailed": "Download failed", - "moveTo": "Move to {{name}}", - "diffCompareWith": "Diff compare with {{name}}", - "dragOutsideToDownload": "Drag outside window to download ({{count}} files)", - "newFolderDefault": "NewFolder", + "title": "파일 관리자", + "file": "파일", + "folder": "접는 사람", + "connectToSsh": "파일 작업을 사용하려면 SSH에 연결하십시오.", + "uploadFile": "파일 업로드", + "downloadFile": "다운로드", + "extractArchive": "압축 해제", + "extractingArchive": "{{name}}추출 중...", + "archiveExtractedSuccessfully": "{{name}} 추출 성공", + "extractFailed": "추출 실패", + "compressFile": "파일 압축", + "compressFiles": "파일 압축", + "compressFilesDesc": "{{count}} 항목을 아카이브로 압축합니다.", + "archiveName": "아카이브 이름", + "enterArchiveName": "아카이브 이름을 입력하세요...", + "compressionFormat": "압축 형식", + "selectedFiles": "선택된 파일", + "andMoreFiles": "그리고 {{count}} 더 보기...", + "compress": "압박 붕대", + "compressingFiles": "{{count}} 항목을 {{name}}로 압축 중...", + "filesCompressedSuccessfully": "{{name}} 이 성공적으로 생성되었습니다", + "compressFailed": "압축 실패", + "edit": "편집하다", + "preview": "시사", + "previous": "이전의", + "next": "다음", + "pageXOfY": "{{total}}의 페이지 {{current}}", + "zoomOut": "축소하기", + "zoomIn": "확대", + "newFile": "새 파일", + "newFolder": "새 폴더", + "rename": "이름 변경", + "renameItem": "항목 이름 변경", + "deleteItem": "항목 삭제", + "currentPath": "현재 경로", + "uploadFileTitle": "파일 업로드", + "maxFileSize": "최대 용량: 1GB(JSON) / 5GB(바이너리) - 대용량 파일 지원", + "removeFile": "파일 삭제", + "clickToSelectFile": "파일을 선택하려면 클릭하세요", + "chooseFile": "파일을 선택하세요", + "uploading": "업로드 중...", + "downloading": "다운로드 중...", + "uploadingFile": "{{name}}업로드 중...", + "uploadingLargeFile": "대용량 파일 {{name}} ({{size}} ) 업로드 중...", + "downloadingFile": "{{name}}다운로드 중...", + "creatingFile": "{{name}}생성 중...", + "creatingFolder": "{{name}}생성 중...", + "deletingItem": "{{type}} {{name}}삭제 중...", + "renamingItem": "{{type}} {{oldName}} 를 {{newName}}로 이름 변경 중...", + "createNewFile": "새 파일 만들기", + "fileName": "파일 이름", + "creating": "생성 중...", + "createFile": "파일 생성", + "createNewFolder": "새 폴더 만들기", + "folderName": "폴더 이름", + "createFolder": "폴더 생성", + "warningCannotUndo": "경고: 이 작업은 되돌릴 수 없습니다.", + "itemPath": "항목 경로", + "thisIsDirectory": "이것은 디렉토리입니다(재귀적으로 삭제됩니다).", + "deleting": "삭제 중...", + "currentPathLabel": "현재 경로", + "newName": "새로운 이름", + "thisIsDirectoryRename": "이것은 디렉토리입니다.", + "renaming": "이름 변경 중...", + "fileUploadedSuccessfully": "파일 \"{{name}}\"이 성공적으로 업로드되었습니다.", + "failedToUploadFile": "파일 업로드에 실패했습니다", + "fileDownloadedSuccessfully": "파일 \"{{name}}\"이 성공적으로 다운로드되었습니다.", + "failedToDownloadFile": "파일 다운로드에 실패했습니다", + "noFileContent": "파일 내용이 수신되지 않았습니다.", + "filePath": "파일 경로", + "fileCreatedSuccessfully": "파일 \"{{name}}\"이 성공적으로 생성되었습니다.", + "failedToCreateFile": "파일 생성에 실패했습니다.", + "folderCreatedSuccessfully": "폴더 \"{{name}}\"이 성공적으로 생성되었습니다.", + "failedToCreateFolder": "폴더 생성에 실패했습니다", + "failedToCreateItem": "아이템 생성에 실패했습니다", + "operationFailed": "{{operation}} 작업이 {{name}}에 대해 실패했습니다 : {{error}}", + "failedToResolveSymlink": "심볼릭 링크를 해결할 수 없습니다.", + "itemDeletedSuccessfully": "{{type}} 성공적으로 삭제되었습니다", + "itemsDeletedSuccessfully": "{{count}} 항목이 성공적으로 삭제되었습니다", + "failedToDeleteItems": "항목 삭제에 실패했습니다", + "dragFilesToUpload": "파일을 여기에 드롭하여 업로드하세요", + "emptyFolder": "이 폴더는 비어 있습니다", + "itemCount": "{{count}} 항목", + "selectedCount": "{{count}} 선택됨", + "searchFiles": "파일을 검색하세요...", + "upload": "업로드", + "selectHostToStart": "파일 관리를 시작할 호스트를 선택하십시오.", + "failedToConnect": "SSH 연결에 실패했습니다.", + "failedToLoadDirectory": "디렉토리를 불러오는 데 실패했습니다.", + "noSSHConnection": "SSH 연결을 사용할 수 없습니다.", + "enterFolderName": "폴더 이름을 입력하세요:", + "enterFileName": "파일 이름을 입력하세요:", + "copy": "복사", + "cut": "자르다", + "paste": "반죽", + "copyPath": "복사 경로", + "copyPaths": "복사 경로", + "delete": "삭제", + "properties": "속성", + "refresh": "새로 고치다", + "downloadFiles": "브라우저로 {{count}} 파일을 다운로드하세요", + "copyFiles": "{{count}} 항목을 복사하세요", + "cutFiles": "{{count}} 항목을 잘라내세요", + "deleteFiles": "{{count}} 항목을 삭제합니다.", + "filesCopiedToClipboard": "{{count}} 항목이 클립보드에 복사되었습니다", + "filesCutToClipboard": "{{count}} 항목을 클립보드에 복사합니다", + "pathCopiedToClipboard": "경로가 클립보드에 복사되었습니다", + "pathsCopiedToClipboard": "{{count}} 경로가 클립보드에 복사되었습니다", + "failedToCopyPath": "클립보드에 경로를 복사하는 데 실패했습니다.", + "movedItems": "{{count}} 항목을 이동했습니다.", + "failedToDeleteItem": "항목 삭제에 실패했습니다", + "itemRenamedSuccessfully": "{{type}} 이름이 성공적으로 변경되었습니다", + "failedToRenameItem": "항목 이름 변경에 실패했습니다", + "download": "다운로드", + "permissions": "권한", + "size": "크기", + "modified": "수정됨", + "path": "길", + "confirmDelete": "{{name}}를 정말로 삭제하시겠습니까?", + "uploadSuccess": "파일 업로드 완료", + "uploadFailed": "파일 업로드 실패", + "downloadSuccess": "파일 다운로드 완료", + "downloadFailed": "파일 다운로드 실패", + "permissionDenied": "권한이 거부되었습니다", + "checkDockerLogs": "자세한 오류 정보는 Docker 로그를 확인하세요.", + "internalServerError": "내부 서버 오류가 발생했습니다.", + "serverError": "서버 오류", + "error": "오류", + "requestFailed": "요청이 상태 코드와 함께 실패했습니다.", + "unknownFileError": "알려지지 않은", + "cannotReadFile": "파일을 읽을 수 없습니다", + "noSshSessionId": "SSH 세션 ID를 사용할 수 없습니다.", + "noFilePath": "파일 경로를 사용할 수 없습니다.", + "noCurrentHost": "현재 사용 가능한 호스트가 없습니다.", + "fileSavedSuccessfully": "파일이 성공적으로 저장되었습니다.", + "saveTimeout": "저장 작업 시간이 초과되었습니다. 파일은 성공적으로 저장되었을 수 있지만, 작업 완료에 너무 오랜 시간이 걸렸습니다. Docker 로그를 확인하여 확인하십시오.", + "failedToSaveFile": "파일 저장에 실패했습니다", + "deletedSuccessfully": "성공적으로 삭제되었습니다", + "connectToServer": "서버에 연결", + "selectServerToEdit": "사이드바에서 서버를 선택하여 파일 편집을 시작하세요.", + "fileOperations": "파일 작업", + "confirmDeleteMessage": "{{name}}를 정말로 삭제하시겠습니까?", + "confirmDeleteSingleItem": "\"{{name}}\"을 영구적으로 삭제하시겠습니까?", + "confirmDeleteMultipleItems": "{{count}} 항목을 영구적으로 삭제하시겠습니까?", + "confirmDeleteMultipleItemsWithFolders": "{{count}} 항목을 영구적으로 삭제하시겠습니까? 폴더와 그 내용물이 모두 포함됩니다.", + "confirmDeleteFolder": "폴더 \"{{name}}\"와 그 안의 모든 내용을 영구적으로 삭제하시겠습니까?", + "deleteDirectoryWarning": "이렇게 하면 폴더와 그 안에 있는 모든 내용이 삭제됩니다.", + "actionCannotBeUndone": "이 작업은 되돌릴 수 없습니다.", + "permanentDeleteWarning": "이 작업은 되돌릴 수 없습니다. 해당 항목은 서버에서 영구적으로 삭제됩니다.", + "recent": "최근의", + "pinned": "고정됨", + "folderShortcuts": "폴더 바로가기", + "noRecentFiles": "최근 파일이 없습니다.", + "noPinnedFiles": "고정된 파일이 없습니다.", + "enterFolderPath": "폴더 경로를 입력하세요", + "noShortcuts": "지름길은 없다.", + "searchFilesAndFolders": "파일 및 폴더 검색...", + "noFilesOrFoldersFound": "파일이나 폴더를 찾을 수 없습니다.", + "failedToConnectSSH": "SSH 연결에 실패했습니다.", + "failedToReconnectSSH": "SSH 세션 재연결에 실패했습니다.", + "failedToListFiles": "파일 목록을 불러오는 데 실패했습니다.", + "fetchHomeDataTimeout": "홈 데이터 가져오기 시간 초과", + "sshStatusCheckTimeout": "SSH 상태 확인 시간 초과", + "sshReconnectionTimeout": "SSH 재연결 시간 초과", + "saveOperationTimeout": "저장 작업 시간이 초과되었습니다.", + "cannotSaveFile": "파일을 저장할 수 없습니다", + "dragSystemFilesToUpload": "시스템 파일을 여기에 드래그하여 업로드하세요.", + "dragFilesToWindowToDownload": "파일을 창 밖으로 드래그하여 다운로드하세요.", + "openTerminalHere": "터미널을 여기에서 여세요", + "run": "달리다", + "saveToSystem": "다른 이름으로 저장...", + "selectLocationToSave": "저장할 위치를 선택하세요", + "openTerminalInFolder": "이 폴더에서 터미널을 엽니다.", + "openTerminalInFileLocation": "해당 파일 위치에서 터미널을 엽니다.", + "terminalWithPath": "터미널 - {{host}}:{{path}}", + "runningFile": "실행 중 - {{file}}", + "onlyRunExecutableFiles": "실행 파일만 실행할 수 있습니다.", + "noHostSelected": "호스트가 선택되지 않았습니다.", + "starred": "별표", + "shortcuts": "바로가기", + "directories": "디렉토리", + "removedFromRecentFiles": "최근 파일에서 \"{{name}}\"를 제거했습니다.", + "removeFailed": "제거 실패", + "unpinnedSuccessfully": "\"{{name}}\" 고정 해제 성공", + "unpinFailed": "핀 해제 실패", + "removedShortcut": "바로가기 \"{{name}}\"를 제거했습니다.", + "removeShortcutFailed": "바로가기 제거 실패", + "clearedAllRecentFiles": "최근 파일을 모두 삭제했습니다.", + "clearFailed": "지우기 실패", + "removeFromRecentFiles": "최근 파일에서 삭제", + "clearAllRecentFiles": "최근 파일을 모두 삭제합니다.", + "unpinFile": "파일 고정 해제", + "removeShortcut": "바로가기 제거", + "saveFilesToSystem": "{{count}} 파일을 다음과 같이 저장하세요...", + "pinFile": "핀 파일", + "addToShortcuts": "바로가기에 추가", + "downloadToDefaultLocation": "기본 위치로 다운로드", + "pasteFailed": "붙여넣기 실패", + "noUndoableActions": "되돌릴 수 없는 작업", + "undoCopySuccess": "실행 취소된 복사 작업: {{count}} 개의 복사된 파일이 삭제되었습니다.", + "undoCopyFailedDelete": "실행 취소 실패: 복사된 파일을 삭제할 수 없습니다.", + "undoCopyFailedNoInfo": "실행 취소 실패: 복사된 파일 정보를 찾을 수 없습니다.", + "undoMoveSuccess": "이동 취소 작업: {{count}} 파일을 원래 위치로 되돌렸습니다.", + "undoMoveFailedMove": "실행 취소 실패: 파일을 되돌릴 수 없습니다.", + "undoMoveFailedNoInfo": "실행 취소 실패: 이동된 파일 정보를 찾을 수 없습니다.", + "undoDeleteNotSupported": "삭제 작업은 되돌릴 수 없습니다. 파일이 서버에서 영구적으로 삭제되었습니다.", + "undoTypeNotSupported": "지원되지 않는 실행 취소 작업 유형", + "undoOperationFailed": "실행 취소 작업이 실패했습니다.", + "unknownError": "알 수 없는 오류", + "enterPath": "경로를 입력하세요...", + "editPath": "경로 편집", + "confirm": "확인하다", + "cancel": "취소", + "find": "찾다...", + "replaceWith": "다음으로 대체하세요...", + "replace": "바꾸다", + "replaceAll": "모두 교체", + "downloadInstead": "대신 다운로드하세요", + "keyboardShortcuts": "키보드 단축키", + "searchAndReplace": "검색 및 바꾸기", + "editing": "편집", + "navigation": "항해", + "code": "암호", + "search": "찾다", + "findNext": "다음 찾기", + "findPrevious": "이전 찾기", + "save": "구하다", + "selectAll": "모두 선택", + "undo": "끄르다", + "redo": "다시 하다", + "goToLine": "라인으로 이동", + "moveLineUp": "이동 라인", + "moveLineDown": "줄을 아래로 이동", + "toggleComment": "댓글 토글", + "indent": "톱니 모양", + "outdent": "외치수", + "autoComplete": "자동 완성", + "imageLoadError": "이미지를 불러오는 데 실패했습니다.", + "rotate": "회전", + "originalSize": "원본 크기", + "startTyping": "입력을 시작하세요...", + "unknownSize": "크기 미상", + "fileIsEmpty": "파일이 비어 있습니다", + "largeFileWarning": "대용량 파일 경고", + "largeFileWarningDesc": "이 파일의 크기는 {{size}} 이므로 텍스트 모드로 열면 성능 문제가 발생할 수 있습니다.", + "fileNotFoundAndRemoved": "파일 \"{{name}}\"을(를) 찾을 수 없어 최근/고정된 파일 목록에서 제거되었습니다.", + "failedToLoadFile": "파일 로드 실패: {{error}}", + "serverErrorOccurred": "서버 오류가 발생했습니다. 나중에 다시 시도해 주세요.", + "autoSaveFailed": "자동 저장 실패", + "fileAutoSaved": "파일이 자동 저장되었습니다", + "moveFileFailed": "{{name}}를 이동하는 데 실패했습니다.", + "moveOperationFailed": "이동 작업이 실패했습니다.", + "canOnlyCompareFiles": "두 파일만 비교할 수 있습니다.", + "comparingFiles": "파일 비교: {{file1}} 및 {{file2}}", + "dragFailed": "드래그 작업이 실패했습니다.", + "filePinnedSuccessfully": "파일 \"{{name}}\"이 성공적으로 고정되었습니다.", + "pinFileFailed": "파일 고정 실패", + "fileUnpinnedSuccessfully": "파일 \"{{name}}\"이 성공적으로 고정 해제되었습니다.", + "unpinFileFailed": "파일 고정 해제에 실패했습니다.", + "shortcutAddedSuccessfully": "폴더 바로가기 \"{{name}}\"가 성공적으로 추가되었습니다.", + "addShortcutFailed": "바로가기 추가에 실패했습니다", + "operationCompletedSuccessfully": "{{operation}} {{count}} 항목이 성공적으로 완료되었습니다", + "operationCompleted": "{{operation}} {{count}} 항목", + "downloadFileSuccess": "파일 {{name}} 이 성공적으로 다운로드되었습니다.", + "downloadFileFailed": "다운로드 실패", + "moveTo": "{{name}}로 이동", + "diffCompareWith": "{{name}}와 차이점을 비교합니다.", + "dragOutsideToDownload": "다운로드하려면 창 바깥쪽으로 드래그하세요({{count}} 파일).", + "newFolderDefault": "새 폴더", "newFileDefault": "NewFile.txt", - "successfullyMovedItems": "Successfully moved {{count}} items to {{target}}", - "move": "Move", - "searchInFile": "Search in file (Ctrl+F)", - "showKeyboardShortcuts": "Show keyboard shortcuts", - "startWritingMarkdown": "Start writing your markdown content...", - "loadingFileComparison": "Loading file comparison...", - "reload": "Reload", - "compare": "Compare", - "sideBySide": "Side by Side", - "inline": "Inline", - "fileComparison": "File Comparison: {{file1}} vs {{file2}}", - "fileTooLarge": "File too large: {{error}}", - "sshConnectionFailed": "SSH connection failed. Please check your connection to {{name}} ({{ip}}:{{port}})", - "loadFileFailed": "Failed to load file: {{error}}", - "connectedSuccessfully": "Connected successfully", - "totpVerificationFailed": "TOTP verification failed", - "verificationCodePrompt": "Verification code:", - "changePermissions": "Change Permissions", - "changePermissionsDesc": "Modify file permissions for", - "currentPermissions": "Current Permissions", - "newPermissions": "New Permissions", - "owner": "Owner", - "group": "Group", - "others": "Others", - "read": "Read", - "write": "Write", - "execute": "Execute", - "permissionsChangedSuccessfully": "Permissions changed successfully", - "failedToChangePermissions": "Failed to change permissions" + "successfullyMovedItems": "{{count}} 항목을 {{target}}로 성공적으로 이동했습니다.", + "move": "이동하다", + "searchInFile": "파일에서 검색(Ctrl+F)", + "showKeyboardShortcuts": "키보드 단축키 표시", + "startWritingMarkdown": "마크다운 콘텐츠 작성을 시작하세요...", + "loadingFileComparison": "파일 비교 로딩 중...", + "reload": "재장전", + "compare": "비교하다", + "sideBySide": "나란히", + "inline": "인라인", + "fileComparison": "파일 비교: {{file1}} vs {{file2}}", + "fileTooLarge": "파일 크기가 너무 큽니다: {{error}}", + "sshConnectionFailed": "SSH 연결에 실패했습니다. {{name}} ({{ip}}:{{port}})에 대한 연결을 확인하십시오.", + "loadFileFailed": "파일 로드 실패: {{error}}", + "connectedSuccessfully": "성공적으로 연결되었습니다", + "totpVerificationFailed": "TOTP 인증 실패", + "verificationCodePrompt": "인증 코드:", + "changePermissions": "권한 변경", + "changePermissionsDesc": "파일 권한을 수정하세요", + "currentPermissions": "현재 권한", + "newPermissions": "새로운 권한", + "owner": "소유자", + "group": "그룹", + "others": "기타", + "read": "읽다", + "write": "쓰다", + "execute": "실행하다", + "permissionsChangedSuccessfully": "권한이 성공적으로 변경되었습니다.", + "failedToChangePermissions": "권한 변경에 실패했습니다" }, "tunnel": { - "noTunnelsConfigured": "No Tunnels Configured", - "configureTunnelsInHostSettings": "Configure tunnel connections in the Host Manager to get started" + "noTunnelsConfigured": "구성된 터널이 없습니다", + "configureTunnelsInHostSettings": "시작하려면 호스트 관리자에서 터널 연결을 구성하십시오." }, "tunnels": { - "title": "SSH Tunnels", - "noSshTunnels": "No SSH Tunnels", - "createFirstTunnelMessage": "You haven't created any SSH tunnels yet. Configure tunnel connections in the Host Manager to get started.", - "connected": "Connected", - "disconnected": "Disconnected", - "connecting": "Connecting...", - "disconnecting": "Disconnecting...", - "unknownTunnelStatus": "Unknown", - "statusUnknown": "Unknown", - "unknown": "Unknown", - "error": "Error", - "failed": "Failed", - "retrying": "Retrying", - "waiting": "Waiting", - "waitingForRetry": "Waiting for retry", - "retryingConnection": "Retrying connection", - "canceling": "Canceling...", - "connect": "Connect", - "disconnect": "Disconnect", - "cancel": "Cancel", - "port": "Port", - "attempt": "Attempt {{current}} of {{max}}", - "nextRetryIn": "Next retry in {{seconds}} seconds", - "checkDockerLogs": "Check your Docker logs for the error reason, join the", - "orCreate": "or create a ", - "noTunnelConnections": "No tunnel connections configured", - "tunnelConnections": "Tunnel Connections", - "addTunnel": "Add Tunnel", - "editTunnel": "Edit Tunnel", - "deleteTunnel": "Delete Tunnel", - "tunnelName": "Tunnel Name", - "localPort": "Local Port", - "remoteHost": "Remote Host", - "remotePort": "Remote Port", - "autoStart": "Auto Start", - "status": "Status", - "active": "Active", - "inactive": "Inactive", - "start": "Start", - "stop": "Stop", - "restart": "Restart", - "connectionType": "Connection Type", - "local": "Local", - "remote": "Remote", - "dynamic": "Dynamic", - "unknownConnectionStatus": "Unknown", - "portMapping": "Port {{sourcePort}} → {{endpointHost}}:{{endpointPort}}", - "endpointHostNotFound": "Endpoint host not found", - "discord": "Discord", - "githubIssue": "GitHub issue", - "forHelp": "for help" + "title": "SSH 터널", + "noSshTunnels": "SSH 터널 없음", + "createFirstTunnelMessage": "아직 SSH 터널을 생성하지 않았습니다. 시작하려면 호스트 관리자에서 터널 연결을 구성하세요.", + "connected": "연결됨", + "disconnected": "연결이 끊어졌습니다", + "connecting": "연결 중...", + "disconnecting": "연결을 해제하는 중...", + "unknownTunnelStatus": "알려지지 않은", + "statusUnknown": "알려지지 않은", + "unknown": "알려지지 않은", + "error": "오류", + "failed": "실패한", + "retrying": "다시 시도 중", + "waiting": "대기 중", + "waitingForRetry": "재시도 대기 중", + "retryingConnection": "연결을 다시 시도합니다", + "canceling": "취소 중...", + "connect": "연결하다", + "disconnect": "연결을 끊으세요", + "cancel": "취소", + "port": "포트", + "attempt": "{{max}}의 {{current}} 시도", + "nextRetryIn": "다음 재시도 후 {{seconds}} 초", + "checkDockerLogs": "오류 원인을 확인하려면 Docker 로그를 확인하고, 참여하세요.", + "orCreate": "또는 생성 ", + "noTunnelConnections": "구성된 터널 연결이 없습니다.", + "tunnelConnections": "터널 연결", + "addTunnel": "터널 추가", + "editTunnel": "터널 편집", + "deleteTunnel": "터널 삭제", + "tunnelName": "터널 이름", + "localPort": "현지 항구", + "remoteHost": "원격 호스트", + "remotePort": "원격 포트", + "autoStart": "자동 시작", + "status": "상태", + "active": "활동적인", + "inactive": "비활성화됨", + "start": "시작", + "stop": "멈추다", + "restart": "재시작", + "connectionType": "연결 유형", + "local": "현지의", + "remote": "원격", + "dynamic": "동적", + "unknownConnectionStatus": "알려지지 않은", + "portMapping": "포트 {{sourcePort}} → {{endpointHost}}:{{endpointPort}}", + "endpointHostNotFound": "엔드포인트 호스트를 찾을 수 없습니다.", + "discord": "불화", + "githubIssue": "GitHub 이슈", + "forHelp": "도움을 요청합니다" }, "serverStats": { - "title": "Server Statistics", + "title": "서버 통계", "cpu": "CPU", - "memory": "Memory", - "disk": "Disk", - "network": "Network", - "uptime": "Uptime", - "loadAverage": "Avg: {{avg1}}, {{avg5}}, {{avg15}}", - "processes": "Processes", - "connections": "Connections", - "usage": "Usage", - "available": "Available", - "total": "Total", - "free": "Free", - "used": "Used", - "percentage": "Percentage", - "refreshStatusAndMetrics": "Refresh status and metrics", - "refreshStatus": "Refresh Status", - "fileManagerAlreadyOpen": "File Manager already open for this host", - "openFileManager": "Open File Manager", + "memory": "메모리", + "disk": "디스크", + "network": "회로망", + "uptime": "가동 시간", + "loadAverage": "평균: {{avg1}}, {{avg5}}, {{avg15}}", + "processes": "프로세스", + "connections": "사이", + "usage": "용법", + "available": "사용 가능", + "total": "총", + "free": "무료", + "used": "사용된", + "percentage": "백분율", + "refreshStatusAndMetrics": "상태 및 지표 새로 고침", + "refreshStatus": "상태 새로 고침", + "fileManagerAlreadyOpen": "이 호스트에 대해 파일 관리자가 이미 열려 있습니다.", + "openFileManager": "파일 관리자 열기", "cpuCores_one": "{{count}} CPU", - "cpuCores_other": "{{count}} CPUs", - "naCpus": "N/A CPU(s)", - "loadAverageNA": "Avg: N/A", - "cpuUsage": "CPU Usage", - "memoryUsage": "Memory Usage", - "diskUsage": "Disk Usage", - "rootStorageSpace": "Root Storage Space", - "of": "of", - "feedbackMessage": "Have ideas for what should come next for server management? Share them on", - "failedToFetchHostConfig": "Failed to fetch host configuration", - "failedToFetchStatus": "Failed to fetch server status", - "failedToFetchMetrics": "Failed to fetch server metrics", - "failedToFetchHomeData": "Failed to fetch home data", - "loadingMetrics": "Loading metrics...", - "connecting": "Connecting...", - "refreshing": "Refreshing...", - "serverOffline": "Server Offline", - "cannotFetchMetrics": "Cannot fetch metrics from offline server", - "totpRequired": "TOTP Authentication Required", - "totpUnavailable": "Server Stats unavailable for TOTP-enabled servers", - "totpVerified": "TOTP verified, metrics collection started", - "totpFailed": "TOTP verification failed", - "totpInvalidCode": "Invalid verification code", - "totpCancelled": "Metrics collection cancelled", - "authenticationFailed": "Authentication failed", - "noneAuthNotSupported": "Server Stats does not support 'none' authentication type.", - "load": "Load", - "editLayout": "Edit Layout", - "cancelEdit": "Cancel", - "addWidget": "Add Widget", - "saveLayout": "Save Layout", - "unsavedChanges": "Unsaved changes", - "layoutSaved": "Layout saved successfully", - "failedToSaveLayout": "Failed to save layout", - "systemInfo": "System Information", - "hostname": "Hostname", - "operatingSystem": "Operating System", - "kernel": "Kernel", - "totalUptime": "Total Uptime", - "seconds": "seconds", - "networkInterfaces": "Network Interfaces", - "noInterfacesFound": "No network interfaces found", - "totalProcesses": "Total Processes", - "running": "Running", - "noProcessesFound": "No processes found", - "loginStats": "SSH Login Statistics", - "totalLogins": "Total Logins", - "uniqueIPs": "Unique IPs", - "recentSuccessfulLogins": "Recent Successful Logins", - "recentFailedAttempts": "Recent Failed Attempts", - "noRecentLoginData": "No recent login data", - "from": "from", - "quickActions": "Quick Actions", - "executeQuickAction": "Execute {{name}}", - "executingQuickAction": "Executing {{name}}...", - "quickActionSuccess": "{{name}} completed successfully", - "quickActionFailed": "{{name}} failed", - "quickActionError": "Failed to execute {{name}}" + "cpuCores_other": "{{count}} CPU", + "naCpus": "해당 없음 CPU(들)", + "loadAverageNA": "평균: 해당 없음", + "cpuUsage": "CPU 사용량", + "memoryUsage": "메모리 사용량", + "diskUsage": "디스크 사용량", + "rootStorageSpace": "루트 저장 공간", + "of": "~의", + "feedbackMessage": "서버 관리의 다음 단계에 대한 아이디어가 있으신가요? 공유해 주세요!", + "failedToFetchHostConfig": "호스트 구성을 가져오는 데 실패했습니다.", + "failedToFetchStatus": "서버 상태를 가져오는 데 실패했습니다.", + "failedToFetchMetrics": "서버 메트릭을 가져오는 데 실패했습니다.", + "failedToFetchHomeData": "홈 데이터를 가져오는 데 실패했습니다.", + "loadingMetrics": "지표를 불러오는 중...", + "connecting": "연결 중...", + "refreshing": "상쾌한...", + "serverOffline": "서버 오프라인", + "cannotFetchMetrics": "오프라인 서버에서 메트릭을 가져올 수 없습니다.", + "totpRequired": "TOTP 인증이 필요합니다", + "totpUnavailable": "TOTP가 활성화된 서버에서는 서버 통계를 사용할 수 없습니다.", + "totpVerified": "TOTP 인증 완료, 지표 수집 시작됨", + "totpFailed": "TOTP 인증 실패", + "totpInvalidCode": "잘못된 인증 코드입니다.", + "totpCancelled": "데이터 수집이 취소되었습니다", + "authenticationFailed": "인증 실패", + "noneAuthNotSupported": "서버 통계는 '없음' 인증 유형을 지원하지 않습니다.", + "load": "짐", + "editLayout": "레이아웃 편집", + "cancelEdit": "취소", + "addWidget": "위젯 추가", + "saveLayout": "레이아웃 저장", + "unsavedChanges": "저장되지 않은 변경 사항", + "layoutSaved": "레이아웃이 성공적으로 저장되었습니다.", + "failedToSaveLayout": "레이아웃 저장에 실패했습니다", + "systemInfo": "시스템 정보", + "hostname": "호스트 이름", + "operatingSystem": "운영 체제", + "kernel": "핵심", + "totalUptime": "총 가동 시간", + "seconds": "초", + "networkInterfaces": "네트워크 인터페이스", + "noInterfacesFound": "네트워크 인터페이스를 찾을 수 없습니다.", + "totalProcesses": "전체 프로세스", + "running": "달리기", + "noProcessesFound": "프로세스를 찾을 수 없습니다.", + "loginStats": "SSH 로그인 통계", + "totalLogins": "총 로그인 횟수", + "uniqueIPs": "고유 IP", + "recentSuccessfulLogins": "최근 성공적인 로그인", + "recentFailedAttempts": "최근 실패한 시도들", + "noRecentLoginData": "최근 로그인 데이터가 없습니다.", + "from": "~에서", + "quickActions": "빠른 조치", + "executeQuickAction": "{{name}}를 실행하세요", + "executingQuickAction": "{{name}}실행 중...", + "quickActionSuccess": "{{name}} 성공적으로 완료되었습니다", + "quickActionFailed": "{{name}} 실패", + "quickActionError": "{{name}}실행에 실패했습니다." }, "auth": { - "tagline": "SSH SERVER MANAGER", - "description": "Secure, powerful, and intuitive SSH connection management", - "welcomeBack": "Welcome back to TERMIX", - "createAccount": "Create your TERMIX account", - "continueExternal": "Continue with external provider", - "loginTitle": "Login to Termix", - "registerTitle": "Create Account", - "loginButton": "Login", - "registerButton": "Register", - "forgotPassword": "Forgot Password?", - "rememberMe": "Remember Me", - "noAccount": "Don't have an account?", - "hasAccount": "Already have an account?", - "loginSuccess": "Login successful", - "loginFailed": "Login failed", - "registerSuccess": "Registration successful", - "registerFailed": "Registration failed", - "logoutSuccess": "Logged out successfully", - "invalidCredentials": "Invalid username or password", - "accountCreated": "Account created successfully", - "passwordReset": "Password reset link sent", - "twoFactorAuth": "Two-Factor Authentication", - "enterCode": "Enter verification code", - "backupCode": "Or use backup code", - "verifyCode": "Verify Code", - "redirectingToApp": "Redirecting to app...", - "enableTwoFactor": "Enable Two-Factor Authentication", - "disableTwoFactor": "Disable Two-Factor Authentication", - "scanQRCode": "Scan this QR code with your authenticator app", - "backupCodes": "Backup Codes", - "saveBackupCodes": "Save these backup codes in a safe place", - "twoFactorEnabledSuccess": "Two-factor authentication enabled successfully!", - "twoFactorDisabled": "Two-factor authentication disabled", - "newBackupCodesGenerated": "New backup codes generated", - "backupCodesDownloaded": "Backup codes downloaded", - "pleaseEnterSixDigitCode": "Please enter a 6-digit code", - "invalidVerificationCode": "Invalid verification code", - "failedToDisableTotp": "Failed to disable TOTP", - "failedToGenerateBackupCodes": "Failed to generate backup codes", - "enterPassword": "Enter your password", - "lockedOidcAuth": "Locked (OIDC Auth)", - "twoFactorTitle": "Two-Factor Authentication", - "twoFactorProtected": "Your account is protected with two-factor authentication", - "twoFactorActive": "Two-factor authentication is currently active on your account", - "disable2FA": "Disable 2FA", - "disableTwoFactorWarning": "Disabling two-factor authentication will make your account less secure", - "passwordOrTotpCode": "Password or TOTP Code", - "or": "Or", - "generateNewBackupCodesText": "Generate new backup codes if you've lost your existing ones", - "generateNewBackupCodes": "Generate New Backup Codes", - "yourBackupCodes": "Your Backup Codes", - "download": "Download", - "setupTwoFactorTitle": "Set Up Two-Factor Authentication", - "sshAuthenticationRequired": "SSH Authentication Required", - "sshNoKeyboardInteractive": "Keyboard-Interactive Authentication Unavailable", - "sshAuthenticationFailed": "Authentication Failed", - "sshAuthenticationTimeout": "Authentication Timeout", - "sshNoKeyboardInteractiveDescription": "The server does not support keyboard-interactive authentication. Please provide your password or SSH key.", - "sshAuthFailedDescription": "The provided credentials were incorrect. Please try again with valid credentials.", - "sshTimeoutDescription": "The authentication attempt timed out. Please try again.", - "sshProvideCredentialsDescription": "Please provide your SSH credentials to connect to this server.", - "sshPasswordDescription": "Enter the password for this SSH connection.", - "sshKeyPasswordDescription": "If your SSH key is encrypted, enter the passphrase here.", - "step1ScanQR": "Step 1: Scan the QR code with your authenticator app", - "manualEntryCode": "Manual Entry Code", - "cannotScanQRText": "If you can't scan the QR code, enter this code manually in your authenticator app", - "nextVerifyCode": "Next: Verify Code", - "verifyAuthenticator": "Verify Your Authenticator", - "step2EnterCode": "Step 2: Enter the 6-digit code from your authenticator app", - "verificationCode": "Verification Code", - "back": "Back", - "verifyAndEnable": "Verify and Enable", - "saveBackupCodesTitle": "Save Your Backup Codes", - "step3StoreCodesSecurely": "Step 3: Store these codes in a safe place", - "importantBackupCodesText": "Save these backup codes in a secure location. You can use them to access your account if you lose your authenticator device.", - "completeSetup": "Complete Setup", - "notEnabledText": "Two-factor authentication adds an extra layer of security by requiring a code from your authenticator app when signing in.", - "enableTwoFactorButton": "Enable Two-Factor Authentication", - "addExtraSecurityLayer": "Add an extra layer of security to your account", - "firstUser": "First User", - "firstUserMessage": "You are the first user and will be made an admin. You can view admin settings in the sidebar user dropdown. If you think this is a mistake, check the docker logs, or create a GitHub issue.", - "external": "External", - "loginWithExternal": "Login with External Provider", - "loginWithExternalDesc": "Login using your configured external identity provider", - "externalNotSupportedInElectron": "External authentication is not supported in the Electron app yet. Please use the web version for OIDC login.", - "resetPasswordButton": "Reset Password", - "sendResetCode": "Send Reset Code", - "resetCodeDesc": "Enter your username to receive a password reset code. The code will be logged in the docker container logs.", - "resetCode": "Reset Code", - "verifyCodeButton": "Verify Code", - "enterResetCode": "Enter the 6-digit code from the docker container logs for user:", - "goToLogin": "Go to Login", - "newPassword": "New Password", - "confirmNewPassword": "Confirm Password", - "enterNewPassword": "Enter your new password for user:", - "signUp": "Sign Up", - "mobileApp": "Mobile App", - "loggingInToMobileApp": "Logging in to the mobile app", - "desktopApp": "Desktop App", - "loggingInToDesktopApp": "Logging in to the desktop app", - "loggingInToDesktopAppViaWeb": "Logging in to the desktop app via web interface", - "loadingServer": "Loading server...", - "authenticating": "Authenticating...", - "dataLossWarning": "Resetting your password this way will delete all your saved SSH hosts, credentials, and other encrypted data. This action cannot be undone. Only use this if you have forgotten your password and are not logged in.", - "authenticationDisabled": "Authentication Disabled", - "authenticationDisabledDesc": "All authentication methods are currently disabled. Please contact your administrator.", - "passwordResetSuccess": "Password Reset Successful", - "passwordResetSuccessDesc": "Your password has been reset successfully. You can now log in with your new password." + "tagline": "SSH 서버 관리자", + "description": "안전하고 강력하며 직관적인 SSH 연결 관리", + "welcomeBack": "TERMIX에 다시 오신 것을 환영합니다", + "createAccount": "TERMIX 계정을 만드세요", + "continueExternal": "외부 제공업체와 계속 진행하세요", + "loginTitle": "Termix에 로그인하세요", + "registerTitle": "계정 생성", + "loginButton": "로그인", + "registerButton": "등록하다", + "forgotPassword": "비밀번호를 잊으셨나요?", + "rememberMe": "나를 기억해줘", + "noAccount": "계정이 없으신가요?", + "hasAccount": "이미 계정이 있으신가요?", + "loginSuccess": "로그인 성공", + "loginFailed": "로그인 실패", + "registerSuccess": "등록 완료", + "registerFailed": "등록 실패", + "logoutSuccess": "성공적으로 로그아웃되었습니다.", + "invalidCredentials": "잘못된 사용자 이름 또는 비밀번호입니다.", + "accountCreated": "계정이 성공적으로 생성되었습니다.", + "passwordReset": "비밀번호 재설정 링크가 전송되었습니다.", + "twoFactorAuth": "2단계 인증", + "enterCode": "인증 코드를 입력하세요", + "backupCode": "또는 백업 코드를 사용하세요.", + "verifyCode": "확인 코드", + "redirectingToApp": "앱으로 리디렉션 중...", + "enableTwoFactor": "2단계 인증을 활성화하세요", + "disableTwoFactor": "2단계 인증 비활성화", + "scanQRCode": "인증 앱으로 이 QR 코드를 스캔하세요.", + "backupCodes": "백업 코드", + "saveBackupCodes": "이 백업 코드를 안전한 곳에 보관하세요.", + "twoFactorEnabledSuccess": "2단계 인증이 성공적으로 활성화되었습니다!", + "twoFactorDisabled": "2단계 인증이 비활성화되었습니다.", + "newBackupCodesGenerated": "새로운 백업 코드가 생성되었습니다.", + "backupCodesDownloaded": "다운로드된 백업 코드", + "pleaseEnterSixDigitCode": "6자리 코드를 입력해 주세요.", + "invalidVerificationCode": "잘못된 인증 코드입니다.", + "failedToDisableTotp": "TOTP를 비활성화하는 데 실패했습니다.", + "failedToGenerateBackupCodes": "백업 코드 생성에 실패했습니다.", + "enterPassword": "비밀번호를 입력하세요", + "lockedOidcAuth": "잠금됨(OIDC 인증)", + "twoFactorTitle": "2단계 인증", + "twoFactorProtected": "귀하의 계정은 2단계 인증으로 보호됩니다.", + "twoFactorActive": "현재 계정에 2단계 인증이 활성화되어 있습니다.", + "disable2FA": "2단계 인증 비활성화", + "disableTwoFactorWarning": "2단계 인증을 비활성화하면 계정 보안이 취약해집니다.", + "passwordOrTotpCode": "비밀번호 또는 TOTP 코드", + "or": "또는", + "generateNewBackupCodesText": "기존 백업 코드를 분실한 경우 새 백업 코드를 생성하세요.", + "generateNewBackupCodes": "새 백업 코드 생성", + "yourBackupCodes": "백업 코드", + "download": "다운로드", + "setupTwoFactorTitle": "2단계 인증을 설정하세요", + "sshAuthenticationRequired": "SSH 인증이 필요합니다", + "sshNoKeyboardInteractive": "키보드 기반 인증을 사용할 수 없습니다.", + "sshAuthenticationFailed": "인증 실패", + "sshAuthenticationTimeout": "인증 시간 초과", + "sshNoKeyboardInteractiveDescription": "서버는 키보드 입력 방식의 인증을 지원하지 않습니다. 비밀번호 또는 SSH 키를 입력해 주세요.", + "sshAuthFailedDescription": "입력하신 정보가 올바르지 않습니다. 유효한 정보를 입력하여 다시 시도해 주세요.", + "sshTimeoutDescription": "인증 시도 시간이 초과되었습니다. 다시 시도해 주세요.", + "sshProvideCredentialsDescription": "이 서버에 연결하려면 SSH 자격 증명을 입력하세요.", + "sshPasswordDescription": "이 SSH 연결에 사용할 비밀번호를 입력하십시오.", + "sshKeyPasswordDescription": "SSH 키가 암호화된 경우 여기에 암호를 입력하십시오.", + "step1ScanQR": "1단계: 인증 앱으로 QR 코드를 스캔하세요.", + "manualEntryCode": "수동 입력 코드", + "cannotScanQRText": "QR 코드를 스캔할 수 없는 경우, 인증 앱에 이 코드를 직접 입력하세요.", + "nextVerifyCode": "다음: 코드 확인", + "verifyAuthenticator": "인증 도구를 확인하세요", + "step2EnterCode": "2단계: 인증 앱에서 받은 6자리 코드를 입력하세요.", + "verificationCode": "인증 코드", + "back": "뒤쪽에", + "verifyAndEnable": "확인 및 활성화", + "saveBackupCodesTitle": "백업 코드를 저장하세요", + "step3StoreCodesSecurely": "3단계: 이 코드들을 안전한 곳에 보관하세요", + "importantBackupCodesText": "이 백업 코드를 안전한 곳에 보관하세요. 인증 기기를 분실했을 경우 이 백업 코드를 사용하여 계정에 접속할 수 있습니다.", + "completeSetup": "완전 설치", + "notEnabledText": "2단계 인증은 로그인 시 인증 앱에서 전송된 코드를 요구하여 보안을 한층 강화합니다.", + "enableTwoFactorButton": "2단계 인증을 활성화하세요", + "addExtraSecurityLayer": "계정에 보안을 강화하세요", + "firstUser": "첫 번째 사용자", + "firstUserMessage": "당신은 첫 번째 사용자이며 관리자 권한을 부여받았습니다. 사이드바의 사용자 드롭다운 메뉴에서 관리자 설정을 확인할 수 있습니다. 오류라고 생각되면 Docker 로그를 확인하거나 GitHub에 이슈를 등록해 주세요.", + "external": "외부", + "loginWithExternal": "외부 제공업체로 로그인", + "loginWithExternalDesc": "구성된 외부 ID 공급자를 사용하여 로그인하세요.", + "externalNotSupportedInElectron": "Electron 앱에서는 아직 외부 인증이 지원되지 않습니다. OIDC 로그인을 위해서는 웹 버전을 이용해 주세요.", + "resetPasswordButton": "비밀번호 재설정", + "sendResetCode": "재설정 코드 전송", + "resetCodeDesc": "사용자 이름을 입력하여 비밀번호 재설정 코드를 받으세요. 코드는 도커 컨테이너 로그에 기록됩니다.", + "resetCode": "재설정 코드", + "verifyCodeButton": "확인 코드", + "enterResetCode": "Docker 컨테이너 로그에서 사용자에 대한 6자리 코드를 입력하십시오.", + "goToLogin": "로그인으로 이동", + "newPassword": "새 비밀번호", + "confirmNewPassword": "비밀번호 확인", + "enterNewPassword": "사용자 계정의 새 비밀번호를 입력하세요:", + "signUp": "회원가입", + "mobileApp": "모바일 앱", + "loggingInToMobileApp": "모바일 앱 로그인", + "desktopApp": "데스크톱 앱", + "loggingInToDesktopApp": "데스크톱 앱에 로그인하기", + "loggingInToDesktopAppViaWeb": "웹 인터페이스를 통해 데스크톱 앱에 로그인하기", + "loadingServer": "서버 로딩 중...", + "authenticating": "인증 중...", + "dataLossWarning": "이러한 방식으로 비밀번호를 재설정하면 저장된 모든 SSH 호스트, 자격 증명 및 기타 암호화된 데이터가 삭제됩니다. 이 작업은 되돌릴 수 없습니다. 비밀번호를 잊어버렸고 로그인되어 있지 않은 경우에만 이 방법을 사용하십시오.", + "authenticationDisabled": "인증 비활성화됨", + "authenticationDisabledDesc": "현재 모든 인증 방식이 비활성화되어 있습니다. 관리자에게 문의하십시오.", + "passwordResetSuccess": "비밀번호 재설정 성공", + "passwordResetSuccessDesc": "비밀번호가 성공적으로 재설정되었습니다. 이제 새 비밀번호로 로그인할 수 있습니다." }, "errors": { - "notFound": "Page not found", - "unauthorized": "Unauthorized access", - "forbidden": "Access forbidden", - "serverError": "Server error", - "networkError": "Network error", - "databaseConnection": "Could not connect to the database", - "unknownError": "Unknown error", - "loginFailed": "Login failed", - "failedPasswordReset": "Failed to initiate password reset", - "failedVerifyCode": "Failed to verify reset code", - "failedCompleteReset": "Failed to complete password reset", - "invalidTotpCode": "Invalid TOTP code", - "failedOidcLogin": "Failed to start OIDC login", - "failedUserInfo": "Failed to get user info after OIDC login", - "oidcAuthFailed": "OIDC authentication failed", - "noTokenReceived": "No token received from login", - "invalidAuthUrl": "Invalid authorization URL received from backend", - "invalidInput": "Invalid input", - "requiredField": "This field is required", - "minLength": "Minimum length is {{min}}", - "maxLength": "Maximum length is {{max}}", - "invalidEmail": "Invalid email address", - "passwordMismatch": "Passwords do not match", - "passwordLoginDisabled": "Username/password login is currently disabled", - "weakPassword": "Password is too weak", - "usernameExists": "Username already exists", - "emailExists": "Email already exists", - "loadFailed": "Failed to load data", - "saveError": "Failed to save", - "sessionExpired": "Session expired - please log in again" + "notFound": "페이지를 찾을 수 없습니다", + "unauthorized": "무단 접근", + "forbidden": "접근 금지", + "serverError": "서버 오류", + "networkError": "네트워크 오류", + "databaseConnection": "데이터베이스에 연결할 수 없습니다.", + "unknownError": "알 수 없는 오류", + "loginFailed": "로그인 실패", + "failedPasswordReset": "비밀번호 재설정을 시작하는 데 실패했습니다.", + "failedVerifyCode": "재설정 코드 확인에 실패했습니다.", + "failedCompleteReset": "비밀번호 재설정을 완료하지 못했습니다.", + "invalidTotpCode": "잘못된 TOTP 코드", + "failedOidcLogin": "OIDC 로그인 시작에 실패했습니다.", + "failedUserInfo": "OIDC 로그인 후 사용자 정보를 가져오는 데 실패했습니다.", + "oidcAuthFailed": "OIDC 인증에 실패했습니다.", + "noTokenReceived": "로그인에서 토큰을 받지 못했습니다.", + "invalidAuthUrl": "백엔드에서 잘못된 인증 URL을 수신했습니다.", + "invalidInput": "잘못된 입력입니다", + "requiredField": "이 항목은 필수 입력 사항입니다.", + "minLength": "최소 길이는 {{min}}입니다.", + "maxLength": "최대 길이는 {{max}}입니다.", + "invalidEmail": "잘못된 이메일 주소입니다.", + "passwordMismatch": "비밀번호가 일치하지 않습니다", + "passwordLoginDisabled": "현재 사용자 이름/비밀번호 로그인 기능이 비활성화되어 있습니다.", + "weakPassword": "비밀번호가 너무 취약합니다", + "usernameExists": "해당 사용자 이름이 이미 존재합니다.", + "emailExists": "이메일이 이미 존재합니다.", + "loadFailed": "데이터를 불러오는 데 실패했습니다.", + "saveError": "저장에 실패했습니다", + "sessionExpired": "세션이 만료되었습니다. 다시 로그인해 주세요." }, "messages": { - "saveSuccess": "Saved successfully", - "saveError": "Failed to save", - "deleteSuccess": "Deleted successfully", - "deleteError": "Failed to delete", - "updateSuccess": "Updated successfully", - "updateError": "Failed to update", - "copySuccess": "Copied to clipboard", - "copyError": "Failed to copy", - "copiedToClipboard": "{{item}} copied to clipboard", - "connectionEstablished": "Connection established", - "connectionClosed": "Connection closed", - "reconnecting": "Reconnecting...", - "processing": "Processing...", - "pleaseWait": "Please wait...", - "registrationDisabled": "New account registration is currently disabled by an admin. Please log in or contact an administrator.", - "databaseConnected": "Database connected successfully", - "databaseConnectionFailed": "Failed to connect to the database server", - "checkServerConnection": "Please check your server connection and try again", - "resetCodeSent": "Reset code sent to Docker logs", - "codeVerified": "Code verified successfully", - "passwordResetSuccess": "Password reset successfully", - "loginSuccess": "Login successful", - "registrationSuccess": "Registration successful" + "saveSuccess": "성공적으로 저장되었습니다", + "saveError": "저장에 실패했습니다", + "deleteSuccess": "성공적으로 삭제되었습니다", + "deleteError": "삭제에 실패했습니다", + "updateSuccess": "성공적으로 업데이트되었습니다.", + "updateError": "업데이트에 실패했습니다", + "copySuccess": "클립보드에 복사됨", + "copyError": "복사에 실패했습니다", + "copiedToClipboard": "{{item}} 클립보드에 복사됨", + "connectionEstablished": "연결이 설정되었습니다.", + "connectionClosed": "연결이 종료되었습니다", + "reconnecting": "다시 연결 중...", + "processing": "처리 중...", + "pleaseWait": "기다리세요...", + "registrationDisabled": "관리자에 의해 신규 계정 등록이 현재 비활성화되었습니다. 로그인하시거나 관리자에게 문의해 주세요.", + "databaseConnected": "데이터베이스 연결에 성공했습니다.", + "databaseConnectionFailed": "데이터베이스 서버에 연결하지 못했습니다.", + "checkServerConnection": "서버 연결 상태를 확인하고 다시 시도해 주세요.", + "resetCodeSent": "Docker 로그에 전송된 재설정 코드", + "codeVerified": "코드 검증이 완료되었습니다.", + "passwordResetSuccess": "비밀번호 재설정 성공", + "loginSuccess": "로그인 성공", + "registrationSuccess": "등록 완료" }, "profile": { - "title": "User Profile", - "description": "Manage your account settings and security", - "security": "Security", - "changePassword": "Change Password", - "twoFactorAuth": "Two-Factor Authentication", - "accountInfo": "Account Information", - "role": "Role", - "admin": "Administrator", - "user": "User", - "authMethod": "Authentication Method", - "local": "Local", - "external": "External (OIDC)", - "externalAndLocal": "Dual Auth", - "selectPreferredLanguage": "Select your preferred language for the interface", - "fileColorCoding": "File Color Coding", - "fileColorCodingDesc": "Color-code files by type: folders (red), files (blue), symlinks (green)", - "commandAutocomplete": "Command Autocomplete", - "commandAutocompleteDesc": "Enable Tab key autocomplete suggestions for terminal commands based on your command history", - "defaultSnippetFoldersCollapsed": "Collapse Snippet Folders by Default", - "defaultSnippetFoldersCollapsedDesc": "When enabled, all snippet folders will be collapsed when you open the snippets tab", - "terminalSyntaxHighlighting": "Terminal Syntax Highlighting", - "showHostTags": "Show Host Tags", - "showHostTagsDesc": "Display tags under each host in the sidebar. Disable to hide all tags.", - "account": "Account", - "appearance": "Appearance", - "languageLocalization": "Language & Localization", - "fileManagerSettings": "File Manager", - "terminalSettings": "Terminal", - "hostSidebarSettings": "Host & Sidebar", - "snippetsSettings": "Snippets", - "currentPassword": "Current Password", - "passwordChangedSuccess": "Password changed successfully! Please log in again.", - "failedToChangePassword": "Failed to change password. Please check your current password and try again.", - "theme": "Theme", - "themeLight": "Light", - "themeDark": "Dark", - "themeSystem": "System", - "appearanceDesc": "Select the color theme for the application", - "terminalSyntaxHighlightingDesc": "Automatically highlight commands, paths, IPs, and log levels in terminal output" + "title": "사용자 프로필", + "description": "계정 설정 및 보안을 관리하세요", + "security": "보안", + "changePassword": "비밀번호 변경", + "twoFactorAuth": "2단계 인증", + "accountInfo": "계정 정보", + "role": "역할", + "admin": "관리자", + "user": "사용자", + "authMethod": "인증 방법", + "local": "현지의", + "external": "외부(OIDC)", + "externalAndLocal": "이중 인증", + "selectPreferredLanguage": "인터페이스에 사용할 언어를 선택하세요.", + "fileColorCoding": "파일 색상 코드", + "fileColorCodingDesc": "파일 유형별로 색상을 지정합니다. 폴더(빨간색), 파일(파란색), 심볼릭 링크(녹색)", + "commandAutocomplete": "명령어 자동 완성", + "commandAutocompleteDesc": "명령어 기록을 기반으로 터미널 명령어에 대한 Tab 키 자동 완성 제안을 활성화합니다.", + "defaultSnippetFoldersCollapsed": "기본적으로 스니펫 폴더를 접으세요", + "defaultSnippetFoldersCollapsedDesc": "이 옵션을 활성화하면 스니펫 탭을 열 때 모든 스니펫 폴더가 접혀 표시됩니다.", + "terminalSyntaxHighlighting": "터미널 구문 강조 표시", + "showHostTags": "호스트 태그 표시", + "showHostTagsDesc": "사이드바의 각 호스트 아래에 태그를 표시합니다. 이 기능을 비활성화하면 모든 태그가 숨겨집니다.", + "account": "계정", + "appearance": "모습", + "languageLocalization": "언어 및 현지화", + "fileManagerSettings": "파일 관리자", + "terminalSettings": "단말기", + "hostSidebarSettings": "호스트 및 사이드바", + "snippetsSettings": "짧은 발췌", + "currentPassword": "현재 비밀번호", + "passwordChangedSuccess": "비밀번호가 변경되었습니다! 다시 로그인해 주세요.", + "failedToChangePassword": "비밀번호 변경에 실패했습니다. 현재 비밀번호를 확인하고 다시 시도해 주세요.", + "theme": "주제", + "themeLight": "빛", + "themeDark": "어두운", + "themeSystem": "체계", + "appearanceDesc": "애플리케이션의 색상 테마를 선택하세요", + "terminalSyntaxHighlightingDesc": "터미널 출력에서 명령어, 경로, IP 주소 및 로그 레벨을 자동으로 강조 표시합니다." }, "user": { - "failedToLoadVersionInfo": "Failed to load version information" + "failedToLoadVersionInfo": "버전 정보를 불러오는 데 실패했습니다." }, "placeholders": { "enterCode": "000000", @@ -1901,502 +1901,502 @@ "port": "22", "maxRetries": "3", "retryInterval": "10", - "language": "Language", - "username": "username", - "hostname": "host name", - "folder": "folder", - "password": "password", - "keyPassword": "key password", - "sudoPassword": "sudo password (optional)", - "notes": "add notes about this host...", - "expirationDate": "Select expiration date", - "pastePrivateKey": "Paste your private key here...", - "pastePublicKey": "Paste your public key here...", - "credentialName": "My SSH Server", - "description": "SSH credential description", - "searchCredentials": "Search credentials by name, username, or tags...", - "sshConfig": "endpoint ssh configuration", - "homePath": "/home", - "clientId": "your-client-id", - "clientSecret": "your-client-secret", + "language": "언어", + "username": "사용자 이름", + "hostname": "호스트 이름", + "folder": "접는 사람", + "password": "비밀번호", + "keyPassword": "키 비밀번호", + "sudoPassword": "sudo 비밀번호 (선택 사항)", + "notes": "이 호스트에 대한 메모를 추가하세요...", + "expirationDate": "만료일을 선택하세요", + "pastePrivateKey": "여기에 개인 키를 붙여넣으세요...", + "pastePublicKey": "여기에 공개 키를 붙여넣으세요...", + "credentialName": "내 SSH 서버", + "description": "SSH 자격 증명 설명", + "searchCredentials": "이름, 사용자 이름 또는 태그로 자격 증명을 검색하세요...", + "sshConfig": "엔드포인트 SSH 구성", + "homePath": "/집", + "clientId": "클라이언트 ID", + "clientSecret": "고객 비밀", "authUrl": "https://your-provider.com/application/o/authorize/", "redirectUrl": "https://your-provider.com/application/o/termix/", "tokenUrl": "https://your-provider.com/application/o/token/", - "userIdField": "sub", - "usernameField": "name", - "scopes": "openid email profile", + "userIdField": "보결", + "usernameField": "이름", + "scopes": "오픈아이드 이메일 프로필", "userinfoUrl": "https://your-provider.com/application/o/userinfo/", - "enterUsername": "Enter username to make admin", - "searchHosts": "Search hosts by name, username, IP, folder, tags...", - "enterPassword": "Enter your password", - "totpCode": "6-digit TOTP code", - "searchHostsAny": "Search hosts (try: tag:prod, user:root, ip:192.168)...", - "confirmPassword": "Enter your password to confirm", - "typeHere": "Type here", - "fileName": "Enter file name (e.g., example.txt)", - "folderName": "Enter folder name", - "fullPath": "Enter full path to item", - "currentPath": "Enter current path to item", - "newName": "Enter new name", + "enterUsername": "관리자 권한을 얻으려면 사용자 이름을 입력하세요.", + "searchHosts": "호스트를 이름, 사용자 이름, IP 주소, 폴더, 태그 등으로 검색하세요.", + "enterPassword": "비밀번호를 입력하세요", + "totpCode": "6자리 TOTP 코드", + "searchHostsAny": "호스트를 검색합니다(시도: tag:prod, user:root, ip:192.168)...", + "confirmPassword": "비밀번호를 입력하여 확인하세요.", + "typeHere": "여기에 입력하세요", + "fileName": "파일 이름을 입력하세요 (예: example.txt)", + "folderName": "폴더 이름을 입력하세요", + "fullPath": "해당 항목의 전체 경로를 입력하세요", + "currentPath": "해당 항목의 현재 경로를 입력하세요", + "newName": "새 이름을 입력하세요", "socks5Host": "127.0.0.1", - "socks5Username": "proxy username", - "socks5Password": "proxy password", - "socks5PresetName": "e.g., Work VPN Chain", - "socks5PresetDescription": "e.g., Proxy chain for accessing work servers", - "moshCommand": "mosh user@server", + "socks5Username": "프록시 사용자 이름", + "socks5Password": "프록시 비밀번호", + "socks5PresetName": "예: 업무용 VPN 체인", + "socks5PresetDescription": "예: 업무 서버 접속을 위한 프록시 체인", + "moshCommand": "mosh 사용자@서버", "defaultPort": "22", "defaultEndpointPort": "224", "defaultMaxRetries": "3", "defaultRetryInterval": "10" }, "leftSidebar": { - "failedToLoadHosts": "Failed to load hosts", - "noFolder": "No Folder", - "passwordRequired": "Password is required", - "failedToDeleteAccount": "Failed to delete account", - "failedToMakeUserAdmin": "Failed to make user admin", - "userIsNowAdmin": "User {{username}} is now an admin", - "removeAdminConfirm": "Are you sure you want to remove admin status from {{username}}?", - "deleteUserConfirm": "Are you sure you want to delete user {{username}}? This action cannot be undone.", - "deleteAccount": "Delete Account", - "closeDeleteAccount": "Close Delete Account", - "deleteAccountWarning": "This action cannot be undone. This will permanently delete your account and all associated data.", - "deleteAccountWarningDetails": "Deleting your account will remove all your data including SSH hosts, configurations, and settings. This action is irreversible.", - "deleteAccountWarningShort": "This action is not reversible and will permanently delete your account.", - "cannotDeleteAccount": "Cannot Delete Account", - "lastAdminWarning": "You are the last admin user. You cannot delete your account as this would leave the system without any administrators. Please make another user an admin first, or contact system support.", - "confirmPassword": "Confirm Password", - "deleting": "Deleting...", - "cancel": "Cancel" + "failedToLoadHosts": "호스트를 로드하는 데 실패했습니다.", + "noFolder": "폴더 없음", + "passwordRequired": "비밀번호가 필요합니다", + "failedToDeleteAccount": "계정 삭제에 실패했습니다", + "failedToMakeUserAdmin": "사용자를 관리자로 만드는 데 실패했습니다.", + "userIsNowAdmin": "사용자 {{username}} 님이 이제 관리자입니다.", + "removeAdminConfirm": "{{username}}에서 관리자 권한을 제거하시겠습니까?", + "deleteUserConfirm": "사용자 {{username}}를 삭제하시겠습니까? 이 작업은 되돌릴 수 없습니다.", + "deleteAccount": "계정 삭제", + "closeDeleteAccount": "닫기 계정 삭제", + "deleteAccountWarning": "이 작업은 되돌릴 수 없습니다. 계정과 관련된 모든 데이터가 영구적으로 삭제됩니다.", + "deleteAccountWarningDetails": "계정을 삭제하면 SSH 호스트, 구성 및 설정 등 모든 데이터가 삭제됩니다. 이 작업은 되돌릴 수 없습니다.", + "deleteAccountWarningShort": "이 조치는 되돌릴 수 없으며 계정이 영구적으로 삭제됩니다.", + "cannotDeleteAccount": "계정을 삭제할 수 없습니다", + "lastAdminWarning": "현재 관리자 계정은 귀하에게만 남아 있습니다. 계정을 삭제하시면 시스템에 관리자가 한 명도 남지 않게 되므로 삭제할 수 없습니다. 다른 사용자를 관리자로 지정하시거나 시스템 지원팀에 문의해 주십시오.", + "confirmPassword": "비밀번호 확인", + "deleting": "삭제 중...", + "cancel": "취소" }, "interface": { - "sidebar": "Sidebar", - "toggleSidebar": "Toggle Sidebar", - "close": "Close", - "online": "Online", - "offline": "Offline", - "maintenance": "Maintenance", - "degraded": "Degraded", - "noTunnelConnections": "No tunnel connections configured", - "discord": "Discord", - "connectToSshForOperations": "Connect to SSH to use file operations", - "uploadFile": "Upload File", - "newFile": "New File", - "newFolder": "New Folder", - "rename": "Rename", - "deleteItem": "Delete Item", - "createNewFile": "Create New File", - "createNewFolder": "Create New Folder", - "renameItem": "Rename Item", - "clickToSelectFile": "Click to select a file", - "noSshHosts": "No SSH Hosts", - "sshHosts": "SSH Hosts", - "importSshHosts": "Import SSH Hosts from JSON", - "clientId": "Client ID", - "clientSecret": "Client Secret", - "error": "Error", - "warning": "Warning", - "deleteAccount": "Delete Account", - "closeDeleteAccount": "Close Delete Account", - "cannotDeleteAccount": "Cannot Delete Account", - "confirmPassword": "Confirm Password", - "deleting": "Deleting...", - "externalAuth": "External Authentication (OIDC)", - "configureExternalProvider": "Configure external identity provider for", - "waitingForRetry": "Waiting for retry", - "retryingConnection": "Retrying connection", - "resetSplitSizes": "Reset split sizes", - "sshManagerAlreadyOpen": "SSH Manager already open", - "disabledDuringSplitScreen": "Disabled during split screen", - "unknown": "Unknown", - "connected": "Connected", - "disconnected": "Disconnected", - "maxRetriesExhausted": "Max retries exhausted", - "endpointHostNotFound": "Endpoint host not found", - "administrator": "Administrator", - "user": "User", - "external": "External", - "local": "Local", - "saving": "Saving...", - "saveConfiguration": "Save Configuration", - "loading": "Loading...", - "refresh": "Refresh", - "adding": "Adding...", - "makeAdmin": "Make Admin", - "verifying": "Verifying...", - "verifyAndEnable": "Verify and Enable", - "secretKey": "Secret key", - "totpQrCode": "TOTP QR Code", - "passwordRequired": "Password is required when using password authentication", - "sshKeyRequired": "SSH Private Key is required when using key authentication", - "keyTypeRequired": "Key Type is required when using key authentication", - "validSshConfigRequired": "Must select a valid SSH configuration from the list", - "updateHost": "Update Host", - "addHost": "Add Host", - "editHost": "Edit Host", - "pinConnection": "Pin Connection", - "authentication": "Authentication", - "password": "Password", - "key": "Key", - "sshPrivateKey": "SSH Private Key", - "keyPassword": "Key Password", - "keyType": "Key Type", - "enableTerminal": "Enable Terminal", - "enableTunnel": "Enable Tunnel", - "enableFileManager": "Enable File Manager", - "defaultPath": "Default Path", - "tunnelConnections": "Tunnel Connections", - "maxRetries": "Max Retries", - "upload": "Upload", - "updateKey": "Update Key", - "productionFolder": "Production", - "databaseServer": "Database Server", - "developmentServer": "Development Server", - "developmentFolder": "Development", - "webServerProduction": "Web Server - Production", - "unknownError": "Unknown error", - "failedToInitiatePasswordReset": "Failed to initiate password reset", - "failedToVerifyResetCode": "Failed to verify reset code", - "failedToCompletePasswordReset": "Failed to complete password reset", - "invalidTotpCode": "Invalid TOTP code", - "failedToStartOidcLogin": "Failed to start OIDC login", - "failedToGetUserInfoAfterOidc": "Failed to get user info after OIDC login", - "loginWithExternalProvider": "Login with external provider", - "loginWithExternal": "Login with External Provider", - "sendResetCode": "Send Reset Code", - "verifyCode": "Verify Code", - "resetPassword": "Reset Password", - "login": "Login", - "signUp": "Sign Up", - "failedToUpdateOidcConfig": "Failed to update OIDC configuration", - "failedToMakeUserAdmin": "Failed to make user admin", - "failedToStartTotpSetup": "Failed to start TOTP setup", - "invalidVerificationCode": "Invalid verification code", - "failedToDisableTotp": "Failed to disable TOTP", - "failedToGenerateBackupCodes": "Failed to generate backup codes" + "sidebar": "사이드바", + "toggleSidebar": "사이드바 토글", + "close": "닫다", + "online": "온라인", + "offline": "오프라인", + "maintenance": "유지", + "degraded": "타락한", + "noTunnelConnections": "구성된 터널 연결이 없습니다.", + "discord": "불화", + "connectToSshForOperations": "파일 작업을 사용하려면 SSH에 연결하십시오.", + "uploadFile": "파일 업로드", + "newFile": "새 파일", + "newFolder": "새 폴더", + "rename": "이름 변경", + "deleteItem": "항목 삭제", + "createNewFile": "새 파일 만들기", + "createNewFolder": "새 폴더 만들기", + "renameItem": "항목 이름 변경", + "clickToSelectFile": "파일을 선택하려면 클릭하세요", + "noSshHosts": "SSH 호스트 없음", + "sshHosts": "SSH 호스트", + "importSshHosts": "JSON에서 SSH 호스트 가져오기", + "clientId": "클라이언트 ID", + "clientSecret": "고객 비밀", + "error": "오류", + "warning": "경고", + "deleteAccount": "계정 삭제", + "closeDeleteAccount": "닫기 계정 삭제", + "cannotDeleteAccount": "계정을 삭제할 수 없습니다", + "confirmPassword": "비밀번호 확인", + "deleting": "삭제 중...", + "externalAuth": "외부 인증(OIDC)", + "configureExternalProvider": "외부 ID 공급자를 구성합니다.", + "waitingForRetry": "재시도 대기 중", + "retryingConnection": "연결을 다시 시도합니다", + "resetSplitSizes": "분할 크기 재설정", + "sshManagerAlreadyOpen": "SSH 관리자가 이미 열려 있습니다.", + "disabledDuringSplitScreen": "화면 분할 중에는 비활성화됨", + "unknown": "알려지지 않은", + "connected": "연결됨", + "disconnected": "연결이 끊어졌습니다", + "maxRetriesExhausted": "최대 재시도 횟수 초과", + "endpointHostNotFound": "엔드포인트 호스트를 찾을 수 없습니다.", + "administrator": "관리자", + "user": "사용자", + "external": "외부", + "local": "현지의", + "saving": "절약...", + "saveConfiguration": "설정 저장", + "loading": "로딩 중...", + "refresh": "새로 고치다", + "adding": "첨가...", + "makeAdmin": "관리자 생성", + "verifying": "확인 중...", + "verifyAndEnable": "확인 및 활성화", + "secretKey": "비밀 키", + "totpQrCode": "TOTP QR 코드", + "passwordRequired": "비밀번호 인증을 사용할 때는 비밀번호가 필요합니다.", + "sshKeyRequired": "키 인증을 사용할 때는 SSH 개인 키가 필요합니다.", + "keyTypeRequired": "키 인증을 사용할 때는 키 유형을 지정해야 합니다.", + "validSshConfigRequired": "목록에서 유효한 SSH 구성을 선택해야 합니다.", + "updateHost": "호스트 업데이트", + "addHost": "호스트 추가", + "editHost": "호스트 편집", + "pinConnection": "핀 연결", + "authentication": "입증", + "password": "비밀번호", + "key": "열쇠", + "sshPrivateKey": "SSH 개인 키", + "keyPassword": "키 비밀번호", + "keyType": "키 유형", + "enableTerminal": "터미널 활성화", + "enableTunnel": "터널 활성화", + "enableFileManager": "파일 관리자 활성화", + "defaultPath": "기본 경로", + "tunnelConnections": "터널 연결", + "maxRetries": "최대 재시도 횟수", + "upload": "업로드", + "updateKey": "업데이트 키", + "productionFolder": "생산", + "databaseServer": "데이터베이스 서버", + "developmentServer": "개발 서버", + "developmentFolder": "개발", + "webServerProduction": "웹 서버 - 운영 환경", + "unknownError": "알 수 없는 오류", + "failedToInitiatePasswordReset": "비밀번호 재설정을 시작하는 데 실패했습니다.", + "failedToVerifyResetCode": "재설정 코드 확인에 실패했습니다.", + "failedToCompletePasswordReset": "비밀번호 재설정을 완료하지 못했습니다.", + "invalidTotpCode": "잘못된 TOTP 코드", + "failedToStartOidcLogin": "OIDC 로그인 시작에 실패했습니다.", + "failedToGetUserInfoAfterOidc": "OIDC 로그인 후 사용자 정보를 가져오는 데 실패했습니다.", + "loginWithExternalProvider": "외부 제공업체로 로그인", + "loginWithExternal": "외부 제공업체로 로그인", + "sendResetCode": "재설정 코드 전송", + "verifyCode": "확인 코드", + "resetPassword": "비밀번호 재설정", + "login": "로그인", + "signUp": "회원가입", + "failedToUpdateOidcConfig": "OIDC 구성 업데이트에 실패했습니다.", + "failedToMakeUserAdmin": "사용자를 관리자로 만드는 데 실패했습니다.", + "failedToStartTotpSetup": "TOTP 설정 시작에 실패했습니다.", + "invalidVerificationCode": "잘못된 인증 코드입니다.", + "failedToDisableTotp": "TOTP를 비활성화하는 데 실패했습니다.", + "failedToGenerateBackupCodes": "백업 코드 생성에 실패했습니다." }, "mobile": { - "selectHostToStart": "Select a host to start your terminal session", - "limitedSupportMessage": "Website mobile support is still in progress. Use the mobile app for a better experience.", - "mobileAppInProgress": "Mobile app is in progress", - "mobileAppInProgressDesc": "We're working on a dedicated mobile app to provide a better experience on mobile devices.", - "viewMobileAppDocs": "Install Mobile App", - "mobileAppDocumentation": "Mobile App Documentation" + "selectHostToStart": "터미널 세션을 시작할 호스트를 선택하세요.", + "limitedSupportMessage": "웹사이트 모바일 지원은 아직 개발 중입니다. 더 나은 경험을 위해 모바일 앱을 이용해 주세요.", + "mobileAppInProgress": "모바일 앱 개발이 진행 중입니다.", + "mobileAppInProgressDesc": "모바일 기기에서 더 나은 경험을 제공하기 위해 전용 모바일 앱을 개발 중입니다.", + "viewMobileAppDocs": "모바일 앱 설치", + "mobileAppDocumentation": "모바일 앱 문서화" }, "dashboard": { - "title": "Dashboard", - "github": "GitHub", - "support": "Support", - "discord": "Discord", - "donate": "Donate", - "serverOverview": "Server Overview", - "version": "Version", - "upToDate": "Up to Date", - "updateAvailable": "Update Available", - "uptime": "Uptime", - "database": "Database", - "healthy": "Healthy", - "error": "Error", - "totalServers": "Total Servers", - "totalTunnels": "Total Tunnels", - "totalCredentials": "Total Credentials", - "recentActivity": "Recent Activity", - "reset": "Reset", - "loadingRecentActivity": "Loading recent activity...", - "noRecentActivity": "No recent activity", - "quickActions": "Quick Actions", - "addHost": "Add Host", - "addCredential": "Add Credential", - "adminSettings": "Admin Settings", - "userProfile": "User Profile", - "serverStats": "Server Stats", - "loadingServerStats": "Loading server stats...", - "noServerData": "No server data available", + "title": "계기반", + "github": "깃허브", + "support": "지원하다", + "discord": "불화", + "donate": "기부하세요", + "serverOverview": "서버 개요", + "version": "버전", + "upToDate": "최신 정보", + "updateAvailable": "업데이트 가능", + "uptime": "가동 시간", + "database": "데이터 베이스", + "healthy": "건강한", + "error": "오류", + "totalServers": "총 서버 수", + "totalTunnels": "토탈 터널", + "totalCredentials": "총 자격 증명", + "recentActivity": "최근 활동", + "reset": "다시 놓기", + "loadingRecentActivity": "최근 활동 불러오는 중...", + "noRecentActivity": "최근 활동 없음", + "quickActions": "빠른 조치", + "addHost": "호스트 추가", + "addCredential": "자격 증명 추가", + "adminSettings": "관리자 설정", + "userProfile": "사용자 프로필", + "serverStats": "서버 통계", + "loadingServerStats": "서버 통계 불러오는 중...", + "noServerData": "서버 데이터가 없습니다.", "cpu": "CPU", - "ram": "RAM", - "notAvailable": "N/A" + "ram": "숫양", + "notAvailable": "해당 없음" }, "rbac": { - "shareHost": "Share Host", - "shareHostTitle": "Share Host Access", - "shareHostDescription": "Grant temporary or permanent access to this host", - "targetUser": "Target User", - "selectUser": "Select a user to share with", - "duration": "Duration", - "durationHours": "Duration (hours)", - "neverExpires": "Never expires", - "permissionLevel": "Permission Level", + "shareHost": "호스트 공유", + "shareHostTitle": "호스트 액세스 공유", + "shareHostDescription": "이 호스트에 대한 임시 또는 영구 액세스 권한을 부여하십시오.", + "targetUser": "대상 사용자", + "selectUser": "공유할 사용자를 선택하세요", + "duration": "지속", + "durationHours": "소요 시간(시간)", + "neverExpires": "만료되지 않습니다", + "permissionLevel": "권한 수준", "permissionLevels": { - "readonly": "Read-Only", - "readonlyDesc": "Can view only, no command input", - "restricted": "Restricted", - "restrictedDesc": "Blocks dangerous commands (passwd, rm -rf, etc.)", - "monitored": "Monitored", - "monitoredDesc": "Records all commands but doesn't block (Recommended)", - "full": "Full Access", - "fullDesc": "No restrictions (Not recommended)" + "readonly": "읽기 전용", + "readonlyDesc": "보기만 가능하며, 명령 입력은 불가능합니다.", + "restricted": "제한된", + "restrictedDesc": "위험한 명령어(passwd, rm -rf 등)를 차단합니다.", + "monitored": "모니터링됨", + "monitoredDesc": "모든 명령을 기록하지만 차단하지는 않습니다(권장).", + "full": "전체 액세스", + "fullDesc": "제한 없음 (권장하지 않음)" }, - "blockedCommands": "Blocked Commands", - "blockedCommandsPlaceholder": "Enter commands to block, e.g., passwd, rm, dd", - "maxSessionDuration": "Max Session Duration (minutes)", - "createTempUser": "Create Temporary User", - "createTempUserDesc": "Creates a restricted user on the server instead of sharing your credentials. Requires sudo access. Most secure option.", - "expiresAt": "Expires At", - "expiresIn": "Expires in {{hours}} hours", - "expired": "Expired", - "grantedBy": "Granted By", - "accessLevel": "Access Level", - "lastAccessed": "Last Accessed", - "accessCount": "Access Count", - "revokeAccess": "Revoke Access", - "confirmRevokeAccess": "Are you sure you want to revoke access for {{username}}?", - "hostSharedSuccessfully": "Host shared successfully with {{username}}", - "hostAccessUpdated": "Host access updated", - "failedToShareHost": "Failed to share host", - "accessRevokedSuccessfully": "Access revoked successfully", - "failedToRevokeAccess": "Failed to revoke access", - "shared": "Shared", - "sharedHosts": "Shared Hosts", - "sharedWithMe": "Shared With Me", - "noSharedHosts": "No hosts shared with you", - "owner": "Owner", - "viewAccessList": "View Access List", - "accessList": "Access List", - "noAccessGranted": "No access has been granted for this host", - "noAccessGrantedMessage": "No users have been granted access to this host yet", - "manageAccessFor": "Manage access for", - "totalAccessRecords": "{{count}} access record(s)", - "neverAccessed": "Never", - "timesAccessed": "{{count}} time(s)", - "daysRemaining": "{{days}} day(s)", - "hoursRemaining": "{{hours}} hour(s)", - "failedToFetchAccessList": "Failed to fetch access list", - "currentAccess": "Current Access", - "securityWarning": "Security Warning", - "securityWarningMessage": "Sharing credentials gives the user full access to perform any operations on the server, including changing passwords and deleting files. Only share with trusted users.", - "tempUserRecommended": "We recommend enabling 'Create Temporary User' for better security.", - "roleManagement": "Role Management", - "manageRoles": "Manage Roles", - "manageRolesFor": "Manage roles for {{username}}", - "assignRole": "Assign Role", - "removeRole": "Remove Role", - "userRoles": "User Roles", - "permissions": "Permissions", - "systemRole": "System Role", - "customRole": "Custom Role", - "roleAssignedSuccessfully": "Role assigned to {{username}} successfully", - "failedToAssignRole": "Failed to assign role", - "roleRemovedSuccessfully": "Role removed from {{username}} successfully", - "failedToRemoveRole": "Failed to remove role", - "cannotRemoveSystemRole": "Cannot remove system role", - "cannotShareWithSelf": "Cannot share host with yourself", - "noCustomRolesToAssign": "No custom roles available. System roles are auto-assigned.", - "credentialSharingWarning": "Credential Authentication Not Supported for Sharing", - "credentialRequired": "Credential is required when sharing a host", - "credentialRequiredDescription": "This host does not use credential-based authentication. In order to share hosts, due to per-user-encryption, the host must use credential based authentication.", - "auditLogs": "Audit Logs", - "viewAuditLogs": "View Audit Logs", - "action": "Action", - "resourceType": "Resource Type", - "resourceName": "Resource Name", - "timestamp": "Timestamp", - "ipAddress": "IP Address", - "userAgent": "User Agent", - "success": "Success", - "failed": "Failed", - "details": "Details", - "noAuditLogs": "No audit logs available", - "sessionRecordings": "Session Recordings", - "viewRecording": "View Recording", - "downloadRecording": "Download Recording", - "dangerousCommand": "Dangerous Command Detected", - "commandBlocked": "Command Blocked", - "terminateSession": "Terminate Session", - "sessionTerminated": "Session terminated by host owner", - "sharedAccessExpired": "Your shared access to this host has expired", - "sharedAccessExpiresIn": "Shared access expires in {{hours}} hours", + "blockedCommands": "차단된 명령", + "blockedCommandsPlaceholder": "차단할 명령어를 입력하세요. 예: passwd, rm, dd", + "maxSessionDuration": "최대 세션 지속 시간(분)", + "createTempUser": "임시 사용자 생성", + "createTempUserDesc": "자격 증명을 공유하는 대신 서버에 제한된 사용자 계정을 생성합니다. sudo 권한이 필요하며, 가장 안전한 옵션입니다.", + "expiresAt": "만료일", + "expiresIn": "{{hours}} 시간 후에 만료됩니다", + "expired": "만료됨", + "grantedBy": "승인자:", + "accessLevel": "접근 수준", + "lastAccessed": "최근 접속일", + "accessCount": "접근 횟수", + "revokeAccess": "접근 권한 취소", + "confirmRevokeAccess": "{{username}}에 대한 접근 권한을 취소하시겠습니까?", + "hostSharedSuccessfully": "호스트가 {{username}}와 성공적으로 공유되었습니다.", + "hostAccessUpdated": "호스트 액세스가 업데이트되었습니다.", + "failedToShareHost": "호스트 공유에 실패했습니다", + "accessRevokedSuccessfully": "접근 권한이 성공적으로 취소되었습니다.", + "failedToRevokeAccess": "접근 권한 취소에 실패했습니다.", + "shared": "공유됨", + "sharedHosts": "공유 호스트", + "sharedWithMe": "나와 공유됨", + "noSharedHosts": "공유된 호스트가 없습니다", + "owner": "소유자", + "viewAccessList": "접근 권한 목록 보기", + "accessList": "액세스 목록", + "noAccessGranted": "이 호스트에 대한 액세스 권한이 부여되지 않았습니다.", + "noAccessGrantedMessage": "아직 이 호스트에 대한 접근 권한이 부여된 사용자는 없습니다.", + "manageAccessFor": "액세스 관리", + "totalAccessRecords": "{{count}} 액세스 레코드(들)", + "neverAccessed": "절대", + "timesAccessed": "{{count}} 시간(초)", + "daysRemaining": "{{days}} 일", + "hoursRemaining": "{{hours}} 시간(초)", + "failedToFetchAccessList": "접근 권한 목록을 가져오는 데 실패했습니다.", + "currentAccess": "현재 액세스", + "securityWarning": "보안 경고", + "securityWarningMessage": "자격 증명을 공유하면 해당 사용자는 비밀번호 변경 및 파일 삭제를 포함하여 서버에서 모든 작업을 수행할 수 있는 완전한 권한을 갖게 됩니다. 신뢰할 수 있는 사용자에게만 공유하십시오.", + "tempUserRecommended": "보안 강화를 위해 '임시 사용자 생성' 기능을 활성화하는 것을 권장합니다.", + "roleManagement": "역할 관리", + "manageRoles": "역할 관리", + "manageRolesFor": "{{username}}에 대한 역할을 관리합니다.", + "assignRole": "역할 할당", + "removeRole": "역할 제거", + "userRoles": "사용자 역할", + "permissions": "권한", + "systemRole": "시스템 역할", + "customRole": "사용자 지정 역할", + "roleAssignedSuccessfully": "{{username}} 에 역할이 성공적으로 할당되었습니다.", + "failedToAssignRole": "역할 할당에 실패했습니다", + "roleRemovedSuccessfully": "{{username}} 에서 역할이 성공적으로 제거되었습니다.", + "failedToRemoveRole": "역할 제거에 실패했습니다", + "cannotRemoveSystemRole": "시스템 역할을 제거할 수 없습니다", + "cannotShareWithSelf": "본인과 호스트를 공유할 수 없습니다.", + "noCustomRolesToAssign": "사용자 지정 역할이 없습니다. 시스템 역할이 자동으로 할당됩니다.", + "credentialSharingWarning": "공유 시 자격 증명 인증이 지원되지 않습니다.", + "credentialRequired": "호스트를 공유할 때는 자격 증명이 필요합니다.", + "credentialRequiredDescription": "이 호스트는 자격 증명 기반 인증을 사용하지 않습니다. 사용자별 암호화를 위해 호스트를 공유하려면 해당 호스트가 자격 증명 기반 인증을 사용해야 합니다.", + "auditLogs": "감사 로그", + "viewAuditLogs": "감사 로그 보기", + "action": "행동", + "resourceType": "리소스 유형", + "resourceName": "리소스 이름", + "timestamp": "타임스탬프", + "ipAddress": "IP 주소", + "userAgent": "사용자 에이전트", + "success": "성공", + "failed": "실패한", + "details": "세부", + "noAuditLogs": "감사 로그를 사용할 수 없습니다.", + "sessionRecordings": "세션 녹화", + "viewRecording": "녹화 영상 보기", + "downloadRecording": "녹화본 다운로드", + "dangerousCommand": "위험한 명령이 감지되었습니다", + "commandBlocked": "명령이 차단되었습니다", + "terminateSession": "세션 종료", + "sessionTerminated": "호스트 소유자에 의해 세션이 종료되었습니다.", + "sharedAccessExpired": "이 호스트에 대한 공유 액세스 권한이 만료되었습니다.", + "sharedAccessExpiresIn": "공유 액세스는 {{hours}} 시간 후에 만료됩니다.", "roles": { - "label": "Roles", - "admin": "Administrator", - "user": "User" + "label": "역할", + "admin": "관리자", + "user": "사용자" }, - "createRole": "Create Role", - "editRole": "Edit Role", - "roleName": "Role Name", - "displayName": "Display Name", - "description": "Description", - "assignRoles": "Assign Roles", - "userRoleAssignment": "User-Role Assignment", - "selectUserPlaceholder": "Select a user", - "searchUsers": "Search users...", - "noUserFound": "No user found", - "currentRoles": "Current Roles", - "noRolesAssigned": "No roles assigned", - "assignNewRole": "Assign New Role", - "selectRolePlaceholder": "Select a role", - "searchRoles": "Search roles...", - "noRoleFound": "No role found", - "assign": "Assign", - "roleCreatedSuccessfully": "Role created successfully", - "roleUpdatedSuccessfully": "Role updated successfully", - "roleDeletedSuccessfully": "Role deleted successfully", - "failedToLoadRoles": "Failed to load roles", - "failedToSaveRole": "Failed to save role", - "failedToDeleteRole": "Failed to delete role", - "roleDisplayNameRequired": "Role display name is required", - "roleNameRequired": "Role name is required", - "roleNameHint": "Use lowercase letters, numbers, underscores, and hyphens only", - "displayNamePlaceholder": "Developer", - "descriptionPlaceholder": "Software developers and engineers", - "confirmDeleteRole": "Delete Role", - "confirmDeleteRoleDescription": "Are you sure you want to delete the role '{{name}}'? This action cannot be undone.", - "confirmRemoveRole": "Remove Role", - "confirmRemoveRoleDescription": "Are you sure you want to remove this role from the user?", - "editRoleDescription": "Update role information", - "createRoleDescription": "Create a new custom role for grouping users", - "assignRolesDescription": "Manage role assignments for users", - "noRoles": "No roles found", - "selectRole": "Select Role", - "type": "Type", - "user": "User", - "role": "Role", - "saveHostFirst": "Save Host First", - "saveHostFirstDescription": "Please save the host before configuring sharing settings.", - "shareWithUser": "Share with User", - "shareWithRole": "Share with Role", - "share": "Share", - "target": "Target", - "expires": "Expires", - "never": "Never", - "noAccessRecords": "No access records found", - "sharedSuccessfully": "Shared successfully", - "failedToShare": "Failed to share", - "confirmRevokeAccessDescription": "Are you sure you want to revoke this access?", - "hours": "hours", - "sharing": "Sharing", - "selectUserAndRole": "Please select both a user and a role", - "view": "View Only", - "viewDesc": "Due to the Termix encryption system, other permission levels will come at a later date" + "createRole": "역할 생성", + "editRole": "역할 편집", + "roleName": "역할 이름", + "displayName": "표시 이름", + "description": "설명", + "assignRoles": "역할 할당", + "userRoleAssignment": "사용자 역할 할당", + "selectUserPlaceholder": "사용자를 선택하세요", + "searchUsers": "사용자 검색...", + "noUserFound": "사용자를 찾을 수 없습니다.", + "currentRoles": "현재 담당 업무", + "noRolesAssigned": "역할이 할당되지 않았습니다.", + "assignNewRole": "새 역할 할당", + "selectRolePlaceholder": "역할을 선택하세요", + "searchRoles": "채용 공고를 검색하세요...", + "noRoleFound": "역할을 찾을 수 없습니다.", + "assign": "양수인", + "roleCreatedSuccessfully": "역할이 성공적으로 생성되었습니다.", + "roleUpdatedSuccessfully": "역할이 성공적으로 업데이트되었습니다.", + "roleDeletedSuccessfully": "역할이 성공적으로 삭제되었습니다.", + "failedToLoadRoles": "역할 불러오기에 실패했습니다", + "failedToSaveRole": "역할 저장에 실패했습니다", + "failedToDeleteRole": "역할 삭제에 실패했습니다", + "roleDisplayNameRequired": "역할 표시 이름은 필수 입력 사항입니다.", + "roleNameRequired": "역할 이름은 필수 입력 사항입니다.", + "roleNameHint": "소문자, 숫자, 밑줄, 하이픈만 사용하십시오.", + "displayNamePlaceholder": "개발자", + "descriptionPlaceholder": "소프트웨어 개발자 및 엔지니어", + "confirmDeleteRole": "역할 삭제", + "confirmDeleteRoleDescription": "'{{name}}' 역할을 삭제하시겠습니까? 이 작업은 되돌릴 수 없습니다.", + "confirmRemoveRole": "역할 제거", + "confirmRemoveRoleDescription": "이 사용자에게서 해당 역할을 제거하시겠습니까?", + "editRoleDescription": "역할 정보 업데이트", + "createRoleDescription": "사용자 그룹화를 위한 새로운 사용자 지정 역할을 생성하세요.", + "assignRolesDescription": "사용자 역할 할당 관리", + "noRoles": "역할을 찾을 수 없습니다.", + "selectRole": "역할 선택", + "type": "유형", + "user": "사용자", + "role": "역할", + "saveHostFirst": "호스트를 먼저 저장하세요", + "saveHostFirstDescription": "공유 설정을 구성하기 전에 호스트를 저장하십시오.", + "shareWithUser": "사용자와 공유", + "shareWithRole": "역할과 공유하기", + "share": "공유하다", + "target": "목표", + "expires": "만료됨", + "never": "절대", + "noAccessRecords": "접근 기록을 찾을 수 없습니다.", + "sharedSuccessfully": "성공적으로 공유되었습니다", + "failedToShare": "공유에 실패했습니다", + "confirmRevokeAccessDescription": "이 접근 권한을 취소하시겠습니까?", + "hours": "시간", + "sharing": "공유하기", + "selectUserAndRole": "사용자와 역할을 모두 선택해 주세요.", + "view": "보기 전용", + "viewDesc": "Termix 암호화 시스템으로 인해 다른 권한 수준은 추후에 제공될 예정입니다." }, "commandPalette": { - "searchPlaceholder": "Search for hosts or quick actions...", - "recentActivity": "Recent Activity", - "navigation": "Navigation", - "addHost": "Add Host", - "addCredential": "Add Credential", - "adminSettings": "Admin Settings", - "userProfile": "User Profile", - "updateLog": "Update Log", - "hosts": "Hosts", - "openServerDetails": "Open Server Details", - "openFileManager": "Open File Manager", - "edit": "Edit", - "links": "Links", - "github": "GitHub", - "support": "Support", - "discord": "Discord", - "donate": "Donate", - "press": "Press", - "toToggle": "to toggle", - "close": "Close", - "hostManager": "Host Manager", - "pressToToggle": "Press Left Shift twice to open the command palette" + "searchPlaceholder": "호스트 또는 빠른 실행 항목을 검색하세요...", + "recentActivity": "최근 활동", + "navigation": "항해", + "addHost": "호스트 추가", + "addCredential": "자격 증명 추가", + "adminSettings": "관리자 설정", + "userProfile": "사용자 프로필", + "updateLog": "업데이트 로그", + "hosts": "호스트", + "openServerDetails": "오픈 서버 세부 정보", + "openFileManager": "파일 관리자 열기", + "edit": "편집하다", + "links": "모래밭", + "github": "깃허브", + "support": "지원하다", + "discord": "불화", + "donate": "기부하세요", + "press": "누르다", + "toToggle": "토글하려면", + "close": "닫다", + "hostManager": "호스트 관리자", + "pressToToggle": "Shift 키를 두 번 눌러 명령 팔레트를 엽니다." }, "docker": { - "notEnabled": "Docker is not enabled for this host", - "validating": "Validating Docker...", - "connectingToHost": "Connecting to host...", - "error": "Error", - "errorCode": "Error code: {{code}}", - "version": "Docker {{version}}", - "containerStarted": "Container {{name}} started", - "failedToStartContainer": "Failed to start container {{name}}", - "containerStopped": "Container {{name}} stopped", - "failedToStopContainer": "Failed to stop container {{name}}", - "containerRestarted": "Container {{name}} restarted", - "failedToRestartContainer": "Failed to restart container {{name}}", - "containerPaused": "Container {{name}} paused", - "containerUnpaused": "Container {{name}} unpaused", - "failedToTogglePauseContainer": "Failed to toggle pause state for container {{name}}", - "containerRemoved": "Container {{name}} removed", - "failedToRemoveContainer": "Failed to remove container {{name}}", - "image": "Image", + "notEnabled": "이 호스트에서는 Docker가 활성화되어 있지 않습니다.", + "validating": "Docker 유효성 검사 중...", + "connectingToHost": "호스트에 연결 중...", + "error": "오류", + "errorCode": "오류 코드: {{code}}", + "version": "도커 {{version}}", + "containerStarted": "컨테이너 {{name}} 시작됨", + "failedToStartContainer": "컨테이너 {{name}}시작에 실패했습니다.", + "containerStopped": "컨테이너 {{name}} 가 중지되었습니다.", + "failedToStopContainer": "컨테이너 {{name}}를 중지하는 데 실패했습니다.", + "containerRestarted": "컨테이너 {{name}} 가 재시작되었습니다.", + "failedToRestartContainer": "컨테이너 {{name}}재시작에 실패했습니다.", + "containerPaused": "컨테이너 {{name}} 일시 중지됨", + "containerUnpaused": "컨테이너 {{name}} 일시 중지 해제됨", + "failedToTogglePauseContainer": "컨테이너 {{name}}의 일시 정지 상태를 전환하는 데 실패했습니다.", + "containerRemoved": "컨테이너 {{name}} 가 제거되었습니다.", + "failedToRemoveContainer": "컨테이너 {{name}}를 제거하는 데 실패했습니다.", + "image": "영상", "idLabel": "ID", - "ports": "Ports", - "noPorts": "No ports", - "created": "Created", - "start": "Start", - "stop": "Stop", - "pause": "Pause", - "unpause": "Unpause", - "restart": "Restart", - "remove": "Remove", - "removeContainer": "Remove Container", - "confirmRemoveContainer": "Are you sure you want to remove the container '{{name}}'? This action cannot be undone.", - "runningContainerWarning": "Warning: This container is currently running. Removing it will stop the container first.", - "removing": "Removing...", - "loadingContainers": "Loading containers...", - "noContainersFound": "No containers found", - "noContainersFoundHint": "No Docker containers are available on this host", - "searchPlaceholder": "Search containers...", - "filterByStatusPlaceholder": "Filter by status", - "allContainersCount": "All ({{count}})", + "ports": "항구", + "noPorts": "포트 없음", + "created": "생성됨", + "start": "시작", + "stop": "멈추다", + "pause": "정지시키다", + "unpause": "일시 정지 해제", + "restart": "재시작", + "remove": "제거하다", + "removeContainer": "컨테이너를 제거하세요", + "confirmRemoveContainer": "컨테이너 '{{name}}'를 정말로 제거하시겠습니까? 이 작업은 되돌릴 수 없습니다.", + "runningContainerWarning": "경고: 이 컨테이너는 현재 실행 중입니다. 제거하려면 먼저 컨테이너가 중지되어야 합니다.", + "removing": "풀이...", + "loadingContainers": "컨테이너 적재 중...", + "noContainersFound": "컨테이너를 찾을 수 없습니다.", + "noContainersFoundHint": "이 호스트에는 사용 가능한 Docker 컨테이너가 없습니다.", + "searchPlaceholder": "검색 컨테이너...", + "filterByStatusPlaceholder": "상태별 필터링", + "allContainersCount": "모두 ({{count}})", "statusCount": "{{status}} ({{count}})", - "noContainersMatchFilters": "No containers match your filters", - "noContainersMatchFiltersHint": "Try adjusting your search or filter criteria", - "containerMustBeRunningToViewStats": "Container must be running to view statistics", - "failedToFetchStats": "Failed to fetch container statistics", - "containerNotRunning": "Container not running", - "startContainerToViewStats": "Start the container to view statistics", - "loadingStats": "Loading statistics...", - "errorLoadingStats": "Error loading statistics", - "noStatsAvailable": "No statistics available", - "cpuUsage": "CPU Usage", - "current": "Current", - "memoryUsage": "Memory Usage", - "usedLimit": "Used / Limit", - "percentage": "Percentage", - "networkIo": "Network I/O", - "input": "Input", - "output": "Output", - "blockIo": "Block I/O", - "read": "Read", - "write": "Write", + "noContainersMatchFilters": "필터 조건에 맞는 컨테이너가 없습니다.", + "noContainersMatchFiltersHint": "검색 또는 필터 조건을 조정해 보세요.", + "containerMustBeRunningToViewStats": "통계를 보려면 컨테이너가 실행 중이어야 합니다.", + "failedToFetchStats": "컨테이너 통계를 가져오는 데 실패했습니다.", + "containerNotRunning": "컨테이너가 실행 중이 아닙니다", + "startContainerToViewStats": "컨테이너를 시작하여 통계를 확인하세요.", + "loadingStats": "통계 자료를 불러오는 중...", + "errorLoadingStats": "통계 로딩 오류", + "noStatsAvailable": "이용 가능한 통계가 없습니다.", + "cpuUsage": "CPU 사용량", + "current": "현재의", + "memoryUsage": "메모리 사용량", + "usedLimit": "사용량/한도", + "percentage": "백분율", + "networkIo": "네트워크 I/O", + "input": "입력", + "output": "산출", + "blockIo": "블록 I/O", + "read": "읽다", + "write": "쓰다", "pids": "PIDs", - "containerInformation": "Container Information", - "name": "Name", + "containerInformation": "컨테이너 정보", + "name": "이름", "id": "ID", - "state": "State", - "disconnectedFromContainer": "Disconnected from container", - "containerMustBeRunning": "Container must be running to access console", - "authenticationRequired": "Authentication required", - "verificationCodePrompt": "Enter verification code", - "totpVerificationFailed": "TOTP verification failed. Please try again.", - "connectedTo": "Connected to {{containerName}}", - "disconnected": "Disconnected", - "consoleError": "Console error", - "errorMessage": "Error: {{message}}", - "failedToConnect": "Failed to connect to container", - "console": "Console", - "selectShell": "Select shell", - "bash": "Bash", - "sh": "sh", - "ash": "ash", - "connecting": "Connecting...", - "connect": "Connect", - "disconnect": "Disconnect", - "notConnected": "Not connected", - "clickToConnect": "Click connect to start a shell session", - "connectingTo": "Connecting to {{containerName}}...", - "containerNotFound": "Container not found", - "backToList": "Back to List", - "logs": "Logs", - "stats": "Stats", - "consoleTab": "Console", - "startContainerToAccess": "Start the container to access the console" + "state": "상태", + "disconnectedFromContainer": "컨테이너에서 분리됨", + "containerMustBeRunning": "콘솔에 접속하려면 컨테이너가 실행 중이어야 합니다.", + "authenticationRequired": "인증 필요", + "verificationCodePrompt": "인증 코드를 입력하세요", + "totpVerificationFailed": "TOTP 인증에 실패했습니다. 다시 시도해 주세요.", + "connectedTo": "{{containerName}}에 연결됨", + "disconnected": "연결이 끊어졌습니다", + "consoleError": "콘솔 오류", + "errorMessage": "오류: {{message}}", + "failedToConnect": "컨테이너에 연결하지 못했습니다.", + "console": "콘솔", + "selectShell": "쉘을 선택하세요", + "bash": "세게 때리다", + "sh": "쉿", + "ash": "금연 건강 증진 협회", + "connecting": "연결 중...", + "connect": "연결하다", + "disconnect": "연결을 끊으세요", + "notConnected": "연결되지 않음", + "clickToConnect": "연결을 클릭하여 셸 세션을 시작하세요.", + "connectingTo": "{{containerName}}에 연결 중...", + "containerNotFound": "컨테이너를 찾을 수 없습니다", + "backToList": "목록으로 돌아가기", + "logs": "로그", + "stats": "통계", + "consoleTab": "콘솔", + "startContainerToAccess": "콘솔에 접속하려면 컨테이너를 시작하세요." }, "theme": { - "switchToLight": "Switch to Light", - "switchToDark": "Switch to Dark" + "switchToLight": "조명으로 전환", + "switchToDark": "어둡게 전환" } }