Merge tag 'v5.4.0' into master-android

This commit is contained in:
Evgeny Poberezkin 2023-11-25 11:23:23 +00:00
commit dc8ca4cf89
24 changed files with 571 additions and 50 deletions

View File

@ -1196,6 +1196,7 @@
</trans-unit>
<trans-unit id="Connect automatically" xml:space="preserve">
<source>Connect automatically</source>
<target>Automatisch verbinden</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Connect incognito" xml:space="preserve">
@ -1914,6 +1915,7 @@ Das kann nicht rückgängig gemacht werden!</target>
</trans-unit>
<trans-unit id="Discover via local network" xml:space="preserve">
<source>Discover via local network</source>
<target>Lokales Netzwerk durchsuchen</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Do NOT use SimpleX for emergency calls." xml:space="preserve">
@ -2558,6 +2560,7 @@ Das kann nicht rückgängig gemacht werden!</target>
</trans-unit>
<trans-unit id="Found desktop" xml:space="preserve">
<source>Found desktop</source>
<target>Gefundener Desktop</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="French interface" xml:space="preserve">
@ -3527,6 +3530,7 @@ Das ist Ihr Link für die Gruppe %@!</target>
</trans-unit>
<trans-unit id="Not compatible!" xml:space="preserve">
<source>Not compatible!</source>
<target>Nicht kompatibel!</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Notifications" xml:space="preserve">
@ -5501,6 +5505,7 @@ Bitten Sie Ihren Kontakt darum einen weiteren Verbindungs-Link zu erzeugen, um s
</trans-unit>
<trans-unit id="Waiting for desktop..." xml:space="preserve">
<source>Waiting for desktop...</source>
<target>Es wird auf den Desktop gewartet...</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Waiting for file" xml:space="preserve">
@ -6050,6 +6055,7 @@ SimpleX-Server können Ihr Profil nicht einsehen.</target>
</trans-unit>
<trans-unit id="author" xml:space="preserve">
<source>author</source>
<target>Autor</target>
<note>member role</note>
</trans-unit>
<trans-unit id="bad message ID" xml:space="preserve">

View File

@ -1196,6 +1196,7 @@
</trans-unit>
<trans-unit id="Connect automatically" xml:space="preserve">
<source>Connect automatically</source>
<target>Connexion automatique</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Connect incognito" xml:space="preserve">
@ -1914,6 +1915,7 @@ Cette opération ne peut être annulée !</target>
</trans-unit>
<trans-unit id="Discover via local network" xml:space="preserve">
<source>Discover via local network</source>
<target>Rechercher sur le réseau</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Do NOT use SimpleX for emergency calls." xml:space="preserve">
@ -2558,6 +2560,7 @@ Cette opération ne peut être annulée !</target>
</trans-unit>
<trans-unit id="Found desktop" xml:space="preserve">
<source>Found desktop</source>
<target>Bureau trouvé</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="French interface" xml:space="preserve">
@ -3527,6 +3530,7 @@ Voici votre lien pour le groupe %@ !</target>
</trans-unit>
<trans-unit id="Not compatible!" xml:space="preserve">
<source>Not compatible!</source>
<target>Non compatible !</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Notifications" xml:space="preserve">
@ -5501,6 +5505,7 @@ Pour vous connecter, veuillez demander à votre contact de créer un autre lien
</trans-unit>
<trans-unit id="Waiting for desktop..." xml:space="preserve">
<source>Waiting for desktop...</source>
<target>En attente du bureau...</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Waiting for file" xml:space="preserve">
@ -6050,6 +6055,7 @@ Les serveurs SimpleX ne peuvent pas voir votre profil.</target>
</trans-unit>
<trans-unit id="author" xml:space="preserve">
<source>author</source>
<target>auteur</target>
<note>member role</note>
</trans-unit>
<trans-unit id="bad message ID" xml:space="preserve">

View File

@ -1196,6 +1196,7 @@
</trans-unit>
<trans-unit id="Connect automatically" xml:space="preserve">
<source>Connect automatically</source>
<target>Automatisch verbinden</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Connect incognito" xml:space="preserve">
@ -1914,6 +1915,7 @@ Dit kan niet ongedaan gemaakt worden!</target>
</trans-unit>
<trans-unit id="Discover via local network" xml:space="preserve">
<source>Discover via local network</source>
<target>Ontdek via het lokale netwerk</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Do NOT use SimpleX for emergency calls." xml:space="preserve">
@ -2558,6 +2560,7 @@ Dit kan niet ongedaan gemaakt worden!</target>
</trans-unit>
<trans-unit id="Found desktop" xml:space="preserve">
<source>Found desktop</source>
<target>Desktop gevonden</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="French interface" xml:space="preserve">
@ -3527,6 +3530,7 @@ Dit is jouw link voor groep %@!</target>
</trans-unit>
<trans-unit id="Not compatible!" xml:space="preserve">
<source>Not compatible!</source>
<target>Niet compatibel!</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Notifications" xml:space="preserve">
@ -5501,6 +5505,7 @@ Om verbinding te maken, vraagt u uw contact om een andere verbinding link te mak
</trans-unit>
<trans-unit id="Waiting for desktop..." xml:space="preserve">
<source>Waiting for desktop...</source>
<target>Wachten op desktop...</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Waiting for file" xml:space="preserve">
@ -6050,6 +6055,7 @@ SimpleX servers kunnen uw profiel niet zien.</target>
</trans-unit>
<trans-unit id="author" xml:space="preserve">
<source>author</source>
<target>auteur</target>
<note>member role</note>
</trans-unit>
<trans-unit id="bad message ID" xml:space="preserve">

