Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
92 changes: 46 additions & 46 deletions MC1/Resources/Localization/it.lproj/Chats.strings

Large diffs are not rendered by default.

44 changes: 22 additions & 22 deletions MC1/Resources/Localization/it.lproj/Contacts.strings
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@
"contacts.nodeKind.repeater" = "Ripetitore";

/* Location: Multiple files - Purpose: Room contact type label */
"contacts.nodeKind.room" = "Sala";
"contacts.nodeKind.room" = "Stanza";

/* Location: TracePathListView.swift, PathEditingSheet.swift - Purpose: Badge label for discovered nodes */
"contacts.nodeKind.discovered" = "Scoperto";
Expand Down Expand Up @@ -73,7 +73,7 @@
"contacts.segment.repeaters" = "Ripetitori";

/* Location: ContactsViewModel.swift - Purpose: Rooms segment */
"contacts.segment.rooms" = "Sale";
"contacts.segment.rooms" = "Stanze";

/* Location: NodeSegmentPicker.swift - Purpose: VoiceOver label for the Nodes tab segment filter picker (iOS 18 fallback) */
"contacts.segment.pickerLabel" = "Filtra nodi";
Expand Down Expand Up @@ -148,7 +148,7 @@
// MARK: - Contacts List Empty States

/* Location: ContactsListView.swift - Purpose: No favorites empty title */
"contacts.list.empty.favorites.title" = "Nessun preferito ancora";
"contacts.list.empty.favorites.title" = "Ancora nessun preferito";

/* Location: ContactsListView.swift - Purpose: No favorites empty description */
"contacts.list.empty.favorites.description" = "Tieni premuto un qualsiasi nodo per aggiungerlo ai preferiti.";
Expand All @@ -157,7 +157,7 @@
"contacts.list.empty.contacts.title" = "Nessun contatto";

/* Location: ContactsListView.swift - Purpose: No contacts empty description */
"contacts.list.empty.contacts.description" = "I contatti compaiono quando vengono scoperti sulla rete mesh. Se l'aggiunta automatica dei contatti è disattivata, controlla Scopri nel menu in alto a destra.";
"contacts.list.empty.contacts.description" = "I contatti compariranno quando vengono scoperti sulla rete mesh. Se l'aggiunta automatica dei contatti è disattivata, controlla Scopri nel menu in alto a destra.";

/* Location: ContactsListView.swift - Purpose: No repeaters empty title */
"contacts.list.empty.repeaters.title" = "Nessun ripetitore";
Expand All @@ -166,10 +166,10 @@
"contacts.list.empty.repeaters.description" = "I ripetitori estendono la portata della tua mesh. Compariranno qui quando verranno scoperti.";

/* Location: ContactsListView.swift - Purpose: No rooms empty title */
"contacts.list.empty.rooms.title" = "Nessuna sala";
"contacts.list.empty.rooms.title" = "Non ci sono stanze";

/* Location: ContactsListView.swift - Purpose: No rooms empty description */
"contacts.list.empty.rooms.description" = "Le sale sono server di chat pubblici sulla mesh. Compariranno qui quando verranno scoperte.";
"contacts.list.empty.rooms.description" = "Le stanze sono server di chat pubblici sulla mesh. Compariranno qui quando verranno scoperte.";

/* Location: ContactsListView.swift - Purpose: No search results title */
"contacts.list.empty.search.title" = "Nessun risultato";
Expand Down Expand Up @@ -214,7 +214,7 @@
"contacts.detail.hasLocation" = "Ha una posizione";

/* Location: ContactDetailView.swift - Purpose: Join room button */
"contacts.detail.joinRoom" = "Unisciti alla sala";
"contacts.detail.joinRoom" = "Entra nella stanza";

/* Location: ContactDetailView.swift - Purpose: Telemetry button */
"contacts.detail.telemetry" = "Telemetria";
Expand Down Expand Up @@ -270,7 +270,7 @@
"contacts.detail.info" = "Info";

/* Location: ContactDetailView.swift - Purpose: Nickname label */
"contacts.detail.nickname" = "Soprannome";
"contacts.detail.nickname" = "Nickname";

