mirror of
https://github.com/zjs81/meshcore-open.git
synced 2026-07-29 14:58:44 +10:00
Merge remote-tracking branch 'origin/dev' into test-regions Also added fixes
This commit is contained in:
+321
-132
@@ -92,6 +92,24 @@ class AppLocalizationsEn extends AppLocalizations {
|
||||
@override
|
||||
String get common_disable => 'Disable';
|
||||
|
||||
@override
|
||||
String get common_undo => 'Undo';
|
||||
|
||||
@override
|
||||
String get messageStatus_sent => 'Sent';
|
||||
|
||||
@override
|
||||
String get messageStatus_delivered => 'Delivered';
|
||||
|
||||
@override
|
||||
String get messageStatus_pending => 'Sending';
|
||||
|
||||
@override
|
||||
String get messageStatus_failed => 'Failed to send';
|
||||
|
||||
@override
|
||||
String get messageStatus_repeated => 'Heard repeated';
|
||||
|
||||
@override
|
||||
String get common_reboot => 'Reboot';
|
||||
|
||||
@@ -297,6 +315,10 @@ class AppLocalizationsEn extends AppLocalizations {
|
||||
@override
|
||||
String get scanner_enableBluetooth => 'Enable Bluetooth';
|
||||
|
||||
@override
|
||||
String get scanner_bluetoothWebUnsupported =>
|
||||
'Bluetooth isn\'t available in the browser. Connect over USB instead.';
|
||||
|
||||
@override
|
||||
String get device_quickSwitch => 'Quick switch';
|
||||
|
||||
@@ -816,11 +838,6 @@ class AppLocalizationsEn extends AppLocalizations {
|
||||
String get appSettings_maxMessageRetriesSubtitle =>
|
||||
'Number of retry attempts before marking a message as failed';
|
||||
|
||||
@override
|
||||
String path_routeWeight(String weight, String max) {
|
||||
return '$weight/$max';
|
||||
}
|
||||
|
||||
@override
|
||||
String get appSettings_battery => 'Battery';
|
||||
|
||||
@@ -1020,6 +1037,15 @@ class AppLocalizationsEn extends AppLocalizations {
|
||||
@override
|
||||
String get contacts_newGroup => 'New Group';
|
||||
|
||||
@override
|
||||
String get contacts_moreOptions => 'More options';
|
||||
|
||||
@override
|
||||
String get contacts_searchOpen => 'Search contacts';
|
||||
|
||||
@override
|
||||
String get contacts_searchClose => 'Close search';
|
||||
|
||||
@override
|
||||
String get contacts_groupName => 'Group name';
|
||||
|
||||
@@ -1505,34 +1531,6 @@ class AppLocalizationsEn extends AppLocalizations {
|
||||
@override
|
||||
String get debugFrame_hexDump => 'Hex Dump:';
|
||||
|
||||
@override
|
||||
String get chat_pathManagement => 'Path Management';
|
||||
|
||||
@override
|
||||
String get chat_ShowAllPaths => 'Show all paths';
|
||||
|
||||
@override
|
||||
String get chat_routingMode => 'Routing mode';
|
||||
|
||||
@override
|
||||
String get chat_autoUseSavedPath => 'Auto (use saved path)';
|
||||
|
||||
@override
|
||||
String get chat_forceFloodMode => 'Force Flood Mode';
|
||||
|
||||
@override
|
||||
String get chat_recentAckPaths => 'Recent ACK Paths (tap to use):';
|
||||
|
||||
@override
|
||||
String get chat_pathHistoryFull =>
|
||||
'Path history is full. Remove entries to add new ones.';
|
||||
|
||||
@override
|
||||
String get chat_hopSingular => 'hop';
|
||||
|
||||
@override
|
||||
String get chat_hopPlural => 'hops';
|
||||
|
||||
@override
|
||||
String chat_hopsCount(int count) {
|
||||
String _temp0 = intl.Intl.pluralLogic(
|
||||
@@ -1544,12 +1542,6 @@ class AppLocalizationsEn extends AppLocalizations {
|
||||
return '$count $_temp0';
|
||||
}
|
||||
|
||||
@override
|
||||
String get chat_successes => 'successes';
|
||||
|
||||
@override
|
||||
String get chat_score => 'Score';
|
||||
|
||||
@override
|
||||
String get chat_removePath => 'Remove path';
|
||||
|
||||
@@ -1557,50 +1549,144 @@ class AppLocalizationsEn extends AppLocalizations {
|
||||
String get chat_noPathHistoryYet =>
|
||||
'No path history yet.\nSend a message to discover paths.';
|
||||
|
||||
@override
|
||||
String get chat_pathActions => 'Path Actions:';
|
||||
|
||||
@override
|
||||
String get chat_setCustomPath => 'Set Custom Path';
|
||||
|
||||
@override
|
||||
String get chat_setCustomPathSubtitle => 'Manually specify routing path';
|
||||
|
||||
@override
|
||||
String get chat_clearPath => 'Clear Path';
|
||||
|
||||
@override
|
||||
String get chat_clearPathSubtitle => 'Force rediscovery on next send';
|
||||
|
||||
@override
|
||||
String get chat_pathCleared =>
|
||||
'Path cleared. Next message will rediscover route.';
|
||||
|
||||
@override
|
||||
String get chat_floodModeSubtitle => 'Use routing toggle in app bar';
|
||||
|
||||
@override
|
||||
String get chat_floodModeEnabled =>
|
||||
'Flood mode enabled. Toggle back via routing icon in app bar.';
|
||||
|
||||
@override
|
||||
String get chat_fullPath => 'Full Path';
|
||||
|
||||
@override
|
||||
String get chat_pathDetailsNotAvailable =>
|
||||
'Path details not available yet. Try sending a message to refresh.';
|
||||
String get routing_title => 'Routing';
|
||||
|
||||
@override
|
||||
String chat_pathSetHops(int hopCount, String status) {
|
||||
String _temp0 = intl.Intl.pluralLogic(
|
||||
hopCount,
|
||||
locale: localeName,
|
||||
other: 'hops',
|
||||
one: 'hop',
|
||||
);
|
||||
return 'Path set: $hopCount $_temp0 - $status';
|
||||
String get routing_modeAuto => 'Auto';
|
||||
|
||||
@override
|
||||
String get routing_modeFlood => 'Flood';
|
||||
|
||||
@override
|
||||
String get routing_modeManual => 'Manual';
|
||||
|
||||
@override
|
||||
String get routing_modeAutoHint =>
|
||||
'Picks the best known path automatically, flooding when none is known.';
|
||||
|
||||
@override
|
||||
String get routing_modeFloodHint =>
|
||||
'Broadcasts through every repeater. Most reliable, but uses more airtime.';
|
||||
|
||||
@override
|
||||
String get routing_modeManualHint =>
|
||||
'Always sends along the exact path you set.';
|
||||
|
||||
@override
|
||||
String get routing_currentRoute => 'Current route';
|
||||
|
||||
@override
|
||||
String get routing_directNoHops => 'Direct — no repeater hops';
|
||||
|
||||
@override
|
||||
String get routing_noPathYet =>
|
||||
'No path yet. The next message floods until a route is discovered.';
|
||||
|
||||
@override
|
||||
String get routing_floodBroadcast => 'Broadcast through every repeater';
|
||||
|
||||
@override
|
||||
String get routing_editPath => 'Edit path';
|
||||
|
||||
@override
|
||||
String get routing_forgetPath => 'Forget path';
|
||||
|
||||
@override
|
||||
String get routing_knownPaths => 'Known paths';
|
||||
|
||||
@override
|
||||
String get routing_knownPathsHint => 'Tap a path to switch to it.';
|
||||
|
||||
@override
|
||||
String get routing_inUse => 'In use';
|
||||
|
||||
@override
|
||||
String get routing_qualityStrong => 'Strong first hop';
|
||||
|
||||
@override
|
||||
String get routing_qualityGood => 'Good first hop';
|
||||
|
||||
@override
|
||||
String get routing_qualityFair => 'Fair first hop';
|
||||
|
||||
@override
|
||||
String get routing_qualityWorked => 'Has delivered';
|
||||
|
||||
@override
|
||||
String get routing_qualityFlood => 'Heard via flood';
|
||||
|
||||
@override
|
||||
String get routing_qualityUntested => 'Untested';
|
||||
|
||||
@override
|
||||
String routing_lastWorked(String when) {
|
||||
return 'worked $when';
|
||||
}
|
||||
|
||||
@override
|
||||
String get routing_neverWorked => 'never confirmed';
|
||||
|
||||
@override
|
||||
String routing_deliveryCounts(int successes, int failures) {
|
||||
return '$successes delivered, $failures failed';
|
||||
}
|
||||
|
||||
@override
|
||||
String get routing_floodDelivery => 'Flood delivery';
|
||||
|
||||
@override
|
||||
String get pathEditor_title => 'Build Path';
|
||||
|
||||
@override
|
||||
String pathEditor_hopCounter(int count) {
|
||||
return '$count of 64 hops';
|
||||
}
|
||||
|
||||
@override
|
||||
String get pathEditor_noHops =>
|
||||
'No hops yet. Tap repeaters below to add them in order, or save with no hops to send direct.';
|
||||
|
||||
@override
|
||||
String get pathEditor_addHops => 'Add hops in order';
|
||||
|
||||
@override
|
||||
String get pathEditor_searchRepeaters => 'Search repeaters';
|
||||
|
||||
@override
|
||||
String get pathEditor_advancedHex => 'Advanced: raw hex path';
|
||||
|
||||
@override
|
||||
String get pathEditor_hexLabel => 'Hex prefixes';
|
||||
|
||||
@override
|
||||
String get pathEditor_hexHelper =>
|
||||
'Two hex characters per hop, separated by commas';
|
||||
|
||||
@override
|
||||
String pathEditor_invalidTokens(String tokens) {
|
||||
return 'Invalid: $tokens';
|
||||
}
|
||||
|
||||
@override
|
||||
String get pathEditor_tooManyHops => 'Maximum 64 hops';
|
||||
|
||||
@override
|
||||
String get pathEditor_usePath => 'Use this path';
|
||||
|
||||
@override
|
||||
String get pathEditor_removeHop => 'Remove hop';
|
||||
|
||||
@override
|
||||
String get pathEditor_unknownHop => 'Unknown repeater';
|
||||
|
||||
@override
|
||||
String get chat_pathSavedLocally => 'Saved locally. Connect to sync.';
|
||||
|
||||
@@ -1674,6 +1760,39 @@ class AppLocalizationsEn extends AppLocalizations {
|
||||
@override
|
||||
String get map_title => 'Node Map';
|
||||
|
||||
@override
|
||||
String get map_searchHint => 'Search node name or ID';
|
||||
|
||||
@override
|
||||
String get map_activity => 'Activity';
|
||||
|
||||
@override
|
||||
String get map_online => 'Online';
|
||||
|
||||
@override
|
||||
String get map_recent => 'Recent';
|
||||
|
||||
@override
|
||||
String get map_stale => 'Stale';
|
||||
|
||||
@override
|
||||
String get map_visible => 'Visible';
|
||||
|
||||
@override
|
||||
String get map_hidden => 'Hidden';
|
||||
|
||||
@override
|
||||
String get map_centerOnNode => 'Center on node';
|
||||
|
||||
@override
|
||||
String get map_details => 'Details';
|
||||
|
||||
@override
|
||||
String get map_noGps => 'No GPS';
|
||||
|
||||
@override
|
||||
String get map_noResults => 'No matching nodes';
|
||||
|
||||
@override
|
||||
String get map_lineOfSight => 'Line of Sight';
|
||||
|
||||
@@ -2062,64 +2181,12 @@ class AppLocalizationsEn extends AppLocalizations {
|
||||
@override
|
||||
String get common_clear => 'Clear';
|
||||
|
||||
@override
|
||||
String path_currentPath(String path) {
|
||||
return 'Current path: $path';
|
||||
}
|
||||
|
||||
@override
|
||||
String path_usingHopsPath(int count) {
|
||||
String _temp0 = intl.Intl.pluralLogic(
|
||||
count,
|
||||
locale: localeName,
|
||||
other: 'hops',
|
||||
one: 'hop',
|
||||
);
|
||||
return 'Using $count $_temp0 path';
|
||||
}
|
||||
|
||||
@override
|
||||
String get path_enterCustomPath => 'Enter Custom Path';
|
||||
|
||||
@override
|
||||
String get path_currentPathLabel => 'Current path';
|
||||
|
||||
@override
|
||||
String get path_hexPrefixInstructions =>
|
||||
'Enter 2-character hex prefixes for each hop, separated by commas.';
|
||||
|
||||
@override
|
||||
String get path_hexPrefixExample =>
|
||||
'Example: A1,F2,3C (each node uses first byte of its public key)';
|
||||
|
||||
@override
|
||||
String get path_labelHexPrefixes => 'Path (hex prefixes)';
|
||||
|
||||
@override
|
||||
String get path_helperMaxHops =>
|
||||
'Max 64 hops. Each prefix is 2 hex characters (1 byte)';
|
||||
|
||||
@override
|
||||
String get path_selectFromContacts => 'Or select from contacts:';
|
||||
|
||||
@override
|
||||
String get path_noRepeatersFound => 'No repeaters or room servers found.';
|
||||
|
||||
@override
|
||||
String get path_customPathsRequire =>
|
||||
'Custom paths require intermediate hops that can relay messages.';
|
||||
|
||||
@override
|
||||
String path_invalidHexPrefixes(String prefixes) {
|
||||
return 'Invalid hex prefixes: $prefixes';
|
||||
}
|
||||
|
||||
@override
|
||||
String get path_tooLong => 'Path too long. Maximum 64 hops allowed.';
|
||||
|
||||
@override
|
||||
String get path_setPath => 'Set Path';
|
||||
|
||||
@override
|
||||
String get repeater_management => 'Repeater Management';
|
||||
|
||||
@@ -2183,15 +2250,6 @@ class AppLocalizationsEn extends AppLocalizations {
|
||||
@override
|
||||
String get repeater_routingMode => 'Routing mode';
|
||||
|
||||
@override
|
||||
String get repeater_autoUseSavedPath => 'Auto (use saved path)';
|
||||
|
||||
@override
|
||||
String get repeater_forceFloodMode => 'Force Flood Mode';
|
||||
|
||||
@override
|
||||
String get repeater_pathManagement => 'Path management';
|
||||
|
||||
@override
|
||||
String get repeater_refresh => 'Refresh';
|
||||
|
||||
@@ -4413,4 +4471,135 @@ class AppLocalizationsEn extends AppLocalizations {
|
||||
|
||||
@override
|
||||
String get contact_typeUnknown => 'Unknown';
|
||||
|
||||
@override
|
||||
String get map_zoomIn => 'Zoom in';
|
||||
|
||||
@override
|
||||
String get map_zoomOut => 'Zoom out';
|
||||
|
||||
@override
|
||||
String get map_centerMap => 'Center map';
|
||||
|
||||
@override
|
||||
String get chrome_bluetoothRequiresChromium =>
|
||||
'Web Bluetooth requires a Chromium browser';
|
||||
|
||||
@override
|
||||
String channels_communityShortId(String id) {
|
||||
return 'ID: $id...';
|
||||
}
|
||||
|
||||
@override
|
||||
String get pathTrace_legendGpsConfirmed => 'GPS confirmed';
|
||||
|
||||
@override
|
||||
String get pathTrace_legendInferred => 'Inferred position';
|
||||
|
||||
@override
|
||||
String get pathMap_viewSingle => 'Single';
|
||||
|
||||
@override
|
||||
String get pathMap_viewCombined => 'Combined';
|
||||
|
||||
@override
|
||||
String get pathMap_play => 'Play';
|
||||
|
||||
@override
|
||||
String get pathMap_pause => 'Pause';
|
||||
|
||||
@override
|
||||
String get pathMap_replay => 'Replay';
|
||||
|
||||
@override
|
||||
String get pathMap_stepBack => 'Previous hop';
|
||||
|
||||
@override
|
||||
String get pathMap_stepForward => 'Next hop';
|
||||
|
||||
@override
|
||||
String get pathMap_animationOn => 'Show packet animation';
|
||||
|
||||
@override
|
||||
String get pathMap_animationOff => 'Hide packet animation';
|
||||
|
||||
@override
|
||||
String pathMap_hopOf(int current, int total) {
|
||||
return 'Hop $current of $total';
|
||||
}
|
||||
|
||||
@override
|
||||
String pathMap_observedPaths(int count) {
|
||||
return 'Observed paths: $count';
|
||||
}
|
||||
|
||||
@override
|
||||
String get pathMap_primary => 'Primary';
|
||||
|
||||
@override
|
||||
String pathMap_alternate(int index) {
|
||||
return 'Alt $index';
|
||||
}
|
||||
|
||||
@override
|
||||
String pathMap_hopCount(int count) {
|
||||
String _temp0 = intl.Intl.pluralLogic(
|
||||
count,
|
||||
locale: localeName,
|
||||
other: '$count hops',
|
||||
one: '1 hop',
|
||||
);
|
||||
return '$_temp0';
|
||||
}
|
||||
|
||||
@override
|
||||
String pathMap_gpsCount(int confirmed, int total) {
|
||||
return '$confirmed/$total GPS';
|
||||
}
|
||||
|
||||
@override
|
||||
String get pathMap_legendShared => 'Shared segment';
|
||||
|
||||
@override
|
||||
String get pathMap_legendEstimated => 'Estimated segment';
|
||||
|
||||
@override
|
||||
String pathMap_sharedNodeCount(int count) {
|
||||
return 'Used by $count paths';
|
||||
}
|
||||
|
||||
@override
|
||||
String pathMap_partialAnimation(int count) {
|
||||
String _temp0 = intl.Intl.pluralLogic(
|
||||
count,
|
||||
locale: localeName,
|
||||
other: '$count hops have no location — the shown path is partial',
|
||||
one: '1 hop has no location — the shown path is partial',
|
||||
);
|
||||
return '$_temp0';
|
||||
}
|
||||
|
||||
@override
|
||||
String get pathMap_showAllPaths => 'Show all';
|
||||
|
||||
@override
|
||||
String get pathMap_hidePath => 'Hide path';
|
||||
|
||||
@override
|
||||
String get pathMap_showPath => 'Show path';
|
||||
|
||||
@override
|
||||
String get pathMap_collapsePanel => 'Collapse panel';
|
||||
|
||||
@override
|
||||
String get pathMap_expandPanel => 'Expand panel';
|
||||
|
||||
@override
|
||||
String get pathMap_noLocation => 'No location';
|
||||
|
||||
@override
|
||||
String get pathMap_followPacket => 'Lock view to packet';
|
||||
|
||||
@override
|
||||
String get pathMap_unfollowPacket => 'Unlock view from packet';
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user