Ben's style rule: no em-dash character in copy, docs, or code comments
(it reads as an AI tell), and the repo is going public. Replaced the
em-dashes in code comments and English UI strings with commas, colons,
or periods, whichever reads best. User-facing strings were hand-tuned
for natural punctuation rather than a blanket comma.
Preserved the lone "no data" glyph placeholders (a standalone dash used
as a not-available indicator in status displays); those are a design
element, not prose.
Regenerated app_localizations*.dart from app_en.arb (the English
fallback for untranslated keys propagates to every locale's generated
file). Non-English ARB translations left untouched.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
"settings_gpsStatusNoFix": "No fix — using stored/last position",
"settings_gpsStatusNoFix": "No fix: using stored/last position",
"settings_gpsStatusCoords": "Coordinates",
"settings_gpsStatusSats": "Satellites",
"settings_gpsStatusAltitude": "Altitude",
"settings_gpsStatusTime": "Fix time",
"settings_gpsStatusTapRefresh": "Tap Query GPS to read the current GPS state",
"settings_gpsStatusNoResponse": "No response — device may need the GPS-query firmware build",
"settings_gpsStatusNoResponse": "No response: device may need the GPS-query firmware build",
"settings_locationIntervalInvalid": "Interval must be at least 60 seconds, and less than 86400 seconds.",
"settings_latitude": "Latitude",
"settings_longitude": "Longitude",
@ -1427,13 +1427,13 @@
"repeater_advancedSettings": "Advanced",
"repeater_advancedSettingsSubtitle": "Tuning knobs for experienced operators",
"repeater_pathHashMode": "Path hash mode",
"repeater_pathHashModeHelper": "Bytes used to encode this repeater's ID in flood path/loop-detect tags. 0=1 byte (256 IDs, up to 64 hops), 1=2 bytes (65K IDs, up to 32 hops), 2=3 bytes (16M IDs, up to 21 hops). v1.13 and older firmware drops multi-byte paths — only raise once your network is on v1.14+.",
"repeater_pathHashModeHelper": "Bytes used to encode this repeater's ID in flood path/loop-detect tags. 0=1 byte (256 IDs, up to 64 hops), 1=2 bytes (65K IDs, up to 32 hops), 2=3 bytes (16M IDs, up to 21 hops). v1.13 and older firmware drops multi-byte paths. Only raise once your network is on v1.14+.",
"repeater_txDelay": "Flood TX delay",
"repeater_txDelayHelper": "Retransmit spacing for flood traffic, as a multiplier of the packet's airtime (0-2, default 0.5). Higher = fewer collisions but slower delivery.",
"repeater_directTxDelay": "Direct TX delay",
"repeater_directTxDelayHelper": "Retransmit spacing for direct (non-flood) traffic, as a multiplier of the packet's airtime (0-2, default 0.3).",
"repeater_intThresh": "Interference threshold",
"repeater_intThreshHelper": "Threshold passed to the radio's noise-floor calibration so it rejects interference above this level. 0 disables — only raise if you see RX errors in a noisy band.",
"repeater_intThreshHelper": "Threshold passed to the radio's noise-floor calibration so it rejects interference above this level. 0 disables. Only raise if you see RX errors in a noisy band.",
"repeater_agcResetIntervalHelper": "How often to reset the radio's automatic gain control to recover from a stuck gain state. Seconds, snapped down to a multiple of 4. 0 disables periodic resets.",
"repeater_actionsTitle": "Actions",
@ -1462,7 +1462,7 @@
}
}
},
"repeater_settingsSavedRebootNeeded": "Settings saved — reboot the repeater to apply",
"repeater_settingsSavedRebootNeeded": "Settings saved. Reboot the repeater to apply",
"storageUnavailableBody": "Your history is not lost, but the app can't open its database, so new messages are NOT being saved. Restart the app after fixing the problem. See the app log for details.",
///**'Bytes used to encode this repeater\'s ID in flood path/loop-detect tags. 0=1 byte (256 IDs, up to 64 hops), 1=2 bytes (65K IDs, up to 32 hops), 2=3 bytes (16M IDs, up to 21 hops). v1.13 and older firmware drops multi-byte paths — only raise once your network is on v1.14+.'**
///**'Bytes used to encode this repeater\'s ID in flood path/loop-detect tags. 0=1 byte (256 IDs, up to 64 hops), 1=2 bytes (65K IDs, up to 32 hops), 2=3 bytes (16M IDs, up to 21 hops). v1.13 and older firmware drops multi-byte paths. Only raise once your network is on v1.14+.'**
Stringgetrepeater_pathHashModeHelper;
///Nodescriptionprovidedfor@repeater_txDelay.
@ -4787,7 +4787,7 @@ abstract class AppLocalizations {
///**'Threshold passed to the radio\'s noise-floor calibration so it rejects interference above this level. 0 disables — only raise if you see RX errors in a noisy band.'**
///**'Threshold passed to the radio\'s noise-floor calibration so it rejects interference above this level. 0 disables. Only raise if you see RX errors in a noisy band.'**
Stringgetsettings_gpsStatusNoFix=>'No fix — using stored/last position';
Stringgetsettings_gpsStatusNoFix=>'No fix: using stored/last position';
@override
Stringgetsettings_gpsStatusCoords=>'Coordinates';
@ -404,7 +404,7 @@ class AppLocalizationsEn extends AppLocalizations {
@override
Stringgetsettings_gpsStatusNoResponse=>
'No response — device may need the GPS-query firmware build';
'No response: device may need the GPS-query firmware build';
@override
Stringgetsettings_locationIntervalInvalid=>
@ -2613,7 +2613,7 @@ class AppLocalizationsEn extends AppLocalizations {
@override
Stringgetrepeater_pathHashModeHelper=>
'Bytes used to encode this repeater\'s ID in flood path/loop-detect tags. 0=1 byte (256 IDs, up to 64 hops), 1=2 bytes (65K IDs, up to 32 hops), 2=3 bytes (16M IDs, up to 21 hops). v1.13 and older firmware drops multi-byte paths — only raise once your network is on v1.14+.';
'Bytes used to encode this repeater\'s ID in flood path/loop-detect tags. 0=1 byte (256 IDs, up to 64 hops), 1=2 bytes (65K IDs, up to 32 hops), 2=3 bytes (16M IDs, up to 21 hops). v1.13 and older firmware drops multi-byte paths. Only raise once your network is on v1.14+.';
@override
Stringgetrepeater_txDelay=>'Flood TX delay';
@ -2634,7 +2634,7 @@ class AppLocalizationsEn extends AppLocalizations {
@override
Stringgetrepeater_intThreshHelper=>
'Threshold passed to the radio\'s noise-floor calibration so it rejects interference above this level. 0 disables — only raise if you see RX errors in a noisy band.';
'Threshold passed to the radio\'s noise-floor calibration so it rejects interference above this level. 0 disables. Only raise if you see RX errors in a noisy band.';