/* Location: ContactDetailView.swift - Purpose: No nickname placeholder */
"contacts.detail.nicknameNone" = "Nessuno";
Expand Down Expand Up @@ -376,7 +376,7 @@
"contacts.detail.alert.block.title" = "Blocca contatto";

/* Location: ContactDetailView.swift - Purpose: Block contact alert message */
"contacts.detail.alert.block.message" = "Non riceverai messaggi da %@. Le sue conversazioni verranno nascoste dall'elenco Chat e i nuovi messaggi di canale verranno scartati. Sbloccando potrai ricevere nuovi messaggi, ma i messaggi scartati non possono essere recuperati.";
"contacts.detail.alert.block.message" = "Non riceverai messaggi da %@. Le sue conversazioni verranno nascoste dall'elenco Chat e i nuovi messaggi nel canale verranno scartati. Sbloccando potrai ricevere i nuovi messaggi, ma i messaggi scartati non possono essere recuperati.";

/* Location: ContactDetailView.swift - Purpose: Delete contact alert title */
"contacts.detail.alert.delete.title" = "Elimina %@";
Expand Down Expand Up @@ -502,7 +502,7 @@
"contacts.scan.unavailable.title" = "Scanner non disponibile";

/* Location: ScanContactQRView.swift - Purpose: Scanner not available description */
"contacts.scan.unavailable.description" = "La scansione QR non è supportata su questo dispositivo";
"contacts.scan.unavailable.description" = "La scansione di codici QR non è supportata su questo dispositivo";

/* Location: ScanContactQRView.swift - Purpose: Importing progress */
"contacts.scan.importing" = "Importazione del contatto...";
Expand Down Expand Up @@ -533,7 +533,7 @@
"contacts.discovery.empty.title" = "Nessun nodo scoperto";

/* Location: DiscoveryView.swift - Purpose: Empty state description */
"contacts.discovery.empty.description" = "I nodi compariranno qui man mano che i loro annunci vengono scoperti.";
"contacts.discovery.empty.description" = "I nodi compariranno qui man mano che i loro annunci verranno scoperti.";

/* Location: DiscoveryView.swift - Purpose: Add button */
"contacts.discovery.add" = "Aggiungi";
Expand All @@ -555,7 +555,7 @@
"contacts.discovery.segment.repeaters" = "Ripetitori";

/* Location: DiscoveryView.swift - Purpose: Segment filter: Rooms */
"contacts.discovery.segment.rooms" = "Sale";
"contacts.discovery.segment.rooms" = "Stanze";

/* Location: DiscoverSegmentPicker.swift - Purpose: VoiceOver label for the Discovery segment filter picker (iOS 18 fallback) */
"contacts.discovery.segment.pickerLabel" = "Filtra nodi scoperti";
Expand All @@ -579,7 +579,7 @@
"contacts.discovery.clear.confirm" = "Cancella";

/* Location: DiscoveryView.swift - Purpose: VoiceOver announcement when searching */
"contacts.discovery.searchingAllTypes" = "Ricerca di tutti i tipi";
"contacts.discovery.searchingAllTypes" = "Ricerca tutti i tipi";

/* Location: DiscoveryView.swift - Purpose: Sort menu accessibility label */
"contacts.discovery.sortMenu" = "Opzioni di ordinamento";
Expand All @@ -588,7 +588,7 @@
"contacts.discovery.sortMenuHint" = "Scegli come ordinare i nodi scoperti";

/* Location: DiscoveryView.swift - Purpose: VoiceOver announcement after clearing */
"contacts.discovery.clearedAllNodes" = "Tutti i nodi scoperti cancellati";
"contacts.discovery.clearedAllNodes" = "Cancellati tutti i nodi scoperti";

/* Location: DiscoveryView.swift - Purpose: Swipe action to remove discovered node */
"contacts.discovery.remove" = "Rimuovi";
Expand All @@ -614,13 +614,13 @@
"contacts.pathEdit.noRepeaters.title" = "Nessun ripetitore disponibile";

