mirror of
https://github.com/meshtastic/Meshtastic-Apple.git
synced 2026-04-20 22:13:56 +00:00
fix labels, toggles, and localize
This commit is contained in:
parent
db33832030
commit
220a062114
3 changed files with 117 additions and 57 deletions
|
|
@ -5814,8 +5814,103 @@
|
|||
}
|
||||
}
|
||||
},
|
||||
"Burning Man Overlays" : {
|
||||
|
||||
"Burning Man" : {
|
||||
"localizations" : {
|
||||
"he" : {
|
||||
"stringUnit" : {
|
||||
"state" : "translated",
|
||||
"value" : "ברנינג מן"
|
||||
}
|
||||
},
|
||||
"ja" : {
|
||||
"stringUnit" : {
|
||||
"state" : "translated",
|
||||
"value" : "バーニングマン"
|
||||
}
|
||||
},
|
||||
"sr" : {
|
||||
"stringUnit" : {
|
||||
"state" : "translated",
|
||||
"value" : "Бернинг Мен"
|
||||
}
|
||||
},
|
||||
"zh-Hans" : {
|
||||
"stringUnit" : {
|
||||
"state" : "translated",
|
||||
"value" : "火人节"
|
||||
}
|
||||
},
|
||||
"zh-Hant-TW" : {
|
||||
"stringUnit" : {
|
||||
"state" : "translated",
|
||||
"value" : "火人節"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"Map Overlays" : {
|
||||
"localizations" : {
|
||||
"de" : {
|
||||
"stringUnit" : {
|
||||
"state" : "translated",
|
||||
"value" : "Karten-Overlays"
|
||||
}
|
||||
},
|
||||
"fr" : {
|
||||
"stringUnit" : {
|
||||
"state" : "translated",
|
||||
"value" : "Superpositions de cartes"
|
||||
}
|
||||
},
|
||||
"he" : {
|
||||
"stringUnit" : {
|
||||
"state" : "translated",
|
||||
"value" : "שכבות מפה"
|
||||
}
|
||||
},
|
||||
"it" : {
|
||||
"stringUnit" : {
|
||||
"state" : "translated",
|
||||
"value" : "Sovrapposizioni mappa"
|
||||
}
|
||||
},
|
||||
"ja" : {
|
||||
"stringUnit" : {
|
||||
"state" : "translated",
|
||||
"value" : "マップオーバーレイ"
|
||||
}
|
||||
},
|
||||
"pl" : {
|
||||
"stringUnit" : {
|
||||
"state" : "translated",
|
||||
"value" : "Nakładki map"
|
||||
}
|
||||
},
|
||||
"se" : {
|
||||
"stringUnit" : {
|
||||
"state" : "translated",
|
||||
"value" : "Kartöverlägg"
|
||||
}
|
||||
},
|
||||
"sr" : {
|
||||
"stringUnit" : {
|
||||
"state" : "translated",
|
||||
"value" : "Преклапања мапе"
|
||||
}
|
||||
},
|
||||
"zh-Hans" : {
|
||||
"stringUnit" : {
|
||||
"state" : "translated",
|
||||
"value" : "地图覆盖层"
|
||||
}
|
||||
},
|
||||
"zh-Hant-TW" : {
|
||||
"stringUnit" : {
|
||||
"state" : "translated",
|
||||
"value" : "地圖覆蓋層"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"Button GPIO" : {
|
||||
"localizations" : {
|
||||
|
|
@ -35140,9 +35235,6 @@
|
|||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"Street Outlines" : {
|
||||
|
||||
},
|
||||
"Subscribed" : {
|
||||
"localizations" : {
|
||||
|
|
@ -38365,9 +38457,6 @@
|
|||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"Trash Fence" : {
|
||||
|
||||
},
|
||||
"Treat double tap on supported accelerometers as a user button press." : {
|
||||
"localizations" : {
|
||||
|
|
|
|||
|
|
@ -30,9 +30,7 @@ struct MeshMapContent: MapContent {
|
|||
@Binding var selectedWaypoint: WaypointEntity?
|
||||
|
||||
// Burning Man GeoJSON overlays
|
||||
@AppStorage("burningManShowStreets") private var showStreets = false
|
||||
@AppStorage("burningManShowToilets") private var showToilets = false
|
||||
@AppStorage("burningManShowTrashFence") private var showTrashFence = false
|
||||
@AppStorage("burningManShowAll") private var showBurningMan = false
|
||||
|
||||
@FetchRequest(fetchRequest: PositionEntity.allPositionsFetchRequest(), animation: .easeIn)
|
||||
var positions: FetchedResults<PositionEntity>
|
||||
|
|
@ -234,10 +232,11 @@ struct MeshMapContent: MapContent {
|
|||
}
|
||||
|
||||
/// Burning Man GeoJSON Overlays
|
||||
if showStreets {
|
||||
let overlays = GeoJSONOverlayManager.shared.loadOverlays(for: StaticGeoJSONOverlay.streetOutlines)
|
||||
let identifiableOverlays = overlays.map { IdentifiableOverlay(overlay: $0) }
|
||||
ForEach(identifiableOverlays) { identifiable in
|
||||
if showBurningMan {
|
||||
// Load and display street outlines
|
||||
let streetOverlays = GeoJSONOverlayManager.shared.loadOverlays(for: .streetOutlines)
|
||||
let streetIdentifiableOverlays = streetOverlays.map { IdentifiableOverlay(overlay: $0) }
|
||||
ForEach(streetIdentifiableOverlays) { identifiable in
|
||||
let overlay = identifiable.overlay
|
||||
if let polygon = overlay as? MKPolygon {
|
||||
MapPolygon(polygon)
|
||||
|
|
@ -248,12 +247,11 @@ struct MeshMapContent: MapContent {
|
|||
.stroke(.green.opacity(0.9), lineWidth: 0.8)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if showToilets {
|
||||
let overlays = GeoJSONOverlayManager.shared.loadOverlays(for: StaticGeoJSONOverlay.toilets)
|
||||
let identifiableOverlays = overlays.map { IdentifiableOverlay(overlay: $0) }
|
||||
ForEach(identifiableOverlays) { identifiable in
|
||||
// Load and display toilets
|
||||
let toiletOverlays = GeoJSONOverlayManager.shared.loadOverlays(for: .toilets)
|
||||
let toiletIdentifiableOverlays = toiletOverlays.map { IdentifiableOverlay(overlay: $0) }
|
||||
ForEach(toiletIdentifiableOverlays) { identifiable in
|
||||
let overlay = identifiable.overlay
|
||||
if let polygon = overlay as? MKPolygon {
|
||||
MapPolygon(polygon)
|
||||
|
|
@ -261,12 +259,11 @@ struct MeshMapContent: MapContent {
|
|||
.foregroundStyle(.blue.opacity(1.0))
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if showTrashFence {
|
||||
let overlays = GeoJSONOverlayManager.shared.loadOverlays(for: StaticGeoJSONOverlay.trashFence)
|
||||
let identifiableOverlays = overlays.map { IdentifiableOverlay(overlay: $0) }
|
||||
ForEach(identifiableOverlays) { identifiable in
|
||||
// Load and display trash fence
|
||||
let trashFenceOverlays = GeoJSONOverlayManager.shared.loadOverlays(for: .trashFence)
|
||||
let trashFenceIdentifiableOverlays = trashFenceOverlays.map { IdentifiableOverlay(overlay: $0) }
|
||||
ForEach(trashFenceIdentifiableOverlays) { identifiable in
|
||||
let overlay = identifiable.overlay
|
||||
if let polyline = overlay as? MKPolyline {
|
||||
MapPolyline(polyline)
|
||||
|
|
|
|||
|
|
@ -116,42 +116,16 @@ struct MapSettingsForm: View {
|
|||
}
|
||||
}
|
||||
|
||||
Section(header: Text("Burning Man Overlays")) {
|
||||
Section(header: Text("Map Overlays")) {
|
||||
Toggle(isOn: Binding(
|
||||
get: { UserDefaults.standard.bool(forKey: "burningManShowStreets") },
|
||||
set: { UserDefaults.standard.set($0, forKey: "burningManShowStreets") }
|
||||
get: { UserDefaults.standard.bool(forKey: "burningManShowAll") },
|
||||
set: { UserDefaults.standard.set($0, forKey: "burningManShowAll") }
|
||||
)) {
|
||||
Label {
|
||||
Text("Street Outlines")
|
||||
Text("Burning Man")
|
||||
} icon: {
|
||||
Image(systemName: "road.lanes")
|
||||
.foregroundColor(.yellow)
|
||||
}
|
||||
}
|
||||
.tint(.accentColor)
|
||||
|
||||
Toggle(isOn: Binding(
|
||||
get: { UserDefaults.standard.bool(forKey: "burningManShowToilets") },
|
||||
set: { UserDefaults.standard.set($0, forKey: "burningManShowToilets") }
|
||||
)) {
|
||||
Label {
|
||||
Text("Toilets")
|
||||
} icon: {
|
||||
Image(systemName: "toilet")
|
||||
.foregroundColor(.brown)
|
||||
}
|
||||
}
|
||||
.tint(.accentColor)
|
||||
|
||||
Toggle(isOn: Binding(
|
||||
get: { UserDefaults.standard.bool(forKey: "burningManShowTrashFence") },
|
||||
set: { UserDefaults.standard.set($0, forKey: "burningManShowTrashFence") }
|
||||
)) {
|
||||
Label {
|
||||
Text("Trash Fence")
|
||||
} icon: {
|
||||
Image(systemName: "fence")
|
||||
.foregroundColor(.red)
|
||||
Image(systemName: "flame.fill")
|
||||
.foregroundColor(.orange)
|
||||
}
|
||||
}
|
||||
.tint(.accentColor)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue