mirror of
https://github.com/dz0ny/meshcore-sar.git
synced 2026-08-11 16:30:28 +00:00
5661 lines
147 KiB
Dart
5661 lines
147 KiB
Dart
import 'dart:async';
|
||
|
||
import 'package:flutter/foundation.dart';
|
||
import 'package:flutter/widgets.dart';
|
||
import 'package:flutter_localizations/flutter_localizations.dart';
|
||
import 'package:intl/intl.dart' as intl;
|
||
|
||
import 'app_localizations_de.dart';
|
||
import 'app_localizations_el.dart';
|
||
import 'app_localizations_en.dart';
|
||
import 'app_localizations_es.dart';
|
||
import 'app_localizations_fr.dart';
|
||
import 'app_localizations_hr.dart';
|
||
import 'app_localizations_it.dart';
|
||
import 'app_localizations_pl.dart';
|
||
import 'app_localizations_pt.dart';
|
||
import 'app_localizations_ru.dart';
|
||
import 'app_localizations_sl.dart';
|
||
import 'app_localizations_tr.dart';
|
||
import 'app_localizations_uk.dart';
|
||
import 'app_localizations_zh.dart';
|
||
|
||
// ignore_for_file: type=lint
|
||
|
||
/// Callers can lookup localized strings with an instance of AppLocalizations
|
||
/// returned by `AppLocalizations.of(context)`.
|
||
///
|
||
/// Applications need to include `AppLocalizations.delegate()` in their app's
|
||
/// `localizationDelegates` list, and the locales they support in the app's
|
||
/// `supportedLocales` list. For example:
|
||
///
|
||
/// ```dart
|
||
/// import 'l10n/app_localizations.dart';
|
||
///
|
||
/// return MaterialApp(
|
||
/// localizationsDelegates: AppLocalizations.localizationsDelegates,
|
||
/// supportedLocales: AppLocalizations.supportedLocales,
|
||
/// home: MyApplicationHome(),
|
||
/// );
|
||
/// ```
|
||
///
|
||
/// ## Update pubspec.yaml
|
||
///
|
||
/// Please make sure to update your pubspec.yaml to include the following
|
||
/// packages:
|
||
///
|
||
/// ```yaml
|
||
/// dependencies:
|
||
/// # Internationalization support.
|
||
/// flutter_localizations:
|
||
/// sdk: flutter
|
||
/// intl: any # Use the pinned version from flutter_localizations
|
||
///
|
||
/// # Rest of dependencies
|
||
/// ```
|
||
///
|
||
/// ## iOS Applications
|
||
///
|
||
/// iOS applications define key application metadata, including supported
|
||
/// locales, in an Info.plist file that is built into the application bundle.
|
||
/// To configure the locales supported by your app, you’ll need to edit this
|
||
/// file.
|
||
///
|
||
/// First, open your project’s ios/Runner.xcworkspace Xcode workspace file.
|
||
/// Then, in the Project Navigator, open the Info.plist file under the Runner
|
||
/// project’s Runner folder.
|
||
///
|
||
/// Next, select the Information Property List item, select Add Item from the
|
||
/// Editor menu, then select Localizations from the pop-up menu.
|
||
///
|
||
/// Select and expand the newly-created Localizations item then, for each
|
||
/// locale your application supports, add a new item and select the locale
|
||
/// you wish to add from the pop-up menu in the Value field. This list should
|
||
/// be consistent with the languages listed in the AppLocalizations.supportedLocales
|
||
/// property.
|
||
abstract class AppLocalizations {
|
||
AppLocalizations(String locale)
|
||
: localeName = intl.Intl.canonicalizedLocale(locale.toString());
|
||
|
||
final String localeName;
|
||
|
||
static AppLocalizations? of(BuildContext context) {
|
||
return Localizations.of<AppLocalizations>(context, AppLocalizations);
|
||
}
|
||
|
||
static const LocalizationsDelegate<AppLocalizations> delegate =
|
||
_AppLocalizationsDelegate();
|
||
|
||
/// A list of this localizations delegate along with the default localizations
|
||
/// delegates.
|
||
///
|
||
/// Returns a list of localizations delegates containing this delegate along with
|
||
/// GlobalMaterialLocalizations.delegate, GlobalCupertinoLocalizations.delegate,
|
||
/// and GlobalWidgetsLocalizations.delegate.
|
||
///
|
||
/// Additional delegates can be added by appending to this list in
|
||
/// MaterialApp. This list does not have to be used at all if a custom list
|
||
/// of delegates is preferred or required.
|
||
static const List<LocalizationsDelegate<dynamic>> localizationsDelegates =
|
||
<LocalizationsDelegate<dynamic>>[
|
||
delegate,
|
||
GlobalMaterialLocalizations.delegate,
|
||
GlobalCupertinoLocalizations.delegate,
|
||
GlobalWidgetsLocalizations.delegate,
|
||
];
|
||
|
||
/// A list of this localizations delegate's supported locales.
|
||
static const List<Locale> supportedLocales = <Locale>[
|
||
Locale('de'),
|
||
Locale('el'),
|
||
Locale('en'),
|
||
Locale('es'),
|
||
Locale('fr'),
|
||
Locale('hr'),
|
||
Locale('it'),
|
||
Locale('pl'),
|
||
Locale('pt'),
|
||
Locale('ru'),
|
||
Locale('sl'),
|
||
Locale('tr'),
|
||
Locale('uk'),
|
||
Locale('zh'),
|
||
];
|
||
|
||
/// The application title
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'MeshCore SAR'**
|
||
String get appTitle;
|
||
|
||
/// Messages tab label
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Messages'**
|
||
String get messages;
|
||
|
||
/// Contacts tab label
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Contacts'**
|
||
String get contacts;
|
||
|
||
/// Map tab label
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Map'**
|
||
String get map;
|
||
|
||
/// Settings screen title
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Settings'**
|
||
String get settings;
|
||
|
||
/// Connect button label
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Connect'**
|
||
String get connect;
|
||
|
||
/// Disconnect button label
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Disconnect'**
|
||
String get disconnect;
|
||
|
||
/// Text shown when no BLE devices are found
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'No devices found'**
|
||
String get noDevicesFound;
|
||
|
||
/// Button to restart BLE scanning
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Scan Again'**
|
||
String get scanAgain;
|
||
|
||
/// Error message when device is not connected
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Device not connected'**
|
||
String get deviceNotConnected;
|
||
|
||
/// Error when location permission is denied
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Location permission denied'**
|
||
String get locationPermissionDenied;
|
||
|
||
/// Error when location permission is permanently denied
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Location permission permanently denied. Please enable in Settings.'**
|
||
String get locationPermissionPermanentlyDenied;
|
||
|
||
/// Message when location permission is needed
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Location permission is required for GPS tracking and team coordination. You can enable it later in Settings.'**
|
||
String get locationPermissionRequired;
|
||
|
||
/// Error when location services are disabled
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Location services are disabled. Please enable them in Settings.'**
|
||
String get locationServicesDisabled;
|
||
|
||
/// Error when GPS location cannot be obtained
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Failed to get GPS location'**
|
||
String get failedToGetGpsLocation;
|
||
|
||
/// Error message for failed advertisement
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Failed to advertise: {error}'**
|
||
String failedToAdvertise(String error);
|
||
|
||
/// Tooltip for cancel reconnection button
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Cancel reconnection'**
|
||
String get cancelReconnection;
|
||
|
||
/// General settings section header
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'General'**
|
||
String get general;
|
||
|
||
/// Theme setting label
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Theme'**
|
||
String get theme;
|
||
|
||
/// Theme selection dialog title
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Choose Theme'**
|
||
String get chooseTheme;
|
||
|
||
/// Light theme option
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Light'**
|
||
String get light;
|
||
|
||
/// Dark theme option
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Dark'**
|
||
String get dark;
|
||
|
||
/// Description for blue light theme
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Blue light theme'**
|
||
String get blueLightTheme;
|
||
|
||
/// Description for blue dark theme
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Blue dark theme'**
|
||
String get blueDarkTheme;
|
||
|
||
/// SAR Red theme option
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'SAR Red'**
|
||
String get sarRed;
|
||
|
||
/// Description for SAR Red theme
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Alert/Emergency mode'**
|
||
String get alertEmergencyMode;
|
||
|
||
/// SAR Green theme option
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'SAR Green'**
|
||
String get sarGreen;
|
||
|
||
/// Description for SAR Green theme
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Safe/All Clear mode'**
|
||
String get safeAllClearMode;
|
||
|
||
/// Auto/System theme option
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Auto (System)'**
|
||
String get autoSystem;
|
||
|
||
/// Description for system theme
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Follow system theme'**
|
||
String get followSystemTheme;
|
||
|
||
/// Setting to show RX/TX indicators
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Show RX/TX Indicators'**
|
||
String get showRxTxIndicators;
|
||
|
||
/// Setting to disable the map tab
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Disable Map'**
|
||
String get disableMap;
|
||
|
||
/// Language setting label
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Language'**
|
||
String get language;
|
||
|
||
/// Language selection dialog title
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Choose Language'**
|
||
String get chooseLanguage;
|
||
|
||
/// Save button label
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Save'**
|
||
String get save;
|
||
|
||
/// Cancel button label
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Cancel'**
|
||
String get cancel;
|
||
|
||
/// Close button label
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Close'**
|
||
String get close;
|
||
|
||
/// About section header
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'About'**
|
||
String get about;
|
||
|
||
/// App version label
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'App Version'**
|
||
String get appVersion;
|
||
|
||
/// About dialog title
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'About MeshCore SAR'**
|
||
String get aboutMeshCoreSar;
|
||
|
||
/// About dialog description
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'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'**
|
||
String get aboutDescription;
|
||
|
||
/// Technologies used section title
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Technologies Used:'**
|
||
String get technologiesUsed;
|
||
|
||
/// List of technologies used
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'• 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'**
|
||
String get technologiesList;
|
||
|
||
/// More info button label
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'More Info'**
|
||
String get moreInfo;
|
||
|
||
/// Package name label
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Package Name'**
|
||
String get packageName;
|
||
|
||
/// Sample data section header
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Sample Data'**
|
||
String get sampleData;
|
||
|
||
/// Sample data section description
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Load or clear sample contacts, channel messages, and SAR markers for testing'**
|
||
String get sampleDataDescription;
|
||
|
||
/// Load sample data button
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Load Sample Data'**
|
||
String get loadSampleData;
|
||
|
||
/// Clear all data button
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Clear All Data'**
|
||
String get clearAllData;
|
||
|
||
/// Clear data confirmation dialog title
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Clear All Data'**
|
||
String get clearAllDataConfirmTitle;
|
||
|
||
/// Clear data confirmation message
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'This will clear all contacts and SAR markers. Are you sure?'**
|
||
String get clearAllDataConfirmMessage;
|
||
|
||
/// Clear button label
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Clear'**
|
||
String get clear;
|
||
|
||
/// Success message after loading sample data
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Loaded {teamCount} team members, {channelCount} channels, {sarCount} SAR markers, {messageCount} messages'**
|
||
String loadedSampleData(
|
||
int teamCount,
|
||
int channelCount,
|
||
int sarCount,
|
||
int messageCount,
|
||
);
|
||
|
||
/// Error message when sample data fails to load
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Failed to load sample data: {error}'**
|
||
String failedToLoadSampleData(String error);
|
||
|
||
/// Success message after clearing all data
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'All data cleared'**
|
||
String get allDataCleared;
|
||
|
||
/// Error message when background tracking fails to start
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Failed to start background tracking. Check permissions and BLE connection.'**
|
||
String get failedToStartBackgroundTracking;
|
||
|
||
/// Success message for location broadcast
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Location broadcast: {latitude}, {longitude}'**
|
||
String locationBroadcast(String latitude, String longitude);
|
||
|
||
/// Information about default PIN for pairing
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'The default pin for devices without a screen is 123456. Trouble pairing? Forget the bluetooth device in system settings.'**
|
||
String get defaultPinInfo;
|
||
|
||
/// Empty state message when there are no messages
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'No messages yet'**
|
||
String get noMessagesYet;
|
||
|
||
/// Instruction to pull down to refresh messages
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Pull down to sync messages'**
|
||
String get pullDownToSync;
|
||
|
||
/// Delete contact action label
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Delete Contact'**
|
||
String get deleteContact;
|
||
|
||
/// Delete button label
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Delete'**
|
||
String get delete;
|
||
|
||
/// Action to view contact location on map
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'View on Map'**
|
||
String get viewOnMap;
|
||
|
||
/// Refresh button label
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Refresh'**
|
||
String get refresh;
|
||
|
||
/// Action to reset contact path for re-routing
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Reset Path (Re-route)'**
|
||
String get resetPath;
|
||
|
||
/// Success message when a value is copied to clipboard
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'{label} copied to clipboard'**
|
||
String copiedToClipboard(String label);
|
||
|
||
/// Validation message for empty password field
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Please enter a password'**
|
||
String get pleaseEnterPassword;
|
||
|
||
/// Error message when contact sync fails
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Failed to sync contacts: {error}'**
|
||
String failedToSyncContacts(String error);
|
||
|
||
/// Success message after successful room login
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Logged in successfully! Waiting for room messages...'**
|
||
String get loggedInSuccessfully;
|
||
|
||
/// Error message when room login fails
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Login failed - incorrect password'**
|
||
String get loginFailed;
|
||
|
||
/// Status message during room login process
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Logging in to {roomName}...'**
|
||
String loggingIn(String roomName);
|
||
|
||
/// Error message when login command fails to send
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Failed to send login: {error}'**
|
||
String failedToSendLogin(String error);
|
||
|
||
/// Warning title for low GPS accuracy
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Low Location Accuracy'**
|
||
String get lowLocationAccuracy;
|
||
|
||
/// Continue button label
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Continue'**
|
||
String get continue_;
|
||
|
||
/// Action to send SAR marker
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Send SAR marker'**
|
||
String get sendSarMarker;
|
||
|
||
/// Action to delete a map drawing
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Delete Drawing'**
|
||
String get deleteDrawing;
|
||
|
||
/// Drawing tools section or menu title
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Drawing Tools'**
|
||
String get drawingTools;
|
||
|
||
/// Map drawing mode: line
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Draw Line'**
|
||
String get drawLine;
|
||
|
||
/// Description for line drawing mode
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Draw a freehand line on the map'**
|
||
String get drawLineDesc;
|
||
|
||
/// Map drawing mode: rectangle
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Draw Rectangle'**
|
||
String get drawRectangle;
|
||
|
||
/// Description for rectangle drawing mode
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Draw a rectangular area on the map'**
|
||
String get drawRectangleDesc;
|
||
|
||
/// Map drawing mode: measure distance
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Measure Distance'**
|
||
String get measureDistance;
|
||
|
||
/// Description for distance measurement mode
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Long press two points to measure'**
|
||
String get measureDistanceDesc;
|
||
|
||
/// Tooltip to clear measurement
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Clear Measurement'**
|
||
String get clearMeasurement;
|
||
|
||
/// Label showing measured distance
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Distance: {distance}'**
|
||
String distanceLabel(String distance);
|
||
|
||
/// Instruction when first measurement point is set
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Long press for second point'**
|
||
String get longPressForSecondPoint;
|
||
|
||
/// Instruction to start measurement
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Long press to set first point'**
|
||
String get longPressToStartMeasurement;
|
||
|
||
/// Instruction to restart measurement after completion
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Long press to start new measurement'**
|
||
String get longPressToStartNewMeasurement;
|
||
|
||
/// Action to share drawings to network
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Share Drawings'**
|
||
String get shareDrawings;
|
||
|
||
/// Action to clear all local drawings
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Clear All Drawings'**
|
||
String get clearAllDrawings;
|
||
|
||
/// Tooltip to complete drawing a line
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Complete Line'**
|
||
String get completeLine;
|
||
|
||
/// Subtitle showing how many drawings will be broadcast
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Broadcast {count} drawing{plural} to team'**
|
||
String broadcastDrawingsToTeam(int count, String plural);
|
||
|
||
/// Subtitle for remove all drawings action
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Remove all {count} drawing{plural}'**
|
||
String removeAllDrawings(int count, String plural);
|
||
|
||
/// Confirmation dialog message for deleting all drawings
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Delete all {count} drawing{plural} from the map?'**
|
||
String deleteAllDrawingsConfirm(int count, String plural);
|
||
|
||
/// Generic drawing label
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Drawing'**
|
||
String get drawing;
|
||
|
||
/// Title for share drawings dialog
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Share {count} Drawing{plural}'**
|
||
String shareDrawingsCount(int count, String plural);
|
||
|
||
/// Toggle to show/hide received drawings from other team members
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Show Received Drawings'**
|
||
String get showReceivedDrawings;
|
||
|
||
/// Subtitle when received drawings are visible
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Showing all drawings'**
|
||
String get showingAllDrawings;
|
||
|
||
/// Subtitle when received drawings are hidden
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Showing only your drawings'**
|
||
String get showingOnlyYourDrawings;
|
||
|
||
/// Toggle to show/hide SAR markers on map
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Show SAR Markers'**
|
||
String get showSarMarkers;
|
||
|
||
/// Subtitle when SAR markers are visible
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Showing SAR markers'**
|
||
String get showingSarMarkers;
|
||
|
||
/// Subtitle when SAR markers are hidden
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Hiding SAR markers'**
|
||
String get hidingSarMarkers;
|
||
|
||
/// Clear all button label
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Clear All'**
|
||
String get clearAll;
|
||
|
||
/// Public channel option for sharing
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Public Channel'**
|
||
String get publicChannel;
|
||
|
||
/// Description for public channel broadcast
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Broadcast to all nearby nodes (ephemeral)'**
|
||
String get broadcastToAll;
|
||
|
||
/// Description for room storage permanence
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Stored permanently in room'**
|
||
String get storedPermanently;
|
||
|
||
/// Error message when device is not connected for direct messaging
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Not connected to device'**
|
||
String get notConnectedToDevice;
|
||
|
||
/// Placeholder text for message input field
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Type your message...'**
|
||
String get typeYourMessage;
|
||
|
||
/// Subtitle for SAR marker sheet header
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Quick location marker'**
|
||
String get quickLocationMarker;
|
||
|
||
/// Label for marker type selection section
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Marker Type'**
|
||
String get markerType;
|
||
|
||
/// Label for destination selection section
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Send To'**
|
||
String get sendTo;
|
||
|
||
/// Warning when no rooms or channels exist
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'No destinations available.'**
|
||
String get noDestinationsAvailable;
|
||
|
||
/// Placeholder for destination dropdown
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Select destination...'**
|
||
String get selectDestination;
|
||
|
||
/// Information about ephemeral channel broadcasts
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Ephemeral: Broadcast over-the-air only. Not stored - nodes must be online.'**
|
||
String get ephemeralBroadcastInfo;
|
||
|
||
/// Information about persistent room storage
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Persistent: Stored immutably in room. Synced automatically and preserved offline.'**
|
||
String get persistentRoomInfo;
|
||
|
||
/// Label for location section
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Location'**
|
||
String get location;
|
||
|
||
/// Badge showing location is from map tap
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'From Map'**
|
||
String get fromMap;
|
||
|
||
/// Loading message while fetching GPS location
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Getting location...'**
|
||
String get gettingLocation;
|
||
|
||
/// Title for location error messages
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Location Error'**
|
||
String get locationError;
|
||
|
||
/// Retry button label
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Retry'**
|
||
String get retry;
|
||
|
||
/// Tooltip for refresh location button
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Refresh location'**
|
||
String get refreshLocation;
|
||
|
||
/// Display of GPS accuracy in meters
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Accuracy: ±{accuracy}m'**
|
||
String accuracyMeters(int accuracy);
|
||
|
||
/// Label for optional notes field
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Notes (optional)'**
|
||
String get notesOptional;
|
||
|
||
/// Placeholder for notes field
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Add additional information...'**
|
||
String get addAdditionalInformation;
|
||
|
||
/// Warning dialog content for low GPS accuracy
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Location accuracy is ±{accuracy}m. This may not be accurate enough for SAR operations.\n\nContinue anyway?'**
|
||
String lowAccuracyWarning(int accuracy);
|
||
|
||
/// Title for room login dialog
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Login to Room'**
|
||
String get loginToRoom;
|
||
|
||
/// Information about room password
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Enter the password to access this room. The password will be saved for future use.'**
|
||
String get enterPasswordInfo;
|
||
|
||
/// Password field label
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Password'**
|
||
String get password;
|
||
|
||
/// Password field hint
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Enter room password'**
|
||
String get enterRoomPassword;
|
||
|
||
/// Button text while logging in
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Logging in...'**
|
||
String get loggingInDots;
|
||
|
||
/// Login button label
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Login'**
|
||
String get login;
|
||
|
||
/// Error message when adding room fails
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Failed to add room to device: {error}\n\nThe room may not have advertised yet.\nTry waiting for the room to broadcast.'**
|
||
String failedToAddRoom(String error);
|
||
|
||
/// Direct routing indicator
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Direct'**
|
||
String get direct;
|
||
|
||
/// Flood routing indicator
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Flood'**
|
||
String get flood;
|
||
|
||
/// Auto send mode - uses current path
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Auto Send'**
|
||
String get autoSend;
|
||
|
||
/// Description for auto send mode
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Send via current path.'**
|
||
String get autoSendDescription;
|
||
|
||
/// Send direct mode - zero-hop to contact
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Send Direct'**
|
||
String get sendDirect;
|
||
|
||
/// Description for send direct mode
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Send directly to this contact.'**
|
||
String get sendDirectDescription;
|
||
|
||
/// Send flood mode - via all repeaters
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Send Flood'**
|
||
String get sendFlood;
|
||
|
||
/// Description for send flood mode
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Send via all repeaters.'**
|
||
String get sendFloodDescription;
|
||
|
||
/// Logged in status badge
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Logged In'**
|
||
String get loggedIn;
|
||
|
||
/// Message when GPS data is not available
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'No GPS data'**
|
||
String get noGpsData;
|
||
|
||
/// Distance label
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Distance'**
|
||
String get distance;
|
||
|
||
/// Warning when direct ping times out
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Direct ping timeout - retrying {name} with flooding...'**
|
||
String directPingTimeout(String name);
|
||
|
||
/// Error message when ping fails
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Ping failed to {name} - no response received'**
|
||
String pingFailed(String name);
|
||
|
||
/// Confirmation message for deleting contact
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Are you sure you want to delete \"{name}\"?\n\nThis will remove the contact from both the app and the companion radio device.'**
|
||
String deleteContactConfirmation(String name);
|
||
|
||
/// Error message when contact removal fails
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Failed to remove contact: {error}'**
|
||
String failedToRemoveContact(String error);
|
||
|
||
/// Contact type label
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Type'**
|
||
String get type;
|
||
|
||
/// Public key label
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Public Key'**
|
||
String get publicKey;
|
||
|
||
/// Last seen label
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Last Seen'**
|
||
String get lastSeen;
|
||
|
||
/// Yes answer
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Yes'**
|
||
String get yes;
|
||
|
||
/// No answer
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'No'**
|
||
String get no;
|
||
|
||
/// Permissions label
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Permissions'**
|
||
String get permissions;
|
||
|
||
/// Telemetry section header
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Telemetry'**
|
||
String get telemetry;
|
||
|
||
/// Voltage label
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Voltage'**
|
||
String get voltage;
|
||
|
||
/// Battery label
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Battery'**
|
||
String get battery;
|
||
|
||
/// Temperature label
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Temperature'**
|
||
String get temperature;
|
||
|
||
/// Humidity label
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Humidity'**
|
||
String get humidity;
|
||
|
||
/// Pressure label
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Pressure'**
|
||
String get pressure;
|
||
|
||
/// GPS from telemetry label
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'GPS (Telemetry)'**
|
||
String get gpsTelemetry;
|
||
|
||
/// Button to re-login to room
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Re-Login to Room'**
|
||
String get reLoginToRoom;
|
||
|
||
/// Compass heading label
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Heading'**
|
||
String get heading;
|
||
|
||
/// Elevation/altitude label
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Elevation'**
|
||
String get elevation;
|
||
|
||
/// GPS accuracy label
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Accuracy'**
|
||
String get accuracy;
|
||
|
||
/// Bearing label in compass
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Bearing'**
|
||
String get bearing;
|
||
|
||
/// Direction label in compass
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Direction'**
|
||
String get direction;
|
||
|
||
/// Title for filter markers dialog
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Filter Markers'**
|
||
String get filterMarkers;
|
||
|
||
/// Tooltip for filter button
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Filter markers'**
|
||
String get filterMarkersTooltip;
|
||
|
||
/// Filter option for contacts
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Contacts'**
|
||
String get contactsFilter;
|
||
|
||
/// Filter option for repeaters
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Repeaters'**
|
||
String get repeatersFilter;
|
||
|
||
/// SAR markers section header
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'SAR Markers'**
|
||
String get sarMarkers;
|
||
|
||
/// Found person SAR marker type
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Found Person'**
|
||
String get foundPerson;
|
||
|
||
/// Fire SAR marker type
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Fire'**
|
||
String get fire;
|
||
|
||
/// Staging area SAR marker type
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Staging Area'**
|
||
String get stagingArea;
|
||
|
||
/// Button to show all filters
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Show All'**
|
||
String get showAll;
|
||
|
||
/// Message when GPS location is unavailable
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Location unavailable'**
|
||
String get locationUnavailable;
|
||
|
||
/// Relative bearing direction - ahead
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'ahead'**
|
||
String get ahead;
|
||
|
||
/// Relative bearing direction - right
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'{degrees}° right'**
|
||
String degreesRight(int degrees);
|
||
|
||
/// Relative bearing direction - left
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'{degrees}° left'**
|
||
String degreesLeft(int degrees);
|
||
|
||
/// Latitude and longitude display format
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Lat: {latitude} Lon: {longitude}'**
|
||
String latLonFormat(String latitude, String longitude);
|
||
|
||
/// Empty state message when there are no contacts
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'No contacts yet'**
|
||
String get noContactsYet;
|
||
|
||
/// Instruction to connect device to load contacts
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Connect to a device to load contacts'**
|
||
String get connectToDeviceToLoadContacts;
|
||
|
||
/// Section header for team members (chat contacts)
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Team Members'**
|
||
String get teamMembers;
|
||
|
||
/// Section header for repeater nodes
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Repeaters'**
|
||
String get repeaters;
|
||
|
||
/// Section header for rooms
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Rooms'**
|
||
String get rooms;
|
||
|
||
/// Section header for broadcast channels
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Channels'**
|
||
String get channels;
|
||
|
||
/// Title for map layer selection dialog
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Select Map Layer'**
|
||
String get selectMapLayer;
|
||
|
||
/// OpenStreetMap layer name
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'OpenStreetMap'**
|
||
String get openStreetMap;
|
||
|
||
/// OpenTopoMap layer name
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'OpenTopoMap'**
|
||
String get openTopoMap;
|
||
|
||
/// ESRI Satellite imagery layer name
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'ESRI Satellite'**
|
||
String get esriSatellite;
|
||
|
||
/// Google Hybrid layer name (satellite + labels)
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Google Hybrid'**
|
||
String get googleHybrid;
|
||
|
||
/// Google Roadmap layer name (street map)
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Google Roadmap'**
|
||
String get googleRoadmap;
|
||
|
||
/// Google Terrain layer name (topographic)
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Google Terrain'**
|
||
String get googleTerrain;
|
||
|
||
/// Label when dragging a pin on map
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Drag to Position'**
|
||
String get dragToPosition;
|
||
|
||
/// Label for creating SAR marker from pin
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Create SAR Marker'**
|
||
String get createSarMarker;
|
||
|
||
/// Compass title in detailed compass dialog
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Compass'**
|
||
String get compass;
|
||
|
||
/// Subtitle for compass dialog
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Navigation & Contacts'**
|
||
String get navigationAndContacts;
|
||
|
||
/// Label for SAR alert badge on messages
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'SAR ALERT'**
|
||
String get sarAlert;
|
||
|
||
/// Success message when text is copied
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Text copied to clipboard'**
|
||
String get textCopiedToClipboard;
|
||
|
||
/// Error when sender info is missing for reply
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Cannot reply: sender information missing'**
|
||
String get cannotReplySenderMissing;
|
||
|
||
/// Error when contact not found for reply
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Cannot reply: contact not found'**
|
||
String get cannotReplyContactNotFound;
|
||
|
||
/// Option to copy message text to clipboard
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Copy text'**
|
||
String get copyText;
|
||
|
||
/// Option to save SAR message as a reusable template
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Save as Template'**
|
||
String get saveAsTemplate;
|
||
|
||
/// Success message when SAR template is saved
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Template saved successfully'**
|
||
String get templateSaved;
|
||
|
||
/// Error message when trying to save duplicate template
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Template with this emoji already exists'**
|
||
String get templateAlreadyExists;
|
||
|
||
/// Dialog title for deleting a message
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Delete message'**
|
||
String get deleteMessage;
|
||
|
||
/// Confirmation text for message deletion
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Are you sure you want to delete this message?'**
|
||
String get deleteMessageConfirmation;
|
||
|
||
/// Option to share SAR marker location
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Share location'**
|
||
String get shareLocation;
|
||
|
||
/// Formatted text for sharing SAR marker location
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'{markerInfo}\n\nCoordinates: {lat}, {lon}\n\nGoogle Maps: {url}'**
|
||
String shareLocationText(
|
||
String markerInfo,
|
||
String lat,
|
||
String lon,
|
||
String url,
|
||
);
|
||
|
||
/// Subject line when sharing SAR marker location
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'SAR Location'**
|
||
String get sarLocationShare;
|
||
|
||
/// Time indicator for very recent activity
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Just now'**
|
||
String get justNow;
|
||
|
||
/// Time indicator for minutes ago
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'{minutes}m ago'**
|
||
String minutesAgo(int minutes);
|
||
|
||
/// Time indicator for hours ago
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'{hours}h ago'**
|
||
String hoursAgo(int hours);
|
||
|
||
/// Time indicator for days ago
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'{days}d ago'**
|
||
String daysAgo(int days);
|
||
|
||
/// Time indicator for seconds ago
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'{seconds}s ago'**
|
||
String secondsAgo(int seconds);
|
||
|
||
/// Delivery status: sending
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Sending...'**
|
||
String get sending;
|
||
|
||
/// Delivery status: sent
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Sent'**
|
||
String get sent;
|
||
|
||
/// Delivery status: delivered
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Delivered'**
|
||
String get delivered;
|
||
|
||
/// Delivery status with round-trip time
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Delivered ({time}ms)'**
|
||
String deliveredWithTime(int time);
|
||
|
||
/// Delivery status: failed
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Failed'**
|
||
String get failed;
|
||
|
||
/// Delivery status for channel messages (no echoes yet)
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Broadcast'**
|
||
String get broadcast;
|
||
|
||
/// Grouped message delivery count
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Delivered to {delivered}/{total} contacts'**
|
||
String deliveredToContacts(int delivered, int total);
|
||
|
||
/// Status when all recipients received the message
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'All delivered'**
|
||
String get allDelivered;
|
||
|
||
/// Header for expandable recipient list
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Recipient Details'**
|
||
String get recipientDetails;
|
||
|
||
/// Delivery status: pending/waiting
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Pending'**
|
||
String get pending;
|
||
|
||
/// SAR marker type: found person
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Found Person'**
|
||
String get sarMarkerFoundPerson;
|
||
|
||
/// SAR marker type: fire
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Fire Location'**
|
||
String get sarMarkerFire;
|
||
|
||
/// SAR marker type: staging area
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Staging Area'**
|
||
String get sarMarkerStagingArea;
|
||
|
||
/// SAR marker type: object
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Object Found'**
|
||
String get sarMarkerObject;
|
||
|
||
/// Sender label in notifications
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'From'**
|
||
String get from;
|
||
|
||
/// Coordinates label
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Coordinates'**
|
||
String get coordinates;
|
||
|
||
/// Notification action text
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Tap to view on map'**
|
||
String get tapToViewOnMap;
|
||
|
||
/// Section title for radio settings
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Radio Settings'**
|
||
String get radioSettings;
|
||
|
||
/// Label for radio frequency field
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Frequency (MHz)'**
|
||
String get frequencyMHz;
|
||
|
||
/// Label for bandwidth dropdown
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Bandwidth'**
|
||
String get bandwidth;
|
||
|
||
/// Label for spreading factor dropdown
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Spreading Factor'**
|
||
String get spreadingFactor;
|
||
|
||
/// Label for coding rate dropdown
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Coding Rate'**
|
||
String get codingRate;
|
||
|
||
/// Label for TX power field
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'TX Power (dBm)'**
|
||
String get txPowerDbm;
|
||
|
||
/// Helper text showing maximum TX power
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Max: {power} dBm'**
|
||
String maxPowerDbm(int power);
|
||
|
||
/// Label for the current user in message bubbles
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'You'**
|
||
String get you;
|
||
|
||
/// Error message when export fails
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Export failed: {error}'**
|
||
String exportFailed(String error);
|
||
|
||
/// Error message when import fails
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Import failed: {error}'**
|
||
String importFailed(String error);
|
||
|
||
/// Unknown value label
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Unknown'**
|
||
String get unknown;
|
||
|
||
/// Section header for online map layers
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Online Layers'**
|
||
String get onlineLayers;
|
||
|
||
/// Location trail title
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Location Trail'**
|
||
String get locationTrail;
|
||
|
||
/// Toggle to show/hide trail on map
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Show Trail on Map'**
|
||
String get showTrailOnMap;
|
||
|
||
/// Trail visibility status - visible
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Trail is visible on the map'**
|
||
String get trailVisible;
|
||
|
||
/// Trail visibility status - hidden but recording
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Trail is hidden (still recording)'**
|
||
String get trailHiddenRecording;
|
||
|
||
/// Duration label
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Duration'**
|
||
String get duration;
|
||
|
||
/// Trail points count label
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Points'**
|
||
String get points;
|
||
|
||
/// Button to clear location trail
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Clear Trail'**
|
||
String get clearTrail;
|
||
|
||
/// Confirmation dialog title
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Clear Trail?'**
|
||
String get clearTrailQuestion;
|
||
|
||
/// Confirmation dialog message
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Are you sure you want to clear the current location trail? This action cannot be undone.'**
|
||
String get clearTrailConfirmation;
|
||
|
||
/// Message when no trail exists
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'No trail recorded yet'**
|
||
String get noTrailRecorded;
|
||
|
||
/// Instructions to start trail recording
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Start location tracking to record your trail'**
|
||
String get startTrackingToRecord;
|
||
|
||
/// Trail controls tooltip
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Trail Controls'**
|
||
String get trailControls;
|
||
|
||
/// Device model label
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Model'**
|
||
String get model;
|
||
|
||
/// Version label
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Version'**
|
||
String get version;
|
||
|
||
/// Maximum contacts capacity label
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Max Contacts'**
|
||
String get maxContacts;
|
||
|
||
/// Maximum channels capacity label
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Max Channels'**
|
||
String get maxChannels;
|
||
|
||
/// Public information section header
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Public Info'**
|
||
String get publicInfo;
|
||
|
||
/// Tooltip for use current location button
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Use current location'**
|
||
String get useCurrentLocation;
|
||
|
||
/// Device type: none or unknown
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'None/Unknown'**
|
||
String get noneUnknown;
|
||
|
||
/// Device type: chat node
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Chat Node'**
|
||
String get chatNode;
|
||
|
||
/// Device type: repeater
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Repeater'**
|
||
String get repeater;
|
||
|
||
/// Device type: room or channel
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Room/Channel'**
|
||
String get roomChannel;
|
||
|
||
/// Generic device type with number
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Type {number}'**
|
||
String typeNumber(int number);
|
||
|
||
/// Generic error message for save failures
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Failed to save: {error}'**
|
||
String failedToSave(String error);
|
||
|
||
/// Error message when getting location fails
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Failed to get location: {error}'**
|
||
String failedToGetLocation(String error);
|
||
|
||
/// SAR templates menu title
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'SAR Templates'**
|
||
String get sarTemplates;
|
||
|
||
/// Button to add new SAR template
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Add Template'**
|
||
String get addTemplate;
|
||
|
||
/// Dialog title for editing template
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Edit Template'**
|
||
String get editTemplate;
|
||
|
||
/// Action to delete template
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Delete Template'**
|
||
String get deleteTemplate;
|
||
|
||
/// Label for template name field
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Template Name'**
|
||
String get templateName;
|
||
|
||
/// Hint text for template name
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'e.g. Found Person'**
|
||
String get templateNameHint;
|
||
|
||
/// Label for template emoji field
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Emoji'**
|
||
String get templateEmoji;
|
||
|
||
/// Validation error when emoji field is empty
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Emoji is required'**
|
||
String get emojiRequired;
|
||
|
||
/// Validation error when name field is empty
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Name is required'**
|
||
String get nameRequired;
|
||
|
||
/// Label for template description field
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Description (Optional)'**
|
||
String get templateDescription;
|
||
|
||
/// Hint text for template description
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Add additional context...'**
|
||
String get templateDescriptionHint;
|
||
|
||
/// Label for template color picker
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Color'**
|
||
String get templateColor;
|
||
|
||
/// Label for format preview
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Preview (SAR Message Format)'**
|
||
String get previewFormat;
|
||
|
||
/// Button to import templates from clipboard
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Import'**
|
||
String get importFromClipboard;
|
||
|
||
/// Button to export templates to clipboard
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Export'**
|
||
String get exportToClipboard;
|
||
|
||
/// Confirmation message for template deletion
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Delete template \'{name}\'?'**
|
||
String deleteTemplateConfirmation(String name);
|
||
|
||
/// Success message when template is added
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Template added'**
|
||
String get templateAdded;
|
||
|
||
/// Success message when template is updated
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Template updated'**
|
||
String get templateUpdated;
|
||
|
||
/// Success message when template is deleted
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Template deleted'**
|
||
String get templateDeleted;
|
||
|
||
/// Success message after importing templates
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'{count, plural, =0{No templates imported} =1{Imported 1 template} other{Imported {count} templates}}'**
|
||
String templatesImported(int count);
|
||
|
||
/// Success message after exporting templates
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'{count, plural, =1{Exported 1 template to clipboard} other{Exported {count} templates to clipboard}}'**
|
||
String templatesExported(int count);
|
||
|
||
/// Action to reset templates to defaults
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Reset to Defaults'**
|
||
String get resetToDefaults;
|
||
|
||
/// Confirmation message for reset to defaults
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'This will delete all custom templates and restore the 4 default templates. Continue?'**
|
||
String get resetToDefaultsConfirmation;
|
||
|
||
/// Reset button label
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Reset'**
|
||
String get reset;
|
||
|
||
/// Success message after reset
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Templates reset to defaults'**
|
||
String get resetComplete;
|
||
|
||
/// Message when no templates exist
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'No templates available'**
|
||
String get noTemplates;
|
||
|
||
/// Helper text when no templates exist
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Tap + to create your first template'**
|
||
String get tapAddToCreate;
|
||
|
||
/// OK button label
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'OK'**
|
||
String get ok;
|
||
|
||
/// Location permission label
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Location Permission'**
|
||
String get locationPermission;
|
||
|
||
/// Loading state indicator
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Checking...'**
|
||
String get checking;
|
||
|
||
/// Location permission status: granted always
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Granted (Always)'**
|
||
String get locationPermissionGrantedAlways;
|
||
|
||
/// Location permission status: granted while in use
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Granted (While In Use)'**
|
||
String get locationPermissionGrantedWhileInUse;
|
||
|
||
/// Location permission status: denied, user can request
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Denied - Tap to request'**
|
||
String get locationPermissionDeniedTapToRequest;
|
||
|
||
/// Location permission status: permanently denied
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Permanently Denied - Open Settings'**
|
||
String get locationPermissionPermanentlyDeniedOpenSettings;
|
||
|
||
/// Content for location permission dialog when permanently denied
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Location permission is permanently denied. Please enable it in your device settings to use GPS tracking and location sharing features.'**
|
||
String get locationPermissionDialogContent;
|
||
|
||
/// Button to open device settings
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Open Settings'**
|
||
String get openSettings;
|
||
|
||
/// Success message when location permission is granted
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Location permission granted!'**
|
||
String get locationPermissionGranted;
|
||
|
||
/// Info message about location permission requirement
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Location permission is required for GPS tracking and location sharing.'**
|
||
String get locationPermissionRequiredForGps;
|
||
|
||
/// Info message when permission is already granted
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Location permission is already granted.'**
|
||
String get locationPermissionAlreadyGranted;
|
||
|
||
/// SAR Navy Blue theme name
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'SAR Navy Blue'**
|
||
String get sarNavyBlue;
|
||
|
||
/// Description for SAR Navy Blue theme
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Professional/Operations Mode'**
|
||
String get sarNavyBlueDescription;
|
||
|
||
/// Title for recipient selector sheet
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Select Recipient'**
|
||
String get selectRecipient;
|
||
|
||
/// Subtitle for public channel option
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Broadcast to all nearby'**
|
||
String get broadcastToAllNearby;
|
||
|
||
/// Placeholder text for recipient search field
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Search recipients...'**
|
||
String get searchRecipients;
|
||
|
||
/// Message when no contacts match search
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'No contacts found'**
|
||
String get noContactsFound;
|
||
|
||
/// Message when no rooms match search
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'No rooms found'**
|
||
String get noRoomsFound;
|
||
|
||
/// Message when no recipients exist (contacts, rooms, or channels)
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'No recipients available'**
|
||
String get noRecipientsAvailable;
|
||
|
||
/// Message when no channels match the search
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'No channels found'**
|
||
String get noChannelsFound;
|
||
|
||
/// Notification title for new message
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'New message'**
|
||
String get newMessage;
|
||
|
||
/// Channel label in notifications
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Channel'**
|
||
String get channel;
|
||
|
||
/// Sample team member name
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Police Lead'**
|
||
String get samplePoliceLead;
|
||
|
||
/// Sample team member name
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Drone Operator'**
|
||
String get sampleDroneOperator;
|
||
|
||
/// Sample team member name
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Firefighter'**
|
||
String get sampleFirefighterAlpha;
|
||
|
||
/// Sample team member name
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Medic'**
|
||
String get sampleMedicCharlie;
|
||
|
||
/// Sample team member name
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Command'**
|
||
String get sampleCommandDelta;
|
||
|
||
/// Sample team member name
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Fire Engine'**
|
||
String get sampleFireEngine;
|
||
|
||
/// Sample team member name
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Air Support'**
|
||
String get sampleAirSupport;
|
||
|
||
/// Sample team member name
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Base Coordinator'**
|
||
String get sampleBaseCoordinator;
|
||
|
||
/// Emergency channel name
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Emergency'**
|
||
String get channelEmergency;
|
||
|
||
/// Coordination channel name
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Coordination'**
|
||
String get channelCoordination;
|
||
|
||
/// Updates channel name
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Updates'**
|
||
String get channelUpdates;
|
||
|
||
/// Sample sender name
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Sample Team Member'**
|
||
String get sampleTeamMember;
|
||
|
||
/// Sample sender name
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Sample Scout'**
|
||
String get sampleScout;
|
||
|
||
/// Sample sender name
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Sample Base'**
|
||
String get sampleBase;
|
||
|
||
/// Sample sender name
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Sample Searcher'**
|
||
String get sampleSearcher;
|
||
|
||
/// Sample object note
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **' Backpack found - blue color'**
|
||
String get sampleObjectBackpack;
|
||
|
||
/// Sample object note
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **' Vehicle abandoned - check for owner'**
|
||
String get sampleObjectVehicle;
|
||
|
||
/// Sample object note
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **' Camping equipment discovered'**
|
||
String get sampleObjectCamping;
|
||
|
||
/// Sample object note
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **' Trail marker found off-path'**
|
||
String get sampleObjectTrailMarker;
|
||
|
||
/// Sample channel message
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'All teams check in'**
|
||
String get sampleMsgAllTeamsCheckIn;
|
||
|
||
/// Sample channel message
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Weather update: Clear skies, temp 18°C'**
|
||
String get sampleMsgWeatherUpdate;
|
||
|
||
/// Sample channel message
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Base camp established at staging area'**
|
||
String get sampleMsgBaseCamp;
|
||
|
||
/// Sample channel message
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Team moving to sector 2'**
|
||
String get sampleMsgTeamAlpha;
|
||
|
||
/// Sample channel message
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Radio check - all stations respond'**
|
||
String get sampleMsgRadioCheck;
|
||
|
||
/// Sample channel message
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Water supply available at checkpoint 3'**
|
||
String get sampleMsgWaterSupply;
|
||
|
||
/// Sample channel message
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Team reporting: sector 1 clear'**
|
||
String get sampleMsgTeamBravo;
|
||
|
||
/// Sample channel message
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'ETA to rally point: 15 minutes'**
|
||
String get sampleMsgEtaRallyPoint;
|
||
|
||
/// Sample channel message
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Supply drop confirmed for 14:00'**
|
||
String get sampleMsgSupplyDrop;
|
||
|
||
/// Sample channel message
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Drone survey completed - no findings'**
|
||
String get sampleMsgDroneSurvey;
|
||
|
||
/// Sample channel message
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Team requesting backup'**
|
||
String get sampleMsgTeamCharlie;
|
||
|
||
/// Sample channel message
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'All units: maintain radio discipline'**
|
||
String get sampleMsgRadioDiscipline;
|
||
|
||
/// Sample emergency message
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'URGENT: Medical assistance needed at sector 4'**
|
||
String get sampleMsgUrgentMedical;
|
||
|
||
/// Sample emergency message note
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **' Adult male, conscious'**
|
||
String get sampleMsgAdultMale;
|
||
|
||
/// Sample emergency message
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Fire spotted - coordinates incoming'**
|
||
String get sampleMsgFireSpotted;
|
||
|
||
/// Sample emergency message note
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **' Spreading rapidly!'**
|
||
String get sampleMsgSpreadingRapidly;
|
||
|
||
/// Sample emergency message
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'PRIORITY: Need helicopter support'**
|
||
String get sampleMsgPriorityHelicopter;
|
||
|
||
/// Sample emergency message
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Medical team en route to your location'**
|
||
String get sampleMsgMedicalTeamEnRoute;
|
||
|
||
/// Sample emergency message
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Evac helicopter ETA 10 minutes'**
|
||
String get sampleMsgEvacHelicopter;
|
||
|
||
/// Sample emergency message
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Emergency resolved - all clear'**
|
||
String get sampleMsgEmergencyResolved;
|
||
|
||
/// Sample emergency message note
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **' Emergency staging area'**
|
||
String get sampleMsgEmergencyStagingArea;
|
||
|
||
/// Sample emergency message
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Emergency services notified and responding'**
|
||
String get sampleMsgEmergencyServices;
|
||
|
||
/// Sample team name
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Team Lead'**
|
||
String get sampleAlphaTeamLead;
|
||
|
||
/// Sample team name
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Scout'**
|
||
String get sampleBravoScout;
|
||
|
||
/// Sample team name
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Medic'**
|
||
String get sampleCharlieMedic;
|
||
|
||
/// Sample team name
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Navigator'**
|
||
String get sampleDeltaNavigator;
|
||
|
||
/// Sample team name
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Support'**
|
||
String get sampleEchoSupport;
|
||
|
||
/// Sample team name
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Base Command'**
|
||
String get sampleBaseCommand;
|
||
|
||
/// Sample team name
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Field Coordinator'**
|
||
String get sampleFieldCoordinator;
|
||
|
||
/// Sample team name
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Medical Team'**
|
||
String get sampleMedicalTeam;
|
||
|
||
/// Label for map drawing messages
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Map Drawing'**
|
||
String get mapDrawing;
|
||
|
||
/// Option to navigate to drawing on map
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Navigate to Drawing'**
|
||
String get navigateToDrawing;
|
||
|
||
/// Option to copy coordinates to clipboard
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Copy Coordinates'**
|
||
String get copyCoordinates;
|
||
|
||
/// Option to hide drawing from map
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Hide from Map'**
|
||
String get hideFromMap;
|
||
|
||
/// Label for line type drawings
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Line Drawing'**
|
||
String get lineDrawing;
|
||
|
||
/// Label for rectangle type drawings
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Rectangle Drawing'**
|
||
String get rectangleDrawing;
|
||
|
||
/// Label for manual coordinate input toggle
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Manual Coordinates'**
|
||
String get manualCoordinates;
|
||
|
||
/// Description for manual coordinate input option
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Enter coordinates manually'**
|
||
String get enterCoordinatesManually;
|
||
|
||
/// Label for latitude input field
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Latitude'**
|
||
String get latitudeLabel;
|
||
|
||
/// Label for longitude input field
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Longitude'**
|
||
String get longitudeLabel;
|
||
|
||
/// Example coordinate format hint
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Example: 46.0569, 14.5058'**
|
||
String get exampleCoordinates;
|
||
|
||
/// Title for share single drawing dialog
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Share Drawing'**
|
||
String get shareDrawing;
|
||
|
||
/// Subtitle for public channel sharing option
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Share with all nearby devices'**
|
||
String get shareWithAllNearbyDevices;
|
||
|
||
/// Header for room sharing section
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Share to Room'**
|
||
String get shareToRoom;
|
||
|
||
/// Subtitle for room sharing option
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Send to persistent room storage'**
|
||
String get sendToPersistentStorage;
|
||
|
||
/// Confirmation message for deleting a single drawing
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Are you sure you want to delete this drawing?'**
|
||
String get deleteDrawingConfirm;
|
||
|
||
/// Success message after deleting a drawing
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Drawing deleted'**
|
||
String get drawingDeleted;
|
||
|
||
/// Header showing count of user's drawings
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Your Drawings ({count})'**
|
||
String yourDrawingsCount(int count);
|
||
|
||
/// Status label for shared drawings
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Shared'**
|
||
String get shared;
|
||
|
||
/// Line drawing type label
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Line'**
|
||
String get line;
|
||
|
||
/// Rectangle drawing type label
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Rectangle'**
|
||
String get rectangle;
|
||
|
||
/// Title for update dialog when new version is available
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Update Available'**
|
||
String get updateAvailable;
|
||
|
||
/// Label for current app version
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Current'**
|
||
String get currentVersion;
|
||
|
||
/// Label for latest available app version
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Latest'**
|
||
String get latestVersion;
|
||
|
||
/// Button to download app update
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Download'**
|
||
String get downloadUpdate;
|
||
|
||
/// Button to dismiss update dialog
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Later'**
|
||
String get updateLater;
|
||
|
||
/// Label for cadastral parcels WMS overlay layer
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Cadastral Parcels'**
|
||
String get cadastralParcels;
|
||
|
||
/// Label for forest roads WMS overlay layer
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Forest Roads'**
|
||
String get forestRoads;
|
||
|
||
/// Section header for WMS overlay layers in layer selector
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'WMS Overlays'**
|
||
String get wmsOverlays;
|
||
|
||
/// Label for hiking/mountain trails WMS overlay layer
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Hiking Trails'**
|
||
String get hikingTrails;
|
||
|
||
/// Label for main roads WMS overlay layer
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Main Roads'**
|
||
String get mainRoads;
|
||
|
||
/// Label for house numbers WMS overlay layer
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'House Numbers'**
|
||
String get houseNumbers;
|
||
|
||
/// Label for fire hazard risk zones WMS overlay layer
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Fire Hazard Zones'**
|
||
String get fireHazardZones;
|
||
|
||
/// Label for historical forest fires WMS overlay layer
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Historical Fires'**
|
||
String get historicalFires;
|
||
|
||
/// Label for firebreaks WMS overlay layer
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Firebreaks'**
|
||
String get firebreaks;
|
||
|
||
/// Label for Kras fire zones WMS overlay layer
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Kras Fire Zones'**
|
||
String get krasFireZones;
|
||
|
||
/// Label for geographic place names WMS overlay layer
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Place Names'**
|
||
String get placeNames;
|
||
|
||
/// Label for municipality borders WMS overlay layer
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Municipality Borders'**
|
||
String get municipalityBorders;
|
||
|
||
/// Label for DTK25 topographic base map layer
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Topographic Map 1:25000'**
|
||
String get topographicMap;
|
||
|
||
/// Header for recent messages overlay on map in fullscreen mode
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Recent Messages'**
|
||
String get recentMessages;
|
||
|
||
/// Button to add a new channel
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Add Channel'**
|
||
String get addChannel;
|
||
|
||
/// Label for channel name field
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Channel Name'**
|
||
String get channelName;
|
||
|
||
/// Hint for channel name field
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'e.g., Rescue Team Alpha'**
|
||
String get channelNameHint;
|
||
|
||
/// Label for channel secret field
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Channel Secret'**
|
||
String get channelSecret;
|
||
|
||
/// Hint for channel secret field
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Shared password for this channel'**
|
||
String get channelSecretHint;
|
||
|
||
/// Help text explaining channel secret
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'This secret must be shared with all team members who need access to this channel'**
|
||
String get channelSecretHelp;
|
||
|
||
/// Information banner explaining hash and private channel types
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'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.'**
|
||
String get channelTypesInfo;
|
||
|
||
/// Help text for hash channels (# prefix)
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Hash channel: Secret will be auto-generated from the channel name. Anyone using the same name will join the same channel.'**
|
||
String get hashChannelInfo;
|
||
|
||
/// Validation error for empty channel name
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Channel name is required'**
|
||
String get channelNameRequired;
|
||
|
||
/// Validation error for channel name too long
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Channel name must be 31 characters or less'**
|
||
String get channelNameTooLong;
|
||
|
||
/// Validation error for empty channel secret
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Channel secret is required'**
|
||
String get channelSecretRequired;
|
||
|
||
/// Validation error for channel secret too long
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Channel secret must be 32 characters or less'**
|
||
String get channelSecretTooLong;
|
||
|
||
/// Validation error for non-ASCII characters
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Only ASCII characters are allowed'**
|
||
String get invalidAsciiCharacters;
|
||
|
||
/// Success message after creating channel
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Channel created successfully'**
|
||
String get channelCreatedSuccessfully;
|
||
|
||
/// Error message when channel creation fails
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Failed to create channel: {error}'**
|
||
String channelCreationFailed(String error);
|
||
|
||
/// Delete channel button/menu item
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Delete Channel'**
|
||
String get deleteChannel;
|
||
|
||
/// Confirmation dialog when deleting a channel
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Are you sure you want to delete channel \"{channelName}\"? This action cannot be undone.'**
|
||
String deleteChannelConfirmation(String channelName);
|
||
|
||
/// Success message after deleting channel
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Channel deleted successfully'**
|
||
String get channelDeletedSuccessfully;
|
||
|
||
/// Error message when channel deletion fails
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Failed to delete channel: {error}'**
|
||
String channelDeletionFailed(String error);
|
||
|
||
/// Button text for creating a channel
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Create Channel'**
|
||
String get createChannel;
|
||
|
||
/// Wizard back button text
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Back'**
|
||
String get wizardBack;
|
||
|
||
/// Wizard skip button text
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Skip'**
|
||
String get wizardSkip;
|
||
|
||
/// Wizard next button text
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Next'**
|
||
String get wizardNext;
|
||
|
||
/// Wizard final button text to complete onboarding
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Get Started'**
|
||
String get wizardGetStarted;
|
||
|
||
/// Welcome wizard first page title
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Welcome to MeshCore SAR'**
|
||
String get wizardWelcomeTitle;
|
||
|
||
/// Settings option to re-show welcome wizard
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'View Welcome Tutorial'**
|
||
String get viewWelcomeTutorial;
|
||
|
||
/// Destination option to send SAR marker to all team contacts
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'All Team Contacts'**
|
||
String get allTeamContacts;
|
||
|
||
/// Information about sending to all contacts
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Direct messages with ACKs. Sent to {count} team members.'**
|
||
String directMessagesInfo(int count);
|
||
|
||
/// Success message after sending SAR marker to all contacts
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'SAR marker sent to {count} contacts'**
|
||
String sarMarkerSentToContacts(int count);
|
||
|
||
/// Message when there are no chat contacts to send to
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'No team contacts available'**
|
||
String get noContactsAvailable;
|
||
|
||
/// No description provided for @reply.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Reply'**
|
||
String get reply;
|
||
|
||
/// No description provided for @technicalDetails.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Details'**
|
||
String get technicalDetails;
|
||
|
||
/// No description provided for @messageTechnicalDetails.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Message details'**
|
||
String get messageTechnicalDetails;
|
||
|
||
/// No description provided for @linkQuality.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Link quality'**
|
||
String get linkQuality;
|
||
|
||
/// No description provided for @delivery.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Delivery'**
|
||
String get delivery;
|
||
|
||
/// No description provided for @status.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Status'**
|
||
String get status;
|
||
|
||
/// No description provided for @expectedAckTag.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Expected ACK tag'**
|
||
String get expectedAckTag;
|
||
|
||
/// No description provided for @roundTrip.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Round-trip'**
|
||
String get roundTrip;
|
||
|
||
/// No description provided for @retryAttempt.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Retry attempt'**
|
||
String get retryAttempt;
|
||
|
||
/// No description provided for @floodFallback.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Flood fallback'**
|
||
String get floodFallback;
|
||
|
||
/// No description provided for @identity.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Identity'**
|
||
String get identity;
|
||
|
||
/// No description provided for @messageId.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Message ID'**
|
||
String get messageId;
|
||
|
||
/// No description provided for @sender.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Sender'**
|
||
String get sender;
|
||
|
||
/// No description provided for @senderKey.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Sender key'**
|
||
String get senderKey;
|
||
|
||
/// No description provided for @recipient.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Recipient'**
|
||
String get recipient;
|
||
|
||
/// No description provided for @recipientKey.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Recipient key'**
|
||
String get recipientKey;
|
||
|
||
/// No description provided for @voice.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Voice'**
|
||
String get voice;
|
||
|
||
/// No description provided for @voiceId.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Voice ID'**
|
||
String get voiceId;
|
||
|
||
/// No description provided for @envelope.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Envelope'**
|
||
String get envelope;
|
||
|
||
/// No description provided for @sessionProgress.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Session progress'**
|
||
String get sessionProgress;
|
||
|
||
/// No description provided for @complete.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Complete'**
|
||
String get complete;
|
||
|
||
/// No description provided for @rawDump.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Raw dump'**
|
||
String get rawDump;
|
||
|
||
/// No description provided for @cannotRetryMissingRecipient.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Cannot retry: recipient information missing'**
|
||
String get cannotRetryMissingRecipient;
|
||
|
||
/// No description provided for @voiceUnavailable.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Voice unavailable right now'**
|
||
String get voiceUnavailable;
|
||
|
||
/// No description provided for @requestingVoice.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Requesting voice'**
|
||
String get requestingVoice;
|
||
|
||
/// Generic device label
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'device'**
|
||
String get device;
|
||
|
||
/// Generic change action
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Change'**
|
||
String get change;
|
||
|
||
/// Updated onboarding overview description
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'This app combines MeshCore messaging, SAR field updates, discovery, mapping, and device tools in one place.'**
|
||
String get wizardOverviewDescription;
|
||
|
||
/// Updated onboarding overview feature 1
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Send direct, room, and channel messages from the main Messages tab.'**
|
||
String get wizardOverviewFeature1;
|
||
|
||
/// Updated onboarding overview feature 2
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Share live location to a private channel, plus SAR markers, map drawings, voice clips, and images over the mesh.'**
|
||
String get wizardOverviewFeature2;
|
||
|
||
/// Updated onboarding overview feature 3
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Connect over BLE, WiFi, or Serial, then manage the companion radio from inside the app.'**
|
||
String get wizardOverviewFeature3;
|
||
|
||
/// Updated onboarding messaging page title
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Messaging and Field Reports'**
|
||
String get wizardMessagingTitle;
|
||
|
||
/// Updated onboarding messaging page description
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Messages are more than plain text here. The app already supports several operational payloads and transfer workflows.'**
|
||
String get wizardMessagingDescription;
|
||
|
||
/// Updated onboarding messaging feature 1
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Send direct messages, room posts, and channel traffic from one composer.'**
|
||
String get wizardMessagingFeature1;
|
||
|
||
/// Updated onboarding messaging feature 2
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Create SAR updates and reusable SAR templates for common field reports.'**
|
||
String get wizardMessagingFeature2;
|
||
|
||
/// Updated onboarding messaging feature 3
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Transfer voice sessions and images, with progress and airtime estimates in the UI.'**
|
||
String get wizardMessagingFeature3;
|
||
|
||
/// Onboarding connect device page title
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Connect device'**
|
||
String get wizardConnectDeviceTitle;
|
||
|
||
/// Onboarding connect device page description
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Connect your MeshCore radio, choose a name, and apply a radio preset before continuing.'**
|
||
String get wizardConnectDeviceDescription;
|
||
|
||
/// Onboarding setup badge label
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Setup'**
|
||
String get wizardSetupBadge;
|
||
|
||
/// Onboarding overview badge label
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Overview'**
|
||
String get wizardOverviewBadge;
|
||
|
||
/// Onboarding connection status when connected
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Connected to {deviceName}'**
|
||
String wizardConnectedToDevice(String deviceName);
|
||
|
||
/// Onboarding connection status when disconnected
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'No device connected yet'**
|
||
String get wizardNoDeviceConnected;
|
||
|
||
/// Onboarding skip current setup step action
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Skip for now'**
|
||
String get wizardSkipForNow;
|
||
|
||
/// Onboarding device name field label
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Device name'**
|
||
String get wizardDeviceNameLabel;
|
||
|
||
/// Onboarding device name field helper text
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'This name is advertised to other MeshCore users.'**
|
||
String get wizardDeviceNameHelp;
|
||
|
||
/// Onboarding config region field label
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Config region'**
|
||
String get wizardConfigRegionLabel;
|
||
|
||
/// Onboarding config region helper text
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Uses the full official MeshCore preset list. Default is EU/UK (Narrow).'**
|
||
String get wizardConfigRegionHelp;
|
||
|
||
/// Onboarding preset note 1
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Make sure the selected preset matches your local radio regulations.'**
|
||
String get wizardPresetNote1;
|
||
|
||
/// Onboarding preset note 2
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'The list matches the official MeshCore config tool preset feed.'**
|
||
String get wizardPresetNote2;
|
||
|
||
/// Onboarding preset note 3
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'EU/UK (Narrow) stays selected by default for onboarding.'**
|
||
String get wizardPresetNote3;
|
||
|
||
/// Onboarding saving button label
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Saving...'**
|
||
String get wizardSaving;
|
||
|
||
/// Onboarding save and continue button label
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Save and continue'**
|
||
String get wizardSaveAndContinue;
|
||
|
||
/// Onboarding validation when device name is missing
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Enter a device name before continuing.'**
|
||
String get wizardEnterDeviceName;
|
||
|
||
/// Onboarding success message after saving device setup
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Saved {deviceName} with {presetName}.'**
|
||
String wizardDeviceSetupSaved(String deviceName, String presetName);
|
||
|
||
/// Updated onboarding network page title
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Contacts, Rooms, and Repeaters'**
|
||
String get wizardNetworkTitle;
|
||
|
||
/// Updated onboarding network page description
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'The Contacts and Discovery flows help you find nearby nodes, store repeaters, and manage the routes you learn over time.'**
|
||
String get wizardNetworkDescription;
|
||
|
||
/// Updated onboarding network feature 1
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Discover repeaters and sensors, then review team members, rooms, channels, and pending adverts in one list.'**
|
||
String get wizardNetworkFeature1;
|
||
|
||
/// Updated onboarding network feature 2
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Use smart ping, room login, learned paths, and route reset tools when connectivity gets messy.'**
|
||
String get wizardNetworkFeature2;
|
||
|
||
/// Updated onboarding network feature 3
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Add new repeaters right after you connect, then create channels and manage network destinations without leaving the app.'**
|
||
String get wizardNetworkFeature3;
|
||
|
||
/// Updated onboarding map page title
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Map, Trails, and Shared Geometry'**
|
||
String get wizardMapOpsTitle;
|
||
|
||
/// Updated onboarding map page description
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'The app map is tied directly into messaging, tracking, and SAR overlays instead of being a separate viewer.'**
|
||
String get wizardMapOpsDescription;
|
||
|
||
/// Updated onboarding map feature 1
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Track your own position, teammate locations, and share live location to a private channel from the channel menu.'**
|
||
String get wizardMapOpsFeature1;
|
||
|
||
/// Updated onboarding map feature 2
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Open drawings from messages, preview them inline, and remove them from the map when needed.'**
|
||
String get wizardMapOpsFeature2;
|
||
|
||
/// Updated onboarding map feature 3
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Use repeater map views and shared overlays to understand network reach in the field.'**
|
||
String get wizardMapOpsFeature3;
|
||
|
||
/// Updated onboarding tools page title
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Tools Beyond Messaging'**
|
||
String get wizardToolsTitle;
|
||
|
||
/// Updated onboarding tools page description
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'There is more here than the four main tabs. The app also includes configuration, diagnostics, and optional sensor workflows.'**
|
||
String get wizardToolsDescription;
|
||
|
||
/// Updated onboarding tools feature 1
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Open device config to change radio settings, telemetry, TX power, and companion details.'**
|
||
String get wizardToolsFeature1;
|
||
|
||
/// Updated onboarding tools feature 2
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Enable the Sensors tab when you want watched sensor dashboards and quick refresh actions.'**
|
||
String get wizardToolsFeature2;
|
||
|
||
/// Updated onboarding tools feature 3
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Use live traffic, packet logs, spectrum scan, and developer diagnostics when troubleshooting the mesh.'**
|
||
String get wizardToolsFeature3;
|
||
|
||
/// Title for the prompt shown after a successful device connection
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Discover repeaters now?'**
|
||
String get postConnectDiscoveryTitle;
|
||
|
||
/// Body text for the prompt shown after a successful device connection
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Run repeater discovery right after connecting so you can see nearby MeshCore nodes and add them to your network faster.'**
|
||
String get postConnectDiscoveryDescription;
|
||
|
||
/// Contact actions label when already in sensors
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'In Sensors'**
|
||
String get contactInSensors;
|
||
|
||
/// Contact actions label to add to sensors
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Add to Sensors'**
|
||
String get contactAddToSensors;
|
||
|
||
/// Contact actions label to set route path
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Set path'**
|
||
String get contactSetPath;
|
||
|
||
/// Snackbar after adding contact to sensors
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'{contactName} added to Sensors'**
|
||
String contactAddedToSensors(String contactName);
|
||
|
||
/// Error when clearing a contact route fails
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Failed to clear route: {error}'**
|
||
String contactFailedToClearRoute(String error);
|
||
|
||
/// Snackbar after route is cleared
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Route cleared'**
|
||
String get contactRouteCleared;
|
||
|
||
/// Snackbar after route is set
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Route set: {route}'**
|
||
String contactRouteSet(String route);
|
||
|
||
/// Error when setting a contact route fails
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Failed to set route: {error}'**
|
||
String contactFailedToSetRoute(String error);
|
||
|
||
/// Received signal strength indicator
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'RSSI'**
|
||
String get rssi;
|
||
|
||
/// Signal-to-noise ratio
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'SNR'**
|
||
String get snr;
|
||
|
||
/// No description provided for @ackTimeout.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'ACK timeout'**
|
||
String get ackTimeout;
|
||
|
||
/// No description provided for @opcode.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Opcode'**
|
||
String get opcode;
|
||
|
||
/// No description provided for @payload.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Payload'**
|
||
String get payload;
|
||
|
||
/// No description provided for @hops.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Hops'**
|
||
String get hops;
|
||
|
||
/// No description provided for @hashSize.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Hash size'**
|
||
String get hashSize;
|
||
|
||
/// No description provided for @pathBytes.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Path bytes'**
|
||
String get pathBytes;
|
||
|
||
/// No description provided for @selectedPath.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Selected path'**
|
||
String get selectedPath;
|
||
|
||
/// No description provided for @estimatedTx.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Estimated tx'**
|
||
String get estimatedTx;
|
||
|
||
/// No description provided for @senderToReceipt.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Sender to receipt'**
|
||
String get senderToReceipt;
|
||
|
||
/// No description provided for @receivedCopies.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Received copies'**
|
||
String get receivedCopies;
|
||
|
||
/// No description provided for @retryCause.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Retry cause'**
|
||
String get retryCause;
|
||
|
||
/// No description provided for @retryMode.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Retry mode'**
|
||
String get retryMode;
|
||
|
||
/// No description provided for @retryResult.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Retry result'**
|
||
String get retryResult;
|
||
|
||
/// No description provided for @lastRetry.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Last retry'**
|
||
String get lastRetry;
|
||
|
||
/// No description provided for @rxPackets.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'RX packets'**
|
||
String get rxPackets;
|
||
|
||
/// No description provided for @mesh.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Mesh'**
|
||
String get mesh;
|
||
|
||
/// No description provided for @rate.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Rate'**
|
||
String get rate;
|
||
|
||
/// No description provided for @window.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Window'**
|
||
String get window;
|
||
|
||
/// No description provided for @posttxDelay.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Post-tx delay'**
|
||
String get posttxDelay;
|
||
|
||
/// No description provided for @bandpass.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Band-pass'**
|
||
String get bandpass;
|
||
|
||
/// No description provided for @bandpassFilterVoice.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Band-pass filter voice'**
|
||
String get bandpassFilterVoice;
|
||
|
||
/// No description provided for @active.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Active'**
|
||
String get active;
|
||
|
||
/// No description provided for @addContact.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Add Contact'**
|
||
String get addContact;
|
||
|
||
/// No description provided for @all.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'All'**
|
||
String get all;
|
||
|
||
/// No description provided for @clearAllLabel.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Clear all'**
|
||
String get clearAllLabel;
|
||
|
||
/// No description provided for @clearFilters.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Clear filters'**
|
||
String get clearFilters;
|
||
|
||
/// No description provided for @clearRoute.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Clear Route'**
|
||
String get clearRoute;
|
||
|
||
/// No description provided for @clearMessages.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Clear Messages'**
|
||
String get clearMessages;
|
||
|
||
/// No description provided for @clearScale.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Clear scale'**
|
||
String get clearScale;
|
||
|
||
/// No description provided for @clearDiscoveries.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Clear discoveries'**
|
||
String get clearDiscoveries;
|
||
|
||
/// No description provided for @clearOnlineTraceDatabase.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Clear online trace database'**
|
||
String get clearOnlineTraceDatabase;
|
||
|
||
/// No description provided for @clearAllChannels.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Clear all channels'**
|
||
String get clearAllChannels;
|
||
|
||
/// No description provided for @clearAllContacts.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Clear all contacts'**
|
||
String get clearAllContacts;
|
||
|
||
/// No description provided for @clearChannels.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Clear channels'**
|
||
String get clearChannels;
|
||
|
||
/// No description provided for @clearContacts.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Clear contacts'**
|
||
String get clearContacts;
|
||
|
||
/// No description provided for @clearPathOnMaxRetry.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Clear path on max retry'**
|
||
String get clearPathOnMaxRetry;
|
||
|
||
/// No description provided for @create.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Create'**
|
||
String get create;
|
||
|
||
/// No description provided for @custom.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Custom'**
|
||
String get custom;
|
||
|
||
/// No description provided for @defaultValue.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Default'**
|
||
String get defaultValue;
|
||
|
||
/// No description provided for @duplicate.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Duplicate'**
|
||
String get duplicate;
|
||
|
||
/// No description provided for @editName.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Edit name'**
|
||
String get editName;
|
||
|
||
/// No description provided for @open.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Open'**
|
||
String get open;
|
||
|
||
/// No description provided for @paste.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Paste'**
|
||
String get paste;
|
||
|
||
/// No description provided for @preview.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Preview'**
|
||
String get preview;
|
||
|
||
/// No description provided for @remove.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Remove'**
|
||
String get remove;
|
||
|
||
/// No description provided for @rename.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Rename'**
|
||
String get rename;
|
||
|
||
/// No description provided for @resolveAll.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Resolve all'**
|
||
String get resolveAll;
|
||
|
||
/// No description provided for @send.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Send'**
|
||
String get send;
|
||
|
||
/// No description provided for @sendAnyway.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Send anyway'**
|
||
String get sendAnyway;
|
||
|
||
/// No description provided for @share.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Share'**
|
||
String get share;
|
||
|
||
/// No description provided for @trace.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Trace'**
|
||
String get trace;
|
||
|
||
/// No description provided for @discovery.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Discovery'**
|
||
String get discovery;
|
||
|
||
/// No description provided for @discoverRepeaters.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Discover repeaters'**
|
||
String get discoverRepeaters;
|
||
|
||
/// No description provided for @discoverSensors.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Discover sensors'**
|
||
String get discoverSensors;
|
||
|
||
/// No description provided for @repeaterDiscoverySent.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Repeater discovery sent'**
|
||
String get repeaterDiscoverySent;
|
||
|
||
/// No description provided for @sensorDiscoverySent.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Sensor discovery sent'**
|
||
String get sensorDiscoverySent;
|
||
|
||
/// No description provided for @clearedPendingDiscoveries.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Cleared pending discoveries.'**
|
||
String get clearedPendingDiscoveries;
|
||
|
||
/// No description provided for @autoDiscovery.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Auto discovery'**
|
||
String get autoDiscovery;
|
||
|
||
/// No description provided for @enableAutomaticAdding.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Enable automatic adding'**
|
||
String get enableAutomaticAdding;
|
||
|
||
/// No description provided for @autoaddRepeaters.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Auto-add repeaters'**
|
||
String get autoaddRepeaters;
|
||
|
||
/// No description provided for @autoaddRoomServers.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Auto-add room servers'**
|
||
String get autoaddRoomServers;
|
||
|
||
/// No description provided for @autoaddSensors.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Auto-add sensors'**
|
||
String get autoaddSensors;
|
||
|
||
/// No description provided for @autoaddUsers.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Auto-add users'**
|
||
String get autoaddUsers;
|
||
|
||
/// No description provided for @overwriteOldestWhenFull.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Overwrite oldest when full'**
|
||
String get overwriteOldestWhenFull;
|
||
|
||
/// No description provided for @storage.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Storage'**
|
||
String get storage;
|
||
|
||
/// No description provided for @dangerZone.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Danger zone'**
|
||
String get dangerZone;
|
||
|
||
/// No description provided for @profiles.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Profiles'**
|
||
String get profiles;
|
||
|
||
/// No description provided for @favourites.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Favourites'**
|
||
String get favourites;
|
||
|
||
/// No description provided for @sensors.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Sensors'**
|
||
String get sensors;
|
||
|
||
/// No description provided for @others.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Others'**
|
||
String get others;
|
||
|
||
/// No description provided for @gpsModule.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'GPS Module'**
|
||
String get gpsModule;
|
||
|
||
/// No description provided for @liveTraffic.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Live Traffic'**
|
||
String get liveTraffic;
|
||
|
||
/// No description provided for @repeatersMap.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Repeaters Map'**
|
||
String get repeatersMap;
|
||
|
||
/// No description provided for @blePacketLogs.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'BLE Packet Logs'**
|
||
String get blePacketLogs;
|
||
|
||
/// No description provided for @onlineTraceDatabase.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Online trace database'**
|
||
String get onlineTraceDatabase;
|
||
|
||
/// No description provided for @routePathByteSize.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Route path byte size'**
|
||
String get routePathByteSize;
|
||
|
||
/// No description provided for @messageNotifications.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Message notifications'**
|
||
String get messageNotifications;
|
||
|
||
/// No description provided for @sarAlerts.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'SAR alerts'**
|
||
String get sarAlerts;
|
||
|
||
/// No description provided for @discoveryNotifications.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Discovery notifications'**
|
||
String get discoveryNotifications;
|
||
|
||
/// No description provided for @updateNotifications.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Update notifications'**
|
||
String get updateNotifications;
|
||
|
||
/// No description provided for @muteWhileAppIsOpen.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Mute while app is open'**
|
||
String get muteWhileAppIsOpen;
|
||
|
||
/// No description provided for @disableContacts.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Disable Contacts'**
|
||
String get disableContacts;
|
||
|
||
/// No description provided for @enableSensorsTab.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Enable Sensors tab'**
|
||
String get enableSensorsTab;
|
||
|
||
/// No description provided for @enableProfiles.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Enable Profiles'**
|
||
String get enableProfiles;
|
||
|
||
/// No description provided for @nearestRepeaterFallback.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Nearest repeater fallback'**
|
||
String get nearestRepeaterFallback;
|
||
|
||
/// No description provided for @deleteAllStoredMessageHistory.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Delete all stored message history'**
|
||
String get deleteAllStoredMessageHistory;
|
||
|
||
/// No description provided for @messageFontSize.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Message font size'**
|
||
String get messageFontSize;
|
||
|
||
/// No description provided for @rotateMapWithHeading.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Rotate map with heading'**
|
||
String get rotateMapWithHeading;
|
||
|
||
/// No description provided for @showMapDebugInfo.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Show map debug info'**
|
||
String get showMapDebugInfo;
|
||
|
||
/// No description provided for @openMapInFullscreen.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Open map in fullscreen'**
|
||
String get openMapInFullscreen;
|
||
|
||
/// No description provided for @showSarMarkersLabel.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Show SAR markers'**
|
||
String get showSarMarkersLabel;
|
||
|
||
/// No description provided for @hideRepeatersOnMap.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Hide repeaters on map'**
|
||
String get hideRepeatersOnMap;
|
||
|
||
/// No description provided for @setMapScale.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Set map scale'**
|
||
String get setMapScale;
|
||
|
||
/// No description provided for @customMapScaleSaved.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Custom map scale saved'**
|
||
String get customMapScaleSaved;
|
||
|
||
/// No description provided for @voiceBitrate.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Voice bitrate'**
|
||
String get voiceBitrate;
|
||
|
||
/// No description provided for @voiceCompressor.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Voice compressor'**
|
||
String get voiceCompressor;
|
||
|
||
/// No description provided for @voiceLimiter.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Voice limiter'**
|
||
String get voiceLimiter;
|
||
|
||
/// No description provided for @micAutoGain.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Mic auto gain'**
|
||
String get micAutoGain;
|
||
|
||
/// No description provided for @echoCancellation.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Echo cancellation'**
|
||
String get echoCancellation;
|
||
|
||
/// No description provided for @noiseSuppression.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Noise suppression'**
|
||
String get noiseSuppression;
|
||
|
||
/// No description provided for @trimSilenceInVoiceMessages.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Trim silence in voice messages'**
|
||
String get trimSilenceInVoiceMessages;
|
||
|
||
/// No description provided for @compressor.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Compressor'**
|
||
String get compressor;
|
||
|
||
/// No description provided for @limiter.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Limiter'**
|
||
String get limiter;
|
||
|
||
/// No description provided for @autoGain.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Auto gain'**
|
||
String get autoGain;
|
||
|
||
/// No description provided for @echoCancel.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Echo cancel'**
|
||
String get echoCancel;
|
||
|
||
/// No description provided for @noiseSuppress.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Noise suppress'**
|
||
String get noiseSuppress;
|
||
|
||
/// No description provided for @silenceTrim.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Silence trim'**
|
||
String get silenceTrim;
|
||
|
||
/// No description provided for @maxImageSize.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Max image size'**
|
||
String get maxImageSize;
|
||
|
||
/// No description provided for @imageCompression.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Image compression'**
|
||
String get imageCompression;
|
||
|
||
/// No description provided for @grayscale.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Grayscale'**
|
||
String get grayscale;
|
||
|
||
/// No description provided for @ultraMode.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Ultra mode'**
|
||
String get ultraMode;
|
||
|
||
/// No description provided for @fastPrivateGpsUpdates.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Fast private GPS updates'**
|
||
String get fastPrivateGpsUpdates;
|
||
|
||
/// No description provided for @movementThreshold.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Movement threshold'**
|
||
String get movementThreshold;
|
||
|
||
/// No description provided for @fastGpsMovementThreshold.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Fast GPS movement threshold'**
|
||
String get fastGpsMovementThreshold;
|
||
|
||
/// No description provided for @fastGpsActiveuseInterval.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Fast GPS active-use interval'**
|
||
String get fastGpsActiveuseInterval;
|
||
|
||
/// No description provided for @activeuseUpdateInterval.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Active-use update interval'**
|
||
String get activeuseUpdateInterval;
|
||
|
||
/// No description provided for @repeatNearbyTraffic.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Repeat nearby traffic'**
|
||
String get repeatNearbyTraffic;
|
||
|
||
/// No description provided for @relayThroughRepeatersAcrossTheMesh.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Relay through repeaters across the mesh'**
|
||
String get relayThroughRepeatersAcrossTheMesh;
|
||
|
||
/// No description provided for @nearbyOnlyWithoutRepeaterFlooding.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Nearby only, without repeater flooding'**
|
||
String get nearbyOnlyWithoutRepeaterFlooding;
|
||
|
||
/// No description provided for @multihop.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Multi-hop'**
|
||
String get multihop;
|
||
|
||
/// No description provided for @createProfile.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Create Profile'**
|
||
String get createProfile;
|
||
|
||
/// No description provided for @renameProfile.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Rename Profile'**
|
||
String get renameProfile;
|
||
|
||
/// No description provided for @newProfile.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'New Profile'**
|
||
String get newProfile;
|
||
|
||
/// No description provided for @manageProfiles.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Manage profiles'**
|
||
String get manageProfiles;
|
||
|
||
/// No description provided for @enableProfilesToStartManagingThem.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Enable profiles to start managing them.'**
|
||
String get enableProfilesToStartManagingThem;
|
||
|
||
/// No description provided for @openMessage.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Open message'**
|
||
String get openMessage;
|
||
|
||
/// No description provided for @jumpToTheRelatedSarMessage.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Jump to the related SAR message'**
|
||
String get jumpToTheRelatedSarMessage;
|
||
|
||
/// No description provided for @removeSarMarker.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Remove SAR marker'**
|
||
String get removeSarMarker;
|
||
|
||
/// No description provided for @pleaseSelectADestinationToSendSarMarker.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Please select a destination to send SAR marker'**
|
||
String get pleaseSelectADestinationToSendSarMarker;
|
||
|
||
/// No description provided for @sarMarkerBroadcastToPublicChannel.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'SAR marker broadcast to public channel'**
|
||
String get sarMarkerBroadcastToPublicChannel;
|
||
|
||
/// No description provided for @sarMarkerSentToRoom.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'SAR marker sent to room'**
|
||
String get sarMarkerSentToRoom;
|
||
|
||
/// No description provided for @loadFromGallery.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Load from gallery'**
|
||
String get loadFromGallery;
|
||
|
||
/// No description provided for @replaceImage.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Replace image'**
|
||
String get replaceImage;
|
||
|
||
/// No description provided for @selectFromGallery.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Select from gallery'**
|
||
String get selectFromGallery;
|
||
|
||
/// No description provided for @team.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Team'**
|
||
String get team;
|
||
|
||
/// No description provided for @found.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Found'**
|
||
String get found;
|
||
|
||
/// No description provided for @staging.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Staging'**
|
||
String get staging;
|
||
|
||
/// No description provided for @object.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Object'**
|
||
String get object;
|
||
|
||
/// No description provided for @quiet.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Quiet'**
|
||
String get quiet;
|
||
|
||
/// No description provided for @busy.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Busy'**
|
||
String get busy;
|
||
|
||
/// No description provided for @searchMessages.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Search messages'**
|
||
String get searchMessages;
|
||
|
||
/// No description provided for @sendImageFromGallery.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Send image from gallery'**
|
||
String get sendImageFromGallery;
|
||
|
||
/// No description provided for @takePhoto.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Take photo'**
|
||
String get takePhoto;
|
||
|
||
/// No description provided for @allMessages.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'All messages'**
|
||
String get allMessages;
|
||
|
||
/// No description provided for @sendToPublicChannel.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Send to Public Channel?'**
|
||
String get sendToPublicChannel;
|
||
|
||
/// No description provided for @selectMarkerTypeAndDestination.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Select marker type and destination'**
|
||
String get selectMarkerTypeAndDestination;
|
||
|
||
/// No description provided for @noDestinationsAvailableLabel.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'No destinations available'**
|
||
String get noDestinationsAvailableLabel;
|
||
|
||
/// No description provided for @image.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Image'**
|
||
String get image;
|
||
|
||
/// No description provided for @format.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Format'**
|
||
String get format;
|
||
|
||
/// No description provided for @dimensions.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Dimensions'**
|
||
String get dimensions;
|
||
|
||
/// No description provided for @segments.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Segments'**
|
||
String get segments;
|
||
|
||
/// No description provided for @transfers.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Transfers'**
|
||
String get transfers;
|
||
|
||
/// No description provided for @downloadedBy.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Downloaded by'**
|
||
String get downloadedBy;
|
||
|
||
/// No description provided for @saveDiscoverySettings.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Save discovery settings'**
|
||
String get saveDiscoverySettings;
|
||
|
||
/// No description provided for @savePublicInfo.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Save public info'**
|
||
String get savePublicInfo;
|
||
|
||
/// No description provided for @saveRadioSettings.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Save radio settings'**
|
||
String get saveRadioSettings;
|
||
|
||
/// No description provided for @savePath.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Save Path'**
|
||
String get savePath;
|
||
|
||
/// No description provided for @wipeDeviceData.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Wipe device data'**
|
||
String get wipeDeviceData;
|
||
|
||
/// No description provided for @wipeDevice.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Wipe device'**
|
||
String get wipeDevice;
|
||
|
||
/// No description provided for @destructiveDeviceActions.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Destructive device actions.'**
|
||
String get destructiveDeviceActions;
|
||
|
||
/// No description provided for @chooseAPresetOrFinetuneCustomRadioSettings.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Choose a preset or fine-tune custom radio settings.'**
|
||
String get chooseAPresetOrFinetuneCustomRadioSettings;
|
||
|
||
/// No description provided for @used.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Used'**
|
||
String get used;
|
||
|
||
/// No description provided for @total.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Total'**
|
||
String get total;
|
||
|
||
/// No description provided for @renameValue.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Rename value'**
|
||
String get renameValue;
|
||
|
||
/// No description provided for @customizeFields.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Customize fields'**
|
||
String get customizeFields;
|
||
|
||
/// No description provided for @livePreview.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Live preview'**
|
||
String get livePreview;
|
||
|
||
/// No description provided for @refreshSchedule.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Refresh schedule'**
|
||
String get refreshSchedule;
|
||
|
||
/// No description provided for @noResponse.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'No response'**
|
||
String get noResponse;
|
||
|
||
/// No description provided for @refreshing.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Refreshing'**
|
||
String get refreshing;
|
||
|
||
/// No description provided for @unavailable.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Unavailable'**
|
||
String get unavailable;
|
||
|
||
/// No description provided for @pickARelayOrNodeToWatchInSensors.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Pick a relay or node to watch in Sensors.'**
|
||
String get pickARelayOrNodeToWatchInSensors;
|
||
|
||
/// No description provided for @publicKeyLabel.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Public key'**
|
||
String get publicKeyLabel;
|
||
|
||
/// No description provided for @alreadyInContacts.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Already in contacts'**
|
||
String get alreadyInContacts;
|
||
|
||
/// No description provided for @connectToADeviceBeforeAddingContacts.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Connect to a device before adding contacts'**
|
||
String get connectToADeviceBeforeAddingContacts;
|
||
|
||
/// No description provided for @fromContacts.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'From contacts'**
|
||
String get fromContacts;
|
||
|
||
/// No description provided for @onlineOnly.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Online only'**
|
||
String get onlineOnly;
|
||
|
||
/// No description provided for @inBoth.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'In both'**
|
||
String get inBoth;
|
||
|
||
/// No description provided for @source.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Source'**
|
||
String get source;
|
||
|
||
/// No description provided for @allMessagesCleared.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'All messages cleared'**
|
||
String get allMessagesCleared;
|
||
|
||
/// No description provided for @onlineTraceDatabaseCleared.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Online trace database cleared'**
|
||
String get onlineTraceDatabaseCleared;
|
||
|
||
/// No description provided for @packetLogsCleared.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Packet logs cleared'**
|
||
String get packetLogsCleared;
|
||
|
||
/// No description provided for @hexDataCopiedToClipboard.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Hex data copied to clipboard'**
|
||
String get hexDataCopiedToClipboard;
|
||
|
||
/// No description provided for @developerModeEnabled.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Developer mode enabled'**
|
||
String get developerModeEnabled;
|
||
|
||
/// No description provided for @developerModeDisabled.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Developer mode disabled'**
|
||
String get developerModeDisabled;
|
||
|
||
/// No description provided for @clipboardIsEmpty.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Clipboard is empty'**
|
||
String get clipboardIsEmpty;
|
||
|
||
/// No description provided for @contactImported.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Contact imported'**
|
||
String get contactImported;
|
||
|
||
/// No description provided for @contactLinkCopiedToClipboard.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Contact link copied to clipboard'**
|
||
String get contactLinkCopiedToClipboard;
|
||
|
||
/// No description provided for @failedToExportContact.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Failed to export contact'**
|
||
String get failedToExportContact;
|
||
|
||
/// No description provided for @noLogsToExport.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'No logs to export'**
|
||
String get noLogsToExport;
|
||
|
||
/// No description provided for @exportAsCsv.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Export as CSV'**
|
||
String get exportAsCsv;
|
||
|
||
/// No description provided for @exportAsText.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Export as Text'**
|
||
String get exportAsText;
|
||
|
||
/// No description provided for @receivedRfc3339.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Received (RFC3339)'**
|
||
String get receivedRfc3339;
|
||
|
||
/// No description provided for @buildTime.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Build Time'**
|
||
String get buildTime;
|
||
|
||
/// No description provided for @downloadUrlNotAvailable.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Download URL not available'**
|
||
String get downloadUrlNotAvailable;
|
||
|
||
/// No description provided for @cannotOpenDownloadUrl.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Cannot open download URL'**
|
||
String get cannotOpenDownloadUrl;
|
||
|
||
/// No description provided for @updateCheckIsOnlyAvailableOnAndroid.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Update check is only available on Android'**
|
||
String get updateCheckIsOnlyAvailableOnAndroid;
|
||
|
||
/// No description provided for @youAreRunningTheLatestVersion.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'You are running the latest version'**
|
||
String get youAreRunningTheLatestVersion;
|
||
|
||
/// No description provided for @updateAvailableButDownloadUrlNotFound.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Update available but download URL not found'**
|
||
String get updateAvailableButDownloadUrlNotFound;
|
||
|
||
/// No description provided for @startTictactoe.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Start Tic-Tac-Toe'**
|
||
String get startTictactoe;
|
||
|
||
/// No description provided for @tictactoeUnavailable.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Tic-Tac-Toe unavailable'**
|
||
String get tictactoeUnavailable;
|
||
|
||
/// No description provided for @tictactoeOpponentUnknown.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Tic-Tac-Toe: opponent unknown'**
|
||
String get tictactoeOpponentUnknown;
|
||
|
||
/// No description provided for @tictactoeWaitingForStart.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Tic-Tac-Toe: waiting for start'**
|
||
String get tictactoeWaitingForStart;
|
||
|
||
/// No description provided for @acceptsShareLinks.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Accepts share links'**
|
||
String get acceptsShareLinks;
|
||
|
||
/// No description provided for @supportsRawHex.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Supports raw hex'**
|
||
String get supportsRawHex;
|
||
|
||
/// No description provided for @clipboardfriendly.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Clipboard-friendly'**
|
||
String get clipboardfriendly;
|
||
|
||
/// No description provided for @captured.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Captured'**
|
||
String get captured;
|
||
|
||
/// No description provided for @size.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Size'**
|
||
String get size;
|
||
|
||
/// No description provided for @noCustomChannelsToClear.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'No custom channels to clear.'**
|
||
String get noCustomChannelsToClear;
|
||
|
||
/// No description provided for @noDeviceContactsToClear.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'No device contacts to clear.'**
|
||
String get noDeviceContactsToClear;
|
||
|
||
/// No description provided for @aToZ.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'A-Z'**
|
||
String get aToZ;
|
||
|
||
/// No description provided for @add.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Add'**
|
||
String get add;
|
||
|
||
/// No description provided for @addAdditionalDetails.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Add additional details'**
|
||
String get addAdditionalDetails;
|
||
|
||
/// No description provided for @addPeer.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Add Peer'**
|
||
String get addPeer;
|
||
|
||
/// No description provided for @addPeerManually.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Add peer manually'**
|
||
String get addPeerManually;
|
||
|
||
/// No description provided for @addedToContacts.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'{name} added to contacts'**
|
||
String addedToContacts(String name);
|
||
|
||
/// No description provided for @addedToSensors.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'{name} added to Sensors'**
|
||
String addedToSensors(String name);
|
||
|
||
/// No description provided for @allowAll.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Allow all'**
|
||
String get allowAll;
|
||
|
||
/// No description provided for @anonymousRxStats.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Anonymous RX stats'**
|
||
String get anonymousRxStats;
|
||
|
||
/// No description provided for @appearance.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Appearance'**
|
||
String get appearance;
|
||
|
||
/// No description provided for @ascii.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'ASCII'**
|
||
String get ascii;
|
||
|
||
/// No description provided for @baseTelemetry.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Base telemetry'**
|
||
String get baseTelemetry;
|
||
|
||
/// No description provided for @blePin.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'BLE PIN'**
|
||
String get blePin;
|
||
|
||
/// No description provided for @buzzerAlerts.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Buzzer alerts'**
|
||
String get buzzerAlerts;
|
||
|
||
/// No description provided for @cancelImageReceive.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Cancel image receive'**
|
||
String get cancelImageReceive;
|
||
|
||
/// No description provided for @choose.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Choose'**
|
||
String get choose;
|
||
|
||
/// No description provided for @chooseWhichTabsAndContactSectionsToShow.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Choose which tabs and contact sections to show'**
|
||
String get chooseWhichTabsAndContactSectionsToShow;
|
||
|
||
/// No description provided for @clearCache.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Clear cache'**
|
||
String get clearCache;
|
||
|
||
/// No description provided for @clearHistory.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Clear history'**
|
||
String get clearHistory;
|
||
|
||
/// No description provided for @clearLiveView.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Clear live view'**
|
||
String get clearLiveView;
|
||
|
||
/// No description provided for @clearLogs.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Clear logs'**
|
||
String get clearLogs;
|
||
|
||
/// No description provided for @clearOfflineCache.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Clear offline cache?'**
|
||
String get clearOfflineCache;
|
||
|
||
/// No description provided for @clearOverlay.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Clear overlay'**
|
||
String get clearOverlay;
|
||
|
||
/// No description provided for @clearRouteOnlyAfterAllRetriesFail.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Clear route only after all retries fail'**
|
||
String get clearRouteOnlyAfterAllRetriesFail;
|
||
|
||
/// No description provided for @codecBitrateAndAudioProcessing.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Codec, bitrate, and audio processing'**
|
||
String get codecBitrateAndAudioProcessing;
|
||
|
||
/// No description provided for @connectByIpAddress.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Connect by IP address'**
|
||
String get connectByIpAddress;
|
||
|
||
/// No description provided for @controlWhichAlertsYouReceive.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Control which alerts you receive'**
|
||
String get controlWhichAlertsYouReceive;
|
||
|
||
/// No description provided for @copyFullHex.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Copy full hex'**
|
||
String get copyFullHex;
|
||
|
||
/// No description provided for @copyRawResponse.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Copy raw response'**
|
||
String get copyRawResponse;
|
||
|
||
/// No description provided for @couldNotLoadMetHistory.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Could not load MET history'**
|
||
String get couldNotLoadMetHistory;
|
||
|
||
/// No description provided for @customizeSensor.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Customize {name}'**
|
||
String customizeSensor(String name);
|
||
|
||
/// No description provided for @data.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Data'**
|
||
String get data;
|
||
|
||
/// No description provided for @deleteGroup.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Delete group'**
|
||
String get deleteGroup;
|
||
|
||
/// No description provided for @deleteStyleConfirm.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Delete {name}?'**
|
||
String deleteStyleConfirm(String name);
|
||
|
||
/// No description provided for @deleteThisDrawing.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Delete this {type}?'**
|
||
String deleteThisDrawing(String type);
|
||
|
||
/// No description provided for @deny.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Deny'**
|
||
String get deny;
|
||
|
||
/// No description provided for @deviceInfo.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Device info'**
|
||
String get deviceInfo;
|
||
|
||
/// No description provided for @deviceSettings.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Device Settings'**
|
||
String get deviceSettings;
|
||
|
||
/// No description provided for @deviceTimeSynced.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Device time synced to this phone.'**
|
||
String get deviceTimeSynced;
|
||
|
||
/// No description provided for @disableFastGpsPublishing.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Disable fast GPS publishing'**
|
||
String get disableFastGpsPublishing;
|
||
|
||
/// No description provided for @displayMarkersAndTraceDatabase.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Display, markers, and trace database'**
|
||
String get displayMarkersAndTraceDatabase;
|
||
|
||
/// No description provided for @download.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Download'**
|
||
String get download;
|
||
|
||
/// No description provided for @environmentalTelemetry.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Environmental telemetry'**
|
||
String get environmentalTelemetry;
|
||
|
||
/// No description provided for @errorCheckingForUpdates.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Error checking for updates: {error}'**
|
||
String errorCheckingForUpdates(String error);
|
||
|
||
/// No description provided for @errorGeneric.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Error: {error}'**
|
||
String errorGeneric(String error);
|
||
|
||
/// No description provided for @errorOpeningDownload.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Error opening download: {error}'**
|
||
String errorOpeningDownload(String error);
|
||
|
||
/// No description provided for @exportLogs.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Export logs'**
|
||
String get exportLogs;
|
||
|
||
/// No description provided for @extraAggressiveAvifCompression.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Extra-aggressive AVIF compression'**
|
||
String get extraAggressiveAvifCompression;
|
||
|
||
/// No description provided for @failedToAddContact.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Failed to add contact: {error}'**
|
||
String failedToAddContact(String error);
|
||
|
||
/// No description provided for @failedToAddName.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Failed to add {name}: {error}'**
|
||
String failedToAddName(String name, String error);
|
||
|
||
/// No description provided for @failedToClearChannels.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Failed to clear channels: {error}'**
|
||
String failedToClearChannels(String error);
|
||
|
||
/// No description provided for @failedToClearContacts.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Failed to clear contacts: {error}'**
|
||
String failedToClearContacts(String error);
|
||
|
||
/// No description provided for @failedToConnectViaSerial.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Failed to connect via serial'**
|
||
String get failedToConnectViaSerial;
|
||
|
||
/// No description provided for @failedToLoadPreviewImage.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Failed to load preview image: {error}'**
|
||
String failedToLoadPreviewImage(String error);
|
||
|
||
/// No description provided for @failedToLoadTrace.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Failed to load trace: {error}'**
|
||
String failedToLoadTrace(String error);
|
||
|
||
/// No description provided for @failedToSendSarMarker.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Failed to send SAR marker: {error}'**
|
||
String failedToSendSarMarker(String error);
|
||
|
||
/// No description provided for @failedToSetBuzzerMode.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Failed to set buzzer mode: {error}'**
|
||
String failedToSetBuzzerMode(String error);
|
||
|
||
/// No description provided for @failedToSetGpsMode.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Failed to set GPS mode: {error}'**
|
||
String failedToSetGpsMode(String error);
|
||
|
||
/// No description provided for @failedToSyncDeviceTime.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Failed to sync device time: {error}'**
|
||
String failedToSyncDeviceTime(String error);
|
||
|
||
/// No description provided for @failedToWipeDeviceData.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Failed to wipe device data: {error}'**
|
||
String failedToWipeDeviceData(String error);
|
||
|
||
/// No description provided for @fastGpsTargetChannel.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Fast GPS target channel'**
|
||
String get fastGpsTargetChannel;
|
||
|
||
/// No description provided for @fastUpdatesThresholdsAndPermissions.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Fast updates, thresholds, and permissions'**
|
||
String get fastUpdatesThresholdsAndPermissions;
|
||
|
||
/// No description provided for @fetchingCatalog.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Fetching catalog...'**
|
||
String get fetchingCatalog;
|
||
|
||
/// No description provided for @fifteenMinutes.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'15 minutes'**
|
||
String get fifteenMinutes;
|
||
|
||
/// No description provided for @fifteenSeconds.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'15 seconds'**
|
||
String get fifteenSeconds;
|
||
|
||
/// No description provided for @filterByDirection.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Filter by direction'**
|
||
String get filterByDirection;
|
||
|
||
/// No description provided for @finish.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Finish'**
|
||
String get finish;
|
||
|
||
/// No description provided for @fiveMinutes.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'5 minutes'**
|
||
String get fiveMinutes;
|
||
|
||
/// No description provided for @fiveSeconds.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'5 seconds'**
|
||
String get fiveSeconds;
|
||
|
||
/// No description provided for @fix.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Fix'**
|
||
String get fix;
|
||
|
||
/// No description provided for @gps.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'GPS'**
|
||
String get gps;
|
||
|
||
/// No description provided for @gpsAdvertPolicy.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'GPS advert policy'**
|
||
String get gpsAdvertPolicy;
|
||
|
||
/// No description provided for @gpsAndLocation.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'GPS & Location'**
|
||
String get gpsAndLocation;
|
||
|
||
/// No description provided for @gpsDiagnostics.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'GPS diagnostics'**
|
||
String get gpsDiagnostics;
|
||
|
||
/// No description provided for @gpsSection.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'GPS'**
|
||
String get gpsSection;
|
||
|
||
/// No description provided for @help.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Help'**
|
||
String get help;
|
||
|
||
/// No description provided for @hex.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Hex'**
|
||
String get hex;
|
||
|
||
/// No description provided for @hidden.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Hidden'**
|
||
String get hidden;
|
||
|
||
/// No description provided for @howTheRadioAutoAddsDiscoveredNodes.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'How the radio auto-adds discovered nodes.'**
|
||
String get howTheRadioAutoAddsDiscoveredNodes;
|
||
|
||
/// No description provided for @images.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Images'**
|
||
String get images;
|
||
|
||
/// No description provided for @importProfile.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Import profile'**
|
||
String get importProfile;
|
||
|
||
/// No description provided for @lastFix.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Last fix'**
|
||
String get lastFix;
|
||
|
||
/// No description provided for @latest.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Latest'**
|
||
String get latest;
|
||
|
||
/// No description provided for @latitude.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Latitude'**
|
||
String get latitude;
|
||
|
||
/// No description provided for @loadASavedRegion.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Load a saved region'**
|
||
String get loadASavedRegion;
|
||
|
||
/// No description provided for @loading.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Loading'**
|
||
String get loading;
|
||
|
||
/// No description provided for @locationSharingHardwareAndUpdateInterval.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Location sharing, hardware, and update interval.'**
|
||
String get locationSharingHardwareAndUpdateInterval;
|
||
|
||
/// No description provided for @locationTelemetry.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Location telemetry'**
|
||
String get locationTelemetry;
|
||
|
||
/// No description provided for @lockDestination.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Lock destination'**
|
||
String get lockDestination;
|
||
|
||
/// No description provided for @longitude.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Longitude'**
|
||
String get longitude;
|
||
|
||
/// No description provided for @mapStyle.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Map Style'**
|
||
String get mapStyle;
|
||
|
||
/// No description provided for @max.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Max'**
|
||
String get max;
|
||
|
||
/// No description provided for @maxZoom.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Max Zoom'**
|
||
String get maxZoom;
|
||
|
||
/// No description provided for @messaging.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Messaging'**
|
||
String get messaging;
|
||
|
||
/// No description provided for @metHistory.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'MET history'**
|
||
String get metHistory;
|
||
|
||
/// No description provided for @min.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Min'**
|
||
String get min;
|
||
|
||
/// No description provided for @minZoom.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Min Zoom'**
|
||
String get minZoom;
|
||
|
||
/// No description provided for @moveDown.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Move down'**
|
||
String get moveDown;
|
||
|
||
/// No description provided for @moveUp.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Move up'**
|
||
String get moveUp;
|
||
|
||
/// No description provided for @multiAckMode.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Multi-ACK mode'**
|
||
String get multiAckMode;
|
||
|
||
/// No description provided for @multiDeviceWorkspaceManagement.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Multi-device workspace management'**
|
||
String get multiDeviceWorkspaceManagement;
|
||
|
||
/// No description provided for @myLocation.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'My location'**
|
||
String get myLocation;
|
||
|
||
/// No description provided for @nameAndTelemetryShared.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Name and telemetry shared with other devices.'**
|
||
String get nameAndTelemetryShared;
|
||
|
||
/// No description provided for @newVersionAvailable.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'New version: {version}'**
|
||
String newVersionAvailable(String version);
|
||
|
||
/// No description provided for @newer.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Newer'**
|
||
String get newer;
|
||
|
||
/// No description provided for @noNeighboursFound.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'No neighbours found'**
|
||
String get noNeighboursFound;
|
||
|
||
/// No description provided for @noServersFound.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'No servers found'**
|
||
String get noServersFound;
|
||
|
||
/// No description provided for @notSet.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Not set'**
|
||
String get notSet;
|
||
|
||
/// No description provided for @notifications.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Notifications'**
|
||
String get notifications;
|
||
|
||
/// No description provided for @offZeroSeconds.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Off (0 s)'**
|
||
String get offZeroSeconds;
|
||
|
||
/// No description provided for @offlineMaps.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Offline Maps'**
|
||
String get offlineMaps;
|
||
|
||
/// No description provided for @older.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Older'**
|
||
String get older;
|
||
|
||
/// No description provided for @oneByteMode0.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'1 byte (mode 0)'**
|
||
String get oneByteMode0;
|
||
|
||
/// No description provided for @oneHour.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'1 hour'**
|
||
String get oneHour;
|
||
|
||
/// No description provided for @oneMinute.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'1 minute'**
|
||
String get oneMinute;
|
||
|
||
/// No description provided for @openPacketLogs.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Open packet logs'**
|
||
String get openPacketLogs;
|
||
|
||
/// No description provided for @packetTypeHelp.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Packet type help'**
|
||
String get packetTypeHelp;
|
||
|
||
/// No description provided for @pasteShareLinkOrHexAdvert.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Paste a share link or hex advert'**
|
||
String get pasteShareLinkOrHexAdvert;
|
||
|
||
/// No description provided for @pathHash.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Path hash'**
|
||
String get pathHash;
|
||
|
||
/// No description provided for @pathSize.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Path size'**
|
||
String get pathSize;
|
||
|
||
/// No description provided for @ping.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Ping'**
|
||
String get ping;
|
||
|
||
/// No description provided for @polygon.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Polygon'**
|
||
String get polygon;
|
||
|
||
/// No description provided for @rawResponseCopied.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Raw response copied'**
|
||
String get rawResponseCopied;
|
||
|
||
/// No description provided for @resendThroughNearestRepeaterOnFailure.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Resend through nearest repeater on failure'**
|
||
String get resendThroughNearestRepeaterOnFailure;
|
||
|
||
/// No description provided for @resolveContact.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Resolve contact'**
|
||
String get resolveContact;
|
||
|
||
/// No description provided for @routingRetriesAndDestinationLock.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Routing, retries, and destination lock'**
|
||
String get routingRetriesAndDestinationLock;
|
||
|
||
/// No description provided for @samples.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Samples'**
|
||
String get samples;
|
||
|
||
/// No description provided for @satellites.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Satellites'**
|
||
String get satellites;
|
||
|
||
/// No description provided for @saving.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Saving...'**
|
||
String get saving;
|
||
|
||
/// No description provided for @search.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Search'**
|
||
String get search;
|
||
|
||
/// No description provided for @searchByNameOrToken.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Search by name or token'**
|
||
String get searchByNameOrToken;
|
||
|
||
/// No description provided for @searchDiscoveredNodes.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Search discovered nodes'**
|
||
String get searchDiscoveredNodes;
|
||
|
||
/// No description provided for @searchInCurrentFilter.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Search in current filter'**
|
||
String get searchInCurrentFilter;
|
||
|
||
/// No description provided for @searchLogs.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Search logs...'**
|
||
String get searchLogs;
|
||
|
||
/// No description provided for @searchSensors.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Search sensors'**
|
||
String get searchSensors;
|
||
|
||
/// No description provided for @searchThisSection.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Search this section'**
|
||
String get searchThisSection;
|
||
|
||
/// No description provided for @selectedRelays.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Selected relays'**
|
||
String get selectedRelays;
|
||
|
||
/// No description provided for @sensor.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Sensor'**
|
||
String get sensor;
|
||
|
||
/// No description provided for @serialError.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Serial error: {error}'**
|
||
String serialError(String error);
|
||
|
||
/// No description provided for @setPathForContact.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Set Path for {name}'**
|
||
String setPathForContact(String name);
|
||
|
||
/// No description provided for @shareLiveGps.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Share live GPS'**
|
||
String get shareLiveGps;
|
||
|
||
/// No description provided for @shareMyTiles.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Share my tiles'**
|
||
String get shareMyTiles;
|
||
|
||
/// No description provided for @sharingLocationFromPhone.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Sharing location on this channel from the phone.'**
|
||
String get sharingLocationFromPhone;
|
||
|
||
/// No description provided for @sharingLocationFromRadio.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Sharing location on this channel from the radio.'**
|
||
String get sharingLocationFromRadio;
|
||
|
||
/// No description provided for @signalDbm.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Signal {rssi} dBm'**
|
||
String signalDbm(String rssi);
|
||
|
||
/// No description provided for @sizeCompressionAndPreview.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Size, compression, and preview'**
|
||
String get sizeCompressionAndPreview;
|
||
|
||
/// No description provided for @skip.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Skip'**
|
||
String get skip;
|
||
|
||
/// No description provided for @smallerFileSize.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Smaller file size'**
|
||
String get smallerFileSize;
|
||
|
||
/// No description provided for @sort.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Sort'**
|
||
String get sort;
|
||
|
||
/// No description provided for @stoppedSharingLocation.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Stopped sharing location on this channel.'**
|
||
String get stoppedSharingLocation;
|
||
|
||
/// No description provided for @suppressNotificationsWhileInForeground.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Suppress notifications while in foreground'**
|
||
String get suppressNotificationsWhileInForeground;
|
||
|
||
/// No description provided for @tabsAndNavigation.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Tabs & Navigation'**
|
||
String get tabsAndNavigation;
|
||
|
||
/// No description provided for @templatesAndTutorials.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Templates and tutorials'**
|
||
String get templatesAndTutorials;
|
||
|
||
/// No description provided for @tenMinutes.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'10 minutes'**
|
||
String get tenMinutes;
|
||
|
||
/// No description provided for @tenSeconds.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'10 seconds'**
|
||
String get tenSeconds;
|
||
|
||
/// No description provided for @testSendUpdate.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Test send update'**
|
||
String get testSendUpdate;
|
||
|
||
/// No description provided for @themeLanguageAndDisplayPreferences.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Theme, language, and display preferences'**
|
||
String get themeLanguageAndDisplayPreferences;
|
||
|
||
/// No description provided for @thirtyMinutes.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'30 minutes'**
|
||
String get thirtyMinutes;
|
||
|
||
/// No description provided for @thirtySeconds.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'30 seconds'**
|
||
String get thirtySeconds;
|
||
|
||
/// No description provided for @threeBytesMode2.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'3 bytes (mode 2)'**
|
||
String get threeBytesMode2;
|
||
|
||
/// No description provided for @trafficStatsMessageHistoryAndDeveloperTools.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Traffic stats, message history, and developer tools'**
|
||
String get trafficStatsMessageHistoryAndDeveloperTools;
|
||
|
||
/// No description provided for @twoBytesMode1.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'2 bytes (mode 1)'**
|
||
String get twoBytesMode1;
|
||
|
||
/// No description provided for @twoMinutes.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'2 minutes'**
|
||
String get twoMinutes;
|
||
|
||
/// No description provided for @undo.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Undo'**
|
||
String get undo;
|
||
|
||
/// No description provided for @updated.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Updated'**
|
||
String get updated;
|
||
|
||
/// No description provided for @useContactFlags.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Use contact flags'**
|
||
String get useContactFlags;
|
||
|
||
/// No description provided for @useSavedCoordinates.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Use saved coordinates'**
|
||
String get useSavedCoordinates;
|
||
|
||
/// No description provided for @view.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'View'**
|
||
String get view;
|
||
|
||
/// No description provided for @viewNeighbours.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'View Neighbours'**
|
||
String get viewNeighbours;
|
||
|
||
/// No description provided for @viewPublicStats.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'View public stats'**
|
||
String get viewPublicStats;
|
||
|
||
/// No description provided for @setRegionScope.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Set region scope'**
|
||
String get setRegionScope;
|
||
|
||
/// No description provided for @regionScope.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Region scope'**
|
||
String get regionScope;
|
||
|
||
/// No description provided for @regionScopeNone.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'None (global)'**
|
||
String get regionScopeNone;
|
||
|
||
/// No description provided for @clearRegionScope.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Clear scope'**
|
||
String get clearRegionScope;
|
||
|
||
/// No description provided for @regionScopeWarning.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Only repeaters allowing this region will forward.'**
|
||
String get regionScopeWarning;
|
||
|
||
/// No description provided for @discoverRegions.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Discover from repeaters'**
|
||
String get discoverRegions;
|
||
|
||
/// No description provided for @discoveringRegions.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Discovering regions...'**
|
||
String get discoveringRegions;
|
||
|
||
/// No description provided for @enterRegionName.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Region name (e.g. auckland)'**
|
||
String get enterRegionName;
|
||
|
||
/// No description provided for @noRegionsFound.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'No regions found on this repeater.'**
|
||
String get noRegionsFound;
|
||
|
||
/// No description provided for @regionScopeSet.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Region scope set to {name}'**
|
||
String regionScopeSet(String name);
|
||
|
||
/// No description provided for @regionScopeCleared.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Region scope cleared'**
|
||
String get regionScopeCleared;
|
||
}
|
||
|
||
class _AppLocalizationsDelegate
|
||
extends LocalizationsDelegate<AppLocalizations> {
|
||
const _AppLocalizationsDelegate();
|
||
|
||
@override
|
||
Future<AppLocalizations> load(Locale locale) {
|
||
return SynchronousFuture<AppLocalizations>(lookupAppLocalizations(locale));
|
||
}
|
||
|
||
@override
|
||
bool isSupported(Locale locale) => <String>[
|
||
'de',
|
||
'el',
|
||
'en',
|
||
'es',
|
||
'fr',
|
||
'hr',
|
||
'it',
|
||
'pl',
|
||
'pt',
|
||
'ru',
|
||
'sl',
|
||
'tr',
|
||
'uk',
|
||
'zh',
|
||
].contains(locale.languageCode);
|
||
|
||
@override
|
||
bool shouldReload(_AppLocalizationsDelegate old) => false;
|
||
}
|
||
|
||
AppLocalizations lookupAppLocalizations(Locale locale) {
|
||
// Lookup logic when only language code is specified.
|
||
switch (locale.languageCode) {
|
||
case 'de':
|
||
return AppLocalizationsDe();
|
||
case 'el':
|
||
return AppLocalizationsEl();
|
||
case 'en':
|
||
return AppLocalizationsEn();
|
||
case 'es':
|
||
return AppLocalizationsEs();
|
||
case 'fr':
|
||
return AppLocalizationsFr();
|
||
case 'hr':
|
||
return AppLocalizationsHr();
|
||
case 'it':
|
||
return AppLocalizationsIt();
|
||
case 'pl':
|
||
return AppLocalizationsPl();
|
||
case 'pt':
|
||
return AppLocalizationsPt();
|
||
case 'ru':
|
||
return AppLocalizationsRu();
|
||
case 'sl':
|
||
return AppLocalizationsSl();
|
||
case 'tr':
|
||
return AppLocalizationsTr();
|
||
case 'uk':
|
||
return AppLocalizationsUk();
|
||
case 'zh':
|
||
return AppLocalizationsZh();
|
||
}
|
||
|
||
throw FlutterError(
|
||
'AppLocalizations.delegate failed to load unsupported locale "$locale". This is likely '
|
||
'an issue with the localizations generation tool. Please file an issue '
|
||
'on GitHub with a reproducible sample app and the gen-l10n configuration '
|
||
'that was used.',
|
||
);
|
||
}
|