You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: AGENTS.md
+3-2Lines changed: 3 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -352,8 +352,9 @@ Repo-specific design rules:
352
352
- CI or deployment work is not done when GitHub Actions is merely green; the deployed GitHub Pages app MUST be opened and verified to boot without shell errors.
353
353
- GitHub Pages deployment for `prompter.managed-code.com` MUST serve from the custom-domain root with `<base href="/">`; repo-name path prefixes are forbidden.
354
354
- Version text shown in the app must come from automated build or release metadata, never from manually edited About copy.
355
-
- The runtime must negotiate browser language from supported cultures and default to English.
356
-
- Supported runtime cultures are English, Ukrainian, French, Spanish, Portuguese, and Italian.
355
+
- The runtime must negotiate the initial language from the browser's supported cultures, fall back to English when there is no supported match, and persist the user's explicit language choice in user settings for later sessions.
356
+
- UI localization in Blazor must use resource-based localization with shared catalogs and named culture constants instead of screen-local hardcoded strings.
357
+
- Supported runtime cultures are English, Ukrainian, French, Spanish, Portuguese, Italian, and German.
357
358
- Russian must never be added as a supported runtime culture.
Copy file name to clipboardExpand all lines: docs/Architecture.md
+4-3Lines changed: 4 additions & 3 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -100,7 +100,7 @@ flowchart LR
100
100
|`Storage`| Browser persistence and cloud transfer orchestration | Keeps scripts and settings local-first while exposing provider-backed import/export |`src/PrompterOne.Shared/Storage`, `src/PrompterOne.Shared/Library/Services/Storage`| browser `IStorage` and VFS registration, authoritative browser repositories for scripts/folders, provider credential persistence, scripts/settings snapshot transfer | routed page layout, teleprompter rendering, video-stream upload workflows |
101
101
|`Cross-Tab Messaging`| Same-origin browser runtime coordination | Lets separate WASM tabs coordinate browser-owned state without a backend |`src/PrompterOne.Shared/AppShell/Services`, `src/PrompterOne.Shared/Settings/Services`, `src/PrompterOne.Shared/wwwroot/app`|`BroadcastChannel` bridge, typed envelopes, settings fan-out, same-origin tab sync | server state, cross-origin transport, collaborative editor conflict resolution |
102
102
|`Diagnostics`| Error and operation feedback layer | Makes recoverable and fatal issues visible in the shell |`src/PrompterOne.Shared/Diagnostics`| banners, error boundary reporting, operation status wiring | owning business logic of the failing feature |
103
-
|`Localization`| Culture and UI text contract | Keeps supported runtime languages consistent and browser-driven|`src/PrompterOne.Shared/Localization`, `src/PrompterOne.Core/Localization`|text catalogs, culture bootstrap, supported culture rules | feature behavior or screen-specific layout ownership |
103
+
|`Localization`| Culture and UI text contract | Keeps supported runtime languages consistent, browser-driven, and user-overridable through persisted settings |`src/PrompterOne.Shared/Localization`, `src/PrompterOne.Core/Localization`|shared resource catalogs, startup culture bootstrap, browser-language negotiation, persisted user language override, supported culture rules | feature behavior or screen-specific layout ownership |
104
104
|`Workspace`| Active script/session state model | Gives editor, learn, read, and go-live one shared script context |`src/PrompterOne.Core/Workspace`| loaded script state, previews, estimated duration, active session metadata | feature-specific rendering details |
105
105
|`Media`| Browser media and scene domain | Models cameras, microphones, transforms, and audio bus state |`src/PrompterOne.Core/Media`, `src/PrompterOne.Shared/Media`| media device models, scene state, browser media interop | routed screen layout ownership |
106
106
|`Streaming`| Program capture, transport, and target routing domain | Defines how one composed program feed is described, which source/output modules can attach to it, and which external targets are genuinely reachable without a PrompterOne backend |`src/PrompterOne.Core/Streaming`| program-capture profiles, source/output module contracts, transport connection profiles, downstream target descriptors, routing normalization, standalone transport constraints | Razor UI or page layout concerns |
@@ -397,6 +397,7 @@ If a native embedded browser host returns later, media access must not rely on s
397
397
- standalone Blazor WebAssembly host
398
398
- serves the app shell and static asset references
399
399
- applies browser-language culture selection before the WASM runtime starts rendering routed UI
400
+
- falls back to the persisted user language override from typed settings before browser negotiation, with English as the final fallback
400
401
- must stay free of server-only runtime dependencies
401
402
402
403
### `src/PrompterOne.Shared`
@@ -407,7 +408,7 @@ If a native embedded browser host returns later, media access must not rely on s
407
408
- exact design shell and imported `design` assets
408
409
- shared UI localization catalog for supported browser cultures
409
410
- browser interop and app DI wiring
410
-
- browser-backed `IUserSettingsStore` wiring for persisted reader, theme, scene, and studio preferences
411
+
- browser-backed `IUserSettingsStore` wiring for persisted reader, theme, language, scene, and studio preferences
411
412
- dynamic library folder components and folder/document browser storage adapters
412
413
- UI diagnostics banner and global error boundary
413
414
- debounced editor autosave and body-only TPS source authoring
@@ -547,7 +548,7 @@ flowchart LR
547
548
- The runtime must remain backend-free.
548
549
-`Go Live` may operate multiple concurrent browser publish transports when the operator explicitly arms them, but every active transport must still consume the same canonical browser-owned program feed.
549
550
-`Go Live` must not require any PrompterOne-owned backend, relay, ingest layer, or media server; only third-party browser-facing transport infrastructure is allowed.
550
-
- Browser-language localization must default to Englishand support `en`, `uk`, `fr`, `es`, `pt`, and `it`.
551
+
- Browser-language localization must default to English, must allow a persisted user override, and must support `en`, `uk`, `fr`, `es`, `it`, `de`, and `pt`.
551
552
- Russian is intentionally unsupported and must fall back to English.
552
553
- Visual fidelity should prefer copying the exact design classes and structure over inventing replacements.
553
554
- Browser tests require Playwright Chromium to be installed locally.
0 commit comments