Sami Language Support
Feature Detail
Description
This feature adds Northern Sami as a supported language in the Meander Mobile App, allowing the full UI - including labels, navigation, error messages, and dynamic organization terminology - to be displayed in Sami. The localization system must support runtime language switching without requiring an app restart, and must integrate with the existing organization labels system so that custom terminology overrides defined by admins can also be provided in Sami. This feature is identified by NHF due to their explicit Sami affiliation and user base in northern Norway.
User Flow
Analysis
NHF has a documented Sami-language user community in northern Norway, and excluding Sami speakers from full native-language access to the platform creates both an equity issue and a practical barrier to adoption within that segment. Sami language support also positions Meander as a platform committed to indigenous language rights and cultural inclusion, which is relevant for public sector funding considerations and Bufdir alignment. While the immediate user volume may be modest, the strategic signal it sends to prospective client organizations in the Nordic public and disability sector is disproportionately valuable relative to the implementation effort.
Use Flutter's built-in internationalization framework (flutter_localizations and the intl package) with ARB files as the source of truth for all translatable strings. Add a Northern Sami (se) locale ARB file alongside the existing Norwegian (nb) and English (en) files. Integrate with the organization terminology override system so that admins can supply Sami-language label overrides via the admin portal, which are then fetched and applied at runtime alongside the base ARB translations. Language selection should be stored in user preferences (Preferences Repository) and applied on app startup. Engage a qualified Sami language translator for all strings - do not use machine translation for production content. Test with right-to-left layout checks even though Sami is LTR, to ensure the localization pipeline handles all edge cases.
Components (35)
Shared Components
These components are reused across multiple features
Service Layer (9)
Data Layer (12)
Infrastructure (7)
User Stories
No user stories have been generated for this feature yet.