Set App Language Preference
A language selection card in Settings allows the user to choose their preferred display language. The selection is applied immediately to the running app without requiring a restart, using Flutter's locale system. The preference is persisted locally and synced to the Supabase user profile for cross-device consistency. The Settings screen itself renders in the currently active language, and switching language updates all visible UI strings immediately.
User Story
Acceptance Criteria
- Given I open the language settings card, when the screen loads, then I see the available language options with the current language pre-selected
- Given I select a different language, when I confirm the selection, then the app UI switches to the selected language immediately without requiring a restart
- Given I change the language preference, when I sign into the app on another device, then the same language preference is applied on that device
- Given the language card is rendered, when I interact with it, then all text labels and option descriptions meet WCAG 2.2 AA contrast requirements
Business Value
Supporting multiple language preferences reduces friction for users who are not native speakers of the default language and is a prerequisite for potential Sami language support identified as a future requirement by NHF. Correct language selection also reduces data-entry errors in activity descriptions and report fields.
Components
- Settings Screen ui
- Settings Card Widget ui
- Preferences Service service
- Preferences Repository data