diff --git a/apps/android/app/build.gradle b/apps/android/app/build.gradle index e808c3c7f4..b68ca2fb50 100644 --- a/apps/android/app/build.gradle +++ b/apps/android/app/build.gradle @@ -11,8 +11,8 @@ android { applicationId "chat.simplex.app" minSdk 29 targetSdk 32 - versionCode 89 - versionName "4.4.3" + versionCode 90 + versionName "4.4.4-beta.1" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" ndk { diff --git a/apps/android/app/src/main/java/chat/simplex/app/model/SimpleXAPI.kt b/apps/android/app/src/main/java/chat/simplex/app/model/SimpleXAPI.kt index cd0095cde1..a802c70a6a 100644 --- a/apps/android/app/src/main/java/chat/simplex/app/model/SimpleXAPI.kt +++ b/apps/android/app/src/main/java/chat/simplex/app/model/SimpleXAPI.kt @@ -114,6 +114,7 @@ class AppPreferences(val context: Context) { val networkTCPConnectTimeout = mkTimeoutPreference(SHARED_PREFS_NETWORK_TCP_CONNECT_TIMEOUT, NetCfg.defaults.tcpConnectTimeout, NetCfg.proxyDefaults.tcpConnectTimeout) val networkTCPTimeout = mkTimeoutPreference(SHARED_PREFS_NETWORK_TCP_TIMEOUT, NetCfg.defaults.tcpTimeout, NetCfg.proxyDefaults.tcpTimeout) val networkSMPPingInterval = mkLongPreference(SHARED_PREFS_NETWORK_SMP_PING_INTERVAL, NetCfg.defaults.smpPingInterval) + val networkSMPPingCount = mkIntPreference(SHARED_PREFS_NETWORK_SMP_PING_COUNT, NetCfg.defaults.smpPingCount) val networkEnableKeepAlive = mkBoolPreference(SHARED_PREFS_NETWORK_ENABLE_KEEP_ALIVE, NetCfg.defaults.enableKeepAlive) val networkTCPKeepIdle = mkIntPreference(SHARED_PREFS_NETWORK_TCP_KEEP_IDLE, KeepAliveOpts.defaults.keepIdle) val networkTCPKeepIntvl = mkIntPreference(SHARED_PREFS_NETWORK_TCP_KEEP_INTVL, KeepAliveOpts.defaults.keepIntvl) @@ -210,6 +211,7 @@ class AppPreferences(val context: Context) { private const val SHARED_PREFS_NETWORK_TCP_CONNECT_TIMEOUT = "NetworkTCPConnectTimeout" private const val SHARED_PREFS_NETWORK_TCP_TIMEOUT = "NetworkTCPTimeout" private const val SHARED_PREFS_NETWORK_SMP_PING_INTERVAL = "NetworkSMPPingInterval" + private const val SHARED_PREFS_NETWORK_SMP_PING_COUNT = "NetworkSMPPingCount" private const val SHARED_PREFS_NETWORK_ENABLE_KEEP_ALIVE = "NetworkEnableKeepAlive" private const val SHARED_PREFS_NETWORK_TCP_KEEP_IDLE = "NetworkTCPKeepIdle" private const val SHARED_PREFS_NETWORK_TCP_KEEP_INTVL = "NetworkTCPKeepIntvl" @@ -1534,6 +1536,7 @@ open class ChatController(var ctrl: ChatCtrl?, val ntfManager: NtfManager, val a val tcpConnectTimeout = appPrefs.networkTCPConnectTimeout.get() val tcpTimeout = appPrefs.networkTCPTimeout.get() val smpPingInterval = appPrefs.networkSMPPingInterval.get() + val smpPingCount = appPrefs.networkSMPPingCount.get() val enableKeepAlive = appPrefs.networkEnableKeepAlive.get() val tcpKeepAlive = if (enableKeepAlive) { val keepIdle = appPrefs.networkTCPKeepIdle.get() @@ -1550,7 +1553,8 @@ open class ChatController(var ctrl: ChatCtrl?, val ntfManager: NtfManager, val a tcpConnectTimeout = tcpConnectTimeout, tcpTimeout = tcpTimeout, tcpKeepAlive = tcpKeepAlive, - smpPingInterval = smpPingInterval + smpPingInterval = smpPingInterval, + smpPingCount = smpPingCount ) } @@ -1561,6 +1565,7 @@ open class ChatController(var ctrl: ChatCtrl?, val ntfManager: NtfManager, val a appPrefs.networkTCPConnectTimeout.set(cfg.tcpConnectTimeout) appPrefs.networkTCPTimeout.set(cfg.tcpTimeout) appPrefs.networkSMPPingInterval.set(cfg.smpPingInterval) + appPrefs.networkSMPPingCount.set(cfg.smpPingCount) if (cfg.tcpKeepAlive != null) { appPrefs.networkEnableKeepAlive.set(true) appPrefs.networkTCPKeepIdle.set(cfg.tcpKeepAlive.keepIdle) @@ -2002,6 +2007,7 @@ data class NetCfg( val tcpTimeout: Long, // microseconds val tcpKeepAlive: KeepAliveOpts?, val smpPingInterval: Long, // microseconds + val smpPingCount: Int, val logTLSErrors: Boolean = false ) { val useSocksProxy: Boolean get() = socksProxy != null @@ -2014,7 +2020,8 @@ data class NetCfg( tcpConnectTimeout = 10_000_000, tcpTimeout = 7_000_000, tcpKeepAlive = KeepAliveOpts.defaults, - smpPingInterval = 600_000_000 + smpPingInterval = 1200_000_000, + smpPingCount = 3 ) val proxyDefaults: NetCfg = @@ -2023,7 +2030,8 @@ data class NetCfg( tcpConnectTimeout = 20_000_000, tcpTimeout = 15_000_000, tcpKeepAlive = KeepAliveOpts.defaults, - smpPingInterval = 600_000_000 + smpPingInterval = 1200_000_000, + smpPingCount = 3 ) } diff --git a/apps/android/app/src/main/java/chat/simplex/app/views/usersettings/AdvancedNetworkSettings.kt b/apps/android/app/src/main/java/chat/simplex/app/views/usersettings/AdvancedNetworkSettings.kt index f3478b6b43..8f3618e4e3 100644 --- a/apps/android/app/src/main/java/chat/simplex/app/views/usersettings/AdvancedNetworkSettings.kt +++ b/apps/android/app/src/main/java/chat/simplex/app/views/usersettings/AdvancedNetworkSettings.kt @@ -33,6 +33,7 @@ fun AdvancedNetworkSettingsView(chatModel: ChatModel) { val networkTCPConnectTimeout = remember { mutableStateOf(currentCfgVal.tcpConnectTimeout) } val networkTCPTimeout = remember { mutableStateOf(currentCfgVal.tcpTimeout) } val networkSMPPingInterval = remember { mutableStateOf(currentCfgVal.smpPingInterval) } + val networkSMPPingCount = remember { mutableStateOf(currentCfgVal.smpPingCount) } val networkEnableKeepAlive = remember { mutableStateOf(currentCfgVal.enableKeepAlive) } val networkTCPKeepIdle: MutableState val networkTCPKeepIntvl: MutableState @@ -48,10 +49,6 @@ fun AdvancedNetworkSettingsView(chatModel: ChatModel) { } fun buildCfg(): NetCfg { - val socksProxy = currentCfg.value.socksProxy - val tcpConnectTimeout = networkTCPConnectTimeout.value - val tcpTimeout = networkTCPTimeout.value - val smpPingInterval = networkSMPPingInterval.value val enableKeepAlive = networkEnableKeepAlive.value val tcpKeepAlive = if (enableKeepAlive) { val keepIdle = networkTCPKeepIdle.value @@ -62,11 +59,12 @@ fun AdvancedNetworkSettingsView(chatModel: ChatModel) { null } return NetCfg( - socksProxy = socksProxy, - tcpConnectTimeout = tcpConnectTimeout, - tcpTimeout = tcpTimeout, + socksProxy = currentCfg.value.socksProxy, + tcpConnectTimeout = networkTCPConnectTimeout.value, + tcpTimeout = networkTCPTimeout.value, tcpKeepAlive = tcpKeepAlive, - smpPingInterval = smpPingInterval + smpPingInterval = networkSMPPingInterval.value, + smpPingCount = networkSMPPingCount.value ) } @@ -74,6 +72,7 @@ fun AdvancedNetworkSettingsView(chatModel: ChatModel) { networkTCPConnectTimeout.value = cfg.tcpConnectTimeout networkTCPTimeout.value = cfg.tcpTimeout networkSMPPingInterval.value = cfg.smpPingInterval + networkSMPPingCount.value = cfg.smpPingCount networkEnableKeepAlive.value = cfg.enableKeepAlive if (cfg.tcpKeepAlive != null) { networkTCPKeepIdle.value = cfg.tcpKeepAlive.keepIdle @@ -113,6 +112,7 @@ fun AdvancedNetworkSettingsView(chatModel: ChatModel) { networkTCPConnectTimeout, networkTCPTimeout, networkSMPPingInterval, + networkSMPPingCount, networkEnableKeepAlive, networkTCPKeepIdle, networkTCPKeepIntvl, @@ -129,6 +129,7 @@ fun AdvancedNetworkSettingsView(chatModel: ChatModel) { networkTCPConnectTimeout: MutableState, networkTCPTimeout: MutableState, networkSMPPingInterval: MutableState, + networkSMPPingCount: MutableState, networkEnableKeepAlive: MutableState, networkTCPKeepIdle: MutableState, networkTCPKeepIntvl: MutableState, @@ -170,7 +171,14 @@ fun AdvancedNetworkSettingsView(chatModel: ChatModel) { SectionItemView { TimeoutSettingRow( stringResource(R.string.network_option_ping_interval), networkSMPPingInterval, - listOf(120_000000, 300_000000, 600_000000, 1200_000000, 2400_000000), secondsLabel + listOf(120_000000, 300_000000, 600_000000, 1200_000000, 2400_000000, 3600_000000), secondsLabel + ) + } + SectionDivider() + SectionItemView { + IntSettingRow( + stringResource(R.string.network_option_ping_count), networkSMPPingCount, + listOf(1, 2, 3, 5, 8), "" ) } SectionDivider() @@ -412,6 +420,7 @@ fun PreviewAdvancedNetworkSettingsLayout() { networkTCPConnectTimeout = remember { mutableStateOf(10_000000) }, networkTCPTimeout = remember { mutableStateOf(10_000000) }, networkSMPPingInterval = remember { mutableStateOf(10_000000) }, + networkSMPPingCount = remember { mutableStateOf(3) }, networkEnableKeepAlive = remember { mutableStateOf(true) }, networkTCPKeepIdle = remember { mutableStateOf(10) }, networkTCPKeepIntvl = remember { mutableStateOf(10) }, diff --git a/apps/android/app/src/main/java/chat/simplex/app/views/usersettings/NetworkAndServers.kt b/apps/android/app/src/main/java/chat/simplex/app/views/usersettings/NetworkAndServers.kt index d950981682..cc0a6de7f2 100644 --- a/apps/android/app/src/main/java/chat/simplex/app/views/usersettings/NetworkAndServers.kt +++ b/apps/android/app/src/main/java/chat/simplex/app/views/usersettings/NetworkAndServers.kt @@ -123,10 +123,8 @@ fun NetworkAndServersView( } SectionDivider() UseOnionHosts(onionHosts, networkUseSocksProxy, showSettingsModal, useOnion) - if (developerTools) { - SectionDivider() - SettingsActionItem(Icons.Outlined.Cable, stringResource(R.string.network_settings), showSettingsModal { AdvancedNetworkSettingsView(it) }) - } + SectionDivider() + SettingsActionItem(Icons.Outlined.Cable, stringResource(R.string.network_settings), showSettingsModal { AdvancedNetworkSettingsView(it) }) } Spacer(Modifier.height(8.dp)) SectionView(generalGetString(R.string.settings_section_title_calls)) { diff --git a/apps/android/app/src/main/res/values-fr/strings.xml b/apps/android/app/src/main/res/values-fr/strings.xml index 3f2683008b..3d7207ea4b 100644 --- a/apps/android/app/src/main/res/values-fr/strings.xml +++ b/apps/android/app/src/main/res/values-fr/strings.xml @@ -786,7 +786,7 @@ Interdire l\'envoi de messages directs aux membres. Les membres du groupe peuvent supprimer de manière irréversible les messages envoyés. La suppression irréversible de messages est interdite dans ce groupe. - Envoyé via + Envoi via État du réseau Changer d\'adresse de réception Créer un groupe secret diff --git a/apps/android/app/src/main/res/values-it/strings.xml b/apps/android/app/src/main/res/values-it/strings.xml index a907e83e2e..d070c88947 100644 --- a/apps/android/app/src/main/res/values-it/strings.xml +++ b/apps/android/app/src/main/res/values-it/strings.xml @@ -3,7 +3,7 @@ Link di SimpleX Controlla la tua connessione di rete con %1$s e riprova. Le notifiche istantanee sono disattivate! - connessione… + in connessione… Allega Annulla anteprima immagine Possono essere inviate solo 10 immagini alla volta @@ -17,7 +17,7 @@ Connetti connesso errore - connessione + in connessione Sei connesso al server usato per ricevere messaggi da questo contatto. Tentativo di connessione al server usato per ricevere messaggi da questo contatto. eliminato @@ -32,7 +32,7 @@ dati non validi connessione stabilita invitato a connettersi - connessione… + in connessione… hai condiviso un link una tantum hai condiviso un link incognito una tantum via link di gruppo @@ -50,7 +50,7 @@ Assicurati che gli indirizzi dei server SMP siano nel formato giusto, uno per riga e non doppi. Errore di aggiornamento della configurazione di rete Caricamento conversazione fallito - Caricamento conversazioni fallito + Caricamento delle chat fallito Aggiorna l\'app e contatta gli sviluppatori. Connessione scaduta Errore di connessione @@ -104,7 +104,7 @@ Controlla messaggi nuovi ogni 10 minuti per massimo 1 minuto Testo del messaggio Nome del contatto - Nascosto + Nascosta Mostra contatto e messaggio Mostra solo il contatto Nascondi contatto e messaggio @@ -145,13 +145,13 @@ Benvenuto/a %1$s! Benvenuto/a! Questo testo è disponibile nelle impostazioni - Le tue conversazioni + Le tue chat sei stato invitato in un gruppo entra come %s - connessione… + in connessione… Tocca per iniziare una conversazione Scrivi agli sviluppatori - Non hai conversazioni + Non hai chat Condividi immagine… Condividi file… Icona contestuale @@ -265,7 +265,7 @@ 1 mese Errore nell\'importazione del database della chat Nome completo del gruppo: - Se non potete incontrarvi di persona, potete scansionare il codice QR nella videochiamata, oppure il tuo contatto può condividere un link di invito. + Se non potete incontrarvi di persona, puoi scansionare il codice QR nella videochiamata, oppure il tuo contatto può condividere un link di invito. Backup dei dati dell\'app Android Keystore è usato per memorizzare in modo sicuro la password; permette il funzionamento del servizio di notifica. Permetti ai tuoi contatti di inviare messaggi vocali. @@ -485,7 +485,7 @@ attivato per te Preferenze del gruppo Auto-accetta richieste di contatto - %dd + %dg %d giorno %d giorni Elimina dopo @@ -497,10 +497,10 @@ %d min %d mese %d mesi - %dmth + %dmese %ds %d sec - %dw + %dset %d settimana %d settimane Link del gruppo @@ -523,7 +523,7 @@ Eliminare i file e i multimediali\? "Elimina file e multimediali" Elimina messaggi - Elimina messaggio dopo + Elimina messaggi dopo %d file con dimensione totale di %s Attivare l\'eliminazione automatica dei messaggi\? Crittografare il database\? @@ -584,7 +584,7 @@ Indirizzo del server non valido! Aiuto sul markdown Markdown nei messaggi - Segna come verificato + Segna come verificato/a Link di invito una tantum Incolla Incolla il link che hai ricevuto nella casella sottostante per connetterti con il tuo contatto. @@ -600,8 +600,8 @@ Test del server fallito! Condividi link di invito SimpleX Lock - %s non è verificato - %s è verificato + %s non è verificato/a + %s è verificato/a Server SMP Alcuni server hanno fallito il test: Testa server @@ -663,7 +663,7 @@ in attesa di conferma… Non memorizziamo nessuno dei tuoi contatti o messaggi (una volta recapitati) sui server. MESSAGGIO DI BENVENUTO - Puoi utilizzare il markdown per formattare i messaggi: + Puoi usare il markdown per formattare i messaggi: Sei tu a controllare la tua chat! Il tuo profilo di chat Il tuo profilo, i contatti e i messaggi recapitati sono memorizzati sul tuo dispositivo. @@ -683,7 +683,7 @@ Incolla il link ricevuto Le persone possono connettersi a te solo tramite i link che condividi. Periodico - La privacy ridefinita + Privacy ridefinita Notifiche private Maggiori informazioni nel nostro repository GitHub. Maggiori informazioni nel nostro repository GitHub. @@ -880,7 +880,7 @@ Eliminazione irreversibile del messaggio L\'eliminazione irreversibile dei messaggi è vietata in questo gruppo. Max 40 secondi, ricevuto istantaneamente. - Novità in %s + Novità nella %s Solo tu puoi inviare messaggi vocali. Solo il tuo contatto può inviare messaggi vocali. Proibisci l\'eliminazione irreversibile dei messaggi. diff --git a/apps/android/app/src/main/res/values/strings.xml b/apps/android/app/src/main/res/values/strings.xml index e40198c80a..cc79c17e71 100644 --- a/apps/android/app/src/main/res/values/strings.xml +++ b/apps/android/app/src/main/res/values/strings.xml @@ -952,6 +952,7 @@ TCP connection timeout Protocol timeout PING interval + PING count Enable TCP keep-alive Revert Save diff --git a/apps/ios/Shared/Views/UserSettings/AdvancedNetworkSettings.swift b/apps/ios/Shared/Views/UserSettings/AdvancedNetworkSettings.swift index 5504870ded..8b47f20ba8 100644 --- a/apps/ios/Shared/Views/UserSettings/AdvancedNetworkSettings.swift +++ b/apps/ios/Shared/Views/UserSettings/AdvancedNetworkSettings.swift @@ -53,7 +53,8 @@ struct AdvancedNetworkSettings: View { timeoutSettingPicker("TCP connection timeout", selection: $netCfg.tcpConnectTimeout, values: [2_500000, 5_000000, 7_500000, 10_000000, 15_000000, 20_000000], label: secondsLabel) timeoutSettingPicker("Protocol timeout", selection: $netCfg.tcpTimeout, values: [1_500000, 3_000000, 5_000000, 7_000000, 10_000000, 15_000000], label: secondsLabel) - timeoutSettingPicker("PING interval", selection: $netCfg.smpPingInterval, values: [120_000000, 300_000000, 600_000000, 1200_000000, 2400_000000], label: secondsLabel) + timeoutSettingPicker("PING interval", selection: $netCfg.smpPingInterval, values: [120_000000, 300_000000, 600_000000, 1200_000000, 2400_000000, 3600_000000], label: secondsLabel) + intSettingPicker("PING count", selection: $netCfg.smpPingCount, values: [1, 2, 3, 5, 8], label: "") Toggle("Enable TCP keep-alive", isOn: $enableKeepAlive) if enableKeepAlive { diff --git a/apps/ios/Shared/Views/UserSettings/NetworkAndServers.swift b/apps/ios/Shared/Views/UserSettings/NetworkAndServers.swift index 16d3c9cd0c..b88a18e170 100644 --- a/apps/ios/Shared/Views/UserSettings/NetworkAndServers.swift +++ b/apps/ios/Shared/Views/UserSettings/NetworkAndServers.swift @@ -45,13 +45,11 @@ struct NetworkAndServers: View { } .frame(height: 36) - if developerTools { - NavigationLink { - AdvancedNetworkSettings() - .navigationTitle("Network settings") - } label: { - Text("Advanced network settings") - } + NavigationLink { + AdvancedNetworkSettings() + .navigationTitle("Network settings") + } label: { + Text("Advanced network settings") } } header: { Text("Messages") 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 6b38d66b19..f359101580 100644 --- a/apps/ios/SimpleX Localizations/de.xcloc/Localized Contents/de.xliff +++ b/apps/ios/SimpleX Localizations/de.xcloc/Localized Contents/de.xliff @@ -2273,6 +2273,10 @@ Wir werden Serverredundanzen hinzufügen, um verloren gegangene Nachrichten zu v Das Öffnen des Links über den Browser kann die Privatsphäre und Sicherheit der Verbindung reduzieren. SimpleX-Links, denen nicht vertraut wird, werden Rot sein. No comment provided by engineer. + + PING count + No comment provided by engineer. + PING interval PING-Intervall diff --git a/apps/ios/SimpleX Localizations/en.xcloc/Localized Contents/en.xliff b/apps/ios/SimpleX Localizations/en.xcloc/Localized Contents/en.xliff index a4aa59906a..847b3e2878 100644 --- a/apps/ios/SimpleX Localizations/en.xcloc/Localized Contents/en.xliff +++ b/apps/ios/SimpleX Localizations/en.xcloc/Localized Contents/en.xliff @@ -2273,6 +2273,11 @@ We will be adding server redundancy to prevent lost messages. Opening the link in the browser may reduce connection privacy and security. Untrusted SimpleX links will be red. No comment provided by engineer. + + PING count + PING count + No comment provided by engineer. + PING interval PING interval 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 4d7bbcf94c..f35a16ed3a 100644 --- a/apps/ios/SimpleX Localizations/fr.xcloc/Localized Contents/fr.xliff +++ b/apps/ios/SimpleX Localizations/fr.xcloc/Localized Contents/fr.xliff @@ -1970,7 +1970,7 @@ Nous allons ajouter une redondance des serveurs pour éviter la perte de message Many people asked: *if SimpleX has no user identifiers, how can it deliver messages?* - Beaucoup se demandent : *si SimpleX n'a pas d'identifiants d'utilisateur, comment peut-il délivrer des messages?* + Beaucoup se demandent : *si SimpleX n'a pas d'identifiants d'utilisateur, comment peut-il délivrer des messages ?* No comment provided by engineer. @@ -2273,6 +2273,10 @@ Nous allons ajouter une redondance des serveurs pour éviter la perte de message Ouvrir le lien dans le navigateur peut réduire la confidentialité et la sécurité de la connexion. Les liens SimpleX non fiables seront en rouge. No comment provided by engineer. + + PING count + No comment provided by engineer. + PING interval Intervalle de PING @@ -2730,7 +2734,7 @@ Nous allons ajouter une redondance des serveurs pour éviter la perte de message Sending via - Envoyé via + Envoi via No comment provided by engineer. @@ -2805,7 +2809,7 @@ Nous allons ajouter une redondance des serveurs pour éviter la perte de message Share one-time invitation link - Partager le lien d'invitation unique + Partager un lien d'invitation unique No comment provided by engineer. diff --git a/apps/ios/SimpleX Localizations/it.xcloc/Localized Contents/it.xliff b/apps/ios/SimpleX Localizations/it.xcloc/Localized Contents/it.xliff index 087e545872..5841619864 100644 --- a/apps/ios/SimpleX Localizations/it.xcloc/Localized Contents/it.xliff +++ b/apps/ios/SimpleX Localizations/it.xcloc/Localized Contents/it.xliff @@ -69,12 +69,12 @@ %@ is not verified - %@ non è verificato + %@ non è verificato/a No comment provided by engineer. %@ is verified - %@ è verificato + %@ è verificato/a No comment provided by engineer. @@ -144,12 +144,12 @@ %lldd - %lldd + %lldg No comment provided by engineer. %lldh - %lldh + %lldo No comment provided by engineer. @@ -164,7 +164,7 @@ %lldmth - %lldmth + %lldmese No comment provided by engineer. @@ -174,7 +174,7 @@ %lldw - %lldw + %lldset No comment provided by engineer. @@ -635,7 +635,7 @@ Chats - Conversazioni + Chat No comment provided by engineer. @@ -1093,7 +1093,7 @@ Delete messages after - Elimina messaggio dopo + Elimina messaggi dopo No comment provided by engineer. @@ -1653,7 +1653,7 @@ Hidden - Nascosto + Nascosta No comment provided by engineer. @@ -1703,12 +1703,12 @@ If you can't meet in person, **show QR code in the video call**, or share the link. - Se non potete incontrarvi di persona, **mostratevi il codice QR durante la videochiamata** o condividete il link. + Se non potete incontrarvi di persona, **mostra il codice QR durante la videochiamata** o condividi il link. No comment provided by engineer. If you cannot meet in person, you can **scan QR code in the video call**, or your contact can share an invitation link. - Se non potete incontrarvi di persona, potete **scansionare il codice QR durante la videochiamata** oppure il tuo contatto può condividere un link di invito. + Se non potete incontrarvi di persona, puoi **scansionare il codice QR durante la videochiamata** oppure il tuo contatto può condividere un link di invito. No comment provided by engineer. @@ -1985,7 +1985,7 @@ Aggiungeremo la ridondanza del server per prevenire la perdita di messaggi. Mark verified - Segna come verificato + Segna come verificato/a No comment provided by engineer. @@ -2100,7 +2100,7 @@ Aggiungeremo la ridondanza del server per prevenire la perdita di messaggi. New in %@ - Novità in %@ + Novità nella %@ No comment provided by engineer. @@ -2273,6 +2273,10 @@ Aggiungeremo la ridondanza del server per prevenire la perdita di messaggi.Aprire il link nel browser può ridurre la privacy e la sicurezza della connessione. I link SimpleX non fidati saranno in rosso. No comment provided by engineer. + + PING count + No comment provided by engineer. + PING interval Intervallo PING @@ -2375,7 +2379,7 @@ Aggiungeremo la ridondanza del server per prevenire la perdita di messaggi. Privacy redefined - La privacy ridefinita + Privacy ridefinita No comment provided by engineer. @@ -2820,7 +2824,7 @@ Aggiungeremo la ridondanza del server per prevenire la perdita di messaggi. SimpleX Chat security was [audited by Trail of Bits](https://simplex.chat/blog/20221108-simplex-chat-v4.2-security-audit-new-website.html). - La sicurezza di SimpleX Chat è stata [controllata da Trail of Bits](https://simplex.chat/blog/20221108-simplex-chat-v4.2-security-audit-new-website.html). + La sicurezza di SimpleX Chat è stata [verificata da Trail of Bits](https://simplex.chat/blog/20221108-simplex-chat-v4.2-security-audit-new-website.html). No comment provided by engineer. @@ -2965,7 +2969,7 @@ Aggiungeremo la ridondanza del server per prevenire la perdita di messaggi. Tap to start a new chat - Tocca per iniziare una conversazione + Tocca per iniziare una chat No comment provided by engineer. @@ -3439,7 +3443,7 @@ Per connetterti, chiedi al tuo contatto di creare un altro link di connessione e You can use markdown to format messages: - Puoi utilizzare il markdown per formattare i messaggi: + Puoi usare il markdown per formattare i messaggi: No comment provided by engineer. @@ -3454,7 +3458,7 @@ Per connetterti, chiedi al tuo contatto di creare un altro link di connessione e You have no chats - Non hai conversazioni + Non hai chat No comment provided by engineer. @@ -3584,7 +3588,7 @@ Per connetterti, chiedi al tuo contatto di creare un altro link di connessione e Your chats - Le tue conversazioni + Le tue chat No comment provided by engineer. @@ -3798,27 +3802,27 @@ I server di SimpleX non possono vedere il tuo profilo. connecting - connessione + in connessione No comment provided by engineer. connecting (accepted) - connessione (accettato) + in connessione (accettato) No comment provided by engineer. connecting (announced) - connessione (annunciato) + in connessione (annunciato) No comment provided by engineer. connecting (introduced) - connessione (presentato) + in connessione (presentato) No comment provided by engineer. connecting (introduction invitation) - connessione (invito di presentazione) + in connessione (invito di presentazione) No comment provided by engineer. @@ -3828,7 +3832,7 @@ I server di SimpleX non possono vedere il tuo profilo. connecting… - connessione… + in connessione… chat list item title @@ -3958,12 +3962,12 @@ I server di SimpleX non possono vedere il tuo profilo. invalid chat - conversazione non valida + chat non valida invalid chat data invalid chat data - dati della conversazione non validi + dati chat non validi No comment provided by engineer. 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 4b7af896f7..af7aa75f75 100644 --- a/apps/ios/SimpleX Localizations/ru.xcloc/Localized Contents/ru.xliff +++ b/apps/ios/SimpleX Localizations/ru.xcloc/Localized Contents/ru.xliff @@ -2273,6 +2273,11 @@ We will be adding server redundancy to prevent lost messages. Использование ссылки в браузере может уменьшить конфиденциальность и безопасность соединения. Ссылки на неизвестные сайты будут красными. No comment provided by engineer. + + PING count + Количество PING + No comment provided by engineer. + PING interval Интервал PING diff --git a/apps/ios/SimpleX.xcodeproj/project.pbxproj b/apps/ios/SimpleX.xcodeproj/project.pbxproj index 3f37d768f6..c8288e85ea 100644 --- a/apps/ios/SimpleX.xcodeproj/project.pbxproj +++ b/apps/ios/SimpleX.xcodeproj/project.pbxproj @@ -104,6 +104,11 @@ 5CB9250D27A9432000ACCCDD /* ChatListNavLink.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5CB9250C27A9432000ACCCDD /* ChatListNavLink.swift */; }; 5CBD285A295711D700EC2CF4 /* ImageUtils.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5CBD2859295711D700EC2CF4 /* ImageUtils.swift */; }; 5CBD285C29575B8E00EC2CF4 /* WhatsNewView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5CBD285B29575B8E00EC2CF4 /* WhatsNewView.swift */; }; + 5CBDFB57297A883C00E723C8 /* libHSsimplex-chat-4.4.4-GH5mduSQmlJ14EbWq6Ljca.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 5CBDFB52297A883C00E723C8 /* libHSsimplex-chat-4.4.4-GH5mduSQmlJ14EbWq6Ljca.a */; }; + 5CBDFB58297A883C00E723C8 /* libgmpxx.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 5CBDFB53297A883C00E723C8 /* libgmpxx.a */; }; + 5CBDFB59297A883C00E723C8 /* libHSsimplex-chat-4.4.4-GH5mduSQmlJ14EbWq6Ljca-ghc8.10.7.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 5CBDFB54297A883C00E723C8 /* libHSsimplex-chat-4.4.4-GH5mduSQmlJ14EbWq6Ljca-ghc8.10.7.a */; }; + 5CBDFB5A297A883C00E723C8 /* libffi.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 5CBDFB55297A883C00E723C8 /* libffi.a */; }; + 5CBDFB5B297A883C00E723C8 /* libgmp.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 5CBDFB56297A883C00E723C8 /* libgmp.a */; }; 5CBE6C12294487F7002D9531 /* VerifyCodeView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5CBE6C11294487F7002D9531 /* VerifyCodeView.swift */; }; 5CBE6C142944CC12002D9531 /* ScanCodeView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5CBE6C132944CC12002D9531 /* ScanCodeView.swift */; }; 5CC1C99227A6C7F5000D9FF6 /* QRCode.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5CC1C99127A6C7F5000D9FF6 /* QRCode.swift */; }; @@ -336,6 +341,11 @@ 5CBD285829565D2600EC2CF4 /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = fr.lproj/InfoPlist.strings; sourceTree = ""; }; 5CBD2859295711D700EC2CF4 /* ImageUtils.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ImageUtils.swift; sourceTree = ""; }; 5CBD285B29575B8E00EC2CF4 /* WhatsNewView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WhatsNewView.swift; sourceTree = ""; }; + 5CBDFB52297A883C00E723C8 /* libHSsimplex-chat-4.4.4-GH5mduSQmlJ14EbWq6Ljca.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = "libHSsimplex-chat-4.4.4-GH5mduSQmlJ14EbWq6Ljca.a"; sourceTree = ""; }; + 5CBDFB53297A883C00E723C8 /* libgmpxx.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libgmpxx.a; sourceTree = ""; }; + 5CBDFB54297A883C00E723C8 /* libHSsimplex-chat-4.4.4-GH5mduSQmlJ14EbWq6Ljca-ghc8.10.7.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = "libHSsimplex-chat-4.4.4-GH5mduSQmlJ14EbWq6Ljca-ghc8.10.7.a"; sourceTree = ""; }; + 5CBDFB55297A883C00E723C8 /* libffi.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libffi.a; sourceTree = ""; }; + 5CBDFB56297A883C00E723C8 /* libgmp.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libgmp.a; sourceTree = ""; }; 5CBE6C11294487F7002D9531 /* VerifyCodeView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = VerifyCodeView.swift; sourceTree = ""; }; 5CBE6C132944CC12002D9531 /* ScanCodeView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ScanCodeView.swift; sourceTree = ""; }; 5CC1C99127A6C7F5000D9FF6 /* QRCode.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = QRCode.swift; sourceTree = ""; }; @@ -1322,7 +1332,7 @@ CLANG_ENABLE_MODULES = YES; CODE_SIGN_ENTITLEMENTS = "SimpleX (iOS).entitlements"; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 115; + CURRENT_PROJECT_VERSION = 116; DEVELOPMENT_TEAM = 5NN7GUYB6T; ENABLE_BITCODE = NO; ENABLE_PREVIEWS = YES; @@ -1343,7 +1353,7 @@ "$(inherited)", "@executable_path/Frameworks", ); - MARKETING_VERSION = 4.4.3; + MARKETING_VERSION = 4.4.4; PRODUCT_BUNDLE_IDENTIFIER = chat.simplex.app; PRODUCT_NAME = SimpleX; SDKROOT = iphoneos; @@ -1364,7 +1374,7 @@ CLANG_ENABLE_MODULES = YES; CODE_SIGN_ENTITLEMENTS = "SimpleX (iOS).entitlements"; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 115; + CURRENT_PROJECT_VERSION = 116; DEVELOPMENT_TEAM = 5NN7GUYB6T; ENABLE_BITCODE = NO; ENABLE_PREVIEWS = YES; @@ -1385,7 +1395,7 @@ "$(inherited)", "@executable_path/Frameworks", ); - MARKETING_VERSION = 4.4.3; + MARKETING_VERSION = 4.4.4; PRODUCT_BUNDLE_IDENTIFIER = chat.simplex.app; PRODUCT_NAME = SimpleX; SDKROOT = iphoneos; @@ -1443,7 +1453,7 @@ CLANG_ENABLE_MODULES = YES; CODE_SIGN_ENTITLEMENTS = "SimpleX NSE/SimpleX NSE.entitlements"; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 115; + CURRENT_PROJECT_VERSION = 116; DEVELOPMENT_TEAM = 5NN7GUYB6T; ENABLE_BITCODE = NO; GENERATE_INFOPLIST_FILE = YES; @@ -1456,7 +1466,7 @@ "@executable_path/Frameworks", "@executable_path/../../Frameworks", ); - MARKETING_VERSION = 4.4.3; + MARKETING_VERSION = 4.4.4; PRODUCT_BUNDLE_IDENTIFIER = "chat.simplex.app.SimpleX-NSE"; PRODUCT_NAME = "$(TARGET_NAME)"; SDKROOT = iphoneos; @@ -1473,7 +1483,7 @@ CLANG_ENABLE_MODULES = YES; CODE_SIGN_ENTITLEMENTS = "SimpleX NSE/SimpleX NSE.entitlements"; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 115; + CURRENT_PROJECT_VERSION = 116; DEVELOPMENT_TEAM = 5NN7GUYB6T; ENABLE_BITCODE = NO; GENERATE_INFOPLIST_FILE = YES; @@ -1486,7 +1496,7 @@ "@executable_path/Frameworks", "@executable_path/../../Frameworks", ); - MARKETING_VERSION = 4.4.3; + MARKETING_VERSION = 4.4.4; PRODUCT_BUNDLE_IDENTIFIER = "chat.simplex.app.SimpleX-NSE"; PRODUCT_NAME = "$(TARGET_NAME)"; SDKROOT = iphoneos; diff --git a/apps/ios/SimpleX.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved b/apps/ios/SimpleX.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved deleted file mode 100644 index 146d9f8052..0000000000 --- a/apps/ios/SimpleX.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved +++ /dev/null @@ -1,23 +0,0 @@ -{ - "pins" : [ - { - "identity" : "codescanner", - "kind" : "remoteSourceControl", - "location" : "https://github.com/twostraws/CodeScanner", - "state" : { - "revision" : "c27a66149b7483fe42e2ec6aad61d5c3fffe522d", - "version" : "2.1.1" - } - }, - { - "identity" : "swiftygif", - "kind" : "remoteSourceControl", - "location" : "https://github.com/kirualex/SwiftyGif", - "state" : { - "branch" : "master", - "revision" : "5e8619335d394901379c9add5c4c1c2f420b3800" - } - } - ], - "version" : 2 -} diff --git a/apps/ios/SimpleXChat/APITypes.swift b/apps/ios/SimpleXChat/APITypes.swift index 737b51e607..2ae5b79f9c 100644 --- a/apps/ios/SimpleXChat/APITypes.swift +++ b/apps/ios/SimpleXChat/APITypes.swift @@ -829,6 +829,7 @@ public struct NetCfg: Codable, Equatable { public var tcpTimeout: Int // microseconds public var tcpKeepAlive: KeepAliveOpts? public var smpPingInterval: Int // microseconds + public var smpPingCount: Int // times public var logTLSErrors: Bool public static let defaults: NetCfg = NetCfg( @@ -836,7 +837,8 @@ public struct NetCfg: Codable, Equatable { tcpConnectTimeout: 10_000_000, tcpTimeout: 7_000_000, tcpKeepAlive: KeepAliveOpts.defaults, - smpPingInterval: 600_000_000, + smpPingInterval: 1200_000_000, + smpPingCount: 3, logTLSErrors: false ) @@ -845,7 +847,8 @@ public struct NetCfg: Codable, Equatable { tcpConnectTimeout: 20_000_000, tcpTimeout: 15_000_000, tcpKeepAlive: KeepAliveOpts.defaults, - smpPingInterval: 600_000_000, + smpPingInterval: 1200_000_000, + smpPingCount: 3, logTLSErrors: false ) diff --git a/apps/ios/SimpleXChat/AppGroup.swift b/apps/ios/SimpleXChat/AppGroup.swift index 6ccf51471c..0dd43a2fca 100644 --- a/apps/ios/SimpleXChat/AppGroup.swift +++ b/apps/ios/SimpleXChat/AppGroup.swift @@ -20,6 +20,7 @@ let GROUP_DEFAULT_NETWORK_USE_ONION_HOSTS = "networkUseOnionHosts" let GROUP_DEFAULT_NETWORK_TCP_CONNECT_TIMEOUT = "networkTCPConnectTimeout" let GROUP_DEFAULT_NETWORK_TCP_TIMEOUT = "networkTCPTimeout" let GROUP_DEFAULT_NETWORK_SMP_PING_INTERVAL = "networkSMPPingInterval" +let GROUP_DEFAULT_NETWORK_SMP_PING_COUNT = "networkSMPPingCount" let GROUP_DEFAULT_NETWORK_ENABLE_KEEP_ALIVE = "networkEnableKeepAlive" let GROUP_DEFAULT_NETWORK_TCP_KEEP_IDLE = "networkTCPKeepIdle" let GROUP_DEFAULT_NETWORK_TCP_KEEP_INTVL = "networkTCPKeepIntvl" @@ -38,6 +39,7 @@ public func registerGroupDefaults() { GROUP_DEFAULT_NETWORK_TCP_CONNECT_TIMEOUT: NetCfg.defaults.tcpConnectTimeout, GROUP_DEFAULT_NETWORK_TCP_TIMEOUT: NetCfg.defaults.tcpTimeout, GROUP_DEFAULT_NETWORK_SMP_PING_INTERVAL: NetCfg.defaults.smpPingInterval, + GROUP_DEFAULT_NETWORK_SMP_PING_COUNT: NetCfg.defaults.smpPingCount, GROUP_DEFAULT_NETWORK_ENABLE_KEEP_ALIVE: NetCfg.defaults.enableKeepAlive, GROUP_DEFAULT_NETWORK_TCP_KEEP_IDLE: KeepAliveOpts.defaults.keepIdle, GROUP_DEFAULT_NETWORK_TCP_KEEP_INTVL: KeepAliveOpts.defaults.keepIntvl, @@ -187,6 +189,7 @@ public func getNetCfg() -> NetCfg { let tcpConnectTimeout = groupDefaults.integer(forKey: GROUP_DEFAULT_NETWORK_TCP_CONNECT_TIMEOUT) let tcpTimeout = groupDefaults.integer(forKey: GROUP_DEFAULT_NETWORK_TCP_TIMEOUT) let smpPingInterval = groupDefaults.integer(forKey: GROUP_DEFAULT_NETWORK_SMP_PING_INTERVAL) + let smpPingCount = groupDefaults.integer(forKey: GROUP_DEFAULT_NETWORK_SMP_PING_COUNT) let enableKeepAlive = groupDefaults.bool(forKey: GROUP_DEFAULT_NETWORK_ENABLE_KEEP_ALIVE) var tcpKeepAlive: KeepAliveOpts? if enableKeepAlive { @@ -204,6 +207,7 @@ public func getNetCfg() -> NetCfg { tcpTimeout: tcpTimeout, tcpKeepAlive: tcpKeepAlive, smpPingInterval: smpPingInterval, + smpPingCount: smpPingCount, logTLSErrors: false ) } @@ -213,6 +217,7 @@ public func setNetCfg(_ cfg: NetCfg) { groupDefaults.set(cfg.tcpConnectTimeout, forKey: GROUP_DEFAULT_NETWORK_TCP_CONNECT_TIMEOUT) groupDefaults.set(cfg.tcpTimeout, forKey: GROUP_DEFAULT_NETWORK_TCP_TIMEOUT) groupDefaults.set(cfg.smpPingInterval, forKey: GROUP_DEFAULT_NETWORK_SMP_PING_INTERVAL) + groupDefaults.set(cfg.smpPingCount, forKey: GROUP_DEFAULT_NETWORK_SMP_PING_COUNT) if let tcpKeepAlive = cfg.tcpKeepAlive { groupDefaults.set(true, forKey: GROUP_DEFAULT_NETWORK_ENABLE_KEEP_ALIVE) groupDefaults.set(tcpKeepAlive.keepIdle, forKey: GROUP_DEFAULT_NETWORK_TCP_KEEP_IDLE) diff --git a/apps/ios/fr.lproj/Localizable.strings b/apps/ios/fr.lproj/Localizable.strings index 7a217a65b2..a13832c50a 100644 --- a/apps/ios/fr.lproj/Localizable.strings +++ b/apps/ios/fr.lproj/Localizable.strings @@ -1374,7 +1374,7 @@ "Make sure WebRTC ICE server addresses are in correct format, line separated and are not duplicated." = "Assurez-vous que les adresses des serveurs WebRTC ICE sont au bon format et ne sont pas dupliquées, un par ligne."; /* No comment provided by engineer. */ -"Many people asked: *if SimpleX has no user identifiers, how can it deliver messages?*" = "Beaucoup se demandent : *si SimpleX n'a pas d'identifiants d'utilisateur, comment peut-il délivrer des messages?*"; +"Many people asked: *if SimpleX has no user identifiers, how can it deliver messages?*" = "Beaucoup se demandent : *si SimpleX n'a pas d'identifiants d'utilisateur, comment peut-il délivrer des messages ?*"; /* No comment provided by engineer. */ "Mark deleted for everyone" = "Marquer comme supprimé pour tout le monde"; @@ -1900,7 +1900,7 @@ "Sender may have deleted the connection request." = "L'expéditeur a peut-être supprimé la demande de connexion."; /* No comment provided by engineer. */ -"Sending via" = "Envoyé via"; +"Sending via" = "Envoi via"; /* notification */ "Sent file event" = "Événement de fichier envoyé"; @@ -1945,7 +1945,7 @@ "Share link" = "Partager le lien"; /* No comment provided by engineer. */ -"Share one-time invitation link" = "Partager le lien d'invitation unique"; +"Share one-time invitation link" = "Partager un lien d'invitation unique"; /* No comment provided by engineer. */ "Show preview" = "Montrer l'aperçu"; diff --git a/apps/ios/it.lproj/Localizable.strings b/apps/ios/it.lproj/Localizable.strings index 9ca94167db..b29e110258 100644 --- a/apps/ios/it.lproj/Localizable.strings +++ b/apps/ios/it.lproj/Localizable.strings @@ -98,10 +98,10 @@ "%@ is connected!" = "%@ è connesso!"; /* No comment provided by engineer. */ -"%@ is not verified" = "%@ non è verificato"; +"%@ is not verified" = "%@ non è verificato/a"; /* No comment provided by engineer. */ -"%@ is verified" = "%@ è verificato"; +"%@ is verified" = "%@ è verificato/a"; /* notification title */ "%@ wants to connect!" = "%@ si vuole connettere!"; @@ -143,10 +143,10 @@ "%lld second(s)" = "%lld secondo/i"; /* No comment provided by engineer. */ -"%lldd" = "%lldd"; +"%lldd" = "%lldg"; /* No comment provided by engineer. */ -"%lldh" = "%lldh"; +"%lldh" = "%lldo"; /* No comment provided by engineer. */ "%lldk" = "%lldk"; @@ -155,13 +155,13 @@ "%lldm" = "%lldm"; /* No comment provided by engineer. */ -"%lldmth" = "%lldmth"; +"%lldmth" = "%lldmese"; /* No comment provided by engineer. */ "%llds" = "%llds"; /* No comment provided by engineer. */ -"%lldw" = "%lldw"; +"%lldw" = "%lldset"; /* No comment provided by engineer. */ "`a + b`" = "\\`a + b`"; @@ -444,7 +444,7 @@ "Chat preferences" = "Preferenze della chat"; /* No comment provided by engineer. */ -"Chats" = "Conversazioni"; +"Chats" = "Chat"; /* No comment provided by engineer. */ "Check server address and try again." = "Controlla l'indirizzo del server e riprova."; @@ -516,19 +516,19 @@ "connected" = "connesso"; /* No comment provided by engineer. */ -"connecting" = "connessione"; +"connecting" = "in connessione"; /* No comment provided by engineer. */ -"connecting (accepted)" = "connessione (accettato)"; +"connecting (accepted)" = "in connessione (accettato)"; /* No comment provided by engineer. */ -"connecting (announced)" = "connessione (annunciato)"; +"connecting (announced)" = "in connessione (annunciato)"; /* No comment provided by engineer. */ -"connecting (introduced)" = "connessione (presentato)"; +"connecting (introduced)" = "in connessione (presentato)"; /* No comment provided by engineer. */ -"connecting (introduction invitation)" = "connessione (invito di presentazione)"; +"connecting (introduction invitation)" = "in connessione (invito di presentazione)"; /* call status */ "connecting call" = "connessione chiamata…"; @@ -540,7 +540,7 @@ "Connecting server… (error: %@)" = "Connessione al server… (errore: %@)"; /* chat list item title */ -"connecting…" = "connessione…"; +"connecting…" = "in connessione…"; /* No comment provided by engineer. */ "Connection" = "Connessione"; @@ -765,7 +765,7 @@ "Delete messages" = "Elimina messaggi"; /* No comment provided by engineer. */ -"Delete messages after" = "Elimina messaggio dopo"; +"Delete messages after" = "Elimina messaggi dopo"; /* No comment provided by engineer. */ "Delete old database" = "Elimina database vecchio"; @@ -1140,7 +1140,7 @@ "Help" = "Aiuto"; /* No comment provided by engineer. */ -"Hidden" = "Nascosto"; +"Hidden" = "Nascosta"; /* chat item action */ "Hide" = "Nascondi"; @@ -1170,10 +1170,10 @@ "If the video fails to connect, flip the camera to resolve it." = "Se il video non riesce a connettersi, cambia la fotocamera (frontale/posteriore) per risolvere."; /* No comment provided by engineer. */ -"If you can't meet in person, **show QR code in the video call**, or share the link." = "Se non potete incontrarvi di persona, **mostratevi il codice QR durante la videochiamata** o condividete il link."; +"If you can't meet in person, **show QR code in the video call**, or share the link." = "Se non potete incontrarvi di persona, **mostra il codice QR durante la videochiamata** o condividi il link."; /* No comment provided by engineer. */ -"If you cannot meet in person, you can **scan QR code in the video call**, or your contact can share an invitation link." = "Se non potete incontrarvi di persona, potete **scansionare il codice QR durante la videochiamata** oppure il tuo contatto può condividere un link di invito."; +"If you cannot meet in person, you can **scan QR code in the video call**, or your contact can share an invitation link." = "Se non potete incontrarvi di persona, puoi **scansionare il codice QR durante la videochiamata** oppure il tuo contatto può condividere un link di invito."; /* No comment provided by engineer. */ "If you need to use the chat now tap **Do it later** below (you will be offered to migrate the database when you restart the app)." = "Se devi usare la chat adesso, tocca **Fallo più tardi** qui sotto (ti verrà offerto di migrare il database quando riavvii l'app)."; @@ -1248,10 +1248,10 @@ "Instantly" = "Istantaneamente"; /* invalid chat data */ -"invalid chat" = "conversazione non valida"; +"invalid chat" = "chat non valida"; /* No comment provided by engineer. */ -"invalid chat data" = "dati della conversazione non validi"; +"invalid chat data" = "dati chat non validi"; /* No comment provided by engineer. */ "Invalid connection link" = "Link di connessione non valido"; @@ -1383,7 +1383,7 @@ "Mark read" = "Segna come già letto"; /* No comment provided by engineer. */ -"Mark verified" = "Segna come verificato"; +"Mark verified" = "Segna come verificato/a"; /* No comment provided by engineer. */ "Markdown in messages" = "Markdown nei messaggi"; @@ -1470,7 +1470,7 @@ "New database archive" = "Nuovo archivio database"; /* No comment provided by engineer. */ -"New in %@" = "Novità in %@"; +"New in %@" = "Novità nella %@"; /* No comment provided by engineer. */ "New member role" = "Nuovo ruolo del membro"; @@ -1666,7 +1666,7 @@ "Privacy & security" = "Privacy e sicurezza"; /* No comment provided by engineer. */ -"Privacy redefined" = "La privacy ridefinita"; +"Privacy redefined" = "Privacy ridefinita"; /* No comment provided by engineer. */ "Profile image" = "Immagine del profilo"; @@ -1954,7 +1954,7 @@ "Show QR code" = "Mostra codice QR"; /* No comment provided by engineer. */ -"SimpleX Chat security was [audited by Trail of Bits](https://simplex.chat/blog/20221108-simplex-chat-v4.2-security-audit-new-website.html)." = "La sicurezza di SimpleX Chat è stata [controllata da Trail of Bits](https://simplex.chat/blog/20221108-simplex-chat-v4.2-security-audit-new-website.html)."; +"SimpleX Chat security was [audited by Trail of Bits](https://simplex.chat/blog/20221108-simplex-chat-v4.2-security-audit-new-website.html)." = "La sicurezza di SimpleX Chat è stata [verificata da Trail of Bits](https://simplex.chat/blog/20221108-simplex-chat-v4.2-security-audit-new-website.html)."; /* simplex link type */ "SimpleX contact address" = "Indirizzo del contatto SimpleX"; @@ -2038,7 +2038,7 @@ "Tap to join incognito" = "Toccare per entrare in incognito"; /* No comment provided by engineer. */ -"Tap to start a new chat" = "Tocca per iniziare una conversazione"; +"Tap to start a new chat" = "Tocca per iniziare una chat"; /* No comment provided by engineer. */ "TCP connection timeout" = "Scadenza connessione TCP"; @@ -2374,7 +2374,7 @@ "You can start chat via app Settings / Database or by restarting the app" = "Puoi avviare la chat via Impostazioni / Database o riavviando l'app"; /* No comment provided by engineer. */ -"You can use markdown to format messages:" = "Puoi utilizzare il markdown per formattare i messaggi:"; +"You can use markdown to format messages:" = "Puoi usare il markdown per formattare i messaggi:"; /* chat item text */ "you changed address" = "hai cambiato indirizzo"; @@ -2395,7 +2395,7 @@ "You could not be verified; please try again." = "Non è stato possibile verificarti, riprova."; /* No comment provided by engineer. */ -"You have no chats" = "Non hai conversazioni"; +"You have no chats" = "Non hai chat"; /* No comment provided by engineer. */ "You have to enter passphrase every time the app starts - it is not stored on the device." = "Devi inserire la password ogni volta che si avvia l'app: non viene memorizzata sul dispositivo."; @@ -2479,7 +2479,7 @@ "Your chat profile will be sent to your contact" = "Il tuo profilo di chat verrà inviato al tuo contatto"; /* No comment provided by engineer. */ -"Your chats" = "Le tue conversazioni"; +"Your chats" = "Le tue chat"; /* No comment provided by engineer. */ "Your contact address" = "Il tuo indirizzo di contatto"; diff --git a/package.yaml b/package.yaml index 07cecaca95..f90fdd4d5a 100644 --- a/package.yaml +++ b/package.yaml @@ -1,5 +1,5 @@ name: simplex-chat -version: 4.4.2 +version: 4.4.4 #synopsis: #description: homepage: https://github.com/simplex-chat/simplex-chat#readme diff --git a/simplex-chat.cabal b/simplex-chat.cabal index 0fb35f94c7..fad55a0eb3 100644 --- a/simplex-chat.cabal +++ b/simplex-chat.cabal @@ -5,7 +5,7 @@ cabal-version: 1.12 -- see: https://github.com/sol/hpack name: simplex-chat -version: 4.4.2 +version: 4.4.4 category: Web, System, Services, Cryptography homepage: https://github.com/simplex-chat/simplex-chat#readme author: simplex.chat diff --git a/src/Simplex/Chat.hs b/src/Simplex/Chat.hs index 42e57e19df..411a48bea4 100644 --- a/src/Simplex/Chat.hs +++ b/src/Simplex/Chat.hs @@ -89,7 +89,7 @@ defaultChatConfig = { agentConfig = defaultAgentConfig { tcpPort = undefined, -- agent does not listen to TCP - tbqSize = 64, + tbqSize = 1024, database = AgentDBFile {dbFile = "simplex_v1_agent", dbKey = ""}, yesToMigrations = False }, @@ -100,7 +100,7 @@ defaultChatConfig = ntf = _defaultNtfServers, netCfg = defaultNetworkConfig }, - tbqSize = 64, + tbqSize = 1024, fileChunkSize = 15780, -- do not change inlineFiles = defaultInlineFilesConfig, logLevel = CLLImportant,