Skip to content

feat(#61): line-by-line projector mode with parallel translations - #90

Open
TheMaestr-o wants to merge 1 commit into
developfrom
feat/61-projector-line-by-line
Open

feat(#61): line-by-line projector mode with parallel translations#90
TheMaestr-o wants to merge 1 commit into
developfrom
feat/61-projector-line-by-line

Conversation

@TheMaestr-o

Copy link
Copy Markdown
Collaborator

Summary

  • Line-by-line projector mode with 1-line (solo) and 2-line (flow) display variants
  • Parallel translation support: singable translations shown full-size, reference translations dimmed below
  • BroadcastChannel sync for all new message types (lineMode, lineIndex, linesPerSlide, transition, showTranslation, showPartLabel, blank, primaryLang, allCaps)
  • Presenter dashboard: current/next line previews, language swap, transition selector, font scale controls
  • Keyboard shortcuts: //Space next, / prev, 1/2 lines per slide, Escape exit
  • DB migration: language and translation_type columns on song_parts
  • Admin UI: language code + translation type selectors per song part

Closes #61

Implement line-by-line display mode for Projector with bilingual support.

- New line-by-line projector mode: current line full-size, next line preview, previous line dimmed
- ×1 (solo) and ×2 (flow) modes for flexible display
- Bilingual translation support: singable (full-size) and reference (dimmed)
- PresenterDashboard redesign: controls below slide strip
- Admin UI for language/translation_type per song part
- Keyboard shortcuts: ←→ (navigate), B (blank), F (fullscreen), 1/2 (lines)
- BroadcastChannel sync for two-window presenter setup

- Migration 0011: Add `language` and `translation_type` to `song_parts`
- `buildLineSlides()` and `swapPrimaryLang()` in format.ts for line interleaving
- `SongPartDto` extended with new fields

- SongEditor redesigned with translation editor
- Language + translation type selectors per part
- Admin API routes: POST/PATCH song parts now accept language/translationType

- Updated docs/schema.md with new song_parts fields
- Updated docs/api.md with new endpoint parameters
- Added i18n strings in de.json and en.json

- Removed ci.yml branch pollution (keep main, develop only)
- Fixed admin API_URL to use env var instead of hardcoded localhost
- Localized all PresenterDashboard strings
- Fixed prettier formatting in api.ts
- Updated screenshot baselines for new Projector and PresenterDashboard UI

Closes #61

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
@theDeniZ
theDeniZ force-pushed the feat/61-projector-line-by-line branch from 1048a48 to 5a31ffb Compare August 14, 2026 19:34
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Feature] Projector: line-by-line display mode with parallel translation

1 participant