feat: Enhance SAR message handling with color indexing and localization

- Added `sarColorIndex` to `Message` and `SarMarker` models to support color indexing for SAR markers.
- Introduced a standard color palette in `SarTemplate` and methods to retrieve colors based on index.
- Updated `SarTemplate` to include localization for template names.
- Modified `SarUpdateSheet` and message sending logic to include color index in SAR messages.
- Enhanced `SarMessageParser` to support both old and new message formats with color index.
- Updated UI components to reflect changes in SAR marker color handling based on the new color index.
- Improved sample data generation to utilize localized strings for better testing and demonstration.
This commit is contained in:
Janez T
2025-10-23 19:17:13 +02:00
parent b70eed1bf2
commit 98cda8c976
28 changed files with 2734 additions and 270 deletions

View File

@@ -620,6 +620,10 @@
"textCopiedToClipboard": "Besedilo kopirano v odložišče",
"deleteMessage": "Izbriši sporočilo",
"deleteMessageConfirmation": "Ali ste prepričani, da želite izbrisati to sporočilo?",
"shareLocation": "Deli lokacijo",
"shareLocationText": "{markerInfo}\n\nKoordinate: {lat}, {lon}\n\nGoogle Maps: {url}",
"sarLocationShare": "SAR Lokacija",
"locationShared": "Lokacija deljena",
"refreshedContacts": "Stiki osveženi",
@@ -790,13 +794,13 @@
"failedToGetLocation": "Pridobivanje lokacije ni uspelo: {error}",
"sarTemplates": "SAR Templates",
"manageSarTemplates": "Manage cursor on target templates",
"addTemplate": "Add Template",
"editTemplate": "Edit Template",
"deleteTemplate": "Delete Template",
"templateName": "Template Name",
"templateNameHint": "e.g. Found Person",
"sarTemplates": "SAR predloge",
"manageSarTemplates": "Upravljanje SAR predlog",
"addTemplate": "Dodaj predlogo",
"editTemplate": "Uredi predlogo",
"deleteTemplate": "Izbriši predlogo",
"templateName": "Ime predloge",
"templateNameHint": "npr. Najdena oseba",
"templateEmoji": "Emoji",
"emojiRequired": "Emoji je obvezen",
"nameRequired": "Ime je obvezno",
@@ -804,8 +808,8 @@
"templateDescriptionHint": "Add additional context...",
"templateColor": "Color",
"previewFormat": "Preview (SAR Message Format)",
"importFromClipboard": "Import",
"exportToClipboard": "Export",
"importFromClipboard": "Uvozi",
"exportToClipboard": "Izvozi",
"deleteTemplateConfirmation": "Delete template '{name}'?",
"templateAdded": "Template added",
"templateUpdated": "Template updated",
@@ -814,10 +818,10 @@
"templatesExported": "{count, plural, =1{Exported 1 template to clipboard} other{Exported {count} templates to clipboard}}",
"importFailed": "Import failed: {error}",
"exportFailed": "Export failed: {error}",
"resetToDefaults": "Reset to Defaults",
"resetToDefaultsConfirmation": "This will delete all custom templates and restore the 4 default templates. Continue?",
"reset": "Reset",
"resetComplete": "Templates reset to defaults",
"resetToDefaults": "Ponastavi na privzeto",
"resetToDefaultsConfirmation": "To bo izbrisalo vse prilagojene predloge in obnovilo 4 privzete predloge. Nadaljevati?",
"reset": "Ponastavi",
"resetComplete": "Predloge ponastavljene na privzeto",
"noTemplates": "No templates available",
"tapAddToCreate": "Tap + to create your first template",
"ok": "OK",
@@ -846,5 +850,55 @@
"noContactsOrRoomsAvailable": "Ni na voljo kontaktov ali sob",
"messagesWillBeSentToPublicChannel": "Sporočila bodo poslana na javni kanal",
"newMessage": "Novo sporočilo",
"channel": "Kanal"
"channel": "Kanal",
"samplePoliceLead": "Vodja Policije",
"sampleDroneOperator": "Operater Drona",
"sampleFirefighterAlpha": "Gasilec",
"sampleMedicCharlie": "Zdravnik",
"sampleCommandDelta": "Poveljstvo",
"sampleFireEngine": "Gasilsko Vozilo",
"sampleAirSupport": "Zračna Podpora",
"sampleBaseCoordinator": "Koordinator Baze",
"channelEmergency": "Nujno",
"channelCoordination": "Koordinacija",
"channelUpdates": "Posodobitve",
"sampleTeamMember": "Vzorčni Član Ekipe",
"sampleScout": "Vzorčni Izvidnik",
"sampleBase": "Vzorčna Baza",
"sampleSearcher": "Vzorčni Iskalec",
"sampleObjectBackpack": " Najden nahrbtnik - modra barva",
"sampleObjectVehicle": " Zapuščeno vozilo - preveriti lastnika",
"sampleObjectCamping": " Odkrita oprema za kampiranje",
"sampleObjectTrailMarker": " Oznaka poti najdena izven poti",
"sampleMsgAllTeamsCheckIn": "Vse ekipe se javite",
"sampleMsgWeatherUpdate": "Posodobitev vremena: Jasno nebo, temp 18°C",
"sampleMsgBaseCamp": "Bazni tabor vzpostavljen na zbirališču",
"sampleMsgTeamAlpha": "Ekipa se premika v sektor 2",
"sampleMsgRadioCheck": "Preverjanje radia - vse postaje odgovorite",
"sampleMsgWaterSupply": "Oskrba z vodo na voljo na kontrolni točki 3",
"sampleMsgTeamBravo": "Ekipa poroča: sektor 1 čist",
"sampleMsgEtaRallyPoint": "Prihod na zbirališče: 15 minut",
"sampleMsgSupplyDrop": "Dostava zalog potrjena za 14:00",
"sampleMsgDroneSurvey": "Nadzor z dronom zaključen - brez najdb",
"sampleMsgTeamCharlie": "Ekipa prosi za okrepitev",
"sampleMsgRadioDiscipline": "Vse enote: vzdrževati radijsko disciplino",
"sampleMsgUrgentMedical": "NUJNO: Potrebna medicinska pomoč v sektorju 4",
"sampleMsgAdultMale": " Odrasel moški, pri zavesti",
"sampleMsgFireSpotted": "Opažen požar - koordinate sledijo",
"sampleMsgSpreadingRapidly": " Hitro se širi!",
"sampleMsgPriorityHelicopter": "PRIORITETA: Potrebna podpora helikopterja",
"sampleMsgMedicalTeamEnRoute": "Medicinska ekipa na poti do vaše lokacije",
"sampleMsgEvacHelicopter": "Helikopter za evakuacijo prihod 10 minut",
"sampleMsgEmergencyResolved": "Nujnost rešena - vse čisto",
"sampleMsgEmergencyStagingArea": " Nujno zbirališče",
"sampleMsgEmergencyServices": "Nujne službe obveščene in se odzivajo",
"sampleAlphaTeamLead": "Vodja Ekipe",
"sampleBravoScout": "Izvidnik",
"sampleCharlieMedic": "Zdravnik",
"sampleDeltaNavigator": "Navigator",
"sampleEchoSupport": "Podpora",
"sampleBaseCommand": "Poveljstvo Baze",
"sampleFieldCoordinator": "Terenski Koordinator",
"sampleMedicalTeam": "Medicinska Ekipa"
}