Files
tranquil-pds/frontend/src/locales/ko.json
T
LewisandTangled aca78bb8d3 scopes: tweak tests, add translations
Lewis: May this revision serve well! <did:plc:3fwecdnvtcscjnrx2p4n7alz>
2026-07-25 11:08:27 +03:00

1250 lines
65 KiB
JSON

{
"common": {
"loading": "로딩 중",
"error": "오류",
"save": "저장",
"cancel": "취소",
"back": "뒤로",
"done": "완료",
"continue": "계속",
"refresh": "새로고침",
"delete": "삭제",
"created": "생성일",
"name": "이름",
"backToDashboard": "← 대시보드",
"copied": "복사됨",
"copyToClipboard": "복사",
"verifying": "확인 중",
"saving": "저장 중",
"creating": "생성 중",
"sending": "전송 중",
"checking": "확인 중",
"signIn": "로그인",
"verify": "확인",
"revoke": "취소",
"resendCode": "재전송",
"backToLogin": "로그인으로 돌아가기",
"backToSettings": "설정으로 돌아가기"
},
"login": {
"title": "로그인",
"button": "로그인",
"redirecting": "리디렉션 중",
"chooseAccount": "계정 선택",
"signInToAnother": "또는 다른 계정으로 로그인",
"forgotPassword": "비밀번호를 잊으셨나요?",
"lostPasskey": "패스키를 분실하셨나요?",
"noAccount": "계정이 없나요?",
"createAccount": "만들기",
"removeAccount": "삭제"
},
"verification": {
"title": "계정 인증",
"subtitle": "연락처로 전송된 코드를 입력하세요",
"codeLabel": "코드",
"codePlaceholder": "6자리 코드",
"resent": "코드 전송됨"
},
"register": {
"title": "계정 만들기",
"redirecting": "리디렉션 중",
"migrateTitle": "이미 계정이 있으신가요?",
"migrateDescription": "기존 계정 마이그레이션",
"migrateLink": "계정 마이그레이션",
"handle": "핸들",
"handlePlaceholder": "사용자 이름",
"handleHint": "전체 핸들: @{handle}",
"handleTaken": "이 핸들은 이미 사용 중입니다",
"handleDotWarning": "사용자 정의 도메인 핸들은 계정 생성 후 설정에서 구성할 수 있습니다.",
"password": "비밀번호",
"passwordPlaceholder": "8자 이상",
"confirmPassword": "비밀번호 확인",
"confirmPasswordPlaceholder": "비밀번호 재입력",
"identityType": "ID 유형",
"didPlc": "did:plc",
"didPlcHint": "PLC 디렉토리에서 관리하는 이동 가능한 ID",
"didWeb": "did:web",
"didWebHint": "이 PDS에서 호스팅되는 ID (아래 경고 참조)",
"didWebDisabledHint": "이 PDS에서 사용할 수 없음 - did:plc를 사용하거나 자체 did:web을 가져오세요",
"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는 계속 작동합니다.",
"externalDid": "귀하의 did:web",
"externalDidPlaceholder": "did:web:yourdomain.com",
"externalDidHint": "도메인은 /.well-known/did.json에서 이 PDS를 가리키는 유효한 DID 문서를 제공해야 합니다",
"contactMethod": "연락 방법",
"verificationMethod": "인증 방법",
"email": "이메일",
"emailAddress": "이메일 주소",
"emailPlaceholder": "you@example.com",
"discord": "Discord",
"discordUsername": "Discord 사용자명",
"discordUsernamePlaceholder": "yourusername",
"telegram": "Telegram",
"telegramUsername": "Telegram 사용자 이름",
"telegramUsernamePlaceholder": "@yourusername",
"signal": "Signal",
"signalUsername": "Signal 사용자명",
"signalUsernamePlaceholder": "username.01",
"notConfigured": "구성되지 않음",
"inviteCode": "초대 코드",
"inviteCodePlaceholder": "초대 코드 입력",
"inviteCodeRequired": "필수",
"alreadyHaveAccount": "이미 계정이 있으신가요?",
"signIn": "로그인",
"passkeyAccount": "패스키",
"passwordAccount": "비밀번호",
"ssoAccount": "SSO",
"noSsoProviders": "이 서버에 SSO 제공자가 설정되어 있지 않습니다.",
"continueWith": "{provider}로 계속",
"validation": {
"handleRequired": "핸들은 필수입니다",
"handleNoDots": "핸들에 점을 포함할 수 없습니다. 계정 생성 후 사용자 정의 도메인을 설정할 수 있습니다.",
"passwordRequired": "비밀번호는 필수입니다",
"passwordLength": "비밀번호는 8자 이상이어야 합니다",
"passwordsMismatch": "비밀번호가 일치하지 않습니다",
"inviteCodeRequired": "초대 코드는 필수입니다",
"externalDidRequired": "외부 did:web은 필수입니다",
"externalDidFormat": "외부 DID는 did:web:으로 시작해야 합니다",
"emailRequired": "이메일 인증에는 이메일이 필요합니다",
"discordUsernameRequired": "Discord 인증에는 Discord 사용자명이 필요합니다",
"telegramRequired": "Telegram 인증에는 Telegram 사용자 이름이 필요합니다",
"signalRequired": "Signal 인증에는 사용자명이 필요합니다"
}
},
"dashboard": {
"title": "대시보드",
"accountManager": "계정 관리",
"switchAccount": "계정 전환",
"addAnotherAccount": "다른 계정 추가",
"signOut": "@{handle} 로그아웃",
"deactivatedTitle": "계정 비활성화됨",
"deactivatedMessage": "계정이 현재 비활성화되어 있습니다. 이는 일반적으로 계정 마이그레이션 중에 발생합니다. 계정이 다시 활성화될 때까지 일부 기능이 제한될 수 있습니다.",
"handle": "핸들",
"did": "DID",
"primaryContact": "주요 연락처",
"admin": "관리자",
"deactivated": "비활성화됨",
"verified": "인증됨",
"unverified": "미인증",
"navAppPasswords": "앱 비밀번호",
"navSessions": "활성 세션",
"navInviteCodes": "초대 코드",
"navSettings": "일반",
"navSecurity": "보안",
"navComms": "통신 설정",
"navRepo": "저장소 탐색기",
"navDelegation": "위임",
"navAdmin": "관리 패널",
"navDidDocument": "DID 문서",
"migrated": "마이그레이션됨",
"migratedTitle": "계정 마이그레이션됨",
"migratedMessage": "계정이 {pds}로 마이그레이션되었습니다. DID 문서는 여전히 여기에서 호스팅됩니다.",
"navAbout": "정보"
},
"about": {
"title": "정보",
"copyDebugInfo": "디버그 정보 복사",
"copied": "디버그 정보가 클립보드에 복사되었습니다",
"copyFailed": "디버그 정보 복사에 실패했습니다",
"serverSection": "서버",
"frontendSection": "프론트엔드",
"accountSection": "계정",
"environmentSection": "환경",
"serverName": "서버 이름",
"pdsVersion": "PDS 버전",
"serverUrl": "서버 URL",
"availableDomains": "사용 가능한 도메인",
"did": "DID",
"handle": "핸들",
"accountStatus": "계정 상태",
"adminStatus": "관리자",
"userAgent": "사용자 에이전트",
"locale": "언어",
"screenSize": "화면 크기",
"yes": "예",
"no": "아니요",
"unknown": "알 수 없음",
"notConfigured": "구성되지 않음",
"serverDid": "서버 DID",
"inviteCodeRequired": "초대 코드 필요",
"selfHostedDidWeb": "자체 호스팅 DID:web",
"enabled": "활성화됨",
"disabled": "비활성화됨",
"contactSection": "연락처 및 정책",
"contactEmail": "연락처 이메일",
"privacyPolicy": "개인정보 처리방침",
"termsOfService": "서비스 약관",
"communicationSection": "통신",
"availableChannels": "사용 가능한 채널",
"discordBot": "Discord 봇",
"discordAppId": "Discord 앱 ID",
"telegramBot": "Telegram 봇",
"svelteVersion": "Svelte",
"svelteI18nVersion": "svelte-i18n",
"viteVersion": "Vite",
"buildMode": "빌드 모드",
"userCount": "사용자 수"
},
"didEditor": {
"preview": "현재 DID 문서",
"verificationMethods": "검증 방법 (서명 키)",
"verificationMethodsDesc": "DID를 대신하여 동작할 수 있는 서명 키입니다. 새 PDS로 마이그레이션할 때 해당 서명 키를 여기에 추가하세요.",
"addKey": "키 추가",
"removeKey": "삭제",
"keyId": "키 ID",
"keyIdPlaceholder": "#atproto",
"publicKey": "공개 키 (Multibase)",
"publicKeyPlaceholder": "zQ3sh...",
"noKeys": "구성된 검증 방법이 없습니다. 로컬 PDS 키를 사용 중입니다.",
"alsoKnownAs": "다른 이름 (핸들)",
"alsoKnownAsDesc": "DID를 가리키는 핸들입니다. 새 PDS에서 핸들이 변경되면 업데이트하세요.",
"addHandle": "핸들 추가",
"removeHandle": "삭제",
"handle": "핸들",
"handlePlaceholder": "at://handle.pds.com",
"noHandles": "구성된 핸들이 없습니다. 로컬 핸들을 사용 중입니다.",
"serviceEndpoint": "서비스 엔드포인트",
"serviceEndpointDesc": "현재 계정 데이터를 호스팅하는 PDS입니다. 마이그레이션할 때 업데이트하세요.",
"currentPds": "현재 PDS URL",
"save": "변경사항 저장",
"success": "DID 문서가 업데이트되었습니다",
"saveFailed": "DID 문서 저장에 실패했습니다",
"loadFailed": "DID 문서 로드에 실패했습니다",
"invalidMultibase": "공개 키는 'z'로 시작하는 유효한 multibase 문자열이어야 합니다",
"helpTitle": "이것은 무엇인가요?",
"helpText": "다른 PDS로 마이그레이션하면 해당 PDS가 새 서명 키를 생성합니다. 여기에서 DID 문서를 업데이트하여 새 키와 위치를 가리키도록 하세요."
},
"settings": {
"language": "언어",
"changeEmail": "이메일 변경",
"currentEmail": "현재: {email}",
"newEmail": "새 이메일",
"newEmailPlaceholder": "new@example.com",
"changeEmailButton": "이메일 변경",
"emailInUseWarning": "이 이메일은 이미 다른 계정과 연결되어 있습니다. 계속 사용하실 수 있지만, 계정 복구 시 이메일 대신 핸들을 사용해야 할 수 있습니다.",
"requesting": "요청 중...",
"verificationCode": "인증 코드",
"verificationCodePlaceholder": "인증 코드 입력",
"confirmEmailChange": "이메일 변경 확인",
"emailTokenHint": "이메일의 코드를 입력하거나 다른 기기에서 이메일의 링크를 클릭하세요.",
"emailUpdateAuthorized": "이메일 변경이 승인되었습니다! 확인을 클릭하여 완료하세요.",
"updating": "업데이트 중...",
"changeHandle": "핸들 변경",
"currentHandle": "현재: @{handle}",
"pdsHandle": "PDS 핸들",
"customDomain": "사용자 정의 도메인",
"setupInstructions": "설정 지침",
"setupMethodsIntro": "다음 인증 방법 중 하나를 선택하세요:",
"dnsMethod": "방법 1: DNS TXT 레코드 (권장)",
"dnsMethodDesc": "도메인에 이 TXT 레코드 추가:",
"httpMethod": "방법 2: HTTP Well-Known 파일",
"httpMethodDesc": "이 URL에서 DID 제공:",
"httpMethodContent": "파일에는 다음만 포함:",
"yourDomain": "도메인",
"yourDomainPlaceholder": "example.com",
"verifyAndUpdate": "확인 후 핸들 업데이트",
"newHandle": "새 핸들",
"newHandlePlaceholder": "yourhandle",
"changeHandleButton": "핸들 변경",
"exportData": "데이터 내보내기",
"downloadRepo": "저장소 다운로드",
"exporting": "내보내기 중...",
"deleteAccount": "계정 삭제",
"deleteWarning": "이 작업은 되돌릴 수 없습니다. 모든 데이터가 영구적으로 삭제됩니다.",
"requestDeletion": "계정 삭제 요청",
"confirmationCode": "확인 코드",
"confirmationCodePlaceholder": "확인 코드 입력",
"yourPassword": "비밀번호",
"yourPasswordPlaceholder": "비밀번호 입력",
"permanentlyDelete": "계정 영구 삭제",
"deleting": "삭제 중...",
"messages": {
"emailCodeSentToCurrent": "현재 이메일 주소로 인증 코드를 보냈습니다",
"emailUpdated": "이메일이 업데이트되었습니다",
"emailUpdateFailed": "이메일 업데이트에 실패했습니다",
"handleUpdated": "핸들이 업데이트되었습니다",
"handleUpdateFailed": "핸들 업데이트에 실패했습니다",
"deletionConfirmationSent": "이메일로 삭제 확인을 보냈습니다",
"deletionRequestFailed": "계정 삭제 요청에 실패했습니다",
"deleteConfirmation": "정말로 계정을 삭제하시겠습니까? 이 작업은 되돌릴 수 없습니다.",
"deletionFailed": "계정 삭제에 실패했습니다",
"repoExported": "저장소를 내보냈습니다",
"exportFailed": "내보내기에 실패했습니다"
}
},
"appPasswords": {
"created": "앱 비밀번호가 생성되었습니다",
"createdMessage": "지금 이 비밀번호를 복사하세요. 다시 볼 수 없습니다.",
"noPasswords": "앱 비밀번호가 아직 없습니다",
"saveWarningTitle": "중요: 이 앱 비밀번호를 저장하세요!",
"saveWarningMessage": "이 비밀번호는 패스키 또는 OAuth를 지원하지 않는 앱에 로그인하는 데 필요합니다. 한 번만 볼 수 있습니다.",
"acknowledgeLabel": "앱 비밀번호를 안전한 곳에 저장했습니다",
"permissions": "권한",
"scopeFull": "전체 권한",
"scopeReadOnly": "읽기 전용",
"scopePostOnly": "게시만",
"scopeCustom": "사용자 지정",
"byController": "컨트롤러 생성",
"create": "생성",
"name": "이름",
"namePlaceholder": "앱 이름 (예: Witchsky)",
"deleteConfirm": "앱 비밀번호 \"{name}\"을(를) 취소하시겠습니까?",
"deleted": "앱 비밀번호가 취소되었습니다",
"loadFailed": "앱 비밀번호 로딩 실패",
"createFailed": "앱 비밀번호 생성 실패",
"deleteFailed": "앱 비밀번호 취소 실패",
"saveWarning": "지금 이 비밀번호를 저장하세요 - 다시 볼 수 없습니다"
},
"sessions": {
"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": "방금",
"sessionRevoked": "세션이 취소되었습니다",
"allSessionsRevoked": "다른 모든 세션이 취소되었습니다"
},
"inviteCodes": {
"createNew": "새 초대 코드 만들기",
"yourCodes": "초대 코드 목록",
"noCodes": "초대 코드가 아직 없습니다",
"available": "사용 가능",
"used": "@{handle}이(가) 사용함",
"spent": "소진됨",
"disabled": "비활성화됨",
"created": "초대 코드가 생성되었습니다",
"copy": "복사",
"disable": "비활성화",
"disableConfirm": "초대 코드 {code}을(를) 비활성화하시겠습니까?",
"disableSuccess": "초대 코드가 비활성화되었습니다",
"disableFailed": "초대 코드 비활성화 실패",
"createdOn": "{date}에 생성됨",
"loadFailed": "초대 코드 로딩 실패",
"createFailed": "초대 코드 생성 실패"
},
"security": {
"passkeys": "패스키",
"addPasskey": "패스키 추가",
"adding": "추가 중...",
"noPasskeys": "등록된 패스키가 없습니다",
"passkeyName": "패스키 이름",
"passkeyNamePlaceholder": "예: yubikey, 휴대폰",
"rename": "이름 변경",
"deletePasskey": "삭제",
"deletePasskeyConfirm": "패스키 \"{name}\"을(를) 삭제하시겠습니까? 더 이상 로그인에 사용할 수 없습니다.",
"totp": "인증 앱 (TOTP)",
"totpEnabled": "TOTP가 활성화되었습니다",
"totpDisabled": "TOTP가 비활성화되었습니다",
"enableTotp": "TOTP 활성화",
"disableTotp": "TOTP 비활성화",
"disabling": "비활성화 중...",
"totpSetupInstructions": "인증 앱으로 이 QR 코드를 스캔한 다음 6자리 코드를 입력하여 확인합니다.",
"totpCode": "TOTP 코드",
"totpCodePlaceholder": "6자리",
"verifyAndEnable": "확인 후 활성화",
"backupCodes": "백업 코드",
"backupCodesDescription": "인증 앱에 액세스할 수 없는 경우 이 코드를 사용하여 로그인합니다. 각 코드는 한 번만 사용할 수 있습니다.",
"regenerateBackupCodes": "백업 코드 재생성",
"regenerating": "재생성 중...",
"regenerateConfirm": "백업 코드를 재생성하시겠습니까? 현재 코드는 더 이상 작동하지 않습니다.",
"legacyLogin": "레거시 로그인",
"legacyLoginDescription": "사용자 이름/비밀번호로 직접 로그인(레거시 모드)을 허용합니다. 비활성화하면 MFA가 있는 OAuth를 사용해야 합니다.",
"legacyLoginOn": "레거시 로그인이 활성화되었습니다",
"legacyLoginOff": "레거시 로그인이 비활성화되었습니다",
"enableLegacyLogin": "레거시 로그인 활성화",
"disableLegacyLogin": "레거시 로그인 비활성화",
"legacyLoginWarning": "경고: 레거시 로그인을 활성화하면 직접 비밀번호 로그인에 대한 MFA가 우회됩니다. 앱 호환성이 필요한 경우에만 활성화하세요.",
"legacyAppsTitle": "레거시 앱이란?",
"legacyAppsDescription": "일부 앱(공식 Bluesky 앱 등)은 비밀번호만 필요한 이전 인증을 사용합니다. MFA가 활성화되어 있으면 이러한 앱은 두 번째 인증 요소를 우회합니다. 레거시 로그인을 비활성화하면 모든 앱이 OAuth를 사용하도록 강제되어 MFA가 적절히 적용됩니다.",
"password": "비밀번호",
"passwordStatus": "비밀번호가 설정되었습니다",
"noPassword": "비밀번호가 설정되지 않음 (패스키 전용 계정)",
"setPassword": "비밀번호 설정",
"removePassword": "비밀번호 제거",
"removing": "제거 중...",
"next": "다음: 코드 확인",
"copyToClipboard": "클립보드에 복사",
"savedMyCodes": "코드를 저장했습니다",
"cantScan": "스캔할 수 없나요? 수동 입력",
"unnamedPasskey": "이름 없는 패스키",
"added": "추가됨",
"lastUsed": "마지막 사용",
"disableTotpWarning": "이렇게 하면 계정 보안이 약해집니다.",
"removePasswordWarning": "이렇게 하면 계정이 패스키 전용이 됩니다. 등록된 패스키로만 로그인할 수 있습니다. 모든 패스키에 액세스할 수 없게 되면 알림 채널을 사용하여 계정을 복구할 수 있습니다.",
"trustedDevices": "신뢰할 수 있는 기기",
"trustedDevicesDescription": "로그인 시 2단계 인증을 건너뛸 수 있는 기기. 신뢰는 30일간 유효하며 기기를 사용하면 자동으로 연장됩니다.",
"appCompatibility": "앱 호환성",
"enterPassword": "비밀번호를 입력하세요",
"sessionExpired": "세션이 만료되었습니다. 다시 로그인하세요.",
"legacyLoginEnabled": "레거시 앱 로그인 활성화됨",
"legacyLoginDisabled": "레거시 앱 로그인 비활성화됨 - OAuth 앱만 로그인 가능",
"failedToUpdatePreference": "설정 업데이트에 실패했습니다",
"passwordRemoved": "비밀번호가 제거되었습니다. 이제 계정은 패스키 전용입니다.",
"failedToRemovePassword": "비밀번호 제거에 실패했습니다",
"failedToLoadTotpStatus": "TOTP 상태 로딩에 실패했습니다",
"failedToRegenerateBackupCodes": "백업 코드 재생성에 실패했습니다",
"totpEnabledSuccess": "2단계 인증이 활성화되었습니다",
"totpDisabledSuccess": "2단계 인증이 비활성화되었습니다",
"backupCodesCopied": "백업 코드가 클립보드에 복사되었습니다",
"failedToLoadPasskeys": "패스키 로딩에 실패했습니다",
"passkeysNotSupported": "이 브라우저에서 패스키가 지원되지 않습니다",
"passkeyCreationCancelled": "패스키 생성이 취소되었습니다",
"passkeyAddedSuccess": "패스키가 추가되었습니다",
"passkeyDeleted": "패스키가 삭제되었습니다",
"passkeyRenamed": "패스키 이름이 변경되었습니다",
"changePassword": "비밀번호 변경",
"currentPassword": "현재 비밀번호",
"currentPasswordPlaceholder": "현재 비밀번호 입력",
"newPassword": "새 비밀번호",
"newPasswordPlaceholder": "새 비밀번호 입력",
"confirmPassword": "새 비밀번호 확인",
"confirmPasswordPlaceholder": "새 비밀번호 재입력",
"passwordsDoNotMatch": "비밀번호가 일치하지 않습니다",
"passwordTooShort": "비밀번호는 8자 이상이어야 합니다",
"passwordChanged": "비밀번호가 변경되었습니다",
"failedToChangePassword": "비밀번호 변경 실패",
"changing": "변경 중...",
"setting": "설정 중...",
"passwordSet": "비밀번호가 설정되었습니다",
"failedToSetPassword": "비밀번호 설정 실패",
"failedToDisableTotp": "TOTP 비활성화 실패"
},
"comms": {
"preferredChannel": "선호 채널",
"channelConfiguration": "채널 설정",
"emailVia": "이메일로 메시지 받기",
"discordVia": "Discord DM으로 메시지 받기",
"telegramVia": "Telegram으로 메시지 받기",
"signalVia": "Signal로 메시지 받기",
"configureToEnable": "활성화하려면 아래에서 설정",
"notConfiguredOnServer": "이 서버에서 설정되지 않음",
"primary": "기본",
"verified": "인증됨",
"notVerified": "미인증",
"verifyButton": "인증",
"verifyCodePlaceholder": "인증 코드 입력",
"submit": "제출",
"savePreferences": "설정 저장",
"preferencesSaved": "통신 설정이 저장되었습니다",
"verifiedSuccess": "{channel} 인증 완료",
"messageHistory": "메시지 기록",
"noMessages": "메시지가 없습니다.",
"telegramStartBot": "또는 @{botUsername}에게 /start {handle}을 직접 보내세요",
"telegramOpenLink": "Telegram에서 인증하기",
"discordStartBot": "Discord에서 @{botUsername}에게 DM으로 /start {handle} 보내기",
"discordOpenLink": "Discord에서 인증",
"failedToLoad": "설정 로딩 실패",
"failedToSave": "설정 저장 실패",
"failedToVerify": "인증 실패",
"failedToLoadHistory": "메시지 기록 로딩 실패"
},
"repoExplorer": {
"collections": "컬렉션",
"noRecords": "이 컬렉션에 레코드가 없습니다",
"uri": "URI",
"cid": "CID",
"deleteConfirm": "레코드 {rkey}을(를) 삭제하시겠습니까? 이 작업은 되돌릴 수 없습니다.",
"unknownError": "알 수 없는 오류가 발생했습니다",
"invalidJson": "잘못된 JSON",
"collectionRequired": "컬렉션은 필수입니다",
"recordCreated": "레코드 생성됨: {uri}",
"recordUpdated": "레코드가 업데이트되었습니다",
"recordDeleted": "레코드가 삭제되었습니다",
"newRecord": "새 레코드",
"createRecord": "레코드 생성",
"filterCollections": "컬렉션 검색...",
"filterRecords": "레코드 검색...",
"noCollectionsYet": "컬렉션이 아직 없습니다. 첫 번째 레코드를 만들어 시작하세요.",
"recordJson": "레코드 JSON",
"updateRecord": "레코드 업데이트",
"collectionNsid": "컬렉션 (NSID)",
"recordKeyOptional": "레코드 키 (선택사항)",
"autoGenerated": "비워두면 자동 생성 (TID)",
"autoGeneratedHint": "비워두면 TID 기반 키가 자동 생성됩니다",
"demoPostText": "안녕하세요, 제 PDS에서 보내는 첫 번째 게시물입니다!",
"demoDisplayName": "표시 이름",
"demoBio": "간단한 자기소개를 작성하세요."
},
"admin": {
"serverConfig": "서버 설정",
"serverName": "서버 이름",
"serverNamePlaceholder": "내 PDS",
"serverNameHelp": "브라우저 탭 및 다른 곳에 표시됩니다",
"serverLogo": "서버 로고",
"logoPreview": "로고 미리보기",
"removeLogo": "삭제",
"logoHelp": "파비콘으로 사용되며 네비게이션 바에 표시됩니다",
"themeColors": "테마 색상",
"themeColorsHint": "기본 색상을 사용하려면 비워 두세요.",
"primaryLight": "기본 (라이트 모드)",
"primaryDark": "기본 (다크 모드)",
"configSaved": "서버 설정이 저장되었습니다",
"saveConfig": "설정 저장",
"serverStats": "서버 통계",
"users": "사용자",
"repos": "저장소",
"records": "레코드",
"blobStorage": "Blob 저장소",
"refreshStats": "통계 새로고침",
"userManagement": "사용자 관리",
"searchPlaceholder": "핸들로 검색 (선택사항)",
"handle": "핸들",
"email": "이메일",
"status": "상태",
"created": "생성일",
"loadMore": "더 불러오기",
"disabled": "비활성화됨",
"userDetails": "사용자 세부 정보",
"did": "DID",
"invites": "초대",
"enabled": "활성화됨",
"enableInvites": "초대 활성화",
"disableInvites": "초대 비활성화",
"deleteAccount": "계정 삭제",
"deleteConfirm": "계정 @{handle}을(를) 삭제하시겠습니까? 이 작업은 되돌릴 수 없습니다.",
"verified": "인증됨",
"unverified": "미인증",
"deactivated": "비활성화됨",
"secondaryLight": "보조 (라이트 모드)",
"secondaryDark": "보조 (다크 모드)",
"failedToLoadStats": "서버 통계 로딩 실패",
"failedToLoadUsers": "사용자 로딩 실패",
"searchToSeeUsers": "검색하여 사용자 보기",
"search": "검색",
"invitesEnabled": "사용자 초대가 활성화되었습니다",
"invitesDisabled": "사용자 초대가 비활성화되었습니다",
"userDeleted": "사용자 계정이 삭제되었습니다",
"failedToDeleteAccount": "계정 삭제에 실패했습니다",
"failedToSaveConfig": "서버 설정 저장에 실패했습니다",
"failedToLoadConfig": "서버 설정 로딩 실패",
"signalIntegration": "Signal",
"signalLinked": "연결됨",
"signalNotLinked": "연결되지 않음",
"signalLinkDevice": "기기 연결",
"signalUnlinkDevice": "연결 해제",
"signalLinking": "Signal로 스캔",
"signalLinkSuccess": "Signal 기기가 연결되었습니다",
"signalUnlinkSuccess": "Signal 기기 연결이 해제되었습니다",
"signalUnlinkConfirm": "Signal 기기 연결을 해제하시겠습니까? 알림이 중지됩니다.",
"signalLinkFailed": "Signal 기기 연결에 실패했습니다",
"signalLinkTimedOut": "Signal 연결 시간이 초과되었습니다",
"signalUnlinkFailed": "Signal 기기 연결 해제에 실패했습니다",
"signalFailedToLoad": "Signal 상태 로딩에 실패했습니다"
},
"oauth": {
"login": {
"title": "로그인",
"subtitle": "로그인 중",
"signingIn": "로그인 중",
"authenticating": "인증 중",
"checkingPasskey": "확인 중",
"signInWithPasskey": "패스키",
"passkeyNotSetUp": "패스키 없음",
"orUsePassword": "또는",
"password": "비밀번호",
"rememberDevice": "이 기기 기억하기",
"passkeyHintChecking": "확인 중",
"passkeyHintAvailable": "패스키 사용",
"passkeyHintNotAvailable": "패스키 없음",
"passwordPlaceholder": "비밀번호",
"usePasskey": "패스키 사용",
"passkeyNotAllowed": "이 사이트에 사용 가능한 패스키가 없습니다",
"orUseCredentials": "또는",
"verificationResent": "인증 코드 전송됨"
},
"register": {
"title": "계정 만들기",
"subtitle": "앱",
"subtitleGeneric": "계정 만들기",
"haveAccount": "계정이 있으신가요? 로그인"
},
"sso": {
"linkedAccounts": "연결된 계정",
"noLinkedAccounts": "연결된 계정 없음",
"unlinkConfirm": "이 계정의 연결을 해제하시겠습니까?",
"unlinked": "{provider} 연결 해제됨",
"linkedAt": "연결됨",
"unlink": "연결 해제",
"linkNewAccount": "계정 연결",
"linked": "연결됨",
"linkSuccess": "계정이 연결되었습니다",
"linkFailed": "계정 연결 실패",
"unlinkFailed": "연결 해제 실패"
},
"consent": {
"title": "앱 승인",
"appWantsAccess": "{app}이(가) 계정에 액세스하려고 합니다",
"authorize": "승인",
"deny": "거부",
"authorizing": "승인 중...",
"signingInAs": "로그인 계정:",
"permissionsRequested": "요청된 권한",
"required": "필수",
"rememberChoiceLabel": "이 앱에 대한 선택 기억하기",
"permissionSets": "권한 번들",
"showIncludedScopes": "포함된 권한 보기 ({count})",
"unavailablePermissions": "사용할 수 없는 권한",
"unavailableLimited": "위임으로 제한됨",
"unavailableFailed": "불러오기 실패",
"setPartiallyLimited": "위임 설정이 이 번들의 일부 권한을 제한합니다. 허용되지 않은 권한은 \"사용할 수 없는 권한\" 항목에서 확인하세요.",
"setFailureReason": {
"not_found": "이 번들을 찾을 수 없어 부여할 수 없습니다.",
"unreachable": "번들 게시자에 연결할 수 없어 지금은 부여할 수 없습니다.",
"malformed": "이 번들의 이름이 유효한 식별자가 아니어서 부여할 수 없습니다.",
"not_a_permission_set": "이 식별자는 권한 번들을 가리키지 않아 부여할 수 없습니다.",
"malformed_lexicon": "이 번들이 잘못 게시되어 부여할 수 없습니다.",
"empty_permissions": "이 번들은 현재 어떤 권한도 부여하지 않습니다.",
"unknown": "이 번들은 부여할 수 없습니다."
},
"permTable": {
"data": "데이터",
"create": "생성",
"update": "수정",
"delete": "삭제",
"allData": "모든 컬렉션",
"apiAccess": "API 접근"
},
"scopes": {
"atproto": {
"name": "AT Protocol 액세스",
"description": "신원 확인 및 세션 설정"
},
"atprotoWithGranular": {
"name": "AT Protocol 액세스",
"description": "AT Protocol 기본 범위 (권한은 아래 선택한 옵션에 의해 결정됨)"
}
},
"unexpectedState": {
"title": "예기치 않은 상태",
"description": "동의 페이지가 예기치 않은 상태입니다. 브라우저 콘솔에서 오류를 확인하세요.",
"reload": "페이지 새로고침"
}
},
"accounts": {
"title": "계정 선택",
"useAnother": "다른 계정 사용"
},
"twoFactorCode": {
"title": "인증",
"subtitle": "{channel}(으)로 코드 전송됨",
"codeLabel": "코드",
"codePlaceholder": "6자리 코드",
"errors": {
"missingRequestUri": "요청 URI 없음",
"verificationFailed": "인증 실패",
"connectionFailed": "연결 실패",
"unexpectedResponse": "예기치 않은 응답"
}
},
"totp": {
"title": "인증 코드",
"codePlaceholder": "6자리 코드",
"backupCodePlaceholder": "백업 코드",
"trustDevice": "이 기기를 30일간 신뢰",
"hintBackupCode": "백업 코드",
"hintTotpCode": "인증 코드"
},
"error": {
"title": "승인 실패",
"tryAgain": "다시 시도",
"genericError": "예기치 않은 오류가 발생했습니다"
}
},
"sso_register": {
"title": "등록 완료",
"subtitle": "{provider}로 계정 생성",
"handle_label": "핸들 선택",
"handle_available": "사용 가능",
"handle_taken": "이미 사용 중",
"submit": "계정 생성",
"error_expired": "등록 세션이 만료되었습니다. 다시 시도해 주세요.",
"error_handle_required": "핸들을 선택해 주세요",
"emailVerifiedByProvider": "이 이메일은 {provider}에서 인증되었습니다. 추가 인증이 필요하지 않습니다.",
"emailChangedNeedsVerification": "다른 이메일을 사용하시면 인증이 필요합니다.",
"infoAfterTitle": "계정 생성 후",
"infoAddPassword": "기존 로그인을 위한 비밀번호 추가",
"infoAddPasskey": "비밀번호 없는 로그인을 위한 패스키 설정",
"infoLinkProviders": "추가 SSO 제공자 연결",
"infoChangeHandle": "핸들 변경 또는 사용자 정의 도메인 사용",
"tryAgain": "다시 시도"
},
"verify": {
"title": "계정 인증",
"subtitle": "{channel}(으)로 인증 코드를 보냈습니다. 아래에 입력하여 등록을 완료하세요.",
"tokenTitle": "인증",
"tokenSubtitle": "인증 코드와 전송된 식별자를 입력하세요.",
"codePlaceholder": "인증 코드 붙여넣기",
"codeLabel": "인증 코드",
"codeHelp": "메시지에서 하이픈을 를 복사하세요",
"pleaseWait": "잠시 기다려 주세요...",
"codeResent": "인증 코드를 다시 보냈습니다!",
"codeResentDetail": "인증 코드가 전송되었습니다! 받은 편지함을 확인하세요.",
"verified": "인증 완료!",
"channelVerified": "{channel}이(가) 성공적으로 인증되었습니다.",
"canNowSignIn": "이제 계정에 로그인할 수 있습니다.",
"migrationContinue": "이 탭을 닫고 원래 창에서 마이그레이션을 계속할 수 있습니다.",
"continue": "계속",
"identifierLabel": "이메일 또는 식별자",
"identifierPlaceholder": "you@example.com",
"identifierHelp": "코드가 전송된 이메일 주소 또는 식별자",
"verifyingAccount": "인증 중인 계정: @{handle}",
"startOver": "다른 계정으로 다시 시작",
"noPending": "보류 중인 인증이 없습니다.",
"noPendingInfo": "최근에 계정을 만들고 인증이 필요한 경우 새 계정을 만들어야 합니다. 이미 계정을 인증한 경우 로그인할 수 있습니다.",
"createAccount": "계정 만들기",
"signIn": "로그인",
"emailUpdateCodeHelp": "코드가 현재 이메일 주소로 전송되었습니다",
"emailUpdateFailed": "이메일 주소 업데이트 실패",
"emailUpdateRequiresAuth": "이메일 주소를 업데이트하려면 로그인해야 합니다.",
"emailUpdateSubtitle": "새 이메일 주소와 현재 이메일로 전송된 인증 코드를 입력하세요.",
"emailUpdateTitle": "이메일 주소 업데이트",
"emailUpdated": "이메일 주소가 성공적으로 업데이트되었습니다.",
"emailUpdatedInfo": "새 이메일 주소를 인증해야 할 수 있습니다.",
"emailAuthorizeSuccess": "이메일 업데이트가 승인되었습니다.",
"emailAuthorizeInfo": "이제 원래 기기에서 변경을 완료할 수 있습니다.",
"newEmailLabel": "새 이메일 주소",
"newEmailPlaceholder": "new@example.com",
"updateEmail": "이메일 업데이트",
"updating": "업데이트 중..."
},
"resetPassword": {
"title": "비밀번호 재설정",
"forgotTitle": "비밀번호를 잊으셨나요",
"subtitle": "받은 코드를 입력하고 새 비밀번호를 선택하세요.",
"forgotSubtitle": "핸들 또는 이메일을 입력하면 비밀번호 재설정 코드를 보내드립니다.",
"handleOrEmail": "핸들 또는 이메일",
"emailPlaceholder": "핸들 또는 you@example.com",
"sendCode": "재설정 코드 보내기",
"sending": "전송 중...",
"codeSent": "비밀번호 재설정 코드를 보냈습니다! 선호하는 알림 채널을 확인하세요.",
"code": "재설정 코드",
"codePlaceholder": "재설정 코드 입력",
"newPassword": "새 비밀번호",
"newPasswordPlaceholder": "8자 이상",
"confirmPassword": "비밀번호 확인",
"confirmPasswordPlaceholder": "새 비밀번호 재입력",
"resetButton": "비밀번호 재설정",
"resetting": "재설정 중...",
"success": "비밀번호가 재설정되었습니다!",
"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": "전송 중..."
},
"registerPasskey": {
"externalDid": "귀하의 did:web",
"externalDidPlaceholder": "did:web:yourdomain.com",
"errors": {
"handleRequired": "핸들은 필수입니다",
"handleNoDots": "핸들에 점을 포함할 수 없습니다. 계정 생성 후 사용자 정의 도메인을 설정할 수 있습니다.",
"passkeysNotSupported": "이 브라우저에서 패스키가 지원되지 않습니다. 비밀번호 기반 계정을 만들거나 패스키를 지원하는 브라우저를 사용하세요.",
"passkeyCancelled": "패스키 생성이 취소되었습니다",
"passkeyFailed": "패스키 등록에 실패했습니다",
"signalRequired": "Signal 인증에는 사용자명이 필요합니다",
"inviteRequired": "초대 코드가 필요합니다",
"externalDidRequired": "외부 did:web이 필요합니다",
"emailRequired": "이메일 인증에는 이메일이 필요합니다",
"telegramRequired": "Telegram 인증에는 Telegram 사용자 이름이 필요합니다",
"externalDidFormat": "외부 DID는 did:web:으로 시작해야 합니다",
"discordRequired": "Discord 인증에는 Discord 사용자명이 필요합니다"
},
"identityType": "아이덴티티 유형",
"identityTypeHint": "분산 아이덴티티 관리 방법을 선택하세요.",
"passkeyNamePlaceholder": "예: yubikey, 휴대폰",
"passkeyNameHint": "이 패스키를 식별할 수 있는 이름",
"createPasskey": "패스키 생성",
"didPlcRecommended": "did:plc (권장)",
"didPlcHint": "PLC Directory에서 관리하는 이동 가능한 아이덴티티",
"didWeb": "did:web",
"didWebHint": "이 PDS에서 호스팅되는 아이덴티티 (아래 경고 읽기)",
"didWebDisabledHint": "이 PDS에서 사용할 수 없음 - did:plc를 사용하거나 자체 did:web을 가져오세요",
"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 문서를 제공해야 합니다",
"activatingAccount": "활성화 중",
"creatingAccount": "계정 생성 중",
"passkeyDescription": "이 계정에 패스키 등록",
"passkeyName": "패스키 이름",
"setupPasskey": "패스키 생성"
},
"trustedDevices": {
"noDevices": "신뢰할 수 있는 기기가 아직 없습니다.",
"noDevicesHint": "2단계 인증이 활성화된 상태로 로그인할 때 기기를 30일간 신뢰하도록 선택할 수 있습니다.",
"lastSeen": "마지막 접속:",
"trustedSince": "신뢰 시작:",
"expired": "만료됨",
"tomorrow": "내일",
"inDays": "{days}일 후",
"revoke": "신뢰 취소",
"revokeConfirm": "이 기기에 대한 신뢰를 취소하시겠습니까? 다음에 이 기기에서 로그인할 때 2FA 코드를 입력해야 합니다.",
"deviceRevoked": "기기 신뢰가 취소되었습니다",
"deviceRenamed": "기기 이름이 변경되었습니다",
"deviceNamePlaceholder": "기기 이름",
"unknownDevice": "알 수 없는 기기"
},
"reauth": {
"title": "재인증",
"password": "비밀번호",
"totp": "TOTP",
"passkey": "패스키",
"authenticatorCode": "인증 코드",
"usePasskey": "패스키",
"authenticating": "인증 중",
"cancel": "취소"
},
"delegation": {
"controllers": "컨트롤러",
"controlledAccounts": "관리 계정",
"noControllers": "아직 컨트롤러가 없습니다",
"noControlledAccounts": "관리 계정이 없습니다",
"addController": "컨트롤러 추가",
"handle": "핸들",
"did": "DID",
"scopeOwner": "소유자",
"scopeViewer": "뷰어",
"scopeCustom": "사용자 정의",
"actAs": "로 활동",
"auditLog": "감사 로그",
"actor": "액터",
"details": "세부정보",
"actionGrantCreated": "권한 생성",
"actionGrantRevoked": "권한 취소",
"actionScopesModified": "권한 수정",
"actionTokenIssued": "토큰 발급",
"actionRepoWrite": "저장소 쓰기",
"actionBlobUpload": "Blob 업로드",
"actionAccountAction": "계정 작업",
"previous": "이전",
"next": "다음",
"adding": "추가 중...",
"accessLevel": "액세스 수준",
"addControllerButton": "+ 컨트롤러 추가",
"addControllerWarningTitle": "중요: 로그인 방식이 변경됩니다",
"addControllerWarningText": "컨트롤러를 추가하면 OAuth를 통해 이 계정에 로그인할 수 있는 것은 컨트롤러 계정뿐입니다. 서드파티 앱이나 웹 인터페이스에서 본인 자격 증명으로 직접 로그인할 수 없게 됩니다.",
"addControllerWarningBullet1": "컨트롤러는 부여한 권한으로 귀하를 대신하여 작업할 수 있습니다",
"addControllerWarningBullet2": "먼저 컨트롤러로 로그인한 후 이 계정으로 전환해야 합니다",
"addControllerWarningBullet3": "나중에 컨트롤러를 제거하면 직접 로그인 권한을 복구할 수 있습니다",
"addControllerConfirm": "직접 로그인할 수 없게 되는 것을 이해합니다",
"auditLogDesc": "모든 위임 활동 보기",
"cannotAddControllers": "다른 계정을 관리하고 있어 컨트롤러를 추가할 수 없습니다. 계정은 컨트롤러를 가지거나 다른 계정을 관리할 수 있지만 둘 다는 불가능합니다.",
"cannotControlAccounts": "이 계정에 컨트롤러가 있어 다른 계정을 관리할 수 없습니다. 계정은 컨트롤러를 가지거나 다른 계정을 관리할 수 있지만 둘 다는 불가능합니다.",
"controlledAccountsDesc": "귀하가 대신 작업할 수 있는 계정",
"controlledAccountsLocalOnly": "이 PDS의 계정만 표시됩니다. 다른 PDS에서 별도로 컨트롤러 액세스를 부여했을 수 있습니다",
"controllerAdded": "컨트롤러가 추가되었습니다",
"controllerDid": "컨트롤러 DID",
"controllerIdentifier": "컨트롤러 핸들 또는 DID",
"controllerRemoved": "컨트롤러가 제거되었습니다",
"controllersDesc": "귀하를 대신하여 작업할 수 있는 계정",
"createAccount": "계정 생성",
"createDelegatedAccount": "위임 계정 생성",
"createDelegatedAccountButton": "+ 위임 계정 생성",
"emailOptional": "이메일 (선택사항)",
"granted": "허용일",
"inactive": "비활성",
"remove": "제거",
"removeConfirm": "이 컨트롤러를 제거하시겠습니까?",
"yourAccessLevel": "귀하의 액세스 수준",
"accountCreated": "위임 계정이 생성되었습니다: {handle}",
"noAuditEntries": "감사 항목 없음",
"target": "대상",
"failedToLoadAudit": "감사 로그 로딩 실패"
},
"actAs": {
"title": "로 활동",
"noAccountSpecified": "계정 DID가 지정되지 않았습니다",
"noAccess": "이 계정에 대한 액세스 권한이 없습니다",
"failedToInitiate": "인증 시작에 실패했습니다",
"invalidResponse": "서버에서 잘못된 응답을 받았습니다",
"preparing": "위임 계정 로그인 준비 중...",
"backToControllers": "컨트롤러로 돌아가기"
},
"oauthDelegation": {
"loading": "로딩 중...",
"title": "위임 계정",
"isDelegated": "{handle}은(는) 위임 계정입니다.",
"enterControllerHandle": "이 계정에 액세스하려면 컨트롤러 계정으로 로그인하세요.",
"controllerHandle": "컨트롤러 핸들",
"handlePlaceholder": "handle.example.com",
"checking": "확인 중...",
"controllerNotFound": "계정을 찾을 수 없거나 이 위임 계정에 대한 액세스 권한이 없습니다",
"missingParams": "위임 매개변수가 없습니다",
"missingInfo": "필요한 정보가 없습니다",
"passkeyCancelled": "패스키 인증이 취소되었습니다",
"passkeyFailed": "패스키 인증에 실패했습니다",
"failedPasskeyStart": "패스키 로그인 시작에 실패했습니다",
"authFailed": "인증에 실패했습니다",
"unexpectedResponse": "서버에서 예기치 않은 응답을 받았습니다",
"signInAsController": "컨트롤러로 로그인",
"authenticateAs": "{controller}(으)로 인증하여 {delegated}를 대신합니다",
"useDifferentController": "다른 컨트롤러 사용",
"signInWithPasskey": "패스키로 로그인",
"authenticating": "인증 중...",
"usePasskey": "패스키 사용",
"or": "또는",
"password": "비밀번호",
"enterPassword": "비밀번호 입력",
"rememberDevice": "이 기기 기억하기",
"signingIn": "로그인 중...",
"signIn": "로그인",
"goBack": "뒤로",
"unableToLoad": "위임 정보를 로드할 수 없습니다"
},
"oauthConsent": {
"delegatedAccess": "위임 액세스",
"actingAs": "활동 계정",
"controller": "컨트롤러",
"accessLevel": "액세스 수준",
"readOnlyAccess": "읽기 전용 액세스",
"readOnlyDesc": "공개 정보만 볼 수 있습니다. 이 계정에 대한 쓰기 권한이 없습니다.",
"permissionsLimited": "권한 제한됨",
"permissionsLimitedDesc": "앱이 무엇을 요청하든 실제 권한은 {level} 액세스 수준으로 제한됩니다.",
"viewerLimitedDesc": "뷰어로서 읽기 전용 액세스 권한만 있습니다. 이 앱은 이 계정에서 콘텐츠를 생성, 수정 또는 삭제할 수 없습니다.",
"editorLimitedDesc": "편집자로서 콘텐츠를 생성하고 편집할 수 있지만 계정 설정이나 보안을 관리할 수 없습니다."
},
"migration": {
"title": "계정 마이그레이션",
"subtitle": "AT Protocol 아이덴티티를 서버 간에 이동",
"migrateHere": "여기로 마이그레이션",
"migrateHereDesc": "기존 AT Protocol 계정을 다른 서버에서 이 PDS로 이동합니다.",
"bringDid": "DID와 아이덴티티 가져오기",
"transferData": "모든 데이터 전송",
"keepFollowers": "팔로워 유지",
"whatIsMigration": "계정 마이그레이션이란?",
"whatIsMigrationDesc": "계정 마이그레이션을 통해 AT Protocol 아이덴티티를 개인 데이터 서버(PDS) 간에 이동할 수 있습니다. DID(분산 식별자)는 동일하게 유지되므로 팔로워와 소셜 연결이 보존됩니다.",
"beforeMigrate": "마이그레이션 전 확인사항",
"beforeMigrate1": "현재 계정 인증 정보가 필요합니다",
"beforeMigrate2": "보안을 위해 이메일 인증이 필요합니다",
"beforeMigrate3": "이미지가 많은 대용량 계정은 몇 분이 걸릴 수 있습니다",
"beforeMigrate4": "이전 PDS에 계정 비활성화가 통보됩니다",
"importantWarning": "계정 마이그레이션은 중요한 작업입니다. 대상 PDS를 신뢰하고 데이터가 이동된다는 것을 이해하세요. 문제가 발생하면 수동 복구가 필요할 수 있습니다.",
"learnMore": "마이그레이션 위험에 대해 자세히 알아보기",
"offlineRestore": "오프라인 복원",
"offlineRestoreDesc": "이전 PDS를 사용할 수 없을 때 백업에서 복원합니다.",
"offlineFeature1": "CAR 파일 백업 사용",
"offlineFeature2": "회전 키로 소유권 증명",
"offlineFeature3": "종료된 서버 복구",
"oauthCompleting": "인증 완료 중...",
"oauthFailed": "인증 실패",
"tryAgain": "다시 시도",
"resume": {
"title": "마이그레이션을 재개하시겠습니까?",
"incomplete": "완료되지 않은 마이그레이션이 있습니다:",
"direction": "방향",
"migratingHere": "여기로 마이그레이션 중",
"from": "출발지",
"to": "목적지",
"progress": "진행 상황",
"reenterCredentials": "계속하려면 인증 정보를 다시 입력해야 합니다.",
"startOver": "처음부터 다시 시작",
"resumeButton": "재개"
},
"inbound": {
"welcome": {
"title": "이 PDS로 마이그레이션",
"desc": "기존 AT Protocol 계정을 이 서버로 이동합니다.",
"understand": "위험을 이해하고 계속 진행합니다"
},
"sourceAuth": {
"title": "현재 핸들 입력",
"titleResume": "마이그레이션 재개",
"desc": "마이그레이션할 계정의 핸들을 입력하세요.",
"descResume": "마이그레이션을 계속하려면 소스 PDS에 재인증하세요.",
"handle": "핸들",
"handlePlaceholder": "alice.bsky.social",
"handleHint": "현재 PDS에서의 핸들",
"continue": "계속",
"connecting": "연결 중...",
"reauthenticate": "재인증",
"resumeTitle": "마이그레이션 진행 중",
"resumeFrom": "출발지",
"resumeTo": "목적지",
"resumeProgress": "진행 상황",
"resumeOAuthNote": "계속하려면 OAuth로 재인증이 필요합니다."
},
"chooseHandle": {
"title": "새 핸들 선택",
"desc": "이 PDS에서 사용할 계정 핸들을 선택하세요.",
"migratingFrom": "마이그레이션 원본",
"handleChoice": "핸들",
"keepExisting": "기존 핸들 유지",
"createNew": "새 핸들 생성",
"existingHandle": "현재 핸들",
"verifyInstructions": "DNS 또는 HTTP로 소유권 확인",
"or": "또는",
"returning": "반환값",
"verifyOwnership": "소유권 확인",
"verifying": "확인 중",
"verified": "확인됨",
"checkAgain": "다시 확인",
"newHandle": "새 핸들",
"checkingAvailability": "사용 가능 여부 확인 중...",
"handleAvailable": "핸들을 사용할 수 있습니다!",
"handleTaken": "핸들이 이미 사용 중입니다",
"handleTooShort": "핸들은 최소 3자 이상이어야 합니다",
"handleHint": "전체 핸들(예: alice.mydomain.com)을 입력하여 자체 도메인을 사용할 수도 있습니다",
"email": "이메일 주소",
"authMethod": "인증 방법",
"authPassword": "비밀번호",
"authPasswordDesc": "기존 비밀번호 기반 로그인",
"authPasskey": "패스키",
"authPasskeyDesc": "생체 인식 또는 보안 키를 사용한 비밀번호 없는 로그인",
"password": "비밀번호",
"passwordHint": "최소 8자",
"passkeyInfo": "계정 생성 후 패스키를 설정합니다. 기기에서 생체 인식(지문, Face ID) 또는 보안 키 사용을 요청합니다.",
"inviteCode": "초대 코드"
},
"review": {
"title": "마이그레이션 검토",
"desc": "마이그레이션 세부 정보를 확인하세요.",
"currentHandle": "현재 핸들",
"newHandle": "새 핸들",
"did": "DID",
"sourcePds": "소스 PDS",
"targetPds": "대상 PDS",
"email": "이메일",
"authentication": "인증",
"authPasskey": "패스키 (비밀번호 없음)",
"authPassword": "비밀번호",
"warning": "\"마이그레이션 시작\"을 클릭하면 저장소와 데이터 전송이 시작됩니다. 이 과정은 쉽게 되돌릴 수 없습니다.",
"startMigration": "마이그레이션 시작",
"starting": "시작 중..."
},
"migrating": {
"title": "마이그레이션 진행 중",
"desc": "계정을 전송하는 중입니다...",
"exportRepo": "저장소 내보내기",
"importRepo": "저장소 가져오기",
"migrateBlobs": "blob 마이그레이션",
"migratePrefs": "환경설정 마이그레이션"
},
"passkeySetup": {
"title": "패스키 설정",
"desc": "이메일이 인증되었습니다. 안전한 비밀번호 없는 로그인을 위해 패스키를 설정하세요.",
"nameLabel": "패스키 이름 (선택사항)",
"namePlaceholder": "예: yubikey, 휴대폰",
"nameHint": "이 패스키를 식별하기 위한 이름",
"instructions": "아래 버튼을 클릭하여 패스키를 등록하세요. 기기에서 생체 인식(지문, Face ID) 또는 보안 키 사용을 요청합니다.",
"register": "패스키 등록",
"registering": "등록 중..."
},
"appPassword": {
"title": "앱 비밀번호 저장",
"desc": "패스키가 생성되었습니다. 아직 패스키를 지원하지 않는 앱에서 사용할 앱 비밀번호가 생성되었습니다.",
"warning": "이 앱 비밀번호는 아직 패스키를 지원하지 않는 앱(예: bsky.app)에 로그인할 때 필요합니다. 이 비밀번호는 한 번만 표시됩니다.",
"label": "앱 비밀번호:",
"saved": "앱 비밀번호를 안전한 곳에 저장했습니다",
"continue": "계속"
},
"emailVerify": {
"title": "계정 인증",
"desc": "인증 코드가 {email}(으)로 전송되었습니다.",
"hint": "아래에 코드를 입력하거나, 메시지의 링크를 클릭하여 자동으로 계속할 수 있습니다.",
"tokenLabel": "인증 코드",
"tokenPlaceholder": "인증 코드 입력",
"resend": "코드 재전송",
"telegramInstructions": "Telegram 봇에 메시지를 보내 계정을 인증하세요.",
"discordInstructions": "Discord 봇에 메시지를 보내 계정을 인증하세요.",
"openTelegram": "Telegram에서 인증하기",
"openDiscord": "Discord에서 인증하기",
"waitingForVerification": "인증 대기 중..."
},
"plcToken": {
"title": "마이그레이션 확인",
"desc": "이전 계정에 등록된 이메일로 인증 코드가 전송되었습니다.",
"info": "이 코드는 계정 접근 권한을 확인하고 이 PDS를 가리키도록 아이덴티티 업데이트를 승인합니다.",
"tokenLabel": "인증 코드",
"tokenPlaceholder": "이메일에서 받은 코드 입력",
"resend": "코드 재전송",
"complete": "마이그레이션 완료",
"completing": "확인 중..."
},
"didWebUpdate": {
"title": "DID 문서 업데이트",
"desc": "did:web 아이덴티티를 사용하고 있으므로 DID 문서를 이 PDS를 가리키도록 업데이트해야 합니다.",
"yourDid": "당신의 DID:",
"updateInstructions": "도메인의 did.json 파일을 업데이트하여 atproto_pds 서비스 엔드포인트가 이 PDS를 가리키도록 하세요:",
"important": "중요:",
"verifyFirst": "마이그레이션을 완료하기 전에 DID 문서가 업데이트되고 공개적으로 접근 가능한지 확인하세요.",
"fileLocation": "파일 위치:",
"complete": "마이그레이션 완료",
"completing": "완료 중..."
},
"finalizing": {
"title": "마이그레이션 완료 중",
"desc": "마이그레이션을 완료하는 중입니다...",
"signingPlc": "아이덴티티 업데이트 서명",
"activating": "새 PDS에서 계정 활성화",
"deactivating": "이전 PDS에서 계정 비활성화"
},
"success": {
"title": "마이그레이션 완료!",
"desc": "계정이 이 PDS로 성공적으로 마이그레이션되었습니다.",
"yourNewHandle": "새 핸들",
"did": "DID",
"blobsWarning": "{count}개의 blob을 마이그레이션할 수 없습니다. 더 이상 사용할 수 없는 이미지나 기타 미디어일 수 있습니다.",
"redirecting": "대시보드로 리디렉션 중..."
},
"error": {
"title": "마이그레이션 오류",
"desc": "마이그레이션 중 오류가 발생했습니다.",
"startOver": "처음부터 다시 시작",
"unknown": "알 수 없는 오류가 발생했습니다."
},
"common": {
"back": "뒤로",
"cancel": "취소",
"continue": "계속",
"whatWillHappen": "진행 과정:",
"step1": "현재 PDS에 로그인",
"step2": "이 서버에서 새 핸들 선택",
"step3": "저장소와 blob이 전송됩니다",
"step4": "이메일로 마이그레이션 확인",
"step5": "아이덴티티가 여기를 가리키도록 업데이트됩니다",
"beforeProceed": "진행하기 전에:",
"warning1": "현재 계정에 등록된 이메일에 접근할 수 있어야 합니다",
"warning2": "대용량 계정 전송에는 몇 분이 걸릴 수 있습니다",
"warning3": "마이그레이션 후 이전 계정은 비활성화됩니다"
}
},
"offline": {
"welcome": {
"title": "백업에서 복원",
"desc": "CAR 파일 백업과 회전 키를 사용하여 계정을 복원합니다. 이전 PDS를 사용할 수 없을 때 사용하세요.",
"warningTitle": "이 방법을 사용해야 할 때",
"warningDesc": "이 오프라인 복원은 이전 PDS가 종료되었거나, 접근할 수 없거나, 잠긴 경우의 재해 복구용입니다. 이전 PDS가 여전히 사용 가능하면 표준 마이그레이션을 사용하세요.",
"requirementsTitle": "필요한 것",
"requirement1": "저장소의 CAR 파일 백업",
"requirement2": "회전 키 (DID의 개인 키)",
"requirement3": "당신의 DID (did:plc:xxx)",
"understand": "이해하고 계속 진행합니다"
},
"provideDid": {
"title": "DID 입력",
"desc": "복원할 계정의 DID를 입력하세요.",
"label": "당신의 DID",
"hint": "분산 식별자 (예: did:plc:abc123)"
},
"uploadCar": {
"title": "CAR 파일 업로드",
"desc": "저장소 백업 파일을 업로드하세요.",
"label": "CAR 파일",
"hint": "백업에서 .car 파일을 선택하세요",
"reuploadWarningTitle": "CAR 파일 필요",
"reuploadWarning": "세션이 복원되었지만 CAR 파일을 다시 업로드해야 합니다. 보안상의 이유로 파일 내용은 세션 간에 저장되지 않습니다."
},
"rotationKey": {
"title": "회전 키 제공",
"desc": "이 DID의 소유권을 증명하기 위해 회전 키를 입력하세요.",
"securityWarningTitle": "보안 경고",
"securityWarning1": "회전 키는 매우 민감합니다 - 마스터 비밀번호처럼 취급하세요",
"securityWarning2": "신뢰할 수 있는 장치와 네트워크에서만 입력하세요",
"securityWarning3": "이 키는 마이그레이션 완료 후 저장되지 않습니다",
"label": "회전 키",
"placeholder": "개인 키 입력 (hex, base58 또는 JWK)",
"hint": "DID 문서의 회전 키 중 하나에 해당하는 개인 키",
"valid": "키가 유효하고 DID의 회전 키와 일치합니다",
"invalid": "키가 DID 문서의 어떤 회전 키와도 일치하지 않습니다",
"validating": "키 검증 중...",
"validate": "키 검증"
},
"chooseHandle": {
"migratingDid": "DID 복원 중"
},
"review": {
"desc": "오프라인 복원 세부 정보를 확인하세요.",
"carFile": "CAR 파일",
"rotationKey": "회전 키",
"plcWarningTitle": "되돌릴 수 없는 지점",
"plcWarning": "시작하면 DID 문서가 이 PDS를 가리키도록 업데이트됩니다. 문제가 발생하면 회전 키를 사용하여 복구할 수 있지만, 손상된 아이덴티티 상태를 피하려면 마이그레이션을 완료해야 합니다."
},
"migrating": {
"title": "계정 복원 중",
"desc": "계정을 복원하는 중입니다...",
"creating": "계정 생성 중",
"importing": "저장소 가져오는 중"
},
"success": {
"desc": "계정이 이 PDS에 성공적으로 복원되었습니다."
},
"blobs": {
"title": "Blob 마이그레이션 중",
"desc": "이전 PDS에서 이미지와 미디어를 복구하는 중...",
"migrating": "Blob 마이그레이션 중",
"failedTitle": "일부 Blob을 마이그레이션할 수 없음",
"failedDesc": "{count}개의 Blob을 이전 PDS에서 가져올 수 없습니다. 서버에 연결할 수 없거나 파일이 삭제되었을 수 있습니다."
}
}
}
}