{ "common": { "loading": "로딩 중...", "error": "오류", "save": "저장", "cancel": "취소", "back": "뒤로", "done": "완료", "refresh": "새로고침", "create": "생성", "delete": "삭제", "confirm": "확인", "created": "생성일", "expires": "만료일", "name": "이름", "dashboard": "대시보드", "backToDashboard": "← 대시보드", "copied": "복사됨!", "copyToClipboard": "클립보드에 복사" }, "login": { "title": "로그인", "subtitle": "PDS 계정을 관리하려면 로그인하세요", "button": "로그인", "redirecting": "리디렉션 중...", "chooseAccount": "계정 선택", "signInToAnother": "다른 계정으로 로그인", "backToSaved": "← 저장된 계정으로 돌아가기", "forgotPassword": "비밀번호를 잊으셨나요?", "lostPasskey": "패스키를 분실하셨나요?", "noAccount": "계정이 없으신가요?", "createAccount": "계정 만들기", "removeAccount": "저장된 계정에서 삭제", "infoSavedAccountsTitle": "저장된 계정", "infoSavedAccountsDesc": "계정을 클릭하면 즉시 로그인할 수 있습니다. 세션 토큰은 이 브라우저에 안전하게 저장됩니다.", "infoNewAccountTitle": "새 계정", "infoNewAccountDesc": "로그인 버튼을 사용하여 다른 계정을 추가하세요. ×를 클릭하여 저장된 계정을 제거할 수 있습니다.", "infoSecureSignInTitle": "안전한 로그인", "infoSecureSignInDesc": "안전한 인증을 위해 리디렉션됩니다. 패스키나 2단계 인증이 활성화되어 있으면 해당 인증도 요청됩니다.", "infoStaySignedInTitle": "로그인 유지", "infoStaySignedInDesc": "로그인 후 계정이 이 브라우저에 저장되어 다음에 빠르게 접속할 수 있습니다.", "infoRecoveryTitle": "계정 복구", "infoRecoveryDesc": "비밀번호나 패스키를 분실하셨나요? 로그인 버튼 아래의 복구 링크를 사용하세요." }, "verification": { "title": "계정 인증", "subtitle": "계정 인증이 필요합니다. 인증 방법으로 전송된 코드를 입력하세요.", "codeLabel": "인증 코드", "codePlaceholder": "6자리 코드 입력", "verifyButton": "계정 인증", "verifying": "인증 중...", "resendButton": "코드 다시 보내기", "resending": "전송 중...", "resent": "인증 코드를 다시 보냈습니다!", "backToLogin": "로그인으로 돌아가기" }, "register": { "title": "계정 만들기", "subtitle": "이 PDS에 새 계정을 만듭니다", "subtitleKeyChoice": "외부 did:web 신원을 설정하는 방법을 선택하세요.", "subtitleInitialDidDoc": "계속하려면 DID 문서를 업로드하세요.", "subtitleVerify": "계속하려면 {channel}을(를) 인증하세요.", "subtitleUpdatedDidDoc": "PDS 서명 키로 DID 문서를 업데이트하세요.", "subtitleActivating": "계정을 활성화하는 중...", "subtitleComplete": "계정이 성공적으로 생성되었습니다!", "redirecting": "대시보드로 이동 중...", "infoIdentityDesc": "신원은 ATProto 네트워크에서 계정이 어떻게 식별되는지를 결정합니다. 대부분의 사용자는 표준 옵션을 선택해야 합니다.", "infoContactDesc": "이 정보는 계정 인증과 계정 보안에 관한 중요한 알림을 보내는 데 사용됩니다.", "infoNextTitle": "다음 단계는?", "infoNextDesc": "계정 생성 후 연락 방법을 인증하면 새로운 신원으로 모든 ATProto 앱을 사용할 수 있습니다.", "migrateTitle": "이미 Bluesky 계정이 있으신가요?", "migrateDescription": "새 계정을 만드는 대신 기존 계정을 이 PDS로 마이그레이션할 수 있습니다. 팔로워, 게시물, ID가 함께 이전됩니다.", "migrateLink": "PDS Moover로 마이그레이션", "handle": "핸들", "handlePlaceholder": "사용자 이름", "handleHint": "전체 핸들: @{handle}", "handleDotWarning": "사용자 정의 도메인 핸들은 계정 생성 후 설정에서 구성할 수 있습니다.", "password": "비밀번호", "passwordPlaceholder": "8자 이상", "confirmPassword": "비밀번호 확인", "confirmPasswordPlaceholder": "비밀번호 재입력", "identityType": "ID 유형", "identityHint": "분산 ID를 관리하는 방법을 선택하세요.", "didPlc": "did:plc", "didPlcRecommended": "(권장)", "didPlcHint": "PLC 디렉토리에서 관리하는 이동 가능한 ID", "didWeb": "did:web", "didWebHint": "이 PDS에서 호스팅되는 ID (아래 경고 참조)", "didWebBYOD": "did:web (자체 도메인)", "didWebBYODHint": "자체 도메인 사용", "didWebWarningTitle": "중요: 장단점을 이해하세요", "didWebWarning1": "이 PDS에 영구 연결:", "didWebWarning1Detail": "ID는 {did}가 됩니다. 나중에 다른 PDS로 마이그레이션하더라도 이 서버는 계속 DID 문서를 호스팅해야 합니다.", "didWebWarning2": "복구 메커니즘 없음:", "didWebWarning2Detail": "did:plc와 달리 did:web에는 순환 키가 없습니다. 이 PDS가 영구적으로 오프라인이 되면 ID를 복구할 수 없습니다.", "didWebWarning3": "우리의 약속:", "didWebWarning3Detail": "마이그레이션하면 새 PDS를 가리키는 최소한의 DID 문서를 계속 제공합니다. ID는 계속 작동합니다.", "didWebWarning4": "권장:", "didWebWarning4Detail": "did:web을 선호하는 특별한 이유가 없다면 did:plc를 선택하세요.", "externalDid": "귀하의 did:web", "externalDidPlaceholder": "did:web:yourdomain.com", "externalDidHint": "도메인은 /.well-known/did.json에서 이 PDS를 가리키는 유효한 DID 문서를 제공해야 합니다", "contactMethod": "연락 방법", "contactMethodHint": "계정 인증 및 알림 수신 방법을 선택하세요. 하나만 필요합니다.", "verificationMethod": "인증 방법", "email": "이메일", "emailAddress": "이메일 주소", "emailPlaceholder": "you@example.com", "discord": "Discord", "discordId": "Discord 사용자 ID", "discordIdPlaceholder": "Discord 사용자 ID", "discordIdHint": "숫자 Discord 사용자 ID (개발자 모드를 활성화하여 찾기)", "telegram": "Telegram", "telegramUsername": "Telegram 사용자 이름", "telegramUsernamePlaceholder": "@yourusername", "signal": "Signal", "signalNumber": "Signal 전화번호", "signalNumberPlaceholder": "+821012345678", "signalNumberHint": "국가 코드 포함 (예: 한국 +82)", "notConfigured": "구성되지 않음", "inviteCode": "초대 코드", "inviteCodePlaceholder": "초대 코드 입력", "inviteCodeRequired": "필수", "createButton": "계정 만들기", "creating": "계정 생성 중...", "alreadyHaveAccount": "이미 계정이 있으신가요?", "signIn": "로그인", "wantPasswordless": "비밀번호 없는 보안을 원하시나요?", "createPasskeyAccount": "패스키 계정 만들기", "validation": { "handleRequired": "핸들은 필수입니다", "handleNoDots": "핸들에 점을 포함할 수 없습니다. 계정 생성 후 사용자 정의 도메인을 설정할 수 있습니다.", "passwordRequired": "비밀번호는 필수입니다", "passwordLength": "비밀번호는 8자 이상이어야 합니다", "passwordsMismatch": "비밀번호가 일치하지 않습니다", "inviteCodeRequired": "초대 코드는 필수입니다", "externalDidRequired": "외부 did:web은 필수입니다", "externalDidFormat": "외부 DID는 did:web:으로 시작해야 합니다", "emailRequired": "이메일 인증에는 이메일이 필요합니다", "discordIdRequired": "Discord 인증에는 Discord ID가 필요합니다", "telegramRequired": "Telegram 인증에는 Telegram 사용자 이름이 필요합니다", "signalRequired": "Signal 인증에는 전화번호가 필요합니다" } }, "dashboard": { "title": "대시보드", "switchAccount": "계정 전환", "addAnotherAccount": "다른 계정 추가", "signOut": "@{handle} 로그아웃", "deactivatedTitle": "계정 비활성화됨", "deactivatedMessage": "계정이 현재 비활성화되어 있습니다. 이는 일반적으로 계정 마이그레이션 중에 발생합니다. 계정이 다시 활성화될 때까지 일부 기능이 제한될 수 있습니다.", "accountOverview": "계정 개요", "handle": "핸들", "did": "DID", "primaryContact": "주요 연락처", "admin": "관리자", "deactivated": "비활성화됨", "verified": "인증됨", "unverified": "미인증", "navAppPasswords": "앱 비밀번호", "navAppPasswordsDesc": "타사 앱의 비밀번호 관리", "navSessions": "활성 세션", "navSessionsDesc": "로그인 세션 보기 및 관리", "navInviteCodes": "초대 코드", "navInviteCodesDesc": "초대 코드 보기 및 생성", "navSettings": "계정 설정", "navSettingsDesc": "이메일, 비밀번호, 핸들 등", "navSecurity": "보안", "navSecurityDesc": "2단계 인증", "navComms": "통신 설정", "navCommsDesc": "Discord, Telegram, Signal 채널", "navRepo": "저장소 탐색기", "navRepoDesc": "AT Protocol 레코드 탐색 및 관리", "navAdmin": "관리 패널", "navAdminDesc": "서버 통계 및 관리 작업" }, "settings": { "title": "계정 설정", "language": "언어", "languageDescription": "선호하는 언어를 선택하세요", "changeEmail": "이메일 변경", "currentEmail": "현재: {email}", "newEmail": "새 이메일", "newEmailPlaceholder": "new@example.com", "changeEmailButton": "이메일 변경", "requesting": "요청 중...", "verificationCode": "인증 코드", "verificationCodePlaceholder": "인증 코드 입력", "confirmEmailChange": "이메일 변경 확인", "updating": "업데이트 중...", "changeHandle": "핸들 변경", "currentHandle": "현재: @{handle}", "pdsHandle": "PDS 핸들", "customDomain": "사용자 정의 도메인", "customDomainDescription": "자체 도메인을 핸들로 사용합니다. 먼저 도메인 소유권을 확인해야 합니다.", "setupInstructions": "설정 지침", "setupMethodsIntro": "다음 인증 방법 중 하나를 선택하세요:", "dnsMethod": "방법 1: DNS TXT 레코드 (권장)", "dnsMethodDesc": "도메인에 이 TXT 레코드 추가:", "httpMethod": "방법 2: HTTP Well-Known 파일", "httpMethodDesc": "이 URL에서 DID 제공:", "httpMethodContent": "파일에는 다음만 포함:", "yourDomain": "도메인", "yourDomainPlaceholder": "example.com", "verifyAndUpdate": "확인 후 핸들 업데이트", "verifying": "확인 중...", "newHandle": "새 핸들", "newHandlePlaceholder": "yourhandle", "changeHandleButton": "핸들 변경", "changePassword": "비밀번호 변경", "currentPassword": "현재 비밀번호", "currentPasswordPlaceholder": "현재 비밀번호 입력", "newPassword": "새 비밀번호", "newPasswordPlaceholder": "8자 이상", "confirmNewPassword": "새 비밀번호 확인", "confirmNewPasswordPlaceholder": "새 비밀번호 재입력", "changePasswordButton": "비밀번호 변경", "changing": "변경 중...", "exportData": "데이터 내보내기", "exportDataDescription": "전체 저장소를 CAR (Content Addressable Archive) 파일로 다운로드합니다. 모든 게시물, 좋아요, 팔로우 및 기타 데이터가 포함됩니다.", "downloadRepo": "저장소 다운로드", "exporting": "내보내기 중...", "deleteAccount": "계정 삭제", "deleteWarning": "이 작업은 되돌릴 수 없습니다. 모든 데이터가 영구적으로 삭제됩니다.", "requestDeletion": "계정 삭제 요청", "confirmationCode": "확인 코드", "confirmationCodePlaceholder": "확인 코드 입력", "yourPassword": "비밀번호", "yourPasswordPlaceholder": "비밀번호 입력", "permanentlyDelete": "계정 영구 삭제", "deleting": "삭제 중...", "messages": { "emailCodeSent": "알림 채널로 인증 코드를 보냈습니다", "emailUpdated": "이메일이 업데이트되었습니다", "emailUpdateFailed": "이메일 업데이트에 실패했습니다", "handleUpdated": "핸들이 업데이트되었습니다", "handleUpdateFailed": "핸들 업데이트에 실패했습니다", "passwordChanged": "비밀번호가 변경되었습니다", "passwordChangeFailed": "비밀번호 변경에 실패했습니다", "passwordsMismatch": "비밀번호가 일치하지 않습니다", "passwordsDoNotMatch": "비밀번호가 일치하지 않습니다", "passwordLength": "비밀번호는 8자 이상이어야 합니다", "passwordTooShort": "비밀번호는 8자 이상이어야 합니다", "deletionCodeSent": "이메일로 삭제 확인을 보냈습니다", "deletionConfirmationSent": "이메일로 삭제 확인을 보냈습니다", "deletionRequestFailed": "계정 삭제 요청에 실패했습니다", "deleteConfirmation": "정말로 계정을 삭제하시겠습니까? 이 작업은 되돌릴 수 없습니다.", "deletionFailed": "계정 삭제에 실패했습니다", "repoExported": "저장소를 내보냈습니다", "exportFailed": "저장소 내보내기에 실패했습니다", "confirmDelete": "정말로 계정을 삭제하시겠습니까? 이 작업은 되돌릴 수 없습니다." } }, "appPasswords": { "title": "앱 비밀번호", "description": "앱 비밀번호를 사용하면 기본 비밀번호를 제공하지 않고 타사 앱에 로그인할 수 있습니다. 각 앱 비밀번호는 개별적으로 취소할 수 있습니다.", "createNew": "새 앱 비밀번호 만들기", "appNamePlaceholder": "앱 이름 (예: Graysky, Skeets)", "created": "앱 비밀번호가 생성되었습니다", "createdMessage": "지금 이 비밀번호를 복사하세요. 다시 볼 수 없습니다.", "yourPasswords": "앱 비밀번호 목록", "noPasswords": "앱 비밀번호가 아직 없습니다", "revoke": "취소", "revoking": "취소 중...", "creating": "생성 중...", "revokeConfirm": "앱 비밀번호 \"{name}\"을(를) 취소하시겠습니까? 이 비밀번호를 사용하는 앱은 더 이상 계정에 액세스할 수 없습니다.", "saveWarningTitle": "중요: 이 앱 비밀번호를 저장하세요!", "saveWarningMessage": "이 비밀번호는 패스키 또는 OAuth를 지원하지 않는 앱에 로그인하는 데 필요합니다. 한 번만 볼 수 있습니다.", "acknowledgeLabel": "앱 비밀번호를 안전한 곳에 저장했습니다", "permissions": "권한", "scopeFull": "전체 권한", "scopeReadOnly": "읽기 전용", "scopePostOnly": "게시만 가능", "scopeCustom": "사용자 지정" }, "sessions": { "title": "활성 세션", "loadingSessions": "세션 로딩 중...", "noSessions": "활성 세션이 없습니다.", "current": "현재", "oauth": "OAuth", "session": "세션", "signOut": "로그아웃", "revoke": "취소", "revokeAll": "다른 모든 세션 취소", "revokeCurrentConfirm": "이 세션에서 로그아웃됩니다. 계속하시겠습니까?", "revokeConfirm": "이 세션을 취소하시겠습니까?", "revokeAllConfirm": "{count}개의 다른 세션을 취소합니다. 계속하시겠습니까?", "noOtherSessions": "취소할 다른 세션이 없습니다", "failedToLoad": "세션 로딩에 실패했습니다", "failedToRevoke": "세션 취소에 실패했습니다", "failedToRevokeAll": "세션 취소에 실패했습니다", "created": "생성일:", "expires": "만료일:", "daysAgo": "{count}일 전", "hoursAgo": "{count}시간 전", "minutesAgo": "{count}분 전", "justNow": "방금" }, "inviteCodes": { "title": "초대 코드", "description": "초대 코드로 친구를 이 PDS에 초대할 수 있습니다. 각 코드는 한 번만 사용할 수 있습니다.", "createNew": "새 초대 코드 만들기", "uses": "사용 횟수", "usesPlaceholder": "사용 횟수 (1-100)", "yourCodes": "초대 코드 목록", "noCodes": "초대 코드가 아직 없습니다", "available": "사용 가능", "used": "@{handle}이(가) 사용함", "disabled": "비활성화됨", "usedBy": "사용자", "creating": "생성 중...", "disableConfirm": "이 초대 코드를 비활성화하시겠습니까? 더 이상 사용할 수 없습니다.", "created": "초대 코드가 생성되었습니다", "copy": "복사", "createdOn": "{date}에 생성됨" }, "security": { "title": "보안", "passkeys": "패스키", "passkeysDescription": "패스키는 기기의 내장 보안(지문, 얼굴 또는 PIN)을 사용하여 안전한 비밀번호 없는 인증을 제공합니다.", "addPasskey": "패스키 추가", "adding": "추가 중...", "noPasskeys": "등록된 패스키가 없습니다", "passkeyName": "패스키 이름", "passkeyNamePlaceholder": "예: MacBook Pro, iPhone", "register": "등록", "registering": "등록 중...", "rename": "이름 변경", "renaming": "이름 변경 중...", "deletePasskey": "삭제", "deletePasskeyConfirm": "패스키 \"{name}\"을(를) 삭제하시겠습니까? 더 이상 로그인에 사용할 수 없습니다.", "totp": "인증 앱 (TOTP)", "totpDescription": "Google Authenticator, Authy 또는 1Password와 같은 인증 앱을 2단계 인증에 사용합니다.", "totpEnabled": "TOTP가 활성화되었습니다", "totpDisabled": "TOTP가 비활성화되었습니다", "enableTotp": "TOTP 활성화", "disableTotp": "TOTP 비활성화", "disabling": "비활성화 중...", "totpSetup": "인증 앱 설정", "totpSetupInstructions": "인증 앱으로 이 QR 코드를 스캔한 다음 6자리 코드를 입력하여 확인합니다.", "totpCode": "인증 코드", "totpCodePlaceholder": "6자리 코드 입력", "verifyAndEnable": "확인 후 활성화", "backupCodes": "백업 코드", "backupCodesDescription": "인증 앱에 액세스할 수 없는 경우 이 코드를 사용하여 로그인합니다. 각 코드는 한 번만 사용할 수 있습니다.", "regenerateBackupCodes": "백업 코드 재생성", "regenerating": "재생성 중...", "regenerateConfirm": "백업 코드를 재생성하시겠습니까? 현재 코드는 더 이상 작동하지 않습니다.", "legacyLogin": "레거시 로그인", "legacyLoginDescription": "사용자 이름/비밀번호로 직접 로그인(레거시 모드)을 허용합니다. 비활성화하면 MFA가 있는 OAuth를 사용해야 합니다.", "legacyLoginOn": "레거시 로그인이 활성화되었습니다", "legacyLoginOff": "레거시 로그인이 비활성화되었습니다", "enableLegacyLogin": "레거시 로그인 활성화", "disableLegacyLogin": "레거시 로그인 비활성화", "legacyLoginWarning": "경고: 레거시 로그인을 활성화하면 직접 비밀번호 로그인에 대한 MFA가 우회됩니다. 앱 호환성이 필요한 경우에만 활성화하세요.", "totpPasswordWarning": "TOTP가 활성화되면 Bluesky 앱(또는 기타 레거시 앱)에서 비밀번호를 변경할 수 없습니다. 비밀번호를 변경하려면 두 가지 방법이 있습니다:", "totpPasswordOption1Label": "여기에서 변경:", "totpPasswordOption1Text": "이 웹사이트의", "totpPasswordOption1Link": "설정 페이지", "totpPasswordOption1Suffix": "에서 인증 앱으로 확인할 수 있습니다.", "totpPasswordOption2Label": "먼저 세션 확인:", "totpPasswordOption2Text": "", "totpPasswordOption2Link": "재인증 옵션", "totpPasswordOption2Suffix": "을 사용하여 TOTP로 Bluesky 세션을 확인하면 일시적으로 비밀번호 변경이 가능합니다.", "legacyAppsTitle": "레거시 앱이란?", "legacyAppsDescription": "일부 앱(공식 Bluesky 앱 등)은 비밀번호만 필요한 이전 인증을 사용합니다. MFA가 활성화되어 있으면 이러한 앱은 두 번째 인증 요소를 우회합니다. 레거시 로그인을 비활성화하면 모든 앱이 OAuth를 사용하도록 강제되어 MFA가 적절히 적용됩니다.", "password": "비밀번호", "passwordStatus": "비밀번호가 설정되었습니다", "noPassword": "비밀번호가 설정되지 않음 (패스키 전용 계정)", "setPassword": "비밀번호 설정", "removePassword": "비밀번호 제거", "removePasswordConfirm": "비밀번호를 제거하시겠습니까? 로그인에 패스키가 필요합니다.", "removing": "제거 중...", "loading": "로딩 중...", "loadingPasskeys": "패스키 로딩 중...", "cancel": "취소", "save": "저장", "back": "뒤로", "next": "다음: 코드 확인", "copyToClipboard": "클립보드에 복사", "savedMyCodes": "코드를 저장했습니다", "cantScan": "스캔할 수 없나요? 수동 입력", "unnamedPasskey": "이름 없는 패스키", "added": "추가됨", "lastUsed": "마지막 사용", "passwordDescription": "계정 비밀번호를 관리합니다. 패스키를 설정한 경우 완전한 비밀번호 없는 경험을 위해 비밀번호를 제거할 수 있습니다.", "disableTotpWarning": "이렇게 하면 계정 보안이 약해집니다.", "removePasswordWarning": "이렇게 하면 계정이 패스키 전용이 됩니다. 등록된 패스키로만 로그인할 수 있습니다. 모든 패스키에 액세스할 수 없게 되면 알림 채널을 사용하여 계정을 복구할 수 있습니다.", "beforeProceeding": "계속하기 전에:", "beforeProceedingItem1": "최소 하나의 신뢰할 수 있는 패스키가 등록되어 있는지 확인", "beforeProceedingItem2": "여러 기기에 패스키 등록을 고려", "beforeProceedingItem3": "복구 알림 채널이 최신인지 확인", "addPasskeyFirst": "비밀번호를 제거하려면 먼저 최소 하나의 패스키를 추가하세요.", "passkeyOnlyHint": "패스키로만 로그인합니다. 패스키에 액세스할 수 없게 되면 로그인 페이지의 '패스키를 분실하셨나요?' 링크를 사용하여 계정을 복구할 수 있습니다.", "trustedDevices": "신뢰할 수 있는 기기", "trustedDevicesDescription": "로그인 시 2단계 인증을 건너뛸 수 있는 기기를 관리합니다. 신뢰는 30일간 유효하며 기기를 사용하면 자동으로 연장됩니다.", "manageTrustedDevices": "신뢰할 수 있는 기기 관리", "appCompatibility": "앱 호환성", "enterPassword": "비밀번호를 입력하세요", "sessionExpired": "세션이 만료되었습니다. 다시 로그인하세요.", "legacyLoginEnabled": "레거시 앱 로그인 활성화됨", "legacyLoginDisabled": "레거시 앱 로그인 비활성화됨 - OAuth 앱만 로그인 가능", "failedToUpdatePreference": "설정 업데이트에 실패했습니다", "passwordRemoved": "비밀번호가 제거되었습니다. 이제 계정은 패스키 전용입니다.", "failedToRemovePassword": "비밀번호 제거에 실패했습니다", "failedToLoadTotpStatus": "TOTP 상태 로딩에 실패했습니다", "totpEnabledSuccess": "2단계 인증이 활성화되었습니다", "totpDisabledSuccess": "2단계 인증이 비활성화되었습니다", "backupCodesCopied": "백업 코드가 클립보드에 복사되었습니다", "failedToLoadPasskeys": "패스키 로딩에 실패했습니다", "passkeysNotSupported": "이 브라우저에서 패스키가 지원되지 않습니다", "passkeyCreationCancelled": "패스키 생성이 취소되었습니다", "passkeyAddedSuccess": "패스키가 추가되었습니다", "passkeyDeleted": "패스키가 삭제되었습니다", "passkeyRenamed": "패스키 이름이 변경되었습니다" }, "comms": { "title": "통신 설정", "description": "비밀번호 재설정, 보안 알림, 계정 업데이트 등 중요한 메시지를 받는 방법을 선택하세요.", "preferredChannel": "선호 채널", "preferredChannelDescription": "메시지 수신 방법을 선택하세요. 선택하기 전에 채널을 설정해야 합니다.", "channelConfiguration": "채널 설정", "emailVia": "이메일로 메시지 받기", "discordVia": "Discord DM으로 메시지 받기", "telegramVia": "Telegram으로 메시지 받기", "signalVia": "Signal로 메시지 받기", "configureToEnable": "활성화하려면 아래에서 설정", "notConfiguredOnServer": "이 서버에서 설정되지 않음", "emailManagedInSettings": "이메일은 계정 설정에서 관리됩니다", "discordIdHint": "Discord 사용자 ID (사용자 이름 아님). Discord에서 개발자 모드를 활성화하여 복사하세요.", "telegramHint": "@ 기호 없이 Telegram 사용자 이름", "signalHint": "국가 코드가 포함된 Signal 전화번호", "primary": "기본", "verified": "인증됨", "notVerified": "미인증", "verifyButton": "인증", "verifyCodePlaceholder": "인증 코드 입력", "submit": "제출", "saving": "저장 중...", "savePreferences": "설정 저장", "preferencesSaved": "통신 설정이 저장되었습니다", "verifiedSuccess": "{channel} 인증 완료", "messageHistory": "메시지 기록", "historyDescription": "계정에 전송된 최근 메시지를 확인합니다.", "loadHistory": "기록 불러오기", "hideHistory": "기록 숨기기", "noMessages": "메시지가 없습니다.", "sent": "전송됨", "failed": "실패" }, "repoExplorer": { "title": "저장소 탐색기", "description": "AT Protocol 레코드를 탐색하고 관리합니다.", "collections": "컬렉션", "noCollections": "컬렉션을 찾을 수 없습니다", "records": "레코드", "noRecords": "이 컬렉션에 레코드가 없습니다", "recordDetails": "레코드 세부 정보", "rkey": "레코드 키", "uri": "URI", "cid": "CID", "value": "값", "deleteRecord": "레코드 삭제", "deleteConfirm": "레코드 {rkey}을(를) 삭제하시겠습니까? 이 작업은 되돌릴 수 없습니다.", "unknownError": "알 수 없는 오류가 발생했습니다", "invalidJson": "잘못된 JSON", "collectionRequired": "컬렉션은 필수입니다", "recordCreated": "레코드 생성됨: {uri}", "recordUpdated": "레코드가 업데이트되었습니다", "recordDeleted": "레코드가 삭제되었습니다", "newRecord": "새 레코드", "createRecord": "레코드 생성", "filterCollections": "컬렉션 검색...", "filterRecords": "레코드 검색...", "noCollectionsYet": "컬렉션이 아직 없습니다. 첫 번째 레코드를 만들어 시작하세요.", "loadMore": "더 불러오기", "recordJson": "레코드 JSON", "saving": "저장 중...", "updateRecord": "레코드 업데이트", "collectionNsid": "컬렉션 (NSID)", "recordKeyOptional": "레코드 키 (선택사항)", "autoGenerated": "비워두면 자동 생성 (TID)", "autoGeneratedHint": "비워두면 TID 기반 키가 자동 생성됩니다", "creating": "생성 중...", "demoPostText": "안녕하세요, 제 PDS에서 보내는 첫 번째 게시물입니다!", "demoDisplayName": "표시 이름", "demoBio": "간단한 자기소개를 작성하세요." }, "admin": { "title": "관리 패널", "loading": "로딩 중...", "serverConfig": "서버 설정", "serverName": "서버 이름", "serverNamePlaceholder": "내 PDS", "serverNameHelp": "브라우저 탭 및 다른 곳에 표시됩니다", "serverLogo": "서버 로고", "logoPreview": "로고 미리보기", "removeLogo": "삭제", "logoHelp": "파비콘으로 사용되며 네비게이션 바에 표시됩니다", "themeColors": "테마 색상", "themeColorsHint": "기본 색상을 사용하려면 비워 두세요.", "primaryLight": "기본 (라이트 모드)", "primaryDark": "기본 (다크 모드)", "configSaved": "서버 설정이 저장되었습니다", "saving": "저장 중...", "saveConfig": "설정 저장", "serverStats": "서버 통계", "users": "사용자", "repos": "저장소", "records": "레코드", "blobStorage": "Blob 저장소", "refreshStats": "통계 새로고침", "userManagement": "사용자 관리", "searchPlaceholder": "핸들로 검색 (선택사항)", "searchUsers": "사용자 검색", "noUsers": "사용자를 찾을 수 없습니다", "handle": "핸들", "email": "이메일", "status": "상태", "created": "생성일", "loadMore": "더 불러오기", "inviteCodes": "초대 코드", "loadInviteCodes": "초대 코드 불러오기", "refresh": "새로고침", "noInvites": "초대 코드가 없습니다", "code": "코드", "available": "사용 가능", "uses": "사용 횟수", "actions": "작업", "disable": "비활성화", "disableInviteConfirm": "초대 코드 {code}을(를) 비활성화하시겠습니까?", "active": "활성", "exhausted": "소진됨", "disabled": "비활성화됨", "userDetails": "사용자 세부 정보", "did": "DID", "invites": "초대", "enabled": "활성화됨", "enableInvites": "초대 활성화", "disableInvites": "초대 비활성화", "deleteAccount": "계정 삭제", "deleteConfirm": "계정 @{handle}을(를) 삭제하시겠습니까? 이 작업은 되돌릴 수 없습니다.", "verified": "인증됨", "unverified": "미인증", "deactivated": "비활성화됨", "colorDefault": "{color} (기본값)", "secondaryLight": "보조 (라이트 모드)", "secondaryDark": "보조 (다크 모드)" }, "oauth": { "login": { "title": "로그인", "subtitle": "앱을 계속하려면 로그인하세요", "signingIn": "로그인 중...", "authenticating": "인증 중...", "checkingPasskey": "패스키 확인 중...", "signInWithPasskey": "패스키로 로그인", "passkeyNotSetUp": "패스키가 설정되지 않음", "orUsePassword": "또는 비밀번호 사용", "password": "비밀번호", "rememberDevice": "이 기기 기억하기", "passkeyHintChecking": "패스키 상태 확인 중...", "passkeyHintAvailable": "패스키로 로그인", "passkeyHintNotAvailable": "이 계정에 등록된 패스키가 없습니다", "passkeyHint": "기기의 생체 인식 또는 보안 키 사용", "passwordPlaceholder": "비밀번호 입력", "usePasskey": "패스키 사용" }, "consent": { "title": "앱 승인", "appWantsAccess": "{app}이(가) 계정에 액세스하려고 합니다", "permissions": "이 앱은 다음을 수행할 수 있습니다:", "readProfile": "프로필 정보 읽기", "readPosts": "게시물 및 콘텐츠 읽기", "writePosts": "대신 게시물 작성 및 삭제", "readNotifications": "알림 읽기", "fullAccess": "계정에 대한 전체 액세스", "authorize": "승인", "deny": "거부", "authorizing": "승인 중...", "rememberChoice": "이 선택 기억", "signingInAs": "로그인 계정:", "permissionsRequested": "요청된 권한", "required": "필수", "rememberChoiceLabel": "이 앱에 대한 선택 기억하기" }, "accounts": { "title": "계정 선택", "subtitle": "계속할 계정 선택", "useAnother": "다른 계정 사용" }, "twoFactor": { "title": "2단계 인증", "subtitle": "추가 확인이 필요합니다", "usePasskey": "패스키 사용", "useTotp": "인증 앱 사용", "verifying": "확인 중..." }, "twoFactorCode": { "title": "2단계 인증", "subtitle": "{channel}(으)로 인증 코드를 보냈습니다. 아래에 코드를 입력하여 계속하세요.", "codeLabel": "인증 코드", "codePlaceholder": "6자리 코드 입력", "verify": "확인", "verifying": "확인 중...", "errors": { "missingRequestUri": "request_uri 매개변수가 없습니다", "verificationFailed": "인증에 실패했습니다", "connectionFailed": "서버에 연결하지 못했습니다", "unexpectedResponse": "서버로부터 예기치 않은 응답" } }, "totp": { "title": "인증 코드 입력", "subtitle": "인증 앱의 6자리 코드를 입력하세요", "codePlaceholder": "6자리 코드 입력", "verify": "확인", "verifying": "확인 중...", "useBackupCode": "백업 코드 사용", "backupCodePlaceholder": "백업 코드 입력", "trustDevice": "이 기기를 30일간 신뢰", "hintBackupCode": "백업 코드 사용 중", "hintTotpCode": "인증 코드 사용 중", "hintDefault": "인증 앱은 6자리, 백업 코드는 8자" }, "passkey": { "title": "패스키 확인", "subtitle": "패스키를 사용하여 본인 확인", "waiting": "패스키 대기 중...", "useTotp": "인증 앱 사용" }, "error": { "title": "승인 오류", "genericError": "승인 중 오류가 발생했습니다.", "tryAgain": "다시 시도", "backToApp": "앱으로 돌아가기" } }, "verify": { "title": "계정 인증", "subtitle": "{channel}(으)로 인증 코드를 보냈습니다. 아래에 입력하여 등록을 완료하세요.", "tokenTitle": "인증", "tokenSubtitle": "인증 코드와 전송된 식별자를 입력하세요.", "codePlaceholder": "XXXX-XXXX-XXXX-XXXX...", "codeLabel": "인증 코드", "codeHelp": "메시지에서 하이픈을 포함한 전체 코드를 복사하세요", "verifyButton": "계정 인증", "verify": "인증", "verifying": "인증 중...", "pleaseWait": "잠시 기다려 주세요...", "sending": "전송 중...", "resendCode": "코드 다시 보내기", "resending": "전송 중...", "codeResent": "인증 코드를 다시 보냈습니다!", "codeResentDetail": "인증 코드가 전송되었습니다! 받은 편지함을 확인하세요.", "verified": "인증 완료!", "channelVerified": "{channel}이(가) 성공적으로 인증되었습니다.", "canNowSignIn": "이제 계정에 로그인할 수 있습니다.", "continue": "계속", "identifierLabel": "이메일 또는 식별자", "identifierPlaceholder": "you@example.com", "identifierHelp": "코드가 전송된 이메일 주소 또는 식별자", "backToLogin": "로그인으로 돌아가기", "verifyingAccount": "인증 중인 계정: @{handle}", "startOver": "다른 계정으로 다시 시작", "noPending": "보류 중인 인증이 없습니다.", "noPendingInfo": "최근에 계정을 만들고 인증이 필요한 경우 새 계정을 만들어야 합니다. 이미 계정을 인증한 경우 로그인할 수 있습니다.", "createAccount": "계정 만들기", "signIn": "로그인" }, "resetPassword": { "title": "비밀번호 재설정", "forgotTitle": "비밀번호를 잊으셨나요", "subtitle": "받은 코드를 입력하고 새 비밀번호를 선택하세요.", "forgotSubtitle": "핸들 또는 이메일을 입력하면 비밀번호 재설정 코드를 보내드립니다.", "handleOrEmail": "핸들 또는 이메일", "emailPlaceholder": "핸들 또는 you@example.com", "sendCode": "재설정 코드 보내기", "sending": "전송 중...", "codeSent": "비밀번호 재설정 코드를 보냈습니다! 선호하는 알림 채널을 확인하세요.", "enterCode": "받은 코드와 새 비밀번호를 입력하세요.", "code": "재설정 코드", "codePlaceholder": "재설정 코드 입력", "newPassword": "새 비밀번호", "newPasswordPlaceholder": "8자 이상", "confirmPassword": "비밀번호 확인", "confirmPasswordPlaceholder": "새 비밀번호 재입력", "resetButton": "비밀번호 재설정", "resetting": "재설정 중...", "success": "비밀번호가 재설정되었습니다!", "backToLogin": "로그인으로 돌아가기", "requestNewCode": "새 코드 요청", "passwordsMismatch": "비밀번호가 일치하지 않습니다", "passwordLength": "비밀번호는 8자 이상이어야 합니다" }, "recoverPasskey": { "title": "계정 복구", "invalidLinkTitle": "잘못된 복구 링크", "invalidLinkMessage": "이 복구 링크가 잘못되었거나 손상되었습니다. 새 복구 이메일을 요청하세요.", "goToLogin": "로그인으로 이동", "successTitle": "비밀번호가 설정되었습니다!", "successMessage": "임시 비밀번호가 설정되었습니다. 이 비밀번호로 로그인할 수 있습니다.", "successNextSteps": "로그인 후 보안 설정에서 새 패스키를 추가하여 패스키 전용 인증을 복원하는 것이 좋습니다.", "signIn": "로그인", "subtitle": "패스키 전용 계정에 대한 액세스를 복구하기 위해 임시 비밀번호를 설정합니다.", "newPassword": "새 비밀번호", "newPasswordPlaceholder": "8자 이상", "confirmPassword": "비밀번호 확인", "confirmPasswordPlaceholder": "비밀번호 재입력", "whatHappensNext": "다음 단계", "whatHappensNextDetail": "이 비밀번호를 설정한 후 로그인하여 보안 설정에서 새 패스키를 추가할 수 있습니다. 새 패스키를 추가한 후 임시 비밀번호를 제거할 수 있습니다.", "setPassword": "비밀번호 설정", "settingPassword": "비밀번호 설정 중...", "validation": { "passwordRequired": "새 비밀번호는 필수입니다", "passwordLength": "비밀번호는 8자 이상이어야 합니다", "passwordsMismatch": "비밀번호가 일치하지 않습니다" }, "errors": { "invalidLink": "잘못된 복구 링크입니다. 새 링크를 요청하세요.", "expired": "이 복구 링크가 만료되었습니다. 새 링크를 요청하세요." } }, "requestPasskeyRecovery": { "title": "패스키 계정 복구", "subtitle": "패스키에 액세스할 수 없나요? 핸들 또는 이메일을 입력하면 복구 링크를 보내드립니다.", "successTitle": "복구 링크 전송됨", "successMessage": "계정이 존재하고 패스키 전용 계정인 경우 선호하는 알림 채널로 복구 링크를 받게 됩니다.", "successInfo": "링크는 1시간 후 만료됩니다. 계정 설정에 따라 이메일, Discord, Telegram 또는 Signal을 확인하세요.", "handleOrEmail": "핸들 또는 이메일", "emailPlaceholder": "핸들 또는 you@example.com", "howItWorks": "작동 방식", "howItWorksDetail": "등록된 알림 채널로 보안 링크를 보냅니다. 링크를 클릭하여 임시 비밀번호를 설정합니다. 그런 다음 로그인하여 새 패스키를 추가할 수 있습니다.", "sendRecoveryLink": "복구 링크 보내기", "sending": "전송 중...", "backToLogin": "로그인으로 돌아가기" }, "registerPasskey": { "title": "패스키 계정 만들기", "subtitle": "비밀번호 대신 패스키를 사용하여 초안전 계정을 만듭니다.", "subtitleKeyChoice": "외부 did:web 아이덴티티 설정 방법을 선택하세요.", "subtitleVerify": "{channel}(으)로 인증 코드를 보냈습니다. 코드를 입력하여 계속하세요.", "subtitlePasskey": "패스키를 만들어 계정 설정을 완료하세요.", "handle": "핸들", "handlePlaceholder": "사용자 이름", "handleHint": "전체 핸들: @{handle}", "contactMethod": "연락 방법", "contactMethodHint": "계정 인증 및 알림 수신 방법을 선택하세요.", "verificationMethod": "인증 방법", "email": "이메일 주소", "emailPlaceholder": "you@example.com", "discord": "Discord", "discordId": "Discord 사용자 ID", "discordIdPlaceholder": "Discord 사용자 ID", "discordIdHint": "숫자 Discord 사용자 ID (개발자 모드를 활성화하여 찾기)", "telegram": "Telegram", "telegramUsername": "Telegram 사용자 이름", "telegramUsernamePlaceholder": "@yourusername", "signal": "Signal", "signalNumber": "Signal 전화번호", "signalNumberPlaceholder": "+821012345678", "signalNumberHint": "국가 코드 포함 (예: 한국 +82)", "inviteCode": "초대 코드", "inviteCodePlaceholder": "초대 코드 입력", "inviteCodeRequired": "필수", "didWebDescription": "자체 도메인에서 호스팅되는 DID 아이덴티티를 사용합니다.", "didWebToggle": "외부 did:web 사용", "externalDid": "귀하의 did:web", "externalDidPlaceholder": "did:web:yourdomain.com", "dnsVerificationInstructions": "도메인을 인증하려면 이 TXT 레코드를 추가하세요:", "copyDid": "DID 복사", "createButton": "계정 만들기", "creating": "생성 중...", "alreadyHaveAccount": "이미 계정이 있으신가요?", "signIn": "로그인", "wantPassword": "비밀번호를 사용하시겠습니까?", "createPasswordAccount": "비밀번호 계정 만들기", "errors": { "handleRequired": "핸들은 필수입니다", "handleNoDots": "핸들에 점을 포함할 수 없습니다. 계정 생성 후 사용자 정의 도메인을 설정할 수 있습니다.", "passkeysNotSupported": "이 브라우저에서 패스키가 지원되지 않습니다. 비밀번호 기반 계정을 만들거나 패스키를 지원하는 브라우저를 사용하세요.", "passkeyCancelled": "패스키 생성이 취소되었습니다", "passkeyFailed": "패스키 등록에 실패했습니다", "signalRequired": "Signal 인증에는 전화번호가 필요합니다", "inviteRequired": "초대 코드가 필요합니다", "externalDidRequired": "외부 did:web이 필요합니다", "emailRequired": "이메일 인증에는 이메일이 필요합니다", "telegramRequired": "Telegram 인증에는 Telegram 사용자 이름이 필요합니다", "externalDidFormat": "외부 DID는 did:web:으로 시작해야 합니다", "discordRequired": "Discord 인증에는 Discord ID가 필요합니다" }, "whyPasskeyBullet1": "피싱이나 데이터 유출로 도난당할 수 없음", "whyPasskeyBullet2": "하드웨어 기반 암호화 키 사용", "whyPasskeyBullet3": "생체 인식 또는 기기 PIN 필요", "whyPasskeyOnly": "왜 패스키만 사용하나요?", "whyPasskeyOnlyDesc": "패스키 계정은 비밀번호 기반 계정보다 안전합니다:", "subtitleInitialDidDoc": "계속하려면 DID 문서를 업로드하세요.", "subtitleUpdatedDidDoc": "PDS 서명 키로 DID 문서를 업데이트하세요.", "subtitleActivating": "계정을 활성화하는 중...", "subtitleComplete": "계정이 성공적으로 생성되었습니다!", "subtitleCreating": "계정을 생성하는 중...", "subtitleAppPassword": "서드파티 앱용 앱 비밀번호를 저장하세요.", "creatingPasskey": "패스키 생성 중...", "passkeyPrompt": "아래 버튼을 클릭하여 패스키를 생성하세요. 다음을 사용하라는 메시지가 표시됩니다:", "passkeyPromptBullet1": "Touch ID 또는 Face ID", "passkeyPromptBullet2": "기기 PIN 또는 비밀번호", "passkeyPromptBullet3": "보안 키 (있는 경우)", "identityType": "아이덴티티 유형", "identityTypeHint": "분산 아이덴티티 관리 방법을 선택하세요.", "passkeyNameLabel": "패스키 이름 (선택사항)", "passkeyNamePlaceholder": "예: MacBook Touch ID", "passkeyNameHint": "이 패스키를 식별할 수 있는 이름", "createPasskey": "패스키 생성", "didPlcRecommended": "did:plc (권장)", "didPlcHint": "PLC Directory에서 관리하는 이동 가능한 아이덴티티", "didWeb": "did:web", "didWebHint": "이 PDS에서 호스팅되는 아이덴티티 (아래 경고 읽기)", "didWebBYOD": "did:web (BYOD)", "didWebBYODHint": "자체 도메인 사용", "didWebWarningTitle": "중요: 장단점 이해하기", "didWebWarning1": "이 PDS에 영구적으로 연결됨:", "didWebWarning1Detail": "귀하의 아이덴티티 {did}는 이 서버에 연결됩니다.", "didWebWarning2": "복구 메커니즘 없음:", "didWebWarning2Detail": "did:plc와 달리 did:web에는 순환 키가 없습니다.", "didWebWarning3": "우리의 약속:", "didWebWarning3Detail": "마이그레이션하더라도 최소한의 DID 문서를 계속 제공합니다.", "didWebWarning4": "권장 사항:", "didWebWarning4Detail": "did:web을 선호할 특별한 이유가 없다면 did:plc를 선택하세요.", "externalDidHint": "다음 위치에서 DID 문서를 제공해야 합니다", "continue": "계속", "back": "뒤로", "loading": "로딩 중...", "redirecting": "대시보드로 이동 중...", "handleDotWarning": "사용자 정의 도메인 핸들은 계정 생성 후 설정할 수 있습니다.", "wantTraditional": "기존 비밀번호를 원하시나요?", "registerWithPassword": "비밀번호로 가입" }, "trustedDevices": { "title": "신뢰할 수 있는 기기", "backToSecurity": "← 보안 설정", "description": "신뢰할 수 있는 기기는 로그인 시 2단계 인증을 건너뛸 수 있습니다. 신뢰는 30일간 유효하며 기기를 사용할 때 자동으로 연장됩니다.", "failedToLoad": "신뢰할 수 있는 기기를 불러오지 못했습니다", "noDevices": "신뢰할 수 있는 기기가 아직 없습니다.", "noDevicesHint": "2단계 인증이 활성화된 상태로 로그인할 때 기기를 30일간 신뢰하도록 선택할 수 있습니다.", "lastSeen": "마지막 접속:", "trustedSince": "신뢰 시작:", "trustExpires": "신뢰 만료:", "expired": "만료됨", "tomorrow": "내일", "inDays": "{days}일 후", "revoke": "신뢰 취소", "revokeConfirm": "이 기기에 대한 신뢰를 취소하시겠습니까? 다음에 이 기기에서 로그인할 때 2FA 코드를 입력해야 합니다.", "deviceRevoked": "기기 신뢰가 취소되었습니다", "deviceRenamed": "기기 이름이 변경되었습니다", "deviceNamePlaceholder": "기기 이름", "browser": "브라우저:", "unknownDevice": "알 수 없는 기기" }, "reauth": { "title": "재인증 필요", "subtitle": "계속하려면 본인 확인을 해주세요.", "usePassword": "비밀번호 사용", "usePasskey": "패스키 사용", "useTotp": "인증 앱 사용", "passwordPlaceholder": "비밀번호 입력", "totpPlaceholder": "6자리 코드 입력", "verify": "확인", "verifying": "확인 중...", "cancel": "취소" }, "verifyChannel": { "title": "채널 인증", "subtitle": "알림 채널로 전송된 인증 코드를 입력하세요.", "signInRequired": "로그인 필요", "signInRequiredDesc": "채널을 인증하려면 로그인해야 합니다.", "signIn": "로그인", "verifying": "인증 중...", "pleaseWait": "채널을 인증하는 중입니다. 잠시 기다려 주세요.", "successTitle": "인증 완료!", "successDesc": "{channel}이(가) 성공적으로 인증되었습니다.", "backToSettings": "설정으로 돌아가기", "channelLabel": "채널", "selectChannel": "채널 선택...", "identifierLabel": "식별자", "identifierPlaceholder": "이메일, Discord ID 등", "identifierHelp": "인증할 이메일 주소, Discord ID, Telegram 사용자 이름 또는 Signal 번호.", "codeLabel": "인증 코드", "codeHelp": "메시지에서 하이픈을 포함한 전체 코드를 복사하세요.", "verifyButton": "인증" } }