{ "@@locale": "en", "appTitle": "MeshCore SAR", "@appTitle": { "description": "The application title" }, "messages": "Messages", "@messages": { "description": "Messages tab label" }, "contacts": "Contacts", "@contacts": { "description": "Contacts tab label" }, "map": "Map", "@map": { "description": "Map tab label" }, "settings": "Settings", "@settings": { "description": "Settings screen title" }, "connect": "Connect", "@connect": { "description": "Connect button label" }, "disconnect": "Disconnect", "@disconnect": { "description": "Disconnect button label" }, "scanningForDevices": "Scanning for devices...", "@scanningForDevices": { "description": "Text shown when scanning for BLE devices" }, "noDevicesFound": "No devices found", "@noDevicesFound": { "description": "Text shown when no BLE devices are found" }, "scanAgain": "Scan Again", "@scanAgain": { "description": "Button to restart BLE scanning" }, "tapToConnect": "Tap to connect", "@tapToConnect": { "description": "Subtitle text for device in scan list" }, "deviceNotConnected": "Device not connected", "@deviceNotConnected": { "description": "Error message when device is not connected" }, "locationPermissionDenied": "Location permission denied", "@locationPermissionDenied": { "description": "Error when location permission is denied" }, "locationPermissionPermanentlyDenied": "Location permission permanently denied. Please enable in Settings.", "@locationPermissionPermanentlyDenied": { "description": "Error when location permission is permanently denied" }, "locationServicesDisabled": "Location services are disabled. Please enable them in Settings.", "@locationServicesDisabled": { "description": "Error when location services are disabled" }, "failedToGetGpsLocation": "Failed to get GPS location", "@failedToGetGpsLocation": { "description": "Error when GPS location cannot be obtained" }, "advertisedAtLocation": "Advertised at {latitude}, {longitude}", "@advertisedAtLocation": { "description": "Success message showing advertised location", "placeholders": { "latitude": { "type": "String" }, "longitude": { "type": "String" } } }, "failedToAdvertise": "Failed to advertise: {error}", "@failedToAdvertise": { "description": "Error message for failed advertisement", "placeholders": { "error": { "type": "String" } } }, "reconnecting": "Reconnecting... ({attempt}/{max})", "@reconnecting": { "description": "Text shown during reconnection attempts", "placeholders": { "attempt": { "type": "int" }, "max": { "type": "int" } } }, "cancelReconnection": "Cancel reconnection", "@cancelReconnection": { "description": "Tooltip for cancel reconnection button" }, "mapManagement": "Map Management", "@mapManagement": { "description": "Menu item for map management" }, "general": "General", "@general": { "description": "General settings section header" }, "theme": "Theme", "@theme": { "description": "Theme setting label" }, "chooseTheme": "Choose Theme", "@chooseTheme": { "description": "Theme selection dialog title" }, "light": "Light", "@light": { "description": "Light theme option" }, "dark": "Dark", "@dark": { "description": "Dark theme option" }, "blueLightTheme": "Blue light theme", "@blueLightTheme": { "description": "Description for blue light theme" }, "blueDarkTheme": "Blue dark theme", "@blueDarkTheme": { "description": "Description for blue dark theme" }, "sarRed": "SAR Red", "@sarRed": { "description": "SAR Red theme option" }, "alertEmergencyMode": "Alert/Emergency mode", "@alertEmergencyMode": { "description": "Description for SAR Red theme" }, "sarGreen": "SAR Green", "@sarGreen": { "description": "SAR Green theme option" }, "safeAllClearMode": "Safe/All Clear mode", "@safeAllClearMode": { "description": "Description for SAR Green theme" }, "autoSystem": "Auto (System)", "@autoSystem": { "description": "Auto/System theme option" }, "followSystemTheme": "Follow system theme", "@followSystemTheme": { "description": "Description for system theme" }, "showRxTxIndicators": "Show RX/TX Indicators", "@showRxTxIndicators": { "description": "Setting to show RX/TX indicators" }, "displayPacketActivity": "Display packet activity indicators in top bar", "@displayPacketActivity": { "description": "Description for RX/TX indicators setting" }, "language": "Language", "@language": { "description": "Language setting label" }, "chooseLanguage": "Choose Language", "@chooseLanguage": { "description": "Language selection dialog title" }, "english": "English", "@english": { "description": "English language option" }, "slovenian": "Slovenian", "@slovenian": { "description": "Slovenian language option" }, "croatian": "Croatian", "@croatian": { "description": "Croatian language option" }, "locationBroadcasting": "Location Broadcasting", "@locationBroadcasting": { "description": "Location settings section header" }, "autoLocationTracking": "Auto Location Tracking", "@autoLocationTracking": { "description": "Auto location tracking setting" }, "automaticallyBroadcastPosition": "Automatically broadcast position updates", "@automaticallyBroadcastPosition": { "description": "Description for auto location tracking" }, "configureTracking": "Configure Tracking", "@configureTracking": { "description": "Configure tracking button label" }, "distanceAndTimeThresholds": "Distance and time thresholds", "@distanceAndTimeThresholds": { "description": "Description for tracking configuration" }, "locationTrackingConfiguration": "Location Tracking Configuration", "@locationTrackingConfiguration": { "description": "Tracking configuration dialog title" }, "configureWhenLocationBroadcasts": "Configure when location broadcasts are sent to the mesh network", "@configureWhenLocationBroadcasts": { "description": "Description for tracking configuration dialog" }, "minimumDistance": "Minimum Distance", "@minimumDistance": { "description": "Minimum distance setting label" }, "broadcastAfterMoving": "Broadcast only after moving {distance} meters", "@broadcastAfterMoving": { "description": "Description for minimum distance", "placeholders": { "distance": { "type": "String" } } }, "maximumDistance": "Maximum Distance", "@maximumDistance": { "description": "Maximum distance setting label" }, "alwaysBroadcastAfterMoving": "Always broadcast after moving {distance} meters", "@alwaysBroadcastAfterMoving": { "description": "Description for maximum distance", "placeholders": { "distance": { "type": "String" } } }, "minimumTimeInterval": "Minimum Time Interval", "@minimumTimeInterval": { "description": "Minimum time interval setting label" }, "alwaysBroadcastEvery": "Always broadcast every {duration}", "@alwaysBroadcastEvery": { "description": "Description for time interval", "placeholders": { "duration": { "type": "String" } } }, "save": "Save", "@save": { "description": "Save button label" }, "cancel": "Cancel", "@cancel": { "description": "Cancel button label" }, "close": "Close", "@close": { "description": "Close button label" }, "about": "About", "@about": { "description": "About section header" }, "appVersion": "App Version", "@appVersion": { "description": "App version label" }, "appName": "App Name", "@appName": { "description": "App name label" }, "aboutMeshCoreSar": "About MeshCore SAR", "@aboutMeshCoreSar": { "description": "About dialog title" }, "aboutDescription": "A Search & Rescue application designed for emergency response teams. Features include:\n\n• BLE mesh networking for device-to-device communication\n• Offline maps with multiple layer options\n• Real-time team member tracking\n• SAR tactical markers (found person, fire, staging)\n• Contact management and messaging\n• GPS tracking with compass heading\n• Map tile caching for offline use", "@aboutDescription": { "description": "About dialog description" }, "technologiesUsed": "Technologies Used:", "@technologiesUsed": { "description": "Technologies used section title" }, "technologiesList": "• Flutter for cross-platform development\n• BLE (Bluetooth Low Energy) for mesh networking\n• OpenStreetMap for mapping\n• Provider for state management\n• SharedPreferences for local storage", "@technologiesList": { "description": "List of technologies used" }, "developer": "Developer", "@developer": { "description": "Developer section header" }, "packageName": "Package Name", "@packageName": { "description": "Package name label" }, "sampleData": "Sample Data", "@sampleData": { "description": "Sample data section header" }, "sampleDataDescription": "Load or clear sample contacts, channel messages, and SAR markers for testing", "@sampleDataDescription": { "description": "Sample data section description" }, "loadSampleData": "Load Sample Data", "@loadSampleData": { "description": "Load sample data button" }, "clearAllData": "Clear All Data", "@clearAllData": { "description": "Clear all data button" }, "clearAllDataConfirmTitle": "Clear All Data", "@clearAllDataConfirmTitle": { "description": "Clear data confirmation dialog title" }, "clearAllDataConfirmMessage": "This will clear all contacts and SAR markers. Are you sure?", "@clearAllDataConfirmMessage": { "description": "Clear data confirmation message" }, "clear": "Clear", "@clear": { "description": "Clear button label" }, "loadedSampleData": "Loaded {teamCount} team members, {channelCount} channels, {sarCount} SAR markers, {messageCount} messages", "@loadedSampleData": { "description": "Success message after loading sample data", "placeholders": { "teamCount": { "type": "int" }, "channelCount": { "type": "int" }, "sarCount": { "type": "int" }, "messageCount": { "type": "int" } } }, "failedToLoadSampleData": "Failed to load sample data: {error}", "@failedToLoadSampleData": { "description": "Error message when sample data fails to load", "placeholders": { "error": { "type": "String" } } }, "allDataCleared": "All data cleared", "@allDataCleared": { "description": "Success message after clearing all data" }, "failedToStartBackgroundTracking": "Failed to start background tracking. Check permissions and BLE connection.", "@failedToStartBackgroundTracking": { "description": "Error message when background tracking fails to start" }, "locationBroadcast": "Location broadcast: {latitude}, {longitude}", "@locationBroadcast": { "description": "Success message for location broadcast", "placeholders": { "latitude": { "type": "String" }, "longitude": { "type": "String" } } }, "defaultPinInfo": "The default pin for devices without a screen is 123456. Trouble pairing? Forget the bluetooth device in system settings.", "@defaultPinInfo": { "description": "Information about default PIN for pairing" }, "noMessagesYet": "No messages yet", "@noMessagesYet": { "description": "Empty state message when there are no messages" }, "pullDownToSync": "Pull down to sync messages", "@pullDownToSync": { "description": "Instruction to pull down to refresh messages" }, "deleteContact": "Delete Contact", "@deleteContact": { "description": "Delete contact action label" }, "delete": "Delete", "@delete": { "description": "Delete button label" }, "viewOnMap": "View on Map", "@viewOnMap": { "description": "Action to view contact location on map" }, "refresh": "Refresh", "@refresh": { "description": "Refresh button label" }, "sendDirectMessage": "Send Direct Message", "@sendDirectMessage": { "description": "Action to send direct message to contact" }, "resetPath": "Reset Path (Re-route)", "@resetPath": { "description": "Action to reset contact path for re-routing" }, "publicKeyCopied": "Public key copied to clipboard", "@publicKeyCopied": { "description": "Success message when public key is copied" }, "copiedToClipboard": "{label} copied to clipboard", "@copiedToClipboard": { "description": "Success message when a value is copied to clipboard", "placeholders": { "label": { "type": "String" } } }, "pleaseEnterPassword": "Please enter a password", "@pleaseEnterPassword": { "description": "Validation message for empty password field" }, "failedToSyncContacts": "Failed to sync contacts: {error}", "@failedToSyncContacts": { "description": "Error message when contact sync fails", "placeholders": { "error": { "type": "String" } } }, "loggedInSuccessfully": "Logged in successfully! Waiting for room messages...", "@loggedInSuccessfully": { "description": "Success message after successful room login" }, "loginFailed": "Login failed - incorrect password", "@loginFailed": { "description": "Error message when room login fails" }, "loggingIn": "Logging in to {roomName}...", "@loggingIn": { "description": "Status message during room login process", "placeholders": { "roomName": { "type": "String" } } }, "failedToSendLogin": "Failed to send login: {error}", "@failedToSendLogin": { "description": "Error message when login command fails to send", "placeholders": { "error": { "type": "String" } } }, "lowLocationAccuracy": "Low Location Accuracy", "@lowLocationAccuracy": { "description": "Warning title for low GPS accuracy" }, "continue_": "Continue", "@continue_": { "description": "Continue button label" }, "sendSarMarker": "Send SAR marker", "@sendSarMarker": { "description": "Action to send SAR marker" }, "deleteDrawing": "Delete Drawing", "@deleteDrawing": { "description": "Action to delete a map drawing" }, "drawLine": "Draw Line", "@drawLine": { "description": "Map drawing mode: line" }, "drawLineDesc": "Draw a freehand line on the map", "@drawLineDesc": { "description": "Description for line drawing mode" }, "drawRectangle": "Draw Rectangle", "@drawRectangle": { "description": "Map drawing mode: rectangle" }, "drawRectangleDesc": "Draw a rectangular area on the map", "@drawRectangleDesc": { "description": "Description for rectangle drawing mode" }, "shareDrawings": "Share Drawings", "@shareDrawings": { "description": "Action to share drawings to network" }, "clearAllDrawings": "Clear All Drawings", "@clearAllDrawings": { "description": "Action to clear all local drawings" }, "clearAll": "Clear All", "@clearAll": { "description": "Clear all button label" }, "noLocalDrawings": "No local drawings to share", "@noLocalDrawings": { "description": "Message when there are no drawings to share" }, "publicChannel": "Public Channel", "@publicChannel": { "description": "Public channel option for sharing" }, "broadcastToAll": "Broadcast to all nearby nodes (ephemeral)", "@broadcastToAll": { "description": "Description for public channel broadcast" }, "storedPermanently": "Stored permanently in room", "@storedPermanently": { "description": "Description for room storage permanence" }, "notConnectedToDevice": "Not connected to device", "@notConnectedToDevice": { "description": "Error message when device is not connected for direct messaging" }, "directMessage": "Direct Message", "@directMessage": { "description": "Title for direct message sheet" }, "directMessageSentTo": "Direct message sent to {contactName}", "@directMessageSentTo": { "description": "Success message after sending direct message", "placeholders": { "contactName": { "type": "String" } } }, "failedToSend": "Failed to send: {error}", "@failedToSend": { "description": "Error message when sending direct message fails", "placeholders": { "error": { "type": "String" } } }, "directMessageInfo": "This message will be sent directly to {contactName}. It will also appear in the main messages feed.", "@directMessageInfo": { "description": "Information about direct messaging behavior", "placeholders": { "contactName": { "type": "String" } } }, "typeYourMessage": "Type your message...", "@typeYourMessage": { "description": "Placeholder text for message input field" }, "quickLocationMarker": "Quick location marker", "@quickLocationMarker": { "description": "Subtitle for SAR marker sheet header" }, "markerType": "Marker Type", "@markerType": { "description": "Label for marker type selection section" }, "sendTo": "Send To", "@sendTo": { "description": "Label for destination selection section" }, "noDestinationsAvailable": "No destinations available.", "@noDestinationsAvailable": { "description": "Warning when no rooms or channels exist" }, "selectDestination": "Select destination...", "@selectDestination": { "description": "Placeholder for destination dropdown" }, "ephemeralBroadcastInfo": "Ephemeral: Broadcast over-the-air only. Not stored - nodes must be online.", "@ephemeralBroadcastInfo": { "description": "Information about ephemeral channel broadcasts" }, "persistentRoomInfo": "Persistent: Stored immutably in room. Synced automatically and preserved offline.", "@persistentRoomInfo": { "description": "Information about persistent room storage" }, "location": "Location", "@location": { "description": "Label for location section" }, "fromMap": "From Map", "@fromMap": { "description": "Badge showing location is from map tap" }, "gettingLocation": "Getting location...", "@gettingLocation": { "description": "Loading message while fetching GPS location" }, "locationError": "Location Error", "@locationError": { "description": "Title for location error messages" }, "retry": "Retry", "@retry": { "description": "Retry button label" }, "refreshLocation": "Refresh location", "@refreshLocation": { "description": "Tooltip for refresh location button" }, "accuracyMeters": "Accuracy: ±{accuracy}m", "@accuracyMeters": { "description": "Display of GPS accuracy in meters", "placeholders": { "accuracy": { "type": "int" } } }, "notesOptional": "Notes (optional)", "@notesOptional": { "description": "Label for optional notes field" }, "addAdditionalInformation": "Add additional information...", "@addAdditionalInformation": { "description": "Placeholder for notes field" }, "lowAccuracyWarning": "Location accuracy is ±{accuracy}m. This may not be accurate enough for SAR operations.\n\nContinue anyway?", "@lowAccuracyWarning": { "description": "Warning dialog content for low GPS accuracy", "placeholders": { "accuracy": { "type": "int" } } }, "loginToRoom": "Login to Room", "@loginToRoom": { "description": "Title for room login dialog" }, "enterPasswordInfo": "Enter the password to access this room. The password will be saved for future use.", "@enterPasswordInfo": { "description": "Information about room password" }, "password": "Password", "@password": { "description": "Password field label" }, "enterRoomPassword": "Enter room password", "@enterRoomPassword": { "description": "Password field hint" }, "loggingInDots": "Logging in...", "@loggingInDots": { "description": "Button text while logging in" }, "login": "Login", "@login": { "description": "Login button label" }, "failedToAddRoom": "Failed to add room to device: {error}\n\nThe room may not have advertised yet.\nTry waiting for the room to broadcast.", "@failedToAddRoom": { "description": "Error message when adding room fails", "placeholders": { "error": { "type": "String" } } }, "direct": "Direct", "@direct": { "description": "Direct routing indicator" }, "flood": "Flood", "@flood": { "description": "Flood routing indicator" }, "admin": "Admin", "@admin": { "description": "Admin badge label" }, "loggedIn": "Logged In", "@loggedIn": { "description": "Logged in status badge" }, "noGpsData": "No GPS data", "@noGpsData": { "description": "Message when GPS data is not available" }, "distance": "Distance", "@distance": { "description": "Distance label" }, "pingingDirect": "Pinging {name} (direct via path)...", "@pingingDirect": { "description": "Status message for direct ping", "placeholders": { "name": { "type": "String" } } }, "pingingFlood": "Pinging {name} (flooding - no path)...", "@pingingFlood": { "description": "Status message for flood ping", "placeholders": { "name": { "type": "String" } } }, "directPingTimeout": "Direct ping timeout - retrying {name} with flooding...", "@directPingTimeout": { "description": "Warning when direct ping times out", "placeholders": { "name": { "type": "String" } } }, "pingSuccessful": "Ping successful to {name}{fallback}", "@pingSuccessful": { "description": "Success message for ping", "placeholders": { "name": { "type": "String" }, "fallback": { "type": "String" } } }, "viaFloodingFallback": " (via flooding fallback)", "@viaFloodingFallback": { "description": "Suffix for ping success with fallback" }, "pingFailed": "Ping failed to {name} - no response received", "@pingFailed": { "description": "Error message when ping fails", "placeholders": { "name": { "type": "String" } } }, "deleteContactConfirmation": "Are you sure you want to delete \"{name}\"?\n\nThis will remove the contact from both the app and the companion radio device.", "@deleteContactConfirmation": { "description": "Confirmation message for deleting contact", "placeholders": { "name": { "type": "String" } } }, "removingContact": "Removing {name}...", "@removingContact": { "description": "Status message while removing contact", "placeholders": { "name": { "type": "String" } } }, "contactRemoved": "Contact \"{name}\" removed", "@contactRemoved": { "description": "Success message after removing contact", "placeholders": { "name": { "type": "String" } } }, "failedToRemoveContact": "Failed to remove contact: {error}", "@failedToRemoveContact": { "description": "Error message when contact removal fails", "placeholders": { "error": { "type": "String" } } }, "type": "Type", "@type": { "description": "Contact type label" }, "publicKey": "Public Key", "@publicKey": { "description": "Public key label" }, "lastSeen": "Last Seen", "@lastSeen": { "description": "Last seen label" }, "roomStatus": "Room Status", "@roomStatus": { "description": "Room status section header" }, "loginStatus": "Login Status", "@loginStatus": { "description": "Login status label" }, "notLoggedIn": "Not Logged In", "@notLoggedIn": { "description": "Not logged in status" }, "adminAccess": "Admin Access", "@adminAccess": { "description": "Admin access label" }, "yes": "Yes", "@yes": { "description": "Yes answer" }, "no": "No", "@no": { "description": "No answer" }, "permissions": "Permissions", "@permissions": { "description": "Permissions label" }, "passwordSaved": "Password Saved", "@passwordSaved": { "description": "Password saved label" }, "locationColon": "Location:", "@locationColon": { "description": "Location section header" }, "telemetry": "Telemetry", "@telemetry": { "description": "Telemetry section header" }, "requestingTelemetry": "Requesting telemetry from {name}...", "@requestingTelemetry": { "description": "Status message while requesting telemetry", "placeholders": { "name": { "type": "String" } } }, "voltage": "Voltage", "@voltage": { "description": "Voltage label" }, "battery": "Battery", "@battery": { "description": "Battery label" }, "temperature": "Temperature", "@temperature": { "description": "Temperature label" }, "humidity": "Humidity", "@humidity": { "description": "Humidity label" }, "pressure": "Pressure", "@pressure": { "description": "Pressure label" }, "gpsTelemetry": "GPS (Telemetry)", "@gpsTelemetry": { "description": "GPS from telemetry label" }, "updated": "Updated", "@updated": { "description": "Updated timestamp label" }, "pathResetInfo": "Path reset for {name}. Next message will find a new route.", "@pathResetInfo": { "description": "Info message after path reset", "placeholders": { "name": { "type": "String" } } }, "reLoginToRoom": "Re-Login to Room", "@reLoginToRoom": { "description": "Button to re-login to room" }, "heading": "Heading", "@heading": { "description": "Compass heading label" }, "elevation": "Elevation", "@elevation": { "description": "Elevation/altitude label" }, "accuracy": "Accuracy", "@accuracy": { "description": "GPS accuracy label" }, "filterMarkers": "Filter Markers", "@filterMarkers": { "description": "Title for filter markers dialog" }, "filterMarkersTooltip": "Filter markers", "@filterMarkersTooltip": { "description": "Tooltip for filter button" }, "contactsFilter": "Contacts", "@contactsFilter": { "description": "Filter option for contacts" }, "sarMarkers": "SAR Markers", "@sarMarkers": { "description": "SAR markers section header" }, "foundPerson": "Found Person", "@foundPerson": { "description": "Found person SAR marker type" }, "fire": "Fire", "@fire": { "description": "Fire SAR marker type" }, "stagingArea": "Staging Area", "@stagingArea": { "description": "Staging area SAR marker type" }, "showAll": "Show All", "@showAll": { "description": "Button to show all filters" }, "nearbyContacts": "Nearby Contacts", "@nearbyContacts": { "description": "Title for nearby contacts list in compass" }, "locationUnavailable": "Location unavailable", "@locationUnavailable": { "description": "Message when GPS location is unavailable" }, "ahead": "ahead", "@ahead": { "description": "Relative bearing direction - ahead" }, "degreesRight": "{degrees}° right", "@degreesRight": { "description": "Relative bearing direction - right", "placeholders": { "degrees": { "type": "int" } } }, "degreesLeft": "{degrees}° left", "@degreesLeft": { "description": "Relative bearing direction - left", "placeholders": { "degrees": { "type": "int" } } }, "latLonFormat": "Lat: {latitude} Lon: {longitude}", "@latLonFormat": { "description": "Latitude and longitude display format", "placeholders": { "latitude": { "type": "String" }, "longitude": { "type": "String" } } }, "noContactsYet": "No contacts yet", "@noContactsYet": { "description": "Empty state message when there are no contacts" }, "connectToDeviceToLoadContacts": "Connect to a device to load contacts", "@connectToDeviceToLoadContacts": { "description": "Instruction to connect device to load contacts" }, "teamMembers": "Team Members", "@teamMembers": { "description": "Section header for team members (chat contacts)" }, "repeaters": "Repeaters", "@repeaters": { "description": "Section header for repeater nodes" }, "rooms": "Rooms", "@rooms": { "description": "Section header for rooms/channels" }, "cacheStatistics": "Cache Statistics", "@cacheStatistics": { "description": "Title for cache statistics section" }, "totalTiles": "Total Tiles", "@totalTiles": { "description": "Label for total number of cached tiles" }, "cacheSize": "Cache Size", "@cacheSize": { "description": "Label for cache size in MB" }, "storeName": "Store Name", "@storeName": { "description": "Label for cache store name" }, "noCacheStatistics": "No cache statistics available", "@noCacheStatistics": { "description": "Message when cache statistics are unavailable" }, "downloadRegion": "Download Region", "@downloadRegion": { "description": "Title for download region section" }, "mapLayer": "Map Layer", "@mapLayer": { "description": "Label for map layer selection" }, "regionBounds": "Region Bounds", "@regionBounds": { "description": "Title for region bounds input section" }, "north": "North", "@north": { "description": "Label for north coordinate" }, "south": "South", "@south": { "description": "Label for south coordinate" }, "east": "East", "@east": { "description": "Label for east coordinate" }, "west": "West", "@west": { "description": "Label for west coordinate" }, "zoomLevels": "Zoom Levels", "@zoomLevels": { "description": "Title for zoom levels section" }, "minZoom": "Min: {zoom}", "@minZoom": { "description": "Label for minimum zoom level", "placeholders": { "zoom": { "type": "int" } } }, "maxZoom": "Max: {zoom}", "@maxZoom": { "description": "Label for maximum zoom level", "placeholders": { "zoom": { "type": "int" } } }, "downloadingDots": "Downloading...", "@downloadingDots": { "description": "Status message during download" }, "cancelDownload": "Cancel Download", "@cancelDownload": { "description": "Button to cancel download" }, "downloadRegionButton": "Download Region", "@downloadRegionButton": { "description": "Button to start region download" }, "downloadNote": "Note: Large regions or high zoom levels may take significant time and storage.", "@downloadNote": { "description": "Warning about download size and time" }, "cacheManagement": "Cache Management", "@cacheManagement": { "description": "Title for cache management section" }, "clearAllMaps": "Clear All Maps", "@clearAllMaps": { "description": "Button to clear all cached maps" }, "clearMapsConfirmTitle": "Clear All Maps", "@clearMapsConfirmTitle": { "description": "Title for clear maps confirmation dialog" }, "clearMapsConfirmMessage": "Are you sure you want to delete all downloaded maps? This action cannot be undone.", "@clearMapsConfirmMessage": { "description": "Confirmation message for clearing maps" }, "mapDownloadCompleted": "Map download completed!", "@mapDownloadCompleted": { "description": "Success message after map download" }, "cacheClearedSuccessfully": "Cache cleared successfully!", "@cacheClearedSuccessfully": { "description": "Success message after clearing cache" }, "downloadCancelled": "Download cancelled", "@downloadCancelled": { "description": "Message when download is cancelled" }, "startingDownload": "Starting download...", "@startingDownload": { "description": "Initial status when download begins" }, "downloadingMapTiles": "Downloading map tiles...", "@downloadingMapTiles": { "description": "Status during tile download" }, "downloadCompletedSuccessfully": "Download completed successfully!", "@downloadCompletedSuccessfully": { "description": "Status after successful download" }, "cancellingDownload": "Cancelling download...", "@cancellingDownload": { "description": "Status while cancelling download" }, "errorLoadingStats": "Error loading stats: {error}", "@errorLoadingStats": { "description": "Error message when loading cache stats fails", "placeholders": { "error": { "type": "String" } } }, "downloadFailed": "Download failed: {error}", "@downloadFailed": { "description": "Error message when download fails", "placeholders": { "error": { "type": "String" } } }, "cancelFailed": "Cancel failed: {error}", "@cancelFailed": { "description": "Error message when cancel fails", "placeholders": { "error": { "type": "String" } } }, "clearCacheFailed": "Clear cache failed: {error}", "@clearCacheFailed": { "description": "Error message when clearing cache fails", "placeholders": { "error": { "type": "String" } } }, "minZoomError": "Min zoom: {error}", "@minZoomError": { "description": "Validation error for minimum zoom", "placeholders": { "error": { "type": "String" } } }, "maxZoomError": "Max zoom: {error}", "@maxZoomError": { "description": "Validation error for maximum zoom", "placeholders": { "error": { "type": "String" } } }, "minZoomGreaterThanMax": "Minimum zoom must be less than or equal to maximum zoom", "@minZoomGreaterThanMax": { "description": "Validation error when min zoom > max zoom" }, "selectMapLayer": "Select Map Layer", "@selectMapLayer": { "description": "Title for map layer selection dialog" }, "mapOptions": "Map Options", "@mapOptions": { "description": "Title for map options dialog" }, "showLegend": "Show Legend", "@showLegend": { "description": "Toggle for showing map legend" }, "displayMarkerTypeCounts": "Display marker type counts", "@displayMarkerTypeCounts": { "description": "Description for show legend toggle" }, "rotateMapWithHeading": "Rotate Map with Heading", "@rotateMapWithHeading": { "description": "Toggle for rotating map with compass heading" }, "mapFollowsDirection": "Map follows your direction when moving", "@mapFollowsDirection": { "description": "Description for rotate map toggle" }, "showMapDebugInfo": "Show Map Debug Info", "@showMapDebugInfo": { "description": "Toggle for showing map debug information" }, "displayZoomLevelBounds": "Display zoom level and bounds", "@displayZoomLevelBounds": { "description": "Description for debug info toggle" }, "fullscreenMode": "Fullscreen Mode", "@fullscreenMode": { "description": "Toggle for fullscreen map mode" }, "hideUiFullMapView": "Hide all UI controls for full map view", "@hideUiFullMapView": { "description": "Description for fullscreen mode toggle" }, "openStreetMap": "OpenStreetMap", "@openStreetMap": { "description": "OpenStreetMap layer name" }, "openTopoMap": "OpenTopoMap", "@openTopoMap": { "description": "OpenTopoMap layer name" }, "esriSatellite": "ESRI Satellite", "@esriSatellite": { "description": "ESRI Satellite imagery layer name" }, "downloadVisibleArea": "Download visible area", "@downloadVisibleArea": { "description": "Tooltip for download visible area button" }, "initializingMap": "Initializing map...", "@initializingMap": { "description": "Loading message for map initialization" }, "dragToPosition": "Drag to Position", "@dragToPosition": { "description": "Label when dragging a pin on map" }, "createSarMarker": "Create SAR Marker", "@createSarMarker": { "description": "Label for creating SAR marker from pin" }, "compass": "Compass", "@compass": { "description": "Compass title in detailed compass dialog" }, "navigationAndContacts": "Navigation & Contacts", "@navigationAndContacts": { "description": "Subtitle for compass dialog" }, "sarAlert": "SAR ALERT", "@sarAlert": { "description": "Label for SAR alert badge on messages" }, "messageSentToPublicChannel": "Message sent to public channel", "@messageSentToPublicChannel": { "description": "Success message when message is sent to public channel" }, "pleaseSelectRoomToSendSar": "Please select a room to send SAR marker", "@pleaseSelectRoomToSendSar": { "description": "Error when no room is selected for SAR marker" }, "failedToSendSarMarker": "Failed to send SAR marker: {error}", "@failedToSendSarMarker": { "description": "Error message when SAR marker fails to send", "placeholders": { "error": { "type": "String" } } }, "sarMarkerSentTo": "SAR marker sent to {roomName}", "@sarMarkerSentTo": { "description": "Success message when SAR marker is sent to room", "placeholders": { "roomName": { "type": "String" } } }, "notConnectedCannotSync": "Not connected - cannot sync messages", "@notConnectedCannotSync": { "description": "Warning when trying to sync messages while not connected" }, "syncedMessageCount": "Synced {count} message(s)", "@syncedMessageCount": { "description": "Success message showing number of synced messages", "placeholders": { "count": { "type": "int" } } }, "noNewMessages": "No new messages", "@noNewMessages": { "description": "Info message when no new messages to sync" }, "syncFailed": "Sync failed: {error}", "@syncFailed": { "description": "Error message when sync fails", "placeholders": { "error": { "type": "String" } } }, "failedToResendMessage": "Failed to resend message", "@failedToResendMessage": { "description": "Error when message retry fails" }, "retryingMessage": "Retrying message...", "@retryingMessage": { "description": "Info message when retrying a failed message" }, "retryFailed": "Retry failed: {error}", "@retryFailed": { "description": "Error message when retry fails", "placeholders": { "error": { "type": "String" } } }, "textCopiedToClipboard": "Text copied to clipboard", "@textCopiedToClipboard": { "description": "Success message when text is copied" }, "cannotReplySenderMissing": "Cannot reply: sender information missing", "@cannotReplySenderMissing": { "description": "Error when sender info is missing for reply" }, "cannotReplyContactNotFound": "Cannot reply: contact not found", "@cannotReplyContactNotFound": { "description": "Error when contact not found for reply" }, "messageDeleted": "Message deleted", "@messageDeleted": { "description": "Info message when message is deleted" }, "refreshedContacts": "Refreshed contacts", "@refreshedContacts": { "description": "Success message when contacts are refreshed" }, "justNow": "Just now", "@justNow": { "description": "Time indicator for very recent activity" }, "minutesAgo": "{minutes}m ago", "@minutesAgo": { "description": "Time indicator for minutes ago", "placeholders": { "minutes": { "type": "int" } } }, "hoursAgo": "{hours}h ago", "@hoursAgo": { "description": "Time indicator for hours ago", "placeholders": { "hours": { "type": "int" } } }, "daysAgo": "{days}d ago", "@daysAgo": { "description": "Time indicator for days ago", "placeholders": { "days": { "type": "int" } } }, "secondsAgo": "{seconds}s ago", "@secondsAgo": { "description": "Time indicator for seconds ago", "placeholders": { "seconds": { "type": "int" } } }, "sending": "Sending...", "@sending": { "description": "Delivery status: sending" }, "sent": "Sent", "@sent": { "description": "Delivery status: sent" }, "delivered": "Delivered", "@delivered": { "description": "Delivery status: delivered" }, "deliveredWithTime": "Delivered ({time}ms)", "@deliveredWithTime": { "description": "Delivery status with round-trip time", "placeholders": { "time": { "type": "int" } } }, "failed": "Failed", "@failed": { "description": "Delivery status: failed" }, "sarMarkerFoundPerson": "Found Person", "@sarMarkerFoundPerson": { "description": "SAR marker type: found person" }, "sarMarkerFire": "Fire Location", "@sarMarkerFire": { "description": "SAR marker type: fire" }, "sarMarkerStagingArea": "Staging Area", "@sarMarkerStagingArea": { "description": "SAR marker type: staging area" }, "sarMarkerObject": "Object Found", "@sarMarkerObject": { "description": "SAR marker type: object" }, "from": "From", "@from": { "description": "Sender label in notifications" }, "coordinates": "Coordinates", "@coordinates": { "description": "Coordinates label" }, "tapToViewOnMap": "Tap to view on map", "@tapToViewOnMap": { "description": "Notification action text" } }