Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

02 — User Personas (i18n Module)

Who touches translation infrastructure. Components per 00-shared/03; global IA per 00-shared/05.


1. Ravi — Student (consumes translated UI)

  • Age 17, Grade 12, prefers Hindi on his phone (Accept-Language: hi-IN).
  • Never touches translation tooling; only consumes the catalog the app downloads via GET /api/v1/i18n/messages.
  • Failure mode: a missing hi string silently falls back to English (i18n.service.ts:40) — fine for Ravi, invisible to him.
  • Needs: complete catalogs in his locale, correct pluralization (leave.requested with {days}).

2. Meera — School Admin (consumes + indirectly authors)

  • Uses the web admin console; toggles her account locale.
  • Triggers translated system notifications (e.g. announcement published) which currently hardcode English in notifications.handler.ts:16-31 (planned fix: key-based titles**)**.
  • Needs: system messages in her locale, not English-only.

3. Aarav — Platform Admin / Translation Manager (planned)

  • New persona for the (planned) admin translation console.
  • Reviews missing keys per locale, edits translations, watches drift.
  • Needs: per-locale editor, missing-key view, placeholder validation, sync status (which locale is behind).
  • Today he would edit en.json / hi.json by hand and deploy — no UI.

4. Dev / Content Ops — key hygiene

  • Adds new product strings; keeps keys in dotted namespaces (errors.*, leave.*, announcement.*).
  • Needs: CI drift check (planned) per IMPLEMENTATION_PLAN.md:845 ("CI check for missing translations") and Crowdin extraction.

5. What personas do NOT do

  • No tenant admin edits translations at runtime (per-tenant catalogs are a non-goal — 01_Product_Overview.md §6).
  • No student/staff chooses a locale in-app yet; locale comes only from the Accept-Language header via middleware (i18n.middleware.ts:13-18). In-app locale switching is (forward-looking).