diff --git a/README.md b/README.md index 4cd7b2b787..28b40d0c1b 100644 --- a/README.md +++ b/README.md @@ -234,6 +234,8 @@ You can use SimpleX with your own servers and still communicate with people usin Recent and important updates: +[Mar 23, 2024. SimpleX network: real privacy and stable profits, non-profits for protocols, v5.6 released with quantum resistant e2e encryption and simple profile migration.](./blog/20240323-simplex-network-privacy-non-profit-v5-6-quantum-resistant-e2e-encryption-simple-migration.md) + [Mar 14, 2024. SimpleX Chat v5.6 beta: adding quantum resistance to Signal double ratchet algorithm.](./blog/20240314-simplex-chat-v5-6-quantum-resistance-signal-double-ratchet-algorithm.md) [Jan 24, 2024. SimpleX Chat: free infrastructure from Linode, v5.5 released with private notes, group history and a simpler UX to connect.](./blog/20240124-simplex-chat-infrastructure-costs-v5-5-simplex-ux-private-notes-group-history.md) @@ -377,8 +379,9 @@ Please also join [#simplex-devs](https://simplex.chat/contact#/?v=1-2&smp=smp%3A - ✅ Using mobile profiles from the desktop app. - ✅ Private notes. - ✅ Improve sending videos (including encryption of locally stored videos). +- ✅ Post-quantum resistant key exchange in double ratchet protocol. +- 🏗 Improve stability and reduce battery usage. - 🏗 Improve experience for the new users. -- 🏗 Post-quantum resistant key exchange in double ratchet protocol. - 🏗 Large groups, communities and public channels. - 🏗 Message delivery relay for senders (to conceal IP address from the recipients' servers and to reduce the traffic). - Privacy & security slider - a simple way to set all settings at once. diff --git a/apps/ios/Shared/Views/Chat/ChatInfoView.swift b/apps/ios/Shared/Views/Chat/ChatInfoView.swift index 86532605db..8b60fc7649 100644 --- a/apps/ios/Shared/Views/Chat/ChatInfoView.swift +++ b/apps/ios/Shared/Views/Chat/ChatInfoView.swift @@ -579,7 +579,7 @@ struct ChatInfoView: View { let ct = try await apiSetContactPQ(contact.apiId, true) contact = ct await MainActor.run { - chatModel.updateContact(contact) + chatModel.updateContact(ct) dismiss() } } catch let error { diff --git a/apps/ios/Shared/Views/Chat/ChatView.swift b/apps/ios/Shared/Views/Chat/ChatView.swift index 3ada57ef5d..468027ec8a 100644 --- a/apps/ios/Shared/Views/Chat/ChatView.swift +++ b/apps/ios/Shared/Views/Chat/ChatView.swift @@ -557,7 +557,12 @@ struct ChatView: View { chatItemView(ci, nil, prev) } } else { - chatItemView(chatItem, range, prevItem) + // Switch branches just to work around context menu problem when 'revealed' changes but size of item isn't + if revealed { + chatItemView(chatItem, range, prevItem) + } else { + chatItemView(chatItem, range, prevItem) + } } } } diff --git a/apps/ios/Shared/Views/Migration/MigrateFromDevice.swift b/apps/ios/Shared/Views/Migration/MigrateFromDevice.swift index b3b7269d22..645de4c3f8 100644 --- a/apps/ios/Shared/Views/Migration/MigrateFromDevice.swift +++ b/apps/ios/Shared/Views/Migration/MigrateFromDevice.swift @@ -150,7 +150,7 @@ struct MigrateFromDevice: View { return Alert( title: Text(title), message: Text(text), - primaryButton: .destructive(Text("Delete")) { + primaryButton: .default(Text("Delete")) { deleteChatAndDismiss() }, secondaryButton: .cancel() @@ -333,16 +333,16 @@ struct MigrateFromDevice: View { ZStack { List { Section { - Button(action: { alert = .deleteChat() }) { - settingsRow("trash.fill") { - Text("Delete database from this device").foregroundColor(.accentColor) - } - } Button(action: { alert = .startChat() }) { settingsRow("play.fill") { Text("Start chat").foregroundColor(.red) } } + Button(action: { alert = .deleteChat() }) { + settingsRow("trash.fill") { + Text("Delete database from this device").foregroundColor(.accentColor) + } + } } header: { Text("Migration complete") } footer: { diff --git a/apps/ios/Shared/Views/Onboarding/CreateProfile.swift b/apps/ios/Shared/Views/Onboarding/CreateProfile.swift index 3f835e25d4..0ee6baa765 100644 --- a/apps/ios/Shared/Views/Onboarding/CreateProfile.swift +++ b/apps/ios/Shared/Views/Onboarding/CreateProfile.swift @@ -166,8 +166,10 @@ private func createProfile(_ displayName: String, showAlert: (UserProfileAlert) ) let m = ChatModel.shared do { + AppChatState.shared.set(.active) m.currentUser = try apiCreateActiveUser(profile) - if m.users.isEmpty { + // .isEmpty check is redundant here, but it makes it clearer what is going on + if m.users.isEmpty || m.users.allSatisfy({ $0.user.hidden }) { try startChat() withAnimation { onboardingStageDefault.set(.step3_CreateSimpleXAddress) diff --git a/apps/ios/Shared/Views/UserSettings/UserProfilesView.swift b/apps/ios/Shared/Views/UserSettings/UserProfilesView.swift index f2cac59dae..af3d60c9c0 100644 --- a/apps/ios/Shared/Views/UserSettings/UserProfilesView.swift +++ b/apps/ios/Shared/Views/UserSettings/UserProfilesView.swift @@ -276,6 +276,7 @@ struct UserProfilesView: View { // Deleting the last visible user while having hidden one(s) try await deleteUser() try await changeActiveUserAsync_(nil, viewPwd: nil) + try? await stopChatAsync() await MainActor.run { onboardingStageDefault.set(.step1_SimpleXInfo) m.onboardingStage = .step1_SimpleXInfo diff --git a/apps/ios/SimpleX Localizations/de.xcloc/Localized Contents/de.xliff b/apps/ios/SimpleX Localizations/de.xcloc/Localized Contents/de.xliff index 6788b5e8e6..3ed8ecbaeb 100644 --- a/apps/ios/SimpleX Localizations/de.xcloc/Localized Contents/de.xliff +++ b/apps/ios/SimpleX Localizations/de.xcloc/Localized Contents/de.xliff @@ -109,6 +109,7 @@ %@ downloaded + %@ heruntergeladen No comment provided by engineer. @@ -133,6 +134,7 @@ %@ uploaded + %@ hochgeladen No comment provided by engineer. @@ -352,6 +354,7 @@ **Please note**: using the same database on two devices will break the decryption of messages from your connections, as a security protection. + **Bitte beachten Sie**: Aus Sicherheitsgründen wird die Nachrichtenentschlüsselung Ihrer Verbindungen abgebrochen, wenn Sie die gleiche Datenbank auf zwei Geräten nutzen. No comment provided by engineer. @@ -371,6 +374,7 @@ **Warning**: the archive will be removed. + **Warnung**: Das Archiv wird gelöscht. No comment provided by engineer. @@ -631,6 +635,7 @@ Admins can block a member for all. + Administratoren können für ein Mitglied alle Funktionen blockieren. No comment provided by engineer. @@ -690,6 +695,7 @@ All your contacts, conversations and files will be securely encrypted and uploaded in chunks to configured XFTP relays. + Alle Ihre Kontakte, Unterhaltungen und Dateien werden sicher verschlüsselt und in Daten-Paketen auf die konfigurierten XTFP-Server hochgeladen. No comment provided by engineer. @@ -819,6 +825,7 @@ App data migration + App-Daten-Migration No comment provided by engineer. @@ -858,14 +865,17 @@ Apply + Anwenden No comment provided by engineer. Archive and upload + Archivieren und Hochladen No comment provided by engineer. Archiving database + Datenbank wird archiviert No comment provided by engineer. @@ -1060,6 +1070,7 @@ Cancel migration + Migration abbrechen No comment provided by engineer. @@ -1165,6 +1176,7 @@ Chat migrated! + Chat wurde migriert! No comment provided by engineer. @@ -1189,6 +1201,7 @@ Choose _Migrate from another device_ on the new device and scan QR code. + Wählen Sie auf dem neuen Gerät _Von einem anderen Gerät migrieren_ und scannen Sie den QR-Code. No comment provided by engineer. @@ -1263,6 +1276,7 @@ Confirm network settings + Bestätigen Sie die Netzwerkeinstellungen No comment provided by engineer. @@ -1277,10 +1291,12 @@ Confirm that you remember database passphrase to migrate it. + Für die Migration bestätigen Sie bitte, dass Sie sich an das Datenbank-Passwort erinnern. No comment provided by engineer. Confirm upload + Hochladen bestätigen No comment provided by engineer. @@ -1544,6 +1560,7 @@ Das ist Ihr eigener Einmal-Link! Creating archive link + Archiv-Link erzeugen No comment provided by engineer. @@ -1768,6 +1785,7 @@ Das kann nicht rückgängig gemacht werden! Delete database from this device + Datenbank auf diesem Gerät löschen No comment provided by engineer. @@ -2062,6 +2080,7 @@ Das kann nicht rückgängig gemacht werden! Download failed + Herunterladen fehlgeschlagen No comment provided by engineer. @@ -2071,10 +2090,12 @@ Das kann nicht rückgängig gemacht werden! Downloading archive + Archiv wird heruntergeladen No comment provided by engineer. Downloading link details + Link-Details werden heruntergeladen No comment provided by engineer. @@ -2134,6 +2155,7 @@ Das kann nicht rückgängig gemacht werden! Enable in direct chats (BETA)! + Kann in direkten Chats aktiviert werden (BETA)! No comment provided by engineer. @@ -2253,6 +2275,7 @@ Das kann nicht rückgängig gemacht werden! Enter passphrase + Passwort eingeben No comment provided by engineer. @@ -2317,6 +2340,7 @@ Das kann nicht rückgängig gemacht werden! Error allowing contact PQ encryption + Fehler beim Zulassen der Kontakt-PQ-Verschlüsselung No comment provided by engineer. @@ -2411,6 +2435,7 @@ Das kann nicht rückgängig gemacht werden! Error downloading the archive + Fehler beim Herunterladen des Archivs No comment provided by engineer. @@ -2490,6 +2515,7 @@ Das kann nicht rückgängig gemacht werden! Error saving settings + Fehler beim Abspeichern der Einstellungen when migrating @@ -2564,10 +2590,12 @@ Das kann nicht rückgängig gemacht werden! Error uploading the archive + Fehler beim Hochladen des Archivs No comment provided by engineer. Error verifying passphrase: + Fehler bei der Überprüfung des Passworts: No comment provided by engineer. @@ -2622,6 +2650,7 @@ Das kann nicht rückgängig gemacht werden! Exported file doesn't exist + Die exportierte Datei ist nicht vorhanden No comment provided by engineer. @@ -2696,10 +2725,12 @@ Das kann nicht rückgängig gemacht werden! Finalize migration + Die Migration wird abgeschlossen No comment provided by engineer. Finalize migration on another device. + Die Migration auf dem anderen Gerät wird abgeschlossen. No comment provided by engineer. @@ -2994,6 +3025,7 @@ Das kann nicht rückgängig gemacht werden! Hungarian interface + Ungarische Bedienoberfläche No comment provided by engineer. @@ -3063,10 +3095,12 @@ Das kann nicht rückgängig gemacht werden! Import failed + Import ist fehlgeschlagen No comment provided by engineer. Importing archive + Archiv wird importiert No comment provided by engineer. @@ -3086,6 +3120,7 @@ Das kann nicht rückgängig gemacht werden! In order to continue, chat should be stopped. + Um fortzufahren, sollte der Chat beendet werden. No comment provided by engineer. @@ -3202,6 +3237,7 @@ Das kann nicht rückgängig gemacht werden! Invalid migration confirmation + Migrations-Bestätigung ungültig No comment provided by engineer. @@ -3574,6 +3610,7 @@ Das ist Ihr Link für die Gruppe %@! Message too large + Die Nachricht ist zu lang No comment provided by engineer. @@ -3593,34 +3630,42 @@ Das ist Ihr Link für die Gruppe %@! Messages, files and calls are protected by **end-to-end encryption** with perfect forward secrecy, repudiation and break-in recovery. + Nachrichten, Dateien und Anrufe sind durch **Ende-zu-Ende-Verschlüsselung** mit Perfect Forward Secrecy, Ablehnung und Einbruchs-Wiederherstellung geschützt. No comment provided by engineer. Messages, files and calls are protected by **quantum resistant e2e encryption** with perfect forward secrecy, repudiation and break-in recovery. + Nachrichten, Dateien und Anrufe sind durch **Quantum-resistente E2E-Verschlüsselung** mit Perfect Forward Secrecy, Ablehnung und Einbruchs-Wiederherstellung geschützt. No comment provided by engineer. Migrate device + Gerät migrieren No comment provided by engineer. Migrate from another device + Von einem anderen Gerät migrieren No comment provided by engineer. Migrate here + Hierher migrieren No comment provided by engineer. Migrate to another device + Auf ein anderes Gerät migrieren No comment provided by engineer. Migrate to another device via QR code. + Über einen QR-Code auf ein anderes Gerät migrieren. No comment provided by engineer. Migrating + Migrieren No comment provided by engineer. @@ -3630,6 +3675,7 @@ Das ist Ihr Link für die Gruppe %@! Migration complete + Migration abgeschlossen No comment provided by engineer. @@ -3993,6 +4039,7 @@ Das ist Ihr Link für die Gruppe %@! Open migration to another device + Migration auf ein anderes Gerät öffnen authentication reason @@ -4012,6 +4059,7 @@ Das ist Ihr Link für die Gruppe %@! Or paste archive link + Oder fügen Sie den Archiv-Link ein No comment provided by engineer. @@ -4021,6 +4069,7 @@ Das ist Ihr Link für die Gruppe %@! Or securely share this file link + Oder teilen Sie diesen Datei-Link sicher No comment provided by engineer. @@ -4110,6 +4159,7 @@ Das ist Ihr Link für die Gruppe %@! Picture-in-picture calls + Bild-in-Bild-Anrufe No comment provided by engineer. @@ -4134,6 +4184,7 @@ Das ist Ihr Link für die Gruppe %@! Please confirm that network settings are correct for this device. + Bitte bestätigen Sie, dass die Netzwerkeinstellungen auf diesem Gerät richtig sind. No comment provided by engineer. @@ -4195,6 +4246,7 @@ Fehler: %@ Post-quantum E2EE + Post-Quantum E2E-Verschlüsselung No comment provided by engineer. @@ -4334,10 +4386,12 @@ Fehler: %@ Push server + Push-Server No comment provided by engineer. Quantum resistant encryption + Quantum-resistente Verschlüsselung No comment provided by engineer. @@ -4527,10 +4581,12 @@ Fehler: %@ Repeat download + Herunterladen wiederholen No comment provided by engineer. Repeat import + Import wiederholen No comment provided by engineer. @@ -4540,6 +4596,7 @@ Fehler: %@ Repeat upload + Hochladen wiederholen No comment provided by engineer. @@ -4644,6 +4701,7 @@ Fehler: %@ Safer groups + Sicherere Gruppen No comment provided by engineer. @@ -5013,6 +5071,7 @@ Fehler: %@ Set passphrase + Passwort festlegen No comment provided by engineer. @@ -5072,6 +5131,7 @@ Fehler: %@ Show QR code + QR-Code anzeigen No comment provided by engineer. @@ -5216,6 +5276,7 @@ Fehler: %@ Stop chat + Chat beenden No comment provided by engineer. @@ -5260,6 +5321,7 @@ Fehler: %@ Stopping chat + Chat wird beendet No comment provided by engineer. @@ -5511,10 +5573,12 @@ Dies kann passieren, wenn es einen Fehler gegeben hat oder die Verbindung kompro This chat is protected by end-to-end encryption. + Dieser Chat ist durch Ende-zu-Ende-Verschlüsselung geschützt. E2EE info chat item This chat is protected by quantum resistant end-to-end encryption. + Dieser Chat ist durch Quantum-resistente Ende-zu-Ende-Verschlüsselung geschützt. E2EE info chat item @@ -5813,6 +5877,7 @@ Bitten Sie Ihren Kontakt darum einen weiteren Verbindungs-Link zu erzeugen, um s Upload failed + Hochladen fehlgeschlagen No comment provided by engineer. @@ -5822,6 +5887,7 @@ Bitten Sie Ihren Kontakt darum einen weiteren Verbindungs-Link zu erzeugen, um s Uploading archive + Archiv wird hochgeladen No comment provided by engineer. @@ -5876,6 +5942,7 @@ Bitten Sie Ihren Kontakt darum einen weiteren Verbindungs-Link zu erzeugen, um s Use the app while in the call. + Die App kann während eines Anrufs genutzt werden. No comment provided by engineer. @@ -5915,10 +5982,12 @@ Bitten Sie Ihren Kontakt darum einen weiteren Verbindungs-Link zu erzeugen, um s Verify database passphrase + Überprüfen Sie das Datenbank-Passwort No comment provided by engineer. Verify passphrase + Überprüfen Sie das Passwort No comment provided by engineer. @@ -6013,6 +6082,7 @@ Bitten Sie Ihren Kontakt darum einen weiteren Verbindungs-Link zu erzeugen, um s Warning: starting chat on multiple devices is not supported and will cause message delivery failures + Warnung: Das Starten des Chats auf mehreren Geräten wird nicht unterstützt und wird zu Fehlern bei der Nachrichtenübermittlung führen No comment provided by engineer. @@ -6037,6 +6107,7 @@ Bitten Sie Ihren Kontakt darum einen weiteren Verbindungs-Link zu erzeugen, um s Welcome message is too long + Die Begrüßungsmeldung ist zu lang No comment provided by engineer. @@ -6096,6 +6167,7 @@ Bitten Sie Ihren Kontakt darum einen weiteren Verbindungs-Link zu erzeugen, um s You **must not** use the same database on two devices. + Sie dürfen die selbe Datenbank **nicht** auf zwei Geräten nutzen. No comment provided by engineer. @@ -6187,6 +6259,7 @@ Verbindungsanfrage wiederholen? You can give another try. + Sie können es nochmal probieren. No comment provided by engineer. @@ -7094,6 +7167,7 @@ SimpleX-Server können Ihr Profil nicht einsehen. quantum resistant e2e encryption + Quantum-resistente E2E-Verschlüsselung chat item text @@ -7173,6 +7247,7 @@ SimpleX-Server können Ihr Profil nicht einsehen. standard end-to-end encryption + Standard-Ende-zu-Ende-Verschlüsselung chat item text diff --git a/apps/ios/SimpleX Localizations/es.xcloc/Localized Contents/es.xliff b/apps/ios/SimpleX Localizations/es.xcloc/Localized Contents/es.xliff index 9cc9583e2e..2f279a963c 100644 --- a/apps/ios/SimpleX Localizations/es.xcloc/Localized Contents/es.xliff +++ b/apps/ios/SimpleX Localizations/es.xcloc/Localized Contents/es.xliff @@ -109,6 +109,7 @@ %@ downloaded + %@ downloaded No comment provided by engineer. @@ -352,6 +353,7 @@ **Please note**: using the same database on two devices will break the decryption of messages from your connections, as a security protection. + **Tenga en cuenta**: usar la misma base de datos en dos dispositivos interrumpirá el descifrado de mensajes de sus conexiones, como protección de seguridad. No comment provided by engineer. @@ -371,6 +373,7 @@ **Warning**: the archive will be removed. + **Atención**: el archivo será eliminado. No comment provided by engineer. @@ -631,6 +634,7 @@ Admins can block a member for all. + Los admins pueden bloquear un miembro por todos. No comment provided by engineer. @@ -690,6 +694,7 @@ All your contacts, conversations and files will be securely encrypted and uploaded in chunks to configured XFTP relays. + Todos sus contactos, conversaciones y archivos se cifrarán de forma segura y se subirán en fragmentos hacia puntos XFTP configurados. No comment provided by engineer. @@ -819,6 +824,7 @@ App data migration + Migración de datos de la aplicación No comment provided by engineer. @@ -858,14 +864,17 @@ Apply + Aplicar No comment provided by engineer. Archive and upload + Archivar y transferir No comment provided by engineer. Archiving database + Archivando base de datos No comment provided by engineer. @@ -1060,6 +1069,7 @@ Cancel migration + Cancelar migración No comment provided by engineer. @@ -1165,6 +1175,7 @@ Chat migrated! + Chat transferido ! No comment provided by engineer. @@ -1189,6 +1200,7 @@ Choose _Migrate from another device_ on the new device and scan QR code. + Elija _Migrar desde otro dispositivo_ en el nuevo dispositivo y escanee el código QR. No comment provided by engineer. @@ -1263,6 +1275,7 @@ Confirm network settings + Confirmar los ajustes de red No comment provided by engineer. @@ -1277,6 +1290,7 @@ Confirm that you remember database passphrase to migrate it. + Confirme que recuerda la frase secreta de la base de datos para migrarla. No comment provided by engineer. diff --git a/apps/ios/SimpleX Localizations/fr.xcloc/Localized Contents/fr.xliff b/apps/ios/SimpleX Localizations/fr.xcloc/Localized Contents/fr.xliff index 70fb3145f9..7bdbefedb6 100644 --- a/apps/ios/SimpleX Localizations/fr.xcloc/Localized Contents/fr.xliff +++ b/apps/ios/SimpleX Localizations/fr.xcloc/Localized Contents/fr.xliff @@ -109,6 +109,7 @@ %@ downloaded + %@ téléchargé No comment provided by engineer. @@ -133,6 +134,7 @@ %@ uploaded + %@ envoyé No comment provided by engineer. @@ -352,6 +354,7 @@ **Please note**: using the same database on two devices will break the decryption of messages from your connections, as a security protection. + **Remarque** : l'utilisation de la même base de données sur deux appareils interrompt le déchiffrement des messages provenant de vos connexions, par mesure de sécurité. No comment provided by engineer. @@ -371,6 +374,7 @@ **Warning**: the archive will be removed. + **Avertissement** : l'archive sera supprimée. No comment provided by engineer. @@ -631,6 +635,7 @@ Admins can block a member for all. + Les admins peuvent bloquer un membre pour tous. No comment provided by engineer. @@ -690,6 +695,7 @@ All your contacts, conversations and files will be securely encrypted and uploaded in chunks to configured XFTP relays. + Tous vos contacts, conversations et fichiers seront chiffrés en toute sécurité et transférés par morceaux vers les relais XFTP configurés. No comment provided by engineer. @@ -819,6 +825,7 @@ App data migration + Transfert des données de l'application No comment provided by engineer. @@ -858,14 +865,17 @@ Apply + Appliquer No comment provided by engineer. Archive and upload + Archiver et transférer No comment provided by engineer. Archiving database + Archivage de la base de données No comment provided by engineer. @@ -1060,6 +1070,7 @@ Cancel migration + Annuler le transfert No comment provided by engineer. @@ -1165,6 +1176,7 @@ Chat migrated! + Messagerie transférée ! No comment provided by engineer. @@ -1189,6 +1201,7 @@ Choose _Migrate from another device_ on the new device and scan QR code. + Choisissez _Transferer depuis un autre appareil_ sur le nouvel appareil et scannez le code QR. No comment provided by engineer. @@ -1263,6 +1276,7 @@ Confirm network settings + Confirmer les paramètres réseau No comment provided by engineer. @@ -1277,10 +1291,12 @@ Confirm that you remember database passphrase to migrate it. + Confirmer que vous vous souvenez de la phrase secrète de la base de données pour la transférer. No comment provided by engineer. Confirm upload + Confirmer la transmission No comment provided by engineer. @@ -1544,6 +1560,7 @@ Il s'agit de votre propre lien unique ! Creating archive link + Création d'un lien d'archive No comment provided by engineer. @@ -1768,6 +1785,7 @@ Cette opération ne peut être annulée ! Delete database from this device + Supprimer la base de données de cet appareil No comment provided by engineer. @@ -2062,6 +2080,7 @@ Cette opération ne peut être annulée ! Download failed + Échec du téléchargement No comment provided by engineer. @@ -2071,10 +2090,12 @@ Cette opération ne peut être annulée ! Downloading archive + Téléchargement de l'archive No comment provided by engineer. Downloading link details + Téléchargement des détails du lien No comment provided by engineer. @@ -2134,6 +2155,7 @@ Cette opération ne peut être annulée ! Enable in direct chats (BETA)! + Activé dans les conversations directes (BETA) ! No comment provided by engineer. @@ -2253,6 +2275,7 @@ Cette opération ne peut être annulée ! Enter passphrase + Entrer la phrase secrète No comment provided by engineer. @@ -2317,6 +2340,7 @@ Cette opération ne peut être annulée ! Error allowing contact PQ encryption + Erreur lors de la négociation du chiffrement PQ No comment provided by engineer. @@ -2411,6 +2435,7 @@ Cette opération ne peut être annulée ! Error downloading the archive + Erreur lors du téléchargement de l'archive No comment provided by engineer. @@ -2490,6 +2515,7 @@ Cette opération ne peut être annulée ! Error saving settings + Erreur lors de l'enregistrement des paramètres when migrating @@ -2564,10 +2590,12 @@ Cette opération ne peut être annulée ! Error uploading the archive + Erreur lors de l'envoi de l'archive No comment provided by engineer. Error verifying passphrase: + Erreur lors de la vérification de la phrase secrète : No comment provided by engineer. @@ -2622,6 +2650,7 @@ Cette opération ne peut être annulée ! Exported file doesn't exist + Le fichier exporté n'existe pas No comment provided by engineer. @@ -2696,10 +2725,12 @@ Cette opération ne peut être annulée ! Finalize migration + Finaliser le transfert No comment provided by engineer. Finalize migration on another device. + Finalisez le transfert sur l'autre appareil. No comment provided by engineer. @@ -2994,6 +3025,7 @@ Cette opération ne peut être annulée ! Hungarian interface + Interface en hongrois No comment provided by engineer. @@ -3063,10 +3095,12 @@ Cette opération ne peut être annulée ! Import failed + Échec de l'importation No comment provided by engineer. Importing archive + Importation de l'archive No comment provided by engineer. @@ -3086,6 +3120,7 @@ Cette opération ne peut être annulée ! In order to continue, chat should be stopped. + Pour continuer, le chat doit être interrompu. No comment provided by engineer. @@ -3202,6 +3237,7 @@ Cette opération ne peut être annulée ! Invalid migration confirmation + Confirmation de migration invalide No comment provided by engineer. @@ -3574,6 +3610,7 @@ Voici votre lien pour le groupe %@ ! Message too large + Message trop volumineux No comment provided by engineer. @@ -3593,34 +3630,42 @@ Voici votre lien pour le groupe %@ ! Messages, files and calls are protected by **end-to-end encryption** with perfect forward secrecy, repudiation and break-in recovery. + Les messages, fichiers et appels sont protégés par un chiffrement **de bout en bout** avec une confidentialité persistante, une répudiation et une récupération en cas d'effraction. No comment provided by engineer. Messages, files and calls are protected by **quantum resistant e2e encryption** with perfect forward secrecy, repudiation and break-in recovery. + Les messages, fichiers et appels sont protégés par un chiffrement **2e2 résistant post-quantique** avec une confidentialité persistante, une répudiation et une récupération en cas d'effraction. No comment provided by engineer. Migrate device + Transférer l'appareil No comment provided by engineer. Migrate from another device + Transférer depuis un autre appareil No comment provided by engineer. Migrate here + Transférer ici No comment provided by engineer. Migrate to another device + Transférer vers un autre appareil No comment provided by engineer. Migrate to another device via QR code. + Transférer vers un autre appareil via un code QR. No comment provided by engineer. Migrating + Transfert No comment provided by engineer. @@ -3630,6 +3675,7 @@ Voici votre lien pour le groupe %@ ! Migration complete + Transfert terminé No comment provided by engineer. @@ -3993,6 +4039,7 @@ Voici votre lien pour le groupe %@ ! Open migration to another device + Ouvrir le transfert vers un autre appareil authentication reason @@ -4012,6 +4059,7 @@ Voici votre lien pour le groupe %@ ! Or paste archive link + Ou coller le lien de l'archive No comment provided by engineer. @@ -4021,6 +4069,7 @@ Voici votre lien pour le groupe %@ ! Or securely share this file link + Ou partagez en toute sécurité le lien de ce fichier No comment provided by engineer. @@ -4110,6 +4159,7 @@ Voici votre lien pour le groupe %@ ! Picture-in-picture calls + Appels picture-in-picture No comment provided by engineer. @@ -4134,6 +4184,7 @@ Voici votre lien pour le groupe %@ ! Please confirm that network settings are correct for this device. + Veuillez confirmer que les paramètres réseau de cet appareil sont corrects. No comment provided by engineer. @@ -4195,6 +4246,7 @@ Erreur : %@ Post-quantum E2EE + E2EE post-quantique No comment provided by engineer. @@ -4334,10 +4386,12 @@ Erreur : %@ Push server + Serveur Push No comment provided by engineer. Quantum resistant encryption + Chiffrement résistant post-quantique No comment provided by engineer. @@ -4527,10 +4581,12 @@ Erreur : %@ Repeat download + Répéter le téléchargement No comment provided by engineer. Repeat import + Répéter l'importation No comment provided by engineer. @@ -4540,6 +4596,7 @@ Erreur : %@ Repeat upload + Répéter l'envoi No comment provided by engineer. @@ -4644,6 +4701,7 @@ Erreur : %@ Safer groups + Groupes plus sûrs No comment provided by engineer. @@ -5013,6 +5071,7 @@ Erreur : %@ Set passphrase + Définir une phrase secrète No comment provided by engineer. @@ -5072,6 +5131,7 @@ Erreur : %@ Show QR code + Afficher le code QR No comment provided by engineer. @@ -5216,6 +5276,7 @@ Erreur : %@ Stop chat + Arrêter le chat No comment provided by engineer. @@ -5260,6 +5321,7 @@ Erreur : %@ Stopping chat + Arrêt du chat No comment provided by engineer. @@ -5511,10 +5573,12 @@ Cela peut se produire en raison d'un bug ou lorsque la connexion est compromise. This chat is protected by end-to-end encryption. + Cette discussion est protégée par un chiffrement de bout en bout. E2EE info chat item This chat is protected by quantum resistant end-to-end encryption. + Cette discussion est protégée par un chiffrement de bout en bout résistant post-quantique. E2EE info chat item @@ -5813,6 +5877,7 @@ Pour vous connecter, veuillez demander à votre contact de créer un autre lien Upload failed + Échec de l'envoi No comment provided by engineer. @@ -5822,6 +5887,7 @@ Pour vous connecter, veuillez demander à votre contact de créer un autre lien Uploading archive + Envoi de l'archive No comment provided by engineer. @@ -5876,6 +5942,7 @@ Pour vous connecter, veuillez demander à votre contact de créer un autre lien Use the app while in the call. + Utiliser l'application pendant l'appel. No comment provided by engineer. @@ -5915,10 +5982,12 @@ Pour vous connecter, veuillez demander à votre contact de créer un autre lien Verify database passphrase + Vérifier la phrase secrète de la base de données No comment provided by engineer. Verify passphrase + Vérifier la phrase secrète No comment provided by engineer. @@ -6013,6 +6082,7 @@ Pour vous connecter, veuillez demander à votre contact de créer un autre lien Warning: starting chat on multiple devices is not supported and will cause message delivery failures + Attention : démarrer une session de chat sur plusieurs appareils n'est pas pris en charge et entraînera des dysfonctionnements au niveau de la transmission des messages No comment provided by engineer. @@ -6037,6 +6107,7 @@ Pour vous connecter, veuillez demander à votre contact de créer un autre lien Welcome message is too long + Le message de bienvenue est trop long No comment provided by engineer. @@ -6096,6 +6167,7 @@ Pour vous connecter, veuillez demander à votre contact de créer un autre lien You **must not** use the same database on two devices. + Vous **ne devez pas** utiliser la même base de données sur deux appareils. No comment provided by engineer. @@ -6187,6 +6259,7 @@ Répéter la demande d'adhésion ? You can give another try. + Vous pouvez faire un nouvel essai. No comment provided by engineer. @@ -7094,6 +7167,7 @@ Les serveurs SimpleX ne peuvent pas voir votre profil. quantum resistant e2e encryption + chiffrement e2e résistant post-quantique chat item text @@ -7173,6 +7247,7 @@ Les serveurs SimpleX ne peuvent pas voir votre profil. standard end-to-end encryption + chiffrement de bout en bout standard chat item text diff --git a/apps/ios/SimpleX Localizations/it.xcloc/Localized Contents/it.xliff b/apps/ios/SimpleX Localizations/it.xcloc/Localized Contents/it.xliff index 30467415cf..4fe1a8da8e 100644 --- a/apps/ios/SimpleX Localizations/it.xcloc/Localized Contents/it.xliff +++ b/apps/ios/SimpleX Localizations/it.xcloc/Localized Contents/it.xliff @@ -109,6 +109,7 @@ %@ downloaded + %@ scaricati No comment provided by engineer. @@ -133,6 +134,7 @@ %@ uploaded + %@ caricati No comment provided by engineer. @@ -352,6 +354,7 @@ **Please note**: using the same database on two devices will break the decryption of messages from your connections, as a security protection. + **Nota bene**: usare lo stesso database su due dispositivi bloccherà la decifrazione dei messaggi dalle tue connessioni, come misura di sicurezza. No comment provided by engineer. @@ -371,6 +374,7 @@ **Warning**: the archive will be removed. + **Attenzione**: l'archivio verrà rimosso. No comment provided by engineer. @@ -631,6 +635,7 @@ Admins can block a member for all. + Gli amministratori possono bloccare un membro per tutti. No comment provided by engineer. @@ -690,6 +695,7 @@ All your contacts, conversations and files will be securely encrypted and uploaded in chunks to configured XFTP relays. + Tutti i tuoi contatti, le conversazioni e i file verranno criptati in modo sicuro e caricati in blocchi sui relay XFTP configurati. No comment provided by engineer. @@ -819,6 +825,7 @@ App data migration + Migrazione dati dell'app No comment provided by engineer. @@ -858,14 +865,17 @@ Apply + Applica No comment provided by engineer. Archive and upload + Archivia e carica No comment provided by engineer. Archiving database + Archiviazione del database No comment provided by engineer. @@ -1060,6 +1070,7 @@ Cancel migration + Annulla migrazione No comment provided by engineer. @@ -1165,6 +1176,7 @@ Chat migrated! + Chat migrata! No comment provided by engineer. @@ -1189,6 +1201,7 @@ Choose _Migrate from another device_ on the new device and scan QR code. + Scegli _Migra da un altro dispositivo_ sul nuovo dispositivo e scansione il codice QR. No comment provided by engineer. @@ -1263,6 +1276,7 @@ Confirm network settings + Conferma le impostazioni di rete No comment provided by engineer. @@ -1277,10 +1291,12 @@ Confirm that you remember database passphrase to migrate it. + Conferma che ricordi la password del database da migrare. No comment provided by engineer. Confirm upload + Conferma caricamento No comment provided by engineer. @@ -1544,6 +1560,7 @@ Questo è il tuo link una tantum! Creating archive link + Creazione link dell'archivio No comment provided by engineer. @@ -1768,6 +1785,7 @@ Non è reversibile! Delete database from this device + Elimina il database da questo dispositivo No comment provided by engineer. @@ -2062,6 +2080,7 @@ Non è reversibile! Download failed + Scaricamento fallito No comment provided by engineer. @@ -2071,10 +2090,12 @@ Non è reversibile! Downloading archive + Scaricamento archivio No comment provided by engineer. Downloading link details + Scaricamento dettagli del link No comment provided by engineer. @@ -2134,6 +2155,7 @@ Non è reversibile! Enable in direct chats (BETA)! + Attivala nelle chat dirette (BETA)! No comment provided by engineer. @@ -2253,6 +2275,7 @@ Non è reversibile! Enter passphrase + Inserisci password No comment provided by engineer. @@ -2317,6 +2340,7 @@ Non è reversibile! Error allowing contact PQ encryption + Errore nel consentire la crittografia PQ al contatto No comment provided by engineer. @@ -2411,6 +2435,7 @@ Non è reversibile! Error downloading the archive + Errore di scaricamento dell'archivio No comment provided by engineer. @@ -2490,6 +2515,7 @@ Non è reversibile! Error saving settings + Errore di salvataggio delle impostazioni when migrating @@ -2564,10 +2590,12 @@ Non è reversibile! Error uploading the archive + Errore di invio dell'archivio No comment provided by engineer. Error verifying passphrase: + Errore di verifica della password: No comment provided by engineer. @@ -2622,6 +2650,7 @@ Non è reversibile! Exported file doesn't exist + Il file esportato non esiste No comment provided by engineer. @@ -2696,10 +2725,12 @@ Non è reversibile! Finalize migration + Finalizza la migrazione No comment provided by engineer. Finalize migration on another device. + Finalizza la migrazione su un altro dispositivo. No comment provided by engineer. @@ -2994,6 +3025,7 @@ Non è reversibile! Hungarian interface + Interfaccia in ungherese No comment provided by engineer. @@ -3063,10 +3095,12 @@ Non è reversibile! Import failed + Importazione fallita No comment provided by engineer. Importing archive + Importazione archivio No comment provided by engineer. @@ -3086,6 +3120,7 @@ Non è reversibile! In order to continue, chat should be stopped. + Per continuare, la chat deve essere fermata. No comment provided by engineer. @@ -3202,6 +3237,7 @@ Non è reversibile! Invalid migration confirmation + Conferma di migrazione non valida No comment provided by engineer. @@ -3574,6 +3610,7 @@ Questo è il tuo link per il gruppo %@! Message too large + Messaggio troppo grande No comment provided by engineer. @@ -3593,34 +3630,42 @@ Questo è il tuo link per il gruppo %@! Messages, files and calls are protected by **end-to-end encryption** with perfect forward secrecy, repudiation and break-in recovery. + I messaggi, i file e le chiamate sono protetti da **crittografia end-to-end** con perfect forward secrecy, ripudio e recupero da intrusione. No comment provided by engineer. Messages, files and calls are protected by **quantum resistant e2e encryption** with perfect forward secrecy, repudiation and break-in recovery. + I messaggi, i file e le chiamate sono protetti da **crittografia e2e resistente al quantistico** con perfect forward secrecy, ripudio e recupero da intrusione. No comment provided by engineer. Migrate device + Migra dispositivo No comment provided by engineer. Migrate from another device + Migra da un altro dispositivo No comment provided by engineer. Migrate here + Migra qui No comment provided by engineer. Migrate to another device + Migra ad un altro dispositivo No comment provided by engineer. Migrate to another device via QR code. + Migra ad un altro dispositivo via codice QR. No comment provided by engineer. Migrating + Migrazione No comment provided by engineer. @@ -3630,6 +3675,7 @@ Questo è il tuo link per il gruppo %@! Migration complete + Migrazione completata No comment provided by engineer. @@ -3993,6 +4039,7 @@ Questo è il tuo link per il gruppo %@! Open migration to another device + Apri migrazione ad un altro dispositivo authentication reason @@ -4012,6 +4059,7 @@ Questo è il tuo link per il gruppo %@! Or paste archive link + O incolla il link dell'archivio No comment provided by engineer. @@ -4021,6 +4069,7 @@ Questo è il tuo link per il gruppo %@! Or securely share this file link + O condividi in modo sicuro questo link del file No comment provided by engineer. @@ -4110,6 +4159,7 @@ Questo è il tuo link per il gruppo %@! Picture-in-picture calls + Chiamate picture-in-picture No comment provided by engineer. @@ -4134,6 +4184,7 @@ Questo è il tuo link per il gruppo %@! Please confirm that network settings are correct for this device. + Conferma che le impostazioni di rete sono corrette per questo dispositivo. No comment provided by engineer. @@ -4195,6 +4246,7 @@ Errore: %@ Post-quantum E2EE + E2EE post-quantistica No comment provided by engineer. @@ -4334,10 +4386,12 @@ Errore: %@ Push server + Server push No comment provided by engineer. Quantum resistant encryption + Crittografia resistente al quantistico No comment provided by engineer. @@ -4527,10 +4581,12 @@ Errore: %@ Repeat download + Ripeti scaricamento No comment provided by engineer. Repeat import + Ripeti importazione No comment provided by engineer. @@ -4540,6 +4596,7 @@ Errore: %@ Repeat upload + Ripeti caricamento No comment provided by engineer. @@ -4644,6 +4701,7 @@ Errore: %@ Safer groups + Gruppi più sicuri No comment provided by engineer. @@ -5013,6 +5071,7 @@ Errore: %@ Set passphrase + Imposta password No comment provided by engineer. @@ -5072,6 +5131,7 @@ Errore: %@ Show QR code + Mostra codice QR No comment provided by engineer. @@ -5216,6 +5276,7 @@ Errore: %@ Stop chat + Ferma la chat No comment provided by engineer. @@ -5260,6 +5321,7 @@ Errore: %@ Stopping chat + Arresto della chat No comment provided by engineer. @@ -5511,10 +5573,12 @@ Può accadere a causa di qualche bug o quando la connessione è compromessa. This chat is protected by end-to-end encryption. + Questa chat è protetta da crittografia end-to-end. E2EE info chat item This chat is protected by quantum resistant end-to-end encryption. + Questa chat è protetta da crittografia end-to-end resistente al quantistico. E2EE info chat item @@ -5813,6 +5877,7 @@ Per connetterti, chiedi al tuo contatto di creare un altro link di connessione e Upload failed + Invio fallito No comment provided by engineer. @@ -5822,6 +5887,7 @@ Per connetterti, chiedi al tuo contatto di creare un altro link di connessione e Uploading archive + Invio dell'archivio No comment provided by engineer. @@ -5876,6 +5942,7 @@ Per connetterti, chiedi al tuo contatto di creare un altro link di connessione e Use the app while in the call. + Usa l'app mentre sei in chiamata. No comment provided by engineer. @@ -5915,10 +5982,12 @@ Per connetterti, chiedi al tuo contatto di creare un altro link di connessione e Verify database passphrase + Verifica password del database No comment provided by engineer. Verify passphrase + Verifica password No comment provided by engineer. @@ -5933,7 +6002,7 @@ Per connetterti, chiedi al tuo contatto di creare un altro link di connessione e Via secure quantum resistant protocol. - Tramite protocollo sicuro resistente alla quantistica. + Tramite protocollo sicuro resistente al quantistico. No comment provided by engineer. @@ -6013,6 +6082,7 @@ Per connetterti, chiedi al tuo contatto di creare un altro link di connessione e Warning: starting chat on multiple devices is not supported and will cause message delivery failures + Attenzione: avviare la chat su più dispositivi non è supportato e provocherà problemi di recapito dei messaggi No comment provided by engineer. @@ -6037,6 +6107,7 @@ Per connetterti, chiedi al tuo contatto di creare un altro link di connessione e Welcome message is too long + Il messaggio di benvenuto è troppo lungo No comment provided by engineer. @@ -6096,6 +6167,7 @@ Per connetterti, chiedi al tuo contatto di creare un altro link di connessione e You **must not** use the same database on two devices. + **Non devi** usare lo stesso database su due dispositivi. No comment provided by engineer. @@ -6187,6 +6259,7 @@ Ripetere la richiesta di ingresso? You can give another try. + Puoi fare un altro tentativo. No comment provided by engineer. @@ -7094,6 +7167,7 @@ I server di SimpleX non possono vedere il tuo profilo. quantum resistant e2e encryption + crittografia e2e resistente al quantistico chat item text @@ -7173,6 +7247,7 @@ I server di SimpleX non possono vedere il tuo profilo. standard end-to-end encryption + crittografia end-to-end standard chat item text diff --git a/apps/ios/SimpleX Localizations/nl.xcloc/Localized Contents/nl.xliff b/apps/ios/SimpleX Localizations/nl.xcloc/Localized Contents/nl.xliff index 105552ec84..61d91c8fbb 100644 --- a/apps/ios/SimpleX Localizations/nl.xcloc/Localized Contents/nl.xliff +++ b/apps/ios/SimpleX Localizations/nl.xcloc/Localized Contents/nl.xliff @@ -109,6 +109,7 @@ %@ downloaded + %@ gedownload No comment provided by engineer. @@ -133,6 +134,7 @@ %@ uploaded + %@ geüpload No comment provided by engineer. @@ -352,6 +354,7 @@ **Please note**: using the same database on two devices will break the decryption of messages from your connections, as a security protection. + **Let op**: als u dezelfde database op twee apparaten gebruikt, wordt de decodering van berichten van uw verbindingen verbroken, als veiligheidsmaatregel. No comment provided by engineer. @@ -371,6 +374,7 @@ **Warning**: the archive will be removed. + **Waarschuwing**: het archief wordt verwijderd. No comment provided by engineer. @@ -631,6 +635,7 @@ Admins can block a member for all. + Beheerders kunnen een lid voor iedereen blokkeren. No comment provided by engineer. @@ -690,6 +695,7 @@ All your contacts, conversations and files will be securely encrypted and uploaded in chunks to configured XFTP relays. + Al uw contacten, gesprekken en bestanden worden veilig gecodeerd en in delen geüpload naar geconfigureerde XFTP-relays. No comment provided by engineer. @@ -819,6 +825,7 @@ App data migration + Migratie van app-gegevens No comment provided by engineer. @@ -858,14 +865,17 @@ Apply + Toepassen No comment provided by engineer. Archive and upload + Archiveren en uploaden No comment provided by engineer. Archiving database + Database archiveren No comment provided by engineer. @@ -1060,6 +1070,7 @@ Cancel migration + Migratie annuleren No comment provided by engineer. @@ -1165,6 +1176,7 @@ Chat migrated! + Chat gemigreerd! No comment provided by engineer. @@ -1189,6 +1201,7 @@ Choose _Migrate from another device_ on the new device and scan QR code. + Kies _Migreren vanaf een ander apparaat_ op het nieuwe apparaat en scan de QR-code. No comment provided by engineer. @@ -1263,6 +1276,7 @@ Confirm network settings + Bevestig netwerk instellingen No comment provided by engineer. @@ -1277,10 +1291,12 @@ Confirm that you remember database passphrase to migrate it. + Bevestig dat u het wachtwoord voor de database onthoudt om deze te migreren. No comment provided by engineer. Confirm upload + Bevestig het uploaden No comment provided by engineer. @@ -1544,6 +1560,7 @@ Dit is uw eigen eenmalige link! Creating archive link + Archief link maken No comment provided by engineer. @@ -1768,6 +1785,7 @@ Dit kan niet ongedaan gemaakt worden! Delete database from this device + Verwijder de database van dit apparaat No comment provided by engineer. @@ -2062,6 +2080,7 @@ Dit kan niet ongedaan gemaakt worden! Download failed + Download mislukt No comment provided by engineer. @@ -2071,10 +2090,12 @@ Dit kan niet ongedaan gemaakt worden! Downloading archive + Archief downloaden No comment provided by engineer. Downloading link details + Link gegevens downloaden No comment provided by engineer. @@ -2134,6 +2155,7 @@ Dit kan niet ongedaan gemaakt worden! Enable in direct chats (BETA)! + Activeer in directe chats (BETA)! No comment provided by engineer. @@ -2253,6 +2275,7 @@ Dit kan niet ongedaan gemaakt worden! Enter passphrase + Voer het wachtwoord in No comment provided by engineer. @@ -2317,6 +2340,7 @@ Dit kan niet ongedaan gemaakt worden! Error allowing contact PQ encryption + Fout bij het toestaan van contact PQ-versleuteling No comment provided by engineer. @@ -2411,6 +2435,7 @@ Dit kan niet ongedaan gemaakt worden! Error downloading the archive + Fout bij het downloaden van het archief No comment provided by engineer. @@ -2490,6 +2515,7 @@ Dit kan niet ongedaan gemaakt worden! Error saving settings + Fout bij opslaan van instellingen when migrating @@ -2564,10 +2590,12 @@ Dit kan niet ongedaan gemaakt worden! Error uploading the archive + Fout bij het uploaden van het archief No comment provided by engineer. Error verifying passphrase: + Fout bij het verifiëren van het wachtwoord: No comment provided by engineer. @@ -2622,6 +2650,7 @@ Dit kan niet ongedaan gemaakt worden! Exported file doesn't exist + Geëxporteerd bestand bestaat niet No comment provided by engineer. @@ -2696,10 +2725,12 @@ Dit kan niet ongedaan gemaakt worden! Finalize migration + Voltooi de migratie No comment provided by engineer. Finalize migration on another device. + Voltooi de migratie op een ander apparaat. No comment provided by engineer. @@ -2994,6 +3025,7 @@ Dit kan niet ongedaan gemaakt worden! Hungarian interface + Hongaarse interface No comment provided by engineer. @@ -3063,10 +3095,12 @@ Dit kan niet ongedaan gemaakt worden! Import failed + Importeren is mislukt No comment provided by engineer. Importing archive + Archief importeren No comment provided by engineer. @@ -3086,6 +3120,7 @@ Dit kan niet ongedaan gemaakt worden! In order to continue, chat should be stopped. + Om verder te kunnen gaan, moet de chat worden gestopt. No comment provided by engineer. @@ -3202,6 +3237,7 @@ Dit kan niet ongedaan gemaakt worden! Invalid migration confirmation + Ongeldige migratie bevestiging No comment provided by engineer. @@ -3574,6 +3610,7 @@ Dit is jouw link voor groep %@! Message too large + Bericht te groot No comment provided by engineer. @@ -3593,34 +3630,42 @@ Dit is jouw link voor groep %@! Messages, files and calls are protected by **end-to-end encryption** with perfect forward secrecy, repudiation and break-in recovery. + Berichten, bestanden en oproepen worden beschermd door **end-to-end codering** met perfecte voorwaartse geheimhouding, afwijzing en inbraakherstel. No comment provided by engineer. Messages, files and calls are protected by **quantum resistant e2e encryption** with perfect forward secrecy, repudiation and break-in recovery. + Berichten, bestanden en oproepen worden beschermd door **kwantumbestendige e2e encryptie** met perfecte voorwaartse geheimhouding, afwijzing en inbraakherstel. No comment provided by engineer. Migrate device + Apparaat migreren No comment provided by engineer. Migrate from another device + Migreer vanaf een ander apparaat No comment provided by engineer. Migrate here + Migreer hierheen No comment provided by engineer. Migrate to another device + Migreer naar een ander apparaat No comment provided by engineer. Migrate to another device via QR code. + Migreer naar een ander apparaat via QR-code. No comment provided by engineer. Migrating + Migreren No comment provided by engineer. @@ -3630,6 +3675,7 @@ Dit is jouw link voor groep %@! Migration complete + Migratie voltooid No comment provided by engineer. @@ -3993,6 +4039,7 @@ Dit is jouw link voor groep %@! Open migration to another device + Open de migratie naar een ander apparaat authentication reason @@ -4012,6 +4059,7 @@ Dit is jouw link voor groep %@! Or paste archive link + Of plak de archief link No comment provided by engineer. @@ -4021,6 +4069,7 @@ Dit is jouw link voor groep %@! Or securely share this file link + Of deel deze bestands link veilig No comment provided by engineer. @@ -4110,6 +4159,7 @@ Dit is jouw link voor groep %@! Picture-in-picture calls + Beeld-in-beeld oproepen No comment provided by engineer. @@ -4134,6 +4184,7 @@ Dit is jouw link voor groep %@! Please confirm that network settings are correct for this device. + Controleer of de netwerk instellingen correct zijn voor dit apparaat. No comment provided by engineer. @@ -4195,6 +4246,7 @@ Fout: %@ Post-quantum E2EE + Post-quantum E2EE No comment provided by engineer. @@ -4334,10 +4386,12 @@ Fout: %@ Push server + Push server No comment provided by engineer. Quantum resistant encryption + quantum bestendige encryptie No comment provided by engineer. @@ -4527,10 +4581,12 @@ Fout: %@ Repeat download + Herhaal het downloaden No comment provided by engineer. Repeat import + Herhaal import No comment provided by engineer. @@ -4540,6 +4596,7 @@ Fout: %@ Repeat upload + Herhaal het uploaden No comment provided by engineer. @@ -4644,6 +4701,7 @@ Fout: %@ Safer groups + Veiligere groepen No comment provided by engineer. @@ -5013,6 +5071,7 @@ Fout: %@ Set passphrase + Wachtwoord instellen No comment provided by engineer. @@ -5072,6 +5131,7 @@ Fout: %@ Show QR code + Toon QR-code No comment provided by engineer. @@ -5216,6 +5276,7 @@ Fout: %@ Stop chat + Stop chat No comment provided by engineer. @@ -5260,6 +5321,7 @@ Fout: %@ Stopping chat + Chat stoppen No comment provided by engineer. @@ -5511,10 +5573,12 @@ Het kan gebeuren vanwege een bug of wanneer de verbinding is aangetast. This chat is protected by end-to-end encryption. + Deze chat is beveiligd met end-to-end codering. E2EE info chat item This chat is protected by quantum resistant end-to-end encryption. + Deze chat wordt beschermd door quantum bestendige end-to-end codering. E2EE info chat item @@ -5813,6 +5877,7 @@ Om verbinding te maken, vraagt u uw contact om een andere verbinding link te mak Upload failed + Upload mislukt No comment provided by engineer. @@ -5822,6 +5887,7 @@ Om verbinding te maken, vraagt u uw contact om een andere verbinding link te mak Uploading archive + Archief uploaden No comment provided by engineer. @@ -5876,6 +5942,7 @@ Om verbinding te maken, vraagt u uw contact om een andere verbinding link te mak Use the app while in the call. + Gebruik de app tijdens het gesprek. No comment provided by engineer. @@ -5915,10 +5982,12 @@ Om verbinding te maken, vraagt u uw contact om een andere verbinding link te mak Verify database passphrase + Controleer het wachtwoord van de database No comment provided by engineer. Verify passphrase + Controleer het wachtwoord No comment provided by engineer. @@ -6013,6 +6082,7 @@ Om verbinding te maken, vraagt u uw contact om een andere verbinding link te mak Warning: starting chat on multiple devices is not supported and will cause message delivery failures + Waarschuwing: het starten van de chat op meerdere apparaten wordt niet ondersteund en zal leiden tot mislukte bezorging van berichten No comment provided by engineer. @@ -6037,6 +6107,7 @@ Om verbinding te maken, vraagt u uw contact om een andere verbinding link te mak Welcome message is too long + Welkomstbericht is te lang No comment provided by engineer. @@ -6096,6 +6167,7 @@ Om verbinding te maken, vraagt u uw contact om een andere verbinding link te mak You **must not** use the same database on two devices. + U **mag** niet dezelfde database op twee apparaten gebruiken. No comment provided by engineer. @@ -6187,6 +6259,7 @@ Deelnameverzoek herhalen? You can give another try. + Je kunt het nog een keer proberen. No comment provided by engineer. @@ -7094,6 +7167,7 @@ SimpleX servers kunnen uw profiel niet zien. quantum resistant e2e encryption + quantum bestendige e2e-codering chat item text @@ -7173,6 +7247,7 @@ SimpleX servers kunnen uw profiel niet zien. standard end-to-end encryption + standaard end-to-end encryptie chat item text diff --git a/apps/ios/SimpleX Localizations/pl.xcloc/Localized Contents/pl.xliff b/apps/ios/SimpleX Localizations/pl.xcloc/Localized Contents/pl.xliff index 24e9d5dda2..f4d10b0dc0 100644 --- a/apps/ios/SimpleX Localizations/pl.xcloc/Localized Contents/pl.xliff +++ b/apps/ios/SimpleX Localizations/pl.xcloc/Localized Contents/pl.xliff @@ -109,6 +109,7 @@ %@ downloaded + %@ pobrane No comment provided by engineer. @@ -133,6 +134,7 @@ %@ uploaded + %@ wgrane No comment provided by engineer. @@ -352,6 +354,7 @@ **Please note**: using the same database on two devices will break the decryption of messages from your connections, as a security protection. + *Uwaga*: używanie tej samej bazy danych na dwóch urządzeniach zepsuje odszyfrowywanie wiadomości twoich połączeń, jako zabezpieczenie. No comment provided by engineer. @@ -371,6 +374,7 @@ **Warning**: the archive will be removed. + **Ostrzeżenie**: archiwum zostanie usunięte. No comment provided by engineer. @@ -631,6 +635,7 @@ Admins can block a member for all. + Administratorzy mogą blokować członka dla wszystkich. No comment provided by engineer. @@ -690,6 +695,7 @@ All your contacts, conversations and files will be securely encrypted and uploaded in chunks to configured XFTP relays. + Wszystkie twoje kontakty, konwersacje i pliki będą bezpiecznie szyfrowane i wgrywane w kawałkach do skonfigurowanych przekaźników XFTP. No comment provided by engineer. @@ -819,6 +825,7 @@ App data migration + Migracja danych aplikacji No comment provided by engineer. @@ -858,14 +865,17 @@ Apply + Zastosuj No comment provided by engineer. Archive and upload + Archiwizuj i prześlij No comment provided by engineer. Archiving database + Archiwizowanie bazy danych No comment provided by engineer. @@ -1060,6 +1070,7 @@ Cancel migration + Anuluj migrację No comment provided by engineer. @@ -1165,6 +1176,7 @@ Chat migrated! + Czat zmigrowany! No comment provided by engineer. @@ -1189,6 +1201,7 @@ Choose _Migrate from another device_ on the new device and scan QR code. + Wybierz _Zmigruj z innego urządzenia_ na nowym urządzeniu i zeskanuj kod QR. No comment provided by engineer. @@ -1263,6 +1276,7 @@ Confirm network settings + Potwierdź ustawienia sieciowe No comment provided by engineer. @@ -1277,10 +1291,12 @@ Confirm that you remember database passphrase to migrate it. + Potwierdź, że pamiętasz hasło do bazy danych, aby ją zmigrować. No comment provided by engineer. Confirm upload + Potwierdź wgranie No comment provided by engineer. @@ -1544,6 +1560,7 @@ To jest twój jednorazowy link! Creating archive link + Tworzenie linku archiwum No comment provided by engineer. @@ -1768,6 +1785,7 @@ To nie może być cofnięte! Delete database from this device + Usuń bazę danych z tego urządzenia No comment provided by engineer. @@ -2062,6 +2080,7 @@ To nie może być cofnięte! Download failed + Pobieranie nie udane No comment provided by engineer. @@ -2071,10 +2090,12 @@ To nie może być cofnięte! Downloading archive + Pobieranie archiwum No comment provided by engineer. Downloading link details + Pobieranie szczegółów linku No comment provided by engineer. @@ -2134,6 +2155,7 @@ To nie może być cofnięte! Enable in direct chats (BETA)! + Włącz w czatach bezpośrednich (BETA)! No comment provided by engineer. @@ -2253,6 +2275,7 @@ To nie może być cofnięte! Enter passphrase + Wprowadź hasło No comment provided by engineer. @@ -2317,6 +2340,7 @@ To nie może być cofnięte! Error allowing contact PQ encryption + Błąd pozwalania kontaktowi na szyfrowanie PQ No comment provided by engineer. @@ -2411,6 +2435,7 @@ To nie może być cofnięte! Error downloading the archive + Błąd pobierania archiwum No comment provided by engineer. @@ -2490,6 +2515,7 @@ To nie może być cofnięte! Error saving settings + Błąd zapisywania ustawień when migrating @@ -2564,10 +2590,12 @@ To nie może być cofnięte! Error uploading the archive + Błąd wgrywania archiwum No comment provided by engineer. Error verifying passphrase: + Błąd weryfikowania hasła: No comment provided by engineer. @@ -2622,6 +2650,7 @@ To nie może być cofnięte! Exported file doesn't exist + Wyeksportowany plik nie istnieje No comment provided by engineer. @@ -2696,10 +2725,12 @@ To nie może być cofnięte! Finalize migration + Dokończ migrację No comment provided by engineer. Finalize migration on another device. + Dokończ migrację na innym urządzeniu. No comment provided by engineer. @@ -2994,6 +3025,7 @@ To nie może być cofnięte! Hungarian interface + Węgierski interfejs No comment provided by engineer. @@ -3063,10 +3095,12 @@ To nie może być cofnięte! Import failed + Import nie udał się No comment provided by engineer. Importing archive + Importowanie archiwum No comment provided by engineer. @@ -3086,6 +3120,7 @@ To nie może być cofnięte! In order to continue, chat should be stopped. + Aby konturować, czat musi zostać zatrzymany. No comment provided by engineer. @@ -3202,6 +3237,7 @@ To nie może być cofnięte! Invalid migration confirmation + Nieprawidłowe potwierdzenie migracji No comment provided by engineer. @@ -3574,6 +3610,7 @@ To jest twój link do grupy %@! Message too large + Wiadomość jest zbyt duża No comment provided by engineer. @@ -3593,34 +3630,42 @@ To jest twój link do grupy %@! Messages, files and calls are protected by **end-to-end encryption** with perfect forward secrecy, repudiation and break-in recovery. + Wiadomości, pliki i połączenia są chronione przez **szyfrowanie end-to-end** z doskonałym utajnianiem z wyprzedzeniem i odzyskiem po złamaniu. No comment provided by engineer. Messages, files and calls are protected by **quantum resistant e2e encryption** with perfect forward secrecy, repudiation and break-in recovery. + Wiadomości, pliki i połączenia są chronione przez **kwantowo odporne szyfrowanie end-to-end** z doskonałym utajnianiem z wyprzedzeniem i odzyskiem po złamaniu. No comment provided by engineer. Migrate device + Zmigruj urządzenie No comment provided by engineer. Migrate from another device + Zmigruj z innego urządzenia No comment provided by engineer. Migrate here + Zmigruj tutaj No comment provided by engineer. Migrate to another device + Zmigruj do innego urządzenia No comment provided by engineer. Migrate to another device via QR code. + Zmigruj do innego urządzenia przez kod QR. No comment provided by engineer. Migrating + Migrowanie No comment provided by engineer. @@ -3630,6 +3675,7 @@ To jest twój link do grupy %@! Migration complete + Migracja zakończona No comment provided by engineer. @@ -3993,6 +4039,7 @@ To jest twój link do grupy %@! Open migration to another device + Otwórz migrację na innym urządzeniu authentication reason @@ -4012,6 +4059,7 @@ To jest twój link do grupy %@! Or paste archive link + Lub wklej link archiwum No comment provided by engineer. @@ -4021,6 +4069,7 @@ To jest twój link do grupy %@! Or securely share this file link + Lub bezpiecznie udostępnij ten link pliku No comment provided by engineer. @@ -4110,6 +4159,7 @@ To jest twój link do grupy %@! Picture-in-picture calls + Połączenia obraz-w-obrazie No comment provided by engineer. @@ -4134,6 +4184,7 @@ To jest twój link do grupy %@! Please confirm that network settings are correct for this device. + Proszę potwierdzić, że ustawienia sieciowe są prawidłowe dla tego urządzenia. No comment provided by engineer. @@ -4195,6 +4246,7 @@ Błąd: %@ Post-quantum E2EE + Postkwantowe E2EE No comment provided by engineer. @@ -4334,10 +4386,12 @@ Błąd: %@ Push server + Serwer Push No comment provided by engineer. Quantum resistant encryption + Kwantowo odporne szyfrowanie No comment provided by engineer. @@ -4527,10 +4581,12 @@ Błąd: %@ Repeat download + Powtórz pobieranie No comment provided by engineer. Repeat import + Powtórz importowanie No comment provided by engineer. @@ -4540,6 +4596,7 @@ Błąd: %@ Repeat upload + Powtórz wgrywanie No comment provided by engineer. @@ -4644,6 +4701,7 @@ Błąd: %@ Safer groups + Bezpieczniejsze grupy No comment provided by engineer. @@ -5013,6 +5071,7 @@ Błąd: %@ Set passphrase + Ustaw hasło No comment provided by engineer. @@ -5072,6 +5131,7 @@ Błąd: %@ Show QR code + Pokaż kod QR No comment provided by engineer. @@ -5216,6 +5276,7 @@ Błąd: %@ Stop chat + Zatrzymaj czat No comment provided by engineer. @@ -5260,6 +5321,7 @@ Błąd: %@ Stopping chat + Zatrzymywanie czatu No comment provided by engineer. @@ -5511,10 +5573,12 @@ Może się to zdarzyć z powodu jakiegoś błędu lub gdy połączenie jest skom This chat is protected by end-to-end encryption. + Ten czat jest chroniony przez szyfrowanie end-to-end. E2EE info chat item This chat is protected by quantum resistant end-to-end encryption. + Ten czat jest chroniony przez kwantowo odporne szyfrowanie end-to-end. E2EE info chat item @@ -5813,6 +5877,7 @@ Aby się połączyć, poproś Twój kontakt o utworzenie kolejnego linku połąc Upload failed + Wgrywanie nie udane No comment provided by engineer. @@ -5822,6 +5887,7 @@ Aby się połączyć, poproś Twój kontakt o utworzenie kolejnego linku połąc Uploading archive + Wgrywanie archiwum No comment provided by engineer. @@ -5876,6 +5942,7 @@ Aby się połączyć, poproś Twój kontakt o utworzenie kolejnego linku połąc Use the app while in the call. + Używaj aplikacji podczas połączenia. No comment provided by engineer. @@ -5915,10 +5982,12 @@ Aby się połączyć, poproś Twój kontakt o utworzenie kolejnego linku połąc Verify database passphrase + Zweryfikuj hasło bazy danych No comment provided by engineer. Verify passphrase + Zweryfikuj hasło No comment provided by engineer. @@ -6013,6 +6082,7 @@ Aby się połączyć, poproś Twój kontakt o utworzenie kolejnego linku połąc Warning: starting chat on multiple devices is not supported and will cause message delivery failures + Ostrzeżenie: rozpoczęcie czatu na wielu urządzeniach nie jest wspierane i spowoduje niepowodzenia dostarczania wiadomości No comment provided by engineer. @@ -6037,6 +6107,7 @@ Aby się połączyć, poproś Twój kontakt o utworzenie kolejnego linku połąc Welcome message is too long + Wiadomość powitalna jest zbyt długa No comment provided by engineer. @@ -6096,6 +6167,7 @@ Aby się połączyć, poproś Twój kontakt o utworzenie kolejnego linku połąc You **must not** use the same database on two devices. + **Nie możesz** używać tej samej bazy na dwóch urządzeniach. No comment provided by engineer. @@ -6187,6 +6259,7 @@ Powtórzyć prośbę dołączenia? You can give another try. + Możesz spróbować ponownie. No comment provided by engineer. @@ -7094,6 +7167,7 @@ Serwery SimpleX nie mogą zobaczyć Twojego profilu. quantum resistant e2e encryption + kwantowo odporne szyfrowanie e2e chat item text @@ -7173,6 +7247,7 @@ Serwery SimpleX nie mogą zobaczyć Twojego profilu. standard end-to-end encryption + standardowe szyfrowanie end-to-end chat item text diff --git a/apps/ios/SimpleX Localizations/ru.xcloc/Localized Contents/ru.xliff b/apps/ios/SimpleX Localizations/ru.xcloc/Localized Contents/ru.xliff index 2b0bf95f45..f78bdd0384 100644 --- a/apps/ios/SimpleX Localizations/ru.xcloc/Localized Contents/ru.xliff +++ b/apps/ios/SimpleX Localizations/ru.xcloc/Localized Contents/ru.xliff @@ -109,6 +109,7 @@ %@ downloaded + %@ загружено No comment provided by engineer. @@ -133,6 +134,7 @@ %@ uploaded + %@ загружено No comment provided by engineer. @@ -352,6 +354,7 @@ **Please note**: using the same database on two devices will break the decryption of messages from your connections, as a security protection. + **Обратите внимание**: использование одной и той же базы данных на двух устройствах нарушит расшифровку сообщений от ваших контактов, как свойство защиты соединений. No comment provided by engineer. @@ -371,6 +374,7 @@ **Warning**: the archive will be removed. + **Внимание**: архив будет удален. No comment provided by engineer. @@ -631,6 +635,7 @@ Admins can block a member for all. + Админы могут заблокировать члена группы. No comment provided by engineer. @@ -690,6 +695,7 @@ All your contacts, conversations and files will be securely encrypted and uploaded in chunks to configured XFTP relays. + Все ваши контакты, разговоры и файлы будут надежно зашифрованы и загружены на выбранные XFTP серверы. No comment provided by engineer. @@ -819,6 +825,7 @@ App data migration + Миграция данных No comment provided by engineer. @@ -858,14 +865,17 @@ Apply + Применить No comment provided by engineer. Archive and upload + Архивировать и загрузить No comment provided by engineer. Archiving database + Подготовка архива No comment provided by engineer. @@ -1060,6 +1070,7 @@ Cancel migration + Отменить миграцию No comment provided by engineer. @@ -1165,6 +1176,7 @@ Chat migrated! + Чат мигрирован! No comment provided by engineer. @@ -1189,6 +1201,7 @@ Choose _Migrate from another device_ on the new device and scan QR code. + Выберите _Мигрировать с другого устройства_ на новом устройстве и сосканируйте QR код. No comment provided by engineer. @@ -1263,6 +1276,7 @@ Confirm network settings + Подтвердите настройки сети No comment provided by engineer. @@ -1277,10 +1291,12 @@ Confirm that you remember database passphrase to migrate it. + Подтвердите, что Вы помните пароль базы данных для ее миграции. No comment provided by engineer. Confirm upload + Подтвердить загрузку No comment provided by engineer. @@ -1544,6 +1560,7 @@ This is your own one-time link! Creating archive link + Создание ссылки на архив No comment provided by engineer. @@ -1768,6 +1785,7 @@ This cannot be undone! Delete database from this device + Удалить базу данных с этого устройства No comment provided by engineer. @@ -2062,6 +2080,7 @@ This cannot be undone! Download failed + Ошибка загрузки No comment provided by engineer. @@ -2071,10 +2090,12 @@ This cannot be undone! Downloading archive + Загрузка архива No comment provided by engineer. Downloading link details + Загрузка ссылки архива No comment provided by engineer. @@ -2134,6 +2155,7 @@ This cannot be undone! Enable in direct chats (BETA)! + Включите для контактов (BETA)! No comment provided by engineer. @@ -2253,6 +2275,7 @@ This cannot be undone! Enter passphrase + Введите пароль No comment provided by engineer. @@ -2317,6 +2340,7 @@ This cannot be undone! Error allowing contact PQ encryption + Ошибка разрешения квантово-устойчивого шифрования No comment provided by engineer. @@ -2411,6 +2435,7 @@ This cannot be undone! Error downloading the archive + Ошибка загрузки архива No comment provided by engineer. @@ -2490,6 +2515,7 @@ This cannot be undone! Error saving settings + Ошибка сохранения настроек when migrating @@ -2564,10 +2590,12 @@ This cannot be undone! Error uploading the archive + Ошибка загрузки архива No comment provided by engineer. Error verifying passphrase: + Ошибка подтверждения пароля: No comment provided by engineer. @@ -2622,6 +2650,7 @@ This cannot be undone! Exported file doesn't exist + Экспортированный файл не существует No comment provided by engineer. @@ -2696,10 +2725,12 @@ This cannot be undone! Finalize migration + Завершить миграцию No comment provided by engineer. Finalize migration on another device. + Завершите миграцию на другом устройстве. No comment provided by engineer. @@ -2994,6 +3025,7 @@ This cannot be undone! Hungarian interface + Венгерский интерфейс No comment provided by engineer. @@ -3063,10 +3095,12 @@ This cannot be undone! Import failed + Ошибка импорта No comment provided by engineer. Importing archive + Импорт архива No comment provided by engineer. @@ -3086,6 +3120,7 @@ This cannot be undone! In order to continue, chat should be stopped. + Чтобы продолжить, чат должен быть остановлен. No comment provided by engineer. @@ -3202,6 +3237,7 @@ This cannot be undone! Invalid migration confirmation + Ошибка подтверждения миграции No comment provided by engineer. @@ -3574,6 +3610,7 @@ This is your link for group %@! Message too large + Сообщение слишком большое No comment provided by engineer. @@ -3593,34 +3630,42 @@ This is your link for group %@! Messages, files and calls are protected by **end-to-end encryption** with perfect forward secrecy, repudiation and break-in recovery. + Сообщения, файлы и звонки защищены **end-to-end шифрованием** с прямой секретностью (PFS), правдоподобным отрицанием и восстановлением от взлома. No comment provided by engineer. Messages, files and calls are protected by **quantum resistant e2e encryption** with perfect forward secrecy, repudiation and break-in recovery. + Сообщения, файлы и звонки защищены **квантово-устойчивым end-to-end шифрованием** с прямой секретностью (PFS), правдоподобным отрицанием и восстановлением от взлома. No comment provided by engineer. Migrate device + Мигрировать устройство No comment provided by engineer. Migrate from another device + Миграция с другого устройства No comment provided by engineer. Migrate here + Мигрировать сюда No comment provided by engineer. Migrate to another device + Мигрировать на другое устройство No comment provided by engineer. Migrate to another device via QR code. + Мигрируйте на другое устройство через QR код. No comment provided by engineer. Migrating + Миграция No comment provided by engineer. @@ -3630,6 +3675,7 @@ This is your link for group %@! Migration complete + Миграция завершена No comment provided by engineer. @@ -3993,6 +4039,7 @@ This is your link for group %@! Open migration to another device + Открытие миграции на другое устройство authentication reason @@ -4012,6 +4059,7 @@ This is your link for group %@! Or paste archive link + Или вставьте ссылку архива No comment provided by engineer. @@ -4021,6 +4069,7 @@ This is your link for group %@! Or securely share this file link + Или передайте эту ссылку No comment provided by engineer. @@ -4110,6 +4159,7 @@ This is your link for group %@! Picture-in-picture calls + Звонки с картинкой-в-картинке No comment provided by engineer. @@ -4134,6 +4184,7 @@ This is your link for group %@! Please confirm that network settings are correct for this device. + Пожалуйста, подтвердите, что настройки сети верны для этого устройства. No comment provided by engineer. @@ -4195,6 +4246,7 @@ Error: %@ Post-quantum E2EE + Квантово-устойчивое E2EE No comment provided by engineer. @@ -4334,10 +4386,12 @@ Error: %@ Push server + Сервер уведомлений No comment provided by engineer. Quantum resistant encryption + Квантово-устойчивое шифрование No comment provided by engineer. @@ -4527,10 +4581,12 @@ Error: %@ Repeat download + Повторить загрузку No comment provided by engineer. Repeat import + Повторить импорт No comment provided by engineer. @@ -4540,6 +4596,7 @@ Error: %@ Repeat upload + Повторить загрузку No comment provided by engineer. @@ -4644,6 +4701,7 @@ Error: %@ Safer groups + Более безопасные группы No comment provided by engineer. @@ -5013,6 +5071,7 @@ Error: %@ Set passphrase + Установить пароль No comment provided by engineer. @@ -5072,6 +5131,7 @@ Error: %@ Show QR code + Показать QR код No comment provided by engineer. @@ -5216,6 +5276,7 @@ Error: %@ Stop chat + Остановить чат No comment provided by engineer. @@ -5260,6 +5321,7 @@ Error: %@ Stopping chat + Остановка чата No comment provided by engineer. @@ -5511,10 +5573,12 @@ It can happen because of some bug or when the connection is compromised. This chat is protected by end-to-end encryption. + Чат защищен end-to-end шифрованием. E2EE info chat item This chat is protected by quantum resistant end-to-end encryption. + Чат защищен квантово-устойчивым end-to-end шифрованием. E2EE info chat item @@ -5813,6 +5877,7 @@ To connect, please ask your contact to create another connection link and check Upload failed + Ошибка загрузки No comment provided by engineer. @@ -5822,6 +5887,7 @@ To connect, please ask your contact to create another connection link and check Uploading archive + Загрузка архива No comment provided by engineer. @@ -5876,6 +5942,7 @@ To connect, please ask your contact to create another connection link and check Use the app while in the call. + Используйте приложение во время звонка. No comment provided by engineer. @@ -5915,10 +5982,12 @@ To connect, please ask your contact to create another connection link and check Verify database passphrase + Проверка пароля базы данных No comment provided by engineer. Verify passphrase + Проверить пароль No comment provided by engineer. @@ -6013,6 +6082,7 @@ To connect, please ask your contact to create another connection link and check Warning: starting chat on multiple devices is not supported and will cause message delivery failures + Внимание: запуск чата на нескольких устройствах не поддерживается и приведет к сбоям доставки сообщений. No comment provided by engineer. @@ -6037,6 +6107,7 @@ To connect, please ask your contact to create another connection link and check Welcome message is too long + Приветственное сообщение слишком длинное No comment provided by engineer. @@ -6096,6 +6167,7 @@ To connect, please ask your contact to create another connection link and check You **must not** use the same database on two devices. + Вы **не должны** использовать одну и ту же базу данных на двух устройствах. No comment provided by engineer. @@ -6187,6 +6259,7 @@ Repeat join request? You can give another try. + Вы можете попробовать еще раз. No comment provided by engineer. @@ -7094,6 +7167,7 @@ SimpleX серверы не могут получить доступ к Ваше quantum resistant e2e encryption + квантово-устойчивое e2e шифрование chat item text @@ -7173,6 +7247,7 @@ SimpleX серверы не могут получить доступ к Ваше standard end-to-end encryption + стандартное end-to-end шифрование chat item text diff --git a/apps/ios/SimpleX Localizations/tr.xcloc/Localized Contents/tr.xliff b/apps/ios/SimpleX Localizations/tr.xcloc/Localized Contents/tr.xliff index d5264200c3..51ef266312 100644 --- a/apps/ios/SimpleX Localizations/tr.xcloc/Localized Contents/tr.xliff +++ b/apps/ios/SimpleX Localizations/tr.xcloc/Localized Contents/tr.xliff @@ -109,6 +109,7 @@ %@ downloaded + %@ indirildi No comment provided by engineer. @@ -133,6 +134,7 @@ %@ uploaded + %@ yüklendi No comment provided by engineer. @@ -302,7 +304,7 @@ %u messages skipped. - %u mesaj atlandı + %u mesajlar atlandı. No comment provided by engineer. @@ -352,6 +354,7 @@ **Please note**: using the same database on two devices will break the decryption of messages from your connections, as a security protection. + **Lütfen dikkat**: Aynı veritabanını iki cihazda kullanmak, güvenlik koruması olarak bağlantılarınızdaki mesajların şifresinin çözülmesini engelleyecektir. No comment provided by engineer. @@ -371,6 +374,7 @@ **Warning**: the archive will be removed. + **Uyarı**: arşiv silinecektir. No comment provided by engineer. @@ -631,6 +635,7 @@ Admins can block a member for all. + Yöneticiler bir üyeyi tamamen engelleyebilirler. No comment provided by engineer. @@ -690,6 +695,7 @@ All your contacts, conversations and files will be securely encrypted and uploaded in chunks to configured XFTP relays. + Tüm kişileriniz, sohbetleriniz ve dosyalarınız güvenli bir şekilde şifrelenecek ve parçalar halinde yapılandırılmış XFTP rölelerine yüklenecektir. No comment provided by engineer. @@ -799,7 +805,7 @@ Always use relay - Her zaman yönlendirici kulan + Her zaman yönlendirici kullan No comment provided by engineer. @@ -819,6 +825,7 @@ App data migration + Uygulama verisi taşıma No comment provided by engineer. @@ -858,14 +865,17 @@ Apply + Uygula No comment provided by engineer. Archive and upload + Arşivle ve yükle No comment provided by engineer. Archiving database + Veritabanı arşivleniyor No comment provided by engineer. @@ -1060,6 +1070,7 @@ Cancel migration + Taşımayı iptal et No comment provided by engineer. @@ -1165,6 +1176,7 @@ Chat migrated! + Sohbet taşındı! No comment provided by engineer. @@ -1189,6 +1201,7 @@ Choose _Migrate from another device_ on the new device and scan QR code. + Yeni cihazda _Başka bir cihazdan taşı_ seçeneğini seçin ve QR kodunu tarayın. No comment provided by engineer. @@ -1263,6 +1276,7 @@ Confirm network settings + Ağ ayarlarını onaylayın No comment provided by engineer. @@ -1277,10 +1291,12 @@ Confirm that you remember database passphrase to migrate it. + Taşımak için veritabanı parolasını hatırladığınızı doğrulayın. No comment provided by engineer. Confirm upload + Yüklemeyi onayla No comment provided by engineer. @@ -1544,6 +1560,7 @@ Bu senin kendi tek kullanımlık bağlantın! Creating archive link + Arşiv bağlantısı oluşturuluyor No comment provided by engineer. @@ -1768,6 +1785,7 @@ Bu geri alınamaz! Delete database from this device + Veritabanını bu cihazdan sil No comment provided by engineer. @@ -2062,6 +2080,7 @@ Bu geri alınamaz! Download failed + Yükleme başarısız oldu No comment provided by engineer. @@ -2071,10 +2090,12 @@ Bu geri alınamaz! Downloading archive + Arşiv indiriliyor No comment provided by engineer. Downloading link details + Bağlantı detayları indiriliyor No comment provided by engineer. @@ -2134,6 +2155,7 @@ Bu geri alınamaz! Enable in direct chats (BETA)! + Doğrudan sohbetlerde etkinleştirin (BETA)! No comment provided by engineer. @@ -2253,6 +2275,7 @@ Bu geri alınamaz! Enter passphrase + Parolayı girin No comment provided by engineer. @@ -2411,6 +2434,7 @@ Bu geri alınamaz! Error downloading the archive + Arşiv indirilirken hata oluştu No comment provided by engineer. @@ -2490,6 +2514,7 @@ Bu geri alınamaz! Error saving settings + Ayarlar kaydedilirken hata oluştu when migrating @@ -2564,10 +2589,12 @@ Bu geri alınamaz! Error uploading the archive + Arşiv yüklenirken hata oluştu No comment provided by engineer. Error verifying passphrase: + Parola doğrulanırken hata oluştu: No comment provided by engineer. @@ -2622,6 +2649,7 @@ Bu geri alınamaz! Exported file doesn't exist + Dışa aktarılan dosya mevcut değil No comment provided by engineer. @@ -2696,10 +2724,12 @@ Bu geri alınamaz! Finalize migration + Taşıma işlemini sonlandır No comment provided by engineer. Finalize migration on another device. + Taşıma işlemini başka bir cihazda sonlandırın. No comment provided by engineer. @@ -3063,10 +3093,12 @@ Bu geri alınamaz! Import failed + İçe aktarma başarısız oldu No comment provided by engineer. Importing archive + Arşiv içe aktarılıyor No comment provided by engineer. @@ -3086,6 +3118,7 @@ Bu geri alınamaz! In order to continue, chat should be stopped. + Devam etmek için sohbetin durdurulması gerekiyor. No comment provided by engineer. @@ -3202,6 +3235,7 @@ Bu geri alınamaz! Invalid migration confirmation + Geçersiz taşıma onayı No comment provided by engineer. @@ -3574,6 +3608,7 @@ Bu senin grup için bağlantın %@! Message too large + Mesaj çok büyük No comment provided by engineer. @@ -5524,8 +5559,7 @@ Bazı hatalar nedeniyle veya bağlantı tehlikeye girdiğinde meydana gelebilir. This display name is invalid. Please choose another name. - Görünen ad geçerli değil. - Lütfen başka bir ad seç. + Bu görünen ad geçersiz. Lütfen başka bir isim seçin. No comment provided by engineer. @@ -6309,7 +6343,7 @@ Bağlantı isteği tekrarlansın mı? You rejected group invitation - Grup davetini reddettiniz. + Grup davetini reddettiniz No comment provided by engineer. diff --git a/apps/ios/SimpleX.xcodeproj/project.pbxproj b/apps/ios/SimpleX.xcodeproj/project.pbxproj index b2be41c947..9e43249650 100644 --- a/apps/ios/SimpleX.xcodeproj/project.pbxproj +++ b/apps/ios/SimpleX.xcodeproj/project.pbxproj @@ -36,11 +36,11 @@ 5C35CFC827B2782E00FB6C6D /* BGManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5C35CFC727B2782E00FB6C6D /* BGManager.swift */; }; 5C35CFCB27B2E91D00FB6C6D /* NtfManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5C35CFCA27B2E91D00FB6C6D /* NtfManager.swift */; }; 5C36027327F47AD5009F19D9 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5C36027227F47AD5009F19D9 /* AppDelegate.swift */; }; - 5C371E6A2BA9FDFA00100AD3 /* libHSsimplex-chat-5.6.0.3-4nskXXUBgQ3Bvo5v4RfruH.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 5C371E652BA9FDFA00100AD3 /* libHSsimplex-chat-5.6.0.3-4nskXXUBgQ3Bvo5v4RfruH.a */; }; - 5C371E6B2BA9FDFA00100AD3 /* libHSsimplex-chat-5.6.0.3-4nskXXUBgQ3Bvo5v4RfruH-ghc9.6.3.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 5C371E662BA9FDFA00100AD3 /* libHSsimplex-chat-5.6.0.3-4nskXXUBgQ3Bvo5v4RfruH-ghc9.6.3.a */; }; - 5C371E6C2BA9FDFA00100AD3 /* libgmpxx.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 5C371E672BA9FDFA00100AD3 /* libgmpxx.a */; }; - 5C371E6D2BA9FDFA00100AD3 /* libffi.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 5C371E682BA9FDFA00100AD3 /* libffi.a */; }; - 5C371E6E2BA9FDFA00100AD3 /* libgmp.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 5C371E692BA9FDFA00100AD3 /* libgmp.a */; }; + 5C371E742BACC5D600100AD3 /* libHSsimplex-chat-5.6.0.4-E0iWSIg8fcR48og4na41Dv-ghc9.6.3.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 5C371E6F2BACC5D600100AD3 /* libHSsimplex-chat-5.6.0.4-E0iWSIg8fcR48og4na41Dv-ghc9.6.3.a */; }; + 5C371E752BACC5D600100AD3 /* libgmpxx.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 5C371E702BACC5D600100AD3 /* libgmpxx.a */; }; + 5C371E762BACC5D600100AD3 /* libffi.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 5C371E712BACC5D600100AD3 /* libffi.a */; }; + 5C371E772BACC5D600100AD3 /* libgmp.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 5C371E722BACC5D600100AD3 /* libgmp.a */; }; + 5C371E782BACC5D600100AD3 /* libHSsimplex-chat-5.6.0.4-E0iWSIg8fcR48og4na41Dv.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 5C371E732BACC5D600100AD3 /* libHSsimplex-chat-5.6.0.4-E0iWSIg8fcR48og4na41Dv.a */; }; 5C3A88CE27DF50170060F1C2 /* DetermineWidth.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5C3A88CD27DF50170060F1C2 /* DetermineWidth.swift */; }; 5C3A88D127DF57800060F1C2 /* FramedItemView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5C3A88D027DF57800060F1C2 /* FramedItemView.swift */; }; 5C3CCFCC2AE6BD3100C3F0C3 /* ConnectDesktopView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5C3CCFCB2AE6BD3100C3F0C3 /* ConnectDesktopView.swift */; }; @@ -291,11 +291,11 @@ 5C371E4E2BA9AAA200100AD3 /* hu */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = hu; path = hu.lproj/Localizable.strings; sourceTree = ""; }; 5C371E4F2BA9AB6400100AD3 /* hu */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = hu; path = "hu.lproj/SimpleX--iOS--InfoPlist.strings"; sourceTree = ""; }; 5C371E502BA9AB6400100AD3 /* hu */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = hu; path = hu.lproj/InfoPlist.strings; sourceTree = ""; }; - 5C371E652BA9FDFA00100AD3 /* libHSsimplex-chat-5.6.0.3-4nskXXUBgQ3Bvo5v4RfruH.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = "libHSsimplex-chat-5.6.0.3-4nskXXUBgQ3Bvo5v4RfruH.a"; sourceTree = ""; }; - 5C371E662BA9FDFA00100AD3 /* libHSsimplex-chat-5.6.0.3-4nskXXUBgQ3Bvo5v4RfruH-ghc9.6.3.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = "libHSsimplex-chat-5.6.0.3-4nskXXUBgQ3Bvo5v4RfruH-ghc9.6.3.a"; sourceTree = ""; }; - 5C371E672BA9FDFA00100AD3 /* libgmpxx.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libgmpxx.a; sourceTree = ""; }; - 5C371E682BA9FDFA00100AD3 /* libffi.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libffi.a; sourceTree = ""; }; - 5C371E692BA9FDFA00100AD3 /* libgmp.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libgmp.a; sourceTree = ""; }; + 5C371E6F2BACC5D600100AD3 /* libHSsimplex-chat-5.6.0.4-E0iWSIg8fcR48og4na41Dv-ghc9.6.3.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = "libHSsimplex-chat-5.6.0.4-E0iWSIg8fcR48og4na41Dv-ghc9.6.3.a"; sourceTree = ""; }; + 5C371E702BACC5D600100AD3 /* libgmpxx.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libgmpxx.a; sourceTree = ""; }; + 5C371E712BACC5D600100AD3 /* libffi.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libffi.a; sourceTree = ""; }; + 5C371E722BACC5D600100AD3 /* libgmp.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libgmp.a; sourceTree = ""; }; + 5C371E732BACC5D600100AD3 /* libHSsimplex-chat-5.6.0.4-E0iWSIg8fcR48og4na41Dv.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = "libHSsimplex-chat-5.6.0.4-E0iWSIg8fcR48og4na41Dv.a"; sourceTree = ""; }; 5C3A88CD27DF50170060F1C2 /* DetermineWidth.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DetermineWidth.swift; sourceTree = ""; }; 5C3A88D027DF57800060F1C2 /* FramedItemView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = FramedItemView.swift; sourceTree = ""; }; 5C3CCFCB2AE6BD3100C3F0C3 /* ConnectDesktopView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ConnectDesktopView.swift; sourceTree = ""; }; @@ -523,12 +523,12 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 5C371E6A2BA9FDFA00100AD3 /* libHSsimplex-chat-5.6.0.3-4nskXXUBgQ3Bvo5v4RfruH.a in Frameworks */, - 5C371E6E2BA9FDFA00100AD3 /* libgmp.a in Frameworks */, - 5C371E6D2BA9FDFA00100AD3 /* libffi.a in Frameworks */, - 5C371E6C2BA9FDFA00100AD3 /* libgmpxx.a in Frameworks */, - 5C371E6B2BA9FDFA00100AD3 /* libHSsimplex-chat-5.6.0.3-4nskXXUBgQ3Bvo5v4RfruH-ghc9.6.3.a in Frameworks */, + 5C371E752BACC5D600100AD3 /* libgmpxx.a in Frameworks */, + 5C371E742BACC5D600100AD3 /* libHSsimplex-chat-5.6.0.4-E0iWSIg8fcR48og4na41Dv-ghc9.6.3.a in Frameworks */, 5CE2BA93284534B000EC33A6 /* libiconv.tbd in Frameworks */, + 5C371E782BACC5D600100AD3 /* libHSsimplex-chat-5.6.0.4-E0iWSIg8fcR48og4na41Dv.a in Frameworks */, + 5C371E762BACC5D600100AD3 /* libffi.a in Frameworks */, + 5C371E772BACC5D600100AD3 /* libgmp.a in Frameworks */, 5CE2BA94284534BB00EC33A6 /* libz.tbd in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; @@ -592,11 +592,11 @@ 5C764E5C279C70B7000C6508 /* Libraries */ = { isa = PBXGroup; children = ( - 5C371E682BA9FDFA00100AD3 /* libffi.a */, - 5C371E692BA9FDFA00100AD3 /* libgmp.a */, - 5C371E672BA9FDFA00100AD3 /* libgmpxx.a */, - 5C371E662BA9FDFA00100AD3 /* libHSsimplex-chat-5.6.0.3-4nskXXUBgQ3Bvo5v4RfruH-ghc9.6.3.a */, - 5C371E652BA9FDFA00100AD3 /* libHSsimplex-chat-5.6.0.3-4nskXXUBgQ3Bvo5v4RfruH.a */, + 5C371E712BACC5D600100AD3 /* libffi.a */, + 5C371E722BACC5D600100AD3 /* libgmp.a */, + 5C371E702BACC5D600100AD3 /* libgmpxx.a */, + 5C371E6F2BACC5D600100AD3 /* libHSsimplex-chat-5.6.0.4-E0iWSIg8fcR48og4na41Dv-ghc9.6.3.a */, + 5C371E732BACC5D600100AD3 /* libHSsimplex-chat-5.6.0.4-E0iWSIg8fcR48og4na41Dv.a */, ); path = Libraries; sourceTree = ""; @@ -1536,7 +1536,7 @@ CLANG_ENABLE_MODULES = YES; CODE_SIGN_ENTITLEMENTS = "SimpleX (iOS).entitlements"; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 203; + CURRENT_PROJECT_VERSION = 204; DEVELOPMENT_TEAM = 5NN7GUYB6T; ENABLE_BITCODE = NO; ENABLE_PREVIEWS = YES; @@ -1579,7 +1579,7 @@ CLANG_ENABLE_MODULES = YES; CODE_SIGN_ENTITLEMENTS = "SimpleX (iOS).entitlements"; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 203; + CURRENT_PROJECT_VERSION = 204; DEVELOPMENT_TEAM = 5NN7GUYB6T; ENABLE_BITCODE = NO; ENABLE_PREVIEWS = YES; @@ -1660,7 +1660,7 @@ CODE_SIGN_ENTITLEMENTS = "SimpleX NSE/SimpleX NSE.entitlements"; CODE_SIGN_IDENTITY = "Apple Development"; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 203; + CURRENT_PROJECT_VERSION = 204; DEVELOPMENT_TEAM = 5NN7GUYB6T; ENABLE_BITCODE = NO; GENERATE_INFOPLIST_FILE = YES; @@ -1692,7 +1692,7 @@ CODE_SIGN_ENTITLEMENTS = "SimpleX NSE/SimpleX NSE.entitlements"; CODE_SIGN_IDENTITY = "Apple Development"; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 203; + CURRENT_PROJECT_VERSION = 204; DEVELOPMENT_TEAM = 5NN7GUYB6T; ENABLE_BITCODE = NO; GENERATE_INFOPLIST_FILE = YES; @@ -1724,7 +1724,7 @@ APPLICATION_EXTENSION_API_ONLY = YES; CLANG_ENABLE_MODULES = YES; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 203; + CURRENT_PROJECT_VERSION = 204; DEFINES_MODULE = YES; DEVELOPMENT_TEAM = 5NN7GUYB6T; DYLIB_COMPATIBILITY_VERSION = 1; @@ -1770,7 +1770,7 @@ APPLICATION_EXTENSION_API_ONLY = YES; CLANG_ENABLE_MODULES = YES; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 203; + CURRENT_PROJECT_VERSION = 204; DEFINES_MODULE = YES; DEVELOPMENT_TEAM = 5NN7GUYB6T; DYLIB_COMPATIBILITY_VERSION = 1; diff --git a/apps/ios/SimpleXChat/AppGroup.swift b/apps/ios/SimpleXChat/AppGroup.swift index 4fbe78dc7a..df4de134c2 100644 --- a/apps/ios/SimpleXChat/AppGroup.swift +++ b/apps/ios/SimpleXChat/AppGroup.swift @@ -197,7 +197,7 @@ public let confirmDBUpgradesGroupDefault = BoolDefault(defaults: groupDefaults, public let callKitEnabledGroupDefault = BoolDefault(defaults: groupDefaults, forKey: GROUP_DEFAULT_CALL_KIT_ENABLED) -public let pqExperimentalEnabledDefault = BoolDefault(defaults: groupDefaults, forKey: GROUP_DEFAULT_PRIVACY_ENCRYPT_LOCAL_FILES) +public let pqExperimentalEnabledDefault = BoolDefault(defaults: groupDefaults, forKey: GROUP_DEFAULT_PQ_EXPERIMENTAL_ENABLED) public class DateDefault { var defaults: UserDefaults diff --git a/apps/ios/de.lproj/Localizable.strings b/apps/ios/de.lproj/Localizable.strings index 6eb9067684..7074a4ee27 100644 --- a/apps/ios/de.lproj/Localizable.strings +++ b/apps/ios/de.lproj/Localizable.strings @@ -85,6 +85,9 @@ /* No comment provided by engineer. */ "**Most private**: do not use SimpleX Chat notifications server, check messages periodically in the background (depends on how often you use the app)." = "**Beste Privatsphäre**: Es wird kein SimpleX-Chat-Benachrichtigungs-Server genutzt, Nachrichten werden in periodischen Abständen im Hintergrund geprüft (dies hängt davon ab, wie häufig Sie die App nutzen)."; +/* No comment provided by engineer. */ +"**Please note**: using the same database on two devices will break the decryption of messages from your connections, as a security protection." = "**Bitte beachten Sie**: Aus Sicherheitsgründen wird die Nachrichtenentschlüsselung Ihrer Verbindungen abgebrochen, wenn Sie die gleiche Datenbank auf zwei Geräten nutzen."; + /* No comment provided by engineer. */ "**Please note**: you will NOT be able to recover or change passphrase if you lose it." = "**Bitte beachten Sie**: Das Passwort kann NICHT wiederhergestellt oder geändert werden, wenn Sie es vergessen haben oder verlieren."; @@ -94,6 +97,9 @@ /* No comment provided by engineer. */ "**Warning**: Instant push notifications require passphrase saved in Keychain." = "**Warnung**: Sofortige Push-Benachrichtigungen erfordern die Eingabe eines Passworts, welches in Ihrem Schlüsselbund gespeichert ist."; +/* No comment provided by engineer. */ +"**Warning**: the archive will be removed." = "**Warnung**: Das Archiv wird gelöscht."; + /* No comment provided by engineer. */ "*bold*" = "\\*fett*"; @@ -136,6 +142,9 @@ /* No comment provided by engineer. */ "%@ connected" = "%@ wurde mit Ihnen verbunden"; +/* No comment provided by engineer. */ +"%@ downloaded" = "%@ heruntergeladen"; + /* notification title */ "%@ is connected!" = "%@ ist mit Ihnen verbunden!"; @@ -148,6 +157,9 @@ /* No comment provided by engineer. */ "%@ servers" = "%@-Server"; +/* No comment provided by engineer. */ +"%@ uploaded" = "%@ hochgeladen"; + /* notification title */ "%@ wants to connect!" = "%@ will sich mit Ihnen verbinden!"; @@ -377,6 +389,9 @@ /* member role */ "admin" = "Admin"; +/* No comment provided by engineer. */ +"Admins can block a member for all." = "Administratoren können für ein Mitglied alle Funktionen blockieren."; + /* No comment provided by engineer. */ "Admins can create the links to join groups." = "Administratoren können Links für den Beitritt zu Gruppen erzeugen."; @@ -416,6 +431,9 @@ /* No comment provided by engineer. */ "All your contacts will remain connected. Profile update will be sent to your contacts." = "Alle Ihre Kontakte bleiben verbunden. Es wird eine Profilaktualisierung an Ihre Kontakte gesendet."; +/* No comment provided by engineer. */ +"All your contacts, conversations and files will be securely encrypted and uploaded in chunks to configured XFTP relays." = "Alle Ihre Kontakte, Unterhaltungen und Dateien werden sicher verschlüsselt und in Daten-Paketen auf die konfigurierten XTFP-Server hochgeladen."; + /* No comment provided by engineer. */ "Allow" = "Erlauben"; @@ -497,6 +515,9 @@ /* No comment provided by engineer. */ "App build: %@" = "App Build: %@"; +/* No comment provided by engineer. */ +"App data migration" = "App-Daten-Migration"; + /* No comment provided by engineer. */ "App encrypts new local files (except videos)." = "Neue lokale Dateien (außer Video-Dateien) werden von der App verschlüsselt."; @@ -518,6 +539,15 @@ /* No comment provided by engineer. */ "Appearance" = "Erscheinungsbild"; +/* No comment provided by engineer. */ +"Apply" = "Anwenden"; + +/* No comment provided by engineer. */ +"Archive and upload" = "Archivieren und Hochladen"; + +/* No comment provided by engineer. */ +"Archiving database" = "Datenbank wird archiviert"; + /* No comment provided by engineer. */ "Attach" = "Anhängen"; @@ -665,6 +695,9 @@ /* No comment provided by engineer. */ "Cancel" = "Abbrechen"; +/* No comment provided by engineer. */ +"Cancel migration" = "Migration abbrechen"; + /* feature offered item */ "cancelled %@" = "abgebrochen %@"; @@ -744,6 +777,9 @@ /* No comment provided by engineer. */ "Chat is stopped. If you already used this database on another device, you should transfer it back before starting chat." = "Der Chat ist angehalten. Wenn Sie diese Datenbank bereits auf einem anderen Gerät genutzt haben, sollten Sie diese vor dem Starten des Chats wieder zurückspielen."; +/* No comment provided by engineer. */ +"Chat migrated!" = "Chat wurde migriert!"; + /* No comment provided by engineer. */ "Chat preferences" = "Chat-Präferenzen"; @@ -756,6 +792,9 @@ /* No comment provided by engineer. */ "Chinese and Spanish interface" = "Chinesische und spanische Bedienoberfläche"; +/* No comment provided by engineer. */ +"Choose _Migrate from another device_ on the new device and scan QR code." = "Wählen Sie auf dem neuen Gerät _Von einem anderen Gerät migrieren_ und scannen Sie den QR-Code."; + /* No comment provided by engineer. */ "Choose file" = "Datei auswählen"; @@ -801,6 +840,9 @@ /* No comment provided by engineer. */ "Confirm database upgrades" = "Datenbank-Aktualisierungen bestätigen"; +/* No comment provided by engineer. */ +"Confirm network settings" = "Bestätigen Sie die Netzwerkeinstellungen"; + /* No comment provided by engineer. */ "Confirm new passphrase…" = "Neues Passwort bestätigen…"; @@ -810,6 +852,12 @@ /* No comment provided by engineer. */ "Confirm password" = "Passwort bestätigen"; +/* No comment provided by engineer. */ +"Confirm that you remember database passphrase to migrate it." = "Für die Migration bestätigen Sie bitte, dass Sie sich an das Datenbank-Passwort erinnern."; + +/* No comment provided by engineer. */ +"Confirm upload" = "Hochladen bestätigen"; + /* server test step */ "Connect" = "Verbinden"; @@ -1008,6 +1056,9 @@ /* No comment provided by engineer. */ "Created on %@" = "Erstellt am %@"; +/* No comment provided by engineer. */ +"Creating archive link" = "Archiv-Link erzeugen"; + /* No comment provided by engineer. */ "Creating link…" = "Link wird erstellt…"; @@ -1155,6 +1206,9 @@ /* No comment provided by engineer. */ "Delete database" = "Datenbank löschen"; +/* No comment provided by engineer. */ +"Delete database from this device" = "Datenbank auf diesem Gerät löschen"; + /* server test step */ "Delete file" = "Datei löschen"; @@ -1347,9 +1401,18 @@ /* No comment provided by engineer. */ "Downgrade and open chat" = "Datenbank herabstufen und den Chat öffnen"; +/* No comment provided by engineer. */ +"Download failed" = "Herunterladen fehlgeschlagen"; + /* server test step */ "Download file" = "Datei herunterladen"; +/* No comment provided by engineer. */ +"Downloading archive" = "Archiv wird heruntergeladen"; + +/* No comment provided by engineer. */ +"Downloading link details" = "Link-Details werden heruntergeladen"; + /* No comment provided by engineer. */ "Duplicate display name!" = "Doppelter Anzeigename!"; @@ -1383,6 +1446,9 @@ /* No comment provided by engineer. */ "Enable for all" = "Für Alle aktivieren"; +/* No comment provided by engineer. */ +"Enable in direct chats (BETA)!" = "Kann in direkten Chats aktiviert werden (BETA)!"; + /* No comment provided by engineer. */ "Enable instant notifications?" = "Sofortige Benachrichtigungen aktivieren?"; @@ -1497,6 +1563,9 @@ /* No comment provided by engineer. */ "Enter Passcode" = "Zugangscode eingeben"; +/* No comment provided by engineer. */ +"Enter passphrase" = "Passwort eingeben"; + /* No comment provided by engineer. */ "Enter passphrase…" = "Passwort eingeben…"; @@ -1536,6 +1605,9 @@ /* No comment provided by engineer. */ "Error adding member(s)" = "Fehler beim Hinzufügen von Mitgliedern"; +/* No comment provided by engineer. */ +"Error allowing contact PQ encryption" = "Fehler beim Zulassen der Kontakt-PQ-Verschlüsselung"; + /* No comment provided by engineer. */ "Error changing address" = "Fehler beim Wechseln der Empfängeradresse"; @@ -1590,6 +1662,9 @@ /* No comment provided by engineer. */ "Error deleting user profile" = "Fehler beim Löschen des Benutzerprofils"; +/* No comment provided by engineer. */ +"Error downloading the archive" = "Fehler beim Herunterladen des Archivs"; + /* No comment provided by engineer. */ "Error enabling delivery receipts!" = "Fehler beim Aktivieren von Empfangsbestätigungen!"; @@ -1635,6 +1710,9 @@ /* No comment provided by engineer. */ "Error saving passphrase to keychain" = "Fehler beim Speichern des Passworts in den Schlüsselbund"; +/* when migrating */ +"Error saving settings" = "Fehler beim Abspeichern der Einstellungen"; + /* No comment provided by engineer. */ "Error saving user password" = "Fehler beim Speichern des Benutzer-Passworts"; @@ -1677,6 +1755,12 @@ /* No comment provided by engineer. */ "Error updating user privacy" = "Fehler beim Aktualisieren der Benutzer-Privatsphäre"; +/* No comment provided by engineer. */ +"Error uploading the archive" = "Fehler beim Hochladen des Archivs"; + +/* No comment provided by engineer. */ +"Error verifying passphrase:" = "Fehler bei der Überprüfung des Passworts:"; + /* No comment provided by engineer. */ "Error: " = "Fehler: "; @@ -1710,6 +1794,9 @@ /* No comment provided by engineer. */ "Exported database archive." = "Exportiertes Datenbankarchiv."; +/* No comment provided by engineer. */ +"Exported file doesn't exist" = "Die exportierte Datei ist nicht vorhanden"; + /* No comment provided by engineer. */ "Exporting database archive…" = "Exportieren des Datenbank-Archivs…"; @@ -1752,6 +1839,12 @@ /* No comment provided by engineer. */ "Filter unread and favorite chats." = "Nach ungelesenen und favorisierten Chats filtern."; +/* No comment provided by engineer. */ +"Finalize migration" = "Die Migration wird abgeschlossen"; + +/* No comment provided by engineer. */ +"Finalize migration on another device." = "Die Migration auf dem anderen Gerät wird abgeschlossen."; + /* No comment provided by engineer. */ "Finally, we have them! 🚀" = "Endlich haben wir sie! 🚀"; @@ -1935,6 +2028,9 @@ /* No comment provided by engineer. */ "How to use your servers" = "Wie Sie Ihre Server nutzen"; +/* No comment provided by engineer. */ +"Hungarian interface" = "Ungarische Bedienoberfläche"; + /* No comment provided by engineer. */ "ICE servers (one per line)" = "ICE-Server (einer pro Zeile)"; @@ -1974,6 +2070,12 @@ /* No comment provided by engineer. */ "Import database" = "Datenbank importieren"; +/* No comment provided by engineer. */ +"Import failed" = "Import ist fehlgeschlagen"; + +/* No comment provided by engineer. */ +"Importing archive" = "Archiv wird importiert"; + /* No comment provided by engineer. */ "Improved message delivery" = "Verbesserte Zustellung von Nachrichten"; @@ -1983,6 +2085,9 @@ /* No comment provided by engineer. */ "Improved server configuration" = "Verbesserte Serverkonfiguration"; +/* No comment provided by engineer. */ +"In order to continue, chat should be stopped." = "Um fortzufahren, sollte der Chat beendet werden."; + /* No comment provided by engineer. */ "In reply to" = "Als Antwort auf"; @@ -2067,6 +2172,9 @@ /* No comment provided by engineer. */ "Invalid link" = "Ungültiger Link"; +/* No comment provided by engineer. */ +"Invalid migration confirmation" = "Migrations-Bestätigung ungültig"; + /* No comment provided by engineer. */ "Invalid name!" = "Ungültiger Name!"; @@ -2331,6 +2439,9 @@ /* No comment provided by engineer. */ "Message text" = "Nachrichtentext"; +/* No comment provided by engineer. */ +"Message too large" = "Die Nachricht ist zu lang"; + /* No comment provided by engineer. */ "Messages" = "Nachrichten"; @@ -2340,9 +2451,36 @@ /* No comment provided by engineer. */ "Messages from %@ will be shown!" = "Die Nachrichten von %@ werden angezeigt!"; +/* No comment provided by engineer. */ +"Messages, files and calls are protected by **end-to-end encryption** with perfect forward secrecy, repudiation and break-in recovery." = "Nachrichten, Dateien und Anrufe sind durch **Ende-zu-Ende-Verschlüsselung** mit Perfect Forward Secrecy, Ablehnung und Einbruchs-Wiederherstellung geschützt."; + +/* No comment provided by engineer. */ +"Messages, files and calls are protected by **quantum resistant e2e encryption** with perfect forward secrecy, repudiation and break-in recovery." = "Nachrichten, Dateien und Anrufe sind durch **Quantum-resistente E2E-Verschlüsselung** mit Perfect Forward Secrecy, Ablehnung und Einbruchs-Wiederherstellung geschützt."; + +/* No comment provided by engineer. */ +"Migrate device" = "Gerät migrieren"; + +/* No comment provided by engineer. */ +"Migrate from another device" = "Von einem anderen Gerät migrieren"; + +/* No comment provided by engineer. */ +"Migrate here" = "Hierher migrieren"; + +/* No comment provided by engineer. */ +"Migrate to another device" = "Auf ein anderes Gerät migrieren"; + +/* No comment provided by engineer. */ +"Migrate to another device via QR code." = "Über einen QR-Code auf ein anderes Gerät migrieren."; + +/* No comment provided by engineer. */ +"Migrating" = "Migrieren"; + /* No comment provided by engineer. */ "Migrating database archive…" = "Datenbank-Archiv wird migriert…"; +/* No comment provided by engineer. */ +"Migration complete" = "Migration abgeschlossen"; + /* No comment provided by engineer. */ "Migration error:" = "Fehler bei der Migration:"; @@ -2600,6 +2738,9 @@ /* No comment provided by engineer. */ "Open group" = "Gruppe öffnen"; +/* authentication reason */ +"Open migration to another device" = "Migration auf ein anderes Gerät öffnen"; + /* No comment provided by engineer. */ "Open Settings" = "Geräte-Einstellungen öffnen"; @@ -2612,9 +2753,15 @@ /* No comment provided by engineer. */ "Opening app…" = "App wird geöffnet…"; +/* No comment provided by engineer. */ +"Or paste archive link" = "Oder fügen Sie den Archiv-Link ein"; + /* No comment provided by engineer. */ "Or scan QR code" = "Oder den QR-Code scannen"; +/* No comment provided by engineer. */ +"Or securely share this file link" = "Oder teilen Sie diesen Datei-Link sicher"; + /* No comment provided by engineer. */ "Or show this code" = "Oder diesen QR-Code anzeigen"; @@ -2666,6 +2813,9 @@ /* message decrypt error item */ "Permanent decryption error" = "Entschlüsselungsfehler"; +/* No comment provided by engineer. */ +"Picture-in-picture calls" = "Bild-in-Bild-Anrufe"; + /* No comment provided by engineer. */ "PING count" = "PING-Zähler"; @@ -2684,6 +2834,9 @@ /* No comment provided by engineer. */ "Please check yours and your contact preferences." = "Bitte überprüfen sie sowohl Ihre, als auch die Präferenzen Ihres Kontakts."; +/* No comment provided by engineer. */ +"Please confirm that network settings are correct for this device." = "Bitte bestätigen Sie, dass die Netzwerkeinstellungen auf diesem Gerät richtig sind."; + /* No comment provided by engineer. */ "Please contact developers.\nError: %@" = "Bitte nehmen Sie Kontakt mit den Entwicklern auf.\nFehler: %@"; @@ -2717,6 +2870,9 @@ /* server test error */ "Possibly, certificate fingerprint in server address is incorrect" = "Der Fingerabdruck des Zertifikats in der Serveradresse ist wahrscheinlich ungültig"; +/* No comment provided by engineer. */ +"Post-quantum E2EE" = "Post-Quantum E2E-Verschlüsselung"; + /* No comment provided by engineer. */ "Preserve the last message draft, with attachments." = "Den letzten Nachrichtenentwurf, auch mit seinen Anhängen, aufbewahren."; @@ -2798,6 +2954,15 @@ /* No comment provided by engineer. */ "Push notifications" = "Push-Benachrichtigungen"; +/* No comment provided by engineer. */ +"Push server" = "Push-Server"; + +/* chat item text */ +"quantum resistant e2e encryption" = "Quantum-resistente E2E-Verschlüsselung"; + +/* No comment provided by engineer. */ +"Quantum resistant encryption" = "Quantum-resistente Verschlüsselung"; + /* No comment provided by engineer. */ "Rate the app" = "Bewerten Sie die App"; @@ -2933,9 +3098,18 @@ /* No comment provided by engineer. */ "Repeat connection request?" = "Verbindungsanfrage wiederholen?"; +/* No comment provided by engineer. */ +"Repeat download" = "Herunterladen wiederholen"; + +/* No comment provided by engineer. */ +"Repeat import" = "Import wiederholen"; + /* No comment provided by engineer. */ "Repeat join request?" = "Verbindungsanfrage wiederholen?"; +/* No comment provided by engineer. */ +"Repeat upload" = "Hochladen wiederholen"; + /* chat item action */ "Reply" = "Antwort"; @@ -2993,6 +3167,9 @@ /* No comment provided by engineer. */ "Run chat" = "Chat starten"; +/* No comment provided by engineer. */ +"Safer groups" = "Sicherere Gruppen"; + /* chat item action */ "Save" = "Speichern"; @@ -3233,6 +3410,9 @@ /* No comment provided by engineer. */ "Set passcode" = "Zugangscode einstellen"; +/* No comment provided by engineer. */ +"Set passphrase" = "Passwort festlegen"; + /* No comment provided by engineer. */ "Set passphrase to export" = "Passwort für den Export festlegen"; @@ -3278,6 +3458,9 @@ /* No comment provided by engineer. */ "Show preview" = "Vorschau anzeigen"; +/* No comment provided by engineer. */ +"Show QR code" = "QR-Code anzeigen"; + /* No comment provided by engineer. */ "Show:" = "Anzeigen:"; @@ -3338,6 +3521,9 @@ /* notification title */ "Somebody" = "Jemand"; +/* chat item text */ +"standard end-to-end encryption" = "Standard-Ende-zu-Ende-Verschlüsselung"; + /* No comment provided by engineer. */ "Start chat" = "Starten Sie den Chat"; @@ -3353,6 +3539,9 @@ /* No comment provided by engineer. */ "Stop" = "Beenden"; +/* No comment provided by engineer. */ +"Stop chat" = "Chat beenden"; + /* No comment provided by engineer. */ "Stop chat to enable database actions" = "Chat beenden, um Datenbankaktionen zu erlauben"; @@ -3380,6 +3569,9 @@ /* authentication reason */ "Stop SimpleX" = "Stoppen Sie SimpleX"; +/* No comment provided by engineer. */ +"Stopping chat" = "Chat wird beendet"; + /* No comment provided by engineer. */ "strike" = "durchstreichen"; @@ -3530,6 +3722,12 @@ /* No comment provided by engineer. */ "This action cannot be undone - your profile, contacts, messages and files will be irreversibly lost." = "Diese Aktion kann nicht rückgängig gemacht werden! Ihr Profil und Ihre Kontakte, Nachrichten und Dateien gehen unwiderruflich verloren."; +/* E2EE info chat item */ +"This chat is protected by end-to-end encryption." = "Dieser Chat ist durch Ende-zu-Ende-Verschlüsselung geschützt."; + +/* E2EE info chat item */ +"This chat is protected by quantum resistant end-to-end encryption." = "Dieser Chat ist durch Quantum-resistente Ende-zu-Ende-Verschlüsselung geschützt."; + /* notification title */ "this contact" = "Dieser Kontakt"; @@ -3722,9 +3920,15 @@ /* No comment provided by engineer. */ "Upgrade and open chat" = "Aktualisieren und den Chat öffnen"; +/* No comment provided by engineer. */ +"Upload failed" = "Hochladen fehlgeschlagen"; + /* server test step */ "Upload file" = "Datei hochladen"; +/* No comment provided by engineer. */ +"Uploading archive" = "Archiv wird hochgeladen"; + /* No comment provided by engineer. */ "Use .onion hosts" = "Verwende .onion-Hosts"; @@ -3755,6 +3959,9 @@ /* No comment provided by engineer. */ "Use SimpleX Chat servers?" = "Verwenden Sie SimpleX-Chat-Server?"; +/* No comment provided by engineer. */ +"Use the app while in the call." = "Die App kann während eines Anrufs genutzt werden."; + /* No comment provided by engineer. */ "User profile" = "Benutzerprofil"; @@ -3782,6 +3989,12 @@ /* No comment provided by engineer. */ "Verify connections" = "Verbindungen überprüfen"; +/* No comment provided by engineer. */ +"Verify database passphrase" = "Überprüfen Sie das Datenbank-Passwort"; + +/* No comment provided by engineer. */ +"Verify passphrase" = "Überprüfen Sie das Passwort"; + /* No comment provided by engineer. */ "Verify security code" = "Sicherheitscode überprüfen"; @@ -3860,6 +4073,9 @@ /* No comment provided by engineer. */ "wants to connect to you!" = "möchte sich mit Ihnen verbinden!"; +/* No comment provided by engineer. */ +"Warning: starting chat on multiple devices is not supported and will cause message delivery failures" = "Warnung: Das Starten des Chats auf mehreren Geräten wird nicht unterstützt und wird zu Fehlern bei der Nachrichtenübermittlung führen"; + /* No comment provided by engineer. */ "Warning: you may lose some data!" = "Warnung: Sie könnten einige Daten verlieren!"; @@ -3875,6 +4091,9 @@ /* No comment provided by engineer. */ "Welcome message" = "Begrüßungsmeldung"; +/* No comment provided by engineer. */ +"Welcome message is too long" = "Die Begrüßungsmeldung ist zu lang"; + /* No comment provided by engineer. */ "What's new" = "Was ist neu"; @@ -3911,6 +4130,9 @@ /* No comment provided by engineer. */ "You" = "Profil"; +/* No comment provided by engineer. */ +"You **must not** use the same database on two devices." = "Sie dürfen die selbe Datenbank **nicht** auf zwei Geräten nutzen."; + /* No comment provided by engineer. */ "You accepted connection" = "Sie haben die Verbindung akzeptiert"; @@ -3971,6 +4193,9 @@ /* No comment provided by engineer. */ "You can enable them later via app Privacy & Security settings." = "Sie können diese später in den Datenschutz & Sicherheits-Einstellungen der App aktivieren."; +/* No comment provided by engineer. */ +"You can give another try." = "Sie können es nochmal probieren."; + /* No comment provided by engineer. */ "You can hide or mute a user profile - swipe it to the right." = "Sie können ein Benutzerprofil verbergen oder stummschalten - wischen Sie es nach rechts."; diff --git a/apps/ios/es.lproj/Localizable.strings b/apps/ios/es.lproj/Localizable.strings index ad252b0a88..7a60858bc1 100644 --- a/apps/ios/es.lproj/Localizable.strings +++ b/apps/ios/es.lproj/Localizable.strings @@ -85,6 +85,9 @@ /* No comment provided by engineer. */ "**Most private**: do not use SimpleX Chat notifications server, check messages periodically in the background (depends on how often you use the app)." = "**Más privado**: no se usa el servidor de notificaciones de SimpleX Chat, los mensajes se comprueban periódicamente en segundo plano (dependiendo de la frecuencia con la que utilices la aplicación)."; +/* No comment provided by engineer. */ +"**Please note**: using the same database on two devices will break the decryption of messages from your connections, as a security protection." = "**Tenga en cuenta**: usar la misma base de datos en dos dispositivos interrumpirá el descifrado de mensajes de sus conexiones, como protección de seguridad."; + /* No comment provided by engineer. */ "**Please note**: you will NOT be able to recover or change passphrase if you lose it." = "**Atención**: NO podrás recuperar o cambiar la contraseña si la pierdes."; @@ -94,6 +97,9 @@ /* No comment provided by engineer. */ "**Warning**: Instant push notifications require passphrase saved in Keychain." = "**Advertencia**: Las notificaciones automáticas instantáneas requieren una contraseña guardada en Keychain."; +/* No comment provided by engineer. */ +"**Warning**: the archive will be removed." = "**Atención**: el archivo será eliminado."; + /* No comment provided by engineer. */ "*bold*" = "\\*bold*"; @@ -136,6 +142,9 @@ /* No comment provided by engineer. */ "%@ connected" = "%@ conectado"; +/* No comment provided by engineer. */ +"%@ downloaded" = "%@ downloaded"; + /* notification title */ "%@ is connected!" = "%@ ¡está conectado!"; @@ -377,6 +386,9 @@ /* member role */ "admin" = "administrador"; +/* No comment provided by engineer. */ +"Admins can block a member for all." = "Los admins pueden bloquear un miembro por todos."; + /* No comment provided by engineer. */ "Admins can create the links to join groups." = "Los administradores pueden crear enlaces para unirse a grupos."; @@ -416,6 +428,9 @@ /* No comment provided by engineer. */ "All your contacts will remain connected. Profile update will be sent to your contacts." = "Todos tus contactos permanecerán conectados. La actualización del perfil se enviará a tus contactos."; +/* No comment provided by engineer. */ +"All your contacts, conversations and files will be securely encrypted and uploaded in chunks to configured XFTP relays." = "Todos sus contactos, conversaciones y archivos se cifrarán de forma segura y se subirán en fragmentos hacia puntos XFTP configurados."; + /* No comment provided by engineer. */ "Allow" = "Se permite"; @@ -497,6 +512,9 @@ /* No comment provided by engineer. */ "App build: %@" = "Compilación app: %@"; +/* No comment provided by engineer. */ +"App data migration" = "Migración de datos de la aplicación"; + /* No comment provided by engineer. */ "App encrypts new local files (except videos)." = "Cifrado de los nuevos archivos locales (excepto vídeos)."; @@ -518,6 +536,15 @@ /* No comment provided by engineer. */ "Appearance" = "Apariencia"; +/* No comment provided by engineer. */ +"Apply" = "Aplicar"; + +/* No comment provided by engineer. */ +"Archive and upload" = "Archivar y transferir"; + +/* No comment provided by engineer. */ +"Archiving database" = "Archivando base de datos"; + /* No comment provided by engineer. */ "Attach" = "Adjuntar"; @@ -665,6 +692,9 @@ /* No comment provided by engineer. */ "Cancel" = "Cancelar"; +/* No comment provided by engineer. */ +"Cancel migration" = "Cancelar migración"; + /* feature offered item */ "cancelled %@" = "cancelado %@"; @@ -744,6 +774,9 @@ /* No comment provided by engineer. */ "Chat is stopped. If you already used this database on another device, you should transfer it back before starting chat." = "Chat está detenido. Si estás usando esta base de datos en otro dispositivo, deberías transferirla de vuelta antes de iniciarlo."; +/* No comment provided by engineer. */ +"Chat migrated!" = "Chat transferido !"; + /* No comment provided by engineer. */ "Chat preferences" = "Preferencias de Chat"; @@ -756,6 +789,9 @@ /* No comment provided by engineer. */ "Chinese and Spanish interface" = "Interfaz en chino y español"; +/* No comment provided by engineer. */ +"Choose _Migrate from another device_ on the new device and scan QR code." = "Elija _Migrar desde otro dispositivo_ en el nuevo dispositivo y escanee el código QR."; + /* No comment provided by engineer. */ "Choose file" = "Elije archivo"; @@ -801,6 +837,9 @@ /* No comment provided by engineer. */ "Confirm database upgrades" = "Confirmar actualizaciones de la bases de datos"; +/* No comment provided by engineer. */ +"Confirm network settings" = "Confirmar los ajustes de red"; + /* No comment provided by engineer. */ "Confirm new passphrase…" = "Confirme nueva contraseña…"; @@ -810,6 +849,9 @@ /* No comment provided by engineer. */ "Confirm password" = "Confirmar contraseña"; +/* No comment provided by engineer. */ +"Confirm that you remember database passphrase to migrate it." = "Confirme que recuerda la frase secreta de la base de datos para migrarla."; + /* server test step */ "Connect" = "Conectar"; diff --git a/apps/ios/fr.lproj/Localizable.strings b/apps/ios/fr.lproj/Localizable.strings index 4417eb35a1..8a66611d39 100644 --- a/apps/ios/fr.lproj/Localizable.strings +++ b/apps/ios/fr.lproj/Localizable.strings @@ -85,6 +85,9 @@ /* No comment provided by engineer. */ "**Most private**: do not use SimpleX Chat notifications server, check messages periodically in the background (depends on how often you use the app)." = "**Confidentiel** : ne pas utiliser le serveur de notifications SimpleX, vérification de nouveaux messages periodiquement en arrière plan (dépend de l'utilisation de l'app)."; +/* No comment provided by engineer. */ +"**Please note**: using the same database on two devices will break the decryption of messages from your connections, as a security protection." = "**Remarque** : l'utilisation de la même base de données sur deux appareils interrompt le déchiffrement des messages provenant de vos connexions, par mesure de sécurité."; + /* No comment provided by engineer. */ "**Please note**: you will NOT be able to recover or change passphrase if you lose it." = "**Veuillez noter** : vous NE pourrez PAS récupérer ou modifier votre phrase secrète si vous la perdez."; @@ -94,6 +97,9 @@ /* No comment provided by engineer. */ "**Warning**: Instant push notifications require passphrase saved in Keychain." = "**Avertissement** : les notifications push instantanées nécessitent une phrase secrète enregistrée dans la keychain."; +/* No comment provided by engineer. */ +"**Warning**: the archive will be removed." = "**Avertissement** : l'archive sera supprimée."; + /* No comment provided by engineer. */ "*bold*" = "\\*gras*"; @@ -136,6 +142,9 @@ /* No comment provided by engineer. */ "%@ connected" = "%@ connecté(e)"; +/* No comment provided by engineer. */ +"%@ downloaded" = "%@ téléchargé"; + /* notification title */ "%@ is connected!" = "%@ est connecté·e !"; @@ -148,6 +157,9 @@ /* No comment provided by engineer. */ "%@ servers" = "Serveurs %@"; +/* No comment provided by engineer. */ +"%@ uploaded" = "%@ envoyé"; + /* notification title */ "%@ wants to connect!" = "%@ veut se connecter !"; @@ -377,6 +389,9 @@ /* member role */ "admin" = "admin"; +/* No comment provided by engineer. */ +"Admins can block a member for all." = "Les admins peuvent bloquer un membre pour tous."; + /* No comment provided by engineer. */ "Admins can create the links to join groups." = "Les admins peuvent créer les liens qui permettent de rejoindre les groupes."; @@ -416,6 +431,9 @@ /* No comment provided by engineer. */ "All your contacts will remain connected. Profile update will be sent to your contacts." = "Tous vos contacts resteront connectés. La mise à jour du profil sera envoyée à vos contacts."; +/* No comment provided by engineer. */ +"All your contacts, conversations and files will be securely encrypted and uploaded in chunks to configured XFTP relays." = "Tous vos contacts, conversations et fichiers seront chiffrés en toute sécurité et transférés par morceaux vers les relais XFTP configurés."; + /* No comment provided by engineer. */ "Allow" = "Autoriser"; @@ -497,6 +515,9 @@ /* No comment provided by engineer. */ "App build: %@" = "Build de l'app : %@"; +/* No comment provided by engineer. */ +"App data migration" = "Transfert des données de l'application"; + /* No comment provided by engineer. */ "App encrypts new local files (except videos)." = "L'application chiffre les nouveaux fichiers locaux (sauf les vidéos)."; @@ -518,6 +539,15 @@ /* No comment provided by engineer. */ "Appearance" = "Apparence"; +/* No comment provided by engineer. */ +"Apply" = "Appliquer"; + +/* No comment provided by engineer. */ +"Archive and upload" = "Archiver et transférer"; + +/* No comment provided by engineer. */ +"Archiving database" = "Archivage de la base de données"; + /* No comment provided by engineer. */ "Attach" = "Attacher"; @@ -665,6 +695,9 @@ /* No comment provided by engineer. */ "Cancel" = "Annuler"; +/* No comment provided by engineer. */ +"Cancel migration" = "Annuler le transfert"; + /* feature offered item */ "cancelled %@" = "annulé %@"; @@ -744,6 +777,9 @@ /* No comment provided by engineer. */ "Chat is stopped. If you already used this database on another device, you should transfer it back before starting chat." = "Le chat est arrêté. Si vous avez déjà utilisé cette base de données sur un autre appareil, vous devez la transférer à nouveau avant de démarrer le chat."; +/* No comment provided by engineer. */ +"Chat migrated!" = "Messagerie transférée !"; + /* No comment provided by engineer. */ "Chat preferences" = "Préférences de chat"; @@ -756,6 +792,9 @@ /* No comment provided by engineer. */ "Chinese and Spanish interface" = "Interface en chinois et en espagnol"; +/* No comment provided by engineer. */ +"Choose _Migrate from another device_ on the new device and scan QR code." = "Choisissez _Transferer depuis un autre appareil_ sur le nouvel appareil et scannez le code QR."; + /* No comment provided by engineer. */ "Choose file" = "Choisir le fichier"; @@ -801,6 +840,9 @@ /* No comment provided by engineer. */ "Confirm database upgrades" = "Confirmer la mise à niveau de la base de données"; +/* No comment provided by engineer. */ +"Confirm network settings" = "Confirmer les paramètres réseau"; + /* No comment provided by engineer. */ "Confirm new passphrase…" = "Confirmer la nouvelle phrase secrète…"; @@ -810,6 +852,12 @@ /* No comment provided by engineer. */ "Confirm password" = "Confirmer le mot de passe"; +/* No comment provided by engineer. */ +"Confirm that you remember database passphrase to migrate it." = "Confirmer que vous vous souvenez de la phrase secrète de la base de données pour la transférer."; + +/* No comment provided by engineer. */ +"Confirm upload" = "Confirmer la transmission"; + /* server test step */ "Connect" = "Se connecter"; @@ -1008,6 +1056,9 @@ /* No comment provided by engineer. */ "Created on %@" = "Créé le %@"; +/* No comment provided by engineer. */ +"Creating archive link" = "Création d'un lien d'archive"; + /* No comment provided by engineer. */ "Creating link…" = "Création d'un lien…"; @@ -1155,6 +1206,9 @@ /* No comment provided by engineer. */ "Delete database" = "Supprimer la base de données"; +/* No comment provided by engineer. */ +"Delete database from this device" = "Supprimer la base de données de cet appareil"; + /* server test step */ "Delete file" = "Supprimer le fichier"; @@ -1347,9 +1401,18 @@ /* No comment provided by engineer. */ "Downgrade and open chat" = "Rétrograder et ouvrir le chat"; +/* No comment provided by engineer. */ +"Download failed" = "Échec du téléchargement"; + /* server test step */ "Download file" = "Télécharger le fichier"; +/* No comment provided by engineer. */ +"Downloading archive" = "Téléchargement de l'archive"; + +/* No comment provided by engineer. */ +"Downloading link details" = "Téléchargement des détails du lien"; + /* No comment provided by engineer. */ "Duplicate display name!" = "Nom d'affichage en double !"; @@ -1383,6 +1446,9 @@ /* No comment provided by engineer. */ "Enable for all" = "Activer pour tous"; +/* No comment provided by engineer. */ +"Enable in direct chats (BETA)!" = "Activé dans les conversations directes (BETA) !"; + /* No comment provided by engineer. */ "Enable instant notifications?" = "Activer les notifications instantanées ?"; @@ -1497,6 +1563,9 @@ /* No comment provided by engineer. */ "Enter Passcode" = "Entrer le code d'accès"; +/* No comment provided by engineer. */ +"Enter passphrase" = "Entrer la phrase secrète"; + /* No comment provided by engineer. */ "Enter passphrase…" = "Entrez la phrase secrète…"; @@ -1536,6 +1605,9 @@ /* No comment provided by engineer. */ "Error adding member(s)" = "Erreur lors de l'ajout de membre·s"; +/* No comment provided by engineer. */ +"Error allowing contact PQ encryption" = "Erreur lors de la négociation du chiffrement PQ"; + /* No comment provided by engineer. */ "Error changing address" = "Erreur de changement d'adresse"; @@ -1590,6 +1662,9 @@ /* No comment provided by engineer. */ "Error deleting user profile" = "Erreur lors de la suppression du profil utilisateur"; +/* No comment provided by engineer. */ +"Error downloading the archive" = "Erreur lors du téléchargement de l'archive"; + /* No comment provided by engineer. */ "Error enabling delivery receipts!" = "Erreur lors de l'activation des accusés de réception !"; @@ -1635,6 +1710,9 @@ /* No comment provided by engineer. */ "Error saving passphrase to keychain" = "Erreur lors de l'enregistrement de la phrase de passe dans la keychain"; +/* when migrating */ +"Error saving settings" = "Erreur lors de l'enregistrement des paramètres"; + /* No comment provided by engineer. */ "Error saving user password" = "Erreur d'enregistrement du mot de passe de l'utilisateur"; @@ -1677,6 +1755,12 @@ /* No comment provided by engineer. */ "Error updating user privacy" = "Erreur de mise à jour de la confidentialité de l'utilisateur"; +/* No comment provided by engineer. */ +"Error uploading the archive" = "Erreur lors de l'envoi de l'archive"; + +/* No comment provided by engineer. */ +"Error verifying passphrase:" = "Erreur lors de la vérification de la phrase secrète :"; + /* No comment provided by engineer. */ "Error: " = "Erreur : "; @@ -1710,6 +1794,9 @@ /* No comment provided by engineer. */ "Exported database archive." = "Archive de la base de données exportée."; +/* No comment provided by engineer. */ +"Exported file doesn't exist" = "Le fichier exporté n'existe pas"; + /* No comment provided by engineer. */ "Exporting database archive…" = "Exportation de l'archive de la base de données…"; @@ -1752,6 +1839,12 @@ /* No comment provided by engineer. */ "Filter unread and favorite chats." = "Filtrer les messages non lus et favoris."; +/* No comment provided by engineer. */ +"Finalize migration" = "Finaliser le transfert"; + +/* No comment provided by engineer. */ +"Finalize migration on another device." = "Finalisez le transfert sur l'autre appareil."; + /* No comment provided by engineer. */ "Finally, we have them! 🚀" = "Enfin, les voilà ! 🚀"; @@ -1935,6 +2028,9 @@ /* No comment provided by engineer. */ "How to use your servers" = "Comment utiliser vos serveurs"; +/* No comment provided by engineer. */ +"Hungarian interface" = "Interface en hongrois"; + /* No comment provided by engineer. */ "ICE servers (one per line)" = "Serveurs ICE (un par ligne)"; @@ -1974,6 +2070,12 @@ /* No comment provided by engineer. */ "Import database" = "Importer la base de données"; +/* No comment provided by engineer. */ +"Import failed" = "Échec de l'importation"; + +/* No comment provided by engineer. */ +"Importing archive" = "Importation de l'archive"; + /* No comment provided by engineer. */ "Improved message delivery" = "Amélioration de la transmission des messages"; @@ -1983,6 +2085,9 @@ /* No comment provided by engineer. */ "Improved server configuration" = "Configuration de serveur améliorée"; +/* No comment provided by engineer. */ +"In order to continue, chat should be stopped." = "Pour continuer, le chat doit être interrompu."; + /* No comment provided by engineer. */ "In reply to" = "En réponse à"; @@ -2067,6 +2172,9 @@ /* No comment provided by engineer. */ "Invalid link" = "Lien invalide"; +/* No comment provided by engineer. */ +"Invalid migration confirmation" = "Confirmation de migration invalide"; + /* No comment provided by engineer. */ "Invalid name!" = "Nom invalide !"; @@ -2331,6 +2439,9 @@ /* No comment provided by engineer. */ "Message text" = "Texte du message"; +/* No comment provided by engineer. */ +"Message too large" = "Message trop volumineux"; + /* No comment provided by engineer. */ "Messages" = "Messages"; @@ -2340,9 +2451,36 @@ /* No comment provided by engineer. */ "Messages from %@ will be shown!" = "Les messages de %@ seront affichés !"; +/* No comment provided by engineer. */ +"Messages, files and calls are protected by **end-to-end encryption** with perfect forward secrecy, repudiation and break-in recovery." = "Les messages, fichiers et appels sont protégés par un chiffrement **de bout en bout** avec une confidentialité persistante, une répudiation et une récupération en cas d'effraction."; + +/* No comment provided by engineer. */ +"Messages, files and calls are protected by **quantum resistant e2e encryption** with perfect forward secrecy, repudiation and break-in recovery." = "Les messages, fichiers et appels sont protégés par un chiffrement **2e2 résistant post-quantique** avec une confidentialité persistante, une répudiation et une récupération en cas d'effraction."; + +/* No comment provided by engineer. */ +"Migrate device" = "Transférer l'appareil"; + +/* No comment provided by engineer. */ +"Migrate from another device" = "Transférer depuis un autre appareil"; + +/* No comment provided by engineer. */ +"Migrate here" = "Transférer ici"; + +/* No comment provided by engineer. */ +"Migrate to another device" = "Transférer vers un autre appareil"; + +/* No comment provided by engineer. */ +"Migrate to another device via QR code." = "Transférer vers un autre appareil via un code QR."; + +/* No comment provided by engineer. */ +"Migrating" = "Transfert"; + /* No comment provided by engineer. */ "Migrating database archive…" = "Migration de l'archive de la base de données…"; +/* No comment provided by engineer. */ +"Migration complete" = "Transfert terminé"; + /* No comment provided by engineer. */ "Migration error:" = "Erreur de migration :"; @@ -2600,6 +2738,9 @@ /* No comment provided by engineer. */ "Open group" = "Ouvrir le groupe"; +/* authentication reason */ +"Open migration to another device" = "Ouvrir le transfert vers un autre appareil"; + /* No comment provided by engineer. */ "Open Settings" = "Ouvrir les Paramètres"; @@ -2612,9 +2753,15 @@ /* No comment provided by engineer. */ "Opening app…" = "Ouverture de l'app…"; +/* No comment provided by engineer. */ +"Or paste archive link" = "Ou coller le lien de l'archive"; + /* No comment provided by engineer. */ "Or scan QR code" = "Ou scanner le code QR"; +/* No comment provided by engineer. */ +"Or securely share this file link" = "Ou partagez en toute sécurité le lien de ce fichier"; + /* No comment provided by engineer. */ "Or show this code" = "Ou présenter ce code"; @@ -2666,6 +2813,9 @@ /* message decrypt error item */ "Permanent decryption error" = "Erreur de déchiffrement"; +/* No comment provided by engineer. */ +"Picture-in-picture calls" = "Appels picture-in-picture"; + /* No comment provided by engineer. */ "PING count" = "Nombre de PING"; @@ -2684,6 +2834,9 @@ /* No comment provided by engineer. */ "Please check yours and your contact preferences." = "Veuillez vérifier vos préférences ainsi que celles de votre contact."; +/* No comment provided by engineer. */ +"Please confirm that network settings are correct for this device." = "Veuillez confirmer que les paramètres réseau de cet appareil sont corrects."; + /* No comment provided by engineer. */ "Please contact developers.\nError: %@" = "Veuillez contacter les développeurs.\nErreur : %@"; @@ -2717,6 +2870,9 @@ /* server test error */ "Possibly, certificate fingerprint in server address is incorrect" = "Il est possible que l'empreinte du certificat dans l'adresse du serveur soit incorrecte"; +/* No comment provided by engineer. */ +"Post-quantum E2EE" = "E2EE post-quantique"; + /* No comment provided by engineer. */ "Preserve the last message draft, with attachments." = "Conserver le brouillon du dernier message, avec les pièces jointes."; @@ -2798,6 +2954,15 @@ /* No comment provided by engineer. */ "Push notifications" = "Notifications push"; +/* No comment provided by engineer. */ +"Push server" = "Serveur Push"; + +/* chat item text */ +"quantum resistant e2e encryption" = "chiffrement e2e résistant post-quantique"; + +/* No comment provided by engineer. */ +"Quantum resistant encryption" = "Chiffrement résistant post-quantique"; + /* No comment provided by engineer. */ "Rate the app" = "Évaluer l'app"; @@ -2933,9 +3098,18 @@ /* No comment provided by engineer. */ "Repeat connection request?" = "Répéter la demande de connexion ?"; +/* No comment provided by engineer. */ +"Repeat download" = "Répéter le téléchargement"; + +/* No comment provided by engineer. */ +"Repeat import" = "Répéter l'importation"; + /* No comment provided by engineer. */ "Repeat join request?" = "Répéter la requête d'adhésion ?"; +/* No comment provided by engineer. */ +"Repeat upload" = "Répéter l'envoi"; + /* chat item action */ "Reply" = "Répondre"; @@ -2993,6 +3167,9 @@ /* No comment provided by engineer. */ "Run chat" = "Exécuter le chat"; +/* No comment provided by engineer. */ +"Safer groups" = "Groupes plus sûrs"; + /* chat item action */ "Save" = "Enregistrer"; @@ -3233,6 +3410,9 @@ /* No comment provided by engineer. */ "Set passcode" = "Définir le code d'accès"; +/* No comment provided by engineer. */ +"Set passphrase" = "Définir une phrase secrète"; + /* No comment provided by engineer. */ "Set passphrase to export" = "Définir la phrase secrète pour l'export"; @@ -3278,6 +3458,9 @@ /* No comment provided by engineer. */ "Show preview" = "Afficher l'aperçu"; +/* No comment provided by engineer. */ +"Show QR code" = "Afficher le code QR"; + /* No comment provided by engineer. */ "Show:" = "Afficher :"; @@ -3338,6 +3521,9 @@ /* notification title */ "Somebody" = "Quelqu'un"; +/* chat item text */ +"standard end-to-end encryption" = "chiffrement de bout en bout standard"; + /* No comment provided by engineer. */ "Start chat" = "Démarrer le chat"; @@ -3353,6 +3539,9 @@ /* No comment provided by engineer. */ "Stop" = "Arrêter"; +/* No comment provided by engineer. */ +"Stop chat" = "Arrêter le chat"; + /* No comment provided by engineer. */ "Stop chat to enable database actions" = "Arrêter le chat pour permettre des actions sur la base de données"; @@ -3380,6 +3569,9 @@ /* authentication reason */ "Stop SimpleX" = "Arrêter SimpleX"; +/* No comment provided by engineer. */ +"Stopping chat" = "Arrêt du chat"; + /* No comment provided by engineer. */ "strike" = "barré"; @@ -3530,6 +3722,12 @@ /* No comment provided by engineer. */ "This action cannot be undone - your profile, contacts, messages and files will be irreversibly lost." = "Cette action ne peut être annulée - votre profil, vos contacts, vos messages et vos fichiers seront irréversiblement perdus."; +/* E2EE info chat item */ +"This chat is protected by end-to-end encryption." = "Cette discussion est protégée par un chiffrement de bout en bout."; + +/* E2EE info chat item */ +"This chat is protected by quantum resistant end-to-end encryption." = "Cette discussion est protégée par un chiffrement de bout en bout résistant post-quantique."; + /* notification title */ "this contact" = "ce contact"; @@ -3722,9 +3920,15 @@ /* No comment provided by engineer. */ "Upgrade and open chat" = "Mettre à niveau et ouvrir le chat"; +/* No comment provided by engineer. */ +"Upload failed" = "Échec de l'envoi"; + /* server test step */ "Upload file" = "Transférer le fichier"; +/* No comment provided by engineer. */ +"Uploading archive" = "Envoi de l'archive"; + /* No comment provided by engineer. */ "Use .onion hosts" = "Utiliser les hôtes .onions"; @@ -3755,6 +3959,9 @@ /* No comment provided by engineer. */ "Use SimpleX Chat servers?" = "Utiliser les serveurs SimpleX Chat ?"; +/* No comment provided by engineer. */ +"Use the app while in the call." = "Utiliser l'application pendant l'appel."; + /* No comment provided by engineer. */ "User profile" = "Profil d'utilisateur"; @@ -3782,6 +3989,12 @@ /* No comment provided by engineer. */ "Verify connections" = "Vérifier les connexions"; +/* No comment provided by engineer. */ +"Verify database passphrase" = "Vérifier la phrase secrète de la base de données"; + +/* No comment provided by engineer. */ +"Verify passphrase" = "Vérifier la phrase secrète"; + /* No comment provided by engineer. */ "Verify security code" = "Vérifier le code de sécurité"; @@ -3860,6 +4073,9 @@ /* No comment provided by engineer. */ "wants to connect to you!" = "veut établir une connexion !"; +/* No comment provided by engineer. */ +"Warning: starting chat on multiple devices is not supported and will cause message delivery failures" = "Attention : démarrer une session de chat sur plusieurs appareils n'est pas pris en charge et entraînera des dysfonctionnements au niveau de la transmission des messages"; + /* No comment provided by engineer. */ "Warning: you may lose some data!" = "Attention : vous risquez de perdre des données !"; @@ -3875,6 +4091,9 @@ /* No comment provided by engineer. */ "Welcome message" = "Message de bienvenue"; +/* No comment provided by engineer. */ +"Welcome message is too long" = "Le message de bienvenue est trop long"; + /* No comment provided by engineer. */ "What's new" = "Quoi de neuf ?"; @@ -3911,6 +4130,9 @@ /* No comment provided by engineer. */ "You" = "Vous"; +/* No comment provided by engineer. */ +"You **must not** use the same database on two devices." = "Vous **ne devez pas** utiliser la même base de données sur deux appareils."; + /* No comment provided by engineer. */ "You accepted connection" = "Vous avez accepté la connexion"; @@ -3971,6 +4193,9 @@ /* No comment provided by engineer. */ "You can enable them later via app Privacy & Security settings." = "Vous pouvez les activer ultérieurement via les paramètres de Confidentialité et Sécurité de l'application."; +/* No comment provided by engineer. */ +"You can give another try." = "Vous pouvez faire un nouvel essai."; + /* No comment provided by engineer. */ "You can hide or mute a user profile - swipe it to the right." = "Vous pouvez masquer ou mettre en sourdine un profil d'utilisateur - faites-le glisser vers la droite."; diff --git a/apps/ios/it.lproj/Localizable.strings b/apps/ios/it.lproj/Localizable.strings index c105bb1fa1..88b3497758 100644 --- a/apps/ios/it.lproj/Localizable.strings +++ b/apps/ios/it.lproj/Localizable.strings @@ -85,6 +85,9 @@ /* No comment provided by engineer. */ "**Most private**: do not use SimpleX Chat notifications server, check messages periodically in the background (depends on how often you use the app)." = "**Il più privato**: non usare il server di notifica di SimpleX Chat, controlla i messaggi periodicamente in secondo piano (dipende da quanto spesso usi l'app)."; +/* No comment provided by engineer. */ +"**Please note**: using the same database on two devices will break the decryption of messages from your connections, as a security protection." = "**Nota bene**: usare lo stesso database su due dispositivi bloccherà la decifrazione dei messaggi dalle tue connessioni, come misura di sicurezza."; + /* No comment provided by engineer. */ "**Please note**: you will NOT be able to recover or change passphrase if you lose it." = "**Nota bene**: NON potrai recuperare o cambiare la password se la perdi."; @@ -94,6 +97,9 @@ /* No comment provided by engineer. */ "**Warning**: Instant push notifications require passphrase saved in Keychain." = "**Attenzione**: le notifiche push istantanee richiedono una password salvata nel portachiavi."; +/* No comment provided by engineer. */ +"**Warning**: the archive will be removed." = "**Attenzione**: l'archivio verrà rimosso."; + /* No comment provided by engineer. */ "*bold*" = "\\*grassetto*"; @@ -136,6 +142,9 @@ /* No comment provided by engineer. */ "%@ connected" = "%@ si è connesso/a"; +/* No comment provided by engineer. */ +"%@ downloaded" = "%@ scaricati"; + /* notification title */ "%@ is connected!" = "%@ è connesso/a!"; @@ -148,6 +157,9 @@ /* No comment provided by engineer. */ "%@ servers" = "Server %@"; +/* No comment provided by engineer. */ +"%@ uploaded" = "%@ caricati"; + /* notification title */ "%@ wants to connect!" = "%@ si vuole connettere!"; @@ -377,6 +389,9 @@ /* member role */ "admin" = "amministratore"; +/* No comment provided by engineer. */ +"Admins can block a member for all." = "Gli amministratori possono bloccare un membro per tutti."; + /* No comment provided by engineer. */ "Admins can create the links to join groups." = "Gli amministratori possono creare i link per entrare nei gruppi."; @@ -416,6 +431,9 @@ /* No comment provided by engineer. */ "All your contacts will remain connected. Profile update will be sent to your contacts." = "Tutti i tuoi contatti resteranno connessi. L'aggiornamento del profilo verrà inviato ai tuoi contatti."; +/* No comment provided by engineer. */ +"All your contacts, conversations and files will be securely encrypted and uploaded in chunks to configured XFTP relays." = "Tutti i tuoi contatti, le conversazioni e i file verranno criptati in modo sicuro e caricati in blocchi sui relay XFTP configurati."; + /* No comment provided by engineer. */ "Allow" = "Consenti"; @@ -497,6 +515,9 @@ /* No comment provided by engineer. */ "App build: %@" = "Build dell'app: %@"; +/* No comment provided by engineer. */ +"App data migration" = "Migrazione dati dell'app"; + /* No comment provided by engineer. */ "App encrypts new local files (except videos)." = "L'app cripta i nuovi file locali (eccetto i video)."; @@ -518,6 +539,15 @@ /* No comment provided by engineer. */ "Appearance" = "Aspetto"; +/* No comment provided by engineer. */ +"Apply" = "Applica"; + +/* No comment provided by engineer. */ +"Archive and upload" = "Archivia e carica"; + +/* No comment provided by engineer. */ +"Archiving database" = "Archiviazione del database"; + /* No comment provided by engineer. */ "Attach" = "Allega"; @@ -665,6 +695,9 @@ /* No comment provided by engineer. */ "Cancel" = "Annulla"; +/* No comment provided by engineer. */ +"Cancel migration" = "Annulla migrazione"; + /* feature offered item */ "cancelled %@" = "annullato %@"; @@ -744,6 +777,9 @@ /* No comment provided by engineer. */ "Chat is stopped. If you already used this database on another device, you should transfer it back before starting chat." = "La chat è ferma. Se hai già usato questo database su un altro dispositivo, dovresti trasferirlo prima di avviare la chat."; +/* No comment provided by engineer. */ +"Chat migrated!" = "Chat migrata!"; + /* No comment provided by engineer. */ "Chat preferences" = "Preferenze della chat"; @@ -756,6 +792,9 @@ /* No comment provided by engineer. */ "Chinese and Spanish interface" = "Interfaccia cinese e spagnola"; +/* No comment provided by engineer. */ +"Choose _Migrate from another device_ on the new device and scan QR code." = "Scegli _Migra da un altro dispositivo_ sul nuovo dispositivo e scansione il codice QR."; + /* No comment provided by engineer. */ "Choose file" = "Scegli file"; @@ -801,6 +840,9 @@ /* No comment provided by engineer. */ "Confirm database upgrades" = "Conferma aggiornamenti database"; +/* No comment provided by engineer. */ +"Confirm network settings" = "Conferma le impostazioni di rete"; + /* No comment provided by engineer. */ "Confirm new passphrase…" = "Conferma nuova password…"; @@ -810,6 +852,12 @@ /* No comment provided by engineer. */ "Confirm password" = "Conferma password"; +/* No comment provided by engineer. */ +"Confirm that you remember database passphrase to migrate it." = "Conferma che ricordi la password del database da migrare."; + +/* No comment provided by engineer. */ +"Confirm upload" = "Conferma caricamento"; + /* server test step */ "Connect" = "Connetti"; @@ -1008,6 +1056,9 @@ /* No comment provided by engineer. */ "Created on %@" = "Creato il %@"; +/* No comment provided by engineer. */ +"Creating archive link" = "Creazione link dell'archivio"; + /* No comment provided by engineer. */ "Creating link…" = "Creazione link…"; @@ -1155,6 +1206,9 @@ /* No comment provided by engineer. */ "Delete database" = "Elimina database"; +/* No comment provided by engineer. */ +"Delete database from this device" = "Elimina il database da questo dispositivo"; + /* server test step */ "Delete file" = "Elimina file"; @@ -1347,9 +1401,18 @@ /* No comment provided by engineer. */ "Downgrade and open chat" = "Esegui downgrade e apri chat"; +/* No comment provided by engineer. */ +"Download failed" = "Scaricamento fallito"; + /* server test step */ "Download file" = "Scarica file"; +/* No comment provided by engineer. */ +"Downloading archive" = "Scaricamento archivio"; + +/* No comment provided by engineer. */ +"Downloading link details" = "Scaricamento dettagli del link"; + /* No comment provided by engineer. */ "Duplicate display name!" = "Nome da mostrare doppio!"; @@ -1383,6 +1446,9 @@ /* No comment provided by engineer. */ "Enable for all" = "Attiva per tutti"; +/* No comment provided by engineer. */ +"Enable in direct chats (BETA)!" = "Attivala nelle chat dirette (BETA)!"; + /* No comment provided by engineer. */ "Enable instant notifications?" = "Attivare le notifiche istantanee?"; @@ -1497,6 +1563,9 @@ /* No comment provided by engineer. */ "Enter Passcode" = "Inserisci il codice di accesso"; +/* No comment provided by engineer. */ +"Enter passphrase" = "Inserisci password"; + /* No comment provided by engineer. */ "Enter passphrase…" = "Inserisci la password…"; @@ -1536,6 +1605,9 @@ /* No comment provided by engineer. */ "Error adding member(s)" = "Errore di aggiunta membro/i"; +/* No comment provided by engineer. */ +"Error allowing contact PQ encryption" = "Errore nel consentire la crittografia PQ al contatto"; + /* No comment provided by engineer. */ "Error changing address" = "Errore nella modifica dell'indirizzo"; @@ -1590,6 +1662,9 @@ /* No comment provided by engineer. */ "Error deleting user profile" = "Errore nell'eliminazione del profilo utente"; +/* No comment provided by engineer. */ +"Error downloading the archive" = "Errore di scaricamento dell'archivio"; + /* No comment provided by engineer. */ "Error enabling delivery receipts!" = "Errore nell'attivazione delle ricevute di consegna!"; @@ -1635,6 +1710,9 @@ /* No comment provided by engineer. */ "Error saving passphrase to keychain" = "Errore nel salvataggio della password nel portachiavi"; +/* when migrating */ +"Error saving settings" = "Errore di salvataggio delle impostazioni"; + /* No comment provided by engineer. */ "Error saving user password" = "Errore nel salvataggio della password utente"; @@ -1677,6 +1755,12 @@ /* No comment provided by engineer. */ "Error updating user privacy" = "Errore nell'aggiornamento della privacy dell'utente"; +/* No comment provided by engineer. */ +"Error uploading the archive" = "Errore di invio dell'archivio"; + +/* No comment provided by engineer. */ +"Error verifying passphrase:" = "Errore di verifica della password:"; + /* No comment provided by engineer. */ "Error: " = "Errore: "; @@ -1710,6 +1794,9 @@ /* No comment provided by engineer. */ "Exported database archive." = "Archivio database esportato."; +/* No comment provided by engineer. */ +"Exported file doesn't exist" = "Il file esportato non esiste"; + /* No comment provided by engineer. */ "Exporting database archive…" = "Esportazione archivio database…"; @@ -1752,6 +1839,12 @@ /* No comment provided by engineer. */ "Filter unread and favorite chats." = "Filtra le chat non lette e preferite."; +/* No comment provided by engineer. */ +"Finalize migration" = "Finalizza la migrazione"; + +/* No comment provided by engineer. */ +"Finalize migration on another device." = "Finalizza la migrazione su un altro dispositivo."; + /* No comment provided by engineer. */ "Finally, we have them! 🚀" = "Finalmente le abbiamo! 🚀"; @@ -1935,6 +2028,9 @@ /* No comment provided by engineer. */ "How to use your servers" = "Come usare i tuoi server"; +/* No comment provided by engineer. */ +"Hungarian interface" = "Interfaccia in ungherese"; + /* No comment provided by engineer. */ "ICE servers (one per line)" = "Server ICE (uno per riga)"; @@ -1974,6 +2070,12 @@ /* No comment provided by engineer. */ "Import database" = "Importa database"; +/* No comment provided by engineer. */ +"Import failed" = "Importazione fallita"; + +/* No comment provided by engineer. */ +"Importing archive" = "Importazione archivio"; + /* No comment provided by engineer. */ "Improved message delivery" = "Consegna dei messaggi migliorata"; @@ -1983,6 +2085,9 @@ /* No comment provided by engineer. */ "Improved server configuration" = "Configurazione del server migliorata"; +/* No comment provided by engineer. */ +"In order to continue, chat should be stopped." = "Per continuare, la chat deve essere fermata."; + /* No comment provided by engineer. */ "In reply to" = "In risposta a"; @@ -2067,6 +2172,9 @@ /* No comment provided by engineer. */ "Invalid link" = "Link non valido"; +/* No comment provided by engineer. */ +"Invalid migration confirmation" = "Conferma di migrazione non valida"; + /* No comment provided by engineer. */ "Invalid name!" = "Nome non valido!"; @@ -2331,6 +2439,9 @@ /* No comment provided by engineer. */ "Message text" = "Testo del messaggio"; +/* No comment provided by engineer. */ +"Message too large" = "Messaggio troppo grande"; + /* No comment provided by engineer. */ "Messages" = "Messaggi"; @@ -2340,9 +2451,36 @@ /* No comment provided by engineer. */ "Messages from %@ will be shown!" = "I messaggi da %@ verranno mostrati!"; +/* No comment provided by engineer. */ +"Messages, files and calls are protected by **end-to-end encryption** with perfect forward secrecy, repudiation and break-in recovery." = "I messaggi, i file e le chiamate sono protetti da **crittografia end-to-end** con perfect forward secrecy, ripudio e recupero da intrusione."; + +/* No comment provided by engineer. */ +"Messages, files and calls are protected by **quantum resistant e2e encryption** with perfect forward secrecy, repudiation and break-in recovery." = "I messaggi, i file e le chiamate sono protetti da **crittografia e2e resistente al quantistico** con perfect forward secrecy, ripudio e recupero da intrusione."; + +/* No comment provided by engineer. */ +"Migrate device" = "Migra dispositivo"; + +/* No comment provided by engineer. */ +"Migrate from another device" = "Migra da un altro dispositivo"; + +/* No comment provided by engineer. */ +"Migrate here" = "Migra qui"; + +/* No comment provided by engineer. */ +"Migrate to another device" = "Migra ad un altro dispositivo"; + +/* No comment provided by engineer. */ +"Migrate to another device via QR code." = "Migra ad un altro dispositivo via codice QR."; + +/* No comment provided by engineer. */ +"Migrating" = "Migrazione"; + /* No comment provided by engineer. */ "Migrating database archive…" = "Migrazione archivio del database…"; +/* No comment provided by engineer. */ +"Migration complete" = "Migrazione completata"; + /* No comment provided by engineer. */ "Migration error:" = "Errore di migrazione:"; @@ -2600,6 +2738,9 @@ /* No comment provided by engineer. */ "Open group" = "Apri gruppo"; +/* authentication reason */ +"Open migration to another device" = "Apri migrazione ad un altro dispositivo"; + /* No comment provided by engineer. */ "Open Settings" = "Apri le impostazioni"; @@ -2612,9 +2753,15 @@ /* No comment provided by engineer. */ "Opening app…" = "Apertura dell'app…"; +/* No comment provided by engineer. */ +"Or paste archive link" = "O incolla il link dell'archivio"; + /* No comment provided by engineer. */ "Or scan QR code" = "O scansiona il codice QR"; +/* No comment provided by engineer. */ +"Or securely share this file link" = "O condividi in modo sicuro questo link del file"; + /* No comment provided by engineer. */ "Or show this code" = "O mostra questo codice"; @@ -2666,6 +2813,9 @@ /* message decrypt error item */ "Permanent decryption error" = "Errore di decifrazione"; +/* No comment provided by engineer. */ +"Picture-in-picture calls" = "Chiamate picture-in-picture"; + /* No comment provided by engineer. */ "PING count" = "Conteggio PING"; @@ -2684,6 +2834,9 @@ /* No comment provided by engineer. */ "Please check yours and your contact preferences." = "Controlla le preferenze tue e del tuo contatto."; +/* No comment provided by engineer. */ +"Please confirm that network settings are correct for this device." = "Conferma che le impostazioni di rete sono corrette per questo dispositivo."; + /* No comment provided by engineer. */ "Please contact developers.\nError: %@" = "Contatta gli sviluppatori.\nErrore: %@"; @@ -2717,6 +2870,9 @@ /* server test error */ "Possibly, certificate fingerprint in server address is incorrect" = "Probabilmente l'impronta del certificato nell'indirizzo del server è sbagliata"; +/* No comment provided by engineer. */ +"Post-quantum E2EE" = "E2EE post-quantistica"; + /* No comment provided by engineer. */ "Preserve the last message draft, with attachments." = "Conserva la bozza dell'ultimo messaggio, con gli allegati."; @@ -2798,6 +2954,15 @@ /* No comment provided by engineer. */ "Push notifications" = "Notifiche push"; +/* No comment provided by engineer. */ +"Push server" = "Server push"; + +/* chat item text */ +"quantum resistant e2e encryption" = "crittografia e2e resistente al quantistico"; + +/* No comment provided by engineer. */ +"Quantum resistant encryption" = "Crittografia resistente al quantistico"; + /* No comment provided by engineer. */ "Rate the app" = "Valuta l'app"; @@ -2933,9 +3098,18 @@ /* No comment provided by engineer. */ "Repeat connection request?" = "Ripetere la richiesta di connessione?"; +/* No comment provided by engineer. */ +"Repeat download" = "Ripeti scaricamento"; + +/* No comment provided by engineer. */ +"Repeat import" = "Ripeti importazione"; + /* No comment provided by engineer. */ "Repeat join request?" = "Ripetere la richiesta di ingresso?"; +/* No comment provided by engineer. */ +"Repeat upload" = "Ripeti caricamento"; + /* chat item action */ "Reply" = "Rispondi"; @@ -2993,6 +3167,9 @@ /* No comment provided by engineer. */ "Run chat" = "Avvia chat"; +/* No comment provided by engineer. */ +"Safer groups" = "Gruppi più sicuri"; + /* chat item action */ "Save" = "Salva"; @@ -3233,6 +3410,9 @@ /* No comment provided by engineer. */ "Set passcode" = "Imposta codice"; +/* No comment provided by engineer. */ +"Set passphrase" = "Imposta password"; + /* No comment provided by engineer. */ "Set passphrase to export" = "Imposta la password per esportare"; @@ -3278,6 +3458,9 @@ /* No comment provided by engineer. */ "Show preview" = "Mostra anteprima"; +/* No comment provided by engineer. */ +"Show QR code" = "Mostra codice QR"; + /* No comment provided by engineer. */ "Show:" = "Mostra:"; @@ -3338,6 +3521,9 @@ /* notification title */ "Somebody" = "Qualcuno"; +/* chat item text */ +"standard end-to-end encryption" = "crittografia end-to-end standard"; + /* No comment provided by engineer. */ "Start chat" = "Avvia chat"; @@ -3353,6 +3539,9 @@ /* No comment provided by engineer. */ "Stop" = "Ferma"; +/* No comment provided by engineer. */ +"Stop chat" = "Ferma la chat"; + /* No comment provided by engineer. */ "Stop chat to enable database actions" = "Ferma la chat per attivare le azioni del database"; @@ -3380,6 +3569,9 @@ /* authentication reason */ "Stop SimpleX" = "Ferma SimpleX"; +/* No comment provided by engineer. */ +"Stopping chat" = "Arresto della chat"; + /* No comment provided by engineer. */ "strike" = "barrato"; @@ -3530,6 +3722,12 @@ /* No comment provided by engineer. */ "This action cannot be undone - your profile, contacts, messages and files will be irreversibly lost." = "Questa azione non può essere annullata: il tuo profilo, i contatti, i messaggi e i file andranno persi in modo irreversibile."; +/* E2EE info chat item */ +"This chat is protected by end-to-end encryption." = "Questa chat è protetta da crittografia end-to-end."; + +/* E2EE info chat item */ +"This chat is protected by quantum resistant end-to-end encryption." = "Questa chat è protetta da crittografia end-to-end resistente al quantistico."; + /* notification title */ "this contact" = "questo contatto"; @@ -3722,9 +3920,15 @@ /* No comment provided by engineer. */ "Upgrade and open chat" = "Aggiorna e apri chat"; +/* No comment provided by engineer. */ +"Upload failed" = "Invio fallito"; + /* server test step */ "Upload file" = "Invia file"; +/* No comment provided by engineer. */ +"Uploading archive" = "Invio dell'archivio"; + /* No comment provided by engineer. */ "Use .onion hosts" = "Usa gli host .onion"; @@ -3755,6 +3959,9 @@ /* No comment provided by engineer. */ "Use SimpleX Chat servers?" = "Usare i server di SimpleX Chat?"; +/* No comment provided by engineer. */ +"Use the app while in the call." = "Usa l'app mentre sei in chiamata."; + /* No comment provided by engineer. */ "User profile" = "Profilo utente"; @@ -3782,6 +3989,12 @@ /* No comment provided by engineer. */ "Verify connections" = "Verifica le connessioni"; +/* No comment provided by engineer. */ +"Verify database passphrase" = "Verifica password del database"; + +/* No comment provided by engineer. */ +"Verify passphrase" = "Verifica password"; + /* No comment provided by engineer. */ "Verify security code" = "Verifica codice di sicurezza"; @@ -3801,7 +4014,7 @@ "via relay" = "via relay"; /* No comment provided by engineer. */ -"Via secure quantum resistant protocol." = "Tramite protocollo sicuro resistente alla quantistica."; +"Via secure quantum resistant protocol." = "Tramite protocollo sicuro resistente al quantistico."; /* No comment provided by engineer. */ "Video call" = "Videochiamata"; @@ -3860,6 +4073,9 @@ /* No comment provided by engineer. */ "wants to connect to you!" = "vuole connettersi con te!"; +/* No comment provided by engineer. */ +"Warning: starting chat on multiple devices is not supported and will cause message delivery failures" = "Attenzione: avviare la chat su più dispositivi non è supportato e provocherà problemi di recapito dei messaggi"; + /* No comment provided by engineer. */ "Warning: you may lose some data!" = "Attenzione: potresti perdere alcuni dati!"; @@ -3875,6 +4091,9 @@ /* No comment provided by engineer. */ "Welcome message" = "Messaggio di benvenuto"; +/* No comment provided by engineer. */ +"Welcome message is too long" = "Il messaggio di benvenuto è troppo lungo"; + /* No comment provided by engineer. */ "What's new" = "Novità"; @@ -3911,6 +4130,9 @@ /* No comment provided by engineer. */ "You" = "Tu"; +/* No comment provided by engineer. */ +"You **must not** use the same database on two devices." = "**Non devi** usare lo stesso database su due dispositivi."; + /* No comment provided by engineer. */ "You accepted connection" = "Hai accettato la connessione"; @@ -3971,6 +4193,9 @@ /* No comment provided by engineer. */ "You can enable them later via app Privacy & Security settings." = "Puoi attivarle più tardi nelle impostazioni di privacy e sicurezza dell'app."; +/* No comment provided by engineer. */ +"You can give another try." = "Puoi fare un altro tentativo."; + /* No comment provided by engineer. */ "You can hide or mute a user profile - swipe it to the right." = "Puoi nascondere o silenziare un profilo utente - scorrilo verso destra."; diff --git a/apps/ios/nl.lproj/Localizable.strings b/apps/ios/nl.lproj/Localizable.strings index 7c4f487f99..bfd97f3f43 100644 --- a/apps/ios/nl.lproj/Localizable.strings +++ b/apps/ios/nl.lproj/Localizable.strings @@ -85,6 +85,9 @@ /* No comment provided by engineer. */ "**Most private**: do not use SimpleX Chat notifications server, check messages periodically in the background (depends on how often you use the app)." = "**Meest privé**: gebruik geen SimpleX Chat-notificatie server, controleer berichten regelmatig op de achtergrond (afhankelijk van hoe vaak u de app gebruikt)."; +/* No comment provided by engineer. */ +"**Please note**: using the same database on two devices will break the decryption of messages from your connections, as a security protection." = "**Let op**: als u dezelfde database op twee apparaten gebruikt, wordt de decodering van berichten van uw verbindingen verbroken, als veiligheidsmaatregel."; + /* No comment provided by engineer. */ "**Please note**: you will NOT be able to recover or change passphrase if you lose it." = "**Let op**: u kunt het wachtwoord NIET herstellen of wijzigen als u het kwijtraakt."; @@ -94,6 +97,9 @@ /* No comment provided by engineer. */ "**Warning**: Instant push notifications require passphrase saved in Keychain." = "**Waarschuwing**: voor directe push meldingen is een wachtwoord vereist dat is opgeslagen in de Keychain."; +/* No comment provided by engineer. */ +"**Warning**: the archive will be removed." = "**Waarschuwing**: het archief wordt verwijderd."; + /* No comment provided by engineer. */ "*bold*" = "\\*vetgedrukt*"; @@ -136,6 +142,9 @@ /* No comment provided by engineer. */ "%@ connected" = "%@ verbonden"; +/* No comment provided by engineer. */ +"%@ downloaded" = "%@ gedownload"; + /* notification title */ "%@ is connected!" = "%@ is verbonden!"; @@ -148,6 +157,9 @@ /* No comment provided by engineer. */ "%@ servers" = "%@ servers"; +/* No comment provided by engineer. */ +"%@ uploaded" = "%@ geüpload"; + /* notification title */ "%@ wants to connect!" = "%@ wil verbinding maken!"; @@ -377,6 +389,9 @@ /* member role */ "admin" = "Beheerder"; +/* No comment provided by engineer. */ +"Admins can block a member for all." = "Beheerders kunnen een lid voor iedereen blokkeren."; + /* No comment provided by engineer. */ "Admins can create the links to join groups." = "Beheerders kunnen de uitnodiging links naar groepen aanmaken."; @@ -416,6 +431,9 @@ /* No comment provided by engineer. */ "All your contacts will remain connected. Profile update will be sent to your contacts." = "Al uw contacten blijven verbonden. Profiel update wordt naar uw contacten verzonden."; +/* No comment provided by engineer. */ +"All your contacts, conversations and files will be securely encrypted and uploaded in chunks to configured XFTP relays." = "Al uw contacten, gesprekken en bestanden worden veilig gecodeerd en in delen geüpload naar geconfigureerde XFTP-relays."; + /* No comment provided by engineer. */ "Allow" = "Toestaan"; @@ -497,6 +515,9 @@ /* No comment provided by engineer. */ "App build: %@" = "App build: %@"; +/* No comment provided by engineer. */ +"App data migration" = "Migratie van app-gegevens"; + /* No comment provided by engineer. */ "App encrypts new local files (except videos)." = "App versleutelt nieuwe lokale bestanden (behalve video's)."; @@ -518,6 +539,15 @@ /* No comment provided by engineer. */ "Appearance" = "Uiterlijk"; +/* No comment provided by engineer. */ +"Apply" = "Toepassen"; + +/* No comment provided by engineer. */ +"Archive and upload" = "Archiveren en uploaden"; + +/* No comment provided by engineer. */ +"Archiving database" = "Database archiveren"; + /* No comment provided by engineer. */ "Attach" = "Bijvoegen"; @@ -665,6 +695,9 @@ /* No comment provided by engineer. */ "Cancel" = "Annuleren"; +/* No comment provided by engineer. */ +"Cancel migration" = "Migratie annuleren"; + /* feature offered item */ "cancelled %@" = "geannuleerd %@"; @@ -744,6 +777,9 @@ /* No comment provided by engineer. */ "Chat is stopped. If you already used this database on another device, you should transfer it back before starting chat." = "Chat is gestopt. Als je deze database al op een ander apparaat hebt gebruikt, moet je deze terugzetten voordat je met chatten begint."; +/* No comment provided by engineer. */ +"Chat migrated!" = "Chat gemigreerd!"; + /* No comment provided by engineer. */ "Chat preferences" = "Gesprek voorkeuren"; @@ -756,6 +792,9 @@ /* No comment provided by engineer. */ "Chinese and Spanish interface" = "Chinese en Spaanse interface"; +/* No comment provided by engineer. */ +"Choose _Migrate from another device_ on the new device and scan QR code." = "Kies _Migreren vanaf een ander apparaat_ op het nieuwe apparaat en scan de QR-code."; + /* No comment provided by engineer. */ "Choose file" = "Kies bestand"; @@ -801,6 +840,9 @@ /* No comment provided by engineer. */ "Confirm database upgrades" = "Bevestig database upgrades"; +/* No comment provided by engineer. */ +"Confirm network settings" = "Bevestig netwerk instellingen"; + /* No comment provided by engineer. */ "Confirm new passphrase…" = "Bevestig nieuw wachtwoord…"; @@ -810,6 +852,12 @@ /* No comment provided by engineer. */ "Confirm password" = "Bevestig wachtwoord"; +/* No comment provided by engineer. */ +"Confirm that you remember database passphrase to migrate it." = "Bevestig dat u het wachtwoord voor de database onthoudt om deze te migreren."; + +/* No comment provided by engineer. */ +"Confirm upload" = "Bevestig het uploaden"; + /* server test step */ "Connect" = "Verbind"; @@ -1008,6 +1056,9 @@ /* No comment provided by engineer. */ "Created on %@" = "Gemaakt op %@"; +/* No comment provided by engineer. */ +"Creating archive link" = "Archief link maken"; + /* No comment provided by engineer. */ "Creating link…" = "Link maken…"; @@ -1155,6 +1206,9 @@ /* No comment provided by engineer. */ "Delete database" = "Database verwijderen"; +/* No comment provided by engineer. */ +"Delete database from this device" = "Verwijder de database van dit apparaat"; + /* server test step */ "Delete file" = "Verwijder bestand"; @@ -1347,9 +1401,18 @@ /* No comment provided by engineer. */ "Downgrade and open chat" = "Downgraden en chat openen"; +/* No comment provided by engineer. */ +"Download failed" = "Download mislukt"; + /* server test step */ "Download file" = "Download bestand"; +/* No comment provided by engineer. */ +"Downloading archive" = "Archief downloaden"; + +/* No comment provided by engineer. */ +"Downloading link details" = "Link gegevens downloaden"; + /* No comment provided by engineer. */ "Duplicate display name!" = "Dubbele weergavenaam!"; @@ -1383,6 +1446,9 @@ /* No comment provided by engineer. */ "Enable for all" = "Inschakelen voor iedereen"; +/* No comment provided by engineer. */ +"Enable in direct chats (BETA)!" = "Activeer in directe chats (BETA)!"; + /* No comment provided by engineer. */ "Enable instant notifications?" = "Onmiddellijke meldingen inschakelen?"; @@ -1497,6 +1563,9 @@ /* No comment provided by engineer. */ "Enter Passcode" = "Voer toegangscode in"; +/* No comment provided by engineer. */ +"Enter passphrase" = "Voer het wachtwoord in"; + /* No comment provided by engineer. */ "Enter passphrase…" = "Voer wachtwoord in…"; @@ -1536,6 +1605,9 @@ /* No comment provided by engineer. */ "Error adding member(s)" = "Fout bij het toevoegen van leden"; +/* No comment provided by engineer. */ +"Error allowing contact PQ encryption" = "Fout bij het toestaan van contact PQ-versleuteling"; + /* No comment provided by engineer. */ "Error changing address" = "Fout bij wijzigen van adres"; @@ -1590,6 +1662,9 @@ /* No comment provided by engineer. */ "Error deleting user profile" = "Fout bij het verwijderen van gebruikers profiel"; +/* No comment provided by engineer. */ +"Error downloading the archive" = "Fout bij het downloaden van het archief"; + /* No comment provided by engineer. */ "Error enabling delivery receipts!" = "Fout bij het inschakelen van ontvangst bevestiging!"; @@ -1635,6 +1710,9 @@ /* No comment provided by engineer. */ "Error saving passphrase to keychain" = "Fout bij opslaan van wachtwoord in de keychain"; +/* when migrating */ +"Error saving settings" = "Fout bij opslaan van instellingen"; + /* No comment provided by engineer. */ "Error saving user password" = "Fout bij opslaan gebruikers wachtwoord"; @@ -1677,6 +1755,12 @@ /* No comment provided by engineer. */ "Error updating user privacy" = "Fout bij updaten van gebruikers privacy"; +/* No comment provided by engineer. */ +"Error uploading the archive" = "Fout bij het uploaden van het archief"; + +/* No comment provided by engineer. */ +"Error verifying passphrase:" = "Fout bij het verifiëren van het wachtwoord:"; + /* No comment provided by engineer. */ "Error: " = "Fout: "; @@ -1710,6 +1794,9 @@ /* No comment provided by engineer. */ "Exported database archive." = "Geëxporteerd database archief."; +/* No comment provided by engineer. */ +"Exported file doesn't exist" = "Geëxporteerd bestand bestaat niet"; + /* No comment provided by engineer. */ "Exporting database archive…" = "Database archief exporteren…"; @@ -1752,6 +1839,12 @@ /* No comment provided by engineer. */ "Filter unread and favorite chats." = "Filter ongelezen en favoriete chats."; +/* No comment provided by engineer. */ +"Finalize migration" = "Voltooi de migratie"; + +/* No comment provided by engineer. */ +"Finalize migration on another device." = "Voltooi de migratie op een ander apparaat."; + /* No comment provided by engineer. */ "Finally, we have them! 🚀" = "Eindelijk, we hebben ze! 🚀"; @@ -1935,6 +2028,9 @@ /* No comment provided by engineer. */ "How to use your servers" = "Hoe u uw servers gebruikt"; +/* No comment provided by engineer. */ +"Hungarian interface" = "Hongaarse interface"; + /* No comment provided by engineer. */ "ICE servers (one per line)" = "ICE servers (één per lijn)"; @@ -1974,6 +2070,12 @@ /* No comment provided by engineer. */ "Import database" = "Database importeren"; +/* No comment provided by engineer. */ +"Import failed" = "Importeren is mislukt"; + +/* No comment provided by engineer. */ +"Importing archive" = "Archief importeren"; + /* No comment provided by engineer. */ "Improved message delivery" = "Verbeterde berichtbezorging"; @@ -1983,6 +2085,9 @@ /* No comment provided by engineer. */ "Improved server configuration" = "Verbeterde serverconfiguratie"; +/* No comment provided by engineer. */ +"In order to continue, chat should be stopped." = "Om verder te kunnen gaan, moet de chat worden gestopt."; + /* No comment provided by engineer. */ "In reply to" = "In antwoord op"; @@ -2067,6 +2172,9 @@ /* No comment provided by engineer. */ "Invalid link" = "Ongeldige link"; +/* No comment provided by engineer. */ +"Invalid migration confirmation" = "Ongeldige migratie bevestiging"; + /* No comment provided by engineer. */ "Invalid name!" = "Ongeldige naam!"; @@ -2331,6 +2439,9 @@ /* No comment provided by engineer. */ "Message text" = "Bericht tekst"; +/* No comment provided by engineer. */ +"Message too large" = "Bericht te groot"; + /* No comment provided by engineer. */ "Messages" = "Berichten"; @@ -2340,9 +2451,36 @@ /* No comment provided by engineer. */ "Messages from %@ will be shown!" = "Berichten van %@ worden getoond!"; +/* No comment provided by engineer. */ +"Messages, files and calls are protected by **end-to-end encryption** with perfect forward secrecy, repudiation and break-in recovery." = "Berichten, bestanden en oproepen worden beschermd door **end-to-end codering** met perfecte voorwaartse geheimhouding, afwijzing en inbraakherstel."; + +/* No comment provided by engineer. */ +"Messages, files and calls are protected by **quantum resistant e2e encryption** with perfect forward secrecy, repudiation and break-in recovery." = "Berichten, bestanden en oproepen worden beschermd door **kwantumbestendige e2e encryptie** met perfecte voorwaartse geheimhouding, afwijzing en inbraakherstel."; + +/* No comment provided by engineer. */ +"Migrate device" = "Apparaat migreren"; + +/* No comment provided by engineer. */ +"Migrate from another device" = "Migreer vanaf een ander apparaat"; + +/* No comment provided by engineer. */ +"Migrate here" = "Migreer hierheen"; + +/* No comment provided by engineer. */ +"Migrate to another device" = "Migreer naar een ander apparaat"; + +/* No comment provided by engineer. */ +"Migrate to another device via QR code." = "Migreer naar een ander apparaat via QR-code."; + +/* No comment provided by engineer. */ +"Migrating" = "Migreren"; + /* No comment provided by engineer. */ "Migrating database archive…" = "Database archief migreren…"; +/* No comment provided by engineer. */ +"Migration complete" = "Migratie voltooid"; + /* No comment provided by engineer. */ "Migration error:" = "Migratiefout:"; @@ -2600,6 +2738,9 @@ /* No comment provided by engineer. */ "Open group" = "Open groep"; +/* authentication reason */ +"Open migration to another device" = "Open de migratie naar een ander apparaat"; + /* No comment provided by engineer. */ "Open Settings" = "Open instellingen"; @@ -2612,9 +2753,15 @@ /* No comment provided by engineer. */ "Opening app…" = "App openen…"; +/* No comment provided by engineer. */ +"Or paste archive link" = "Of plak de archief link"; + /* No comment provided by engineer. */ "Or scan QR code" = "Of scan de QR-code"; +/* No comment provided by engineer. */ +"Or securely share this file link" = "Of deel deze bestands link veilig"; + /* No comment provided by engineer. */ "Or show this code" = "Of laat deze code zien"; @@ -2666,6 +2813,9 @@ /* message decrypt error item */ "Permanent decryption error" = "Decodering fout"; +/* No comment provided by engineer. */ +"Picture-in-picture calls" = "Beeld-in-beeld oproepen"; + /* No comment provided by engineer. */ "PING count" = "PING count"; @@ -2684,6 +2834,9 @@ /* No comment provided by engineer. */ "Please check yours and your contact preferences." = "Controleer de uwe en uw contact voorkeuren."; +/* No comment provided by engineer. */ +"Please confirm that network settings are correct for this device." = "Controleer of de netwerk instellingen correct zijn voor dit apparaat."; + /* No comment provided by engineer. */ "Please contact developers.\nError: %@" = "Neem contact op met ontwikkelaars.\nFout: %@"; @@ -2717,6 +2870,9 @@ /* server test error */ "Possibly, certificate fingerprint in server address is incorrect" = "Mogelijk is de certificaat vingerafdruk in het server adres onjuist"; +/* No comment provided by engineer. */ +"Post-quantum E2EE" = "Post-quantum E2EE"; + /* No comment provided by engineer. */ "Preserve the last message draft, with attachments." = "Bewaar het laatste berichtconcept, met bijlagen."; @@ -2798,6 +2954,15 @@ /* No comment provided by engineer. */ "Push notifications" = "Push meldingen"; +/* No comment provided by engineer. */ +"Push server" = "Push server"; + +/* chat item text */ +"quantum resistant e2e encryption" = "quantum bestendige e2e-codering"; + +/* No comment provided by engineer. */ +"Quantum resistant encryption" = "quantum bestendige encryptie"; + /* No comment provided by engineer. */ "Rate the app" = "Beoordeel de app"; @@ -2933,9 +3098,18 @@ /* No comment provided by engineer. */ "Repeat connection request?" = "Verbindingsverzoek herhalen?"; +/* No comment provided by engineer. */ +"Repeat download" = "Herhaal het downloaden"; + +/* No comment provided by engineer. */ +"Repeat import" = "Herhaal import"; + /* No comment provided by engineer. */ "Repeat join request?" = "Deelnameverzoek herhalen?"; +/* No comment provided by engineer. */ +"Repeat upload" = "Herhaal het uploaden"; + /* chat item action */ "Reply" = "Antwoord"; @@ -2993,6 +3167,9 @@ /* No comment provided by engineer. */ "Run chat" = "Chat uitvoeren"; +/* No comment provided by engineer. */ +"Safer groups" = "Veiligere groepen"; + /* chat item action */ "Save" = "Opslaan"; @@ -3233,6 +3410,9 @@ /* No comment provided by engineer. */ "Set passcode" = "Toegangscode instellen"; +/* No comment provided by engineer. */ +"Set passphrase" = "Wachtwoord instellen"; + /* No comment provided by engineer. */ "Set passphrase to export" = "Wachtwoord instellen om te exporteren"; @@ -3278,6 +3458,9 @@ /* No comment provided by engineer. */ "Show preview" = "Toon voorbeeld"; +/* No comment provided by engineer. */ +"Show QR code" = "Toon QR-code"; + /* No comment provided by engineer. */ "Show:" = "Toon:"; @@ -3338,6 +3521,9 @@ /* notification title */ "Somebody" = "Iemand"; +/* chat item text */ +"standard end-to-end encryption" = "standaard end-to-end encryptie"; + /* No comment provided by engineer. */ "Start chat" = "Begin gesprek"; @@ -3353,6 +3539,9 @@ /* No comment provided by engineer. */ "Stop" = "Stop"; +/* No comment provided by engineer. */ +"Stop chat" = "Stop chat"; + /* No comment provided by engineer. */ "Stop chat to enable database actions" = "Stop de chat om database acties mogelijk te maken"; @@ -3380,6 +3569,9 @@ /* authentication reason */ "Stop SimpleX" = "Stop SimpleX"; +/* No comment provided by engineer. */ +"Stopping chat" = "Chat stoppen"; + /* No comment provided by engineer. */ "strike" = "staking"; @@ -3530,6 +3722,12 @@ /* No comment provided by engineer. */ "This action cannot be undone - your profile, contacts, messages and files will be irreversibly lost." = "Deze actie kan niet ongedaan worden gemaakt. Uw profiel, contacten, berichten en bestanden gaan onomkeerbaar verloren."; +/* E2EE info chat item */ +"This chat is protected by end-to-end encryption." = "Deze chat is beveiligd met end-to-end codering."; + +/* E2EE info chat item */ +"This chat is protected by quantum resistant end-to-end encryption." = "Deze chat wordt beschermd door quantum bestendige end-to-end codering."; + /* notification title */ "this contact" = "dit contact"; @@ -3722,9 +3920,15 @@ /* No comment provided by engineer. */ "Upgrade and open chat" = "Upgrade en open chat"; +/* No comment provided by engineer. */ +"Upload failed" = "Upload mislukt"; + /* server test step */ "Upload file" = "Upload bestand"; +/* No comment provided by engineer. */ +"Uploading archive" = "Archief uploaden"; + /* No comment provided by engineer. */ "Use .onion hosts" = "Gebruik .onion-hosts"; @@ -3755,6 +3959,9 @@ /* No comment provided by engineer. */ "Use SimpleX Chat servers?" = "SimpleX Chat servers gebruiken?"; +/* No comment provided by engineer. */ +"Use the app while in the call." = "Gebruik de app tijdens het gesprek."; + /* No comment provided by engineer. */ "User profile" = "Gebruikers profiel"; @@ -3782,6 +3989,12 @@ /* No comment provided by engineer. */ "Verify connections" = "Controleer verbindingen"; +/* No comment provided by engineer. */ +"Verify database passphrase" = "Controleer het wachtwoord van de database"; + +/* No comment provided by engineer. */ +"Verify passphrase" = "Controleer het wachtwoord"; + /* No comment provided by engineer. */ "Verify security code" = "Controleer de beveiligingscode"; @@ -3860,6 +4073,9 @@ /* No comment provided by engineer. */ "wants to connect to you!" = "wil met je in contact komen!"; +/* No comment provided by engineer. */ +"Warning: starting chat on multiple devices is not supported and will cause message delivery failures" = "Waarschuwing: het starten van de chat op meerdere apparaten wordt niet ondersteund en zal leiden tot mislukte bezorging van berichten"; + /* No comment provided by engineer. */ "Warning: you may lose some data!" = "Waarschuwing: u kunt sommige gegevens verliezen!"; @@ -3875,6 +4091,9 @@ /* No comment provided by engineer. */ "Welcome message" = "Welkomst bericht"; +/* No comment provided by engineer. */ +"Welcome message is too long" = "Welkomstbericht is te lang"; + /* No comment provided by engineer. */ "What's new" = "Wat is er nieuw"; @@ -3911,6 +4130,9 @@ /* No comment provided by engineer. */ "You" = "Jij"; +/* No comment provided by engineer. */ +"You **must not** use the same database on two devices." = "U **mag** niet dezelfde database op twee apparaten gebruiken."; + /* No comment provided by engineer. */ "You accepted connection" = "Je hebt de verbinding geaccepteerd"; @@ -3971,6 +4193,9 @@ /* No comment provided by engineer. */ "You can enable them later via app Privacy & Security settings." = "U kunt ze later inschakelen via de privacy- en beveiligingsinstellingen van de app."; +/* No comment provided by engineer. */ +"You can give another try." = "Je kunt het nog een keer proberen."; + /* No comment provided by engineer. */ "You can hide or mute a user profile - swipe it to the right." = "U kunt een gebruikers profiel verbergen of dempen - veeg het naar rechts."; diff --git a/apps/ios/pl.lproj/Localizable.strings b/apps/ios/pl.lproj/Localizable.strings index bbacb49fb3..5283ba5ad0 100644 --- a/apps/ios/pl.lproj/Localizable.strings +++ b/apps/ios/pl.lproj/Localizable.strings @@ -85,6 +85,9 @@ /* No comment provided by engineer. */ "**Most private**: do not use SimpleX Chat notifications server, check messages periodically in the background (depends on how often you use the app)." = "**Najbardziej prywatny**: nie korzystaj z serwera powiadomień SimpleX Chat, sprawdzaj wiadomości okresowo w tle (zależy jak często korzystasz z aplikacji)."; +/* No comment provided by engineer. */ +"**Please note**: using the same database on two devices will break the decryption of messages from your connections, as a security protection." = "*Uwaga*: używanie tej samej bazy danych na dwóch urządzeniach zepsuje odszyfrowywanie wiadomości twoich połączeń, jako zabezpieczenie."; + /* No comment provided by engineer. */ "**Please note**: you will NOT be able to recover or change passphrase if you lose it." = "**Uwaga**: NIE będziesz w stanie odzyskać lub zmienić hasła, jeśli je stracisz."; @@ -94,6 +97,9 @@ /* No comment provided by engineer. */ "**Warning**: Instant push notifications require passphrase saved in Keychain." = "**Uwaga**: Natychmiastowe powiadomienia push wymagają hasła zapisanego w Keychain."; +/* No comment provided by engineer. */ +"**Warning**: the archive will be removed." = "**Ostrzeżenie**: archiwum zostanie usunięte."; + /* No comment provided by engineer. */ "*bold*" = "\\*pogrubiony*"; @@ -136,6 +142,9 @@ /* No comment provided by engineer. */ "%@ connected" = "%@ połączony"; +/* No comment provided by engineer. */ +"%@ downloaded" = "%@ pobrane"; + /* notification title */ "%@ is connected!" = "%@ jest połączony!"; @@ -148,6 +157,9 @@ /* No comment provided by engineer. */ "%@ servers" = "%@ serwery"; +/* No comment provided by engineer. */ +"%@ uploaded" = "%@ wgrane"; + /* notification title */ "%@ wants to connect!" = "%@ chce się połączyć!"; @@ -377,6 +389,9 @@ /* member role */ "admin" = "administrator"; +/* No comment provided by engineer. */ +"Admins can block a member for all." = "Administratorzy mogą blokować członka dla wszystkich."; + /* No comment provided by engineer. */ "Admins can create the links to join groups." = "Administratorzy mogą tworzyć linki do dołączania do grup."; @@ -416,6 +431,9 @@ /* No comment provided by engineer. */ "All your contacts will remain connected. Profile update will be sent to your contacts." = "Wszystkie Twoje kontakty pozostaną połączone. Aktualizacja profilu zostanie wysłana do Twoich kontaktów."; +/* No comment provided by engineer. */ +"All your contacts, conversations and files will be securely encrypted and uploaded in chunks to configured XFTP relays." = "Wszystkie twoje kontakty, konwersacje i pliki będą bezpiecznie szyfrowane i wgrywane w kawałkach do skonfigurowanych przekaźników XFTP."; + /* No comment provided by engineer. */ "Allow" = "Pozwól"; @@ -497,6 +515,9 @@ /* No comment provided by engineer. */ "App build: %@" = "Kompilacja aplikacji: %@"; +/* No comment provided by engineer. */ +"App data migration" = "Migracja danych aplikacji"; + /* No comment provided by engineer. */ "App encrypts new local files (except videos)." = "Aplikacja szyfruje nowe lokalne pliki (bez filmów)."; @@ -518,6 +539,15 @@ /* No comment provided by engineer. */ "Appearance" = "Wygląd"; +/* No comment provided by engineer. */ +"Apply" = "Zastosuj"; + +/* No comment provided by engineer. */ +"Archive and upload" = "Archiwizuj i prześlij"; + +/* No comment provided by engineer. */ +"Archiving database" = "Archiwizowanie bazy danych"; + /* No comment provided by engineer. */ "Attach" = "Dołącz"; @@ -665,6 +695,9 @@ /* No comment provided by engineer. */ "Cancel" = "Anuluj"; +/* No comment provided by engineer. */ +"Cancel migration" = "Anuluj migrację"; + /* feature offered item */ "cancelled %@" = "anulowany %@"; @@ -744,6 +777,9 @@ /* No comment provided by engineer. */ "Chat is stopped. If you already used this database on another device, you should transfer it back before starting chat." = "Czat został zatrzymany. Jeśli korzystałeś już z tej bazy danych na innym urządzeniu, powinieneś przenieść ją z powrotem przed rozpoczęciem czatu."; +/* No comment provided by engineer. */ +"Chat migrated!" = "Czat zmigrowany!"; + /* No comment provided by engineer. */ "Chat preferences" = "Preferencje czatu"; @@ -756,6 +792,9 @@ /* No comment provided by engineer. */ "Chinese and Spanish interface" = "Chiński i hiszpański interfejs"; +/* No comment provided by engineer. */ +"Choose _Migrate from another device_ on the new device and scan QR code." = "Wybierz _Zmigruj z innego urządzenia_ na nowym urządzeniu i zeskanuj kod QR."; + /* No comment provided by engineer. */ "Choose file" = "Wybierz plik"; @@ -801,6 +840,9 @@ /* No comment provided by engineer. */ "Confirm database upgrades" = "Potwierdź aktualizacje bazy danych"; +/* No comment provided by engineer. */ +"Confirm network settings" = "Potwierdź ustawienia sieciowe"; + /* No comment provided by engineer. */ "Confirm new passphrase…" = "Potwierdź nowe hasło…"; @@ -810,6 +852,12 @@ /* No comment provided by engineer. */ "Confirm password" = "Potwierdź hasło"; +/* No comment provided by engineer. */ +"Confirm that you remember database passphrase to migrate it." = "Potwierdź, że pamiętasz hasło do bazy danych, aby ją zmigrować."; + +/* No comment provided by engineer. */ +"Confirm upload" = "Potwierdź wgranie"; + /* server test step */ "Connect" = "Połącz"; @@ -1008,6 +1056,9 @@ /* No comment provided by engineer. */ "Created on %@" = "Utworzony w dniu %@"; +/* No comment provided by engineer. */ +"Creating archive link" = "Tworzenie linku archiwum"; + /* No comment provided by engineer. */ "Creating link…" = "Tworzenie linku…"; @@ -1155,6 +1206,9 @@ /* No comment provided by engineer. */ "Delete database" = "Usuń bazę danych"; +/* No comment provided by engineer. */ +"Delete database from this device" = "Usuń bazę danych z tego urządzenia"; + /* server test step */ "Delete file" = "Usuń plik"; @@ -1347,9 +1401,18 @@ /* No comment provided by engineer. */ "Downgrade and open chat" = "Obniż wersję i otwórz czat"; +/* No comment provided by engineer. */ +"Download failed" = "Pobieranie nie udane"; + /* server test step */ "Download file" = "Pobierz plik"; +/* No comment provided by engineer. */ +"Downloading archive" = "Pobieranie archiwum"; + +/* No comment provided by engineer. */ +"Downloading link details" = "Pobieranie szczegółów linku"; + /* No comment provided by engineer. */ "Duplicate display name!" = "Zduplikowana wyświetlana nazwa!"; @@ -1383,6 +1446,9 @@ /* No comment provided by engineer. */ "Enable for all" = "Włącz dla wszystkich"; +/* No comment provided by engineer. */ +"Enable in direct chats (BETA)!" = "Włącz w czatach bezpośrednich (BETA)!"; + /* No comment provided by engineer. */ "Enable instant notifications?" = "Włączyć natychmiastowe powiadomienia?"; @@ -1497,6 +1563,9 @@ /* No comment provided by engineer. */ "Enter Passcode" = "Wprowadź Pin"; +/* No comment provided by engineer. */ +"Enter passphrase" = "Wprowadź hasło"; + /* No comment provided by engineer. */ "Enter passphrase…" = "Wprowadź hasło…"; @@ -1536,6 +1605,9 @@ /* No comment provided by engineer. */ "Error adding member(s)" = "Błąd dodawania członka(ów)"; +/* No comment provided by engineer. */ +"Error allowing contact PQ encryption" = "Błąd pozwalania kontaktowi na szyfrowanie PQ"; + /* No comment provided by engineer. */ "Error changing address" = "Błąd zmiany adresu"; @@ -1590,6 +1662,9 @@ /* No comment provided by engineer. */ "Error deleting user profile" = "Błąd usuwania profilu użytkownika"; +/* No comment provided by engineer. */ +"Error downloading the archive" = "Błąd pobierania archiwum"; + /* No comment provided by engineer. */ "Error enabling delivery receipts!" = "Błąd włączania potwierdzeń dostawy!"; @@ -1635,6 +1710,9 @@ /* No comment provided by engineer. */ "Error saving passphrase to keychain" = "Błąd zapisu hasła do pęku kluczy"; +/* when migrating */ +"Error saving settings" = "Błąd zapisywania ustawień"; + /* No comment provided by engineer. */ "Error saving user password" = "Błąd zapisu hasła użytkownika"; @@ -1677,6 +1755,12 @@ /* No comment provided by engineer. */ "Error updating user privacy" = "Błąd aktualizacji prywatności użytkownika"; +/* No comment provided by engineer. */ +"Error uploading the archive" = "Błąd wgrywania archiwum"; + +/* No comment provided by engineer. */ +"Error verifying passphrase:" = "Błąd weryfikowania hasła:"; + /* No comment provided by engineer. */ "Error: " = "Błąd: "; @@ -1710,6 +1794,9 @@ /* No comment provided by engineer. */ "Exported database archive." = "Wyeksportowane archiwum bazy danych."; +/* No comment provided by engineer. */ +"Exported file doesn't exist" = "Wyeksportowany plik nie istnieje"; + /* No comment provided by engineer. */ "Exporting database archive…" = "Eksportowanie archiwum bazy danych…"; @@ -1752,6 +1839,12 @@ /* No comment provided by engineer. */ "Filter unread and favorite chats." = "Filtruj nieprzeczytane i ulubione czaty."; +/* No comment provided by engineer. */ +"Finalize migration" = "Dokończ migrację"; + +/* No comment provided by engineer. */ +"Finalize migration on another device." = "Dokończ migrację na innym urządzeniu."; + /* No comment provided by engineer. */ "Finally, we have them! 🚀" = "W końcu je mamy! 🚀"; @@ -1935,6 +2028,9 @@ /* No comment provided by engineer. */ "How to use your servers" = "Jak korzystać z Twoich serwerów"; +/* No comment provided by engineer. */ +"Hungarian interface" = "Węgierski interfejs"; + /* No comment provided by engineer. */ "ICE servers (one per line)" = "Serwery ICE (po jednym na linię)"; @@ -1974,6 +2070,12 @@ /* No comment provided by engineer. */ "Import database" = "Importuj bazę danych"; +/* No comment provided by engineer. */ +"Import failed" = "Import nie udał się"; + +/* No comment provided by engineer. */ +"Importing archive" = "Importowanie archiwum"; + /* No comment provided by engineer. */ "Improved message delivery" = "Ulepszona dostawa wiadomości"; @@ -1983,6 +2085,9 @@ /* No comment provided by engineer. */ "Improved server configuration" = "Ulepszona konfiguracja serwera"; +/* No comment provided by engineer. */ +"In order to continue, chat should be stopped." = "Aby konturować, czat musi zostać zatrzymany."; + /* No comment provided by engineer. */ "In reply to" = "W odpowiedzi na"; @@ -2067,6 +2172,9 @@ /* No comment provided by engineer. */ "Invalid link" = "Nieprawidłowy link"; +/* No comment provided by engineer. */ +"Invalid migration confirmation" = "Nieprawidłowe potwierdzenie migracji"; + /* No comment provided by engineer. */ "Invalid name!" = "Nieprawidłowa nazwa!"; @@ -2331,6 +2439,9 @@ /* No comment provided by engineer. */ "Message text" = "Tekst wiadomości"; +/* No comment provided by engineer. */ +"Message too large" = "Wiadomość jest zbyt duża"; + /* No comment provided by engineer. */ "Messages" = "Wiadomości"; @@ -2340,9 +2451,36 @@ /* No comment provided by engineer. */ "Messages from %@ will be shown!" = "Wiadomości od %@ zostaną pokazane!"; +/* No comment provided by engineer. */ +"Messages, files and calls are protected by **end-to-end encryption** with perfect forward secrecy, repudiation and break-in recovery." = "Wiadomości, pliki i połączenia są chronione przez **szyfrowanie end-to-end** z doskonałym utajnianiem z wyprzedzeniem i odzyskiem po złamaniu."; + +/* No comment provided by engineer. */ +"Messages, files and calls are protected by **quantum resistant e2e encryption** with perfect forward secrecy, repudiation and break-in recovery." = "Wiadomości, pliki i połączenia są chronione przez **kwantowo odporne szyfrowanie end-to-end** z doskonałym utajnianiem z wyprzedzeniem i odzyskiem po złamaniu."; + +/* No comment provided by engineer. */ +"Migrate device" = "Zmigruj urządzenie"; + +/* No comment provided by engineer. */ +"Migrate from another device" = "Zmigruj z innego urządzenia"; + +/* No comment provided by engineer. */ +"Migrate here" = "Zmigruj tutaj"; + +/* No comment provided by engineer. */ +"Migrate to another device" = "Zmigruj do innego urządzenia"; + +/* No comment provided by engineer. */ +"Migrate to another device via QR code." = "Zmigruj do innego urządzenia przez kod QR."; + +/* No comment provided by engineer. */ +"Migrating" = "Migrowanie"; + /* No comment provided by engineer. */ "Migrating database archive…" = "Migrowanie archiwum bazy danych…"; +/* No comment provided by engineer. */ +"Migration complete" = "Migracja zakończona"; + /* No comment provided by engineer. */ "Migration error:" = "Błąd migracji:"; @@ -2600,6 +2738,9 @@ /* No comment provided by engineer. */ "Open group" = "Grupa otwarta"; +/* authentication reason */ +"Open migration to another device" = "Otwórz migrację na innym urządzeniu"; + /* No comment provided by engineer. */ "Open Settings" = "Otwórz Ustawienia"; @@ -2612,9 +2753,15 @@ /* No comment provided by engineer. */ "Opening app…" = "Otwieranie aplikacji…"; +/* No comment provided by engineer. */ +"Or paste archive link" = "Lub wklej link archiwum"; + /* No comment provided by engineer. */ "Or scan QR code" = "Lub zeskanuj kod QR"; +/* No comment provided by engineer. */ +"Or securely share this file link" = "Lub bezpiecznie udostępnij ten link pliku"; + /* No comment provided by engineer. */ "Or show this code" = "Lub pokaż ten kod"; @@ -2666,6 +2813,9 @@ /* message decrypt error item */ "Permanent decryption error" = "Stały błąd odszyfrowania"; +/* No comment provided by engineer. */ +"Picture-in-picture calls" = "Połączenia obraz-w-obrazie"; + /* No comment provided by engineer. */ "PING count" = "Liczba PINGÓW"; @@ -2684,6 +2834,9 @@ /* No comment provided by engineer. */ "Please check yours and your contact preferences." = "Proszę sprawdzić preferencje Twoje i Twojego kontaktu."; +/* No comment provided by engineer. */ +"Please confirm that network settings are correct for this device." = "Proszę potwierdzić, że ustawienia sieciowe są prawidłowe dla tego urządzenia."; + /* No comment provided by engineer. */ "Please contact developers.\nError: %@" = "Proszę skontaktować się z deweloperami.\nBłąd: %@"; @@ -2717,6 +2870,9 @@ /* server test error */ "Possibly, certificate fingerprint in server address is incorrect" = "Możliwe, że odcisk palca certyfikatu w adresie serwera jest nieprawidłowy"; +/* No comment provided by engineer. */ +"Post-quantum E2EE" = "Postkwantowe E2EE"; + /* No comment provided by engineer. */ "Preserve the last message draft, with attachments." = "Zachowaj ostatnią wersję roboczą wiadomości wraz z załącznikami."; @@ -2798,6 +2954,15 @@ /* No comment provided by engineer. */ "Push notifications" = "Powiadomienia push"; +/* No comment provided by engineer. */ +"Push server" = "Serwer Push"; + +/* chat item text */ +"quantum resistant e2e encryption" = "kwantowo odporne szyfrowanie e2e"; + +/* No comment provided by engineer. */ +"Quantum resistant encryption" = "Kwantowo odporne szyfrowanie"; + /* No comment provided by engineer. */ "Rate the app" = "Oceń aplikację"; @@ -2933,9 +3098,18 @@ /* No comment provided by engineer. */ "Repeat connection request?" = "Powtórzyć prośbę połączenia?"; +/* No comment provided by engineer. */ +"Repeat download" = "Powtórz pobieranie"; + +/* No comment provided by engineer. */ +"Repeat import" = "Powtórz importowanie"; + /* No comment provided by engineer. */ "Repeat join request?" = "Powtórzyć prośbę dołączenia?"; +/* No comment provided by engineer. */ +"Repeat upload" = "Powtórz wgrywanie"; + /* chat item action */ "Reply" = "Odpowiedz"; @@ -2993,6 +3167,9 @@ /* No comment provided by engineer. */ "Run chat" = "Uruchom czat"; +/* No comment provided by engineer. */ +"Safer groups" = "Bezpieczniejsze grupy"; + /* chat item action */ "Save" = "Zapisz"; @@ -3233,6 +3410,9 @@ /* No comment provided by engineer. */ "Set passcode" = "Ustaw pin"; +/* No comment provided by engineer. */ +"Set passphrase" = "Ustaw hasło"; + /* No comment provided by engineer. */ "Set passphrase to export" = "Ustaw hasło do eksportu"; @@ -3278,6 +3458,9 @@ /* No comment provided by engineer. */ "Show preview" = "Pokaż podgląd"; +/* No comment provided by engineer. */ +"Show QR code" = "Pokaż kod QR"; + /* No comment provided by engineer. */ "Show:" = "Pokaż:"; @@ -3338,6 +3521,9 @@ /* notification title */ "Somebody" = "Ktoś"; +/* chat item text */ +"standard end-to-end encryption" = "standardowe szyfrowanie end-to-end"; + /* No comment provided by engineer. */ "Start chat" = "Rozpocznij czat"; @@ -3353,6 +3539,9 @@ /* No comment provided by engineer. */ "Stop" = "Zatrzymaj"; +/* No comment provided by engineer. */ +"Stop chat" = "Zatrzymaj czat"; + /* No comment provided by engineer. */ "Stop chat to enable database actions" = "Zatrzymaj czat, aby umożliwić działania na bazie danych"; @@ -3380,6 +3569,9 @@ /* authentication reason */ "Stop SimpleX" = "Zatrzymaj SimpleX"; +/* No comment provided by engineer. */ +"Stopping chat" = "Zatrzymywanie czatu"; + /* No comment provided by engineer. */ "strike" = "strajk"; @@ -3530,6 +3722,12 @@ /* No comment provided by engineer. */ "This action cannot be undone - your profile, contacts, messages and files will be irreversibly lost." = "Tego działania nie można cofnąć - Twój profil, kontakty, wiadomości i pliki zostaną nieodwracalnie utracone."; +/* E2EE info chat item */ +"This chat is protected by end-to-end encryption." = "Ten czat jest chroniony przez szyfrowanie end-to-end."; + +/* E2EE info chat item */ +"This chat is protected by quantum resistant end-to-end encryption." = "Ten czat jest chroniony przez kwantowo odporne szyfrowanie end-to-end."; + /* notification title */ "this contact" = "ten kontakt"; @@ -3722,9 +3920,15 @@ /* No comment provided by engineer. */ "Upgrade and open chat" = "Zaktualizuj i otwórz czat"; +/* No comment provided by engineer. */ +"Upload failed" = "Wgrywanie nie udane"; + /* server test step */ "Upload file" = "Prześlij plik"; +/* No comment provided by engineer. */ +"Uploading archive" = "Wgrywanie archiwum"; + /* No comment provided by engineer. */ "Use .onion hosts" = "Użyj hostów .onion"; @@ -3755,6 +3959,9 @@ /* No comment provided by engineer. */ "Use SimpleX Chat servers?" = "Użyć serwerów SimpleX Chat?"; +/* No comment provided by engineer. */ +"Use the app while in the call." = "Używaj aplikacji podczas połączenia."; + /* No comment provided by engineer. */ "User profile" = "Profil użytkownika"; @@ -3782,6 +3989,12 @@ /* No comment provided by engineer. */ "Verify connections" = "Zweryfikuj połączenia"; +/* No comment provided by engineer. */ +"Verify database passphrase" = "Zweryfikuj hasło bazy danych"; + +/* No comment provided by engineer. */ +"Verify passphrase" = "Zweryfikuj hasło"; + /* No comment provided by engineer. */ "Verify security code" = "Weryfikuj kod bezpieczeństwa"; @@ -3860,6 +4073,9 @@ /* No comment provided by engineer. */ "wants to connect to you!" = "chce się z Tobą połączyć!"; +/* No comment provided by engineer. */ +"Warning: starting chat on multiple devices is not supported and will cause message delivery failures" = "Ostrzeżenie: rozpoczęcie czatu na wielu urządzeniach nie jest wspierane i spowoduje niepowodzenia dostarczania wiadomości"; + /* No comment provided by engineer. */ "Warning: you may lose some data!" = "Uwaga: możesz stracić niektóre dane!"; @@ -3875,6 +4091,9 @@ /* No comment provided by engineer. */ "Welcome message" = "Wiadomość powitalna"; +/* No comment provided by engineer. */ +"Welcome message is too long" = "Wiadomość powitalna jest zbyt długa"; + /* No comment provided by engineer. */ "What's new" = "Co nowego"; @@ -3911,6 +4130,9 @@ /* No comment provided by engineer. */ "You" = "Ty"; +/* No comment provided by engineer. */ +"You **must not** use the same database on two devices." = "**Nie możesz** używać tej samej bazy na dwóch urządzeniach."; + /* No comment provided by engineer. */ "You accepted connection" = "Zaakceptowałeś połączenie"; @@ -3971,6 +4193,9 @@ /* No comment provided by engineer. */ "You can enable them later via app Privacy & Security settings." = "Możesz je włączyć później w ustawieniach Prywatności i Bezpieczeństwa aplikacji."; +/* No comment provided by engineer. */ +"You can give another try." = "Możesz spróbować ponownie."; + /* No comment provided by engineer. */ "You can hide or mute a user profile - swipe it to the right." = "Możesz ukryć lub wyciszyć profil użytkownika - przesuń palcem w prawo."; diff --git a/apps/ios/ru.lproj/Localizable.strings b/apps/ios/ru.lproj/Localizable.strings index da23c04e10..c3f981d144 100644 --- a/apps/ios/ru.lproj/Localizable.strings +++ b/apps/ios/ru.lproj/Localizable.strings @@ -85,6 +85,9 @@ /* No comment provided by engineer. */ "**Most private**: do not use SimpleX Chat notifications server, check messages periodically in the background (depends on how often you use the app)." = "**Самый конфиденциальный**: не использовать сервер уведомлений SimpleX Chat, проверять сообщения периодически в фоновом режиме (зависит от того насколько часто Вы используете приложение)."; +/* No comment provided by engineer. */ +"**Please note**: using the same database on two devices will break the decryption of messages from your connections, as a security protection." = "**Обратите внимание**: использование одной и той же базы данных на двух устройствах нарушит расшифровку сообщений от ваших контактов, как свойство защиты соединений."; + /* No comment provided by engineer. */ "**Please note**: you will NOT be able to recover or change passphrase if you lose it." = "**Внимание**: Вы не сможете восстановить или поменять пароль, если Вы его потеряете."; @@ -94,6 +97,9 @@ /* No comment provided by engineer. */ "**Warning**: Instant push notifications require passphrase saved in Keychain." = "**Внимание**: для работы мгновенных уведомлений пароль должен быть сохранен в Keychain."; +/* No comment provided by engineer. */ +"**Warning**: the archive will be removed." = "**Внимание**: архив будет удален."; + /* No comment provided by engineer. */ "*bold*" = "\\*жирный*"; @@ -136,6 +142,9 @@ /* No comment provided by engineer. */ "%@ connected" = "%@ соединен(а)"; +/* No comment provided by engineer. */ +"%@ downloaded" = "%@ загружено"; + /* notification title */ "%@ is connected!" = "Установлено соединение с %@!"; @@ -148,6 +157,9 @@ /* No comment provided by engineer. */ "%@ servers" = "%@ серверы"; +/* No comment provided by engineer. */ +"%@ uploaded" = "%@ загружено"; + /* notification title */ "%@ wants to connect!" = "%@ хочет соединиться!"; @@ -377,6 +389,9 @@ /* member role */ "admin" = "админ"; +/* No comment provided by engineer. */ +"Admins can block a member for all." = "Админы могут заблокировать члена группы."; + /* No comment provided by engineer. */ "Admins can create the links to join groups." = "Админы могут создать ссылки для вступления в группу."; @@ -416,6 +431,9 @@ /* No comment provided by engineer. */ "All your contacts will remain connected. Profile update will be sent to your contacts." = "Все Ваши контакты сохранятся. Обновленный профиль будет отправлен Вашим контактам."; +/* No comment provided by engineer. */ +"All your contacts, conversations and files will be securely encrypted and uploaded in chunks to configured XFTP relays." = "Все ваши контакты, разговоры и файлы будут надежно зашифрованы и загружены на выбранные XFTP серверы."; + /* No comment provided by engineer. */ "Allow" = "Разрешить"; @@ -497,6 +515,9 @@ /* No comment provided by engineer. */ "App build: %@" = "Сборка приложения: %@"; +/* No comment provided by engineer. */ +"App data migration" = "Миграция данных"; + /* No comment provided by engineer. */ "App encrypts new local files (except videos)." = "Приложение шифрует новые локальные файлы (кроме видео)."; @@ -518,6 +539,15 @@ /* No comment provided by engineer. */ "Appearance" = "Интерфейс"; +/* No comment provided by engineer. */ +"Apply" = "Применить"; + +/* No comment provided by engineer. */ +"Archive and upload" = "Архивировать и загрузить"; + +/* No comment provided by engineer. */ +"Archiving database" = "Подготовка архива"; + /* No comment provided by engineer. */ "Attach" = "Прикрепить"; @@ -665,6 +695,9 @@ /* No comment provided by engineer. */ "Cancel" = "Отменить"; +/* No comment provided by engineer. */ +"Cancel migration" = "Отменить миграцию"; + /* feature offered item */ "cancelled %@" = "отменил(a) %@"; @@ -744,6 +777,9 @@ /* No comment provided by engineer. */ "Chat is stopped. If you already used this database on another device, you should transfer it back before starting chat." = "Чат остановлен. Если вы уже использовали эту базу данных на другом устройстве, перенесите ее обратно до запуска чата."; +/* No comment provided by engineer. */ +"Chat migrated!" = "Чат мигрирован!"; + /* No comment provided by engineer. */ "Chat preferences" = "Предпочтения"; @@ -756,6 +792,9 @@ /* No comment provided by engineer. */ "Chinese and Spanish interface" = "Китайский и Испанский интерфейс"; +/* No comment provided by engineer. */ +"Choose _Migrate from another device_ on the new device and scan QR code." = "Выберите _Мигрировать с другого устройства_ на новом устройстве и сосканируйте QR код."; + /* No comment provided by engineer. */ "Choose file" = "Выбрать файл"; @@ -801,6 +840,9 @@ /* No comment provided by engineer. */ "Confirm database upgrades" = "Подтвердить обновление базы данных"; +/* No comment provided by engineer. */ +"Confirm network settings" = "Подтвердите настройки сети"; + /* No comment provided by engineer. */ "Confirm new passphrase…" = "Подтвердите новый пароль…"; @@ -810,6 +852,12 @@ /* No comment provided by engineer. */ "Confirm password" = "Подтвердить пароль"; +/* No comment provided by engineer. */ +"Confirm that you remember database passphrase to migrate it." = "Подтвердите, что Вы помните пароль базы данных для ее миграции."; + +/* No comment provided by engineer. */ +"Confirm upload" = "Подтвердить загрузку"; + /* server test step */ "Connect" = "Соединиться"; @@ -1008,6 +1056,9 @@ /* No comment provided by engineer. */ "Created on %@" = "Дата создания %@"; +/* No comment provided by engineer. */ +"Creating archive link" = "Создание ссылки на архив"; + /* No comment provided by engineer. */ "Creating link…" = "Создаётся ссылка…"; @@ -1155,6 +1206,9 @@ /* No comment provided by engineer. */ "Delete database" = "Удалить данные чата"; +/* No comment provided by engineer. */ +"Delete database from this device" = "Удалить базу данных с этого устройства"; + /* server test step */ "Delete file" = "Удалить файл"; @@ -1347,9 +1401,18 @@ /* No comment provided by engineer. */ "Downgrade and open chat" = "Откатить версию и открыть чат"; +/* No comment provided by engineer. */ +"Download failed" = "Ошибка загрузки"; + /* server test step */ "Download file" = "Загрузка файла"; +/* No comment provided by engineer. */ +"Downloading archive" = "Загрузка архива"; + +/* No comment provided by engineer. */ +"Downloading link details" = "Загрузка ссылки архива"; + /* No comment provided by engineer. */ "Duplicate display name!" = "Имя профиля уже используется!"; @@ -1383,6 +1446,9 @@ /* No comment provided by engineer. */ "Enable for all" = "Включить для всех"; +/* No comment provided by engineer. */ +"Enable in direct chats (BETA)!" = "Включите для контактов (BETA)!"; + /* No comment provided by engineer. */ "Enable instant notifications?" = "Включить мгновенные уведомления?"; @@ -1497,6 +1563,9 @@ /* No comment provided by engineer. */ "Enter Passcode" = "Введите Код"; +/* No comment provided by engineer. */ +"Enter passphrase" = "Введите пароль"; + /* No comment provided by engineer. */ "Enter passphrase…" = "Введите пароль…"; @@ -1536,6 +1605,9 @@ /* No comment provided by engineer. */ "Error adding member(s)" = "Ошибка при добавлении членов группы"; +/* No comment provided by engineer. */ +"Error allowing contact PQ encryption" = "Ошибка разрешения квантово-устойчивого шифрования"; + /* No comment provided by engineer. */ "Error changing address" = "Ошибка при изменении адреса"; @@ -1590,6 +1662,9 @@ /* No comment provided by engineer. */ "Error deleting user profile" = "Ошибка удаления профиля пользователя"; +/* No comment provided by engineer. */ +"Error downloading the archive" = "Ошибка загрузки архива"; + /* No comment provided by engineer. */ "Error enabling delivery receipts!" = "Ошибка при включении отчётов о доставке!"; @@ -1635,6 +1710,9 @@ /* No comment provided by engineer. */ "Error saving passphrase to keychain" = "Ошибка сохранения пароля в Keychain"; +/* when migrating */ +"Error saving settings" = "Ошибка сохранения настроек"; + /* No comment provided by engineer. */ "Error saving user password" = "Ошибка при сохранении пароля пользователя"; @@ -1677,6 +1755,12 @@ /* No comment provided by engineer. */ "Error updating user privacy" = "Ошибка при обновлении конфиденциальности"; +/* No comment provided by engineer. */ +"Error uploading the archive" = "Ошибка загрузки архива"; + +/* No comment provided by engineer. */ +"Error verifying passphrase:" = "Ошибка подтверждения пароля:"; + /* No comment provided by engineer. */ "Error: " = "Ошибка: "; @@ -1710,6 +1794,9 @@ /* No comment provided by engineer. */ "Exported database archive." = "Архив чата экспортирован."; +/* No comment provided by engineer. */ +"Exported file doesn't exist" = "Экспортированный файл не существует"; + /* No comment provided by engineer. */ "Exporting database archive…" = "Архив чата экспортируется…"; @@ -1752,6 +1839,12 @@ /* No comment provided by engineer. */ "Filter unread and favorite chats." = "Фильтровать непрочитанные и избранные чаты."; +/* No comment provided by engineer. */ +"Finalize migration" = "Завершить миграцию"; + +/* No comment provided by engineer. */ +"Finalize migration on another device." = "Завершите миграцию на другом устройстве."; + /* No comment provided by engineer. */ "Finally, we have them! 🚀" = "Наконец-то, мы их добавили! 🚀"; @@ -1935,6 +2028,9 @@ /* No comment provided by engineer. */ "How to use your servers" = "Как использовать серверы"; +/* No comment provided by engineer. */ +"Hungarian interface" = "Венгерский интерфейс"; + /* No comment provided by engineer. */ "ICE servers (one per line)" = "ICE серверы (один на строке)"; @@ -1974,6 +2070,12 @@ /* No comment provided by engineer. */ "Import database" = "Импорт архива чата"; +/* No comment provided by engineer. */ +"Import failed" = "Ошибка импорта"; + +/* No comment provided by engineer. */ +"Importing archive" = "Импорт архива"; + /* No comment provided by engineer. */ "Improved message delivery" = "Улучшенная доставка сообщений"; @@ -1983,6 +2085,9 @@ /* No comment provided by engineer. */ "Improved server configuration" = "Улучшенная конфигурация серверов"; +/* No comment provided by engineer. */ +"In order to continue, chat should be stopped." = "Чтобы продолжить, чат должен быть остановлен."; + /* No comment provided by engineer. */ "In reply to" = "В ответ на"; @@ -2067,6 +2172,9 @@ /* No comment provided by engineer. */ "Invalid link" = "Ошибка ссылки"; +/* No comment provided by engineer. */ +"Invalid migration confirmation" = "Ошибка подтверждения миграции"; + /* No comment provided by engineer. */ "Invalid name!" = "Неверное имя!"; @@ -2331,6 +2439,9 @@ /* No comment provided by engineer. */ "Message text" = "Текст сообщения"; +/* No comment provided by engineer. */ +"Message too large" = "Сообщение слишком большое"; + /* No comment provided by engineer. */ "Messages" = "Сообщения"; @@ -2340,9 +2451,36 @@ /* No comment provided by engineer. */ "Messages from %@ will be shown!" = "Сообщения от %@ будут показаны!"; +/* No comment provided by engineer. */ +"Messages, files and calls are protected by **end-to-end encryption** with perfect forward secrecy, repudiation and break-in recovery." = "Сообщения, файлы и звонки защищены **end-to-end шифрованием** с прямой секретностью (PFS), правдоподобным отрицанием и восстановлением от взлома."; + +/* No comment provided by engineer. */ +"Messages, files and calls are protected by **quantum resistant e2e encryption** with perfect forward secrecy, repudiation and break-in recovery." = "Сообщения, файлы и звонки защищены **квантово-устойчивым end-to-end шифрованием** с прямой секретностью (PFS), правдоподобным отрицанием и восстановлением от взлома."; + +/* No comment provided by engineer. */ +"Migrate device" = "Мигрировать устройство"; + +/* No comment provided by engineer. */ +"Migrate from another device" = "Миграция с другого устройства"; + +/* No comment provided by engineer. */ +"Migrate here" = "Мигрировать сюда"; + +/* No comment provided by engineer. */ +"Migrate to another device" = "Мигрировать на другое устройство"; + +/* No comment provided by engineer. */ +"Migrate to another device via QR code." = "Мигрируйте на другое устройство через QR код."; + +/* No comment provided by engineer. */ +"Migrating" = "Миграция"; + /* No comment provided by engineer. */ "Migrating database archive…" = "Данные чата перемещаются…"; +/* No comment provided by engineer. */ +"Migration complete" = "Миграция завершена"; + /* No comment provided by engineer. */ "Migration error:" = "Ошибка при перемещении данных:"; @@ -2600,6 +2738,9 @@ /* No comment provided by engineer. */ "Open group" = "Открыть группу"; +/* authentication reason */ +"Open migration to another device" = "Открытие миграции на другое устройство"; + /* No comment provided by engineer. */ "Open Settings" = "Открыть Настройки"; @@ -2612,9 +2753,15 @@ /* No comment provided by engineer. */ "Opening app…" = "Приложение отрывается…"; +/* No comment provided by engineer. */ +"Or paste archive link" = "Или вставьте ссылку архива"; + /* No comment provided by engineer. */ "Or scan QR code" = "Или отсканируйте QR код"; +/* No comment provided by engineer. */ +"Or securely share this file link" = "Или передайте эту ссылку"; + /* No comment provided by engineer. */ "Or show this code" = "Или покажите этот код"; @@ -2666,6 +2813,9 @@ /* message decrypt error item */ "Permanent decryption error" = "Ошибка расшифровки"; +/* No comment provided by engineer. */ +"Picture-in-picture calls" = "Звонки с картинкой-в-картинке"; + /* No comment provided by engineer. */ "PING count" = "Количество PING"; @@ -2684,6 +2834,9 @@ /* No comment provided by engineer. */ "Please check yours and your contact preferences." = "Проверьте предпочтения Вашего контакта."; +/* No comment provided by engineer. */ +"Please confirm that network settings are correct for this device." = "Пожалуйста, подтвердите, что настройки сети верны для этого устройства."; + /* No comment provided by engineer. */ "Please contact developers.\nError: %@" = "Пожалуйста, сообщите разработчикам.\nОшибка: %@"; @@ -2717,6 +2870,9 @@ /* server test error */ "Possibly, certificate fingerprint in server address is incorrect" = "Возможно, хэш сертификата в адресе сервера неверный"; +/* No comment provided by engineer. */ +"Post-quantum E2EE" = "Квантово-устойчивое E2EE"; + /* No comment provided by engineer. */ "Preserve the last message draft, with attachments." = "Сохранить последний черновик, вместе с вложениями."; @@ -2798,6 +2954,15 @@ /* No comment provided by engineer. */ "Push notifications" = "Доставка уведомлений"; +/* No comment provided by engineer. */ +"Push server" = "Сервер уведомлений"; + +/* chat item text */ +"quantum resistant e2e encryption" = "квантово-устойчивое e2e шифрование"; + +/* No comment provided by engineer. */ +"Quantum resistant encryption" = "Квантово-устойчивое шифрование"; + /* No comment provided by engineer. */ "Rate the app" = "Оценить приложение"; @@ -2933,9 +3098,18 @@ /* No comment provided by engineer. */ "Repeat connection request?" = "Повторить запрос на соединение?"; +/* No comment provided by engineer. */ +"Repeat download" = "Повторить загрузку"; + +/* No comment provided by engineer. */ +"Repeat import" = "Повторить импорт"; + /* No comment provided by engineer. */ "Repeat join request?" = "Повторить запрос на вступление?"; +/* No comment provided by engineer. */ +"Repeat upload" = "Повторить загрузку"; + /* chat item action */ "Reply" = "Ответить"; @@ -2993,6 +3167,9 @@ /* No comment provided by engineer. */ "Run chat" = "Запустить chat"; +/* No comment provided by engineer. */ +"Safer groups" = "Более безопасные группы"; + /* chat item action */ "Save" = "Сохранить"; @@ -3233,6 +3410,9 @@ /* No comment provided by engineer. */ "Set passcode" = "Установить код доступа"; +/* No comment provided by engineer. */ +"Set passphrase" = "Установить пароль"; + /* No comment provided by engineer. */ "Set passphrase to export" = "Установите пароль"; @@ -3278,6 +3458,9 @@ /* No comment provided by engineer. */ "Show preview" = "Показывать уведомления"; +/* No comment provided by engineer. */ +"Show QR code" = "Показать QR код"; + /* No comment provided by engineer. */ "Show:" = "Показать:"; @@ -3338,6 +3521,9 @@ /* notification title */ "Somebody" = "Контакт"; +/* chat item text */ +"standard end-to-end encryption" = "стандартное end-to-end шифрование"; + /* No comment provided by engineer. */ "Start chat" = "Запустить чат"; @@ -3353,6 +3539,9 @@ /* No comment provided by engineer. */ "Stop" = "Остановить"; +/* No comment provided by engineer. */ +"Stop chat" = "Остановить чат"; + /* No comment provided by engineer. */ "Stop chat to enable database actions" = "Остановите чат, чтобы разблокировать операции с архивом чата"; @@ -3380,6 +3569,9 @@ /* authentication reason */ "Stop SimpleX" = "Остановить SimpleX"; +/* No comment provided by engineer. */ +"Stopping chat" = "Остановка чата"; + /* No comment provided by engineer. */ "strike" = "зачеркнуть"; @@ -3530,6 +3722,12 @@ /* No comment provided by engineer. */ "This action cannot be undone - your profile, contacts, messages and files will be irreversibly lost." = "Это действие нельзя отменить — Ваш профиль, контакты, сообщения и файлы будут безвозвратно утеряны."; +/* E2EE info chat item */ +"This chat is protected by end-to-end encryption." = "Чат защищен end-to-end шифрованием."; + +/* E2EE info chat item */ +"This chat is protected by quantum resistant end-to-end encryption." = "Чат защищен квантово-устойчивым end-to-end шифрованием."; + /* notification title */ "this contact" = "этот контакт"; @@ -3722,9 +3920,15 @@ /* No comment provided by engineer. */ "Upgrade and open chat" = "Обновить и открыть чат"; +/* No comment provided by engineer. */ +"Upload failed" = "Ошибка загрузки"; + /* server test step */ "Upload file" = "Загрузка файла"; +/* No comment provided by engineer. */ +"Uploading archive" = "Загрузка архива"; + /* No comment provided by engineer. */ "Use .onion hosts" = "Использовать .onion хосты"; @@ -3755,6 +3959,9 @@ /* No comment provided by engineer. */ "Use SimpleX Chat servers?" = "Использовать серверы предосталенные SimpleX Chat?"; +/* No comment provided by engineer. */ +"Use the app while in the call." = "Используйте приложение во время звонка."; + /* No comment provided by engineer. */ "User profile" = "Профиль чата"; @@ -3782,6 +3989,12 @@ /* No comment provided by engineer. */ "Verify connections" = "Проверять соединения"; +/* No comment provided by engineer. */ +"Verify database passphrase" = "Проверка пароля базы данных"; + +/* No comment provided by engineer. */ +"Verify passphrase" = "Проверить пароль"; + /* No comment provided by engineer. */ "Verify security code" = "Подтвердить код безопасности"; @@ -3860,6 +4073,9 @@ /* No comment provided by engineer. */ "wants to connect to you!" = "хочет соединиться с Вами!"; +/* No comment provided by engineer. */ +"Warning: starting chat on multiple devices is not supported and will cause message delivery failures" = "Внимание: запуск чата на нескольких устройствах не поддерживается и приведет к сбоям доставки сообщений."; + /* No comment provided by engineer. */ "Warning: you may lose some data!" = "Предупреждение: Вы можете потерять какие то данные!"; @@ -3875,6 +4091,9 @@ /* No comment provided by engineer. */ "Welcome message" = "Приветственное сообщение"; +/* No comment provided by engineer. */ +"Welcome message is too long" = "Приветственное сообщение слишком длинное"; + /* No comment provided by engineer. */ "What's new" = "Новые функции"; @@ -3911,6 +4130,9 @@ /* No comment provided by engineer. */ "You" = "Вы"; +/* No comment provided by engineer. */ +"You **must not** use the same database on two devices." = "Вы **не должны** использовать одну и ту же базу данных на двух устройствах."; + /* No comment provided by engineer. */ "You accepted connection" = "Вы приняли приглашение соединиться"; @@ -3971,6 +4193,9 @@ /* No comment provided by engineer. */ "You can enable them later via app Privacy & Security settings." = "Вы можете включить их позже в настройках Конфиденциальности."; +/* No comment provided by engineer. */ +"You can give another try." = "Вы можете попробовать еще раз."; + /* No comment provided by engineer. */ "You can hide or mute a user profile - swipe it to the right." = "Вы можете скрыть профиль или выключить уведомления - потяните его вправо."; diff --git a/apps/ios/tr.lproj/Localizable.strings b/apps/ios/tr.lproj/Localizable.strings index 8f7eea47c5..bded9498b9 100644 --- a/apps/ios/tr.lproj/Localizable.strings +++ b/apps/ios/tr.lproj/Localizable.strings @@ -85,6 +85,9 @@ /* No comment provided by engineer. */ "**Most private**: do not use SimpleX Chat notifications server, check messages periodically in the background (depends on how often you use the app)." = "**En gizli**: SimpleX Chat bildirim sunucusunu kullanma, arkaplanda mesajları periyodik olarak kontrol edin (uygulamayı ne sıklıkta kullandığınıza bağlıdır)."; +/* No comment provided by engineer. */ +"**Please note**: using the same database on two devices will break the decryption of messages from your connections, as a security protection." = "**Lütfen dikkat**: Aynı veritabanını iki cihazda kullanmak, güvenlik koruması olarak bağlantılarınızdaki mesajların şifresinin çözülmesini engelleyecektir."; + /* No comment provided by engineer. */ "**Please note**: you will NOT be able to recover or change passphrase if you lose it." = "**Lütfen aklınızda bulunsun**: eğer parolanızı kaybederseniz parolanızı değiştirme veya geri kurtarma ihtimaliniz YOKTUR."; @@ -94,6 +97,9 @@ /* No comment provided by engineer. */ "**Warning**: Instant push notifications require passphrase saved in Keychain." = "**Dikkat**: Anında iletilen bildirimlere Anahtar Zinciri'nde kaydedilmiş parola gereklidir."; +/* No comment provided by engineer. */ +"**Warning**: the archive will be removed." = "**Uyarı**: arşiv silinecektir."; + /* No comment provided by engineer. */ "*bold*" = "\\*kalın*"; @@ -136,6 +142,9 @@ /* No comment provided by engineer. */ "%@ connected" = "%@ bağlandı"; +/* No comment provided by engineer. */ +"%@ downloaded" = "%@ indirildi"; + /* notification title */ "%@ is connected!" = "%@ bağlandı!"; @@ -148,6 +157,9 @@ /* No comment provided by engineer. */ "%@ servers" = "%@ sunucuları"; +/* No comment provided by engineer. */ +"%@ uploaded" = "%@ yüklendi"; + /* notification title */ "%@ wants to connect!" = "%@ bağlanmak istiyor!"; @@ -248,7 +260,7 @@ "%u messages failed to decrypt." = "%u mesajın şifreleme çözümü başarısız oldu."; /* No comment provided by engineer. */ -"%u messages skipped." = "%u mesaj atlandı"; +"%u messages skipped." = "%u mesajlar atlandı."; /* No comment provided by engineer. */ "`a + b`" = "\\`a + b`"; @@ -377,6 +389,9 @@ /* member role */ "admin" = "yönetici"; +/* No comment provided by engineer. */ +"Admins can block a member for all." = "Yöneticiler bir üyeyi tamamen engelleyebilirler."; + /* No comment provided by engineer. */ "Admins can create the links to join groups." = "Yöneticiler gruplara katılmak için bağlantılar oluşturabilir."; @@ -416,6 +431,9 @@ /* No comment provided by engineer. */ "All your contacts will remain connected. Profile update will be sent to your contacts." = "Tüm kişileriniz bağlı kalacaktır. Profil güncellemesi kişilerinize gönderilecektir."; +/* No comment provided by engineer. */ +"All your contacts, conversations and files will be securely encrypted and uploaded in chunks to configured XFTP relays." = "Tüm kişileriniz, sohbetleriniz ve dosyalarınız güvenli bir şekilde şifrelenecek ve parçalar halinde yapılandırılmış XFTP rölelerine yüklenecektir."; + /* No comment provided by engineer. */ "Allow" = "İzin ver"; @@ -483,7 +501,7 @@ "always" = "her zaman"; /* No comment provided by engineer. */ -"Always use relay" = "Her zaman yönlendirici kulan"; +"Always use relay" = "Her zaman yönlendirici kullan"; /* No comment provided by engineer. */ "An empty chat profile with the provided name is created, and the app opens as usual." = "Verilen adla boş bir sohbet profili oluşturulur ve uygulama her zamanki gibi açılır."; @@ -497,6 +515,9 @@ /* No comment provided by engineer. */ "App build: %@" = "Uygulama sürümü: %@"; +/* No comment provided by engineer. */ +"App data migration" = "Uygulama verisi taşıma"; + /* No comment provided by engineer. */ "App encrypts new local files (except videos)." = "Uygulama yerel dosyaları şifreler (videolar dışında)."; @@ -518,6 +539,15 @@ /* No comment provided by engineer. */ "Appearance" = "Görünüş"; +/* No comment provided by engineer. */ +"Apply" = "Uygula"; + +/* No comment provided by engineer. */ +"Archive and upload" = "Arşivle ve yükle"; + +/* No comment provided by engineer. */ +"Archiving database" = "Veritabanı arşivleniyor"; + /* No comment provided by engineer. */ "Attach" = "Ekle"; @@ -665,6 +695,9 @@ /* No comment provided by engineer. */ "Cancel" = "İptal et"; +/* No comment provided by engineer. */ +"Cancel migration" = "Taşımayı iptal et"; + /* feature offered item */ "cancelled %@" = "%@ iptal edildi"; @@ -744,6 +777,9 @@ /* No comment provided by engineer. */ "Chat is stopped. If you already used this database on another device, you should transfer it back before starting chat." = "Sohbet durduruldu. Bu veritabanını zaten başka bir cihazda kullandıysanız, sohbete başlamadan önce onu geri aktarmalısınız."; +/* No comment provided by engineer. */ +"Chat migrated!" = "Sohbet taşındı!"; + /* No comment provided by engineer. */ "Chat preferences" = "Sohbet tercihleri"; @@ -756,6 +792,9 @@ /* No comment provided by engineer. */ "Chinese and Spanish interface" = "Çince ve İspanyolca arayüz"; +/* No comment provided by engineer. */ +"Choose _Migrate from another device_ on the new device and scan QR code." = "Yeni cihazda _Başka bir cihazdan taşı_ seçeneğini seçin ve QR kodunu tarayın."; + /* No comment provided by engineer. */ "Choose file" = "Dosya seç"; @@ -801,6 +840,9 @@ /* No comment provided by engineer. */ "Confirm database upgrades" = "Veritabanı geliştirmelerini onayla"; +/* No comment provided by engineer. */ +"Confirm network settings" = "Ağ ayarlarını onaylayın"; + /* No comment provided by engineer. */ "Confirm new passphrase…" = "Yeni parolayı onayla…"; @@ -810,6 +852,12 @@ /* No comment provided by engineer. */ "Confirm password" = "Şifreyi onayla"; +/* No comment provided by engineer. */ +"Confirm that you remember database passphrase to migrate it." = "Taşımak için veritabanı parolasını hatırladığınızı doğrulayın."; + +/* No comment provided by engineer. */ +"Confirm upload" = "Yüklemeyi onayla"; + /* server test step */ "Connect" = "Bağlan"; @@ -1008,6 +1056,9 @@ /* No comment provided by engineer. */ "Created on %@" = "%@ de oluşturuldu"; +/* No comment provided by engineer. */ +"Creating archive link" = "Arşiv bağlantısı oluşturuluyor"; + /* No comment provided by engineer. */ "Creating link…" = "Link oluşturuluyor…"; @@ -1155,6 +1206,9 @@ /* No comment provided by engineer. */ "Delete database" = "Veritabanını sil"; +/* No comment provided by engineer. */ +"Delete database from this device" = "Veritabanını bu cihazdan sil"; + /* server test step */ "Delete file" = "Dosyayı sil"; @@ -1347,9 +1401,18 @@ /* No comment provided by engineer. */ "Downgrade and open chat" = "Sürüm düşür ve sohbeti aç"; +/* No comment provided by engineer. */ +"Download failed" = "Yükleme başarısız oldu"; + /* server test step */ "Download file" = "Dosya indir"; +/* No comment provided by engineer. */ +"Downloading archive" = "Arşiv indiriliyor"; + +/* No comment provided by engineer. */ +"Downloading link details" = "Bağlantı detayları indiriliyor"; + /* No comment provided by engineer. */ "Duplicate display name!" = "Yinelenen görünen ad!"; @@ -1383,6 +1446,9 @@ /* No comment provided by engineer. */ "Enable for all" = "Herkes için etkinleştir"; +/* No comment provided by engineer. */ +"Enable in direct chats (BETA)!" = "Doğrudan sohbetlerde etkinleştirin (BETA)!"; + /* No comment provided by engineer. */ "Enable instant notifications?" = "Anlık bildirimler etkinleştirilsin mi?"; @@ -1497,6 +1563,9 @@ /* No comment provided by engineer. */ "Enter Passcode" = "Şifre gir"; +/* No comment provided by engineer. */ +"Enter passphrase" = "Parolayı girin"; + /* No comment provided by engineer. */ "Enter passphrase…" = "Parola gir…"; @@ -1590,6 +1659,9 @@ /* No comment provided by engineer. */ "Error deleting user profile" = "Kullanıcı profili silinirken hata oluştu"; +/* No comment provided by engineer. */ +"Error downloading the archive" = "Arşiv indirilirken hata oluştu"; + /* No comment provided by engineer. */ "Error enabling delivery receipts!" = "Görüldü bilgisi etkinleştirilirken hata oluştu!"; @@ -1635,6 +1707,9 @@ /* No comment provided by engineer. */ "Error saving passphrase to keychain" = "Parolayı Anahtar Zincirine kaydederken hata oluştu"; +/* when migrating */ +"Error saving settings" = "Ayarlar kaydedilirken hata oluştu"; + /* No comment provided by engineer. */ "Error saving user password" = "Kullanıcı şifresi kaydedilirken hata oluştu"; @@ -1677,6 +1752,12 @@ /* No comment provided by engineer. */ "Error updating user privacy" = "Kullanıcı gizliliği güncellenirken hata oluştu"; +/* No comment provided by engineer. */ +"Error uploading the archive" = "Arşiv yüklenirken hata oluştu"; + +/* No comment provided by engineer. */ +"Error verifying passphrase:" = "Parola doğrulanırken hata oluştu:"; + /* No comment provided by engineer. */ "Error: " = "Hata: "; @@ -1710,6 +1791,9 @@ /* No comment provided by engineer. */ "Exported database archive." = "Dışarı çıkarılmış veritabanı arşivi."; +/* No comment provided by engineer. */ +"Exported file doesn't exist" = "Dışa aktarılan dosya mevcut değil"; + /* No comment provided by engineer. */ "Exporting database archive…" = "Dışarı çıkarılmış veritabanı arşivi…"; @@ -1752,6 +1836,12 @@ /* No comment provided by engineer. */ "Filter unread and favorite chats." = "Favori ve okunmamış sohbetleri filtrele."; +/* No comment provided by engineer. */ +"Finalize migration" = "Taşıma işlemini sonlandır"; + +/* No comment provided by engineer. */ +"Finalize migration on another device." = "Taşıma işlemini başka bir cihazda sonlandırın."; + /* No comment provided by engineer. */ "Finally, we have them! 🚀" = "Sonunda, onlara sahibiz! 🚀"; @@ -1974,6 +2064,12 @@ /* No comment provided by engineer. */ "Import database" = "Veritabanını içe aktar"; +/* No comment provided by engineer. */ +"Import failed" = "İçe aktarma başarısız oldu"; + +/* No comment provided by engineer. */ +"Importing archive" = "Arşiv içe aktarılıyor"; + /* No comment provided by engineer. */ "Improved message delivery" = "İyileştirilmiş mesaj iletimi"; @@ -1983,6 +2079,9 @@ /* No comment provided by engineer. */ "Improved server configuration" = "Geliştirilmiş sunucu yapılandırması"; +/* No comment provided by engineer. */ +"In order to continue, chat should be stopped." = "Devam etmek için sohbetin durdurulması gerekiyor."; + /* No comment provided by engineer. */ "In reply to" = "Cevap olarak"; @@ -2067,6 +2166,9 @@ /* No comment provided by engineer. */ "Invalid link" = "Geçersiz bağlantı"; +/* No comment provided by engineer. */ +"Invalid migration confirmation" = "Geçersiz taşıma onayı"; + /* No comment provided by engineer. */ "Invalid name!" = "Geçersiz isim!"; @@ -2331,6 +2433,9 @@ /* No comment provided by engineer. */ "Message text" = "Mesaj yazısı"; +/* No comment provided by engineer. */ +"Message too large" = "Mesaj çok büyük"; + /* No comment provided by engineer. */ "Messages" = "Mesajlar"; @@ -3537,7 +3642,7 @@ "This device name" = "Bu cihazın ismi"; /* No comment provided by engineer. */ -"This display name is invalid. Please choose another name." = "Görünen ad geçerli değil.\n Lütfen başka bir ad seç."; +"This display name is invalid. Please choose another name." = "Bu görünen ad geçersiz. Lütfen başka bir isim seçin."; /* No comment provided by engineer. */ "This group has over %lld members, delivery receipts are not sent." = "Bu grubun %lld den fazla üyesi var,görüldü bilgisi gönderilmedi."; @@ -4056,7 +4161,7 @@ "You need to allow your contact to send voice messages to be able to send them." = "Sesli mesaj gönderebilmeniz için kişinizin de sesli mesaj göndermesine izin vermeniz gerekir."; /* No comment provided by engineer. */ -"You rejected group invitation" = "Grup davetini reddettiniz."; +"You rejected group invitation" = "Grup davetini reddettiniz"; /* snd group event chat item */ "you removed %@" = "%@'yi çıkarttınız"; diff --git a/apps/multiplatform/android/build.gradle.kts b/apps/multiplatform/android/build.gradle.kts index 0c77bdbe62..f5114108b5 100644 --- a/apps/multiplatform/android/build.gradle.kts +++ b/apps/multiplatform/android/build.gradle.kts @@ -8,12 +8,14 @@ plugins { } android { - compileSdkVersion(34) + compileSdk = 34 defaultConfig { applicationId = "chat.simplex.app" - minSdkVersion(28) - targetSdkVersion(33) + namespace = "chat.simplex.app" + minSdk = 28 + //noinspection OldTargetApi + targetSdk = 33 // !!! // skip version code after release to F-Droid, as it uses two version codes versionCode = (extra["android.version_code"] as String).toInt() @@ -47,11 +49,11 @@ android { } } compileOptions { - sourceCompatibility = JavaVersion.VERSION_1_8 - targetCompatibility = JavaVersion.VERSION_1_8 + sourceCompatibility = JavaVersion.VERSION_11 + targetCompatibility = JavaVersion.VERSION_11 } kotlinOptions { - jvmTarget = "1.8" + jvmTarget = "11" freeCompilerArgs += "-opt-in=kotlinx.coroutines.DelicateCoroutinesApi" freeCompilerArgs += "-opt-in=androidx.compose.foundation.ExperimentalFoundationApi" freeCompilerArgs += "-opt-in=androidx.compose.ui.text.ExperimentalTextApi" @@ -71,18 +73,20 @@ android { isMinifyEnabled = false } } - packagingOptions { + buildFeatures { + buildConfig = true + } + packaging { resources { excludes += "/META-INF/{AL2.0,LGPL2.1}" } jniLibs.useLegacyPackaging = rootProject.extra["compression.level"] as Int != 0 } android.sourceSets["main"].assets.setSrcDirs(listOf("../common/src/commonMain/resources/assets")) - val isRelease = gradle.startParameter.taskNames.find { it.toLowerCase().contains("release") } != null - val isBundle = gradle.startParameter.taskNames.find { it.toLowerCase().contains("bundle") } != null - // if (isRelease) { + val isRelease = gradle.startParameter.taskNames.find { it.lowercase().contains("release") } != null + val isBundle = gradle.startParameter.taskNames.find { it.lowercase().contains("bundle") } != null // Comma separated list of languages that will be included in the apk - android.defaultConfig.resConfigs( + android.defaultConfig.resourceConfigurations += listOf( "en", "ar", "bg", @@ -104,7 +108,7 @@ android { "uk", "zh-rCN" ) - // } + ndkVersion = "23.1.7779620" if (isBundle) { defaultConfig.ndk.abiFilters("arm64-v8a", "armeabi-v7a") } else { @@ -125,41 +129,41 @@ android { dependencies { implementation(project(":common")) - implementation("androidx.core:core-ktx:1.7.0") + implementation("androidx.core:core-ktx:1.12.0") //implementation("androidx.compose.ui:ui:${rootProject.extra["compose.version"] as String}") //implementation("androidx.compose.material:material:$compose_version") //implementation("androidx.compose.ui:ui-tooling-preview:$compose_version") - implementation("androidx.appcompat:appcompat:1.5.1") - implementation("androidx.lifecycle:lifecycle-runtime-ktx:2.4.1") - implementation("androidx.lifecycle:lifecycle-process:2.4.1") - implementation("androidx.activity:activity-compose:1.5.0") - val work_version = "2.7.1" - implementation("androidx.work:work-runtime-ktx:$work_version") - implementation("androidx.work:work-multiprocess:$work_version") + implementation("androidx.appcompat:appcompat:1.6.1") + implementation("androidx.lifecycle:lifecycle-runtime-ktx:2.7.0") + implementation("androidx.lifecycle:lifecycle-process:2.7.0") + implementation("androidx.activity:activity-compose:1.8.2") + val workVersion = "2.9.0" + implementation("androidx.work:work-runtime-ktx:$workVersion") + implementation("androidx.work:work-multiprocess:$workVersion") - implementation("com.jakewharton:process-phoenix:2.1.2") + implementation("com.jakewharton:process-phoenix:2.2.0") //implementation("androidx.compose.material:material-icons-extended:$compose_version") //implementation("androidx.compose.ui:ui-util:$compose_version") testImplementation("junit:junit:4.13.2") - androidTestImplementation("androidx.test.ext:junit:1.1.3") - androidTestImplementation("androidx.test.espresso:espresso-core:3.4.0") + androidTestImplementation("androidx.test.ext:junit:1.1.5") + androidTestImplementation("androidx.test.espresso:espresso-core:3.5.1") //androidTestImplementation("androidx.compose.ui:ui-test-junit4:$compose_version") - debugImplementation("androidx.compose.ui:ui-tooling:1.4.3") + debugImplementation("androidx.compose.ui:ui-tooling:1.6.4") } tasks { val compressApk by creating { doLast { - val isRelease = gradle.startParameter.taskNames.find { it.toLowerCase().contains("release") } != null + val isRelease = gradle.startParameter.taskNames.find { it.lowercase().contains("release") } != null val buildType: String = if (isRelease) "release" else "debug" val javaHome = System.getProperties()["java.home"] ?: org.gradle.internal.jvm.Jvm.current().javaHome val sdkDir = android.sdkDirectory.absolutePath - var keyAlias = "" - var keyPassword = "" - var storeFile = "" - var storePassword = "" + val keyAlias: String + val keyPassword: String + val storeFile: String + val storePassword: String if (project.properties["android.injected.signing.key.alias"] != null) { keyAlias = project.properties["android.injected.signing.key.alias"] as String keyPassword = project.properties["android.injected.signing.key.password"] as String @@ -184,16 +188,16 @@ tasks { } exec { workingDir("../../../scripts/android") - setEnvironment(mapOf("JAVA_HOME" to "$javaHome")) + environment = mapOf("JAVA_HOME" to "$javaHome") commandLine = listOf( "./compress-and-sign-apk.sh", "${rootProject.extra["compression.level"]}", "$outputDir", - "$sdkDir", - "$storeFile", - "$storePassword", - "$keyAlias", - "$keyPassword" + sdkDir, + storeFile, + storePassword, + keyAlias, + keyPassword ) } diff --git a/apps/multiplatform/android/src/main/java/chat/simplex/app/SimplexService.kt b/apps/multiplatform/android/src/main/java/chat/simplex/app/SimplexService.kt index b0600e6d59..f56bf4fe00 100644 --- a/apps/multiplatform/android/src/main/java/chat/simplex/app/SimplexService.kt +++ b/apps/multiplatform/android/src/main/java/chat/simplex/app/SimplexService.kt @@ -6,6 +6,7 @@ import android.content.* import android.content.pm.PackageManager import android.net.Uri import android.os.* +import android.os.SystemClock import android.provider.Settings import androidx.compose.foundation.layout.* import androidx.compose.material.* diff --git a/apps/multiplatform/android/src/main/java/chat/simplex/app/model/NtfManager.android.kt b/apps/multiplatform/android/src/main/java/chat/simplex/app/model/NtfManager.android.kt index 7673658cfb..f83933b2e0 100644 --- a/apps/multiplatform/android/src/main/java/chat/simplex/app/model/NtfManager.android.kt +++ b/apps/multiplatform/android/src/main/java/chat/simplex/app/model/NtfManager.android.kt @@ -4,6 +4,7 @@ import android.app.* import android.app.TaskStackBuilder import android.content.* import android.content.pm.PackageManager +import android.graphics.Bitmap import android.graphics.BitmapFactory import android.hardware.display.DisplayManager import android.media.AudioAttributes @@ -218,7 +219,7 @@ object NtfManager { .setGroup(MessageGroup) .setGroupAlertBehavior(NotificationCompat.GROUP_ALERT_CHILDREN) .setSmallIcon(R.drawable.ntf_icon) - .setLargeIcon(null) + .setLargeIcon(null as Bitmap?) .setColor(0x88FFFF) .setAutoCancel(true) .setVibrate(null) diff --git a/apps/multiplatform/build.gradle.kts b/apps/multiplatform/build.gradle.kts index f404207529..9c72456d98 100644 --- a/apps/multiplatform/build.gradle.kts +++ b/apps/multiplatform/build.gradle.kts @@ -47,6 +47,9 @@ buildscript { classpath(kotlin("gradle-plugin", version = rootProject.extra["kotlin.version"] as String)) classpath("dev.icerock.moko:resources-generator:0.23.0") + // Workaround gradle sync issue: https://github.com/gmazzo/gradle-buildconfig-plugin/issues/137#issuecomment-1935739759 + classpath("com.squareup:kotlinpoet:1.16.0") + // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files } diff --git a/apps/multiplatform/common/build.gradle.kts b/apps/multiplatform/common/build.gradle.kts index 3b6975638a..b020a8641b 100644 --- a/apps/multiplatform/common/build.gradle.kts +++ b/apps/multiplatform/common/build.gradle.kts @@ -4,17 +4,18 @@ plugins { id("com.android.library") id("org.jetbrains.kotlin.plugin.serialization") id("dev.icerock.mobile.multiplatform-resources") - id("com.github.gmazzo.buildconfig") version "4.0.4" + id("com.github.gmazzo.buildconfig") version "5.3.5" } group = "chat.simplex" version = extra["android.version_name"] as String kotlin { - android() + androidTarget() jvm("desktop") { jvmToolchain(11) } + applyDefaultHierarchyTemplate() sourceSets { all { languageSettings { @@ -35,20 +36,20 @@ kotlin { api(compose.runtime) api(compose.foundation) api(compose.material) - api("org.jetbrains.kotlinx:kotlinx-serialization-json:1.3.2") - api("org.jetbrains.kotlinx:kotlinx-datetime:0.3.2") - api("com.russhwolf:multiplatform-settings:1.0.0") - api("com.charleskorn.kaml:kaml:0.43.0") - api("dev.icerock.moko:resources-compose:0.23.0") + api("org.jetbrains.kotlinx:kotlinx-serialization-json:1.6.3") + api("org.jetbrains.kotlinx:kotlinx-datetime:0.5.0") + api("com.russhwolf:multiplatform-settings:1.1.1") + api("com.charleskorn.kaml:kaml:0.58.0") api("org.jetbrains.compose.ui:ui-text:${rootProject.extra["compose.version"] as String}") implementation("org.jetbrains.compose.components:components-animatedimage:${rootProject.extra["compose.version"] as String}") //Barcode - api("org.boofcv:boofcv-core:0.40.1") + api("org.boofcv:boofcv-core:1.1.3") implementation("com.godaddy.android.colorpicker:compose-color-picker-jvm:0.7.0") // Link Previews - implementation("org.jsoup:jsoup:1.13.1") + implementation("org.jsoup:jsoup:1.17.2") // Resources - implementation("dev.icerock.moko:resources:0.23.0") + api("dev.icerock.moko:resources:0.23.0") + api("dev.icerock.moko:resources-compose:0.23.0") } } val commonTest by getting { @@ -57,47 +58,47 @@ kotlin { } } val androidMain by getting { + kotlin.srcDir("build/generated/moko/androidMain/src") dependencies { - implementation("androidx.activity:activity-compose:1.5.0") - val work_version = "2.7.1" - implementation("androidx.work:work-runtime-ktx:$work_version") - implementation("com.google.accompanist:accompanist-insets:0.23.0") - implementation("dev.icerock.moko:resources:0.23.0") + implementation("androidx.activity:activity-compose:1.8.2") + val workVersion = "2.9.0" + implementation("androidx.work:work-runtime-ktx:$workVersion") + implementation("com.google.accompanist:accompanist-insets:0.30.1") // Video support - implementation("com.google.android.exoplayer:exoplayer:2.17.1") + implementation("com.google.android.exoplayer:exoplayer:2.19.1") // Biometric authentication - implementation("androidx.biometric:biometric:1.2.0-alpha04") + implementation("androidx.biometric:biometric:1.2.0-alpha05") //Barcode - implementation("org.boofcv:boofcv-android:0.40.1") + implementation("org.boofcv:boofcv-android:1.1.3") //Camera Permission - implementation("com.google.accompanist:accompanist-permissions:0.23.0") + implementation("com.google.accompanist:accompanist-permissions:0.34.0") - implementation("androidx.webkit:webkit:1.4.0") + implementation("androidx.webkit:webkit:1.10.0") // GIFs support - implementation("io.coil-kt:coil-compose:2.1.0") - implementation("io.coil-kt:coil-gif:2.1.0") + implementation("io.coil-kt:coil-compose:2.6.0") + implementation("io.coil-kt:coil-gif:2.6.0") - implementation("com.jakewharton:process-phoenix:2.1.2") + implementation("com.jakewharton:process-phoenix:2.2.0") - val camerax_version = "1.1.0-beta01" - implementation("androidx.camera:camera-core:${camerax_version}") - implementation("androidx.camera:camera-camera2:${camerax_version}") - implementation("androidx.camera:camera-lifecycle:${camerax_version}") - implementation("androidx.camera:camera-view:${camerax_version}") + val cameraXVersion = "1.3.2" + implementation("androidx.camera:camera-core:${cameraXVersion}") + implementation("androidx.camera:camera-camera2:${cameraXVersion}") + implementation("androidx.camera:camera-lifecycle:${cameraXVersion}") + implementation("androidx.camera:camera-view:${cameraXVersion}") } } val desktopMain by getting { dependencies { - implementation("org.jetbrains.kotlinx:kotlinx-coroutines-swing:1.7.1") - implementation("com.github.Dansoftowner:jSystemThemeDetector:3.6") + implementation("org.jetbrains.kotlinx:kotlinx-coroutines-swing:1.8.0") + implementation("com.github.Dansoftowner:jSystemThemeDetector:3.8") implementation("com.sshtools:two-slices:0.9.0-SNAPSHOT") - implementation("org.slf4j:slf4j-simple:2.0.7") - implementation("uk.co.caprica:vlcj:4.7.3") + implementation("org.slf4j:slf4j-simple:2.0.12") + implementation("uk.co.caprica:vlcj:4.8.2") implementation("com.github.NanoHttpd.nanohttpd:nanohttpd:efb2ebf85a") implementation("com.github.NanoHttpd.nanohttpd:nanohttpd-websocket:efb2ebf85a") } @@ -107,23 +108,25 @@ kotlin { } android { - compileSdkVersion(34) + namespace = "chat.simplex.common" + compileSdk = 34 sourceSets["main"].manifest.srcFile("src/androidMain/AndroidManifest.xml") defaultConfig { - minSdkVersion(28) - targetSdkVersion(33) + minSdk = 28 } + testOptions.targetSdk = 33 + lint.targetSdk = 33 compileOptions { - sourceCompatibility = JavaVersion.VERSION_1_8 - targetCompatibility = JavaVersion.VERSION_1_8 + sourceCompatibility = JavaVersion.VERSION_11 + targetCompatibility = JavaVersion.VERSION_11 } val isAndroid = gradle.startParameter.taskNames.find { - val lower = it.toLowerCase() + val lower = it.lowercase() lower.contains("release") || lower.startsWith("assemble") || lower.startsWith("install") } != null if (isAndroid) { // This is not needed on Android but can't be moved to desktopMain because MR lib don't support this. - // No other ways to exclude a file work but it's large and should be excluded + // No other ways to exclude a file work, but it's large and should be excluded kotlin.sourceSets["commonMain"].resources.exclude("/MR/fonts/NotoColorEmoji-Regular.ttf") } } diff --git a/apps/multiplatform/common/src/androidMain/kotlin/chat/simplex/common/views/call/CallView.android.kt b/apps/multiplatform/common/src/androidMain/kotlin/chat/simplex/common/views/call/CallView.android.kt index f8f9fe14ed..8a958327d8 100644 --- a/apps/multiplatform/common/src/androidMain/kotlin/chat/simplex/common/views/call/CallView.android.kt +++ b/apps/multiplatform/common/src/androidMain/kotlin/chat/simplex/common/views/call/CallView.android.kt @@ -154,7 +154,7 @@ actual fun ActiveCallView() { setCallSound(call.soundSpeaker, audioViaBluetooth) } withBGApi { chatModel.controller.apiCallStatus(callRh, call.contact, callStatus) } - } catch (e: Error) { + } catch (e: Throwable) { Log.d(TAG,"call status ${r.state.connectionState} not used") } is WCallResponse.Connected -> { diff --git a/apps/multiplatform/common/src/androidMain/kotlin/chat/simplex/common/views/chat/item/ChatItemView.android.kt b/apps/multiplatform/common/src/androidMain/kotlin/chat/simplex/common/views/chat/item/ChatItemView.android.kt index 140b6d12a3..9e8eb8ee8f 100644 --- a/apps/multiplatform/common/src/androidMain/kotlin/chat/simplex/common/views/chat/item/ChatItemView.android.kt +++ b/apps/multiplatform/common/src/androidMain/kotlin/chat/simplex/common/views/chat/item/ChatItemView.android.kt @@ -15,6 +15,7 @@ import chat.simplex.common.platform.FileChooserLauncher import chat.simplex.common.platform.saveImage import chat.simplex.common.views.helpers.* import chat.simplex.res.MR +import com.google.accompanist.permissions.PermissionStatus import com.google.accompanist.permissions.rememberPermissionState import dev.icerock.moko.resources.compose.painterResource import dev.icerock.moko.resources.compose.stringResource @@ -30,7 +31,7 @@ actual fun SaveContentItemAction(cItem: ChatItem, saveFileLauncher: FileChooserL ItemAction(stringResource(MR.strings.save_verb), painterResource(if (cItem.file?.fileSource?.cryptoArgs == null) MR.images.ic_download else MR.images.ic_lock_open_right), onClick = { when (cItem.content.msgContent) { is MsgContent.MCImage -> { - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R || writePermissionState.hasPermission) { + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R || writePermissionState.status == PermissionStatus.Granted) { saveImage(cItem.file) } else { writePermissionState.launchPermissionRequest() diff --git a/apps/multiplatform/common/src/androidMain/kotlin/chat/simplex/common/views/newchat/QRCodeScanner.android.kt b/apps/multiplatform/common/src/androidMain/kotlin/chat/simplex/common/views/newchat/QRCodeScanner.android.kt index b8f5abc50e..df38295787 100644 --- a/apps/multiplatform/common/src/androidMain/kotlin/chat/simplex/common/views/newchat/QRCodeScanner.android.kt +++ b/apps/multiplatform/common/src/androidMain/kotlin/chat/simplex/common/views/newchat/QRCodeScanner.android.kt @@ -11,6 +11,7 @@ import androidx.camera.view.PreviewView import androidx.compose.foundation.layout.* import androidx.compose.material.* import androidx.compose.runtime.* +import androidx.compose.runtime.saveable.rememberSaveable import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.draw.clipToBounds @@ -27,6 +28,7 @@ import chat.simplex.common.platform.TAG import chat.simplex.common.ui.theme.DEFAULT_PADDING_HALF import chat.simplex.common.views.helpers.* import chat.simplex.res.MR +import com.google.accompanist.permissions.PermissionStatus import com.google.accompanist.permissions.rememberPermissionState import com.google.common.util.concurrent.ListenableFuture import dev.icerock.moko.resources.compose.painterResource @@ -65,7 +67,7 @@ actual fun QRCodeScanner( .widthIn(max = 400.dp) .aspectRatio(1f) val showScanner = remember { showQRCodeScanner } - if (showScanner.value && cameraPermissionState.hasPermission) { + if (showScanner.value && cameraPermissionState.status == PermissionStatus.Granted) { AndroidView( factory = { AndroidViewContext -> PreviewView(AndroidViewContext).apply { @@ -126,20 +128,22 @@ actual fun QRCodeScanner( disabledBackgroundColor = MaterialTheme.colors.background.mixWith(MaterialTheme.colors.onBackground, 0.9f), disabledContentColor = MaterialTheme.colors.primary, ) + var permissionRequested by rememberSaveable { mutableStateOf(false) } when { - !cameraPermissionState.hasPermission && !cameraPermissionState.permissionRequested && showScanner.value -> { + cameraPermissionState.status is PermissionStatus.Denied && !permissionRequested && showScanner.value -> { LaunchedEffect(Unit) { + permissionRequested = true cameraPermissionState.launchPermissionRequest() } } - !cameraPermissionState.hasPermission -> { + cameraPermissionState.status is PermissionStatus.Denied -> { Button({ cameraPermissionState.launchPermissionRequest() }, modifier = modifier, colors = buttonColors) { Icon(painterResource(MR.images.ic_camera_enhance), null) Spacer(Modifier.width(DEFAULT_PADDING_HALF)) Text(stringResource(MR.strings.enable_camera_access)) } } - cameraPermissionState.hasPermission -> { + cameraPermissionState.status == PermissionStatus.Granted -> { Button({ showQRCodeScanner.value = true }, modifier = modifier, colors = buttonColors) { Icon(painterResource(MR.images.ic_qr_code), null) Spacer(Modifier.width(DEFAULT_PADDING_HALF)) diff --git a/apps/multiplatform/common/src/androidMain/kotlin/chat/simplex/common/views/onboarding/SetNotificationsMode.android.kt b/apps/multiplatform/common/src/androidMain/kotlin/chat/simplex/common/views/onboarding/SetNotificationsMode.android.kt index 605c40445a..a39e71947d 100644 --- a/apps/multiplatform/common/src/androidMain/kotlin/chat/simplex/common/views/onboarding/SetNotificationsMode.android.kt +++ b/apps/multiplatform/common/src/androidMain/kotlin/chat/simplex/common/views/onboarding/SetNotificationsMode.android.kt @@ -5,14 +5,15 @@ import android.os.Build import androidx.compose.runtime.Composable import androidx.compose.runtime.LaunchedEffect import chat.simplex.common.platform.ntfManager +import com.google.accompanist.permissions.PermissionStatus import com.google.accompanist.permissions.rememberPermissionState @Composable actual fun SetNotificationsModeAdditions() { if (Build.VERSION.SDK_INT >= 33) { val notificationsPermissionState = rememberPermissionState(Manifest.permission.POST_NOTIFICATIONS) - LaunchedEffect(notificationsPermissionState.hasPermission) { - if (notificationsPermissionState.hasPermission) { + LaunchedEffect(notificationsPermissionState.status == PermissionStatus.Granted) { + if (notificationsPermissionState.status == PermissionStatus.Granted) { ntfManager.androidCreateNtfChannelsMaybeShowAlert() } else { notificationsPermissionState.launchPermissionRequest() diff --git a/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/model/SimpleXAPI.kt b/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/model/SimpleXAPI.kt index 85ce8dc00b..0d6420dad2 100644 --- a/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/model/SimpleXAPI.kt +++ b/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/model/SimpleXAPI.kt @@ -75,7 +75,7 @@ class AppPreferences { val value = _callOnLockScreen.get() ?: return CallOnLockScreen.default return try { CallOnLockScreen.valueOf(value) - } catch (e: Error) { + } catch (e: Throwable) { CallOnLockScreen.default } }, @@ -95,7 +95,7 @@ class AppPreferences { val value = _simplexLinkMode.get() ?: return SimplexLinkMode.default return try { SimplexLinkMode.valueOf(value) - } catch (e: Error) { + } catch (e: Throwable) { SimplexLinkMode.default } }, @@ -123,7 +123,7 @@ class AppPreferences { val value = _networkSessionMode.get() ?: return TransportSessionMode.default return try { TransportSessionMode.valueOf(value) - } catch (e: Error) { + } catch (e: Throwable) { TransportSessionMode.default } }, @@ -393,7 +393,7 @@ object ChatController { } Log.d(TAG, "startChat: running") } - } catch (e: Error) { + } catch (e: Throwable) { Log.e(TAG, "failed starting chat $e") throw e } @@ -411,7 +411,7 @@ object ChatController { startReceiver() setLocalDeviceName(appPrefs.deviceNameForRemoteAccess.get()!!) Log.d(TAG, "startChat: started without user") - } catch (e: Error) { + } catch (e: Throwable) { Log.e(TAG, "failed starting chat without user $e") throw e } @@ -628,7 +628,7 @@ object ChatController { when (r) { is CR.ChatStarted -> return true is CR.ChatRunning -> return false - else -> throw Error("failed starting chat: ${r.responseType} ${r.details}") + else -> throw Exception("failed starting chat: ${r.responseType} ${r.details}") } } @@ -636,26 +636,26 @@ object ChatController { val r = sendCmd(null, CC.ApiStopChat()) when (r) { is CR.ChatStopped -> return true - else -> throw Error("failed stopping chat: ${r.responseType} ${r.details}") + else -> throw Exception("failed stopping chat: ${r.responseType} ${r.details}") } } suspend fun apiSetTempFolder(tempFolder: String, ctrl: ChatCtrl? = null) { val r = sendCmd(null, CC.SetTempFolder(tempFolder), ctrl) if (r is CR.CmdOk) return - throw Error("failed to set temp folder: ${r.responseType} ${r.details}") + throw Exception("failed to set temp folder: ${r.responseType} ${r.details}") } suspend fun apiSetFilesFolder(filesFolder: String, ctrl: ChatCtrl? = null) { val r = sendCmd(null, CC.SetFilesFolder(filesFolder), ctrl) if (r is CR.CmdOk) return - throw Error("failed to set files folder: ${r.responseType} ${r.details}") + throw Exception("failed to set files folder: ${r.responseType} ${r.details}") } suspend fun apiSetRemoteHostsFolder(remoteHostsFolder: String) { val r = sendCmd(null, CC.SetRemoteHostsFolder(remoteHostsFolder)) if (r is CR.CmdOk) return - throw Error("failed to set remote hosts folder: ${r.responseType} ${r.details}") + throw Exception("failed to set remote hosts folder: ${r.responseType} ${r.details}") } suspend fun apiSetEncryptLocalFiles(enable: Boolean) = sendCommandOkResp(null, CC.ApiSetEncryptLocalFiles(enable)) @@ -663,13 +663,13 @@ object ChatController { suspend fun apiSaveAppSettings(settings: AppSettings) { val r = sendCmd(null, CC.ApiSaveSettings(settings)) if (r is CR.CmdOk) return - throw Error("failed to set app settings: ${r.responseType} ${r.details}") + throw Exception("failed to set app settings: ${r.responseType} ${r.details}") } suspend fun apiGetAppSettings(settings: AppSettings): AppSettings { val r = sendCmd(null, CC.ApiGetSettings(settings)) if (r is CR.AppSettingsR) return r.appSettings - throw Error("failed to get app settings: ${r.responseType} ${r.details}") + throw Exception("failed to get app settings: ${r.responseType} ${r.details}") } suspend fun apiSetPQEncryption(enable: Boolean) = sendCommandOkResp(null, CC.ApiSetPQEncryption(enable)) @@ -684,19 +684,19 @@ object ChatController { suspend fun apiExportArchive(config: ArchiveConfig) { val r = sendCmd(null, CC.ApiExportArchive(config)) if (r is CR.CmdOk) return - throw Error("failed to export archive: ${r.responseType} ${r.details}") + throw Exception("failed to export archive: ${r.responseType} ${r.details}") } suspend fun apiImportArchive(config: ArchiveConfig): List { val r = sendCmd(null, CC.ApiImportArchive(config)) if (r is CR.ArchiveImported) return r.archiveErrors - throw Error("failed to import archive: ${r.responseType} ${r.details}") + throw Exception("failed to import archive: ${r.responseType} ${r.details}") } suspend fun apiDeleteStorage() { val r = sendCmd(null, CC.ApiDeleteStorage()) if (r is CR.CmdOk) return - throw Error("failed to delete storage: ${r.responseType} ${r.details}") + throw Exception("failed to delete storage: ${r.responseType} ${r.details}") } suspend fun apiStorageEncryption(currentKey: String = "", newKey: String = ""): CR.ChatCmdError? { diff --git a/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/platform/Files.kt b/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/platform/Files.kt index 7ae2ab23dd..c788a6902e 100644 --- a/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/platform/Files.kt +++ b/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/platform/Files.kt @@ -42,7 +42,7 @@ fun copyFileToFile(from: File, to: URI, finally: () -> Unit) { } } showToast(generalGetString(MR.strings.file_saved)) - } catch (e: Error) { + } catch (e: Throwable) { showToast(generalGetString(MR.strings.error_saving_file)) Log.e(TAG, "copyFileToFile error saving file $e") } finally { @@ -58,7 +58,7 @@ fun copyBytesToFile(bytes: ByteArrayInputStream, to: URI, finally: () -> Unit) { } } showToast(generalGetString(MR.strings.file_saved)) - } catch (e: Error) { + } catch (e: Throwable) { showToast(generalGetString(MR.strings.error_saving_file)) Log.e(TAG, "copyBytesToFile error saving file $e") } finally { @@ -109,6 +109,7 @@ private fun fileReady(file: CIFile, filePath: String) = @Composable expect fun rememberFileChooserLauncher(getContent: Boolean, rememberedValue: Any? = null, onResult: (URI?) -> Unit): FileChooserLauncher +@Composable expect fun rememberFileChooserMultipleLauncher(onResult: (List) -> Unit): FileChooserMultipleLauncher expect class FileChooserLauncher() { diff --git a/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/ui/theme/Theme.kt b/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/ui/theme/Theme.kt index 5cf05f64c5..62acc13bfe 100644 --- a/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/ui/theme/Theme.kt +++ b/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/ui/theme/Theme.kt @@ -260,6 +260,7 @@ val CurrentColors: MutableStateFlow = MutableStateFlow @Composable fun isInDarkTheme(): Boolean = !CurrentColors.collectAsState().value.colors.isLight +@Composable expect fun isSystemInDarkTheme(): Boolean fun reactOnDarkThemeChanges(isDark: Boolean) { diff --git a/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/WelcomeView.kt b/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/WelcomeView.kt index aa6b22fcde..41b30be640 100644 --- a/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/WelcomeView.kt +++ b/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/WelcomeView.kt @@ -214,7 +214,8 @@ fun createProfileOnboarding(chatModel: ChatModel, displayName: String, close: () ) ?: return@withBGApi chatModel.localUserCreated.value = true val onboardingStage = chatModel.controller.appPrefs.onboardingStage - if (chatModel.users.isEmpty()) { + // No users or no visible users + if (chatModel.users.none { u -> !u.user.hidden }) { onboardingStage.set(if (appPlatform.isDesktop && chatModel.controller.appPrefs.initialRandomDBPassphrase.get() && !chatModel.desktopOnboardingRandomPassword.value) { OnboardingStage.Step2_5_SetupDatabasePassphrase } else { diff --git a/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/chat/ChatInfoView.kt b/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/chat/ChatInfoView.kt index 9f526f3eb8..42257cf723 100644 --- a/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/chat/ChatInfoView.kt +++ b/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/chat/ChatInfoView.kt @@ -145,7 +145,7 @@ fun ChatInfoView( withBGApi { val ct = chatModel.controller.apiSetContactPQ(chatRh, contact.contactId, true) if (ct != null) { - chatModel.updateContact(chatRh, contact) + chatModel.updateContact(chatRh, ct) } close.invoke() } diff --git a/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/database/DatabaseView.kt b/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/database/DatabaseView.kt index 023d10c539..814ff9969a 100644 --- a/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/database/DatabaseView.kt +++ b/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/database/DatabaseView.kt @@ -388,7 +388,7 @@ fun startChat(m: ChatModel, chatLastStart: MutableState, chatDbChanged m.controller.appPrefs.chatLastStart.set(ts) chatLastStart.value = ts platform.androidChatStartedAfterBeingOff() - } catch (e: Error) { + } catch (e: Throwable) { m.chatRunning.value = false AlertManager.shared.showAlertMsg(generalGetString(MR.strings.error_starting_chat), e.toString()) } finally { diff --git a/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/migration/MigrateFromDevice.kt b/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/migration/MigrateFromDevice.kt index 10add37e54..f8e3d48625 100644 --- a/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/migration/MigrateFromDevice.kt +++ b/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/migration/MigrateFromDevice.kt @@ -375,22 +375,6 @@ private fun MutableState.LinkShownView(fileId: Long, link: S private fun MutableState.FinishedView(chatDeletion: Boolean) { Box { SectionView(stringResource(MR.strings.migrate_from_device_migration_complete).uppercase()) { - SettingsActionItemWithContent( - icon = painterResource(MR.images.ic_delete_forever), - text = stringResource(MR.strings.migrate_from_device_delete_database_from_device), - textColor = MaterialTheme.colors.primary, - click = { - AlertManager.shared.showAlertDialog( - title = generalGetString(MR.strings.delete_chat_profile_question), - text = generalGetString(MR.strings.delete_chat_profile_action_cannot_be_undone_warning), - confirmText = generalGetString(MR.strings.delete_verb), - onConfirm = { - deleteChatAndDismiss() - } - ) - } - ) {} - SettingsActionItemWithContent( icon = painterResource(MR.images.ic_play_arrow_filled), text = stringResource(MR.strings.migrate_from_device_start_chat), @@ -402,6 +386,23 @@ private fun MutableState.FinishedView(chatDeletion: Boolean) confirmText = generalGetString(MR.strings.migrate_from_device_start_chat), onConfirm = { withLongRunningApi { startChatAndDismiss() } + }, + destructive = true + ) + } + ) {} + + SettingsActionItemWithContent( + icon = painterResource(MR.images.ic_delete_forever), + text = stringResource(MR.strings.migrate_from_device_delete_database_from_device), + textColor = MaterialTheme.colors.primary, + click = { + AlertManager.shared.showAlertDialog( + title = generalGetString(MR.strings.delete_chat_profile_question), + text = generalGetString(MR.strings.delete_chat_profile_action_cannot_be_undone_warning), + confirmText = generalGetString(MR.strings.delete_verb), + onConfirm = { + deleteChatAndDismiss() } ) } diff --git a/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/onboarding/CreateSimpleXAddress.kt b/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/onboarding/CreateSimpleXAddress.kt index e8ba5d7b60..5e50475951 100644 --- a/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/onboarding/CreateSimpleXAddress.kt +++ b/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/onboarding/CreateSimpleXAddress.kt @@ -169,7 +169,8 @@ private fun ProgressIndicator() { } private fun prepareChatBeforeAddressCreation(rhId: Long?) { - if (chatModel.users.isNotEmpty()) return + // No visible users but may have hidden. In this case chat should be started anyway because it's stopped on this stage with hidden users + if (chatModel.users.any { u -> !u.user.hidden }) return withBGApi { val user = chatModel.controller.apiGetActiveUser(rhId) ?: return@withBGApi chatModel.currentUser.value = user diff --git a/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/usersettings/UserProfilesView.kt b/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/usersettings/UserProfilesView.kt index a7e57662b5..b40cc7db92 100644 --- a/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/usersettings/UserProfilesView.kt +++ b/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/usersettings/UserProfilesView.kt @@ -356,6 +356,7 @@ private suspend fun doRemoveUser(m: ChatModel, user: User, users: List, de m.controller.apiDeleteUser(user, delSMPQueues, viewPwd) m.controller.changeActiveUser_(user.remoteHostId, null, null) if (appPlatform.isAndroid) { + m.controller.apiStopChat() controller.appPrefs.onboardingStage.set(OnboardingStage.Step1_SimpleXInfo) ModalManager.closeAllModalsEverywhere() } diff --git a/apps/multiplatform/common/src/commonMain/resources/MR/ar/strings.xml b/apps/multiplatform/common/src/commonMain/resources/MR/ar/strings.xml index 81504c36f7..9fb161511d 100644 --- a/apps/multiplatform/common/src/commonMain/resources/MR/ar/strings.xml +++ b/apps/multiplatform/common/src/commonMain/resources/MR/ar/strings.xml @@ -1637,4 +1637,10 @@ أنهيّ المكالمة متصفح الويب الافتراضي مطلوب للمكالمات. يُرجى تضبيط المتصفح الافتراضي في النظام، ومشاركة المزيد من المعلومات مع المطورين. حدث خطأ أثناء فتح المتصفح + أرشفة و رفع + يمكن للمشرفين حظر عضو للجميع. + ترحيل بيانات التطبيق + جارِ أرشفة قاعدة البيانات + سيتم تعمية جميع جهات الاتصال والمحادثات والملفات الخاصة بك بشكل آمن وتحميلها في أجزاء إلى مُرحلات XFTP التي ضبطت. + طبّق \ No newline at end of file diff --git a/apps/multiplatform/common/src/commonMain/resources/MR/base/strings.xml b/apps/multiplatform/common/src/commonMain/resources/MR/base/strings.xml index c2348568b1..c2045fe436 100644 --- a/apps/multiplatform/common/src/commonMain/resources/MR/base/strings.xml +++ b/apps/multiplatform/common/src/commonMain/resources/MR/base/strings.xml @@ -211,6 +211,7 @@ new message New contact request Connected + Error showing notification, contact developers. SimpleX Lock diff --git a/apps/multiplatform/common/src/commonMain/resources/MR/cs/strings.xml b/apps/multiplatform/common/src/commonMain/resources/MR/cs/strings.xml index 8ce26d7455..364fde803d 100644 --- a/apps/multiplatform/common/src/commonMain/resources/MR/cs/strings.xml +++ b/apps/multiplatform/common/src/commonMain/resources/MR/cs/strings.xml @@ -1640,4 +1640,73 @@ S šifrovanými soubory a médii. Vypršel čas při připojování k desktopu Zobrazené jméno není platné. Prosím vyberte jiné. + Chat přesunut! + Použít + Přesunot z jiného zařízení na novém zařízení a skenujte QR kód.]]> + Potvrdit nastavení sítě + Potvrďte nahrání + Archivuji databázi + Zrušit migraci + Zkontrolujte připojení k internetu a zkuste to znovu + Pro migraci potvrďte, že si pamatujete heslo databáze. + Varování: archiv bude smazán.]]> + Archivovat a nahrát + Správci mohou blokovat člen pro všechny. + Všechny vaše kontakty, konverzace a soubory budou bezpečně šifrovány a rozdělené nahrány na zvolené XFTP relé. + Migrace dat aplikace + Čtěte prosím: Jako ochrana zabezpečení, se použitím stejné databáze na dvou zařízeních rozbije dešifrování zpráv z vašich připojení.]]> + Otevřít obrazovku přesunu + Nastavit přístupovou frázi + Přesouvám + Prosím potvrďte, že nastavení sítě pro toto zařízení jsou správná. + Chyba při exportu chat databáze + Příprava nahrávání + Opakovat nahrávání + Nahrání neúspěšné + Můžete zkusit znovu. + Upozornění: zahájení chatu na více zařízeních není podporováno a způsobí selhání doručování zpráv + Přesun kompletní + Migrovat na jiné zařízení pomocí QR kódu. + Volání obraz v obraze + Bezpečnější skupiny + Používat aplikaci při volání. + Stáhnuji archiv + Stáhuji podrobnosti o odkazu + Neplatný odkaz + Nebo vložte odkaz archivu + Vložit odkaz archivu + Příprava stahování + %s staženo + Import selhal + Importuji archiv + Můžete zkusit znovu. + Chyba stahování archivu + Chyba ukládání nastavení + Chyba nahrávání archivu + Exportovaný soubor neexistuje + Soubor byl odstraněn nebo je odkaz neplatný + Dokončit migraci na jiném zařízení. + Migrovat zařízení + Migrovat na jiné zařízení + Chyba mazání databáze + Chcete-li pokračovat, zastavte chat. + Zastavuji chat + Vytvořit odkaz archivu + %s nahráno + Nahrávám archiv + Dokončit migraci + Nebo bezpečně sdílejte tento odkaz na soubor + Začít chat + Ověřit přístupovou frázi databáze + nesmíte použít stejnou databázi na dvou zařízeních.]]> + Ověřit přístupovou frázi + Chyba ověření přístupové fráze: + Odstranit databázi z tohoto zařízení + Stažení selhalo + Povolit v přímém chatu (BETA)! + Zadejte přístupovou frázi + Migrovat z jiného zařízení + Migrovat zde + Opakovat stahování + Opakovat import \ No newline at end of file diff --git a/apps/multiplatform/common/src/commonMain/resources/MR/de/strings.xml b/apps/multiplatform/common/src/commonMain/resources/MR/de/strings.xml index e116dd4b54..3102d56120 100644 --- a/apps/multiplatform/common/src/commonMain/resources/MR/de/strings.xml +++ b/apps/multiplatform/common/src/commonMain/resources/MR/de/strings.xml @@ -50,7 +50,7 @@ Fehler beim Speichern der SMP-Server Stellen Sie sicher, dass die SMP-Server-Adressen das richtige Format haben, zeilenweise getrennt und nicht doppelt vorhanden sind. - Fehler bei der Aktualisierung der Netzwerk-Konfiguration. + Fehler bei der Aktualisierung der Netzwerkkonfiguration. Verbindungszeitüberschreitung Verbindungsfehler @@ -68,7 +68,7 @@ Überprüfen Sie bitte, ob Sie den richtigen Link genutzt haben, oder bitten Sie Ihren Kontakt darum, Ihnen nochmal einen Link zuzusenden. Verbindungsfehler (AUTH) Entweder hat Ihr Kontakt die Verbindung gelöscht, oder dieser Link wurde bereits verwendet, es könnte sich um einen Fehler handeln – bitte melden Sie ihn uns. -\nBitten Sie Ihren Kontakt darum, einen weiteren Verbindungs-Link zu erzeugen, um sich neu verbinden zu können, und stellen Sie sicher, dass Sie eine stabile Netzwerk-Verbindung haben. +\nBitten Sie Ihren Kontakt darum, einen weiteren Verbindungs-Link zu erzeugen, um sich neu verbinden zu können, und stellen Sie sicher, dass Sie eine stabile Netzwerkverbindung haben. Fehler beim Akzeptieren der Kontaktanfrage Der Absender hat möglicherweise die Verbindungsanfrage gelöscht. Fehler beim Löschen des Kontakts @@ -1720,4 +1720,80 @@ Videoanruf Fehler beim Öffnen des Browsers Für Anrufe ist ein Default-Webbrowser erforderlich. Bitte konfigurieren Sie einen Default-Browser für das System und teilen Sie den Entwicklern mehr Informationen dazu mit. + Chat wurde migriert! + Archiv-Link erzeugen + Von einem anderen Gerät migrieren und scannen Sie den QR-Code.]]> + Datenbank auf diesem Gerät löschen + App-Daten-Migration + Administratoren können für ein Mitglied alle Funktionen blockieren. + Link-Details werden heruntergeladen + Archiv wird heruntergeladen + Anwenden + Alle Ihre Kontakte, Unterhaltungen und Dateien werden sicher verschlüsselt und in Daten-Paketen auf die konfigurierten XTFP-Server hochgeladen. + Archivieren und Hochladen + Warnung: Das Archiv wird gelöscht.]]> + Überprüfen Sie Ihre Internet-Verbindung und probieren Sie es nochmals + Datenbank wird archiviert + Bitte beachten Sie: Aus Sicherheitsgründen wird die Nachrichtenentschlüsselung Ihrer Verbindungen abgebrochen, wenn Sie die gleiche Datenbank auf zwei Geräten nutzen.]]> + Migration abbrechen + Bestätigen Sie die Netzwerkeinstellungen + Für die Migration bestätigen Sie bitte, dass Sie sich an das Datenbank-Passwort erinnern. + Hochladen bestätigen + Herunterladen fehlgeschlagen + Ende-zu-Ende-Verschlüsselung mit Perfect Forward Secrecy, Ablehnung und Einbruchs-Wiederherstellung geschützt.]]> + Quantum-resistente E2E-Verschlüsselung mit Perfect Forward Secrecy, Ablehnung und Einbruchs-Wiederherstellung geschützt.]]> + Dieser Chat ist durch Ende-zu-Ende-Verschlüsselung geschützt. + Dieser Chat ist durch Quantum-resistente Ende-zu-Ende-Verschlüsselung geschützt. + Migrationsansicht öffnen + Passwort festlegen + Quantum-resistente E2E-Verschlüsselung + Oder fügen Sie den Archiv-Link ein + Archiv-Link einfügen + Ungültiger Link + Migrieren + %s heruntergeladen + Die Migration auf dem anderen Gerät wird abgeschlossen. + Fehler beim Herunterladen des Archivs + Die Migration wird abgeschlossen + Warnung: Das Starten des Chats auf mehreren Geräten wird nicht unterstützt und wird zu Fehlern bei der Nachrichtenübermittlung führen + Chat starten + Kann in direkten Chats aktiviert werden (BETA)! + Quantum-resistente Verschlüsselung + Über einen QR-Code auf ein anderes Gerät migrieren. + Bild-in-Bild-Anrufe + Sicherere Gruppen + Die App kann während eines Anrufs genutzt werden. + Hierher migrieren + Das Herunterladen wird vorbereitet + Herunterladen wiederholen + Sie können es nochmal probieren. + Passwort eingeben + Archiv wird importiert + Import wiederholen + Die Datei wurde gelöscht oder der Link ist ungültig + Gerät migrieren + Auf ein anderes Gerät migrieren + Fehler beim Exportieren der Chat-Datenbank + Fehler beim Abspeichern der Einstellungen + Die exportierte Datei ist nicht vorhanden + Fehler beim Löschen der Datenbank + Fehler beim Hochladen des Archivs + Das Hochladen wird vorbereitet + Um fortzufahren, sollte der Chat beendet werden. + %s hochgeladen + Archiv wird hochgeladen + Chat wird beendet + Oder teilen Sie diesen Datei-Link sicher + Hochladen wiederholen + Hochladen fehlgeschlagen + Überprüfen Sie das Datenbank-Passwort + Sie können es nochmal probieren. + Fehler bei der Überprüfung des Passworts: + Überprüfen Sie das Passwort + Von einem anderen Gerät migrieren + Import ist fehlgeschlagen + Migration abgeschlossen + Bitte bestätigen Sie, dass die Netzwerkeinstellungen auf diesem Gerät richtig sind. + Standard-Ende-zu-Ende-Verschlüsselung + nicht auf zwei Geräten nutzen.]]> \ No newline at end of file diff --git a/apps/multiplatform/common/src/commonMain/resources/MR/es/strings.xml b/apps/multiplatform/common/src/commonMain/resources/MR/es/strings.xml index 8531bce63f..14fe05cd2e 100644 --- a/apps/multiplatform/common/src/commonMain/resources/MR/es/strings.xml +++ b/apps/multiplatform/common/src/commonMain/resources/MR/es/strings.xml @@ -1640,4 +1640,12 @@ Videollamada Error al abrir el navegador Para llamadas se requiere el navegador web predeterminado. Por favor, configura el navegador predeterminado en el sistema y comparte más información con los desarrolladores. + Archivando base de datos + Todos tus contactos, conversaciones y archivos serán cifrados, divididos y subidos de forma segura a los servidores XFTP configurados. + Los administradores pueden bloquear un miembro para el resto + Chat migrado! + Migración de los datos de la app + Aplicar + Archivar y subir + Cancelar migración \ No newline at end of file diff --git a/apps/multiplatform/common/src/commonMain/resources/MR/fr/strings.xml b/apps/multiplatform/common/src/commonMain/resources/MR/fr/strings.xml index b0ebf891e9..ead3957aa5 100644 --- a/apps/multiplatform/common/src/commonMain/resources/MR/fr/strings.xml +++ b/apps/multiplatform/common/src/commonMain/resources/MR/fr/strings.xml @@ -1639,4 +1639,80 @@ Appel audio Le navigateur web par défaut est requis pour les appels. Veuillez configurer le navigateur par défaut dans le système et partager plus d\'informations avec les développeurs. Erreur lors de l\'ouverture du navigateur + Confirmer que vous vous souvenez de la phrase secrète de la base de données pour la transférer. + Transfert des données de l\'application + Les admins peuvent bloquer un membre pour tous. + Le fichier exporté n\'existe pas + Erreur lors de l\'envoi de l\'archive + Tous vos contacts, conversations et fichiers seront chiffrés en toute sécurité et transférés par morceaux vers les relais XFTP configurés. + Appliquer + Archiver et transférer + Archivage de la base de données + Avertissement : l\'archive sera supprimée.]]> + Remarque : l\'utilisation d\'une même base de données sur deux appareils interrompra le déchiffrement des messages provenant de vos connexions, par mesure de sécurité.]]> + Annuler le transfert + Messagerie transférée ! + Vérifiez votre connexion internet et réessayez + Échec du téléchargement + Transférer depuis un autre appareil sur le nouvel appareil et scanner le code QR.]]> + Confirmer les paramètres réseau + Confirmer la transmission + Création d\'un lien d\'archive + Supprimer la base de données de cet appareil + Téléchargement de l\'archive + Téléchargement des détails du lien + Activé dans les conversations directes (BETA) ! + Entrer la phrase secrète + Erreur lors de la suppression de la base de données + Erreur lors de l\'exportation de la base de données des chats + Erreur lors du téléchargement de l\'archive + Erreur lors de l\'enregistrement des paramètres + Erreur lors de la vérification de la phrase secrète : + chiffrement de bout en bout avec une confidentialité persistante, une répudiation et une récupération en cas d\'effraction.]]> + chiffrement e2e résistant post-quantique avec une confidentialité persistante, une répudiation et une récupération en cas d\'effraction.]]> + Cette discussion est protégée par un chiffrement de bout en bout. + Cette discussion est protégée par un chiffrement de bout en bout résistant post-quantique. + Accéder à l\'écran de transfert + Transférer depuis un autre appareil + Définir une phrase secrète + chiffrement e2e résistant post-quantique + Échec de l\'envoi + Vous pouvez faire un nouvel essai. + Répéter l\'envoi + Transférer vers un autre appareil via un code QR. + Chiffrement résistant post-quantique + Appels picture-in-picture + Groupes plus sûrs + Utiliser l\'application pendant l\'appel. + Préparation du téléchargement + %s téléchargés + Importation de l\'archive + Répéter l\'importation + Finalisez le transfert sur l\'autre appareil. + Transférer l\'appareil + Transférer vers un autre appareil + Préparation de l\'envoi + Pour continuer, le chat doit être interrompu. + Arrêt du chat + %s envoyé + Envoi de l\'archive + Finaliser le transfert + Transfert terminé + Démarrer le chat + ne devez pas utiliser la même base de données sur deux appareils.]]> + Vérifier la phrase secrète de la base de données + Répéter le téléchargement + Veuillez confirmer que les paramètres réseau de cet appareil sont corrects. + chiffrement de bout en bout standard + Le fichier a été supprimé ou le lien est invalide + Échec de l\'importation + Lien invalide + Transférer ici + Transfert + Ou coller le lien de l\'archive + Ou partagez en toute sécurité le lien de ce fichier + Coller le lien de l\'archive + Vérifier la phrase secrète + Attention : démarrer une session de chat sur plusieurs appareils n\'est pas pris en charge et entraînera des dysfonctionnements au niveau de la transmission des messages + Vous pouvez faire un nouvel essai. \ No newline at end of file diff --git a/apps/multiplatform/common/src/commonMain/resources/MR/hu/strings.xml b/apps/multiplatform/common/src/commonMain/resources/MR/hu/strings.xml index a323741f5c..f53d4d9802 100644 --- a/apps/multiplatform/common/src/commonMain/resources/MR/hu/strings.xml +++ b/apps/multiplatform/common/src/commonMain/resources/MR/hu/strings.xml @@ -29,10 +29,10 @@ Kapcsolatfelvétel elfogadása? Elfogadás Elfogadás - Azonosító hozzáadása a profilhoz, hogy az ismerősök megoszthassák másokkal. A profilfrissítés elküldésre kerül az ismerősők számára. + Azonosító hozzáadása a profilhoz, hogy az ismerősei megoszthassák másokkal. A profilfrissítés elküldésre kerül az ismerősök számára. További kiemelés hiba a hívásban - Csoporttagok blokkolása + Csoporttagok letiltása Hitelesítés Egy üres csevegési profil jön létre a megadott névvel, és az alkalmazás a szokásos módon megnyílik. megszakítva %s @@ -50,17 +50,17 @@ Alkalmazásadatok biztonsági mentése Az adatbázis inicializálása sikertelen Ismerőseivel kapcsolatban marad. A profil változtatások frissítésre kerülnek az ismerősöknél. - A csevegési profil által (alap beállítás), vagy kapcsolat által (BÉTA). + A csevegési profil által (alap beállítás), vagy a kapcsolat által (BÉTA). Egy új véletlenszerű profil lesz megosztva. - Hangüzenetek küldésének engedélyezése kizárólag abban az esetben, ha ismerőse is engedélyezi. + Hangüzenetek küldésének engedélyezése kizárólag abban az esetben, ha az ismerőse is engedélyezi. Az alkalmazás build száma: %s Hang-/videóhívások Speciális hálózati beállítások - Hangüzenetek küldésének engedélyezése ismerősök számára + Hangüzenetek küldésének engedélyezése az ismerősei számára. Hang- és videóhívások Az alkalmazás titkosítja a helyi fájlokat (a videók kivételével). Hívás fogadása - Eltűnő üzenetek engedélyezése ismerősök számára. + Eltűnő üzenetek engedélyezése az ismerősei számára. Kapcsolódás folyamatban! Nem lehet fogadni a fájlt Hitelesítés elérhetetlen @@ -79,12 +79,12 @@ Csatlakozás folyamatban! Automatikus elfogadás A háttérszolgáltatás mindig fut - az értesítések azonnal megjelennek, amint üzenetek vannak. - Elküldött üzenetek visszafordíthatatlan törlésének engedélyezése. (24 óra) + Az elküldött üzenetek visszafordíthatatlan törlése engedélyezve van. (24 óra) Mindkét fél küldhet hangüzeneteket. Téves üzenet ID - Ismerősök általi üzenetreakciók hozzáadásának engedélyezése. - Hangüzenetek küldésének engedélyezése. - Üzenetreakciók engedélyezése kizárólag abban az esetben, ha ismerőse is engedélyezi. + Ismerősök általi üzenetreakciók küldésének engedélyezése. + A hangüzenetek küldése engedélyezve van. + Üzenetreakciók engedélyezése kizárólag abban az esetben, ha az ismerőse is engedélyezi. Vissza Kikapcsolható a beállításokban – az értesítések továbbra is megjelenítésre kerülnek amíg az alkalmazás fut.]]> Az adminok hivatkozásokat hozhatnak létre a csoportokhoz való csatlakozáshoz. @@ -93,23 +93,23 @@ Ismerősök meghívása le van tiltva! téves üzenet ID Ismerős jelölések automatikus elfogadása - Figyelem: NEM fogja tudni helyreállítani vagy megváltoztatni a jelmondatot abban az esetben, ha elveszíti.]]> + Figyelem: NEM fogja tudni helyreállítani, vagy megváltoztatni a jelmondatot abban az esetben, ha elveszíti.]]> hívás… További másodlagos Hozzáadás egy másik eszközhöz - Üzenetreakciók engedélyezése. + Az üzenetreakciók küldése engedélyezve van. Fájl előnézet megszakítása Minden csoporttag csatlakoztatva marad. Több akkumulátort használ! Háttérszolgáltatás mindig fut - az értesítések megjelennek, amint az üzenetek elérhetővé válnak.]]> - Blokkolás + Letiltás admin Fénykép előnézet megszakítása A jelkód megadása után minden adat törlésre kerül. Felkérték a videó fogadására - Tag blokkolása + Tag letiltása Még néhány dolog Hitelesítés megszakítva - Fájlok és médiatartalom küldésének engedélyezése. + A fájlok- és a médiatartalom küldése engedélyezve van. Minden csevegés és üzenet törlésre kerül - ez nem vonható vissza! hanghívás félkövér @@ -122,20 +122,20 @@ Engedélyezés Minden ismerős csatlakoztatva marad. Élő csevegési üzenet megszakítása - Üzenet végleges törlésének engedélyezése kizárólag abban az esetben, ha ismerőse is engedélyezi. (24 óra) + Üzenet végleges törlésének engedélyezése kizárólag abban az esetben, ha az ismerőse is engedélyezi. (24 óra) Hang- és videóhívások téves üzenet hash Mindig bekapcsolva - Az Android Keystore biztonságosan fogja tárolni a jelmondatot az alkalmazás újraindítása vagy a jelmondat megváltoztatás után - lehetővé téve az értesítések fogadását. + Az Android Keystore biztonságosan fogja tárolni a jelmondatot az alkalmazás újraindítása, vagy a jelmondat megváltoztatás után - lehetővé téve az értesítések fogadását. Minden alkalmazásadat törölve. Legjobb akkumulátoridő. Csak akkor kap értesítést, ha az alkalmazás fut (NINCS háttérszolgáltatás).]]> Megjelenés Az akkumulátor optimalizálása aktív, mely kikapcsolja a háttérszolgáltatást és az új üzenetek rendszeres kérését. A beállításokon keresztül újra engedélyezhetők. - Tag blokkolása? + Tag letiltása? %1$s hívása befejeződött - Jó akkumulátoridő. A háttérszolgáltatás 10 percenként ellenőrzi az új üzeneteket. Előfordulhat, hogy hívásokról vagy a sürgős üzeneteketről marad le.]]> + Jó akkumulátoridő. A háttérszolgáltatás 10 percenként ellenőrzi az új üzeneteket. Előfordulhat, hogy hívásokról, vagy a sürgős üzenetekről marad le.]]> szerző - Elküldött üzenetek visszafordíthatatlan törlésének engedélyezése ismerősök számára. (24 óra) + Elküldött üzenetek visszafordíthatatlan törlésének engedélyezése az ismerősei számára. (24 óra) Megszakítás Az alkalmazás csak akkor tud értesítéseket fogadni amikor fut, háttérszolgáltatás nem indul el Jobb üzenetek @@ -150,25 +150,25 @@ A Keystore-hoz nem sikerül hozzáférni az adatbázis jelszó mentése végett hívás folyamatban Fotók automatikus elfogadása - Hívások engedélyezése ismerősök számára. + Hívások engedélyezése az ismerősei számára. ALKALMAZÁS IKON Kiszolgáló hozzáadása QR-kód beolvasásával. - Eltűnő üzenetek küldésének engedélyezése. - Eltűnő üzenetek engedélyezése kizárólag abban az esetben, ha ismerőse is engedélyezi. + Az eltűnő üzenetek küldése engedélyezve van. + Eltűnő üzenetek engedélyezése kizárólag abban az esetben, ha az ismerőse is engedélyezi. Hang kikapcsolva - Közvetlen üzenetek küldésének engedélyezése tagok részére. + A közvetlen üzenetek küldése a tagok számára engedélyezve van. Alkalmazás Hívás folyamatban - Mindkét fél is hozzáadhat üzenetreakciókat. + Mindkét fél küldhet üzenetreakciókat. Mindkét fél tud hívásokat indítani. Hitelesítés sikertelen Minden %s által írt új üzenet elrejtésre kerül! Alkalmazás verzió: v%s - Hívások engedélyezése kizárólag abban az esetben, ha ismerőse is engedélyezi. + Hívások engedélyezése kizárólag abban az esetben, ha az ismerőse is engedélyezi. Kiszolgáló hozzáadása… Hang bekapcsolva hanghívás (nem e2e titkosított) - blokkolva + letiltva Adatbázis jelmondat megváltoztatása? kapcsolódva Jelkód megváltoztatása @@ -205,7 +205,7 @@ Kapcsolódás egy hivatkozás / QR-kód által Kapcsolódási hiba (AUTH) Ismerős neve - Kapcsolódás ismerős azonosítója által? + Kapcsolódik ehhez az ismerőshöz? Azonosító létrehozása Másolás Folytatás @@ -236,7 +236,7 @@ Kapcsolódási hiba Az ismerős még nem csatlakozott! - kapcsolódás könyvtár szolgáltatáshoz (BÉTA)! -\n- kézbesítési igazolások (20 tagig). +\n- kézbesítési jelentések (20 tagig). \n- gyorsabb és stabilabb Hozzájárulás csatlakozás (bemutatkozás meghívó) @@ -245,7 +245,7 @@ Csoporttag üzenet törlése? A csevegés fut Egyszer használatos meghívó hivatkozás létrehozása - Hivatkozás törlése + Törlés Új üzenetek ellenőrzése 10 percenként, legfeljebb 1 percen keresztül. Adatbázis törlése Csoport létrehozása @@ -342,15 +342,15 @@ Ismerős törlése? Kiürítés Azonosító létrehozása, hogy az emberek kapcsolatba léphessenek önnel. - Biztonsági kódok összehasonlítása ismerősökkel. + Biztonsági kódok összehasonlítása az ismerőseiével. Fájl összehasonlítás Csevegések Üzenet törlése? Függő kapcsolatfelvételi kérések törlése? Adatbázis titkosítva! - Csevegés kiürítése? + Üzenetek törlése? Visszatérés a korábbi adatbázis verzióra - Csevegés kiürítése + Üzenetek törlése Adatbázis titkosítási jelmondat frissítve lesz. Kapcsolódás automatikusan Adatbázis hiba @@ -371,7 +371,7 @@ %d hét Számítógép azonosítója %dmp - Kézbesítési igazolások! + Kézbesítési jelentések! Eszközhitelesítés nem engedélyezett.A SimpleX zárolás bekapcsolható a Beállításokon keresztül, miután az eszköz hitelesítés engedélyezésre került. Titkosítás visszafejtési hiba Eltűnik ekkor: %s @@ -418,7 +418,7 @@ Duplikált megjelenítési név! Letiltás (felülírások megtartásával) Adatbázis fejlesztése - %d üzenet blokkolva + %d üzenet letiltva Eltűnik ekkor %d hét engedélyezve az ön számára @@ -429,7 +429,7 @@ %d másodperc Minden fájl törlése Az adatbázis titkosításra kerül. - Adatbázis jelmondat és exportálás + Adatbázis jelmondat és -exportálás Az adatbázis titkosításra kerül és a jelmondat eltárolásra a Keystore-ban. Automatikus üzenet törlés engedélyezése? Törlés @@ -463,7 +463,7 @@ Adatbázis jelmondat szükséges a csevegés megnyitásához. %dnap Engedélyezés mindenki részére - Kézbesítési igazolások kikapcsolva! + Kézbesítési jelentések kikapcsolva! Kibontás Hiba az üzenet küldésekor Jelkód megadása @@ -547,11 +547,11 @@ Üdvözlő üzenetet megadása… Titkosított adatbázis Jelszó megadása a keresőben - A fájl akkor érkezik meg, amikor ismerőse befejezte annak feltöltést. + A fájl akkor érkezik meg, amikor az ismerőse befejezte annak feltöltését. Fájl letöltése Csevegés betöltése sikertelen Kiszolgáló megadása kézzel - A fájl akkor érkezik meg, amint ismerőse online lesz, várjon, vagy ellenőrizze később! + A fájl akkor érkezik meg, amikor az ismerőse online lesz, várjon, vagy ellenőrizze később! Hiba a csoport hivatkozásának létrehozásakor A Galériából Engedélyezés (csoport felülírások megtartásával) @@ -653,7 +653,7 @@ Érvénytelen csevegés óra Inkognitó - Hogyan használja + Használati útmutató Alkalmazás képernyőjének elrejtése a gyakran használt alkalmazások között. Javított kiszolgáló konfiguráció Előzmények @@ -671,12 +671,12 @@ Elrejt: Hiba az ismerőssel történő kapcsolat létrehozásában ICE-kiszolgálók (soronként egy) - beolvashatja a QR-kódot a videohívásban, vagy ismerőse megoszthat egy meghívó hivatkozást.]]> + beolvashatja a QR-kódot a videohívásban, vagy az ismerőse megoszthat egy meghívó hivatkozást.]]> Ha az alkalmazás megnyitásakor megadja ezt a jelkódot, az összes alkalmazásadat visszafordíthatatlanul törlődik! Ha nem tud személyesen találkozni, mutassa meg a QR-kódot egy videohívás során, vagy ossza meg a hivatkozást. mutassa meg a QR-kódot a videohívásban, vagy ossza meg a hivatkozást.]]> Megerősítés esetén az üzenetküldő kiszolgálók látni fogják az IP-címét és a szolgáltatóját – azt, hogy mely kiszolgálókhoz csatlakozik. - A kép akkor érkezik meg, amikor ismerőse befejezte annak feltöltését. + A kép akkor érkezik meg, amikor az ismerőse befejezte annak feltöltését. QR kód beolvasásával]]> Kapott SimpleX Chat meghívó hivatkozását megnyithatja böngészőjében: Ha az alkalmazás megnyitásakor az önmegsemmisítő jelkódot megadásra kerül: @@ -689,7 +689,7 @@ Különböző nevek, avatarok és átviteli izoláció. Elutasítás esetén a feladó NEM kap értesítést. Szerepkör kiválasztásának bővítése - A kép akkor érkezik meg, amikor ismerős elérhető lesz, várjon vagy ellenőrizze később! + A kép akkor érkezik meg, amikor az ismerőse elérhető lesz, várjon, vagy ellenőrizze később! meghívott Érvénytelen kapcsolati hivatkozás Némítás @@ -706,7 +706,7 @@ A tag eltávolítása a csoportból - ez nem vonható vissza! Győződjön meg róla, hogy az XFTP-kiszolgáló címei megfelelő formátumúak, sorszeparáltak és nem duplikáltak. Nem kerültek ismerősök kiválasztásra - Nincsenek fogadott vagy küldött fájlok + Nincsenek fogadott, vagy küldött fájlok Megnyitás mobil alkalmazásban, majd koppintson a Csatlakozás gombra az alkalmazásban.]]> Markdown az üzenetekben meghívás a %1$s csoportba @@ -726,7 +726,7 @@ Hamarosan további fejlesztések érkeznek! Az üzenetreakciók ebben a csevegésben le vannak tiltva. Helytelen biztonsági kód! - Ez akkor fordulhat elő, ha ön vagy a kapcsolata régi adatbázis biztonsági mentést használt. + Ez akkor fordulhat elő, ha ön, vagy a kapcsolata régi adatbázis biztonsági mentést használt. Új asztali alkalmazás! Most már az adminok is: \n- törölhetik a tagok üzeneteit. @@ -809,7 +809,7 @@ Értesítési szolgáltatás Csak a csoporttulajdonosok engedélyezhetik a hangüzenetek küldését. 2 rétegű végponttól-végpontig titkosítással küldött üzeneteket.]]> - Érvénytelen migrációs visszaigazolás + Érvénytelen átköltöztetési visszaigazolás Csak a csoporttulajdonosok módosíthatják a csoportbeállításokat. Nincsenek előzmények Érvénytelen QR-kód @@ -829,7 +829,7 @@ Ha a SimpleX Chat-nek nincs felhasználói azonosítója, hogyan lehet mégis üzeneteket küldeni?]]> Ez akkor fordulhat elő, ha: \n1. Az üzenetek 2 nap után, vagy a kiszolgálón 30 nap után lejártak. -\n2. Az üzenet visszafejtése sikertelen volt, mert vagy az ismerőse régebbi adatbázis biztonsági mentést használt. +\n2. Az üzenet visszafejtése sikertelen volt, mert ön, vagy az ismerőse régebbi adatbázis biztonsági mentést használt. \n3. A kapcsolat sérült. megfigyelő inkognitó a csoportos hivatkozáson keresztül @@ -913,10 +913,10 @@ Önmegsemmisítési jelkód Mentés és csoport profil frissítése Adatvédelem - SimpleX azonosítója + SimpleX azonosító Jelentse a fejlesztőknek. Az emberek csak az ön által megosztott hivatkozáson keresztül kapcsolódhatnak. - Eltűnő üzenetek küldésének letiltása. + Az eltűnő üzenetek küldése le van tiltva. Csak ön tud hangüzeneteket küldeni. Frissítés Videó elküldve @@ -931,7 +931,7 @@ Egyszer használatos hivatkozás megosztása Hiba az adatbázis visszaállításakor %s és %s - Engedélyezte + Engedélyezve Csökkentett akkumulátorhasználat Mentés és ismerősök értesítése Előnézet @@ -940,13 +940,13 @@ Fogadott üzenet Üdvözlő üzenet %s, %s és %d további tag csatlakozott - Csak az ismerős tud hívást indítani. + Csak az ismerőse tud hívást indítani. TÉMÁK Túl sok videó! Csevegési szolgáltatás megállítása az adatbázis műveletek elvégzéséhez. Üdvözöljük! Önmegsemmisítési jelkód - (beolvasás vagy beillesztés a vágólapról) + (beolvasás, vagy beillesztés a vágólapról) Videóra várakozás Válasz Ez az egyszer használatos hivatkozása! @@ -954,23 +954,23 @@ Új inkognító profil használata Frissítse az alkalmazást, és lépjen kapcsolatba a fejlesztőkkel. SimpleX - Hivatkozás előnézetek küldése + Hivatkozás előnézete biztonsági kód megváltozott Kizárólag ismerős megjelenítése Hangszóró bekapcsolva Importált csevegési adatbázis használatához indítsa újra az alkalmazást. jogosulatlan küldés - Csak az ismerős tud hangüzeneteket küldeni. + Csak az ismerőse tud hangüzeneteket küldeni. Beállítások - A csatlakozáshoz az ismerős beolvashatja a QR-kódot, vagy használhatja az alkalmazásban található hivatkozást. + A csatlakozáshoz az ismerőse beolvashatja a QR-kódot, vagy használhatja az alkalmazásban található hivatkozást. visszaigazolás fogadása… - Biztonsági kód beolvasása ismerős általi alkalmazásból. + Biztonsági kód beolvasása az ismerősének alkalmazásából. Lépjen kapcsolatba a csoport adminnal. Videó bekapcsolva Profil neve: Beillesztés Köszönjük, hogy telepítette a SimpleX Chatet! - Csillag a GitHub-on + Csillagozás a GitHub-on Eltávolítás Keresés Titkosítás újraegyeztetése? @@ -1039,7 +1039,7 @@ Elküldés Biztonsági kód Adja meg a helyes aktuális jelmondatát. - Az üzenetek véglegesen való törlése le van tiltva. + Az elküldött üzenetek visszafordíthatatlan törlése le van tiltva. Üzenetreakció tiltása. Véletlenszerű jelmondat használata egyenrangú @@ -1087,10 +1087,10 @@ Időszakosan indul Ez a SimpleX azonosítója! eltávolítva - Hivatkozás megosztása + Megosztás SimpleX csapat profilkép - Csevegési profiljai + Csevegési profilok tulajdonos Bekapcsolás %s, %s és %s csatlakozott @@ -1124,7 +1124,7 @@ A küldő törölhette a kapcsolódási kérelmet. Téves adatbázis jelmondat SMP kiszolgálók - Üzenet kézbesítési jelentés letiltva + Az üzenet kézbesítési jelentések le vannak tiltva Adatbázis mappa megnyitása egyszer használatos hivatkozáson keresztül Csoportbeállítások megadása @@ -1155,7 +1155,7 @@ megfigyelő szerep Port Jelkód beállítása - Milyen újdonságok vannak + Változáslista Csoport megnyitása Elküldve ekkor Hangüzenetek küldésének letiltása. @@ -1170,20 +1170,20 @@ Szétkapcsolás Véletlenszerű profil Téves jelmondat! - Az üzenetreakciók tiltása. + Az üzenetreakciók küldése le van tiltva. Rendszer olvasatlan Függő Üdvözöljük %1$s! Jelmondat eltávolítása a Keystrore-ból? Feloldás - Eltűnő üzenetek küldésének letiltása. + Az eltűnő üzenetek küldése le van tiltva. Videó Frissítés Megnyitás Rendszeres értesítések Kihagyott üzenetek - Hangüzenetek küldésének letiltása. + A hangüzenetek küldése le van tiltva. Ismerős nevének beállítása... Csak ön tud eltűnő üzeneteket küldeni. Kép/videó megoszása… @@ -1207,7 +1207,7 @@ QR-kód megjelenítése videóhívás Nem kedvenc - Üzenet kézbesítési jelentések + Üzenet kézbesítési jelentések küldése SimpleX azonosító Koppintson a gombra Mentés és ismerős értesítése @@ -1221,7 +1221,7 @@ SimpleX zárolási mód Fájl visszavonása XFTP kiszolgálók - Fájlok- és a médiatartalom küldés letiltása. + A fájlok- és a médiatartalom küldése le van tiltva. Fájl megosztása… Mentés átjátszón keresztül @@ -1230,7 +1230,7 @@ Jelmondat mentése és csevegés megnyitása Beállítások mentése? Az első csevegési rendszer bármiféle felhasználó azonosító nélkül - privátra lett tervezre. - Közvetlen üzenetek küldésének letiltása tagok részére. + A közvetlen üzenetek küldése a tagok számára le van tiltva. SOCKS proxy használata? Hangszóró kikapcsolva hét @@ -1243,7 +1243,7 @@ Rendszerhitelesítés Böngészőn keresztül Csevegési profiljok védelme jelszóval! - Csak az ismerős tud eltűnő üzeneteket küldeni. + Csak az ismerőse tud eltűnő üzeneteket küldeni. ICE kiszolgálók QR-kód beolvasása számítógépről SimpleX logó @@ -1260,7 +1260,7 @@ SimpleX zárolás Mentés és csoporttagok értesítése Alaphelyzetbe állítás - Csak az ismerős tud üzeneteakciókat adni. + Csak az ismerőse tud üzenetreakciókat küldeni. Hangüzenetek elhagyta Hangüzenet rögzítése @@ -1295,7 +1295,7 @@ Már csatlakozott: %1$s. Jelenlegi csevegési adatbázis TÖRLÉSRE és FELCSERÉLÉSRE kerül az importált által! \nEz a művelet nem visszavonható - profilok, ismerősök, csevegési üzenetek és fájlok véglegesen elvesznek! - Ötletek és kérdések beküldése + Ötletek és javaslatok Figyelmeztetés: néhány adat elveszhet! Koppintson az új csevegés indításához Várakozás a számítógépre… @@ -1308,7 +1308,7 @@ fájlok fogadása egyelőre még nem támogatott Csoport profil mentése Alaphelyzetbe állítás - Hacsak az ismerős nem törölte a kapcsolatot, vagy ez a hivatkozás már használatban volt, hiba lehet – kérjük, jelentse. + Hacsak az ismerőse nem törölte a kapcsolatot, vagy ez a hivatkozás már használatban volt, hiba lehet – kérjük, jelentse. \nA csatlakozáshoz kérje meg ismerősét, hogy hozzon létre egy másik kapcsolati hivatkozást, és ellenőrizze, hogy a hálózati kapcsolat stabil-e. videóhívás (nem e2e titkosított) Alkalmazás új kapcsolatokhoz @@ -1319,7 +1319,7 @@ Az ismerősnek online kell lennie ahhoz, hogy a kapcsolat létrejöjjön. \nMegszakíthatja ezt a kapcsolatfelvételt és törölheti az ismerőst (ezt később ismét megpróbálhatja egy új hivatkozással) A jelszó nem található a Keystore-ban, ezért kézzel szükséges megadni. Ez akkor történhetett meg, ha visszaállította az alkalmazás adatait egy biztonsági mentési eszközzel. Ha nem így történt, akkor lépjen kapcsolatba a fejlesztőkkel. - Az ismerősök továbbra is csatlakoztatva maradnak. + Az ismerősei továbbra is csatlakoztatva maradnak. A kiszolgálónak engedélyre van szüksége a várólisták létrehozásához, ellenőrizze jelszavát Az adatbázis nem működik megfelelően. Koppintson további információért A fájl küldése leállt. @@ -1341,7 +1341,7 @@ Lehetséges, hogy a kiszolgáló címében szereplő tanúsítvány-ujjlenyomat helytelen Az adatavédelem érdekében kapcsolja be a SimpleX zárolás funkciót. \nA funkció engedélyezése előtt a rendszer felszólítja a hitelesítés befejezésére. - A videó akkor érkezik meg, amikor az ismerős elérhető, várjon, vagy ellenőrizze később! + A videó akkor érkezik meg, amikor az ismerőse elérhető, várjon, vagy ellenőrizze később! Hálózati kapcsolat ellenőrzése a következővel: %1$s, és próbálja újra. A SimpleX zárolás a Beállításokon keresztül kapcsolható be. Az alkalmazás összeomlott @@ -1361,20 +1361,20 @@ %1$s.]]> Profil felfedése Ez a hivatkozás nem érvényes kapcsolati hivatkozás! - A végpontok közötti titkosítás ellenőrzéséhez ismerősével hasonlítsa össze (vagy szkennelje be) az eszközén lévő kódot. - A csevegési adatbázis legfrissebb verzióját CSAK egy eszközön kell használnia, ellenkező esetben előfordulhat, hogy az üzeneteket nem fogja megkapni valamennyi ismerőstől. + A végpontok közötti titkosítás ellenőrzéséhez hasonlítsa össze (vagy szkennelje be) az ismerőse eszközén lévő kódot. + A csevegési adatbázis legfrissebb verzióját CSAK egy eszközön kell használnia, ellenkező esetben előfordulhat, hogy az üzeneteket nem fogja megkapni valamennyi ismerősétől. Ez a beállítás a jelenlegi csevegési profilban lévő üzenetekre érvényes Meghívást kapott a csoportba. Csatlakozzon, hogy kapcsolatba léphessen a csoport tagjaival. Ez a csoport már nem létezik. Ezen a hivatkozáson keresztül már csatlakozik a csoporthoz. Meghívást kapott a csoportba Ismerőse a jelenleg megengedett maximális méretű (%1$s) fájlnál nagyobbat küldött. - Az ismerősök és az üzenetek (kézbesítés után) nem kerülnek tárolásra a SimpleX kiszolgálókon. + Az ismerősei és az üzenetek (kézbesítés után) nem kerülnek tárolásra a SimpleX kiszolgálókon. Üzenetek formázása a szövegbe szúrt speciális karakterekkel: Megnyitás alkalmazásban gombra.]]> - Csevegési profilja megküldésre kerül -\nismerőse számára - Egy olyan ismerőst próbál meghívni, akivel inkognító profilt osztott meg abban a csoportban, amelyben saját fő profilja van használatban + Csevegési profilja elküldésre kerül +\naz ismerőse számára + Egy olyan ismerősét próbálja meghívni, akivel inkognitó profilt osztott meg abban a csoportban, amelyben a saját fő profilja van használatban %1$s csoporthoz.]]> Amikor az alkalmazás fut Inkognító profilt használ ehhez a csoporthoz - fő profilja megosztásának elkerülése érdekében meghívók küldése tiltott @@ -1382,13 +1382,13 @@ Akkor lesz csatlakoztatva, ha a csatlakozási kérelme elfogadásra került, várjon, vagy ellenőrizze később! A hangüzenetek küldése le van tiltva ebben a csoportban. Alkalmazás akkumulátor használata / Korlátlan módot az alkalmazás beállításaiban.]]> - Biztonságos kvantum ellenálló protokoll által. + Biztonságos kvantumrezisztens protokollon keresztül. - hangüzenetek 5 percig. \n- egyedi eltűnési időhatár \n- előzmény szerkesztése Használat számítógépről gombra a mobil appban és olvassa be a QR-kódot!]]> %s at %s - Akkor csatlakozik, amikor az ismerős eszköze online lesz, várjon, vagy ellenőrizze később! + Akkor csatlakozik, amikor az ismerősének az eszköze online lesz, várjon, vagy ellenőrizze később! Kéretlen üzenetek elrejtése. Használja az .onion hostokat NEM értékre, ha a SOCKS proxy nem támogatja őket.]]> Megoszthatja azonosítóját hivatkozásként vagy QR-kódként – így bárki csatlakozhat önhöz. @@ -1397,7 +1397,7 @@ %s szerepkörét megváltoztatta erre: %s Csoport meghívó elutasítva Az adatvédelem érdekében, a más csevegési platformokon megszokott felhasználói azonosítók helyett, a SimpleX üzenetsorokhoz rendel azonosítókat, minden egyes ismerőshöz egy különbözőt. - (megosztás ismerőssel) + (megosztás egy ismerőssel) Csoport meghívó elküldve Kapcsolat izolációs mód frissítése? Kapcsolat izolációs mód @@ -1409,11 +1409,11 @@ Később engedélyezheti őket az alkalmazás Adatvédelem és biztonság menüpontban. Rejtett profiljának felfedéséhez írja be a teljes jelszót a Csevegési profilok oldal keresőmezőjébe. A csevegés frissítése és megnyitása - Hangüzeneteket küldéséhez engedélyeznie kell azok küldését az ismerősök számára. - fogadja az üzeneteket, ismerősöket – A kiszolgálók, amelyeket az üzenetküldéshez használ.]]> + Hangüzeneteket küldéséhez engedélyeznie kell azok küldését az ismerősei számára. + fogadja az üzeneteket, ismerősöket – a kiszolgálók, amelyeket az üzenetküldéshez használ.]]> %1$s csoport tagja.]]> Azonosítója megváltoztatva - Ismerősök engedélyezhetik a teljes üzenet törlést. + Ismerősei engedélyezhetik a teljes üzenet törlést. A jelmondatot minden alkalommal meg kell adnia, amikor az alkalmazás elindul - nem az eszközön kerül tárolásra. Ha engedélyezni szeretné, hogy egy mobilalkalmazás csatlakozzon a számítógéphez, akkor nyissa meg ezt a portot a tűzfalában, ha engedélyezte azt Profilja, ismerősök és az elküldött üzenetek az eszközön kerülnek tárolásra. @@ -1421,7 +1421,7 @@ Ez a karakterlánc nem egy meghívó hivatkozás! Új csevegés kezdése Már csatlakozik ezen az egyszer használatos hivatkozáson keresztül! - Nem veszíti el ismerőseit, ha később törli az azonosítóját. + Nem veszíti el az ismerőseit, ha később törli az azonosítóját. A beállítások frissítése a kiszolgálókhoz való újra kapcsolódással jár. kapcsolatba akar lépni veled! Saját szerepköre erre változott: %s @@ -1444,7 +1444,7 @@ Csoporttag részére a csatlakozási kérelem eküldésre kerül. Inkognitóprofil megosztása esetén a rendszer azt a profilt fogja használni azokhoz a csoportokhoz, amelyekbe meghívást kapott. Már kért egy csatlakozást ezen az azonosítón keresztül! - Megoszthatja ezt a SimpleX azonosítót ismerősökkel, hogy kapcsolatba léphessenek %s-el . + Megoszthatja ezt a SimpleX azonosítót ismerőseivel, hogy kapcsolatba léphessenek ezzel: %s. Csatlakozási kérelmek esetében, elfogadhatja vagy elutasíthatja azokat. Megjelenő üzenetet beállítása új tagok részére! Köszönet a felhasználóknak - hozzájárulás a Weblaten! @@ -1452,7 +1452,7 @@ Protokoll időkorlát KB-onként Az adatbázis jelmondatának megváltoztatására tett kísérlet nem fejeződött be. Ez a művelet nem vonható vissza - a kiválasztottnál korábban küldött és fogadott üzenetek törlésre kerülnek. Ez több percet is igénybe vehet. - Profilja csak az ismerősök számára kerül megosztásra. + Profilja csak az ismerősei számára kerül megosztásra. Néhány kiszolgáló megbukott a teszten: Koppintson a csatlakozáshoz Ez a művelet nem vonható vissza - az összes fogadott és küldött fájl a médiatartalommal együtt törlésre kerülnek. Az alacsony felbontású fotók viszont megmaradnak. @@ -1476,7 +1476,7 @@ Az átjátszó kiszolgáló csak szükség esetén kerül használatra. Egy másik fél megfigyelheti az IP-címét. Rendszerhitelesítés helyetti beállítás. A fogadó cím egy másik kiszolgálóra változik. A címváltoztatás a feladó online állapotba kerülése után fejeződik be. - A csevegés leállítása a csevegőadatbázis exportálásához, importálásához vagy törléséhez. A csevegés leállítása alatt nem tud üzeneteket fogadni és küldeni. + A csevegés leállítása a csevegő adatbázis exportálásához, importálásához, vagy törléséhez. A csevegés leállítása alatt nem tud üzeneteket fogadni és küldeni. Jelmondat mentése a kulcstárolóban Köszönet a felhasználóknak - hozzájárulás a Weblaten! Jelmondat mentése a beállításokban @@ -1505,7 +1505,7 @@ Tárolja el biztonságosan jelmondatát, mert ha elveszíti azt, NEM tudja megváltoztatni. A jelmondat a beállítások között egyszerű szövegként kerül tárolásra, miután megváltoztatta vagy újraindította az alkalmazást. A jelenlegi csevegési profilhoz tartozó új kapcsolatok kiszolgálói - Fogadás a + Fogadás ezen keresztül: Tárolja el biztonságosan jelmondát, mert ha elveszti azt, akkor NEM férhet hozzá a csevegéshez. A szerepkör \"%s\"-re fog változni. A tag új meghívót kap. profilkép helyőrző @@ -1516,12 +1516,12 @@ A jelmondat a beállításokban egyszerű szövegként van tárolva. Konzol megjelenítése új ablakban Az előző üzenet hash-e más. - Ezek a beállítások a jelenlegi proiljára vonatkoznak + Ezek a beállítások a jelenlegi profiljára vonatkoznak Várjon, amíg a fájl betöltődik a csatolt mobilról GitHub tárolónkban.]]> hiba a tartalom megjelenítése közben hiba az üzenet megjelenítésekor - Láthatóvá teheti SimpleX ismerősök számára a Beállításokban. + Láthatóvá teheti SimpleX beli ismerősei számára a Beállításokban. Legfeljebb az utolsó 100 üzenet kerül elküldésre az új tagoknak. A beolvasott kód nem egy SimpleX hivatkozás QR-kód. A beillesztett szöveg nem egy SimpleX hivatkozás. @@ -1538,8 +1538,8 @@ Az előzmények nem kerülnek elküldésre új tagok részére. Újrapróbálkozás A fényképező nem elérhető - Utolsó 100 üzenet küldése új tagoknak. - Ne küldjön előzményeket új tagok részére. + Az utolsó 100 üzenet elküldése az új tagoknak. + Ne küldjön előzményeket az új tagok részére. Vagy mutassa meg ezt a kódot Kamera hozzáférés engedélyezése Fel nem használt meghívó megtartása? @@ -1634,4 +1634,80 @@ Videóhívás Hiba a böngésző megnyitása közben A hívásokhoz egy alapértelmezett webböngésző szükséges. Állítson be egy alapértelmezett webböngészőt az eszközön, és osszon meg további információkat a SimpleX Chat fejlesztőivel. + Hálózati beállítások megerősítése + Hiba a csevegési adatbázis exportálásakor + Alkalmaz + Archiválás és feltöltés + Feltöltés megerősítése + Hiba az adatbázis törlésekor + Az adminok egy tagot mindenki számára letilthatnak. + Minden ismerős, a beszélgetések és a fájlok biztonságosan titkosításra kerülnek, melyek részletekben feltöltődnek a beállított XFTP átjátszókra. + Alkalmazásadatok átköltöztetése + Adatbázis archiválása + Az átköltöztetés megszakítása + A csevegés átköltöztetve! + Ellenőrizze az internetkapcsolatot, és próbálja újra + Archív hivatkozás létrehozása + Adatbázis törlése erről az eszközről + Letöltés sikertelen + Archívum letöltése + Letöltési hivatkozás részletei + Engedélyezés a közvetlen csevegésekben (BÉTA)! + Jelmondat megadása + Hiba a beállítások mentésekor + Hiba az archívum letöltésekor + Hiba az archívum feltöltésekor + Hiba a jelmondat ellenőrzésekor: + Az exportált fájl nem létezik + A fájl törlésre került, vagy érvénytelen hivatkozás + %s letöltve + Archívum importálása + Feltöltés előkészítése + Adatbázis jelmondatának ellenőrzése + Jelmondat ellenőrzése + Jelmondat beállítása + Kép a képben hívások + Biztonságosabb csoportok + Használja az alkalmazást hívás közben. + Vagy illessze be az archívum hivatkozását + Az archívum hivatkozásának beillesztése + Letöltés ismét + Sikertelen importálás + Ellenőrizze, hogy a hálózati beállítások megfelelőek-e ehhez az eszközhöz. + A folytatáshoz a csevegést le kell állítani. + Csevegés leállítása + Vagy ossza meg biztonságosan ezt a fájl hivatkozást + Csevegés indítása + Nem szabad ugyanazt az adatbázist használni egyszerre két eszközön.]]> + Erősítse meg, hogy emlékszik az adatbázis jelmondatára az átköltöztetéshez. + Átköltöztetés egy másik eszközről opciót az új eszközön és szkennelje be a QR-kódot.]]> + Az átköltöztetés véglegesítése + Az átköltöztetés véglegesítése egy másik eszközön. + Letöltés előkészítése + Feltöltés ismét + %s feltöltve + A feltöltés sikertelen + Archívum feltöltése + Figyelmeztetés: a csevegés elindítása egyszerre több eszközön nem támogatott, továbbá üzenetkézbesítési hibákat okozhat + Importálás ismét + szabványos végpontok közötti titkosítás + Átköltöztetés ide + Eszköz átköltöztetése + Átköltöztetés egy másik eszközre + Figyelem: az archívum törlésre kerül.]]> + Átköltöztetés egy másik eszközről + Kvantumrezisztens titkosítás + Megpróbálhatja még egyszer. + Átköltöztetés befejezve + Átköltöztetés egy másik eszközre QR-kód használatával. + Átköltöztetés + Megjegyzés: ha két eszközön is ugyanazt az adatbázist használja, akkor biztonsági védelemként megszakítja a kapcsolataiból érkező üzenetek visszafejtését.]]> + Megpróbálhatja még egyszer. + Hibás hivatkozás + végpontok közötti kvantumrezisztens titkosítás + Ez a csevegés végpontok közötti titkosítással védett. + A költöztetési párbeszédablak megnyitása + Ez a csevegés végpontok közötti kvantumrezisztens tikosítással védett. + végpontok közötti titkosítással és sérülés utáni titkosságvédelemmel, visszautasítással és sérülés utáni helyreállítással védi.]]> + végpontok közötti kvantumrezisztens titkosítással és sérülés utáni titkosságvédelemmel, visszautasítással és sérülés utáni helyreállítással védi.]]> \ No newline at end of file diff --git a/apps/multiplatform/common/src/commonMain/resources/MR/it/strings.xml b/apps/multiplatform/common/src/commonMain/resources/MR/it/strings.xml index c82190936b..41618606f7 100644 --- a/apps/multiplatform/common/src/commonMain/resources/MR/it/strings.xml +++ b/apps/multiplatform/common/src/commonMain/resources/MR/it/strings.xml @@ -1500,7 +1500,7 @@ Blocca i membri dei gruppi Crea un gruppo usando un profilo casuale. Collega le app mobile e desktop! 🔗 - Tramite protocollo sicuro resistente alla quantistica. + Tramite protocollo sicuro resistente al quantistico. Per nascondere messaggi indesiderati. Gruppi migliorati Gruppi in incognito @@ -1639,4 +1639,80 @@ Videochiamata Errore di apertura del browser Il browser predefinito è necessario per le chiamate. Configura il browser predefinito nel sistema, poi condividi più informazioni con gli sviluppatori. + Questa chat è protetta da crittografia end-to-end. + Questa chat è protetta da crittografia end-to-end resistente al quantistico. + Avvia chat + Migra qui + Scaricamento dettagli del link + Scaricamento archivio + Errore di invio dell\'archivio + Archivia e carica + Gli amministratori possono bloccare un membro per tutti. + Tutti i tuoi contatti, le conversazioni e i file verranno criptati in modo sicuro e caricati in blocchi sui relay XFTP configurati. + Migrazione dati dell\'app + Applica + Archiviazione del database + Nota bene: usare lo stesso database su due dispositivi bloccherà la decifrazione dei messaggi dalle tue connessioni, come misura di sicurezza.]]> + Annulla migrazione + Attenzione: l\'archivio verrà eliminato.]]> + Chat migrata! + Controlla la tua connessione internet e riprova + Migra da un altro dispositivo sul nuovo dispositivo e scansione il codice QR]]> + Conferma le impostazioni di rete + Conferma che ricordi la password del database da migrare. + Conferma caricamento + Creazione link dell\'archivio + Elimina il database da questo dispositivo + Scaricamento fallito + Attivala nelle chat dirette (BETA)! + Inserisci password + Errore di eliminazione del database + Errore di scaricamento dell\'archivio + Errore di esportazione del database della chat + Errore di salvataggio delle impostazioni + Errore di verifica della password: + Il file esportato non esiste + Il file è stato eliminato o il link non è valido + Importazione fallita + Finalizza la migrazione + Per continuare, la chat deve essere fermata. + Finalizza la migrazione su un altro dispositivo. + Importazione archivio + Link non valido + crittografia end-to-end con perfect forward secrecy, ripudio e recupero da intrusione.]]> + crittografia e2e resistente al quantistico con perfect forward secrecy, ripudio e recupero da intrusione.]]> + Migra dispositivo + Migra da un altro dispositivo + Migra ad un altro dispositivo + Migra ad un altro dispositivo via codice QR. + Migrazione + Migrazione completata + Apri la schermata di migrazione + O incolla il link dell\'archivio + O condividi in modo sicuro questo link del file + Incolla link dell\'archivio + Chiamate picture-in-picture + Conferma che le impostazioni di rete sono corrette per questo dispositivo. + Preparazione del caricamento + crittografia e2e resistente al quantistico + Ripeti importazione + Preparazione dello scaricamento + Crittografia resistente al quantistico + Ripeti scaricamento + Ripeti caricamento + Gruppi più sicuri + %s scaricati + crittografia end-to-end standard + Imposta password + Arresto della chat + %s caricati + Invio fallito + Invio dell\'archivio + Usa l\'app mentre sei in chiamata. + Verifica password + Verifica password del database + Attenzione: avviare la chat su più dispositivi non è supportato e provocherà problemi di recapito dei messaggi + Non devi usare lo stesso database su due dispositivi.]]> + Puoi fare un altro tentativo. + Puoi fare un altro tentativo. \ No newline at end of file diff --git a/apps/multiplatform/common/src/commonMain/resources/MR/nl/strings.xml b/apps/multiplatform/common/src/commonMain/resources/MR/nl/strings.xml index 0de26f0d68..b9f94d9db4 100644 --- a/apps/multiplatform/common/src/commonMain/resources/MR/nl/strings.xml +++ b/apps/multiplatform/common/src/commonMain/resources/MR/nl/strings.xml @@ -1498,7 +1498,7 @@ Groepsleden blokkeren Maak een groep met een willekeurig profiel. Koppel mobiele en desktop-apps! 🔗 - Via een beveiligd kwantumbestendig protocol. + Via een beveiligd quantum bestendig protocol. Om ongewenste berichten te verbergen. Betere groepen Incognitogroepen @@ -1529,16 +1529,16 @@ Opnieuw proberen Camera niet beschikbaar Stuur tot 100 laatste berichten naar nieuwe leden. - Contact toevoegen: om een nieuwe uitnodigingslink te maken, of om verbinding te maken via een link die u heeft ontvangen.]]> + Contact toevoegen: om een nieuwe uitnodigings link te maken, of om verbinding te maken via een link die u heeft ontvangen.]]> Stuur geen geschiedenis naar nieuwe leden. Of laat deze code zien Er worden maximaal 100 laatste berichten naar nieuwe leden verzonden. De code die u heeft gescand is geen SimpleX link QR-code. De tekst die u hebt geplakt is geen SimpleX link. Schakel cameratoegang in - U kunt de uitnodigingslink opnieuw bekijken in de verbindingsdetails. + U kunt de uitnodigings link opnieuw bekijken in de verbindings details. Ongebruikte uitnodiging bewaren? - Deel deze eenmalige uitnodigingslink + Deel deze eenmalige uitnodigings link Groep aanmaken: om een nieuwe groep aan te maken.]]> Zichtbare geschiedenis App toegangscode @@ -1606,7 +1606,7 @@ contactpersoon %1$s gewijzigd in %2$s Fout bij verwijderen van privénotities Privénotities verwijderen? - Zoekbalk accepteert uitnodigingslinks. + Zoekbalk accepteert uitnodigings links. ‐Met versleutelde bestanden en media. Met verminderd batterijgebruik. Opgeslagen bericht @@ -1637,4 +1637,80 @@ Video oproep Fout bij het openen van de browser Voor oproepen is de standaard webbrowser vereist. Configureer de standaard browser in het systeem en deel meer informatie met de ontwikkelaars. + Bevestig netwerk instellingen + Archiveren en uploaden + Database archiveren + Al uw contacten, gesprekken en bestanden worden veilig gecodeerd en in delen geüpload naar geconfigureerde XFTP-relays. + Toepassen + Let op: als u dezelfde database op twee apparaten gebruikt, wordt de decodering van berichten van uw verbindingen verbroken, als veiligheidsmaatregel.]]> + Waarschuwing: het archief wordt verwijderd.]]> + Migratie annuleren + Chat gemigreerd! + Controleer uw internetverbinding en probeer het opnieuw + Migreren vanaf een ander apparaat op het nieuwe apparaat en scan de QR-code.]]> + Beheerders kunnen een lid voor iedereen blokkeren. + Migratie van app-gegevens + Archief link maken + Verwijder de database van dit apparaat + Bevestig dat u het wachtwoord voor de database onthoudt om deze te migreren. + Activeer in directe chats (BETA)! + Link gegevens downloaden + Fout bij opslaan van instellingen + Fout bij verwijderen database + Bevestig het uploaden + Download mislukt + Archief downloaden + Voer het wachtwoord in + Fout bij het downloaden van het archief + Fout bij het exporteren van de chat database + Fout bij het uploaden van het archief + Deze chat is beveiligd met end-to-end codering. + standaard end-to-end encryptie + Voltooi de migratie op een ander apparaat. + Om verder te kunnen gaan, moet de chat worden gestopt. + Herhaal het uploaden + Upload mislukt + Je kunt het nog een keer proberen. + Voltooi de migratie + Chat starten + Fout bij het verifiëren van het wachtwoord: + quantum bestendige encryptie + Beeld-in-beeld oproepen + Veiligere groepen + Gebruik de app tijdens het gesprek. + Migreren + Of plak de archief link + Downloaden voorbereiden + Herhaal het downloaden + Je kunt het nog een keer proberen. + Archief importeren + Herhaal import + Bestand is verwijderd of de link is ongeldig + Geëxporteerd bestand bestaat niet + Apparaat migreren + Migreer naar een ander apparaat + Chat stoppen + %s geüpload + Archief uploaden + mag niet dezelfde database op twee apparaten gebruiken.]]> + Controleer het wachtwoord + Controleer het wachtwoord van de database + Waarschuwing: het starten van de chat op meerdere apparaten wordt niet ondersteund en zal leiden tot mislukte bezorging van berichten + Importeren is mislukt + Ongeldige link + end-to-end-codering met perfecte voorwaartse geheimhouding, afwijzing en inbraakherstel.]]> + quantum bestendige e2e-encryptie met perfecte voorwaartse geheimhouding, afwijzing en inbraakherstel.]]> + Migreer vanaf een ander apparaat + Migreer hierheen + Migreer naar een ander apparaat via QR-code. + Migratie voltooid + Open het migratiescherm + Of deel deze bestands link veilig + Archief link plakken + Controleer of de netwerk instellingen correct zijn voor dit apparaat. + Uploaden voorbereiden + quantum bestendige e2e-codering + %s gedownload + Wachtwoord instellen + Deze chat wordt beschermd door quantum bestendige end-to-end codering. \ No newline at end of file diff --git a/apps/multiplatform/common/src/commonMain/resources/MR/pl/strings.xml b/apps/multiplatform/common/src/commonMain/resources/MR/pl/strings.xml index 00089a53a3..04e40e73cb 100644 --- a/apps/multiplatform/common/src/commonMain/resources/MR/pl/strings.xml +++ b/apps/multiplatform/common/src/commonMain/resources/MR/pl/strings.xml @@ -1639,4 +1639,80 @@ Połączenie wideo Błąd podczas otwierania przeglądarki Do połączeń wymagana jest domyślna przeglądarka. Proszę skonfigurować domyślną przeglądarkę systemową, i podzielić się informacją z twórcami. + Ten czat jest chroniony przez kwantowo odporne szyfrowanie end-to-end. + szyfrowanie end-to-end z doskonałym utajnianiem z wyprzedzeniem i odzyskiem po złamaniu.]]> + Otwórz ekran migrowania + Zmigruj z innego urządzenia + Ustaw hasło + standardowe szyfrowanie end-to-end + Czat zmigrowany! + Migracja danych aplikacji + Bezpieczniejsze grupy + Używaj aplikacji podczas połączenia. + Połączenia obraz-w-obrazie + Administratorzy mogą blokować członka dla wszystkich. + Nieprawidłowy link + Zmigruj tutaj + Migrowanie + Lub wklej link archiwum + Wklej link archiwum + Przygotowywanie pobrania + %s pobrane + Możesz spróbować ponownie. + Importowanie archiwum + Powtórz pobieranie + Import nie udał się + Powtórz importowanie + Błąd pobierania archiwum + Dokończ migrację na innym urządzeniu. + Zastosuj + Zmigruj urządzenie + Zmigruj do innego urządzenia + Przygotowywanie wgrania + Błąd usuwania bazy danych + Zatrzymywanie czatu + Aby konturować, czat musi zostać zatrzymany. + Archiwizowanie bazy danych + Potwierdź wgranie + %s wgrane + Wgrywanie nie udane + Wgrywanie archiwum + Powtórz wgrywanie + Tworzenie linku archiwum + Możesz spróbować ponownie. + Lub bezpiecznie udostępnij ten link pliku + Rozpocznij czat + Migracja zakończona + Potwierdź, że pamiętasz hasło do bazy danych, aby ją zmigrować. + Zweryfikuj hasło bazy danych + Sprawdź swoje połączenie z internetem i spróbuj ponownie + Wszystkie twoje kontakty, konwersacje i pliki będą bezpiecznie szyfrowane i wgrywane w kawałkach do skonfigurowanych przekaźników XFTP. + Archiwizuj i prześlij + Uwaga: używanie tej samej bazy danych na dwóch urządzeniach zepsuje odszyfrowywanie wiadomości twoich połączeń, jako zabezpieczenie.]]> + Ostrzeżenie: archiwum zostanie usunięte.]]> + Anuluj migrację + Zmigruj z innego urządzenia na nowym urządzeniu i zeskanuj kod QR.]]> + Potwierdź ustawienia sieciowe + Usuń bazę danych z tego urządzenia + Pobieranie nie udane + Pobieranie archiwum + Pobieranie szczegółów linku + Włącz w czatach bezpośrednich (BETA)! + Wprowadź hasło + Błąd eksportu bazy danych czatu + Błąd zapisywania ustawień + Błąd wgrywania archiwum + Błąd weryfikowania hasła: + Wyeksportowany plik nie istnieje + Ten czat jest chroniony przez szyfrowanie end-to-end. + Zweryfikuj hasło + Ostrzeżenie: rozpoczęcie czatu na wielu urządzeniach nie jest wspierane i spowoduje niepowodzenia dostarczania wiadomości + Nie możesz używać tej samej bazy na dwóch urządzeniach.]]> + Plik został usunięty lub łącze jest nieprawidłowe + Dokończ migrację + kwantowo odporne szyfrowanie end-to-end z doskonałym utajnianiem z wyprzedzeniem i odzyskiem po złamaniu.]]> + Zmigruj do innego urządzenia przez kod QR. + Proszę potwierdzić, że ustawienia sieciowe są prawidłowe dla tego urządzenia. + kwantowo odporne szyfrowanie e2e + Kwantowo odporne szyfrowanie \ No newline at end of file diff --git a/apps/multiplatform/common/src/commonMain/resources/MR/ru/strings.xml b/apps/multiplatform/common/src/commonMain/resources/MR/ru/strings.xml index 98e6223d87..9d7bfe4ca0 100644 --- a/apps/multiplatform/common/src/commonMain/resources/MR/ru/strings.xml +++ b/apps/multiplatform/common/src/commonMain/resources/MR/ru/strings.xml @@ -1713,4 +1713,89 @@ Ошибка при блокировании члена для всех Разблокировать члена для всех? Вы заблокировали %s + end-to-end шифрованием с прямой секретностью (PFS), правдоподобным отрицанием и восстановлением от взлома.]]> + Чат защищен end-to-end шифрованием. + Чат защищен квантово-устойчивым end-to-end шифрованием. + Открыть экран миграции + Миграция с другого устройства + Установить пароль + стандартное end-to-end шифрование + Приветственное сообщение слишком длинное + Сообщение слишком большое + Повторить загрузку + Вы можете попробовать еще раз. + Загрузка архива + Подготовка архива + %s загружено + Запустить чат + Миграция данных + Включите для контактов (BETA)! + Более безопасные группы + Админы могут заблокировать члена группы. + Вставьте ссылку архива + Ошибка ссылки + Миграция + Загрузка архива + Загрузка ссылки архива + Подготовка загрузки + Ошибка загрузки + %s загружено + Импорт архива + Ошибка импорта + Чат мигрирован! + Введите пароль + Ошибка загрузки архива + Повторить импорт + Пожалуйста, подтвердите, что настройки сети верны для этого устройства. + Применить + Мигрировать устройство + Ошибка сохранения настроек + Ошибка при экспорте архива чата + Подготовка загрузки + Ошибка загрузки архива + Ошибка при удалении данных чата + Остановка чата + Архивировать и загрузить + Подтвердить загрузку + Все ваши контакты, разговоры и файлы будут надежно зашифрованы и загружены на выбранные XFTP серверы. + Ошибка загрузки + Повторить загрузку + Вы можете попробовать еще раз. + Отменить миграцию + Мигрировать с другого устройства на новом устройстве и сосканируйте QR код.]]> + Создание ссылки на архив + Удалить базу данных с этого устройства + Завершить миграцию + Или передайте эту ссылку + Миграция завершена + Внимание: запуск чата на нескольких устройствах не поддерживается и приведет к сбоям доставки сообщений. + не должны использовать одну и ту же базу данных на двух устройствах.]]> + Проверьте подключение к Интернету и повторите попытку + Подтвердите, что Вы помните пароль базы данных для ее миграции. + Проверка пароля базы данных + Проверить пароль + Ошибка подтверждения пароля: + Аудиозвонок + Завершить звонок + Видеозвонок + Чтобы продолжить, чат должен быть остановлен. + Обратите внимание: использование одной и той же базы данных на двух устройствах нарушит расшифровку сообщений от ваших контактов, как свойство защиты соединений.]]> + Внимание: архив будет удален.]]> + Подтвердите настройки сети + квантово-устойчивым end-to-end шифрованием с идеальной прямой секретностью (PFS), правдоподобным отрицанием и восстановлением от взлома.]]> + Мигрировать сюда + Мигрировать на другое устройство + Мигрируйте на другое устройство через QR код. + Или вставьте ссылку архива + Звонки с картинкой-в-картинке + квантово-устойчивое e2e шифрование + Квантово-устойчивое шифрование + Используйте приложение во время звонка. + Экспортированный файл не существует + Файл удален или ошибка ссылки + Завершите миграцию на другом устройстве. + Выполняется миграция базы данных. +\nЭто может занять несколько минут. + Ошибка открытия браузера + Для звонков требуется веб-браузер по умолчанию. Пожалуйста, настройте браузер по умолчанию в системе и поделитесь дополнительной информацией с разработчиками. \ No newline at end of file diff --git a/apps/multiplatform/common/src/commonMain/resources/MR/tr/strings.xml b/apps/multiplatform/common/src/commonMain/resources/MR/tr/strings.xml index 3c8b8b31cf..4464e323f7 100644 --- a/apps/multiplatform/common/src/commonMain/resources/MR/tr/strings.xml +++ b/apps/multiplatform/common/src/commonMain/resources/MR/tr/strings.xml @@ -1289,7 +1289,7 @@ Dosya gönderimi durdurulacaktır. yönetildi Üye bağlantısı oluşturulurken hata - Çoklu gönderim bütün kişiler için etkinleştirilecektir. + Tüm kişiler için iletim bilgisi gönderme özelliği etkinleştirilecek XFTP sunucu adreslerinin doğru formatta olduğundan, satırın ayrılmış ve kopyalanmamış olduğundan emin olun. Yenile Lütfen unutmayın: mesaj ve dosya yönlendiricileri SOCKS vekili tarafından bağlandı. Aramalar ve bağlantı ön gösterimleri doğrudan bağlantı kullanıyor.]]> @@ -1640,4 +1640,80 @@ Görüntülü arama Aramayı bitir Tarayıcıyı açarken hata + uçtan uca şifreleme ile korunmaktadır.]]> + Bu sohbet uçtan uca şifrelemeyle korunmaktadır. + Taşıma ekranını aç + Başka bir cihazdan taşı + Parolayı ayarla + Veya arşiv bağlantısını yapıştırın + Sohbet taşındı! + Uygula + Taşıma işlemini sonlandır + Doğrudan sohbetlerde etkinleştir (BETA)! + Kuantuma dayanıklı şifreleme + Yöneticiler bir üyeyi tamamen engelleyebilirler. + Uygulama veri göçü. + QR kodu aracılığıyla başka bir cihaza geçiş yapın. + Resim içinde resim çağrıları + Daha güvenli gruplar + Arama sırasında uygulamayı kullanın. + Buraya taşı + Arşiv bağlantısını yapıştır + İndirmeye hazırlanıyor + Yükleme başarısız + Arşiv indiriliyor + Bağlantı detayları indiriliyor + İndirmeyi tekrarla + %s indirildi + İçe aktarma başarısız oldu + Arşiv içe aktarılıyor + İçe aktarmayı tekrarla + Bir kez daha deneyebilirsiniz. + Arşiv indirilirken hata oluştu + Taşıma işlemini başka bir cihazda sonlandırın. + Dışa aktarılan dosya mevcut değil + Cihazı taşı + Başka bir cihaza geçiş + Veritabanı silinirken hata oluştu + Sohbet veritabanı dışa aktarılırken hata oluştu + Arşiv yüklenirken hata oluştu + Yükleme hazırlanıyor + Yüklemeyi onayla + Devam etmek için sohbetin durdurulması gerekiyor. + Veritabanını arşivleme + Yüklemeyi tekrarla + %s yüklendi + Yükleme başarısız + Arşiv yükleniyor + Lütfen dikkat: aynı veritabanını iki cihazda kullanmak, bir güvenlik koruması olarak bağlantılarınızdaki mesajların şifresinin çözülmesini engelleyecektir.]]> + Taşımayı iptal et + Arşiv bağlantısı oluşturuluyor + Taşıma işlemi tamamlandı + Veya bu dosya bağlantısını güvenli bir şekilde paylaşın + Sohbeti başlat + Uyarı: Birden fazla cihazda sohbet başlatmak desteklenmez ve mesaj iletimi başarısızlıklara neden olabilir. + Veritabanı parolasını doğrulayın + Parolayı doğrulayın + Tüm kişileriniz, konuşmalarınız ve dosyalarınız güvenli bir şekilde şifrelenir ve yapılandırılmış XFTP rölelerine parçalar halinde yüklenir. + Arşivle ve yükle + Uyarı: arşiv silinecektir.]]> + Taşımak için veritabanı parolasını hatırladığınızı doğrulayın. + İnternet bağlantınızı kontrol edip tekrar deneyin + Ağ ayarlarını onaylayın + Veritabanını bu cihazdan sil + Parolayı girin + Ayarlar kaydedilirken hata oluştu + Parola doğrulanırken hata oluştu: + Dosya silindi veya bağlantı geçersiz + Geçersiz link + kuantum dirençli e2e şifreleme ile korunmaktadır.]]> + Taşınıyor + Lütfen bu cihaz için ağ ayarlarının doğru olduğunu onaylayın. + kuantum dirençli e2e şifreleme + standart uçtan uca şifreleme + Sohbet durduruluyor + Bu sohbet kuantum dirençli uçtan uca şifrelemeyle korunmaktadır. + kullanmamalısınız.]]> + Bir kez daha deneyebilirsiniz. + Başka bir cihazdan taşı\'yı seçin ve QR kodunu tarayın.]]> \ No newline at end of file diff --git a/apps/multiplatform/common/src/commonMain/resources/MR/zh-rCN/strings.xml b/apps/multiplatform/common/src/commonMain/resources/MR/zh-rCN/strings.xml index 3873aac128..3298da5097 100644 --- a/apps/multiplatform/common/src/commonMain/resources/MR/zh-rCN/strings.xml +++ b/apps/multiplatform/common/src/commonMain/resources/MR/zh-rCN/strings.xml @@ -1639,4 +1639,80 @@ 结束通话 打开浏览器出错 没有默认网络浏览器无法使用通话功能。请在系统中配置默认浏览器并和开发者分享更多信息。 + 此聊天受抗量子的端到端加密保护。 + 此聊天受端到端加密保护。 + 打开迁移屏幕 + 从另一台设备迁移 + 设置密码短语 + 标准端到端加密 + 存档和上传 + 验证数据库密码短语 + 抗量子加密 + 应用数据迁移 + 通过二维码迁移到另一部设备。 + 画中画通话 + 更安全的群组 + 通话时使用本应用 + 迁移到此处 + 或粘贴存档链接 + 正在下载存档 + 无效链接 + 迁移中 + 粘贴存档链接 + 正在准备下载 + 下载失败了 + 重复下载 + %s 已下载 + 输入密码短语 + 导入失败了 + 正在导入存档 + 重复导入 + 已迁移聊天! + 下载存档出错 + 文件被删除或链接无效 + 在另一部设备上完成迁移 + 请确认网络设置对此这台设备正确无误。 + 应用 + 确认网络设置 + 导出聊天数据库出错 + 导出的文件不存在 + 迁移到另一部设备 + 正在准备上传 + 你的所有联系人、对话和文件将被安全加密并分块上传到配置的 XFTP 中继。 + 正在存档数据库 + 确认上传 + 删除数据库出错 + 必须停止聊天才能继续。 + 正在停止聊天 + 重复上传 + %s 已上传 + 上传失败了 + 正在上传存档 + 取消迁移 + 正在创建存档链接 + 完成迁移 + 从这部设备上删除数据库 + 或安全地分享此文件链接 + 警告:不支持在多部设备上启动聊天,这么做会导致消息传送失败。 + 不能 在两部设备上使用同一数据库。]]> + 迁移完毕 + 启动聊天 + 请在迁移前确认你记得数据库的密码短语。 + 验证密码短语 + 警告:该存档将被删除。]]> + 检查你的互联网连接并重试 + 验证密码短语出错: + 端到端加密保护。]]> + 迁移设备 + 从一部设备迁移 并扫描二维码。]]> + 抗量子端到端加密保护。]]> + 管理员可以为所有人封禁一名成员。 + 正在下载链接详情 + 在私聊中开启(公测)! + 保存设置出错 + 上传存档出错 + 抗量子端到端加密 + 你可以再试一次。 + 你可以再试一次。 + 请注意: 作为安全保护措施,在两部设备上使用同一数据库会破坏解密来自你联系人的消息。]]> \ No newline at end of file diff --git a/apps/multiplatform/common/src/desktopMain/kotlin/chat/simplex/common/model/NtfManager.desktop.kt b/apps/multiplatform/common/src/desktopMain/kotlin/chat/simplex/common/model/NtfManager.desktop.kt index 3f2e1a74ab..3fab849361 100644 --- a/apps/multiplatform/common/src/desktopMain/kotlin/chat/simplex/common/model/NtfManager.desktop.kt +++ b/apps/multiplatform/common/src/desktopMain/kotlin/chat/simplex/common/model/NtfManager.desktop.kt @@ -111,8 +111,12 @@ object NtfManager { } try { prevNtfs.add(chatId to builder.toast()) - } catch (e: Exception) { + } catch (e: Throwable) { Log.e(TAG, e.stackTraceToString()) + if (e !is Exception) { + val text = e.stackTraceToString().lines().getOrNull(0) ?: "" + showToast(generalGetString(MR.strings.error_showing_desktop_notification) + " " + text, 4_000) + } } } diff --git a/apps/multiplatform/common/src/desktopMain/kotlin/chat/simplex/common/platform/AppCommon.desktop.kt b/apps/multiplatform/common/src/desktopMain/kotlin/chat/simplex/common/platform/AppCommon.desktop.kt index 72aca181b3..71f862b30a 100644 --- a/apps/multiplatform/common/src/desktopMain/kotlin/chat/simplex/common/platform/AppCommon.desktop.kt +++ b/apps/multiplatform/common/src/desktopMain/kotlin/chat/simplex/common/platform/AppCommon.desktop.kt @@ -32,9 +32,9 @@ fun initApp() { //testCrypto() } -fun discoverVlcLibs(path: String) { - uk.co.caprica.vlcj.binding.LibC.INSTANCE.setenv("VLC_PLUGIN_PATH", path, 1) -} +//fun discoverVlcLibs(path: String) { +// uk.co.caprica.vlcj.binding.LibC.INSTANCE.setenv("VLC_PLUGIN_PATH", path, 1) +//} private fun applyAppLocale() { val lang = ChatController.appPrefs.appLanguage.get() diff --git a/apps/multiplatform/common/src/desktopMain/kotlin/chat/simplex/common/ui/theme/Theme.desktop.kt b/apps/multiplatform/common/src/desktopMain/kotlin/chat/simplex/common/ui/theme/Theme.desktop.kt index 94268002a6..358c20d769 100644 --- a/apps/multiplatform/common/src/desktopMain/kotlin/chat/simplex/common/ui/theme/Theme.desktop.kt +++ b/apps/multiplatform/common/src/desktopMain/kotlin/chat/simplex/common/ui/theme/Theme.desktop.kt @@ -1,5 +1,6 @@ package chat.simplex.common.ui.theme +import androidx.compose.runtime.Composable import chat.simplex.common.platform.Log import chat.simplex.common.platform.TAG import com.jthemedetecor.OsThemeDetector @@ -9,6 +10,7 @@ private val detector: OsThemeDetector = OsThemeDetector.getDetector() registerListener(::reactOnDarkThemeChanges) } +@Composable actual fun isSystemInDarkTheme(): Boolean = try { detector.isDark } diff --git a/apps/multiplatform/common/src/desktopMain/kotlin/chat/simplex/common/views/call/CallView.desktop.kt b/apps/multiplatform/common/src/desktopMain/kotlin/chat/simplex/common/views/call/CallView.desktop.kt index f35b114740..87c2d3e8f2 100644 --- a/apps/multiplatform/common/src/desktopMain/kotlin/chat/simplex/common/views/call/CallView.desktop.kt +++ b/apps/multiplatform/common/src/desktopMain/kotlin/chat/simplex/common/views/call/CallView.desktop.kt @@ -75,7 +75,7 @@ actual fun ActiveCallView() { chatModel.activeCall.value = call.copy(callState = CallState.Connected, connectedAt = Clock.System.now()) } withBGApi { chatModel.controller.apiCallStatus(callRh, call.contact, callStatus) } - } catch (e: Error) { + } catch (e: Throwable) { Log.d(TAG, "call status ${r.state.connectionState} not used") } is WCallResponse.Connected -> { diff --git a/apps/multiplatform/desktop/build.gradle.kts b/apps/multiplatform/desktop/build.gradle.kts index 4f5536a25b..c3dd9bb9b0 100644 --- a/apps/multiplatform/desktop/build.gradle.kts +++ b/apps/multiplatform/desktop/build.gradle.kts @@ -21,7 +21,7 @@ kotlin { dependencies { implementation(project(":common")) implementation(compose.desktop.currentOs) - implementation("net.java.dev.jna:jna:5.13.0") + implementation("net.java.dev.jna:jna:5.14.0") } } val jvmTest by getting diff --git a/apps/multiplatform/gradle.properties b/apps/multiplatform/gradle.properties index 62f1ad21bc..1bfac36a28 100644 --- a/apps/multiplatform/gradle.properties +++ b/apps/multiplatform/gradle.properties @@ -25,12 +25,12 @@ android.nonTransitiveRClass=true android.enableJetifier=true kotlin.mpp.androidSourceSetLayoutVersion=2 -android.version_name=5.6-beta.1 -android.version_code=190 +android.version_name=5.6 +android.version_code=191 -desktop.version_name=5.6-beta.1 -desktop.version_code=34 +desktop.version_name=5.6 +desktop.version_code=35 -kotlin.version=1.8.20 -gradle.plugin.version=7.4.2 -compose.version=1.5.10 +kotlin.version=1.9.23 +gradle.plugin.version=8.2.0 +compose.version=1.6.1 diff --git a/apps/multiplatform/gradle/wrapper/gradle-wrapper.properties b/apps/multiplatform/gradle/wrapper/gradle-wrapper.properties index 00c09d815c..4e4a6a3f29 100644 --- a/apps/multiplatform/gradle/wrapper/gradle-wrapper.properties +++ b/apps/multiplatform/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ #Mon Feb 14 14:23:51 GMT 2022 distributionBase=GRADLE_USER_HOME -distributionUrl=https\://services.gradle.org/distributions/gradle-7.5.1-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.7-bin.zip distributionPath=wrapper/dists zipStorePath=wrapper/dists zipStoreBase=GRADLE_USER_HOME diff --git a/apps/simplex-directory-service/src/Directory/Service.hs b/apps/simplex-directory-service/src/Directory/Service.hs index ea79dabb10..c1428881b9 100644 --- a/apps/simplex-directory-service/src/Directory/Service.hs +++ b/apps/simplex-directory-service/src/Directory/Service.hs @@ -177,8 +177,8 @@ directoryService st DirectoryOpts {superUsers, serviceName, searchResults, testi badRolesMsg :: GroupRolesStatus -> Maybe String badRolesMsg = \case GRSOk -> Nothing - GRSServiceNotAdmin -> Just "You must have a group *owner* role to register the group" - GRSContactNotOwner -> Just "You must grant directory service *admin* role to register the group" + GRSServiceNotAdmin -> Just "You must grant directory service *admin* role to register the group" + GRSContactNotOwner -> Just "You must have a group *owner* role to register the group" GRSBadRoles -> Just "You must have a group *owner* role and you must grant directory service *admin* role to register the group" getGroupRolesStatus :: GroupInfo -> GroupReg -> IO (Maybe GroupRolesStatus) @@ -190,8 +190,8 @@ directoryService st DirectoryOpts {superUsers, serviceName, searchResults, testi groupRolesStatus :: GroupMemberRole -> GroupMemberRole -> GroupRolesStatus groupRolesStatus contactRole serviceRole = case (contactRole, serviceRole) of (GROwner, GRAdmin) -> GRSOk - (_, GRAdmin) -> GRSServiceNotAdmin - (GROwner, _) -> GRSContactNotOwner + (_, GRAdmin) -> GRSContactNotOwner + (GROwner, _) -> GRSServiceNotAdmin _ -> GRSBadRoles getGroupMember :: GroupReg -> IO (Maybe GroupMember) diff --git a/blog/20240314-simplex-chat-v5-6-quantum-resistance-signal-double-ratchet-algorithm.md b/blog/20240314-simplex-chat-v5-6-quantum-resistance-signal-double-ratchet-algorithm.md index ea4249f250..219dd2d5fe 100644 --- a/blog/20240314-simplex-chat-v5-6-quantum-resistance-signal-double-ratchet-algorithm.md +++ b/blog/20240314-simplex-chat-v5-6-quantum-resistance-signal-double-ratchet-algorithm.md @@ -15,7 +15,7 @@ This is a major upgrade for SimpleX messaging protocols, we are really proud to This post also covers various aspects of end-to-end encryption, compares different messengers, and explains why and how quantum-resistant encryption is added to SimpleX Chat: - [Why do we need end-to-end encryption?](#why-do-we-need-end-to-end-encryption) -- [Why encryption is even allowed?](#why-encryption-is-even-allowed) +- [Why is encryption even allowed?](#why-is-encryption-even-allowed) - [End-to-end encryption security: attacks and defense.](#end-to-end-encryption-security-attacks-and-defense) - Compromised message size - mitigated by padding messages to a fixed block size. - Compromised confidentiality - mitigated by repudiation (deniability). @@ -40,7 +40,7 @@ End-to-end encryption is an important component of our individual and business s It's very sad to see the same people who keep their financial affairs private to protect from financial crimes, lock their doors to protect from thieves, and curtain their windows to protect from the occasional prying eyes, when it comes to protecting their personal lives from the data criminals say "we don't care about privacy, we have nothing to hide". Everybody's safety depends on keeping their affairs and relations private, not visible to a vast and ruthless data gathering machines, that abuse our data for commercial gain, without any regard to our interests or even [the safety of our families and children](https://nmdoj.gov/press-release/attorney-general-raul-torrez-files-lawsuit-against-meta-platforms-and-mark-zuckerberg-to-protect-children-from-sexual-abuse-and-human-trafficking/). -## Why encryption is even allowed? +## Why is encryption even allowed? @@ -75,7 +75,7 @@ While the content encryption is the most important, concealing the actual messag The only effective mitigation to these attacks is to pad all messages to a fixed size. Using space-efficient schemes like Padme, or padding to encryption block size is ineffective for mitigating these attacks, as they still allow differentiating message sizes. -To the best of our knowledge the only messenger other than SimpleX Chat that padded all messages to a fixed packet size was [Pond](https://github.com/agl/pond) - SimpleX design as an evolution of it. +To the best of our knowledge, the only messengers other than SimpleX Chat that pad all messages to a fixed packet size are Cwtch and no longer developed [Pond](https://github.com/agl/pond) - SimpleX design can be seen as an evolution of Pond design. ### 2. Compromised confidential messages - mitigated by repudiation (deniability) @@ -97,15 +97,15 @@ This property is well understood by the users, and most messengers that focus on ### 4. Compromised long-term or session - mitigated by break-in recovery -This attack is much less understood by the users, and forward secrecy does not protect from it. Arguably, it's almost impossible to compromise individual message keys without compromising long-term or session keys. So the ability of the encryption to recover from break-in (attacker making a copy of the device data without retaining the ongoing access) is both very and pragmatic - break-in attacks are simpler to execute on mobile devices during short-term device access than long-term ongoing compromise. +This attack is much less understood by the users, and forward secrecy does not protect from it. Arguably, it's almost impossible to compromise individual message keys without compromising long-term or session keys. So the ability of the encryption to recover from break-in (attacker making a copy of the device data without retaining the ongoing access) is both very important and pragmatic - break-in attacks are simpler to execute on mobile devices during short-term device access than long-term ongoing compromise. -Out of all encryption algorithms known to us only Signal double ratchet algorithm provides the ability to encryption security after break-ins. This recovery happens automatically and transparently to the users, without them doing anything special even knowing about break-in, by simply sending messages. Every time one of the communication parties replies to another party message, new random keys are generated and previously stolen keys become useless. +Out of all encryption algorithms known to us only _Signal double ratchet algorithm_ (also referred to as _Signal algorithm_ or _double ratchet algorithm_, which is not the same as Signal messaging platform and protocols) provides the ability for the encryption security to recover after break-ins attacks. This recovery happens automatically and transparently to the users, without them doing anything special or even knowing about break-in, by simply sending messages. Every time one of the communication parties replies to another party message, new random keys are generated and previously stolen keys become useless. -Signal double ratchet algorithm is used in Signal, Cwtch and SimpleX Chat. This is why you cannot use SimpleX Chat profile on more than one device at the same time - the encryption scheme rotates the long term keys, randomly, and keys on another device become useless, as they would become useless for the attacker who stole them. Security always has some costs to the convenience. +Double ratchet algorithm is used in Signal, Cwtch and SimpleX Chat. This is why you cannot use SimpleX Chat profile on more than one device at the same time - the encryption scheme rotates the long term keys, randomly, and keys on another device become useless, as they would become useless for the attacker who stole them. Security always has some costs to the convenience. ### 5. Man-in-the-middle attack - mitigated by two-factor key exchange -Many people incorrectly believe that security of end-to-end encryption cannot be broken by communication provider. But end-to-end encryption is as secure as key exchange. While any intermediary passing the keys between senders and recipients cannot recover the private keys from the public keys, they can simply replace the passed public keys with their own and then proxy all communication between the users having full access to the original messages. So instead of having an end-to-end encrypted channel, users would have two half-way encrypted channels - between users and their communication intermediary. +Many people incorrectly believe that security of end-to-end encryption cannot be broken by communication provider. But end-to-end encryption is only as secure as key exchange. While any intermediary passing the keys between senders and recipients cannot recover the private keys from the public keys, they can simply replace the passed public keys with their own and then proxy all communication between the users having full access to the original messages. So instead of having an end-to-end encrypted channel, users would have two half-way encrypted channels - between users and their communication intermediary. Pictures below illustrate how this attack works for RSA encryption. @@ -143,7 +143,7 @@ Post-quantum cryptography, or encryption algorithms that are resistant to quantu - many of post-quantum algorithms have known patent claims, so any system deploying them accepts the risks of patent litigation. - the silver lining to these limitations is that the risk of appearance of commercially viable quantum computers in the next decade may be exaggerated. -So, to put it bluntly and provocatively, post-quantum cryptography can be compared with a remedy against the illness that nobody has, without any guarantee that it will work. The closest analogy in the history of medicine is _snake oil_. +So, to say it provocatively, post-quantum cryptography can be compared with a remedy against the illness that nobody has, without any guarantee that it will work. While there is a reasonable hope that it _might_ work, so it's not exactly a _snake oil_, these limitations and risks have to be much better communicated to the end users than they are. @@ -164,8 +164,8 @@ The main objective here is to establish the framework for comparing the security Some columns are marked with a yellow checkmark: - when messages are padded, but not to a fixed size. - when repudiation does not include client-server connection. In case of Cwtch it appears that the presence of cryptographic signatures compromises repudiation (deniability), but it needs to be clarified. -- when 2-factor key exchange is optional, via security code verification. -- when post-quantum cryptography is only added to the initial key agreement, does not protect break-in recovery. +- when 2-factor key exchange is optional (via security code verification). +- when post-quantum cryptography is only added to the initial key agreement and does not protect break-in recovery. ## Adding quantum resistance to Signal double ratchet algorithm @@ -201,7 +201,7 @@ The reason it is released as opt-in is because once the conversation is upgraded - enable _Show developer options_ toggle. - now you will see _Post-quantum E2EE_ toggle - enable it as well. -Now all new contacts you add to the app will use quantum resistant Signal double ratchet algorithm. +Now all new contacts you add to the app will use quantum resistant double ratchet algorithm. Once you have enabled it for the new contacts, you can also **enable it for some of the existing contacts**: - open the chat with the contact you want to upgrade to be quantum resistant. @@ -211,7 +211,7 @@ Once you have enabled it for the new contacts, you can also **enable it for some ## Next for post-quantum crypto - all direct chats, small groups and security audit -We will be making quantum resistance default for all direct chats in v5.7, and they will be upgraded for all users without any action. +We will be making quantum resistance default for all direct chats in v5.7, and we plan that all existing direct chats will be automatically upgraded when both contacts install v5.7. We will also be adding quantum resistance to small groups up to 10-20 members. Computing cryptographic keys is much slower, in comparison, and it would be very inefficient (and completely unnecessary) for large public groups. diff --git a/blog/20240323-simplex-network-privacy-non-profit-v5-6-quantum-resistant-e2e-encryption-simple-migration.md b/blog/20240323-simplex-network-privacy-non-profit-v5-6-quantum-resistant-e2e-encryption-simple-migration.md index f036b95f1f..c017b9d1cc 100644 --- a/blog/20240323-simplex-network-privacy-non-profit-v5-6-quantum-resistant-e2e-encryption-simple-migration.md +++ b/blog/20240323-simplex-network-privacy-non-profit-v5-6-quantum-resistant-e2e-encryption-simple-migration.md @@ -1,20 +1,128 @@ --- layout: layouts/article.html -title: "SimpleX network: real privacy and stable profits, non-profit protocol governance, v5.6 released with quantum resistant e2e encryption and simple profile migration" +title: "SimpleX network: real privacy and stable profits, non-profits for protocols, v5.6 released with quantum resistant e2e encryption and simple profile migration" date: 2024-03-23 -# previewBody: blog_previews/20240314.html -preview: TODO -draft: true -# image: images/20240314-kem.jpg -# imageWide: true +previewBody: blog_previews/20240323.html +image: images/20240323-post-preview.png +imageBottom: true permalink: "/blog/20240323-simplex-network-privacy-non-profit-v5-6-quantum-resistant-e2e-encryption-simple-migration.html" --- -# SimpleX network: real privacy and stable profits, non-profit protocol governance, v5.6 released with quantum resistant e2e encryption and simple profile migration +# SimpleX network: real privacy and stable profits, non-profits for protocols, v5.6 released with quantum resistant e2e encryption and simple profile migration -This is a stub for release permalink +**Published:** Mar 23, 2024 -TODO +SimpleX network: deliver real privacy via a profitable business and non-profit protocol governance: +- [community and business interests are aligned](#community-and-business-interests-are-aligned). +- [the journey to the decentralized non-profit protocol governance](#the-journey-to-the-decentralized-non-profit-protocol-governance). +- [welcome, Esra’a](#welcome-esraa)! + +What's new in v5.6: +- [quantum resistant end-to-end encryption](#quantum-resistant-end-to-end-encryption-beta) (BETA) – enable it for the new contacts. +- [use the app during the audio and video calls](#use-the-app-during-the-audio-and-video-calls). +- [migrate all app data to another device via QR code](#migrate-all-app-data-to-another-device-via-qr-code). + +There are many other improvements and fixes in this release: +- group admins can block a member for all other members. +- filtering chats no longer includes muted chats with unread messages. +- and more - see the [release notes](https://github.com/simplex-chat/simplex-chat/releases/tag/v5.6.0). + +## SimpleX network: deliver real privacy via a profitable business and non-profit protocol governance + +### Community and business interests are aligned + +Some people in our users' community believe that there is a conflict between the business and the community interests. This view fails to see a bigger picture of how these interests are aligned. I wrote a blog post about it [here](https://www.poberezkin.com/posts/2023-10-31-why-privacy-impossible-without-venture-funding.html). Our goal is to grow the network and the ecosystem while enriching all stakeholders involved, both the community and the business shareholders. This strategy relies on the strengths and opportunities of both the business and the decentralized network we build, with its vibrant community of individuals and organizations. It positions the business not as a controller but as a supporter of the community growth, resilience and sustainability. + +By leveraging access to investment resources, its ability to provide stock-based incentives beyond salaries, operating as a business will satisfy users' and community needs more effectively, ensuring the long-term viability and growth of the network, while remaining true to the mission. A purely nonprofit model with no avenue to sustain this growth is simply not possible. Sustainability requires profits, that is simply spending less than earning, as every responsible individual and organization should aim for, and these profits must be based on users' payments, and not on some other sources of revenue or funds. And building the software product that customers are willing to pay for requires substantial business investments. We will accomplish it while maintaining transparency and the commitment to keep SimpleX network and its protocols open and free to use. + +### The journey to the decentralized non-profit protocol governance + +At the current early stage of network growth the protocols will benefit most from the rapid evolution and centralized design. Many protocols that decentralized their evolution too early failed to evolve and to adapt to the product requirements of the majority of users, causing them to stall in growth. Even the open web became possible only thanks to Netscape, a venture funded company, that developed browsers and web server software taking it upon themselves to rapidly evolve web specification to make it into a robust application platform as we now know it. It is very unlikely that it would have happened if it was managed by a nonprofit or community, in a decentralized way. + +Once SimpleX network protocols stabilize and reach the required maturity, we plan to transition its governance to several new nonprofit entities, ensuring its continued evolution aligns more closely with our vision of community-driven, independent and transparent governance. We and our investors believe that this is a win-win strategy. It both maximizes the business value, by creating a product built on protecting privacy and users' trust - a model that we see as the only viable path forward. It also maximizes the value created for the user community. + +### Welcome, Esra’a! + +To help us deliver these goals, Esra’a Al Shafei joined SimpleX Chat team - we are excited to welcome her! + +Esra'a is a longtime privacy and human rights advocate from Bahrain. She is the founder of [Majal.org](http://majal.org), a network of platforms that amplify under-reported and marginalized voices in the Middle East and North Africa. She is also the co-founder of the [Numun Fund](https://numun.fund/), the first dedicated fund for women-led tech in the Global South. Esra’a is currently the Vice Chair of the Board at the [Wikimedia Foundation](https://wikimediafoundation.org/), the nonprofit which hosts Wikipedia. She is also on the Board of the [Tor Project](https://www.torproject.org/), developers of one of the world’s strongest tools for privacy and freedom online. Previously, she served on the Board of [Access Now](https://www.accessnow.org/), an international nonprofit dedicated to an open and free Internet. + +In her own words: *"Privacy and security have been the center of my work as a human rights advocate for the last 20 years in one of the most surveilled countries in the world where staying safe remains a burden. Our privacy is our dignity. It is something that belongs to us and something we should treasure - as people, as companies, as governments. Despite messaging being the most intimate aspect of our digital lives, the leading protocols in this space are centralized and we deserve a web that operates on the core principles of genuine privacy and security in a fully decentralized framework. SimpleX network will play a critical role towards that vision."* + +Executing the plan towards decentralized nonprofit protocol governance will be Esra’a’s primary responsibility. Our primary objective with this plan is to ensure that no single entity can control or have unrestricted ownership of the protocols, so it can maintain its integrity. + +## What's new in v5.6 + +### Quantum resistant end-to-end encryption (BETA) + +Adding post-quantum resistance to the double ratchet end-to-end encryption algorithm in SimpleX Chat is a major upgrade to messaging protocols, and it creates the security against the future quantum computers. + +I wrote in detail in the previous post about various properties of end-to-end encryption and how exactly quantum resistance is implemented in SimpleX Chat - currently SimpleX Chat has [the most secure end-to-end encryption design](./20240314-simplex-chat-v5-6-quantum-resistance-signal-double-ratchet-algorithm.md#how-secure-is-end-to-end-encryption-in-different-messengers) against the present and future attacks. + +We plan to perform a security audit of this design and implementation later this year. + +Post-quantum encryption is currently added as opt-in and has to be separately enabled to be active for the new contacts, and, additionally, can be enabled for the existing contacts. + + + +**To enable quantum resistance for the new conversations**: +- open the app settings (tap user avatar in the top left corner). +- scroll down to _Developer tools_ and open them. +- enable _Show developer options_ toggle. +- now you will see _Post-quantum E2EE_ toggle - enable it as well. + +Now all new contacts you add to the app will use quantum resistant Signal double ratchet algorithm. + +Once you have enabled it for the new contacts, you can also **enable it for some of the existing contacts**: +- open the chat with the contact you want to upgrade to be quantum resistant. +- tap contact name above the chat. +- tap Allow PQ encryption. +- exchange several messages back and forth with that contact - the quantum resistant double ratchet will kick in after 3-5 messages (depending on how many messages you send in each direction), and you will see the notice in the chat once it enables. + +We will be making quantum resistance default for all direct chats in v5.7, and we plan that all existing direct chats will be automatically upgraded when both contacts install v5.7. + +### Use the app during the audio and video calls + + + +Since we added the audio and video calls in 2022 a lot of work was done to improve the stability of calls. One of the usability downsides until this release was that it was impossible to use the app during the call. + +This version solved this problem - now you can return back to the app without interrupting the call and use any of the app functions - for example, you can send the messages or files to the person you are in the call with. If this is a video call, you will continue seeing your contact in a small picture-in-picture view. + +### Migrate all app data to another device via QR code + +We always believed that cross-platform data portability is very important for any software. Users own their data, and they should have a way to export it from any software they use. So from the version of SimpleX Chat [released in July 2022](./20220711-simplex-chat-v3-released-ios-notifications-audio-video-calls-database-export-import-protocol-improvements.md#database-export-and-import) it was possible to export the database as a self-contained file, including all contacts, messages and files, and import it on a new device. + +_"How can I migrate my data to another device?"_ was one of the most frequent user questions, but until this release this process was [quite complex](), requiring too many steps, and most non-technical users were not willing to try it, as even though it was reliable, it appeared risky. + +This release made the app data migration very simple, see the steps below. + +**Start the migration on the source device** + + + +On the device you migrate your app data from, follow these steps: +- choose _Migrate to another device_, +- if necessary, set the database passphrase (initially, the database is encrypted with a random passphrase), or, if it's already set, verify it - for security and to ensure that the archive will be usable on the new device, +- tap _Archive and upload_ to and upload the app data in chunks to the XFTP servers configured in the app, +- the app will show the QR code that should be scanned from the new device. + +**Migrate data to the target device** + + + +On the device you migrate your data to, follow these steps: +- on the first app page choose _Migrate from another device_, +- scan the QR code shown on the source device, +- once the archive downloads, enter the database passphrase and tap _Open chat_, + +**Finalize migration on the source device** + + + +When the chat starts on the target device, make sure to tap _Finalize migration_ and then _Delete database_ on the source device. + +The database cannot be used on two devices at the same time, doing so would make it impossible to decrypt the received messages. This is a security measure - the break-in recovery property of double ratchet algorithm. ## SimpleX network diff --git a/blog/README.md b/blog/README.md index 3b89628211..7f27c46c76 100644 --- a/blog/README.md +++ b/blog/README.md @@ -1,5 +1,19 @@ # Blog +Mar 23, 2024 [SimpleX network: real privacy and stable profits, non-profits for protocols, v5.6 released with quantum resistant e2e encryption and simple profile migration](./20240323-simplex-network-privacy-non-profit-v5-6-quantum-resistant-e2e-encryption-simple-migration.md) + +SimpleX network: deliver real privacy via a profitable business and non-profit protocol governance: +- community and business interests are aligned. +- the journey to the decentralized non-profit protocol governance. +- welcome, Esra’a! + +What's new in v5.6: +- quantum resistant end-to-end encryption (BETA) – enable it for the new contacts. +- use the app during the audio and video calls. +- migrate all app data to another device via QR code. + +--- + Mar 14, 2024 [SimpleX Chat v5.6 (beta): adding quantum resistance to Signal double ratchet algorithm](./20240314-simplex-chat-v5-6-quantum-resistance-signal-double-ratchet-algorithm.md) This is a major upgrade for SimpleX Chat messaging protocol stack, I am really proud to present this work of the whole team. diff --git a/blog/images/20240314-comparison.jpg b/blog/images/20240314-comparison.jpg index 34027a43a7..579b2fd73c 100644 Binary files a/blog/images/20240314-comparison.jpg and b/blog/images/20240314-comparison.jpg differ diff --git a/blog/images/20240323-call1.png b/blog/images/20240323-call1.png new file mode 100644 index 0000000000..0cf954a07e Binary files /dev/null and b/blog/images/20240323-call1.png differ diff --git a/blog/images/20240323-call2.png b/blog/images/20240323-call2.png new file mode 100644 index 0000000000..8a69d1891e Binary files /dev/null and b/blog/images/20240323-call2.png differ diff --git a/blog/images/20240323-migrate-from0.png b/blog/images/20240323-migrate-from0.png new file mode 100644 index 0000000000..033ead3fd9 Binary files /dev/null and b/blog/images/20240323-migrate-from0.png differ diff --git a/blog/images/20240323-migrate-from1.png b/blog/images/20240323-migrate-from1.png new file mode 100644 index 0000000000..be016ada2c Binary files /dev/null and b/blog/images/20240323-migrate-from1.png differ diff --git a/blog/images/20240323-migrate-from2.png b/blog/images/20240323-migrate-from2.png new file mode 100644 index 0000000000..2cee12e6f4 Binary files /dev/null and b/blog/images/20240323-migrate-from2.png differ diff --git a/blog/images/20240323-migrate-from3.png b/blog/images/20240323-migrate-from3.png new file mode 100644 index 0000000000..92d7bf19a6 Binary files /dev/null and b/blog/images/20240323-migrate-from3.png differ diff --git a/blog/images/20240323-migrate-from4.png b/blog/images/20240323-migrate-from4.png new file mode 100644 index 0000000000..9b96f9efd8 Binary files /dev/null and b/blog/images/20240323-migrate-from4.png differ diff --git a/blog/images/20240323-migrate-from5.png b/blog/images/20240323-migrate-from5.png new file mode 100644 index 0000000000..dfc22a3987 Binary files /dev/null and b/blog/images/20240323-migrate-from5.png differ diff --git a/blog/images/20240323-migrate-from6.png b/blog/images/20240323-migrate-from6.png new file mode 100644 index 0000000000..18d9c8b627 Binary files /dev/null and b/blog/images/20240323-migrate-from6.png differ diff --git a/blog/images/20240323-migrate-to1.png b/blog/images/20240323-migrate-to1.png new file mode 100644 index 0000000000..b3fb0e32f1 Binary files /dev/null and b/blog/images/20240323-migrate-to1.png differ diff --git a/blog/images/20240323-migrate-to2.png b/blog/images/20240323-migrate-to2.png new file mode 100644 index 0000000000..f64544cd9b Binary files /dev/null and b/blog/images/20240323-migrate-to2.png differ diff --git a/blog/images/20240323-migrate-to3.png b/blog/images/20240323-migrate-to3.png new file mode 100644 index 0000000000..626032737b Binary files /dev/null and b/blog/images/20240323-migrate-to3.png differ diff --git a/blog/images/20240323-migrate-to4.png b/blog/images/20240323-migrate-to4.png new file mode 100644 index 0000000000..59153a464c Binary files /dev/null and b/blog/images/20240323-migrate-to4.png differ diff --git a/blog/images/20240323-migrate-to5.png b/blog/images/20240323-migrate-to5.png new file mode 100644 index 0000000000..b86f42b292 Binary files /dev/null and b/blog/images/20240323-migrate-to5.png differ diff --git a/blog/images/20240323-post-preview.png b/blog/images/20240323-post-preview.png new file mode 100644 index 0000000000..69c9908a1e Binary files /dev/null and b/blog/images/20240323-post-preview.png differ diff --git a/cabal.project b/cabal.project index 547ec861e0..be58b64283 100644 --- a/cabal.project +++ b/cabal.project @@ -12,7 +12,7 @@ constraints: zip +disable-bzip2 +disable-zstd source-repository-package type: git location: https://github.com/simplex-chat/simplexmq.git - tag: 7b6b80cea21c7fbafffa118f1ed268411fcb79ca + tag: 8496884b42d76bd0d934e5ae481846d9c324d3c7 source-repository-package type: git diff --git a/docs/DOWNLOADS.md b/docs/DOWNLOADS.md index 6726fa02fe..b394c9dd27 100644 --- a/docs/DOWNLOADS.md +++ b/docs/DOWNLOADS.md @@ -4,10 +4,10 @@ permalink: /downloads/index.html revision: 11.02.2024 --- -| Updated 11.02.2024 | Languages: EN | +| Updated 23.03.2024 | Languages: EN | # Download SimpleX apps -The latest stable version is v5.5.3. +The latest stable version is v5.6. You can get the latest beta releases from [GitHub](https://github.com/simplex-chat/simplex-chat/releases). diff --git a/docs/rfcs/2024-03-22-communicating-reject.md b/docs/rfcs/2024-03-22-communicating-reject.md new file mode 100644 index 0000000000..37bb4eab26 --- /dev/null +++ b/docs/rfcs/2024-03-22-communicating-reject.md @@ -0,0 +1,95 @@ +# Communicating rejection + +## Problem + +Many interactions support either approval, or silent rejection. From privacy perspective, rejection being silent is a correct default. However, for improved usability we could add optional communication of rejection, as many users don't mind sending such signals to their contacts. + +Features currently not supporting communicating rejection: +- Rejecting contact request +- Rejecting group join request +- Rejecting call +- Rejecting group invitation +- TBC Other? + +## Solution + +## Rejection of contact / group join requests + +- Contact and group join requests are very similar between each other and different from other features as they both use mechanism of "contact connections". + +- Rejection can be made to the address proposed by requester in AgentInvitation message, where currently AgentConfirmation is sent in case of acceptance. + + ``` haskell + data AgentMsgEnvelope + = ... + | AgentRejection + { e2eEncryption :: RcvE2ERatchetParams 'C.X448, + encRejectionInfo :: ByteString + } + ``` + +- Unlike other AgentMsgEnvelope constructors, AgentRejection doesn't require agentVersion since connection will be deleted after sending this message. + + - We may be able to re-use recently added mechanism of marking connection for deletion with deleted_at_wait_delivery field without much additional work. + +- e2eEncryption will be used to encrypt first message, same as for AgentConfirmation. (?) + +- Both sync and async versions of agent functions are required, as contact rejection will be user action, while group join rejection will be automated (in case, for example, if link host is no longer admin). + + - Group requests non-automatic approval is a separate matter and requires UI consideration, but if it was added it would use sync function. + + - For sync function either new API can be added, or rejectContact can be parameterized. + +- Chat protocol requires adding new messages to be sent in encRejectionInfo, to be processed on requester side based on connections' semantics. + + ```haskell + -- / contact request rejection + XReject :: ChatMsgEvent 'Json + -- or + -- (contact can send reason for rejection; we don't even have welcome messages in XContact though) + XReject :: Maybe Text -> ChatMsgEvent 'Json + + -- / group join request rejection + XGrpReject :: Maybe GrpRejectReason -> ChatMsgEvent 'Json + + data GrpRejectReason + = GRRNone -- manual reject with no reason? use Nothing in GRRText instead? + | GRRCantInvite -- e.g., no longer admin + | GRRText {text :: Text} -- manual reject once supported? Maybe Text? + + -- add similar type for contact request rejection? + -- minimal is to always send XReject without reasons + ``` + + - As a side note, it may have been a design mistake to mix both "connInfo" messages as well as regular chat messages in a single type for protocol messages, so it may be best to keep these as separate constructors. + +- Versioning considerations: + - Increase chat version. + - We already save peer chat version on contact_requests on initial REQ message. It can be used to differentiate UI whether contact supports rejection messages and not offer option to reject with notification. + - Increase agent version? Agent can prohibit sending AgentRejection based on version in AgentInvitation, though it shouldn't be reachable as chat should also prohibit it. + +## Rejecting calls + +- New chat protocol message is enough + - Based on user action in reply to XCallInv instead of XCallOffer. + - Send in APIRejectCall. + + ```haskell + XCallReject :: CallId -> ChatMsgEvent 'Json + ``` + +- Same chat versioning considerations as above. + +## Rejecting group invitation + +- Same, new protocol message. + - Based on user action in reply to XGrpInv instead of XGrpAcpt. + - Can't be sent as simple chat message since there's no group ID in invitation? (only optional groupLinkId) + - So, have to send as "conn info" via join, same as for XGrpAcpt. + - APIDeleteChat is already used for deleting group invitations, can re-use. In this case `notify` parameter in APIDeleteChat can be used to send rejection. + + ```haskell + XGrpReject :: CallId -> ChatMsgEvent 'Json + ``` + +- Same chat versioning considerations as above. diff --git a/package.yaml b/package.yaml index ed6bc96cb1..dbc75ddf9f 100644 --- a/package.yaml +++ b/package.yaml @@ -1,5 +1,5 @@ name: simplex-chat -version: 5.6.0.3 +version: 5.6.0.4 #synopsis: #description: homepage: https://github.com/simplex-chat/simplex-chat#readme @@ -104,16 +104,20 @@ executables: - -threaded simplex-broadcast-bot: - source-dirs: apps/simplex-broadcast-bot/src - main: ../Main.hs + source-dirs: + - apps/simplex-broadcast-bot + - apps/simplex-broadcast-bot/src + main: Main.hs dependencies: - simplex-chat ghc-options: - -threaded simplex-directory-service: - source-dirs: apps/simplex-directory-service/src - main: ../Main.hs + source-dirs: + - apps/simplex-directory-service + - apps/simplex-directory-service/src + main: Main.hs dependencies: - simplex-chat ghc-options: diff --git a/scripts/nix/sha256map.nix b/scripts/nix/sha256map.nix index b898978fcc..1fd783a1d3 100644 --- a/scripts/nix/sha256map.nix +++ b/scripts/nix/sha256map.nix @@ -1,5 +1,5 @@ { - "https://github.com/simplex-chat/simplexmq.git"."7b6b80cea21c7fbafffa118f1ed268411fcb79ca" = "0a665v4v1ilm2j9cxkiwqq2xlp2732h95mqaywf7qrlk03qkasfi"; + "https://github.com/simplex-chat/simplexmq.git"."8496884b42d76bd0d934e5ae481846d9c324d3c7" = "0c040s00zc1qg0ilsvpv54f01xz7flh8rsar2nplcs4a4gnp78qs"; "https://github.com/simplex-chat/hs-socks.git"."a30cc7a79a08d8108316094f8f2f82a0c5e1ac51" = "0yasvnr7g91k76mjkamvzab2kvlb1g5pspjyjn2fr6v83swjhj38"; "https://github.com/simplex-chat/direct-sqlcipher.git"."f814ee68b16a9447fbb467ccc8f29bdd3546bfd9" = "1ql13f4kfwkbaq7nygkxgw84213i0zm7c1a8hwvramayxl38dq5d"; "https://github.com/simplex-chat/sqlcipher-simple.git"."a46bd361a19376c5211f1058908fc0ae6bf42446" = "1z0r78d8f0812kxbgsm735qf6xx8lvaz27k1a0b4a2m0sshpd5gl"; diff --git a/simplex-chat.cabal b/simplex-chat.cabal index 8361d3f55d..c9c7012102 100644 --- a/simplex-chat.cabal +++ b/simplex-chat.cabal @@ -5,7 +5,7 @@ cabal-version: 1.12 -- see: https://github.com/sol/hpack name: simplex-chat -version: 5.6.0.3 +version: 5.6.0.4 category: Web, System, Services, Cryptography homepage: https://github.com/simplex-chat/simplex-chat#readme author: simplex.chat @@ -355,13 +355,14 @@ executable simplex-bot-advanced , text >=1.2.3.0 && <1.3 executable simplex-broadcast-bot - main-is: ../Main.hs + main-is: Main.hs + hs-source-dirs: + apps/simplex-broadcast-bot + apps/simplex-broadcast-bot/src other-modules: Broadcast.Bot Broadcast.Options Paths_simplex_chat - hs-source-dirs: - apps/simplex-broadcast-bot/src ghc-options: -Wall -Wcompat -Werror=incomplete-patterns -Wredundant-constraints -Wincomplete-record-updates -Wincomplete-uni-patterns -Wunused-type-patterns -threaded build-depends: aeson ==2.2.* @@ -481,7 +482,10 @@ executable simplex-chat , text >=1.2.3.0 && <1.3 executable simplex-directory-service - main-is: ../Main.hs + main-is: Main.hs + hs-source-dirs: + apps/simplex-directory-service + apps/simplex-directory-service/src other-modules: Directory.Events Directory.Options @@ -489,8 +493,6 @@ executable simplex-directory-service Directory.Service Directory.Store Paths_simplex_chat - hs-source-dirs: - apps/simplex-directory-service/src ghc-options: -Wall -Wcompat -Werror=incomplete-patterns -Wredundant-constraints -Wincomplete-record-updates -Wincomplete-uni-patterns -Wunused-type-patterns -threaded build-depends: aeson ==2.2.* diff --git a/src/Simplex/Chat.hs b/src/Simplex/Chat.hs index cdb6f90a98..959265141d 100644 --- a/src/Simplex/Chat.hs +++ b/src/Simplex/Chat.hs @@ -1563,19 +1563,40 @@ processChatCommand' vr = \case processChatCommand . APISendMessage chatRef True Nothing $ ComposedMessage Nothing Nothing mc SendMessageBroadcast msg -> withUser $ \user -> do contacts <- withStore' $ \db -> getUserContacts db vr user - let cts = filter (\ct -> contactReady ct && contactActive ct && directOrUsed ct) contacts - ChatConfig {logLevel} <- asks config withChatLock "sendMessageBroadcast" . procCmd $ do - (successes, failures) <- foldM (sendAndCount user logLevel) (0, 0) cts - timestamp <- liftIO getCurrentTime - pure CRBroadcastSent {user, msgContent = mc, successes, failures, timestamp} + let ctConns_ = L.nonEmpty $ foldr addContactConn [] contacts + case ctConns_ of + Nothing -> do + timestamp <- liftIO getCurrentTime + pure CRBroadcastSent {user, msgContent = mc, successes = 0, failures = 0, timestamp} + Just (ctConns :: NonEmpty (Contact, Connection)) -> do + let idsEvts = L.map ctSndEvent ctConns + sndMsgs <- createSndMessages idsEvts + let msgReqs_ :: NonEmpty (Either ChatError MsgReq) = L.zipWith (fmap . ctMsgReq) ctConns sndMsgs + (errs, ctSndMsgs :: [(Contact, SndMessage)]) <- + partitionEithers . L.toList . zipWith3' combineResults ctConns sndMsgs <$> deliverMessagesB msgReqs_ + timestamp <- liftIO getCurrentTime + void $ withStoreBatch' $ \db -> map (createCI db user timestamp) ctSndMsgs + pure CRBroadcastSent {user, msgContent = mc, successes = length ctSndMsgs, failures = length errs, timestamp} where mc = MCText msg - sendAndCount user ll (s, f) ct = - (sendToContact user ct $> (s + 1, f)) `catchChatError` \e -> when (ll <= CLLInfo) (toView $ CRChatError (Just user) e) $> (s, f + 1) - sendToContact user ct = do - (sndMsg, _) <- sendDirectContactMessage user ct (XMsgNew $ MCSimple (extMsgContent mc Nothing)) - void $ saveSndChatItem user (CDDirectSnd ct) sndMsg (CISndMsgContent mc) + addContactConn :: Contact -> [(Contact, Connection)] -> [(Contact, Connection)] + addContactConn ct ctConns = case contactSendConn_ ct of + Right conn | directOrUsed ct -> (ct, conn) : ctConns + _ -> ctConns + ctSndEvent :: (Contact, Connection) -> (ConnOrGroupId, PQSupport, ChatMsgEvent 'Json) + ctSndEvent (_, Connection {connId, pqSupport}) = (ConnectionId connId, pqSupport, XMsgNew $ MCSimple (extMsgContent mc Nothing)) + ctMsgReq :: (Contact, Connection) -> SndMessage -> MsgReq + ctMsgReq (_, conn) SndMessage {msgId, msgBody} = (conn, MsgFlags {notification = hasNotification XMsgNew_}, msgBody, msgId) + zipWith3' :: (a -> b -> c -> d) -> NonEmpty a -> NonEmpty b -> NonEmpty c -> NonEmpty d + zipWith3' f ~(x :| xs) ~(y :| ys) ~(z :| zs) = f x y z :| zipWith3 f xs ys zs + combineResults :: (Contact, Connection) -> Either ChatError SndMessage -> Either ChatError (Int64, PQEncryption) -> Either ChatError (Contact, SndMessage) + combineResults (ct, _) (Right msg') (Right _) = Right (ct, msg') + combineResults _ (Left e) _ = Left e + combineResults _ _ (Left e) = Left e + createCI :: DB.Connection -> User -> UTCTime -> (Contact, SndMessage) -> IO () + createCI db user createdAt (ct, sndMsg) = + void $ createNewSndChatItem db user (CDDirectSnd ct) sndMsg (CISndMsgContent mc) Nothing Nothing False createdAt SendMessageQuote cName (AMsgDirection msgDir) quotedMsg msg -> withUser $ \user@User {userId} -> do contactId <- withStore $ \db -> getContactIdByName db user cName quotedItemId <- withStore $ \db -> getDirectChatItemIdByText db userId contactId msgDir quotedMsg @@ -2221,7 +2242,7 @@ processChatCommand' vr = \case summary <- case changedCts_ of Nothing -> pure $ UserProfileUpdateSummary 0 0 [] Just changedCts -> do - let idsEvts = L.map ctSndMsg changedCts + let idsEvts = L.map ctSndEvent changedCts msgReqs_ <- L.zipWith ctMsgReq changedCts <$> createSndMessages idsEvts (errs, cts) <- partitionEithers . L.toList . L.zipWith (second . const) changedCts <$> deliverMessagesB msgReqs_ unless (null errs) $ toView $ CRChatErrors (Just user) errs @@ -2238,16 +2259,15 @@ processChatCommand' vr = \case -- [incognito] filter out contacts with whom user has incognito connections addChangedProfileContact :: User -> Contact -> [ChangedProfileContact] -> [ChangedProfileContact] addChangedProfileContact user' ct changedCts = case contactSendConn_ ct' of - Left _ -> changedCts - Right conn - | connIncognito conn || mergedProfile' == mergedProfile -> changedCts - | otherwise -> ChangedProfileContact ct ct' mergedProfile' conn : changedCts + Right conn | not (connIncognito conn) && mergedProfile' /= mergedProfile -> + ChangedProfileContact ct ct' mergedProfile' conn : changedCts + _ -> changedCts where mergedProfile = userProfileToSend user Nothing (Just ct) False ct' = updateMergedPreferences user' ct mergedProfile' = userProfileToSend user' Nothing (Just ct') False - ctSndMsg :: ChangedProfileContact -> (ConnOrGroupId, PQSupport, ChatMsgEvent 'Json) - ctSndMsg ChangedProfileContact {mergedProfile', conn = Connection {connId, pqSupport}} = (ConnectionId connId, pqSupport, XInfo mergedProfile') + ctSndEvent :: ChangedProfileContact -> (ConnOrGroupId, PQSupport, ChatMsgEvent 'Json) + ctSndEvent ChangedProfileContact {mergedProfile', conn = Connection {connId, pqSupport}} = (ConnectionId connId, pqSupport, XInfo mergedProfile') ctMsgReq :: ChangedProfileContact -> Either ChatError SndMessage -> Either ChatError MsgReq ctMsgReq ChangedProfileContact {conn} = fmap $ \SndMessage {msgId, msgBody} -> diff --git a/tests/Bots/DirectoryTests.hs b/tests/Bots/DirectoryTests.hs index 1054a1d8eb..b78d36f489 100644 --- a/tests/Bots/DirectoryTests.hs +++ b/tests/Bots/DirectoryTests.hs @@ -522,7 +522,7 @@ testNotApprovedBadRoles tmp = let approve = "/approve 1:privacy 1" superUser #> ("@SimpleX-Directory " <> approve) superUser <# ("SimpleX-Directory> > " <> approve) - superUser <## " Group is not approved: user is not an owner." + superUser <## " Group is not approved: SimpleX-Directory is not an admin." groupNotFound cath "privacy" bob ##> "/mr privacy SimpleX-Directory admin" bob <## "#privacy: you changed the role of SimpleX-Directory from member to admin" diff --git a/tests/ChatClient.hs b/tests/ChatClient.hs index 409dd2bb3e..8e9d11d91f 100644 --- a/tests/ChatClient.hs +++ b/tests/ChatClient.hs @@ -37,10 +37,11 @@ import Simplex.Chat.Types import Simplex.FileTransfer.Description (kb, mb) import Simplex.FileTransfer.Server (runXFTPServerBlocking) import Simplex.FileTransfer.Server.Env (XFTPServerConfig (..), defaultFileExpiration) +import Simplex.Messaging.Agent (disposeAgentClient) import Simplex.Messaging.Agent.Env.SQLite import Simplex.Messaging.Agent.Protocol (currentSMPAgentVersion, duplexHandshakeSMPAgentVersion, pqdrSMPAgentVersion, supportedSMPAgentVRange) import Simplex.Messaging.Agent.RetryInterval -import Simplex.Messaging.Agent.Store.SQLite (MigrationConfirmation (..)) +import Simplex.Messaging.Agent.Store.SQLite (MigrationConfirmation (..), closeSQLiteStore) import qualified Simplex.Messaging.Agent.Store.SQLite.DB as DB import Simplex.Messaging.Client (ProtocolClientConfig (..), defaultNetworkConfig) import Simplex.Messaging.Crypto.Ratchet (supportedE2EEncryptVRange, pattern PQSupportOff) @@ -250,10 +251,12 @@ startTestChat_ db cfg opts user = do pure TestCC {chatController = cc, virtualTerminal = t, chatAsync, termAsync, termQ, printOutput = False} stopTestChat :: TestCC -> IO () -stopTestChat TestCC {chatController = cc, chatAsync, termAsync} = do +stopTestChat TestCC {chatController = cc@ChatController {smpAgent, chatStore}, chatAsync, termAsync} = do stopChatController cc uninterruptibleCancel termAsync uninterruptibleCancel chatAsync + liftIO $ disposeAgentClient smpAgent + closeSQLiteStore chatStore threadDelay 200000 withNewTestChat :: HasCallStack => FilePath -> String -> Profile -> (HasCallStack => TestCC -> IO a) -> IO a diff --git a/tests/ChatTests/Direct.hs b/tests/ChatTests/Direct.hs index 4e06f68fb6..4b0389ab90 100644 --- a/tests/ChatTests/Direct.hs +++ b/tests/ChatTests/Direct.hs @@ -2997,10 +2997,15 @@ testPQEnableContactCompression = bob ##> "/pq @alice on" bob <## "alice: enable quantum resistant end-to-end encryption" PQSupportOn <- bob `pqSupportForCt` 2 + threadDelay 300000 (alice, "lrg 1", v) \:#> (bob, v') + threadDelay 300000 (bob, "lrg 2", v') \:#> (alice, v') + threadDelay 300000 (alice, "lrg 3", v') \:#> (bob, v') + threadDelay 300000 (bob, "lrg 4", v') \:#> (alice, v') + threadDelay 300000 (alice, "lrg 5", v') +:#> (bob, v') PQEncOff <- alice `pqForContact` 2 PQEncOff <- bob `pqForContact` 2 diff --git a/tests/ChatTests/Groups.hs b/tests/ChatTests/Groups.hs index bf9b445925..77bac11145 100644 --- a/tests/ChatTests/Groups.hs +++ b/tests/ChatTests/Groups.hs @@ -871,6 +871,9 @@ testGroupRemoveAdd = testChatCfg3 testCfgCreateGroupDirect aliceProfile bobProfile cathProfile $ \alice bob cath -> do createGroup3 "team" alice bob cath + + threadDelay 100000 + -- remove member alice ##> "/rm team bob" concurrentlyN_ @@ -880,6 +883,9 @@ testGroupRemoveAdd = bob <## "use /d #team to delete the group", cath <## "#team: alice removed bob from the group" ] + + threadDelay 100000 + alice ##> "/a team bob" alice <## "invitation to join the group #team sent to bob" bob <## "#team_1: alice invites you to join the group as member" @@ -1916,6 +1922,8 @@ testGroupLink = (alice <# "#team cath> hey team") (bob <# "#team cath> hey team") + threadDelay 100000 + -- leaving team removes link alice ##> "/l team" concurrentlyN_ diff --git a/website/langs/cs.json b/website/langs/cs.json index d087fd5bec..6e2416e4a2 100644 --- a/website/langs/cs.json +++ b/website/langs/cs.json @@ -37,10 +37,10 @@ "hero-overlay-1-title": "Jak funguje SimpleX?", "hero-overlay-2-title": "Proč jsou uživatelská ID špatná pro soukromí?", "feature-1-title": "E2E šifrované zprávy s Markdown a editací", - "feature-3-title": "Decentralizované tajné skupiny —
pouze uživatelé vědí, že existují", + "feature-3-title": "E2E-šifrované decentralizované skupiny — pouze uživatelé vědí, že existují", "feature-4-title": "Hlasové zprávy šifrované E2E", "feature-6-title": "E2E šifrované
hlasové a videohovory", - "feature-7-title": "Přenosná šifrovaná databáze— přeneste svůj profil do jiného zařízení", + "feature-7-title": "Přenosné šifrované ůložiště aplikace — přeneste profil do jiného zařízení", "feature-8-title": "režim Inkognito —
Unikátní pro SimpleX Chat", "simplex-network-overlay-1-title": "Srovnání s protokoly zpráv P2P", "simplex-private-2-title": "Další vrstva
šifrování serveru", @@ -170,8 +170,8 @@ "comparison-section-list-point-1": "Založeném obvykle na telefonním čísle a v některých případech uživatelském jménu", "comparison-section-list-point-2": "Adresy založené na DNS", "comparison-section-list-point-3": "Veřejný klíč nebo jiné globálně jedinečné ID", - "comparison-section-list-point-4": "Pokud jsou servery operátora ohroženy", - "comparison-section-list-point-5": "Nechrání metadata uživatelů", + "comparison-section-list-point-4": "Pokud jsou servery operátora kompromitovány. Ověřte bezpečnostní kód v Signálu a nějaké jiné aplikaci ke zmírnění", + "comparison-section-list-point-5": "Nechrání soukromí metadat uživatelů", "comparison-section-list-point-6": "Zatímco P2P jsou distribuovány, nejsou federované – fungují jako jediná síť", "comparison-section-list-point-7": "P2P sítě mají buď centrální autoritu, nebo může být ohrožena celá síť", "see-here": "viz zde", @@ -195,7 +195,7 @@ "simplex-explained-tab-3-p-2": "Uživatelé mohou dále zlepšit soukromí metadat pomocí Tor pro přístup k serverům, což zabraňuje korelaci podle IP adresy.", "hero-p-1": "Jiné aplikace mají uživatelská ID: Signal, Matrix, Session, Briar, Jami, Cwtch atd.
SimpleX ne, ani náhodná čísla.
To radikálně zlepšuje vaše soukromí.", "hero-2-header-desc": "Video ukazuje, jak se spojit se svým přítelem prostřednictvím jeho jednorázového QR kódu, osobně nebo prostřednictvím QR kódu ve videu. Můžete se také připojit sdílením pozvánky.", - "feature-2-title": "Obrázky a soubory šifrované E2E
", + "feature-2-title": "E2E šifrované
obrázky, videa a soubory", "feature-5-title": "Mizící tajné konverzace", "simplex-private-1-title": "2-vrstvé
end-to-end šifrování", "simplex-private-8-title": "Smíchání zpráv
ke snížení korelace", @@ -232,5 +232,25 @@ "on-this-page": "Na této stránce", "back-to-top": "Zpět nahoru", "newer-version-of-eng-msg": "V angličtině je novější verze této stránky.", - "glossary": "Rejstřík" + "glossary": "Rejstřík", + "hero-overlay-3-title": "Posouzení bezpečnosti", + "hero-overlay-3-textlink": "Posouzení bezpečnosti", + "hero-overlay-card-3-p-1": "Trail of Bits je přední bezpečnostní a technologické poradenství, jejichž klienti zahrnují velké technologické firmy, vládní agentury a významné blockchainové projekty.", + "f-droid-page-simplex-chat-repo-section-text": "Chcete-li jej přidat do vašeho F-Droid clienta, naskenujte QR kód nebo použijte tuto adresu URL:", + "f-droid-page-f-droid-org-repo-section-text": "SimpleX Chat a F-Droid.org repozitáře jsou podepsané různými klíči. Chcete-li přepnout, prosím exportujte chat databázi a přeinstalujte aplikaci.", + "comparison-section-list-point-4a": "SimpleX relé nemůže ohrozit šifrování e2e. Ověřte bezpečnostní kód, který zmírňuje mimo pásmový útok na kanál", + "docs-dropdown-8": "Služba SimpleX Directory", + "please-enable-javascript": "Prosím, povolte JavaScript k zobrazení QR kódu.", + "please-use-link-in-mobile-app": "Prosím použijte odkaz v mobilní aplikaci", + "simplex-chat-via-f-droid": "SimpleX Chat přes F-Droid", + "simplex-chat-repo": "SimpleX Chat repozitář", + "stable-and-beta-versions-built-by-developers": "Stabilní a beta verze vytvořené vývojáři", + "signing-key-fingerprint": "Otisk podpisového klíče (SHA-256)", + "f-droid-org-repo": "F-Droid.org repozitář", + "stable-versions-built-by-f-droid-org": "Stabilní verze vytvořené F-Droid.org", + "releases-to-this-repo-are-done-1-2-days-later": "Vydání v tomto repozitáři se provádí o 1-2 dny později", + "jobs": "Připojit k týmu", + "hero-overlay-card-3-p-2": "Trail of Bits přezkoumala kryptografii a síťové komponenty SimpleX platformy v listopadu 2022.", + "hero-overlay-card-3-p-3": "Přečtěte si více v ohlášení.", + "docs-dropdown-9": "Ke stažení" } diff --git a/website/src/_includes/blog_previews/20240323.html b/website/src/_includes/blog_previews/20240323.html new file mode 100644 index 0000000000..7fe4c78179 --- /dev/null +++ b/website/src/_includes/blog_previews/20240323.html @@ -0,0 +1,16 @@ +

SimpleX network: deliver real privacy via a profitable business and non-profit protocol governance:

+ +
    +
  • community and business interests are aligned.
  • +
  • the journey to the decentralized non-profit protocol governance.
  • +
  • welcome, Esra'a!
  • +
+ +

v5.6 is released:

+ +
    +
  • quantum resistant end-to-end encryption (BETA) - enable it for the new contacts.
  • +
  • use the app during the audio and video calls.
  • +
  • migrate all app data to another device via QR code.
  • +
  • blocking members and many other improvements.
  • +