# Issue #207 Artifact — da/en locale switch + audio routing (primary-only) ## Scope Acceptance for `[READY][i18n][P19]`: 1. Verify one MVP host+player flow in both `en` and `da` locale context. 2. Verify controlled fallback to `en` when a locale key is missing. 3. Verify audio-routing policy is primary-only (client/player has no audio output). No new feature behavior added — this is verification-only evidence. ## Smoke/e2e evidence (Angular shell test run) Executed from `frontend/angular`: ```bash npm test -- --reporter=dot src/app/lobby-i18n.spec.ts src/app/features/host/host-shell.component.spec.ts src/app/features/player/player-shell.component.spec.ts ``` Evidence covered by the run: - `lobby-i18n.spec.ts` - subscriber locale switch updates (`en -> da -> en`) - controlled fallback where `da` key is removed during test and `en` copy is returned - `clientHasNoAudioOutput === true` (primary-only audio routing) - `host-shell.component.spec.ts` - host actions and route sync in SPA (no reload) - `player-shell.component.spec.ts` - player session refresh/sync path and retry behavior ## Policy evidence - Shared catalog capability: `shared/i18n/lobby.json` - `frontend.capabilities.client_has_no_audio_output = true` - Angular host/player shells bind this capability: - `HostShellComponent.clientHasNoAudioOutput` - `PlayerShellComponent.clientHasNoAudioOutput` Conclusion: locale switching works in `da`/`en`, fallback resolves to `en` when locale key is intentionally missing, and client audio remains disabled by policy (`primary-only`).