/* Location: AddHopPickerView.swift - Purpose: No repeaters empty description */
"contacts.pathEdit.noRepeaters.description" = "I ripetitori compaiono qui una volta scoperti nella tua rete mesh.";
"contacts.pathEdit.noRepeaters.description" = "I ripetitori compariranno qui una volta scoperti nella tua rete mesh.";

/* Location: AddHopPickerView.swift - Purpose: No favorite repeaters empty title */
"contacts.pathEdit.noFavorites.title" = "Nessun ripetitore preferito";

/* Location: AddHopPickerView.swift - Purpose: No favorite repeaters empty description */
"contacts.pathEdit.noFavorites.description" = "I ripetitori che segni come preferiti compaiono qui.";
"contacts.pathEdit.noFavorites.description" = "I ripetitori che imposterai come preferiti compariranno qui.";

/* Location: AddHopPickerView.swift - Purpose: No recent repeaters empty title */
"contacts.pathEdit.noRecent.title" = "Nessun ripetitore recente";
Expand Down Expand Up @@ -704,13 +704,13 @@
"contacts.pathEdit.sections.discovered" = "Scoperti";

/* Location: AddHopPickerView.swift - Purpose: Rooms section header */
"contacts.pathEdit.sections.rooms" = "Sale";
"contacts.pathEdit.sections.rooms" = "Stanze";

/* Location: AddHopPickerView.swift - Purpose: No-match search description */
"contacts.pathEdit.search.noMatches.description" = "Prova un nome o un prefisso esadecimale come 'a3'.";

/* Location: AddHopPickerView.swift - Purpose: No-match description when a filter other than All is selected and a matching room exists */
"contacts.pathEdit.search.noMatches.descriptionWithRoomsHint" = "Prova un nome o un prefisso esadecimale come 'a3'. Le sale compaiono solo con il filtro Tutti.";
"contacts.pathEdit.search.noMatches.descriptionWithRoomsHint" = "Prova un nome o un prefisso esadecimale come 'a3'. Le stanze compaiono solo con il filtro Tutti.";

/* Location: AddHopPickerView.swift - Purpose: Picker row accessibility label, %1$@ is name, %2$d is target hop number */
"contacts.pathEdit.addToPathAsHop" = "Aggiungi %1$@ al percorso come salto %2$d";
Expand Down Expand Up @@ -827,7 +827,7 @@
"contacts.pathDetail.performance" = "Prestazioni";

/* Location: SavedPathDetailView.swift - Purpose: Chart Y axis label */
"contacts.pathDetail.roundTripMs" = "Andata e ritorno (ms)";
"contacts.pathDetail.roundTripMs" = "Round Trip (ms)";

/* Location: SavedPathDetailView.swift - Purpose: Average stat label */
"contacts.pathDetail.avg" = "Media";
Expand All @@ -854,7 +854,7 @@
"contacts.pathDetail.date" = "Data";

/* Location: SavedPathDetailView.swift - Purpose: Round trip label */
"contacts.pathDetail.roundTrip" = "Andata e ritorno";
"contacts.pathDetail.roundTrip" = "Round Trip";

/* Location: SavedPathDetailView.swift - Purpose: Status label */
"contacts.pathDetail.status" = "Stato";
Expand Down Expand Up @@ -1180,7 +1180,7 @@
"contacts.pathManagement.error.hopResizeRequired" = "Dimensione hash del percorso modificata — rimuovi e riaggiungi i salti per salvare.";

/* Location: PathManagementViewModel.swift - Purpose: Shown when the existing path has more hops than the current hash mode supports */
"contacts.pathManagement.error.tooManyHops" = "Troppi salti. La modalità hash attuale supporta al massimo %d.";
"contacts.pathManagement.error.tooManyHops" = "Troppi salti. La modalità hash attuale ne supporta al massimo %d.";

// MARK: - Code Input Result

Expand All @@ -1191,7 +1191,7 @@
"contacts.codeInput.error.notFound" = "%@ non trovato";

