Custom Terminology
Feature Detail
Description
This feature lets each organization override default platform terminology with their own preferred wording. Org Admins manage labels such as the term for 'Contact' (Kontakt, Familie, Bruker), peer mentor and coordinator role names, and other domain nouns. Overrides are stored per organization and served to mobile and admin clients through the bootstrap response, cached offline on mobile, and applied throughout the UI without code changes per tenant.
Sources & reasoning
Explicitly described as an existing mobile capability (§231) with overrideable terminology per org (§395). The admin portal must own the editor surface since admin-organization is the toggle/config hub. MVP because it's listed in the Admin MVP scope (§247) as 'terminologikonfigurasjon'.
-
docs/source/likeperson.md · line 231Organization labels system - per-org terminology overrides fetched from backend and cached offline (currently: `contacts`, `my_contacts`, `peer_mentors`; extensible to singular forms and role terms
-
docs/source/likeperson.md · line 395Contact | Person receiving support from a peer mentor | Kontakt (overrideable per org via the Organization Labels system, e.g. `Familie`, `Bruker`)
Analysis
Different organizations use materially different vocabulary for the same underlying concept - Barnekreftforeningen speaks of 'Familie', other organizations of 'Bruker' or 'Kontakt'. Forcing all tenants to use a single canonical label would feel foreign and reduce adoption among volunteers who already find digital tools daunting. By making terminology a configuration concern rather than a code concern, the platform onboards new organizations without engineering work and respects each organization's identity. This is also a precondition for honest accessibility: cognitively challenged users (NHF mentions slagrammede) rely on familiar wording to navigate confidently.
Backed by the organization_labels table (one_to_many with organizations) storing key/value pairs scoped per tenant. The admin portal exposes an editor with validation against a known set of labelable keys (contacts, my_contacts, peer_mentors, contact, peer_mentor, coordinator, etc.). Labels are returned in the session/bootstrap payload and applied via a label-resolution helper in both Flutter and Next.js - components reference labels by key, never by hardcoded string. Mobile caches the label set in the encrypted local DB so offline use shows correct wording. Falls back to canonical defaults when a key is unset.
Quality Assurance
Organization Administrator (primary) · Global Administrator (subject view, only with time-bounded support grant)Organization Administrator
Quick UAT
- Logg inn i Admin-portalen som Organisasjonsadministrator og Ă„pne Organisasjon â Tilpasset terminologi.
- Finn nokkelen 'Contact' i listen og bekreft at gjeldende verdi viser standardteksten 'Kontakt'.
- Skriv inn 'Familie' i overstyringsfeltet for 'Contact' og trykk Lagre.
- Bekreft at raden viser status 'Overstyrt' og at verdien nÄ er 'Familie'.
- à pne Meander mobilapp som en bruker i samme organisasjon, dra ned for Ä oppdatere, og bekreft at fanen som tidligere het 'Kontakter' nÄ heter 'Familier'.
- GÄ tilbake til Admin-portalen, trykk 'Tilbakestill til standard' pÄ 'Contact'-raden og bekreft at verdien gÄr tilbake til 'Kontakt' og status blir 'Standard'.
Quick UAT â Accessibility
-
Logg inn i Admin-portalen som Organisasjonsadministrator og Ă„pne Organisasjon â Tilpasset terminologi.
- Screen reader Sideoverskrift 'Tilpasset terminologi' annonseres; tab-rekkefolge: hovedmeny â undermeny â tabelloverskrift.
- Keyboard / focus Hele navigasjonen nÄs med Tab; Enter aktiverer menypunkter.
- Focus visibility Synlig fokusring pÄ alle menypunkter og lenker.
-
Finn nokkelen 'Contact' i listen og bekreft at gjeldende verdi viser standardteksten 'Kontakt'.
- Screen reader Tabellen annonseres med rad- og kolonneoverskrifter; hver celle leses som 'Nokkel: Contact, Standard: Kontakt, Status: Standard'.
- Keyboard / focus Piltaster navigerer mellom rader og kolonner i tabellen.
-
Skriv inn 'Familie' i overstyringsfeltet for 'Contact' og trykk Lagre.
- Screen reader Inndatafeltet annonseres med label 'Overstyring for Contact'; Lagre-knappen leses som 'Lagre, knapp'.
- Focus visibility Synlig fokusring pÄ inndatafelt og Lagre-knapp; feltet har tilknyttet label.
- Touch target Lagre-knapp er minst 24x24 CSS-piksler.
-
Bekreft at raden viser status 'Overstyrt' og at verdien nÄ er 'Familie'.
- Live region 'Terminologi lagret. Contact overstyres nÄ som Familie.'
- Contrast Status-merket 'Overstyrt' har minst 4.5:1 kontrast og er ikke kun farge-kodet â det har ogsĂ„ tekst.
-
à pne Meander mobilapp som en bruker i samme organisasjon, dra ned for Ä oppdatere, og bekreft at fanen som tidligere het 'Kontakter' nÄ heter 'Familier'.
- Screen reader Bunnfanen annonseres med ny label 'Familier' i stedet for 'Kontakter'.
- Touch target Bunnfane-elementet er minst 24x24 CSS-piksler.
- Zoom Faneteksten er lesbar ved 200 % zoom uten avkutting.
-
GÄ tilbake til Admin-portalen, trykk 'Tilbakestill til standard' pÄ 'Contact'-raden og bekreft at verdien gÄr tilbake til 'Kontakt' og status blir 'Standard'.
- Screen reader Knappen leses som 'Tilbakestill til standard, knapp'; bekreftelsesdialog annonseres.
- Focus visibility Fokus flyttes til bekreftelsesdialogen og tilbake til raden etter handlingen.
- Live region 'Terminologi tilbakestilt. Contact viser nÄ standardteksten Kontakt.'
Role Boundaries
4 role(s) must NOT access this feature-
Peer Mentor (Likeperson)
Terminologi-editoren finnes ikke i mobilappens navigasjon; Peer Mentor logger ikke inn i Admin-portalen. Direkte API-kall mot terminology-endepunkter returnerer 403.
-
Coordinator (Koordinator)
Koordinatorer logger ikke inn i Admin-portalen og har ingen tilgang til Tilpasset terminologi. Deep-link til Admin-portalen returnerer 403/innloggingsskjerm uten admin-tilgang.
-
Global Administrator
Uten et aktivt tidsbegrenset stĂžttegrant fra organisasjonen er menypunktet Organisasjon â Tilpasset terminologi skjult og API-kall returnerer 403. Med aktivt grant er tilgang lest/skrive logget i organisasjonens audit-spor.
-
Prospective Buyer
Salgsnettstedet har ingen pÄlogging; det finnes ingen rute til terminologi-editoren. ForsÞk pÄ admin-URL returnerer 404/redirect til salgssiden.
Expected End State
Organisasjonens terminologi-overstyringer er lagret i Terminology Store, eksponert via Terminology Service i bootstrap-responsen, og Meander mobilapp viser de overstyrte etikettene pÄ alle skjermer der nokkelen brukes. Tilbakestilling fjerner overstyringen og gjenoppretter standard plattformtekst.
Components (8)
Shared Components
These components are reused across multiple features
User Stories
No user stories have been generated for this feature yet.