mirror of
https://github.com/simplex-chat/simplex-chat.git
synced 2026-08-28 12:04:11 +00:00
Merge branch 'master' into master-android
This commit is contained in:
@@ -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 "%@". 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 & 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 "%@". 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 & 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 "%@". 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 & 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 "%@". 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 & 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 "%@". 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 "%@". 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 & 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 "%@". 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 "%@". 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 -> 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 "%@". 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 "%@". 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 & 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 "%@". 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 "%@". 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 "%@". 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 & 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 "%@". 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 & 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 "%@". 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 & 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 "%@". 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 & 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 "%@". 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 & 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>
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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)
|
||||
}
|
||||
|
||||
+8
-3
@@ -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)
|
||||
}
|
||||
|
||||
@@ -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
@@ -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,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
@@ -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
|
||||
|
||||
@@ -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),
|
||||
|
||||
@@ -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 ([], [])
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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=?)
|
||||
|
||||
@@ -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
@@ -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
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
module ChatTests.DBUtils.Postgres where
|
||||
|
||||
data TestParams = TestParams
|
||||
{ tmpPath :: FilePath
|
||||
{ tmpPath :: FilePath,
|
||||
printOutput :: Bool
|
||||
}
|
||||
|
||||
@@ -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
@@ -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
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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
@@ -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
|
||||
|
||||
@@ -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"
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user