i18n: strings the desktop client needed, and its screenshots
The dictionaries here are the single source both clients read: the desktop
copies src/i18n/generated.js byte for byte, so a key added on either side is
available to the other.
* desktop.* — sentences only the desktop says. It has no QR display and no
browser to grant permissions, so its copy differs where the browser's would
mislead: "allow the microphone in system settings", not "for this site".
* msg.after5s and the rest of the disappearing-message timers, which this
client renders from hardcoded English today and can now translate too.
* secLevel.HIGH / MEDIUM / LOW, which the security panel needed and the
dictionary only had MAXIMUM for.
All of it translated into the full thirteen. Nothing here changes what this site
renders — the web client does not reference the new keys yet.
assets/screenshots/desktop-*.png are captures of the desktop client at 1.0.0,
for its Flathub listing. A reviewer opens each URL, so they have to be served
from this domain rather than from a code host.
This commit is contained in:
+76
-1
@@ -801,7 +801,82 @@
|
||||
"groupCall.speaking": "{name} 님이 말하는 중",
|
||||
"groupCall.pin": "{name} 크게 보기",
|
||||
"groupCall.unpin": "전체 보기로 돌아가기",
|
||||
"groupCall.showEveryone": "전체"
|
||||
"groupCall.showEveryone": "전체",
|
||||
"msg.after5s": "읽은 뒤 5초",
|
||||
"msg.after15s": "읽은 뒤 15초",
|
||||
"msg.after30s": "읽은 뒤 30초",
|
||||
"msg.after1m": "읽은 뒤 1분",
|
||||
"msg.sec30": "30초",
|
||||
"msg.min5": "5분",
|
||||
"msg.hour1": "1시간",
|
||||
"desktop.shareDesc": "상대에게 코드를 보내세요. 일회용이며 곧 만료됩니다.",
|
||||
"desktop.invitationCreated": "보안 초대가 만들어졌습니다 - 상대에게 보내세요.",
|
||||
"desktop.joinDesc": "상대의 초대 코드를 붙여넣어 보안 응답을 만드세요.",
|
||||
"desktop.offerTag": "초대 · 텍스트 복사",
|
||||
"desktop.answerTag": "응답 · 텍스트 복사",
|
||||
"desktop.offerPlaceholder": "초대 코드가 여기에 표시됩니다…",
|
||||
"desktop.answerPlaceholder": "응답 코드가 여기에 표시됩니다…",
|
||||
"desktop.backToChats": "채팅으로 돌아가기",
|
||||
"desktop.sendFeedback": "피드백 보내기",
|
||||
"desktop.callsNeedVerified": "통화하려면 검증된 보안 채널이 필요합니다.",
|
||||
"desktop.noOpenChannel": "열린 보안 채널이 없습니다.",
|
||||
"desktop.chatCarriesCall": "이 채팅이 그룹 통화를 전달하고 있습니다. 1:1 통화를 걸기 전에 그룹 통화에서 나가세요.",
|
||||
"desktop.err.permission_denied": "통화를 시작할 수 없습니다 - 마이크와 카메라 접근이 차단되어 있습니다. 시스템 설정에서 허용한 뒤 다시 시도하세요.",
|
||||
"desktop.language": "언어",
|
||||
"desktop.languageHint": "즉시 적용됩니다. 이미 보낸 메시지는 원래 언어 그대로 남습니다.",
|
||||
"desktop.compareCode": "상대와 확인 코드를 비교하고 일치하면 확인하세요.",
|
||||
"desktop.verifyBeforeFiles": "파일을 보내기 전에 검증을 마치세요.",
|
||||
"desktop.verifyBeforeSending": "메시지를 보내기 전에 검증을 마치세요.",
|
||||
"desktop.disconnectedByBackend": "연결이 안전하게 종료되었습니다.",
|
||||
"desktop.restoreFailed": "연결을 복구하지 못했습니다. 이 채팅을 닫습니다.",
|
||||
"desktop.channelNotReady": "데이터 채널이 아직 없습니다. 연결이 맺어질 때까지 기다리세요.",
|
||||
"desktop.enterCode": "확인 코드를 입력하세요.",
|
||||
"desktop.noOffer": "초대가 없습니다. 먼저 만드세요.",
|
||||
"desktop.notInitiator": "이 연결을 만든 쪽이 아니므로 적용할 응답이 없습니다.",
|
||||
"desktop.decryptFailed": "메시지를 복호화하지 못해 버렸습니다.",
|
||||
"desktop.badMessageFormat": "형식이 잘못된 프레임이 도착해 버렸습니다.",
|
||||
"desktop.notSentNotReady": "메시지를 보내지 못했습니다: 보안 채널이 준비되지 않았습니다. 검증이 끝나기를 기다리거나 다시 연결하세요.",
|
||||
"desktop.micDenied": "마이크 접근이 거부되었습니다.",
|
||||
"desktop.noChannelWait": "열린 보안 채널이 없습니다 - 연결이 맺어질 때까지 기다리세요.",
|
||||
"desktop.sasFailed": "검증에 실패했습니다. 중간자가 있을 수 있어 연결을 중단했습니다.",
|
||||
"desktop.sasOk": "검증에 성공했습니다. 이 채널은 종단 간 인증되었습니다.",
|
||||
"desktop.iceForgotten": "저장된 서버를 지웠습니다. 공개 ICE 서버를 사용합니다.",
|
||||
"desktop.icePublic": "공개 ICE 서버를 사용합니다.",
|
||||
"desktop.verificationInProgress": "보안 검증이 아직 진행 중입니다. 끝날 때까지 기다리세요.",
|
||||
"desktop.fileGone": "이 파일은 더 이상 내려받을 수 없습니다.",
|
||||
"desktop.codeMismatch": "확인 코드가 일치하지 않습니다. 안전을 위해 연결을 끊습니다.",
|
||||
"desktop.noLocalCode": "검증 실패: 비교할 로컬 파생 코드가 없습니다. 안전을 위해 연결을 끊습니다.",
|
||||
"desktop.protocolViolation": "상대가 당신이 확인하기 전에 코드가 확인되었다고 주장했습니다. 안전을 위해 연결을 끊습니다.",
|
||||
"desktop.verificationRejected": "검증이 거부되었습니다. 안전을 위해 연결을 중단했습니다.",
|
||||
"secLevel.HIGH": "높음",
|
||||
"secLevel.MEDIUM": "보통",
|
||||
"secLevel.LOW": "낮음",
|
||||
"desktop.rerun": "다시 검사",
|
||||
"desktop.ice.customDesc": "최대 {max}개 서버, 한 줄에 URL 하나 또는 JSON.",
|
||||
"desktop.ice.persistDesc": "이 기기에 로컬로 저장됩니다. 이번 세션에만 사용하려면 꺼 두세요.",
|
||||
"desktop.group.leaveNote": "다른 구성원에게 당신이 나갔다고 알립니다. 이후 이 기기에는 이 그룹에 대한 것이 아무것도 남지 않습니다 - 다시 들어갈 사본을 가진 서버가 없으므로 새 초대가 필요합니다.",
|
||||
"desktop.sec.ecdsaOk": "핸드셰이크 중 상대 키 패키지 서명을 검증했습니다 (ECDSA P-384 / SHA-384)",
|
||||
"desktop.sec.ecdsaNone": "완료된 핸드셰이크가 없습니다",
|
||||
"desktop.sec.ecdhOk": "임시 ECDH P-384 교환에서 HKDF-SHA-256으로 세션 키를 파생했습니다",
|
||||
"desktop.sec.ecdhNone": "세션 키가 파생되지 않았습니다",
|
||||
"desktop.sec.encryptionOk": "코어에서 AES-GCM 암·복호화를 검증했습니다",
|
||||
"desktop.sec.encryptionNa": "AES-GCM 자체 검사를 실행할 수 없었습니다",
|
||||
"desktop.sec.integrityOk": "메시지 무결성을 검증했습니다 (AES-GCM 인증)",
|
||||
"desktop.sec.integrityNa": "무결성 자체 검사를 실행할 수 없었습니다",
|
||||
"desktop.sec.pfsOk": "Double Ratchet 작동 중 - 메시지마다 고유한 키가 있습니다",
|
||||
"desktop.sec.pfsNa": "측정되지 않음",
|
||||
"desktop.sec.replayOk": "래칫 메시지 키는 사용 즉시 파기되어 가로챈 프레임을 재생할 수 없습니다",
|
||||
"desktop.sec.replayNa": "측정되지 않음",
|
||||
"desktop.sec.dtlsPinned": "상대 DTLS 지문 고정: {fp}",
|
||||
"desktop.sec.dtlsNone": "원격 DTLS 지문이 없습니다",
|
||||
"desktop.sec.sasBoth": "양쪽 모두 대역 외에서 안전 코드를 확인했습니다",
|
||||
"desktop.sec.sasIncomplete": "안전 코드가 양쪽 모두에게 확인되지 않았습니다",
|
||||
"desktop.sec.metadataOk": "전용 메타데이터 키를 파생했습니다 (HKDF metadata-protection-v4)",
|
||||
"desktop.sec.metadataNone": "메타데이터 키 없음",
|
||||
"desktop.sec.coverOn": "위장 트래픽 작동 중: 래칫 채널에 무작위 더미 프레임 (15-30초마다 32-128 B)",
|
||||
"desktop.sec.coverOff": "위장 트래픽 생성기가 실행되고 있지 않습니다",
|
||||
"desktop.sec.coverUnsupported": "위장 트래픽에는 Double Ratchet 세션이 필요합니다 (상대가 구버전입니다)",
|
||||
"desktop.tagline": "종단 간 자유"
|
||||
},
|
||||
"manifest": {
|
||||
"name": "SecureBit.chat - 종단 간 암호화 비공개 메신저",
|
||||
|
||||
Reference in New Issue
Block a user