Files
meshcore-sar_android/lib/l10n/app_localizations_en.dart
Janez T 30bd3315aa Add WMS overlays for hiking trails, main roads, house numbers, fire hazard zones, historical fires, firebreaks, Kras fire zones, place names, and municipality borders
- Updated localization files for German, English, Spanish, French, Croatian, Italian, and Slovenian to include new overlay labels.
- Implemented new WMS layers in the map provider and map tab for displaying hiking trails, main roads, house numbers, fire hazard zones, historical fires, firebreaks, Kras fire zones, place names, and municipality borders.
- Added toggle functionality for each new overlay in the map provider.
- Enhanced the map tab UI to include checkboxes for the new overlays, allowing users to enable or disable them.
- Integrated the new WMS layers into the map rendering logic.
2025-10-28 22:26:35 +01:00

2164 lines
49 KiB
Dart

// 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 scanningForDevices => 'Scanning for devices...';
@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 advertisedAtLocation(String latitude, String longitude) {
return 'Advertised at $latitude, $longitude';
}
@override
String failedToAdvertise(String error) {
return 'Failed to advertise: $error';
}
@override
String reconnecting(int attempt, int max) {
return 'Reconnecting... ($attempt/$max)';
}
@override
String get cancelReconnection => 'Cancel reconnection';
@override
String get mapManagement => 'Map Management';
@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 simpleMode => 'Simple Mode';
@override
String get simpleModeDescription =>
'Hide non-essential information in messages and contacts';
@override
String get language => 'Language';
@override
String get chooseLanguage => 'Choose Language';
@override
String get english => 'English';
@override
String get slovenian => 'Slovenian';
@override
String get croatian => 'Croatian';
@override
String get german => 'German';
@override
String get spanish => 'Spanish';
@override
String get french => 'French';
@override
String get italian => 'Italian';
@override
String get locationBroadcasting => 'Location Broadcasting';
@override
String get autoLocationTracking => 'Auto Location Tracking';
@override
String get automaticallyBroadcastPosition =>
'Automatically broadcast position updates';
@override
String get configureTracking => 'Configure Tracking';
@override
String get distanceAndTimeThresholds => 'Distance and time thresholds';
@override
String get locationTrackingConfiguration => 'Location Tracking Configuration';
@override
String get configureWhenLocationBroadcasts =>
'Configure when location broadcasts are sent to the mesh network';
@override
String get minimumDistance => 'Minimum Distance';
@override
String broadcastAfterMoving(String distance) {
return 'Broadcast only after moving $distance meters';
}
@override
String get maximumDistance => 'Maximum Distance';
@override
String alwaysBroadcastAfterMoving(String distance) {
return 'Always broadcast after moving $distance meters';
}
@override
String get minimumTimeInterval => 'Minimum Time Interval';
@override
String alwaysBroadcastEvery(String duration) {
return 'Always broadcast every $duration';
}
@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 learnMoreAbout => 'Learn more about MeshCore SAR';
@override
String get developer => 'Developer';
@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 sendDirectMessage => 'Send';
@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 sentDrawingsToRoom(int count, String plural, String roomName) {
return 'Sent $count map drawing$plural to $roomName';
}
@override
String sharedDrawingsToRoom(
int success,
int total,
String plural,
String roomName,
) {
return 'Shared $success/$total drawing$plural to $roomName';
}
@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 noLocalDrawings => 'No local drawings to share';
@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 drawingsSentToPublicChannel(int count, String plural) {
return 'Sent $count map drawing$plural to Public Channel';
}
@override
String drawingsSharedToPublicChannel(int success, int total) {
return 'Shared $success/$total drawings to Public Channel';
}
@override
String get notConnectedToDevice => 'Not connected to device';
@override
String get directMessage => 'Direct Message';
@override
String directMessageSentTo(String contactName) {
return 'Direct message sent to $contactName';
}
@override
String failedToSend(String error) {
return 'Failed to send: $error';
}
@override
String directMessageInfo(String contactName) {
return 'This message will be sent directly to $contactName. It will also appear in the main messages feed.';
}
@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 myLocation => 'My 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 admin => 'Admin';
@override
String get loggedIn => 'Logged In';
@override
String get noGpsData => 'No GPS data';
@override
String get distance => 'Distance';
@override
String pingingDirect(String name) {
return 'Pinging $name (direct via path)...';
}
@override
String pingingFlood(String name) {
return 'Pinging $name (flooding - no path)...';
}
@override
String directPingTimeout(String name) {
return 'Direct ping timeout - retrying $name with flooding...';
}
@override
String pingSuccessful(String name, String fallback) {
return 'Ping successful to $name$fallback';
}
@override
String get viaFloodingFallback => ' (via flooding fallback)';
@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 removingContact(String name) {
return 'Removing $name...';
}
@override
String contactRemoved(String name) {
return 'Contact \"$name\" removed';
}
@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 requestingTelemetry(String name) {
return 'Requesting telemetry from $name...';
}
@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 nearbyContacts => 'Nearby Contacts';
@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 cacheStatistics => 'Cache Statistics';
@override
String get totalTiles => 'Total Tiles';
@override
String get cacheSize => 'Cache Size';
@override
String get storeName => 'Store Name';
@override
String get noCacheStatistics => 'No cache statistics available';
@override
String get downloadRegion => 'Download Region';
@override
String get mapLayer => 'Map Layer';
@override
String get regionBounds => 'Region Bounds';
@override
String get north => 'North';
@override
String get south => 'South';
@override
String get east => 'East';
@override
String get west => 'West';
@override
String get zoomLevels => 'Zoom Levels';
@override
String minZoom(int zoom) {
return 'Min: $zoom';
}
@override
String maxZoom(int zoom) {
return 'Max: $zoom';
}
@override
String get downloadingDots => 'Downloading...';
@override
String get cancelDownload => 'Cancel Download';
@override
String get downloadRegionButton => 'Download Region';
@override
String get downloadNote =>
'Note: Large regions or high zoom levels may take significant time and storage.';
@override
String get cacheManagement => 'Cache Management';
@override
String get clearAllMaps => 'Clear All Maps';
@override
String get clearMapsConfirmTitle => 'Clear All Maps';
@override
String get clearMapsConfirmMessage =>
'Are you sure you want to delete all downloaded maps? This action cannot be undone.';
@override
String get mapDownloadCompleted => 'Map download completed!';
@override
String get cacheClearedSuccessfully => 'Cache cleared successfully!';
@override
String get downloadCancelled => 'Download cancelled';
@override
String get startingDownload => 'Starting download...';
@override
String get downloadingMapTiles => 'Downloading map tiles...';
@override
String get downloadCompletedSuccessfully =>
'Download completed successfully!';
@override
String get cancellingDownload => 'Cancelling download...';
@override
String errorLoadingStats(String error) {
return 'Error loading stats: $error';
}
@override
String downloadFailed(String error) {
return 'Download failed: $error';
}
@override
String cancelFailed(String error) {
return 'Cancel failed: $error';
}
@override
String clearCacheFailed(String error) {
return 'Clear cache failed: $error';
}
@override
String minZoomError(String error) {
return 'Min zoom: $error';
}
@override
String maxZoomError(String error) {
return 'Max zoom: $error';
}
@override
String get minZoomGreaterThanMax =>
'Minimum zoom must be less than or equal to maximum zoom';
@override
String get selectMapLayer => 'Select Map Layer';
@override
String get mapOptions => 'Map Options';
@override
String get showLegend => 'Show Legend';
@override
String get displayMarkerTypeCounts => 'Display marker type counts';
@override
String get rotateMapWithHeading => 'Rotate Map with Heading';
@override
String get mapFollowsDirection => 'Map follows your direction when moving';
@override
String get resetMapRotation => 'Reset Rotation';
@override
String get resetMapRotationTooltip => 'Reset map to north';
@override
String get showMapDebugInfo => 'Show Map Debug Info';
@override
String get displayZoomLevelBounds => 'Display zoom level and bounds';
@override
String get fullscreenMode => 'Fullscreen Mode';
@override
String get hideUiFullMapView => 'Hide all UI controls for full map view';
@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 downloadVisibleArea => 'Download visible area';
@override
String get initializingMap => 'Initializing map...';
@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 messageSentToPublicChannel => 'Message sent to public channel';
@override
String get pleaseSelectRoomToSendSar =>
'Please select a room to send SAR marker';
@override
String failedToSendSarMarker(String error) {
return 'Failed to send SAR marker: $error';
}
@override
String sarMarkerSentTo(String roomName) {
return 'SAR marker sent to $roomName';
}
@override
String get notConnectedCannotSync => 'Not connected - cannot sync messages';
@override
String syncedMessageCount(int count) {
return 'Synced $count message(s)';
}
@override
String get noNewMessages => 'No new messages';
@override
String syncFailed(String error) {
return 'Sync failed: $error';
}
@override
String get failedToResendMessage => 'Failed to resend message';
@override
String get retryingMessage => 'Retrying message...';
@override
String retryFailed(String error) {
return 'Retry failed: $error';
}
@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 messageDeleted => 'Message deleted';
@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 locationShared => 'Location shared';
@override
String get refreshedContacts => 'Refreshed contacts';
@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 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 get offlineVectorMaps => 'Offline Vector Maps';
@override
String get offlineVectorMapsDescription =>
'Import and manage offline vector map tiles (MBTiles format) for use without internet connection';
@override
String get importMbtiles => 'Import MBTiles File';
@override
String get importMbtilesNote =>
'Supports MBTiles files with vector tiles (PBF/MVT format). Geofabrik extracts work great!';
@override
String get noMbtilesFiles => 'No offline vector maps found';
@override
String get mbtilesImportedSuccessfully =>
'MBTiles file imported successfully';
@override
String get failedToImportMbtiles => 'Failed to import MBTiles file';
@override
String get deleteMbtilesConfirmTitle => 'Delete Offline Map';
@override
String deleteMbtilesConfirmMessage(String name) {
return 'Are you sure you want to delete \"$name\"? This will permanently remove the offline map.';
}
@override
String get mbtilesDeletedSuccessfully => 'Offline map deleted successfully';
@override
String get failedToDeleteMbtiles => 'Failed to delete offline map';
@override
String get importExportCachedTiles => 'Import/Export Cached Tiles';
@override
String get importExportDescription =>
'Backup, share, and restore downloaded map tiles between devices';
@override
String get exportTilesToFile => 'Export Tiles to File';
@override
String get importTilesFromFile => 'Import Tiles from File';
@override
String get selectExportLocation => 'Select Export Location';
@override
String get selectImportFile => 'Select Tile Archive';
@override
String get exportingTiles => 'Exporting tiles...';
@override
String get importingTiles => 'Importing tiles...';
@override
String exportSuccess(int count) {
return 'Exported $count tiles successfully';
}
@override
String importSuccess(int count) {
return 'Imported $count stores successfully';
}
@override
String exportFailed(String error) {
return 'Export failed: $error';
}
@override
String importFailed(String error) {
return 'Import failed: $error';
}
@override
String get exportNote =>
'Creates a compressed archive (.fmtc) file that can be shared and imported on other devices.';
@override
String get importNote =>
'Imports map tiles from a previously exported archive file. Tiles will be merged with existing cache.';
@override
String get noTilesToExport => 'No tiles available to export';
@override
String archiveContainsStores(int count) {
return 'Archive contains $count stores';
}
@override
String get vectorTiles => 'Vector Tiles';
@override
String get schema => 'Schema';
@override
String get unknown => 'Unknown';
@override
String get bounds => 'Bounds';
@override
String get onlineLayers => 'Online Layers';
@override
String get offlineLayers => 'Offline 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 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';
@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 noContactsOrRoomsAvailable => 'No contacts or rooms available';
@override
String get messagesWillBeSentToPublicChannel =>
'Messages will be sent to public channel';
@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 coordinatesCopiedToClipboard => 'Coordinates copied to clipboard';
@override
String get drawingShared => 'Map Drawing';
@override
String get drawingHidden => 'Drawing hidden from map';
@override
String alreadyShared(int count) {
String _temp0 = intl.Intl.pluralLogic(
count,
locale: localeName,
other: '$count already shared',
one: '1 already shared',
);
return '$_temp0';
}
@override
String newDrawingsShared(int count, String plural) {
return 'Shared $count new drawing$plural';
}
@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 showCadastralParcels => 'Show Cadastral Parcels';
@override
String get showForestRoads => 'Show 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 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 allChannelSlotsInUse =>
'All channel slots are in use (maximum 39 custom channels)';
@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 wizardSimpleModeTitle => 'Simple Mode';
@override
String get wizardSimpleModeDescription =>
'New to mesh networking? Enable Simple Mode for a streamlined interface with essential features only.';
@override
String get wizardSimpleModeFeature1 =>
'Beginner-friendly interface with core functions';
@override
String get wizardSimpleModeFeature2 =>
'Switch to Advanced Mode anytime in Settings';
@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';
}