// ignore: unused_import import 'package:intl/intl.dart' as intl; import 'app_localizations.dart'; // ignore_for_file: type=lint /// The translations for English (`en`). class AppLocalizationsEn extends AppLocalizations { AppLocalizationsEn([String locale = 'en']) : super(locale); @override String get appTitle => 'MeshCore SAR'; @override String get messages => 'Messages'; @override String get contacts => 'Contacts'; @override String get map => 'Map'; @override String get settings => 'Settings'; @override String get connect => 'Connect'; @override String get disconnect => 'Disconnect'; @override String get noDevicesFound => 'No devices found'; @override String get scanAgain => 'Scan Again'; @override String get tapToConnect => 'Tap to connect'; @override String get deviceNotConnected => 'Device not connected'; @override String get locationPermissionDenied => 'Location permission denied'; @override String get locationPermissionPermanentlyDenied => 'Location permission permanently denied. Please enable in Settings.'; @override String get locationPermissionRequired => 'Location permission is required for GPS tracking and team coordination. You can enable it later in Settings.'; @override String get locationServicesDisabled => 'Location services are disabled. Please enable them in Settings.'; @override String get failedToGetGpsLocation => 'Failed to get GPS location'; @override String failedToAdvertise(String error) { return 'Failed to advertise: $error'; } @override String get cancelReconnection => 'Cancel reconnection'; @override String get general => 'General'; @override String get theme => 'Theme'; @override String get chooseTheme => 'Choose Theme'; @override String get light => 'Light'; @override String get dark => 'Dark'; @override String get blueLightTheme => 'Blue light theme'; @override String get blueDarkTheme => 'Blue dark theme'; @override String get sarRed => 'SAR Red'; @override String get alertEmergencyMode => 'Alert/Emergency mode'; @override String get sarGreen => 'SAR Green'; @override String get safeAllClearMode => 'Safe/All Clear mode'; @override String get autoSystem => 'Auto (System)'; @override String get followSystemTheme => 'Follow system theme'; @override String get showRxTxIndicators => 'Show RX/TX Indicators'; @override String get displayPacketActivity => 'Display packet activity indicators in top bar'; @override String get disableMap => 'Disable Map'; @override String get disableMapDescription => 'Hide the map tab to reduce battery usage'; @override String get language => 'Language'; @override String get chooseLanguage => 'Choose Language'; @override String get save => 'Save'; @override String get cancel => 'Cancel'; @override String get close => 'Close'; @override String get about => 'About'; @override String get appVersion => 'App Version'; @override String get appName => 'App Name'; @override String get aboutMeshCoreSar => 'About MeshCore SAR'; @override String get 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'; @override String get technologiesUsed => 'Technologies Used:'; @override String get 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'; @override String get moreInfo => 'More Info'; @override String get packageName => 'Package Name'; @override String get sampleData => 'Sample Data'; @override String get sampleDataDescription => 'Load or clear sample contacts, channel messages, and SAR markers for testing'; @override String get loadSampleData => 'Load Sample Data'; @override String get clearAllData => 'Clear All Data'; @override String get clearAllDataConfirmTitle => 'Clear All Data'; @override String get clearAllDataConfirmMessage => 'This will clear all contacts and SAR markers. Are you sure?'; @override String get clear => 'Clear'; @override String loadedSampleData( int teamCount, int channelCount, int sarCount, int messageCount, ) { return 'Loaded $teamCount team members, $channelCount channels, $sarCount SAR markers, $messageCount messages'; } @override String failedToLoadSampleData(String error) { return 'Failed to load sample data: $error'; } @override String get allDataCleared => 'All data cleared'; @override String get failedToStartBackgroundTracking => 'Failed to start background tracking. Check permissions and BLE connection.'; @override String locationBroadcast(String latitude, String longitude) { return 'Location broadcast: $latitude, $longitude'; } @override String get defaultPinInfo => 'The default pin for devices without a screen is 123456. Trouble pairing? Forget the bluetooth device in system settings.'; @override String get noMessagesYet => 'No messages yet'; @override String get pullDownToSync => 'Pull down to sync messages'; @override String get deleteContact => 'Delete Contact'; @override String get delete => 'Delete'; @override String get viewOnMap => 'View on Map'; @override String get refresh => 'Refresh'; @override String get resetPath => 'Reset Path (Re-route)'; @override String get publicKeyCopied => 'Public key copied to clipboard'; @override String copiedToClipboard(String label) { return '$label copied to clipboard'; } @override String get pleaseEnterPassword => 'Please enter a password'; @override String failedToSyncContacts(String error) { return 'Failed to sync contacts: $error'; } @override String get loggedInSuccessfully => 'Logged in successfully! Waiting for room messages...'; @override String get loginFailed => 'Login failed - incorrect password'; @override String loggingIn(String roomName) { return 'Logging in to $roomName...'; } @override String failedToSendLogin(String error) { return 'Failed to send login: $error'; } @override String get lowLocationAccuracy => 'Low Location Accuracy'; @override String get continue_ => 'Continue'; @override String get sendSarMarker => 'Send SAR marker'; @override String get deleteDrawing => 'Delete Drawing'; @override String get drawingTools => 'Drawing Tools'; @override String get drawLine => 'Draw Line'; @override String get drawLineDesc => 'Draw a freehand line on the map'; @override String get drawRectangle => 'Draw Rectangle'; @override String get drawRectangleDesc => 'Draw a rectangular area on the map'; @override String get measureDistance => 'Measure Distance'; @override String get measureDistanceDesc => 'Long press two points to measure'; @override String get clearMeasurement => 'Clear Measurement'; @override String distanceLabel(String distance) { return 'Distance: $distance'; } @override String get longPressForSecondPoint => 'Long press for second point'; @override String get longPressToStartMeasurement => 'Long press to set first point'; @override String get longPressToStartNewMeasurement => 'Long press to start new measurement'; @override String get shareDrawings => 'Share Drawings'; @override String get clearAllDrawings => 'Clear All Drawings'; @override String get completeLine => 'Complete Line'; @override String broadcastDrawingsToTeam(int count, String plural) { return 'Broadcast $count drawing$plural to team'; } @override String removeAllDrawings(int count, String plural) { return 'Remove all $count drawing$plural'; } @override String deleteAllDrawingsConfirm(int count, String plural) { return 'Delete all $count drawing$plural from the map?'; } @override String get drawing => 'Drawing'; @override String shareDrawingsCount(int count, String plural) { return 'Share $count Drawing$plural'; } @override String get showReceivedDrawings => 'Show Received Drawings'; @override String get showingAllDrawings => 'Showing all drawings'; @override String get showingOnlyYourDrawings => 'Showing only your drawings'; @override String get showSarMarkers => 'Show SAR Markers'; @override String get showingSarMarkers => 'Showing SAR markers'; @override String get hidingSarMarkers => 'Hiding SAR markers'; @override String get clearAll => 'Clear All'; @override String get publicChannel => 'Public Channel'; @override String get broadcastToAll => 'Broadcast to all nearby nodes (ephemeral)'; @override String get storedPermanently => 'Stored permanently in room'; @override String get notConnectedToDevice => 'Not connected to device'; @override String get typeYourMessage => 'Type your message...'; @override String get quickLocationMarker => 'Quick location marker'; @override String get markerType => 'Marker Type'; @override String get sendTo => 'Send To'; @override String get noDestinationsAvailable => 'No destinations available.'; @override String get selectDestination => 'Select destination...'; @override String get ephemeralBroadcastInfo => 'Ephemeral: Broadcast over-the-air only. Not stored - nodes must be online.'; @override String get persistentRoomInfo => 'Persistent: Stored immutably in room. Synced automatically and preserved offline.'; @override String get location => 'Location'; @override String get fromMap => 'From Map'; @override String get gettingLocation => 'Getting location...'; @override String get locationError => 'Location Error'; @override String get retry => 'Retry'; @override String get refreshLocation => 'Refresh location'; @override String accuracyMeters(int accuracy) { return 'Accuracy: ±${accuracy}m'; } @override String get notesOptional => 'Notes (optional)'; @override String get addAdditionalInformation => 'Add additional information...'; @override String lowAccuracyWarning(int accuracy) { return 'Location accuracy is ±${accuracy}m. This may not be accurate enough for SAR operations.\n\nContinue anyway?'; } @override String get loginToRoom => 'Login to Room'; @override String get enterPasswordInfo => 'Enter the password to access this room. The password will be saved for future use.'; @override String get password => 'Password'; @override String get enterRoomPassword => 'Enter room password'; @override String get loggingInDots => 'Logging in...'; @override String get login => 'Login'; @override String failedToAddRoom(String error) { return 'Failed to add room to device: $error\n\nThe room may not have advertised yet.\nTry waiting for the room to broadcast.'; } @override String get direct => 'Direct'; @override String get flood => 'Flood'; @override String get loggedIn => 'Logged In'; @override String get noGpsData => 'No GPS data'; @override String get distance => 'Distance'; @override String directPingTimeout(String name) { return 'Direct ping timeout - retrying $name with flooding...'; } @override String pingFailed(String name) { return 'Ping failed to $name - no response received'; } @override String deleteContactConfirmation(String name) { return 'Are you sure you want to delete \"$name\"?\n\nThis will remove the contact from both the app and the companion radio device.'; } @override String failedToRemoveContact(String error) { return 'Failed to remove contact: $error'; } @override String get type => 'Type'; @override String get publicKey => 'Public Key'; @override String get lastSeen => 'Last Seen'; @override String get roomStatus => 'Room Status'; @override String get loginStatus => 'Login Status'; @override String get notLoggedIn => 'Not Logged In'; @override String get adminAccess => 'Admin Access'; @override String get yes => 'Yes'; @override String get no => 'No'; @override String get permissions => 'Permissions'; @override String get passwordSaved => 'Password Saved'; @override String get locationColon => 'Location:'; @override String get telemetry => 'Telemetry'; @override String get voltage => 'Voltage'; @override String get battery => 'Battery'; @override String get temperature => 'Temperature'; @override String get humidity => 'Humidity'; @override String get pressure => 'Pressure'; @override String get gpsTelemetry => 'GPS (Telemetry)'; @override String get updated => 'Updated'; @override String pathResetInfo(String name) { return 'Path reset for $name. Next message will find a new route.'; } @override String get reLoginToRoom => 'Re-Login to Room'; @override String get heading => 'Heading'; @override String get elevation => 'Elevation'; @override String get accuracy => 'Accuracy'; @override String get bearing => 'Bearing'; @override String get direction => 'Direction'; @override String get filterMarkers => 'Filter Markers'; @override String get filterMarkersTooltip => 'Filter markers'; @override String get contactsFilter => 'Contacts'; @override String get repeatersFilter => 'Repeaters'; @override String get sarMarkers => 'SAR Markers'; @override String get foundPerson => 'Found Person'; @override String get fire => 'Fire'; @override String get stagingArea => 'Staging Area'; @override String get showAll => 'Show All'; @override String get locationUnavailable => 'Location unavailable'; @override String get ahead => 'ahead'; @override String degreesRight(int degrees) { return '$degrees° right'; } @override String degreesLeft(int degrees) { return '$degrees° left'; } @override String latLonFormat(String latitude, String longitude) { return 'Lat: $latitude Lon: $longitude'; } @override String get noContactsYet => 'No contacts yet'; @override String get connectToDeviceToLoadContacts => 'Connect to a device to load contacts'; @override String get teamMembers => 'Team Members'; @override String get repeaters => 'Repeaters'; @override String get rooms => 'Rooms'; @override String get channels => 'Channels'; @override String get selectMapLayer => 'Select Map Layer'; @override String get openStreetMap => 'OpenStreetMap'; @override String get openTopoMap => 'OpenTopoMap'; @override String get esriSatellite => 'ESRI Satellite'; @override String get googleHybrid => 'Google Hybrid'; @override String get googleRoadmap => 'Google Roadmap'; @override String get googleTerrain => 'Google Terrain'; @override String get dragToPosition => 'Drag to Position'; @override String get createSarMarker => 'Create SAR Marker'; @override String get compass => 'Compass'; @override String get navigationAndContacts => 'Navigation & Contacts'; @override String get sarAlert => 'SAR ALERT'; @override String get textCopiedToClipboard => 'Text copied to clipboard'; @override String get cannotReplySenderMissing => 'Cannot reply: sender information missing'; @override String get cannotReplyContactNotFound => 'Cannot reply: contact not found'; @override String get copyText => 'Copy text'; @override String get saveAsTemplate => 'Save as Template'; @override String get templateSaved => 'Template saved successfully'; @override String get templateAlreadyExists => 'Template with this emoji already exists'; @override String get deleteMessage => 'Delete message'; @override String get deleteMessageConfirmation => 'Are you sure you want to delete this message?'; @override String get shareLocation => 'Share location'; @override String shareLocationText( String markerInfo, String lat, String lon, String url, ) { return '$markerInfo\n\nCoordinates: $lat, $lon\n\nGoogle Maps: $url'; } @override String get sarLocationShare => 'SAR Location'; @override String get justNow => 'Just now'; @override String minutesAgo(int minutes) { return '${minutes}m ago'; } @override String hoursAgo(int hours) { return '${hours}h ago'; } @override String daysAgo(int days) { return '${days}d ago'; } @override String secondsAgo(int seconds) { return '${seconds}s ago'; } @override String get sending => 'Sending...'; @override String get sent => 'Sent'; @override String get delivered => 'Delivered'; @override String deliveredWithTime(int time) { return 'Delivered (${time}ms)'; } @override String get failed => 'Failed'; @override String get broadcast => 'Broadcast'; @override String deliveredToContacts(int delivered, int total) { return 'Delivered to $delivered/$total contacts'; } @override String get allDelivered => 'All delivered'; @override String get recipientDetails => 'Recipient Details'; @override String get pending => 'Pending'; @override String get sarMarkerFoundPerson => 'Found Person'; @override String get sarMarkerFire => 'Fire Location'; @override String get sarMarkerStagingArea => 'Staging Area'; @override String get sarMarkerObject => 'Object Found'; @override String get from => 'From'; @override String get coordinates => 'Coordinates'; @override String get tapToViewOnMap => 'Tap to view on map'; @override String get radioSettings => 'Radio Settings'; @override String get frequencyMHz => 'Frequency (MHz)'; @override String get frequencyExample => 'e.g., 869.618'; @override String get bandwidth => 'Bandwidth'; @override String get spreadingFactor => 'Spreading Factor'; @override String get codingRate => 'Coding Rate'; @override String get txPowerDbm => 'TX Power (dBm)'; @override String maxPowerDbm(int power) { return 'Max: $power dBm'; } @override String get you => 'You'; @override String exportFailed(String error) { return 'Export failed: $error'; } @override String importFailed(String error) { return 'Import failed: $error'; } @override String get unknown => 'Unknown'; @override String get onlineLayers => 'Online Layers'; @override String get locationTrail => 'Location Trail'; @override String get showTrailOnMap => 'Show Trail on Map'; @override String get trailVisible => 'Trail is visible on the map'; @override String get trailHiddenRecording => 'Trail is hidden (still recording)'; @override String get duration => 'Duration'; @override String get points => 'Points'; @override String get clearTrail => 'Clear Trail'; @override String get clearTrailQuestion => 'Clear Trail?'; @override String get clearTrailConfirmation => 'Are you sure you want to clear the current location trail? This action cannot be undone.'; @override String get noTrailRecorded => 'No trail recorded yet'; @override String get startTrackingToRecord => 'Start location tracking to record your trail'; @override String get trailControls => 'Trail Controls'; @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'; @override String get bleName => 'BLE Name'; @override String get meshName => 'Mesh Name'; @override String get notSet => 'Not set'; @override String get model => 'Model'; @override String get version => 'Version'; @override String get buildDate => 'Build Date'; @override String get firmware => 'Firmware'; @override String get maxContacts => 'Max Contacts'; @override String get maxChannels => 'Max Channels'; @override String get publicInfo => 'Public Info'; @override String get meshNetworkName => 'Mesh Network Name'; @override String get nameBroadcastInMesh => 'Name broadcast in mesh advertisements'; @override String get telemetryAndLocationSharing => 'Telemetry & Location Sharing'; @override String get lat => 'Lat'; @override String get lon => 'Lon'; @override String get useCurrentLocation => 'Use current location'; @override String get noneUnknown => 'None/Unknown'; @override String get chatNode => 'Chat Node'; @override String get repeater => 'Repeater'; @override String get roomChannel => 'Room/Channel'; @override String typeNumber(int number) { return 'Type $number'; } @override String copiedToClipboardShort(String label) { return 'Copied $label to clipboard'; } @override String failedToSave(String error) { return 'Failed to save: $error'; } @override String failedToGetLocation(String error) { return 'Failed to get location: $error'; } @override String get sarTemplates => 'SAR Templates'; @override String get manageSarTemplates => 'Manage cursor on target templates'; @override String get addTemplate => 'Add Template'; @override String get editTemplate => 'Edit Template'; @override String get deleteTemplate => 'Delete Template'; @override String get templateName => 'Template Name'; @override String get templateNameHint => 'e.g. Found Person'; @override String get templateEmoji => 'Emoji'; @override String get emojiRequired => 'Emoji is required'; @override String get nameRequired => 'Name is required'; @override String get templateDescription => 'Description (Optional)'; @override String get templateDescriptionHint => 'Add additional context...'; @override String get templateColor => 'Color'; @override String get previewFormat => 'Preview (SAR Message Format)'; @override String get importFromClipboard => 'Import'; @override String get exportToClipboard => 'Export'; @override String deleteTemplateConfirmation(String name) { return 'Delete template \'$name\'?'; } @override String get templateAdded => 'Template added'; @override String get templateUpdated => 'Template updated'; @override String get templateDeleted => 'Template deleted'; @override String templatesImported(int count) { String _temp0 = intl.Intl.pluralLogic( count, locale: localeName, other: 'Imported $count templates', one: 'Imported 1 template', zero: 'No templates imported', ); return '$_temp0'; } @override String templatesExported(int count) { String _temp0 = intl.Intl.pluralLogic( count, locale: localeName, other: 'Exported $count templates to clipboard', one: 'Exported 1 template to clipboard', ); return '$_temp0'; } @override String get resetToDefaults => 'Reset to Defaults'; @override String get resetToDefaultsConfirmation => 'This will delete all custom templates and restore the 4 default templates. Continue?'; @override String get reset => 'Reset'; @override String get resetComplete => 'Templates reset to defaults'; @override String get noTemplates => 'No templates available'; @override String get tapAddToCreate => 'Tap + to create your first template'; @override String get ok => 'OK'; @override String get permissionsSection => 'Permissions'; @override String get locationPermission => 'Location Permission'; @override String get checking => 'Checking...'; @override String get locationPermissionGrantedAlways => 'Granted (Always)'; @override String get locationPermissionGrantedWhileInUse => 'Granted (While In Use)'; @override String get locationPermissionDeniedTapToRequest => 'Denied - Tap to request'; @override String get locationPermissionPermanentlyDeniedOpenSettings => 'Permanently Denied - Open Settings'; @override String get locationPermissionDialogContent => 'Location permission is permanently denied. Please enable it in your device settings to use GPS tracking and location sharing features.'; @override String get openSettings => 'Open Settings'; @override String get locationPermissionGranted => 'Location permission granted!'; @override String get locationPermissionRequiredForGps => 'Location permission is required for GPS tracking and location sharing.'; @override String get locationPermissionAlreadyGranted => 'Location permission is already granted.'; @override String get sarNavyBlue => 'SAR Navy Blue'; @override String get sarNavyBlueDescription => 'Professional/Operations Mode'; @override String get selectRecipient => 'Select Recipient'; @override String get broadcastToAllNearby => 'Broadcast to all nearby'; @override String get searchRecipients => 'Search recipients...'; @override String get noContactsFound => 'No contacts found'; @override String get noRoomsFound => 'No rooms found'; @override String get noRecipientsAvailable => 'No recipients available'; @override String get noChannelsFound => 'No channels found'; @override String get newMessage => 'New message'; @override String get channel => 'Channel'; @override String get samplePoliceLead => 'Police Lead'; @override String get sampleDroneOperator => 'Drone Operator'; @override String get sampleFirefighterAlpha => 'Firefighter'; @override String get sampleMedicCharlie => 'Medic'; @override String get sampleCommandDelta => 'Command'; @override String get sampleFireEngine => 'Fire Engine'; @override String get sampleAirSupport => 'Air Support'; @override String get sampleBaseCoordinator => 'Base Coordinator'; @override String get channelEmergency => 'Emergency'; @override String get channelCoordination => 'Coordination'; @override String get channelUpdates => 'Updates'; @override String get sampleTeamMember => 'Sample Team Member'; @override String get sampleScout => 'Sample Scout'; @override String get sampleBase => 'Sample Base'; @override String get sampleSearcher => 'Sample Searcher'; @override String get sampleObjectBackpack => ' Backpack found - blue color'; @override String get sampleObjectVehicle => ' Vehicle abandoned - check for owner'; @override String get sampleObjectCamping => ' Camping equipment discovered'; @override String get sampleObjectTrailMarker => ' Trail marker found off-path'; @override String get sampleMsgAllTeamsCheckIn => 'All teams check in'; @override String get sampleMsgWeatherUpdate => 'Weather update: Clear skies, temp 18°C'; @override String get sampleMsgBaseCamp => 'Base camp established at staging area'; @override String get sampleMsgTeamAlpha => 'Team moving to sector 2'; @override String get sampleMsgRadioCheck => 'Radio check - all stations respond'; @override String get sampleMsgWaterSupply => 'Water supply available at checkpoint 3'; @override String get sampleMsgTeamBravo => 'Team reporting: sector 1 clear'; @override String get sampleMsgEtaRallyPoint => 'ETA to rally point: 15 minutes'; @override String get sampleMsgSupplyDrop => 'Supply drop confirmed for 14:00'; @override String get sampleMsgDroneSurvey => 'Drone survey completed - no findings'; @override String get sampleMsgTeamCharlie => 'Team requesting backup'; @override String get sampleMsgRadioDiscipline => 'All units: maintain radio discipline'; @override String get sampleMsgUrgentMedical => 'URGENT: Medical assistance needed at sector 4'; @override String get sampleMsgAdultMale => ' Adult male, conscious'; @override String get sampleMsgFireSpotted => 'Fire spotted - coordinates incoming'; @override String get sampleMsgSpreadingRapidly => ' Spreading rapidly!'; @override String get sampleMsgPriorityHelicopter => 'PRIORITY: Need helicopter support'; @override String get sampleMsgMedicalTeamEnRoute => 'Medical team en route to your location'; @override String get sampleMsgEvacHelicopter => 'Evac helicopter ETA 10 minutes'; @override String get sampleMsgEmergencyResolved => 'Emergency resolved - all clear'; @override String get sampleMsgEmergencyStagingArea => ' Emergency staging area'; @override String get sampleMsgEmergencyServices => 'Emergency services notified and responding'; @override String get sampleAlphaTeamLead => 'Team Lead'; @override String get sampleBravoScout => 'Scout'; @override String get sampleCharlieMedic => 'Medic'; @override String get sampleDeltaNavigator => 'Navigator'; @override String get sampleEchoSupport => 'Support'; @override String get sampleBaseCommand => 'Base Command'; @override String get sampleFieldCoordinator => 'Field Coordinator'; @override String get sampleMedicalTeam => 'Medical Team'; @override String get mapDrawing => 'Map Drawing'; @override String get navigateToDrawing => 'Navigate to Drawing'; @override String get copyCoordinates => 'Copy Coordinates'; @override String get hideFromMap => 'Hide from Map'; @override String get lineDrawing => 'Line Drawing'; @override String get rectangleDrawing => 'Rectangle Drawing'; @override String get manualCoordinates => 'Manual Coordinates'; @override String get enterCoordinatesManually => 'Enter coordinates manually'; @override String get latitudeLabel => 'Latitude'; @override String get longitudeLabel => 'Longitude'; @override String get exampleCoordinates => 'Example: 46.0569, 14.5058'; @override String get shareDrawing => 'Share Drawing'; @override String get shareWithAllNearbyDevices => 'Share with all nearby devices'; @override String get shareToRoom => 'Share to Room'; @override String get sendToPersistentStorage => 'Send to persistent room storage'; @override String get deleteDrawingConfirm => 'Are you sure you want to delete this drawing?'; @override String get drawingDeleted => 'Drawing deleted'; @override String yourDrawingsCount(int count) { return 'Your Drawings ($count)'; } @override String get shared => 'Shared'; @override String get line => 'Line'; @override String get rectangle => 'Rectangle'; @override String get updateAvailable => 'Update Available'; @override String get currentVersion => 'Current'; @override String get latestVersion => 'Latest'; @override String get downloadUpdate => 'Download'; @override String get updateLater => 'Later'; @override String get cadastralParcels => 'Cadastral Parcels'; @override String get forestRoads => 'Forest Roads'; @override String get wmsOverlays => 'WMS Overlays'; @override String get hikingTrails => 'Hiking Trails'; @override String get mainRoads => 'Main Roads'; @override String get houseNumbers => 'House Numbers'; @override String get fireHazardZones => 'Fire Hazard Zones'; @override String get historicalFires => 'Historical Fires'; @override String get firebreaks => 'Firebreaks'; @override String get krasFireZones => 'Kras Fire Zones'; @override String get placeNames => 'Place Names'; @override String get municipalityBorders => 'Municipality Borders'; @override String get topographicMap => 'Topographic Map 1:25000'; @override String get recentMessages => 'Recent Messages'; @override String get addChannel => 'Add Channel'; @override String get channelName => 'Channel Name'; @override String get channelNameHint => 'e.g., Rescue Team Alpha'; @override String get channelSecret => 'Channel Secret'; @override String get channelSecretHint => 'Shared password for this channel'; @override String get channelSecretHelp => 'This secret must be shared with all team members who need access to this channel'; @override String get channelTypesInfo => 'Hash channels (#team): Secret auto-generated from name. Same name = same channel across devices.\n\nPrivate channels: Use explicit secret. Only those with the secret can join.'; @override String get hashChannelInfo => 'Hash channel: Secret will be auto-generated from the channel name. Anyone using the same name will join the same channel.'; @override String get channelNameRequired => 'Channel name is required'; @override String get channelNameTooLong => 'Channel name must be 31 characters or less'; @override String get channelSecretRequired => 'Channel secret is required'; @override String get channelSecretTooLong => 'Channel secret must be 32 characters or less'; @override String get invalidAsciiCharacters => 'Only ASCII characters are allowed'; @override String get channelCreatedSuccessfully => 'Channel created successfully'; @override String channelCreationFailed(String error) { return 'Failed to create channel: $error'; } @override String get deleteChannel => 'Delete Channel'; @override String deleteChannelConfirmation(String channelName) { return 'Are you sure you want to delete channel \"$channelName\"? This action cannot be undone.'; } @override String get channelDeletedSuccessfully => 'Channel deleted successfully'; @override String channelDeletionFailed(String error) { return 'Failed to delete channel: $error'; } @override String get createChannel => 'Create Channel'; @override String get wizardBack => 'Back'; @override String get wizardSkip => 'Skip'; @override String get wizardNext => 'Next'; @override String get wizardGetStarted => 'Get Started'; @override String get wizardWelcomeTitle => 'Welcome to MeshCore SAR'; @override String get wizardWelcomeDescription => 'A powerful off-grid communication tool for search and rescue operations. Connect with your team using mesh radio technology when traditional networks are unavailable.'; @override String get wizardConnectingTitle => 'Connecting to Your Radio'; @override String get wizardConnectingDescription => 'Connect your smartphone to a MeshCore radio device via Bluetooth to start communicating off-grid.'; @override String get wizardConnectingFeature1 => 'Scan for nearby MeshCore devices'; @override String get wizardConnectingFeature2 => 'Pair with your radio via Bluetooth'; @override String get wizardConnectingFeature3 => 'Works completely offline - no internet required'; @override String get wizardChannelTitle => 'Channels'; @override String get wizardChannelDescription => 'Broadcast messages to everyone on a channel, perfect for team-wide announcements and coordination.'; @override String get wizardChannelFeature1 => 'Public Channel for general team communication'; @override String get wizardChannelFeature2 => 'Create custom channels for specific groups'; @override String get wizardChannelFeature3 => 'Messages are automatically relayed by the mesh'; @override String get wizardContactsTitle => 'Contacts'; @override String get wizardContactsDescription => 'Your team members appear automatically as they join the mesh network. Send them direct messages or view their location.'; @override String get wizardContactsFeature1 => 'Contacts discovered automatically'; @override String get wizardContactsFeature2 => 'Send private direct messages'; @override String get wizardContactsFeature3 => 'View battery level and last seen time'; @override String get wizardMapTitle => 'Map & Location'; @override String get wizardMapDescription => 'Track your team in real-time and mark important locations for search and rescue operations.'; @override String get wizardMapFeature1 => 'SAR markers for found persons, fires, and staging areas'; @override String get wizardMapFeature2 => 'Real-time GPS tracking of team members'; @override String get wizardMapFeature3 => 'Download offline maps for remote areas'; @override String get wizardMapFeature4 => 'Draw shapes and share tactical information'; @override String get viewWelcomeTutorial => 'View Welcome Tutorial'; @override String get allTeamContacts => 'All Team Contacts'; @override String directMessagesInfo(int count) { return 'Direct messages with ACKs. Sent to $count team members.'; } @override String sarMarkerSentToContacts(int count) { return 'SAR marker sent to $count contacts'; } @override String get noContactsAvailable => 'No team contacts available'; @override String get reply => 'Reply'; @override String get technicalDetails => 'Technical details'; @override String get messageTechnicalDetails => 'Message technical details'; @override String get linkQuality => 'Link quality'; @override String get delivery => 'Delivery'; @override String get status => 'Status'; @override String get expectedAckTag => 'Expected ACK tag'; @override String get roundTrip => 'Round-trip'; @override String get retryAttempt => 'Retry attempt'; @override String get floodFallback => 'Flood fallback'; @override String get identity => 'Identity'; @override String get messageId => 'Message ID'; @override String get sender => 'Sender'; @override String get senderKey => 'Sender key'; @override String get recipient => 'Recipient'; @override String get recipientKey => 'Recipient key'; @override String get voice => 'Voice'; @override String get voiceId => 'Voice ID'; @override String get envelope => 'Envelope'; @override String get sessionProgress => 'Session progress'; @override String get complete => 'Complete'; @override String get rawDump => 'Raw dump'; @override String get cannotRetryMissingRecipient => 'Cannot retry: recipient information missing'; @override String get voiceUnavailable => 'Voice unavailable right now'; @override String get requestingVoice => 'Requesting voice'; }