Merge branch 'master' into master-android

This commit is contained in:
Evgeny Poberezkin
2025-02-15 17:51:04 +00:00
39 changed files with 1204 additions and 189 deletions
+6
View File
@@ -317,6 +317,12 @@ struct ContentView: View {
.onContinueUserActivity("INStartCallIntent", perform: processUserActivity)
.onContinueUserActivity("INStartAudioCallIntent", perform: processUserActivity)
.onContinueUserActivity("INStartVideoCallIntent", perform: processUserActivity)
.onContinueUserActivity(NSUserActivityTypeBrowsingWeb) { userActivity in
if let url = userActivity.webpageURL {
logger.debug("onContinueUserActivity.NSUserActivityTypeBrowsingWeb: \(url)")
chatModel.appOpenUrl = url
}
}
}
private func setConditionsNotified_() async {
@@ -823,6 +823,10 @@
<target>Всички профили</target>
<note>profile dropdown</note>
</trans-unit>
<trans-unit id="All reports will be archived for you." xml:space="preserve">
<source>All reports will be archived for you.</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="All your contacts will remain connected." xml:space="preserve">
<source>All your contacts will remain connected.</source>
<target>Всички ваши контакти ще останат свързани.</target>
@@ -898,6 +902,10 @@
<target>Позволи необратимо изтриване на изпратените съобщения. (24 часа)</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Allow to report messsages to moderators." xml:space="preserve">
<source>Allow to report messsages to moderators.</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Allow to send SimpleX links." xml:space="preserve">
<source>Allow to send SimpleX links.</source>
<target>Разрешаване на изпращане на SimpleX линкове.</target>
@@ -1060,6 +1068,14 @@
<source>Archive</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Archive %lld reports?" xml:space="preserve">
<source>Archive %lld reports?</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Archive all reports?" xml:space="preserve">
<source>Archive all reports?</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Archive and upload" xml:space="preserve">
<source>Archive and upload</source>
<target>Архивиране и качване</target>
@@ -1078,6 +1094,10 @@
<source>Archive report?</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Archive reports" xml:space="preserve">
<source>Archive reports</source>
<note>swipe action</note>
</trans-unit>
<trans-unit id="Archived contacts" xml:space="preserve">
<source>Archived contacts</source>
<target>Архивирани контакти</target>
@@ -1615,6 +1635,10 @@
<target>Изчисти разговора?</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Clear group?" xml:space="preserve">
<source>Clear group?</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Clear or delete group?" xml:space="preserve">
<source>Clear or delete group?</source>
<note>No comment provided by engineer.</note>
@@ -3576,6 +3600,10 @@ This is your own one-time link!</source>
<target>Поправката не се поддържа от члена на групата</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="For all moderators" xml:space="preserve">
<source>For all moderators</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="For chat profile %@:" xml:space="preserve">
<source>For chat profile %@:</source>
<note>servers error</note>
@@ -3589,6 +3617,10 @@ This is your own one-time link!</source>
<source>For example, if your contact receives messages via a SimpleX Chat server, your app will deliver them via a Flux server.</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="For me" xml:space="preserve">
<source>For me</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="For private routing" xml:space="preserve">
<source>For private routing</source>
<note>No comment provided by engineer.</note>
@@ -4497,6 +4529,10 @@ This is your link for group %@!</source>
<source>Member inactive</source>
<note>item status text</note>
</trans-unit>
<trans-unit id="Member reports" xml:space="preserve">
<source>Member reports</source>
<note>chat feature</note>
</trans-unit>
<trans-unit id="Member role will be changed to &quot;%@&quot;. All chat members will be notified." xml:space="preserve">
<source>Member role will be changed to "%@". All chat members will be notified.</source>
<note>No comment provided by engineer.</note>
@@ -4530,6 +4566,10 @@ This is your link for group %@!</source>
<target>Членовете на групата могат необратимо да изтриват изпратените съобщения. (24 часа)</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Members can report messsages to moderators." xml:space="preserve">
<source>Members can report messsages to moderators.</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Members can send SimpleX links." xml:space="preserve">
<source>Members can send SimpleX links.</source>
<target>Членовете на групата могат да изпращат SimpleX линкове.</target>
@@ -5638,6 +5678,10 @@ Error: %@</source>
<target>Забрани реакциите на съобщенията.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Prohibit reporting messages to moderators." xml:space="preserve">
<source>Prohibit reporting messages to moderators.</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Prohibit sending SimpleX links." xml:space="preserve">
<source>Prohibit sending SimpleX links.</source>
<target>Забранете изпращането на SimpleX линкове.</target>
@@ -6018,6 +6062,14 @@ Enable in *Network &amp; servers* settings.</source>
<source>Report violation: only group moderators will see it.</source>
<note>report reason</note>
</trans-unit>
<trans-unit id="Report: (text.isEmpty ? reason.text : text)" xml:space="preserve">
<source>Report: (text.isEmpty ? reason.text : text)</source>
<note>report in notification</note>
</trans-unit>
<trans-unit id="Reporting messages to moderators is prohibited." xml:space="preserve">
<source>Reporting messages to moderators is prohibited.</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Reports" xml:space="preserve">
<source>Reports</source>
<note>No comment provided by engineer.</note>
@@ -7271,10 +7323,6 @@ It can happen because of some bug or when the connection is compromised.</source
<target>Профилът се споделя само с вашите контакти.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="The report will be archived for you." xml:space="preserve">
<source>The report will be archived for you.</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="The same conditions will apply to operator **%@**." xml:space="preserve">
<source>The same conditions will apply to operator **%@**.</source>
<note>No comment provided by engineer.</note>
@@ -788,6 +788,10 @@
<source>All profiles</source>
<note>profile dropdown</note>
</trans-unit>
<trans-unit id="All reports will be archived for you." xml:space="preserve">
<source>All reports will be archived for you.</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="All your contacts will remain connected." xml:space="preserve">
<source>All your contacts will remain connected.</source>
<target>Všechny vaše kontakty zůstanou připojeny.</target>
@@ -859,6 +863,10 @@
<target>Povolit nevratné smazání odeslaných zpráv. (24 hodin)</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Allow to report messsages to moderators." xml:space="preserve">
<source>Allow to report messsages to moderators.</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Allow to send SimpleX links." xml:space="preserve">
<source>Allow to send SimpleX links.</source>
<note>No comment provided by engineer.</note>
@@ -1013,6 +1021,14 @@
<source>Archive</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Archive %lld reports?" xml:space="preserve">
<source>Archive %lld reports?</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Archive all reports?" xml:space="preserve">
<source>Archive all reports?</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Archive and upload" xml:space="preserve">
<source>Archive and upload</source>
<note>No comment provided by engineer.</note>
@@ -1029,6 +1045,10 @@
<source>Archive report?</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Archive reports" xml:space="preserve">
<source>Archive reports</source>
<note>swipe action</note>
</trans-unit>
<trans-unit id="Archived contacts" xml:space="preserve">
<source>Archived contacts</source>
<note>No comment provided by engineer.</note>
@@ -1531,6 +1551,10 @@
<target>Vyčistit konverzaci?</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Clear group?" xml:space="preserve">
<source>Clear group?</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Clear or delete group?" xml:space="preserve">
<source>Clear or delete group?</source>
<note>No comment provided by engineer.</note>
@@ -3430,6 +3454,10 @@ This is your own one-time link!</source>
<target>Opravit nepodporované členem skupiny</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="For all moderators" xml:space="preserve">
<source>For all moderators</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="For chat profile %@:" xml:space="preserve">
<source>For chat profile %@:</source>
<note>servers error</note>
@@ -3443,6 +3471,10 @@ This is your own one-time link!</source>
<source>For example, if your contact receives messages via a SimpleX Chat server, your app will deliver them via a Flux server.</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="For me" xml:space="preserve">
<source>For me</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="For private routing" xml:space="preserve">
<source>For private routing</source>
<note>No comment provided by engineer.</note>
@@ -4317,6 +4349,10 @@ This is your link for group %@!</source>
<source>Member inactive</source>
<note>item status text</note>
</trans-unit>
<trans-unit id="Member reports" xml:space="preserve">
<source>Member reports</source>
<note>chat feature</note>
</trans-unit>
<trans-unit id="Member role will be changed to &quot;%@&quot;. All chat members will be notified." xml:space="preserve">
<source>Member role will be changed to "%@". All chat members will be notified.</source>
<note>No comment provided by engineer.</note>
@@ -4350,6 +4386,10 @@ This is your link for group %@!</source>
<target>Členové skupiny mohou nevratně mazat odeslané zprávy. (24 hodin)</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Members can report messsages to moderators." xml:space="preserve">
<source>Members can report messsages to moderators.</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Members can send SimpleX links." xml:space="preserve">
<source>Members can send SimpleX links.</source>
<note>No comment provided by engineer.</note>
@@ -5420,6 +5460,10 @@ Error: %@</source>
<target>Zakázat reakce na zprávy.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Prohibit reporting messages to moderators." xml:space="preserve">
<source>Prohibit reporting messages to moderators.</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Prohibit sending SimpleX links." xml:space="preserve">
<source>Prohibit sending SimpleX links.</source>
<note>No comment provided by engineer.</note>
@@ -5789,6 +5833,14 @@ Enable in *Network &amp; servers* settings.</source>
<source>Report violation: only group moderators will see it.</source>
<note>report reason</note>
</trans-unit>
<trans-unit id="Report: (text.isEmpty ? reason.text : text)" xml:space="preserve">
<source>Report: (text.isEmpty ? reason.text : text)</source>
<note>report in notification</note>
</trans-unit>
<trans-unit id="Reporting messages to moderators is prohibited." xml:space="preserve">
<source>Reporting messages to moderators is prohibited.</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Reports" xml:space="preserve">
<source>Reports</source>
<note>No comment provided by engineer.</note>
@@ -7018,10 +7070,6 @@ Může se to stát kvůli nějaké chybě, nebo pokud je spojení kompromitován
<target>Profil je sdílen pouze s vašimi kontakty.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="The report will be archived for you." xml:space="preserve">
<source>The report will be archived for you.</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="The same conditions will apply to operator **%@**." xml:space="preserve">
<source>The same conditions will apply to operator **%@**.</source>
<note>No comment provided by engineer.</note>
@@ -840,6 +840,10 @@
<target>Alle Profile</target>
<note>profile dropdown</note>
</trans-unit>
<trans-unit id="All reports will be archived for you." xml:space="preserve">
<source>All reports will be archived for you.</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="All your contacts will remain connected." xml:space="preserve">
<source>All your contacts will remain connected.</source>
<target>Alle Ihre Kontakte bleiben verbunden.</target>
@@ -915,6 +919,10 @@
<target>Unwiederbringliches löschen von gesendeten Nachrichten erlauben. (24 Stunden)</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Allow to report messsages to moderators." xml:space="preserve">
<source>Allow to report messsages to moderators.</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Allow to send SimpleX links." xml:space="preserve">
<source>Allow to send SimpleX links.</source>
<target>Das Senden von SimpleX-Links erlauben.</target>
@@ -1080,6 +1088,14 @@
<target>Archiv</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Archive %lld reports?" xml:space="preserve">
<source>Archive %lld reports?</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Archive all reports?" xml:space="preserve">
<source>Archive all reports?</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Archive and upload" xml:space="preserve">
<source>Archive and upload</source>
<target>Archivieren und Hochladen</target>
@@ -1100,6 +1116,10 @@
<target>Meldung archivieren?</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Archive reports" xml:space="preserve">
<source>Archive reports</source>
<note>swipe action</note>
</trans-unit>
<trans-unit id="Archived contacts" xml:space="preserve">
<source>Archived contacts</source>
<target>Archivierte Kontakte</target>
@@ -1657,6 +1677,10 @@
<target>Chat-Inhalte entfernen?</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Clear group?" xml:space="preserve">
<source>Clear group?</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Clear or delete group?" xml:space="preserve">
<source>Clear or delete group?</source>
<target>Gruppe entfernen oder löschen?</target>
@@ -3732,6 +3756,10 @@ Das ist Ihr eigener Einmal-Link!</target>
<target>Reparatur wird vom Gruppenmitglied nicht unterstützt</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="For all moderators" xml:space="preserve">
<source>For all moderators</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="For chat profile %@:" xml:space="preserve">
<source>For chat profile %@:</source>
<target>Für das Chat-Profil %@:</target>
@@ -3747,6 +3775,10 @@ Das ist Ihr eigener Einmal-Link!</target>
<target>Wenn Ihr Kontakt beispielsweise Nachrichten über einen SimpleX-Chatserver empfängt, wird Ihre App diese über einen der Server von Flux versenden.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="For me" xml:space="preserve">
<source>For me</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="For private routing" xml:space="preserve">
<source>For private routing</source>
<target>Für privates Routing</target>
@@ -4693,6 +4725,10 @@ Das ist Ihr Link für die Gruppe %@!</target>
<target>Mitglied inaktiv</target>
<note>item status text</note>
</trans-unit>
<trans-unit id="Member reports" xml:space="preserve">
<source>Member reports</source>
<note>chat feature</note>
</trans-unit>
<trans-unit id="Member role will be changed to &quot;%@&quot;. All chat members will be notified." xml:space="preserve">
<source>Member role will be changed to "%@". All chat members will be notified.</source>
<target>Die Rolle des Mitglieds wird auf "%@" geändert. Alle Chat-Mitglieder werden darüber informiert.</target>
@@ -4728,6 +4764,10 @@ Das ist Ihr Link für die Gruppe %@!</target>
<target>Gruppenmitglieder können gesendete Nachrichten unwiederbringlich löschen. (24 Stunden)</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Members can report messsages to moderators." xml:space="preserve">
<source>Members can report messsages to moderators.</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Members can send SimpleX links." xml:space="preserve">
<source>Members can send SimpleX links.</source>
<target>Gruppenmitglieder können SimpleX-Links versenden.</target>
@@ -5909,6 +5949,10 @@ Fehler: %@</target>
<target>Reaktionen auf Nachrichten nicht erlauben.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Prohibit reporting messages to moderators." xml:space="preserve">
<source>Prohibit reporting messages to moderators.</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Prohibit sending SimpleX links." xml:space="preserve">
<source>Prohibit sending SimpleX links.</source>
<target>Das Senden von SimpleX-Links nicht erlauben.</target>
@@ -6314,6 +6358,14 @@ Aktivieren Sie es in den *Netzwerk &amp; Server* Einstellungen.</target>
<target>Verstoß melden: Nur Gruppenmoderatoren werden es sehen.</target>
<note>report reason</note>
</trans-unit>
<trans-unit id="Report: (text.isEmpty ? reason.text : text)" xml:space="preserve">
<source>Report: (text.isEmpty ? reason.text : text)</source>
<note>report in notification</note>
</trans-unit>
<trans-unit id="Reporting messages to moderators is prohibited." xml:space="preserve">
<source>Reporting messages to moderators is prohibited.</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Reports" xml:space="preserve">
<source>Reports</source>
<target>Meldungen</target>
@@ -7654,11 +7706,6 @@ Dies kann passieren, wenn es einen Fehler gegeben hat oder die Verbindung kompro
<target>Das Profil wird nur mit Ihren Kontakten geteilt.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="The report will be archived for you." xml:space="preserve">
<source>The report will be archived for you.</source>
<target>Die Meldung wird für Sie archiviert.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="The same conditions will apply to operator **%@**." xml:space="preserve">
<source>The same conditions will apply to operator **%@**.</source>
<target>Dieselben Nutzungsbedingungen gelten auch für den Betreiber **%@**.</target>
@@ -843,6 +843,11 @@
<target>All profiles</target>
<note>profile dropdown</note>
</trans-unit>
<trans-unit id="All reports will be archived for you." xml:space="preserve">
<source>All reports will be archived for you.</source>
<target>All reports will be archived for you.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="All your contacts will remain connected." xml:space="preserve">
<source>All your contacts will remain connected.</source>
<target>All your contacts will remain connected.</target>
@@ -918,6 +923,11 @@
<target>Allow to irreversibly delete sent messages. (24 hours)</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Allow to report messsages to moderators." xml:space="preserve">
<source>Allow to report messsages to moderators.</source>
<target>Allow to report messsages to moderators.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Allow to send SimpleX links." xml:space="preserve">
<source>Allow to send SimpleX links.</source>
<target>Allow to send SimpleX links.</target>
@@ -1083,6 +1093,16 @@
<target>Archive</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Archive %lld reports?" xml:space="preserve">
<source>Archive %lld reports?</source>
<target>Archive %lld reports?</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Archive all reports?" xml:space="preserve">
<source>Archive all reports?</source>
<target>Archive all reports?</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Archive and upload" xml:space="preserve">
<source>Archive and upload</source>
<target>Archive and upload</target>
@@ -1103,6 +1123,11 @@
<target>Archive report?</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Archive reports" xml:space="preserve">
<source>Archive reports</source>
<target>Archive reports</target>
<note>swipe action</note>
</trans-unit>
<trans-unit id="Archived contacts" xml:space="preserve">
<source>Archived contacts</source>
<target>Archived contacts</target>
@@ -1660,6 +1685,11 @@
<target>Clear conversation?</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Clear group?" xml:space="preserve">
<source>Clear group?</source>
<target>Clear group?</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Clear or delete group?" xml:space="preserve">
<source>Clear or delete group?</source>
<target>Clear or delete group?</target>
@@ -3740,6 +3770,11 @@ This is your own one-time link!</target>
<target>Fix not supported by group member</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="For all moderators" xml:space="preserve">
<source>For all moderators</source>
<target>For all moderators</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="For chat profile %@:" xml:space="preserve">
<source>For chat profile %@:</source>
<target>For chat profile %@:</target>
@@ -3755,6 +3790,11 @@ This is your own one-time link!</target>
<target>For example, if your contact receives messages via a SimpleX Chat server, your app will deliver them via a Flux server.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="For me" xml:space="preserve">
<source>For me</source>
<target>For me</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="For private routing" xml:space="preserve">
<source>For private routing</source>
<target>For private routing</target>
@@ -4706,6 +4746,11 @@ This is your link for group %@!</target>
<target>Member inactive</target>
<note>item status text</note>
</trans-unit>
<trans-unit id="Member reports" xml:space="preserve">
<source>Member reports</source>
<target>Member reports</target>
<note>chat feature</note>
</trans-unit>
<trans-unit id="Member role will be changed to &quot;%@&quot;. All chat members will be notified." xml:space="preserve">
<source>Member role will be changed to "%@". All chat members will be notified.</source>
<target>Member role will be changed to "%@". All chat members will be notified.</target>
@@ -4741,6 +4786,11 @@ This is your link for group %@!</target>
<target>Members can irreversibly delete sent messages. (24 hours)</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Members can report messsages to moderators." xml:space="preserve">
<source>Members can report messsages to moderators.</source>
<target>Members can report messsages to moderators.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Members can send SimpleX links." xml:space="preserve">
<source>Members can send SimpleX links.</source>
<target>Members can send SimpleX links.</target>
@@ -5930,6 +5980,11 @@ Error: %@</target>
<target>Prohibit messages reactions.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Prohibit reporting messages to moderators." xml:space="preserve">
<source>Prohibit reporting messages to moderators.</source>
<target>Prohibit reporting messages to moderators.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Prohibit sending SimpleX links." xml:space="preserve">
<source>Prohibit sending SimpleX links.</source>
<target>Prohibit sending SimpleX links.</target>
@@ -6338,6 +6393,16 @@ Enable in *Network &amp; servers* settings.</target>
<target>Report violation: only group moderators will see it.</target>
<note>report reason</note>
</trans-unit>
<trans-unit id="Report: (text.isEmpty ? reason.text : text)" xml:space="preserve">
<source>Report: (text.isEmpty ? reason.text : text)</source>
<target>Report: (text.isEmpty ? reason.text : text)</target>
<note>report in notification</note>
</trans-unit>
<trans-unit id="Reporting messages to moderators is prohibited." xml:space="preserve">
<source>Reporting messages to moderators is prohibited.</source>
<target>Reporting messages to moderators is prohibited.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Reports" xml:space="preserve">
<source>Reports</source>
<target>Reports</target>
@@ -7680,11 +7745,6 @@ It can happen because of some bug or when the connection is compromised.</target
<target>The profile is only shared with your contacts.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="The report will be archived for you." xml:space="preserve">
<source>The report will be archived for you.</source>
<target>The report will be archived for you.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="The same conditions will apply to operator **%@**." xml:space="preserve">
<source>The same conditions will apply to operator **%@**.</source>
<target>The same conditions will apply to operator **%@**.</target>
@@ -840,6 +840,10 @@
<target>Todos los perfiles</target>
<note>profile dropdown</note>
</trans-unit>
<trans-unit id="All reports will be archived for you." xml:space="preserve">
<source>All reports will be archived for you.</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="All your contacts will remain connected." xml:space="preserve">
<source>All your contacts will remain connected.</source>
<target>Todos tus contactos permanecerán conectados.</target>
@@ -915,6 +919,10 @@
<target>Se permite la eliminación irreversible de mensajes. (24 horas)</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Allow to report messsages to moderators." xml:space="preserve">
<source>Allow to report messsages to moderators.</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Allow to send SimpleX links." xml:space="preserve">
<source>Allow to send SimpleX links.</source>
<target>Se permite enviar enlaces SimpleX.</target>
@@ -1080,6 +1088,14 @@
<target>Archivar</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Archive %lld reports?" xml:space="preserve">
<source>Archive %lld reports?</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Archive all reports?" xml:space="preserve">
<source>Archive all reports?</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Archive and upload" xml:space="preserve">
<source>Archive and upload</source>
<target>Archivar y subir</target>
@@ -1100,6 +1116,10 @@
<target>¿Archivar informe?</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Archive reports" xml:space="preserve">
<source>Archive reports</source>
<note>swipe action</note>
</trans-unit>
<trans-unit id="Archived contacts" xml:space="preserve">
<source>Archived contacts</source>
<target>Contactos archivados</target>
@@ -1657,6 +1677,10 @@
<target>¿Vaciar conversación?</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Clear group?" xml:space="preserve">
<source>Clear group?</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Clear or delete group?" xml:space="preserve">
<source>Clear or delete group?</source>
<target>¿Vaciar o eliminar grupo?</target>
@@ -3732,6 +3756,10 @@ This is your own one-time link!</source>
<target>Corrección no compatible con miembro del grupo</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="For all moderators" xml:space="preserve">
<source>For all moderators</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="For chat profile %@:" xml:space="preserve">
<source>For chat profile %@:</source>
<target>Para el perfil de chat %@:</target>
@@ -3747,6 +3775,10 @@ This is your own one-time link!</source>
<target>Si por ejemplo tu contacto recibe los mensajes a través de un servidor de SimpleX Chat, tu aplicación los entregará a través de un servidor de Flux.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="For me" xml:space="preserve">
<source>For me</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="For private routing" xml:space="preserve">
<source>For private routing</source>
<target>Para enrutamiento privado</target>
@@ -4693,6 +4725,10 @@ This is your link for group %@!</source>
<target>Miembro inactivo</target>
<note>item status text</note>
</trans-unit>
<trans-unit id="Member reports" xml:space="preserve">
<source>Member reports</source>
<note>chat feature</note>
</trans-unit>
<trans-unit id="Member role will be changed to &quot;%@&quot;. All chat members will be notified." xml:space="preserve">
<source>Member role will be changed to "%@". All chat members will be notified.</source>
<target>El rol del miembro cambiará a "%@" y todos serán notificados.</target>
@@ -4728,6 +4764,10 @@ This is your link for group %@!</source>
<target>Los miembros del grupo pueden eliminar mensajes de forma irreversible. (24 horas)</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Members can report messsages to moderators." xml:space="preserve">
<source>Members can report messsages to moderators.</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Members can send SimpleX links." xml:space="preserve">
<source>Members can send SimpleX links.</source>
<target>Los miembros del grupo pueden enviar enlaces SimpleX.</target>
@@ -5909,6 +5949,10 @@ Error: %@</target>
<target>No se permiten reacciones a los mensajes.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Prohibit reporting messages to moderators." xml:space="preserve">
<source>Prohibit reporting messages to moderators.</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Prohibit sending SimpleX links." xml:space="preserve">
<source>Prohibit sending SimpleX links.</source>
<target>No se permite enviar enlaces SimpleX.</target>
@@ -6314,6 +6358,14 @@ Actívalo en ajustes de *Servidores y Redes*.</target>
<target>Informar de violación: sólo los moderadores del grupo lo verán.</target>
<note>report reason</note>
</trans-unit>
<trans-unit id="Report: (text.isEmpty ? reason.text : text)" xml:space="preserve">
<source>Report: (text.isEmpty ? reason.text : text)</source>
<note>report in notification</note>
</trans-unit>
<trans-unit id="Reporting messages to moderators is prohibited." xml:space="preserve">
<source>Reporting messages to moderators is prohibited.</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Reports" xml:space="preserve">
<source>Reports</source>
<target>Informes</target>
@@ -7654,11 +7706,6 @@ Puede ocurrir por algún bug o cuando la conexión está comprometida.</target>
<target>El perfil sólo se comparte con tus contactos.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="The report will be archived for you." xml:space="preserve">
<source>The report will be archived for you.</source>
<target>El informe será archivado para ti.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="The same conditions will apply to operator **%@**." xml:space="preserve">
<source>The same conditions will apply to operator **%@**.</source>
<target>Las mismas condiciones se aplicarán al operador **%@**.</target>
@@ -775,6 +775,10 @@
<source>All profiles</source>
<note>profile dropdown</note>
</trans-unit>
<trans-unit id="All reports will be archived for you." xml:space="preserve">
<source>All reports will be archived for you.</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="All your contacts will remain connected." xml:space="preserve">
<source>All your contacts will remain connected.</source>
<target>Kaikki kontaktisi pysyvät yhteydessä.</target>
@@ -846,6 +850,10 @@
<target>Salli lähetettyjen viestien peruuttamaton poistaminen. (24 tuntia)</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Allow to report messsages to moderators." xml:space="preserve">
<source>Allow to report messsages to moderators.</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Allow to send SimpleX links." xml:space="preserve">
<source>Allow to send SimpleX links.</source>
<note>No comment provided by engineer.</note>
@@ -999,6 +1007,14 @@
<source>Archive</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Archive %lld reports?" xml:space="preserve">
<source>Archive %lld reports?</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Archive all reports?" xml:space="preserve">
<source>Archive all reports?</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Archive and upload" xml:space="preserve">
<source>Archive and upload</source>
<note>No comment provided by engineer.</note>
@@ -1015,6 +1031,10 @@
<source>Archive report?</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Archive reports" xml:space="preserve">
<source>Archive reports</source>
<note>swipe action</note>
</trans-unit>
<trans-unit id="Archived contacts" xml:space="preserve">
<source>Archived contacts</source>
<note>No comment provided by engineer.</note>
@@ -1516,6 +1536,10 @@
<target>Tyhjennä keskustelu?</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Clear group?" xml:space="preserve">
<source>Clear group?</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Clear or delete group?" xml:space="preserve">
<source>Clear or delete group?</source>
<note>No comment provided by engineer.</note>
@@ -3412,6 +3436,10 @@ This is your own one-time link!</source>
<target>Ryhmän jäsen ei tue korjausta</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="For all moderators" xml:space="preserve">
<source>For all moderators</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="For chat profile %@:" xml:space="preserve">
<source>For chat profile %@:</source>
<note>servers error</note>
@@ -3425,6 +3453,10 @@ This is your own one-time link!</source>
<source>For example, if your contact receives messages via a SimpleX Chat server, your app will deliver them via a Flux server.</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="For me" xml:space="preserve">
<source>For me</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="For private routing" xml:space="preserve">
<source>For private routing</source>
<note>No comment provided by engineer.</note>
@@ -4299,6 +4331,10 @@ This is your link for group %@!</source>
<source>Member inactive</source>
<note>item status text</note>
</trans-unit>
<trans-unit id="Member reports" xml:space="preserve">
<source>Member reports</source>
<note>chat feature</note>
</trans-unit>
<trans-unit id="Member role will be changed to &quot;%@&quot;. All chat members will be notified." xml:space="preserve">
<source>Member role will be changed to "%@". All chat members will be notified.</source>
<note>No comment provided by engineer.</note>
@@ -4332,6 +4368,10 @@ This is your link for group %@!</source>
<target>Ryhmän jäsenet voivat poistaa lähetetyt viestit peruuttamattomasti. (24 tuntia)</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Members can report messsages to moderators." xml:space="preserve">
<source>Members can report messsages to moderators.</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Members can send SimpleX links." xml:space="preserve">
<source>Members can send SimpleX links.</source>
<note>No comment provided by engineer.</note>
@@ -5400,6 +5440,10 @@ Error: %@</source>
<target>Estä viestireaktiot.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Prohibit reporting messages to moderators." xml:space="preserve">
<source>Prohibit reporting messages to moderators.</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Prohibit sending SimpleX links." xml:space="preserve">
<source>Prohibit sending SimpleX links.</source>
<note>No comment provided by engineer.</note>
@@ -5769,6 +5813,14 @@ Enable in *Network &amp; servers* settings.</source>
<source>Report violation: only group moderators will see it.</source>
<note>report reason</note>
</trans-unit>
<trans-unit id="Report: (text.isEmpty ? reason.text : text)" xml:space="preserve">
<source>Report: (text.isEmpty ? reason.text : text)</source>
<note>report in notification</note>
</trans-unit>
<trans-unit id="Reporting messages to moderators is prohibited." xml:space="preserve">
<source>Reporting messages to moderators is prohibited.</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Reports" xml:space="preserve">
<source>Reports</source>
<note>No comment provided by engineer.</note>
@@ -6996,10 +7048,6 @@ Tämä voi johtua jostain virheestä tai siitä, että yhteys on vaarantunut.</t
<target>Profiili jaetaan vain kontaktiesi kanssa.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="The report will be archived for you." xml:space="preserve">
<source>The report will be archived for you.</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="The same conditions will apply to operator **%@**." xml:space="preserve">
<source>The same conditions will apply to operator **%@**.</source>
<note>No comment provided by engineer.</note>
@@ -833,6 +833,10 @@
<target>Tous les profiles</target>
<note>profile dropdown</note>
</trans-unit>
<trans-unit id="All reports will be archived for you." xml:space="preserve">
<source>All reports will be archived for you.</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="All your contacts will remain connected." xml:space="preserve">
<source>All your contacts will remain connected.</source>
<target>Tous vos contacts resteront connectés.</target>
@@ -908,6 +912,10 @@
<target>Autoriser la suppression irréversible de messages envoyés. (24 heures)</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Allow to report messsages to moderators." xml:space="preserve">
<source>Allow to report messsages to moderators.</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Allow to send SimpleX links." xml:space="preserve">
<source>Allow to send SimpleX links.</source>
<target>Autorise l'envoi de liens SimpleX.</target>
@@ -1070,6 +1078,14 @@
<source>Archive</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Archive %lld reports?" xml:space="preserve">
<source>Archive %lld reports?</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Archive all reports?" xml:space="preserve">
<source>Archive all reports?</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Archive and upload" xml:space="preserve">
<source>Archive and upload</source>
<target>Archiver et téléverser</target>
@@ -1088,6 +1104,10 @@
<source>Archive report?</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Archive reports" xml:space="preserve">
<source>Archive reports</source>
<note>swipe action</note>
</trans-unit>
<trans-unit id="Archived contacts" xml:space="preserve">
<source>Archived contacts</source>
<target>Contacts archivés</target>
@@ -1642,6 +1662,10 @@
<target>Effacer la conversation?</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Clear group?" xml:space="preserve">
<source>Clear group?</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Clear or delete group?" xml:space="preserve">
<source>Clear or delete group?</source>
<note>No comment provided by engineer.</note>
@@ -3693,6 +3717,10 @@ Il s'agit de votre propre lien unique !</target>
<target>Correction non prise en charge par un membre du groupe</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="For all moderators" xml:space="preserve">
<source>For all moderators</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="For chat profile %@:" xml:space="preserve">
<source>For chat profile %@:</source>
<target>Pour le profil de discussion %@ :</target>
@@ -3708,6 +3736,10 @@ Il s'agit de votre propre lien unique !</target>
<target>Par exemple, si votre contact reçoit des messages via un serveur SimpleX Chat, votre application les transmettra via un serveur Flux.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="For me" xml:space="preserve">
<source>For me</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="For private routing" xml:space="preserve">
<source>For private routing</source>
<target>Pour le routage privé</target>
@@ -4647,6 +4679,10 @@ Voici votre lien pour le groupe %@ !</target>
<target>Membre inactif</target>
<note>item status text</note>
</trans-unit>
<trans-unit id="Member reports" xml:space="preserve">
<source>Member reports</source>
<note>chat feature</note>
</trans-unit>
<trans-unit id="Member role will be changed to &quot;%@&quot;. All chat members will be notified." xml:space="preserve">
<source>Member role will be changed to "%@". All chat members will be notified.</source>
<target>Le rôle du membre sera modifié pour « %@ ». Tous les membres du chat seront notifiés.</target>
@@ -4682,6 +4718,10 @@ Voici votre lien pour le groupe %@ !</target>
<target>Les membres du groupe peuvent supprimer de manière irréversible les messages envoyés. (24 heures)</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Members can report messsages to moderators." xml:space="preserve">
<source>Members can report messsages to moderators.</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Members can send SimpleX links." xml:space="preserve">
<source>Members can send SimpleX links.</source>
<target>Les membres du groupe peuvent envoyer des liens SimpleX.</target>
@@ -5851,6 +5891,10 @@ Erreur: %@</target>
<target>Interdire les réactions aux messages.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Prohibit reporting messages to moderators." xml:space="preserve">
<source>Prohibit reporting messages to moderators.</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Prohibit sending SimpleX links." xml:space="preserve">
<source>Prohibit sending SimpleX links.</source>
<target>Interdire l'envoi de liens SimpleX.</target>
@@ -6249,6 +6293,14 @@ Activez-le dans les paramètres *Réseau et serveurs*.</target>
<source>Report violation: only group moderators will see it.</source>
<note>report reason</note>
</trans-unit>
<trans-unit id="Report: (text.isEmpty ? reason.text : text)" xml:space="preserve">
<source>Report: (text.isEmpty ? reason.text : text)</source>
<note>report in notification</note>
</trans-unit>
<trans-unit id="Reporting messages to moderators is prohibited." xml:space="preserve">
<source>Reporting messages to moderators is prohibited.</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Reports" xml:space="preserve">
<source>Reports</source>
<note>No comment provided by engineer.</note>
@@ -7584,10 +7636,6 @@ Cela peut se produire en raison d'un bug ou lorsque la connexion est compromise.
<target>Le profil n'est partagé qu'avec vos contacts.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="The report will be archived for you." xml:space="preserve">
<source>The report will be archived for you.</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="The same conditions will apply to operator **%@**." xml:space="preserve">
<source>The same conditions will apply to operator **%@**.</source>
<target>Les mêmes conditions s'appliquent à l'opérateur **%@**.</target>
@@ -840,6 +840,10 @@
<target>Összes profil</target>
<note>profile dropdown</note>
</trans-unit>
<trans-unit id="All reports will be archived for you." xml:space="preserve">
<source>All reports will be archived for you.</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="All your contacts will remain connected." xml:space="preserve">
<source>All your contacts will remain connected.</source>
<target>Az összes ismerősével kapcsolatban marad.</target>
@@ -915,6 +919,10 @@
<target>Elküldött üzenetek végleges törlésének engedélyezése. (24 óra)</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Allow to report messsages to moderators." xml:space="preserve">
<source>Allow to report messsages to moderators.</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Allow to send SimpleX links." xml:space="preserve">
<source>Allow to send SimpleX links.</source>
<target>A SimpleX-hivatkozások küldése engedélyezve van.</target>
@@ -1080,6 +1088,14 @@
<target>Archívum</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Archive %lld reports?" xml:space="preserve">
<source>Archive %lld reports?</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Archive all reports?" xml:space="preserve">
<source>Archive all reports?</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Archive and upload" xml:space="preserve">
<source>Archive and upload</source>
<target>Archiválás és feltöltés</target>
@@ -1100,6 +1116,10 @@
<target>Jelentés archiválása?</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Archive reports" xml:space="preserve">
<source>Archive reports</source>
<note>swipe action</note>
</trans-unit>
<trans-unit id="Archived contacts" xml:space="preserve">
<source>Archived contacts</source>
<target>Archivált ismerősök</target>
@@ -1657,6 +1677,10 @@
<target>Üzenetek kiürítése?</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Clear group?" xml:space="preserve">
<source>Clear group?</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Clear or delete group?" xml:space="preserve">
<source>Clear or delete group?</source>
<target>Csoport kiürítése vagy törlése?</target>
@@ -3732,6 +3756,10 @@ Ez az Ön egyszer használható meghívó-hivatkozása!</target>
<target>Csoporttag általi javítás nem támogatott</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="For all moderators" xml:space="preserve">
<source>For all moderators</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="For chat profile %@:" xml:space="preserve">
<source>For chat profile %@:</source>
<target>A(z) %@ nevű csevegési profilhoz:</target>
@@ -3747,6 +3775,10 @@ Ez az Ön egyszer használható meghívó-hivatkozása!</target>
<target>Például, ha az Ön ismerőse egy SimpleX Chat-kiszolgálón keresztül fogadja az üzeneteket, az Ön alkalmazása egy Flux-kiszolgálón keresztül fogja azokat kézbesíteni.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="For me" xml:space="preserve">
<source>For me</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="For private routing" xml:space="preserve">
<source>For private routing</source>
<target>A privát útválasztáshoz</target>
@@ -4693,6 +4725,10 @@ Ez az Ön hivatkozása a(z) %@ nevű csoporthoz!</target>
<target>Inaktív tag</target>
<note>item status text</note>
</trans-unit>
<trans-unit id="Member reports" xml:space="preserve">
<source>Member reports</source>
<note>chat feature</note>
</trans-unit>
<trans-unit id="Member role will be changed to &quot;%@&quot;. All chat members will be notified." xml:space="preserve">
<source>Member role will be changed to "%@". All chat members will be notified.</source>
<target>A tag szerepeköre meg fog változni a következőre: "%@". A csevegés tagjai értesítést fognak kapni.</target>
@@ -4728,6 +4764,10 @@ Ez az Ön hivatkozása a(z) %@ nevű csoporthoz!</target>
<target>A csoport tagjai véglegesen törölhetik az elküldött üzeneteiket. (24 óra)</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Members can report messsages to moderators." xml:space="preserve">
<source>Members can report messsages to moderators.</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Members can send SimpleX links." xml:space="preserve">
<source>Members can send SimpleX links.</source>
<target>A csoport tagjai küldhetnek SimpleX-hivatkozásokat.</target>
@@ -5909,6 +5949,10 @@ Hiba: %@</target>
<target>Az üzenetreakciók tiltása.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Prohibit reporting messages to moderators." xml:space="preserve">
<source>Prohibit reporting messages to moderators.</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Prohibit sending SimpleX links." xml:space="preserve">
<source>Prohibit sending SimpleX links.</source>
<target>A SimpleX-hivatkozások küldése le van tiltva.</target>
@@ -6314,6 +6358,14 @@ Engedélyezze a „Beállítások -&gt; Hálózat és kiszolgálók” menüben.
<target>Szabálysértés jelentése: csak a csoport moderátorai látják.</target>
<note>report reason</note>
</trans-unit>
<trans-unit id="Report: (text.isEmpty ? reason.text : text)" xml:space="preserve">
<source>Report: (text.isEmpty ? reason.text : text)</source>
<note>report in notification</note>
</trans-unit>
<trans-unit id="Reporting messages to moderators is prohibited." xml:space="preserve">
<source>Reporting messages to moderators is prohibited.</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Reports" xml:space="preserve">
<source>Reports</source>
<target>Jelentések</target>
@@ -7654,11 +7706,6 @@ Ez valamilyen hiba vagy sérült kapcsolat esetén fordulhat elő.</target>
<target>A profilja csak az ismerőseivel van megosztva.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="The report will be archived for you." xml:space="preserve">
<source>The report will be archived for you.</source>
<target>A jelentés archiválva lesz az Ön számára.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="The same conditions will apply to operator **%@**." xml:space="preserve">
<source>The same conditions will apply to operator **%@**.</source>
<target>Ugyanezek a feltételek lesznek elfogadva a következő üzemeltetőre is: **%@**.</target>
@@ -840,6 +840,10 @@
<target>Tutti gli profili</target>
<note>profile dropdown</note>
</trans-unit>
<trans-unit id="All reports will be archived for you." xml:space="preserve">
<source>All reports will be archived for you.</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="All your contacts will remain connected." xml:space="preserve">
<source>All your contacts will remain connected.</source>
<target>Tutti i tuoi contatti resteranno connessi.</target>
@@ -915,6 +919,10 @@
<target>Permetti di eliminare irreversibilmente i messaggi inviati. (24 ore)</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Allow to report messsages to moderators." xml:space="preserve">
<source>Allow to report messsages to moderators.</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Allow to send SimpleX links." xml:space="preserve">
<source>Allow to send SimpleX links.</source>
<target>Consenti di inviare link di SimpleX.</target>
@@ -1080,6 +1088,14 @@
<target>Archivia</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Archive %lld reports?" xml:space="preserve">
<source>Archive %lld reports?</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Archive all reports?" xml:space="preserve">
<source>Archive all reports?</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Archive and upload" xml:space="preserve">
<source>Archive and upload</source>
<target>Archivia e carica</target>
@@ -1100,6 +1116,10 @@
<target>Archiviare la segnalazione?</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Archive reports" xml:space="preserve">
<source>Archive reports</source>
<note>swipe action</note>
</trans-unit>
<trans-unit id="Archived contacts" xml:space="preserve">
<source>Archived contacts</source>
<target>Contatti archiviati</target>
@@ -1657,6 +1677,10 @@
<target>Svuotare la conversazione?</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Clear group?" xml:space="preserve">
<source>Clear group?</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Clear or delete group?" xml:space="preserve">
<source>Clear or delete group?</source>
<target>Svuotare o eliminare il gruppo?</target>
@@ -3732,6 +3756,10 @@ Questo è il tuo link una tantum!</target>
<target>Correzione non supportata dal membro del gruppo</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="For all moderators" xml:space="preserve">
<source>For all moderators</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="For chat profile %@:" xml:space="preserve">
<source>For chat profile %@:</source>
<target>Per il profilo di chat %@:</target>
@@ -3747,6 +3775,10 @@ Questo è il tuo link una tantum!</target>
<target>Ad esempio, se il tuo contatto riceve messaggi tramite un server di SimpleX Chat, la tua app li consegnerà tramite un server Flux.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="For me" xml:space="preserve">
<source>For me</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="For private routing" xml:space="preserve">
<source>For private routing</source>
<target>Per l'instradamento privato</target>
@@ -4693,6 +4725,10 @@ Questo è il tuo link per il gruppo %@!</target>
<target>Membro inattivo</target>
<note>item status text</note>
</trans-unit>
<trans-unit id="Member reports" xml:space="preserve">
<source>Member reports</source>
<note>chat feature</note>
</trans-unit>
<trans-unit id="Member role will be changed to &quot;%@&quot;. All chat members will be notified." xml:space="preserve">
<source>Member role will be changed to "%@". All chat members will be notified.</source>
<target>Il ruolo del membro verrà cambiato in "%@". Verranno notificati tutti i membri della chat.</target>
@@ -4728,6 +4764,10 @@ Questo è il tuo link per il gruppo %@!</target>
<target>I membri del gruppo possono eliminare irreversibilmente i messaggi inviati. (24 ore)</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Members can report messsages to moderators." xml:space="preserve">
<source>Members can report messsages to moderators.</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Members can send SimpleX links." xml:space="preserve">
<source>Members can send SimpleX links.</source>
<target>I membri del gruppo possono inviare link di Simplex.</target>
@@ -5909,6 +5949,10 @@ Errore: %@</target>
<target>Proibisci le reazioni ai messaggi.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Prohibit reporting messages to moderators." xml:space="preserve">
<source>Prohibit reporting messages to moderators.</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Prohibit sending SimpleX links." xml:space="preserve">
<source>Prohibit sending SimpleX links.</source>
<target>Vieta l'invio di link di SimpleX.</target>
@@ -6314,6 +6358,14 @@ Attivalo nelle impostazioni *Rete e server*.</target>
<target>Segnala violazione: solo i moderatori del gruppo lo vedranno.</target>
<note>report reason</note>
</trans-unit>
<trans-unit id="Report: (text.isEmpty ? reason.text : text)" xml:space="preserve">
<source>Report: (text.isEmpty ? reason.text : text)</source>
<note>report in notification</note>
</trans-unit>
<trans-unit id="Reporting messages to moderators is prohibited." xml:space="preserve">
<source>Reporting messages to moderators is prohibited.</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Reports" xml:space="preserve">
<source>Reports</source>
<target>Segnalazioni</target>
@@ -7654,11 +7706,6 @@ Può accadere a causa di qualche bug o quando la connessione è compromessa.</ta
<target>Il profilo è condiviso solo con i tuoi contatti.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="The report will be archived for you." xml:space="preserve">
<source>The report will be archived for you.</source>
<target>La segnalazione verrà archiviata per te.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="The same conditions will apply to operator **%@**." xml:space="preserve">
<source>The same conditions will apply to operator **%@**.</source>
<target>Le stesse condizioni si applicheranno all'operatore **%@**.</target>
@@ -813,6 +813,10 @@
<target>すべてのプロフィール</target>
<note>profile dropdown</note>
</trans-unit>
<trans-unit id="All reports will be archived for you." xml:space="preserve">
<source>All reports will be archived for you.</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="All your contacts will remain connected." xml:space="preserve">
<source>All your contacts will remain connected.</source>
<target>あなたの連絡先が繋がったまま継続します。</target>
@@ -886,6 +890,10 @@
<target>送信済みメッセージの永久削除を許可する。(24時間)</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Allow to report messsages to moderators." xml:space="preserve">
<source>Allow to report messsages to moderators.</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Allow to send SimpleX links." xml:space="preserve">
<source>Allow to send SimpleX links.</source>
<target>SimpleXリンクの送信を許可。</target>
@@ -1047,6 +1055,14 @@
<source>Archive</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Archive %lld reports?" xml:space="preserve">
<source>Archive %lld reports?</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Archive all reports?" xml:space="preserve">
<source>Archive all reports?</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Archive and upload" xml:space="preserve">
<source>Archive and upload</source>
<target>アーカイブとアップロード</target>
@@ -1064,6 +1080,10 @@
<source>Archive report?</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Archive reports" xml:space="preserve">
<source>Archive reports</source>
<note>swipe action</note>
</trans-unit>
<trans-unit id="Archived contacts" xml:space="preserve">
<source>Archived contacts</source>
<note>No comment provided by engineer.</note>
@@ -1569,6 +1589,10 @@
<target>ダイアログのクリアしますか?</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Clear group?" xml:space="preserve">
<source>Clear group?</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Clear or delete group?" xml:space="preserve">
<source>Clear or delete group?</source>
<note>No comment provided by engineer.</note>
@@ -3485,6 +3509,10 @@ This is your own one-time link!</source>
<target>グループメンバーによる修正はサポートされていません</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="For all moderators" xml:space="preserve">
<source>For all moderators</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="For chat profile %@:" xml:space="preserve">
<source>For chat profile %@:</source>
<note>servers error</note>
@@ -3498,6 +3526,10 @@ This is your own one-time link!</source>
<source>For example, if your contact receives messages via a SimpleX Chat server, your app will deliver them via a Flux server.</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="For me" xml:space="preserve">
<source>For me</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="For private routing" xml:space="preserve">
<source>For private routing</source>
<note>No comment provided by engineer.</note>
@@ -4372,6 +4404,10 @@ This is your link for group %@!</source>
<source>Member inactive</source>
<note>item status text</note>
</trans-unit>
<trans-unit id="Member reports" xml:space="preserve">
<source>Member reports</source>
<note>chat feature</note>
</trans-unit>
<trans-unit id="Member role will be changed to &quot;%@&quot;. All chat members will be notified." xml:space="preserve">
<source>Member role will be changed to "%@". All chat members will be notified.</source>
<note>No comment provided by engineer.</note>
@@ -4405,6 +4441,10 @@ This is your link for group %@!</source>
<target>グループのメンバーがメッセージを完全削除することができます。(24時間)</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Members can report messsages to moderators." xml:space="preserve">
<source>Members can report messsages to moderators.</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Members can send SimpleX links." xml:space="preserve">
<source>Members can send SimpleX links.</source>
<note>No comment provided by engineer.</note>
@@ -5478,6 +5518,10 @@ Error: %@</source>
<target>メッセージへのリアクションは禁止されています。</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Prohibit reporting messages to moderators." xml:space="preserve">
<source>Prohibit reporting messages to moderators.</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Prohibit sending SimpleX links." xml:space="preserve">
<source>Prohibit sending SimpleX links.</source>
<note>No comment provided by engineer.</note>
@@ -5846,6 +5890,14 @@ Enable in *Network &amp; servers* settings.</source>
<source>Report violation: only group moderators will see it.</source>
<note>report reason</note>
</trans-unit>
<trans-unit id="Report: (text.isEmpty ? reason.text : text)" xml:space="preserve">
<source>Report: (text.isEmpty ? reason.text : text)</source>
<note>report in notification</note>
</trans-unit>
<trans-unit id="Reporting messages to moderators is prohibited." xml:space="preserve">
<source>Reporting messages to moderators is prohibited.</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Reports" xml:space="preserve">
<source>Reports</source>
<note>No comment provided by engineer.</note>
@@ -7067,10 +7119,6 @@ It can happen because of some bug or when the connection is compromised.</source
<target>プロフィールは連絡先にしか共有されません。</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="The report will be archived for you." xml:space="preserve">
<source>The report will be archived for you.</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="The same conditions will apply to operator **%@**." xml:space="preserve">
<source>The same conditions will apply to operator **%@**.</source>
<note>No comment provided by engineer.</note>
@@ -840,6 +840,10 @@
<target>Alle profielen</target>
<note>profile dropdown</note>
</trans-unit>
<trans-unit id="All reports will be archived for you." xml:space="preserve">
<source>All reports will be archived for you.</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="All your contacts will remain connected." xml:space="preserve">
<source>All your contacts will remain connected.</source>
<target>Al uw contacten blijven verbonden.</target>
@@ -915,6 +919,10 @@
<target>Sta toe om verzonden berichten definitief te verwijderen. (24 uur)</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Allow to report messsages to moderators." xml:space="preserve">
<source>Allow to report messsages to moderators.</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Allow to send SimpleX links." xml:space="preserve">
<source>Allow to send SimpleX links.</source>
<target>Sta toe dat SimpleX-links worden verzonden.</target>
@@ -1080,6 +1088,14 @@
<target>Archief</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Archive %lld reports?" xml:space="preserve">
<source>Archive %lld reports?</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Archive all reports?" xml:space="preserve">
<source>Archive all reports?</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Archive and upload" xml:space="preserve">
<source>Archive and upload</source>
<target>Archiveren en uploaden</target>
@@ -1100,6 +1116,10 @@
<target>Rapport archiveren?</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Archive reports" xml:space="preserve">
<source>Archive reports</source>
<note>swipe action</note>
</trans-unit>
<trans-unit id="Archived contacts" xml:space="preserve">
<source>Archived contacts</source>
<target>Gearchiveerde contacten</target>
@@ -1657,6 +1677,10 @@
<target>Gesprek wissen?</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Clear group?" xml:space="preserve">
<source>Clear group?</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Clear or delete group?" xml:space="preserve">
<source>Clear or delete group?</source>
<target>Groep wissen of verwijderen?</target>
@@ -3732,6 +3756,10 @@ Dit is uw eigen eenmalige link!</target>
<target>Herstel wordt niet ondersteund door groepslid</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="For all moderators" xml:space="preserve">
<source>For all moderators</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="For chat profile %@:" xml:space="preserve">
<source>For chat profile %@:</source>
<target>Voor chatprofiel %@:</target>
@@ -3747,6 +3775,10 @@ Dit is uw eigen eenmalige link!</target>
<target>Als uw contactpersoon bijvoorbeeld berichten ontvangt via een SimpleX Chat-server, worden deze door uw app via een Flux-server verzonden.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="For me" xml:space="preserve">
<source>For me</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="For private routing" xml:space="preserve">
<source>For private routing</source>
<target>Voor privé-routering</target>
@@ -4693,6 +4725,10 @@ Dit is jouw link voor groep %@!</target>
<target>Lid inactief</target>
<note>item status text</note>
</trans-unit>
<trans-unit id="Member reports" xml:space="preserve">
<source>Member reports</source>
<note>chat feature</note>
</trans-unit>
<trans-unit id="Member role will be changed to &quot;%@&quot;. All chat members will be notified." xml:space="preserve">
<source>Member role will be changed to "%@". All chat members will be notified.</source>
<target>De rol van het lid wordt gewijzigd naar "%@". Alle chatleden worden op de hoogte gebracht.</target>
@@ -4728,6 +4764,10 @@ Dit is jouw link voor groep %@!</target>
<target>Groepsleden kunnen verzonden berichten onherroepelijk verwijderen. (24 uur)</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Members can report messsages to moderators." xml:space="preserve">
<source>Members can report messsages to moderators.</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Members can send SimpleX links." xml:space="preserve">
<source>Members can send SimpleX links.</source>
<target>Groepsleden kunnen SimpleX-links verzenden.</target>
@@ -5909,6 +5949,10 @@ Fout: %@</target>
<target>Berichten reacties verbieden.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Prohibit reporting messages to moderators." xml:space="preserve">
<source>Prohibit reporting messages to moderators.</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Prohibit sending SimpleX links." xml:space="preserve">
<source>Prohibit sending SimpleX links.</source>
<target>Verbied het verzenden van SimpleX-links</target>
@@ -6314,6 +6358,14 @@ Schakel dit in in *Netwerk en servers*-instellingen.</target>
<target>Rapporteer overtreding: alleen groepsmoderators kunnen dit zien.</target>
<note>report reason</note>
</trans-unit>
<trans-unit id="Report: (text.isEmpty ? reason.text : text)" xml:space="preserve">
<source>Report: (text.isEmpty ? reason.text : text)</source>
<note>report in notification</note>
</trans-unit>
<trans-unit id="Reporting messages to moderators is prohibited." xml:space="preserve">
<source>Reporting messages to moderators is prohibited.</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Reports" xml:space="preserve">
<source>Reports</source>
<target>Rapporten</target>
@@ -7654,11 +7706,6 @@ Het kan gebeuren vanwege een bug of wanneer de verbinding is aangetast.</target>
<target>Het profiel wordt alleen gedeeld met uw contacten.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="The report will be archived for you." xml:space="preserve">
<source>The report will be archived for you.</source>
<target>Het rapport wordt voor u gearchiveerd.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="The same conditions will apply to operator **%@**." xml:space="preserve">
<source>The same conditions will apply to operator **%@**.</source>
<target>Dezelfde voorwaarden gelden voor operator **%@**.</target>
@@ -838,6 +838,10 @@
<target>Wszystkie profile</target>
<note>profile dropdown</note>
</trans-unit>
<trans-unit id="All reports will be archived for you." xml:space="preserve">
<source>All reports will be archived for you.</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="All your contacts will remain connected." xml:space="preserve">
<source>All your contacts will remain connected.</source>
<target>Wszystkie Twoje kontakty pozostaną połączone.</target>
@@ -913,6 +917,10 @@
<target>Zezwól na nieodwracalne usunięcie wysłanych wiadomości. (24 godziny)</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Allow to report messsages to moderators." xml:space="preserve">
<source>Allow to report messsages to moderators.</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Allow to send SimpleX links." xml:space="preserve">
<source>Allow to send SimpleX links.</source>
<target>Zezwól na wysyłanie linków SimpleX.</target>
@@ -1075,6 +1083,14 @@
<source>Archive</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Archive %lld reports?" xml:space="preserve">
<source>Archive %lld reports?</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Archive all reports?" xml:space="preserve">
<source>Archive all reports?</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Archive and upload" xml:space="preserve">
<source>Archive and upload</source>
<target>Archiwizuj i prześlij</target>
@@ -1093,6 +1109,10 @@
<source>Archive report?</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Archive reports" xml:space="preserve">
<source>Archive reports</source>
<note>swipe action</note>
</trans-unit>
<trans-unit id="Archived contacts" xml:space="preserve">
<source>Archived contacts</source>
<target>Zarchiwizowane kontakty</target>
@@ -1648,6 +1668,10 @@
<target>Wyczyścić rozmowę?</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Clear group?" xml:space="preserve">
<source>Clear group?</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Clear or delete group?" xml:space="preserve">
<source>Clear or delete group?</source>
<note>No comment provided by engineer.</note>
@@ -3678,6 +3702,10 @@ To jest twój jednorazowy link!</target>
<target>Naprawa nie jest obsługiwana przez członka grupy</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="For all moderators" xml:space="preserve">
<source>For all moderators</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="For chat profile %@:" xml:space="preserve">
<source>For chat profile %@:</source>
<note>servers error</note>
@@ -3691,6 +3719,10 @@ To jest twój jednorazowy link!</target>
<source>For example, if your contact receives messages via a SimpleX Chat server, your app will deliver them via a Flux server.</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="For me" xml:space="preserve">
<source>For me</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="For private routing" xml:space="preserve">
<source>For private routing</source>
<note>No comment provided by engineer.</note>
@@ -4620,6 +4652,10 @@ To jest twój link do grupy %@!</target>
<target>Członek nieaktywny</target>
<note>item status text</note>
</trans-unit>
<trans-unit id="Member reports" xml:space="preserve">
<source>Member reports</source>
<note>chat feature</note>
</trans-unit>
<trans-unit id="Member role will be changed to &quot;%@&quot;. All chat members will be notified." xml:space="preserve">
<source>Member role will be changed to "%@". All chat members will be notified.</source>
<note>No comment provided by engineer.</note>
@@ -4653,6 +4689,10 @@ To jest twój link do grupy %@!</target>
<target>Członkowie grupy mogą nieodwracalnie usuwać wysłane wiadomości. (24 godziny)</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Members can report messsages to moderators." xml:space="preserve">
<source>Members can report messsages to moderators.</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Members can send SimpleX links." xml:space="preserve">
<source>Members can send SimpleX links.</source>
<target>Członkowie grupy mogą wysyłać linki SimpleX.</target>
@@ -5801,6 +5841,10 @@ Błąd: %@</target>
<target>Zabroń reakcje wiadomości.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Prohibit reporting messages to moderators." xml:space="preserve">
<source>Prohibit reporting messages to moderators.</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Prohibit sending SimpleX links." xml:space="preserve">
<source>Prohibit sending SimpleX links.</source>
<target>Zabroń wysyłania linków SimpleX.</target>
@@ -6199,6 +6243,14 @@ Włącz w ustawianiach *Sieć i serwery* .</target>
<source>Report violation: only group moderators will see it.</source>
<note>report reason</note>
</trans-unit>
<trans-unit id="Report: (text.isEmpty ? reason.text : text)" xml:space="preserve">
<source>Report: (text.isEmpty ? reason.text : text)</source>
<note>report in notification</note>
</trans-unit>
<trans-unit id="Reporting messages to moderators is prohibited." xml:space="preserve">
<source>Reporting messages to moderators is prohibited.</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Reports" xml:space="preserve">
<source>Reports</source>
<note>No comment provided by engineer.</note>
@@ -7514,10 +7566,6 @@ Może się to zdarzyć z powodu jakiegoś błędu lub gdy połączenie jest skom
<target>Profil jest udostępniany tylko Twoim kontaktom.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="The report will be archived for you." xml:space="preserve">
<source>The report will be archived for you.</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="The same conditions will apply to operator **%@**." xml:space="preserve">
<source>The same conditions will apply to operator **%@**.</source>
<note>No comment provided by engineer.</note>
@@ -838,6 +838,10 @@
<target>Все профили</target>
<note>profile dropdown</note>
</trans-unit>
<trans-unit id="All reports will be archived for you." xml:space="preserve">
<source>All reports will be archived for you.</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="All your contacts will remain connected." xml:space="preserve">
<source>All your contacts will remain connected.</source>
<target>Все контакты, которые соединились через этот адрес, сохранятся.</target>
@@ -913,6 +917,10 @@
<target>Разрешить необратимо удалять отправленные сообщения. (24 часа)</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Allow to report messsages to moderators." xml:space="preserve">
<source>Allow to report messsages to moderators.</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Allow to send SimpleX links." xml:space="preserve">
<source>Allow to send SimpleX links.</source>
<target>Разрешить отправлять ссылки SimpleX.</target>
@@ -1077,6 +1085,14 @@
<target>Архивировать</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Archive %lld reports?" xml:space="preserve">
<source>Archive %lld reports?</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Archive all reports?" xml:space="preserve">
<source>Archive all reports?</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Archive and upload" xml:space="preserve">
<source>Archive and upload</source>
<target>Архивировать и загрузить</target>
@@ -1097,6 +1113,10 @@
<target>Архивировать отчет?</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Archive reports" xml:space="preserve">
<source>Archive reports</source>
<note>swipe action</note>
</trans-unit>
<trans-unit id="Archived contacts" xml:space="preserve">
<source>Archived contacts</source>
<target>Архивированные контакты</target>
@@ -1651,6 +1671,10 @@
<target>Очистить разговор?</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Clear group?" xml:space="preserve">
<source>Clear group?</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Clear or delete group?" xml:space="preserve">
<source>Clear or delete group?</source>
<note>No comment provided by engineer.</note>
@@ -3702,6 +3726,10 @@ This is your own one-time link!</source>
<target>Починка не поддерживается членом группы</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="For all moderators" xml:space="preserve">
<source>For all moderators</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="For chat profile %@:" xml:space="preserve">
<source>For chat profile %@:</source>
<target>Для профиля чата %@:</target>
@@ -3717,6 +3745,10 @@ This is your own one-time link!</source>
<target>Например, если Ваш контакт получает сообщения через сервер SimpleX Chat, Ваше приложение доставит их через сервер Flux.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="For me" xml:space="preserve">
<source>For me</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="For private routing" xml:space="preserve">
<source>For private routing</source>
<target>Для доставки сообщений</target>
@@ -4655,6 +4687,10 @@ This is your link for group %@!</source>
<target>Член неактивен</target>
<note>item status text</note>
</trans-unit>
<trans-unit id="Member reports" xml:space="preserve">
<source>Member reports</source>
<note>chat feature</note>
</trans-unit>
<trans-unit id="Member role will be changed to &quot;%@&quot;. All chat members will be notified." xml:space="preserve">
<source>Member role will be changed to "%@". All chat members will be notified.</source>
<target>Роль участника будет изменена на "%@". Все участники разговора получат уведомление.</target>
@@ -4690,6 +4726,10 @@ This is your link for group %@!</source>
<target>Члены группы могут необратимо удалять отправленные сообщения. (24 часа)</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Members can report messsages to moderators." xml:space="preserve">
<source>Members can report messsages to moderators.</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Members can send SimpleX links." xml:space="preserve">
<source>Members can send SimpleX links.</source>
<target>Члены группы могут отправлять ссылки SimpleX.</target>
@@ -5859,6 +5899,10 @@ Error: %@</source>
<target>Запретить реакции на сообщения.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Prohibit reporting messages to moderators." xml:space="preserve">
<source>Prohibit reporting messages to moderators.</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Prohibit sending SimpleX links." xml:space="preserve">
<source>Prohibit sending SimpleX links.</source>
<target>Запретить отправку ссылок SimpleX.</target>
@@ -6257,6 +6301,14 @@ Enable in *Network &amp; servers* settings.</source>
<source>Report violation: only group moderators will see it.</source>
<note>report reason</note>
</trans-unit>
<trans-unit id="Report: (text.isEmpty ? reason.text : text)" xml:space="preserve">
<source>Report: (text.isEmpty ? reason.text : text)</source>
<note>report in notification</note>
</trans-unit>
<trans-unit id="Reporting messages to moderators is prohibited." xml:space="preserve">
<source>Reporting messages to moderators is prohibited.</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Reports" xml:space="preserve">
<source>Reports</source>
<note>No comment provided by engineer.</note>
@@ -7592,10 +7644,6 @@ It can happen because of some bug or when the connection is compromised.</source
<target>Профиль отправляется только Вашим контактам.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="The report will be archived for you." xml:space="preserve">
<source>The report will be archived for you.</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="The same conditions will apply to operator **%@**." xml:space="preserve">
<source>The same conditions will apply to operator **%@**.</source>
<target>Те же самые условия будут приняты для оператора **%@**.</target>
@@ -767,6 +767,10 @@
<source>All profiles</source>
<note>profile dropdown</note>
</trans-unit>
<trans-unit id="All reports will be archived for you." xml:space="preserve">
<source>All reports will be archived for you.</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="All your contacts will remain connected." xml:space="preserve">
<source>All your contacts will remain connected.</source>
<target>ผู้ติดต่อทั้งหมดของคุณจะยังคงเชื่อมต่ออยู่.</target>
@@ -838,6 +842,10 @@
<target>อนุญาตให้ลบข้อความที่ส่งไปแล้วอย่างถาวร</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Allow to report messsages to moderators." xml:space="preserve">
<source>Allow to report messsages to moderators.</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Allow to send SimpleX links." xml:space="preserve">
<source>Allow to send SimpleX links.</source>
<note>No comment provided by engineer.</note>
@@ -991,6 +999,14 @@
<source>Archive</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Archive %lld reports?" xml:space="preserve">
<source>Archive %lld reports?</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Archive all reports?" xml:space="preserve">
<source>Archive all reports?</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Archive and upload" xml:space="preserve">
<source>Archive and upload</source>
<note>No comment provided by engineer.</note>
@@ -1007,6 +1023,10 @@
<source>Archive report?</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Archive reports" xml:space="preserve">
<source>Archive reports</source>
<note>swipe action</note>
</trans-unit>
<trans-unit id="Archived contacts" xml:space="preserve">
<source>Archived contacts</source>
<note>No comment provided by engineer.</note>
@@ -1508,6 +1528,10 @@
<target>ลบการสนทนา?</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Clear group?" xml:space="preserve">
<source>Clear group?</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Clear or delete group?" xml:space="preserve">
<source>Clear or delete group?</source>
<note>No comment provided by engineer.</note>
@@ -3397,6 +3421,10 @@ This is your own one-time link!</source>
<target>การแก้ไขไม่สนับสนุนโดยสมาชิกกลุ่ม</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="For all moderators" xml:space="preserve">
<source>For all moderators</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="For chat profile %@:" xml:space="preserve">
<source>For chat profile %@:</source>
<note>servers error</note>
@@ -3410,6 +3438,10 @@ This is your own one-time link!</source>
<source>For example, if your contact receives messages via a SimpleX Chat server, your app will deliver them via a Flux server.</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="For me" xml:space="preserve">
<source>For me</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="For private routing" xml:space="preserve">
<source>For private routing</source>
<note>No comment provided by engineer.</note>
@@ -4282,6 +4314,10 @@ This is your link for group %@!</source>
<source>Member inactive</source>
<note>item status text</note>
</trans-unit>
<trans-unit id="Member reports" xml:space="preserve">
<source>Member reports</source>
<note>chat feature</note>
</trans-unit>
<trans-unit id="Member role will be changed to &quot;%@&quot;. All chat members will be notified." xml:space="preserve">
<source>Member role will be changed to "%@". All chat members will be notified.</source>
<note>No comment provided by engineer.</note>
@@ -4315,6 +4351,10 @@ This is your link for group %@!</source>
<target>สมาชิกกลุ่มสามารถลบข้อความที่ส่งแล้วอย่างถาวร</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Members can report messsages to moderators." xml:space="preserve">
<source>Members can report messsages to moderators.</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Members can send SimpleX links." xml:space="preserve">
<source>Members can send SimpleX links.</source>
<note>No comment provided by engineer.</note>
@@ -5379,6 +5419,10 @@ Error: %@</source>
<target>ห้ามแสดงปฏิกิริยาต่อข้อความ</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Prohibit reporting messages to moderators." xml:space="preserve">
<source>Prohibit reporting messages to moderators.</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Prohibit sending SimpleX links." xml:space="preserve">
<source>Prohibit sending SimpleX links.</source>
<note>No comment provided by engineer.</note>
@@ -5746,6 +5790,14 @@ Enable in *Network &amp; servers* settings.</source>
<source>Report violation: only group moderators will see it.</source>
<note>report reason</note>
</trans-unit>
<trans-unit id="Report: (text.isEmpty ? reason.text : text)" xml:space="preserve">
<source>Report: (text.isEmpty ? reason.text : text)</source>
<note>report in notification</note>
</trans-unit>
<trans-unit id="Reporting messages to moderators is prohibited." xml:space="preserve">
<source>Reporting messages to moderators is prohibited.</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Reports" xml:space="preserve">
<source>Reports</source>
<note>No comment provided by engineer.</note>
@@ -6970,10 +7022,6 @@ It can happen because of some bug or when the connection is compromised.</source
<target>โปรไฟล์นี้แชร์กับผู้ติดต่อของคุณเท่านั้น</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="The report will be archived for you." xml:space="preserve">
<source>The report will be archived for you.</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="The same conditions will apply to operator **%@**." xml:space="preserve">
<source>The same conditions will apply to operator **%@**.</source>
<note>No comment provided by engineer.</note>
@@ -833,6 +833,10 @@
<target>Tüm Profiller</target>
<note>profile dropdown</note>
</trans-unit>
<trans-unit id="All reports will be archived for you." xml:space="preserve">
<source>All reports will be archived for you.</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="All your contacts will remain connected." xml:space="preserve">
<source>All your contacts will remain connected.</source>
<target>Konuştuğun kişilerin tümü bağlı kalacaktır.</target>
@@ -908,6 +912,10 @@
<target>Gönderilen mesajların kalıcı olarak silinmesine izin ver. (24 saat içinde)</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Allow to report messsages to moderators." xml:space="preserve">
<source>Allow to report messsages to moderators.</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Allow to send SimpleX links." xml:space="preserve">
<source>Allow to send SimpleX links.</source>
<target>SimpleX bağlantıları göndilmesine izin ver.</target>
@@ -1070,6 +1078,14 @@
<source>Archive</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Archive %lld reports?" xml:space="preserve">
<source>Archive %lld reports?</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Archive all reports?" xml:space="preserve">
<source>Archive all reports?</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Archive and upload" xml:space="preserve">
<source>Archive and upload</source>
<target>Arşivle ve yükle</target>
@@ -1088,6 +1104,10 @@
<source>Archive report?</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Archive reports" xml:space="preserve">
<source>Archive reports</source>
<note>swipe action</note>
</trans-unit>
<trans-unit id="Archived contacts" xml:space="preserve">
<source>Archived contacts</source>
<target>Arşivli kişiler</target>
@@ -1642,6 +1662,10 @@
<target>Sohbet temizlensin mi?</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Clear group?" xml:space="preserve">
<source>Clear group?</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Clear or delete group?" xml:space="preserve">
<source>Clear or delete group?</source>
<note>No comment provided by engineer.</note>
@@ -3692,6 +3716,10 @@ Bu senin kendi tek kullanımlık bağlantın!</target>
<target>Düzeltme grup üyesi tarafından desteklenmiyor</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="For all moderators" xml:space="preserve">
<source>For all moderators</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="For chat profile %@:" xml:space="preserve">
<source>For chat profile %@:</source>
<target>Sohbet profili için %@:</target>
@@ -3707,6 +3735,10 @@ Bu senin kendi tek kullanımlık bağlantın!</target>
<target>Örneğin, eğer kişiniz SimpleX Sohbet sunucusundan mesajları alıyorsa, uygulamanız bu mesajları Flux sunucusundan iletecektir.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="For me" xml:space="preserve">
<source>For me</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="For private routing" xml:space="preserve">
<source>For private routing</source>
<target>Gizli yönlendirme için</target>
@@ -4646,6 +4678,10 @@ Bu senin grup için bağlantın %@!</target>
<target>Üye inaktif</target>
<note>item status text</note>
</trans-unit>
<trans-unit id="Member reports" xml:space="preserve">
<source>Member reports</source>
<note>chat feature</note>
</trans-unit>
<trans-unit id="Member role will be changed to &quot;%@&quot;. All chat members will be notified." xml:space="preserve">
<source>Member role will be changed to "%@". All chat members will be notified.</source>
<target>Üye rolü "%@" olarak değiştirilecektir. Tüm sohbet üyeleri bilgilendirilecektir.</target>
@@ -4680,6 +4716,10 @@ Bu senin grup için bağlantın %@!</target>
<target>Grup üyeleri, gönderilen mesajları kalıcı olarak silebilir. (24 saat içinde)</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Members can report messsages to moderators." xml:space="preserve">
<source>Members can report messsages to moderators.</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Members can send SimpleX links." xml:space="preserve">
<source>Members can send SimpleX links.</source>
<target>Grup üyeleri SimpleX bağlantıları gönderebilir.</target>
@@ -5828,6 +5868,10 @@ Hata: %@</target>
<target>Mesajlarda tepkileri yasakla.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Prohibit reporting messages to moderators." xml:space="preserve">
<source>Prohibit reporting messages to moderators.</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Prohibit sending SimpleX links." xml:space="preserve">
<source>Prohibit sending SimpleX links.</source>
<target>SimpleX bağlantısı gönderimini yasakla.</target>
@@ -6226,6 +6270,14 @@ Enable in *Network &amp; servers* settings.</source>
<source>Report violation: only group moderators will see it.</source>
<note>report reason</note>
</trans-unit>
<trans-unit id="Report: (text.isEmpty ? reason.text : text)" xml:space="preserve">
<source>Report: (text.isEmpty ? reason.text : text)</source>
<note>report in notification</note>
</trans-unit>
<trans-unit id="Reporting messages to moderators is prohibited." xml:space="preserve">
<source>Reporting messages to moderators is prohibited.</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Reports" xml:space="preserve">
<source>Reports</source>
<note>No comment provided by engineer.</note>
@@ -7544,10 +7596,6 @@ Bazı hatalar nedeniyle veya bağlantı tehlikeye girdiğinde meydana gelebilir.
<target>Profil sadece kişilerinle paylaşılacak.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="The report will be archived for you." xml:space="preserve">
<source>The report will be archived for you.</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="The same conditions will apply to operator **%@**." xml:space="preserve">
<source>The same conditions will apply to operator **%@**.</source>
<note>No comment provided by engineer.</note>
@@ -833,6 +833,10 @@
<target>Всі профілі</target>
<note>profile dropdown</note>
</trans-unit>
<trans-unit id="All reports will be archived for you." xml:space="preserve">
<source>All reports will be archived for you.</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="All your contacts will remain connected." xml:space="preserve">
<source>All your contacts will remain connected.</source>
<target>Всі ваші контакти залишаться на зв'язку.</target>
@@ -908,6 +912,10 @@
<target>Дозволяє безповоротно видаляти надіслані повідомлення. (24 години)</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Allow to report messsages to moderators." xml:space="preserve">
<source>Allow to report messsages to moderators.</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Allow to send SimpleX links." xml:space="preserve">
<source>Allow to send SimpleX links.</source>
<target>Дозволити надсилати посилання SimpleX.</target>
@@ -1070,6 +1078,14 @@
<source>Archive</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Archive %lld reports?" xml:space="preserve">
<source>Archive %lld reports?</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Archive all reports?" xml:space="preserve">
<source>Archive all reports?</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Archive and upload" xml:space="preserve">
<source>Archive and upload</source>
<target>Архівування та завантаження</target>
@@ -1088,6 +1104,10 @@
<source>Archive report?</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Archive reports" xml:space="preserve">
<source>Archive reports</source>
<note>swipe action</note>
</trans-unit>
<trans-unit id="Archived contacts" xml:space="preserve">
<source>Archived contacts</source>
<target>Архівні контакти</target>
@@ -1642,6 +1662,10 @@
<target>Відверта розмова?</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Clear group?" xml:space="preserve">
<source>Clear group?</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Clear or delete group?" xml:space="preserve">
<source>Clear or delete group?</source>
<note>No comment provided by engineer.</note>
@@ -3693,6 +3717,10 @@ This is your own one-time link!</source>
<target>Виправлення не підтримується учасником групи</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="For all moderators" xml:space="preserve">
<source>For all moderators</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="For chat profile %@:" xml:space="preserve">
<source>For chat profile %@:</source>
<target>Для профілю чату %@:</target>
@@ -3708,6 +3736,10 @@ This is your own one-time link!</source>
<target>Наприклад, якщо ваш контакт отримує повідомлення через сервер SimpleX Chat, ваш додаток доставлятиме їх через сервер Flux.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="For me" xml:space="preserve">
<source>For me</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="For private routing" xml:space="preserve">
<source>For private routing</source>
<target>Для приватної маршрутизації</target>
@@ -4647,6 +4679,10 @@ This is your link for group %@!</source>
<target>Користувач неактивний</target>
<note>item status text</note>
</trans-unit>
<trans-unit id="Member reports" xml:space="preserve">
<source>Member reports</source>
<note>chat feature</note>
</trans-unit>
<trans-unit id="Member role will be changed to &quot;%@&quot;. All chat members will be notified." xml:space="preserve">
<source>Member role will be changed to "%@". All chat members will be notified.</source>
<target>Роль учасника буде змінено на "%@". Усі учасники чату отримають сповіщення.</target>
@@ -4682,6 +4718,10 @@ This is your link for group %@!</source>
<target>Учасники групи можуть безповоротно видаляти надіслані повідомлення. (24 години)</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Members can report messsages to moderators." xml:space="preserve">
<source>Members can report messsages to moderators.</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Members can send SimpleX links." xml:space="preserve">
<source>Members can send SimpleX links.</source>
<target>Учасники групи можуть надсилати посилання SimpleX.</target>
@@ -5851,6 +5891,10 @@ Error: %@</source>
<target>Заборонити реакції на повідомлення.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Prohibit reporting messages to moderators." xml:space="preserve">
<source>Prohibit reporting messages to moderators.</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Prohibit sending SimpleX links." xml:space="preserve">
<source>Prohibit sending SimpleX links.</source>
<target>Заборонити надсилання посилань SimpleX.</target>
@@ -6249,6 +6293,14 @@ Enable in *Network &amp; servers* settings.</source>
<source>Report violation: only group moderators will see it.</source>
<note>report reason</note>
</trans-unit>
<trans-unit id="Report: (text.isEmpty ? reason.text : text)" xml:space="preserve">
<source>Report: (text.isEmpty ? reason.text : text)</source>
<note>report in notification</note>
</trans-unit>
<trans-unit id="Reporting messages to moderators is prohibited." xml:space="preserve">
<source>Reporting messages to moderators is prohibited.</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Reports" xml:space="preserve">
<source>Reports</source>
<note>No comment provided by engineer.</note>
@@ -7584,10 +7636,6 @@ It can happen because of some bug or when the connection is compromised.</source
<target>Профіль доступний лише вашим контактам.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="The report will be archived for you." xml:space="preserve">
<source>The report will be archived for you.</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="The same conditions will apply to operator **%@**." xml:space="preserve">
<source>The same conditions will apply to operator **%@**.</source>
<target>Такі ж умови діятимуть і для оператора **%@**.</target>
@@ -811,6 +811,10 @@
<target>所有配置文件</target>
<note>profile dropdown</note>
</trans-unit>
<trans-unit id="All reports will be archived for you." xml:space="preserve">
<source>All reports will be archived for you.</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="All your contacts will remain connected." xml:space="preserve">
<source>All your contacts will remain connected.</source>
<target>所有联系人会保持连接。</target>
@@ -886,6 +890,10 @@
<target>允许不可撤回地删除已发送消息</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Allow to report messsages to moderators." xml:space="preserve">
<source>Allow to report messsages to moderators.</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Allow to send SimpleX links." xml:space="preserve">
<source>Allow to send SimpleX links.</source>
<target>允许发送 SimpleX 链接。</target>
@@ -1047,6 +1055,14 @@
<source>Archive</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Archive %lld reports?" xml:space="preserve">
<source>Archive %lld reports?</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Archive all reports?" xml:space="preserve">
<source>Archive all reports?</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Archive and upload" xml:space="preserve">
<source>Archive and upload</source>
<target>存档和上传</target>
@@ -1065,6 +1081,10 @@
<source>Archive report?</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Archive reports" xml:space="preserve">
<source>Archive reports</source>
<note>swipe action</note>
</trans-unit>
<trans-unit id="Archived contacts" xml:space="preserve">
<source>Archived contacts</source>
<target>已存档的联系人</target>
@@ -1602,6 +1622,10 @@
<target>清除对话吗?</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Clear group?" xml:space="preserve">
<source>Clear group?</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Clear or delete group?" xml:space="preserve">
<source>Clear or delete group?</source>
<note>No comment provided by engineer.</note>
@@ -3618,6 +3642,10 @@ This is your own one-time link!</source>
<target>修复群组成员不支持的问题</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="For all moderators" xml:space="preserve">
<source>For all moderators</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="For chat profile %@:" xml:space="preserve">
<source>For chat profile %@:</source>
<note>servers error</note>
@@ -3631,6 +3659,10 @@ This is your own one-time link!</source>
<source>For example, if your contact receives messages via a SimpleX Chat server, your app will deliver them via a Flux server.</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="For me" xml:space="preserve">
<source>For me</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="For private routing" xml:space="preserve">
<source>For private routing</source>
<note>No comment provided by engineer.</note>
@@ -4555,6 +4587,10 @@ This is your link for group %@!</source>
<target>成员不活跃</target>
<note>item status text</note>
</trans-unit>
<trans-unit id="Member reports" xml:space="preserve">
<source>Member reports</source>
<note>chat feature</note>
</trans-unit>
<trans-unit id="Member role will be changed to &quot;%@&quot;. All chat members will be notified." xml:space="preserve">
<source>Member role will be changed to "%@". All chat members will be notified.</source>
<note>No comment provided by engineer.</note>
@@ -4588,6 +4624,10 @@ This is your link for group %@!</source>
<target>群组成员可以不可撤回地删除已发送的消息</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Members can report messsages to moderators." xml:space="preserve">
<source>Members can report messsages to moderators.</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Members can send SimpleX links." xml:space="preserve">
<source>Members can send SimpleX links.</source>
<target>群成员可发送 SimpleX 链接。</target>
@@ -5725,6 +5765,10 @@ Error: %@</source>
<target>禁止消息回应。</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Prohibit reporting messages to moderators." xml:space="preserve">
<source>Prohibit reporting messages to moderators.</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Prohibit sending SimpleX links." xml:space="preserve">
<source>Prohibit sending SimpleX links.</source>
<target>禁止发送 SimpleX 链接。</target>
@@ -6121,6 +6165,14 @@ Enable in *Network &amp; servers* settings.</source>
<source>Report violation: only group moderators will see it.</source>
<note>report reason</note>
</trans-unit>
<trans-unit id="Report: (text.isEmpty ? reason.text : text)" xml:space="preserve">
<source>Report: (text.isEmpty ? reason.text : text)</source>
<note>report in notification</note>
</trans-unit>
<trans-unit id="Reporting messages to moderators is prohibited." xml:space="preserve">
<source>Reporting messages to moderators is prohibited.</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Reports" xml:space="preserve">
<source>Reports</source>
<note>No comment provided by engineer.</note>
@@ -7427,10 +7479,6 @@ It can happen because of some bug or when the connection is compromised.</source
<target>该资料仅与您的联系人共享。</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="The report will be archived for you." xml:space="preserve">
<source>The report will be archived for you.</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="The same conditions will apply to operator **%@**." xml:space="preserve">
<source>The same conditions will apply to operator **%@**.</source>
<note>No comment provided by engineer.</note>
+18 -18
View File
@@ -179,8 +179,8 @@
64C3B0212A0D359700E19930 /* CustomTimePicker.swift in Sources */ = {isa = PBXBuildFile; fileRef = 64C3B0202A0D359700E19930 /* CustomTimePicker.swift */; };
64C8299D2D54AEEE006B9E89 /* libgmp.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 64C829982D54AEED006B9E89 /* libgmp.a */; };
64C8299E2D54AEEE006B9E89 /* libffi.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 64C829992D54AEEE006B9E89 /* libffi.a */; };
64C8299F2D54AEEE006B9E89 /* libHSsimplex-chat-6.3.0.3-2g9X994zhsoKwinyJQVzkZ-ghc9.6.3.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 64C8299A2D54AEEE006B9E89 /* libHSsimplex-chat-6.3.0.3-2g9X994zhsoKwinyJQVzkZ-ghc9.6.3.a */; };
64C829A02D54AEEE006B9E89 /* libHSsimplex-chat-6.3.0.3-2g9X994zhsoKwinyJQVzkZ.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 64C8299B2D54AEEE006B9E89 /* libHSsimplex-chat-6.3.0.3-2g9X994zhsoKwinyJQVzkZ.a */; };
64C8299F2D54AEEE006B9E89 /* libHSsimplex-chat-6.3.0.4-4btgYWZNeX12ojCzRaHJ3W-ghc9.6.3.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 64C8299A2D54AEEE006B9E89 /* libHSsimplex-chat-6.3.0.4-4btgYWZNeX12ojCzRaHJ3W-ghc9.6.3.a */; };
64C829A02D54AEEE006B9E89 /* libHSsimplex-chat-6.3.0.4-4btgYWZNeX12ojCzRaHJ3W.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 64C8299B2D54AEEE006B9E89 /* libHSsimplex-chat-6.3.0.4-4btgYWZNeX12ojCzRaHJ3W.a */; };
64C829A12D54AEEE006B9E89 /* libgmpxx.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 64C8299C2D54AEEE006B9E89 /* libgmpxx.a */; };
64D0C2C029F9688300B38D5F /* UserAddressView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 64D0C2BF29F9688300B38D5F /* UserAddressView.swift */; };
64D0C2C229FA57AB00B38D5F /* UserAddressLearnMore.swift in Sources */ = {isa = PBXBuildFile; fileRef = 64D0C2C129FA57AB00B38D5F /* UserAddressLearnMore.swift */; };
@@ -537,8 +537,8 @@
64C3B0202A0D359700E19930 /* CustomTimePicker.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CustomTimePicker.swift; sourceTree = "<group>"; };
64C829982D54AEED006B9E89 /* libgmp.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libgmp.a; sourceTree = "<group>"; };
64C829992D54AEEE006B9E89 /* libffi.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libffi.a; sourceTree = "<group>"; };
64C8299A2D54AEEE006B9E89 /* libHSsimplex-chat-6.3.0.3-2g9X994zhsoKwinyJQVzkZ-ghc9.6.3.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = "libHSsimplex-chat-6.3.0.3-2g9X994zhsoKwinyJQVzkZ-ghc9.6.3.a"; sourceTree = "<group>"; };
64C8299B2D54AEEE006B9E89 /* libHSsimplex-chat-6.3.0.3-2g9X994zhsoKwinyJQVzkZ.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = "libHSsimplex-chat-6.3.0.3-2g9X994zhsoKwinyJQVzkZ.a"; sourceTree = "<group>"; };
64C8299A2D54AEEE006B9E89 /* libHSsimplex-chat-6.3.0.4-4btgYWZNeX12ojCzRaHJ3W-ghc9.6.3.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = "libHSsimplex-chat-6.3.0.4-4btgYWZNeX12ojCzRaHJ3W-ghc9.6.3.a"; sourceTree = "<group>"; };
64C8299B2D54AEEE006B9E89 /* libHSsimplex-chat-6.3.0.4-4btgYWZNeX12ojCzRaHJ3W.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = "libHSsimplex-chat-6.3.0.4-4btgYWZNeX12ojCzRaHJ3W.a"; sourceTree = "<group>"; };
64C8299C2D54AEEE006B9E89 /* libgmpxx.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libgmpxx.a; sourceTree = "<group>"; };
64D0C2BF29F9688300B38D5F /* UserAddressView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UserAddressView.swift; sourceTree = "<group>"; };
64D0C2C129FA57AB00B38D5F /* UserAddressLearnMore.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UserAddressLearnMore.swift; sourceTree = "<group>"; };
@@ -690,8 +690,8 @@
64C8299D2D54AEEE006B9E89 /* libgmp.a in Frameworks */,
64C8299E2D54AEEE006B9E89 /* libffi.a in Frameworks */,
64C829A12D54AEEE006B9E89 /* libgmpxx.a in Frameworks */,
64C8299F2D54AEEE006B9E89 /* libHSsimplex-chat-6.3.0.3-2g9X994zhsoKwinyJQVzkZ-ghc9.6.3.a in Frameworks */,
64C829A02D54AEEE006B9E89 /* libHSsimplex-chat-6.3.0.3-2g9X994zhsoKwinyJQVzkZ.a in Frameworks */,
64C8299F2D54AEEE006B9E89 /* libHSsimplex-chat-6.3.0.4-4btgYWZNeX12ojCzRaHJ3W-ghc9.6.3.a in Frameworks */,
64C829A02D54AEEE006B9E89 /* libHSsimplex-chat-6.3.0.4-4btgYWZNeX12ojCzRaHJ3W.a in Frameworks */,
CE38A29C2C3FCD72005ED185 /* SwiftyGif in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
@@ -772,8 +772,8 @@
64C829992D54AEEE006B9E89 /* libffi.a */,
64C829982D54AEED006B9E89 /* libgmp.a */,
64C8299C2D54AEEE006B9E89 /* libgmpxx.a */,
64C8299A2D54AEEE006B9E89 /* libHSsimplex-chat-6.3.0.3-2g9X994zhsoKwinyJQVzkZ-ghc9.6.3.a */,
64C8299B2D54AEEE006B9E89 /* libHSsimplex-chat-6.3.0.3-2g9X994zhsoKwinyJQVzkZ.a */,
64C8299A2D54AEEE006B9E89 /* libHSsimplex-chat-6.3.0.4-4btgYWZNeX12ojCzRaHJ3W-ghc9.6.3.a */,
64C8299B2D54AEEE006B9E89 /* libHSsimplex-chat-6.3.0.4-4btgYWZNeX12ojCzRaHJ3W.a */,
);
path = Libraries;
sourceTree = "<group>";
@@ -1957,7 +1957,7 @@
CLANG_TIDY_MISC_REDUNDANT_EXPRESSION = YES;
CODE_SIGN_ENTITLEMENTS = "SimpleX (iOS).entitlements";
CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 262;
CURRENT_PROJECT_VERSION = 263;
DEAD_CODE_STRIPPING = YES;
DEVELOPMENT_TEAM = 5NN7GUYB6T;
ENABLE_BITCODE = NO;
@@ -2006,7 +2006,7 @@
CLANG_TIDY_MISC_REDUNDANT_EXPRESSION = YES;
CODE_SIGN_ENTITLEMENTS = "SimpleX (iOS).entitlements";
CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 262;
CURRENT_PROJECT_VERSION = 263;
DEAD_CODE_STRIPPING = YES;
DEVELOPMENT_TEAM = 5NN7GUYB6T;
ENABLE_BITCODE = NO;
@@ -2047,7 +2047,7 @@
buildSettings = {
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 262;
CURRENT_PROJECT_VERSION = 263;
DEVELOPMENT_TEAM = 5NN7GUYB6T;
GENERATE_INFOPLIST_FILE = YES;
IPHONEOS_DEPLOYMENT_TARGET = 15.0;
@@ -2067,7 +2067,7 @@
buildSettings = {
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 262;
CURRENT_PROJECT_VERSION = 263;
DEVELOPMENT_TEAM = 5NN7GUYB6T;
GENERATE_INFOPLIST_FILE = YES;
IPHONEOS_DEPLOYMENT_TARGET = 15.0;
@@ -2092,7 +2092,7 @@
CODE_SIGN_ENTITLEMENTS = "SimpleX NSE/SimpleX NSE.entitlements";
CODE_SIGN_IDENTITY = "Apple Development";
CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 262;
CURRENT_PROJECT_VERSION = 263;
DEVELOPMENT_TEAM = 5NN7GUYB6T;
ENABLE_BITCODE = NO;
GCC_OPTIMIZATION_LEVEL = s;
@@ -2129,7 +2129,7 @@
CODE_SIGN_ENTITLEMENTS = "SimpleX NSE/SimpleX NSE.entitlements";
CODE_SIGN_IDENTITY = "Apple Development";
CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 262;
CURRENT_PROJECT_VERSION = 263;
DEVELOPMENT_TEAM = 5NN7GUYB6T;
ENABLE_BITCODE = NO;
ENABLE_CODE_COVERAGE = NO;
@@ -2166,7 +2166,7 @@
CLANG_TIDY_BUGPRONE_REDUNDANT_BRANCH_CONDITION = YES;
CLANG_TIDY_MISC_REDUNDANT_EXPRESSION = YES;
CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 262;
CURRENT_PROJECT_VERSION = 263;
DEFINES_MODULE = YES;
DEVELOPMENT_TEAM = 5NN7GUYB6T;
DYLIB_COMPATIBILITY_VERSION = 1;
@@ -2217,7 +2217,7 @@
CLANG_TIDY_BUGPRONE_REDUNDANT_BRANCH_CONDITION = YES;
CLANG_TIDY_MISC_REDUNDANT_EXPRESSION = YES;
CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 262;
CURRENT_PROJECT_VERSION = 263;
DEFINES_MODULE = YES;
DEVELOPMENT_TEAM = 5NN7GUYB6T;
DYLIB_COMPATIBILITY_VERSION = 1;
@@ -2268,7 +2268,7 @@
CLANG_CXX_LANGUAGE_STANDARD = "gnu++20";
CODE_SIGN_ENTITLEMENTS = "SimpleX SE/SimpleX SE.entitlements";
CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 262;
CURRENT_PROJECT_VERSION = 263;
DEVELOPMENT_TEAM = 5NN7GUYB6T;
ENABLE_USER_SCRIPT_SANDBOXING = YES;
GCC_C_LANGUAGE_STANDARD = gnu17;
@@ -2302,7 +2302,7 @@
CLANG_CXX_LANGUAGE_STANDARD = "gnu++20";
CODE_SIGN_ENTITLEMENTS = "SimpleX SE/SimpleX SE.entitlements";
CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 262;
CURRENT_PROJECT_VERSION = 263;
DEVELOPMENT_TEAM = 5NN7GUYB6T;
ENABLE_USER_SCRIPT_SANDBOXING = YES;
GCC_C_LANGUAGE_STANDARD = gnu17;
+6 -2
View File
@@ -3523,8 +3523,12 @@ extension MsgReaction: Decodable {
let type = try container.decode(String.self, forKey: CodingKeys.type)
switch type {
case "emoji":
let emoji = try container.decode(MREmojiChar.self, forKey: CodingKeys.emoji)
self = .emoji(emoji: emoji)
do {
let emoji = try container.decode(MREmojiChar.self, forKey: CodingKeys.emoji)
self = .emoji(emoji: emoji)
} catch {
self = .unknown(type: "emoji")
}
default:
self = .unknown(type: type)
}
@@ -3311,7 +3311,7 @@ sealed class MsgReaction {
MREmojiChar.Heart -> "❤️"
else -> emoji.value
}
is Unknown -> ""
is Unknown -> "?"
}
companion object {
@@ -3341,8 +3341,13 @@ object MsgReactionSerializer : KSerializer<MsgReaction> {
return if (json is JsonObject && "type" in json) {
when(val t = json["type"]?.jsonPrimitive?.content ?: "") {
"emoji" -> {
val emoji = Json.decodeFromString<MREmojiChar>(json["emoji"].toString())
if (emoji == null) MsgReaction.Unknown(t, json) else MsgReaction.Emoji(emoji)
val msgReaction = try {
val emoji = Json.decodeFromString<MREmojiChar>(json["emoji"].toString())
MsgReaction.Emoji(emoji)
} catch (e: Throwable) {
MsgReaction.Unknown(t, json)
}
msgReaction
}
else -> MsgReaction.Unknown(t, json)
}
+4 -4
View File
@@ -24,11 +24,11 @@ android.nonTransitiveRClass=true
kotlin.mpp.androidSourceSetLayoutVersion=2
kotlin.jvm.target=11
android.version_name=6.3-beta.3
android.version_code=272
android.version_name=6.3-beta.4
android.version_code=273
desktop.version_name=6.3-beta.3
desktop.version_code=90
desktop.version_name=6.3-beta.4
desktop.version_code=91
kotlin.version=1.9.23
gradle.plugin.version=8.2.0
+1 -1
View File
@@ -12,7 +12,7 @@ constraints: zip +disable-bzip2 +disable-zstd
source-repository-package
type: git
location: https://github.com/simplex-chat/simplexmq.git
tag: bd97cb04495b90412c1300fd1a4862f488db85cb
tag: c192339af9e9342902731f2d49ff380359be0dec
source-repository-package
type: git
+1 -1
View File
@@ -1,5 +1,5 @@
{
"https://github.com/simplex-chat/simplexmq.git"."bd97cb04495b90412c1300fd1a4862f488db85cb" = "19i0r2b4kfkq2zlbmq134a0hk0vszhm6wdlfyp58d35zqrc0xadf";
"https://github.com/simplex-chat/simplexmq.git"."c192339af9e9342902731f2d49ff380359be0dec" = "1h81kmwllqza7wil7w20ia934b6iny3dch9fln0x95l9q3f4zww7";
"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";
+1 -1
View File
@@ -5,7 +5,7 @@ cabal-version: 1.12
-- see: https://github.com/sol/hpack
name: simplex-chat
version: 6.3.0.4
version: 6.3.0.5
category: Web, System, Services, Cryptography
homepage: https://github.com/simplex-chat/simplex-chat#readme
author: simplex.chat
+14 -10
View File
@@ -80,7 +80,7 @@ import Simplex.Chat.Store.Shared
import Simplex.Chat.Types
import Simplex.Chat.Types.Preferences
import Simplex.Chat.Types.Shared
import Simplex.Chat.Util (liftIOEither)
import Simplex.Chat.Util (liftIOEither, zipWith3')
import qualified Simplex.Chat.Util as U
import Simplex.FileTransfer.Description (FileDescriptionURI (..), maxFileSize, maxFileSizeHard)
import Simplex.Messaging.Agent as Agent
@@ -1893,6 +1893,12 @@ processChatCommand' vr = \case
pure CRBroadcastSent {user, msgContent = mc, successes = 0, failures = 0, timestamp}
Just (ctConns :: NonEmpty (Contact, Connection)) -> do
let idsEvts = L.map ctSndEvent ctConns
-- TODO Broadcast rework
-- In createNewSndMessage and encodeChatMessage we could use Nothing for sharedMsgId,
-- then we could reuse message body across broadcast.
-- Encoding different sharedMsgId and reusing body is meaningless as referencing will not work anyway.
-- As an improvement, single message record with its sharedMsgId could be created for new "broadcast" entity.
-- Then all recipients could refer to broadcast message using same sharedMsgId.
sndMsgs <- lift $ createSndMessages idsEvts
let msgReqs_ :: NonEmpty (Either ChatError ChatMsgReq) = L.zipWith (fmap . ctMsgReq) ctConns sndMsgs
(errs, ctSndMsgs :: [(Contact, SndMessage)]) <-
@@ -1909,9 +1915,7 @@ processChatCommand' vr = \case
ctSndEvent :: (Contact, Connection) -> (ConnOrGroupId, ChatMsgEvent 'Json)
ctSndEvent (_, Connection {connId}) = (ConnectionId connId, XMsgNew $ MCSimple (extMsgContent mc Nothing))
ctMsgReq :: (Contact, Connection) -> SndMessage -> ChatMsgReq
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
ctMsgReq (_, conn) SndMessage {msgId, msgBody} = (conn, MsgFlags {notification = hasNotification XMsgNew_}, (vrValue msgBody, [msgId]))
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
@@ -2662,7 +2666,7 @@ processChatCommand' vr = \case
ctMsgReq :: ChangedProfileContact -> Either ChatError SndMessage -> Either ChatError ChatMsgReq
ctMsgReq ChangedProfileContact {conn} =
fmap $ \SndMessage {msgId, msgBody} ->
(conn, MsgFlags {notification = hasNotification XInfo_}, msgBody, [msgId])
(conn, MsgFlags {notification = hasNotification XInfo_}, (vrValue msgBody, [msgId]))
updateContactPrefs :: User -> Contact -> Preferences -> CM ChatResponse
updateContactPrefs _ ct@Contact {activeConn = Nothing} _ = throwChatError $ CEContactNotActive ct
updateContactPrefs user@User {userId} ct@Contact {activeConn = Just Connection {customUserProfileId}, userPreferences = contactUserPrefs} contactUserPrefs'
@@ -2713,7 +2717,7 @@ processChatCommand' vr = \case
when (memberStatus membership == GSMemInvited) $ throwChatError (CEGroupNotJoined g)
when (memberRemoved membership) $ throwChatError CEGroupMemberUserRemoved
unless (memberActive membership) $ throwChatError CEGroupMemberNotActive
delGroupChatItemsForMembers :: User -> GroupInfo -> [GroupMember] -> [CChatItem CTGroup] -> CM ChatResponse
delGroupChatItemsForMembers :: User -> GroupInfo -> [GroupMember] -> [CChatItem 'CTGroup] -> CM ChatResponse
delGroupChatItemsForMembers user gInfo ms items = do
assertDeletable gInfo items
assertUserGroupRole gInfo GRAdmin -- TODO GRModerator when most users migrate
@@ -2723,8 +2727,8 @@ processChatCommand' vr = \case
delGroupChatItems user gInfo items True
where
assertDeletable :: GroupInfo -> [CChatItem 'CTGroup] -> CM ()
assertDeletable GroupInfo {membership = GroupMember {memberRole = membershipMemRole}} items =
unless (all itemDeletable items) $ throwChatError CEInvalidChatItemDelete
assertDeletable GroupInfo {membership = GroupMember {memberRole = membershipMemRole}} items' =
unless (all itemDeletable items') $ throwChatError CEInvalidChatItemDelete
where
itemDeletable :: CChatItem 'CTGroup -> Bool
itemDeletable (CChatItem _ ChatItem {chatDir, meta = CIMeta {itemSharedMsgId}}) =
@@ -3742,8 +3746,8 @@ chatCommandP =
"/_delete member item #" *> (APIDeleteMemberChatItem <$> A.decimal <*> _strP),
"/_archive reports #" *> (APIArchiveReceivedReports <$> A.decimal),
"/_delete reports #" *> (APIDeleteReceivedReports <$> A.decimal <*> _strP <*> _strP),
"/_reaction " *> (APIChatItemReaction <$> chatRefP <* A.space <*> A.decimal <* A.space <*> onOffP <* A.space <*> jsonP),
"/_reaction members " *> (APIGetReactionMembers <$> A.decimal <* " #" <*> A.decimal <* A.space <*> A.decimal <* A.space <*> jsonP),
"/_reaction " *> (APIChatItemReaction <$> chatRefP <* A.space <*> A.decimal <* A.space <*> onOffP <* A.space <*> (knownReaction <$?> jsonP)),
"/_reaction members " *> (APIGetReactionMembers <$> A.decimal <* " #" <*> A.decimal <* A.space <*> A.decimal <* A.space <*> (knownReaction <$?> jsonP)),
"/_forward plan " *> (APIPlanForwardChatItems <$> chatRefP <*> _strP),
"/_forward " *> (APIForwardChatItems <$> chatRefP <* A.space <*> chatRefP <*> _strP <*> sendMessageTTLP),
"/_read user " *> (APIUserRead <$> A.decimal),
+46 -34
View File
@@ -274,7 +274,7 @@ uniqueMsgMentions maxMentions mentions = go M.empty S.empty 0
go acc seen n (name : rest)
| n >= maxMentions = acc
| otherwise = case M.lookup name mentions of
Just mm@MsgMention {memberId} | S.notMember memberId seen ->
Just mm@MsgMention {memberId} | S.notMember memberId seen ->
go (M.insert name mm acc) (S.insert memberId seen) (n + 1) rest
_ -> go acc seen n rest
@@ -1312,7 +1312,7 @@ batchSendConnMessagesB _user conn msgFlags msgs_ = do
let batched_ = batchSndMessagesJSON msgs_
case L.nonEmpty batched_ of
Just batched' -> do
let msgReqs = L.map (fmap (msgBatchReq conn msgFlags)) batched'
let msgReqs = L.map (fmap msgBatchReq_) batched'
delivered <- deliverMessagesB msgReqs
let msgs' = concat $ L.zipWith flattenMsgs batched' delivered
pqEnc = findLastPQEnc delivered
@@ -1320,6 +1320,9 @@ batchSendConnMessagesB _user conn msgFlags msgs_ = do
pure (msgs', pqEnc)
Nothing -> pure ([], Nothing)
where
msgBatchReq_ :: MsgBatch -> ChatMsgReq
msgBatchReq_ (MsgBatch batchBody sndMsgs) =
(conn, msgFlags, (vrValue batchBody, map (\SndMessage {msgId} -> msgId) sndMsgs))
flattenMsgs :: Either ChatError MsgBatch -> Either ChatError ([Int64], PQEncryption) -> [Either ChatError SndMessage]
flattenMsgs (Right (MsgBatch _ sndMsgs)) (Right _) = map Right sndMsgs
flattenMsgs (Right (MsgBatch _ sndMsgs)) (Left ce) = replicate (length sndMsgs) (Left ce)
@@ -1330,9 +1333,6 @@ batchSendConnMessagesB _user conn msgFlags msgs_ = do
batchSndMessagesJSON :: NonEmpty (Either ChatError SndMessage) -> [Either ChatError MsgBatch]
batchSndMessagesJSON = batchMessages maxEncodedMsgLength . L.toList
msgBatchReq :: Connection -> MsgFlags -> MsgBatch -> ChatMsgReq
msgBatchReq conn msgFlags (MsgBatch batchBody sndMsgs) = (conn, msgFlags, batchBody, map (\SndMessage {msgId} -> msgId) sndMsgs)
encodeConnInfo :: MsgEncodingI e => ChatMsgEvent e -> CM ByteString
encodeConnInfo chatMsgEvent = do
vr <- chatVersionRange
@@ -1358,7 +1358,7 @@ deliverMessage conn cmEventTag msgBody msgId = do
deliverMessage' :: Connection -> MsgFlags -> MsgBody -> MessageId -> CM (Int64, PQEncryption)
deliverMessage' conn msgFlags msgBody msgId =
deliverMessages ((conn, msgFlags, msgBody, [msgId]) :| []) >>= \case
deliverMessages ((conn, msgFlags, (vrValue msgBody, [msgId])) :| []) >>= \case
r :| [] -> case r of
Right ([deliveryId], pqEnc) -> pure (deliveryId, pqEnc)
Right (deliveryIds, _) -> throwChatError $ CEInternalError $ "deliverMessage: expected 1 delivery id, got " <> show (length deliveryIds)
@@ -1366,45 +1366,45 @@ deliverMessage' conn msgFlags msgBody msgId =
rs -> throwChatError $ CEInternalError $ "deliverMessage: expected 1 result, got " <> show (length rs)
-- [MessageId] - SndMessage ids inside MsgBatch, or single message id
type ChatMsgReq = (Connection, MsgFlags, MsgBody, [MessageId])
type ChatMsgReq = (Connection, MsgFlags, (ValueOrRef MsgBody, [MessageId]))
deliverMessages :: NonEmpty ChatMsgReq -> CM (NonEmpty (Either ChatError ([Int64], PQEncryption)))
deliverMessages msgs = deliverMessagesB $ L.map Right msgs
deliverMessagesB :: NonEmpty (Either ChatError ChatMsgReq) -> CM (NonEmpty (Either ChatError ([Int64], PQEncryption)))
deliverMessagesB msgReqs = do
msgReqs' <- liftIO compressBodies
msgReqs' <- if any connSupportsPQ msgReqs then liftIO compressBodies else pure msgReqs
sent <- L.zipWith prepareBatch msgReqs' <$> withAgent (`sendMessagesB` snd (mapAccumL toAgent Nothing msgReqs'))
lift . void $ withStoreBatch' $ \db -> map (updatePQSndEnabled db) (rights . L.toList $ sent)
lift . withStoreBatch $ \db -> L.map (bindRight $ createDelivery db) sent
where
connSupportsPQ = \case
Right (Connection {pqSupport = PQSupportOn, connChatVersion = v}, _, _) -> v >= pqEncryptionCompressionVersion
_ -> False
compressBodies =
forME msgReqs $ \mr@(conn@Connection {pqSupport, connChatVersion = v}, msgFlags, msgBody, msgIds) ->
runExceptT $ case pqSupport of
-- we only compress messages when:
-- 1) PQ support is enabled
-- 2) version is compatible with compression
-- 3) message is longer than max compressed size (as this function is not used for batched messages anyway)
PQSupportOn | v >= pqEncryptionCompressionVersion && B.length msgBody > maxCompressedMsgLength -> do
forME msgReqs $ \(conn, msgFlags, (mbr, msgIds)) -> runExceptT $ do
mbr' <- case mbr of
VRValue i msgBody | B.length msgBody > maxCompressedMsgLength -> do
let msgBody' = compressedBatchMsgBody_ msgBody
when (B.length msgBody' > maxCompressedMsgLength) $ throwError $ ChatError $ CEException "large compressed message"
pure (conn, msgFlags, msgBody', msgIds)
_ -> pure mr
pure $ VRValue i msgBody'
v -> pure v
pure (conn, msgFlags, (mbr', msgIds))
toAgent prev = \case
Right (conn@Connection {connId, pqEncryption}, msgFlags, msgBody, _msgIds) ->
Right (conn@Connection {connId, pqEncryption}, msgFlags, (mbr, _msgIds)) ->
let cId = case prev of
Just prevId | prevId == connId -> ""
_ -> aConnId conn
in (Just connId, Right (cId, pqEncryption, msgFlags, msgBody))
in (Just connId, Right (cId, pqEncryption, msgFlags, mbr))
Left _ce -> (prev, Left (AP.INTERNAL "ChatError, skip")) -- as long as it is Left, the agent batchers should just step over it
prepareBatch (Right req) (Right ar) = Right (req, ar)
prepareBatch (Left ce) _ = Left ce -- restore original ChatError
prepareBatch _ (Left ae) = Left $ ChatErrorAgent ae Nothing
createDelivery :: DB.Connection -> (ChatMsgReq, (AgentMsgId, PQEncryption)) -> IO (Either ChatError ([Int64], PQEncryption))
createDelivery db ((Connection {connId}, _, _, msgIds), (agentMsgId, pqEnc')) = do
createDelivery db ((Connection {connId}, _, (_, msgIds)), (agentMsgId, pqEnc')) = do
Right . (,pqEnc') <$> mapM (createSndMsgDelivery db (SndMsgDelivery {connId, agentMsgId})) msgIds
updatePQSndEnabled :: DB.Connection -> (ChatMsgReq, (AgentMsgId, PQEncryption)) -> IO ()
updatePQSndEnabled db ((Connection {connId, pqSndEnabled}, _, _, _), (_, pqSndEnabled')) =
updatePQSndEnabled db ((Connection {connId, pqSndEnabled}, _, _), (_, pqSndEnabled')) =
case (pqSndEnabled, pqSndEnabled') of
(Just b, b') | b' /= b -> updatePQ
(Nothing, PQEncOn) -> updatePQ
@@ -1471,7 +1471,7 @@ sendGroupMessages_ _user gInfo@GroupInfo {groupId} members events = do
stored <- lift $ withStoreBatch (\db -> map (bindRight $ createPendingMsg db) pendingReqs)
when (length stored /= length pendingMemIds) $ logError "sendGroupMessages_: pendingMemIds and stored length mismatch"
-- Zip for easier access to results
let sentTo = zipWith3 (\mId mReq r -> (mId, fmap (\(_, _, _, msgIds) -> msgIds) mReq, r)) sendToMemIds msgReqs delivered
let sentTo = zipWith3 (\mId mReq r -> (mId, fmap (\(_, _, (_, msgIds)) -> msgIds) mReq, r)) sendToMemIds msgReqs delivered
pending = zipWith3 (\mId pReq r -> (mId, fmap snd pReq, r)) pendingMemIds pendingReqs stored
pure (sndMsgs_, GroupSndResult {sentTo, pending, forwarded})
where
@@ -1495,24 +1495,36 @@ sendGroupMessages_ _user gInfo@GroupInfo {groupId} members events = do
mId = groupMemberId' m
mIds' = S.insert mId mIds
prepareMsgReqs :: MsgFlags -> NonEmpty (Either ChatError SndMessage) -> [(GroupMember, Connection)] -> [(GroupMember, Connection)] -> ([GroupMemberId], [Either ChatError ChatMsgReq])
prepareMsgReqs msgFlags msgs_ toSendSeparate toSendBatched = do
let batched_ = batchSndMessagesJSON msgs_
prepareMsgReqs msgFlags msgs toSendSeparate toSendBatched = do
let batched_ = batchSndMessagesJSON msgs
case L.nonEmpty batched_ of
Just batched' -> do
let (memsSep, mreqsSep) = foldr' foldMsgs ([], []) toSendSeparate
(memsBtch, mreqsBtch) = foldr' (foldBatches batched') ([], []) toSendBatched
let lenMsgs = length msgs
(memsSep, mreqsSep) = foldMembers lenMsgs sndMessageMBR msgs toSendSeparate
(memsBtch, mreqsBtch) = foldMembers (length batched' + lenMsgs) msgBatchMBR batched' toSendBatched
(memsSep <> memsBtch, mreqsSep <> mreqsBtch)
Nothing -> ([], [])
where
foldMsgs :: (GroupMember, Connection) -> ([GroupMemberId], [Either ChatError ChatMsgReq]) -> ([GroupMemberId], [Either ChatError ChatMsgReq])
foldMsgs (GroupMember {groupMemberId}, conn) memIdsReqs =
foldr' (\msg_ (memIds, reqs) -> (groupMemberId : memIds, fmap sndMessageReq msg_ : reqs)) memIdsReqs msgs_
foldMembers :: forall a. Int -> (Maybe Int -> Int -> a -> (ValueOrRef MsgBody, [MessageId])) -> NonEmpty (Either ChatError a) -> [(GroupMember, Connection)] -> ([GroupMemberId], [Either ChatError ChatMsgReq])
foldMembers lastRef mkMb mbs mems = snd $ foldr' foldMsgBodies (lastMemIdx_, ([], [])) mems
where
sndMessageReq :: SndMessage -> ChatMsgReq
sndMessageReq SndMessage {msgId, msgBody} = (conn, msgFlags, msgBody, [msgId])
foldBatches :: NonEmpty (Either ChatError MsgBatch) -> (GroupMember, Connection) -> ([GroupMemberId], [Either ChatError ChatMsgReq]) -> ([GroupMemberId], [Either ChatError ChatMsgReq])
foldBatches batched' (GroupMember {groupMemberId}, conn) memIdsReqs =
foldr' (\batch_ (memIds, reqs) -> (groupMemberId : memIds, fmap (msgBatchReq conn msgFlags) batch_ : reqs)) memIdsReqs batched'
lastMemIdx_ = let len = length mems in if len > 1 then Just len else Nothing
foldMsgBodies :: (GroupMember, Connection) -> (Maybe Int, ([GroupMemberId], [Either ChatError ChatMsgReq])) -> (Maybe Int, ([GroupMemberId], [Either ChatError ChatMsgReq]))
foldMsgBodies (GroupMember {groupMemberId}, conn) (memIdx_, memIdsReqs) =
(subtract 1 <$> memIdx_,) $ snd $ foldr' addBody (lastRef, memIdsReqs) mbs
where
addBody :: Either ChatError a -> (Int, ([GroupMemberId], [Either ChatError ChatMsgReq])) -> (Int, ([GroupMemberId], [Either ChatError ChatMsgReq]))
addBody mb (i, (memIds, reqs)) =
let req = (conn,msgFlags,) . mkMb memIdx_ i <$> mb
in (i - 1, (groupMemberId : memIds, req : reqs))
sndMessageMBR :: Maybe Int -> Int -> SndMessage -> (ValueOrRef MsgBody, [MessageId])
sndMessageMBR memIdx_ i SndMessage {msgId, msgBody} = (vrValue_ memIdx_ i msgBody, [msgId])
msgBatchMBR :: Maybe Int -> Int -> MsgBatch -> (ValueOrRef MsgBody, [MessageId])
msgBatchMBR memIdx_ i (MsgBatch batchBody sndMsgs) = (vrValue_ memIdx_ i batchBody, map (\SndMessage {msgId} -> msgId) sndMsgs)
vrValue_ memIdx_ i v = case memIdx_ of
Nothing -> VRValue Nothing v -- sending to one member, do not reference bodies
Just 1 -> VRValue (Just i) v
Just _ -> VRRef i
preparePending :: NonEmpty (Either ChatError SndMessage) -> [GroupMember] -> ([GroupMemberId], [Either ChatError (GroupMemberId, MessageId)])
preparePending msgs_ =
foldr' foldMsgs ([], [])
+1 -1
View File
@@ -274,7 +274,7 @@ processAgentMsgSndFile _corrId aFileId msg = do
map (\fileDescr -> (conn, (connOrGroupId, XMsgFileDescr {msgId = sharedMsgId, fileDescr}))) (L.toList $ splitFileDescr partSize rfdText)
toMsgReq :: (Connection, (ConnOrGroupId, ChatMsgEvent 'Json)) -> SndMessage -> ChatMsgReq
toMsgReq (conn, _) SndMessage {msgId, msgBody} =
(conn, MsgFlags {notification = hasNotification XMsgFileDescr_}, msgBody, [msgId])
(conn, MsgFlags {notification = hasNotification XMsgFileDescr_}, (vrValue msgBody, [msgId]))
sendFileError :: FileError -> Text -> VersionRangeChat -> FileTransferMeta -> CM ()
sendFileError ferr err vr ft = do
logError $ "Sent file error: " <> err
+7
View File
@@ -425,6 +425,13 @@ data MsgReaction = MREmoji {emoji :: MREmojiChar} | MRUnknown {tag :: Text, json
emojiTag :: IsString a => a
emojiTag = "emoji"
knownReaction :: MsgReaction -> Either String MsgReaction
knownReaction = \case
r@MREmoji {} -> Right r
MRUnknown {} -> Left "unknown MsgReaction"
-- parseJSON for MsgReaction parses unknown emoji reactions as MRUnknown with type "emoji",
-- allowing to add new emojis in a backwards compatible way - UI shows them as ?
instance FromJSON MsgReaction where
parseJSON (J.Object v) = do
tag <- v .: "type"
@@ -15,6 +15,20 @@ SEARCH s USING INTEGER PRIMARY KEY (rowid=?)
SEARCH c USING INTEGER PRIMARY KEY (rowid=?)
SEARCH f USING INTEGER PRIMARY KEY (rowid=?)
Query:
SELECT
m.msg_type, m.msg_flags, m.msg_body, m.pq_encryption, m.internal_ts, m.internal_snd_id, s.previous_msg_hash,
s.retry_int_slow, s.retry_int_fast, s.msg_encrypt_key, s.padded_msg_len, sb.agent_msg
FROM messages m
JOIN snd_messages s ON s.conn_id = m.conn_id AND s.internal_id = m.internal_id
LEFT JOIN snd_message_bodies sb ON sb.snd_message_body_id = s.snd_message_body_id
WHERE m.conn_id = ? AND m.internal_id = ?
Plan:
SEARCH m USING PRIMARY KEY (conn_id=? AND internal_id=?)
SEARCH s USING PRIMARY KEY (conn_id=?)
SEARCH sb USING INTEGER PRIMARY KEY (rowid=?) LEFT-JOIN
Query:
SELECT
r.snd_file_chunk_replica_id, r.replica_id, r.replica_key, r.replica_status, r.delay, r.retries,
@@ -45,16 +59,6 @@ Query:
Plan:
SEARCH commands USING INDEX idx_commands_server_commands (host=? AND port=?)
Query:
SELECT m.msg_type, m.msg_flags, m.msg_body, m.pq_encryption, m.internal_ts, s.retry_int_slow, s.retry_int_fast
FROM messages m
JOIN snd_messages s ON s.conn_id = m.conn_id AND s.internal_id = m.internal_id
WHERE m.conn_id = ? AND m.internal_id = ?
Plan:
SEARCH m USING PRIMARY KEY (conn_id=? AND internal_id=?)
SEARCH s USING PRIMARY KEY (conn_id=?)
Query:
SELECT rcv_file_chunk_id, chunk_no, chunk_size, digest, tmp_path
FROM rcv_file_chunks
@@ -71,6 +75,17 @@ Query:
Plan:
SEARCH snd_file_chunks USING INDEX idx_snd_file_chunks_snd_file_id (snd_file_id=?)
Query:
DELETE FROM snd_message_bodies
WHERE NOT EXISTS (SELECT 1 FROM snd_messages WHERE snd_message_body_id = ?)
AND snd_message_body_id = ?
Plan:
SEARCH snd_message_bodies USING INTEGER PRIMARY KEY (rowid=?)
SCALAR SUBQUERY 1
SEARCH snd_messages USING COVERING INDEX idx_snd_messages_snd_message_body_id (snd_message_body_id=?)
SEARCH snd_messages USING COVERING INDEX idx_snd_messages_snd_message_body_id (snd_message_body_id=?)
Query:
SELECT
f.rcv_file_id, f.rcv_file_entity_id, f.user_id, c.rcv_file_chunk_id, c.chunk_no, c.chunk_size, c.digest, f.tmp_path, c.tmp_path,
@@ -184,6 +199,16 @@ SEARCH c USING INTEGER PRIMARY KEY (rowid=?)
SEARCH f USING INTEGER PRIMARY KEY (rowid=?)
USE TEMP B-TREE FOR ORDER BY
Query:
SELECT rcpt_status, snd_message_body_id FROM snd_messages
WHERE NOT EXISTS (SELECT 1 FROM snd_message_deliveries WHERE conn_id = ? AND internal_id = ? AND failed = 0)
AND conn_id = ? AND internal_id = ?
Plan:
SEARCH snd_messages USING PRIMARY KEY (conn_id=?)
SCALAR SUBQUERY 1
SEARCH snd_message_deliveries USING COVERING INDEX idx_snd_message_deliveries_expired (conn_id=?)
Query:
SELECT rcv_file_entity_id, user_id, size, digest, key, nonce, chunk_size, prefix_path, tmp_path, save_path, save_file_key, save_file_nonce, status, deleted, redirect_id, redirect_entity_id, redirect_size, redirect_digest
FROM rcv_files
@@ -512,9 +537,9 @@ Plan:
Query:
INSERT INTO snd_messages
( conn_id, internal_snd_id, internal_id, internal_hash, previous_msg_hash)
( conn_id, internal_snd_id, internal_id, internal_hash, previous_msg_hash, msg_encrypt_key, padded_msg_len, snd_message_body_id)
VALUES
(?,?,?,?,?)
(?,?,?,?,?,?,?,?)
Plan:
SEARCH messages USING COVERING INDEX idx_messages_conn_id_internal_snd_id (conn_id=? AND internal_snd_id=?)
@@ -861,6 +886,10 @@ Plan:
Query: INSERT INTO snd_files (snd_file_entity_id, user_id, path, src_file_key, src_file_nonce, num_recipients, prefix_path, key, nonce, status, redirect_size, redirect_digest) VALUES (?,?,?,?,?,?,?,?,?,?,?,?)
Plan:
Query: INSERT INTO snd_message_bodies (agent_msg) VALUES (?) RETURNING snd_message_body_id
Plan:
SEARCH snd_messages USING COVERING INDEX idx_snd_messages_snd_message_body_id (snd_message_body_id=?)
Query: INSERT INTO snd_message_deliveries (conn_id, snd_queue_id, internal_id) VALUES (?, ?, ?)
Plan:
@@ -893,9 +922,9 @@ Query: SELECT conn_id FROM connections WHERE user_id = ?
Plan:
SEARCH connections USING COVERING INDEX idx_connections_user (user_id=?)
Query: SELECT count(*) FROM snd_message_deliveries WHERE conn_id = ? AND internal_id = ? AND failed = 0
Query: SELECT count(1) FROM snd_message_bodies
Plan:
SEARCH snd_message_deliveries USING COVERING INDEX idx_snd_message_deliveries_expired (conn_id=?)
SCAN snd_message_bodies
Query: SELECT deleted FROM snd_files WHERE snd_file_id = ?
Plan:
@@ -921,10 +950,6 @@ Query: SELECT ratchet_state, x3dh_pub_key_1, x3dh_pub_key_2, pq_pub_kem FROM rat
Plan:
SEARCH ratchets USING PRIMARY KEY (conn_id=?)
Query: SELECT rcpt_internal_id, rcpt_status FROM snd_messages WHERE conn_id = ? AND internal_id = ?
Plan:
SEARCH snd_messages USING PRIMARY KEY (conn_id=?)
Query: SELECT rcv_file_id FROM rcv_files WHERE rcv_file_entity_id = ?
Plan:
SEARCH rcv_files USING COVERING INDEX sqlite_autoindex_rcv_files_1 (rcv_file_entity_id=?)
@@ -1089,6 +1114,10 @@ Query: UPDATE snd_messages SET retry_int_slow = ?, retry_int_fast = ? WHERE conn
Plan:
SEARCH snd_messages USING COVERING INDEX idx_snd_messages_conn_id_internal_id (conn_id=? AND internal_id=?)
Query: UPDATE snd_messages SET snd_message_body_id = NULL WHERE conn_id = ? AND internal_id = ?
Plan:
SEARCH snd_messages USING COVERING INDEX idx_snd_messages_conn_id_internal_id (conn_id=? AND internal_id=?)
Query: UPDATE snd_queues SET snd_primary = ? WHERE conn_id = ?
Plan:
SEARCH snd_queues USING COVERING INDEX idx_snd_queue_id (conn_id=?)
+5 -1
View File
@@ -4,7 +4,7 @@
{-# LANGUAGE TupleSections #-}
{-# OPTIONS_GHC -Wno-orphans #-}
module Simplex.Chat.Util (week, encryptFile, chunkSize, liftIOEither, shuffle) where
module Simplex.Chat.Util (week, encryptFile, chunkSize, liftIOEither, shuffle, zipWith3') where
import Control.Exception (Exception)
import Control.Monad
@@ -15,6 +15,7 @@ import Control.Monad.Reader
import Data.Bifunctor (first)
import qualified Data.ByteString.Lazy as LB
import Data.List (sortBy)
import Data.List.NonEmpty (NonEmpty (..))
import Data.Ord (comparing)
import Data.Time (NominalDiffTime)
import Data.Word (Word16)
@@ -52,6 +53,9 @@ shuffle xs = map snd . sortBy (comparing fst) <$> mapM (\x -> (,x) <$> random) x
random :: IO Word16
random = randomRIO (0, 65535)
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
liftIOEither :: (MonadIO m, MonadError e m) => IO (Either e a) -> m a
liftIOEither a = liftIO a >>= liftEither
{-# INLINE liftIOEither #-}
+11 -11
View File
@@ -259,13 +259,13 @@ createTestChat ps cfg opts@ChatOpts {coreOptions} dbPrefix profile = do
Right db@ChatDatabase {chatStore, agentStore} <- createDatabase ps coreOptions dbPrefix
insertUser agentStore
Right user <- withTransaction chatStore $ \db' -> runExceptT $ createUserRecord db' (AgentUserId 1) profile True
startTestChat_ db cfg opts user
startTestChat_ ps db cfg opts user
startTestChat :: TestParams -> ChatConfig -> ChatOpts -> String -> IO TestCC
startTestChat ps cfg opts@ChatOpts {coreOptions} dbPrefix = do
Right db@ChatDatabase {chatStore} <- createDatabase ps coreOptions dbPrefix
Just user <- find activeUser <$> withTransaction chatStore getUsers
startTestChat_ db cfg opts user
startTestChat_ ps db cfg opts user
createDatabase :: TestParams -> CoreChatOpts -> String -> IO (Either MigrationError ChatDatabase)
#if defined(dbPostgres)
@@ -282,8 +282,8 @@ insertUser :: DBStore -> IO ()
insertUser st = withTransaction st (`DB.execute_` "INSERT INTO users (user_id) VALUES (1)")
#endif
startTestChat_ :: ChatDatabase -> ChatConfig -> ChatOpts -> User -> IO TestCC
startTestChat_ db cfg opts user = do
startTestChat_ :: TestParams -> ChatDatabase -> ChatConfig -> ChatOpts -> User -> IO TestCC
startTestChat_ TestParams {printOutput} db cfg opts user = do
t <- withVirtualTerminal termSettings pure
ct <- newChatTerminal t opts
cc <- newChatController db (Just user) cfg opts False
@@ -292,7 +292,7 @@ startTestChat_ db cfg opts user = do
atomically . unless (maintenance opts) $ readTVar (agentAsync cc) >>= \a -> when (isNothing a) retry
termQ <- newTQueueIO
termAsync <- async $ readTerminalOutput t termQ
pure TestCC {chatController = cc, virtualTerminal = t, chatAsync, termAsync, termQ, printOutput = False}
pure TestCC {chatController = cc, virtualTerminal = t, chatAsync, termAsync, termQ, printOutput}
stopTestChat :: TestParams -> TestCC -> IO ()
stopTestChat ps TestCC {chatController = cc@ChatController {smpAgent, chatStore}, chatAsync, termAsync} = do
@@ -355,10 +355,10 @@ withTestChatOpts ps = withTestChatCfgOpts ps testCfg
withTestChatCfgOpts :: HasCallStack => TestParams -> ChatConfig -> ChatOpts -> String -> (HasCallStack => TestCC -> IO a) -> IO a
withTestChatCfgOpts ps cfg opts dbPrefix = bracket (startTestChat ps cfg opts dbPrefix) (\cc -> cc <// 100000 >> stopTestChat ps cc)
-- enable output for specific chat controller, use like this:
-- withNewTestChat tmp "alice" aliceProfile $ \a -> withTestOutput a $ \alice -> do ...
withTestOutput :: HasCallStack => TestCC -> (HasCallStack => TestCC -> IO a) -> IO a
withTestOutput cc runTest = runTest cc {printOutput = True}
-- enable output for specific test.
-- usage: withTestOutput $ testChat2 aliceProfile bobProfile $ \alice bob -> do ...
withTestOutput :: HasCallStack => (HasCallStack => TestParams -> IO ()) -> TestParams -> IO ()
withTestOutput test ps = test ps {printOutput = True}
readTerminalOutput :: VirtualTerminal -> TQueue String -> IO ()
readTerminalOutput t termQ = do
@@ -404,12 +404,12 @@ testChatN cfg opts ps test params = do
(<//) cc t = timeout t (getTermLine cc) `shouldReturn` Nothing
getTermLine :: HasCallStack => TestCC -> IO String
getTermLine cc =
getTermLine cc@TestCC {printOutput} =
5000000 `timeout` atomically (readTQueue $ termQ cc) >>= \case
Just s -> do
-- remove condition to always echo virtual terminal
-- when True $ do
when (printOutput cc) $ do
when printOutput $ do
name <- userName cc
putStrLn $ name <> ": " <> s
pure s
+2 -1
View File
@@ -1,5 +1,6 @@
module ChatTests.DBUtils.Postgres where
data TestParams = TestParams
{ tmpPath :: FilePath
{ tmpPath :: FilePath,
printOutput :: Bool
}
+1
View File
@@ -6,6 +6,7 @@ import Simplex.Messaging.TMap (TMap)
data TestParams = TestParams
{ tmpPath :: FilePath,
printOutput :: Bool,
chatQueryStats :: TMap Query SlowQueryStats,
agentQueryStats :: TMap Query SlowQueryStats
}
+109 -1
View File
@@ -83,6 +83,8 @@ chatGroupTests = do
it "send multiple messages api" testSendMulti
it "send multiple timed messages" testSendMultiTimed
it "send multiple messages (many chat batches)" testSendMultiManyBatches
xit'' "shared message body is reused" testSharedMessageBody
xit'' "shared batch body is reused" testSharedBatchBody
describe "async group connections" $ do
xit "create and join group when clients go offline" testGroupAsync
describe "group links" $ do
@@ -1602,7 +1604,7 @@ testGroupModerate =
testGroupModerateOwn :: HasCallStack => TestParams -> IO ()
testGroupModerateOwn =
testChat2 aliceProfile bobProfile $
withTestOutput $ testChat2 aliceProfile bobProfile $
\alice bob -> do
createGroup2 "team" alice bob
-- disableFullDeletion2 "team" alice bob
@@ -1883,6 +1885,112 @@ testSendMultiManyBatches =
DB.query db "SELECT count(1) FROM chat_items WHERE chat_item_id > ?" (Only msgIdCath) :: IO [[Int]]
cathItemsCount `shouldBe` [[300]]
testSharedMessageBody :: HasCallStack => TestParams -> IO ()
testSharedMessageBody ps =
withNewTestChatOpts ps opts' "alice" aliceProfile $ \alice -> do
withSmpServer' serverCfg' $
withNewTestChatOpts ps opts' "bob" bobProfile $ \bob ->
withNewTestChatOpts ps opts' "cath" cathProfile $ \cath -> do
createGroup3 "team" alice bob cath
alice <##. "server disconnected localhost"
alice #> "#team hello"
bodiesCount1 <- withCCAgentTransaction alice $ \db ->
DB.query_ db "SELECT count(1) FROM snd_message_bodies" :: IO [[Int]]
bodiesCount1 `shouldBe` [[1]]
withSmpServer' serverCfg' $
withTestChatOpts ps opts' "bob" $ \bob ->
withTestChatOpts ps opts' "cath" $ \cath -> do
concurrentlyN_
[ alice <##. "server connected localhost",
do
bob <## "1 contacts connected (use /cs for the list)"
bob <## "#team: connected to server(s)",
do
cath <## "1 contacts connected (use /cs for the list)"
cath <## "#team: connected to server(s)"
]
bob <# "#team alice> hello"
cath <# "#team alice> hello"
bodiesCount2 <- withCCAgentTransaction alice $ \db ->
DB.query_ db "SELECT count(1) FROM snd_message_bodies" :: IO [[Int]]
bodiesCount2 `shouldBe` [[0]]
alice <##. "server disconnected localhost"
where
tmp = tmpPath ps
serverCfg' =
smpServerCfg
{ transports = [("7003", transport @TLS, False)],
storeLogFile = Just $ tmp <> "/smp-server-store.log",
storeMsgsFile = Just $ tmp <> "/smp-server-messages.log"
}
opts' =
testOpts
{ coreOptions =
testCoreOpts
{ smpServers = ["smp://LcJUMfVhwD8yxjAiSaDzzGF3-kLG4Uh0Fl_ZIjrRwjI=:server_password@localhost:7003"]
}
}
testSharedBatchBody :: HasCallStack => TestParams -> IO ()
testSharedBatchBody ps =
withNewTestChatOpts ps opts' "alice" aliceProfile $ \alice -> do
withSmpServer' serverCfg' $
withNewTestChatOpts ps opts' "bob" bobProfile $ \bob ->
withNewTestChatOpts ps opts' "cath" cathProfile $ \cath -> do
createGroup3 "team" alice bob cath
alice <##. "server disconnected localhost"
let cm i = "{\"msgContent\": {\"type\": \"text\", \"text\": \"message " <> show i <> "\"}}"
cms = intercalate ", " (map cm [1 .. 300 :: Int])
alice `send` ("/_send #1 json [" <> cms <> "]")
_ <- getTermLine alice
alice <## "300 messages sent"
bodiesCount1 <- withCCAgentTransaction alice $ \db ->
DB.query_ db "SELECT count(1) FROM snd_message_bodies" :: IO [[Int]]
bodiesCount1 `shouldBe` [[3]]
withSmpServer' serverCfg' $
withTestChatOpts ps opts' "bob" $ \bob ->
withTestChatOpts ps opts' "cath" $ \cath -> do
concurrentlyN_
[ alice <##. "server connected localhost",
do
bob <## "1 contacts connected (use /cs for the list)"
bob <## "#team: connected to server(s)",
do
cath <## "1 contacts connected (use /cs for the list)"
cath <## "#team: connected to server(s)"
]
forM_ [(1 :: Int) .. 300] $ \i -> do
concurrently_
(bob <# ("#team alice> message " <> show i))
(cath <# ("#team alice> message " <> show i))
bodiesCount2 <- withCCAgentTransaction alice $ \db ->
DB.query_ db "SELECT count(1) FROM snd_message_bodies" :: IO [[Int]]
bodiesCount2 `shouldBe` [[0]]
alice <##. "server disconnected localhost"
where
tmp = tmpPath ps
serverCfg' =
smpServerCfg
{ transports = [("7003", transport @TLS, False)],
storeLogFile = Just $ tmp <> "/smp-server-store.log",
storeMsgsFile = Just $ tmp <> "/smp-server-messages.log"
}
opts' =
testOpts
{ coreOptions =
testCoreOpts
{ smpServers = ["smp://LcJUMfVhwD8yxjAiSaDzzGF3-kLG4Uh0Fl_ZIjrRwjI=:server_password@localhost:7003"]
}
}
testGroupAsync :: HasCallStack => TestParams -> IO ()
testGroupAsync ps = do
withNewTestChat ps "alice" aliceProfile $ \alice -> do
+6 -3
View File
@@ -742,7 +742,7 @@ testBusinessAddress = testChat3 businessProfile aliceProfile {fullName = "Alice
(biz <# "#bob bob_1> hey there")
testBusinessUpdateProfiles :: HasCallStack => TestParams -> IO ()
testBusinessUpdateProfiles = testChat4 businessProfile aliceProfile bobProfile cathProfile $
testBusinessUpdateProfiles = withTestOutput $ testChat4 businessProfile aliceProfile bobProfile cathProfile $
\biz alice bob cath -> do
biz ##> "/ad"
cLink <- getContactLink biz True
@@ -756,8 +756,11 @@ testBusinessUpdateProfiles = testChat4 businessProfile aliceProfile bobProfile c
alice <## "#biz: joining the group..."
biz <# "#alice Welcome" -- auto reply
biz <## "#alice: alice_1 joined the group"
alice <# "#biz biz_1> Welcome"
alice <## "#biz: you joined the group"
alice
<###
[ WithTime "#biz biz_1> Welcome",
"#biz: you joined the group"
]
biz #> "#alice hi"
alice <# "#biz biz_1> hi"
alice #> "#biz hello"
+5
View File
@@ -33,6 +33,7 @@ import Simplex.Chat.Types
import Simplex.Chat.Types.Preferences
import Simplex.Chat.Types.Shared
import Simplex.FileTransfer.Client.Main (xftpClientCLI)
import Simplex.Messaging.Agent.Client (agentClientStore)
import Simplex.Messaging.Agent.Store.AgentStore (maybeFirstRow, withTransaction)
import qualified Simplex.Messaging.Agent.Store.DB as DB
import qualified Simplex.Messaging.Crypto as C
@@ -556,6 +557,10 @@ withCCTransaction :: TestCC -> (DB.Connection -> IO a) -> IO a
withCCTransaction cc action =
withTransaction (chatStore $ chatController cc) $ \db -> action db
withCCAgentTransaction :: TestCC -> (DB.Connection -> IO a) -> IO a
withCCAgentTransaction TestCC {chatController = ChatController {smpAgent}} action =
withTransaction (agentClientStore smpAgent) $ \db -> action db
createCCNoteFolder :: TestCC -> IO ()
createCCNoteFolder cc =
withCCTransaction cc $ \db ->
+3 -2
View File
@@ -1,4 +1,5 @@
{-# LANGUAGE CPP #-}
{-# LANGUAGE DuplicateRecordFields #-}
{-# LANGUAGE NamedFieldPuns #-}
{-# LANGUAGE TupleSections #-}
@@ -75,10 +76,10 @@ main = do
#endif
where
#if defined(dbPostgres)
testBracket test = withSmpServer $ tmpBracket $ test . TestParams
testBracket test = withSmpServer $ tmpBracket $ \tmpPath -> test TestParams {tmpPath, printOutput = False}
#else
testBracket chatQueryStats agentQueryStats test =
withSmpServer $ tmpBracket $ \tmpPath -> test TestParams {tmpPath, chatQueryStats, agentQueryStats}
withSmpServer $ tmpBracket $ \tmpPath -> test TestParams {tmpPath, chatQueryStats, agentQueryStats, printOutput = False}
#endif
tmpBracket test = do
t <- getSystemTime
+5 -3
View File
@@ -244,15 +244,17 @@
"stable-versions-built-by-f-droid-org": "Wersje stabilne zbudowane przez F-Droid.org",
"releases-to-this-repo-are-done-1-2-days-later": "Wydania na tym repo są kilka dni później",
"comparison-section-list-point-4a": "Przekaźniki SimpleX nie mogą skompromitować szyfrowania e2e. Zweryfikuj kody bezpieczeństwa aby złagodzić atak na kanał pozapasmowy",
"hero-overlay-3-title": "Ocena bezpieczeństwa",
"hero-overlay-3-title": "Oceny bezpieczeństwa",
"hero-overlay-card-3-p-2": "Trail of Bits przejrzał komponenty kryptograficzne i sieciowe platformy SimpleX w listopadzie 2022. Przeczytaj więcej w <a href=\"/blog/20221108-simplex-chat-v4.2-security-audit-new-website.html\">ogłoszeniach</a>.",
"jobs": "Dołącz do zespołu",
"hero-overlay-3-textlink": "Ocena bezpieczeństwa",
"hero-overlay-3-textlink": "Analizy bezpieczeństwa",
"hero-overlay-card-3-p-1": "<a href=\"https://www.trailofbits.com/about/\">Trail of Bits</a> jest wiodącą firmą konsultingową w zakresie bezpieczeństwa i technologii, której klientami są duże firmy technologiczne, agencje rządowe i główne projekty blockchain.",
"docs-dropdown-9": "Pliki do pobrania",
"please-enable-javascript": "Prosimy o włączenie JavaScript w celu wyświetlenia kodu QR.",
"please-use-link-in-mobile-app": "Prosimy o skorzystanie z linku w aplikacji mobilnej",
"docs-dropdown-10": "Przezroczystość",
"docs-dropdown-12": "Bezpieczeństwo",
"docs-dropdown-11": "Często zadawane pytania"
"docs-dropdown-11": "Często zadawane pytania",
"hero-overlay-card-3-p-3": "Firma Trail of Bits dokonała analizy projektu kryptograficznego protokołów sieciowych SimpleX w lipcu 2024 roku. <a href=\"/blog/20241014-simplex-network-v6-1-security-review-better-calls-user-experience.html\">Dowiedz się więcej</a>.",
"docs-dropdown-14": "SimpleX dla firm"
}