View File

@ -299,10 +299,12 @@
</trans-unit>
<trans-unit id="(new)" xml:space="preserve">
<source>(new)</source>
<target>(nowy)</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="(this device v%@)" xml:space="preserve">
<source>(this device v%@)</source>
<target>(to urządzenie v%@)</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id=")" xml:space="preserve">
@ -397,6 +399,9 @@
<source>- optionally notify deleted contacts.
- profile names with spaces.
- and more!</source>
<target>- opcjonalnie powiadamiaj usunięte kontakty.
- nazwy profili ze spacją.
- i wiele więcej!</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="- voice messages up to 5 minutes.&#10;- custom time to disappear.&#10;- editing history." xml:space="preserve">
@ -885,6 +890,7 @@
</trans-unit>
<trans-unit id="Bad desktop address" xml:space="preserve">
<source>Bad desktop address</source>
<target>Zły adres komputera</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Bad message ID" xml:space="preserve">
@ -899,6 +905,7 @@
</trans-unit>
<trans-unit id="Better groups" xml:space="preserve">
<source>Better groups</source>
<target>Lepsze grupy</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Better messages" xml:space="preserve">
@ -913,6 +920,7 @@
</trans-unit>
<trans-unit id="Block group members" xml:space="preserve">
<source>Block group members</source>
<target>Blokuj członków grupy</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Block member" xml:space="preserve">
@ -1188,6 +1196,7 @@
</trans-unit>
<trans-unit id="Connect automatically" xml:space="preserve">
<source>Connect automatically</source>
<target>Łącz automatycznie</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Connect incognito" xml:space="preserve">
@ -1197,6 +1206,7 @@
</trans-unit>
<trans-unit id="Connect to desktop" xml:space="preserve">
<source>Connect to desktop</source>
<target>Połącz do komputera</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Connect to yourself?" xml:space="preserve">
@ -1245,10 +1255,12 @@ To jest twój jednorazowy link!</target>
</trans-unit>
<trans-unit id="Connected desktop" xml:space="preserve">
<source>Connected desktop</source>
<target>Połączony komputer</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Connected to desktop" xml:space="preserve">
<source>Connected to desktop</source>
<target>Połączony do komputera</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Connecting server…" xml:space="preserve">
@ -1263,6 +1275,7 @@ To jest twój jednorazowy link!</target>
</trans-unit>
<trans-unit id="Connecting to desktop" xml:space="preserve">
<source>Connecting to desktop</source>
<target>Łączenie z komputerem</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Connection" xml:space="preserve">
@ -1287,6 +1300,7 @@ To jest twój jednorazowy link!</target>
</trans-unit>
<trans-unit id="Connection terminated" xml:space="preserve">
<source>Connection terminated</source>
<target>Połączenie zakończone</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Connection timeout" xml:space="preserve">
@ -1371,6 +1385,7 @@ To jest twój jednorazowy link!</target>
</trans-unit>
<trans-unit id="Create a group using a random profile." xml:space="preserve">
<source>Create a group using a random profile.</source>
<target>Utwórz grupę używając losowego profilu.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Create an address to let people connect with you." xml:space="preserve">
@ -1785,14 +1800,17 @@ To nie może być cofnięte!</target>
</trans-unit>
<trans-unit id="Desktop address" xml:space="preserve">
<source>Desktop address</source>
<target>Adres komputera</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Desktop app version %@ is not compatible with this app." xml:space="preserve">
<source>Desktop app version %@ is not compatible with this app.</source>
<target>Wersja aplikacji komputerowej %@ nie jest kompatybilna z tą aplikacją.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Desktop devices" xml:space="preserve">
<source>Desktop devices</source>
<target>Urządzenia komputerowe</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Develop" xml:space="preserve">
@ -1887,6 +1905,7 @@ To nie może być cofnięte!</target>
</trans-unit>
<trans-unit id="Disconnect desktop?" xml:space="preserve">
<source>Disconnect desktop?</source>
<target>Rozłączyć komputer?</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Discover and join groups" xml:space="preserve">
@ -1896,6 +1915,7 @@ To nie może być cofnięte!</target>
</trans-unit>
<trans-unit id="Discover via local network" xml:space="preserve">
<source>Discover via local network</source>
<target>Odkryj przez sieć lokalną</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Do NOT use SimpleX for emergency calls." xml:space="preserve">
@ -2070,10 +2090,12 @@ To nie może być cofnięte!</target>
</trans-unit>
<trans-unit id="Encryption re-negotiation error" xml:space="preserve">
<source>Encryption re-negotiation error</source>
<target>Błąd renegocjacji szyfrowania</target>
<note>message decrypt error item</note>
</trans-unit>
<trans-unit id="Encryption re-negotiation failed." xml:space="preserve">
<source>Encryption re-negotiation failed.</source>
<target>Renegocjacja szyfrowania nie powiodła się.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Enter Passcode" xml:space="preserve">
@ -2108,6 +2130,7 @@ To nie może być cofnięte!</target>
</trans-unit>
<trans-unit id="Enter this device name…" xml:space="preserve">
<source>Enter this device name…</source>
<target>Podaj nazwę urządzenia…</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Enter welcome message…" xml:space="preserve">
@ -2437,6 +2460,7 @@ To nie może być cofnięte!</target>
</trans-unit>
<trans-unit id="Faster joining and more reliable messages." xml:space="preserve">
<source>Faster joining and more reliable messages.</source>
<target>Szybsze dołączenie i bardziej niezawodne wiadomości.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Favorite" xml:space="preserve">
@ -2536,6 +2560,7 @@ To nie może być cofnięte!</target>
</trans-unit>
<trans-unit id="Found desktop" xml:space="preserve">
<source>Found desktop</source>
<target>Znaleziono komputer</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="French interface" xml:space="preserve">
@ -2865,6 +2890,7 @@ To nie może być cofnięte!</target>
</trans-unit>
<trans-unit id="Incognito groups" xml:space="preserve">
<source>Incognito groups</source>
<target>Grupy incognito</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Incognito mode" xml:space="preserve">
@ -2899,6 +2925,7 @@ To nie może być cofnięte!</target>
</trans-unit>
<trans-unit id="Incompatible version" xml:space="preserve">
<source>Incompatible version</source>
<target>Niekompatybilna wersja</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Incorrect passcode" xml:space="preserve">
@ -3073,6 +3100,7 @@ To jest twój link do grupy %@!</target>
</trans-unit>
<trans-unit id="Keep the app open to use it from desktop" xml:space="preserve">
<source>Keep the app open to use it from desktop</source>
<target>Zostaw aplikację otwartą i używaj ją z komputera</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Keep your connections" xml:space="preserve">
@ -3137,14 +3165,17 @@ To jest twój link do grupy %@!</target>
</trans-unit>
<trans-unit id="Link mobile and desktop apps! 🔗" xml:space="preserve">
<source>Link mobile and desktop apps! 🔗</source>
<target>Połącz mobile i komputerowe aplikacje! 🔗</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Linked desktop options" xml:space="preserve">
<source>Linked desktop options</source>
<target>Połączone opcje komputera</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Linked desktops" xml:space="preserve">
<source>Linked desktops</source>
<target>Połączone komputery</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Live message!" xml:space="preserve">
@ -3499,6 +3530,7 @@ To jest twój link do grupy %@!</target>
</trans-unit>
<trans-unit id="Not compatible!" xml:space="preserve">
<source>Not compatible!</source>
<target>Nie kompatybilny!</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Notifications" xml:space="preserve">
@ -3722,6 +3754,7 @@ To jest twój link do grupy %@!</target>
</trans-unit>
<trans-unit id="Paste desktop address" xml:space="preserve">
<source>Paste desktop address</source>
<target>Wklej adres komputera</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Paste image" xml:space="preserve">
@ -4321,6 +4354,7 @@ To jest twój link do grupy %@!</target>
</trans-unit>
<trans-unit id="Scan QR code from desktop" xml:space="preserve">
<source>Scan QR code from desktop</source>
<target>Zeskanuj kod QR z komputera</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Scan code" xml:space="preserve">
@ -4545,6 +4579,7 @@ To jest twój link do grupy %@!</target>
</trans-unit>
<trans-unit id="Session code" xml:space="preserve">
<source>Session code</source>
<target>Kod sesji</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Set 1 day" xml:space="preserve">
@ -5046,6 +5081,7 @@ Może się to zdarzyć z powodu jakiegoś błędu lub gdy połączenie jest skom
</trans-unit>
<trans-unit id="This device name" xml:space="preserve">
<source>This device name</source>
<target>Nazwa tego urządzenia</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="This group has over %lld members, delivery receipts are not sent." xml:space="preserve">
@ -5085,6 +5121,7 @@ Może się to zdarzyć z powodu jakiegoś błędu lub gdy połączenie jest skom
</trans-unit>
<trans-unit id="To hide unwanted messages." xml:space="preserve">
<source>To hide unwanted messages.</source>
<target>Aby ukryć niechciane wiadomości.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="To make a new connection" xml:space="preserve">
@ -5248,10 +5285,12 @@ Aby się połączyć, poproś Twój kontakt o utworzenie kolejnego linku połąc
</trans-unit>
<trans-unit id="Unlink" xml:space="preserve">
<source>Unlink</source>
<target>Odłącz</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Unlink desktop?" xml:space="preserve">
<source>Unlink desktop?</source>
<target>Odłączyć komputer?</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Unlock" xml:space="preserve">
@ -5346,6 +5385,7 @@ Aby się połączyć, poproś Twój kontakt o utworzenie kolejnego linku połąc
</trans-unit>
<trans-unit id="Use from desktop" xml:space="preserve">
<source>Use from desktop</source>
<target>Użyj z komputera</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Use iOS call interface" xml:space="preserve">
@ -5380,10 +5420,12 @@ Aby się połączyć, poproś Twój kontakt o utworzenie kolejnego linku połąc
</trans-unit>
<trans-unit id="Verify code with desktop" xml:space="preserve">
<source>Verify code with desktop</source>
<target>Zweryfikuj kod z komputera</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Verify connection" xml:space="preserve">
<source>Verify connection</source>
<target>Zweryfikuj połączenie</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Verify connection security" xml:space="preserve">
@ -5393,6 +5435,7 @@ Aby się połączyć, poproś Twój kontakt o utworzenie kolejnego linku połąc
</trans-unit>
<trans-unit id="Verify connections" xml:space="preserve">
<source>Verify connections</source>
<target>Zweryfikuj połączenia</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Verify security code" xml:space="preserve">
@ -5407,6 +5450,7 @@ Aby się połączyć, poproś Twój kontakt o utworzenie kolejnego linku połąc
</trans-unit>
<trans-unit id="Via secure quantum resistant protocol." xml:space="preserve">
<source>Via secure quantum resistant protocol.</source>
<target>Dzięki bezpiecznemu protokołowi odpornego kwantowo.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Video call" xml:space="preserve">
@ -5461,6 +5505,7 @@ Aby się połączyć, poproś Twój kontakt o utworzenie kolejnego linku połąc
</trans-unit>
<trans-unit id="Waiting for desktop..." xml:space="preserve">
<source>Waiting for desktop...</source>
<target>Oczekiwanie na komputer...</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Waiting for file" xml:space="preserve">
@ -6010,6 +6055,7 @@ Serwery SimpleX nie mogą zobaczyć Twojego profilu.</target>
</trans-unit>
<trans-unit id="author" xml:space="preserve">
<source>author</source>
<target>autor</target>
<note>member role</note>
</trans-unit>
<trans-unit id="bad message ID" xml:space="preserve">
@ -6596,6 +6642,7 @@ Serwery SimpleX nie mogą zobaczyć Twojego profilu.</target>
</trans-unit>
<trans-unit id="v%@" xml:space="preserve">
<source>v%@</source>
<target>v%@</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="v%@ (%@)" xml:space="preserve">
@ -6737,6 +6784,7 @@ Serwery SimpleX nie mogą zobaczyć Twojego profilu.</target>
</trans-unit>
<trans-unit id="NSLocalNetworkUsageDescription" xml:space="preserve">
<source>SimpleX uses local network access to allow using user chat profile via desktop app on the same network.</source>
<target>SimpleX używa sieci lokalnej aby pozwolić na dostęp profilom czatu użytkownika przez aplikację komputerową na tej samej sieci.</target>
<note>Privacy - Local Network Usage Description</note>
</trans-unit>
<trans-unit id="NSMicrophoneUsageDescription" xml:space="preserve">

