Merge branch 'master' into users

This commit is contained in:
Evgeny Poberezkin
2023-01-20 12:22:29 +00:00
23 changed files with 175 additions and 143 deletions
+2 -2
View File
@@ -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 {
@@ -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
)
}
@@ -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<Int>
val networkTCPKeepIntvl: MutableState<Int>
@@ -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<Long>,
networkTCPTimeout: MutableState<Long>,
networkSMPPingInterval: MutableState<Long>,
networkSMPPingCount: MutableState<Int>,
networkEnableKeepAlive: MutableState<Boolean>,
networkTCPKeepIdle: MutableState<Int>,
networkTCPKeepIntvl: MutableState<Int>,
@@ -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) },
@@ -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)) {
@@ -786,7 +786,7 @@
<string name="prohibit_direct_messages">Interdire l\'envoi de messages directs aux membres.</string>
<string name="group_members_can_delete">Les membres du groupe peuvent supprimer de manière irréversible les messages envoyés.</string>
<string name="message_deletion_prohibited_in_chat">La suppression irréversible de messages est interdite dans ce groupe.</string>
<string name="sending_via">Envo via</string>
<string name="sending_via">Envoi via</string>
<string name="network_status">État du réseau</string>
<string name="switch_receiving_address">Changer d\'adresse de réception</string>
<string name="create_secret_group_title">Créer un groupe secret</string>
@@ -3,7 +3,7 @@
<string name="simplex_link_mode">Link di SimpleX</string>
<string name="network_error_desc">Controlla la tua connessione di rete con <xliff:g id="serverHost" example="smp.simplex.im">%1$s</xliff:g> e riprova.</string>
<string name="service_notifications_disabled">Le notifiche istantanee sono disattivate!</string>
<string name="contact_connection_pending">connessione…</string>
<string name="contact_connection_pending">in connessione…</string>
<string name="attach">Allega</string>
<string name="icon_descr_cancel_image_preview">Annulla anteprima immagine</string>
<string name="images_limit_desc">Possono essere inviate solo 10 immagini alla volta</string>
@@ -17,7 +17,7 @@
<string name="connect_via_link_verb">Connetti</string>
<string name="server_connected">connesso</string>
<string name="server_error">errore</string>
<string name="server_connecting">connessione</string>
<string name="server_connecting">in connessione</string>
<string name="connected_to_server_to_receive_messages_from_contact">Sei connesso al server usato per ricevere messaggi da questo contatto.</string>
<string name="trying_to_connect_to_server_to_receive_messages">Tentativo di connessione al server usato per ricevere messaggi da questo contatto.</string>
<string name="deleted_description">eliminato</string>
@@ -32,7 +32,7 @@
<string name="invalid_data">dati non validi</string>
<string name="display_name_connection_established">connessione stabilita</string>
<string name="display_name_invited_to_connect">invitato a connettersi</string>
<string name="display_name_connecting">connessione…</string>
<string name="display_name_connecting">in connessione…</string>
<string name="description_you_shared_one_time_link">hai condiviso un link una tantum</string>
<string name="description_you_shared_one_time_link_incognito">hai condiviso un link incognito una tantum</string>
<string name="description_via_group_link">via link di gruppo</string>
@@ -50,7 +50,7 @@
<string name="ensure_smp_server_address_are_correct_format_and_unique">Assicurati che gli indirizzi dei server SMP siano nel formato giusto, uno per riga e non doppi.</string>
<string name="error_setting_network_config">Errore di aggiornamento della configurazione di rete</string>
<string name="failed_to_parse_chat_title">Caricamento conversazione fallito</string>
<string name="failed_to_parse_chats_title">Caricamento conversazioni fallito</string>
<string name="failed_to_parse_chats_title">Caricamento delle chat fallito</string>
<string name="contact_developers">Aggiorna l\'app e contatta gli sviluppatori.</string>
<string name="connection_timeout">Connessione scaduta</string>
<string name="connection_error">Errore di connessione</string>
@@ -104,7 +104,7 @@
<string name="notifications_mode_periodic_desc">Controlla messaggi nuovi ogni 10 minuti per massimo 1 minuto</string>
<string name="notification_preview_mode_message">Testo del messaggio</string>
<string name="notification_preview_mode_contact">Nome del contatto</string>
<string name="notification_preview_mode_hidden">Nascosto</string>
<string name="notification_preview_mode_hidden">Nascosta</string>
<string name="notification_preview_mode_message_desc">Mostra contatto e messaggio</string>
<string name="notification_preview_mode_contact_desc">Mostra solo il contatto</string>
<string name="notification_display_mode_hidden_desc">Nascondi contatto e messaggio</string>
@@ -145,13 +145,13 @@
<string name="personal_welcome">Benvenuto/a <xliff:g>%1$s</xliff:g>!</string>
<string name="welcome">Benvenuto/a!</string>
<string name="this_text_is_available_in_settings">Questo testo è disponibile nelle impostazioni</string>
<string name="your_chats">Le tue conversazioni</string>
<string name="your_chats">Le tue chat</string>
<string name="group_preview_you_are_invited">sei stato invitato in un gruppo</string>
<string name="group_preview_join_as">entra come %s</string>
<string name="group_connection_pending">connessione…</string>
<string name="group_connection_pending">in connessione…</string>
<string name="tap_to_start_new_chat">Tocca per iniziare una conversazione</string>
<string name="chat_with_developers">Scrivi agli sviluppatori</string>
<string name="you_have_no_chats">Non hai conversazioni</string>
<string name="you_have_no_chats">Non hai chat</string>
<string name="share_image">Condividi immagine…</string>
<string name="share_file">Condividi file…</string>
<string name="icon_descr_context">Icona contestuale</string>
@@ -265,7 +265,7 @@
<string name="chat_item_ttl_month">1 mese</string>
<string name="error_importing_database">Errore nell\'importazione del database della chat</string>
<string name="group_full_name_field">Nome completo del gruppo:</string>
<string name="if_you_cannot_meet_in_person_scan_QR_in_video_call_or_ask_for_invitation_link">Se non potete incontrarvi di persona, potete <b>scansionare il codice QR nella videochiamata</b>, oppure il tuo contatto può condividere un link di invito.</string>
<string name="if_you_cannot_meet_in_person_scan_QR_in_video_call_or_ask_for_invitation_link">Se non potete incontrarvi di persona, puoi <b>scansionare il codice QR nella videochiamata</b>, oppure il tuo contatto può condividere un link di invito.</string>
<string name="full_backup">Backup dei dati dell\'app</string>
<string name="keychain_is_storing_securely">Android Keystore è usato per memorizzare in modo sicuro la password; permette il funzionamento del servizio di notifica.</string>
<string name="allow_your_contacts_to_send_voice_messages">Permetti ai tuoi contatti di inviare messaggi vocali.</string>
@@ -485,7 +485,7 @@
<string name="feature_enabled_for_you">attivato per te</string>
<string name="group_preferences">Preferenze del gruppo</string>
<string name="v4_2_auto_accept_contact_requests">Auto-accetta richieste di contatto</string>
<string name="ttl_d">%dd</string>
<string name="ttl_d">%dg</string>
<string name="ttl_day">%d giorno</string>
<string name="ttl_days">%d giorni</string>
<string name="delete_after">Elimina dopo</string>
@@ -497,10 +497,10 @@
<string name="ttl_min">%d min</string>
<string name="ttl_month">%d mese</string>
<string name="ttl_months">%d mesi</string>
<string name="ttl_mth">%dmth</string>
<string name="ttl_mth">%dmese</string>
<string name="ttl_s">%ds</string>
<string name="ttl_sec">%d sec</string>
<string name="ttl_w">%dw</string>
<string name="ttl_w">%dset</string>
<string name="ttl_week">%d settimana</string>
<string name="ttl_weeks">%d settimane</string>
<string name="v4_2_group_links">Link del gruppo</string>
@@ -523,7 +523,7 @@
<string name="delete_files_and_media_question">Eliminare i file e i multimediali\?</string>
<string name="delete_files_and_media">"Elimina file e multimediali"</string>
<string name="delete_messages">Elimina messaggi</string>
<string name="delete_messages_after">Elimina messaggio dopo</string>
<string name="delete_messages_after">Elimina messaggi dopo</string>
<string name="total_files_count_and_size">%d file con dimensione totale di %s</string>
<string name="enable_automatic_deletion_question">Attivare l\'eliminazione automatica dei messaggi\?</string>
<string name="encrypt_database_question">Crittografare il database\?</string>
@@ -584,7 +584,7 @@
<string name="smp_servers_invalid_address">Indirizzo del server non valido!</string>
<string name="markdown_help">Aiuto sul markdown</string>
<string name="markdown_in_messages">Markdown nei messaggi</string>
<string name="mark_code_verified">Segna come verificato</string>
<string name="mark_code_verified">Segna come verificato/a</string>
<string name="one_time_link">Link di invito una tantum</string>
<string name="paste_button">Incolla</string>
<string name="paste_connection_link_below_to_connect">Incolla il link che hai ricevuto nella casella sottostante per connetterti con il tuo contatto.</string>
@@ -600,8 +600,8 @@
<string name="smp_servers_test_failed">Test del server fallito!</string>
<string name="share_invitation_link">Condividi link di invito</string>
<string name="chat_lock">SimpleX Lock</string>
<string name="is_not_verified">%s non è verificato</string>
<string name="is_verified">%s è verificato</string>
<string name="is_not_verified">%s non è verificato/a</string>
<string name="is_verified">%s è verificato/a</string>
<string name="smp_servers">Server SMP</string>
<string name="smp_servers_test_some_failed">Alcuni server hanno fallito il test:</string>
<string name="smp_servers_test_server">Testa server</string>
@@ -663,7 +663,7 @@
<string name="callstate_waiting_for_confirmation">in attesa di conferma…</string>
<string name="we_do_not_store_contacts_or_messages_on_servers">Non memorizziamo nessuno dei tuoi contatti o messaggi (una volta recapitati) sui server.</string>
<string name="section_title_welcome_message">MESSAGGIO DI BENVENUTO</string>
<string name="you_can_use_markdown_to_format_messages__prompt">Puoi utilizzare il markdown per formattare i messaggi:</string>
<string name="you_can_use_markdown_to_format_messages__prompt">Puoi usare il markdown per formattare i messaggi:</string>
<string name="you_control_your_chat">Sei tu a controllare la tua chat!</string>
<string name="your_chat_profile">Il tuo profilo di chat</string>
<string name="your_profile_is_stored_on_your_device">Il tuo profilo, i contatti e i messaggi recapitati sono memorizzati sul tuo dispositivo.</string>
@@ -683,7 +683,7 @@
<string name="paste_the_link_you_received">Incolla il link ricevuto</string>
<string name="people_can_connect_only_via_links_you_share">Le persone possono connettersi a te solo tramite i link che condividi.</string>
<string name="onboarding_notifications_mode_periodic">Periodico</string>
<string name="privacy_redefined">La privacy ridefinita</string>
<string name="privacy_redefined">Privacy ridefinita</string>
<string name="onboarding_notifications_mode_title">Notifiche private</string>
<string name="read_more_in_github_with_link">Maggiori informazioni nel nostro <font color="#0088ff">repository GitHub</font>.</string>
<string name="read_more_in_github">Maggiori informazioni nel nostro repository GitHub.</string>
@@ -880,7 +880,7 @@
<string name="v4_3_irreversible_message_deletion">Eliminazione irreversibile del messaggio</string>
<string name="message_deletion_prohibited_in_chat">L\'eliminazione irreversibile dei messaggi è vietata in questo gruppo.</string>
<string name="v4_3_voice_messages_desc">Max 40 secondi, ricevuto istantaneamente.</string>
<string name="new_in_version">Novità in %s</string>
<string name="new_in_version">Novità nella %s</string>
<string name="only_you_can_send_voice">Solo tu puoi inviare messaggi vocali.</string>
<string name="only_your_contact_can_send_voice">Solo il tuo contatto può inviare messaggi vocali.</string>
<string name="prohibit_message_deletion">Proibisci l\'eliminazione irreversibile dei messaggi.</string>
@@ -952,6 +952,7 @@
<string name="network_option_tcp_connection_timeout">TCP connection timeout</string>
<string name="network_option_protocol_timeout">Protocol timeout</string>
<string name="network_option_ping_interval">PING interval</string>
<string name="network_option_ping_count">PING count</string>
<string name="network_option_enable_tcp_keep_alive">Enable TCP keep-alive</string>
<string name="network_options_revert">Revert</string>
<string name="network_options_save">Save</string>
@@ -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 {
@@ -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")
@@ -2273,6 +2273,10 @@ Wir werden Serverredundanzen hinzufügen, um verloren gegangene Nachrichten zu v
<target>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.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="PING count" xml:space="preserve">
<source>PING count</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="PING interval" xml:space="preserve">
<source>PING interval</source>
<target>PING-Intervall</target>
@@ -2273,6 +2273,11 @@ We will be adding server redundancy to prevent lost messages.</target>
<target>Opening the link in the browser may reduce connection privacy and security. Untrusted SimpleX links will be red.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="PING count" xml:space="preserve">
<source>PING count</source>
<target>PING count</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="PING interval" xml:space="preserve">
<source>PING interval</source>
<target>PING interval</target>
@@ -1970,7 +1970,7 @@ Nous allons ajouter une redondance des serveurs pour éviter la perte de message
</trans-unit>
<trans-unit id="Many people asked: *if SimpleX has no user identifiers, how can it deliver messages?*" xml:space="preserve">
<source>Many people asked: *if SimpleX has no user identifiers, how can it deliver messages?*</source>
<target>Beaucoup se demandent : *si SimpleX n'a pas d'identifiants d'utilisateur, comment peut-il délivrer des messages?*</target>
<target>Beaucoup se demandent : *si SimpleX n'a pas d'identifiants d'utilisateur, comment peut-il délivrer des messages ?*</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Mark deleted for everyone" xml:space="preserve">
@@ -2273,6 +2273,10 @@ Nous allons ajouter une redondance des serveurs pour éviter la perte de message
<target>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.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="PING count" xml:space="preserve">
<source>PING count</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="PING interval" xml:space="preserve">
<source>PING interval</source>
<target>Intervalle de PING</target>
@@ -2730,7 +2734,7 @@ Nous allons ajouter une redondance des serveurs pour éviter la perte de message
</trans-unit>
<trans-unit id="Sending via" xml:space="preserve">
<source>Sending via</source>
<target>Envo via</target>
<target>Envoi via</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Sent file event" xml:space="preserve">
@@ -2805,7 +2809,7 @@ Nous allons ajouter une redondance des serveurs pour éviter la perte de message
</trans-unit>
<trans-unit id="Share one-time invitation link" xml:space="preserve">
<source>Share one-time invitation link</source>
<target>Partager le lien d'invitation unique</target>
<target>Partager un lien d'invitation unique</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Show QR code" xml:space="preserve">
@@ -69,12 +69,12 @@
</trans-unit>
<trans-unit id="%@ is not verified" xml:space="preserve">
<source>%@ is not verified</source>
<target>%@ non è verificato</target>
<target>%@ non è verificato/a</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="%@ is verified" xml:space="preserve">
<source>%@ is verified</source>
<target>%@ è verificato</target>
<target>%@ è verificato/a</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="%@ wants to connect!" xml:space="preserve">
@@ -144,12 +144,12 @@
</trans-unit>
<trans-unit id="%lldd" xml:space="preserve">
<source>%lldd</source>
<target>%lldd</target>
<target>%lldg</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="%lldh" xml:space="preserve">
<source>%lldh</source>
<target>%lldh</target>
<target>%lldo</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="%lldk" xml:space="preserve">
@@ -164,7 +164,7 @@
</trans-unit>
<trans-unit id="%lldmth" xml:space="preserve">
<source>%lldmth</source>
<target>%lldmth</target>
<target>%lldmese</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="%llds" xml:space="preserve">
@@ -174,7 +174,7 @@
</trans-unit>
<trans-unit id="%lldw" xml:space="preserve">
<source>%lldw</source>
<target>%lldw</target>
<target>%lldset</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="(" xml:space="preserve">
@@ -635,7 +635,7 @@
</trans-unit>
<trans-unit id="Chats" xml:space="preserve">
<source>Chats</source>
<target>Conversazioni</target>
<target>Chat</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Check server address and try again." xml:space="preserve">
@@ -1093,7 +1093,7 @@
</trans-unit>
<trans-unit id="Delete messages after" xml:space="preserve">
<source>Delete messages after</source>
<target>Elimina messaggio dopo</target>
<target>Elimina messaggi dopo</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Delete old database" xml:space="preserve">
@@ -1653,7 +1653,7 @@
</trans-unit>
<trans-unit id="Hidden" xml:space="preserve">
<source>Hidden</source>
<target>Nascosto</target>
<target>Nascosta</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Hide" xml:space="preserve">
@@ -1703,12 +1703,12 @@
</trans-unit>
<trans-unit id="If you can't meet in person, **show QR code in the video call**, or share the link." xml:space="preserve">
<source>If you can't meet in person, **show QR code in the video call**, or share the link.</source>
<target>Se non potete incontrarvi di persona, **mostratevi il codice QR durante la videochiamata** o condividete il link.</target>
<target>Se non potete incontrarvi di persona, **mostra il codice QR durante la videochiamata** o condividi il link.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="If you cannot meet in person, you can **scan QR code in the video call**, or your contact can share an invitation link." xml:space="preserve">
<source>If you cannot meet in person, you can **scan QR code in the video call**, or your contact can share an invitation link.</source>
<target>Se non potete incontrarvi di persona, potete **scansionare il codice QR durante la videochiamata** oppure il tuo contatto può condividere un link di invito.</target>
<target>Se non potete incontrarvi di persona, puoi **scansionare il codice QR durante la videochiamata** oppure il tuo contatto può condividere un link di invito.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="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)." xml:space="preserve">
@@ -1985,7 +1985,7 @@ Aggiungeremo la ridondanza del server per prevenire la perdita di messaggi.</tar
</trans-unit>
<trans-unit id="Mark verified" xml:space="preserve">
<source>Mark verified</source>
<target>Segna come verificato</target>
<target>Segna come verificato/a</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Markdown in messages" xml:space="preserve">
@@ -2100,7 +2100,7 @@ Aggiungeremo la ridondanza del server per prevenire la perdita di messaggi.</tar
</trans-unit>
<trans-unit id="New in %@" xml:space="preserve">
<source>New in %@</source>
<target>Novità in %@</target>
<target>Novità nella %@</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="New member role" xml:space="preserve">
@@ -2273,6 +2273,10 @@ Aggiungeremo la ridondanza del server per prevenire la perdita di messaggi.</tar
<target>Aprire il link nel browser può ridurre la privacy e la sicurezza della connessione. I link SimpleX non fidati saranno in rosso.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="PING count" xml:space="preserve">
<source>PING count</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="PING interval" xml:space="preserve">
<source>PING interval</source>
<target>Intervallo PING</target>
@@ -2375,7 +2379,7 @@ Aggiungeremo la ridondanza del server per prevenire la perdita di messaggi.</tar
</trans-unit>
<trans-unit id="Privacy redefined" xml:space="preserve">
<source>Privacy redefined</source>
<target>La privacy ridefinita</target>
<target>Privacy ridefinita</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Profile image" xml:space="preserve">
@@ -2820,7 +2824,7 @@ Aggiungeremo la ridondanza del server per prevenire la perdita di messaggi.</tar
</trans-unit>
<trans-unit id="SimpleX Chat security was [audited by Trail of Bits](https://simplex.chat/blog/20221108-simplex-chat-v4.2-security-audit-new-website.html)." xml:space="preserve">
<source>SimpleX Chat security was [audited by Trail of Bits](https://simplex.chat/blog/20221108-simplex-chat-v4.2-security-audit-new-website.html).</source>
<target>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).</target>
<target>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).</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="SimpleX Lock" xml:space="preserve">
@@ -2965,7 +2969,7 @@ Aggiungeremo la ridondanza del server per prevenire la perdita di messaggi.</tar
</trans-unit>
<trans-unit id="Tap to start a new chat" xml:space="preserve">
<source>Tap to start a new chat</source>
<target>Tocca per iniziare una conversazione</target>
<target>Tocca per iniziare una chat</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Test failed at step %@." xml:space="preserve">
@@ -3439,7 +3443,7 @@ Per connetterti, chiedi al tuo contatto di creare un altro link di connessione e
</trans-unit>
<trans-unit id="You can use markdown to format messages:" xml:space="preserve">
<source>You can use markdown to format messages:</source>
<target>Puoi utilizzare il markdown per formattare i messaggi:</target>
<target>Puoi usare il markdown per formattare i messaggi:</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="You control through which server(s) **to receive** the messages, your contacts the servers you use to message them." xml:space="preserve">
@@ -3454,7 +3458,7 @@ Per connetterti, chiedi al tuo contatto di creare un altro link di connessione e
</trans-unit>
<trans-unit id="You have no chats" xml:space="preserve">
<source>You have no chats</source>
<target>Non hai conversazioni</target>
<target>Non hai chat</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="You have to enter passphrase every time the app starts - it is not stored on the device." xml:space="preserve">
@@ -3584,7 +3588,7 @@ Per connetterti, chiedi al tuo contatto di creare un altro link di connessione e
</trans-unit>
<trans-unit id="Your chats" xml:space="preserve">
<source>Your chats</source>
<target>Le tue conversazioni</target>
<target>Le tue chat</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Your contact address" xml:space="preserve">
@@ -3798,27 +3802,27 @@ I server di SimpleX non possono vedere il tuo profilo.</target>
</trans-unit>
<trans-unit id="connecting" xml:space="preserve">
<source>connecting</source>
<target>connessione</target>
<target>in connessione</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="connecting (accepted)" xml:space="preserve">
<source>connecting (accepted)</source>
<target>connessione (accettato)</target>
<target>in connessione (accettato)</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="connecting (announced)" xml:space="preserve">
<source>connecting (announced)</source>
<target>connessione (annunciato)</target>
<target>in connessione (annunciato)</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="connecting (introduced)" xml:space="preserve">
<source>connecting (introduced)</source>
<target>connessione (presentato)</target>
<target>in connessione (presentato)</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="connecting (introduction invitation)" xml:space="preserve">
<source>connecting (introduction invitation)</source>
<target>connessione (invito di presentazione)</target>
<target>in connessione (invito di presentazione)</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="connecting call" xml:space="preserve">
@@ -3828,7 +3832,7 @@ I server di SimpleX non possono vedere il tuo profilo.</target>
</trans-unit>
<trans-unit id="connecting…" xml:space="preserve">
<source>connecting…</source>
<target>connessione…</target>
<target>in connessione…</target>
<note>chat list item title</note>
</trans-unit>
<trans-unit id="connection established" xml:space="preserve">
@@ -3958,12 +3962,12 @@ I server di SimpleX non possono vedere il tuo profilo.</target>
</trans-unit>
<trans-unit id="invalid chat" xml:space="preserve">
<source>invalid chat</source>
<target>conversazione non valida</target>
<target>chat non valida</target>
<note>invalid chat data</note>
</trans-unit>
<trans-unit id="invalid chat data" xml:space="preserve">
<source>invalid chat data</source>
<target>dati della conversazione non validi</target>
<target>dati chat non validi</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="invalid data" xml:space="preserve">
@@ -2273,6 +2273,11 @@ We will be adding server redundancy to prevent lost messages.</source>
<target>Использование ссылки в браузере может уменьшить конфиденциальность и безопасность соединения. Ссылки на неизвестные сайты будут красными.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="PING count" xml:space="preserve">
<source>PING count</source>
<source>Количество PING</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="PING interval" xml:space="preserve">
<source>PING interval</source>
<target>Интервал PING</target>
+18 -8
View File
@@ -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 = "<group>"; };
5CBD2859295711D700EC2CF4 /* ImageUtils.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ImageUtils.swift; sourceTree = "<group>"; };
5CBD285B29575B8E00EC2CF4 /* WhatsNewView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WhatsNewView.swift; sourceTree = "<group>"; };
5CBDFB52297A883C00E723C8 /* libHSsimplex-chat-4.4.4-GH5mduSQmlJ14EbWq6Ljca.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = "libHSsimplex-chat-4.4.4-GH5mduSQmlJ14EbWq6Ljca.a"; sourceTree = "<group>"; };
5CBDFB53297A883C00E723C8 /* libgmpxx.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libgmpxx.a; sourceTree = "<group>"; };
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 = "<group>"; };
5CBDFB55297A883C00E723C8 /* libffi.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libffi.a; sourceTree = "<group>"; };
5CBDFB56297A883C00E723C8 /* libgmp.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libgmp.a; sourceTree = "<group>"; };
5CBE6C11294487F7002D9531 /* VerifyCodeView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = VerifyCodeView.swift; sourceTree = "<group>"; };
5CBE6C132944CC12002D9531 /* ScanCodeView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ScanCodeView.swift; sourceTree = "<group>"; };
5CC1C99127A6C7F5000D9FF6 /* QRCode.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = QRCode.swift; sourceTree = "<group>"; };
@@ -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;
@@ -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
}
+5 -2
View File
@@ -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
)
+5
View File
@@ -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)
+3 -3
View File
@@ -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" = "Envo 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";
+27 -27
View File
@@ -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";
+1 -1
View File
@@ -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
+1 -1
View File
@@ -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
+2 -2
View File
@@ -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,