From 60acaa99210648d5b04aa4f488d0710f42fa7d70 Mon Sep 17 00:00:00 2001 From: Lara Date: Mon, 2 Nov 2026 10:25:52 +0100 Subject: [PATCH] Sprechtexte nach Sprachen getrennt (DE/ES/FR), Folge 2 in allen drei Sprachen renderbar MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Texte stehen nur noch in remotion/src/folge02/texte/.json, die Szenen enthalten nur Ablauf und Bewegung - Sprache beim Rendern wählbar (render.mjs --sprache es, Studio über --props); Zeitplan richtet sich nach Textlänge bzw. Aufnahmen der Sprache - Baukasten-Wörter je Sprache in baukasten/sprache.ts: Kanalname im Buch (mit festem Umbruch für ES/FR), „Heute: …“, Sprechernamen, Kalendertitel, „Hatschi!“; Kalenderbild für ES/FR vorberechnet - Stimmen je Sprache: stimmen/.json, public/stimmen/folge02//, stimmen.mts --sprache, eigene Stimmen je Sprache möglich - neues werkzeuge/texte.mts: prüft fehlende Übersetzungen, --tabelle zum Gegenlesen - README, CLAUDE.md und Drehbuch-Hinweise angepasst Co-Authored-By: Claude Opus 5.5 --- CLAUDE.md | 10 ++- drehbuecher/folge02-pino-ist-muede/de.md | 2 + drehbuecher/folge02-pino-ist-muede/es.md | 2 + drehbuecher/folge02-pino-ist-muede/fr.md | 2 + remotion/README.md | 41 ++++++++-- remotion/public/orte/kalender_es.webp | Bin 0 -> 74146 bytes remotion/public/orte/kalender_fr.webp | Bin 0 -> 73924 bytes remotion/src/baukasten/buch.tsx | 13 ++-- remotion/src/baukasten/orte.tsx | 11 ++- remotion/src/baukasten/sprache.ts | 72 ++++++++++++++++++ remotion/src/baukasten/untertitel.tsx | 12 +-- remotion/src/baukasten/zeit.ts | 4 +- remotion/src/folge02/Folge02.tsx | 3 +- remotion/src/folge02/lied.tsx | 12 +-- remotion/src/folge02/plan.ts | 30 +++++++- .../folge02/{stimmen.json => stimmen/de.json} | 0 remotion/src/folge02/stimmen/es.json | 1 + remotion/src/folge02/stimmen/fr.json | 1 + remotion/src/folge02/szene2.tsx | 18 ++--- remotion/src/folge02/szene3.tsx | 22 +++--- remotion/src/folge02/szene4.tsx | 33 ++++---- remotion/src/folge02/szene5.tsx | 10 +-- remotion/src/folge02/szene6.tsx | 14 ++-- remotion/src/folge02/szene7.tsx | 10 +-- remotion/src/folge02/texte/de.json | 62 +++++++++++++++ remotion/src/folge02/texte/es.json | 62 +++++++++++++++ remotion/src/folge02/texte/fr.json | 62 +++++++++++++++ remotion/werkzeuge/render.mjs | 29 ++++--- remotion/werkzeuge/stimmen.mts | 19 +++-- remotion/werkzeuge/szenenliste.mts | 2 +- remotion/werkzeuge/texte.mts | 69 +++++++++++++++++ 31 files changed, 516 insertions(+), 112 deletions(-) create mode 100644 remotion/public/orte/kalender_es.webp create mode 100644 remotion/public/orte/kalender_fr.webp create mode 100644 remotion/src/baukasten/sprache.ts rename remotion/src/folge02/{stimmen.json => stimmen/de.json} (100%) create mode 100644 remotion/src/folge02/stimmen/es.json create mode 100644 remotion/src/folge02/stimmen/fr.json create mode 100644 remotion/src/folge02/texte/de.json create mode 100644 remotion/src/folge02/texte/es.json create mode 100644 remotion/src/folge02/texte/fr.json create mode 100644 remotion/werkzeuge/texte.mts diff --git a/CLAUDE.md b/CLAUDE.md index 8e57193..6106f9b 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -6,7 +6,12 @@ ES „El pequeño mundo de Pino", FR „Le petit monde de Pino". **Format ab Folge 2:** Folgen entstehen in Remotion nach dem Muster von `remotion/src/folge02/` (Figuren-Bibliothek + Baukasten, siehe -`remotion/README.md`), nicht mehr als Higgsfield-Clips. +`remotion/README.md`), nicht mehr als Higgsfield-Clips. Sobald eine Folge in +Remotion umgesetzt ist, stehen ihre Sprechtexte **nur noch** in +`remotion/src/folgeNN/texte/de.json`, `es.json`, `fr.json`; das Drehbuch +(`drehbuecher/…`) beschreibt Handlung und Bild. Prüfen mit +`npx tsx werkzeuge/texte.mts FNN` (im Ordner `remotion/`), Fassung je Sprache +mit `node werkzeuge/render.mjs FNN --sprache es`. ## Rahmen - **Zielgruppe:** Kinder von 3–6 Jahren. @@ -49,6 +54,7 @@ Projektordner (`clips/`, `ton/`). Auf dem VPS liegen die unter auf dem VPS im gemeinsamen Ordner `/shared/youtube/`. - **Drehbücher nur hier pflegen.** Das Repo ist die gültige Fassung; das frühere Plan-Dokument (Artifact) dient nur noch als Übersicht. -- Alle drei Sprachfassungen einer Folge gemeinsam ändern, damit sie +- Alle drei Sprachfassungen einer Folge gemeinsam ändern (bei Remotion-Folgen + in `texte/.json`), damit sie inhaltlich gleich bleiben. - Inhalte kindgerecht: keine Gewalt, keine Angstszenen, kurze Sätze. diff --git a/drehbuecher/folge02-pino-ist-muede/de.md b/drehbuecher/folge02-pino-ist-muede/de.md index 51bd813..4579fd9 100644 --- a/drehbuecher/folge02-pino-ist-muede/de.md +++ b/drehbuecher/folge02-pino-ist-muede/de.md @@ -2,6 +2,8 @@ Drehbuch, deutsche Fassung, Entwurf vom 25.10.2026. Online am 22.11.2026. +> **Sprechtexte fürs Video:** seit 02.11.2026 gilt `remotion/src/folge02/texte/de.json` (Zeilen-IDs wie `s2/e1`). Dieses Drehbuch beschreibt Handlung und Bild; bei Abweichungen im Text gilt die JSON-Datei. + ## Eckdaten Pino gähnt den ganzen Tag, und Lulu und die Erzählstimme erklären den Winterschlaf. Zu dritt bauen sie Pino ein Nest aus Blättern. Aber Pino will nicht schlafen, bevor das Winterfest da ist. Noa hat die Idee mit dem Kalender. So leitet die Folge in den Adventskalender ab 1. Dezember über. diff --git a/drehbuecher/folge02-pino-ist-muede/es.md b/drehbuecher/folge02-pino-ist-muede/es.md index fb36baa..db3867f 100644 --- a/drehbuecher/folge02-pino-ist-muede/es.md +++ b/drehbuecher/folge02-pino-ist-muede/es.md @@ -2,6 +2,8 @@ Spanische Sprechfassung für ElevenLabs, Entwurf vom 26.10.2026. Neutrales Spanisch für Spanien und Lateinamerika (kein „vosotros“, kein „coger“). Die Bilder sind dieselben wie in der deutschen Fassung. *Kursiv* = Pausen und Geräusche, nicht einsprechen. +> **Sprechtexte fürs Video:** seit 02.11.2026 gilt `remotion/src/folge02/texte/es.json`. Bei Abweichungen gilt die JSON-Datei. + ## Escena 1: Intro (0:00–0:15) *Música de la serie.* diff --git a/drehbuecher/folge02-pino-ist-muede/fr.md b/drehbuecher/folge02-pino-ist-muede/fr.md index 83ca2eb..f79dae2 100644 --- a/drehbuecher/folge02-pino-ist-muede/fr.md +++ b/drehbuecher/folge02-pino-ist-muede/fr.md @@ -2,6 +2,8 @@ Französische Sprechfassung für ElevenLabs, Entwurf vom 26.10.2026. Die Figuren sagen „tu“, die Erzählstimme spricht das Kind mit „tu“ an. Die Bilder sind dieselben wie in der deutschen Fassung. *Kursiv* = Pausen und Geräusche, nicht einsprechen. +> **Sprechtexte fürs Video:** seit 02.11.2026 gilt `remotion/src/folge02/texte/fr.json`. Bei Abweichungen gilt die JSON-Datei. + ## Scène 1 : Intro (0:00–0:15) *Générique.* diff --git a/remotion/README.md b/remotion/README.md index e8acfcd..d5bca8d 100644 --- a/remotion/README.md +++ b/remotion/README.md @@ -79,7 +79,8 @@ Mitmach-Pausen zeigen ein „?“. | `src/baukasten/untertitel.tsx` | Untertitel, Mitmach-Pause, Stimmen abspielen | | `src/baukasten/folge.tsx` | macht aus der Szenenliste die Kompositionen | | `src/baukasten/posen.ts` | automatisch erzeugt von `werkzeuge/posen.py` | -| `src/folge02/` | Folge 2: `Folge02.tsx` (Szenenliste), `szene2.tsx` … `szene7.tsx`, `lied.tsx`, `stimmen.json` | +| `src/baukasten/sprache.ts` | gewählte Sprache und die Wörter des Baukastens je Sprache | +| `src/folge02/` | Folge 2: `Folge02.tsx` (Szenenliste), `szene2.tsx` … `szene7.tsx`, `lied.tsx`, `plan.ts`, `texte/.json` (Sprechtexte), `stimmen/.json` (Aufnahmen) | | `public/bibliothek/figuren/` | freigestellte Standbilder (WebP, im Git) | | `public/bibliothek/clips/` | freigestellte Clips (WebM mit Alpha, nicht im Git; VPS: Link auf `/shared/youtube/figuren_bibliothek/clips_frei/`) | | `public/stimmen/` | Sprachaufnahmen (nicht im Git; VPS: Link auf `/shared/youtube/stimmen/`) | @@ -87,8 +88,9 @@ Mitmach-Pausen zeigen ein „?“. **Kompositionen:** `F02` ist die ganze Folge, `F02-01-Intro`, `F02-02-Gaehnen-ueberall` … jede Szene einzeln. -**Neue Folge:** Ordner `src/folgeNN/` anlegen, `plan.ts` und `stimmen.json` -(`{}`) aus Folge 2 kopieren und den Ordnernamen anpassen, Szenen nach dem +**Neue Folge:** Ordner `src/folgeNN/` anlegen, `plan.ts` aus Folge 2 kopieren, +`stimmen/de.json`, `es.json`, `fr.json` mit `{}` anlegen, `texte/.json` +mit den Sprechtexten füllen, Ordnernamen anpassen, Szenen nach dem Muster von `szene2.tsx` schreiben (oben die Zeilen mit `plane('sX', [...])`, darunter Posenfolgen und Kamerafahrt, die sich auf `z..start/ende` beziehen), in `FolgeNN.tsx` auflisten und in `src/Root.tsx` eintragen. @@ -99,7 +101,8 @@ node werkzeuge/render.mjs F02 --entwurf # schnelle Fassung zum Begutachten node werkzeuge/render.mjs F02 # volle Qualität node werkzeuge/render.mjs F02 --szene 3 # nur Szene 3 neu ``` -Das Skript rendert jede Szene einzeln nach `out/F02/` und klebt sie +Mit `--sprache es` bzw. `fr` entsteht die jeweilige Fassung (siehe unten). +Das Skript rendert jede Szene einzeln nach `out/F02//` und klebt sie zusammen. Szenen, deren Code, Bilder oder Aufnahmen sich nicht geändert haben, werden übersprungen. Im Entwurf stehen oben links Gesamtzeit, Szene, Szenenzeit und Zeilen-ID – für Rückmeldungen einfach diese Angaben nennen @@ -110,14 +113,36 @@ Auf dem VPS: vorher `export LD_LIBRARY_PATH=$HOME/.local/chrome-libs/root/usr/li `npx remotion studio` öffnet alle Kompositionen im Browser; Änderungen am Code sind sofort zu sehen. Anleitung für einen Windows-PC: `ANLEITUNG_PC.md`. +### Sprachen (DE, ES, FR) +Die Sprechtexte stehen **nur** in `src/folgeNN/texte/de.json`, `es.json`, +`fr.json` (Titel der Folge, Liedtitel und jede Zeile unter ihrem Schlüssel +`szene/zeile`, z. B. `s2/e1`). Die Szenendateien enthalten nur Ablauf und +Bewegung: `{id: 'e1', wer: 'ERZ'}` ohne Text. Wörter, die der Baukasten selbst +mitbringt (Kanalname, „Heute: …“, Sprechernamen im Untertitel, Kalendertitel, +„Hatschi!“), stehen in `src/baukasten/sprache.ts`. + +Die Sprache wird beim Rendern gewählt; der Zeitplan richtet sich nach der +Länge der Texte bzw. Aufnahmen dieser Sprache, die Bewegungen rutschen mit. +```bash +npx tsx werkzeuge/texte.mts F02 # fehlt in einer Sprache etwas? +npx tsx werkzeuge/texte.mts F02 --tabelle # alle Sprachen nebeneinander zum Gegenlesen +node werkzeuge/render.mjs F02 --sprache es # spanische Fassung → out/F02/F02-es.mp4 +npx remotion studio --props='{"sprache":"fr"}' +``` +Orte mit Schrift im Bild (bisher nur `kalender`) gibt es je Sprache als +`public/orte/kalender_es.webp` usw. (vorberechnen mit +`--props='{"sprache":"es"}'`). Fehlt eine Übersetzung, zeigt der Untertitel +`[fehlt: s2/e1]`. + ### Stimmen (ElevenLabs) 1. Stimmen-IDs je Sprecher in `werkzeuge/stimmen.config.json` eintragen - (`ALLE` und `NOA_LULU` verweisen auf einen anderen Sprecher). + (`ALLE` und `NOA_LULU` verweisen auf einen anderen Sprecher). Andere Stimmen + für eine Sprache unter `"sprachen": {"es": {"stimmen": {"ERZ": "…"}}}`. 2. `npx tsx werkzeuge/stimmen.mts F02 --probe` zeigt, welche Zeilen erzeugt würden, und zählt die Zeichen (kostet nichts). -3. `ELEVENLABS_API_KEY=… npx tsx werkzeuge/stimmen.mts F02` erzeugt die - Aufnahmen nach `public/stimmen/folge02/` und trägt ihre Länge in - `src/folge02/stimmen.json` ein. Der Zeitplan richtet sich danach; ändert +3. `ELEVENLABS_API_KEY=… npx tsx werkzeuge/stimmen.mts F02 --sprache es` erzeugt die + Aufnahmen nach `public/stimmen/folge02/es/` und trägt ihre Länge in + `src/folge02/stimmen/es.json` ein (ohne `--sprache`: Deutsch). Der Zeitplan richtet sich danach; ändert sich ein Text, wird nur diese Zeile neu erzeugt. Untertitel ausblenden: `--props='{"untertitel": false}'` (bzw. in diff --git a/remotion/public/orte/kalender_es.webp b/remotion/public/orte/kalender_es.webp new file mode 100644 index 0000000000000000000000000000000000000000..4c12438990a7e2d2eaa114cbcc486194af914318 GIT binary patch literal 74146 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

