Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
95 changes: 95 additions & 0 deletions Localizable.xcstrings
Original file line number Diff line number Diff line change
Expand Up @@ -3459,6 +3459,29 @@
}
}
},
"%lld days" : {
"comment" : "VoiceOver value announcing the number of days before purging stale nodes",
"localizations" : {
"en" : {
"variations" : {
"plural" : {
"one" : {
"stringUnit" : {
"state" : "new",
"value" : "%lld day"
}
},
"other" : {
"stringUnit" : {
"state" : "new",
"value" : "%lld days"
}
}
}
}
}
}
},
"%lld downloaded Β· %@" : {
"localizations" : {
"en" : {
Expand Down Expand Up @@ -12581,6 +12604,9 @@
}
}
},
"Approximate location precision" : {
"comment" : "VoiceOver label for the approximate location precision slider"
},
"Architecture" : {
"comment" : "A label displayed under the architecture of a device.",
"isCommentAutoGenerated" : true,
Expand Down Expand Up @@ -14253,6 +14279,9 @@
}
}
},
"Back to firmware update" : {
"comment" : "VoiceOver label for the close button in the Chirpy game"
},
"Backup" : {
"localizations" : {
"de" : {
Expand Down Expand Up @@ -20205,6 +20234,9 @@
}
}
},
"Chirpy Hop" : {
"comment" : "VoiceOver label for the Chirpy game play surface"
},
"Chirpy is loading an answer" : {
"comment" : "A button that displays a loading spinner and a label.",
"isCommentAutoGenerated" : true,
Expand Down Expand Up @@ -23564,6 +23596,9 @@
}
}
},
"Connected to Bluetooth device" : {
"comment" : "VoiceOver label for a connected Bluetooth device"
},
"Connecting . ." : {
"localizations" : {
"da" : {
Expand Down Expand Up @@ -26262,6 +26297,9 @@
}
}
},
"Days before purging stale nodes" : {
"comment" : "VoiceOver label for the purge stale nodes days slider"
},
"Debug" : {
"localizations" : {
"da" : {
Expand Down Expand Up @@ -27851,6 +27889,9 @@
}
}
},
"Delete key backup" : {
"comment" : "VoiceOver label for the delete key backup button"
},
"Description" : {
"localizations" : {
"da" : {
Expand Down Expand Up @@ -28734,6 +28775,9 @@
}
}
},
"Detection sensor" : {
"comment" : "VoiceOver label for the detection sensor message badge"
},
"Detection sensor events reported by the node, such as motion or door open/close alerts." : {
"localizations" : {
"de" : {
Expand Down Expand Up @@ -32586,6 +32630,9 @@
}
}
},
"Documentation page" : {
"comment" : "VoiceOver label for the documentation web view"
},
"Documents" : {
"comment" : "A section header for files in the user's documents directory.",
"isCommentAutoGenerated" : true,
Expand Down Expand Up @@ -35660,6 +35707,9 @@
}
}
},
"Encrypted message" : {
"comment" : "VoiceOver label for the PKI-encrypted direct message badge"
},
"Encryption" : {
"comment" : "A heading for the encryption information.",
"isCommentAutoGenerated" : true,
Expand Down Expand Up @@ -36936,6 +36986,9 @@
}
}
},
"Estimate coverage" : {
"comment" : "VoiceOver label for the coverage estimate button"
},
"Ethernet Options" : {
"localizations" : {
"da" : {
Expand Down Expand Up @@ -39006,6 +39059,9 @@
}
}
},
"Fills the transmitter coordinates." : {
"comment" : "VoiceOver hint for the fill-coordinates button"
},
"Filter the node list and mesh map based on proximity to your phone." : {
"localizations" : {
"de" : {
Expand Down Expand Up @@ -57293,6 +57349,9 @@
}
}
},
"Message status" : {
"comment" : "VoiceOver label for the message delivery status button"
},
"Message was relayed but not confirmed by the final recipient." : {
"comment" : "Text displayed in a help item that describes an acknowledged message.",
"isCommentAutoGenerated" : true,
Expand Down Expand Up @@ -59715,9 +59774,15 @@
}
}
},
"Next match" : {
"comment" : "VoiceOver label for the next search match button"
},
"No Air Quality Metrics" : {
"comment" : "Empty state shown when a node has no air quality telemetry."
},
"No Bluetooth device connected" : {
"comment" : "VoiceOver label when no Bluetooth device is connected"
},
"No Connected Node" : {
"localizations" : {
"da" : {
Expand Down Expand Up @@ -68437,6 +68502,9 @@
}
}
},
"Plugged in" : {
"comment" : "VoiceOver value when the device is plugged in"
},
"Points of Interest" : {
"localizations" : {
"da" : {
Expand Down Expand Up @@ -71199,6 +71267,9 @@
}
}
},
"Previous match" : {
"comment" : "VoiceOver label for the previous search match button"
},
"Primary" : {
"localizations" : {
"da" : {
Expand Down Expand Up @@ -74948,6 +75019,9 @@
}
}
},
"Regenerate private key" : {
"comment" : "VoiceOver label for the regenerate private key button"
},
"Region" : {
"localizations" : {
"da" : {
Expand Down Expand Up @@ -79612,6 +79686,9 @@
}
}
},
"Runs a Site Planner coverage estimate and adds it to the map." : {
"comment" : "VoiceOver hint for the coverage estimate button"
},
"SNR" : {
"localizations" : {
"da" : {
Expand Down Expand Up @@ -89162,6 +89239,9 @@
}
}
},
"Showing translated text" : {
"comment" : "VoiceOver label for the translated message badge"
},
"Shows a saved offline map over the covered area, so it still works without an internet connection." : {
"localizations" : {
"uk" : {
Expand Down Expand Up @@ -90062,6 +90142,9 @@
}
}
},
"Signal strength" : {
"comment" : "VoiceOver label for the signal strength indicator"
},
"Signal: Bad" : {
"localizations" : {
"de" : {
Expand Down Expand Up @@ -90519,6 +90602,9 @@
}
}
},
"Site name" : {
"comment" : "VoiceOver label for the site name field"
},
"Size" : {
"comment" : "A label that describes the size of a map.",
"isCommentAutoGenerated" : true,
Expand Down Expand Up @@ -92149,6 +92235,9 @@
}
}
},
"Store and forward message" : {
"comment" : "VoiceOver label for the store-and-forward badge"
},
"Store and forward servers require an ESP32 device with PSRAM or Linux Native." : {
"localizations" : {
"da" : {
Expand Down Expand Up @@ -93679,6 +93768,9 @@
}
}
},
"Tap to jump or swipe down to crouch" : {
"comment" : "VoiceOver hint for the Chirpy game controls"
},
"Tapback" : {
"localizations" : {
"da" : {
Expand Down Expand Up @@ -106187,6 +106279,9 @@
}
}
},
"Verified sender" : {
"comment" : "VoiceOver label for the signed and verified broadcast badge"
},
"Verified with the sender's key." : {
"localizations" : {
"en" : {
Expand Down
2 changes: 1 addition & 1 deletion Meshtastic/Views/Helpers/BLESignalStrengthIndicator.swift
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,7 @@ struct SignalStrengthIndicator: View {
}
}
.accessibilityElement(children: .ignore)
.accessibilityLabel("Signal strength".localized)
.accessibilityLabel(String(localized: "Signal strength", comment: "VoiceOver label for the signal strength indicator"))
.accessibilityValue(accessibilityDescription)
}

Expand Down
4 changes: 2 additions & 2 deletions Meshtastic/Views/Helpers/BatteryGauge.swift
Original file line number Diff line number Diff line change
Expand Up @@ -78,8 +78,8 @@ struct PluggedInIndicator: View {
.symbolRenderingMode(.hierarchical)
// Override the accessibility to ensure correct VoiceOver announcement
.accessibilityElement(children: .ignore)
.accessibilityLabel("Battery Level".localized)
.accessibilityValue("Plugged in".localized)
.accessibilityLabel(String(localized: "Battery Level", comment: "VoiceOver label for battery gauge"))
.accessibilityValue(String(localized: "Plugged in", comment: "VoiceOver value when the device is plugged in"))
}
}