/* Location: TracePathViewModel.swift - Purpose: Already in path error */
"contacts.codeInput.error.alreadyInPath" = "%@ già nel percorso";
"contacts.codeInput.error.alreadyInPath" = "%@ è già nel percorso";

// MARK: - Path Name Generation

Expand Down
20 changes: 10 additions & 10 deletions MC1/Resources/Localization/it.lproj/Localizable.strings
Original file line number Diff line number Diff line change
Expand Up @@ -145,7 +145,7 @@
"notifications.discovery.repeater" = "Nuovo ripetitore scoperto";

/* Notification title when a new room is discovered on the mesh network */
"notifications.discovery.room" = "Nuova sala scoperta";
"notifications.discovery.room" = "Nuova stanza scoperta";

// MARK: - Notification Actions

Expand Down Expand Up @@ -238,7 +238,7 @@
"error.meshCore.bluetoothUnauthorized" = "È richiesta l'autorizzazione Bluetooth. Attivala in Impostazioni.";

/* Location: MeshCoreError+UserFacingMessage.swift - Bluetooth radio is off */
"error.meshCore.bluetoothPoweredOff" = "Bluetooth è disattivato. Attiva Bluetooth per connetterti.";
"error.meshCore.bluetoothPoweredOff" = "Il bluetooth è disattivato. Attivalo per connetterti.";

/* Location: MeshCoreError+UserFacingMessage.swift - Connection lost with detail - %@ is the underlying error message */
"error.meshCore.connectionLost" = "La connessione al dispositivo è stata persa: %@";
Expand All @@ -250,7 +250,7 @@
"error.meshCore.sessionNotStarted" = "La sessione non è stata avviata.";

/* Location: MeshCoreError+UserFacingMessage.swift - Feature disabled in device firmware */
"error.meshCore.featureDisabled" = "Questa funzione è disabilitata sul dispositivo.";
"error.meshCore.featureDisabled" = "Funzione è disabilitata sul dispositivo.";

/* Location: MeshCoreError+UserFacingMessage.swift, ProtocolError+UserFacingMessage.swift - Firmware error code: command unsupported */
"error.device.unsupportedCommand" = "Comando non supportato dal firmware del dispositivo.";
Expand All @@ -277,13 +277,13 @@
"error.timeout.operationTimedOut" = "Operazione scaduta. Riprova.";

/* Location: BLEError+UserFacingMessage.swift - Bluetooth hardware unavailable */
"error.ble.bluetoothUnavailable" = "Bluetooth non è disponibile su questo dispositivo.";
"error.ble.bluetoothUnavailable" = "Il bluetooth non è disponibile su questo dispositivo.";

/* Location: BLEError+UserFacingMessage.swift - Bluetooth permission denied */
"error.ble.bluetoothUnauthorized" = "È richiesta l'autorizzazione Bluetooth. Attivala in Impostazioni.";

/* Location: BLEError+UserFacingMessage.swift - Bluetooth radio is off */
"error.ble.bluetoothPoweredOff" = "Bluetooth è disattivato. Attiva Bluetooth per connetterti.";
"error.ble.bluetoothPoweredOff" = "Il bluetooth è disattivato. Attivalo per connetterti.";

/* Location: BLEError+UserFacingMessage.swift - Scanned device could not be found */
"error.ble.deviceNotFound" = "Dispositivo non trovato. Assicurati che sia acceso e nelle vicinanze.";
Expand Down Expand Up @@ -334,7 +334,7 @@
"error.wifi.connectionFailed" = "Connessione non riuscita: %@";

/* Location: WiFiTransportError+UserFacingMessage.swift - WiFi connection attempt timed out */
"error.wifi.connectionTimeout" = "Connessione scaduta. Controlla l'indirizzo IP e assicurati che il dispositivo sia sulla stessa rete.";
"error.wifi.connectionTimeout" = "Connessione scaduta. Controlla l'indirizzo IP e assicurati che il dispositivo sia nella stessa rete.";

/* Location: WiFiTransportError+UserFacingMessage.swift - No active WiFi connection */
"error.wifi.notConnected" = "Non connesso al dispositivo.";
Expand All @@ -355,7 +355,7 @@
"error.wifi.notConfigured" = "Connessione non configurata.";

