Šepot — end-to-end encrypted messenger

Initial public release. Anonymous on-device identity (no phone number,
e-mail, or password), Signal-protocol cryptography (X3DH + PQXDH, Double
Ratchet, sealed sender) via libsignal, a metadata-minimizing relay,
group chats, disappearing messages, encrypted local storage, optional
Tor transport, and a UI localized into Czech, English, German, Russian,
and Italian.

Monorepo: Flutter client (app/), Rust relay + wire types (rust/),
protobuf definitions (proto/), self-host deploy (deploy/).

Licensed under AGPL-3.0 with an app-store distribution exception (§7).
This commit is contained in:
Julius Joska
2026-07-11 17:06:39 +02:00
commit 8081d98c67
309 changed files with 44102 additions and 0 deletions
File diff suppressed because it is too large Load Diff
+352
View File
@@ -0,0 +1,352 @@
{
"@@locale": "de",
"appTitle": "Šepot",
"settingsLanguage": "App-Sprache",
"languageSystem": "Systemstandard",
"commonUnknownContact": "Unbekannt",
"verifyVerified": "Verifiziert",
"verifyUnverified": "Nicht verifiziert",
"chatMenuVerifyContact": "Kontakt verifizieren",
"chatDisappearingMessages": "Verschwindende Nachrichten",
"chatMenuUnblockContact": "Blockierung aufheben",
"chatMenuBlockContact": "Kontakt blockieren",
"reportAndBlock": "Melden und blockieren",
"errorGeneric": "Fehler: {error}",
"groupsYouLeftGroup": "Du bist nicht mehr in der Gruppe",
"groupsMemberCount": "{count, plural, one{1 Mitglied} other{{count} Mitglieder}}",
"groupsMembers": "Mitglieder",
"groupsRename": "Gruppe umbenennen",
"groupsLeave": "Gruppe verlassen",
"groupsLeftBanner": "Du bist nicht mehr in der Gruppe. Der Verlauf bleibt, neue Nachrichten kommen nicht mehr an.",
"groupsMembersWithCount": "Mitglieder ({count})",
"groupsYou": "Du",
"groupsFounder": "Hat die Gruppe gegründet",
"groupsNameHint": "Gruppenname",
"commonCancel": "Abbrechen",
"commonSave": "Speichern",
"groupsRenameFailed": "Umbenennen fehlgeschlagen: {error}",
"groupsLeaveConfirmTitle": "Gruppe verlassen?",
"groupsLeaveConfirmBody": "Die anderen sehen, dass du nicht mehr in der Gruppe bist. Der Verlauf bleibt dir erhalten, aber du bekommst keine neuen Nachrichten mehr und musst neu eingeladen werden.",
"groupsLeaveAction": "Verlassen",
"groupsLeaveFailed": "Verlassen fehlgeschlagen: {error}",
"chatBlockedBanner": "Der Kontakt ist blockiert. Du bekommst keine Nachrichten von ihm und kannst ihm nicht schreiben.",
"chatUnblock": "Blockierung aufheben",
"chatContactBlocked": "Kontakt {name} wurde blockiert",
"chatContactUnblocked": "Blockierung von {name} aufgehoben",
"reportAndBlockBody": "Wir blockieren den Kontakt {name} und du bekommst keine Nachrichten mehr von ihm. Danach zeigen wir dir ein Formular, mit dem du uns mitteilst, was passiert ist — wir sehen den Inhalt der Nachrichten nicht und erfahren ohne deine Beschreibung nichts davon.",
"chatEmptyEncrypted": "Nachrichten sind Ende-zu-Ende-verschlüsselt.",
"chatEmptyNoOneElse": "Niemand sonst kann sie lesen.",
"commonToday": "Heute",
"commonYesterday": "Gestern",
"chatMessageHint": "Nachricht schreiben…",
"chatDiscardRecording": "Verwerfen",
"chatRecording": "Aufnahme läuft…",
"chatMicPermissionMissing": "Mikrofonberechtigung fehlt",
"chatRecordingFailed": "Aufnahme fehlgeschlagen: {error}",
"chatVoiceSendFailed": "Senden der Sprachnachricht fehlgeschlagen: {error}",
"chatDeletedMessagePreview": "Gelöschte Nachricht",
"chatVoiceMessagePreview": "🎤 Sprachnachricht",
"chatPhotoPreview": "📷 Foto",
"chatAttachmentPreview": "📎 Anhang",
"chatEditingMessage": "Nachricht bearbeiten",
"chatReply": "Antwort",
"chatActionReply": "Antworten",
"commonCopy": "Kopieren",
"commonEdit": "Bearbeiten",
"chatDeleteForMe": "Für mich löschen",
"chatDeleteForEveryone": "Für alle löschen",
"commonOff": "Aus",
"chatDisappearing30s": "30 Sekunden",
"chatDisappearing5m": "5 Minuten",
"chatDisappearing1h": "1 Stunde",
"chatDisappearing1d": "1 Tag",
"chatDisappearing1w": "1 Woche",
"chatDisappearingDescription": "Neue Nachrichten werden nach Ablauf der Zeit bei dir und beim Gegenüber gelöscht.",
"chatDisappearingDisabled": "Verschwindende Nachrichten deaktiviert",
"chatDisappearingEnabled": "Neue Nachrichten verschwinden nach: {duration}",
"attachmentGallery": "Foto aus der Galerie",
"attachmentTakePhoto": "Foto aufnehmen",
"attachmentDocument": "Dokument",
"attachmentTooLarge": "Datei ist zu groß (max. {maxMb} MB)",
"attachmentPickFailed": "Auswahl des Anhangs fehlgeschlagen: {error}",
"attachmentSendFailed": "Senden des Anhangs fehlgeschlagen: {error}",
"chatSendFailed": "Senden fehlgeschlagen: {error}",
"chatMessageDeleted": "Nachricht gelöscht",
"chatEdited": "bearbeitet",
"errorTrustRootChanged": "Der Trust Root des Relays hat sich geändert! Kommunikation wird verweigert.",
"errorRelayUnavailable": "Relay nicht erreichbar (Sender-Zertifikat)",
"errorAttachmentTooLarge": "Anhang ist zu groß (max. {maxMb} MB)",
"errorGroupNeedsMember": "Die Gruppe braucht mindestens 1 Mitglied",
"errorGroupMaxMembers": "Die Gruppe kann höchstens {maxMembers} Mitglieder haben",
"errorMemberNoDeliveryAddress": "{displayName} hat keine Zustelladresse — frag nach einem neuen Link",
"errorContactNoDeliveryAddress": "Der Kontakt hat keine Zustelladresse — bitte ihn um einen neuen sepot://-Link",
"errorIdentityKeyMismatch": "Der Identitätsschlüssel vom Relay passt NICHT zum Kontakt — möglicher MITM-Angriff! Nachricht nicht gesendet.",
"settingsTitle": "Einstellungen",
"settingsSectionGeneral": "Allgemein",
"settingsSectionSecurity": "Sicherheit",
"settingsChangePinTitle": "PIN ändern",
"settingsChangePinSubtitle": "6-stellige PIN zum Entsperren",
"settingsAutoLockTitle": "Automatische Sperre",
"settingsAutoLock5min": "Nach 5 Minuten",
"settingsDecoyPinTitle": "Tarn-PIN",
"settingsDecoyPinSetSubtitle": "Eingerichtet — öffnet eine leere App",
"settingsDecoyPinUnsetSubtitle": "Zweite PIN, die eine leere App öffnet",
"settingsSectionNotifications": "Benachrichtigungen",
"settingsSectionConnection": "Verbindung",
"settingsSectionPrivacy": "Privatsphäre",
"settingsReadReceiptsTitle": "Lesebestätigungen",
"settingsReadReceiptsSubtitle": "Dem Gegenüber anzeigen, dass Nachrichten gelesen wurden (standardmäßig aus)",
"settingsScreenSecurityTitle": "Bildschirmsicherheit",
"settingsScreenSecuritySubtitle": "Screenshots blockieren und Inhalt in der App-Übersicht verbergen",
"settingsSectionBackup": "Schlüssel-Backup",
"settingsSeedPhraseTitle": "Wiederherstellungsphrase",
"settingsSeedPhraseSubtitle": "24 Wörter zur Wiederherstellung deiner Identität",
"settingsBackupExportTitle": "Verlauf sichern",
"settingsBackupExportSubtitle": "Verschlüsselte Datei mit Kontakten und Nachrichten",
"settingsBackupImportTitle": "Aus Backup wiederherstellen",
"settingsBackupImportSubtitle": "Backup laden (nur mit deiner Identität)",
"settingsSectionSafety": "Schutz",
"settingsReportAbuseTitle": "Missbrauch melden",
"settingsReportAbuseSubtitle": "Belästigung, Betrug, Gefährdung eines Kindes",
"settingsChildSafetyTitle": "Kinderschutz-Standards",
"settingsChildSafetySubtitle": "Wie wir gegen Kindesmissbrauch vorgehen",
"settingsSectionAbout": "Über die App",
"commonAppName": "Šepot",
"settingsVersion": "Version {version}",
"settingsLicenseTitle": "Lizenz",
"settingsLicenseSubtitle": "AGPL-3.0",
"settingsPrivacyPolicyTitle": "Datenschutzerklärung",
"settingsPrivacyPolicySubtitle": "Was wir über dich wissen (und was nicht)",
"settingsTermsTitle": "Nutzungsbedingungen",
"settingsTermsSubtitle": "sepot.cz/podminky",
"settingsDataDeletionTitle": "Datenlöschung",
"settingsDataDeletionSubtitle": "So beantragst du die Löschung",
"settingsDeleteAllDataButton": "Alle Daten löschen",
"settingsLicenseBody": "Šepot wird unter der GNU Affero General Public License Version 3 (AGPL-3.0) verbreitet. Es nutzt die Bibliothek libsignal, ebenfalls AGPL-3.0.\n\nDen Quellcode zu dieser Version kannst du per E-Mail an {supportEmail} anfordern — wir schicken ihn dir.",
"commonClose": "Schließen",
"settingsIdCopied": "ID kopiert",
"settingsFingerprint": "Fingerabdruck: {fingerprint}",
"backupShareSubject": "Šepot — verschlüsseltes Backup",
"backupExportFailed": "Backup fehlgeschlagen: {error}",
"backupRestoredCount": "{count, plural, one{1 Unterhaltung aus dem Backup wiederhergestellt} other{{count} Unterhaltungen aus dem Backup wiederhergestellt}}",
"backupImportFailed": "Wiederherstellung aus dem Backup fehlgeschlagen: {error}",
"settingsDecoyPinExplain": "Mit dieser PIN öffnet sich die App leer — ohne deine Kontakte und Nachrichten. Sie muss sich von der normalen PIN unterscheiden.",
"commonConfirm": "Bestätigen",
"commonSet": "Festlegen",
"settingsDecoyPinEnabled": "Tarn-PIN eingerichtet",
"settingsDecoyPinConflict": "Die Tarn-PIN muss sich von der normalen PIN unterscheiden",
"settingsDecoyPinDisabled": "Tarn-PIN deaktiviert",
"settingsSeedPhraseNotFound": "Wiederherstellungsphrase nicht gefunden",
"settingsSeedPhraseWarning": "Diese Wörter sind das einzige Backup deiner Identität. Zeig sie niemandem!",
"settingsSeedWordChip": "{index}. {word}",
"settingsAboutTagline": "Šepot — Privater Messenger",
"settingsAboutBody": "E2E-verschlüsselter Messenger mit offenem Quellcode.\n\nKryptografie:\n• X25519 (Schlüsselaustausch)\n• XChaCha20-Poly1305 (Verschlüsselung)\n• Ed25519 (Signaturen)\n\n© 2026 ajtak.it",
"settingsDeleteAccountTitle": "Konto und alle Daten löschen?",
"settingsDeleteAccountBody": "Diese Aktion kann nicht rückgängig gemacht werden. Alle Nachrichten, Kontakte und Schlüssel werden von diesem Gerät gelöscht und die Registrierung auf dem Server wird entfernt. Ohne Wiederherstellungsphrase verlierst du deine Identität.",
"settingsDeleteAccountServerOffline": "Der Server ist gerade nicht erreichbar — die Daten auf dem Gerät sind gelöscht, die Registrierung auf dem Server besteht noch. Den Rest löschen wir für dich — schreib an podpora@sepot.cz.",
"settingsDeleteAllConfirm": "Alles löschen",
"groupsCreateFailed": "Gruppe konnte nicht erstellt werden: {error}",
"groupsNewGroupTitle": "Neue Gruppe",
"groupsCreateAction": "Erstellen",
"groupsMembersCounter": "Mitglieder ({selectedCount}/{maxMembers})",
"groupsEmptyContactsHint": "Füge zuerst Kontakte hinzu — eine Gruppe besteht aus Leuten, mit denen du schon schreiben kannst.",
"groupsMemberMissingAddress": "Zustelladresse fehlt — frag nach einem neuen Link",
"attachmentSizeBytes": "{bytes} B",
"attachmentSizeKb": "{kilobytes} kB",
"attachmentSizeMb": "{megabytes} MB",
"attachmentDownloadFailedTapToRetry": "Download fehlgeschlagen — zum Wiederholen antippen",
"attachmentDownloadFailed": "Download fehlgeschlagen",
"attachmentDownloading": "Wird heruntergeladen…",
"attachmentSharedFileFallbackName": "datei",
"attachmentOpenFailed": "Öffnen des Anhangs fehlgeschlagen: {error}",
"commonFile": "Datei",
"chatListNewConversation": "Neue Unterhaltung",
"chatListPhotoWithCaptionPreview": "📷 {caption}",
"chatListFilePreview": "📎 {fileName}",
"chatListReadReceiptPreview": "Gelesen",
"chatListTimeNow": "jetzt",
"chatListTimeMinutes": "{minutes} Min.",
"qrScanTitle": "QR-Code scannen",
"qrScanInstruction": "Richte die Kamera auf den QR-Code des Kontakts",
"qrScanHint": "Der QR-Code enthält den öffentlichen Schlüssel des Kontakts",
"qrNewContactTitle": "Neuer Kontakt",
"qrContactAdded": "{name} hinzugefügt",
"commonAdd": "Hinzufügen",
"onboardingWelcomeTitle": "Willkommen bei Šepot",
"onboardingWelcomeSubtitle": "Privater Messenger mit Ende-zu-Ende-Verschlüsselung.\nKeine Telefonnummer. Keine E-Mail.\nNur deine Schlüssel.",
"onboardingStart": "Los geht's",
"onboardingRestoreExisting": "Ich habe schon ein Konto — mit Wiederherstellungsphrase wiederherstellen",
"onboardingEncryptionTitle": "Deine Nachrichten, deine Schlüssel",
"onboardingFeatureSignalTitle": "Signal-Protokoll",
"onboardingFeatureSignalSubtitle": "X3DH + Double Ratchet, Forward Secrecy",
"onboardingFeaturePqTitle": "Post-Quanten-Schutz",
"onboardingFeaturePqSubtitle": "Kyber (PQXDH) ab der ersten Nachricht",
"onboardingFeatureLocalKeysTitle": "Schlüssel nur auf deinem Gerät",
"onboardingFeatureLocalKeysSubtitle": "Kein Server kennt sie",
"onboardingFeatureDisappearingSubtitle": "Werden automatisch gelöscht",
"commonContinue": "Weiter",
"onboardingIdentityTitle": "Erstelle deine Identität",
"onboardingIdentitySubtitle": "Keine E-Mail, kein Telefon. Nur ein Name und kryptografische Schlüssel.",
"onboardingDisplayNameLabel": "Anzeigename",
"onboardingDisplayNameHint": "z. B. Anna",
"onboardingSeedPhraseWarning": "Schreib dir diese {count} Wörter auf. Sie sind das einzige Backup deiner Schlüssel!",
"onboardingSeedSavedConfirm": "Ich bestätige, dass ich die Phrase sicher gespeichert habe",
"onboardingGenerateKeys": "Schlüssel erzeugen",
"verifyMismatchTitle": "Nummern stimmen NICHT überein",
"verifyMatchBody": "Die Schlüssel stimmen überein. {contactName} ist ein verifizierter Kontakt.",
"verifyMismatchBody": "Die Sicherheitsnummern stimmen nicht überein. Jemand könnte die Verbindung abhören (MITM), oder du scannst den Code eines anderen Kontakts. Sende KEINE sensiblen Nachrichten und verifiziere den Kontakt noch einmal über einen anderen Kanal.",
"commonUnderstood": "Verstanden",
"verifyManualConfirmTitle": "Als verifiziert markieren?",
"verifyManualConfirmBody": "Bestätige nur, wenn du die Ziffern mit deinem Gegenüber über einen anderen vertrauenswürdigen Kanal (persönlich, per Anruf…) verglichen hast und sie übereinstimmen.",
"verifyManualConfirmAction": "Stimmen überein, verifizieren",
"verifyTitle": "Kontakt verifizieren",
"verifyContactVerifiedBanner": "Der Kontakt ist verifiziert",
"verifyIntro": "Vergleiche diese Nummer mit {contactName}. Wenn sie übereinstimmt, hört niemand eure Kommunikation ab. Am schnellsten geht es, wenn ihr gegenseitig eure QR-Codes scannt.",
"verifyScanButton": "Code des Gegenübers scannen",
"verifyManualButton": "Ziffern stimmen — manuell markieren",
"verifyUnverifyButton": "Verifizierung aufheben",
"verifyScanScreenTitle": "Verifizierungs-QR scannen",
"reportTitle": "Melden",
"reportSubmitted": "Meldung gesendet",
"reportSubmittedChildSafety": "Wir behandeln die Meldung mit Priorität. Wenn ein Kind unmittelbar in Gefahr ist, ruf die örtliche Polizei (Notruf) oder eine Kinderschutz-Hotline an.",
"reportSubmittedThanks": "Danke. Wir sehen es uns so schnell wie möglich an.",
"commonDone": "Fertig",
"reportPanelE2eNotice": "Nachrichten sind Ende-zu-Ende-verschlüsselt — wir sehen ihren Inhalt auch jetzt nicht. Beschreibe bitte in eigenen Worten, was passiert ist. Füge keine Nachrichteninhalte oder Links darauf ein — wir dürfen sie nicht speichern und brauchen sie für die Prüfung nicht.",
"reportPanelCsamWarning": "Schick uns KEIN Material, das den Missbrauch eines Kindes zeigt. Schon der Besitz ist auch für uns strafbar, und für die Meldung brauchen wir es nicht. Solches Material gehört direkt an die Polizei oder die zuständige Meldestelle in deinem Land. Schreib uns nur, was passiert ist — wir sperren das Konto und leiten die Sache weiter.",
"reportPanelIpNotice": "Die Meldung läuft nicht über das Relay, sondern an unseren Webserver. Dieser erfährt beim Absenden deine IP-Adresse.",
"reportCategoryHeading": "Worum es in der Meldung geht",
"reportDescriptionHeading": "Was ist passiert",
"reportAttachContactId": "ID des gemeldeten Kontakts anhängen",
"reportAttachContactIdNamed": "ID des Kontakts {contactName} anhängen",
"reportReplyToHeading": "Kontakt zu dir (optional)",
"reportReplyToHint": "E-Mail, falls wir Rückfragen haben",
"reportSubmitButton": "Meldung senden",
"contactsTitle": "Kontakte",
"contactsAddContact": "Kontakt hinzufügen",
"contactsSearchHint": "Kontakt suchen...",
"contactsEmpty": "Noch keine Kontakte",
"contactsNoResults": "Keine Ergebnisse",
"contactsShareCardTitle": "Teile deine Šepot-ID",
"contactsShareCardSubtitle": "Zeig deinen QR-Code oder schick einen Link",
"contactsAddDialogPrompt": "Füge den Share-String des Kontakts ein:",
"contactsShareStringHint": "Share-String einfügen...",
"contactsInvalidShareString": "Ungültiger Share-String",
"contactsAdded": "Kontakt {name} hinzugefügt",
"verifyContactSubtitle": "Sicherheitsnummer vergleichen",
"contactsDeleteContact": "Kontakt löschen",
"pinConfirmTitle": "PIN bestätigen",
"pinSetupTitle": "PIN festlegen",
"pinConfirmSubtitle": "Gib die PIN zur Bestätigung erneut ein",
"pinSetupSubtitle": "6-stellige PIN zum Entsperren der App",
"pinSetupFailed": "PIN-Einrichtung fehlgeschlagen. Versuch es noch mal.",
"pinMismatchRetry": "Die PINs stimmen nicht überein. Versuch es noch mal.",
"pinChangeCurrentTitle": "Aktuelle PIN eingeben",
"pinChangeCurrentSubtitle": "Wir prüfen sie durch Entsperren des Schlüssels",
"pinChangeNewTitle": "Neue PIN eingeben",
"pinChangeNewSubtitle": "6 Ziffern",
"pinChangeConfirmTitle": "Neue PIN bestätigen",
"pinChangeConfirmSubtitle": "Gib sie noch einmal ein",
"pinWrong": "Falsche PIN.",
"pinChangeMustDiffer": "Die neue PIN muss sich von der aktuellen unterscheiden.",
"pinMismatch": "Die PINs stimmen nicht überein.",
"pinDecoyConflict": "Diese PIN gehört schon zum Tarn-Modus. Wähle eine andere.",
"pinChangeFailed": "PIN-Änderung fehlgeschlagen. Versuch es noch mal.",
"pinChanged": "PIN geändert",
"errorCryptoInitTitle": "Der Verschlüsselungskern konnte nicht gestartet werden",
"errorStartupTitle": "Šepot konnte nicht gestartet werden",
"errorScreenNotRenderedTitle": "Dieser Bildschirm konnte nicht dargestellt werden",
"errorStartupBody": "Gleich beim Start ist etwas schiefgegangen. Schick mir bitte diesen Text (gedrückt halten und kopieren) — er hilft mir, den Fehler zu finden.",
"errorContactFooter": "sepot.cz · schreib mir über die Kontaktseite",
"pinUnlockTitle": "Šepot entsperren",
"pinEnterPin": "PIN eingeben",
"pinUnlockWithBiometrics": "Mit Biometrie entsperren",
"pinWrong2": "Falsche PIN",
"pinUnlockError": "Fehler beim Entsperren",
"pushTitle": "Push-Benachrichtigungen",
"pushModeOffDesc": "Nachrichten werden erst beim Öffnen der App abgerufen.",
"pushModeUp": "UnifiedPush (empfohlen)",
"pushModeUpDesc": "Google-frei — braucht die App ntfy (F-Droid/Play).",
"pushModeFcm": "Google (FCM)",
"pushModeFcmDesc": "Zuverlässig ohne zusätzliche App. Der Push-Token des Geräts geht an Google; der Inhalt der Nachrichten nie.",
"pushSetupFailed": "Einrichtung der Push-Benachrichtigungen fehlgeschlagen: {error}",
"pushNoDistributorTitle": "Kein Distributor",
"pushNoDistributorBody": "Für Google-freie Benachrichtigungen installiere einen UnifiedPush-Distributor, z. B. ntfy (F-Droid oder Play). Aktiviere Push danach erneut.",
"commonOk": "OK",
"pushPickDistributorTitle": "Distributor wählen",
"pushSubtitleUnifiedPush": "UnifiedPush · {distributor}",
"pushNoDistributorFallback": "kein Distributor",
"pushSubtitleFcm": "Google (FCM) — schnell, opt-in",
"restoreErrorNameRequired": "Gib einen Anzeigenamen ein.",
"restoreErrorWordCount": "{wordCount, plural, one{Die Phrase hat 1 Wort, benötigt werden {requiredWords}.} other{Die Phrase hat {wordCount} Wörter, benötigt werden {requiredWords}.}}",
"restoreErrorInvalidPhrase": "Die Phrase ist ungültig — prüfe die Wörter und ihre Reihenfolge.",
"restoreErrorFailed": "Wiederherstellung fehlgeschlagen: {error}",
"restoreTitle": "Konto wiederherstellen",
"restoreHeading": "Gib deine Wiederherstellungsphrase ein",
"restoreIntro": "{wordCount} Wörter aus dem Backup, das beim Erstellen des Kontos angelegt wurde. Stellt deine Identität wieder her (gleicher SEP-Code, deine Kontakte erkennen dich weiter).",
"restoreHistoryWarning": "Der Nachrichtenverlauf wird nicht wiederhergestellt — er ist nur auf dem ursprünglichen Gerät gespeichert.",
"restorePhraseHint": "wort1 wort2 wort3 …",
"restoreWordCountHelper": "{wordCount} / {requiredWords} Wörter",
"chatListArchivedCount": "Archiviert ({count})",
"chatListEmptyTitle": "Noch keine Unterhaltungen",
"chatListEmptySubtitle": "Füge einen Kontakt hinzu und fang an zu flüstern!",
"chatListUnmute": "Stummschaltung aufheben",
"chatListMute": "Stummschalten",
"chatListArchive": "Archivieren",
"qrShareTitle": "Meine Šepot-ID",
"qrIdentityNotFound": "Identität nicht gefunden",
"commonCopiedToClipboard": "In die Zwischenablage kopiert",
"qrShareInviteMessage": "Füg mich auf Šepot hinzu!\n\n{shareString}",
"commonShare": "Teilen",
"qrShareInfo": "Dein Kontakt scannt deinen QR-Code oder fügt den Share-String in die App ein.",
"reportCategoryChildSafety": "Gefährdung eines Kindes",
"reportCategoryChildSafetyHint": "Beschreibe die Situation in eigenen Worten. Füge keine Nachrichteninhalte oder Links zu Material ein.",
"reportCategoryHarassment": "Belästigung oder Drohungen",
"reportCategoryHarassmentHint": "Jemand schüchtert dich ein, droht dir oder belästigt dich.",
"reportCategorySpam": "Spam",
"reportCategorySpamHint": "Unerwünschte Nachrichten, Massenversand.",
"reportCategoryFraud": "Betrug",
"reportCategoryFraudHint": "Versuch, Geld, Schlüssel oder persönliche Daten zu erschleichen.",
"reportCategoryOther": "Sonstiges",
"reportCategoryOtherHint": "Etwas anderes, das wir wissen sollten.",
"reportErrorEmptyDescription": "Schreib bitte, was passiert ist.",
"reportErrorConnection": "Verbindung zum Server fehlgeschlagen. Versuch es noch mal oder schreib an {supportEmail}.",
"reportErrorRateLimited": "Aus deinem Netzwerk kamen zu viele Meldungen. Versuch es in einer Stunde noch mal oder schreib an {supportEmail}.",
"reportErrorServer": "Senden fehlgeschlagen (Code {statusCode}). Schreib bitte an {supportEmail}.",
"settingsAutoLockNever": "Nie",
"settingsAutoLock1min": "Nach 1 Minute",
"settingsAutoLock15min": "Nach 15 Minuten",
"torToggleFailed": "Umschalten von Tor fehlgeschlagen: {error}",
"torConnectionTitle": "Verbindung über Tor",
"torDialogBody": "Der Verkehr zum Server läuft über das Tor-Netzwerk (verbirgt deine IP-Adresse). Erfordert die installierte und laufende App Orbot mit aktivem SOCKS-Proxy auf Port 9050.\n\nOhne laufendes Orbot werden Nachrichten weder gesendet noch empfangen. Die Verbindung ist meist langsamer.",
"commonTurnOn": "Aktivieren",
"torSubtitleOff": "Direkte verschlüsselte Verbindung (WSS). Aktiviere Tor, um deine IP zu verbergen.",
"torStatusConnected": "Über Tor verbunden (.onion).",
"torStatusConnecting": "Verbinde über Tor… (läuft Orbot?)",
"torStatusWaiting": "Über Tor — warte auf Orbot (SOCKS 9050).",
"biometricsPinRequiredFirst": "Richte zuerst eine PIN ein — Biometrie ergänzt sie nur.",
"biometricsStorageLocked": "Der Speicher ist gesperrt — entsperre die App mit der PIN.",
"biometricsNotAvailable": "Auf dem Gerät ist keine Biometrie eingerichtet.",
"biometricsEnrollPromptReason": "Bestätige die Aktivierung der biometrischen Entsperrung",
"biometricsSetupFailed": "Biometrie konnte nicht eingerichtet werden: {error}",
"biometricsTileTitle": "Biometrie",
"biometricsTileSubtitle": "Entsperren per Fingerabdruck/Gesicht (PIN bleibt als Backup)",
"backupErrorCorruptedFile": "Beschädigte Backup-Datei",
"backupErrorUnknownFormat": "Unbekanntes Backup-Format",
"backupErrorWrongIdentity": "Backup lässt sich nicht entschlüsseln — gehört es zu einer anderen Identität?",
"attachmentSharedImageFilename": "sepot-bild.{ext}",
"attachmentDecryptFailed": "Anhang konnte nicht entschlüsselt werden",
"pushActionOpen": "Öffnen",
"pushChannelMessagesName": "Nachrichten",
"pushChannelMessagesDescription": "Hinweise auf neue Nachrichten (ohne Inhalt)",
"pushNewMessageFrom": "Neue Nachricht von {senderName}",
"pushNewMessages": "Du hast neue Nachrichten",
"archiveTitle": "Archiviert",
"archiveEmpty": "Keine archivierten Unterhaltungen",
"archiveUnarchive": "Archivierung aufheben",
"restoreErrorMnemonicWordCount": "Die Phrase hat {count} Wörter, erwartet werden {expected}",
"restoreErrorInvalidMnemonic": "Ungültige Phrase: {message}",
"contactsErrorAlreadyExists": "Kontakt existiert bereits",
"commonAppTagline": "Privater Messenger",
"commonE2eBadgeCompact": "E2E",
"commonE2eBadgeFull": "Ende-zu-Ende-verschlüsselt"
}
+352
View File
@@ -0,0 +1,352 @@
{
"@@locale": "en",
"appTitle": "Šepot",
"settingsLanguage": "App language",
"languageSystem": "System default",
"commonUnknownContact": "Unknown",
"verifyVerified": "Verified",
"verifyUnverified": "Not verified",
"chatMenuVerifyContact": "Verify contact",
"chatDisappearingMessages": "Disappearing messages",
"chatMenuUnblockContact": "Unblock contact",
"chatMenuBlockContact": "Block contact",
"reportAndBlock": "Report and block",
"errorGeneric": "Error: {error}",
"groupsYouLeftGroup": "You're no longer in this group",
"groupsMemberCount": "{count, plural, one{1 member} other{{count} members}}",
"groupsMembers": "Members",
"groupsRename": "Rename group",
"groupsLeave": "Leave group",
"groupsLeftBanner": "You're no longer in this group. Your history stays, but new messages won't arrive.",
"groupsMembersWithCount": "Members ({count})",
"groupsYou": "You",
"groupsFounder": "Founder",
"groupsNameHint": "Group name",
"commonCancel": "Cancel",
"commonSave": "Save",
"groupsRenameFailed": "Rename failed: {error}",
"groupsLeaveConfirmTitle": "Leave group?",
"groupsLeaveConfirmBody": "Others will see that you've left. Your history stays, but you won't receive new messages and someone will have to invite you back.",
"groupsLeaveAction": "Leave",
"groupsLeaveFailed": "Leaving failed: {error}",
"chatBlockedBanner": "This contact is blocked. You won't receive their messages and can't message them.",
"chatUnblock": "Unblock",
"chatContactBlocked": "{name} is blocked",
"chatContactUnblocked": "{name} is unblocked",
"reportAndBlockBody": "We'll block {name} and you'll stop receiving their messages. Then we'll show you a form to tell us what happened — we can't see message content, so without your description we won't know about it.",
"chatEmptyEncrypted": "Messages are end-to-end encrypted.",
"chatEmptyNoOneElse": "No one else can read them.",
"commonToday": "Today",
"commonYesterday": "Yesterday",
"chatMessageHint": "Type a message…",
"chatDiscardRecording": "Discard",
"chatRecording": "Recording…",
"chatMicPermissionMissing": "Microphone permission missing",
"chatRecordingFailed": "Recording failed: {error}",
"chatVoiceSendFailed": "Sending voice message failed: {error}",
"chatDeletedMessagePreview": "Deleted message",
"chatVoiceMessagePreview": "🎤 Voice message",
"chatPhotoPreview": "📷 Photo",
"chatAttachmentPreview": "📎 Attachment",
"chatEditingMessage": "Editing message",
"chatReply": "Reply",
"chatActionReply": "Reply",
"commonCopy": "Copy",
"commonEdit": "Edit",
"chatDeleteForMe": "Delete for me",
"chatDeleteForEveryone": "Delete for everyone",
"commonOff": "Off",
"chatDisappearing30s": "30 seconds",
"chatDisappearing5m": "5 minutes",
"chatDisappearing1h": "1 hour",
"chatDisappearing1d": "1 day",
"chatDisappearing1w": "1 week",
"chatDisappearingDescription": "New messages will be deleted for both you and the other person once the time is up.",
"chatDisappearingDisabled": "Disappearing messages turned off",
"chatDisappearingEnabled": "New messages will disappear after: {duration}",
"attachmentGallery": "Photo from gallery",
"attachmentTakePhoto": "Take photo",
"attachmentDocument": "Document",
"attachmentTooLarge": "File is too large (max {maxMb} MB)",
"attachmentPickFailed": "Picking attachment failed: {error}",
"attachmentSendFailed": "Sending attachment failed: {error}",
"chatSendFailed": "Sending failed: {error}",
"chatMessageDeleted": "Message deleted",
"chatEdited": "edited",
"errorTrustRootChanged": "The relay's trust root has changed! Refusing to communicate.",
"errorRelayUnavailable": "Relay unavailable (sender certificate)",
"errorAttachmentTooLarge": "Attachment is too large (max {maxMb} MB)",
"errorGroupNeedsMember": "A group needs at least 1 member",
"errorGroupMaxMembers": "A group can have at most {maxMembers} members",
"errorMemberNoDeliveryAddress": "{displayName} has no delivery address — ask them for a new link",
"errorContactNoDeliveryAddress": "This contact has no delivery address — ask them for a new sepot:// link",
"errorIdentityKeyMismatch": "The identity key from the relay does NOT match this contact — possible MITM! Message not sent.",
"settingsTitle": "Settings",
"settingsSectionGeneral": "General",
"settingsSectionSecurity": "Security",
"settingsChangePinTitle": "Change PIN",
"settingsChangePinSubtitle": "6-digit PIN for unlocking",
"settingsAutoLockTitle": "Auto-lock",
"settingsAutoLock5min": "After 5 minutes",
"settingsDecoyPinTitle": "Duress PIN",
"settingsDecoyPinSetSubtitle": "Set — opens an empty app",
"settingsDecoyPinUnsetSubtitle": "A second PIN that opens an empty app",
"settingsSectionNotifications": "Notifications",
"settingsSectionConnection": "Connection",
"settingsSectionPrivacy": "Privacy",
"settingsReadReceiptsTitle": "Read receipts",
"settingsReadReceiptsSubtitle": "Let others see when you've read their messages (off by default)",
"settingsScreenSecurityTitle": "Screen security",
"settingsScreenSecuritySubtitle": "Block screenshots and hide content in the app switcher",
"settingsSectionBackup": "Key backup",
"settingsSeedPhraseTitle": "Recovery phrase",
"settingsSeedPhraseSubtitle": "24 words to restore your identity",
"settingsBackupExportTitle": "Back up history",
"settingsBackupExportSubtitle": "Encrypted file with your contacts and messages",
"settingsBackupImportTitle": "Restore from backup",
"settingsBackupImportSubtitle": "Load a backup (only with your identity)",
"settingsSectionSafety": "Safety",
"settingsReportAbuseTitle": "Report abuse",
"settingsReportAbuseSubtitle": "Harassment, fraud, child endangerment",
"settingsChildSafetyTitle": "Child safety standards",
"settingsChildSafetySubtitle": "How we respond to child abuse",
"settingsSectionAbout": "About",
"commonAppName": "Šepot",
"settingsVersion": "Version {version}",
"settingsLicenseTitle": "License",
"settingsLicenseSubtitle": "AGPL-3.0",
"settingsPrivacyPolicyTitle": "Privacy policy",
"settingsPrivacyPolicySubtitle": "What we know about you (and what we don't)",
"settingsTermsTitle": "Terms of use",
"settingsTermsSubtitle": "sepot.cz/podminky",
"settingsDataDeletionTitle": "Data deletion",
"settingsDataDeletionSubtitle": "How to request erasure",
"settingsDeleteAllDataButton": "Delete all data",
"settingsLicenseBody": "Šepot is distributed under the GNU Affero General Public License version 3 (AGPL-3.0). It uses the libsignal library, also AGPL-3.0.\n\nTo get the source code corresponding to this version, write to {supportEmail} and we'll send it to you.",
"commonClose": "Close",
"settingsIdCopied": "ID copied",
"settingsFingerprint": "Fingerprint: {fingerprint}",
"backupShareSubject": "Šepot — encrypted backup",
"backupExportFailed": "Backup failed: {error}",
"backupRestoredCount": "{count, plural, one{Restored 1 conversation from the backup} other{Restored {count} conversations from the backup}}",
"backupImportFailed": "Restoring from backup failed: {error}",
"settingsDecoyPinExplain": "Entering this PIN opens the app empty — without your contacts and messages. It must be different from your regular PIN.",
"commonConfirm": "Confirm",
"commonSet": "Set",
"settingsDecoyPinEnabled": "Duress PIN set",
"settingsDecoyPinConflict": "The duress PIN must differ from your regular PIN",
"settingsDecoyPinDisabled": "Duress PIN removed",
"settingsSeedPhraseNotFound": "Recovery phrase not found",
"settingsSeedPhraseWarning": "These words are the only backup of your identity. Don't show them to anyone!",
"settingsSeedWordChip": "{index}. {word}",
"settingsAboutTagline": "Šepot — Private Messenger",
"settingsAboutBody": "An open-source end-to-end encrypted messenger.\n\nCryptography:\n• X25519 (key exchange)\n• XChaCha20-Poly1305 (encryption)\n• Ed25519 (signatures)\n\n© 2026 ajtak.it",
"settingsDeleteAccountTitle": "Delete account and all data?",
"settingsDeleteAccountBody": "This action cannot be undone. All messages, contacts and keys will be deleted from this device and the account will be deregistered from the server. If you don't have your recovery phrase, you'll lose your identity.",
"settingsDeleteAccountServerOffline": "The server is unreachable right now — data on this device has been deleted, but the server registration remains. Write to podpora@sepot.cz and we'll delete the rest.",
"settingsDeleteAllConfirm": "Delete everything",
"groupsCreateFailed": "Couldn't create the group: {error}",
"groupsNewGroupTitle": "New group",
"groupsCreateAction": "Create",
"groupsMembersCounter": "Members ({selectedCount}/{maxMembers})",
"groupsEmptyContactsHint": "Add some contacts first — a group is made of people you can already message.",
"groupsMemberMissingAddress": "Missing delivery address — ask them for a new link",
"attachmentSizeBytes": "{bytes} B",
"attachmentSizeKb": "{kilobytes} KB",
"attachmentSizeMb": "{megabytes} MB",
"attachmentDownloadFailedTapToRetry": "Download failed — tap to retry",
"attachmentDownloadFailed": "Download failed",
"attachmentDownloading": "Downloading…",
"attachmentSharedFileFallbackName": "file",
"attachmentOpenFailed": "Opening attachment failed: {error}",
"commonFile": "File",
"chatListNewConversation": "New conversation",
"chatListPhotoWithCaptionPreview": "📷 {caption}",
"chatListFilePreview": "📎 {fileName}",
"chatListReadReceiptPreview": "Read",
"chatListTimeNow": "now",
"chatListTimeMinutes": "{minutes} min",
"qrScanTitle": "Scan QR code",
"qrScanInstruction": "Point the camera at your contact's QR code",
"qrScanHint": "The QR code contains the contact's public key",
"qrNewContactTitle": "New contact",
"qrContactAdded": "{name} added",
"commonAdd": "Add",
"onboardingWelcomeTitle": "Welcome to Šepot",
"onboardingWelcomeSubtitle": "A private messenger with end-to-end encryption.\nNo phone number. No email.\nJust your keys.",
"onboardingStart": "Get started",
"onboardingRestoreExisting": "I already have an account — restore from recovery phrase",
"onboardingEncryptionTitle": "Your messages, your keys",
"onboardingFeatureSignalTitle": "Signal protocol",
"onboardingFeatureSignalSubtitle": "X3DH + Double Ratchet, forward secrecy",
"onboardingFeaturePqTitle": "Post-quantum protection",
"onboardingFeaturePqSubtitle": "Kyber (PQXDH) from the first message",
"onboardingFeatureLocalKeysTitle": "Keys stay on your device",
"onboardingFeatureLocalKeysSubtitle": "No server ever sees them",
"onboardingFeatureDisappearingSubtitle": "Deleted automatically",
"commonContinue": "Continue",
"onboardingIdentityTitle": "Create your identity",
"onboardingIdentitySubtitle": "No email or phone. Just a name and cryptographic keys.",
"onboardingDisplayNameLabel": "Display name",
"onboardingDisplayNameHint": "e.g. John",
"onboardingSeedPhraseWarning": "Write down these {count} words. They're the only backup of your keys!",
"onboardingSeedSavedConfirm": "I confirm I've stored the phrase safely",
"onboardingGenerateKeys": "Generate keys",
"verifyMismatchTitle": "Numbers DO NOT match",
"verifyMatchBody": "The keys match. {contactName} is a verified contact.",
"verifyMismatchBody": "The safety numbers don't match. Someone may be intercepting your connection (MITM), or you're scanning a different contact's code. Do NOT send sensitive messages and verify each other again over a different channel.",
"commonUnderstood": "Got it",
"verifyManualConfirmTitle": "Mark as verified?",
"verifyManualConfirmBody": "Confirm only if you've compared the digits with the other person over another trusted channel (in person, on a call…) and they match.",
"verifyManualConfirmAction": "They match — verify",
"verifyTitle": "Verify contact",
"verifyContactVerifiedBanner": "This contact is verified",
"verifyIntro": "Compare this number with {contactName}. If it matches, no one is eavesdropping on your encryption. The fastest way is to scan each other's QR codes.",
"verifyScanButton": "Scan their code",
"verifyManualButton": "Digits match — mark manually",
"verifyUnverifyButton": "Clear verification",
"verifyScanScreenTitle": "Scan verification QR",
"reportTitle": "Report",
"reportSubmitted": "Report submitted",
"reportSubmittedChildSafety": "We handle these reports with priority. If a child is in immediate danger, call your local police or a child helpline.",
"reportSubmittedThanks": "Thanks. We'll look into it as soon as possible.",
"commonDone": "Done",
"reportPanelE2eNotice": "Messages are end-to-end encrypted, so we can't see their content even now. Please describe in your own words what happened. Don't paste message content or links to it here — we're not allowed to store it and we don't need it to assess the report.",
"reportPanelCsamWarning": "Do NOT send us material depicting child abuse. Possessing it is a crime — for us too — and we don't need it for a report. It should go directly to the police or a dedicated child sexual abuse reporting hotline. Just tell us what happened — we'll block the account and pass the matter on.",
"reportPanelIpNotice": "Reports aren't sent through the relay — they go to our web server, which will see your IP address when you submit.",
"reportCategoryHeading": "What the report is about",
"reportDescriptionHeading": "What happened",
"reportAttachContactId": "Attach the reported contact's ID",
"reportAttachContactIdNamed": "Attach {contactName}'s ID",
"reportReplyToHeading": "How to reach you (optional)",
"reportReplyToHint": "email, in case we need to follow up",
"reportSubmitButton": "Submit report",
"contactsTitle": "Contacts",
"contactsAddContact": "Add contact",
"contactsSearchHint": "Search contacts…",
"contactsEmpty": "No contacts yet",
"contactsNoResults": "No results",
"contactsShareCardTitle": "Share your Šepot ID",
"contactsShareCardSubtitle": "Show your QR code or send a link",
"contactsAddDialogPrompt": "Paste the contact's share string:",
"contactsShareStringHint": "Paste share string…",
"contactsInvalidShareString": "Invalid share string",
"contactsAdded": "Contact {name} added",
"verifyContactSubtitle": "Compare safety numbers",
"contactsDeleteContact": "Delete contact",
"pinConfirmTitle": "Confirm PIN",
"pinSetupTitle": "Set up a PIN",
"pinConfirmSubtitle": "Enter the PIN again to confirm",
"pinSetupSubtitle": "6-digit PIN to unlock the app",
"pinSetupFailed": "Setting the PIN failed. Try again.",
"pinMismatchRetry": "PINs don't match. Try again.",
"pinChangeCurrentTitle": "Enter your current PIN",
"pinChangeCurrentSubtitle": "We'll verify it by unlocking your key",
"pinChangeNewTitle": "Enter a new PIN",
"pinChangeNewSubtitle": "6 digits",
"pinChangeConfirmTitle": "Confirm the new PIN",
"pinChangeConfirmSubtitle": "Enter it one more time",
"pinWrong": "Wrong PIN.",
"pinChangeMustDiffer": "The new PIN must differ from the current one.",
"pinMismatch": "PINs don't match.",
"pinDecoyConflict": "This PIN already belongs to duress mode. Choose a different one.",
"pinChangeFailed": "Changing the PIN failed. Try again.",
"pinChanged": "PIN changed",
"errorCryptoInitTitle": "The encryption core failed to start",
"errorStartupTitle": "Šepot failed to start",
"errorScreenNotRenderedTitle": "This screen failed to render",
"errorStartupBody": "Something went wrong right at startup. Please send me this text (long-press and copy) — it will help me find the bug.",
"errorContactFooter": "sepot.cz · get in touch",
"pinUnlockTitle": "Unlock Šepot",
"pinEnterPin": "Enter PIN",
"pinUnlockWithBiometrics": "Unlock with biometrics",
"pinWrong2": "Wrong PIN",
"pinUnlockError": "Unlock error",
"pushTitle": "Push notifications",
"pushModeOffDesc": "Messages arrive only after you open the app.",
"pushModeUp": "UnifiedPush (recommended)",
"pushModeUpDesc": "De-Googled — needs the ntfy app (F-Droid/Play).",
"pushModeFcm": "Google (FCM)",
"pushModeFcmDesc": "Reliable without an extra app. The device push token goes to Google; message content never does.",
"pushSetupFailed": "Setting up push failed: {error}",
"pushNoDistributorTitle": "No distributor",
"pushNoDistributorBody": "For de-Googled notifications, install a UnifiedPush distributor such as ntfy (F-Droid or Play). Then turn push on again.",
"commonOk": "OK",
"pushPickDistributorTitle": "Choose a distributor",
"pushSubtitleUnifiedPush": "UnifiedPush · {distributor}",
"pushNoDistributorFallback": "no distributor",
"pushSubtitleFcm": "Google (FCM) — fast, opt-in",
"restoreErrorNameRequired": "Enter a display name.",
"restoreErrorWordCount": "{wordCount, plural, one{The phrase has 1 word, {requiredWords} are needed.} other{The phrase has {wordCount} words, {requiredWords} are needed.}}",
"restoreErrorInvalidPhrase": "The phrase isn't valid — check the words and their order.",
"restoreErrorFailed": "Restore failed: {error}",
"restoreTitle": "Restore account",
"restoreHeading": "Enter your recovery phrase",
"restoreIntro": "{wordCount} words from the backup created when you set up your account. This restores your identity (same SEP code — your contacts will still recognize you).",
"restoreHistoryWarning": "Message history won't be restored — it's stored only on the original device.",
"restorePhraseHint": "word1 word2 word3 …",
"restoreWordCountHelper": "{wordCount} / {requiredWords} words",
"chatListArchivedCount": "Archived ({count})",
"chatListEmptyTitle": "No conversations yet",
"chatListEmptySubtitle": "Add a contact and start whispering!",
"chatListUnmute": "Unmute",
"chatListMute": "Mute",
"chatListArchive": "Archive",
"qrShareTitle": "My Šepot ID",
"qrIdentityNotFound": "Identity not found",
"commonCopiedToClipboard": "Copied to clipboard",
"qrShareInviteMessage": "Add me on Šepot!\n\n{shareString}",
"commonShare": "Share",
"qrShareInfo": "Your contact scans your QR code or pastes the share string into the app.",
"reportCategoryChildSafety": "Child endangerment",
"reportCategoryChildSafetyHint": "Describe the situation in your own words. Don't paste message content or links to material.",
"reportCategoryHarassment": "Harassment or threats",
"reportCategoryHarassmentHint": "Someone is intimidating, threatening or harassing you.",
"reportCategorySpam": "Spam",
"reportCategorySpamHint": "Unsolicited messages, bulk sending.",
"reportCategoryFraud": "Fraud",
"reportCategoryFraudHint": "An attempt to trick you out of money, keys or personal data.",
"reportCategoryOther": "Other",
"reportCategoryOtherHint": "Something else we should know about.",
"reportErrorEmptyDescription": "Please describe what happened.",
"reportErrorConnection": "Couldn't reach the server. Try again, or write to {supportEmail}.",
"reportErrorRateLimited": "Too many reports came from your network. Try again in an hour, or write to {supportEmail}.",
"reportErrorServer": "Submission failed (code {statusCode}). Please write to {supportEmail}.",
"settingsAutoLockNever": "Never",
"settingsAutoLock1min": "After 1 minute",
"settingsAutoLock15min": "After 15 minutes",
"torToggleFailed": "Toggling Tor failed: {error}",
"torConnectionTitle": "Connect via Tor",
"torDialogBody": "Traffic to the server will go through the Tor network (hides your IP address). Requires the Orbot app installed and running with an active SOCKS proxy on port 9050.\n\nWithout Orbot running, messages won't be sent or received. The connection is usually slower.",
"commonTurnOn": "Turn on",
"torSubtitleOff": "Direct encrypted connection (WSS). Turn on to hide your IP via Tor.",
"torStatusConnected": "Connected via Tor (.onion).",
"torStatusConnecting": "Connecting via Tor… (is Orbot running?)",
"torStatusWaiting": "Via Tor — waiting for Orbot (SOCKS 9050).",
"biometricsPinRequiredFirst": "Set a PIN first — biometrics only complement it.",
"biometricsStorageLocked": "Storage is locked — unlock the app with your PIN.",
"biometricsNotAvailable": "This device has no biometrics set up.",
"biometricsEnrollPromptReason": "Confirm enabling biometric unlock",
"biometricsSetupFailed": "Couldn't set up biometrics: {error}",
"biometricsTileTitle": "Biometrics",
"biometricsTileSubtitle": "Unlock with fingerprint / face (PIN stays as a backup)",
"backupErrorCorruptedFile": "Corrupted backup file",
"backupErrorUnknownFormat": "Unrecognized backup format",
"backupErrorWrongIdentity": "Can't decrypt this backup — does it belong to a different identity?",
"attachmentSharedImageFilename": "sepot-image.{ext}",
"attachmentDecryptFailed": "Couldn't decrypt the attachment",
"pushActionOpen": "Open",
"pushChannelMessagesName": "Messages",
"pushChannelMessagesDescription": "Alerts about new messages (no content)",
"pushNewMessageFrom": "New message from {senderName}",
"pushNewMessages": "You have new messages",
"archiveTitle": "Archived",
"archiveEmpty": "No archived conversations",
"archiveUnarchive": "Unarchive",
"restoreErrorMnemonicWordCount": "The phrase has {count} words, expected {expected}",
"restoreErrorInvalidMnemonic": "Invalid phrase: {message}",
"contactsErrorAlreadyExists": "Contact already exists",
"commonAppTagline": "Private messenger",
"commonE2eBadgeCompact": "E2E",
"commonE2eBadgeFull": "End-to-end encrypted"
}
+352
View File
@@ -0,0 +1,352 @@
{
"@@locale": "it",
"appTitle": "Šepot",
"settingsLanguage": "Lingua dell'app",
"languageSystem": "Predefinita di sistema",
"commonUnknownContact": "Sconosciuto",
"verifyVerified": "Verificato",
"verifyUnverified": "Non verificato",
"chatMenuVerifyContact": "Verifica contatto",
"chatDisappearingMessages": "Messaggi a scomparsa",
"chatMenuUnblockContact": "Sblocca contatto",
"chatMenuBlockContact": "Blocca contatto",
"reportAndBlock": "Segnala e blocca",
"errorGeneric": "Errore: {error}",
"groupsYouLeftGroup": "Non sei più nel gruppo",
"groupsMemberCount": "{count, plural, one{1 membro} other{{count} membri}}",
"groupsMembers": "Membri",
"groupsRename": "Rinomina gruppo",
"groupsLeave": "Abbandona il gruppo",
"groupsLeftBanner": "Non sei più nel gruppo. La cronologia resta, i nuovi messaggi non arriveranno.",
"groupsMembersWithCount": "Membri ({count})",
"groupsYou": "Tu",
"groupsFounder": "Fondatore",
"groupsNameHint": "Nome del gruppo",
"commonCancel": "Annulla",
"commonSave": "Salva",
"groupsRenameFailed": "Rinomina non riuscita: {error}",
"groupsLeaveConfirmTitle": "Abbandonare il gruppo?",
"groupsLeaveConfirmBody": "Gli altri vedranno che non sei più nel gruppo. La cronologia ti resterà, ma non riceverai più nuovi messaggi e per rientrare qualcuno dovrà invitarti.",
"groupsLeaveAction": "Abbandona",
"groupsLeaveFailed": "Uscita non riuscita: {error}",
"chatBlockedBanner": "Il contatto è bloccato. Non ricevi i suoi messaggi e non puoi scrivergli.",
"chatUnblock": "Sblocca",
"chatContactBlocked": "Contatto {name} bloccato",
"chatContactUnblocked": "Contatto {name} sbloccato",
"reportAndBlockBody": "Bloccheremo il contatto {name} e smetterai di ricevere i suoi messaggi. Poi ti proporremo un modulo per farci sapere cosa è successo — non vediamo il contenuto dei messaggi, quindi senza la tua descrizione non ne sappiamo nulla.",
"chatEmptyEncrypted": "I messaggi sono cifrati end-to-end.",
"chatEmptyNoOneElse": "Nessun altro può leggerli.",
"commonToday": "Oggi",
"commonYesterday": "Ieri",
"chatMessageHint": "Scrivi un messaggio…",
"chatDiscardRecording": "Scarta",
"chatRecording": "Registrazione…",
"chatMicPermissionMissing": "Manca l'autorizzazione per il microfono",
"chatRecordingFailed": "Registrazione non riuscita: {error}",
"chatVoiceSendFailed": "Invio del messaggio vocale non riuscito: {error}",
"chatDeletedMessagePreview": "Messaggio eliminato",
"chatVoiceMessagePreview": "🎤 Messaggio vocale",
"chatPhotoPreview": "📷 Foto",
"chatAttachmentPreview": "📎 Allegato",
"chatEditingMessage": "Modifica messaggio",
"chatReply": "Risposta",
"chatActionReply": "Rispondi",
"commonCopy": "Copia",
"commonEdit": "Modifica",
"chatDeleteForMe": "Elimina per me",
"chatDeleteForEveryone": "Elimina per tutti",
"commonOff": "Disattivato",
"chatDisappearing30s": "30 secondi",
"chatDisappearing5m": "5 minuti",
"chatDisappearing1h": "1 ora",
"chatDisappearing1d": "1 giorno",
"chatDisappearing1w": "1 settimana",
"chatDisappearingDescription": "I nuovi messaggi verranno eliminati allo scadere del tempo, sia per te che per l'altra persona.",
"chatDisappearingDisabled": "Messaggi a scomparsa disattivati",
"chatDisappearingEnabled": "I nuovi messaggi scompariranno dopo: {duration}",
"attachmentGallery": "Foto dalla galleria",
"attachmentTakePhoto": "Scatta foto",
"attachmentDocument": "Documento",
"attachmentTooLarge": "Il file è troppo grande (max {maxMb} MB)",
"attachmentPickFailed": "Selezione dell'allegato non riuscita: {error}",
"attachmentSendFailed": "Invio dell'allegato non riuscito: {error}",
"chatSendFailed": "Invio non riuscito: {error}",
"chatMessageDeleted": "Messaggio eliminato",
"chatEdited": "modificato",
"errorTrustRootChanged": "Il trust root del relay è cambiato! Comunicazione rifiutata.",
"errorRelayUnavailable": "Relay non disponibile (sender certificate)",
"errorAttachmentTooLarge": "L'allegato è troppo grande (max {maxMb} MB)",
"errorGroupNeedsMember": "Il gruppo ha bisogno di almeno 1 membro",
"errorGroupMaxMembers": "Il gruppo può avere al massimo {maxMembers} membri",
"errorMemberNoDeliveryAddress": "{displayName} non ha un indirizzo di consegna — chiedi un nuovo link",
"errorContactNoDeliveryAddress": "Il contatto non ha un indirizzo di consegna — chiedigli un nuovo link sepot://",
"errorIdentityKeyMismatch": "La chiave di identità dal relay NON corrisponde al contatto — possibile MITM! Messaggio non inviato.",
"settingsTitle": "Impostazioni",
"settingsSectionGeneral": "Generali",
"settingsSectionSecurity": "Sicurezza",
"settingsChangePinTitle": "Cambia PIN",
"settingsChangePinSubtitle": "PIN a 6 cifre per sbloccare",
"settingsAutoLockTitle": "Blocco automatico",
"settingsAutoLock5min": "Dopo 5 minuti",
"settingsDecoyPinTitle": "PIN anti-coercizione",
"settingsDecoyPinSetSubtitle": "Impostato — apre un'app vuota",
"settingsDecoyPinUnsetSubtitle": "Un secondo PIN che apre un'app vuota",
"settingsSectionNotifications": "Notifiche",
"settingsSectionConnection": "Connessione",
"settingsSectionPrivacy": "Privacy",
"settingsReadReceiptsTitle": "Conferme di lettura",
"settingsReadReceiptsSubtitle": "Mostra all'altra persona quando leggi i messaggi (disattivato di default)",
"settingsScreenSecurityTitle": "Sicurezza dello schermo",
"settingsScreenSecuritySubtitle": "Blocca gli screenshot e nasconde il contenuto nelle app recenti",
"settingsSectionBackup": "Backup delle chiavi",
"settingsSeedPhraseTitle": "Frase di recupero",
"settingsSeedPhraseSubtitle": "24 parole per ripristinare l'identità",
"settingsBackupExportTitle": "Backup della cronologia",
"settingsBackupExportSubtitle": "File cifrato con contatti e messaggi",
"settingsBackupImportTitle": "Ripristina da backup",
"settingsBackupImportSubtitle": "Carica un backup (solo con la tua identità)",
"settingsSectionSafety": "Protezione",
"settingsReportAbuseTitle": "Segnala un abuso",
"settingsReportAbuseSubtitle": "Molestie, truffe, minori in pericolo",
"settingsChildSafetyTitle": "Standard di tutela dei minori",
"settingsChildSafetySubtitle": "Come agiamo contro gli abusi sui minori",
"settingsSectionAbout": "Informazioni",
"commonAppName": "Šepot",
"settingsVersion": "Versione {version}",
"settingsLicenseTitle": "Licenza",
"settingsLicenseSubtitle": "AGPL-3.0",
"settingsPrivacyPolicyTitle": "Informativa sulla privacy",
"settingsPrivacyPolicySubtitle": "Cosa sappiamo di te (e cosa no)",
"settingsTermsTitle": "Termini di utilizzo",
"settingsTermsSubtitle": "sepot.cz/podminky",
"settingsDataDeletionTitle": "Eliminazione dei dati",
"settingsDataDeletionSubtitle": "Come richiedere la cancellazione",
"settingsDeleteAllDataButton": "Elimina tutti i dati",
"settingsLicenseBody": "Šepot è distribuito sotto licenza GNU Affero General Public License versione 3 (AGPL-3.0). Usa la libreria libsignal, anch'essa AGPL-3.0.\n\nPer ricevere il codice sorgente corrispondente a questa versione scrivi a {supportEmail} e te lo invieremo.",
"commonClose": "Chiudi",
"settingsIdCopied": "ID copiato",
"settingsFingerprint": "Impronta: {fingerprint}",
"backupShareSubject": "Šepot — backup cifrato",
"backupExportFailed": "Backup non riuscito: {error}",
"backupRestoredCount": "{count, plural, one{Ripristinata 1 conversazione dal backup} other{Ripristinate {count} conversazioni dal backup}}",
"backupImportFailed": "Ripristino dal backup non riuscito: {error}",
"settingsDecoyPinExplain": "Inserendo questo PIN l'app si apre vuota — senza i tuoi contatti e messaggi. Deve essere diverso dal PIN normale.",
"commonConfirm": "Conferma",
"commonSet": "Imposta",
"settingsDecoyPinEnabled": "PIN anti-coercizione impostato",
"settingsDecoyPinConflict": "Il PIN anti-coercizione deve essere diverso da quello normale",
"settingsDecoyPinDisabled": "PIN anti-coercizione rimosso",
"settingsSeedPhraseNotFound": "Frase di recupero non trovata",
"settingsSeedPhraseWarning": "Queste parole sono l'unico backup della tua identità. Non mostrarle a nessuno!",
"settingsSeedWordChip": "{index}. {word}",
"settingsAboutTagline": "Šepot — Messenger privato",
"settingsAboutBody": "Messenger cifrato E2E e open source.\n\nCrittografia:\n• X25519 (scambio di chiavi)\n• XChaCha20-Poly1305 (cifratura)\n• Ed25519 (firme)\n\n© 2026 ajtak.it",
"settingsDeleteAccountTitle": "Eliminare l'account e tutti i dati?",
"settingsDeleteAccountBody": "Questa azione è irreversibile. Tutti i messaggi, i contatti e le chiavi verranno eliminati da questo dispositivo e l'account verrà deregistrato dal server. Se non hai la frase di recupero, perderai la tua identità.",
"settingsDeleteAccountServerOffline": "Il server al momento non è raggiungibile — i dati sul dispositivo sono stati eliminati, ma la registrazione sul server è rimasta. Scrivici a podpora@sepot.cz e cancelleremo il resto.",
"settingsDeleteAllConfirm": "Elimina tutto",
"groupsCreateFailed": "Impossibile creare il gruppo: {error}",
"groupsNewGroupTitle": "Nuovo gruppo",
"groupsCreateAction": "Crea",
"groupsMembersCounter": "Membri ({selectedCount}/{maxMembers})",
"groupsEmptyContactsHint": "Prima aggiungi dei contatti — un gruppo è fatto di persone con cui puoi già scrivere.",
"groupsMemberMissingAddress": "Manca l'indirizzo di consegna — chiedi un nuovo link",
"attachmentSizeBytes": "{bytes} B",
"attachmentSizeKb": "{kilobytes} kB",
"attachmentSizeMb": "{megabytes} MB",
"attachmentDownloadFailedTapToRetry": "Download non riuscito — tocca per riprovare",
"attachmentDownloadFailed": "Download non riuscito",
"attachmentDownloading": "Download in corso…",
"attachmentSharedFileFallbackName": "file",
"attachmentOpenFailed": "Impossibile aprire l'allegato: {error}",
"commonFile": "File",
"chatListNewConversation": "Nuova conversazione",
"chatListPhotoWithCaptionPreview": "📷 {caption}",
"chatListFilePreview": "📎 {fileName}",
"chatListReadReceiptPreview": "Letto",
"chatListTimeNow": "adesso",
"chatListTimeMinutes": "{minutes} min",
"qrScanTitle": "Scansiona codice QR",
"qrScanInstruction": "Inquadra il codice QR del contatto",
"qrScanHint": "Il codice QR contiene la chiave pubblica del contatto",
"qrNewContactTitle": "Nuovo contatto",
"qrContactAdded": "Contatto {name} aggiunto",
"commonAdd": "Aggiungi",
"onboardingWelcomeTitle": "Ti diamo il benvenuto in Šepot",
"onboardingWelcomeSubtitle": "Un messenger privato con cifratura end-to-end.\nNessun numero di telefono. Nessuna email.\nSolo le tue chiavi.",
"onboardingStart": "Inizia",
"onboardingRestoreExisting": "Ho già un account — ripristina dalla frase di recupero",
"onboardingEncryptionTitle": "I tuoi messaggi, le tue chiavi",
"onboardingFeatureSignalTitle": "Protocollo Signal",
"onboardingFeatureSignalSubtitle": "X3DH + Double Ratchet, forward secrecy",
"onboardingFeaturePqTitle": "Protezione post-quantistica",
"onboardingFeaturePqSubtitle": "Kyber (PQXDH) fin dal primo messaggio",
"onboardingFeatureLocalKeysTitle": "Chiavi solo sul tuo dispositivo",
"onboardingFeatureLocalKeysSubtitle": "Nessun server le possiede",
"onboardingFeatureDisappearingSubtitle": "Si eliminano automaticamente",
"commonContinue": "Continua",
"onboardingIdentityTitle": "Crea la tua identità",
"onboardingIdentitySubtitle": "Nessuna email né telefono. Solo un nome e chiavi crittografiche.",
"onboardingDisplayNameLabel": "Nome visualizzato",
"onboardingDisplayNameHint": "Es. Marco",
"onboardingSeedPhraseWarning": "Annota queste {count} parole. Sono l'unico backup delle tue chiavi!",
"onboardingSeedSavedConfirm": "Confermo di aver salvato la frase in un luogo sicuro",
"onboardingGenerateKeys": "Genera le chiavi",
"verifyMismatchTitle": "I numeri NON corrispondono",
"verifyMatchBody": "Le chiavi corrispondono. {contactName} è un contatto verificato.",
"verifyMismatchBody": "I numeri di sicurezza non corrispondono. Qualcuno potrebbe intercettare la connessione (MITM), oppure stai scansionando il codice di un altro contatto. NON inviare messaggi sensibili e verificatevi di nuovo tramite un altro canale.",
"commonUnderstood": "Ho capito",
"verifyManualConfirmTitle": "Segnare come verificato?",
"verifyManualConfirmBody": "Conferma solo se hai confrontato le cifre con l'altra persona tramite un altro canale affidabile (di persona, con una chiamata…) e corrispondono.",
"verifyManualConfirmAction": "Corrispondono, verifica",
"verifyTitle": "Verifica del contatto",
"verifyContactVerifiedBanner": "Il contatto è verificato",
"verifyIntro": "Confronta questo numero con {contactName}. Se corrisponde, nessuno sta intercettando la vostra cifratura. Il modo più rapido è scansionare a vicenda i codici QR.",
"verifyScanButton": "Scansiona il codice dell'altra persona",
"verifyManualButton": "Le cifre corrispondono — segna manualmente",
"verifyUnverifyButton": "Rimuovi verifica",
"verifyScanScreenTitle": "Scansiona il QR di verifica",
"reportTitle": "Segnala",
"reportSubmitted": "Segnalazione inviata",
"reportSubmittedChildSafety": "Diamo priorità a queste segnalazioni. Se un minore è in pericolo immediato, chiama subito il 112 o il 114 (Emergenza Infanzia).",
"reportSubmittedThanks": "Grazie. L'esamineremo il prima possibile.",
"commonDone": "Fatto",
"reportPanelE2eNotice": "I messaggi sono cifrati end-to-end, quindi non possiamo vederne il contenuto nemmeno ora. Descrivi con parole tue cosa è successo. Non incollare qui il contenuto dei messaggi né link ad esso — non possiamo conservarlo e non ci serve per la valutazione.",
"reportPanelCsamWarning": "NON inviarci materiale che mostra abusi su minori. Detenerlo è un reato anche per noi e non ci serve per la segnalazione. Il materiale va segnalato direttamente alla polizia o a una hotline dedicata alla protezione dei minori. Scrivici solo cosa è successo — bloccheremo l'account e inoltreremo il caso.",
"reportPanelIpNotice": "La segnalazione non passa dal relay ma dal nostro server web, che al momento dell'invio vedrà il tuo indirizzo IP.",
"reportCategoryHeading": "Oggetto della segnalazione",
"reportDescriptionHeading": "Cosa è successo",
"reportAttachContactId": "Allega l'ID del contatto segnalato",
"reportAttachContactIdNamed": "Allega l'ID del contatto {contactName}",
"reportReplyToHeading": "Come contattarti (facoltativo)",
"reportReplyToHint": "email, nel caso avessimo bisogno di chiarimenti",
"reportSubmitButton": "Invia segnalazione",
"contactsTitle": "Contatti",
"contactsAddContact": "Aggiungi contatto",
"contactsSearchHint": "Cerca un contatto...",
"contactsEmpty": "Ancora nessun contatto",
"contactsNoResults": "Nessun risultato",
"contactsShareCardTitle": "Condividi il tuo Šepot ID",
"contactsShareCardSubtitle": "Mostra il codice QR o invia un link",
"contactsAddDialogPrompt": "Incolla la stringa di condivisione (share string) del contatto:",
"contactsShareStringHint": "Incolla la share string...",
"contactsInvalidShareString": "Share string non valida",
"contactsAdded": "Contatto {name} aggiunto",
"verifyContactSubtitle": "Confronto del numero di sicurezza",
"contactsDeleteContact": "Elimina contatto",
"pinConfirmTitle": "Conferma il PIN",
"pinSetupTitle": "Imposta il tuo PIN",
"pinConfirmSubtitle": "Inserisci di nuovo il PIN per confermare",
"pinSetupSubtitle": "PIN a 6 cifre per sbloccare l'app",
"pinSetupFailed": "Impostazione del PIN non riuscita. Riprova.",
"pinMismatchRetry": "I PIN non corrispondono. Riprova.",
"pinChangeCurrentTitle": "Inserisci il PIN attuale",
"pinChangeCurrentSubtitle": "Lo verifichiamo sbloccando la chiave",
"pinChangeNewTitle": "Inserisci il nuovo PIN",
"pinChangeNewSubtitle": "6 cifre",
"pinChangeConfirmTitle": "Conferma il nuovo PIN",
"pinChangeConfirmSubtitle": "Inseriscilo ancora una volta",
"pinWrong": "PIN errato.",
"pinChangeMustDiffer": "Il nuovo PIN deve essere diverso da quello attuale.",
"pinMismatch": "I PIN non corrispondono.",
"pinDecoyConflict": "Questo PIN appartiene già alla modalità anti-coercizione. Scegline un altro.",
"pinChangeFailed": "Cambio del PIN non riuscito. Riprova.",
"pinChanged": "PIN cambiato",
"errorCryptoInitTitle": "Il motore di cifratura non si è avviato",
"errorStartupTitle": "Šepot non si è avviato",
"errorScreenNotRenderedTitle": "Questa schermata non è stata visualizzata",
"errorStartupBody": "Qualcosa è andato storto subito all'avvio. Inviami questo testo, per favore (tieni premuto e copia) — mi aiuterà a trovare l'errore.",
"errorContactFooter": "sepot.cz · contattami",
"pinUnlockTitle": "Sblocca Šepot",
"pinEnterPin": "Inserisci il PIN",
"pinUnlockWithBiometrics": "Sblocca con biometria",
"pinWrong2": "PIN errato",
"pinUnlockError": "Errore di sblocco",
"pushTitle": "Notifiche push",
"pushModeOffDesc": "I messaggi verranno scaricati solo all'apertura dell'app.",
"pushModeUp": "UnifiedPush (consigliato)",
"pushModeUpDesc": "Senza Google — richiede l'app ntfy (F-Droid/Play).",
"pushModeFcm": "Google (FCM)",
"pushModeFcmDesc": "Affidabile senza altre app. Il token push del dispositivo va a Google; il contenuto dei messaggi mai.",
"pushSetupFailed": "Configurazione delle notifiche push non riuscita: {error}",
"pushNoDistributorTitle": "Nessun distributore",
"pushNoDistributorBody": "Per notifiche senza Google installa un distributore UnifiedPush, ad es. ntfy (F-Droid o Play). Poi riattiva le notifiche push.",
"commonOk": "OK",
"pushPickDistributorTitle": "Scegli il distributore",
"pushSubtitleUnifiedPush": "UnifiedPush · {distributor}",
"pushNoDistributorFallback": "nessun distributore",
"pushSubtitleFcm": "Google (FCM) — veloce, opt-in",
"restoreErrorNameRequired": "Inserisci il nome visualizzato.",
"restoreErrorWordCount": "{wordCount, plural, one{La frase ha 1 parola, ne servono {requiredWords}.} other{La frase ha {wordCount} parole, ne servono {requiredWords}.}}",
"restoreErrorInvalidPhrase": "La frase non è valida — controlla le parole e il loro ordine.",
"restoreErrorFailed": "Ripristino non riuscito: {error}",
"restoreTitle": "Ripristina account",
"restoreHeading": "Inserisci la tua frase di recupero",
"restoreIntro": "{wordCount} parole, dal backup fatto quando hai creato l'account. Ripristina la tua identità (stesso codice SEP, i contatti continueranno a riconoscerti).",
"restoreHistoryWarning": "La cronologia dei messaggi non verrà ripristinata — è salvata solo sul dispositivo originale.",
"restorePhraseHint": "parola1 parola2 parola3 …",
"restoreWordCountHelper": "{wordCount} / {requiredWords} parole",
"chatListArchivedCount": "Archiviate ({count})",
"chatListEmptyTitle": "Ancora nessuna conversazione",
"chatListEmptySubtitle": "Aggiungi un contatto e inizia a sussurrare!",
"chatListUnmute": "Riattiva notifiche",
"chatListMute": "Silenzia",
"chatListArchive": "Archivia",
"qrShareTitle": "Il mio Šepot ID",
"qrIdentityNotFound": "Identità non trovata",
"commonCopiedToClipboard": "Copiato negli appunti",
"qrShareInviteMessage": "Aggiungimi su Šepot!\n\n{shareString}",
"commonShare": "Condividi",
"qrShareInfo": "Il contatto scansiona il tuo codice QR o incolla la stringa di condivisione nell'app.",
"reportCategoryChildSafety": "Minore in pericolo",
"reportCategoryChildSafetyHint": "Descrivi la situazione con parole tue. Non incollare il contenuto dei messaggi né link al materiale.",
"reportCategoryHarassment": "Molestie o minacce",
"reportCategoryHarassmentHint": "Qualcuno ti intimidisce, ti minaccia o ti molesta.",
"reportCategorySpam": "Spam",
"reportCategorySpamHint": "Messaggi indesiderati, invii di massa.",
"reportCategoryFraud": "Truffa",
"reportCategoryFraudHint": "Un tentativo di ottenere con l'inganno denaro, chiavi o dati personali.",
"reportCategoryOther": "Altro",
"reportCategoryOtherHint": "Qualcos'altro che dovremmo sapere.",
"reportErrorEmptyDescription": "Scrivi cosa è successo, per favore.",
"reportErrorConnection": "Impossibile contattare il server. Riprova, oppure scrivi a {supportEmail}.",
"reportErrorRateLimited": "Troppe segnalazioni dalla tua rete. Riprova tra un'ora, oppure scrivi a {supportEmail}.",
"reportErrorServer": "Invio non riuscito (codice {statusCode}). Scrivi a {supportEmail}, per favore.",
"settingsAutoLockNever": "Mai",
"settingsAutoLock1min": "Dopo 1 minuto",
"settingsAutoLock15min": "Dopo 15 minuti",
"torToggleFailed": "Impossibile cambiare lo stato di Tor: {error}",
"torConnectionTitle": "Connessione via Tor",
"torDialogBody": "Il traffico verso il server passerà dalla rete Tor (nasconde il tuo indirizzo IP). Richiede l'app Orbot installata e in esecuzione, con proxy SOCKS attivo sulla porta 9050.\n\nSenza Orbot in esecuzione i messaggi non vengono né inviati né ricevuti. La connessione tende a essere più lenta.",
"commonTurnOn": "Attiva",
"torSubtitleOff": "Connessione cifrata diretta (WSS). Attiva per nascondere l'IP via Tor.",
"torStatusConnected": "Connesso via Tor (.onion).",
"torStatusConnecting": "Connessione via Tor… (Orbot è in esecuzione?)",
"torStatusWaiting": "Via Tor — in attesa di Orbot (SOCKS 9050).",
"biometricsPinRequiredFirst": "Prima imposta un PIN — la biometria è solo un complemento.",
"biometricsStorageLocked": "La memoria protetta è bloccata — sblocca l'app con il PIN.",
"biometricsNotAvailable": "Il dispositivo non ha la biometria configurata.",
"biometricsEnrollPromptReason": "Conferma l'attivazione dello sblocco biometrico",
"biometricsSetupFailed": "Impossibile configurare la biometria: {error}",
"biometricsTileTitle": "Biometria",
"biometricsTileSubtitle": "Sblocco con impronta / volto (il PIN resta di riserva)",
"backupErrorCorruptedFile": "File di backup danneggiato",
"backupErrorUnknownFormat": "Formato di backup non riconosciuto",
"backupErrorWrongIdentity": "Impossibile decifrare il backup — appartiene a un'altra identità?",
"attachmentSharedImageFilename": "sepot-immagine.{ext}",
"attachmentDecryptFailed": "Impossibile decifrare l'allegato",
"pushActionOpen": "Apri",
"pushChannelMessagesName": "Messaggi",
"pushChannelMessagesDescription": "Avvisi per i nuovi messaggi (senza contenuto)",
"pushNewMessageFrom": "Nuovo messaggio da {senderName}",
"pushNewMessages": "Hai nuovi messaggi",
"archiveTitle": "Archiviate",
"archiveEmpty": "Nessuna conversazione archiviata",
"archiveUnarchive": "Rimuovi dall'archivio",
"restoreErrorMnemonicWordCount": "La frase ha {count} parole, ne servono {expected}",
"restoreErrorInvalidMnemonic": "Frase non valida: {message}",
"contactsErrorAlreadyExists": "Il contatto esiste già",
"commonAppTagline": "Messenger privato",
"commonE2eBadgeCompact": "E2E",
"commonE2eBadgeFull": "Cifrato end-to-end"
}
+352
View File
@@ -0,0 +1,352 @@
{
"@@locale": "ru",
"appTitle": "Šepot",
"settingsLanguage": "Язык приложения",
"languageSystem": "Как в системе",
"commonUnknownContact": "Неизвестный",
"verifyVerified": "Подтверждён",
"verifyUnverified": "Не подтверждён",
"chatMenuVerifyContact": "Подтвердить контакт",
"chatDisappearingMessages": "Исчезающие сообщения",
"chatMenuUnblockContact": "Разблокировать контакт",
"chatMenuBlockContact": "Заблокировать контакт",
"reportAndBlock": "Пожаловаться и заблокировать",
"errorGeneric": "Ошибка: {error}",
"groupsYouLeftGroup": "Вы больше не в группе",
"groupsMemberCount": "{count, plural, one{{count} участник} few{{count} участника} many{{count} участников} other{{count} участника}}",
"groupsMembers": "Участники",
"groupsRename": "Переименовать группу",
"groupsLeave": "Покинуть группу",
"groupsLeftBanner": "Вы больше не в группе. История сохранится, но новые сообщения приходить не будут.",
"groupsMembersWithCount": "Участники ({count})",
"groupsYou": "Вы",
"groupsFounder": "Создатель",
"groupsNameHint": "Название группы",
"commonCancel": "Отмена",
"commonSave": "Сохранить",
"groupsRenameFailed": "Не удалось переименовать группу: {error}",
"groupsLeaveConfirmTitle": "Покинуть группу?",
"groupsLeaveConfirmBody": "Остальные увидят, что вы больше не в группе. История у вас сохранится, но новые сообщения приходить не будут, а вернуться можно только по новому приглашению.",
"groupsLeaveAction": "Покинуть",
"groupsLeaveFailed": "Не удалось покинуть группу: {error}",
"chatBlockedBanner": "Контакт заблокирован. Вы не получаете от него сообщения и не можете ему писать.",
"chatUnblock": "Разблокировать",
"chatContactBlocked": "Контакт {name} заблокирован",
"chatContactUnblocked": "Контакт {name} разблокирован",
"reportAndBlockBody": "Мы заблокируем контакт {name}, и вы перестанете получать от него сообщения. Затем мы предложим форму, в которой вы опишете, что произошло, — мы не видим содержимое сообщений, поэтому без вашего описания ничего об этом не знаем.",
"chatEmptyEncrypted": "Сообщения защищены сквозным шифрованием.",
"chatEmptyNoOneElse": "Никто другой не может их прочитать.",
"commonToday": "Сегодня",
"commonYesterday": "Вчера",
"chatMessageHint": "Напишите сообщение…",
"chatDiscardRecording": "Удалить запись",
"chatRecording": "Идёт запись…",
"chatMicPermissionMissing": "Нет доступа к микрофону",
"chatRecordingFailed": "Не удалось начать запись: {error}",
"chatVoiceSendFailed": "Не удалось отправить голосовое сообщение: {error}",
"chatDeletedMessagePreview": "Удалённое сообщение",
"chatVoiceMessagePreview": "🎤 Голосовое сообщение",
"chatPhotoPreview": "📷 Фото",
"chatAttachmentPreview": "📎 Вложение",
"chatEditingMessage": "Редактирование сообщения",
"chatReply": "Ответ",
"chatActionReply": "Ответить",
"commonCopy": "Копировать",
"commonEdit": "Изменить",
"chatDeleteForMe": "Удалить у меня",
"chatDeleteForEveryone": "Удалить у всех",
"commonOff": "Выключено",
"chatDisappearing30s": "30 секунд",
"chatDisappearing5m": "5 минут",
"chatDisappearing1h": "1 час",
"chatDisappearing1d": "1 день",
"chatDisappearing1w": "1 неделя",
"chatDisappearingDescription": "Новые сообщения будут удаляться по истечении заданного срока и у вас, и у собеседника.",
"chatDisappearingDisabled": "Исчезающие сообщения выключены",
"chatDisappearingEnabled": "Новые сообщения исчезнут через: {duration}",
"attachmentGallery": "Фото из галереи",
"attachmentTakePhoto": "Сделать фото",
"attachmentDocument": "Документ",
"attachmentTooLarge": "Файл слишком большой (макс. {maxMb} МБ)",
"attachmentPickFailed": "Не удалось выбрать вложение: {error}",
"attachmentSendFailed": "Не удалось отправить вложение: {error}",
"chatSendFailed": "Не удалось отправить: {error}",
"chatMessageDeleted": "Сообщение удалено",
"chatEdited": "изменено",
"errorTrustRootChanged": "Trust root релея изменился! Соединение отклонено.",
"errorRelayUnavailable": "Релей недоступен (sender certificate)",
"errorAttachmentTooLarge": "Вложение слишком большое (макс. {maxMb} МБ)",
"errorGroupNeedsMember": "В группе должен быть хотя бы 1 участник",
"errorGroupMaxMembers": "Максимальное число участников группы — {maxMembers}",
"errorMemberNoDeliveryAddress": "У контакта {displayName} нет адреса доставки — запросите новую ссылку",
"errorContactNoDeliveryAddress": "У контакта нет адреса доставки — попросите у него новую ссылку sepot://",
"errorIdentityKeyMismatch": "Ключ идентификации с релея НЕ СОВПАДАЕТ с контактом — возможен MITM! Сообщение не отправлено.",
"settingsTitle": "Настройки",
"settingsSectionGeneral": "Общие",
"settingsSectionSecurity": "Безопасность",
"settingsChangePinTitle": "Изменить PIN",
"settingsChangePinSubtitle": "6-значный PIN для разблокировки",
"settingsAutoLockTitle": "Автоблокировка",
"settingsAutoLock5min": "Через 5 минут",
"settingsDecoyPinTitle": "PIN принуждения",
"settingsDecoyPinSetSubtitle": "Установлен — откроет пустое приложение",
"settingsDecoyPinUnsetSubtitle": "Второй PIN, открывающий пустое приложение",
"settingsSectionNotifications": "Уведомления",
"settingsSectionConnection": "Подключение",
"settingsSectionPrivacy": "Конфиденциальность",
"settingsReadReceiptsTitle": "Отчёты о прочтении",
"settingsReadReceiptsSubtitle": "Показывать собеседнику, что сообщения прочитаны (по умолчанию выключено)",
"settingsScreenSecurityTitle": "Защита экрана",
"settingsScreenSecuritySubtitle": "Блокировать скриншоты и скрывать содержимое в списке недавних приложений",
"settingsSectionBackup": "Резервная копия ключей",
"settingsSeedPhraseTitle": "Фраза восстановления",
"settingsSeedPhraseSubtitle": "24 слова для восстановления идентичности",
"settingsBackupExportTitle": "Резервная копия истории",
"settingsBackupExportSubtitle": "Зашифрованный файл с контактами и сообщениями",
"settingsBackupImportTitle": "Восстановить из копии",
"settingsBackupImportSubtitle": "Загрузить резервную копию (только вашей идентичности)",
"settingsSectionSafety": "Защита от злоупотреблений",
"settingsReportAbuseTitle": "Сообщить о нарушении",
"settingsReportAbuseSubtitle": "Домогательства, мошенничество, угроза ребёнку",
"settingsChildSafetyTitle": "Стандарты защиты детей",
"settingsChildSafetySubtitle": "Как мы противодействуем насилию над детьми",
"settingsSectionAbout": "О приложении",
"commonAppName": "Šepot",
"settingsVersion": "Версия {version}",
"settingsLicenseTitle": "Лицензия",
"settingsLicenseSubtitle": "AGPL-3.0",
"settingsPrivacyPolicyTitle": "Политика конфиденциальности",
"settingsPrivacyPolicySubtitle": "Что мы о вас знаем (и чего не знаем)",
"settingsTermsTitle": "Условия использования",
"settingsTermsSubtitle": "sepot.cz/podminky",
"settingsDataDeletionTitle": "Удаление данных",
"settingsDataDeletionSubtitle": "Как запросить удаление данных",
"settingsDeleteAllDataButton": "Удалить все данные",
"settingsLicenseBody": "Šepot распространяется по лицензии GNU Affero General Public License версии 3 (AGPL-3.0). Приложение использует библиотеку libsignal, также под AGPL-3.0.\n\nЧтобы получить исходный код этой версии, напишите на {supportEmail}, и мы вам его отправим.",
"commonClose": "Закрыть",
"settingsIdCopied": "ID скопирован",
"settingsFingerprint": "Отпечаток: {fingerprint}",
"backupShareSubject": "Šepot — зашифрованная резервная копия",
"backupExportFailed": "Не удалось создать резервную копию: {error}",
"backupRestoredCount": "{count, plural, one{Из резервной копии восстановлен {count} чат} few{Из резервной копии восстановлены {count} чата} many{Из резервной копии восстановлено {count} чатов} other{Из резервной копии восстановлено {count} чата}}",
"backupImportFailed": "Не удалось восстановить из копии: {error}",
"settingsDecoyPinExplain": "При вводе этого PIN приложение откроется пустым — без ваших контактов и сообщений. Он должен отличаться от обычного PIN.",
"commonConfirm": "Подтвердить",
"commonSet": "Установить",
"settingsDecoyPinEnabled": "PIN принуждения установлен",
"settingsDecoyPinConflict": "PIN принуждения должен отличаться от обычного",
"settingsDecoyPinDisabled": "PIN принуждения отключён",
"settingsSeedPhraseNotFound": "Фраза восстановления не найдена",
"settingsSeedPhraseWarning": "Эти слова — единственная резервная копия вашей идентичности. Никому их не показывайте!",
"settingsSeedWordChip": "{index}. {word}",
"settingsAboutTagline": "Šepot — приватный мессенджер",
"settingsAboutBody": "E2E-шифрованный мессенджер с открытым исходным кодом.\n\nКриптография:\n• X25519 (обмен ключами)\n• XChaCha20-Poly1305 (шифрование)\n• Ed25519 (подписи)\n\n© 2026 ajtak.it",
"settingsDeleteAccountTitle": "Удалить аккаунт и все данные?",
"settingsDeleteAccountBody": "Это действие необратимо. Все сообщения, контакты и ключи будут удалены с этого устройства, а аккаунт будет снят с регистрации на сервере. Без фразы восстановления вы потеряете свою идентичность навсегда.",
"settingsDeleteAccountServerOffline": "Сервер сейчас недоступен — данные на устройстве удалены, но регистрация на сервере осталась. Остальное удалим по запросу на podpora@sepot.cz.",
"settingsDeleteAllConfirm": "Удалить всё",
"groupsCreateFailed": "Не удалось создать группу: {error}",
"groupsNewGroupTitle": "Новая группа",
"groupsCreateAction": "Создать",
"groupsMembersCounter": "Участники ({selectedCount}/{maxMembers})",
"groupsEmptyContactsHint": "Сначала добавьте контакты — группа состоит из людей, с которыми вы уже можете переписываться.",
"groupsMemberMissingAddress": "Нет адреса доставки — запросите новую ссылку",
"attachmentSizeBytes": "{bytes} Б",
"attachmentSizeKb": "{kilobytes} КБ",
"attachmentSizeMb": "{megabytes} МБ",
"attachmentDownloadFailedTapToRetry": "Не удалось скачать — нажмите, чтобы повторить",
"attachmentDownloadFailed": "Не удалось скачать",
"attachmentDownloading": "Скачивание…",
"attachmentSharedFileFallbackName": "файл",
"attachmentOpenFailed": "Не удалось открыть вложение: {error}",
"commonFile": "Файл",
"chatListNewConversation": "Новый чат",
"chatListPhotoWithCaptionPreview": "📷 {caption}",
"chatListFilePreview": "📎 {fileName}",
"chatListReadReceiptPreview": "Прочитано",
"chatListTimeNow": "сейчас",
"chatListTimeMinutes": "{minutes} мин",
"qrScanTitle": "Сканировать QR-код",
"qrScanInstruction": "Наведите камеру на QR-код контакта",
"qrScanHint": "QR-код содержит открытый ключ контакта",
"qrNewContactTitle": "Новый контакт",
"qrContactAdded": "Контакт {name} добавлен",
"commonAdd": "Добавить",
"onboardingWelcomeTitle": "Добро пожаловать в Šepot",
"onboardingWelcomeSubtitle": "Приватный мессенджер со сквозным шифрованием.\nБез номера телефона. Без электронной почты.\nТолько ваши ключи.",
"onboardingStart": "Начать",
"onboardingRestoreExisting": "У меня уже есть аккаунт — восстановить из фразы",
"onboardingEncryptionTitle": "Ваши сообщения, ваши ключи",
"onboardingFeatureSignalTitle": "Протокол Signal",
"onboardingFeatureSignalSubtitle": "X3DH + Double Ratchet, forward secrecy",
"onboardingFeaturePqTitle": "Постквантовая защита",
"onboardingFeaturePqSubtitle": "Kyber (PQXDH) с первого сообщения",
"onboardingFeatureLocalKeysTitle": "Ключи только на вашем устройстве",
"onboardingFeatureLocalKeysSubtitle": "Ни у одного сервера их нет",
"onboardingFeatureDisappearingSubtitle": "Удаляются автоматически",
"commonContinue": "Продолжить",
"onboardingIdentityTitle": "Создайте свою идентичность",
"onboardingIdentitySubtitle": "Без почты и телефона. Только имя и криптографические ключи.",
"onboardingDisplayNameLabel": "Отображаемое имя",
"onboardingDisplayNameHint": "Например, Иван",
"onboardingSeedPhraseWarning": "Запишите {count, plural, one{это {count} слово} few{эти {count} слова} many{эти {count} слов} other{эти {count} слова}}. Это единственная резервная копия ваших ключей!",
"onboardingSeedSavedConfirm": "Подтверждаю: фраза надёжно сохранена",
"onboardingGenerateKeys": "Сгенерировать ключи",
"verifyMismatchTitle": "Номера НЕ СОВПАДАЮТ",
"verifyMatchBody": "Ключи совпадают. {contactName} — подтверждённый контакт.",
"verifyMismatchBody": "Номера безопасности не совпадают. Возможно, кто-то перехватывает соединение (MITM), либо вы сканируете код другого контакта. НЕ отправляйте конфиденциальные сообщения и повторите сверку по другому каналу.",
"commonUnderstood": "Понятно",
"verifyManualConfirmTitle": "Отметить как подтверждённый?",
"verifyManualConfirmBody": "Подтверждайте только в том случае, если вы сверили цифры с собеседником по другому надёжному каналу (лично, по звонку…) и они совпадают.",
"verifyManualConfirmAction": "Совпадают, подтвердить",
"verifyTitle": "Подтверждение контакта",
"verifyContactVerifiedBanner": "Контакт подтверждён",
"verifyIntro": "Сравните этот номер с тем, который видит {contactName}. Если номера совпадают, ваше шифрование никто не прослушивает. Быстрее всего — взаимно отсканировать QR-коды.",
"verifyScanButton": "Сканировать код собеседника",
"verifyManualButton": "Цифры совпадают — отметить вручную",
"verifyUnverifyButton": "Отменить подтверждение",
"verifyScanScreenTitle": "Отсканируйте QR для сверки",
"reportTitle": "Пожаловаться",
"reportSubmitted": "Жалоба отправлена",
"reportSubmittedChildSafety": "Такие жалобы мы рассматриваем в первую очередь. Если ребёнок в непосредственной опасности, немедленно обратитесь в местную полицию или на телефон доверия.",
"reportSubmittedThanks": "Спасибо. Мы рассмотрим её как можно скорее.",
"commonDone": "Готово",
"reportPanelE2eNotice": "Сообщения защищены сквозным шифрованием, поэтому их содержимое нам не видно даже сейчас. Пожалуйста, опишите своими словами, что произошло. Не вставляйте сюда содержимое сообщений или ссылки на него — мы не имеем права его хранить, и для рассмотрения оно нам не нужно.",
"reportPanelCsamWarning": "НЕ ОТПРАВЛЯЙТЕ нам материалы, изображающие сексуальное насилие над детьми. Их хранение уголовно наказуемо в том числе для нас, и для жалобы они не нужны. Такие материалы следует передавать напрямую в местную полицию или на официальную горячую линию по борьбе с CSAM. Нам напишите только то, что произошло, — мы заблокируем аккаунт и передадим дело дальше.",
"reportPanelIpNotice": "Жалоба отправляется не через релей, а на наш веб-сервер. При отправке он узнает ваш IP-адрес.",
"reportCategoryHeading": "О чём жалоба",
"reportDescriptionHeading": "Что произошло",
"reportAttachContactId": "Приложить ID нарушителя",
"reportAttachContactIdNamed": "Приложить ID контакта {contactName}",
"reportReplyToHeading": "Как с вами связаться (необязательно)",
"reportReplyToHint": "e-mail на случай уточняющих вопросов",
"reportSubmitButton": "Отправить жалобу",
"contactsTitle": "Контакты",
"contactsAddContact": "Добавить контакт",
"contactsSearchHint": "Поиск контактов...",
"contactsEmpty": "Пока нет контактов",
"contactsNoResults": "Ничего не найдено",
"contactsShareCardTitle": "Поделитесь своим Šepot ID",
"contactsShareCardSubtitle": "Покажите QR-код или отправьте ссылку",
"contactsAddDialogPrompt": "Вставьте строку обмена (share string) контакта:",
"contactsShareStringHint": "Вставить share string...",
"contactsInvalidShareString": "Недействительный share string",
"contactsAdded": "Контакт {name} добавлен",
"verifyContactSubtitle": "Сверка номера безопасности",
"contactsDeleteContact": "Удалить контакт",
"pinConfirmTitle": "Подтвердите PIN",
"pinSetupTitle": "Задайте PIN",
"pinConfirmSubtitle": "Введите PIN ещё раз для подтверждения",
"pinSetupSubtitle": "6-значный PIN для разблокировки приложения",
"pinSetupFailed": "Не удалось установить PIN. Попробуйте ещё раз.",
"pinMismatchRetry": "PIN-коды не совпадают. Попробуйте ещё раз.",
"pinChangeCurrentTitle": "Введите текущий PIN",
"pinChangeCurrentSubtitle": "Мы проверим его, разблокировав ключ",
"pinChangeNewTitle": "Введите новый PIN",
"pinChangeNewSubtitle": "6 цифр",
"pinChangeConfirmTitle": "Подтвердите новый PIN",
"pinChangeConfirmSubtitle": "Введите его ещё раз",
"pinWrong": "Неверный PIN.",
"pinChangeMustDiffer": "Новый PIN должен отличаться от текущего.",
"pinMismatch": "PIN-коды не совпадают.",
"pinDecoyConflict": "Этот PIN уже используется режимом принуждения. Выберите другой.",
"pinChangeFailed": "Не удалось изменить PIN. Попробуйте ещё раз.",
"pinChanged": "PIN изменён",
"errorCryptoInitTitle": "Криптографическое ядро не запустилось",
"errorStartupTitle": "Šepot не запустился",
"errorScreenNotRenderedTitle": "Этот экран не отрисовался",
"errorStartupBody": "Что-то пошло не так прямо при запуске. Пожалуйста, отправьте мне этот текст (удерживайте палец и скопируйте) — это поможет найти ошибку.",
"errorContactFooter": "sepot.cz · напишите мне через контакты на сайте",
"pinUnlockTitle": "Разблокируйте Šepot",
"pinEnterPin": "Введите PIN",
"pinUnlockWithBiometrics": "Разблокировать биометрией",
"pinWrong2": "Неверный PIN",
"pinUnlockError": "Ошибка разблокировки",
"pushTitle": "Push-уведомления",
"pushModeOffDesc": "Сообщения загрузятся только после открытия приложения.",
"pushModeUp": "UnifiedPush (рекомендуется)",
"pushModeUpDesc": "Без сервисов Google — требуется приложение ntfy (F-Droid/Play).",
"pushModeFcm": "Google (FCM)",
"pushModeFcmDesc": "Надёжно и без дополнительных приложений. Push-токен устройства передаётся Google; содержимое сообщений — никогда.",
"pushSetupFailed": "Не удалось настроить push: {error}",
"pushNoDistributorTitle": "Нет дистрибьютора",
"pushNoDistributorBody": "Для уведомлений без сервисов Google установите дистрибьютор UnifiedPush, например ntfy (F-Droid или Play). Затем включите push снова.",
"commonOk": "OK",
"pushPickDistributorTitle": "Выберите дистрибьютора",
"pushSubtitleUnifiedPush": "UnifiedPush · {distributor}",
"pushNoDistributorFallback": "без дистрибьютора",
"pushSubtitleFcm": "Google (FCM) — быстро, только по вашему выбору",
"restoreErrorNameRequired": "Введите отображаемое имя.",
"restoreErrorWordCount": "{wordCount, plural, one{Во фразе {wordCount} слово, а нужно {requiredWords}.} few{Во фразе {wordCount} слова, а нужно {requiredWords}.} many{Во фразе {wordCount} слов, а нужно {requiredWords}.} other{Во фразе {wordCount} слова, а нужно {requiredWords}.}}",
"restoreErrorInvalidPhrase": "Фраза недействительна — проверьте слова и их порядок.",
"restoreErrorFailed": "Не удалось восстановить: {error}",
"restoreTitle": "Восстановить аккаунт",
"restoreHeading": "Введите свою фразу восстановления",
"restoreIntro": "{wordCount, plural, one{{wordCount} слово} few{{wordCount} слова} many{{wordCount} слов} other{{wordCount} слова}} из резервной копии, сделанной при создании аккаунта. Фраза восстановит вашу идентичность (тот же код SEP, контакты по-прежнему вас узнают).",
"restoreHistoryWarning": "История сообщений не восстановится — она хранится только на исходном устройстве.",
"restorePhraseHint": "слово1 слово2 слово3 …",
"restoreWordCountHelper": "{wordCount} / {requiredWords} слов",
"chatListArchivedCount": "Архив ({count})",
"chatListEmptyTitle": "Пока нет чатов",
"chatListEmptySubtitle": "Добавьте контакт и начните шептаться!",
"chatListUnmute": "Включить звук",
"chatListMute": "Отключить звук",
"chatListArchive": "Архивировать",
"qrShareTitle": "Мой Šepot ID",
"qrIdentityNotFound": "Идентичность не найдена",
"commonCopiedToClipboard": "Скопировано в буфер обмена",
"qrShareInviteMessage": "Добавьте меня в Šepot!\n\n{shareString}",
"commonShare": "Поделиться",
"qrShareInfo": "Контакт отсканирует ваш QR-код или вставит строку обмена в приложение.",
"reportCategoryChildSafety": "Угроза ребёнку",
"reportCategoryChildSafetyHint": "Опишите ситуацию своими словами. Не вставляйте содержимое сообщений или ссылки на материалы.",
"reportCategoryHarassment": "Домогательства или угрозы",
"reportCategoryHarassmentHint": "Кто-то запугивает вас, угрожает или домогается.",
"reportCategorySpam": "Спам",
"reportCategorySpamHint": "Нежелательные сообщения, массовые рассылки.",
"reportCategoryFraud": "Мошенничество",
"reportCategoryFraudHint": "Попытка выманить деньги, ключи или личные данные.",
"reportCategoryOther": "Другое",
"reportCategoryOtherHint": "Что-то ещё, о чём нам стоит знать.",
"reportErrorEmptyDescription": "Пожалуйста, напишите, что произошло.",
"reportErrorConnection": "Не удалось связаться с сервером. Попробуйте ещё раз или напишите на {supportEmail}.",
"reportErrorRateLimited": "Из вашей сети поступило слишком много жалоб. Попробуйте через час или напишите на {supportEmail}.",
"reportErrorServer": "Не удалось отправить (код {statusCode}). Пожалуйста, напишите на {supportEmail}.",
"settingsAutoLockNever": "Никогда",
"settingsAutoLock1min": "Через 1 минуту",
"settingsAutoLock15min": "Через 15 минут",
"torToggleFailed": "Не удалось переключить Tor: {error}",
"torConnectionTitle": "Подключение через Tor",
"torDialogBody": "Трафик на сервер пойдёт через сеть Tor (это скроет ваш IP-адрес). Требуется установленное и запущенное приложение Orbot с активным SOCKS-прокси на порту 9050.\n\nБез работающего Orbot сообщения не будут ни отправляться, ни приниматься. Соединение обычно медленнее.",
"commonTurnOn": "Включить",
"torSubtitleOff": "Прямое зашифрованное соединение (WSS). Включите, чтобы скрыть IP через Tor.",
"torStatusConnected": "Подключено через Tor (.onion).",
"torStatusConnecting": "Подключение через Tor… (Orbot запущен?)",
"torStatusWaiting": "Через Tor — ожидание Orbot (SOCKS 9050).",
"biometricsPinRequiredFirst": "Сначала задайте PIN — биометрия лишь дополняет его.",
"biometricsStorageLocked": "Хранилище заблокировано — разблокируйте приложение PIN-кодом.",
"biometricsNotAvailable": "На устройстве не настроена биометрия.",
"biometricsEnrollPromptReason": "Подтвердите включение биометрической разблокировки",
"biometricsSetupFailed": "Не удалось настроить биометрию: {error}",
"biometricsTileTitle": "Биометрия",
"biometricsTileSubtitle": "Разблокировка отпечатком пальца / лицом (PIN остаётся запасным способом)",
"backupErrorCorruptedFile": "Файл резервной копии повреждён",
"backupErrorUnknownFormat": "Нераспознанный формат резервной копии",
"backupErrorWrongIdentity": "Не удалось расшифровать копию — она принадлежит другой идентичности?",
"attachmentSharedImageFilename": "sepot-image.{ext}",
"attachmentDecryptFailed": "Не удалось расшифровать вложение",
"pushActionOpen": "Открыть",
"pushChannelMessagesName": "Сообщения",
"pushChannelMessagesDescription": "Уведомления о новых сообщениях (без содержимого)",
"pushNewMessageFrom": "Новое сообщение от {senderName}",
"pushNewMessages": "У вас новые сообщения",
"archiveTitle": "Архив",
"archiveEmpty": "Нет архивированных чатов",
"archiveUnarchive": "Вернуть из архива",
"restoreErrorMnemonicWordCount": "{count, plural, one{Во фразе {count} слово, ожидается {expected}} few{Во фразе {count} слова, ожидается {expected}} many{Во фразе {count} слов, ожидается {expected}} other{Во фразе {count} слова, ожидается {expected}}}",
"restoreErrorInvalidMnemonic": "Недействительная фраза: {message}",
"contactsErrorAlreadyExists": "Контакт уже существует",
"commonAppTagline": "Приватный мессенджер",
"commonE2eBadgeCompact": "E2E",
"commonE2eBadgeFull": "Сквозное шифрование"
}
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff