mirror of
https://github.com/jkcoxson/LocalDevVPN.git
synced 2026-03-02 06:26:16 +01:00
fix: fixing some bugs
* fixed bug with "Restart" popup * fixed unusued strings * fixed tunnel status not translated
This commit is contained in:
@@ -118,11 +118,7 @@ class TunnelManager: ObservableObject {
|
|||||||
DispatchQueue.main.async {
|
DispatchQueue.main.async {
|
||||||
if let error = error {
|
if let error = error {
|
||||||
VPNLogger.shared.log("Error loading preferences: \(error.localizedDescription)")
|
VPNLogger.shared.log("Error loading preferences: \(error.localizedDescription)")
|
||||||
#if targetEnvironment(simulator)
|
|
||||||
self.tunnelStatus = .disconnected
|
|
||||||
#else
|
|
||||||
self.tunnelStatus = .error
|
self.tunnelStatus = .error
|
||||||
#endif
|
|
||||||
self.waitingOnSettings = true
|
self.waitingOnSettings = true
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
@@ -203,7 +199,7 @@ class TunnelManager: ObservableObject {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private func updateTunnelStatus(from connectionStatus: NEVPNStatus) {
|
private func updateTunnelStatus(from connectionStatus: NEVPNStatus) {
|
||||||
var newStatus: TunnelStatus
|
let newStatus: TunnelStatus
|
||||||
switch connectionStatus {
|
switch connectionStatus {
|
||||||
case .invalid, .disconnected:
|
case .invalid, .disconnected:
|
||||||
newStatus = .disconnected
|
newStatus = .disconnected
|
||||||
@@ -219,10 +215,6 @@ class TunnelManager: ObservableObject {
|
|||||||
newStatus = .error
|
newStatus = .error
|
||||||
}
|
}
|
||||||
|
|
||||||
#if targetEnvironment(simulator)
|
|
||||||
newStatus = .connected
|
|
||||||
#endif
|
|
||||||
|
|
||||||
DispatchQueue.main.async { [weak self] in
|
DispatchQueue.main.async { [weak self] in
|
||||||
guard let self = self else { return }
|
guard let self = self else { return }
|
||||||
if self.tunnelStatus != newStatus {
|
if self.tunnelStatus != newStatus {
|
||||||
@@ -830,14 +822,14 @@ struct ConnectionStatsView: View {
|
|||||||
)
|
)
|
||||||
StatItemView(
|
StatItemView(
|
||||||
title: "status",
|
title: "status",
|
||||||
value: "active",
|
value: NSLocalizedString("active", comment: ""),
|
||||||
icon: "checkmark.circle.fill"
|
icon: "checkmark.circle.fill"
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
HStack(spacing: 30) {
|
HStack(spacing: 30) {
|
||||||
StatItemView(
|
StatItemView(
|
||||||
title: "network_interface",
|
title: "network_interface",
|
||||||
value: "local",
|
value: NSLocalizedString("local", comment: ""),
|
||||||
icon: "network"
|
icon: "network"
|
||||||
)
|
)
|
||||||
StatItemView(
|
StatItemView(
|
||||||
@@ -908,6 +900,7 @@ struct SettingsView: View {
|
|||||||
@AppStorage("hasNotCompletedSetup") private var hasNotCompletedSetup = true
|
@AppStorage("hasNotCompletedSetup") private var hasNotCompletedSetup = true
|
||||||
|
|
||||||
@State private var showNetworkWarning = false
|
@State private var showNetworkWarning = false
|
||||||
|
@State private var showRestartPopUp = false
|
||||||
|
|
||||||
var body: some View {
|
var body: some View {
|
||||||
NBNavigationStack {
|
NBNavigationStack {
|
||||||
@@ -948,15 +941,25 @@ struct SettingsView: View {
|
|||||||
}
|
}
|
||||||
|
|
||||||
Section(header: Text("language")) {
|
Section(header: Text("language")) {
|
||||||
Picker("language", selection: $selectedLanguage) {
|
Picker("dropdown_language", selection: $selectedLanguage) {
|
||||||
Text("English").tag("en")
|
Text("english").tag("en")
|
||||||
Text("Spanish").tag("es")
|
Text("spanish").tag("es")
|
||||||
Text("Italian").tag("it")
|
Text("italian").tag("it")
|
||||||
Text("Polish").tag("pl")
|
Text("polish").tag("pl")
|
||||||
}
|
}
|
||||||
.onChange(of: selectedLanguage) { newValue in
|
.onChange(of: selectedLanguage) { newValue in
|
||||||
let languageCode = newValue
|
let languageCode = newValue
|
||||||
LanguageManager.shared.updateLanguage(to: languageCode)
|
LanguageManager.shared.updateLanguage(to: languageCode)
|
||||||
|
showRestartPopUp = true
|
||||||
|
}
|
||||||
|
.alert(isPresented: $showRestartPopUp){
|
||||||
|
Alert(
|
||||||
|
title: Text("restart_title"),
|
||||||
|
message: Text("restart_message"),
|
||||||
|
dismissButton: .cancel(Text("understand_button")) {
|
||||||
|
showRestartPopUp = true
|
||||||
|
}
|
||||||
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1012,7 +1015,6 @@ struct SettingsView: View {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// MARK: - New Data Collection Info View
|
// MARK: - New Data Collection Info View
|
||||||
struct DataCollectionInfoView: View {
|
struct DataCollectionInfoView: View {
|
||||||
var body: some View {
|
var body: some View {
|
||||||
@@ -1340,9 +1342,7 @@ struct SetupPageView: View {
|
|||||||
|
|
||||||
class LanguageManager: ObservableObject {
|
class LanguageManager: ObservableObject {
|
||||||
static let shared = LanguageManager()
|
static let shared = LanguageManager()
|
||||||
|
|
||||||
@Published var currentLanguage: String = Locale.current.languageCode ?? "en"
|
@Published var currentLanguage: String = Locale.current.languageCode ?? "en"
|
||||||
|
|
||||||
private let supportedLanguages = ["en", "es", "it", "pl"]
|
private let supportedLanguages = ["en", "es", "it", "pl"]
|
||||||
|
|
||||||
func updateLanguage(to languageCode: String) {
|
func updateLanguage(to languageCode: String) {
|
||||||
|
|||||||
@@ -23,6 +23,12 @@
|
|||||||
"local" = "Local";
|
"local" = "Local";
|
||||||
"assigned_ip" = "Assigned IP";
|
"assigned_ip" = "Assigned IP";
|
||||||
|
|
||||||
|
/* MARK: Locales */
|
||||||
|
"english" = "English";
|
||||||
|
"spanish" = "Spanish";
|
||||||
|
"italian" = "Italian";
|
||||||
|
"polish" = "Polish";
|
||||||
|
|
||||||
/* MARK: Settings */
|
/* MARK: Settings */
|
||||||
|
|
||||||
"connection_settings" = "Connection Settings";
|
"connection_settings" = "Connection Settings";
|
||||||
@@ -37,11 +43,8 @@
|
|||||||
"data_collection_policy" = "Data Collection Policy";
|
"data_collection_policy" = "Data Collection Policy";
|
||||||
"app_version" = "App Version";
|
"app_version" = "App Version";
|
||||||
"help_and_support" = "Help and Support";
|
"help_and_support" = "Help and Support";
|
||||||
"language" = "Language";
|
"language" = "Set Language";
|
||||||
"english" = "English";
|
"dropdown_language" = "Language";
|
||||||
"spanish" = "Spanish";
|
|
||||||
"italian" = "Italian";
|
|
||||||
"polish" = "Polish";
|
|
||||||
"settings" = "Settings";
|
"settings" = "Settings";
|
||||||
"done" = "Done";
|
"done" = "Done";
|
||||||
"warning_alert" = "Warning";
|
"warning_alert" = "Warning";
|
||||||
@@ -55,7 +58,7 @@
|
|||||||
"local_processing_only_description" = "All network traffic and configurations are processed locally on your device. No information ever leaves the device or is transmitted over the Internet.";
|
"local_processing_only_description" = "All network traffic and configurations are processed locally on your device. No information ever leaves the device or is transmitted over the Internet.";
|
||||||
"no_third_party_sharing" = "No Third Party Sharing";
|
"no_third_party_sharing" = "No Third Party Sharing";
|
||||||
"no_third_party_sharing_description" = "Since we do not collect data, there is no sharing with third parties. We do not have analytics, tracking, or data collection mechanisms in this app.";
|
"no_third_party_sharing_description" = "Since we do not collect data, there is no sharing with third parties. We do not have analytics, tracking, or data collection mechanisms in this app.";
|
||||||
"why_use_network_permissions" = "Why Use Network Permissions";
|
"why_use_network_permissions" = "Why Use Network Permissions?";
|
||||||
"why_use_network_permissions_description" = "StosVPN requires network extension permissions to create a local network interface on your device. This is used exclusively for local development and testing.";
|
"why_use_network_permissions_description" = "StosVPN requires network extension permissions to create a local network interface on your device. This is used exclusively for local development and testing.";
|
||||||
"our_promise" = "Our Promise";
|
"our_promise" = "Our Promise";
|
||||||
"our_promise_description" = "We are committed to privacy and transparency. This app is designed for developers to test and connect to local servers with no privacy concerns.";
|
"our_promise_description" = "We are committed to privacy and transparency. This app is designed for developers to test and connect to local servers with no privacy concerns.";
|
||||||
@@ -119,3 +122,9 @@
|
|||||||
"setup_get_started" = "Get Started";
|
"setup_get_started" = "Get Started";
|
||||||
"setup_next" = "Next";
|
"setup_next" = "Next";
|
||||||
"setup_skip" = "Skip";
|
"setup_skip" = "Skip";
|
||||||
|
|
||||||
|
/*MARK: Restart pop-up*/
|
||||||
|
restart_title = "Restart";
|
||||||
|
restart_message = "To apply the changes, you need to restart the application.";
|
||||||
|
confirmYes = "Yes";
|
||||||
|
confirmNo = "No";
|
||||||
|
|||||||
@@ -23,6 +23,12 @@
|
|||||||
"local" = "Local";
|
"local" = "Local";
|
||||||
"assigned_ip" = "IP Asignada";
|
"assigned_ip" = "IP Asignada";
|
||||||
|
|
||||||
|
/* MARK: Locales */
|
||||||
|
"english" = "Inglés";
|
||||||
|
"spanish" = "Español";
|
||||||
|
"italian" = "Italiano";
|
||||||
|
"polish" = "Polaco";
|
||||||
|
|
||||||
/* MARK: Configuración */
|
/* MARK: Configuración */
|
||||||
|
|
||||||
"connection_settings" = "Configuración de Conexión";
|
"connection_settings" = "Configuración de Conexión";
|
||||||
@@ -37,11 +43,8 @@
|
|||||||
"data_collection_policy" = "Política de Recopilación de Datos";
|
"data_collection_policy" = "Política de Recopilación de Datos";
|
||||||
"app_version" = "Versión de la App";
|
"app_version" = "Versión de la App";
|
||||||
"help_and_support" = "Ayuda y Soporte";
|
"help_and_support" = "Ayuda y Soporte";
|
||||||
"language" = "Idioma";
|
"language" = "Establecer idioma";
|
||||||
"english" = "Inglés";
|
"dropdown_language" = "Idioma";
|
||||||
"spanish" = "Español";
|
|
||||||
"italian" = "Italiano";
|
|
||||||
"polish" = "Polish";
|
|
||||||
"settings" = "Configuración";
|
"settings" = "Configuración";
|
||||||
"done" = "Hecho";
|
"done" = "Hecho";
|
||||||
"warning_alert" = "Advertencia";
|
"warning_alert" = "Advertencia";
|
||||||
@@ -119,3 +122,9 @@
|
|||||||
"setup_get_started" = "Comenzar";
|
"setup_get_started" = "Comenzar";
|
||||||
"setup_next" = "Siguiente";
|
"setup_next" = "Siguiente";
|
||||||
"setup_skip" = "Saltar";
|
"setup_skip" = "Saltar";
|
||||||
|
|
||||||
|
/*MARK: Restart pop-up*/
|
||||||
|
restart_title = "Reiniciar";
|
||||||
|
restart_message = "Para aplicar los cambios, es necesario reiniciar la aplicación.";
|
||||||
|
confirmYes = "Sí";
|
||||||
|
confirmNo = "No";
|
||||||
|
|||||||
@@ -23,25 +23,28 @@
|
|||||||
"local" = "Locale";
|
"local" = "Locale";
|
||||||
"assigned_ip" = "IP Assegnato";
|
"assigned_ip" = "IP Assegnato";
|
||||||
|
|
||||||
/* MARK: Settins*/
|
/* MARK: Locales */
|
||||||
|
"english" = "Inglese";
|
||||||
|
"spanish" = "Spagnolo";
|
||||||
|
"italian" = "Italiano";
|
||||||
|
"polish" = "Polacco";
|
||||||
|
|
||||||
|
/* MARK: Settings*/
|
||||||
|
|
||||||
"connection_settings" = "Impostazioni Connessione";
|
"connection_settings" = "Impostazioni Connessione";
|
||||||
"auto_connect_on_launch" = "Connessione automatica all’avvio";
|
"auto_connect_on_launch" = "Connessione automatica all’avvio";
|
||||||
"connection_logs" = "Log di Connessione";
|
"connection_logs" = "Log di Connessione";
|
||||||
"network_configuration" = "Configurazione Rete";
|
"network_configuration" = "Configurazione Rete";
|
||||||
"device_ip" = "IP Dispositivo";
|
"device_ip" = "Indirizzo IP Dispositivo";
|
||||||
"tunnel_ip" = "IP Tunnel";
|
"tunnel_ip" = "Indirizzo IP Tunnel";
|
||||||
"subnet_mask" = "Maschera di Sottorete";
|
"subnet_mask" = "Maschera di Sottorete";
|
||||||
"app_information" = "Informazioni App";
|
"app_information" = "Informazioni App";
|
||||||
"privacy_policy" = "Privacy Policy";
|
"privacy_policy" = "Privacy Policy";
|
||||||
"data_collection_policy" = "Politica di Raccolta Dati";
|
"data_collection_policy" = "Politica di Raccolta Dati";
|
||||||
"app_version" = "Versione App";
|
"app_version" = "Versione App";
|
||||||
"help_and_support" = "Guida e Supporto";
|
"help_and_support" = "Guida e Supporto";
|
||||||
"language" = "Lingua";
|
"language" = "Imposta Lingua";
|
||||||
"english" = "Inglese";
|
"dropdown_language" = "Lingua";
|
||||||
"spanish" = "Spagnolo";
|
|
||||||
"italian" = "Italiano";
|
|
||||||
"polish" = "Polish";
|
|
||||||
"settings" = "Impostazioni";
|
"settings" = "Impostazioni";
|
||||||
"done" = "Fine";
|
"done" = "Fine";
|
||||||
"warning_alert" = "Avviso";
|
"warning_alert" = "Avviso";
|
||||||
@@ -49,56 +52,56 @@
|
|||||||
"understand_button" = "Ho capito";
|
"understand_button" = "Ho capito";
|
||||||
|
|
||||||
"data_collection_policy_title" = "Politica di Raccolta Dati";
|
"data_collection_policy_title" = "Politica di Raccolta Dati";
|
||||||
"no_data_collection" = "Nessuna Raccolta Dati";
|
"no_data_collection" = "Nessuna raccolta di dati";
|
||||||
"no_data_collection_description" = "StosVPN NON raccoglie dati utente, informazioni sul traffico o attività di navigazione. Questa app crea un tunnel di rete locale che rimane interamente sul tuo dispositivo.";
|
"no_data_collection_description" = "StosVPN NON raccoglie dati utente, informazioni sul traffico o attività di navigazione. Questa app crea un tunnel di rete locale che rimane interamente sul tuo dispositivo.";
|
||||||
"local_processing_only" = "Elaborazione Solo Locale";
|
"local_processing_only" = "Elaborazione solo sul tuo smartphone";
|
||||||
"local_processing_only_description" = "Tutto il traffico di rete e le configurazioni vengono elaborate localmente sul tuo dispositivo. Nessuna informazione lascia mai il dispositivo o viene trasmessa su Internet.";
|
"local_processing_only_description" = "Tutto il traffico di rete e le configurazioni vengono elaborate localmente sul tuo dispositivo. Nessuna informazione lascia mai il dispositivo o viene trasmessa su Internet.";
|
||||||
"no_third_party_sharing" = "Nessuna Condivisione con Terze Parti";
|
"no_third_party_sharing" = "Nessuna condivisione con servizi di terze parti";
|
||||||
"no_third_party_sharing_description" = "Poiché non raccogliamo dati, non c'è alcuna condivisione con terze parti. Non abbiamo analisi, tracciamento o meccanismi di raccolta dati in questa app.";
|
"no_third_party_sharing_description" = "Poiché non raccogliamo dati, non c'è alcuna condivisione con terze parti. Non abbiamo analisi, tracciamento o meccanismi di raccolta dati in questa app.";
|
||||||
"why_use_network_permissions" = "Perché Usare i Permessi di Rete";
|
"why_use_network_permissions" = "Perché concedere i permessi di Rete?";
|
||||||
"why_use_network_permissions_description" = "StosVPN richiede permessi di estensione di rete per creare un'interfaccia di rete locale sul tuo dispositivo. Questo è utilizzato esclusivamente per sviluppo e test locali.";
|
"why_use_network_permissions_description" = "StosVPN richiede permessi di estensione di rete per creare un'interfaccia di rete locale sul tuo dispositivo. Questo è utilizzato esclusivamente per sviluppo e test locali sul tuo dispositivo.";
|
||||||
"our_promise" = "La Nostra Promessa";
|
"our_promise" = "La nostra promessa";
|
||||||
"our_promise_description" = "Ci impegniamo per la privacy e la trasparenza. Questa app è progettata per sviluppatori per testare e connettersi a server locali senza preoccupazioni sulla privacy.";
|
"our_promise_description" = "Ci impegniamo per la privacy e la trasparenza. Questa app è progettata per sviluppatori per testare e connettersi a server locali senza preoccupazioni sulla privacy.";
|
||||||
"data_collection_policy_nav" = "Raccolta Dati";
|
"data_collection_policy_nav" = "Raccolta Dati";
|
||||||
"logs_nav" = "Log";
|
"logs_nav" = "Log di connessione";
|
||||||
"faq_header" = "Domande Frequenti";
|
"faq_header" = "Domande Frequenti";
|
||||||
"faq_q1" = "Cosa fa questa app?";
|
"faq_q1" = "Cosa fa questa app?";
|
||||||
"faq_q1_a1" = "StosVPN crea un'interfaccia di rete locale utilizzabile per sviluppo e test. Non instrada il traffico attraverso server esterni: tutto rimane sul dispositivo.";
|
"faq_q1_a1" = "StosVPN crea un'interfaccia di rete locale utilizzabile per sviluppo e test. Non instrada il traffico attraverso server esterni, tutto rimane sul dispositivo.";
|
||||||
"faq_common_use_cases" = "I casi d'uso comuni includono:";
|
"faq_common_use_cases" = "I casi d'uso comuni includono:";
|
||||||
"faq_case1" = "• Test di applicazioni web con server locali";
|
"faq_case1" = "• Test di applicazioni web con server locali.";
|
||||||
"faq_case2" = "• Sviluppo e debug di funzionalità di rete";
|
"faq_case2" = "• Sviluppo e Debug di funzionalità di rete.";
|
||||||
"faq_case3" = "• Accesso ad ambienti di sviluppo locali ospitati";
|
"faq_case3" = "• Accesso ad ambienti di sviluppo locali ospitati.";
|
||||||
"faq_case4" = "• Test di app che richiedono configurazioni di rete specifiche";
|
"faq_case4" = "• Test di applicazioni che richiedono configurazioni di rete specifiche.";
|
||||||
"faq_q2" = "È un VPN tradizionale?";
|
"faq_q2" = "È un VPN tradizionale?";
|
||||||
"faq_q2_a1" = "No, StosVPN NON è un servizio VPN tradizionale. Non:";
|
"faq_q2_a1" = "No, StosVPN NON è un servizio VPN tradizionale. Non:";
|
||||||
"faq_q2_point1" = "• Instrada il tuo traffico attraverso server esterni";
|
"faq_q2_point1" = "• Instrada il tuo traffico attraverso server esterni.";
|
||||||
"faq_q2_point2" = "• Fornisce privacy o anonimato per la navigazione";
|
"faq_q2_point2" = "• Garantisce privacy e la navigazione in incognito.";
|
||||||
"faq_q2_point3" = "• Connette a server VPN remoti";
|
"faq_q2_point3" = "• Esegue connessioni a server VPN remoti.";
|
||||||
"faq_q2_point4" = "• Cripta o instrada il tuo traffico internet";
|
"faq_q2_point4" = "• Cripta o instrada il tuo traffico internet.";
|
||||||
"faq_q2_a2" = "StosVPN crea solo un'interfaccia di rete locale per aiutare gli sviluppatori a connettersi a servizi locali per sviluppo e test.";
|
"faq_q2_a2" = "StosVPN crea solo un'interfaccia di rete locale per aiutare gli sviluppatori a connettersi a servizi locali per lo sviluppo e test.";
|
||||||
"faq_q3" = "Perché la connessione fallisce?";
|
"faq_q3" = "Perché non si connette?";
|
||||||
"faq_q3_a1" = "I fallimenti di connessione possono essere dovuti a permessi di sistema, errori di configurazione o restrizioni iOS.";
|
"faq_q3_a1" = "Un errore durante la connessione può essere dovuto a permessi di sistema, errori di configurazione o restrizioni di iOS.";
|
||||||
"faq_troubleshoot_header" = "Passaggi di risoluzione:";
|
"faq_troubleshoot_header" = "Passaggi per risolvere:";
|
||||||
"faq_troubleshoot1" = "• Assicurati di aver approvato il permesso di estensione di rete";
|
"faq_troubleshoot1" = "• Assicurati di aver accettato il permesso di estensione di rete.";
|
||||||
"faq_troubleshoot2" = "• Prova a riavviare l'app";
|
"faq_troubleshoot2" = "• Prova a riavviare l'applicazione.";
|
||||||
"faq_troubleshoot3" = "• Verifica se la configurazione IP è valida";
|
"faq_troubleshoot3" = "• Verifica se la configurazione IP è valida.";
|
||||||
"faq_troubleshoot4" = "• Riavvia il dispositivo se i problemi persistono";
|
"faq_troubleshoot4" = "• Riavvia il dispositivo se i problemi persistono.";
|
||||||
"faq_q4" = "Per chi è questa app?";
|
"faq_q4" = "Per chi è questa app?";
|
||||||
"faq_q4_intro" = "StosVPN è progettato principalmente per:";
|
"faq_q4_intro" = "StosVPN è progettato principalmente per:";
|
||||||
"faq_q4_case1" = "• Sviluppatori che testano server web locali";
|
"faq_q4_case1" = "• Sviluppatori che testano server web locali.";
|
||||||
"faq_q4_case2" = "• Sviluppatori app che testano funzionalità di rete";
|
"faq_q4_case2" = "• Sviluppatori app che testano funzionalità di rete.";
|
||||||
"faq_q4_case3" = "• Ingegneri QA che testano app in ambienti isolati";
|
"faq_q4_case3" = "• Ingegneri QA che testano app in ambienti isolati.";
|
||||||
"faq_q4_case4" = "• Chiunque necessiti di accedere a servizi locali sull'iOS";
|
"faq_q4_case4" = "• Chiunque necessiti di accedere a servizi locali sull'iOS.";
|
||||||
"faq_q4_conclusion" = "Questa app è disponibile al pubblico ed è utile per sviluppatori che devono testare app con funzionalità di rete su iOS.";
|
"faq_q4_conclusion" = "Questa app è disponibile al pubblico ed è utile per sviluppatori che devono testare app con funzionalità di rete su iOS.";
|
||||||
"business_model_header" = "Modello di Business";
|
"business_model_header" = "Modello di Business";
|
||||||
"biz_q1" = "Come funziona StosVPN?";
|
"biz_q1" = "Come funziona StosVPN?";
|
||||||
"biz_q1_a1" = "StosVPN è un'app completamente gratuita disponibile al pubblico. Non ci sono funzionalità a pagamento, abbonamenti o acquisti in‑app.";
|
"biz_q1_a1" = "StosVPN è un'app completamente gratuita disponibile al pubblico. Non ci sono funzionalità a pagamento, abbonamenti o acquisti in‑app.";
|
||||||
"biz_key_points_header" = "Punti chiave del nostro modello:";
|
"biz_key_points_header" = "Punti chiave del nostro modello:";
|
||||||
"biz_point1" = "• L'app non è vincolata a nessuna azienda o gruppo";
|
"biz_point1" = "• L'app non è vincolata a nessuna azienda o gruppo.";
|
||||||
"biz_point2" = "• Chiunque può scaricare e usare l'app dall'App Store";
|
"biz_point2" = "• Chiunque può scaricare e usare l'app dall'App Store.";
|
||||||
"biz_point3" = "• Non è necessario creare un account";
|
"biz_point3" = "• Non è necessario creare un account.";
|
||||||
"biz_point4" = "• Tutte le funzionalità sono gratuite per tutti gli utenti";
|
"biz_point4" = "• Tutte le funzionalità sono gratuite per tutti gli utenti.";
|
||||||
"biz_point5" = "• L'app è sviluppata e mantenuta come utility open per la comunità iOS";
|
"biz_point5" = "• L'app è sviluppata e mantenuta come utility open per la comunità iOS.";
|
||||||
"app_info_header" = "Informazioni App";
|
"app_info_header" = "Informazioni App";
|
||||||
"requires_ios" = "Richiede iOS 14.0 o superiore";
|
"requires_ios" = "Richiede iOS 14.0 o superiore";
|
||||||
"uses_network_extension" = "Usa le Network Extension API di Apple";
|
"uses_network_extension" = "Usa le Network Extension API di Apple";
|
||||||
@@ -119,3 +122,9 @@
|
|||||||
"setup_get_started" = "Inizia";
|
"setup_get_started" = "Inizia";
|
||||||
"setup_next" = "Avanti";
|
"setup_next" = "Avanti";
|
||||||
"setup_skip" = "Salta";
|
"setup_skip" = "Salta";
|
||||||
|
|
||||||
|
/*MARK: Restart pop-up*/
|
||||||
|
restart_title = "Riavvia";
|
||||||
|
restart_message = "Per applicare le modifiche, c'è bisogno di riavviare l'applicazione.";
|
||||||
|
confirmYes = "Si";
|
||||||
|
confirmNo = "No";
|
||||||
|
|||||||
@@ -23,6 +23,13 @@
|
|||||||
"local" = "Lokalny";
|
"local" = "Lokalny";
|
||||||
"assigned_ip" = "Przydzielony IP";
|
"assigned_ip" = "Przydzielony IP";
|
||||||
|
|
||||||
|
/* MARK: Locales */
|
||||||
|
|
||||||
|
"english" = "Angielski";
|
||||||
|
"spanish" = "Hiszpański";
|
||||||
|
"italian" = "Włoski";
|
||||||
|
"polish" = "Polski";
|
||||||
|
|
||||||
/* MARK: Settings */
|
/* MARK: Settings */
|
||||||
|
|
||||||
"connection_settings" = "Ustawienia połączenia";
|
"connection_settings" = "Ustawienia połączenia";
|
||||||
@@ -37,11 +44,8 @@
|
|||||||
"data_collection_policy" = "Polityka zbierania danych";
|
"data_collection_policy" = "Polityka zbierania danych";
|
||||||
"app_version" = "Wersja aplikacji";
|
"app_version" = "Wersja aplikacji";
|
||||||
"help_and_support" = "Pomoc i wsparcie";
|
"help_and_support" = "Pomoc i wsparcie";
|
||||||
"language" = "Język";
|
"language" = "Ustaw język";
|
||||||
"english" = "Angielski";
|
"dropdown_language" = "Język";
|
||||||
"spanish" = "Hiszpański";
|
|
||||||
"italian" = "Włoski";
|
|
||||||
"polish" = "Polski";
|
|
||||||
"settings" = "Ustawienia";
|
"settings" = "Ustawienia";
|
||||||
"done" = "Gotowe";
|
"done" = "Gotowe";
|
||||||
|
|
||||||
@@ -119,3 +123,9 @@
|
|||||||
"setup_get_started" = "Zaczynamy";
|
"setup_get_started" = "Zaczynamy";
|
||||||
"setup_next" = "Dalej";
|
"setup_next" = "Dalej";
|
||||||
"setup_skip" = "Pomiń";
|
"setup_skip" = "Pomiń";
|
||||||
|
|
||||||
|
/*MARK: Restart pop-up*/
|
||||||
|
restart_title = "Restartuj";
|
||||||
|
restart_message = "Aby zastosować zmiany, należy ponownie uruchomić aplikację.";
|
||||||
|
confirmYes = "Si";
|
||||||
|
confirmNo = "No";
|
||||||
|
|||||||
Reference in New Issue
Block a user