2026-08-29 12:46:15 -04:00
{
"htmlLang" : "ko" ,
"ogLocale" : "ko_KR" ,
"dir" : "ltr" ,
"nativeName" : "한국어" ,
"abbr" : "KO" ,
"meta" : {
"title" : "SecureBit.chat - 종단 간 암호화 비공개 메신저" ,
"description" : "SecureBit.chat은 브라우저 안에서만 동작하는 무료 P2P 메신저로, 종단 간 암호화를 사용합니다. 계정도 없고 메시지를 보관하는 서버도 없습니다 - ECDH P-384, AES-256-GCM, 그리고 직접 만나서 하는 SAS 확인." ,
"keywords" : "암호화 메신저, 종단 간 암호화, P2P 채팅, P2P 메신저, ECDH, DTLS, SAS 확인, WebRTC, 비공개 채팅, 안전한 채팅, 서버 없음, 계정 없음, 중간자 공격 방어, 순방향 비밀성" ,
"ogTitle" : "SecureBit.chat - 종단 간 암호화 P2P 채팅" ,
"ogDescription" : "브라우저 안에서만 동작하는 안전한 메신저입니다. 계정도 없고 메시지를 보관하는 서버도 없습니다. 직접 운영하는 STUN/TURN 서버를 쓸 수 있습니다 - 무엇도 강요하지 않습니다." ,
"ogImageAlt" : "SecureBit.chat - 종단 간 암호화 P2P 채팅" ,
"twitterTitle" : "SecureBit.chat - 종단 간 암호화 P2P 채팅" ,
"twitterDescription" : "브라우저 안에서만 동작하는 안전한 메신저입니다. 계정도 없고 메시지를 보관하는 서버도 없습니다." ,
"twitterImageAlt" : "SecureBit.chat - 종단 간 암호화 P2P 채팅"
},
"schema" : {
"siteDescription" : "브라우저 안에서만 동작하는 종단 간 암호화 P2P 채팅입니다." ,
"appDescription" : "무료 종단 간 암호화 P2P 메신저입니다. 계정도 없고 메시지를 보관하는 서버도 없습니다 - ECDH P-384, AES-256-GCM, 직접 만나서 하는 SAS 확인." ,
"operatingSystem" : "제한 없음 (최신 웹 브라우저)" ,
"browserRequirements" : "WebRTC와 Web Crypto API가 필요합니다" ,
"featureList" : [
"종단 간 암호화 (ECDH P-384, AES-256-GCM)" ,
"메시지 서버 없이 WebRTC로 연결되는 P2P" ,
"중간자 공격을 막는 대면 SAS 확인" ,
"직접 운영하는 STUN/TURN 서버와 릴레이 전용 프라이버시 모드" ,
"암호화된 파일 전송" ,
"설치할 수 있는 프로그레시브 웹 앱, 오프라인 지원"
]
},
"ui" : {
"language.label" : "언어" ,
2026-09-01 01:04:11 -04:00
"language.suggest.text" : "이 페이지는 한국어로도 볼 수 있습니다." ,
"language.suggest.cta" : "한국어로 보기" ,
"language.suggest.dismiss" : "닫기" ,
2026-08-29 12:46:15 -04:00
"community.title" : "프라이버시의 미래를 함께 만듭니다" ,
"community.description" : "SecureBit은 커뮤니티 덕분에 자랍니다. 여러분의 아이디어와 의견이 안전한 소통의 미래를 만듭니다 - 모든 과정이 공개되어 있고, 전 구간에서 ASN.1 검증을 수행합니다." ,
"community.github" : "GitHub 저장소" ,
"community.feedback" : "의견 보내기" ,
"unique.eyebrow" : "무엇이 다른가" ,
"unique.heading" : "SecureBit이 특별한 이유" ,
"unique.s1.titleTop" : "계층으로 쌓은" ,
"unique.s1.titleBottom" : "암호화 코어" ,
"unique.s1.collapsed" : "암호화 코어" ,
"unique.s1.desc" : "ECDH P-384 키 교환, AES-256-GCM 페이로드, ECDSA 서명, 그리고 완전한 ASN.1 검증을 하나의 견고한 파이프라인으로 묶었습니다." ,
"unique.s1.tags" : [
"ECDH P-384" ,
"AES-256-GCM" ,
"ECDSA" ,
"ASN.1"
],
"unique.s2.titleTop" : "순수 P2P" ,
"unique.s2.titleBottom" : "WebRTC 기반" ,
"unique.s2.collapsed" : "WebRTC 기반 순수 P2P" ,
"unique.s2.desc" : "메시지는 WebRTC를 통해 기기에서 기기로 곧장 오갑니다. 데이터를 붙들고 있는 릴레이는 없고, 서버는 두 사람이 서로를 찾도록 돕기만 합니다." ,
"unique.s2.tags" : [
"DTLS 1.3" ,
"릴레이 없음"
],
"unique.s3.titleTop" : "완전한" ,
"unique.s3.titleBottom" : "순방향 비밀성" ,
"unique.s3.collapsed" : "순방향 비밀성" ,
"unique.s3.desc" : "세션 키는 끊임없이 교체되고 사용 후 폐기됩니다. 그래서 키 하나가 유출되어도 지난 대화는 열리지 않습니다." ,
"unique.s3.tags" : [
"일회용 키" ,
"자동 교체"
],
"unique.s4.titleTop" : "트래픽" ,
"unique.s4.titleBottom" : "난독화" ,
"unique.s4.collapsed" : "트래픽 난독화" ,
"unique.s4.desc" : "패킷 크기와 전송 간격을 채우고 무작위로 흐트러뜨려, 회선을 들여다보는 쪽에서도 메타데이터의 규칙이 드러나지 않습니다." ,
"unique.s4.tags" : [
"패킷 패딩" ,
"시간 지터"
],
"unique.s5.titleTop" : "데이터 수집" ,
"unique.s5.titleBottom" : "전혀 없음" ,
"unique.s5.collapsed" : "데이터 수집 없음" ,
"unique.s5.desc" : "계정도, 로그도, 저장된 메시지도 없습니다. 서버에는 유출되거나 압수되거나 팔릴 것이 아무것도 없습니다." ,
"unique.s5.tags" : [
"계정 없음" ,
"로그 없음"
],
"partners.eyebrow" : "파트너와 생태계" ,
"partners.heading" : "파트너들이 신뢰합니다" ,
"partners.aegis.desc" : "포트폴리오 전반의 기밀 금융 소통을 지키는 자본 파트너입니다." ,
"partners.aegis.role" : "전략적 투자자" ,
"partners.furilabs.desc" : "프라이버시를 앞세운 리눅스 폰으로, SecureBit을 기본 보안 채널로 함께 제공합니다." ,
"partners.furilabs.role" : "기술 파트너" ,
"partners.inviteTitle" : "파트너 되기" ,
"partners.inviteDesc" : "프라이버시를 위한 하드웨어나 인프라를 만들고 계신가요? SecureBit을 함께 붙여봅시다." ,
"partners.inviteCta" : "이야기 시작하기" ,
"roadmap.eyebrow" : "개발 로드맵" ,
"roadmap.heading" : "SecureBit의 발자취" ,
"roadmap.subheading" : "첫 프로토타입에서 양자 내성 분산 네트워크까지, 모든 계층에서 완전한 ASN.1 검증과 함께." ,
"roadmap.progress" : "{total}개 중 {shipped}개 완료" ,
"roadmap.upcoming" : "{upcoming}개 남음" ,
"roadmap.keyFeatures" : "주요 기능" ,
"roadmap.status.released" : "출시됨" ,
"roadmap.status.current" : "진행 중" ,
"roadmap.status.dev" : "개발 중" ,
"roadmap.status.planned" : "예정" ,
"roadmap.status.research" : "연구" ,
"hero.headlineTop" : "두 사람만 읽을 수 있는" ,
"hero.headlineBottom" : "직통 회선." ,
"hero.subheading" : "키는 여러분의 기기에서 만들어지고 두 기기 사이에서 곧바로 교환됩니다. 계정도 없고 메시지를 보관하는 서버도 없습니다." ,
"hero.diagramAlt" : "한 상대와 이어진 직통 암호화 회선, 그리고 뒤이어 합류하는 두 사람" ,
"intro.createTitle" : "새 채널 만들기" ,
"intro.createDesc" : "여러분의 기기가 키와 일회용 초대장을 만듭니다. 그 어느 것도 서버를 거치지 않습니다." ,
"intro.createCta" : "키와 초대장 만들기" ,
"intro.joinTitle" : "채널 참여하기" ,
"intro.scanTitle" : "카메라로 QR 스캔" ,
"intro.scanSubtitle" : "가장 빠릅니다 - 상대의 화면을 비추세요" ,
"intro.orPasteCode" : "또는 코드 붙여넣기" ,
"intro.pastePlaceholder" : "여기에 초대 코드를 붙여넣으세요…" ,
"intro.connect" : "연결" ,
"intro.connecting" : "처리 중…" ,
"roadmap.r1.title" : "개발 시작" ,
"roadmap.r1.sub" : "아이디어, 프로토타입, 인프라 구축" ,
"roadmap.r1.date" : "2025년 초" ,
"roadmap.r1.features" : [
"개념과 요구사항 정리" ,
"기술 스택 선정: WebRTC, P2P, 암호학" ,
"첫 메시징 프로토타입" ,
"저장소와 CI 구축" ,
"기본 암호화 구조" ,
"UX/UI 설계"
],
"roadmap.r2.title" : "알파 공개" ,
"roadmap.r2.sub" : "첫 공개 알파: 기본 채팅과 키 교환" ,
"roadmap.r2.date" : "2025년 봄" ,
"roadmap.r2.features" : [
"WebRTC 기반 기본 P2P 메시징" ,
"간단한 종단 간 암호화 (시연용 방식)" ,
"안정적인 시그널링과 재연결" ,
"테스트를 위한 최소 화면" ,
"초기 테스터 의견 수집"
],
"roadmap.r3.title" : "보안 강화" ,
"roadmap.r3.sub" : "보안을 다지고 안정 브랜치 공개" ,
"roadmap.r3.date" : "2025년 여름" ,
"roadmap.r3.features" : [
"ECDH/ECDSA 실사용 적용" ,
"순방향 비밀성과 키 교체" ,
"인증 검사 개선" ,
"파일 암호화와 대용량 전송" ,
"기본 암호 처리 감사"
],
"roadmap.r4.title" : "확장과 안정성" ,
"roadmap.r4.sub" : "네트워크 확장과 안정성 개선" ,
"roadmap.r4.date" : "2025년 가을" ,
"roadmap.r4.features" : [
"P2P 연결과 NAT 통과 최적화" ,
"재연결 구조와 메시지 대기열" ,
"모바일 배터리 소모 감소" ,
"여러 기기 간 동기화" ,
"개발자를 위한 모니터링과 로깅 도구"
],
"roadmap.r5.title" : "프라이버시 우선" ,
"roadmap.r5.sub" : "프라이버시에 집중: 메타데이터 최소화" ,
"roadmap.r5.date" : "2025년 겨울" ,
"roadmap.r5.features" : [
"메타데이터 보호와 지문 축소" ,
"어니언 라우팅과 DHT 실험" ,
"익명 연결 옵션" ,
"공개 코드 감사 준비" ,
"사용자 확인 절차 개선"
],
"roadmap.r6.title" : "Enhanced Security Edition" ,
"roadmap.r6.sub" : "완전한 ASN.1 검증을 갖춘 18겹 군용 수준 암호화" ,
"roadmap.r6.date" : "2025년 말" ,
"roadmap.r6.features" : [
"ECDH + DTLS + SAS 삼중 보안" ,
"ECDH P-384와 AES-GCM 256비트 암호화" ,
"DTLS 지문 확인" ,
"SAS(짧은 인증 문자열) 확인" ,
"키 교체를 동반한 순방향 비밀성" ,
"중간자 공격 방어 강화" ,
"완전한 ASN.1 DER 검증" ,
"OID와 EC 점 확인" ,
"SPKI 구조 검증" ,
"P2P WebRTC 구조" ,
"메타데이터 보호" ,
"100% 공개 소스"
],
"roadmap.r7.title" : "Desktop Edition" ,
"roadmap.r7.sub" : "Windows, macOS, Linux용 네이티브 데스크톱 앱" ,
"roadmap.r7.date" : "2026년 초" ,
"roadmap.r7.features" : [
"Windows 데스크톱 앱 (Tauri v2)" ,
"macOS 데스크톱 앱 (Tauri v2)" ,
"Linux AppImage (Tauri v2)" ,
"실시간 알림" ,
"자동 재연결" ,
"기기 간 동기화" ,
"개선된 화면" ,
"최대 100MB 파일 지원"
],
"roadmap.r8.title" : "안전한 음성과 통화" ,
"roadmap.r8.sub" : "암호화된 음성 메시지, 음성 통화, 영상 통화" ,
"roadmap.r8.date" : "2026년 초" ,
"roadmap.r8.features" : [
"종단 간 암호화된 음성 메시지" ,
"1:1 암호화 음성 통화 (WebRTC)" ,
"1:1 암호화 영상 통화 (WebRTC)" ,
"실시간 미디어의 순방향 비밀성" ,
"SRTP/DTLS로 보호되는 미디어 스트림" ,
"통화 중 SAS 확인" ,
"통화 알림과 자동 재연결" ,
"지연이 적은 P2P 미디어"
],
"roadmap.r9.title" : "그룹 소통" ,
"roadmap.r9.sub" : "프라이버시를 지키는 그룹 채팅" ,
"roadmap.r9.date" : "지금" ,
"roadmap.r9.features" : [
"최대 8명까지 P2P 그룹 채팅" ,
"메시 전달과 서명된 릴레이 대체 경로" ,
"모두가 함께 대조하는 하나의 그룹 안전 코드" ,
"코드 추측을 막는 커밋 후 공개 절차" ,
"설계상 일회용인 그룹 전용 신원 키" ,
"에포크 순서를 갖춘 서명된 구성원 명단" ,
"서명된 메시지 - 기록이 갈라지면 증명할 수 있습니다" ,
"서버 없음, 공유 그룹 키 없음, 기록 없음"
],
"roadmap.r10.title" : "Mobile Edition" ,
"roadmap.r10.sub" : "iOS와 Android용 네이티브 모바일 앱" ,
"roadmap.r10.date" : "2027년 2분기" ,
"roadmap.r10.features" : [
"iOS 네이티브 앱 (Swift/SwiftUI)" ,
"Android 네이티브 앱 (Kotlin/Jetpack Compose)" ,
"모바일 브라우저 PWA 지원" ,
"실시간 푸시 알림" ,
"배터리 최적화" ,
"모바일에 맞춘 화면" ,
"오프라인 메시지 대기열" ,
"생체 인증"
],
"roadmap.r11.title" : "양자 내성 에디션" ,
"roadmap.r11.sub" : "양자 컴퓨터에 대한 대비" ,
"roadmap.r11.date" : "2027년 4분기" ,
"roadmap.r11.features" : [
"포스트 양자 암호 CRYSTALS-Kyber" ,
"SPHINCS+ 전자 서명" ,
"고전과 포스트 양자를 함께 쓰는 혼합 방식" ,
"양자에 안전한 키 교환" ,
"갱신된 해시 알고리즘" ,
"기존 세션 이전" ,
"v5.x 호환" ,
"양자 내성 프로토콜"
],
"roadmap.r12.title" : "분산 네트워크" ,
"roadmap.r12.sub" : "완전히 분산된 네트워크" ,
"roadmap.r12.date" : "2028년" ,
"roadmap.r12.features" : [
"노드 메시 네트워크" ,
"피어 탐색을 위한 DHT" ,
"내장 어니언 라우팅" ,
"토크노믹스와 노드 보상" ,
"DAO를 통한 거버넌스" ,
"다른 네트워크와의 상호 운용" ,
"플랫폼 간 호환" ,
"스스로 복구하는 네트워크"
],
"roadmap.r13.title" : "AI 프라이버시 도우미" ,
"roadmap.r13.sub" : "프라이버시와 보안을 위한 인공지능" ,
"roadmap.r13.date" : "2028년 이후" ,
"roadmap.r13.features" : [
"기기 안에서 이루어지는 AI 위협 분석" ,
"중간자 공격 자동 감지" ,
"적응형 암호화" ,
"맞춤형 보안 권고" ,
"영지식 기계 학습" ,
"개인용 AI 도우미" ,
"예측 기반 보안" ,
"자율적인 공격 방어"
],
"handshake.step1" : "ECDH P-384 키 쌍 생성 중" ,
"handshake.step2" : "확인 코드 유도 중" ,
"handshake.step3" : "순방향 비밀성 고정 중" ,
"handshake.securingTitle" : "채널을 보호하는 중" ,
"handshake.answerTitle" : "응답을 만드는 중" ,
"handshake.securingDesc" : "변조를 견딜 만큼 단단한 키를 벼리는 중입니다." ,
"handshake.shareTitle" : "초대장 공유하기" ,
"handshake.sendAnswerTitle" : "응답 돌려보내기" ,
"handshake.shareDesc" : "QR을 보여주거나 코드를 상대에게 보내세요. 한 번만 쓸 수 있고 곧 만료됩니다." ,
"handshake.sendAnswerDesc" : "채널을 만든 사람에게 이 응답을 전해 악수를 마치도록 하세요." ,
"handshake.establish" : "연결 맺기" ,
"handshake.thenReceive" : "그다음 상대가 보내는 응답을 받으세요" ,
"handshake.pasteAnswerPlaceholder" : "상대의 응답 코드를 붙여넣으세요…" ,
"handshake.answerSentNote" : "이 응답을 만든 사람에게 보내고 기다리세요 - 상대가 연결되면 대화가 열립니다." ,
"handshake.qrHint" : "상대가 코드를 다 읽을 때까지 이 화면을 열어 두세요." ,
"handshake.qrHintFrames" : "악수가 {frames}개 화면으로 나뉘어 있습니다 - 상대가 전부 읽을 때까지 열어 두세요." ,
"verify.title" : "보안 확인" ,
"verify.desc" : "다른 경로(통화나 대면)로 상대와 이 안전 코드를 대조한 뒤, 입력해서 대화를 여세요." ,
"verify.enterLabel" : "대조한 코드를 입력하세요" ,
"verify.placeholder" : "여기에 코드 입력" ,
"verify.confirm" : "코드 확인" ,
"verify.confirmed" : "확인됨" ,
"verify.mismatch" : "일치하지 않음" ,
"verify.yours" : "내 확인" ,
"verify.peer" : "상대의 확인" ,
"verify.pending" : "대기 중" ,
"verify.waiting" : "코드 대기 중…" ,
"verify.verified" : "채널 확인 완료" ,
"verify.bothConfirmed" : "양쪽 모두 확인했습니다. 안전한 대화를 여는 중…" ,
"pwa.bannerTitle" : "SecureBit.chat 설치" ,
"pwa.bannerDesc" : "보안이 강화된 네이티브 앱 경험을 누리세요" ,
"pwa.install" : "설치" ,
"pwa.dismiss" : "닫기" ,
"pwa.close" : "닫기" ,
"pwa.iosTitle" : "iOS에 설치하기" ,
"pwa.iosStep1" : "공유 버튼을 누르세요" ,
"pwa.iosStep1Hint" : "보통 Safari 아래쪽에 있습니다" ,
"pwa.iosStep2" : "'홈 화면에 추가'를 찾으세요" ,
"pwa.iosStep2Hint" : "공유 메뉴를 아래로 내려보세요" ,
"pwa.iosStep3" : "'추가'를 누르세요" ,
"pwa.iosStep3Hint" : "확인하면 SecureBit.chat이 설치됩니다" ,
"pwa.genericTitle" : "SecureBit 설치" ,
"pwa.genericDesc" : "브라우저마다 설치 방법이 다릅니다. 쓰시는 브라우저에 맞는 순서를 고르세요." ,
"pwa.gotIt" : "알겠습니다" ,
"pwa.installedTitle" : "앱이 설치되었습니다" ,
"pwa.installedIos" : "iOS 앱이 설치되었습니다. 홈 화면에서 열어보세요." ,
"pwa.installedGeneric" : "이제 SecureBit.chat이 기기에 있습니다" ,
"pwa.anytimeTitle" : "언제든 설치할 수 있습니다" ,
"pwa.anytimeDesc" : "가장 좋은 경험을 위해, 브라우저 메뉴에서 언제든 SecureBit.chat을 설치할 수 있습니다." ,
"pwa.ok" : "확인" ,
"step.open" : "1단계 · 채널 열기" ,
"step.exchange" : "2단계 · 교환" ,
"step.verification" : "3단계 · 확인" ,
"action.create" : "만들기" ,
"action.join" : "참여" ,
"action.back" : "뒤로" ,
"action.copy" : "복사" ,
"action.copied" : "복사됨" ,
"action.scan" : "스캔" ,
"action.downloadDesktop" : "데스크톱 앱 내려받기" ,
"action.advancedSettings" : "고급 설정" ,
"cred.offerTag" : "초대 · 또는 텍스트 복사" ,
"cred.answerTag" : "응답 · 또는 텍스트 복사" ,
"cred.reveal" : "눌러서 보기 - 이 코드는 남에게 알리지 마세요" ,
"qr.title" : "QR 코드 스캔" ,
"qr.subtitle" : "상대의 QR에 카메라를 맞추세요" ,
"qr.scanning" : "읽는 중…" ,
"qr.hint" : "모든 조각을 읽을 때까지 흔들리지 않게 유지하세요. 카메라는 기기 안에서만 쓰이며 - 아무것도 전송되지 않습니다." ,
"mesh.you" : "나" ,
"mesh.peer" : "상대 · 세션 1" ,
"mesh.joined2" : "지민 합류 · +2" ,
"mesh.joined3" : "민준 합류 · +3" ,
"ice.title" : "네트워크 설정" ,
"ice.subtitle" : "기기 안에서만 설정됩니다 - 상대에게 전달되지 않습니다" ,
"ice.intro" : "SecureBit은 기본적으로 공개 STUN 서버로 P2P 연결을 맺습니다. 직접 운영하신다면 자신의 STUN/TURN을 지정하세요." ,
"ice.publicTitle" : "공개 서버 (기본값)" ,
"ice.publicDesc" : "설정이 필요 없습니다. 대부분에게 충분합니다." ,
"ice.customTitle" : "내 STUN/TURN 서버" ,
"ice.customDesc" : "최대 {max}개까지." ,
"ice.turnNote" : "TURN 릴레이는 양쪽의 IP와 트래픽 흐름은 볼 수 있지만, 종단 간 암호화된 메시지 내용은 결코 볼 수 없습니다. 되도록 " ,
"ice.turnNoteTls" : " (TLS)를 쓰세요." ,
"ice.test" : "서버 시험" ,
"ice.testing" : "시험 중…" ,
"ice.relayTitle" : "릴레이 전용 모드" ,
"ice.relayBadge" : "최대 프라이버시" ,
"ice.relayDesc" : "모든 트래픽을 TURN으로 보내 상대가 여러분의 IP를 결코 알 수 없게 합니다. TURN 서버가 필요합니다." ,
"ice.relayWarning" : "릴레이 전용 모드가 켜져 있지만 TURN 서버가 설정되지 않았습니다. 연결을 시작할 수 없습니다." ,
"ice.persist" : "이 기기에 저장" ,
"ice.persistDesc" : "이 브라우저에 암호화되어 저장됩니다. 꺼두면 이번 세션에만 적용됩니다." ,
"ice.forget" : "저장된 설정 지우기" ,
"ice.cancel" : "취소" ,
"ice.apply" : "적용" ,
"ice.errUnavailable" : "이 브라우저에서는 WebRTC를 쓸 수 없습니다" ,
"ice.errInvalid" : "서버 설정이 올바르지 않습니다" ,
"update.title" : "업데이트가 있습니다" ,
"update.desc" : "SecureBit의 새 버전이 확인되었습니다." ,
"update.currentVersion" : "현재 버전" ,
"update.newVersion" : "새 버전" ,
"update.now" : "지금 업데이트" ,
"update.later" : "나중에" ,
"update.unknown" : "없음" ,
"update.stepSaving" : "데이터를 저장하는 중…" ,
"update.stepSwCaches" : "Service Worker 캐시를 비우는 중…" ,
"update.stepSwUnregister" : "Service Worker 등록을 해제하는 중…" ,
"update.stepBrowserCache" : "브라우저 캐시를 비우는 중…" ,
"update.stepVersion" : "버전을 갱신하는 중…" ,
"update.stepReload" : "앱을 다시 불러오는 중…" ,
"update.error" : "업데이트 오류. 페이지를 직접 새로고침하세요 (Ctrl+F5 또는 Cmd+Shift+R)" ,
"update.confirmSkip" : "새 버전이 있습니다. 보안과 안정성을 위해 업데이트를 권합니다. 업데이트 없이 계속할까요?" ,
"offline.backOnline" : "다시 연결됨" ,
"offline.mode" : "오프라인 모드" ,
"offline.dismiss" : "닫기" ,
"offline.lostTitle" : "연결이 끊어졌습니다" ,
"offline.lostDesc" : "SecureBit이 오프라인 상태입니다. 일부 기능이 제한되지만 데이터는 안전합니다." ,
"offline.point1" : "세션과 키는 그대로 유지됩니다" ,
"offline.point2" : "서버에는 아무 데이터도 저장되지 않습니다" ,
"offline.point3" : "다시 연결되면 메시지와 파일이 동기화됩니다" ,
"offline.continue" : "오프라인으로 계속" ,
"offline.restoredTitle" : "다시 연결되면" ,
"offline.restoredDesc" : "연결이 끊겨도 잃는 것은 없습니다. SecureBit은 모든 것을 기기 안에 대기시켜 두었다가, 다시 온라인이 되는 즉시 암호화된 세션을 이어갑니다." ,
"offline.r1Title" : "보낸 메시지는 전달됩니다" ,
"offline.r1Desc" : "오프라인일 때 쓴 내용은 자동으로 상대에게 전송됩니다." ,
"offline.r2Title" : "파일 전송이 마무리됩니다" ,
"offline.r2Desc" : "전송은 멈춘 지점부터 이어집니다 - 다시 보낼 필요가 없습니다." ,
"offline.r3Title" : "상대의 메시지와 파일이 도착합니다" ,
"offline.r3Desc" : "끊긴 동안 상대가 보낸 것들이 순서대로 도착합니다." ,
"offline.r4Title" : "아무것도 사라지지 않습니다" ,
"offline.r4Desc" : "다시 연결되어도 빈틈은 없습니다 - 대화는 멈춘 그 자리에서 이어집니다." ,
"offline.gotIt" : "알겠습니다" ,
"qr.showTitle" : "QR 코드 보여주기" ,
"qr.showSubtitle" : "전체 화면 · 상대가 스캔하도록" ,
"qr.showSubtitleFrames" : "전체 화면 · 상대가 {frames}개 화면을 모두 스캔하도록" ,
"notify.enabledBody" : "알림이 켜졌습니다. 새 메시지가 오면 알려드립니다." ,
"notify.workingBody" : "알림이 정상 작동합니다. 새 메시지가 오면 알려드립니다." ,
"pw.label" : "비밀번호 입력란" ,
"pw.placeholder" : "비밀번호를 입력하세요…" ,
"pw.decrypt" : "복호화" ,
"pw.cancel" : "취소" ,
"file.title" : "파일 전송" ,
"file.drop" : "여기에 파일을 놓으세요" ,
"file.dropHint" : "보내기 전에 종단 간 암호화 · 최대 100MB" ,
"file.browse" : "기기에서 찾기" ,
"file.incoming" : "파일 요청이 왔습니다" ,
"file.accept" : "수락" ,
"file.reject" : "거절" ,
"file.download" : "내려받기" ,
"file.notReady" : "연결이 아직 준비되지 않았습니다" ,
"file.tooLarge" : "파일이 너무 큽니다" ,
"file.typeNotAllowed" : "허용되지 않는 파일 형식" ,
"file.maxConcurrent" : "동시 전송 한도에 도달했습니다" ,
"file.gone" : "이 파일은 더 이상 내려받을 수 없습니다." ,
"call.incoming" : "걸려온 전화" ,
"call.incomingVideo" : "걸려온 영상 통화" ,
"call.encrypted" : "암호화된 통화" ,
"call.encryptedShort" : "암호화됨" ,
"call.peer" : "보안 상대" ,
"call.connecting" : "연결 중…" ,
"call.ringing" : "신호 가는 중…" ,
"call.accept" : "받기" ,
"call.decline" : "거절" ,
"call.end" : "통화 종료" ,
"call.camera" : "카메라" ,
"call.cameraOff" : "카메라 꺼짐" ,
"call.peerCameraOff" : "상대의 카메라가 꺼져 있습니다" ,
"call.flipCamera" : "카메라 전환" ,
"call.addVideo" : "영상 추가" ,
"call.video" : "영상" ,
"call.muted" : "음소거됨" ,
"call.expand" : "크게" ,
"call.minimize" : "작게" ,
"call.quality" : "연결 품질" ,
"call.qualityExcellent" : "아주 좋음" ,
"call.videoPrefix" : "영상 · " ,
"call.voicePrefix" : "음성 · " ,
"group.new" : "새 그룹" ,
"group.create" : "그룹 만들기" ,
"group.join" : "그룹 참여" ,
"group.name" : "그룹 이름" ,
"group.nameTooLong" : "그룹 이름이 너무 깁니다." ,
"group.capacity" : "최대 {max}명까지, 기기와 기기가 직접 연결됩니다. 그룹이 열리기 전에 모두가 하나의 안전 코드를 대조합니다." ,
"group.invite" : "초대" ,
"group.inviteMore" : "구성원 더 초대하기" ,
"group.invitePeople" : "{count}명 초대" ,
"group.invitation" : "그룹 초대" ,
"group.addMembers" : "구성원 추가" ,
"group.roomFor" : "{remaining}명 더 들어올 수 있습니다. 그들이 합류하면 모두가 새 그룹 코드를 대조합니다." ,
"group.membersCount" : "구성원 {count}명" ,
"group.member" : "구성원" ,
"group.members" : "구성원" ,
"group.remove" : "{name} 내보내기" ,
"group.message" : "'{name}'에 메시지 보내기" ,
"group.leave" : "나가기" ,
"group.leaveThis" : "이 그룹에서 나가기" ,
"group.cancel" : "그룹 취소" ,
"group.close" : "닫기" ,
"group.cancelBtn" : "취소" ,
"group.decline" : "거절" ,
"group.working" : "처리 중…" ,
"group.sasTitle" : "그룹 안전 코드" ,
"group.sasEveryone" : "모두에게 같은 코드가 보입니다" ,
"group.sasCompare" : "이 그룹을 열려면 모든 구성원과 그룹 코드를 대조하세요." ,
"group.sasReadAloud" : "이 숫자들을 소리 내어 읽어주세요 - " ,
"group.sasWarning" : "한 사람이라도 다른 코드를 읽는다면, 누군가 사이에 끼어 있는 것입니다. 그룹을 취소하세요 - 확인하지 마세요." ,
"group.confirmFirst" : "먼저 그룹 코드를 확인하세요" ,
"group.codeSuffix" : " · 코드 {code}" ,
"group.exchangingNonces" : "일회용 값을 주고받는 중…" ,
"group.waitingCommit" : "모든 구성원의 확약을 기다리는 중…" ,
"group.waitingJoin" : "다른 구성원의 합류를 기다리는 중…" ,
"group.emptyChat" : "아직 아무것도 없습니다. 모든 메시지는 보낸 사람이 서명하며, 구성원 각자의 암호화된 회선을 통해 오갑니다." ,
"group.noVerified" : "아직 확인된 대화가 없습니다. 먼저 1:1 대화를 열어 안전 코드를 대조하세요 - 그룹은 이미 확인한 연결로 만들어집니다." ,
"group.noMoreToAdd" : "추가할 다른 확인된 대화가 없습니다. 1:1 대화를 열어 먼저 안전 코드를 대조하세요." ,
"group.directLink" : "기기 간 직접 연결" ,
"group.noDirectLink" : "아직 직접 연결이 없습니다 - 연결이 만들어지는 동안 메시지는 다른 구성원을 거칩니다" ,
"group.relayNote" : "일부 구성원과는 아직 직접 연결이 없습니다. 그들의 메시지는 다른 구성원을 거쳐 오가는데, 그 사람은 대화가 오간다는 사실은 알 수 있지만 서명 너머의 내용을 읽거나 바꿀 수는 없습니다. 그룹은 계속해서 직접 연결을 시도합니다." ,
"group.relayOnlyOff" : "릴레이 전용 모드가 꺼져 있어, 모든 구성원이 여러분에게 직접 연결되며 IP 주소를 알게 됩니다 - 다른 사람이 초대한 구성원도 마찬가지입니다. 그것이 중요하다면 네트워크 설정에서 켜세요." ,
"group.memberOffline" : "{name}님은 오프라인이라 메시지를 받지 못합니다. 여전히 구성원이며, 내보내면 그룹 키가 새로 만들어집니다." ,
"group.joinNote" : "다른 구성원들이 여러분이 이 그룹에 있다는 것을 알게 됩니다. 따라잡을 대화 기록은 없습니다 - 그룹은 비어 있는 상태로 시작합니다." ,
"group.inviteSentNote" : "상대가 수락할 때까지 그룹은 그대로 동작합니다. 그들이 따라잡을 기록은 없고, 지금부터 보내는 것만 보게 됩니다." ,
"group.errNotCreated" : "그룹이 만들어지지 않았습니다" ,
"group.errNobodyAccepted" : "제때 초대를 수락한 사람이 없습니다." ,
"group.errNothingSent" : "아무것도 전송되거나 확인되지 않았습니다. 이 창을 닫고 모두가 연결된 뒤 다시 시도하세요." ,
"group.errNotFormed" : "이 그룹을 만들 수 없었습니다." ,
"group.errFull" : "이 그룹은 가득 찼습니다." ,
"group.errInviteFailed" : "초대를 보내지 못했습니다 - 그 대화는 연결되어 있지 않습니다." ,
"group.errNoMemberList" : "그룹을 만든 사람이 구성원 명단을 끝내 보내지 않았습니다." ,
"group.errUnsignedList" : "구성원 명단에 그룹을 만든 사람의 서명이 없습니다. 다시 시도하지 말고 - 그 사람에게 알리세요." ,
"group.errNotOwner" : "그룹 소유자가 아닌 누군가가 구성원을 바꾸려 했습니다." ,
"hdr.tagline" : "종단 간 암호화" ,
"hdr.netSettings" : "고급 네트워크 설정" ,
"hdr.netSettingsTitle" : "고급 네트워크 설정 (STUN/TURN)" ,
"hdr.disconnect" : "연결 끊기" ,
"status.connected" : "연결됨" ,
"status.connecting" : "연결 중…" ,
"status.notConnected" : "연결되지 않음" ,
"status.reconnecting" : "다시 연결 중…" ,
"status.retrying" : "다시 시도 중…" ,
"status.verifying" : "확인 중…" ,
"status.peerDisconnected" : "상대가 연결을 끊었습니다" ,
"sec.replayProtection" : "재전송 공격 방어" ,
"sec.messageIntegrity" : "메시지 무결성 (HMAC)" ,
"sec.forwardSecrecy" : "완전 순방향 비밀성" ,
"sec.metadataProtection" : "메타데이터 보호" ,
"sec.trafficObfuscation" : "트래픽 난독화" ,
"sec.realTests" : "실제 암호학 검사" ,
"sec.simulatedData" : "모의 데이터" ,
"sec.testPassed" : "검사 통과" ,
"sec.testFailed" : "검사 실패 또는 사용 불가" ,
"sec.verificationDone" : "실제 암호학 검증이 끝났습니다" ,
"sec.verificationInProgress" : "보안 검증 진행 중…" ,
"sec.verificationWait" : "보안 검증 진행 중…\n실시간 암호학 검증이 끝날 때까지 기다려 주세요." ,
"sec.verificationUnavailable" : "보안 검증을 쓸 수 없습니다" ,
"chat.placeholder" : "암호화된 메시지를 쓰세요…" ,
"chat.send" : "메시지 보내기" ,
"chat.sendFiles" : "파일 보내기" ,
"chat.hideFiles" : "파일 숨기기" ,
"chat.recordVoice" : "음성 메시지 녹음" ,
"chat.sendVoice" : "음성 메시지 보내기" ,
"chat.discard" : "취소" ,
"chat.codeBlock" : "코드 블록으로 보내기 (입력창이 넓어집니다)" ,
"chat.codeHint" : "코드 조각 · 서식 유지 · ⌘↵ 로 전송" ,
"chat.viewOnce" : "한 번만 보기" ,
"chat.viewOnceTitle" : "한 번만 보기 - 상대가 읽으면 사라집니다" ,
"chat.viewOncePrefix" : "한 번만 보기 · " ,
"chat.viewOnceTap" : "한 번만 보기 · 눌러서 확인" ,
"chat.viewedOnce" : "이미 확인함" ,
"chat.disappearing" : "사라지는 메시지 - 양쪽에서 삭제됩니다" ,
"chat.disappearAfter" : "사라지기까지" ,
"chat.visibleFor" : "표시 시간" ,
"chat.timerPrefix" : "타이머 · " ,
"chat.expired" : "이 메시지는 만료되었습니다" ,
"chat.deleteForEveryone" : "모두에게서 삭제" ,
"chat.sending" : "보내는 중" ,
"chat.delivered" : "전달됨" ,
"chat.notSent" : "보내지 못함" ,
"chat.notSentReason" : "보내지 못함 - 보안 채널이 아직 준비되지 않았습니다. 다시 연결한 뒤 계속하세요." ,
"chat.encrypted" : "암호화됨" ,
"chat.decrypted" : "복호화됨" ,
"chat.encryptedOnDevice" : "기기에서 암호화됨" ,
"chat.uploading" : "올리는 중" ,
"chat.downloading" : "내려받는 중" ,
"chat.transferring" : "전송 중…" ,
"chat.copied" : "복사했습니다" ,
"chat.collapse" : "접기" ,
"chat.closeMenu" : "메뉴 닫기" ,
"chat.newChat" : "새 대화" ,
"chat.newGroup" : "새 그룹" ,
"chat.createGroup" : "그룹 만들기" ,
"chat.groupChats" : "그룹 대화" ,
"chat.secureChat" : "안전한 대화" ,
"chat.nameThis" : "이 대화에 이름 붙이기" ,
"chat.rename" : "대화 이름 바꾸기 (기기 안에서만)" ,
"chat.renameHint" : "두 번 눌러 이름 바꾸기" ,
"chat.localLabel" : "기기 안 이름 · 이 기기에만 저장됩니다" ,
"chat.setStatus" : "상태 설정" ,
"chat.yourStatusPrefix" : "내 상태 - " ,
"chat.meshHint" : "최대 8명 · P2P 메시" ,
"chat.offline" : "오프라인" ,
"chat.noNetwork" : "네트워크 없음 · 재연결 중" ,
"chat.startVoiceCall" : "암호화 음성 통화 걸기" ,
"chat.startVideoCall" : "암호화 영상 통화 걸기" ,
"chat.verifyForCalls" : "통화를 쓰려면 먼저 세션을 확인하세요" ,
"chat.e2eeNote" : "모든 메시지는 기기를 떠나기 전에 종단 간 암호화됩니다." ,
"chat.peersOnly" : "연결된 상대에게만 종단 간으로 전송되며 - 서버에 저장되지 않습니다." ,
"flow.invitationCreated" : "안전한 초대를 만들었습니다" ,
"flow.invitationCreatedBang" : "안전한 초대를 만들고 암호화했습니다." ,
"flow.responseCreated" : "안전한 응답을 만들었습니다" ,
"flow.responseCreatedBang" : "안전한 응답을 만들었습니다." ,
"flow.sendInvitation" : "안전한 경로(통화, 문자 등)로 초대 코드를 상대에게 보내세요." ,
"flow.sendResponse" : "안전한 경로로 응답 코드를 처음 연 사람에게 보내거나, 아래 QR을 스캔하게 하세요." ,
"flow.sendEncryptedCode" : "암호화된 코드 보내기" ,
"flow.sendTheResponse" : "응답 보내기" ,
"flow.pasteOrWrite" : "코드를 붙여넣거나 입력하세요…" ,
"flow.processingInvitation" : "안전한 초대를 처리하는 중…" ,
"flow.processingResponse" : "안전한 응답을 처리하는 중…" ,
"flow.finalizing" : "안전한 연결을 마무리하는 중…" ,
"flow.channelEstablished" : "안전한 채널이 만들어졌습니다" ,
"flow.channelReady" : "안전한 채널이 준비되었습니다" ,
"flow.restoring" : "연결을 되살리는 중…" ,
"flow.invitationCaptured" : "초대를 읽었습니다." ,
"err.needInvitation" : "상대가 준 초대 코드를 붙여넣어야 합니다." ,
"err.needResponse" : "상대가 준 응답 코드를 붙여넣어야 합니다." ,
"err.responseFormat" : "응답 형식이 올바르지 않습니다 - 코드를 확인하세요" ,
"err.responseNoKey" : "응답 코드가 올바르지 않습니다 - 암호 키가 없거나 손상되었습니다. 코드를 확인한 뒤 다시 시도하세요." ,
"err.responseNoSignKey" : "응답 코드가 올바르지 않습니다 - 서명 확인 키가 없습니다. 코드를 확인한 뒤 다시 시도하세요." ,
"err.responseOutdated" : "응답 데이터가 오래되었습니다 - 새 초대를 사용하세요" ,
"err.setupError" : "연결을 맺는 중 오류가 났습니다" ,
"err.notReady" : "연결이 아직 준비되지 않았습니다" ,
"err.securityBreach" : "보안 침해가 감지되어 연결을 거부했습니다" ,
"err.securityValidation" : "보안 검증에 실패했습니다 - 공격일 수 있습니다" ,
"err.retiredQr" : "이 QR은 더 이상 쓰지 않는 형식이라 초대를 전달하지 못했습니다. 상대에게 새로 만들어 달라고 하거나 복사·붙여넣기를 쓰세요." ,
"err.compressedQrNote" : "압축된 QR은 간결함을 위해 SDP를 생략할 수 있습니다. 연결에 실패하면 복사·붙여넣기를 쓰세요." ,
"err.inviteNotConnected" : "초대를 보내지 못했습니다. 그 대화는 지금 연결되어 있지 않습니다." ,
"err.inviteNotConnectedRetry" : "초대를 보내지 못했습니다. 그 대화는 지금 연결되어 있지 않습니다 - 다시 열고 시도하세요." ,
"err.nobodyAccepted" : "아무도 초대를 수락하지 않았습니다. 그룹은 그대로입니다." ,
"err.noAudio" : "소리가 녹음되지 않았습니다 - 마이크 권한을 확인한 뒤 다시 시도하세요." ,
"err.voiceNeedsConnection" : "음성 메시지를 보내려면 활성화된 안전한 연결이 필요합니다. 다시 연결한 뒤 시도하세요." ,
"err.voiceRestoring" : "연결을 되살리는 중입니다 - 잠시 뒤에 음성 메시지를 다시 보내보세요." ,
"err.fileTooLarge" : "파일이 너무 큽니다" ,
"sas.safetyNumber" : "안전 번호" ,
"sas.incorrect" : "코드가 맞지 않습니다. 상대와 대조한 뒤 다시 시도하세요." ,
"sas.noMatch" : "코드가 일치하지 않습니다" ,
"sas.makeSure" : "두 코드가 정확히 같은지 확인하세요." ,
"sas.tooManyAttempts" : "잘못된 시도가 너무 많습니다. 안전을 위해 세션을 초기화했습니다." ,
"sas.verificationFailed" : "확인 실패" ,
"sas.verified" : "확인됨 · 완전 순방향 비밀성" ,
"sas.runVerification" : "보안 검증 실행" ,
"sec.panelTitle" : "네트워크와 암호학 상세" ,
"sec.security" : "보안" ,
"sec.transport" : "전송" ,
"sec.keyExchange" : "키 교환" ,
"sec.allEnabled" : "모든 보안 기능이 기본으로 켜져 있습니다" ,
"sec.realTimeNote" : "실제 암호학 함수로 실시간 검증합니다 - 꾸며낸 데이터는 없습니다." ,
"sec.simulatedWarning" : "주의: 연결이 아직 완전히 맺어지지 않았을 수 있어 - 값이 모의일 수 있습니다." ,
"dl.title" : "SecureBit 내려받기" ,
"dl.free" : "무료 · 공개 소스" ,
"dl.soon" : "모바일 앱(iOS, Android)과 브라우저 확장(Chrome, Firefox, Opera)이 곧 나옵니다." ,
"chatHdr.chat" : "대화" ,
"chatHdr.chats" : "대화" ,
"chatHdr.newChat" : "+ 새로" ,
"chatHdr.secure" : "보안" ,
"chatHdr.p2pSub" : "P2P · 종단 간 암호화" ,
"chatHdr.save" : "저장" ,
"chatHdr.close" : "닫기" ,
"chatHdr.expand" : "넓게 보기" ,
"chatHdr.you" : "나" ,
"chatHdr.qrCode" : "QR 코드" ,
"chat.disconnected" : "연결 끊김" ,
"call.mute" : "음소거" ,
"call.endShort" : "종료" ,
"group.add" : "추가" ,
"group.send" : "보내기" ,
"sec.pfsShort" : "완전 순방향 비밀성" ,
"sec.cipher" : "암호" ,
"chat.close" : "닫기" ,
"file.needConnection" : "파일 전송에는 연결이 필요합니다" ,
"presence.available" : "대화 가능" ,
"presence.away" : "자리 비움" ,
"presence.busy" : "바쁨" ,
"presence.offline" : "오프라인" ,
"presence.invisible" : "숨김" ,
"presence.availableDesc" : "온라인이며 연락 가능" ,
"presence.awayDesc" : "자리 비움 · 잠시 나감" ,
"presence.busyDesc" : "방해 금지" ,
"presence.invisibleDesc" : "다른 사람에게 오프라인으로 보이기" ,
"presence.online" : "온라인" ,
"conn.p2p" : "P2P · 연결됨" ,
"conn.verifying" : "확인 중…" ,
"conn.connecting" : "연결 중…" ,
"conn.reconnecting" : "다시 연결 중…" ,
"conn.peerDisconnected" : "상대가 연결을 끊었습니다" ,
"conn.disconnected" : "연결 끊김" ,
"chat.defaultLabel" : "대화" ,
"groupPhase.forming" : "구성하는 중…" ,
"groupPhase.commitments" : "확약을 주고받는 중…" ,
"groupPhase.revealing" : "공개하는 중…" ,
"groupPhase.compare" : "그룹 코드를 대조하세요" ,
"groupPhase.ready" : "그룹 준비 완료" ,
"groupPhase.failed" : "그룹이 만들어지지 않았습니다" ,
"call.qualityGood" : "좋음" ,
"call.qualityFair" : "보통" ,
"call.qualityWeak" : "약함" ,
"msg.code" : "코드" ,
"msg.timer" : "타이머" ,
"msg.voice" : "음성" ,
"msg.play" : "재생" ,
"msg.sent" : "보냄" ,
"msg.read" : "읽음" ,
"report.title" : "실시간 보안 검증" ,
"report.active" : "동작 중" ,
"report.testsPassed" : "통과한 검사" ,
"report.verifiedAt" : "검증 시각" ,
"report.source" : "출처" ,
"secTest.verifyECDHKeyExchange" : "ECDH 키 교환" ,
"secTest.verifyECDSASignatures" : "ECDSA 전자 서명" ,
"secTest.verifyEncryption" : "AES-GCM 암호화" ,
"secTest.verifyMessageIntegrity" : "메시지 무결성" ,
"secTest.verifyPerfectForwardSecrecy" : "완전 순방향 비밀성" ,
"secTest.verifyPFS" : "완전 순방향 비밀성" ,
"secTest.verifyReplayProtection" : "재전송 공격 방어" ,
"secTest.verifyDTLSFingerprint" : "DTLS 지문" ,
"secTest.verifySASVerification" : "SAS 확인" ,
"secTest.verifyMetadataProtection" : "메타데이터 보호" ,
"secTest.verifyTrafficObfuscation" : "트래픽 난독화" ,
"secTest.verifyPacketPadding" : "패킷 패딩" ,
"secTest.verifyNestedEncryption" : "중첩 암호화" ,
"secTest.verifyNonExtractableKeys" : "추출 불가 키" ,
"secTest.verifyRateLimiting" : "속도 제한" ,
"secTest.verifyMutualAuth" : "상호 인증" ,
"secTest.verifyAuthProof" : "인증 증명" ,
"secTest.verifyEnhancedValidation" : "강화된 검증" ,
"secTest.verifyAdvancedFeatures" : "고급 기능" ,
"secTest.verifySignature" : "서명 검사" ,
"secDetail.Security system initializing..." : "보안 시스템을 시작하는 중…" ,
"secDetail.Nested encryption active" : "중첩 암호화가 켜져 있습니다" ,
"secDetail.Nested encryption failed" : "중첩 암호화 실패" ,
"secDetail.Packet padding active" : "패킷 패딩이 켜져 있습니다" ,
"secDetail.Packet padding failed" : "패킷 패딩 실패" ,
"secDetail.Advanced features active" : "고급 기능이 켜져 있습니다" ,
"secDetail.Advanced features failed" : "고급 기능 실패" ,
"secDetail.No encryption key available" : "쓸 수 있는 암호화 키가 없습니다" ,
"secDetail.AES-GCM encryption/decryption working correctly" : "AES-GCM 암호화와 복호화가 정상 동작합니다" ,
"secDetail.No ECDH key pair available" : "쓸 수 있는 ECDH 키 쌍이 없습니다" ,
"secDetail.Key derivation failed" : "키 유도에 실패했습니다" ,
"secDetail.No ECDSA key pair available" : "쓸 수 있는 ECDSA 키 쌍이 없습니다" ,
"secDetail.ECDSA digital signatures working correctly" : "ECDSA 전자 서명이 정상 동작합니다" ,
"secDetail.MAC key not available or invalid" : "MAC 키가 없거나 올바르지 않습니다" ,
"secDetail.Rate limiter did not block a message over the limit" : "속도 제한기가 한도를 넘은 메시지를 막지 못했습니다" ,
"secDetail.Rate limiter is not available" : "속도 제한기를 쓸 수 없습니다" ,
"secDetail.Replay protection is working correctly" : "재전송 공격 방어가 정상 동작합니다" ,
"secDetail.Replay protection not enabled" : "재전송 공격 방어가 꺼져 있습니다" ,
"secDetail.SAS code not available" : "SAS 코드를 쓸 수 없습니다" ,
"secDetail.SAS verification code is valid and available" : "SAS 확인 코드가 유효하며 사용할 수 있습니다" ,
"secDetail.Traffic obfuscation is working correctly" : "트래픽 난독화가 정상 동작합니다" ,
"secDetail.Traffic obfuscation not enabled" : "트래픽 난독화가 꺼져 있습니다" ,
"secDetail.No non-extractable ephemeral ECDH key pair for this session" : "이 세션에는 추출할 수 없는 일회용 ECDH 키 쌍이 없습니다" ,
"secDetail.Session-level PFS only: keys are ephemeral per session, but the Double Ratchet is not active for this connection (peer on an older version), so a compromised session key exposes the whole conversation" : "세션 단위 순방향 비밀성만 적용됩니다. 키는 세션마다 일회용이지만 이 연결에서는 Double Ratchet이 동작하지 않아(상대가 이전 버전 사용), 세션 키가 유출되면 대화 전체가 드러납니다." ,
"msg.pause" : "일시정지" ,
"msg.failed" : "실패" ,
"groupErr.timeout" : "코드가 준비되기 전에 어떤 구성원이 응답을 멈췄습니다." ,
"groupErr.keyMismatch" : "어떤 구성원의 키가 밝힌 신원과 맞지 않았습니다." ,
"groupErr.revealMismatch" : "어떤 구성원이 공개한 값이 앞서 확약한 것과 맞지 않았습니다." ,
"groupErr.commitChanged" : "어떤 구성원이 도중에 확약을 바꿨습니다." ,
"groupErr.missingKey" : "명단에 있던 구성원의 키가 끝내 도착하지 않았습니다." ,
"groupErr.outsider" : "그룹 밖의 누군가에게서 프레임이 도착했습니다." ,
"groupErr.limit" : "그룹은 최대 여덟 명까지입니다." ,
"groupErr.tooLarge" : "메시지가 너무 커서 그룹에 보낼 수 없었습니다." ,
"fileType.text" : "일반 텍스트" ,
"fileType.images" : "이미지" ,
"fileType.archives" : "압축 파일" ,
"fileType.voice" : "음성 메시지" ,
"fileType.unsupported" : "지원하지 않음" ,
"qrScan.title" : "QR 코드 스캔" ,
"qrScan.auto" : "자동 모드" ,
"qrScan.reset" : "초기화" ,
"qrScan.autoScroll" : "자동 스크롤이 켜졌습니다" ,
"qrScan.starting" : "카메라를 켜는 중…" ,
"qrScan.point" : "상대의 QR에 카메라를 맞추세요" ,
"qrScan.tapFocus" : "화면을 눌러 초점을 맞추세요" ,
"qrScan.focusing" : "초점 맞추는 중…" ,
"iceErr.notArray" : "서버 목록은 배열이어야 합니다" ,
"iceErr.invalidJson" : "올바르지 않은 JSON" ,
"iceErr.tooMany" : "서버가 너무 많습니다 (최대 {max}개)" ,
"iceErr.invalidEntry" : "{label}: 올바르지 않은 항목" ,
"iceErr.urlCount" : "{label}: URL이 1개에서 {max}개 사이여야 합니다" ,
"iceErr.turnCreds" : "{label}: TURN 서버는 보통 사용자 이름과 자격 증명이 필요합니다" ,
"iceUrl.notString" : "URL은 문자열이어야 합니다" ,
"iceUrl.empty" : "URL이 비어 있습니다" ,
"iceUrl.tooLong" : "URL이 너무 깁니다" ,
"iceUrl.badChars" : "URL에 쓸 수 없는 문자가 있습니다" ,
"iceUrl.badScheme" : "URL은 stun:, stuns:, turn: 또는 turns: 로 시작해야 합니다" ,
"iceUrl.badQuery" : "URL의 질의가 올바르지 않습니다" ,
"iceUrl.noHost" : "URL에 호스트가 없습니다" ,
"iceUrl.badHost" : "URL의 호스트나 포트가 올바르지 않습니다" ,
"iceUrl.badTransport" : "URL 질의는 transport=udp 또는 transport=tcp 여야 합니다" ,
"msg.off" : "끔" ,
"file.consentUnavailable" : "동의를 구할 수 없습니다" ,
"secLevel.MAXIMUM" : "최고" ,
"secLevel.INITIALIZING" : "시작 중" ,
"secLevel.ERROR" : "오류" ,
"secLevel.UNKNOWN" : "알 수 없음" ,
"status.error" : "오류" ,
"offline.disconnect" : "연결 끊기" ,
"offline.learnMore" : "자세히 보기" ,
"pwa.installApp" : "앱 설치" ,
2026-09-01 01:04:11 -04:00
"chat.onWeb" : "웹 버전을 쓰고 있습니다" ,
"groupCall.startVoice" : "그룹 음성 통화 시작" ,
"groupCall.startVideo" : "그룹 영상 통화 시작" ,
"groupCall.join" : "참여" ,
"groupCall.dismiss" : "나중에" ,
"groupCall.leave" : "통화 나가기" ,
"groupCall.you" : "나" ,
"groupCall.connecting" : "연결 중…" ,
"groupCall.waitingLink" : "직접 연결을 기다리는 중…" ,
"groupCall.legFailed" : "연결하지 못했습니다" ,
"groupCall.startedVoice" : "{name} 님이 음성 통화를 시작했습니다" ,
"groupCall.startedVideo" : "{name} 님이 영상 통화를 시작했습니다" ,
"groupCall.inCall" : "통화 중 {count}명" ,
"groupCall.err.permission_denied" : "통화를 시작할 수 없습니다 - 마이크와 카메라 접근이 차단되어 있습니다. 이 사이트에 허용한 뒤 다시 시도하세요." ,
"groupCall.err.device_not_found" : "통화를 시작할 수 없습니다 - 이 기기에서 마이크를 찾을 수 없습니다." ,
"groupCall.err.device_busy" : "통화를 시작할 수 없습니다 - 마이크를 다른 앱이 사용 중입니다. 종료한 뒤 다시 시도하세요." ,
"groupCall.err.media_failed" : "통화를 시작할 수 없습니다 - 마이크를 열지 못했습니다." ,
"groupCall.err.call_in_progress" : "이 그룹에서 이미 통화가 진행 중입니다. 새로 시작하지 말고 참여하세요." ,
"groupCall.err.not_ready" : "통화하기 전에 그룹 코드를 확인하세요." ,
"groupCall.speaking" : "{name} 님이 말하는 중" ,
"groupCall.pin" : "{name} 크게 보기" ,
"groupCall.unpin" : "전체 보기로 돌아가기" ,
"groupCall.showEveryone" : "전체"
2026-08-29 12:46:15 -04:00
},
"manifest" : {
"name" : "SecureBit.chat - 종단 간 암호화 비공개 메신저" ,
"short_name" : "SecureBit" ,
"description" : "ECDH, DTLS, SAS로 보호되는 군용 수준 암호화 P2P 메신저"
}
}