add: french subtitles

This commit is contained in:
Tom Boullay
2026-05-10 00:20:16 +01:00
parent 0c8b9070bb
commit 3d81a9281a
9 changed files with 117 additions and 12 deletions
+6 -6
View File
@@ -18,11 +18,11 @@
} }
}, },
{ {
"id": "leonie", "id": "electricienne",
"speaker": "Leonie", "speaker": "Electricienne",
"subtitles": { "subtitles": {
"fr": "/sounds/dialogue/subtitles/fr/leonie.srt", "fr": "/sounds/dialogue/subtitles/fr/electricienne.srt",
"en": "/sounds/dialogue/subtitles/en/leonie.srt" "en": "/sounds/dialogue/subtitles/en/electricienne.srt"
} }
} }
], ],
@@ -161,9 +161,9 @@
"subtitleCueIndex": 22 "subtitleCueIndex": 22
}, },
{ {
"id": "narrateur_histoireleonie", "id": "narrateur_histoireelectricienne",
"voice": "narrateur", "voice": "narrateur",
"audio": "/sounds/dialogue/narrateur_histoireleonie.mp3", "audio": "/sounds/dialogue/narrateur_histoireelectricienne.mp3",
"subtitleCueIndex": 23 "subtitleCueIndex": 23
}, },
{ {
@@ -0,0 +1,3 @@
1
00:00:00,000 --> 00:00:08,000
Texte Electricienne a definir.
@@ -0,0 +1,11 @@
1
00:00:00,000 --> 00:00:08,000
Tu peux me donner un coup de main ?
2
00:00:00,000 --> 00:00:08,000
On y est presque, continue comme ca.
3
00:00:00,000 --> 00:00:08,000
Merci, la mission est terminee.
@@ -0,0 +1,91 @@
1
00:00:00,000 --> 00:00:08,000
Bienvenue a Altera.
2
00:00:00,000 --> 00:00:08,000
Quel est ton prenom ?
3
00:00:00,000 --> 00:00:08,000
Parfait, on peut commencer la visite.
4
00:00:00,000 --> 00:00:08,000
Ta premiere mission concerne un velo electrique.
5
00:00:00,000 --> 00:00:08,000
Le velo electrique est casse.
6
00:00:00,000 --> 00:00:08,000
Scanne le galet pour identifier le probleme.
7
00:00:00,000 --> 00:00:08,000
Le velo electrique est repare.
8
00:00:00,000 --> 00:00:08,000
Del aide a besoin de toi pour la suite.
9
00:00:00,000 --> 00:00:08,000
Une coupure electrique vient d'etre signalee.
10
00:00:00,000 --> 00:00:08,000
Le poteau electrique est endommage.
11
00:00:00,000 --> 00:00:08,000
Le courant est retabli.
12
00:00:00,000 --> 00:00:08,000
Prends la route vers la ferme verticale.
13
00:00:00,000 --> 00:00:08,000
Nous arrivons a la ferme.
14
00:00:00,000 --> 00:00:08,000
Fouille le centre pour trouver une solution.
15
00:00:00,000 --> 00:00:08,000
Interagis avec les tuyaux pres du lac.
16
00:00:00,000 --> 00:00:08,000
Observe le refroidisseur.
17
00:00:00,000 --> 00:00:08,000
Le refroidisseur est casse.
18
00:00:00,000 --> 00:00:08,000
Le createur de pluie est pret.
19
00:00:00,000 --> 00:00:08,000
Merci pour ton aide.
20
00:00:00,000 --> 00:00:08,000
Bonne chance pour la suite.
21
00:00:00,000 --> 00:00:08,000
Voici l'atelier de La Fabrik.
22
00:00:00,000 --> 00:00:08,000
Voici les outils a ta disposition.
23
00:00:00,000 --> 00:00:08,000
Electricienne fait partie de l'histoire de La Fabrik.
+1 -1
View File
@@ -14,7 +14,7 @@ interface SrtVoiceOption {
const SRT_VOICES: SrtVoiceOption[] = [ const SRT_VOICES: SrtVoiceOption[] = [
{ id: "narrateur", label: "Narrateur" }, { id: "narrateur", label: "Narrateur" },
{ id: "fermier", label: "Fermier" }, { id: "fermier", label: "Fermier" },
{ id: "leonie", label: "Leonie" }, { id: "electricienne", label: "Electricienne" },
]; ];
const DEFAULT_SRT_VOICE: SrtVoiceOption = { const DEFAULT_SRT_VOICE: SrtVoiceOption = {
id: "narrateur", id: "narrateur",
+1 -1
View File
@@ -434,7 +434,7 @@ canvas {
color: #86efac; color: #86efac;
} }
.subtitles__speaker--leonie { .subtitles__speaker--electricienne {
color: #f9a8d4; color: #f9a8d4;
} }
+2 -2
View File
@@ -1,7 +1,7 @@
import type { SubtitleLanguage } from "@/managers/stores/useSettingsStore"; import type { SubtitleLanguage } from "@/managers/stores/useSettingsStore";
export type DialogueVoiceId = "narrateur" | "fermier" | "leonie"; export type DialogueVoiceId = "narrateur" | "fermier" | "electricienne";
export type DialogueSpeaker = "Narrateur" | "Fermier" | "Leonie"; export type DialogueSpeaker = "Narrateur" | "Fermier" | "Electricienne";
export interface DialogueVoice { export interface DialogueVoice {
id: DialogueVoiceId; id: DialogueVoiceId;
@@ -9,12 +9,12 @@ import type {
const VALID_VOICE_IDS = new Set<DialogueVoiceId>([ const VALID_VOICE_IDS = new Set<DialogueVoiceId>([
"narrateur", "narrateur",
"fermier", "fermier",
"leonie", "electricienne",
]); ]);
const VALID_SPEAKERS = new Set<DialogueSpeaker>([ const VALID_SPEAKERS = new Set<DialogueSpeaker>([
"Narrateur", "Narrateur",
"Fermier", "Fermier",
"Leonie", "Electricienne",
]); ]);
export function parseDialogueManifest(data: unknown): DialogueManifest { export function parseDialogueManifest(data: unknown): DialogueManifest {