i18n: strings the desktop client needed, and its screenshots
CodeQL Analysis / Analyze CodeQL (push) Canceled after 0s
Deploy Application / deploy (push) Canceled after 0s
Mirror to Codeberg / mirror (push) Canceled after 0s
Mirror to PrivacyGuides / mirror (push) Canceled after 0s

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:
lockbitchat
2026-09-01 21:05:47 -04:00
parent 8ad4b4558d
commit 46be54b59f
19 changed files with 1976 additions and 26 deletions
+76 -1
View File
@@ -806,6 +806,81 @@
"groupCall.speaking": "{name} מדבר/ת",
"groupCall.pin": "הצגת {name} בגדול",
"groupCall.unpin": "חזרה לכולם",
"groupCall.showEveryone": "כולם"
"groupCall.showEveryone": "כולם",
"msg.after5s": "5 שניות אחרי הקריאה",
"msg.after15s": "15 שניות אחרי הקריאה",
"msg.after30s": "30 שניות אחרי הקריאה",
"msg.after1m": "דקה אחרי הקריאה",
"msg.sec30": "30 שניות",
"msg.min5": "5 דקות",
"msg.hour1": "שעה",
"desktop.shareDesc": "שלחו את הקוד לצד השני. הוא חד-פעמי ופג במהירות.",
"desktop.invitationCreated": "הזמנה מאובטחת נוצרה - שלחו אותה לצד השני.",
"desktop.joinDesc": "הדביקו את קוד ההזמנה של הצד השני כדי לבנות את התשובה המאובטחת שלכם.",
"desktop.offerTag": "הזמנה · העתקת טקסט",
"desktop.answerTag": "תשובה · העתקת טקסט",
"desktop.offerPlaceholder": "קוד ההזמנה יופיע כאן…",
"desktop.answerPlaceholder": "קוד התשובה יופיע כאן…",
"desktop.backToChats": "חזרה לצ׳אטים",
"desktop.sendFeedback": "שליחת משוב",
"desktop.callsNeedVerified": "שיחות דורשות ערוץ מאובטח מאומת.",
"desktop.noOpenChannel": "אין ערוץ מאובטח פתוח.",
"desktop.chatCarriesCall": "הצ׳אט הזה נושא שיחה קבוצתית. צאו מהשיחה הקבוצתית לפני שיחה אחד-על-אחד.",
"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} שרתים, כתובת אחת בכל שורה או 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": "תעבורת הסוואה פעילה: מסגרות מזויפות אקראיות (32-128 בתים כל 15-30 שניות) בערוץ הראצ׳ט",
"desktop.sec.coverOff": "מחולל תעבורת ההסוואה אינו פועל",
"desktop.sec.coverUnsupported": "תעבורת הסוואה מחייבת הפעלת Double Ratchet (הצד השני בגרסה ישנה יותר)",
"desktop.tagline": "חופש מקצה לקצה"
}
}