mirror of
https://github.com/dz0ny/meshcore-sar.git
synced 2026-08-12 00:40:28 +00:00
feat: Add GPX import/export functionality and enhance trail management
- Implemented GPX export and import features in GpxService for location trails. - Added UI controls for exporting and importing trails in the TrailControls widget. - Introduced localization strings for GPX operations in Italian and Slovenian. - Enhanced MapProvider to manage imported trails and toggle visibility for contact trails. - Updated trail color management with TrailColorService for consistent color assignment based on contact roles. - Improved UI for displaying contact trails with toggle options for individual and all contact trails. - Refactored detailed compass dialog to remove unnecessary path toggle button for contacts.
This commit is contained in:
@@ -2315,6 +2315,111 @@
|
||||
"description": "Tooltip für Verlaufssteuerung"
|
||||
},
|
||||
|
||||
"exportTrailToGpx": "Verlauf als GPX exportieren",
|
||||
"@exportTrailToGpx": {
|
||||
"description": "Beschriftung der Schaltfläche zum Exportieren des Verlaufs in eine GPX-Datei"
|
||||
},
|
||||
|
||||
"importTrailFromGpx": "Verlauf aus GPX importieren",
|
||||
"@importTrailFromGpx": {
|
||||
"description": "Beschriftung der Schaltfläche zum Importieren des Verlaufs aus einer GPX-Datei"
|
||||
},
|
||||
|
||||
"trailExportedSuccessfully": "Verlauf erfolgreich exportiert!",
|
||||
"@trailExportedSuccessfully": {
|
||||
"description": "Erfolgsmeldung beim Exportieren des Verlaufs"
|
||||
},
|
||||
|
||||
"failedToExportTrail": "Exportieren des Verlaufs fehlgeschlagen",
|
||||
"@failedToExportTrail": {
|
||||
"description": "Fehlermeldung beim Exportieren des Verlaufs"
|
||||
},
|
||||
|
||||
"failedToImportTrail": "Importieren des Verlaufs fehlgeschlagen: {error}",
|
||||
"@failedToImportTrail": {
|
||||
"description": "Fehlermeldung beim Importieren des Verlaufs",
|
||||
"placeholders": {
|
||||
"error": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
"importTrail": "Verlauf importieren",
|
||||
"@importTrail": {
|
||||
"description": "Titel des Dialogs zum Importieren des Verlaufs"
|
||||
},
|
||||
|
||||
"importTrailQuestion": "Verlauf mit {pointCount} Punkten importieren?\n\nSie können Ihren aktuellen Verlauf ersetzen oder daneben anzeigen.",
|
||||
"@importTrailQuestion": {
|
||||
"description": "Inhalt des Bestätigungsdialogs zum Importieren des Verlaufs",
|
||||
"placeholders": {
|
||||
"pointCount": {
|
||||
"type": "int"
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
"viewAlongside": "Daneben anzeigen",
|
||||
"@viewAlongside": {
|
||||
"description": "Schaltfläche zum Importieren des Verlaufs neben dem aktuellen Verlauf"
|
||||
},
|
||||
|
||||
"replaceCurrent": "Aktuellen ersetzen",
|
||||
"@replaceCurrent": {
|
||||
"description": "Schaltfläche zum Ersetzen des aktuellen Verlaufs durch importierten Verlauf"
|
||||
},
|
||||
|
||||
"trailImported": "Verlauf importiert! ({pointCount} Punkte)",
|
||||
"@trailImported": {
|
||||
"description": "Erfolgsmeldung beim Importieren des Verlaufs",
|
||||
"placeholders": {
|
||||
"pointCount": {
|
||||
"type": "int"
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
"trailReplaced": "Verlauf ersetzt! ({pointCount} Punkte)",
|
||||
"@trailReplaced": {
|
||||
"description": "Erfolgsmeldung beim Ersetzen des Verlaufs",
|
||||
"placeholders": {
|
||||
"pointCount": {
|
||||
"type": "int"
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
"contactTrails": "Kontaktverläufe",
|
||||
"@contactTrails": {
|
||||
"description": "Überschrift des Bereichs für Kontaktverläufe"
|
||||
},
|
||||
|
||||
"showAllContactTrails": "Alle Kontaktverläufe anzeigen",
|
||||
"@showAllContactTrails": {
|
||||
"description": "Beschriftung zum Umschalten der Anzeige aller Kontaktverläufe"
|
||||
},
|
||||
|
||||
"noContactsWithLocationHistory": "Keine Kontakte mit Standortverlauf",
|
||||
"@noContactsWithLocationHistory": {
|
||||
"description": "Untertitel, wenn keine Kontakte mit Verläufen vorhanden sind"
|
||||
},
|
||||
|
||||
"showingTrailsForContacts": "Verläufe für {count} Kontakte anzeigen",
|
||||
"@showingTrailsForContacts": {
|
||||
"description": "Untertitel mit Anzahl der Kontakte mit Verläufen",
|
||||
"placeholders": {
|
||||
"count": {
|
||||
"type": "int"
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
"individualContactTrails": "Einzelne Kontaktverläufe",
|
||||
"@individualContactTrails": {
|
||||
"description": "Titel des Erweiterungselements für einzelne Kontaktverläufe"
|
||||
},
|
||||
|
||||
"deviceInformation": "Geräteinformationen",
|
||||
"@deviceInformation": {
|
||||
"description": "Überschrift des Geräteinformationen-Bereichs"
|
||||
|
||||
@@ -2375,6 +2375,111 @@
|
||||
"description": "Trail controls tooltip"
|
||||
},
|
||||
|
||||
"exportTrailToGpx": "Export Trail to GPX",
|
||||
"@exportTrailToGpx": {
|
||||
"description": "Button label to export trail to GPX file"
|
||||
},
|
||||
|
||||
"importTrailFromGpx": "Import Trail from GPX",
|
||||
"@importTrailFromGpx": {
|
||||
"description": "Button label to import trail from GPX file"
|
||||
},
|
||||
|
||||
"trailExportedSuccessfully": "Trail exported successfully!",
|
||||
"@trailExportedSuccessfully": {
|
||||
"description": "Success message when trail is exported"
|
||||
},
|
||||
|
||||
"failedToExportTrail": "Failed to export trail",
|
||||
"@failedToExportTrail": {
|
||||
"description": "Error message when trail export fails"
|
||||
},
|
||||
|
||||
"failedToImportTrail": "Failed to import trail: {error}",
|
||||
"@failedToImportTrail": {
|
||||
"description": "Error message when trail import fails",
|
||||
"placeholders": {
|
||||
"error": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
"importTrail": "Import Trail",
|
||||
"@importTrail": {
|
||||
"description": "Import trail dialog title"
|
||||
},
|
||||
|
||||
"importTrailQuestion": "Import trail with {pointCount} points?\n\nYou can replace your current trail or view it alongside.",
|
||||
"@importTrailQuestion": {
|
||||
"description": "Import trail confirmation dialog content",
|
||||
"placeholders": {
|
||||
"pointCount": {
|
||||
"type": "int"
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
"viewAlongside": "View Alongside",
|
||||
"@viewAlongside": {
|
||||
"description": "Button to import trail alongside current trail"
|
||||
},
|
||||
|
||||
"replaceCurrent": "Replace Current",
|
||||
"@replaceCurrent": {
|
||||
"description": "Button to replace current trail with imported trail"
|
||||
},
|
||||
|
||||
"trailImported": "Trail imported! ({pointCount} points)",
|
||||
"@trailImported": {
|
||||
"description": "Success message when trail is imported",
|
||||
"placeholders": {
|
||||
"pointCount": {
|
||||
"type": "int"
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
"trailReplaced": "Trail replaced! ({pointCount} points)",
|
||||
"@trailReplaced": {
|
||||
"description": "Success message when trail is replaced",
|
||||
"placeholders": {
|
||||
"pointCount": {
|
||||
"type": "int"
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
"contactTrails": "Contact Trails",
|
||||
"@contactTrails": {
|
||||
"description": "Contact trails section header"
|
||||
},
|
||||
|
||||
"showAllContactTrails": "Show All Contact Trails",
|
||||
"@showAllContactTrails": {
|
||||
"description": "Toggle label to show all contact trails"
|
||||
},
|
||||
|
||||
"noContactsWithLocationHistory": "No contacts with location history",
|
||||
"@noContactsWithLocationHistory": {
|
||||
"description": "Subtitle when no contacts have trails"
|
||||
},
|
||||
|
||||
"showingTrailsForContacts": "Showing trails for {count} contacts",
|
||||
"@showingTrailsForContacts": {
|
||||
"description": "Subtitle showing number of contacts with trails",
|
||||
"placeholders": {
|
||||
"count": {
|
||||
"type": "int"
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
"individualContactTrails": "Individual Contact Trails",
|
||||
"@individualContactTrails": {
|
||||
"description": "Expansion tile title for individual contact trails"
|
||||
},
|
||||
|
||||
"deviceInformation": "Device Information",
|
||||
"@deviceInformation": {
|
||||
"description": "Device information section header"
|
||||
|
||||
@@ -2310,6 +2310,111 @@
|
||||
"description": "Tooltip de controles del rastro"
|
||||
},
|
||||
|
||||
"exportTrailToGpx": "Exportar rastro a GPX",
|
||||
"@exportTrailToGpx": {
|
||||
"description": "Etiqueta del botón para exportar el rastro a archivo GPX"
|
||||
},
|
||||
|
||||
"importTrailFromGpx": "Importar rastro desde GPX",
|
||||
"@importTrailFromGpx": {
|
||||
"description": "Etiqueta del botón para importar el rastro desde archivo GPX"
|
||||
},
|
||||
|
||||
"trailExportedSuccessfully": "¡Rastro exportado exitosamente!",
|
||||
"@trailExportedSuccessfully": {
|
||||
"description": "Mensaje de éxito cuando se exporta el rastro"
|
||||
},
|
||||
|
||||
"failedToExportTrail": "Error al exportar el rastro",
|
||||
"@failedToExportTrail": {
|
||||
"description": "Mensaje de error cuando falla la exportación del rastro"
|
||||
},
|
||||
|
||||
"failedToImportTrail": "Error al importar el rastro: {error}",
|
||||
"@failedToImportTrail": {
|
||||
"description": "Mensaje de error cuando falla la importación del rastro",
|
||||
"placeholders": {
|
||||
"error": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
"importTrail": "Importar rastro",
|
||||
"@importTrail": {
|
||||
"description": "Título del diálogo de importación de rastro"
|
||||
},
|
||||
|
||||
"importTrailQuestion": "¿Importar rastro con {pointCount} puntos?\n\nPuede reemplazar su rastro actual o verlo junto a él.",
|
||||
"@importTrailQuestion": {
|
||||
"description": "Contenido del diálogo de confirmación de importación de rastro",
|
||||
"placeholders": {
|
||||
"pointCount": {
|
||||
"type": "int"
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
"viewAlongside": "Ver junto",
|
||||
"@viewAlongside": {
|
||||
"description": "Botón para importar el rastro junto al rastro actual"
|
||||
},
|
||||
|
||||
"replaceCurrent": "Reemplazar actual",
|
||||
"@replaceCurrent": {
|
||||
"description": "Botón para reemplazar el rastro actual con el rastro importado"
|
||||
},
|
||||
|
||||
"trailImported": "¡Rastro importado! ({pointCount} puntos)",
|
||||
"@trailImported": {
|
||||
"description": "Mensaje de éxito cuando se importa el rastro",
|
||||
"placeholders": {
|
||||
"pointCount": {
|
||||
"type": "int"
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
"trailReplaced": "¡Rastro reemplazado! ({pointCount} puntos)",
|
||||
"@trailReplaced": {
|
||||
"description": "Mensaje de éxito cuando se reemplaza el rastro",
|
||||
"placeholders": {
|
||||
"pointCount": {
|
||||
"type": "int"
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
"contactTrails": "Rastros de contactos",
|
||||
"@contactTrails": {
|
||||
"description": "Encabezado de la sección de rastros de contactos"
|
||||
},
|
||||
|
||||
"showAllContactTrails": "Mostrar todos los rastros de contactos",
|
||||
"@showAllContactTrails": {
|
||||
"description": "Etiqueta del interruptor para mostrar todos los rastros de contactos"
|
||||
},
|
||||
|
||||
"noContactsWithLocationHistory": "No hay contactos con historial de ubicación",
|
||||
"@noContactsWithLocationHistory": {
|
||||
"description": "Subtítulo cuando no hay contactos con rastros"
|
||||
},
|
||||
|
||||
"showingTrailsForContacts": "Mostrando rastros para {count} contactos",
|
||||
"@showingTrailsForContacts": {
|
||||
"description": "Subtítulo que muestra el número de contactos con rastros",
|
||||
"placeholders": {
|
||||
"count": {
|
||||
"type": "int"
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
"individualContactTrails": "Rastros individuales de contactos",
|
||||
"@individualContactTrails": {
|
||||
"description": "Título del elemento expandible para rastros individuales de contactos"
|
||||
},
|
||||
|
||||
"deviceInformation": "Información del dispositivo",
|
||||
"@deviceInformation": {
|
||||
"description": "Encabezado de la sección de información del dispositivo"
|
||||
|
||||
@@ -2315,6 +2315,111 @@
|
||||
"description": "Info-bulle des contrôles de la trace"
|
||||
},
|
||||
|
||||
"exportTrailToGpx": "Exporter la trace vers GPX",
|
||||
"@exportTrailToGpx": {
|
||||
"description": "Étiquette du bouton pour exporter la trace vers un fichier GPX"
|
||||
},
|
||||
|
||||
"importTrailFromGpx": "Importer la trace depuis GPX",
|
||||
"@importTrailFromGpx": {
|
||||
"description": "Étiquette du bouton pour importer la trace depuis un fichier GPX"
|
||||
},
|
||||
|
||||
"trailExportedSuccessfully": "Trace exportée avec succès!",
|
||||
"@trailExportedSuccessfully": {
|
||||
"description": "Message de réussite lors de l'exportation de la trace"
|
||||
},
|
||||
|
||||
"failedToExportTrail": "Échec de l'exportation de la trace",
|
||||
"@failedToExportTrail": {
|
||||
"description": "Message d'erreur lors de l'échec de l'exportation de la trace"
|
||||
},
|
||||
|
||||
"failedToImportTrail": "Échec de l'importation de la trace: {error}",
|
||||
"@failedToImportTrail": {
|
||||
"description": "Message d'erreur lors de l'échec de l'importation de la trace",
|
||||
"placeholders": {
|
||||
"error": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
"importTrail": "Importer la trace",
|
||||
"@importTrail": {
|
||||
"description": "Titre du dialogue d'importation de trace"
|
||||
},
|
||||
|
||||
"importTrailQuestion": "Importer la trace avec {pointCount} points?\n\nVous pouvez remplacer votre trace actuelle ou l'afficher à côté.",
|
||||
"@importTrailQuestion": {
|
||||
"description": "Contenu du dialogue de confirmation d'importation de trace",
|
||||
"placeholders": {
|
||||
"pointCount": {
|
||||
"type": "int"
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
"viewAlongside": "Afficher à côté",
|
||||
"@viewAlongside": {
|
||||
"description": "Bouton pour importer la trace à côté de la trace actuelle"
|
||||
},
|
||||
|
||||
"replaceCurrent": "Remplacer l'actuel",
|
||||
"@replaceCurrent": {
|
||||
"description": "Bouton pour remplacer la trace actuelle par la trace importée"
|
||||
},
|
||||
|
||||
"trailImported": "Trace importée! ({pointCount} points)",
|
||||
"@trailImported": {
|
||||
"description": "Message de réussite lors de l'importation de la trace",
|
||||
"placeholders": {
|
||||
"pointCount": {
|
||||
"type": "int"
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
"trailReplaced": "Trace remplacée! ({pointCount} points)",
|
||||
"@trailReplaced": {
|
||||
"description": "Message de réussite lors du remplacement de la trace",
|
||||
"placeholders": {
|
||||
"pointCount": {
|
||||
"type": "int"
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
"contactTrails": "Traces des contacts",
|
||||
"@contactTrails": {
|
||||
"description": "En-tête de section des traces des contacts"
|
||||
},
|
||||
|
||||
"showAllContactTrails": "Afficher toutes les traces des contacts",
|
||||
"@showAllContactTrails": {
|
||||
"description": "Étiquette du commutateur pour afficher toutes les traces des contacts"
|
||||
},
|
||||
|
||||
"noContactsWithLocationHistory": "Aucun contact avec historique de localisation",
|
||||
"@noContactsWithLocationHistory": {
|
||||
"description": "Sous-titre lorsqu'il n'y a pas de contacts avec des traces"
|
||||
},
|
||||
|
||||
"showingTrailsForContacts": "Affichage des traces pour {count} contacts",
|
||||
"@showingTrailsForContacts": {
|
||||
"description": "Sous-titre montrant le nombre de contacts avec des traces",
|
||||
"placeholders": {
|
||||
"count": {
|
||||
"type": "int"
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
"individualContactTrails": "Traces individuelles des contacts",
|
||||
"@individualContactTrails": {
|
||||
"description": "Titre de l'élément extensible pour les traces individuelles des contacts"
|
||||
},
|
||||
|
||||
"deviceInformation": "Informations sur l'appareil",
|
||||
"@deviceInformation": {
|
||||
"description": "En-tête de section des informations sur l'appareil"
|
||||
|
||||
@@ -787,6 +787,38 @@
|
||||
|
||||
"trailControls": "Upravljanje putanjom",
|
||||
|
||||
"exportTrailToGpx": "Izvezi putanju u GPX",
|
||||
|
||||
"importTrailFromGpx": "Uvezi putanju iz GPX",
|
||||
|
||||
"trailExportedSuccessfully": "Putanja uspješno izvezena!",
|
||||
|
||||
"failedToExportTrail": "Izvoz putanje nije uspio",
|
||||
|
||||
"failedToImportTrail": "Uvoz putanje nije uspio: {error}",
|
||||
|
||||
"importTrail": "Uvezi putanju",
|
||||
|
||||
"importTrailQuestion": "Uvezi putanju s {pointCount} točaka?\n\nMožete zamijeniti trenutnu putanju ili je prikazati zajedno.",
|
||||
|
||||
"viewAlongside": "Prikaži zajedno",
|
||||
|
||||
"replaceCurrent": "Zamijeni trenutnu",
|
||||
|
||||
"trailImported": "Putanja uvezena! ({pointCount} točaka)",
|
||||
|
||||
"trailReplaced": "Putanja zamijenjena! ({pointCount} točaka)",
|
||||
|
||||
"contactTrails": "Putanje kontakata",
|
||||
|
||||
"showAllContactTrails": "Prikaži sve putanje kontakata",
|
||||
|
||||
"noContactsWithLocationHistory": "Nema kontakata s poviješću lokacije",
|
||||
|
||||
"showingTrailsForContacts": "Prikazujem putanje za {count} kontakata",
|
||||
|
||||
"individualContactTrails": "Pojedinačne putanje kontakata",
|
||||
|
||||
"deviceInformation": "Informacije o uređaju",
|
||||
|
||||
"bleName": "BLE naziv",
|
||||
|
||||
@@ -2315,6 +2315,111 @@
|
||||
"description": "Tooltip controlli traccia"
|
||||
},
|
||||
|
||||
"exportTrailToGpx": "Esporta traccia in GPX",
|
||||
"@exportTrailToGpx": {
|
||||
"description": "Etichetta del pulsante per esportare la traccia in file GPX"
|
||||
},
|
||||
|
||||
"importTrailFromGpx": "Importa traccia da GPX",
|
||||
"@importTrailFromGpx": {
|
||||
"description": "Etichetta del pulsante per importare la traccia da file GPX"
|
||||
},
|
||||
|
||||
"trailExportedSuccessfully": "Traccia esportata con successo!",
|
||||
"@trailExportedSuccessfully": {
|
||||
"description": "Messaggio di successo quando la traccia viene esportata"
|
||||
},
|
||||
|
||||
"failedToExportTrail": "Esportazione traccia fallita",
|
||||
"@failedToExportTrail": {
|
||||
"description": "Messaggio di errore quando l'esportazione della traccia fallisce"
|
||||
},
|
||||
|
||||
"failedToImportTrail": "Importazione traccia fallita: {error}",
|
||||
"@failedToImportTrail": {
|
||||
"description": "Messaggio di errore quando l'importazione della traccia fallisce",
|
||||
"placeholders": {
|
||||
"error": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
"importTrail": "Importa traccia",
|
||||
"@importTrail": {
|
||||
"description": "Titolo del dialogo di importazione traccia"
|
||||
},
|
||||
|
||||
"importTrailQuestion": "Importare traccia con {pointCount} punti?\n\nPuoi sostituire la tua traccia attuale o visualizzarla affiancata.",
|
||||
"@importTrailQuestion": {
|
||||
"description": "Contenuto del dialogo di conferma importazione traccia",
|
||||
"placeholders": {
|
||||
"pointCount": {
|
||||
"type": "int"
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
"viewAlongside": "Visualizza affiancata",
|
||||
"@viewAlongside": {
|
||||
"description": "Pulsante per importare la traccia affiancata alla traccia attuale"
|
||||
},
|
||||
|
||||
"replaceCurrent": "Sostituisci attuale",
|
||||
"@replaceCurrent": {
|
||||
"description": "Pulsante per sostituire la traccia attuale con la traccia importata"
|
||||
},
|
||||
|
||||
"trailImported": "Traccia importata! ({pointCount} punti)",
|
||||
"@trailImported": {
|
||||
"description": "Messaggio di successo quando la traccia viene importata",
|
||||
"placeholders": {
|
||||
"pointCount": {
|
||||
"type": "int"
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
"trailReplaced": "Traccia sostituita! ({pointCount} punti)",
|
||||
"@trailReplaced": {
|
||||
"description": "Messaggio di successo quando la traccia viene sostituita",
|
||||
"placeholders": {
|
||||
"pointCount": {
|
||||
"type": "int"
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
"contactTrails": "Tracce contatti",
|
||||
"@contactTrails": {
|
||||
"description": "Intestazione sezione tracce contatti"
|
||||
},
|
||||
|
||||
"showAllContactTrails": "Mostra tutte le tracce dei contatti",
|
||||
"@showAllContactTrails": {
|
||||
"description": "Etichetta dell'interruttore per mostrare tutte le tracce dei contatti"
|
||||
},
|
||||
|
||||
"noContactsWithLocationHistory": "Nessun contatto con cronologia posizione",
|
||||
"@noContactsWithLocationHistory": {
|
||||
"description": "Sottotitolo quando non ci sono contatti con tracce"
|
||||
},
|
||||
|
||||
"showingTrailsForContacts": "Visualizzazione tracce per {count} contatti",
|
||||
"@showingTrailsForContacts": {
|
||||
"description": "Sottotitolo che mostra il numero di contatti con tracce",
|
||||
"placeholders": {
|
||||
"count": {
|
||||
"type": "int"
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
"individualContactTrails": "Tracce individuali dei contatti",
|
||||
"@individualContactTrails": {
|
||||
"description": "Titolo dell'elemento espandibile per le tracce individuali dei contatti"
|
||||
},
|
||||
|
||||
"deviceInformation": "Informazioni Dispositivo",
|
||||
"@deviceInformation": {
|
||||
"description": "Intestazione sezione informazioni dispositivo"
|
||||
|
||||
@@ -2517,6 +2517,102 @@ abstract class AppLocalizations {
|
||||
/// **'Trail Controls'**
|
||||
String get trailControls;
|
||||
|
||||
/// Button label to export trail to GPX file
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Export Trail to GPX'**
|
||||
String get exportTrailToGpx;
|
||||
|
||||
/// Button label to import trail from GPX file
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Import Trail from GPX'**
|
||||
String get importTrailFromGpx;
|
||||
|
||||
/// Success message when trail is exported
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Trail exported successfully!'**
|
||||
String get trailExportedSuccessfully;
|
||||
|
||||
/// Error message when trail export fails
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Failed to export trail'**
|
||||
String get failedToExportTrail;
|
||||
|
||||
/// Error message when trail import fails
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Failed to import trail: {error}'**
|
||||
String failedToImportTrail(String error);
|
||||
|
||||
/// Import trail dialog title
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Import Trail'**
|
||||
String get importTrail;
|
||||
|
||||
/// Import trail confirmation dialog content
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Import trail with {pointCount} points?\n\nYou can replace your current trail or view it alongside.'**
|
||||
String importTrailQuestion(int pointCount);
|
||||
|
||||
/// Button to import trail alongside current trail
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'View Alongside'**
|
||||
String get viewAlongside;
|
||||
|
||||
/// Button to replace current trail with imported trail
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Replace Current'**
|
||||
String get replaceCurrent;
|
||||
|
||||
/// Success message when trail is imported
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Trail imported! ({pointCount} points)'**
|
||||
String trailImported(int pointCount);
|
||||
|
||||
/// Success message when trail is replaced
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Trail replaced! ({pointCount} points)'**
|
||||
String trailReplaced(int pointCount);
|
||||
|
||||
/// Contact trails section header
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Contact Trails'**
|
||||
String get contactTrails;
|
||||
|
||||
/// Toggle label to show all contact trails
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Show All Contact Trails'**
|
||||
String get showAllContactTrails;
|
||||
|
||||
/// Subtitle when no contacts have trails
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'No contacts with location history'**
|
||||
String get noContactsWithLocationHistory;
|
||||
|
||||
/// Subtitle showing number of contacts with trails
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Showing trails for {count} contacts'**
|
||||
String showingTrailsForContacts(int count);
|
||||
|
||||
/// Expansion tile title for individual contact trails
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Individual Contact Trails'**
|
||||
String get individualContactTrails;
|
||||
|
||||
/// Device information section header
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
|
||||
@@ -1402,6 +1402,65 @@ class AppLocalizationsDe extends AppLocalizations {
|
||||
@override
|
||||
String get trailControls => 'Verlaufssteuerung';
|
||||
|
||||
@override
|
||||
String get exportTrailToGpx => 'Verlauf als GPX exportieren';
|
||||
|
||||
@override
|
||||
String get importTrailFromGpx => 'Verlauf aus GPX importieren';
|
||||
|
||||
@override
|
||||
String get trailExportedSuccessfully => 'Verlauf erfolgreich exportiert!';
|
||||
|
||||
@override
|
||||
String get failedToExportTrail => 'Exportieren des Verlaufs fehlgeschlagen';
|
||||
|
||||
@override
|
||||
String failedToImportTrail(String error) {
|
||||
return 'Importieren des Verlaufs fehlgeschlagen: $error';
|
||||
}
|
||||
|
||||
@override
|
||||
String get importTrail => 'Verlauf importieren';
|
||||
|
||||
@override
|
||||
String importTrailQuestion(int pointCount) {
|
||||
return 'Verlauf mit $pointCount Punkten importieren?\n\nSie können Ihren aktuellen Verlauf ersetzen oder daneben anzeigen.';
|
||||
}
|
||||
|
||||
@override
|
||||
String get viewAlongside => 'Daneben anzeigen';
|
||||
|
||||
@override
|
||||
String get replaceCurrent => 'Aktuellen ersetzen';
|
||||
|
||||
@override
|
||||
String trailImported(int pointCount) {
|
||||
return 'Verlauf importiert! ($pointCount Punkte)';
|
||||
}
|
||||
|
||||
@override
|
||||
String trailReplaced(int pointCount) {
|
||||
return 'Verlauf ersetzt! ($pointCount Punkte)';
|
||||
}
|
||||
|
||||
@override
|
||||
String get contactTrails => 'Kontaktverläufe';
|
||||
|
||||
@override
|
||||
String get showAllContactTrails => 'Alle Kontaktverläufe anzeigen';
|
||||
|
||||
@override
|
||||
String get noContactsWithLocationHistory =>
|
||||
'Keine Kontakte mit Standortverlauf';
|
||||
|
||||
@override
|
||||
String showingTrailsForContacts(int count) {
|
||||
return 'Verläufe für $count Kontakte anzeigen';
|
||||
}
|
||||
|
||||
@override
|
||||
String get individualContactTrails => 'Einzelne Kontaktverläufe';
|
||||
|
||||
@override
|
||||
String get deviceInformation => 'Geräteinformationen';
|
||||
|
||||
|
||||
@@ -1390,6 +1390,65 @@ class AppLocalizationsEn extends AppLocalizations {
|
||||
@override
|
||||
String get trailControls => 'Trail Controls';
|
||||
|
||||
@override
|
||||
String get exportTrailToGpx => 'Export Trail to GPX';
|
||||
|
||||
@override
|
||||
String get importTrailFromGpx => 'Import Trail from GPX';
|
||||
|
||||
@override
|
||||
String get trailExportedSuccessfully => 'Trail exported successfully!';
|
||||
|
||||
@override
|
||||
String get failedToExportTrail => 'Failed to export trail';
|
||||
|
||||
@override
|
||||
String failedToImportTrail(String error) {
|
||||
return 'Failed to import trail: $error';
|
||||
}
|
||||
|
||||
@override
|
||||
String get importTrail => 'Import Trail';
|
||||
|
||||
@override
|
||||
String importTrailQuestion(int pointCount) {
|
||||
return 'Import trail with $pointCount points?\n\nYou can replace your current trail or view it alongside.';
|
||||
}
|
||||
|
||||
@override
|
||||
String get viewAlongside => 'View Alongside';
|
||||
|
||||
@override
|
||||
String get replaceCurrent => 'Replace Current';
|
||||
|
||||
@override
|
||||
String trailImported(int pointCount) {
|
||||
return 'Trail imported! ($pointCount points)';
|
||||
}
|
||||
|
||||
@override
|
||||
String trailReplaced(int pointCount) {
|
||||
return 'Trail replaced! ($pointCount points)';
|
||||
}
|
||||
|
||||
@override
|
||||
String get contactTrails => 'Contact Trails';
|
||||
|
||||
@override
|
||||
String get showAllContactTrails => 'Show All Contact Trails';
|
||||
|
||||
@override
|
||||
String get noContactsWithLocationHistory =>
|
||||
'No contacts with location history';
|
||||
|
||||
@override
|
||||
String showingTrailsForContacts(int count) {
|
||||
return 'Showing trails for $count contacts';
|
||||
}
|
||||
|
||||
@override
|
||||
String get individualContactTrails => 'Individual Contact Trails';
|
||||
|
||||
@override
|
||||
String get deviceInformation => 'Device Information';
|
||||
|
||||
|
||||
@@ -1401,6 +1401,65 @@ class AppLocalizationsEs extends AppLocalizations {
|
||||
@override
|
||||
String get trailControls => 'Controles del rastro';
|
||||
|
||||
@override
|
||||
String get exportTrailToGpx => 'Exportar rastro a GPX';
|
||||
|
||||
@override
|
||||
String get importTrailFromGpx => 'Importar rastro desde GPX';
|
||||
|
||||
@override
|
||||
String get trailExportedSuccessfully => '¡Rastro exportado exitosamente!';
|
||||
|
||||
@override
|
||||
String get failedToExportTrail => 'Error al exportar el rastro';
|
||||
|
||||
@override
|
||||
String failedToImportTrail(String error) {
|
||||
return 'Error al importar el rastro: $error';
|
||||
}
|
||||
|
||||
@override
|
||||
String get importTrail => 'Importar rastro';
|
||||
|
||||
@override
|
||||
String importTrailQuestion(int pointCount) {
|
||||
return '¿Importar rastro con $pointCount puntos?\n\nPuede reemplazar su rastro actual o verlo junto a él.';
|
||||
}
|
||||
|
||||
@override
|
||||
String get viewAlongside => 'Ver junto';
|
||||
|
||||
@override
|
||||
String get replaceCurrent => 'Reemplazar actual';
|
||||
|
||||
@override
|
||||
String trailImported(int pointCount) {
|
||||
return '¡Rastro importado! ($pointCount puntos)';
|
||||
}
|
||||
|
||||
@override
|
||||
String trailReplaced(int pointCount) {
|
||||
return '¡Rastro reemplazado! ($pointCount puntos)';
|
||||
}
|
||||
|
||||
@override
|
||||
String get contactTrails => 'Rastros de contactos';
|
||||
|
||||
@override
|
||||
String get showAllContactTrails => 'Mostrar todos los rastros de contactos';
|
||||
|
||||
@override
|
||||
String get noContactsWithLocationHistory =>
|
||||
'No hay contactos con historial de ubicación';
|
||||
|
||||
@override
|
||||
String showingTrailsForContacts(int count) {
|
||||
return 'Mostrando rastros para $count contactos';
|
||||
}
|
||||
|
||||
@override
|
||||
String get individualContactTrails => 'Rastros individuales de contactos';
|
||||
|
||||
@override
|
||||
String get deviceInformation => 'Información del dispositivo';
|
||||
|
||||
|
||||
@@ -1407,6 +1407,65 @@ class AppLocalizationsFr extends AppLocalizations {
|
||||
@override
|
||||
String get trailControls => 'Contrôles de la trace';
|
||||
|
||||
@override
|
||||
String get exportTrailToGpx => 'Exporter la trace vers GPX';
|
||||
|
||||
@override
|
||||
String get importTrailFromGpx => 'Importer la trace depuis GPX';
|
||||
|
||||
@override
|
||||
String get trailExportedSuccessfully => 'Trace exportée avec succès!';
|
||||
|
||||
@override
|
||||
String get failedToExportTrail => 'Échec de l\'exportation de la trace';
|
||||
|
||||
@override
|
||||
String failedToImportTrail(String error) {
|
||||
return 'Échec de l\'importation de la trace: $error';
|
||||
}
|
||||
|
||||
@override
|
||||
String get importTrail => 'Importer la trace';
|
||||
|
||||
@override
|
||||
String importTrailQuestion(int pointCount) {
|
||||
return 'Importer la trace avec $pointCount points?\n\nVous pouvez remplacer votre trace actuelle ou l\'afficher à côté.';
|
||||
}
|
||||
|
||||
@override
|
||||
String get viewAlongside => 'Afficher à côté';
|
||||
|
||||
@override
|
||||
String get replaceCurrent => 'Remplacer l\'actuel';
|
||||
|
||||
@override
|
||||
String trailImported(int pointCount) {
|
||||
return 'Trace importée! ($pointCount points)';
|
||||
}
|
||||
|
||||
@override
|
||||
String trailReplaced(int pointCount) {
|
||||
return 'Trace remplacée! ($pointCount points)';
|
||||
}
|
||||
|
||||
@override
|
||||
String get contactTrails => 'Traces des contacts';
|
||||
|
||||
@override
|
||||
String get showAllContactTrails => 'Afficher toutes les traces des contacts';
|
||||
|
||||
@override
|
||||
String get noContactsWithLocationHistory =>
|
||||
'Aucun contact avec historique de localisation';
|
||||
|
||||
@override
|
||||
String showingTrailsForContacts(int count) {
|
||||
return 'Affichage des traces pour $count contacts';
|
||||
}
|
||||
|
||||
@override
|
||||
String get individualContactTrails => 'Traces individuelles des contacts';
|
||||
|
||||
@override
|
||||
String get deviceInformation => 'Informations sur l\'appareil';
|
||||
|
||||
|
||||
@@ -1390,6 +1390,65 @@ class AppLocalizationsHr extends AppLocalizations {
|
||||
@override
|
||||
String get trailControls => 'Upravljanje putanjom';
|
||||
|
||||
@override
|
||||
String get exportTrailToGpx => 'Izvezi putanju u GPX';
|
||||
|
||||
@override
|
||||
String get importTrailFromGpx => 'Uvezi putanju iz GPX';
|
||||
|
||||
@override
|
||||
String get trailExportedSuccessfully => 'Putanja uspješno izvezena!';
|
||||
|
||||
@override
|
||||
String get failedToExportTrail => 'Izvoz putanje nije uspio';
|
||||
|
||||
@override
|
||||
String failedToImportTrail(String error) {
|
||||
return 'Uvoz putanje nije uspio: $error';
|
||||
}
|
||||
|
||||
@override
|
||||
String get importTrail => 'Uvezi putanju';
|
||||
|
||||
@override
|
||||
String importTrailQuestion(int pointCount) {
|
||||
return 'Uvezi putanju s $pointCount točaka?\n\nMožete zamijeniti trenutnu putanju ili je prikazati zajedno.';
|
||||
}
|
||||
|
||||
@override
|
||||
String get viewAlongside => 'Prikaži zajedno';
|
||||
|
||||
@override
|
||||
String get replaceCurrent => 'Zamijeni trenutnu';
|
||||
|
||||
@override
|
||||
String trailImported(int pointCount) {
|
||||
return 'Putanja uvezena! ($pointCount točaka)';
|
||||
}
|
||||
|
||||
@override
|
||||
String trailReplaced(int pointCount) {
|
||||
return 'Putanja zamijenjena! ($pointCount točaka)';
|
||||
}
|
||||
|
||||
@override
|
||||
String get contactTrails => 'Putanje kontakata';
|
||||
|
||||
@override
|
||||
String get showAllContactTrails => 'Prikaži sve putanje kontakata';
|
||||
|
||||
@override
|
||||
String get noContactsWithLocationHistory =>
|
||||
'Nema kontakata s poviješću lokacije';
|
||||
|
||||
@override
|
||||
String showingTrailsForContacts(int count) {
|
||||
return 'Prikazujem putanje za $count kontakata';
|
||||
}
|
||||
|
||||
@override
|
||||
String get individualContactTrails => 'Pojedinačne putanje kontakata';
|
||||
|
||||
@override
|
||||
String get deviceInformation => 'Informacije o uređaju';
|
||||
|
||||
|
||||
@@ -1401,6 +1401,65 @@ class AppLocalizationsIt extends AppLocalizations {
|
||||
@override
|
||||
String get trailControls => 'Controlli Traccia';
|
||||
|
||||
@override
|
||||
String get exportTrailToGpx => 'Esporta traccia in GPX';
|
||||
|
||||
@override
|
||||
String get importTrailFromGpx => 'Importa traccia da GPX';
|
||||
|
||||
@override
|
||||
String get trailExportedSuccessfully => 'Traccia esportata con successo!';
|
||||
|
||||
@override
|
||||
String get failedToExportTrail => 'Esportazione traccia fallita';
|
||||
|
||||
@override
|
||||
String failedToImportTrail(String error) {
|
||||
return 'Importazione traccia fallita: $error';
|
||||
}
|
||||
|
||||
@override
|
||||
String get importTrail => 'Importa traccia';
|
||||
|
||||
@override
|
||||
String importTrailQuestion(int pointCount) {
|
||||
return 'Importare traccia con $pointCount punti?\n\nPuoi sostituire la tua traccia attuale o visualizzarla affiancata.';
|
||||
}
|
||||
|
||||
@override
|
||||
String get viewAlongside => 'Visualizza affiancata';
|
||||
|
||||
@override
|
||||
String get replaceCurrent => 'Sostituisci attuale';
|
||||
|
||||
@override
|
||||
String trailImported(int pointCount) {
|
||||
return 'Traccia importata! ($pointCount punti)';
|
||||
}
|
||||
|
||||
@override
|
||||
String trailReplaced(int pointCount) {
|
||||
return 'Traccia sostituita! ($pointCount punti)';
|
||||
}
|
||||
|
||||
@override
|
||||
String get contactTrails => 'Tracce contatti';
|
||||
|
||||
@override
|
||||
String get showAllContactTrails => 'Mostra tutte le tracce dei contatti';
|
||||
|
||||
@override
|
||||
String get noContactsWithLocationHistory =>
|
||||
'Nessun contatto con cronologia posizione';
|
||||
|
||||
@override
|
||||
String showingTrailsForContacts(int count) {
|
||||
return 'Visualizzazione tracce per $count contatti';
|
||||
}
|
||||
|
||||
@override
|
||||
String get individualContactTrails => 'Tracce individuali dei contatti';
|
||||
|
||||
@override
|
||||
String get deviceInformation => 'Informazioni Dispositivo';
|
||||
|
||||
|
||||
@@ -1393,6 +1393,64 @@ class AppLocalizationsSl extends AppLocalizations {
|
||||
@override
|
||||
String get trailControls => 'Nadzor poti';
|
||||
|
||||
@override
|
||||
String get exportTrailToGpx => 'Izvozi pot v GPX';
|
||||
|
||||
@override
|
||||
String get importTrailFromGpx => 'Uvozi pot iz GPX';
|
||||
|
||||
@override
|
||||
String get trailExportedSuccessfully => 'Pot uspešno izvožena!';
|
||||
|
||||
@override
|
||||
String get failedToExportTrail => 'Izvoz poti ni uspel';
|
||||
|
||||
@override
|
||||
String failedToImportTrail(String error) {
|
||||
return 'Uvoz poti ni uspel: $error';
|
||||
}
|
||||
|
||||
@override
|
||||
String get importTrail => 'Uvozi pot';
|
||||
|
||||
@override
|
||||
String importTrailQuestion(int pointCount) {
|
||||
return 'Uvozi pot s $pointCount točkami?\n\nLahko zamenjate trenutno pot ali jo prikažete skupaj.';
|
||||
}
|
||||
|
||||
@override
|
||||
String get viewAlongside => 'Prikaži skupaj';
|
||||
|
||||
@override
|
||||
String get replaceCurrent => 'Zamenjaj trenutno';
|
||||
|
||||
@override
|
||||
String trailImported(int pointCount) {
|
||||
return 'Pot uvožena! ($pointCount točk)';
|
||||
}
|
||||
|
||||
@override
|
||||
String trailReplaced(int pointCount) {
|
||||
return 'Pot zamenjana! ($pointCount točk)';
|
||||
}
|
||||
|
||||
@override
|
||||
String get contactTrails => 'Poti stikov';
|
||||
|
||||
@override
|
||||
String get showAllContactTrails => 'Prikaži vse poti stikov';
|
||||
|
||||
@override
|
||||
String get noContactsWithLocationHistory => 'Ni stikov z zgodovino lokacije';
|
||||
|
||||
@override
|
||||
String showingTrailsForContacts(int count) {
|
||||
return 'Prikazujem poti za $count stikov';
|
||||
}
|
||||
|
||||
@override
|
||||
String get individualContactTrails => 'Posamezne poti stikov';
|
||||
|
||||
@override
|
||||
String get deviceInformation => 'Informacije o napravi';
|
||||
|
||||
|
||||
@@ -787,6 +787,38 @@
|
||||
|
||||
"trailControls": "Nadzor poti",
|
||||
|
||||
"exportTrailToGpx": "Izvozi pot v GPX",
|
||||
|
||||
"importTrailFromGpx": "Uvozi pot iz GPX",
|
||||
|
||||
"trailExportedSuccessfully": "Pot uspešno izvožena!",
|
||||
|
||||
"failedToExportTrail": "Izvoz poti ni uspel",
|
||||
|
||||
"failedToImportTrail": "Uvoz poti ni uspel: {error}",
|
||||
|
||||
"importTrail": "Uvozi pot",
|
||||
|
||||
"importTrailQuestion": "Uvozi pot s {pointCount} točkami?\n\nLahko zamenjate trenutno pot ali jo prikažete skupaj.",
|
||||
|
||||
"viewAlongside": "Prikaži skupaj",
|
||||
|
||||
"replaceCurrent": "Zamenjaj trenutno",
|
||||
|
||||
"trailImported": "Pot uvožena! ({pointCount} točk)",
|
||||
|
||||
"trailReplaced": "Pot zamenjana! ({pointCount} točk)",
|
||||
|
||||
"contactTrails": "Poti stikov",
|
||||
|
||||
"showAllContactTrails": "Prikaži vse poti stikov",
|
||||
|
||||
"noContactsWithLocationHistory": "Ni stikov z zgodovino lokacije",
|
||||
|
||||
"showingTrailsForContacts": "Prikazujem poti za {count} stikov",
|
||||
|
||||
"individualContactTrails": "Posamezne poti stikov",
|
||||
|
||||
"deviceInformation": "Informacije o napravi",
|
||||
|
||||
"bleName": "BLE ime",
|
||||
|
||||
Reference in New Issue
Block a user