/* Location: AccessorySetupKitError+UserFacingMessage.swift - AccessorySetupKit session not active */
"error.accessorySetup.sessionNotActive" = "Bluetooth non è pronto. Assicurati che Bluetooth sia attivo e riprova.";
"error.accessorySetup.sessionNotActive" = "Il bluetooth non è pronto. Assicurati che Bluetooth sia attivo e riprova.";

/* Location: AccessorySetupKitError+UserFacingMessage.swift - AccessorySetupKit session invalidated */
"error.accessorySetup.sessionInvalidated" = "La sessione Bluetooth è terminata in modo imprevisto. Riavvia l'app.";
Expand All @@ -364,7 +364,7 @@
"error.accessorySetup.pickerDismissed" = "Selezione del dispositivo annullata.";

/* Location: AccessorySetupKitError+UserFacingMessage.swift - Accessory picker could not be shown */
"error.accessorySetup.pickerRestricted" = "Impossibile mostrare il selettore dispositivi. Verifica che Bluetooth sia attivo, attendi un momento e riprova.";
"error.accessorySetup.pickerRestricted" = "Impossibile mostrare il selettore dispositivi. Verifica che il bluetooth sia attivo, attendi un momento e riprova.";

/* Location: AccessorySetupKitError+UserFacingMessage.swift - Accessory picker already on screen */
"error.accessorySetup.pickerAlreadyActive" = "Il selettore dispositivi è già visualizzato.";
Expand Down Expand Up @@ -523,7 +523,7 @@
"error.roomServer.notConnected" = "Non connesso al dispositivo.";

/* Location: RoomServerError+UserFacingMessage.swift - No stored session for the room server */
"error.roomServer.sessionNotFound" = "Sessione della sala non trovata.";
"error.roomServer.sessionNotFound" = "Sessione della non trovata.";

/* Location: RoomServerError+UserFacingMessage.swift - Room message send failed */
"error.roomServer.sendFailed" = "Invio non riuscito.";
Expand Down Expand Up @@ -619,7 +619,7 @@
"error.keyGeneration.maxAttemptsExceeded" = "Impossibile generare una chiave con quel prefisso. Prova con un altro.";

/* Location: KeyGenerationError+UserFacingMessage.swift - Requested prefix byte is reserved by firmware */
"error.keyGeneration.reservedPrefix" = "Quel prefisso è riservato e non può essere usato.";
"error.keyGeneration.reservedPrefix" = "Il prefisso è riservato e non può essere usato.";

/* Location: KeyGenerationError+UserFacingMessage.swift - System random number generator failed */
"error.keyGeneration.randomGenerationFailed" = "Generazione sicura di numeri casuali non riuscita. Riprova.";
Expand Down
6 changes: 3 additions & 3 deletions MC1/Resources/Localization/it.lproj/Map.strings
Original file line number Diff line number Diff line change
Expand Up @@ -114,7 +114,7 @@
"map.detail.action.management" = "Gestione";

/* Location: MapView.swift ContactDetailSheet - Purpose: Button to join a room */
"map.detail.action.joinRoom" = "Entra nella sala";
"map.detail.action.joinRoom" = "Entra nella stanza";

/* Location: MapView.swift ContactDetailSheet - Purpose: Button to send a message */
"map.detail.action.sendMessage" = "Invia messaggio";
Expand All @@ -128,7 +128,7 @@
"map.nodeKind.repeater" = "Ripetitore";

/* Location: MapView.swift ContactDetailSheet - Purpose: Display name for room type */
"map.nodeKind.room" = "Sala";
"map.nodeKind.room" = "Stanza";

// MARK: - Contact Callout

Expand All @@ -145,7 +145,7 @@
"map.callout.nodeKind.repeater" = "Ripetitore";

/* Location: ContactCalloutContent.swift - Purpose: Display name for room in callout */
"map.callout.nodeKind.room" = "Sala";
"map.callout.nodeKind.room" = "Stanza";

// MARK: - Contact Annotation

Expand Down
Loading
Loading