View File

@ -1196,6 +1196,7 @@
</trans-unit>
<trans-unit id="Connect automatically" xml:space="preserve">
<source>Connect automatically</source>
<target>Соединяться автоматически</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Connect incognito" xml:space="preserve">
@ -1914,6 +1915,7 @@ This cannot be undone!</source>
</trans-unit>
<trans-unit id="Discover via local network" xml:space="preserve">
<source>Discover via local network</source>
<target>Обнаружение по локальной сети</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Do NOT use SimpleX for emergency calls." xml:space="preserve">
@ -2558,6 +2560,7 @@ This cannot be undone!</source>
</trans-unit>
<trans-unit id="Found desktop" xml:space="preserve">
<source>Found desktop</source>
<target>Компьютер найден</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="French interface" xml:space="preserve">
@ -3527,6 +3530,7 @@ This is your link for group %@!</source>
</trans-unit>
<trans-unit id="Not compatible!" xml:space="preserve">
<source>Not compatible!</source>
<target>Несовместимая версия!</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Notifications" xml:space="preserve">
@ -5501,6 +5505,7 @@ To connect, please ask your contact to create another connection link and check
</trans-unit>
<trans-unit id="Waiting for desktop..." xml:space="preserve">
<source>Waiting for desktop...</source>
<target>Ожидается подключение компьютера...</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Waiting for file" xml:space="preserve">
@ -6050,6 +6055,7 @@ SimpleX серверы не могут получить доступ к Ваше
</trans-unit>
<trans-unit id="author" xml:space="preserve">
<source>author</source>
<target>автор</target>
<note>member role</note>
</trans-unit>
<trans-unit id="bad message ID" xml:space="preserve">

