medium complexity extracted Accessibility Confidence: 100%
5
Components
106
Shared
0
User Stories
Yes
Analyzed

Description

This feature adds localisation support for one or more Sami languages — initially Northern Sami — within the Meander Mobile App. It enables users to switch the app language to Sami through the Language Settings Screen, at which point all UI strings, labels, navigation items, and system messages are displayed in the selected Sami language. The Sami Translations Store persists the user's language preference and the Localization Service resolves the correct string bundle at runtime. The feature is designed to be extensible so that additional Sami dialects or other minority languages can be added without architectural changes.

User Flow

Sami Language Support user flow
Click to expand

Analysis

Business Value

NHF has an explicit Sami language affiliation and has indicated interest in supporting Sami-speaking members in future releases. Norway has a legal obligation under the Sami Language Act (Sámeloven) to support the use of Sami languages in services directed at Sami communities. While this feature is not required for MVP, including it in the architecture from an early stage — particularly the string externalisation and locale-switching infrastructure — avoids costly retrofitting later. For peer mentors and contacts in Sami-speaking regions, language support directly reduces the cognitive load of using the app and increases the likelihood of regular, accurate activity registration, which feeds into the core mission of the platform.

Implementation Notes

Flutter's built-in internationalisation framework (flutter_localizations and the intl package) provides the foundation. All UI strings must be externalised into ARB (Application Resource Bundle) files from the outset — one file per supported locale. The Localization Service wraps Flutter's LocalizationsDelegate and exposes a language-switching API consumed by the Language Settings Screen. The Sami Translations Store persists the user's locale preference to local storage (shared_preferences) and restores it on app launch. Sami language ARB files will require professional translation; the engineering deliverable is the infrastructure that loads them correctly. Right-to-left layout is not required for Sami languages, but the localisation architecture should not assume LTR-only to remain extensible. All translated strings must still meet WCAG contrast and typography requirements.

Components (111)

User Interface (2)

Data Layer (2)

Infrastructure (1)

Shared Components

These components are reused across multiple features

Service Layer (34)

Data Layer (22)

Infrastructure (38)

infrastructure Keychain/Keystore Adapter low Shared infrastructure JWT Claims Extractor low Shared infrastructure Organization Labels Adapter low Shared infrastructure Keychain/Keystore Adapter low Shared infrastructure Auth API Client medium Shared infrastructure REST API Client medium Shared infrastructure WCAG Accessibility Adapter low Shared infrastructure Registration API Client low Shared infrastructure Accounting API Client high Shared infrastructure PDF Renderer Adapter medium Shared infrastructure File Share Adapter low Shared infrastructure FCM/APNs Adapter high Shared infrastructure Share Sheet Adapter low Shared infrastructure Share Plus Adapter low Shared infrastructure Platform Accessibility Bridge medium Shared infrastructure Semantics Override Adapter high Shared infrastructure URL Launcher Adapter low Shared infrastructure Markdown Content Renderer low Shared infrastructure Network Connectivity Monitor low Shared infrastructure Expense Receipt Storage Adapter low Shared infrastructure Audit Log Writer low Shared infrastructure Feature Flag Checker low Shared infrastructure Logo Upload Adapter low Shared infrastructure Terminology Constants Registry low Shared infrastructure Feature Flag Cache Adapter low Shared infrastructure Org Scope JWT Resolver medium Shared infrastructure Association Audit Logger low Shared infrastructure Token Blocklist medium Shared infrastructure Analytics Tracker low Shared infrastructure SEO Metadata Config low Shared infrastructure Analytics Tracker low Shared infrastructure Analytics Tracker low Shared infrastructure Sales Analytics Tracker low Shared infrastructure Email Provider Adapter low Shared infrastructure Terms of Service Content Provider low Shared infrastructure Legal PDF Asset Provider low Shared infrastructure Consent-Gated Script Loader low Shared infrastructure Legal Page Layout low Shared

User Stories

No user stories have been generated for this feature yet.