Merge branch 'main' into unread-peoplefirst

This commit is contained in:
Serge Tarkovski
2026-02-27 12:57:59 +02:00
90 changed files with 16003 additions and 4657 deletions
+429 -36
View File
@@ -376,6 +376,24 @@ abstract class AppLocalizations {
/// **'Scan'**
String get scanner_scan;
/// No description provided for @scanner_bluetoothOff.
///
/// In en, this message translates to:
/// **'Bluetooth is off'**
String get scanner_bluetoothOff;
/// No description provided for @scanner_bluetoothOffMessage.
///
/// In en, this message translates to:
/// **'Please turn on Bluetooth to scan for devices'**
String get scanner_bluetoothOffMessage;
/// No description provided for @scanner_enableBluetooth.
///
/// In en, this message translates to:
/// **'Enable Bluetooth'**
String get scanner_enableBluetooth;
/// No description provided for @device_quickSwitch.
///
/// In en, this message translates to:
@@ -682,6 +700,12 @@ abstract class AppLocalizations {
/// **'An open-source Flutter client for MeshCore LoRa mesh networking devices.'**
String get settings_aboutDescription;
/// No description provided for @settings_aboutOpenMeteoAttribution.
///
/// In en, this message translates to:
/// **'LOS elevation data: Open-Meteo (CC BY 4.0)'**
String get settings_aboutOpenMeteoAttribution;
/// No description provided for @settings_infoName.
///
/// In en, this message translates to:
@@ -730,24 +754,6 @@ abstract class AppLocalizations {
/// **'Presets'**
String get settings_presets;
/// No description provided for @settings_preset915Mhz.
///
/// In en, this message translates to:
/// **'915 MHz'**
String get settings_preset915Mhz;
/// No description provided for @settings_preset868Mhz.
///
/// In en, this message translates to:
/// **'868 MHz'**
String get settings_preset868Mhz;
/// No description provided for @settings_preset433Mhz.
///
/// In en, this message translates to:
/// **'433 MHz'**
String get settings_preset433Mhz;
/// No description provided for @settings_frequency.
///
/// In en, this message translates to:
@@ -802,17 +808,23 @@ abstract class AppLocalizations {
/// **'Invalid TX power (0-22 dBm)'**
String get settings_txPowerInvalid;
/// No description provided for @settings_longRange.
/// No description provided for @settings_clientRepeat.
///
/// In en, this message translates to:
/// **'Long Range'**
String get settings_longRange;
/// **'Off-Grid Repeat'**
String get settings_clientRepeat;
/// No description provided for @settings_fastSpeed.
/// No description provided for @settings_clientRepeatSubtitle.
///
/// In en, this message translates to:
/// **'Fast Speed'**
String get settings_fastSpeed;
/// **'Allow this device to repeat mesh packets for others'**
String get settings_clientRepeatSubtitle;
/// No description provided for @settings_clientRepeatFreqWarning.
///
/// In en, this message translates to:
/// **'Off-grid repeat requires 433, 869, or 918 MHz frequency'**
String get settings_clientRepeatFreqWarning;
/// No description provided for @settings_error.
///
@@ -958,6 +970,18 @@ abstract class AppLocalizations {
/// **'Українська'**
String get appSettings_languageUk;
/// No description provided for @appSettings_enableMessageTracing.
///
/// In en, this message translates to:
/// **'Enable Message Tracing'**
String get appSettings_enableMessageTracing;
/// No description provided for @appSettings_enableMessageTracingSubtitle.
///
/// In en, this message translates to:
/// **'Show detailed routing and timing metadata for messages'**
String get appSettings_enableMessageTracingSubtitle;
/// No description provided for @appSettings_notifications.
///
/// In en, this message translates to:
@@ -1234,6 +1258,24 @@ abstract class AppLocalizations {
/// **'Offline Map Cache'**
String get appSettings_offlineMapCache;
/// No description provided for @appSettings_unitsTitle.
///
/// In en, this message translates to:
/// **'Units'**
String get appSettings_unitsTitle;
/// No description provided for @appSettings_unitsMetric.
///
/// In en, this message translates to:
/// **'Metric (m / km)'**
String get appSettings_unitsMetric;
/// No description provided for @appSettings_unitsImperial.
///
/// In en, this message translates to:
/// **'Imperial (ft / mi)'**
String get appSettings_unitsImperial;
/// No description provided for @appSettings_noAreaSelected.
///
/// In en, this message translates to:
@@ -1294,11 +1336,47 @@ abstract class AppLocalizations {
/// **'Contacts will appear when devices advertise'**
String get contacts_contactsWillAppear;
/// No description provided for @contacts_unread.
///
/// In en, this message translates to:
/// **'Unread'**
String get contacts_unread;
/// No description provided for @contacts_searchContactsNoNumber.
///
/// In en, this message translates to:
/// **'Search Contacts...'**
String get contacts_searchContactsNoNumber;
/// No description provided for @contacts_searchContacts.
///
/// In en, this message translates to:
/// **'Search contacts...'**
String get contacts_searchContacts;
/// **'Search {number}{str} Contacts...'**
String contacts_searchContacts(int number, String str);
/// No description provided for @contacts_searchFavorites.
///
/// In en, this message translates to:
/// **'Search {number}{str} Favorites...'**
String contacts_searchFavorites(int number, String str);
/// No description provided for @contacts_searchUsers.
///
/// In en, this message translates to:
/// **'Search {number}{str} Users...'**
String contacts_searchUsers(int number, String str);
/// No description provided for @contacts_searchRepeaters.
///
/// In en, this message translates to:
/// **'Search {number}{str} Repeaters...'**
String contacts_searchRepeaters(int number, String str);
/// No description provided for @contacts_searchRoomServers.
///
/// In en, this message translates to:
/// **'Search {number}{str} Room servers...'**
String contacts_searchRoomServers(int number, String str);
/// No description provided for @contacts_noUnreadContacts.
///
@@ -1516,6 +1594,18 @@ abstract class AppLocalizations {
/// **'Edit channel'**
String get channels_editChannel;
/// No description provided for @channels_muteChannel.
///
/// In en, this message translates to:
/// **'Mute channel'**
String get channels_muteChannel;
/// No description provided for @channels_unmuteChannel.
///
/// In en, this message translates to:
/// **'Unmute channel'**
String get channels_unmuteChannel;
/// No description provided for @channels_deleteChannel.
///
/// In en, this message translates to:
@@ -1528,6 +1618,12 @@ abstract class AppLocalizations {
/// **'Delete \"{name}\"? This cannot be undone.'**
String channels_deleteChannelConfirm(String name);
/// No description provided for @channels_channelDeleteFailed.
///
/// In en, this message translates to:
/// **'Failed to delete channel \"{name}\"'**
String channels_channelDeleteFailed(String name);
/// No description provided for @channels_channelDeleted.
///
/// In en, this message translates to:
@@ -2026,6 +2122,12 @@ abstract class AppLocalizations {
/// **'Path Management'**
String get chat_pathManagement;
/// No description provided for @chat_ShowAllPaths.
///
/// In en, this message translates to:
/// **'Show all paths'**
String get chat_ShowAllPaths;
/// No description provided for @chat_routingMode.
///
/// In en, this message translates to:
@@ -2278,6 +2380,18 @@ abstract class AppLocalizations {
/// **'Node Map'**
String get map_title;
/// No description provided for @map_lineOfSight.
///
/// In en, this message translates to:
/// **'Line of Sight'**
String get map_lineOfSight;
/// No description provided for @map_losScreenTitle.
///
/// In en, this message translates to:
/// **'Line of Sight'**
String get map_losScreenTitle;
/// No description provided for @map_noNodesWithLocation.
///
/// In en, this message translates to:
@@ -2518,6 +2632,30 @@ abstract class AppLocalizations {
/// **'Manage Repeater'**
String get map_manageRepeater;
/// No description provided for @map_tapToAdd.
///
/// In en, this message translates to:
/// **'Tap on nodes to add them to the path.'**
String get map_tapToAdd;
/// No description provided for @map_runTrace.
///
/// In en, this message translates to:
/// **'Run Path Trace'**
String get map_runTrace;
/// No description provided for @map_removeLast.
///
/// In en, this message translates to:
/// **'Remove Last'**
String get map_removeLast;
/// No description provided for @map_pathTraceCancelled.
///
/// In en, this message translates to:
/// **'Path trace cancelled.'**
String get map_pathTraceCancelled;
/// No description provided for @mapCache_title.
///
/// In en, this message translates to:
@@ -2997,17 +3135,17 @@ abstract class AppLocalizations {
/// **'Send commands to the repeater'**
String get repeater_cliSubtitle;
/// No description provided for @repeater_neighbours.
/// No description provided for @repeater_neighbors.
///
/// In en, this message translates to:
/// **'Neighbors'**
String get repeater_neighbours;
String get repeater_neighbors;
/// No description provided for @repeater_neighboursSubtitle.
/// No description provided for @repeater_neighborsSubtitle.
///
/// In en, this message translates to:
/// **'View zero hop neighbors.'**
String get repeater_neighboursSubtitle;
String get repeater_neighborsSubtitle;
/// No description provided for @repeater_settings.
///
@@ -4151,13 +4289,13 @@ abstract class AppLocalizations {
/// No description provided for @neighbors_receivedData.
///
/// In en, this message translates to:
/// **'Received Neighbours Data'**
/// **'Received Neighbors Data'**
String get neighbors_receivedData;
/// No description provided for @neighbors_requestTimedOut.
///
/// In en, this message translates to:
/// **'Neighbours request timed out.'**
/// **'Neighbors request timed out.'**
String get neighbors_requestTimedOut;
/// No description provided for @neighbors_errorLoading.
@@ -4166,16 +4304,16 @@ abstract class AppLocalizations {
/// **'Error loading neighbors: {error}'**
String neighbors_errorLoading(String error);
/// No description provided for @neighbors_repeatersNeighbours.
/// No description provided for @neighbors_repeatersNeighbors.
///
/// In en, this message translates to:
/// **'Repeaters Neighbours'**
String get neighbors_repeatersNeighbours;
/// **'Repeaters Neighbors'**
String get neighbors_repeatersNeighbors;
/// No description provided for @neighbors_noData.
///
/// In en, this message translates to:
/// **'No neighbours data available.'**
/// **'No neighbors data available.'**
String get neighbors_noData;
/// No description provided for @neighbors_unknownContact.
@@ -4676,6 +4814,24 @@ abstract class AppLocalizations {
/// **'All'**
String get listFilter_all;
/// No description provided for @listFilter_favorites.
///
/// In en, this message translates to:
/// **'Favorites'**
String get listFilter_favorites;
/// No description provided for @listFilter_addToFavorites.
///
/// In en, this message translates to:
/// **'Add to favorites'**
String get listFilter_addToFavorites;
/// No description provided for @listFilter_removeFromFavorites.
///
/// In en, this message translates to:
/// **'Remove from favorites'**
String get listFilter_removeFromFavorites;
/// No description provided for @listFilter_users.
///
/// In en, this message translates to:
@@ -4736,6 +4892,231 @@ abstract class AppLocalizations {
/// **'One or more of the hops is missing a location!'**
String get pathTrace_someHopsNoLocation;
/// No description provided for @pathTrace_clearTooltip.
///
/// In en, this message translates to:
/// **'Clear path.'**
String get pathTrace_clearTooltip;
/// No description provided for @losSelectStartEnd.
///
/// In en, this message translates to:
/// **'Select start and end nodes for LOS.'**
String get losSelectStartEnd;
/// No description provided for @losRunFailed.
///
/// In en, this message translates to:
/// **'Line-of-sight check failed: {error}'**
String losRunFailed(String error);
/// No description provided for @losClearAllPoints.
///
/// In en, this message translates to:
/// **'Clear all points'**
String get losClearAllPoints;
/// No description provided for @losRunToViewElevationProfile.
///
/// In en, this message translates to:
/// **'Run LOS to view elevation profile'**
String get losRunToViewElevationProfile;
/// No description provided for @losMenuTitle.
///
/// In en, this message translates to:
/// **'LOS Menu'**
String get losMenuTitle;
/// No description provided for @losMenuSubtitle.
///
/// In en, this message translates to:
/// **'Tap nodes or long-press map for custom points'**
String get losMenuSubtitle;
/// No description provided for @losShowDisplayNodes.
///
/// In en, this message translates to:
/// **'Show display nodes'**
String get losShowDisplayNodes;
/// No description provided for @losCustomPoints.
///
/// In en, this message translates to:
/// **'Custom points'**
String get losCustomPoints;
/// No description provided for @losCustomPointLabel.
///
/// In en, this message translates to:
/// **'Custom {index}'**
String losCustomPointLabel(int index);
/// No description provided for @losPointA.
///
/// In en, this message translates to:
/// **'Point A'**
String get losPointA;
/// No description provided for @losPointB.
///
/// In en, this message translates to:
/// **'Point B'**
String get losPointB;
/// No description provided for @losAntennaA.
///
/// In en, this message translates to:
/// **'Antenna A: {value} {unit}'**
String losAntennaA(String value, String unit);
/// No description provided for @losAntennaB.
///
/// In en, this message translates to:
/// **'Antenna B: {value} {unit}'**
String losAntennaB(String value, String unit);
/// No description provided for @losRun.
///
/// In en, this message translates to:
/// **'Run LOS'**
String get losRun;
/// No description provided for @losNoElevationData.
///
/// In en, this message translates to:
/// **'No elevation data'**
String get losNoElevationData;
/// No description provided for @losProfileClear.
///
/// In en, this message translates to:
/// **'{distance} {distanceUnit}, clear LOS, min clearance {clearance} {heightUnit}'**
String losProfileClear(
String distance,
String distanceUnit,
String clearance,
String heightUnit,
);
/// No description provided for @losProfileBlocked.
///
/// In en, this message translates to:
/// **'{distance} {distanceUnit}, blocked by {obstruction} {heightUnit}'**
String losProfileBlocked(
String distance,
String distanceUnit,
String obstruction,
String heightUnit,
);
/// No description provided for @losStatusChecking.
///
/// In en, this message translates to:
/// **'LOS: checking...'**
String get losStatusChecking;
/// No description provided for @losStatusNoData.
///
/// In en, this message translates to:
/// **'LOS: no data'**
String get losStatusNoData;
/// No description provided for @losStatusSummary.
///
/// In en, this message translates to:
/// **'LOS: {clear}/{total} clear, {blocked} blocked, {unknown} unknown'**
String losStatusSummary(int clear, int total, int blocked, int unknown);
/// No description provided for @losErrorElevationUnavailable.
///
/// In en, this message translates to:
/// **'Elevation data unavailable for one or more samples.'**
String get losErrorElevationUnavailable;
/// No description provided for @losErrorInvalidInput.
///
/// In en, this message translates to:
/// **'Invalid points/elevation data for LOS calculation.'**
String get losErrorInvalidInput;
/// No description provided for @losRenameCustomPoint.
///
/// In en, this message translates to:
/// **'Rename custom point'**
String get losRenameCustomPoint;
/// No description provided for @losPointName.
///
/// In en, this message translates to:
/// **'Point name'**
String get losPointName;
/// No description provided for @losShowPanelTooltip.
///
/// In en, this message translates to:
/// **'Show LOS panel'**
String get losShowPanelTooltip;
/// No description provided for @losHidePanelTooltip.
///
/// In en, this message translates to:
/// **'Hide LOS panel'**
String get losHidePanelTooltip;
/// No description provided for @losElevationAttribution.
///
/// In en, this message translates to:
/// **'Elevation data: Open-Meteo (CC BY 4.0)'**
String get losElevationAttribution;
/// No description provided for @losLegendRadioHorizon.
///
/// In en, this message translates to:
/// **'Radio horizon'**
String get losLegendRadioHorizon;
/// No description provided for @losLegendLosBeam.
///
/// In en, this message translates to:
/// **'LOS beam'**
String get losLegendLosBeam;
/// No description provided for @losLegendTerrain.
///
/// In en, this message translates to:
/// **'Terrain'**
String get losLegendTerrain;
/// No description provided for @losFrequencyLabel.
///
/// In en, this message translates to:
/// **'Frequency'**
String get losFrequencyLabel;
/// No description provided for @losFrequencyInfoTooltip.
///
/// In en, this message translates to:
/// **'View calculation details'**
String get losFrequencyInfoTooltip;
/// No description provided for @losFrequencyDialogTitle.
///
/// In en, this message translates to:
/// **'Radio horizon calculation'**
String get losFrequencyDialogTitle;
/// Explain how the calculation uses the baseline frequency and derived k-factor.
///
/// In en, this message translates to:
/// **'Starting from k={baselineK} at {baselineFreq} MHz, the calculation adjusts the k-factor for the current {frequencyMHz} MHz band, which defines the curved radio horizon cap.'**
String losFrequencyDialogDescription(
double baselineK,
double baselineFreq,
double frequencyMHz,
double kFactor,
);
/// No description provided for @contacts_pathTrace.
///
/// In en, this message translates to:
@@ -4993,6 +5374,18 @@ abstract class AppLocalizations {
/// In en, this message translates to:
/// **'meshcore-open GPX map data export'**
String get settings_gpxExportShareSubject;
/// No description provided for @snrIndicator_nearByRepeaters.
///
/// In en, this message translates to:
/// **'Nearby Repeaters'**
String get snrIndicator_nearByRepeaters;
/// No description provided for @snrIndicator_lastSeen.
///
/// In en, this message translates to:
/// **'Last seen'**
String get snrIndicator_lastSeen;
}
class _AppLocalizationsDelegate