mirror of
https://github.com/dz0ny/meshcore-sar.git
synced 2026-08-11 16:30:28 +00:00
- Updated localization files for French, Croatian, Italian, Slovenian to include translations for German, Spanish, French, and Italian. - Added new methods for handling drawing messages sent to the public channel in multiple languages. - Enhanced the Contact model to identify public channels using a dedicated method. - Implemented echo detection for public channel messages, including tracking and reporting of echoes. - Updated BLE response handling to support echo detection and tracking of sent messages. - Modified UI components to reflect new localization strings and echo statuses.
1265 lines
29 KiB
Dart
1265 lines
29 KiB
Dart
// ignore: unused_import
|
|
import 'package:intl/intl.dart' as intl;
|
|
import 'app_localizations.dart';
|
|
|
|
// ignore_for_file: type=lint
|
|
|
|
/// The translations for Italian (`it`).
|
|
class AppLocalizationsIt extends AppLocalizations {
|
|
AppLocalizationsIt([String locale = 'it']) : super(locale);
|
|
|
|
@override
|
|
String get appTitle => 'MeshCore SAR';
|
|
|
|
@override
|
|
String get messages => 'Messaggi';
|
|
|
|
@override
|
|
String get contacts => 'Contatti';
|
|
|
|
@override
|
|
String get map => 'Mappa';
|
|
|
|
@override
|
|
String get settings => 'Impostazioni';
|
|
|
|
@override
|
|
String get connect => 'Connetti';
|
|
|
|
@override
|
|
String get disconnect => 'Disconnetti';
|
|
|
|
@override
|
|
String get scanningForDevices => 'Ricerca dispositivi in corso...';
|
|
|
|
@override
|
|
String get noDevicesFound => 'Nessun dispositivo trovato';
|
|
|
|
@override
|
|
String get scanAgain => 'Cerca Nuovamente';
|
|
|
|
@override
|
|
String get tapToConnect => 'Tocca per connettere';
|
|
|
|
@override
|
|
String get deviceNotConnected => 'Dispositivo non connesso';
|
|
|
|
@override
|
|
String get locationPermissionDenied => 'Autorizzazione posizione negata';
|
|
|
|
@override
|
|
String get locationPermissionPermanentlyDenied =>
|
|
'Autorizzazione posizione negata permanentemente. Abilitarla nelle Impostazioni.';
|
|
|
|
@override
|
|
String get locationPermissionRequired =>
|
|
'L\'autorizzazione alla posizione è necessaria per il tracciamento GPS e il coordinamento del team. Puoi abilitarla successivamente nelle Impostazioni.';
|
|
|
|
@override
|
|
String get locationServicesDisabled =>
|
|
'I servizi di localizzazione sono disabilitati. Abilitarli nelle Impostazioni.';
|
|
|
|
@override
|
|
String get failedToGetGpsLocation => 'Impossibile ottenere la posizione GPS';
|
|
|
|
@override
|
|
String advertisedAtLocation(String latitude, String longitude) {
|
|
return 'Annunciato a $latitude, $longitude';
|
|
}
|
|
|
|
@override
|
|
String failedToAdvertise(String error) {
|
|
return 'Annuncio fallito: $error';
|
|
}
|
|
|
|
@override
|
|
String reconnecting(int attempt, int max) {
|
|
return 'Riconnessione in corso... ($attempt/$max)';
|
|
}
|
|
|
|
@override
|
|
String get cancelReconnection => 'Annulla riconnessione';
|
|
|
|
@override
|
|
String get mapManagement => 'Gestione Mappa';
|
|
|
|
@override
|
|
String get general => 'Generale';
|
|
|
|
@override
|
|
String get theme => 'Tema';
|
|
|
|
@override
|
|
String get chooseTheme => 'Scegli Tema';
|
|
|
|
@override
|
|
String get light => 'Chiaro';
|
|
|
|
@override
|
|
String get dark => 'Scuro';
|
|
|
|
@override
|
|
String get blueLightTheme => 'Tema blu chiaro';
|
|
|
|
@override
|
|
String get blueDarkTheme => 'Tema blu scuro';
|
|
|
|
@override
|
|
String get sarRed => 'SAR Rosso';
|
|
|
|
@override
|
|
String get alertEmergencyMode => 'Modalità Allerta/Emergenza';
|
|
|
|
@override
|
|
String get sarGreen => 'SAR Verde';
|
|
|
|
@override
|
|
String get safeAllClearMode => 'Modalità Sicuro/Tutto Libero';
|
|
|
|
@override
|
|
String get autoSystem => 'Auto (Sistema)';
|
|
|
|
@override
|
|
String get followSystemTheme => 'Segui tema di sistema';
|
|
|
|
@override
|
|
String get showRxTxIndicators => 'Mostra Indicatori RX/TX';
|
|
|
|
@override
|
|
String get displayPacketActivity =>
|
|
'Mostra indicatori di attività pacchetti nella barra superiore';
|
|
|
|
@override
|
|
String get language => 'Lingua';
|
|
|
|
@override
|
|
String get chooseLanguage => 'Scegli Lingua';
|
|
|
|
@override
|
|
String get english => 'Inglese';
|
|
|
|
@override
|
|
String get slovenian => 'Sloveno';
|
|
|
|
@override
|
|
String get croatian => 'Croato';
|
|
|
|
@override
|
|
String get german => 'Tedesco';
|
|
|
|
@override
|
|
String get spanish => 'Spagnolo';
|
|
|
|
@override
|
|
String get french => 'Francese';
|
|
|
|
@override
|
|
String get italian => 'Italiano';
|
|
|
|
@override
|
|
String get locationBroadcasting => 'Trasmissione Posizione';
|
|
|
|
@override
|
|
String get autoLocationTracking => 'Tracciamento Posizione Automatico';
|
|
|
|
@override
|
|
String get automaticallyBroadcastPosition =>
|
|
'Trasmetti automaticamente aggiornamenti di posizione';
|
|
|
|
@override
|
|
String get configureTracking => 'Configura Tracciamento';
|
|
|
|
@override
|
|
String get distanceAndTimeThresholds => 'Soglie di distanza e tempo';
|
|
|
|
@override
|
|
String get locationTrackingConfiguration =>
|
|
'Configurazione Tracciamento Posizione';
|
|
|
|
@override
|
|
String get configureWhenLocationBroadcasts =>
|
|
'Configura quando le trasmissioni di posizione vengono inviate alla rete mesh';
|
|
|
|
@override
|
|
String get minimumDistance => 'Distanza Minima';
|
|
|
|
@override
|
|
String broadcastAfterMoving(String distance) {
|
|
return 'Trasmetti solo dopo essersi spostati di $distance metri';
|
|
}
|
|
|
|
@override
|
|
String get maximumDistance => 'Distanza Massima';
|
|
|
|
@override
|
|
String alwaysBroadcastAfterMoving(String distance) {
|
|
return 'Trasmetti sempre dopo essersi spostati di $distance metri';
|
|
}
|
|
|
|
@override
|
|
String get minimumTimeInterval => 'Intervallo Minimo di Tempo';
|
|
|
|
@override
|
|
String alwaysBroadcastEvery(String duration) {
|
|
return 'Trasmetti sempre ogni $duration';
|
|
}
|
|
|
|
@override
|
|
String get save => 'Salva';
|
|
|
|
@override
|
|
String get cancel => 'Annulla';
|
|
|
|
@override
|
|
String get close => 'Chiudi';
|
|
|
|
@override
|
|
String get about => 'Informazioni';
|
|
|
|
@override
|
|
String get appVersion => 'Versione App';
|
|
|
|
@override
|
|
String get appName => 'Nome App';
|
|
|
|
@override
|
|
String get aboutMeshCoreSar => 'Informazioni su MeshCore SAR';
|
|
|
|
@override
|
|
String get aboutDescription =>
|
|
'Un\'applicazione di Ricerca e Soccorso progettata per i team di emergenza. Le caratteristiche includono:\n\n• Rete mesh BLE per comunicazione dispositivo-a-dispositivo\n• Mappe offline con opzioni di livelli multipli\n• Tracciamento in tempo reale dei membri del team\n• Marcatori tattici SAR (persona trovata, incendio, area di appoggio)\n• Gestione contatti e messaggistica\n• Tracciamento GPS con direzione bussola\n• Caching dei tile della mappa per uso offline';
|
|
|
|
@override
|
|
String get technologiesUsed => 'Tecnologie Utilizzate:';
|
|
|
|
@override
|
|
String get technologiesList =>
|
|
'• Flutter per lo sviluppo multipiattaforma\n• BLE (Bluetooth Low Energy) per la rete mesh\n• OpenStreetMap per la mappatura\n• Provider per la gestione dello stato\n• SharedPreferences per l\'archiviazione locale';
|
|
|
|
@override
|
|
String get developer => 'Sviluppatore';
|
|
|
|
@override
|
|
String get packageName => 'Nome Pacchetto';
|
|
|
|
@override
|
|
String get sampleData => 'Dati di Esempio';
|
|
|
|
@override
|
|
String get sampleDataDescription =>
|
|
'Carica o cancella contatti di esempio, messaggi di canale e marcatori SAR per test';
|
|
|
|
@override
|
|
String get loadSampleData => 'Carica Dati di Esempio';
|
|
|
|
@override
|
|
String get clearAllData => 'Cancella Tutti i Dati';
|
|
|
|
@override
|
|
String get clearAllDataConfirmTitle => 'Cancella Tutti i Dati';
|
|
|
|
@override
|
|
String get clearAllDataConfirmMessage =>
|
|
'Questo cancellerà tutti i contatti e i marcatori SAR. Sei sicuro?';
|
|
|
|
@override
|
|
String get clear => 'Cancella';
|
|
|
|
@override
|
|
String loadedSampleData(
|
|
int teamCount,
|
|
int channelCount,
|
|
int sarCount,
|
|
int messageCount,
|
|
) {
|
|
return 'Caricati $teamCount membri del team, $channelCount canali, $sarCount marcatori SAR, $messageCount messaggi';
|
|
}
|
|
|
|
@override
|
|
String failedToLoadSampleData(String error) {
|
|
return 'Impossibile caricare dati di esempio: $error';
|
|
}
|
|
|
|
@override
|
|
String get allDataCleared => 'Tutti i dati cancellati';
|
|
|
|
@override
|
|
String get failedToStartBackgroundTracking =>
|
|
'Impossibile avviare il tracciamento in background. Verifica le autorizzazioni e la connessione BLE.';
|
|
|
|
@override
|
|
String locationBroadcast(String latitude, String longitude) {
|
|
return 'Trasmissione posizione: $latitude, $longitude';
|
|
}
|
|
|
|
@override
|
|
String get defaultPinInfo =>
|
|
'Il PIN predefinito per i dispositivi senza schermo è 123456. Problemi di accoppiamento? Dimentica il dispositivo bluetooth nelle impostazioni di sistema.';
|
|
|
|
@override
|
|
String get noMessagesYet => 'Nessun messaggio ancora';
|
|
|
|
@override
|
|
String get pullDownToSync =>
|
|
'Trascina verso il basso per sincronizzare i messaggi';
|
|
|
|
@override
|
|
String get deleteContact => 'Elimina Contatto';
|
|
|
|
@override
|
|
String get delete => 'Elimina';
|
|
|
|
@override
|
|
String get viewOnMap => 'Visualizza su Mappa';
|
|
|
|
@override
|
|
String get refresh => 'Aggiorna';
|
|
|
|
@override
|
|
String get sendDirectMessage => 'Invia Messaggio Diretto';
|
|
|
|
@override
|
|
String get resetPath => 'Resetta Percorso (Ri-instrada)';
|
|
|
|
@override
|
|
String get publicKeyCopied => 'Chiave pubblica copiata negli appunti';
|
|
|
|
@override
|
|
String copiedToClipboard(String label) {
|
|
return '$label copiato negli appunti';
|
|
}
|
|
|
|
@override
|
|
String get pleaseEnterPassword => 'Inserisci una password';
|
|
|
|
@override
|
|
String failedToSyncContacts(String error) {
|
|
return 'Impossibile sincronizzare i contatti: $error';
|
|
}
|
|
|
|
@override
|
|
String get loggedInSuccessfully =>
|
|
'Accesso effettuato con successo! In attesa dei messaggi della stanza...';
|
|
|
|
@override
|
|
String get loginFailed => 'Accesso fallito - password errata';
|
|
|
|
@override
|
|
String loggingIn(String roomName) {
|
|
return 'Accesso a $roomName in corso...';
|
|
}
|
|
|
|
@override
|
|
String failedToSendLogin(String error) {
|
|
return 'Impossibile inviare l\'accesso: $error';
|
|
}
|
|
|
|
@override
|
|
String get lowLocationAccuracy => 'Precisione Posizione Bassa';
|
|
|
|
@override
|
|
String get continue_ => 'Continua';
|
|
|
|
@override
|
|
String get sendSarMarker => 'Invia marcatore SAR';
|
|
|
|
@override
|
|
String get deleteDrawing => 'Elimina Disegno';
|
|
|
|
@override
|
|
String get drawLine => 'Disegna Linea';
|
|
|
|
@override
|
|
String get drawLineDesc => 'Disegna una linea a mano libera sulla mappa';
|
|
|
|
@override
|
|
String get drawRectangle => 'Disegna Rettangolo';
|
|
|
|
@override
|
|
String get drawRectangleDesc => 'Disegna un\'area rettangolare sulla mappa';
|
|
|
|
@override
|
|
String get shareDrawings => 'Condividi Disegni';
|
|
|
|
@override
|
|
String get clearAllDrawings => 'Cancella Tutti i Disegni';
|
|
|
|
@override
|
|
String get clearAll => 'Cancella Tutto';
|
|
|
|
@override
|
|
String get noLocalDrawings => 'Nessun disegno locale da condividere';
|
|
|
|
@override
|
|
String get publicChannel => 'Canale Pubblico';
|
|
|
|
@override
|
|
String get broadcastToAll => 'Trasmetti a tutti i nodi vicini (effimero)';
|
|
|
|
@override
|
|
String get storedPermanently => 'Archiviato permanentemente nella stanza';
|
|
|
|
@override
|
|
String drawingsSentToPublicChannel(int count, String plural) {
|
|
return '$count disegno$plural mappa inviato al Canale Pubblico';
|
|
}
|
|
|
|
@override
|
|
String drawingsSharedToPublicChannel(int success, int total) {
|
|
return '$success/$total disegni condivisi sul Canale Pubblico';
|
|
}
|
|
|
|
@override
|
|
String get notConnectedToDevice => 'Non connesso al dispositivo';
|
|
|
|
@override
|
|
String get directMessage => 'Messaggio Diretto';
|
|
|
|
@override
|
|
String directMessageSentTo(String contactName) {
|
|
return 'Messaggio diretto inviato a $contactName';
|
|
}
|
|
|
|
@override
|
|
String failedToSend(String error) {
|
|
return 'Invio fallito: $error';
|
|
}
|
|
|
|
@override
|
|
String directMessageInfo(String contactName) {
|
|
return 'Questo messaggio verrà inviato direttamente a $contactName. Apparirà anche nel feed dei messaggi principali.';
|
|
}
|
|
|
|
@override
|
|
String get typeYourMessage => 'Scrivi il tuo messaggio...';
|
|
|
|
@override
|
|
String get quickLocationMarker => 'Marcatore posizione rapido';
|
|
|
|
@override
|
|
String get markerType => 'Tipo Marcatore';
|
|
|
|
@override
|
|
String get sendTo => 'Invia A';
|
|
|
|
@override
|
|
String get noDestinationsAvailable => 'Nessuna destinazione disponibile.';
|
|
|
|
@override
|
|
String get selectDestination => 'Seleziona destinazione...';
|
|
|
|
@override
|
|
String get ephemeralBroadcastInfo =>
|
|
'Effimero: Trasmissione via etere solamente. Non archiviato - i nodi devono essere online.';
|
|
|
|
@override
|
|
String get persistentRoomInfo =>
|
|
'Persistente: Archiviato in modo immutabile nella stanza. Sincronizzato automaticamente e conservato offline.';
|
|
|
|
@override
|
|
String get location => 'Posizione';
|
|
|
|
@override
|
|
String get fromMap => 'Dalla Mappa';
|
|
|
|
@override
|
|
String get gettingLocation => 'Ottenimento posizione...';
|
|
|
|
@override
|
|
String get locationError => 'Errore Posizione';
|
|
|
|
@override
|
|
String get retry => 'Riprova';
|
|
|
|
@override
|
|
String get refreshLocation => 'Aggiorna posizione';
|
|
|
|
@override
|
|
String accuracyMeters(int accuracy) {
|
|
return 'Precisione: ±${accuracy}m';
|
|
}
|
|
|
|
@override
|
|
String get notesOptional => 'Note (facoltativo)';
|
|
|
|
@override
|
|
String get addAdditionalInformation => 'Aggiungi informazioni aggiuntive...';
|
|
|
|
@override
|
|
String lowAccuracyWarning(int accuracy) {
|
|
return 'La precisione della posizione è ±${accuracy}m. Potrebbe non essere abbastanza accurata per le operazioni SAR.\n\nContinuare comunque?';
|
|
}
|
|
|
|
@override
|
|
String get loginToRoom => 'Accedi alla Stanza';
|
|
|
|
@override
|
|
String get enterPasswordInfo =>
|
|
'Inserisci la password per accedere a questa stanza. La password verrà salvata per usi futuri.';
|
|
|
|
@override
|
|
String get password => 'Password';
|
|
|
|
@override
|
|
String get enterRoomPassword => 'Inserisci password stanza';
|
|
|
|
@override
|
|
String get loggingInDots => 'Accesso in corso...';
|
|
|
|
@override
|
|
String get login => 'Accedi';
|
|
|
|
@override
|
|
String failedToAddRoom(String error) {
|
|
return 'Impossibile aggiungere la stanza al dispositivo: $error\n\nLa stanza potrebbe non aver ancora trasmesso.\nProva ad attendere che la stanza trasmetta.';
|
|
}
|
|
|
|
@override
|
|
String get direct => 'Diretto';
|
|
|
|
@override
|
|
String get flood => 'Flood';
|
|
|
|
@override
|
|
String get admin => 'Admin';
|
|
|
|
@override
|
|
String get loggedIn => 'Connesso';
|
|
|
|
@override
|
|
String get noGpsData => 'Nessun dato GPS';
|
|
|
|
@override
|
|
String get distance => 'Distanza';
|
|
|
|
@override
|
|
String pingingDirect(String name) {
|
|
return 'Ping $name (diretto via percorso)...';
|
|
}
|
|
|
|
@override
|
|
String pingingFlood(String name) {
|
|
return 'Ping $name (flooding - nessun percorso)...';
|
|
}
|
|
|
|
@override
|
|
String directPingTimeout(String name) {
|
|
return 'Timeout ping diretto - nuovo tentativo $name con flooding...';
|
|
}
|
|
|
|
@override
|
|
String pingSuccessful(String name, String fallback) {
|
|
return 'Ping riuscito a $name$fallback';
|
|
}
|
|
|
|
@override
|
|
String get viaFloodingFallback => ' (via fallback flooding)';
|
|
|
|
@override
|
|
String pingFailed(String name) {
|
|
return 'Ping fallito a $name - nessuna risposta ricevuta';
|
|
}
|
|
|
|
@override
|
|
String deleteContactConfirmation(String name) {
|
|
return 'Sei sicuro di voler eliminare \"$name\"?\n\nQuesto rimuoverà il contatto sia dall\'app che dal dispositivo radio companion.';
|
|
}
|
|
|
|
@override
|
|
String removingContact(String name) {
|
|
return 'Rimozione di $name...';
|
|
}
|
|
|
|
@override
|
|
String contactRemoved(String name) {
|
|
return 'Contatto \"$name\" rimosso';
|
|
}
|
|
|
|
@override
|
|
String failedToRemoveContact(String error) {
|
|
return 'Impossibile rimuovere il contatto: $error';
|
|
}
|
|
|
|
@override
|
|
String get type => 'Tipo';
|
|
|
|
@override
|
|
String get publicKey => 'Chiave Pubblica';
|
|
|
|
@override
|
|
String get lastSeen => 'Ultima Visita';
|
|
|
|
@override
|
|
String get roomStatus => 'Stato Stanza';
|
|
|
|
@override
|
|
String get loginStatus => 'Stato Accesso';
|
|
|
|
@override
|
|
String get notLoggedIn => 'Non Connesso';
|
|
|
|
@override
|
|
String get adminAccess => 'Accesso Admin';
|
|
|
|
@override
|
|
String get yes => 'Sì';
|
|
|
|
@override
|
|
String get no => 'No';
|
|
|
|
@override
|
|
String get permissions => 'Permessi';
|
|
|
|
@override
|
|
String get passwordSaved => 'Password Salvata';
|
|
|
|
@override
|
|
String get locationColon => 'Posizione:';
|
|
|
|
@override
|
|
String get telemetry => 'Telemetria';
|
|
|
|
@override
|
|
String requestingTelemetry(String name) {
|
|
return 'Richiesta telemetria da $name...';
|
|
}
|
|
|
|
@override
|
|
String get voltage => 'Tensione';
|
|
|
|
@override
|
|
String get battery => 'Batteria';
|
|
|
|
@override
|
|
String get temperature => 'Temperatura';
|
|
|
|
@override
|
|
String get humidity => 'Umidità';
|
|
|
|
@override
|
|
String get pressure => 'Pressione';
|
|
|
|
@override
|
|
String get gpsTelemetry => 'GPS (Telemetria)';
|
|
|
|
@override
|
|
String get updated => 'Aggiornato';
|
|
|
|
@override
|
|
String pathResetInfo(String name) {
|
|
return 'Percorso resettato per $name. Il prossimo messaggio troverà un nuovo instradamento.';
|
|
}
|
|
|
|
@override
|
|
String get reLoginToRoom => 'Riaccedi alla Stanza';
|
|
|
|
@override
|
|
String get heading => 'Direzione';
|
|
|
|
@override
|
|
String get elevation => 'Elevazione';
|
|
|
|
@override
|
|
String get accuracy => 'Precisione';
|
|
|
|
@override
|
|
String get filterMarkers => 'Filtra Marcatori';
|
|
|
|
@override
|
|
String get filterMarkersTooltip => 'Filtra marcatori';
|
|
|
|
@override
|
|
String get contactsFilter => 'Contatti';
|
|
|
|
@override
|
|
String get repeatersFilter => 'Ripetitori';
|
|
|
|
@override
|
|
String get sarMarkers => 'Marcatori SAR';
|
|
|
|
@override
|
|
String get foundPerson => 'Persona Trovata';
|
|
|
|
@override
|
|
String get fire => 'Incendio';
|
|
|
|
@override
|
|
String get stagingArea => 'Area di Appoggio';
|
|
|
|
@override
|
|
String get showAll => 'Mostra Tutto';
|
|
|
|
@override
|
|
String get nearbyContacts => 'Contatti Vicini';
|
|
|
|
@override
|
|
String get locationUnavailable => 'Posizione non disponibile';
|
|
|
|
@override
|
|
String get ahead => 'avanti';
|
|
|
|
@override
|
|
String degreesRight(int degrees) {
|
|
return '$degrees° destra';
|
|
}
|
|
|
|
@override
|
|
String degreesLeft(int degrees) {
|
|
return '$degrees° sinistra';
|
|
}
|
|
|
|
@override
|
|
String latLonFormat(String latitude, String longitude) {
|
|
return 'Lat: $latitude Lon: $longitude';
|
|
}
|
|
|
|
@override
|
|
String get noContactsYet => 'Nessun contatto ancora';
|
|
|
|
@override
|
|
String get connectToDeviceToLoadContacts =>
|
|
'Connetti a un dispositivo per caricare i contatti';
|
|
|
|
@override
|
|
String get teamMembers => 'Membri del Team';
|
|
|
|
@override
|
|
String get repeaters => 'Ripetitori';
|
|
|
|
@override
|
|
String get rooms => 'Stanze';
|
|
|
|
@override
|
|
String get channels => 'Canali';
|
|
|
|
@override
|
|
String get cacheStatistics => 'Statistiche Cache';
|
|
|
|
@override
|
|
String get totalTiles => 'Tile Totali';
|
|
|
|
@override
|
|
String get cacheSize => 'Dimensione Cache';
|
|
|
|
@override
|
|
String get storeName => 'Nome Archivio';
|
|
|
|
@override
|
|
String get noCacheStatistics => 'Nessuna statistica cache disponibile';
|
|
|
|
@override
|
|
String get downloadRegion => 'Scarica Regione';
|
|
|
|
@override
|
|
String get mapLayer => 'Livello Mappa';
|
|
|
|
@override
|
|
String get regionBounds => 'Limiti Regione';
|
|
|
|
@override
|
|
String get north => 'Nord';
|
|
|
|
@override
|
|
String get south => 'Sud';
|
|
|
|
@override
|
|
String get east => 'Est';
|
|
|
|
@override
|
|
String get west => 'Ovest';
|
|
|
|
@override
|
|
String get zoomLevels => 'Livelli di Zoom';
|
|
|
|
@override
|
|
String minZoom(int zoom) {
|
|
return 'Min: $zoom';
|
|
}
|
|
|
|
@override
|
|
String maxZoom(int zoom) {
|
|
return 'Max: $zoom';
|
|
}
|
|
|
|
@override
|
|
String get downloadingDots => 'Scaricamento in corso...';
|
|
|
|
@override
|
|
String get cancelDownload => 'Annulla Download';
|
|
|
|
@override
|
|
String get downloadRegionButton => 'Scarica Regione';
|
|
|
|
@override
|
|
String get downloadNote =>
|
|
'Nota: Regioni grandi o livelli di zoom elevati possono richiedere tempo e spazio di archiviazione significativi.';
|
|
|
|
@override
|
|
String get cacheManagement => 'Gestione Cache';
|
|
|
|
@override
|
|
String get clearAllMaps => 'Cancella Tutte le Mappe';
|
|
|
|
@override
|
|
String get clearMapsConfirmTitle => 'Cancella Tutte le Mappe';
|
|
|
|
@override
|
|
String get clearMapsConfirmMessage =>
|
|
'Sei sicuro di voler eliminare tutte le mappe scaricate? Questa azione non può essere annullata.';
|
|
|
|
@override
|
|
String get mapDownloadCompleted => 'Download mappa completato!';
|
|
|
|
@override
|
|
String get cacheClearedSuccessfully => 'Cache cancellata con successo!';
|
|
|
|
@override
|
|
String get downloadCancelled => 'Download annullato';
|
|
|
|
@override
|
|
String get startingDownload => 'Avvio download...';
|
|
|
|
@override
|
|
String get downloadingMapTiles => 'Scaricamento tile mappa...';
|
|
|
|
@override
|
|
String get downloadCompletedSuccessfully =>
|
|
'Download completato con successo!';
|
|
|
|
@override
|
|
String get cancellingDownload => 'Annullamento download...';
|
|
|
|
@override
|
|
String errorLoadingStats(String error) {
|
|
return 'Errore nel caricamento delle statistiche: $error';
|
|
}
|
|
|
|
@override
|
|
String downloadFailed(String error) {
|
|
return 'Download fallito: $error';
|
|
}
|
|
|
|
@override
|
|
String cancelFailed(String error) {
|
|
return 'Annullamento fallito: $error';
|
|
}
|
|
|
|
@override
|
|
String clearCacheFailed(String error) {
|
|
return 'Cancellazione cache fallita: $error';
|
|
}
|
|
|
|
@override
|
|
String minZoomError(String error) {
|
|
return 'Zoom minimo: $error';
|
|
}
|
|
|
|
@override
|
|
String maxZoomError(String error) {
|
|
return 'Zoom massimo: $error';
|
|
}
|
|
|
|
@override
|
|
String get minZoomGreaterThanMax =>
|
|
'Lo zoom minimo deve essere minore o uguale allo zoom massimo';
|
|
|
|
@override
|
|
String get selectMapLayer => 'Seleziona Livello Mappa';
|
|
|
|
@override
|
|
String get mapOptions => 'Opzioni Mappa';
|
|
|
|
@override
|
|
String get showLegend => 'Mostra Legenda';
|
|
|
|
@override
|
|
String get displayMarkerTypeCounts =>
|
|
'Visualizza conteggio tipi di marcatori';
|
|
|
|
@override
|
|
String get rotateMapWithHeading => 'Ruota Mappa con Direzione';
|
|
|
|
@override
|
|
String get mapFollowsDirection =>
|
|
'La mappa segue la tua direzione quando ti muovi';
|
|
|
|
@override
|
|
String get showMapDebugInfo => 'Mostra Info Debug Mappa';
|
|
|
|
@override
|
|
String get displayZoomLevelBounds => 'Visualizza livello di zoom e limiti';
|
|
|
|
@override
|
|
String get fullscreenMode => 'Modalità Schermo Intero';
|
|
|
|
@override
|
|
String get hideUiFullMapView =>
|
|
'Nascondi tutti i controlli UI per la visualizzazione completa della mappa';
|
|
|
|
@override
|
|
String get openStreetMap => 'OpenStreetMap';
|
|
|
|
@override
|
|
String get openTopoMap => 'OpenTopoMap';
|
|
|
|
@override
|
|
String get esriSatellite => 'ESRI Satellite';
|
|
|
|
@override
|
|
String get downloadVisibleArea => 'Scarica area visibile';
|
|
|
|
@override
|
|
String get initializingMap => 'Inizializzazione mappa...';
|
|
|
|
@override
|
|
String get dragToPosition => 'Trascina per Posizionare';
|
|
|
|
@override
|
|
String get createSarMarker => 'Crea Marcatore SAR';
|
|
|
|
@override
|
|
String get compass => 'Bussola';
|
|
|
|
@override
|
|
String get navigationAndContacts => 'Navigazione e Contatti';
|
|
|
|
@override
|
|
String get sarAlert => 'ALLERTA SAR';
|
|
|
|
@override
|
|
String get messageSentToPublicChannel =>
|
|
'Messaggio inviato al canale pubblico';
|
|
|
|
@override
|
|
String get pleaseSelectRoomToSendSar =>
|
|
'Seleziona una stanza per inviare il marcatore SAR';
|
|
|
|
@override
|
|
String failedToSendSarMarker(String error) {
|
|
return 'Impossibile inviare il marcatore SAR: $error';
|
|
}
|
|
|
|
@override
|
|
String sarMarkerSentTo(String roomName) {
|
|
return 'Marcatore SAR inviato a $roomName';
|
|
}
|
|
|
|
@override
|
|
String get notConnectedCannotSync =>
|
|
'Non connesso - impossibile sincronizzare i messaggi';
|
|
|
|
@override
|
|
String syncedMessageCount(int count) {
|
|
return 'Sincronizzati $count messaggio(i)';
|
|
}
|
|
|
|
@override
|
|
String get noNewMessages => 'Nessun nuovo messaggio';
|
|
|
|
@override
|
|
String syncFailed(String error) {
|
|
return 'Sincronizzazione fallita: $error';
|
|
}
|
|
|
|
@override
|
|
String get failedToResendMessage => 'Impossibile reinviare il messaggio';
|
|
|
|
@override
|
|
String get retryingMessage => 'Nuovo tentativo messaggio...';
|
|
|
|
@override
|
|
String retryFailed(String error) {
|
|
return 'Nuovo tentativo fallito: $error';
|
|
}
|
|
|
|
@override
|
|
String get textCopiedToClipboard => 'Testo copiato negli appunti';
|
|
|
|
@override
|
|
String get cannotReplySenderMissing =>
|
|
'Impossibile rispondere: informazioni mittente mancanti';
|
|
|
|
@override
|
|
String get cannotReplyContactNotFound =>
|
|
'Impossibile rispondere: contatto non trovato';
|
|
|
|
@override
|
|
String get messageDeleted => 'Messaggio eliminato';
|
|
|
|
@override
|
|
String get refreshedContacts => 'Contatti aggiornati';
|
|
|
|
@override
|
|
String get justNow => 'Proprio ora';
|
|
|
|
@override
|
|
String minutesAgo(int minutes) {
|
|
return '${minutes}m fa';
|
|
}
|
|
|
|
@override
|
|
String hoursAgo(int hours) {
|
|
return '${hours}h fa';
|
|
}
|
|
|
|
@override
|
|
String daysAgo(int days) {
|
|
return '${days}g fa';
|
|
}
|
|
|
|
@override
|
|
String secondsAgo(int seconds) {
|
|
return '${seconds}s fa';
|
|
}
|
|
|
|
@override
|
|
String get sending => 'Invio...';
|
|
|
|
@override
|
|
String get sent => 'Inviato';
|
|
|
|
@override
|
|
String get delivered => 'Consegnato';
|
|
|
|
@override
|
|
String deliveredWithTime(int time) {
|
|
return 'Consegnato (${time}ms)';
|
|
}
|
|
|
|
@override
|
|
String get failed => 'Fallito';
|
|
|
|
@override
|
|
String get broadcast => 'Trasmissione';
|
|
|
|
@override
|
|
String get sarMarkerFoundPerson => 'Persona Trovata';
|
|
|
|
@override
|
|
String get sarMarkerFire => 'Posizione Incendio';
|
|
|
|
@override
|
|
String get sarMarkerStagingArea => 'Area di Appoggio';
|
|
|
|
@override
|
|
String get sarMarkerObject => 'Oggetto Trovato';
|
|
|
|
@override
|
|
String get from => 'Da';
|
|
|
|
@override
|
|
String get coordinates => 'Coordinate';
|
|
|
|
@override
|
|
String get tapToViewOnMap => 'Tocca per visualizzare sulla mappa';
|
|
|
|
@override
|
|
String get radioSettings => 'Impostazioni Radio';
|
|
|
|
@override
|
|
String get frequencyMHz => 'Frequenza (MHz)';
|
|
|
|
@override
|
|
String get frequencyExample => 'es., 869.618';
|
|
|
|
@override
|
|
String get bandwidth => 'Larghezza di Banda';
|
|
|
|
@override
|
|
String get spreadingFactor => 'Fattore di Spreading';
|
|
|
|
@override
|
|
String get codingRate => 'Tasso di Codifica';
|
|
|
|
@override
|
|
String get txPowerDbm => 'Potenza TX (dBm)';
|
|
|
|
@override
|
|
String maxPowerDbm(int power) {
|
|
return 'Max: $power dBm';
|
|
}
|
|
|
|
@override
|
|
String get you => 'Tu';
|
|
|
|
@override
|
|
String get offlineVectorMaps => 'Mappe Vettoriali Offline';
|
|
|
|
@override
|
|
String get offlineVectorMapsDescription =>
|
|
'Importa e gestisci tile di mappe vettoriali offline (formato MBTiles) per l\'uso senza connessione internet';
|
|
|
|
@override
|
|
String get importMbtiles => 'Importa File MBTiles';
|
|
|
|
@override
|
|
String get importMbtilesNote =>
|
|
'Supporta file MBTiles con tile vettoriali (formato PBF/MVT). Gli estratti Geofabrik funzionano benissimo!';
|
|
|
|
@override
|
|
String get noMbtilesFiles => 'Nessuna mappa vettoriale offline trovata';
|
|
|
|
@override
|
|
String get mbtilesImportedSuccessfully =>
|
|
'File MBTiles importato con successo';
|
|
|
|
@override
|
|
String get failedToImportMbtiles => 'Impossibile importare il file MBTiles';
|
|
|
|
@override
|
|
String get deleteMbtilesConfirmTitle => 'Elimina Mappa Offline';
|
|
|
|
@override
|
|
String deleteMbtilesConfirmMessage(String name) {
|
|
return 'Sei sicuro di voler eliminare \"$name\"? Questo rimuoverà permanentemente la mappa offline.';
|
|
}
|
|
|
|
@override
|
|
String get mbtilesDeletedSuccessfully =>
|
|
'Mappa offline eliminata con successo';
|
|
|
|
@override
|
|
String get failedToDeleteMbtiles => 'Impossibile eliminare la mappa offline';
|
|
|
|
@override
|
|
String get vectorTiles => 'Tile Vettoriali';
|
|
|
|
@override
|
|
String get schema => 'Schema';
|
|
|
|
@override
|
|
String get unknown => 'Sconosciuto';
|
|
|
|
@override
|
|
String get bounds => 'Limiti';
|
|
|
|
@override
|
|
String get onlineLayers => 'Livelli Online';
|
|
|
|
@override
|
|
String get offlineLayers => 'Livelli Offline';
|
|
|
|
@override
|
|
String get locationTrail => 'Traccia Posizione';
|
|
|
|
@override
|
|
String get showTrailOnMap => 'Mostra Traccia sulla Mappa';
|
|
|
|
@override
|
|
String get trailVisible => 'La traccia è visibile sulla mappa';
|
|
|
|
@override
|
|
String get trailHiddenRecording =>
|
|
'La traccia è nascosta (ancora in registrazione)';
|
|
|
|
@override
|
|
String get duration => 'Durata';
|
|
|
|
@override
|
|
String get points => 'Punti';
|
|
|
|
@override
|
|
String get clearTrail => 'Cancella Traccia';
|
|
|
|
@override
|
|
String get clearTrailQuestion => 'Cancellare Traccia?';
|
|
|
|
@override
|
|
String get clearTrailConfirmation =>
|
|
'Sei sicuro di voler cancellare la traccia posizione attuale? Questa azione non può essere annullata.';
|
|
|
|
@override
|
|
String get noTrailRecorded => 'Nessuna traccia registrata ancora';
|
|
|
|
@override
|
|
String get startTrackingToRecord =>
|
|
'Avvia il tracciamento posizione per registrare la tua traccia';
|
|
|
|
@override
|
|
String get trailControls => 'Controlli Traccia';
|
|
|
|
@override
|
|
String get deviceInformation => 'Informazioni Dispositivo';
|
|
|
|
@override
|
|
String get bleName => 'Nome BLE';
|
|
|
|
@override
|
|
String get meshName => 'Nome Mesh';
|
|
|
|
@override
|
|
String get notSet => 'Non impostato';
|
|
|
|
@override
|
|
String get model => 'Modello';
|
|
|
|
@override
|
|
String get version => 'Versione';
|
|
|
|
@override
|
|
String get buildDate => 'Data Build';
|
|
|
|
@override
|
|
String get firmware => 'Firmware';
|
|
|
|
@override
|
|
String get maxContacts => 'Contatti Max';
|
|
|
|
@override
|
|
String get maxChannels => 'Canali Max';
|
|
|
|
@override
|
|
String get publicInfo => 'Informazioni Pubbliche';
|
|
|
|
@override
|
|
String get meshNetworkName => 'Nome Rete Mesh';
|
|
|
|
@override
|
|
String get nameBroadcastInMesh => 'Nome trasmesso negli annunci mesh';
|
|
|
|
@override
|
|
String get telemetryAndLocationSharing =>
|
|
'Telemetria e Condivisione Posizione';
|
|
|
|
@override
|
|
String get lat => 'Lat';
|
|
|
|
@override
|
|
String get lon => 'Lon';
|
|
|
|
@override
|
|
String get useCurrentLocation => 'Usa posizione attuale';
|
|
|
|
@override
|
|
String get noneUnknown => 'Nessuno/Sconosciuto';
|
|
|
|
@override
|
|
String get chatNode => 'Nodo Chat';
|
|
|
|
@override
|
|
String get repeater => 'Ripetitore';
|
|
|
|
@override
|
|
String get roomChannel => 'Stanza/Canale';
|
|
|
|
@override
|
|
String typeNumber(int number) {
|
|
return 'Tipo $number';
|
|
}
|
|
|
|
@override
|
|
String copiedToClipboardShort(String label) {
|
|
return 'Copiato $label negli appunti';
|
|
}
|
|
|
|
@override
|
|
String failedToSave(String error) {
|
|
return 'Impossibile salvare: $error';
|
|
}
|
|
|
|
@override
|
|
String failedToGetLocation(String error) {
|
|
return 'Impossibile ottenere la posizione: $error';
|
|
}
|
|
}
|