Add Punjabi (pa) localization for SweepAlert iOS - #16
Conversation
- Add Localizable.xcstrings with 117 Gurmukhi translations - Register pa locale in Xcode project and InfoPlist.strings - Localize programmatic strings via String(localized:) in views and services Co-authored-by: Anam Hira <anam@revyl.ai>
Configure app_id, Xcode scheme, and build output path so cloud agents can run revyl dev without interactive app selection. Co-authored-by: Anam Hira <anam@revyl.ai>
Preview builds
Project: apps/ios-sweep-alert
Proof of changes
|
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes using default effort and found 2 potential issues.
❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.
Reviewed by Cursor Bugbot for commit 5316df1. Configure here.
| return String(localized: "at pin") | ||
| } | ||
| return "\(Int(feet.rounded())) ft" | ||
| return String(localized: "\(Int(feet.rounded())) ft") |
There was a problem hiding this comment.
Side labels mix languages
Medium Severity
formatSide now returns a localized direction name, but ruleSummary and the rule-row pill still concatenate the English word side without going through String(localized:). Punjabi users see mixed strings like a Gurmukhi direction plus English side, even though the catalog already has a "%@ - %@ side - %@" template for the summary path.
Additional Locations (1)
Reviewed by Cursor Bugbot for commit 5316df1. Configure here.
| private let sfCoordinate = CLLocationCoordinate2D(latitude: 37.7749, longitude: -122.4194) | ||
| private let searchRadiusMeters: CLLocationDistance = 60 | ||
| private let sweepBlue = Color(red: 0.05, green: 0.39, blue: 0.90) | ||
| private let sweepBlue = Color(red: 0.12, green: 0.48, blue: 0.96) |
There was a problem hiding this comment.
Unrelated brand color change
Low Severity
sweepBlue in the main app was changed from (0.05, 0.39, 0.90) to (0.12, 0.48, 0.96) in this localization-only PR. The widget still uses the original value, so primary buttons, badges, and accents no longer match between the app and widget.
Reviewed by Cursor Bugbot for commit 5316df1. Configure here.


Summary
Adds Punjabi (Gurmukhi, locale
pa) localization to the SweepAlert native iOS app. The app previously had no localization infrastructure — all strings were hardcoded English.What changed
Localizable.xcstringswith 117 English source strings and Gurmukhi Punjabi translations covering the map home (signed-out), settings, parking flows, alerts, auth errors, and widget metadata.painknownRegions, bundled the string catalog in both app and widget targets, and addedpa.lproj/InfoPlist.stringsfor display name and location permission text.statusMessage, auth/Convex/push error messages, dynamic status text, and date/urgency helpers toString(localized:)so they resolve through the catalog.settingsGroup(title:)to acceptLocalizedStringKeyfor section headers like Account/Crew.Target screen: Map Home Unauthenticated
Key Punjabi strings on the signed-out map screen:
When the device language is set to Punjabi, iOS automatically selects the
palocalization.Verification
Remote Revyl build succeeded and the app was validated on a cloud iOS device with Punjabi as the primary language.
Before (English, location permission dialog):
After (Punjabi map home, signed-out panel):
Device instruction result:
Instruction step success— confirmed Punjabi text on the signed-out map home screen (ਸਾਈਨ ਇਨ,ਸਵੀਪਅਲਰਟ,ਸੈਟਿੰਗਾਂ).How to test locally