Copy sync: Localizable.strings matches current UI (114 keys; favourites reorder note, geofence debug section, alerts footer; dead keys pruned)

This commit is contained in:
FuelBoard Contributor
2026-08-14 11:07:15 +01:00
parent fbf8c79feb
commit b66a9161a3
+16 -8
View File
@@ -31,8 +31,9 @@
/* Favourites tab */ /* Favourites tab */
"No favourites yet" = "No favourites yet"; "No favourites yet" = "No favourites yet";
"Tap the star on any station in the Stations tab to pin it here, ranked by which is cheapest for that fuel." = "Tap the star on any station in the Stations tab to pin it here, ranked by which is cheapest for that fuel."; "Tap the star on any station in the Stations tab to pin it here. The first station in each list becomes the favourite used in single widgets — drag to put your pick first." = "Tap the star on any station in the Stations tab to pin it here. The first station in each list becomes the favourite used in single widgets — drag to put your pick first.";
"%@ favourites — cheapest first" = "%@ favourites — cheapest first"; "%@ favourites" = "%@ favourites";
"The first station is the favourite used in single widgets. Tap Edit, then drag to reorder." = "The first station is the favourite used in single widgets. Tap Edit, then drag to reorder.";
"%@ is your cheapest %@ favourite. Favourites are monitored automatically — switch to the Alerts tab and enable alerts to get pinged when you approach one that's the cheapest within the radius." = "%@ is your cheapest %@ favourite. Favourites are monitored automatically — switch to the Alerts tab and enable alerts to get pinged when you approach one that's the cheapest within the radius."; "%@ is your cheapest %@ favourite. Favourites are monitored automatically — switch to the Alerts tab and enable alerts to get pinged when you approach one that's the cheapest within the radius." = "%@ is your cheapest %@ favourite. Favourites are monitored automatically — switch to the Alerts tab and enable alerts to get pinged when you approach one that's the cheapest within the radius.";
/* Alerts tab */ /* Alerts tab */
@@ -40,15 +41,12 @@
"Fuel" = "Fuel"; "Fuel" = "Fuel";
"Radius" = "Radius"; "Radius" = "Radius";
"%lld %@" = "%lld %@"; "%lld %@" = "%lld %@";
"When you approach a station that is the cheapest within the radius, FuelBoard sends a notification — even with the app closed. Alerts watch for the cheapest %@ station within the radius." = "When you approach a station that is the cheapest within the radius, FuelBoard sends a notification — even with the app closed. Alerts watch for the cheapest %@ station within the radius."; "Follow search (%@)" = "Follow search (%@)";
"Monitoring" = "Monitoring"; "When you approach a station that is the cheapest within the radius, FuelBoard sends a notification — even with the app closed. Nearby stations selling %@ are watched — favourites get priority — and each station alerts at most once per hour. Follow search mirrors the Stations-tab distance, capped at 8 miles for reliable geofencing." = "When you approach a station that is the cheapest within the radius, FuelBoard sends a notification — even with the app closed. Nearby stations selling %@ are watched — favourites get priority — and each station alerts at most once per hour. Follow search mirrors the Stations-tab distance, capped at 8 miles for reliable geofencing.";
"No stations monitored yet — open the Stations tab to load prices first." = "No stations monitored yet — open the Stations tab to load prices first."; "No stations monitored yet — open the Stations tab to load prices first." = "No stations monitored yet — open the Stations tab to load prices first.";
"Geofenced stations" = "Geofenced stations";
"Your favourites for %@ get priority, then the closest stations selling that fuel fill the rest (18 max, iOS region limit)." = "Your favourites for %@ get priority, then the closest stations selling that fuel fill the rest (18 max, iOS region limit).";
"Alerts are checked against the cheapest station within the trigger radius for the fuel chosen above. Each station alerts at most once per hour." = "Alerts are checked against the cheapest station within the trigger radius for the fuel chosen above. Each station alerts at most once per hour.";
"Last alert" = "Last alert"; "Last alert" = "Last alert";
"Live Activity" = "Live Activity"; "Live Activity" = "Live Activity";
"Shows the cheapest station for the fuel and distance you pick here on the Lock Screen and Dynamic Island — independent of the Stations tab. Updates as you drive; tap to open directions. Live Activities can be disabled in System Settings → Live Activities." = "Shows the cheapest station for the fuel and distance you pick here on the Lock Screen and Dynamic Island — independent of the Stations tab. Updates as you drive; tap to open directions. Live Activities can be disabled in System Settings → Live Activities."; "Shows the cheapest station for the fuel and distance you pick here on the Lock Screen and Dynamic Island — independent of the Stations tab (choose Follow search to mirror its distance instead). Updates as you drive; tap to open directions. Live Activities can be disabled in System Settings → Live Activities." = "Shows the cheapest station for the fuel and distance you pick here on the Lock Screen and Dynamic Island — independent of the Stations tab (choose Follow search to mirror its distance instead). Updates as you drive; tap to open directions. Live Activities can be disabled in System Settings → Live Activities.";
/* Settings tab */ /* Settings tab */
"Units" = "Units"; "Units" = "Units";
@@ -59,6 +57,15 @@
"Send plain test notification" = "Send plain test notification"; "Send plain test notification" = "Send plain test notification";
"Debug" = "Debug"; "Debug" = "Debug";
"The first button applies the real criteria — cheapest %@ station within %@ of you — and sends the actual station's name, price and coordinates. The second fires with no criteria at all (nearest seller), still carrying a real station, just to verify a notification appears and tapping it opens directions. Cheapest in range mirrors the app list (selected fuel + distance); the in-range count mirrors the alert radius." = "The first button applies the real criteria — cheapest %@ station within %@ of you — and sends the actual station's name, price and coordinates. The second fires with no criteria at all (nearest seller), still carrying a real station, just to verify a notification appears and tapping it opens directions. Cheapest in range mirrors the app list (selected fuel + distance); the in-range count mirrors the alert radius."; "The first button applies the real criteria — cheapest %@ station within %@ of you — and sends the actual station's name, price and coordinates. The second fires with no criteria at all (nearest seller), still carrying a real station, just to verify a notification appears and tapping it opens directions. Cheapest in range mirrors the app list (selected fuel + distance); the in-range count mirrors the alert radius." = "The first button applies the real criteria — cheapest %@ station within %@ of you — and sends the actual station's name, price and coordinates. The second fires with no criteria at all (nearest seller), still carrying a real station, just to verify a notification appears and tapping it opens directions. Cheapest in range mirrors the app list (selected fuel + distance); the in-range count mirrors the alert radius.";
"Widget Diagnostics" = "Widget Diagnostics";
"Each beacon is written by the widget extension at the end of every timeline entry for that intent type (keychain, so it survives free-SideStore installs). A missing SMALL beacon after adding the small widget means its timeline never reaches the provider. Installed widgets come from WidgetCenter." = "Each beacon is written by the widget extension at the end of every timeline entry for that intent type (keychain, so it survives free-SideStore installs). A missing SMALL beacon after adding the small widget means its timeline never reaches the provider. Installed widgets come from WidgetCenter.";
"SMALL: %@" = "SMALL: %@";
"SMALL: no beacon yet" = "SMALL: no beacon yet";
"MEDIUM: %@" = "MEDIUM: %@";
"MEDIUM: no beacon yet" = "MEDIUM: no beacon yet";
"Geofence monitoring" = "Geofence monitoring";
"Geofenced stations" = "Geofenced stations";
"Favourites for %@ get priority, then the closest stations selling that fuel fill the rest (18 max, iOS region limit). Each station alerts at most once per hour." = "Favourites for %@ get priority, then the closest stations selling that fuel fill the rest (18 max, iOS region limit). Each station alerts at most once per hour.";
"Leave a tip" = "Leave a tip"; "Leave a tip" = "Leave a tip";
"Support FuelBoard" = "Support FuelBoard"; "Support FuelBoard" = "Support FuelBoard";
"A small tip helps keep the data relay and app development going. Thank you!" = "A small tip helps keep the data relay and app development going. Thank you!"; "A small tip helps keep the data relay and app development going. Thank you!" = "A small tip helps keep the data relay and app development going. Thank you!";
@@ -86,6 +93,7 @@
"The purchase couldn't be verified. Please try again." = "The purchase couldn't be verified. Please try again."; "The purchase couldn't be verified. Please try again." = "The purchase couldn't be verified. Please try again.";
"Your tip is pending approval. It'll finish automatically." = "Your tip is pending approval. It'll finish automatically."; "Your tip is pending approval. It'll finish automatically." = "Your tip is pending approval. It'll finish automatically.";
"The tip couldn't be completed: %@" = "The tip couldn't be completed: %@"; "The tip couldn't be completed: %@" = "The tip couldn't be completed: %@";
"—" = "—";
/* Onboarding */ /* Onboarding */
"Welcome to FuelBoard" = "Welcome to FuelBoard"; "Welcome to FuelBoard" = "Welcome to FuelBoard";