diff --git a/apps/ios/SimpleX Localizations/de.xcloc/Localized Contents/de.xliff b/apps/ios/SimpleX Localizations/de.xcloc/Localized Contents/de.xliff
index 29f5dd4e3..75f70f7ad 100644
--- a/apps/ios/SimpleX Localizations/de.xcloc/Localized Contents/de.xliff
+++ b/apps/ios/SimpleX Localizations/de.xcloc/Localized Contents/de.xliff
@@ -1196,6 +1196,7 @@
Connect automatically
+ Automatisch verbindenNo comment provided by engineer.
@@ -1914,6 +1915,7 @@ Das kann nicht rückgängig gemacht werden!
Discover via local network
+ Lokales Netzwerk durchsuchenNo comment provided by engineer.
@@ -2558,6 +2560,7 @@ Das kann nicht rückgängig gemacht werden!
Found desktop
+ Gefundener DesktopNo comment provided by engineer.
@@ -3527,6 +3530,7 @@ Das ist Ihr Link für die Gruppe %@!
Not compatible!
+ Nicht kompatibel!No comment provided by engineer.
@@ -5501,6 +5505,7 @@ Bitten Sie Ihren Kontakt darum einen weiteren Verbindungs-Link zu erzeugen, um s
Waiting for desktop...
+ Es wird auf den Desktop gewartet...No comment provided by engineer.
@@ -6050,6 +6055,7 @@ SimpleX-Server können Ihr Profil nicht einsehen.
author
+ Autormember role
diff --git a/apps/ios/SimpleX Localizations/fr.xcloc/Localized Contents/fr.xliff b/apps/ios/SimpleX Localizations/fr.xcloc/Localized Contents/fr.xliff
index af54b7ceb..153d98be3 100644
--- a/apps/ios/SimpleX Localizations/fr.xcloc/Localized Contents/fr.xliff
+++ b/apps/ios/SimpleX Localizations/fr.xcloc/Localized Contents/fr.xliff
@@ -1196,6 +1196,7 @@
Connect automatically
+ Connexion automatiqueNo comment provided by engineer.
@@ -1914,6 +1915,7 @@ Cette opération ne peut être annulée !
Discover via local network
+ Rechercher sur le réseauNo comment provided by engineer.
@@ -2558,6 +2560,7 @@ Cette opération ne peut être annulée !
Found desktop
+ Bureau trouvéNo comment provided by engineer.
@@ -3527,6 +3530,7 @@ Voici votre lien pour le groupe %@ !
Not compatible!
+ Non compatible !No comment provided by engineer.
@@ -5501,6 +5505,7 @@ Pour vous connecter, veuillez demander à votre contact de créer un autre lien
Waiting for desktop...
+ En attente du bureau...No comment provided by engineer.
@@ -6050,6 +6055,7 @@ Les serveurs SimpleX ne peuvent pas voir votre profil.
author
+ auteurmember role
diff --git a/apps/ios/SimpleX Localizations/nl.xcloc/Localized Contents/nl.xliff b/apps/ios/SimpleX Localizations/nl.xcloc/Localized Contents/nl.xliff
index d2be34ec6..094a30677 100644
--- a/apps/ios/SimpleX Localizations/nl.xcloc/Localized Contents/nl.xliff
+++ b/apps/ios/SimpleX Localizations/nl.xcloc/Localized Contents/nl.xliff
@@ -1196,6 +1196,7 @@
Connect automatically
+ Automatisch verbindenNo comment provided by engineer.
@@ -1914,6 +1915,7 @@ Dit kan niet ongedaan gemaakt worden!
Discover via local network
+ Ontdek via het lokale netwerkNo comment provided by engineer.
@@ -2558,6 +2560,7 @@ Dit kan niet ongedaan gemaakt worden!
Found desktop
+ Desktop gevondenNo comment provided by engineer.
@@ -3527,6 +3530,7 @@ Dit is jouw link voor groep %@!
Not compatible!
+ Niet compatibel!No comment provided by engineer.
@@ -5501,6 +5505,7 @@ Om verbinding te maken, vraagt u uw contact om een andere verbinding link te mak
Waiting for desktop...
+ Wachten op desktop...No comment provided by engineer.
@@ -6050,6 +6055,7 @@ SimpleX servers kunnen uw profiel niet zien.
author
+ auteurmember role
diff --git a/apps/ios/SimpleX Localizations/pl.xcloc/Localized Contents/pl.xliff b/apps/ios/SimpleX Localizations/pl.xcloc/Localized Contents/pl.xliff
index 61147d7f9..ad1924f4c 100644
--- a/apps/ios/SimpleX Localizations/pl.xcloc/Localized Contents/pl.xliff
+++ b/apps/ios/SimpleX Localizations/pl.xcloc/Localized Contents/pl.xliff
@@ -299,10 +299,12 @@
(new)
+ (nowy)No comment provided by engineer.(this device v%@)
+ (to urządzenie v%@)No comment provided by engineer.
@@ -397,6 +399,9 @@
- optionally notify deleted contacts.
- profile names with spaces.
- and more!
+ - opcjonalnie powiadamiaj usunięte kontakty.
+- nazwy profili ze spacją.
+- i wiele więcej!No comment provided by engineer.
@@ -885,6 +890,7 @@
Bad desktop address
+ Zły adres komputeraNo comment provided by engineer.
@@ -899,6 +905,7 @@
Better groups
+ Lepsze grupyNo comment provided by engineer.
@@ -913,6 +920,7 @@
Block group members
+ Blokuj członków grupyNo comment provided by engineer.
@@ -1188,6 +1196,7 @@
Connect automatically
+ Łącz automatycznieNo comment provided by engineer.
@@ -1197,6 +1206,7 @@
Connect to desktop
+ Połącz do komputeraNo comment provided by engineer.
@@ -1245,10 +1255,12 @@ To jest twój jednorazowy link!
Connected desktop
+ Połączony komputerNo comment provided by engineer.Connected to desktop
+ Połączony do komputeraNo comment provided by engineer.
@@ -1263,6 +1275,7 @@ To jest twój jednorazowy link!
Connecting to desktop
+ Łączenie z komputeremNo comment provided by engineer.
@@ -1287,6 +1300,7 @@ To jest twój jednorazowy link!
Connection terminated
+ Połączenie zakończoneNo comment provided by engineer.
@@ -1371,6 +1385,7 @@ To jest twój jednorazowy link!
Create a group using a random profile.
+ Utwórz grupę używając losowego profilu.No comment provided by engineer.
@@ -1785,14 +1800,17 @@ To nie może być cofnięte!
Desktop address
+ Adres komputeraNo comment provided by engineer.Desktop app version %@ is not compatible with this app.
+ Wersja aplikacji komputerowej %@ nie jest kompatybilna z tą aplikacją.No comment provided by engineer.Desktop devices
+ Urządzenia komputeroweNo comment provided by engineer.
@@ -1887,6 +1905,7 @@ To nie może być cofnięte!
Disconnect desktop?
+ Rozłączyć komputer?No comment provided by engineer.
@@ -1896,6 +1915,7 @@ To nie może być cofnięte!
Discover via local network
+ Odkryj przez sieć lokalnąNo comment provided by engineer.
@@ -2070,10 +2090,12 @@ To nie może być cofnięte!
Encryption re-negotiation error
+ Błąd renegocjacji szyfrowaniamessage decrypt error itemEncryption re-negotiation failed.
+ Renegocjacja szyfrowania nie powiodła się.No comment provided by engineer.
@@ -2108,6 +2130,7 @@ To nie może być cofnięte!
Enter this device name…
+ Podaj nazwę urządzenia…No comment provided by engineer.
@@ -2437,6 +2460,7 @@ To nie może być cofnięte!
Faster joining and more reliable messages.
+ Szybsze dołączenie i bardziej niezawodne wiadomości.No comment provided by engineer.
@@ -2536,6 +2560,7 @@ To nie może być cofnięte!
Found desktop
+ Znaleziono komputerNo comment provided by engineer.
@@ -2865,6 +2890,7 @@ To nie może być cofnięte!
Incognito groups
+ Grupy incognitoNo comment provided by engineer.
@@ -2899,6 +2925,7 @@ To nie może być cofnięte!
Incompatible version
+ Niekompatybilna wersjaNo comment provided by engineer.
@@ -3073,6 +3100,7 @@ To jest twój link do grupy %@!
Keep the app open to use it from desktop
+ Zostaw aplikację otwartą i używaj ją z komputeraNo comment provided by engineer.
@@ -3137,14 +3165,17 @@ To jest twój link do grupy %@!
Link mobile and desktop apps! 🔗
+ Połącz mobile i komputerowe aplikacje! 🔗No comment provided by engineer.Linked desktop options
+ Połączone opcje komputeraNo comment provided by engineer.Linked desktops
+ Połączone komputeryNo comment provided by engineer.
@@ -3499,6 +3530,7 @@ To jest twój link do grupy %@!
Not compatible!
+ Nie kompatybilny!No comment provided by engineer.
@@ -3722,6 +3754,7 @@ To jest twój link do grupy %@!
Paste desktop address
+ Wklej adres komputeraNo comment provided by engineer.
@@ -4321,6 +4354,7 @@ To jest twój link do grupy %@!
Scan QR code from desktop
+ Zeskanuj kod QR z komputeraNo comment provided by engineer.
@@ -4545,6 +4579,7 @@ To jest twój link do grupy %@!
Session code
+ Kod sesjiNo comment provided by engineer.
@@ -5046,6 +5081,7 @@ Może się to zdarzyć z powodu jakiegoś błędu lub gdy połączenie jest skom
This device name
+ Nazwa tego urządzeniaNo comment provided by engineer.
@@ -5085,6 +5121,7 @@ Może się to zdarzyć z powodu jakiegoś błędu lub gdy połączenie jest skom
To hide unwanted messages.
+ Aby ukryć niechciane wiadomości.No comment provided by engineer.
@@ -5248,10 +5285,12 @@ Aby się połączyć, poproś Twój kontakt o utworzenie kolejnego linku połąc
Unlink
+ OdłączNo comment provided by engineer.Unlink desktop?
+ Odłączyć komputer?No comment provided by engineer.
@@ -5346,6 +5385,7 @@ Aby się połączyć, poproś Twój kontakt o utworzenie kolejnego linku połąc
Use from desktop
+ Użyj z komputeraNo comment provided by engineer.
@@ -5380,10 +5420,12 @@ Aby się połączyć, poproś Twój kontakt o utworzenie kolejnego linku połąc
Verify code with desktop
+ Zweryfikuj kod z komputeraNo comment provided by engineer.Verify connection
+ Zweryfikuj połączenieNo comment provided by engineer.
@@ -5393,6 +5435,7 @@ Aby się połączyć, poproś Twój kontakt o utworzenie kolejnego linku połąc
Verify connections
+ Zweryfikuj połączeniaNo comment provided by engineer.
@@ -5407,6 +5450,7 @@ Aby się połączyć, poproś Twój kontakt o utworzenie kolejnego linku połąc
Via secure quantum resistant protocol.
+ Dzięki bezpiecznemu protokołowi odpornego kwantowo.No comment provided by engineer.
@@ -5461,6 +5505,7 @@ Aby się połączyć, poproś Twój kontakt o utworzenie kolejnego linku połąc
Waiting for desktop...
+ Oczekiwanie na komputer...No comment provided by engineer.
@@ -6010,6 +6055,7 @@ Serwery SimpleX nie mogą zobaczyć Twojego profilu.
author
+ autormember role
@@ -6596,6 +6642,7 @@ Serwery SimpleX nie mogą zobaczyć Twojego profilu.
v%@
+ v%@No comment provided by engineer.
@@ -6737,6 +6784,7 @@ Serwery SimpleX nie mogą zobaczyć Twojego profilu.
SimpleX uses local network access to allow using user chat profile via desktop app on the same network.
+ SimpleX używa sieci lokalnej aby pozwolić na dostęp profilom czatu użytkownika przez aplikację komputerową na tej samej sieci.Privacy - Local Network Usage Description
diff --git a/apps/ios/SimpleX Localizations/ru.xcloc/Localized Contents/ru.xliff b/apps/ios/SimpleX Localizations/ru.xcloc/Localized Contents/ru.xliff
index abd3d01d8..f4970446a 100644
--- a/apps/ios/SimpleX Localizations/ru.xcloc/Localized Contents/ru.xliff
+++ b/apps/ios/SimpleX Localizations/ru.xcloc/Localized Contents/ru.xliff
@@ -1196,6 +1196,7 @@
Connect automatically
+ Соединяться автоматическиNo comment provided by engineer.
@@ -1914,6 +1915,7 @@ This cannot be undone!
Discover via local network
+ Обнаружение по локальной сетиNo comment provided by engineer.
@@ -2558,6 +2560,7 @@ This cannot be undone!
Found desktop
+ Компьютер найденNo comment provided by engineer.
@@ -3527,6 +3530,7 @@ This is your link for group %@!
Not compatible!
+ Несовместимая версия!No comment provided by engineer.
@@ -5501,6 +5505,7 @@ To connect, please ask your contact to create another connection link and check
Waiting for desktop...
+ Ожидается подключение компьютера...No comment provided by engineer.
@@ -6050,6 +6055,7 @@ SimpleX серверы не могут получить доступ к Ваше
author
+ авторmember role
diff --git a/apps/ios/SimpleX.xcodeproj/project.pbxproj b/apps/ios/SimpleX.xcodeproj/project.pbxproj
index 47769ac2d..2080b857a 100644
--- a/apps/ios/SimpleX.xcodeproj/project.pbxproj
+++ b/apps/ios/SimpleX.xcodeproj/project.pbxproj
@@ -120,6 +120,11 @@
5CCD403727A5F9A200368C90 /* ScanToConnectView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5CCD403627A5F9A200368C90 /* ScanToConnectView.swift */; };
5CD67B8F2B0E858A00C510B1 /* hs_init.h in Headers */ = {isa = PBXBuildFile; fileRef = 5CD67B8D2B0E858A00C510B1 /* hs_init.h */; settings = {ATTRIBUTES = (Public, ); }; };
5CD67B902B0E858A00C510B1 /* hs_init.c in Sources */ = {isa = PBXBuildFile; fileRef = 5CD67B8E2B0E858A00C510B1 /* hs_init.c */; };
+ 5CD67B962B11416700C510B1 /* libHSsimplex-chat-5.4.0.6-95eerlCBwIgI8jyla1GCr9.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 5CD67B912B11416600C510B1 /* libHSsimplex-chat-5.4.0.6-95eerlCBwIgI8jyla1GCr9.a */; };
+ 5CD67B972B11416700C510B1 /* libHSsimplex-chat-5.4.0.6-95eerlCBwIgI8jyla1GCr9-ghc9.6.3.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 5CD67B922B11416600C510B1 /* libHSsimplex-chat-5.4.0.6-95eerlCBwIgI8jyla1GCr9-ghc9.6.3.a */; };
+ 5CD67B982B11416700C510B1 /* libffi.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 5CD67B932B11416600C510B1 /* libffi.a */; };
+ 5CD67B992B11416700C510B1 /* libgmp.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 5CD67B942B11416600C510B1 /* libgmp.a */; };
+ 5CD67B9A2B11416700C510B1 /* libgmpxx.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 5CD67B952B11416700C510B1 /* libgmpxx.a */; };
5CDCAD482818589900503DA2 /* NotificationService.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5CDCAD472818589900503DA2 /* NotificationService.swift */; };
5CE2BA702845308900EC33A6 /* SimpleXChat.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 5CE2BA682845308900EC33A6 /* SimpleXChat.framework */; };
5CE2BA712845308900EC33A6 /* SimpleXChat.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 5CE2BA682845308900EC33A6 /* SimpleXChat.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
@@ -145,11 +150,6 @@
5CEACCED27DEA495000BD591 /* MsgContentView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5CEACCEC27DEA495000BD591 /* MsgContentView.swift */; };
5CEBD7462A5C0A8F00665FE2 /* KeyboardPadding.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5CEBD7452A5C0A8F00665FE2 /* KeyboardPadding.swift */; };
5CEBD7482A5F115D00665FE2 /* SetDeliveryReceiptsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5CEBD7472A5F115D00665FE2 /* SetDeliveryReceiptsView.swift */; };
- 5CF077FB2B0D60C100105111 /* libgmpxx.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 5CF077F62B0D60C000105111 /* libgmpxx.a */; };
- 5CF077FC2B0D60C100105111 /* libHSsimplex-chat-5.4.0.5-AEaxUB19STC3bOtqr9BLL2.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 5CF077F72B0D60C000105111 /* libHSsimplex-chat-5.4.0.5-AEaxUB19STC3bOtqr9BLL2.a */; };
- 5CF077FD2B0D60C100105111 /* libgmp.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 5CF077F82B0D60C000105111 /* libgmp.a */; };
- 5CF077FE2B0D60C100105111 /* libHSsimplex-chat-5.4.0.5-AEaxUB19STC3bOtqr9BLL2-ghc9.6.3.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 5CF077F92B0D60C100105111 /* libHSsimplex-chat-5.4.0.5-AEaxUB19STC3bOtqr9BLL2-ghc9.6.3.a */; };
- 5CF077FF2B0D60C100105111 /* libffi.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 5CF077FA2B0D60C100105111 /* libffi.a */; };
5CFA59C42860BC6200863A68 /* MigrateToAppGroupView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5CFA59C32860BC6200863A68 /* MigrateToAppGroupView.swift */; };
5CFA59D12864782E00863A68 /* ChatArchiveView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5CFA59CF286477B400863A68 /* ChatArchiveView.swift */; };
5CFE0921282EEAF60002594B /* ZoomableScrollView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5CFE0920282EEAF60002594B /* ZoomableScrollView.swift */; };
@@ -408,6 +408,11 @@
5CCD403627A5F9A200368C90 /* ScanToConnectView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ScanToConnectView.swift; sourceTree = ""; };
5CD67B8D2B0E858A00C510B1 /* hs_init.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = hs_init.h; sourceTree = ""; };
5CD67B8E2B0E858A00C510B1 /* hs_init.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = hs_init.c; sourceTree = ""; };
+ 5CD67B912B11416600C510B1 /* libHSsimplex-chat-5.4.0.6-95eerlCBwIgI8jyla1GCr9.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = "libHSsimplex-chat-5.4.0.6-95eerlCBwIgI8jyla1GCr9.a"; sourceTree = ""; };
+ 5CD67B922B11416600C510B1 /* libHSsimplex-chat-5.4.0.6-95eerlCBwIgI8jyla1GCr9-ghc9.6.3.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = "libHSsimplex-chat-5.4.0.6-95eerlCBwIgI8jyla1GCr9-ghc9.6.3.a"; sourceTree = ""; };
+ 5CD67B932B11416600C510B1 /* libffi.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libffi.a; sourceTree = ""; };
+ 5CD67B942B11416600C510B1 /* libgmp.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libgmp.a; sourceTree = ""; };
+ 5CD67B952B11416700C510B1 /* libgmpxx.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libgmpxx.a; sourceTree = ""; };
5CDCAD452818589900503DA2 /* SimpleX NSE.appex */ = {isa = PBXFileReference; explicitFileType = "wrapper.app-extension"; includeInIndex = 0; path = "SimpleX NSE.appex"; sourceTree = BUILT_PRODUCTS_DIR; };
5CDCAD472818589900503DA2 /* NotificationService.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NotificationService.swift; sourceTree = ""; };
5CDCAD492818589900503DA2 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; };
@@ -434,11 +439,6 @@
5CEACCEC27DEA495000BD591 /* MsgContentView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MsgContentView.swift; sourceTree = ""; };
5CEBD7452A5C0A8F00665FE2 /* KeyboardPadding.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KeyboardPadding.swift; sourceTree = ""; };
5CEBD7472A5F115D00665FE2 /* SetDeliveryReceiptsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SetDeliveryReceiptsView.swift; sourceTree = ""; };
- 5CF077F62B0D60C000105111 /* libgmpxx.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libgmpxx.a; sourceTree = ""; };
- 5CF077F72B0D60C000105111 /* libHSsimplex-chat-5.4.0.5-AEaxUB19STC3bOtqr9BLL2.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = "libHSsimplex-chat-5.4.0.5-AEaxUB19STC3bOtqr9BLL2.a"; sourceTree = ""; };
- 5CF077F82B0D60C000105111 /* libgmp.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libgmp.a; sourceTree = ""; };
- 5CF077F92B0D60C100105111 /* libHSsimplex-chat-5.4.0.5-AEaxUB19STC3bOtqr9BLL2-ghc9.6.3.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = "libHSsimplex-chat-5.4.0.5-AEaxUB19STC3bOtqr9BLL2-ghc9.6.3.a"; sourceTree = ""; };
- 5CF077FA2B0D60C100105111 /* libffi.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libffi.a; sourceTree = ""; };
5CFA59C32860BC6200863A68 /* MigrateToAppGroupView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MigrateToAppGroupView.swift; sourceTree = ""; };
5CFA59CF286477B400863A68 /* ChatArchiveView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChatArchiveView.swift; sourceTree = ""; };
5CFE0920282EEAF60002594B /* ZoomableScrollView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = ZoomableScrollView.swift; path = Shared/Views/ZoomableScrollView.swift; sourceTree = SOURCE_ROOT; };
@@ -521,13 +521,13 @@
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
- 5CF077FB2B0D60C100105111 /* libgmpxx.a in Frameworks */,
- 5CF077FD2B0D60C100105111 /* libgmp.a in Frameworks */,
- 5CF077FE2B0D60C100105111 /* libHSsimplex-chat-5.4.0.5-AEaxUB19STC3bOtqr9BLL2-ghc9.6.3.a in Frameworks */,
+ 5CD67B972B11416700C510B1 /* libHSsimplex-chat-5.4.0.6-95eerlCBwIgI8jyla1GCr9-ghc9.6.3.a in Frameworks */,
5CE2BA93284534B000EC33A6 /* libiconv.tbd in Frameworks */,
- 5CF077FF2B0D60C100105111 /* libffi.a in Frameworks */,
- 5CF077FC2B0D60C100105111 /* libHSsimplex-chat-5.4.0.5-AEaxUB19STC3bOtqr9BLL2.a in Frameworks */,
5CE2BA94284534BB00EC33A6 /* libz.tbd in Frameworks */,
+ 5CD67B982B11416700C510B1 /* libffi.a in Frameworks */,
+ 5CD67B992B11416700C510B1 /* libgmp.a in Frameworks */,
+ 5CD67B962B11416700C510B1 /* libHSsimplex-chat-5.4.0.6-95eerlCBwIgI8jyla1GCr9.a in Frameworks */,
+ 5CD67B9A2B11416700C510B1 /* libgmpxx.a in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@@ -589,11 +589,11 @@
5C764E5C279C70B7000C6508 /* Libraries */ = {
isa = PBXGroup;
children = (
- 5CF077FA2B0D60C100105111 /* libffi.a */,
- 5CF077F82B0D60C000105111 /* libgmp.a */,
- 5CF077F62B0D60C000105111 /* libgmpxx.a */,
- 5CF077F92B0D60C100105111 /* libHSsimplex-chat-5.4.0.5-AEaxUB19STC3bOtqr9BLL2-ghc9.6.3.a */,
- 5CF077F72B0D60C000105111 /* libHSsimplex-chat-5.4.0.5-AEaxUB19STC3bOtqr9BLL2.a */,
+ 5CD67B932B11416600C510B1 /* libffi.a */,
+ 5CD67B942B11416600C510B1 /* libgmp.a */,
+ 5CD67B952B11416700C510B1 /* libgmpxx.a */,
+ 5CD67B922B11416600C510B1 /* libHSsimplex-chat-5.4.0.6-95eerlCBwIgI8jyla1GCr9-ghc9.6.3.a */,
+ 5CD67B912B11416600C510B1 /* libHSsimplex-chat-5.4.0.6-95eerlCBwIgI8jyla1GCr9.a */,
);
path = Libraries;
sourceTree = "";
@@ -1512,7 +1512,7 @@
CLANG_ENABLE_MODULES = YES;
CODE_SIGN_ENTITLEMENTS = "SimpleX (iOS).entitlements";
CODE_SIGN_STYLE = Automatic;
- CURRENT_PROJECT_VERSION = 182;
+ CURRENT_PROJECT_VERSION = 183;
DEVELOPMENT_TEAM = 5NN7GUYB6T;
ENABLE_BITCODE = NO;
ENABLE_PREVIEWS = YES;
@@ -1555,7 +1555,7 @@
CLANG_ENABLE_MODULES = YES;
CODE_SIGN_ENTITLEMENTS = "SimpleX (iOS).entitlements";
CODE_SIGN_STYLE = Automatic;
- CURRENT_PROJECT_VERSION = 182;
+ CURRENT_PROJECT_VERSION = 183;
DEVELOPMENT_TEAM = 5NN7GUYB6T;
ENABLE_BITCODE = NO;
ENABLE_PREVIEWS = YES;
@@ -1636,7 +1636,7 @@
CODE_SIGN_ENTITLEMENTS = "SimpleX NSE/SimpleX NSE.entitlements";
CODE_SIGN_IDENTITY = "Apple Development";
CODE_SIGN_STYLE = Automatic;
- CURRENT_PROJECT_VERSION = 182;
+ CURRENT_PROJECT_VERSION = 183;
DEVELOPMENT_TEAM = 5NN7GUYB6T;
ENABLE_BITCODE = NO;
GENERATE_INFOPLIST_FILE = YES;
@@ -1668,7 +1668,7 @@
CODE_SIGN_ENTITLEMENTS = "SimpleX NSE/SimpleX NSE.entitlements";
CODE_SIGN_IDENTITY = "Apple Development";
CODE_SIGN_STYLE = Automatic;
- CURRENT_PROJECT_VERSION = 182;
+ CURRENT_PROJECT_VERSION = 183;
DEVELOPMENT_TEAM = 5NN7GUYB6T;
ENABLE_BITCODE = NO;
GENERATE_INFOPLIST_FILE = YES;
@@ -1700,7 +1700,7 @@
APPLICATION_EXTENSION_API_ONLY = YES;
CLANG_ENABLE_MODULES = YES;
CODE_SIGN_STYLE = Automatic;
- CURRENT_PROJECT_VERSION = 182;
+ CURRENT_PROJECT_VERSION = 183;
DEFINES_MODULE = YES;
DEVELOPMENT_TEAM = 5NN7GUYB6T;
DYLIB_COMPATIBILITY_VERSION = 1;
@@ -1746,7 +1746,7 @@
APPLICATION_EXTENSION_API_ONLY = YES;
CLANG_ENABLE_MODULES = YES;
CODE_SIGN_STYLE = Automatic;
- CURRENT_PROJECT_VERSION = 182;
+ CURRENT_PROJECT_VERSION = 183;
DEFINES_MODULE = YES;
DEVELOPMENT_TEAM = 5NN7GUYB6T;
DYLIB_COMPATIBILITY_VERSION = 1;
diff --git a/apps/ios/de.lproj/Localizable.strings b/apps/ios/de.lproj/Localizable.strings
index c860a2499..febd4c06a 100644
--- a/apps/ios/de.lproj/Localizable.strings
+++ b/apps/ios/de.lproj/Localizable.strings
@@ -545,6 +545,9 @@
/* No comment provided by engineer. */
"Authentication unavailable" = "Authentifizierung nicht verfügbar";
+/* member role */
+"author" = "Autor";
+
/* No comment provided by engineer. */
"Auto-accept" = "Automatisch akzeptieren";
@@ -786,6 +789,9 @@
/* server test step */
"Connect" = "Verbinden";
+/* No comment provided by engineer. */
+"Connect automatically" = "Automatisch verbinden";
+
/* No comment provided by engineer. */
"Connect incognito" = "Inkognito verbinden";
@@ -1287,6 +1293,9 @@
/* No comment provided by engineer. */
"Discover and join groups" = "Gruppen entdecken und ihnen beitreten";
+/* No comment provided by engineer. */
+"Discover via local network" = "Lokales Netzwerk durchsuchen";
+
/* No comment provided by engineer. */
"Do it later" = "Später wiederholen";
@@ -1722,6 +1731,9 @@
/* No comment provided by engineer. */
"For console" = "Für Konsole";
+/* No comment provided by engineer. */
+"Found desktop" = "Gefundener Desktop";
+
/* No comment provided by engineer. */
"French interface" = "Französische Bedienoberfläche";
@@ -2397,6 +2409,9 @@
/* copied message info in history */
"no text" = "Kein Text";
+/* No comment provided by engineer. */
+"Not compatible!" = "Nicht kompatibel!";
+
/* No comment provided by engineer. */
"Notifications" = "Benachrichtigungen";
@@ -3671,6 +3686,9 @@
/* No comment provided by engineer. */
"waiting for confirmation…" = "Warten auf Bestätigung…";
+/* No comment provided by engineer. */
+"Waiting for desktop..." = "Es wird auf den Desktop gewartet...";
+
/* No comment provided by engineer. */
"Waiting for file" = "Warte auf Datei";
diff --git a/apps/ios/fr.lproj/Localizable.strings b/apps/ios/fr.lproj/Localizable.strings
index b71d510e7..470e23b4f 100644
--- a/apps/ios/fr.lproj/Localizable.strings
+++ b/apps/ios/fr.lproj/Localizable.strings
@@ -545,6 +545,9 @@
/* No comment provided by engineer. */
"Authentication unavailable" = "Authentification indisponible";
+/* member role */
+"author" = "auteur";
+
/* No comment provided by engineer. */
"Auto-accept" = "Auto-accepter";
@@ -786,6 +789,9 @@
/* server test step */
"Connect" = "Se connecter";
+/* No comment provided by engineer. */
+"Connect automatically" = "Connexion automatique";
+
/* No comment provided by engineer. */
"Connect incognito" = "Se connecter incognito";
@@ -1287,6 +1293,9 @@
/* No comment provided by engineer. */
"Discover and join groups" = "Découvrir et rejoindre des groupes";
+/* No comment provided by engineer. */
+"Discover via local network" = "Rechercher sur le réseau";
+
/* No comment provided by engineer. */
"Do it later" = "Faites-le plus tard";
@@ -1722,6 +1731,9 @@
/* No comment provided by engineer. */
"For console" = "Pour la console";
+/* No comment provided by engineer. */
+"Found desktop" = "Bureau trouvé";
+
/* No comment provided by engineer. */
"French interface" = "Interface en français";
@@ -2397,6 +2409,9 @@
/* copied message info in history */
"no text" = "aucun texte";
+/* No comment provided by engineer. */
+"Not compatible!" = "Non compatible !";
+
/* No comment provided by engineer. */
"Notifications" = "Notifications";
@@ -3671,6 +3686,9 @@
/* No comment provided by engineer. */
"waiting for confirmation…" = "en attente de confirmation…";
+/* No comment provided by engineer. */
+"Waiting for desktop..." = "En attente du bureau...";
+
/* No comment provided by engineer. */
"Waiting for file" = "En attente du fichier";
diff --git a/apps/ios/nl.lproj/Localizable.strings b/apps/ios/nl.lproj/Localizable.strings
index ac1f8b03d..784acf1a9 100644
--- a/apps/ios/nl.lproj/Localizable.strings
+++ b/apps/ios/nl.lproj/Localizable.strings
@@ -545,6 +545,9 @@
/* No comment provided by engineer. */
"Authentication unavailable" = "Verificatie niet beschikbaar";
+/* member role */
+"author" = "auteur";
+
/* No comment provided by engineer. */
"Auto-accept" = "Automatisch accepteren";
@@ -786,6 +789,9 @@
/* server test step */
"Connect" = "Verbind";
+/* No comment provided by engineer. */
+"Connect automatically" = "Automatisch verbinden";
+
/* No comment provided by engineer. */
"Connect incognito" = "Verbind incognito";
@@ -1287,6 +1293,9 @@
/* No comment provided by engineer. */
"Discover and join groups" = "Ontdek en sluit je aan bij groepen";
+/* No comment provided by engineer. */
+"Discover via local network" = "Ontdek via het lokale netwerk";
+
/* No comment provided by engineer. */
"Do it later" = "Doe het later";
@@ -1722,6 +1731,9 @@
/* No comment provided by engineer. */
"For console" = "Voor console";
+/* No comment provided by engineer. */
+"Found desktop" = "Desktop gevonden";
+
/* No comment provided by engineer. */
"French interface" = "Franse interface";
@@ -2397,6 +2409,9 @@
/* copied message info in history */
"no text" = "geen tekst";
+/* No comment provided by engineer. */
+"Not compatible!" = "Niet compatibel!";
+
/* No comment provided by engineer. */
"Notifications" = "Meldingen";
@@ -3671,6 +3686,9 @@
/* No comment provided by engineer. */
"waiting for confirmation…" = "Wachten op bevestiging…";
+/* No comment provided by engineer. */
+"Waiting for desktop..." = "Wachten op desktop...";
+
/* No comment provided by engineer. */
"Waiting for file" = "Wachten op bestand";
diff --git a/apps/ios/pl.lproj/Localizable.strings b/apps/ios/pl.lproj/Localizable.strings
index 3eb86d2a1..e0f4c4dee 100644
--- a/apps/ios/pl.lproj/Localizable.strings
+++ b/apps/ios/pl.lproj/Localizable.strings
@@ -25,6 +25,9 @@
/* No comment provided by engineer. */
"- more stable message delivery.\n- a bit better groups.\n- and more!" = "- bardziej stabilne dostarczanie wiadomości.\n- nieco lepsze grupy.\n- i więcej!";
+/* No comment provided by engineer. */
+"- optionally notify deleted contacts.\n- profile names with spaces.\n- and more!" = "- opcjonalnie powiadamiaj usunięte kontakty.\n- nazwy profili ze spacją.\n- i wiele więcej!";
+
/* No comment provided by engineer. */
"- voice messages up to 5 minutes.\n- custom time to disappear.\n- editing history." = "- wiadomości głosowe do 5 minut.\n- niestandardowy czas zniknięcia.\n- historia edycji.";
@@ -43,6 +46,12 @@
/* No comment provided by engineer. */
"(" = "(";
+/* No comment provided by engineer. */
+"(new)" = "(nowy)";
+
+/* No comment provided by engineer. */
+"(this device v%@)" = "(to urządzenie v%@)";
+
/* No comment provided by engineer. */
")" = ")";
@@ -536,6 +545,9 @@
/* No comment provided by engineer. */
"Authentication unavailable" = "Uwierzytelnianie niedostępne";
+/* member role */
+"author" = "autor";
+
/* No comment provided by engineer. */
"Auto-accept" = "Automatycznie akceptuj";
@@ -548,6 +560,9 @@
/* No comment provided by engineer. */
"Back" = "Wstecz";
+/* No comment provided by engineer. */
+"Bad desktop address" = "Zły adres komputera";
+
/* integrity error chat item */
"bad message hash" = "zły hash wiadomości";
@@ -560,12 +575,18 @@
/* No comment provided by engineer. */
"Bad message ID" = "Zły identyfikator wiadomości";
+/* No comment provided by engineer. */
+"Better groups" = "Lepsze grupy";
+
/* No comment provided by engineer. */
"Better messages" = "Lepsze wiadomości";
/* No comment provided by engineer. */
"Block" = "Zablokuj";
+/* No comment provided by engineer. */
+"Block group members" = "Blokuj członków grupy";
+
/* No comment provided by engineer. */
"Block member" = "Zablokuj członka";
@@ -768,9 +789,15 @@
/* server test step */
"Connect" = "Połącz";
+/* No comment provided by engineer. */
+"Connect automatically" = "Łącz automatycznie";
+
/* No comment provided by engineer. */
"Connect incognito" = "Połącz incognito";
+/* No comment provided by engineer. */
+"Connect to desktop" = "Połącz do komputera";
+
/* No comment provided by engineer. */
"connect to SimpleX Chat developers." = "połącz się z deweloperami SimpleX Chat.";
@@ -801,9 +828,15 @@
/* No comment provided by engineer. */
"connected" = "połączony";
+/* No comment provided by engineer. */
+"Connected desktop" = "Połączony komputer";
+
/* rcv group event chat item */
"connected directly" = "połącz bezpośrednio";
+/* No comment provided by engineer. */
+"Connected to desktop" = "Połączony do komputera";
+
/* No comment provided by engineer. */
"connecting" = "łączenie";
@@ -828,6 +861,9 @@
/* No comment provided by engineer. */
"Connecting server… (error: %@)" = "Łączenie z serwerem... (błąd: %@)";
+/* No comment provided by engineer. */
+"Connecting to desktop" = "Łączenie z komputerem";
+
/* chat list item title */
"connecting…" = "łączenie…";
@@ -846,6 +882,9 @@
/* No comment provided by engineer. */
"Connection request sent!" = "Prośba o połączenie wysłana!";
+/* No comment provided by engineer. */
+"Connection terminated" = "Połączenie zakończone";
+
/* No comment provided by engineer. */
"Connection timeout" = "Czas połączenia minął";
@@ -900,6 +939,9 @@
/* No comment provided by engineer. */
"Create" = "Utwórz";
+/* No comment provided by engineer. */
+"Create a group using a random profile." = "Utwórz grupę używając losowego profilu.";
+
/* No comment provided by engineer. */
"Create an address to let people connect with you." = "Utwórz adres, aby ludzie mogli się z Tobą połączyć.";
@@ -1173,6 +1215,15 @@
/* No comment provided by engineer. */
"Description" = "Opis";
+/* No comment provided by engineer. */
+"Desktop address" = "Adres komputera";
+
+/* No comment provided by engineer. */
+"Desktop app version %@ is not compatible with this app." = "Wersja aplikacji komputerowej %@ nie jest kompatybilna z tą aplikacją.";
+
+/* No comment provided by engineer. */
+"Desktop devices" = "Urządzenia komputerowe";
+
/* No comment provided by engineer. */
"Develop" = "Deweloperskie";
@@ -1236,9 +1287,15 @@
/* server test step */
"Disconnect" = "Rozłącz";
+/* No comment provided by engineer. */
+"Disconnect desktop?" = "Rozłączyć komputer?";
+
/* No comment provided by engineer. */
"Discover and join groups" = "Odkrywaj i dołączaj do grup";
+/* No comment provided by engineer. */
+"Discover via local network" = "Odkryj przez sieć lokalną";
+
/* No comment provided by engineer. */
"Do it later" = "Zrób to później";
@@ -1374,6 +1431,12 @@
/* chat item text */
"encryption re-negotiation allowed for %@" = "renegocjacja szyfrowania dozwolona dla %@";
+/* message decrypt error item */
+"Encryption re-negotiation error" = "Błąd renegocjacji szyfrowania";
+
+/* No comment provided by engineer. */
+"Encryption re-negotiation failed." = "Renegocjacja szyfrowania nie powiodła się.";
+
/* chat item text */
"encryption re-negotiation required" = "renegocjacja szyfrowania wymagana";
@@ -1404,6 +1467,9 @@
/* No comment provided by engineer. */
"Enter server manually" = "Wprowadź serwer ręcznie";
+/* No comment provided by engineer. */
+"Enter this device name…" = "Podaj nazwę urządzenia…";
+
/* placeholder */
"Enter welcome message…" = "Wpisz wiadomość powitalną…";
@@ -1605,6 +1671,9 @@
/* No comment provided by engineer. */
"Fast and no wait until the sender is online!" = "Szybko i bez czekania aż nadawca będzie online!";
+/* No comment provided by engineer. */
+"Faster joining and more reliable messages." = "Szybsze dołączenie i bardziej niezawodne wiadomości.";
+
/* No comment provided by engineer. */
"Favorite" = "Ulubione";
@@ -1662,6 +1731,9 @@
/* No comment provided by engineer. */
"For console" = "Dla konsoli";
+/* No comment provided by engineer. */
+"Found desktop" = "Znaleziono komputer";
+
/* No comment provided by engineer. */
"French interface" = "Francuski interfejs";
@@ -1866,6 +1938,9 @@
/* No comment provided by engineer. */
"Incognito" = "Incognito";
+/* No comment provided by engineer. */
+"Incognito groups" = "Grupy incognito";
+
/* No comment provided by engineer. */
"Incognito mode" = "Tryb incognito";
@@ -1893,6 +1968,9 @@
/* No comment provided by engineer. */
"Incompatible database version" = "Niekompatybilna wersja bazy danych";
+/* No comment provided by engineer. */
+"Incompatible version" = "Niekompatybilna wersja";
+
/* PIN entry */
"Incorrect passcode" = "Nieprawidłowy pin";
@@ -2028,6 +2106,9 @@
/* No comment provided by engineer. */
"Joining group" = "Dołączanie do grupy";
+/* No comment provided by engineer. */
+"Keep the app open to use it from desktop" = "Zostaw aplikację otwartą i używaj ją z komputera";
+
/* No comment provided by engineer. */
"Keep your connections" = "Zachowaj swoje połączenia";
@@ -2064,6 +2145,15 @@
/* No comment provided by engineer. */
"Limitations" = "Ograniczenia";
+/* No comment provided by engineer. */
+"Link mobile and desktop apps! 🔗" = "Połącz mobile i komputerowe aplikacje! 🔗";
+
+/* No comment provided by engineer. */
+"Linked desktop options" = "Połączone opcje komputera";
+
+/* No comment provided by engineer. */
+"Linked desktops" = "Połączone komputery";
+
/* No comment provided by engineer. */
"LIVE" = "NA ŻYWO";
@@ -2319,6 +2409,9 @@
/* copied message info in history */
"no text" = "brak tekstu";
+/* No comment provided by engineer. */
+"Not compatible!" = "Nie kompatybilny!";
+
/* No comment provided by engineer. */
"Notifications" = "Powiadomienia";
@@ -2462,6 +2555,9 @@
/* No comment provided by engineer. */
"Paste" = "Wklej";
+/* No comment provided by engineer. */
+"Paste desktop address" = "Wklej adres komputera";
+
/* No comment provided by engineer. */
"Paste image" = "Wklej obraz";
@@ -2846,6 +2942,9 @@
/* No comment provided by engineer. */
"Scan QR code" = "Zeskanuj kod QR";
+/* No comment provided by engineer. */
+"Scan QR code from desktop" = "Zeskanuj kod QR z komputera";
+
/* No comment provided by engineer. */
"Scan security code from your contact's app." = "Zeskanuj kod bezpieczeństwa z aplikacji Twojego kontaktu.";
@@ -2990,6 +3089,9 @@
/* No comment provided by engineer. */
"Servers" = "Serwery";
+/* No comment provided by engineer. */
+"Session code" = "Kod sesji";
+
/* No comment provided by engineer. */
"Set 1 day" = "Ustaw 1 dzień";
@@ -3299,6 +3401,9 @@
/* notification title */
"this contact" = "ten kontakt";
+/* No comment provided by engineer. */
+"This device name" = "Nazwa tego urządzenia";
+
/* No comment provided by engineer. */
"This group has over %lld members, delivery receipts are not sent." = "Ta grupa ma ponad %lld członków, potwierdzenia dostawy nie są wysyłane.";
@@ -3320,6 +3425,9 @@
/* No comment provided by engineer. */
"To connect, your contact can scan QR code or use the link in the app." = "Aby się połączyć, Twój kontakt może zeskanować kod QR lub skorzystać z linku w aplikacji.";
+/* No comment provided by engineer. */
+"To hide unwanted messages." = "Aby ukryć niechciane wiadomości.";
+
/* No comment provided by engineer. */
"To make a new connection" = "Aby nawiązać nowe połączenie";
@@ -3416,6 +3524,12 @@
/* No comment provided by engineer. */
"Unless your contact deleted the connection or this link was already used, it might be a bug - please report it.\nTo connect, please ask your contact to create another connection link and check that you have a stable network connection." = "O ile Twój kontakt nie usunął połączenia lub ten link był już użyty, może to być błąd - zgłoś go.\nAby się połączyć, poproś Twój kontakt o utworzenie kolejnego linku połączenia i sprawdź, czy masz stabilne połączenie z siecią.";
+/* No comment provided by engineer. */
+"Unlink" = "Odłącz";
+
+/* No comment provided by engineer. */
+"Unlink desktop?" = "Odłączyć komputer?";
+
/* No comment provided by engineer. */
"Unlock" = "Odblokuj";
@@ -3470,6 +3584,9 @@
/* No comment provided by engineer. */
"Use for new connections" = "Użyj dla nowych połączeń";
+/* No comment provided by engineer. */
+"Use from desktop" = "Użyj z komputera";
+
/* No comment provided by engineer. */
"Use iOS call interface" = "Użyj interfejsu połączeń iOS";
@@ -3491,12 +3608,24 @@
/* No comment provided by engineer. */
"Using SimpleX Chat servers." = "Używanie serwerów SimpleX Chat.";
+/* No comment provided by engineer. */
+"v%@" = "v%@";
+
/* No comment provided by engineer. */
"v%@ (%@)" = "v%@ (%@)";
+/* No comment provided by engineer. */
+"Verify code with desktop" = "Zweryfikuj kod z komputera";
+
+/* No comment provided by engineer. */
+"Verify connection" = "Zweryfikuj połączenie";
+
/* No comment provided by engineer. */
"Verify connection security" = "Weryfikuj bezpieczeństwo połączenia";
+/* No comment provided by engineer. */
+"Verify connections" = "Zweryfikuj połączenia";
+
/* No comment provided by engineer. */
"Verify security code" = "Weryfikuj kod bezpieczeństwa";
@@ -3515,6 +3644,9 @@
/* No comment provided by engineer. */
"via relay" = "przez przekaźnik";
+/* No comment provided by engineer. */
+"Via secure quantum resistant protocol." = "Dzięki bezpiecznemu protokołowi odpornego kwantowo.";
+
/* No comment provided by engineer. */
"Video call" = "Połączenie wideo";
@@ -3554,6 +3686,9 @@
/* No comment provided by engineer. */
"waiting for confirmation…" = "oczekiwanie na potwierdzenie…";
+/* No comment provided by engineer. */
+"Waiting for desktop..." = "Oczekiwanie na komputer...";
+
/* No comment provided by engineer. */
"Waiting for file" = "Oczekiwanie na plik";
diff --git a/apps/ios/pl.lproj/SimpleX--iOS--InfoPlist.strings b/apps/ios/pl.lproj/SimpleX--iOS--InfoPlist.strings
index 92f6ba776..8c0f71f74 100644
--- a/apps/ios/pl.lproj/SimpleX--iOS--InfoPlist.strings
+++ b/apps/ios/pl.lproj/SimpleX--iOS--InfoPlist.strings
@@ -7,6 +7,9 @@
/* Privacy - Face ID Usage Description */
"NSFaceIDUsageDescription" = "SimpleX używa Face ID do lokalnego uwierzytelniania";
+/* Privacy - Local Network Usage Description */
+"NSLocalNetworkUsageDescription" = "SimpleX używa sieci lokalnej aby pozwolić na dostęp profilom czatu użytkownika przez aplikację komputerową na tej samej sieci.";
+
/* Privacy - Microphone Usage Description */
"NSMicrophoneUsageDescription" = "SimpleX potrzebuje dostępu do mikrofonu, w celu połączeń audio i wideo oraz nagrywania wiadomości głosowych.";
diff --git a/apps/ios/ru.lproj/Localizable.strings b/apps/ios/ru.lproj/Localizable.strings
index 7d094fcf2..03e4c4c50 100644
--- a/apps/ios/ru.lproj/Localizable.strings
+++ b/apps/ios/ru.lproj/Localizable.strings
@@ -545,6 +545,9 @@
/* No comment provided by engineer. */
"Authentication unavailable" = "Аутентификация недоступна";
+/* member role */
+"author" = "автор";
+
/* No comment provided by engineer. */
"Auto-accept" = "Автоприем";
@@ -786,6 +789,9 @@
/* server test step */
"Connect" = "Соединиться";
+/* No comment provided by engineer. */
+"Connect automatically" = "Соединяться автоматически";
+
/* No comment provided by engineer. */
"Connect incognito" = "Соединиться Инкогнито";
@@ -1287,6 +1293,9 @@
/* No comment provided by engineer. */
"Discover and join groups" = "Найдите и вступите в группы";
+/* No comment provided by engineer. */
+"Discover via local network" = "Обнаружение по локальной сети";
+
/* No comment provided by engineer. */
"Do it later" = "Отложить";
@@ -1722,6 +1731,9 @@
/* No comment provided by engineer. */
"For console" = "Для консоли";
+/* No comment provided by engineer. */
+"Found desktop" = "Компьютер найден";
+
/* No comment provided by engineer. */
"French interface" = "Французский интерфейс";
@@ -2397,6 +2409,9 @@
/* copied message info in history */
"no text" = "нет текста";
+/* No comment provided by engineer. */
+"Not compatible!" = "Несовместимая версия!";
+
/* No comment provided by engineer. */
"Notifications" = "Уведомления";
@@ -3671,6 +3686,9 @@
/* No comment provided by engineer. */
"waiting for confirmation…" = "ожидается подтверждение…";
+/* No comment provided by engineer. */
+"Waiting for desktop..." = "Ожидается подключение компьютера...";
+
/* No comment provided by engineer. */
"Waiting for file" = "Ожидается прием файла";
diff --git a/apps/multiplatform/common/src/commonMain/cpp/android/simplex-api.c b/apps/multiplatform/common/src/commonMain/cpp/android/simplex-api.c
index 54478425f..4fd62524d 100644
--- a/apps/multiplatform/common/src/commonMain/cpp/android/simplex-api.c
+++ b/apps/multiplatform/common/src/commonMain/cpp/android/simplex-api.c
@@ -49,6 +49,13 @@ Java_chat_simplex_common_platform_CoreKt_initHS(__unused JNIEnv *env, __unused j
// from simplex-chat
typedef long* chat_ctrl;
+/*
+ When you start using any new function from Haskell libraries,
+ you have to add the function name to the file libsimplex.dll.def in the root directory.
+ And do the same by adding it into flake.nix file in the root directory,
+ Otherwise, Windows and Android libraries cannot be built.
+*/
+
extern char *chat_migrate_init(const char *path, const char *key, const char *confirm, chat_ctrl *ctrl);
extern char *chat_send_cmd(chat_ctrl ctrl, const char *cmd);
extern char *chat_send_remote_cmd(chat_ctrl ctrl, const int rhId, const char *cmd);
diff --git a/apps/multiplatform/common/src/commonMain/cpp/desktop/simplex-api.c b/apps/multiplatform/common/src/commonMain/cpp/desktop/simplex-api.c
index e2cd7ed55..fb561dc38 100644
--- a/apps/multiplatform/common/src/commonMain/cpp/desktop/simplex-api.c
+++ b/apps/multiplatform/common/src/commonMain/cpp/desktop/simplex-api.c
@@ -8,8 +8,13 @@ void hs_init_with_rtsopts(int * argc, char **argv[]);
JNIEXPORT void JNICALL
Java_chat_simplex_common_platform_CoreKt_initHS(JNIEnv *env, jclass clazz) {
+#ifdef _WIN32
+ int argc = 4;
+ char *argv[] = {"simplex", "+RTS", "-A16m", "-H64m", NULL}; // non-moving GC is broken on windows with GHC 9.4-9.6.3
+#else
int argc = 5;
char *argv[] = {"simplex", "+RTS", "-A16m", "-H64m", "-xn", NULL}; // see android/simplex-api.c for details
+#endif
char **pargv = argv;
hs_init_with_rtsopts(&argc, &pargv);
}
@@ -17,6 +22,13 @@ Java_chat_simplex_common_platform_CoreKt_initHS(JNIEnv *env, jclass clazz) {
// from simplex-chat
typedef long* chat_ctrl;
+/*
+ When you start using any new function from Haskell libraries,
+ you have to add the function name to the file libsimplex.dll.def in the root directory.
+ And do the same by adding it into flake.nix file in the root directory,
+ Otherwise, Windows and Android libraries cannot be built.
+*/
+
extern char *chat_migrate_init(const char *path, const char *key, const char *confirm, chat_ctrl *ctrl);
extern char *chat_send_cmd(chat_ctrl ctrl, const char *cmd);
extern char *chat_send_remote_cmd(chat_ctrl ctrl, const int rhId, const char *cmd);
diff --git a/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/usersettings/UserProfilesView.kt b/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/usersettings/UserProfilesView.kt
index ec6d4e196..401c3afed 100644
--- a/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/usersettings/UserProfilesView.kt
+++ b/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/usersettings/UserProfilesView.kt
@@ -21,14 +21,13 @@ import androidx.compose.ui.text.font.FontWeight
import androidx.compose.ui.text.style.TextAlign
import androidx.compose.ui.unit.dp
import chat.simplex.common.model.*
-import chat.simplex.common.platform.chatPasswordHash
+import chat.simplex.common.platform.*
import chat.simplex.common.ui.theme.*
import chat.simplex.common.views.chat.item.ItemAction
import chat.simplex.common.views.chatlist.UserProfilePickerItem
import chat.simplex.common.views.chatlist.UserProfileRow
import chat.simplex.common.views.database.PassphraseField
import chat.simplex.common.views.helpers.*
-import chat.simplex.common.platform.appPlatform
import chat.simplex.common.views.CreateProfile
import chat.simplex.res.MR
import dev.icerock.moko.resources.StringResource
@@ -138,6 +137,9 @@ fun UserProfilesView(m: ChatModel, search: MutableState, profileHidden:
}
}
)
+ KeyChangeEffect(remember { m.currentRemoteHost }.value) {
+ ModalManager.start.closeModal()
+ }
}
@Composable
@@ -169,7 +171,7 @@ private fun UserProfilesLayout(
}
SectionSpacer()
}
- AppBarTitle(stringResource(MR.strings.your_chat_profiles))
+ AppBarTitle(stringResource(MR.strings.your_chat_profiles), hostDevice(remember { chatModel.remoteHostId() }))
SectionView {
for (user in filteredUsers) {
diff --git a/apps/multiplatform/common/src/commonMain/resources/MR/fr/strings.xml b/apps/multiplatform/common/src/commonMain/resources/MR/fr/strings.xml
index 82217745f..a9d315f68 100644
--- a/apps/multiplatform/common/src/commonMain/resources/MR/fr/strings.xml
+++ b/apps/multiplatform/common/src/commonMain/resources/MR/fr/strings.xml
@@ -1519,4 +1519,9 @@
Veuillez patienter le temps que le fichier soit chargé depuis le mobile lié.La version de l\'application de bureau %s n\'est pas compatible avec cette application.Vérifier la connexion
+ Connexion automatique
+ En attente du bureau…
+ Bureau trouvé
+ Non compatible !
+ Accessible via le réseau local
\ No newline at end of file
diff --git a/apps/multiplatform/common/src/commonMain/resources/MR/hu/strings.xml b/apps/multiplatform/common/src/commonMain/resources/MR/hu/strings.xml
index eb28386e5..21a56d7e9 100644
--- a/apps/multiplatform/common/src/commonMain/resources/MR/hu/strings.xml
+++ b/apps/multiplatform/common/src/commonMain/resources/MR/hu/strings.xml
@@ -356,4 +356,116 @@
Adatbázis downgrade?Chat kiürítéseAdatbázis titkosítási jelmondat meg lesz változtatva.
+ Kapcsolódás automatikusan
+ Adatbázis hiba
+ Adatbázis titkosítási jelmondat frissül és eltárolásra kerül a beállításokban.
+ Adatbázis ID
+ Adatbázis ID: %d
+ Adatbázis azonosítók és \"Transport Isolation\" opciók.
+ Az adatbázis titkosítás jelmondata megváltoztatásra és elmentésre kerül a Keystore-ban.
+ Az adatbázis titkosításra kerül és a jelmondat eltárolásra a beállításokban.
+ Szerver törlése
+ Eszközhitelesítés kikapcsolva. SimpleX zár kikapcsolása.
+ Letiltás
+ Letiltás minden csoportnak
+ Engedélyezve minden csoportnak
+ engedélyezve az ismerősnek
+ Eltűnő üzenetek tiltottak ebben a csoportban.
+ Azonosító törlés
+ %d hét
+ PC címe
+ %ds
+ Kézbesítési izagolások!
+ Eszközhitelesítés nincs bekapcsolva. Bekapcsolhatod a SimpleX zárat a Beállításokon keresztük, miután bekapcsoltad az eszközhitelesítést.
+ Titkosítás visszafejtési hiba
+ Eltűnik ekkor: %s
+ szerkesztve
+ Törlés
+ %d óra
+ %d hónap
+ Azonosító törlése?
+ Igazolások letiltása?
+ Az adatbázis jelmondat eltérő a Keystore-ba elmentettől.
+ Közvetlen üzenetek
+ E-mail
+ Letiltás mindenkinek
+ Fejlesztői eszközök
+ Adatbázis jelmondat
+ %d napok
+ Szétkapcsolva
+ Az adatbázis egy véletlenszerű jelmondattal van titkosítva, lecserélheted.
+ %dó
+ %dhét
+ Felfedezés helyi hálózatomn keresztül
+ Helyi csoportok felfedezése és csatolakozás
+ %d üzenet moderálva %s által
+ Eltűnő üzenet
+ Ne hozz létre azonosítót
+ Ne mutasd ismét
+ SimpleX Zár kikapcsolása
+ e2e titkosított
+ ESZKÖZ
+ e2e titkosított videóhívás
+ közvetlen
+ PC
+ %d perc
+ %d ismerős(-ök) kiválasztva
+ Engedélyez
+ %dhónap
+ A közvetlen üzenetek tagok között titltottak ebben a csoportban.
+ %d perc
+ Az adatbázis egy véletlenszerű jelmondattal van titkosítva. Kérlek cseréld le exportálás előtt!
+ Igazolások letiltása csoportoknak?
+ nap
+ %d nap
+ Chat archív törlése?
+ Duplikálódott megjelenítési név!
+ Letiltás(felülírások megtartásával)
+ "Adatbázis upgrade"
+ %d üzenet blokkolva
+ Eltűnik ekkor
+ %d hét
+ engedélyezve számodra
+ Eltűnő üzenetek
+ Törlés
+ Törlés és ismerős értesítése
+ letiltva
+ %d másodperc
+ Minden fájl törlése
+ Az adatbázis titkosításra kerül.
+ Adatbázis jelmondat és exportálás
+ Az adatbázis titkosításra kerül és a jelmondat eltárolásra a Keystore-ban.
+ Automatikus üzenet törlés engedélyezve?
+ Törlés
+ az adatbázis verzió újabb, mint az app, de nincs lefelé migráció eddig: %s
+ Leírás
+ %d óra
+ %dp
+ Szétkapcsolás
+ Szerkesztés
+ Letiltás(csoport felülírások megtartásával)
+ %d csoportesemény
+ %d hónap
+ Csoport profil szerkesztése
+ e2e titkosított hanghívás
+ %d s
+ Decentralizált
+ Dekódolási hiba
+ Kép szerkesztése
+ Értesítéásek letiltása
+ Eszközök
+ Látható helyi hálózaton
+ Ne engedélyezd
+ Archívum törlése
+ Eltűnő üzenetek tiltottak ebben a chatben.
+ alap (%s)
+ duplikálódott üzenet
+ Számítógép leválasztása?
+ A számítógépes app verzió %s inem kompatibilis ezzel az appal.
+ Kézbesítés
+ %d fájl %s összméretben
+ Adatbázis jelmondat szükséges chat megnyitásához.
+ %dn
+ Engedélyeve mindenki számára
+ Kézbesítési izagolások kikapcsolva!
\ No newline at end of file
diff --git a/apps/multiplatform/common/src/commonMain/resources/MR/pl/strings.xml b/apps/multiplatform/common/src/commonMain/resources/MR/pl/strings.xml
index e61f040a8..a9549080a 100644
--- a/apps/multiplatform/common/src/commonMain/resources/MR/pl/strings.xml
+++ b/apps/multiplatform/common/src/commonMain/resources/MR/pl/strings.xml
@@ -1461,4 +1461,67 @@
Pokaż konsolę w nowym oknieBłąd renegocjacji szyfrowaniaRenegocjacja szyfrowania nie powiodła się.
+ Blokuj członków grupy
+ Utwórz grupę używając losowego profilu.
+ Połączony komputer
+ Łącz automatycznie
+ Adres komputera
+ Lepsze grupy
+ Komputer
+ Połączony do komputera
+ Łączenie z komputerem
+ Połączony telefon
+ Połączenie zakończone
+ Połącz do komputera
+ autor
+ Połączony do telefonu
+ Zły adres komputera
+ Aplikacja komputerowa %s nie jest kompatybilna z tą aplikacją.
+ Nowy urządzenie mobilne
+ Tylko jedno urządzenie może działać w tym samym czasie
+ Połącz mobile i komputerowe aplikacje! 🔗
+ Dzięki bezpiecznemu protokołowi odpornego kwantowo.
+ Użyj z komputera w aplikacji mobilnej i zeskanuj kod QR.]]>
+ Aby ukryć niechciane wiadomości.
+ Niekompatybilna wersja
+ (nowy)]]>
+ Odłączyć komputer?
+ Połączone opcje komputera
+ Połączone komputery
+ Odkryj przez sieć lokalną
+ Grupy incognito
+ To urządzenie
+ %s został rozłączony]]>
+ Oczekiwanie na komputer…
+ Szybsze dołączenie i bardziej niezawodne wiadomości.
+ Połączone telefony
+ Nazwa tego urządzenia
+ %s]]>
+ Ładowanie pliku
+ Znaleziono komputer
+ Urządzenia komputerowe
+ Nie kompatybilny!
+ Połącz z telefonem
+ Użyj z komputera
+ Kod sesji
+ (to urządzenie v%s)]]>
+ Odłącz
+ Nazwa urządzenia zostanie udostępniona z połączonym klientem mobilnym.
+ Zweryfikuj kod na telefonie
+ Podaj nazwę urządzenia…
+ Błąd
+ Rozłącz
+ Wklej adres komputera
+ Zweryfikuj kod z komputera
+ Zeskanuj kod QR z komputera
+ Urządzenia
+ Odkrywane przez sieć lokalna
+ - opcjonalnie powiadamiaj usunięte kontakty.
+\n- nazwy profili ze spacją.
+\n- i wiele więcej!
+ Zeskanuj z telefonu
+ Zweryfikuj połączenia
+ Rozłączyć komputer?
+ Proszę poczekać na załadowanie pliku z połączonego telefonu
+ Zweryfikuj połączenie
\ No newline at end of file
diff --git a/apps/multiplatform/common/src/commonMain/resources/MR/ru/strings.xml b/apps/multiplatform/common/src/commonMain/resources/MR/ru/strings.xml
index 6f13b3cf5..dc5771316 100644
--- a/apps/multiplatform/common/src/commonMain/resources/MR/ru/strings.xml
+++ b/apps/multiplatform/common/src/commonMain/resources/MR/ru/strings.xml
@@ -1507,7 +1507,7 @@
Свяжите мобильное и настольное приложения! 🔗%d сообщений помечено удалённымиГруппа уже существует!
- Использовать с компьютера в мобильном приложении и сосканируйте QR код]]>
+ Использовать с компьютера в мобильном приложении и сосканируйте QR код.]]>Уже соединяется!Несовместимая версия(новое)]]>
@@ -1520,7 +1520,7 @@
Инкогнито группыВступление в группу уже начато!%d сообщений модерировано членом %s
- %s]]>
+ %s был отключен]]>Быстрое вступление и надежная доставка сообщений.Соединиться с самим собой?Связанные мобильные
@@ -1575,7 +1575,7 @@
Чтобы скрыть нежелательные сообщения.Забыть компьютер?Видео невозможно декодировать. Пожалуйста, попробуйте другое видео или свяжитесь с разработчиками.
- %@ соединен(а)
+ %s соединен(а)%s, %s и %d членов группыЭто устройствоРазблокировать члена группы
@@ -1599,4 +1599,11 @@
Показывать консоль в новом окнеПроверять соединенияПроверить соединение
+ Соединяться автоматически
+ Ожидается подключение…
+ %s]]>
+ Компьютер найден
+ Несовместимая версия!
+ автор
+ Найти через локальную сеть
\ No newline at end of file
diff --git a/apps/multiplatform/gradle.properties b/apps/multiplatform/gradle.properties
index 9c817f08f..570e982e2 100644
--- a/apps/multiplatform/gradle.properties
+++ b/apps/multiplatform/gradle.properties
@@ -25,11 +25,11 @@ android.nonTransitiveRClass=true
android.enableJetifier=true
kotlin.mpp.androidSourceSetLayoutVersion=2
-android.version_name=5.4-beta.4
-android.version_code=161
+android.version_name=5.4
+android.version_code=162
-desktop.version_name=5.4-beta.4
-desktop.version_code=17
+desktop.version_name=5.4
+desktop.version_code=18
kotlin.version=1.8.20
gradle.plugin.version=7.4.2
diff --git a/apps/simplex-directory-service/src/Directory/Events.hs b/apps/simplex-directory-service/src/Directory/Events.hs
index dab9ceb77..89231e4db 100644
--- a/apps/simplex-directory-service/src/Directory/Events.hs
+++ b/apps/simplex-directory-service/src/Directory/Events.hs
@@ -14,6 +14,7 @@ module Directory.Events
DirectoryRole (..),
SDirectoryRole (..),
crDirectoryEvent,
+ viewName,
)
where
@@ -158,4 +159,13 @@ directoryCmdP =
DCListLastGroups_ -> DCListLastGroups <$> (A.space *> A.decimal <|> pure 10)
DCExecuteCommand_ -> DCExecuteCommand . T.unpack <$> (A.space *> A.takeText)
where
- gc f = f <$> (A.space *> A.decimal <* A.char ':') <*> A.takeTill (== ' ')
+ gc f = f <$> (A.space *> A.decimal <* A.char ':') <*> displayNameP
+ displayNameP = quoted '\'' <|> takeNameTill (== ' ')
+ takeNameTill p =
+ A.peekChar' >>= \c ->
+ if refChar c then A.takeTill p else fail "invalid first character in display name"
+ quoted c = A.char c *> takeNameTill (== c) <* A.char c
+ refChar c = c > ' ' && c /= '#' && c /= '@'
+
+viewName :: String -> String
+viewName n = if ' ' `elem` n then "'" <> n <> "'" else n
diff --git a/apps/simplex-directory-service/src/Directory/Service.hs b/apps/simplex-directory-service/src/Directory/Service.hs
index 5a53e1a36..291457591 100644
--- a/apps/simplex-directory-service/src/Directory/Service.hs
+++ b/apps/simplex-directory-service/src/Directory/Service.hs
@@ -156,7 +156,7 @@ directoryService st DirectoryOpts {superUsers, serviceName, testing} user@User {
askConfirmation = do
ugrId <- addGroupReg st ct g GRSPendingConfirmation
sendMessage cc ct $ T.unpack $ "The group " <> displayName <> " (" <> fullName <> ") is already submitted to the directory.\nTo confirm the registration, please send:"
- sendMessage cc ct $ "/confirm " <> show ugrId <> ":" <> T.unpack displayName
+ sendMessage cc ct $ "/confirm " <> show ugrId <> ":" <> viewName (T.unpack displayName)
badRolesMsg :: GroupRolesStatus -> Maybe String
badRolesMsg = \case
@@ -301,7 +301,7 @@ directoryService st DirectoryOpts {superUsers, serviceName, testing} user@User {
msg = maybe (MCText text) (\image -> MCImage {text, image}) image'
withSuperUsers $ \cId -> do
sendComposedMessage' cc cId Nothing msg
- sendMessage' cc cId $ "/approve " <> show dbGroupId <> ":" <> T.unpack displayName <> " " <> show gaId
+ sendMessage' cc cId $ "/approve " <> show dbGroupId <> ":" <> viewName (T.unpack displayName) <> " " <> show gaId
deContactRoleChanged :: GroupInfo -> ContactId -> GroupMemberRole -> IO ()
deContactRoleChanged g@GroupInfo {membership = GroupMember {memberRole = serviceRole}} ctId contactRole =
diff --git a/libsimplex.dll.def b/libsimplex.dll.def
index 2d6e813d7..4255f4409 100644
--- a/libsimplex.dll.def
+++ b/libsimplex.dll.def
@@ -1,6 +1,7 @@
LIBRARY libsimplex
EXPORTS
hs_init
+ hs_init_with_rtsopts
chat_migrate_init
chat_send_cmd
chat_send_remote_cmd
diff --git a/tests/Bots/DirectoryTests.hs b/tests/Bots/DirectoryTests.hs
index 730e516a1..3038f0849 100644
--- a/tests/Bots/DirectoryTests.hs
+++ b/tests/Bots/DirectoryTests.hs
@@ -10,6 +10,7 @@ import ChatTests.Utils
import Control.Concurrent (forkIO, killThread, threadDelay)
import Control.Exception (finally)
import Control.Monad (forM_)
+import Directory.Events (viewName)
import Directory.Options
import Directory.Service
import Directory.Store
@@ -27,6 +28,7 @@ directoryServiceTests = do
it "should register group" testDirectoryService
it "should suspend and resume group" testSuspendResume
it "should join found group via link" testJoinGroup
+ it "should support group names with spaces" testGroupNameWithSpaces
describe "de-listing the group" $ do
it "should de-list if owner leaves the group" testDelistedOwnerLeaves
it "should de-list if owner is removed from the group" testDelistedOwnerRemoved
@@ -242,6 +244,24 @@ testJoinGroup tmp =
cath <## "#privacy: new member dan is connected"
]
+testGroupNameWithSpaces :: HasCallStack => FilePath -> IO ()
+testGroupNameWithSpaces tmp =
+ withDirectoryService tmp $ \superUser dsLink ->
+ withNewTestChat tmp "bob" bobProfile $ \bob -> do
+ bob `connectVia` dsLink
+ registerGroup superUser bob "Privacy & Security" ""
+ groupFound bob "Privacy & Security"
+ superUser #> "@SimpleX-Directory /suspend 1:'Privacy & Security'"
+ superUser <# "SimpleX-Directory> > /suspend 1:'Privacy & Security'"
+ superUser <## " Group suspended!"
+ bob <# "SimpleX-Directory> The group ID 1 (Privacy & Security) is suspended and hidden from directory. Please contact the administrators."
+ groupNotFound bob "privacy"
+ superUser #> "@SimpleX-Directory /resume 1:'Privacy & Security'"
+ superUser <# "SimpleX-Directory> > /resume 1:'Privacy & Security'"
+ superUser <## " Group listing resumed!"
+ bob <# "SimpleX-Directory> The group ID 1 (Privacy & Security) is listed in the directory again!"
+ groupFound bob "Privacy & Security"
+
testDelistedOwnerLeaves :: HasCallStack => FilePath -> IO ()
testDelistedOwnerLeaves tmp =
withDirectoryServiceCfg tmp testCfgCreateGroupDirect $ \superUser dsLink ->
@@ -839,16 +859,16 @@ registerGroupId su u n fn gId ugId = do
submitGroup :: TestCC -> String -> String -> IO ()
submitGroup u n fn = do
- u ##> ("/g " <> n <> " " <> fn)
- u <## ("group #" <> n <> " (" <> fn <> ") is created")
- u <## ("to add members use /a " <> n <> " or /create link #" <> n)
- u ##> ("/a " <> n <> " SimpleX-Directory admin")
- u <## ("invitation to join the group #" <> n <> " sent to SimpleX-Directory")
+ u ##> ("/g " <> viewName n <> if null fn then "" else " " <> fn)
+ u <## ("group #" <> viewName n <> (if null fn then "" else " (" <> fn <> ")") <> " is created")
+ u <## ("to add members use /a " <> viewName n <> " or /create link #" <> viewName n)
+ u ##> ("/a " <> viewName n <> " SimpleX-Directory admin")
+ u <## ("invitation to join the group #" <> viewName n <> " sent to SimpleX-Directory")
groupAccepted :: TestCC -> String -> IO String
groupAccepted u n = do
u <# ("SimpleX-Directory> Joining the group " <> n <> "…")
- u <## ("#" <> n <> ": SimpleX-Directory joined the group")
+ u <## ("#" <> viewName n <> ": SimpleX-Directory joined the group")
u <# ("SimpleX-Directory> Joined the group " <> n <> ", creating the link…")
u <# "SimpleX-Directory> Created the public link to join the group via this directory service that is always online."
u <## ""
@@ -868,7 +888,7 @@ completeRegistrationId su u n fn welcomeWithLink gId ugId = do
updateProfileWithLink :: TestCC -> String -> String -> Int -> IO ()
updateProfileWithLink u n welcomeWithLink ugId = do
- u ##> ("/set welcome " <> n <> " " <> welcomeWithLink)
+ u ##> ("/set welcome " <> viewName n <> " " <> welcomeWithLink)
u <## "description changed to:"
u <## welcomeWithLink
u <# ("SimpleX-Directory> Thank you! The group link for ID " <> show ugId <> " (" <> n <> ") is added to the welcome message.")
@@ -878,13 +898,13 @@ notifySuperUser :: TestCC -> TestCC -> String -> String -> String -> Int -> IO (
notifySuperUser su u n fn welcomeWithLink gId = do
uName <- userName u
su <# ("SimpleX-Directory> " <> uName <> " submitted the group ID " <> show gId <> ":")
- su <## (n <> " (" <> fn <> ")")
+ su <## (n <> if null fn then "" else " (" <> fn <> ")")
su <## "Welcome message:"
su <## welcomeWithLink
su .<## "members"
su <## ""
su <## "To approve send:"
- let approve = "/approve " <> show gId <> ":" <> n <> " 1"
+ let approve = "/approve " <> show gId <> ":" <> viewName n <> " 1"
su <# ("SimpleX-Directory> " <> approve)
approveRegistration :: TestCC -> TestCC -> String -> Int -> IO ()
@@ -893,7 +913,7 @@ approveRegistration su u n gId =
approveRegistrationId :: TestCC -> TestCC -> String -> Int -> Int -> IO ()
approveRegistrationId su u n gId ugId = do
- let approve = "/approve " <> show gId <> ":" <> n <> " 1"
+ let approve = "/approve " <> show gId <> ":" <> viewName n <> " 1"
su #> ("@SimpleX-Directory " <> approve)
su <# ("SimpleX-Directory> > " <> approve)
su <## " Group approved!"
@@ -947,7 +967,7 @@ groupFoundN count u name = do
u #> ("@SimpleX-Directory " <> name)
u <# ("SimpleX-Directory> > " <> name)
u <## " Found 1 group(s)"
- u <#. ("SimpleX-Directory> " <> name <> " (")
+ u <#. ("SimpleX-Directory> " <> name)
u <## "Welcome message:"
u <##. "Link to join the group "
u <## (show count <> " members")