"description":"Free end-to-end encrypted P2P messenger that runs entirely in your browser. No accounts, no servers storing your messages, nothing to install.",
"ogDescription":"A secure messenger that runs entirely in your browser. No accounts, no servers storing your messages. Bring your own STUN/TURN servers - we don't impose anything.",
"siteDescription":"End-to-end encrypted, peer-to-peer chat that runs entirely in your browser.",
"appDescription":"A free, end-to-end encrypted peer-to-peer messenger. No accounts, no servers storing messages - ECDH P-384, AES-256-GCM and in-person SAS verification.",
"operatingSystem":"Any (modern web browser)",
"browserRequirements":"Requires WebRTC and the Web Crypto API",
"community.description":"SecureBit grows thanks to its community. Your ideas and feedback shape the future of secure communication - built in the open, with complete ASN.1 validation end-to-end.",
"community.github":"GitHub Repository",
"community.feedback":"Feedback",
"unique.eyebrow":"What sets us apart",
"unique.heading":"Why SecureBit is unique",
"unique.s1.titleTop":"Layered",
"unique.s1.titleBottom":"encryption core",
"unique.s1.collapsed":"Encryption core",
"unique.s1.desc":"ECDH P-384 key exchange, AES-256-GCM payloads, ECDSA signatures and full ASN.1 validation - composed into one hardened pipeline.",
"unique.s1.tags":[
"ECDH P-384",
"AES-256-GCM",
"ECDSA",
"ASN.1"
],
"unique.s2.titleTop":"Pure P2P",
"unique.s2.titleBottom":"WebRTC",
"unique.s2.collapsed":"Pure P2P WebRTC",
"unique.s2.desc":"Messages travel directly between devices over WebRTC. No relay holds your data - the server only helps two peers find each other.",
"unique.s2.tags":[
"DTLS 1.3",
"No relay"
],
"unique.s3.titleTop":"Perfect",
"unique.s3.titleBottom":"forward secrecy",
"unique.s3.collapsed":"Forward secrecy",
"unique.s3.desc":"Session keys rotate continuously and are discarded after use, so a single compromised key can never unlock past conversations.",
"unique.s3.tags":[
"Ephemeral keys",
"Auto-rotate"
],
"unique.s4.titleTop":"Traffic",
"unique.s4.titleBottom":"obfuscation",
"unique.s4.collapsed":"Traffic obfuscation",
"unique.s4.desc":"Packet sizes and timing are padded and randomized, hiding metadata patterns from anyone watching the wire.",
"unique.s4.tags":[
"Packet padding",
"Timing jitter"
],
"unique.s5.titleTop":"Zero data",
"unique.s5.titleBottom":"collection",
"unique.s5.collapsed":"Zero data collection",
"unique.s5.desc":"No accounts, no logs, no message storage. There is nothing on a server to leak, subpoena, or sell.",
"unique.s5.tags":[
"No accounts",
"No logs"
],
"partners.eyebrow":"Partners & ecosystem",
"partners.heading":"Trusted by our partners",
"partners.aegis.desc":"Capital partner securing confidential financial communications across its portfolio.",
"partners.aegis.role":"Strategic backer",
"partners.furilabs.desc":"Privacy-first Linux phones that ship SecureBit as a default secure channel.",
"partners.furilabs.role":"Technology partner",
"partners.inviteTitle":"Become a partner",
"partners.inviteDesc":"Building privacy hardware or infrastructure? Let's integrate SecureBit.",
"partners.inviteCta":"Start a conversation",
"roadmap.eyebrow":"Development Roadmap",
"roadmap.heading":"The evolution of SecureBit",
"roadmap.subheading":"From the first prototype to a quantum-resistant, decentralized network - with complete ASN.1 validation at every layer.",
"roadmap.progress":"{shipped} of {total} milestones shipped",
"roadmap.upcoming":"{upcoming} on the way",
"roadmap.keyFeatures":"Key features",
"roadmap.status.released":"Released",
"roadmap.status.current":"Current",
"roadmap.status.dev":"In development",
"roadmap.status.planned":"Planned",
"roadmap.status.research":"Research",
"hero.headlineTop":"A direct line",
"hero.headlineBottom":"only you two can read.",
"hero.subheading":"Keys are generated on your device and exchanged peer-to-peer. No accounts, no servers storing your messages.",
"hero.diagramAlt":"A direct encrypted line to one peer, with two more peers joining the mesh",
"intro.createTitle":"Create a new channel",
"intro.createDesc":"Your device generates the keys and a one-time invitation. Nothing touches a server.",
"intro.createCta":"Generate keys & invitation",
"intro.joinTitle":"Join a channel",
"intro.scanTitle":"Scan QR with camera",
"intro.scanSubtitle":"Fastest - point at your peer's screen",
"update.error":"Update error. Please refresh the page manually (Ctrl+F5 or Cmd+Shift+R)",
"update.confirmSkip":"New version available. Update is recommended for security and stability. Continue without update?",
"offline.backOnline":"Back online",
"offline.mode":"Offline mode",
"offline.dismiss":"Dismiss",
"offline.lostTitle":"Connection lost",
"offline.lostDesc":"SecureBit is now in offline mode. Some features are limited, but your data stays safe.",
"offline.point1":"Your session and keys are preserved",
"offline.point2":"No data is stored on servers",
"offline.point3":"Messages & files sync when you reconnect",
"offline.continue":"Continue offline",
"offline.restoredTitle":"When you reconnect",
"offline.restoredDesc":"A dropped connection costs you nothing. SecureBit queues everything locally and resumes the encrypted session the instant you're back online.",
"offline.r1Title":"Your messages get delivered",
"offline.r1Desc":"Everything you wrote while offline is sent to your contact automatically.",
"offline.r2Title":"Files finish transferring",
"offline.r2Desc":"Uploads resume from where they stopped - no need to resend.",
"file.gone":"This file is no longer available for download.",
"call.incoming":"Incoming call",
"call.incomingVideo":"Incoming video call",
"call.encrypted":"Encrypted call",
"call.encryptedShort":"Encrypted",
"call.peer":"Secure peer",
"call.connecting":"Connecting…",
"call.ringing":"Ringing…",
"call.accept":"Accept",
"call.decline":"Decline",
"call.end":"End call",
"call.camera":"Camera",
"call.cameraOff":"Camera off",
"call.peerCameraOff":"Peer's camera is off",
"call.flipCamera":"Flip camera",
"call.addVideo":"Add video",
"call.video":"Video",
"call.muted":"Muted",
"call.expand":"Expand",
"call.minimize":"Minimize",
"call.quality":"Connection quality",
"call.qualityExcellent":"Excellent",
"call.videoPrefix":"Video · ",
"call.voicePrefix":"Voice · ",
"group.new":"New group",
"group.create":"Create group",
"group.join":"Join group",
"group.name":"Group name",
"group.nameTooLong":"The group name is too long.",
"group.capacity":"Up to {max} people, peer to peer. Everyone will compare one safety code before the group opens.",
"group.invite":"Invite",
"group.inviteMore":"Invite more members",
"group.invitePeople":"Invite {count} people",
"group.invitation":"Group invitation",
"group.addMembers":"Add members",
"group.roomFor":"Room for {remaining} more. Everyone will compare a new group code once they join.",
"group.membersCount":"{count} members",
"group.member":"Member",
"group.members":"Members",
"group.remove":"Remove {name}",
"group.message":"Message {name}",
"group.leave":"Leave",
"group.leaveThis":"Leave this group",
"group.cancel":"Cancel group",
"group.close":"Close",
"group.cancelBtn":"Cancel",
"group.decline":"Decline",
"group.working":"Working…",
"group.sasTitle":"Group safety code",
"group.sasEveryone":"Everyone sees this code",
"group.sasCompare":"Compare the group code with every member to open this group.",
"group.sasReadAloud":"Read these digits aloud to ",
"group.sasWarning":"If even one member reads a different code, someone is sitting between you. Cancel the group - do not confirm.",
"group.confirmFirst":"Confirm the group code first",
"group.codeSuffix":" · code {code}",
"group.exchangingNonces":"Exchanging nonces…",
"group.waitingCommit":"Waiting for every member to commit…",
"group.waitingJoin":"Waiting for the other members to join…",
"group.emptyChat":"Nothing here yet. Messages are signed by their sender and travel over each member's own encrypted link.",
"group.noVerified":"No verified chats yet. Open a 1:1 chat and compare its safety code first - a group is built out of connections you have already checked.",
"group.noMoreToAdd":"No other verified chats to add. Open a 1:1 chat and compare its safety code first.",
"group.directLink":"Direct peer-to-peer link",
"group.noDirectLink":"No direct link yet - messages are relayed by another member while one is being built",
"group.relayNote":"Some members have no direct link to you yet. Their messages travel through another member, who can see that you are talking but cannot read past the signature or change what you said. The group keeps trying to connect them directly.",
"group.relayOnlyOff":"Relay-only mode is off, so each member connects to you directly and learns your IP address - including members somebody else invited. Turn it on in network settings if that matters here.",
"group.memberOffline":"{name} is offline and will not receive messages. They are still a member - removing them re-keys the group.",
"group.joinNote":"Other members will learn your presence in this group. There is no message history to catch up on - a group starts empty.",
"group.inviteSentNote":"The group keeps working until they accept. There is no history for them to catch up on - they will only see what is sent from now on.",
"group.errNotCreated":"Group not created",
"group.errNobodyAccepted":"Nobody accepted the invitation in time.",
"group.errNothingSent":"Nothing was sent and nothing was verified. Close this and try again once everyone is connected.",
"group.errNotFormed":"This group could not be formed.",
"group.errFull":"This group is full.",
"group.errInviteFailed":"The invitation could not be sent - that chat is not connected.",
"group.errNoMemberList":"The group owner never sent the member list.",
"group.errUnsignedList":"The member list was not signed by the group owner. Do not retry - tell them.",
"group.errNotOwner":"Someone other than the group owner tried to change the members.",
"secDetail.ECDSA digital signatures working correctly":"ECDSA digital signatures working correctly",
"secDetail.MAC key not available or invalid":"MAC key not available or invalid",
"secDetail.Rate limiter did not block a message over the limit":"Rate limiter did not block a message over the limit",
"secDetail.Rate limiter is not available":"Rate limiter is not available",
"secDetail.Replay protection is working correctly":"Replay protection is working correctly",
"secDetail.Replay protection not enabled":"Replay protection not enabled",
"secDetail.SAS code not available":"SAS code not available",
"secDetail.SAS verification code is valid and available":"SAS verification code is valid and available",
"secDetail.Traffic obfuscation is working correctly":"Traffic obfuscation is working correctly",
"secDetail.Traffic obfuscation not enabled":"Traffic obfuscation not enabled",
"secDetail.No non-extractable ephemeral ECDH key pair for this session":"No non-extractable ephemeral ECDH key pair for this session",
"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":"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",
"msg.pause":"Pause",
"msg.failed":"Failed",
"groupErr.timeout":"A member stopped responding before the code was ready.",
"groupErr.keyMismatch":"A member's key did not match the identity claimed for it.",
"groupErr.revealMismatch":"A member's revealed value did not match what they committed to.",
"groupErr.commitChanged":"A member changed their commitment part-way through.",
"groupErr.missingKey":"A member was listed whose key never arrived.",
"groupErr.outsider":"A frame arrived from someone outside the group.",
"groupErr.limit":"A group is limited to eight members.",
"groupErr.tooLarge":"A message was too large to send to the group.",
"fileType.text":"Plain text",
"fileType.images":"Images",
"fileType.archives":"Archives",
"fileType.voice":"Voice messages",
"fileType.unsupported":"Unsupported",
"qrScan.title":"Scan QR Code",
"qrScan.auto":"Auto Mode",
"qrScan.reset":"Reset",
"qrScan.autoScroll":"Auto-scrolling enabled",
"qrScan.starting":"Starting camera...",
"qrScan.point":"Point camera at QR code",
"qrScan.tapFocus":"Tap screen to focus",
"qrScan.focusing":"Focusing...",
"iceErr.notArray":"Server list must be an array",
"iceErr.invalidJson":"Invalid JSON",
"iceErr.tooMany":"Too many servers (max {max})",
"iceErr.invalidEntry":"{label}: invalid entry",
"iceErr.urlCount":"{label}: between 1 and {max} URLs required",
"iceErr.turnCreds":"{label}: TURN servers usually require a username and credential",
"desktop.restoreFailed":"Could not restore the connection. Closing this chat.",
"desktop.channelNotReady":"The data channel is not available yet. Wait for the connection to establish.",
"desktop.enterCode":"Enter the verification code to confirm.",
"desktop.noOffer":"No invitation found. Create one first.",
"desktop.notInitiator":"You did not create this connection, so there is no answer for you to apply.",
"desktop.decryptFailed":"A message could not be decrypted and was discarded.",
"desktop.badMessageFormat":"A malformed frame arrived and was discarded.",
"desktop.notSentNotReady":"Message not sent: the secure channel is not ready. Wait for verification to finish, or reconnect.",
"desktop.micDenied":"Microphone access was denied.",
"desktop.noChannelWait":"No open secure channel - wait for the connection to establish.",
"desktop.sasFailed":"Verification failed. A machine-in-the-middle may be present, so the connection was aborted.",
"desktop.sasOk":"Verification succeeded. This channel is authenticated end to end.",
"desktop.iceForgotten":"Saved servers forgotten. Using public ICE servers.",
"desktop.icePublic":"Using public ICE servers.",
"desktop.verificationInProgress":"Security verification is still running. Wait for it to finish.",
"desktop.fileGone":"This file is no longer available for download.",
"desktop.codeMismatch":"The verification codes do not match. Disconnecting for safety.",
"desktop.noLocalCode":"Verification failed: there is no locally derived code to compare against. Disconnecting for safety.",
"desktop.protocolViolation":"The peer claimed the code was confirmed before you confirmed it. Disconnecting for safety.",
"desktop.verificationRejected":"Verification rejected. The connection was aborted for safety.",
"secLevel.HIGH":"HIGH",
"secLevel.MEDIUM":"MEDIUM",
"secLevel.LOW":"LOW",
"desktop.rerun":"Re-run",
"desktop.ice.customDesc":"Up to {max} servers, one URL per line or JSON.",
"desktop.ice.persistDesc":"Stored locally on this device. Leave off to use only for this session.",
"desktop.group.leaveNote":"The other members are told you left. Nothing about this group is kept on this device afterwards - there is no server holding a copy to rejoin from, so you would need a fresh invitation.",
"desktop.sec.ecdsaOk":"Peer key package signature verified during the handshake (ECDSA P-384 / SHA-384)",
"desktop.sec.ecdsaNone":"No completed handshake",
"desktop.sec.ecdhOk":"Session keys derived from an ephemeral ECDH P-384 exchange via HKDF-SHA-256",
"desktop.sec.ecdhNone":"No session keys derived",
"desktop.sec.encryptionOk":"AES-GCM encryption and decryption verified inside the core",
"desktop.sec.encryptionNa":"The AES-GCM self-test could not be run",