View File

@ -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 = "<group>"; };
5CD67B8D2B0E858A00C510B1 /* hs_init.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = hs_init.h; sourceTree = "<group>"; };
5CD67B8E2B0E858A00C510B1 /* hs_init.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = hs_init.c; sourceTree = "<group>"; };
5CD67B912B11416600C510B1 /* libHSsimplex-chat-5.4.0.6-95eerlCBwIgI8jyla1GCr9.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = "libHSsimplex-chat-5.4.0.6-95eerlCBwIgI8jyla1GCr9.a"; sourceTree = "<group>"; };
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 = "<group>"; };
5CD67B932B11416600C510B1 /* libffi.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libffi.a; sourceTree = "<group>"; };
5CD67B942B11416600C510B1 /* libgmp.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libgmp.a; sourceTree = "<group>"; };
5CD67B952B11416700C510B1 /* libgmpxx.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libgmpxx.a; sourceTree = "<group>"; };
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 = "<group>"; };
5CDCAD492818589900503DA2 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
@ -434,11 +439,6 @@
5CEACCEC27DEA495000BD591 /* MsgContentView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MsgContentView.swift; sourceTree = "<group>"; };
5CEBD7452A5C0A8F00665FE2 /* KeyboardPadding.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KeyboardPadding.swift; sourceTree = "<group>"; };
5CEBD7472A5F115D00665FE2 /* SetDeliveryReceiptsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SetDeliveryReceiptsView.swift; sourceTree = "<group>"; };
5CF077F62B0D60C000105111 /* libgmpxx.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libgmpxx.a; sourceTree = "<group>"; };
5CF077F72B0D60C000105111 /* libHSsimplex-chat-5.4.0.5-AEaxUB19STC3bOtqr9BLL2.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = "libHSsimplex-chat-5.4.0.5-AEaxUB19STC3bOtqr9BLL2.a"; sourceTree = "<group>"; };
5CF077F82B0D60C000105111 /* libgmp.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libgmp.a; sourceTree = "<group>"; };
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 = "<group>"; };
5CF077FA2B0D60C100105111 /* libffi.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libffi.a; sourceTree = "<group>"; };
5CFA59C32860BC6200863A68 /* MigrateToAppGroupView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MigrateToAppGroupView.swift; sourceTree = "<group>"; };
5CFA59CF286477B400863A68 /* ChatArchiveView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChatArchiveView.swift; sourceTree = "<group>"; };
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 = "<group>";
@ -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;

View File

@ -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";

View File

@ -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";

View File

@ -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";

View File

@ -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";

View File

@ -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.";

View File

@ -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" = "Ожидается прием файла";

View File

@ -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);

View File

@ -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);

View File

@ -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<String>, 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) {

View File

@ -1519,4 +1519,9 @@
<string name="loading_remote_file_desc">Veuillez patienter le temps que le fichier soit chargé depuis le mobile lié.</string>
<string name="desktop_app_version_is_incompatible">La version de l\'application de bureau %s n\'est pas compatible avec cette application.</string>
<string name="verify_connection">Vérifier la connexion</string>
<string name="multicast_connect_automatically">Connexion automatique</string>
<string name="waiting_for_desktop">En attente du bureau…</string>
<string name="found_desktop">Bureau trouvé</string>
<string name="not_compatible">Non compatible !</string>
<string name="multicast_discoverable_via_local_network">Accessible via le réseau local</string>
</resources>

View File

@ -356,4 +356,116 @@
<string name="database_downgrade">Adatbázis downgrade?</string>
<string name="clear_chat_button">Chat kiürítése</string>
<string name="database_passphrase_will_be_updated">Adatbázis titkosítási jelmondat meg lesz változtatva.</string>
<string name="multicast_connect_automatically">Kapcsolódás automatikusan</string>
<string name="database_error">Adatbázis hiba</string>
<string name="database_encryption_will_be_updated_in_settings">Adatbázis titkosítási jelmondat frissül és eltárolásra kerül a beállításokban.</string>
<string name="info_row_database_id">Adatbázis ID</string>
<string name="share_text_database_id">Adatbázis ID: %d</string>
<string name="developer_options">Adatbázis azonosítók és \"Transport Isolation\" opciók.</string>
<string name="database_encryption_will_be_updated">Az adatbázis titkosítás jelmondata megváltoztatásra és elmentésre kerül a Keystore-ban.</string>
<string name="database_will_be_encrypted_and_passphrase_stored_in_settings">Az adatbázis titkosításra kerül és a jelmondat eltárolásra a beállításokban.</string>
<string name="smp_servers_delete_server">Szerver törlése</string>
<string name="auth_device_authentication_is_disabled_turning_off">Eszközhitelesítés kikapcsolva. SimpleX zár kikapcsolása.</string>
<string name="no_call_on_lock_screen">Letiltás</string>
<string name="receipts_groups_disable_for_all">Letiltás minden csoportnak</string>
<string name="receipts_groups_enable_for_all">Engedélyezve minden csoportnak</string>
<string name="feature_enabled_for_contact">engedélyezve az ismerősnek</string>
<string name="disappearing_messages_are_prohibited">Eltűnő üzenetek tiltottak ebben a csoportban.</string>
<string name="delete_address">Azonosító törlés</string>
<string name="ttl_week">%d hét</string>
<string name="desktop_address">PC címe</string>
<string name="ttl_s">%ds</string>
<string name="delivery_receipts_title">Kézbesítési izagolások!</string>
<string name="auth_device_authentication_is_not_enabled_you_can_turn_on_in_settings_once_enabled">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.</string>
<string name="decryption_error">Titkosítás visszafejtési hiba</string>
<string name="share_text_disappears_at">Eltűnik ekkor: %s</string>
<string name="icon_descr_edited">szerkesztve</string>
<string name="delete_verb">Törlés</string>
<string name="ttl_hours">%d óra</string>
<string name="ttl_months">%d hónap</string>
<string name="delete_address__question">Azonosító törlése?</string>
<string name="receipts_contacts_title_disable">Igazolások letiltása?</string>
<string name="passphrase_is_different">Az adatbázis jelmondat eltérő a Keystore-ba elmentettől.</string>
<string name="direct_messages">Közvetlen üzenetek</string>
<string name="icon_descr_email">E-mail</string>
<string name="receipts_contacts_disable_for_all">Letiltás mindenkinek</string>
<string name="settings_developer_tools">Fejlesztői eszközök</string>
<string name="database_passphrase">Adatbázis jelmondat</string>
<string name="ttl_days">%d napok</string>
<string name="icon_descr_server_status_disconnected">Szétkapcsolva</string>
<string name="encrypted_with_random_passphrase">Az adatbázis egy véletlenszerű jelmondattal van titkosítva, lecserélheted.</string>
<string name="ttl_h">%dó</string>
<string name="ttl_w">%dhét</string>
<string name="discover_on_network">Felfedezés helyi hálózatomn keresztül</string>
<string name="v5_3_discover_join_groups">Helyi csoportok felfedezése és csatolakozás</string>
<string name="moderated_items_description">%d üzenet moderálva %s által</string>
<string name="disappearing_message">Eltűnő üzenet</string>
<string name="dont_create_address">Ne hozz létre azonosítót</string>
<string name="dont_show_again">Ne mutasd ismét</string>
<string name="auth_disable_simplex_lock">SimpleX Zár kikapcsolása</string>
<string name="status_e2e_encrypted">e2e titkosított</string>
<string name="settings_section_title_device">ESZKÖZ</string>
<string name="encrypted_video_call">e2e titkosított videóhívás</string>
<string name="conn_level_desc_direct">közvetlen</string>
<string name="desktop_device">PC</string>
<string name="la_minutes">%d perc</string>
<string name="num_contacts_selected">%d ismerős(-ök) kiválasztva</string>
<string name="enable_receipts_all">Engedélyez</string>
<string name="ttl_mth">%dhónap</string>
<string name="direct_messages_are_prohibited_in_chat">A közvetlen üzenetek tagok között titltottak ebben a csoportban.</string>
<string name="ttl_min">%d perc</string>
<string name="set_password_to_export_desc">Az adatbázis egy véletlenszerű jelmondattal van titkosítva. Kérlek cseréld le exportálás előtt!</string>
<string name="receipts_groups_title_disable">Igazolások letiltása csoportoknak?</string>
<string name="custom_time_unit_days">nap</string>
<string name="ttl_day">%d nap</string>
<string name="delete_chat_archive_question">Chat archív törlése?</string>
<string name="failed_to_create_user_duplicate_title">Duplikálódott megjelenítési név!</string>
<string name="receipts_contacts_disable_keep_overrides">Letiltás(felülírások megtartásával)</string>
<string name="database_upgrade">"Adatbázis upgrade"</string>
<string name="blocked_items_description">%d üzenet blokkolva</string>
<string name="info_row_disappears_at">Eltűnik ekkor</string>
<string name="ttl_weeks">%d hét</string>
<string name="feature_enabled_for_you">engedélyezve számodra</string>
<string name="timed_messages">Eltűnő üzenetek</string>
<string name="delete_group_menu_action">Törlés</string>
<string name="delete_and_notify_contact">Törlés és ismerős értesítése</string>
<string name="send_receipts_disabled">letiltva</string>
<string name="la_seconds">%d másodperc</string>
<string name="delete_files_and_media_all">Minden fájl törlése</string>
<string name="database_will_be_encrypted">Az adatbázis titkosításra kerül.</string>
<string name="database_passphrase_and_export">Adatbázis jelmondat és exportálás</string>
<string name="database_will_be_encrypted_and_passphrase_stored">Az adatbázis titkosításra kerül és a jelmondat eltárolásra a Keystore-ban.</string>
<string name="enable_automatic_deletion_question">Automatikus üzenet törlés engedélyezve?</string>
<string name="delete_contact_menu_action">Törlés</string>
<string name="mtr_error_no_down_migration">az adatbázis verzió újabb, mint az app, de nincs lefelé migráció eddig: %s</string>
<string name="simplex_link_mode_description">Leírás</string>
<string name="ttl_hour">%d óra</string>
<string name="ttl_m">%dp</string>
<string name="disconnect_remote_host">Szétkapcsolás</string>
<string name="edit_verb">Szerkesztés</string>
<string name="receipts_groups_disable_keep_overrides">Letiltás(csoport felülírások megtartásával)</string>
<string name="rcv_group_events_count">%d csoportesemény</string>
<string name="ttl_month">%d hónap</string>
<string name="button_edit_group_profile">Csoport profil szerkesztése</string>
<string name="encrypted_audio_call">e2e titkosított hanghívás</string>
<string name="ttl_sec">%d s</string>
<string name="decentralized">Decentralizált</string>
<string name="image_decoding_exception_title">Dekódolási hiba</string>
<string name="edit_image">Kép szerkesztése</string>
<string name="disable_notifications_button">Értesítéásek letiltása</string>
<string name="devices">Eszközök</string>
<string name="multicast_discoverable_via_local_network">Látható helyi hálózaton</string>
<string name="dont_enable_receipts">Ne engedélyezd</string>
<string name="delete_archive">Archívum törlése</string>
<string name="disappearing_prohibited_in_this_chat">Eltűnő üzenetek tiltottak ebben a chatben.</string>
<string name="chat_preferences_default">alap (%s)</string>
<string name="integrity_msg_duplicate">duplikálódott üzenet</string>
<string name="disconnect_desktop_question">Számítógép leválasztása?</string>
<string name="desktop_app_version_is_incompatible">A számítógépes app verzió %s inem kompatibilis ezzel az appal.</string>
<string name="delivery">Kézbesítés</string>
<string name="total_files_count_and_size">%d fájl %s összméretben</string>
<string name="database_passphrase_is_required">Adatbázis jelmondat szükséges chat megnyitásához.</string>
<string name="ttl_d">%dn</string>
<string name="receipts_contacts_enable_for_all">Engedélyeve mindenki számára</string>
<string name="delivery_receipts_are_disabled">Kézbesítési izagolások kikapcsolva!</string>
</resources>

View File

@ -1461,4 +1461,67 @@
<string name="terminal_always_visible">Pokaż konsolę w nowym oknie</string>
<string name="encryption_renegotiation_error">Błąd renegocjacji szyfrowania</string>
<string name="alert_text_encryption_renegotiation_failed">Renegocjacja szyfrowania nie powiodła się.</string>
<string name="v5_4_block_group_members">Blokuj członków grupy</string>
<string name="v5_4_incognito_groups_descr">Utwórz grupę używając losowego profilu.</string>
<string name="connected_desktop">Połączony komputer</string>
<string name="multicast_connect_automatically">Łącz automatycznie</string>
<string name="desktop_address">Adres komputera</string>
<string name="v5_4_better_groups">Lepsze grupy</string>
<string name="desktop_device">Komputer</string>
<string name="connected_to_desktop">Połączony do komputera</string>
<string name="connecting_to_desktop">Łączenie z komputerem</string>
<string name="connected_mobile">Połączony telefon</string>
<string name="desktop_connection_terminated">Połączenie zakończone</string>
<string name="connect_to_desktop">Połącz do komputera</string>
<string name="group_member_role_author">autor</string>
<string name="connected_to_mobile">Połączony do telefonu</string>
<string name="bad_desktop_address">Zły adres komputera</string>
<string name="desktop_app_version_is_incompatible">Aplikacja komputerowa %s nie jest kompatybilna z tą aplikacją.</string>
<string name="new_mobile_device">Nowy urządzenie mobilne</string>
<string name="only_one_device_can_work_at_the_same_time">Tylko jedno urządzenie może działać w tym samym czasie</string>
<string name="v5_4_link_mobile_desktop">Połącz mobile i komputerowe aplikacje! 🔗</string>
<string name="v5_4_link_mobile_desktop_descr">Dzięki bezpiecznemu protokołowi odpornego kwantowo.</string>
<string name="open_on_mobile_and_scan_qr_code"><![CDATA[Otwórz <i>Użyj z komputera</i> w aplikacji mobilnej i zeskanuj kod QR.]]></string>
<string name="v5_4_block_group_members_descr">Aby ukryć niechciane wiadomości.</string>
<string name="desktop_incompatible_version">Niekompatybilna wersja</string>
<string name="new_desktop"><![CDATA[<i>(nowy)</i>]]></string>
<string name="unlink_desktop_question">Odłączyć komputer?</string>
<string name="linked_desktop_options">Połączone opcje komputera</string>
<string name="linked_desktops">Połączone komputery</string>
<string name="discover_on_network">Odkryj przez sieć lokalną</string>
<string name="v5_4_incognito_groups">Grupy incognito</string>
<string name="this_device">To urządzenie</string>
<string name="remote_host_was_disconnected_toast"><![CDATA[Telefon <b>%s</b> został rozłączony]]></string>
<string name="waiting_for_desktop">Oczekiwanie na komputer…</string>
<string name="v5_4_better_groups_descr">Szybsze dołączenie i bardziej niezawodne wiadomości.</string>
<string name="linked_mobiles">Połączone telefony</string>
<string name="this_device_name">Nazwa tego urządzenia</string>
<string name="waiting_for_mobile_to_connect_on_port"><![CDATA[Oczekiwanie na połączenie telefonu na port <i>%s</i>]]></string>
<string name="loading_remote_file_title">Ładowanie pliku</string>
<string name="found_desktop">Znaleziono komputer</string>
<string name="desktop_devices">Urządzenia komputerowe</string>
<string name="not_compatible">Nie kompatybilny!</string>
<string name="link_a_mobile">Połącz z telefonem</string>
<string name="settings_section_title_use_from_desktop">Użyj z komputera</string>
<string name="session_code">Kod sesji</string>
<string name="this_device_version"><![CDATA[<i>(to urządzenie v%s)</i>]]></string>
<string name="unlink_desktop">Odłącz</string>
<string name="this_device_name_shared_with_mobile">Nazwa urządzenia zostanie udostępniona z połączonym klientem mobilnym.</string>
<string name="verify_code_on_mobile">Zweryfikuj kod na telefonie</string>
<string name="enter_this_device_name">Podaj nazwę urządzenia…</string>
<string name="error">Błąd</string>
<string name="disconnect_remote_host">Rozłącz</string>
<string name="paste_desktop_address">Wklej adres komputera</string>
<string name="verify_code_with_desktop">Zweryfikuj kod z komputera</string>
<string name="scan_qr_code_from_desktop">Zeskanuj kod QR z komputera</string>
<string name="devices">Urządzenia</string>
<string name="multicast_discoverable_via_local_network">Odkrywane przez sieć lokalna</string>
<string name="v5_4_more_things_descr">- opcjonalnie powiadamiaj usunięte kontakty.
\n- nazwy profili ze spacją.
\n- i wiele więcej!</string>
<string name="scan_from_mobile">Zeskanuj z telefonu</string>
<string name="verify_connections">Zweryfikuj połączenia</string>
<string name="disconnect_desktop_question">Rozłączyć komputer?</string>
<string name="loading_remote_file_desc">Proszę poczekać na załadowanie pliku z połączonego telefonu</string>
<string name="verify_connection">Zweryfikuj połączenie</string>
</resources>

View File

@ -1507,7 +1507,7 @@
<string name="v5_4_link_mobile_desktop">Свяжите мобильное и настольное приложения! 🔗</string>
<string name="marked_deleted_items_description">%d сообщений помечено удалёнными</string>
<string name="connect_plan_group_already_exists">Группа уже существует!</string>
<string name="open_on_mobile_and_scan_qr_code"><![CDATA[Откройте <i>Использовать с компьютера</i> в мобильном приложении и сосканируйте QR код]]></string>
<string name="open_on_mobile_and_scan_qr_code"><![CDATA[Откройте <i>Использовать с компьютера</i> в мобильном приложении и сосканируйте QR код.]]></string>
<string name="connect_plan_already_connecting">Уже соединяется!</string>
<string name="desktop_incompatible_version">Несовместимая версия</string>
<string name="new_desktop"><![CDATA[<i>(новое)</i>]]></string>
@ -1520,7 +1520,7 @@
<string name="v5_4_incognito_groups">Инкогнито группы</string>
<string name="connect_plan_already_joining_the_group">Вступление в группу уже начато!</string>
<string name="moderated_items_description">%d сообщений модерировано членом %s</string>
<string name="remote_host_was_disconnected_toast"><![CDATA[Удаленный хост был отключен: <b>%s</b>]]></string>
<string name="remote_host_was_disconnected_toast"><![CDATA[Мобильный <b>%s</b> был отключен]]></string>
<string name="v5_4_better_groups_descr">Быстрое вступление и надежная доставка сообщений.</string>
<string name="connect_plan_connect_to_yourself">Соединиться с самим собой?</string>
<string name="linked_mobiles">Связанные мобильные</string>
@ -1575,7 +1575,7 @@
<string name="v5_4_block_group_members_descr">Чтобы скрыть нежелательные сообщения.</string>
<string name="unlink_desktop_question">Забыть компьютер?</string>
<string name="video_decoding_exception_desc">Видео невозможно декодировать. Пожалуйста, попробуйте другое видео или свяжитесь с разработчиками.</string>
<string name="rcv_group_event_1_member_connected">%@ соединен(а)</string>
<string name="rcv_group_event_1_member_connected">%s соединен(а)</string>
<string name="group_members_n">%s, %s и %d членов группы</string>
<string name="this_device">Это устройство</string>
<string name="unblock_member_button">Разблокировать члена группы</string>
@ -1599,4 +1599,11 @@
<string name="terminal_always_visible">Показывать консоль в новом окне</string>
<string name="verify_connections">Проверять соединения</string>
<string name="verify_connection">Проверить соединение</string>
<string name="multicast_connect_automatically">Соединяться автоматически</string>
<string name="waiting_for_desktop">Ожидается подключение…</string>
<string name="waiting_for_mobile_to_connect_on_port"><![CDATA[Ожидается подключение мобильного через порт <i>%s</i>]]></string>
<string name="found_desktop">Компьютер найден</string>
<string name="not_compatible">Несовместимая версия!</string>
<string name="group_member_role_author">автор</string>
<string name="multicast_discoverable_via_local_network">Найти через локальную сеть</string>
</resources>

View File

@ -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

View File

@ -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

View File

@ -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 =

View File

@ -1,6 +1,7 @@
LIBRARY libsimplex
EXPORTS
hs_init
hs_init_with_rtsopts
chat_migrate_init
chat_send_cmd
chat_send_remote_cmd

View File

@ -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 <> " <name> 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 <> " <name> 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")