e3a2378c34
Calls: `call` was missing from the known content types, so every offer was acknowledged and dropped; the call screen column now fills the width (the avatar jumped left after hang-up); a ring started from a push ends after 12 s when no offer arrives; STUN fallback when no TURN credentials. Registration: X-Sepot-Identity-Proof lets a new device reclaim an existing identity; retry backs off from 30 s to 10 min and exposes a conflict flag. Prekeys: PrekeysLow triggers a batch of 50 one-time prekeys via POST /v1/keys; the signed prekey rotates weekly, the Kyber prekey monthly. Messaging: crypto operations run serially (concurrent encrypts derived the same message key); stop() waits for in-flight deliveries (auto-lock between decrypt and persist lost messages); disappearing-message cleanup no longer overwrites fresh messages; a push wake-up reconnects stale connections; the outbox carries polls and mentions; length limits on wire input. Storage: a duress session never exposes the real identity or phrase, does not start networking and cannot touch the keystore; deleting data in a duress session leaves the real account alone; PIN guessing is throttled (5 misses, then 30 s doubling up to 15 min); the duress blob shares the salt so unlock time does not reveal which PIN was entered; iOS keychain items are this-device only; biometrics are biometric-only; screen security defaults to on and is applied after unlock; tapjacking filter in MainActivity. Tests: content types, shared-salt unwrap, duress isolation.
491 lines
31 KiB
Plaintext
491 lines
31 KiB
Plaintext
{
|
|
"@@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.",
|
|
"groupsYou": "Du",
|
|
"groupsFounder": "Hat die Gruppe gegründet",
|
|
"groupsAdmin": "Admin",
|
|
"groupsMakeAdmin": "Zum Admin machen",
|
|
"groupsDismissAdmin": "Adminrolle entziehen",
|
|
"groupsRemoveMember": "Aus der Gruppe entfernen",
|
|
"groupsRemoveMemberConfirmTitle": "{name} aus der Gruppe entfernen?",
|
|
"groupsRemoveMemberConfirmBody": "Neue Nachrichten der Gruppe kommen dann nicht mehr an. Der bisherige Verlauf bleibt erhalten.",
|
|
"groupsRemoveAction": "Entfernen",
|
|
"groupsViewContact": "Kontakt anzeigen",
|
|
"groupsAdminOnlyHint": "Nur Admins können Namen, Mitglieder und Admins der Gruppe ändern.",
|
|
"groupsAdminOnlyCompatHint": "Nur Admins können die Gruppe umbenennen oder Admins ändern. Personen hinzufügen kann vorerst jeder, weil jemand in der Gruppe eine ältere Šepot-Version hat.",
|
|
"groupsAdminActionFailed": "Änderung fehlgeschlagen: {error}",
|
|
"groupsResyncNotice": "Die Gruppe gleicht sich mit dem Admin ab. Änderungen an Mitgliedern können sich kurz verzögern.",
|
|
"groupsRejectedChangeNotice": "Jemand ohne Berechtigung hat versucht, die Gruppe zu ändern. Die Änderung wurde nicht übernommen.",
|
|
"errorGroupNotAdmin": "Das kann nur ein Admin der Gruppe.",
|
|
"errorGroupLastAdmin": "Du bist der einzige Admin. Mach zuerst jemand anderen zum Admin.",
|
|
"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",
|
|
"chatActionForward": "Weiterleiten",
|
|
"forwardTitle": "Weiterleiten an…",
|
|
"forwardSearchHint": "Kontakt oder Gruppe suchen",
|
|
"forwardEmpty": "Nichts gefunden",
|
|
"forwardDone": "Weitergeleitet an {name}",
|
|
"forwardFailed": "Weiterleiten fehlgeschlagen: {error}",
|
|
"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)",
|
|
"attachmentKeepsMetadataTitle": "Foto enthält den Standort",
|
|
"attachmentKeepsMetadataBody": "Aus diesem Fotoformat (z. B. HEIC) kann ich die Metadaten nicht entfernen. Es würde im Original gesendet, einschließlich Aufnahmeort und Angaben zum Telefon. Sicherer ist das Senden über die Galerie, dort werden die Metadaten entfernt.",
|
|
"attachmentSendOriginal": "Original senden",
|
|
"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)",
|
|
"errorNotYetRegistered": "Šepot verbindet sich noch mit dem Relay — versuch es gleich noch einmal.",
|
|
"errorContactLinkIncomplete": "Dieser Link ist unvollständig — die andere Person hat ihn erstellt, bevor sie verbunden war. Bitte sie um einen neuen sepot://-Link.",
|
|
"errorAttachmentTooLarge": "Anhang ist zu groß (max. {maxMb} MB)",
|
|
"errorGroupNeedsMember": "Die Gruppe braucht mindestens 1 Mitglied",
|
|
"errorAttachmentUnavailable": "Der Anhang ist nicht mehr auf diesem Telefon",
|
|
"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",
|
|
"chatListReadReceiptPreview": "Gelesen",
|
|
"chatListDraft": "Entwurf",
|
|
"notesTitle": "Notizen für mich",
|
|
"notesSubtitle": "Nur auf diesem Telefon, verschlüsselt",
|
|
"callVoice": "Anrufen",
|
|
"callVideo": "Videoanruf",
|
|
"callStatusRinging": "Klingelt…",
|
|
"callIncomingVoice": "Eingehender Anruf",
|
|
"callIncomingVideo": "Eingehender Videoanruf",
|
|
"callStatusConnecting": "Verbinde…",
|
|
"callEnded": "Anruf beendet",
|
|
"callEndedBusy": "Besetzt",
|
|
"callEndedRejected": "Anruf abgelehnt",
|
|
"callEndedUnanswered": "Keine Antwort",
|
|
"callEndedFailed": "Verbindung fehlgeschlagen",
|
|
"callEncrypted": "Ende-zu-Ende-verschlüsselt",
|
|
"callAccept": "Annehmen",
|
|
"callReject": "Ablehnen",
|
|
"callMute": "Stummschalten",
|
|
"callSpeaker": "Lautsprecher",
|
|
"callCamera": "Kamera aus",
|
|
"callSwitchCamera": "Kamera wechseln",
|
|
"callHangUp": "Auflegen",
|
|
"callLogMissed": "Verpasster Anruf",
|
|
"callLogUnanswered": "Unbeantworteter Anruf",
|
|
"callLogRejected": "Abgelehnter Anruf",
|
|
"callLogBusy": "Besetzt",
|
|
"callLogFailed": "Anruf fehlgeschlagen",
|
|
"callLogVoice": "Anruf · {duration}",
|
|
"callLogVideo": "Videoanruf · {duration}",
|
|
"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",
|
|
"pinLockedFor": "Zu viele Versuche. Versuche es in {seconds} s erneut.",
|
|
"pushTitle": "Push-Benachrichtigungen",
|
|
"pushModeOffDesc": "Nachrichten werden erst beim Öffnen der App abgerufen.",
|
|
"pushModeUp": "UnifiedPush (ohne Google)",
|
|
"pushModeUpDesc": "Google-frei — braucht die App ntfy (F-Droid/Play).",
|
|
"pushModeFcm": "Google (FCM, Standard)",
|
|
"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}",
|
|
"pushHintOff": "Nachrichten kommen erst an, wenn du Šepot öffnest — keine Weckrufe eingerichtet.",
|
|
"pushHintFailed": "Weckrufe funktionieren nicht; Nachrichten siehst du erst beim Öffnen von Šepot.",
|
|
"pushRegistrationFailed": "Es kommen keine Weckrufe an — der Distributor hat die Registrierung abgelehnt. Schalte Push aus und wieder ein.",
|
|
"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)",
|
|
"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",
|
|
"qrShareConnectingTitle": "Verbinde mit dem Relay…",
|
|
"qrShareConnectingBody": "Dein QR-Code und Link erscheinen, sobald sich Šepot zum ersten Mal verbindet. Einen Moment — es dauert nur ein paar Sekunden.",
|
|
"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",
|
|
"photoPreviewCaptionHint": "Bildunterschrift hinzufügen…",
|
|
"photoPreviewDraw": "Zeichnen",
|
|
"photoPreviewAddText": "Text hinzufügen",
|
|
"photoPreviewRotate": "Drehen",
|
|
"photoPreviewUndo": "Rückgängig",
|
|
"photoPreviewSend": "Senden",
|
|
"photoPreviewTextDialogTitle": "Text auf dem Foto",
|
|
"photoPreviewRemoveText": "Entfernen",
|
|
"photoPreviewDecodeFailed": "Foto konnte nicht geladen werden",
|
|
"chatActionInfo": "Nachrichteninfo",
|
|
"messageInfoSent": "Gesendet",
|
|
"messageInfoDelivered": "Zugestellt",
|
|
"messageInfoRead": "Gelesen",
|
|
"messageInfoPending": "noch nicht",
|
|
"messageInfoReadReceiptsOff": "Wann deine Nachrichten gelesen wurden, siehst du nur, wenn du selbst Lesebestätigungen teilst (Einstellungen).",
|
|
"chatStatusReadAt": "Gelesen {time}",
|
|
"chatStatusDeliveredAt": "Zugestellt {time}",
|
|
"groupsAddMembers": "Mitglieder hinzufügen",
|
|
"groupsAddMembersAction": "Hinzufügen",
|
|
"groupsAddMembersFailed": "Hinzufügen fehlgeschlagen: {error}",
|
|
"groupsNoContactsToAdd": "Alle deine Kontakte sind schon in der Gruppe. Füge neue Personen zuerst per QR-Code zu deinen Kontakten hinzu.",
|
|
"navChats": "Chats",
|
|
"chatListNewChat": "Neuer Chat",
|
|
"chatListSearchHint": "Chats und Nachrichten durchsuchen",
|
|
"chatFilterAll": "Alle",
|
|
"chatFilterUnread": "Ungelesen",
|
|
"chatFilterGroups": "Gruppen",
|
|
"chatFilterArchive": "Archiv",
|
|
"chatListNoResults": "Nichts gefunden.",
|
|
"chatListFilterEmpty": "Hier ist noch nichts.",
|
|
"chatListPin": "Anheften",
|
|
"chatListUnpin": "Lösen",
|
|
"chatOpenProfile": "Profil anzeigen",
|
|
"groupsProfile": "Gruppeninfo",
|
|
"chatSearchHint": "Im Chat suchen",
|
|
"chatSearchNoMatches": "Keine",
|
|
"chatSearchCounter": "{current} von {total}",
|
|
"chatSearchOlder": "Ältere Treffer",
|
|
"chatSearchNewer": "Neuerer Treffer",
|
|
"chatUnreadDivider": "{count, plural, one{1 neue Nachricht} other{{count} neue Nachrichten}}",
|
|
"chatJumpToLatest": "Zu den neuesten",
|
|
"chatAttach": "Anhängen",
|
|
"chatSend": "Senden",
|
|
"chatRecordVoice": "Sprachnachricht aufnehmen",
|
|
"profileSharedMedia": "Geteilte Medien",
|
|
"profileMessage": "Nachricht",
|
|
"profileSearch": "Suchen",
|
|
"profileUnmute": "Ton an",
|
|
"profileDisappearing": "Verschwinden",
|
|
"profileCommonGroups": "Gemeinsame Gruppen",
|
|
"profileSafetyNumber": "Sicherheitsnummer",
|
|
"profileSafetyNumberHint": "Persönlich oder per QR-Code vergleichen",
|
|
"profileVerifiedInPerson": "Persönlich verifiziert",
|
|
"profileVerifyNow": "Kontakt verifizieren",
|
|
"profileAdd": "Hinzufügen",
|
|
"profileGroupSubtitle": "Gruppe · {members} · erstellt am {date}",
|
|
"profileMembersOfMax": "{count} von {max}",
|
|
"chatTyping": "schreibt…",
|
|
"chatTypingNamed": "{name} schreibt…",
|
|
"chatTypingSeveral": "Mehrere schreiben…",
|
|
"settingsTypingTitle": "Tippindikator",
|
|
"settingsTypingSubtitle": "Gegenseitig — wer nicht teilt, sieht nichts (standardmäßig aus)",
|
|
"pollAttach": "Umfrage",
|
|
"pollCreateTitle": "Neue Umfrage",
|
|
"pollQuestion": "Frage",
|
|
"pollOptionHint": "Option {number}",
|
|
"pollAddOption": "Option hinzufügen",
|
|
"pollRemoveOption": "Option entfernen",
|
|
"pollAllowMultiple": "Mehrere Antworten erlauben",
|
|
"pollSingle": "Umfrage",
|
|
"pollMulti": "Umfrage, Mehrfachauswahl",
|
|
"pollVoters": "{count, plural, =0{noch keine Stimmen} one{1 Stimme} other{{count} Stimmen}}",
|
|
"pollFallback": "Umfrage: {question}",
|
|
"pollFallbackUpdate": "Zum Abstimmen Šepot aktualisieren.",
|
|
"profilePhotoEdit": "Profilbild ändern",
|
|
"profilePhotoPick": "Foto auswählen",
|
|
"profilePhotoRemove": "Foto entfernen",
|
|
"profilePhotoHint": "Nur deine Chatpartner sehen es — Ende-zu-Ende-verschlüsselt wie Nachrichten. Standort und Fotodaten werden nicht gesendet.",
|
|
"profilePhotoFailed": "Foto konnte nicht gesetzt werden: {error}"
|
|
}
|