e1EVU;=dh7((8G5PYe(}S02{wRQye|A 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�GYXC)-f&==ewXtjwOx5R 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 F007>h%Z>m5 literal 0 HcmV?d00001 diff --git a/remotion/public/orte/kalender_fr.webp b/remotion/public/orte/kalender_fr.webp new file mode 100644 index 0000000000000000000000000000000000000000..3a5894a5f1414b93f52583b4a62bb33d4ccb30e1 GIT binary patch literal 73924 zcmbTd1#sO;(=EEqF*{~v=EN~GGcz;C%*@Q}m>FWGn3NN`DA|h>sAOKZi0XY>pHZ>Rk06_S0_&@(0{suQmSfC!vju z9SlFJTz(v+_8$-b&O9 zwIOhVjaL=OyJQo*KBoN`^B(;+SqwC+6O~QRVkvb-06|dpz&$mJe0eKG(qZ*Jq!A3W79X^WNq}=TqnCixbcX*!iaV+!?&N-Z|%U z48(f@0((!Ho{R6RmL~6Yk$7+3Z#>%Gfxzs!>^q

~;d+J2CI6_aSiYvGncXy|_C2 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

QjTpSelkq;M216aj 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 rOvr=-=v9 = ({links, ch ); const Titel: React.FC<{text: string; groesse: number; farbe?: string; y: number}> = ({text, groesse, farbe = '#c8642c', y}) => ( -

{text}
+
{text}
); // Deckel: dreht sich um den Buchrücken (0° = zu, -180° = offen) @@ -49,7 +50,7 @@ const Deckel: React.FC<{winkel: number}> = ({winkel}) => ( }} >
- + 1 ? 72 : 84} farbe="#f6dc95" y={W.kanalZeilen.length > 1 ? 92 : 120} />
@@ -61,8 +62,8 @@ const Deckel: React.FC<{winkel: number}> = ({winkel}) => ( {[0, 1, 2, 3, 4, 5].map((i) => ( ))} - - + 1 ? 180 : 230} /> + 1 ? 365 : 340} />
@@ -94,8 +95,8 @@ const Tisch: React.FC = () => ( // Die Folge plant die Zeilen selbst (mit `introZeilen`), damit Aufnahmen greifen. export const introZeilen = (folgenTitel: string): Zeile[] => [ {id: 'buch', dauer: 2.2}, - {id: 't1', wer: 'ERZ', text: 'Pinos kleine Welt.'}, - {id: 't2', wer: 'ERZ', text: `Heute: ${folgenTitel}.`}, + {id: 't1', wer: 'ERZ', text: `${W.kanal}.`}, + {id: 't2', wer: 'ERZ', text: W.heute(folgenTitel)}, ]; export const INTRO_OPTIONEN = {vorlauf: 0.3, nachlauf: 1.6}; diff --git a/remotion/src/baukasten/orte.tsx b/remotion/src/baukasten/orte.tsx index 627775d..8b09b61 100644 --- a/remotion/src/baukasten/orte.tsx +++ b/remotion/src/baukasten/orte.tsx @@ -1,5 +1,6 @@ import React from 'react'; import {AbsoluteFill, Img, random, staticFile} from 'remotion'; +import {SPRACHE, W} from './sprache'; import './untertitel'; // lädt die Schrift für den Kalender import {NEST_BILD, NestBlaetter} from './natur'; @@ -330,7 +331,7 @@ export const KalenderSVG: React.FC<{leer?: boolean}> = ({leer = false}) => { {!leer && - Pinos Winterfest-Kalender + {W.kalenderTitel} {nummern.map((n, i) => { const x = 330 + (i % 6) * 215; @@ -430,7 +431,7 @@ export const KalenderMalen: React.FC<{p: number; wackeln: number}> = ({p, wackel - Pinos Winterfest-Kalender + {W.kalenderTitel} {new Array(24).fill(0).map((_, i) => { if (i > aktiv || p < titelAnteil) return null; @@ -473,7 +474,11 @@ export const KalenderMalen: React.FC<{p: number; wackeln: number}> = ({p, wackel }; // Vorberechnete Bilder einbinden -export const Ort: React.FC<{name: string}> = ({name}) => ; +// Orte mit Schrift im Bild gibt es je Sprache (orte/kalender_es.webp …) +export const SPRACH_ORTE = ['kalender']; +const ortDatei = (name: string) => (SPRACH_ORTE.includes(name) && SPRACHE !== 'de' ? `${name}_${SPRACHE}` : name); + +export const Ort: React.FC<{name: string}> = ({name}) => ; // Kompositionen zum Vorberechnen export const ORTE: Record = { diff --git a/remotion/src/baukasten/sprache.ts b/remotion/src/baukasten/sprache.ts new file mode 100644 index 0000000..4bc603a --- /dev/null +++ b/remotion/src/baukasten/sprache.ts @@ -0,0 +1,72 @@ +import {getInputProps} from 'remotion'; +import type {Sprecher} from './zeit'; + +// Sprache des Videos. Wird beim Rendern bzw. in der Vorschau gewählt: +// node werkzeuge/render.mjs F02 --sprache es +// npx remotion studio --props='{"sprache":"fr"}' +// In Node-Skripten (szenenliste, stimmen) über die Umgebungsvariable SPRACHE. +// Ohne Angabe: Deutsch. + +export const SPRACHEN = ['de', 'es', 'fr'] as const; +export type Sprache = (typeof SPRACHEN)[number]; + +const waehle = (): Sprache => { + const s = typeof window === 'undefined' ? (typeof process === 'undefined' ? undefined : process.env.SPRACHE) : getInputProps().sprache; + return SPRACHEN.includes(s as Sprache) ? (s as Sprache) : 'de'; +}; + +export const SPRACHE: Sprache = waehle(); + +// Wörter, die der Baukasten selbst ins Bild oder in den Ton bringt +type Woerter = { + kanal: string; + kanalZeilen: string[]; // Umbruch auf dem Buchdeckel + buchUntertitel: string; + heute: (titel: string) => string; + namen: Record; + leise: string; + kalenderTitel: string; + hatschi: string; +}; + +const WOERTER: Record = { + de: { + kanal: 'Pinos kleine Welt', + kanalZeilen: ['Pinos kleine Welt'], + buchUntertitel: 'Eine Geschichte aus Noas Garten', + heute: (t) => `Heute: ${t}.`, + namen: {ERZ: 'Erzählstimme', PINO: 'Pino', NOA: 'Noa', LULU: 'Lulu', ALLE: 'Alle', NOA_LULU: 'Noa und Lulu'}, + leise: '(leise)', + kalenderTitel: 'Pinos Winterfest-Kalender', + hatschi: 'Hatschi!', + }, + es: { + kanal: 'El pequeño mundo de Pino', + kanalZeilen: ['El pequeño mundo', 'de Pino'], + buchUntertitel: 'Una historia del jardín de Noa', + heute: (t) => `Hoy: ${t}.`, + namen: {ERZ: 'Narración', PINO: 'Pino', NOA: 'Noa', LULU: 'Lulu', ALLE: 'Todos', NOA_LULU: 'Noa y Lulu'}, + leise: '(bajito)', + kalenderTitel: 'El calendario de Pino', + hatschi: '¡Achís!', + }, + fr: { + kanal: 'Le petit monde de Pino', + kanalZeilen: ['Le petit monde', 'de Pino'], + buchUntertitel: 'Une histoire du jardin de Noa', + heute: (t) => `Aujourd'hui : ${t}.`, + namen: {ERZ: 'Narration', PINO: 'Pino', NOA: 'Noa', LULU: 'Lulu', ALLE: 'Tous', NOA_LULU: 'Noa et Lulu'}, + leise: '(doucement)', + kalenderTitel: 'Le calendrier de Pino', + hatschi: 'Atchoum !', + }, +}; + +export const W = WOERTER[SPRACHE]; + +// Texte einer Folge: je Sprache eine Datei src/folgeNN/texte/.json +export type FolgenTexte = { + titel: string; + lied?: string; + zeilen: Record; // Schlüssel „szene/zeile“, z. B. „s2/e1“ +}; diff --git a/remotion/src/baukasten/untertitel.tsx b/remotion/src/baukasten/untertitel.tsx index 7970a16..9347d98 100644 --- a/remotion/src/baukasten/untertitel.tsx +++ b/remotion/src/baukasten/untertitel.tsx @@ -1,18 +1,12 @@ import React from 'react'; import {Audio, Sequence, getInputProps, getStaticFiles, interpolate, staticFile, useCurrentFrame} from 'remotion'; import {loadFont} from '@remotion/google-fonts/Fredoka'; +import {W} from './sprache'; import type {Geplant, Sprecher} from './zeit'; export const {fontFamily: SCHRIFT} = loadFont('normal', {weights: ['500', '600'], subsets: ['latin']}); -const NAME: Record = { - ERZ: 'Erzählstimme', - PINO: 'Pino', - NOA: 'Noa', - LULU: 'Lulu', - ALLE: 'Alle', - NOA_LULU: 'Noa und Lulu', -}; +const NAME = W.namen; const FARBE: Record = { ERZ: '#7a6f66', PINO: '#3f5a8a', @@ -74,7 +68,7 @@ export const Untertitel: React.FC<{zeilen: Geplant[]}> = ({zeilen}) => { >
{NAME[z.wer]} - {z.leise ? ' (leise)' : ''} + {z.leise ? ` ${W.leise}` : ''}
{z.text}
diff --git a/remotion/src/baukasten/zeit.ts b/remotion/src/baukasten/zeit.ts index a9c4369..ae65ca4 100644 --- a/remotion/src/baukasten/zeit.ts +++ b/remotion/src/baukasten/zeit.ts @@ -1,8 +1,8 @@ // Zeitplan einer Szene aus ihren Sprechzeilen. // // Ohne Sprachaufnahme wird die Dauer jeder Zeile aus der Textlänge geschätzt. -// Gibt es eine Aufnahme (werkzeuge/stimmen.ts schreibt sie in die -// stimmen.json der Folge), gilt ihre echte Länge, und alle Bewegungen, die +// Gibt es eine Aufnahme (werkzeuge/stimmen.mts schreibt sie in die +// stimmen/.json der Folge), gilt ihre echte Länge, und alle Bewegungen, die // sich auf die Zeilen beziehen, rutschen automatisch mit. export const FPS = 30; diff --git a/remotion/src/folge02/Folge02.tsx b/remotion/src/folge02/Folge02.tsx index 9b2999a..c58418c 100644 --- a/remotion/src/folge02/Folge02.tsx +++ b/remotion/src/folge02/Folge02.tsx @@ -2,7 +2,7 @@ import React from 'react'; import {INTRO_OPTIONEN, Intro, OUTRO, Outro, introZeilen} from '../baukasten/buch'; import {baueFolge, type SzenenEintrag} from '../baukasten/folge'; import {LIED, Lied} from './lied'; -import {plane} from './plan'; +import {TITEL, plane} from './plan'; import {S2, Szene2} from './szene2'; import {S3, Szene3} from './szene3'; import {S4, Szene4} from './szene4'; @@ -12,7 +12,6 @@ import {S7, Szene7} from './szene7'; // Folge 2 „Pino ist müde“ – komplett per Code aus der Figuren-Bibliothek. -const TITEL = 'Pino ist müde'; const INTRO = plane('intro', introZeilen(TITEL), INTRO_OPTIONEN); export const SZENEN: SzenenEintrag[] = [ diff --git a/remotion/src/folge02/lied.tsx b/remotion/src/folge02/lied.tsx index 51fb0a0..841c08c 100644 --- a/remotion/src/folge02/lied.tsx +++ b/remotion/src/folge02/lied.tsx @@ -4,7 +4,7 @@ import {Figur, Kamera} from '../baukasten/figur'; import {Blende, Vignette} from '../baukasten/helfer'; import {BODEN, Ort} from '../baukasten/orte'; import {SCHRIFT, Untertitel} from '../baukasten/untertitel'; -import {plane} from './plan'; +import {TEXTE, plane} from './plan'; // Refrain „Einer klein und einer groß“ (aus Folge 1), einmal. Die drei wippen im Takt. @@ -12,10 +12,10 @@ const TAKT = 19; // Frames pro Schlag (ca. 95 bpm) export const LIED = plane('lied', [ - {id: 'r1', wer: 'ALLE', text: 'Einer klein und einer groß,', dauer: 3.2}, - {id: 'r2', wer: 'ALLE', text: 'und dazwischen – na, wer bloß?', dauer: 3.2}, - {id: 'r3', wer: 'ALLE', text: 'Noa steht in der Mitte drin,', dauer: 3.2}, - {id: 'r4', wer: 'ALLE', text: 'zusammen kriegen wir alles hin!', dauer: 3.6}, + {id: 'r1', wer: 'ALLE', dauer: 3.2}, + {id: 'r2', wer: 'ALLE', dauer: 3.2}, + {id: 'r3', wer: 'ALLE', dauer: 3.2}, + {id: 'r4', wer: 'ALLE', dauer: 3.6}, ], {vorlauf: 1.0, nachlauf: 1.0}, ); @@ -56,7 +56,7 @@ export const Lied: React.FC = () => { return
; })}
- ♫ Einer klein und einer groß ♫ + ♫ {TEXTE.lied} ♫
diff --git a/remotion/src/folge02/plan.ts b/remotion/src/folge02/plan.ts index 4bc310d..9dc4853 100644 --- a/remotion/src/folge02/plan.ts +++ b/remotion/src/folge02/plan.ts @@ -1,7 +1,29 @@ +import {SPRACHE, type FolgenTexte} from '../baukasten/sprache'; import {plane as basis, type PlanOptionen, type Zeile} from '../baukasten/zeit'; -import AUFNAHMEN from './stimmen.json'; +import DE from './texte/de.json'; +import ES from './texte/es.json'; +import FR from './texte/fr.json'; +import STIMMEN_DE from './stimmen/de.json'; +import STIMMEN_ES from './stimmen/es.json'; +import STIMMEN_FR from './stimmen/fr.json'; -// Zeitplan einer Szene dieser Folge; nimmt vorhandene Sprachaufnahmen -// (public/stimmen/folge02/, erzeugt von werkzeuge/stimmen.ts) automatisch mit. +// Sprechtexte stehen nur in texte/.json (Schlüssel „szene/zeile“), +// die Szenen enthalten nur Ablauf und Bewegung. Aufnahmen je Sprache in +// stimmen/.json bzw. public/stimmen/folge02// (erzeugt von +// werkzeuge/stimmen.mts). + +export const TEXTE: FolgenTexte = {de: DE, es: ES, fr: FR}[SPRACHE]; +const AUFNAHMEN = {de: STIMMEN_DE, es: STIMMEN_ES, fr: STIMMEN_FR}[SPRACHE]; + +export const TITEL = TEXTE.titel; + +// Zeitplan einer Szene dieser Folge, mit den Texten der gewählten Sprache export const plane = (szene: string, zeilen: Zeile[], opt: PlanOptionen = {}) => - basis(zeilen, {...opt, szene, aufnahmen: AUFNAHMEN, ordner: 'stimmen/folge02'}); + basis( + zeilen.map((z) => { + if (z.text !== undefined || !z.wer) return z; + const text = TEXTE.zeilen[`${szene}/${z.id}`]; + return {...z, text: text ?? `[fehlt: ${szene}/${z.id}]`}; + }), + {...opt, szene, aufnahmen: AUFNAHMEN, ordner: `stimmen/folge02/${SPRACHE}`}, + ); diff --git a/remotion/src/folge02/stimmen.json b/remotion/src/folge02/stimmen/de.json similarity index 100% rename from remotion/src/folge02/stimmen.json rename to remotion/src/folge02/stimmen/de.json diff --git a/remotion/src/folge02/stimmen/es.json b/remotion/src/folge02/stimmen/es.json new file mode 100644 index 0000000..0967ef4 --- /dev/null +++ b/remotion/src/folge02/stimmen/es.json @@ -0,0 +1 @@ +{} diff --git a/remotion/src/folge02/stimmen/fr.json b/remotion/src/folge02/stimmen/fr.json new file mode 100644 index 0000000..0967ef4 --- /dev/null +++ b/remotion/src/folge02/stimmen/fr.json @@ -0,0 +1 @@ +{} diff --git a/remotion/src/folge02/szene2.tsx b/remotion/src/folge02/szene2.tsx index ccca3cd..c5b13a0 100644 --- a/remotion/src/folge02/szene2.tsx +++ b/remotion/src/folge02/szene2.tsx @@ -15,18 +15,18 @@ export const PINO_X = 1060; export const S2 = plane('s2', [ {id: 'bild0', dauer: 2.5}, - {id: 'e1', wer: 'ERZ', text: 'Es ist kalt geworden in Noas Garten.'}, - {id: 'e2', wer: 'ERZ', text: 'Die Bäume haben fast alle Blätter verloren.'}, + {id: 'e1', wer: 'ERZ'}, + {id: 'e2', wer: 'ERZ'}, {id: 'bild1', dauer: 2.6}, - {id: 'p1', wer: 'PINO', text: 'Hoaaah.', dauer: 2.2}, - {id: 'n1', wer: 'NOA', text: 'Guten Morgen, Pino! Wollen wir spielen?'}, - {id: 'p2', wer: 'PINO', text: 'Ja! Ich bin ganz wach. Gaaanz … wach …', dauer: 4.6}, + {id: 'p1', wer: 'PINO', dauer: 2.2}, + {id: 'n1', wer: 'NOA'}, + {id: 'p2', wer: 'PINO', dauer: 4.6}, {id: 'bild2', dauer: 3.2}, - {id: 'n2', wer: 'NOA', text: 'Pino? Pino!', leise: true, dauer: 2.2}, + {id: 'n2', wer: 'NOA', leise: true, dauer: 2.2}, {id: 'bild3', dauer: 1.0}, - {id: 'p3', wer: 'PINO', text: 'Was? Ich hab nicht geschlafen!'}, - {id: 'e3', wer: 'ERZ', text: 'Hat er doch.', dauer: 1.6}, - {id: 'e4', wer: 'ERZ', text: 'Was meinst du: Warum ist Pino so müde?', pause: 3}, + {id: 'p3', wer: 'PINO'}, + {id: 'e3', wer: 'ERZ', dauer: 1.6}, + {id: 'e4', wer: 'ERZ', pause: 3}, ]); export const Szene2: React.FC = () => { diff --git a/remotion/src/folge02/szene3.tsx b/remotion/src/folge02/szene3.tsx index 1ce9f97..4f00c97 100644 --- a/remotion/src/folge02/szene3.tsx +++ b/remotion/src/folge02/szene3.tsx @@ -16,19 +16,19 @@ export const LULU_X = 1520; export const S3 = plane('s3', [ {id: 'bild0', dauer: 3.2}, {id: 'bild1', dauer: 2.4}, - {id: 'l1', wer: 'LULU', text: 'Guten Morgen, ihr zwei!'}, - {id: 'l2', wer: 'LULU', text: 'Von hier oben sehe ich: Die Vögel fliegen weg, ganz weit in den Süden.'}, - {id: 'l3', wer: 'LULU', text: 'Und die Bäume sind kahl. Der Winter kommt.'}, - {id: 'e1', wer: 'ERZ', text: 'Wenn es kalt wird, finden Igel kaum noch etwas zu fressen.'}, - {id: 'e2', wer: 'ERZ', text: 'Darum machen sie etwas ganz Besonderes. Sie schlafen.'}, - {id: 'e3', wer: 'ERZ', text: 'Den ganzen Winter lang, bis zum Frühling. Das heißt Winterschlaf.'}, - {id: 'p1', wer: 'PINO', text: 'Den ganzen Winter? Aber dann verpasse ich ja das Winterfest!'}, + {id: 'l1', wer: 'LULU'}, + {id: 'l2', wer: 'LULU'}, + {id: 'l3', wer: 'LULU'}, + {id: 'e1', wer: 'ERZ'}, + {id: 'e2', wer: 'ERZ'}, + {id: 'e3', wer: 'ERZ'}, + {id: 'p1', wer: 'PINO'}, {id: 'bild2', dauer: 2.4}, - {id: 'e4', wer: 'ERZ', text: 'Schau mal, Pinos Stacheln hängen ganz schlaff herunter.'}, - {id: 'e5', wer: 'ERZ', text: 'Wie fühlt sich Pino jetzt?', pause: 3}, - {id: 'e6', wer: 'ERZ', text: 'Ja. Pino ist traurig.'}, + {id: 'e4', wer: 'ERZ'}, + {id: 'e5', wer: 'ERZ', pause: 3}, + {id: 'e6', wer: 'ERZ'}, {id: 'bild3', dauer: 2.6}, - {id: 'n1', wer: 'NOA', text: 'Ach, Pino. Bis zum Winterfest ist es doch noch ganz lange hin.'}, + {id: 'n1', wer: 'NOA'}, ]); // Das große Blatt, auf das Pino sich setzt diff --git a/remotion/src/folge02/szene4.tsx b/remotion/src/folge02/szene4.tsx index b3c3850..972f832 100644 --- a/remotion/src/folge02/szene4.tsx +++ b/remotion/src/folge02/szene4.tsx @@ -7,6 +7,7 @@ import {Blaetterregen, Blatt, LAUB, Nest, Ruf} from '../baukasten/natur'; import {BODEN, NEST_X, Ort} from '../baukasten/orte'; import {NOA_X, PINO_X} from './szene2'; import {GROSSES_BLATT_X} from './szene3'; +import {W} from '../baukasten/sprache'; import {Untertitel} from '../baukasten/untertitel'; import {plane} from './plan'; @@ -18,26 +19,26 @@ const LULU_BAUM_X = 650; const REIHE = [0, 1, 2, 3, 4].map((i) => ({x: 1290 + i * 78, y: BODEN + 4})); export const S4 = plane('s4', [ - {id: 'n1', wer: 'NOA', text: 'Wenn du so müde bist, brauchst du ein warmes Bett.'}, - {id: 'e1', wer: 'ERZ', text: 'Igel bauen sich für den Winter ein Nest.'}, - {id: 'e2', wer: 'ERZ', text: 'Aus ganz vielen Blättern, unter einer Hecke oder einem Holzstapel.'}, - {id: 'e3', wer: 'ERZ', text: 'Da ist es trocken und warm.'}, - {id: 'n2', wer: 'NOA', text: 'Zählst du mit?', pause: 0.6}, - {id: 'c1', wer: 'NOA', text: 'Eins …', dauer: 1.1, pause: 0.5}, - {id: 'c2', wer: 'NOA', text: 'Zwei …', dauer: 1.1, pause: 0.5}, - {id: 'c3', wer: 'NOA', text: 'Drei …', dauer: 1.1, pause: 0.5}, - {id: 'c4', wer: 'NOA', text: 'Vier …', dauer: 1.1, pause: 0.5}, - {id: 'c5', wer: 'NOA', text: 'Fünf!', dauer: 1.4}, + {id: 'n1', wer: 'NOA'}, + {id: 'e1', wer: 'ERZ'}, + {id: 'e2', wer: 'ERZ'}, + {id: 'e3', wer: 'ERZ'}, + {id: 'n2', wer: 'NOA', pause: 0.6}, + {id: 'c1', wer: 'NOA', dauer: 1.1, pause: 0.5}, + {id: 'c2', wer: 'NOA', dauer: 1.1, pause: 0.5}, + {id: 'c3', wer: 'NOA', dauer: 1.1, pause: 0.5}, + {id: 'c4', wer: 'NOA', dauer: 1.1, pause: 0.5}, + {id: 'c5', wer: 'NOA', dauer: 1.4}, {id: 'bild1', dauer: 2.6}, - {id: 'l1', wer: 'LULU', text: 'Hier oben hängen noch welche! Die erreicht sonst keiner.'}, + {id: 'l1', wer: 'LULU'}, {id: 'bild2', dauer: 2.4}, {id: 'bild3', dauer: 2.6}, - {id: 'l2', wer: 'LULU', text: 'Oh! Entschuldigung!'}, - {id: 'n3', wer: 'NOA', text: 'Macht nichts. Jetzt haben wir noch mehr Blätter.'}, + {id: 'l2', wer: 'LULU'}, + {id: 'n3', wer: 'NOA'}, {id: 'bild4', dauer: 4.6}, {id: 'bild5', dauer: 2.2}, - {id: 'e4', wer: 'ERZ', text: 'Ein Igelnest braucht ganz viele Blätter.'}, - {id: 'e5', wer: 'ERZ', text: 'Wenn ihr im Garten einen Laubhaufen liegen lasst, schenkt ihr einem Igel vielleicht ein Winterbettchen.'}, + {id: 'e4', wer: 'ERZ'}, + {id: 'e5', wer: 'ERZ'}, ]); export const Szene4: React.FC = () => { @@ -247,7 +248,7 @@ export const Szene4: React.FC = () => { {zaehlen.map((c, i) => ( ))} - + diff --git a/remotion/src/folge02/szene5.tsx b/remotion/src/folge02/szene5.tsx index 786e4ae..4223ef2 100644 --- a/remotion/src/folge02/szene5.tsx +++ b/remotion/src/folge02/szene5.tsx @@ -17,13 +17,13 @@ const LULU_X5 = 1790; export const S5 = plane('s5', [ {id: 'bild1', dauer: 3.0}, {id: 'bild2', dauer: 2.2}, - {id: 'p1', wer: 'PINO', text: 'Nein! Ich will nicht schlafen, bevor das Winterfest da ist!'}, - {id: 'l1', wer: 'LULU', text: 'Aber Pino, du bist doch so müde!'}, + {id: 'p1', wer: 'PINO'}, + {id: 'l1', wer: 'LULU'}, {id: 'bild3', dauer: 3.0}, - {id: 'e1', wer: 'ERZ', text: 'Hmm. Was können Noa und Lulu tun, damit Pino bis zum Winterfest wach bleibt?'}, - {id: 'e2', wer: 'ERZ', text: 'Was meinst du?', pause: 3}, + {id: 'e1', wer: 'ERZ'}, + {id: 'e2', wer: 'ERZ', pause: 3}, {id: 'bild4', dauer: 1.2}, - {id: 'n1', wer: 'NOA', text: 'Ich hab eine Idee!'}, + {id: 'n1', wer: 'NOA'}, ]); const Denkblase: React.FC<{x: number; y: number; start: number; ende: number}> = ({x, y, start, ende}) => { diff --git a/remotion/src/folge02/szene6.tsx b/remotion/src/folge02/szene6.tsx index 4add9b9..1f7e768 100644 --- a/remotion/src/folge02/szene6.tsx +++ b/remotion/src/folge02/szene6.tsx @@ -19,14 +19,14 @@ const LULU_X6 = 1440; export const S6 = plane('s6', [ {id: 'bild0', dauer: 3.0}, {id: 'malen', dauer: 5.5}, - {id: 'l1', wer: 'LULU', text: 'Was malst du da, Noa?'}, - {id: 'n1', wer: 'NOA', text: 'Einen Kalender! Mit 24 Türchen.'}, - {id: 'n2', wer: 'NOA', text: 'Wir öffnen jeden Tag eins. Und hinter jedem Türchen steckt etwas, das Pino wach hält.'}, - {id: 'p1', wer: 'PINO', text: 'Was denn?'}, - {id: 'n3', wer: 'NOA', text: 'Etwas zum Entdecken, zum Basteln, zum Backen und zum Singen.'}, - {id: 'n4', wer: 'NOA', text: 'Und wenn das letzte Türchen offen ist, ist Winterfest!'}, + {id: 'l1', wer: 'LULU'}, + {id: 'n1', wer: 'NOA'}, + {id: 'n2', wer: 'NOA'}, + {id: 'p1', wer: 'PINO'}, + {id: 'n3', wer: 'NOA'}, + {id: 'n4', wer: 'NOA'}, {id: 'bild1', dauer: 2.0}, - {id: 'p2', wer: 'PINO', text: 'Meine Stacheln kribbeln!'}, + {id: 'p2', wer: 'PINO'}, {id: 'bild2', dauer: 4.2}, ]); diff --git a/remotion/src/folge02/szene7.tsx b/remotion/src/folge02/szene7.tsx index 7ffc3d1..443f116 100644 --- a/remotion/src/folge02/szene7.tsx +++ b/remotion/src/folge02/szene7.tsx @@ -17,11 +17,11 @@ const NACHT = 'brightness(0.62) saturate(0.8) hue-rotate(-8deg)'; // nur auf Fig export const S7 = plane('s7', [ {id: 'bild0', dauer: 3.4}, - {id: 'n1', wer: 'NOA', text: 'Schlaf gut, Pino. Nur bis morgen.', leise: true}, - {id: 'e1', wer: 'ERZ', text: 'Ab dem 1. Dezember öffnen Noa, Lulu und Pino jeden Tag ein Türchen.'}, - {id: 'e2', wer: 'ERZ', text: 'Und du kannst mitmachen! Schaffst du es mit Pino bis zum Winterfest?', pause: 3}, - {id: 't1', wer: 'NOA_LULU', text: 'Tschüss! Bis bald!', leise: true, dauer: 2.6}, - {id: 'p1', wer: 'PINO', text: '… bis bald …', leise: true, dauer: 2.6}, + {id: 'n1', wer: 'NOA', leise: true}, + {id: 'e1', wer: 'ERZ'}, + {id: 'e2', wer: 'ERZ', pause: 3}, + {id: 't1', wer: 'NOA_LULU', leise: true, dauer: 2.6}, + {id: 'p1', wer: 'PINO', leise: true, dauer: 2.6}, ], {vorlauf: 0.5, nachlauf: 1.6}, ); diff --git a/remotion/src/folge02/texte/de.json b/remotion/src/folge02/texte/de.json new file mode 100644 index 0000000..e5765ca --- /dev/null +++ b/remotion/src/folge02/texte/de.json @@ -0,0 +1,62 @@ +{ + "titel": "Pino ist müde", + "lied": "Einer klein und einer groß", + "zeilen": { + "s2/e1": "Es ist kalt geworden in Noas Garten.", + "s2/e2": "Die Bäume haben fast alle Blätter verloren.", + "s2/p1": "Hoaaah.", + "s2/n1": "Guten Morgen, Pino! Wollen wir spielen?", + "s2/p2": "Ja! Ich bin ganz wach. Gaaanz … wach …", + "s2/n2": "Pino? Pino!", + "s2/p3": "Was? Ich hab nicht geschlafen!", + "s2/e3": "Hat er doch.", + "s2/e4": "Was meinst du: Warum ist Pino so müde?", + "s3/l1": "Guten Morgen, ihr zwei!", + "s3/l2": "Von hier oben sehe ich: Die Vögel fliegen weg, ganz weit in den Süden.", + "s3/l3": "Und die Bäume sind kahl. Der Winter kommt.", + "s3/e1": "Wenn es kalt wird, finden Igel kaum noch etwas zu fressen.", + "s3/e2": "Darum machen sie etwas ganz Besonderes. Sie schlafen.", + "s3/e3": "Den ganzen Winter lang, bis zum Frühling. Das heißt Winterschlaf.", + "s3/p1": "Den ganzen Winter? Aber dann verpasse ich ja das Winterfest!", + "s3/e4": "Schau mal, Pinos Stacheln hängen ganz schlaff herunter.", + "s3/e5": "Wie fühlt sich Pino jetzt?", + "s3/e6": "Ja. Pino ist traurig.", + "s3/n1": "Ach, Pino. Bis zum Winterfest ist es doch noch ganz lange hin.", + "s4/n1": "Wenn du so müde bist, brauchst du ein warmes Bett.", + "s4/e1": "Igel bauen sich für den Winter ein Nest.", + "s4/e2": "Aus ganz vielen Blättern, unter einer Hecke oder einem Holzstapel.", + "s4/e3": "Da ist es trocken und warm.", + "s4/n2": "Zählst du mit?", + "s4/c1": "Eins …", + "s4/c2": "Zwei …", + "s4/c3": "Drei …", + "s4/c4": "Vier …", + "s4/c5": "Fünf!", + "s4/l1": "Hier oben hängen noch welche! Die erreicht sonst keiner.", + "s4/l2": "Oh! Entschuldigung!", + "s4/n3": "Macht nichts. Jetzt haben wir noch mehr Blätter.", + "s4/e4": "Ein Igelnest braucht ganz viele Blätter.", + "s4/e5": "Wenn ihr im Garten einen Laubhaufen liegen lasst, schenkt ihr einem Igel vielleicht ein Winterbettchen.", + "lied/r1": "Einer klein und einer groß,", + "lied/r2": "und dazwischen – na, wer bloß?", + "lied/r3": "Noa steht in der Mitte drin,", + "lied/r4": "zusammen kriegen wir alles hin!", + "s5/p1": "Nein! Ich will nicht schlafen, bevor das Winterfest da ist!", + "s5/l1": "Aber Pino, du bist doch so müde!", + "s5/e1": "Hmm. Was können Noa und Lulu tun, damit Pino bis zum Winterfest wach bleibt?", + "s5/e2": "Was meinst du?", + "s5/n1": "Ich hab eine Idee!", + "s6/l1": "Was malst du da, Noa?", + "s6/n1": "Einen Kalender! Mit 24 Türchen.", + "s6/n2": "Wir öffnen jeden Tag eins. Und hinter jedem Türchen steckt etwas, das Pino wach hält.", + "s6/p1": "Was denn?", + "s6/n3": "Etwas zum Entdecken, zum Basteln, zum Backen und zum Singen.", + "s6/n4": "Und wenn das letzte Türchen offen ist, ist Winterfest!", + "s6/p2": "Meine Stacheln kribbeln!", + "s7/n1": "Schlaf gut, Pino. Nur bis morgen.", + "s7/e1": "Ab dem 1. Dezember öffnen Noa, Lulu und Pino jeden Tag ein Türchen.", + "s7/e2": "Und du kannst mitmachen! Schaffst du es mit Pino bis zum Winterfest?", + "s7/t1": "Tschüss! Bis bald!", + "s7/p1": "… bis bald …" + } +} diff --git a/remotion/src/folge02/texte/es.json b/remotion/src/folge02/texte/es.json new file mode 100644 index 0000000..db097d2 --- /dev/null +++ b/remotion/src/folge02/texte/es.json @@ -0,0 +1,62 @@ +{ + "titel": "Pino tiene sueño", + "lied": "Uno pequeño y otra alta", + "zeilen": { + "s2/e1": "En el jardín de Noa ya hace frío.", + "s2/e2": "Los árboles han perdido casi todas sus hojas.", + "s2/p1": "Uaaaah.", + "s2/n1": "¡Buenos días, Pino! ¿Jugamos?", + "s2/p2": "¡Sí! Estoy muy despierto. Muuuy… despierto…", + "s2/n2": "¿Pino? ¡Pino!", + "s2/p3": "¿Qué? ¡Yo no estaba durmiendo!", + "s2/e3": "Sí que estaba durmiendo.", + "s2/e4": "¿Tú qué crees? ¿Por qué tiene Pino tanto sueño?", + "s3/l1": "¡Buenos días a los dos!", + "s3/l2": "Desde aquí arriba lo veo: los pájaros se van volando, muy lejos, hacia el sur.", + "s3/l3": "Y los árboles están desnudos. Ya llega el invierno.", + "s3/e1": "Cuando hace frío, los erizos casi no encuentran comida.", + "s3/e2": "Por eso hacen algo muy especial: duermen.", + "s3/e3": "Todo el invierno, hasta la primavera. Eso se llama hibernar.", + "s3/p1": "¿Todo el invierno? ¡Pero entonces me pierdo la Fiesta del Invierno!", + "s3/e4": "Mira, las púas de Pino cuelgan hacia abajo.", + "s3/e5": "¿Cómo se siente Pino ahora?", + "s3/e6": "Sí. Pino está triste.", + "s3/n1": "Ay, Pino. Todavía falta mucho para la Fiesta del Invierno.", + "s4/n1": "Si tienes tanto sueño, necesitas una cama calentita.", + "s4/e1": "Para el invierno, los erizos se hacen un nido.", + "s4/e2": "Con muchísimas hojas, debajo de un seto o de un montón de leña.", + "s4/e3": "Allí está seco y calentito.", + "s4/n2": "¿Cuentas conmigo?", + "s4/c1": "Uno…", + "s4/c2": "Dos…", + "s4/c3": "Tres…", + "s4/c4": "Cuatro…", + "s4/c5": "¡Cinco!", + "s4/l1": "¡Aquí arriba quedan algunas! Nadie más llega hasta aquí.", + "s4/l2": "¡Uy! ¡Perdón!", + "s4/n3": "No pasa nada. Así tenemos todavía más hojas.", + "s4/e4": "Un nido de erizo necesita muchas hojas.", + "s4/e5": "Mamás y papás: si dejan un montón de hojas en el jardín, a lo mejor un erizo encuentra allí su camita para el invierno.", + "lied/r1": "Uno pequeño y otra alta,", + "lied/r2": "y en el medio… ¿quién nos falta?", + "lied/r3": "Noa, Noa, en el centro está,", + "lied/r4": "¡y juntos sí se podrá!", + "s5/p1": "¡No! ¡No quiero dormir hasta que llegue la Fiesta del Invierno!", + "s5/l1": "¡Pero Pino, si tienes muchísimo sueño!", + "s5/e1": "Mmm. ¿Qué pueden hacer Noa y Lulu para que Pino se quede despierto hasta la Fiesta del Invierno?", + "s5/e2": "¿Tú qué crees?", + "s5/n1": "¡Tengo una idea!", + "s6/l1": "¿Qué estás dibujando, Noa?", + "s6/n1": "¡Un calendario! Con veinticuatro ventanitas.", + "s6/n2": "Cada día abrimos una. Y detrás de cada ventanita hay algo que mantiene despierto a Pino.", + "s6/p1": "¿Qué cosa?", + "s6/n3": "Algo para descubrir, para hacer manualidades, para hornear y para cantar.", + "s6/n4": "¡Y cuando abramos la última ventanita, será la Fiesta del Invierno!", + "s6/p2": "¡Me hacen cosquillas las púas!", + "s7/n1": "Que duermas bien, Pino. Solo hasta mañana.", + "s7/e1": "A partir del uno de diciembre, Noa, Lulu y Pino abren una ventanita cada día.", + "s7/e2": "¡Y tú puedes participar! ¿Llegarás con Pino hasta la Fiesta del Invierno?", + "s7/t1": "¡Adiós! ¡Hasta pronto!", + "s7/p1": "…hasta pronto…" + } +} diff --git a/remotion/src/folge02/texte/fr.json b/remotion/src/folge02/texte/fr.json new file mode 100644 index 0000000..7520a7e --- /dev/null +++ b/remotion/src/folge02/texte/fr.json @@ -0,0 +1,62 @@ +{ + "titel": "Pino a sommeil", + "lied": "Un tout petit, une très grande", + "zeilen": { + "s2/e1": "Il fait froid dans le jardin de Noa.", + "s2/e2": "Les arbres ont perdu presque toutes leurs feuilles.", + "s2/p1": "Ouaaaah.", + "s2/n1": "Bonjour, Pino ! On joue ?", + "s2/p2": "Oui ! Je suis tout réveillé. Tout… ré…veillé…", + "s2/n2": "Pino ? Pino !", + "s2/p3": "Quoi ? Je ne dormais pas !", + "s2/e3": "Mais si, il dormait.", + "s2/e4": "Qu'est-ce que tu en penses : pourquoi Pino a-t-il tellement sommeil ?", + "s3/l1": "Bonjour, vous deux !", + "s3/l2": "D'ici, je vois que les oiseaux s'envolent, très loin, vers le sud.", + "s3/l3": "Et les arbres sont tout nus. L'hiver arrive.", + "s3/e1": "Quand il fait froid, les hérissons ne trouvent presque plus rien à manger.", + "s3/e2": "Alors ils font quelque chose de très spécial : ils dorment.", + "s3/e3": "Tout l'hiver, jusqu'au printemps. Ça s'appelle l'hibernation.", + "s3/p1": "Tout l'hiver ? Mais alors je vais rater la fête de l'hiver !", + "s3/e4": "Regarde, les piquants de Pino pendent tout mous.", + "s3/e5": "Comment se sent Pino maintenant ?", + "s3/e6": "Oui. Pino est triste.", + "s3/n1": "Oh, Pino. La fête de l'hiver, c'est encore dans très longtemps.", + "s4/n1": "Si tu as tellement sommeil, il te faut un lit bien chaud.", + "s4/e1": "Pour l'hiver, les hérissons se construisent un nid.", + "s4/e2": "Avec plein de feuilles, sous une haie ou sous un tas de bois.", + "s4/e3": "Là, c'est sec et bien chaud.", + "s4/n2": "Tu comptes avec moi ?", + "s4/c1": "Un…", + "s4/c2": "Deux…", + "s4/c3": "Trois…", + "s4/c4": "Quatre…", + "s4/c5": "Cinq !", + "s4/l1": "Il en reste là-haut ! Personne d'autre ne peut les attraper.", + "s4/l2": "Oh ! Pardon !", + "s4/n3": "Ce n'est pas grave. Comme ça, on a encore plus de feuilles.", + "s4/e4": "Un nid de hérisson a besoin de beaucoup de feuilles.", + "s4/e5": "Chers parents : si vous laissez un tas de feuilles dans votre jardin, vous offrez peut-être un petit lit d'hiver à un hérisson.", + "lied/r1": "Un tout petit, une très grande,", + "lied/r2": "Noa au milieu de la bande.", + "lied/r3": "En haut, en bas, et entre les deux –", + "lied/r4": "ensemble, on fait de notre mieux !", + "s5/p1": "Non ! Je ne veux pas dormir avant la fête de l'hiver !", + "s5/l1": "Mais Pino, tu es tellement fatigué !", + "s5/e1": "Hmm. Que peuvent faire Noa et Lulu pour que Pino reste réveillé jusqu'à la fête de l'hiver ?", + "s5/e2": "Qu'est-ce que tu en penses ?", + "s5/n1": "J'ai une idée !", + "s6/l1": "Qu'est-ce que tu dessines, Noa ?", + "s6/n1": "Un calendrier ! Avec vingt-quatre petites portes.", + "s6/n2": "Chaque jour, on en ouvre une. Et derrière chaque petite porte, il y a quelque chose qui garde Pino réveillé.", + "s6/p1": "Quoi donc ?", + "s6/n3": "Quelque chose à découvrir, à bricoler, à cuisiner et à chanter.", + "s6/n4": "Et quand la dernière petite porte sera ouverte, ce sera la fête de l'hiver !", + "s6/p2": "Mes piquants me chatouillent !", + "s7/n1": "Dors bien, Pino. Juste jusqu'à demain.", + "s7/e1": "À partir du premier décembre, Noa, Lulu et Pino ouvrent une petite porte chaque jour.", + "s7/e2": "Et toi aussi, tu peux participer ! Est-ce que tu arriveras avec Pino jusqu'à la fête de l'hiver ?", + "s7/t1": "Au revoir ! À bientôt !", + "s7/p1": "…à bientôt…" + } +} diff --git a/remotion/werkzeuge/render.mjs b/remotion/werkzeuge/render.mjs index 2e457c3..791c357 100644 --- a/remotion/werkzeuge/render.mjs +++ b/remotion/werkzeuge/render.mjs @@ -3,12 +3,13 @@ // // node werkzeuge/render.mjs F02 ganze Folge, volle Qualität // node werkzeuge/render.mjs F02 --entwurf halbe Auflösung + Zeit/Szene eingeblendet +// node werkzeuge/render.mjs F02 --sprache es spanische Fassung (de, es, fr; ohne Angabe de) // node werkzeuge/render.mjs F02 --szene 3,5 nur diese Szenen (neu) rendern // node werkzeuge/render.mjs F02 --neu alles neu, Zwischenstand ignorieren // node werkzeuge/render.mjs F02 --kerne 6 Anzahl paralleler Browser-Tabs // node werkzeuge/render.mjs F02 --ziel /shared/youtube/folge02/folge02.mp4 // -// Läuft unter Linux und Windows. Ergebnis und Zwischenstand: out// +// Läuft unter Linux und Windows. Ergebnis und Zwischenstand: out/// import {spawnSync} from 'node:child_process'; import {createHash} from 'node:crypto'; @@ -35,12 +36,17 @@ const neu = args.includes('--neu'); const nurSzenen = wert('--szene')?.split(',').map(Number); const kerne = Number(wert('--kerne') ?? Math.max(1, os.cpus().length - 1)); const ziel = wert('--ziel'); +const sprache = wert('--sprache') ?? 'de'; +if (!['de', 'es', 'fr'].includes(sprache)) { + console.error(`Unbekannte Sprache: ${sprache} (de, es, fr)`); + process.exit(1); +} const nummer = kuerzel.replace(/\D/g, ''); const ordner = `src/folge${nummer}`; const npx = process.platform === 'win32' ? 'npx.cmd' : 'npx'; const lauf = (cmd, a, opt = {}) => { - const r = spawnSync(cmd, a, {stdio: opt.still ? 'pipe' : 'inherit', encoding: 'utf8', shell: process.platform === 'win32'}); + const r = spawnSync(cmd, a, {stdio: opt.still ? 'pipe' : 'inherit', encoding: 'utf8', shell: process.platform === 'win32', env: {...process.env, SPRACHE: sprache}}); if (r.status !== 0) { if (opt.still) console.error(r.stdout, r.stderr); throw new Error(`Fehlgeschlagen: ${cmd} ${a.join(' ')}`); @@ -57,10 +63,11 @@ const liste = JSON.parse( ); // Fingerabdruck: gemeinsamer Code + Bilder/Clips/Stimmen + eigene Szenendatei -const hashDatei = (h, p) => { +const hashDatei = (h, p, ohne = []) => { + if (ohne.includes(p.replaceAll('\\', '/'))) return; const st = fs.statSync(p); if (st.isDirectory()) { - for (const n of fs.readdirSync(p).sort()) hashDatei(h, path.join(p, n)); + for (const n of fs.readdirSync(p).sort()) hashDatei(h, path.join(p, n), ohne); } else { h.update(p.replaceAll('\\', '/')); h.update(fs.readFileSync(p)); @@ -68,18 +75,22 @@ const hashDatei = (h, p) => { }; const szenenDateien = new Set(liste.map((s) => s.datei)); const gemeinsam = createHash('sha256'); -for (const p of ['src/baukasten', 'src/bewegung.ts', 'public', 'package-lock.json']) if (fs.existsSync(p)) hashDatei(gemeinsam, p); +// Texte, Stimmen und Orte mit Schrift: nur die der gewählten Sprache +const andere = ['de', 'es', 'fr'].filter((s) => s !== sprache); +const ohne = [`public/stimmen/folge${nummer}`, ...andere.flatMap((s) => [`${ordner}/texte/${s}.json`, `${ordner}/stimmen/${s}.json`, `public/orte/kalender_${s}.webp`])]; +for (const p of ['src/baukasten', 'src/bewegung.ts', 'public', 'package-lock.json']) if (fs.existsSync(p)) hashDatei(gemeinsam, p, ohne); +if (fs.existsSync(`public/stimmen/folge${nummer}/${sprache}`)) hashDatei(gemeinsam, `public/stimmen/folge${nummer}/${sprache}`); for (const n of fs.readdirSync(ordner).sort()) { const p = path.join(ordner, n); - if (!szenenDateien.has(n) || n === `Folge${nummer}.tsx`) hashDatei(gemeinsam, p); + if (!szenenDateien.has(n) || n === `Folge${nummer}.tsx`) hashDatei(gemeinsam, p, ohne); } const basis = gemeinsam.digest('hex'); const qualitaet = entwurf ? 'entwurf' : 'voll'; -const aus = path.join('out', kuerzel, qualitaet); +const aus = path.join('out', kuerzel, sprache, qualitaet); fs.mkdirSync(aus, {recursive: true}); const propsDatei = path.join(aus, 'props.json'); -fs.writeFileSync(propsDatei, JSON.stringify({entwurf})); +fs.writeFileSync(propsDatei, JSON.stringify({entwurf, sprache})); const gl = process.platform === 'linux' ? 'swangle' : 'angle'; const teile = []; @@ -111,6 +122,6 @@ for (const [i, s] of liste.entries()) { // Zusammenkleben (ohne neu zu kodieren) const listeDatei = path.join(aus, 'teile.txt'); fs.writeFileSync(listeDatei, teile.map((t) => `file '${path.resolve(t).replaceAll('\\', '/')}'`).join('\n')); -const ergebnis = ziel ?? path.join('out', kuerzel, `${kuerzel}${entwurf ? '-entwurf' : ''}.mp4`); +const ergebnis = ziel ?? path.join('out', kuerzel, `${kuerzel}-${sprache}${entwurf ? '-entwurf' : ''}.mp4`); lauf(npx, ['remotion', 'ffmpeg', '-v', 'error', '-y', '-f', 'concat', '-safe', '0', '-i', listeDatei, '-c', 'copy', '-movflags', '+faststart', ergebnis]); console.log(`\nFertig: ${ergebnis} (${((Date.now() - start) / 60000).toFixed(1)} min)`); diff --git a/remotion/werkzeuge/stimmen.mts b/remotion/werkzeuge/stimmen.mts index 3218b6c..9610d54 100644 --- a/remotion/werkzeuge/stimmen.mts +++ b/remotion/werkzeuge/stimmen.mts @@ -1,15 +1,17 @@ // Erzeugt die Sprachaufnahmen einer Folge mit ElevenLabs und trägt ihre -// Länge in src/folgeNN/stimmen.json ein. Danach passt sich der Zeitplan der +// Länge in src/folgeNN/stimmen/.json ein. Danach passt sich der Zeitplan der // Szenen automatisch an die echten Längen an. // // ELEVENLABS_API_KEY=… npx tsx werkzeuge/stimmen.mts F02 // … F02 --szene s3 nur eine Szene // … F02 --neu alle Zeilen neu erzeugen // … F02 --probe nur anzeigen, was erzeugt würde (kostet nichts) +// … F02 --sprache es andere Sprache (de, es, fr; ohne Angabe de) // // Der Schlüssel kommt nur aus der Umgebungsvariable, nie aus einer Datei im Repo. -// Stimmen-IDs und Modell stehen in werkzeuge/stimmen.config.json. -// Aufnahmen landen in public/stimmen/folgeNN/ (nicht im Git; auf dem VPS ein +// Stimmen-IDs und Modell stehen in werkzeuge/stimmen.config.json (je Sprache +// lassen sich dort unter „sprachen“ eigene Stimmen eintragen). +// Aufnahmen landen in public/stimmen/folgeNN// (nicht im Git; auf dem VPS ein // Link nach /shared/youtube/stimmen/). Nur Zeilen, deren Text sich geändert // hat oder deren Datei fehlt, werden neu erzeugt. @@ -27,6 +29,8 @@ const wert = (n: string) => (args.includes(n) ? args[args.indexOf(n) + 1] : unde const nurSzene = wert('--szene'); const neu = args.includes('--neu'); const probe = args.includes('--probe'); +const sprache = wert('--sprache') ?? 'de'; +if (!['de', 'es', 'fr'].includes(sprache)) throw new Error(`Unbekannte Sprache: ${sprache}`); if (!kuerzel) throw new Error('Folge angeben, z. B. F02'); const nummer = kuerzel.replace(/\D/g, ''); @@ -34,26 +38,27 @@ const cfg = JSON.parse(fs.readFileSync('werkzeuge/stimmen.config.json', 'utf8')) modell: string; format: string; stimmen: Record; + sprachen?: Record}>; einstellungen?: Record; }; const schluessel = process.env.ELEVENLABS_API_KEY; if (!schluessel && !probe) throw new Error('ELEVENLABS_API_KEY ist nicht gesetzt.'); const npx = process.platform === 'win32' ? 'npx.cmd' : 'npx'; -const ausgabe = spawnSync(npx, ['tsx', 'werkzeuge/szenenliste.mts', `./src/folge${nummer}/Folge${nummer}.tsx`, kuerzel], {encoding: 'utf8', shell: process.platform === 'win32'}); +const ausgabe = spawnSync(npx, ['tsx', 'werkzeuge/szenenliste.mts', `./src/folge${nummer}/Folge${nummer}.tsx`, kuerzel], {encoding: 'utf8', shell: process.platform === 'win32', env: {...process.env, SPRACHE: sprache}}); const szenen = JSON.parse(ausgabe.stdout.split('\n').filter((z) => z.startsWith('[')).pop()!) as { szene?: string; zeilen: {id: string; wer?: string; text: string; leise?: boolean}[]; }[]; -const jsonDatei = `src/folge${nummer}/stimmen.json`; +const jsonDatei = `src/folge${nummer}/stimmen/${sprache}.json`; const aufnahmen: Record = JSON.parse(fs.readFileSync(jsonDatei, 'utf8')); -const ordner = `public/stimmen/folge${nummer}`; +const ordner = `public/stimmen/folge${nummer}/${sprache}`; fs.mkdirSync(ordner, {recursive: true}); // Stimme je Sprecher; ein Eintrag kann auf einen anderen Sprecher verweisen (z. B. ALLE → ERZ) const stimmeVon = (wer: string): string | undefined => { - const v = cfg.stimmen[wer]; + const v = cfg.sprachen?.[sprache]?.stimmen?.[wer] || cfg.stimmen[wer]; if (!v) return undefined; return v in cfg.stimmen ? stimmeVon(v) : v; }; diff --git a/remotion/werkzeuge/szenenliste.mts b/remotion/werkzeuge/szenenliste.mts index 3d8781f..c337f69 100644 --- a/remotion/werkzeuge/szenenliste.mts +++ b/remotion/werkzeuge/szenenliste.mts @@ -1,4 +1,4 @@ -// Gibt die Szenen einer Folge als JSON aus (für werkzeuge/render.mjs und stimmen.ts). +// Gibt die Szenen einer Folge als JSON aus (für werkzeuge/render.mjs, stimmen.mts und texte.mts; Sprache über SPRACHE). // npx tsx werkzeuge/szenenliste.mts ./src/folge02/Folge02.tsx F02 import path from 'node:path'; import {pathToFileURL} from 'node:url'; diff --git a/remotion/werkzeuge/texte.mts b/remotion/werkzeuge/texte.mts new file mode 100644 index 0000000..84f4042 --- /dev/null +++ b/remotion/werkzeuge/texte.mts @@ -0,0 +1,69 @@ +// Prüft die Sprechtexte einer Folge (src/folgeNN/texte/.json): +// Fehlt in einer Sprache eine Zeile, die eine Szene braucht, oder steht dort +// eine, die keine Szene mehr benutzt? +// +// npx tsx werkzeuge/texte.mts F02 prüfen +// npx tsx werkzeuge/texte.mts F02 --tabelle alle Sprachen nebeneinander (Markdown) +// +// Kostet nichts und ändert nichts. + +import {spawnSync} from 'node:child_process'; +import fs from 'node:fs'; +import path from 'node:path'; +import {fileURLToPath} from 'node:url'; + +const WURZEL = path.resolve(path.dirname(fileURLToPath(import.meta.url)), '..'); +process.chdir(WURZEL); + +const args = process.argv.slice(2); +const kuerzel = args.find((a) => !a.startsWith('--')); +if (!kuerzel) throw new Error('Folge angeben, z. B. F02'); +const nummer = kuerzel.replace(/\D/g, ''); +const SPRACHEN = ['de', 'es', 'fr']; + +type Texte = {titel: string; lied?: string; zeilen: Record}; +const texte: Record = Object.fromEntries( + SPRACHEN.map((s) => [s, JSON.parse(fs.readFileSync(`src/folge${nummer}/texte/${s}.json`, 'utf8')) as Texte]), +); + +// Welche Zeilen sprechen die Szenen? (Zeilen, die der Baukasten selbst +// mitbringt, z. B. das Intro, stehen nicht in den Textdateien.) +const npx = process.platform === 'win32' ? 'npx.cmd' : 'npx'; +const ausgabe = spawnSync(npx, ['tsx', 'werkzeuge/szenenliste.mts', `./src/folge${nummer}/Folge${nummer}.tsx`, kuerzel], { + encoding: 'utf8', + shell: process.platform === 'win32', + env: {...process.env, SPRACHE: 'de'}, +}); +const szenen = JSON.parse(ausgabe.stdout.split('\n').filter((z) => z.startsWith('[')).pop()!) as {szene?: string; zeilen: {id: string; wer?: string; text: string}[]}[]; +const gebraucht: {schl: string; wer?: string}[] = []; +for (const s of szenen) { + if (!s.szene) continue; + for (const z of s.zeilen) { + const schl = `${s.szene}/${z.id}`; + if (schl in texte.de.zeilen || z.text.startsWith('[fehlt:')) gebraucht.push({schl, wer: z.wer}); + } +} + +if (args.includes('--tabelle')) { + const zelle = (t?: string) => (t ?? '**fehlt**').replaceAll('|', '\\|'); + console.log(`| Zeile | Wer | ${SPRACHEN.join(' | ')} |`); + console.log(`| --- | --- | ${SPRACHEN.map(() => '---').join(' | ')} |`); + console.log(`| Titel | | ${SPRACHEN.map((s) => zelle(texte[s].titel)).join(' | ')} |`); + for (const g of gebraucht) console.log(`| ${g.schl} | ${g.wer ?? ''} | ${SPRACHEN.map((s) => zelle(texte[s].zeilen[g.schl])).join(' | ')} |`); + process.exit(0); +} + +let fehler = 0; +const schluessel = new Set(gebraucht.map((g) => g.schl)); +for (const s of SPRACHEN) { + const fehlt = gebraucht.filter((g) => !(g.schl in texte[s].zeilen)).map((g) => g.schl); + const uebrig = Object.keys(texte[s].zeilen).filter((k) => !schluessel.has(k)); + const leer = Object.entries(texte[s].zeilen).filter(([, t]) => !t.trim()).map(([k]) => k); + if (!texte[s].titel) fehlt.unshift('titel'); + for (const k of fehlt) console.log(`✗ ${s}: fehlt ${k}`); + for (const k of leer) console.log(`✗ ${s}: leer ${k}`); + for (const k of uebrig) console.log(`? ${s}: nicht benutzt ${k}`); + fehler += fehlt.length + leer.length; + if (!fehlt.length && !leer.length && !uebrig.length) console.log(`✓ ${s}: ${Object.keys(texte[s].zeilen).length} Zeilen`); +} +process.exit(fehler ? 1 : 0);