Expand Down
4 changes: 2 additions & 2 deletions Meshtastic/Views/Helpers/ConnectedDevice.swift
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,7 @@ struct ConnectedDevice: View {
.accessibilityHidden(true)
}
.accessibilityElement(children: .ignore)
.accessibilityLabel("Connected to Bluetooth device".localized + ", " + name.formatNodeNameForVoiceOver())
.accessibilityLabel(String(localized: "Connected to Bluetooth device", comment: "VoiceOver label for a connected Bluetooth device") + ", " + name.formatNodeNameForVoiceOver())
} else {
// Create a container for disconnected state
HStack {
Expand All @@ -71,7 +71,7 @@ struct ConnectedDevice: View {
.accessibilityHidden(true)
}
.accessibilityElement(children: .ignore)
.accessibilityLabel("No Bluetooth device connected".localized)
.accessibilityLabel(String(localized: "No Bluetooth device connected", comment: "VoiceOver label when no Bluetooth device is connected"))
}
}
}
Expand Down
3 changes: 3 additions & 0 deletions Meshtastic/Views/Helpers/LoRaSignalStrengthIndicator.swift
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,9 @@ struct LoRaSignalStrengthIndicator: View {
.frame(width: 8, height: 40)
}
}
.accessibilityElement(children: .ignore)
.accessibilityLabel(String(localized: "Signal strength", comment: "VoiceOver label for the signal strength indicator"))
.accessibilityValue(signalStrength.description)
}
}

Expand Down
4 changes: 2 additions & 2 deletions Meshtastic/Views/Messages/MessageSearchBar.swift
Original file line number Diff line number Diff line change
Expand Up @@ -32,13 +32,13 @@ struct MessageSearchBar: View {
Image(systemName: "chevron.up")
}
.disabled(matchCount == 0)
.accessibilityLabel("Previous match")
.accessibilityLabel(String(localized: "Previous match", comment: "VoiceOver label for the previous search match button"))

Button(action: onNext) {
Image(systemName: "chevron.down")
}
.disabled(matchCount == 0)
.accessibilityLabel("Next match")
.accessibilityLabel(String(localized: "Next match", comment: "VoiceOver label for the next search match button"))
}
.buttonStyle(.borderless)
.padding(.horizontal)
Expand Down
Loading
Loading