V1 Web PWA · Surface walkthrough

Mawu Studio — Localization (V7)

A per-surface walkthrough of the V1 Web PWA studio surface: layout, states, interactions, data, and cross-references.

walked
8sections3 minread

On this page

Context. surface studio · domain mawu · route /mawu-studio/localization · auth signed-in + creator · source apps/oshun/web/src/app/mawu-studio/localization/page.tsx

Last walked. 2026-06-03 automated runtime probe (Playwright headless) — prod build + mock BFF; render, HTTP 200, server-rendered <h1>, 0 page errors verified. Evidence: WALKTHROUGH/results/walkthrough-runtime-probe-2026-06-03.md

Purpose#

Reviews the V7 Mawu launch-locale catalog filtering, per-locale moderation evidence, and regional governance localization. Tracks catalog / Mawu Studio / governance / platform-UI coverage across the eight @oshun/i18n launch locales, and surfaces which catalog content is browser-visible per locale (only approved content shows in the Abundantia browser). Out of the V1 feature map — a V7 surface that ships in apps/oshun/web (documented here for an exhaustive route inventory).

Entry points#

  • Direct URL / bookmark/mawu-studio/localization (signed-in creator)
  • Studio shell navactive="studio" (shortcut 6)
  • From Accessibility workspace — the "Localization" footer link on /mawu-studio/accessibility

Layout regions#

  • Header (aria-labelledby="mawu-localization-title") — eyebrow "V7 launch locale set", H1 "Mawu Studio Localization", summary
  • Metrics (aria-label="Localization status") — Locales (OSHUN_LAUNCH_LOCALES.length/8), Surfaces (4/4), Moderation (per locale), Governance (regional)
  • Controls (aria-label="Localization controls") — Catalog-locale select + Governance-region select
  • Body grid
    • Abundantia Browser (data-localized-catalog-browser) — catalog entries approved for the chosen locale (title, kind tag, summary, creator, locale, moderation status)
    • Governance Proposal — regionalized proposal text for the chosen region
  • Launch Surface Coverage — 4 surface rows (Catalog / Mawu Studio / Governance / Platform UI) each N/8
  • Per-Locale Moderation (aria-label="Per-locale moderation evidence") — every catalog content row's locale / status / moderation-report id

States#

  • Loading / Error / Offline — N/A: catalog, governance, and coverage data are in-bundle constants (CATALOG_ITEMS, GOVERNANCE_TRANSLATIONS, SURFACE_COVERAGE); no client network read
  • Hydrationdata-hydrated flips to true after the mount effect
  • Catalog locale = es-US (default)data-catalog-filter-locale; browser shows only entries with a matching locale and moderationStatus === 'approved'
  • Catalog locale with a pending entry — e.g. pt-BR Harbor Night is pending, so it is filtered OUT of the browser but still appears in the Per-Locale Moderation grid with status pending
  • Empty catalog result — when no approved entry matches the locale, the entry list renders empty with the count "0 locale-approved entries"
  • Governance region = europe (default)data-governance-region; proposal renders the region's locale text (REGION_OPTIONS[region])
  • Governance region with no translation — the proposal <article> is omitted (null guard)
  • Gated — signed-in creator (shell); no V1 BFF policy (out-of-v1)
  • Standalone PWA — renders within the shell

Interactions#

  • Catalog locale (select, data-catalog-locale-filter) — options are the 8 OSHUN_LAUNCH_LOCALES (<locale> - <LAUNCH_LOCALE_LABELS[locale]>); filters the Abundantia browser entries (approved-only). Wires both onInput and onChange
    • Function: sets catalogLocale; recomputes catalogEntries
    • Keyboard: native select semantics; screen reader announces "Catalog locale"
  • Governance region (select, data-governance-region-select) — options are the 5 regions (north-america / europe / mena / japan / brazil) each shown as <region> - <locale>
    • Function: sets governanceRegion; recomputes the governance proposal text
  • Catalog / moderation / coverage lists — read-only; no row controls

Data & contracts#

  • Reads: in-bundle CATALOG_ITEMS, GOVERNANCE_TRANSLATIONS, SURFACE_COVERAGE, REGION_OPTIONS; launch locales + labels from @oshun/i18n (OSHUN_LAUNCH_LOCALES, LAUNCH_LOCALE_LABELS)
  • Writes: None on the wire. The V7 catalog/moderation/governance BFF wiring is a future-arc concern; moderation report ids are deterministic (kuanyin-locale:<locale>:<region>, kuanyin-governance-locale:<locale>:<region>)
  • Realtime: None.
  • Caching: client component; SSR shell only
  • Auth/role check: session (signed-in creator); no V1 BFF policy (out-of-v1)

Cross-references#

Open questions / known gaps#

  • Catalog, governance, and coverage data are in-bundle constants. Confirm the V7 BFF endpoints that will serve the real localized catalog + moderation evidence (the kuanyin-* report ids suggest a Kuan-yin moderation service) before this leaves V7 preview.
  • OSHUN_LAUNCH_LOCALES.length/8 is rendered as the metric; confirm the launch locale set stays at 8 so the "/8" denominator is correct.