@contractspec/lib.video-gen 2.7.6 → 2.7.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +67 -25
- package/dist/browser/compositions/api-overview.js +114 -114
- package/dist/browser/compositions/index.js +115 -115
- package/dist/browser/compositions/primitives/index.js +113 -113
- package/dist/browser/compositions/social-clip.js +114 -114
- package/dist/browser/compositions/terminal-demo.js +113 -113
- package/dist/browser/design/index.js +35 -35
- package/dist/browser/generators/index.js +94 -94
- package/dist/browser/generators/scene-planner.js +94 -94
- package/dist/browser/generators/script-generator.js +94 -94
- package/dist/browser/generators/video-generator.js +94 -94
- package/dist/browser/i18n/catalogs/index.js +74 -74
- package/dist/browser/i18n/index.js +94 -94
- package/dist/browser/i18n/locale.js +2 -2
- package/dist/browser/i18n/messages.js +74 -74
- package/dist/browser/index.js +212 -212
- package/dist/browser/player/demo-player.js +116 -116
- package/dist/browser/player/index.js +116 -116
- package/dist/browser/remotion/Root.js +115 -115
- package/dist/browser/remotion/index.js +115 -115
- package/dist/compositions/api-overview.js +114 -114
- package/dist/compositions/index.d.ts +4 -4
- package/dist/compositions/index.js +115 -115
- package/dist/compositions/primitives/animated-text.d.ts +1 -1
- package/dist/compositions/primitives/brand-frame.d.ts +1 -1
- package/dist/compositions/primitives/index.d.ts +8 -8
- package/dist/compositions/primitives/index.js +113 -113
- package/dist/compositions/primitives/transition.d.ts +1 -1
- package/dist/compositions/social-clip.js +114 -114
- package/dist/compositions/terminal-demo.js +113 -113
- package/dist/design/index.d.ts +2 -2
- package/dist/design/index.js +35 -35
- package/dist/generators/index.d.ts +2 -2
- package/dist/generators/index.js +94 -94
- package/dist/generators/scene-planner.d.ts +1 -1
- package/dist/generators/scene-planner.js +94 -94
- package/dist/generators/script-generator.d.ts +2 -2
- package/dist/generators/script-generator.js +94 -94
- package/dist/generators/video-generator.js +94 -94
- package/dist/i18n/catalogs/index.d.ts +1 -1
- package/dist/i18n/catalogs/index.js +74 -74
- package/dist/i18n/index.d.ts +7 -7
- package/dist/i18n/index.js +94 -94
- package/dist/i18n/locale.d.ts +1 -1
- package/dist/i18n/locale.js +2 -2
- package/dist/i18n/messages.js +74 -74
- package/dist/index.d.ts +3 -3
- package/dist/index.js +212 -212
- package/dist/node/compositions/api-overview.js +114 -114
- package/dist/node/compositions/index.js +115 -115
- package/dist/node/compositions/primitives/index.js +113 -113
- package/dist/node/compositions/social-clip.js +114 -114
- package/dist/node/compositions/terminal-demo.js +113 -113
- package/dist/node/design/index.js +35 -35
- package/dist/node/generators/index.js +94 -94
- package/dist/node/generators/scene-planner.js +94 -94
- package/dist/node/generators/script-generator.js +94 -94
- package/dist/node/generators/video-generator.js +94 -94
- package/dist/node/i18n/catalogs/index.js +74 -74
- package/dist/node/i18n/index.js +94 -94
- package/dist/node/i18n/locale.js +2 -2
- package/dist/node/i18n/messages.js +74 -74
- package/dist/node/index.js +212 -212
- package/dist/node/player/demo-player.js +116 -116
- package/dist/node/player/index.js +116 -116
- package/dist/node/remotion/Root.js +115 -115
- package/dist/node/remotion/index.js +115 -115
- package/dist/player/demo-player.js +116 -116
- package/dist/player/index.d.ts +1 -1
- package/dist/player/index.js +116 -116
- package/dist/remotion/Root.js +115 -115
- package/dist/remotion/index.js +115 -115
- package/dist/renderers/index.d.ts +2 -2
- package/dist/types.d.ts +6 -6
- package/package.json +15 -15
|
@@ -186,54 +186,54 @@ Prioritize clarity and pacing. Each scene should communicate one idea.`,
|
|
|
186
186
|
}
|
|
187
187
|
});
|
|
188
188
|
|
|
189
|
-
// src/i18n/catalogs/
|
|
189
|
+
// src/i18n/catalogs/es.ts
|
|
190
190
|
import { defineTranslation as defineTranslation2 } from "@contractspec/lib.contracts-spec/translations";
|
|
191
|
-
var
|
|
191
|
+
var esMessages = defineTranslation2({
|
|
192
192
|
meta: {
|
|
193
193
|
key: "video-gen.messages",
|
|
194
194
|
version: "1.0.0",
|
|
195
195
|
domain: "video-gen",
|
|
196
|
-
description: "
|
|
196
|
+
description: "Spanish translations for the video-gen package",
|
|
197
197
|
owners: ["platform"],
|
|
198
198
|
stability: "experimental"
|
|
199
199
|
},
|
|
200
|
-
locale: "
|
|
200
|
+
locale: "es",
|
|
201
201
|
fallback: "en",
|
|
202
202
|
messages: {
|
|
203
203
|
"prompt.script.system": {
|
|
204
|
-
value: `
|
|
205
|
-
|
|
204
|
+
value: `Eres un redactor de guiones de narración para vídeo.
|
|
205
|
+
Escribe un guión de narración para un vídeo corto (30-60 segundos).
|
|
206
206
|
{styleGuide}
|
|
207
207
|
|
|
208
|
-
|
|
208
|
+
Devuelve JSON con la forma:
|
|
209
209
|
{
|
|
210
210
|
"segments": [{ "sceneId": string, "text": string }],
|
|
211
211
|
"fullText": string
|
|
212
212
|
}
|
|
213
213
|
|
|
214
|
-
|
|
215
|
-
|
|
214
|
+
Los identificadores de escena deben ser: "intro", "problems", "solutions", "metrics", "cta".
|
|
215
|
+
Incluye solo los segmentos relevantes para el brief.`,
|
|
216
216
|
description: "Script generator LLM system prompt",
|
|
217
217
|
placeholders: [{ name: "styleGuide", type: "string" }]
|
|
218
218
|
},
|
|
219
219
|
"prompt.scenePlanner.system": {
|
|
220
|
-
value: `
|
|
221
|
-
|
|
220
|
+
value: `Eres un planificador de escenas de vídeo para vídeos de marketing/documentación de ContractSpec.
|
|
221
|
+
Dado un brief de contenido, divídelo en escenas de vídeo.
|
|
222
222
|
|
|
223
|
-
|
|
224
|
-
- compositionId
|
|
225
|
-
- props
|
|
226
|
-
- durationInFrames
|
|
227
|
-
- narrationText
|
|
223
|
+
Cada escena debe tener:
|
|
224
|
+
- compositionId: uno de "ApiOverview", "SocialClip", "TerminalDemo"
|
|
225
|
+
- props: las propiedades de entrada de esa composición
|
|
226
|
+
- durationInFrames: duración a {fps} fps
|
|
227
|
+
- narrationText: lo que dice el narrador durante esta escena
|
|
228
228
|
|
|
229
|
-
|
|
229
|
+
Devuelve un objeto JSON con la forma:
|
|
230
230
|
{
|
|
231
231
|
"scenes": [{ "compositionId": string, "props": object, "durationInFrames": number, "narrationText": string }],
|
|
232
232
|
"narrationScript": string
|
|
233
233
|
}
|
|
234
234
|
|
|
235
|
-
|
|
236
|
-
|
|
235
|
+
Mantén la duración total alrededor de {targetSeconds} segundos.
|
|
236
|
+
Prioriza la claridad y el ritmo. Cada escena debe comunicar una idea.`,
|
|
237
237
|
description: "Scene planner LLM system prompt",
|
|
238
238
|
placeholders: [
|
|
239
239
|
{ name: "fps", type: "number" },
|
|
@@ -241,64 +241,64 @@ Privilégiez la clarté et le rythme. Chaque scène doit communiquer une idée.`
|
|
|
241
241
|
]
|
|
242
242
|
},
|
|
243
243
|
"prompt.style.professional": {
|
|
244
|
-
value: "
|
|
244
|
+
value: "Usa un tono claro, autoritario y profesional. Sé conciso y directo.",
|
|
245
245
|
description: "Style guide for professional narration"
|
|
246
246
|
},
|
|
247
247
|
"prompt.style.casual": {
|
|
248
|
-
value: "
|
|
248
|
+
value: "Usa un tono amigable y conversacional. Sé accesible y cercano.",
|
|
249
249
|
description: "Style guide for casual narration"
|
|
250
250
|
},
|
|
251
251
|
"prompt.style.technical": {
|
|
252
|
-
value: "
|
|
252
|
+
value: "Usa un lenguaje técnico preciso. Sé detallado y exacto.",
|
|
253
253
|
description: "Style guide for technical narration"
|
|
254
254
|
},
|
|
255
255
|
"script.segment.challenge": {
|
|
256
|
-
value: "
|
|
256
|
+
value: "El desafío: {content}",
|
|
257
257
|
description: "Narration segment prefix for problems",
|
|
258
258
|
placeholders: [{ name: "content", type: "string" }]
|
|
259
259
|
},
|
|
260
260
|
"script.segment.solution": {
|
|
261
|
-
value: "La
|
|
261
|
+
value: "La solución: {content}",
|
|
262
262
|
description: "Narration segment prefix for solutions",
|
|
263
263
|
placeholders: [{ name: "content", type: "string" }]
|
|
264
264
|
},
|
|
265
265
|
"script.segment.results": {
|
|
266
|
-
value: "
|
|
266
|
+
value: "Los resultados: {content}",
|
|
267
267
|
description: "Narration segment prefix for metrics",
|
|
268
268
|
placeholders: [{ name: "content", type: "string" }]
|
|
269
269
|
},
|
|
270
270
|
"scene.cta.default": {
|
|
271
|
-
value: "
|
|
271
|
+
value: "Más información",
|
|
272
272
|
description: "Default call-to-action text for scenes"
|
|
273
273
|
},
|
|
274
274
|
"scene.hook.problem": {
|
|
275
|
-
value: "
|
|
275
|
+
value: "El problema",
|
|
276
276
|
description: "Scene hook label for problem statement"
|
|
277
277
|
},
|
|
278
278
|
"scene.narration.problem": {
|
|
279
|
-
value: "
|
|
279
|
+
value: "El problema: {content}",
|
|
280
280
|
description: "Scene narration for problem statement",
|
|
281
281
|
placeholders: [{ name: "content", type: "string" }]
|
|
282
282
|
},
|
|
283
283
|
"scene.hook.solution": {
|
|
284
|
-
value: "La
|
|
284
|
+
value: "La solución",
|
|
285
285
|
description: "Scene hook label for solution"
|
|
286
286
|
},
|
|
287
287
|
"scene.narration.solution": {
|
|
288
|
-
value: "La
|
|
288
|
+
value: "La solución: {content}",
|
|
289
289
|
description: "Scene narration for solution",
|
|
290
290
|
placeholders: [{ name: "content", type: "string" }]
|
|
291
291
|
},
|
|
292
292
|
"scene.hook.results": {
|
|
293
|
-
value: "
|
|
293
|
+
value: "Resultados",
|
|
294
294
|
description: "Scene hook label for results/metrics"
|
|
295
295
|
},
|
|
296
296
|
"composition.apiOverview.generates": {
|
|
297
|
-
value: "
|
|
297
|
+
value: "Genera:",
|
|
298
298
|
description: "ApiOverview heading for generated outputs"
|
|
299
299
|
},
|
|
300
300
|
"composition.apiOverview.tagline": {
|
|
301
|
-
value: "
|
|
301
|
+
value: "Una spec. Todas las superficies.",
|
|
302
302
|
description: "ApiOverview default tagline"
|
|
303
303
|
},
|
|
304
304
|
"composition.apiOverview.output.rest": {
|
|
@@ -306,11 +306,11 @@ Privilégiez la clarté et le rythme. Chaque scène doit communiquer une idée.`
|
|
|
306
306
|
description: "Generated output label: REST"
|
|
307
307
|
},
|
|
308
308
|
"composition.apiOverview.output.graphql": {
|
|
309
|
-
value: "
|
|
309
|
+
value: "Mutación GraphQL",
|
|
310
310
|
description: "Generated output label: GraphQL"
|
|
311
311
|
},
|
|
312
312
|
"composition.apiOverview.output.prisma": {
|
|
313
|
-
value: "
|
|
313
|
+
value: "Modelo Prisma",
|
|
314
314
|
description: "Generated output label: Prisma"
|
|
315
315
|
},
|
|
316
316
|
"composition.apiOverview.output.typescript": {
|
|
@@ -318,7 +318,7 @@ Privilégiez la clarté et le rythme. Chaque scène doit communiquer une idée.`
|
|
|
318
318
|
description: "Generated output label: TypeScript SDK"
|
|
319
319
|
},
|
|
320
320
|
"composition.apiOverview.output.mcp": {
|
|
321
|
-
value: "
|
|
321
|
+
value: "Herramienta MCP",
|
|
322
322
|
description: "Generated output label: MCP Tool"
|
|
323
323
|
},
|
|
324
324
|
"composition.apiOverview.output.openapi": {
|
|
@@ -326,7 +326,7 @@ Privilégiez la clarté et le rythme. Chaque scène doit communiquer une idée.`
|
|
|
326
326
|
description: "Generated output label: OpenAPI"
|
|
327
327
|
},
|
|
328
328
|
"composition.socialClip.cta": {
|
|
329
|
-
value: "
|
|
329
|
+
value: "Más información",
|
|
330
330
|
description: "SocialClip default CTA"
|
|
331
331
|
},
|
|
332
332
|
"composition.terminal.title": {
|
|
@@ -336,54 +336,54 @@ Privilégiez la clarté et le rythme. Chaque scène doit communiquer une idée.`
|
|
|
336
336
|
}
|
|
337
337
|
});
|
|
338
338
|
|
|
339
|
-
// src/i18n/catalogs/
|
|
339
|
+
// src/i18n/catalogs/fr.ts
|
|
340
340
|
import { defineTranslation as defineTranslation3 } from "@contractspec/lib.contracts-spec/translations";
|
|
341
|
-
var
|
|
341
|
+
var frMessages = defineTranslation3({
|
|
342
342
|
meta: {
|
|
343
343
|
key: "video-gen.messages",
|
|
344
344
|
version: "1.0.0",
|
|
345
345
|
domain: "video-gen",
|
|
346
|
-
description: "
|
|
346
|
+
description: "French translations for the video-gen package",
|
|
347
347
|
owners: ["platform"],
|
|
348
348
|
stability: "experimental"
|
|
349
349
|
},
|
|
350
|
-
locale: "
|
|
350
|
+
locale: "fr",
|
|
351
351
|
fallback: "en",
|
|
352
352
|
messages: {
|
|
353
353
|
"prompt.script.system": {
|
|
354
|
-
value: `
|
|
355
|
-
|
|
354
|
+
value: `Vous êtes un rédacteur de scripts de narration vidéo.
|
|
355
|
+
Écrivez un script de narration pour une courte vidéo (30-60 secondes).
|
|
356
356
|
{styleGuide}
|
|
357
357
|
|
|
358
|
-
|
|
358
|
+
Retournez du JSON avec la forme :
|
|
359
359
|
{
|
|
360
360
|
"segments": [{ "sceneId": string, "text": string }],
|
|
361
361
|
"fullText": string
|
|
362
362
|
}
|
|
363
363
|
|
|
364
|
-
|
|
365
|
-
|
|
364
|
+
Les identifiants de scène doivent être : "intro", "problems", "solutions", "metrics", "cta".
|
|
365
|
+
N'incluez que les segments pertinents au brief.`,
|
|
366
366
|
description: "Script generator LLM system prompt",
|
|
367
367
|
placeholders: [{ name: "styleGuide", type: "string" }]
|
|
368
368
|
},
|
|
369
369
|
"prompt.scenePlanner.system": {
|
|
370
|
-
value: `
|
|
371
|
-
|
|
370
|
+
value: `Vous êtes un planificateur de scènes vidéo pour les vidéos marketing/documentation de ContractSpec.
|
|
371
|
+
À partir d'un brief, décomposez-le en scènes vidéo.
|
|
372
372
|
|
|
373
|
-
|
|
374
|
-
- compositionId:
|
|
375
|
-
- props:
|
|
376
|
-
- durationInFrames:
|
|
377
|
-
- narrationText:
|
|
373
|
+
Chaque scène doit avoir :
|
|
374
|
+
- compositionId : un parmi "ApiOverview", "SocialClip", "TerminalDemo"
|
|
375
|
+
- props : les propriétés d'entrée de cette composition
|
|
376
|
+
- durationInFrames : durée à {fps} fps
|
|
377
|
+
- narrationText : ce que le narrateur dit pendant cette scène
|
|
378
378
|
|
|
379
|
-
|
|
379
|
+
Retournez un objet JSON avec la forme :
|
|
380
380
|
{
|
|
381
381
|
"scenes": [{ "compositionId": string, "props": object, "durationInFrames": number, "narrationText": string }],
|
|
382
382
|
"narrationScript": string
|
|
383
383
|
}
|
|
384
384
|
|
|
385
|
-
|
|
386
|
-
|
|
385
|
+
Gardez la durée totale autour de {targetSeconds} secondes.
|
|
386
|
+
Privilégiez la clarté et le rythme. Chaque scène doit communiquer une idée.`,
|
|
387
387
|
description: "Scene planner LLM system prompt",
|
|
388
388
|
placeholders: [
|
|
389
389
|
{ name: "fps", type: "number" },
|
|
@@ -391,64 +391,64 @@ Prioriza la claridad y el ritmo. Cada escena debe comunicar una idea.`,
|
|
|
391
391
|
]
|
|
392
392
|
},
|
|
393
393
|
"prompt.style.professional": {
|
|
394
|
-
value: "
|
|
394
|
+
value: "Utilisez un ton clair, autoritaire et professionnel. Soyez concis et direct.",
|
|
395
395
|
description: "Style guide for professional narration"
|
|
396
396
|
},
|
|
397
397
|
"prompt.style.casual": {
|
|
398
|
-
value: "
|
|
398
|
+
value: "Utilisez un ton amical et conversationnel. Soyez accessible et proche.",
|
|
399
399
|
description: "Style guide for casual narration"
|
|
400
400
|
},
|
|
401
401
|
"prompt.style.technical": {
|
|
402
|
-
value: "
|
|
402
|
+
value: "Utilisez un langage technique précis. Soyez détaillé et exact.",
|
|
403
403
|
description: "Style guide for technical narration"
|
|
404
404
|
},
|
|
405
405
|
"script.segment.challenge": {
|
|
406
|
-
value: "
|
|
406
|
+
value: "Le défi : {content}",
|
|
407
407
|
description: "Narration segment prefix for problems",
|
|
408
408
|
placeholders: [{ name: "content", type: "string" }]
|
|
409
409
|
},
|
|
410
410
|
"script.segment.solution": {
|
|
411
|
-
value: "La
|
|
411
|
+
value: "La solution : {content}",
|
|
412
412
|
description: "Narration segment prefix for solutions",
|
|
413
413
|
placeholders: [{ name: "content", type: "string" }]
|
|
414
414
|
},
|
|
415
415
|
"script.segment.results": {
|
|
416
|
-
value: "
|
|
416
|
+
value: "Les résultats : {content}",
|
|
417
417
|
description: "Narration segment prefix for metrics",
|
|
418
418
|
placeholders: [{ name: "content", type: "string" }]
|
|
419
419
|
},
|
|
420
420
|
"scene.cta.default": {
|
|
421
|
-
value: "
|
|
421
|
+
value: "En savoir plus",
|
|
422
422
|
description: "Default call-to-action text for scenes"
|
|
423
423
|
},
|
|
424
424
|
"scene.hook.problem": {
|
|
425
|
-
value: "
|
|
425
|
+
value: "Le problème",
|
|
426
426
|
description: "Scene hook label for problem statement"
|
|
427
427
|
},
|
|
428
428
|
"scene.narration.problem": {
|
|
429
|
-
value: "
|
|
429
|
+
value: "Le problème : {content}",
|
|
430
430
|
description: "Scene narration for problem statement",
|
|
431
431
|
placeholders: [{ name: "content", type: "string" }]
|
|
432
432
|
},
|
|
433
433
|
"scene.hook.solution": {
|
|
434
|
-
value: "La
|
|
434
|
+
value: "La solution",
|
|
435
435
|
description: "Scene hook label for solution"
|
|
436
436
|
},
|
|
437
437
|
"scene.narration.solution": {
|
|
438
|
-
value: "La
|
|
438
|
+
value: "La solution : {content}",
|
|
439
439
|
description: "Scene narration for solution",
|
|
440
440
|
placeholders: [{ name: "content", type: "string" }]
|
|
441
441
|
},
|
|
442
442
|
"scene.hook.results": {
|
|
443
|
-
value: "
|
|
443
|
+
value: "Résultats",
|
|
444
444
|
description: "Scene hook label for results/metrics"
|
|
445
445
|
},
|
|
446
446
|
"composition.apiOverview.generates": {
|
|
447
|
-
value: "
|
|
447
|
+
value: "Génère :",
|
|
448
448
|
description: "ApiOverview heading for generated outputs"
|
|
449
449
|
},
|
|
450
450
|
"composition.apiOverview.tagline": {
|
|
451
|
-
value: "
|
|
451
|
+
value: "Un spec. Toutes les surfaces.",
|
|
452
452
|
description: "ApiOverview default tagline"
|
|
453
453
|
},
|
|
454
454
|
"composition.apiOverview.output.rest": {
|
|
@@ -456,11 +456,11 @@ Prioriza la claridad y el ritmo. Cada escena debe comunicar una idea.`,
|
|
|
456
456
|
description: "Generated output label: REST"
|
|
457
457
|
},
|
|
458
458
|
"composition.apiOverview.output.graphql": {
|
|
459
|
-
value: "
|
|
459
|
+
value: "Mutation GraphQL",
|
|
460
460
|
description: "Generated output label: GraphQL"
|
|
461
461
|
},
|
|
462
462
|
"composition.apiOverview.output.prisma": {
|
|
463
|
-
value: "
|
|
463
|
+
value: "Modèle Prisma",
|
|
464
464
|
description: "Generated output label: Prisma"
|
|
465
465
|
},
|
|
466
466
|
"composition.apiOverview.output.typescript": {
|
|
@@ -468,7 +468,7 @@ Prioriza la claridad y el ritmo. Cada escena debe comunicar una idea.`,
|
|
|
468
468
|
description: "Generated output label: TypeScript SDK"
|
|
469
469
|
},
|
|
470
470
|
"composition.apiOverview.output.mcp": {
|
|
471
|
-
value: "
|
|
471
|
+
value: "Outil MCP",
|
|
472
472
|
description: "Generated output label: MCP Tool"
|
|
473
473
|
},
|
|
474
474
|
"composition.apiOverview.output.openapi": {
|
|
@@ -476,7 +476,7 @@ Prioriza la claridad y el ritmo. Cada escena debe comunicar una idea.`,
|
|
|
476
476
|
description: "Generated output label: OpenAPI"
|
|
477
477
|
},
|
|
478
478
|
"composition.socialClip.cta": {
|
|
479
|
-
value: "
|
|
479
|
+
value: "En savoir plus",
|
|
480
480
|
description: "SocialClip default CTA"
|
|
481
481
|
},
|
|
482
482
|
"composition.terminal.title": {
|
|
@@ -486,26 +486,6 @@ Prioriza la claridad y el ritmo. Cada escena debe comunicar una idea.`,
|
|
|
486
486
|
}
|
|
487
487
|
});
|
|
488
488
|
|
|
489
|
-
// src/i18n/messages.ts
|
|
490
|
-
import {
|
|
491
|
-
createI18nFactory
|
|
492
|
-
} from "@contractspec/lib.contracts-spec/translations";
|
|
493
|
-
var factory = createI18nFactory({
|
|
494
|
-
specKey: "video-gen.messages",
|
|
495
|
-
catalogs: [enMessages, frMessages, esMessages]
|
|
496
|
-
});
|
|
497
|
-
var createVideoGenI18n = factory.create;
|
|
498
|
-
var getDefaultI18n = factory.getDefault;
|
|
499
|
-
var resetI18nRegistry = factory.resetRegistry;
|
|
500
|
-
|
|
501
|
-
// src/i18n/locale.ts
|
|
502
|
-
import {
|
|
503
|
-
DEFAULT_LOCALE,
|
|
504
|
-
SUPPORTED_LOCALES,
|
|
505
|
-
resolveLocale,
|
|
506
|
-
isSupportedLocale
|
|
507
|
-
} from "@contractspec/lib.contracts-spec/translations";
|
|
508
|
-
|
|
509
489
|
// src/i18n/keys.ts
|
|
510
490
|
var PROMPT_KEYS = {
|
|
511
491
|
"prompt.script.system": "prompt.script.system",
|
|
@@ -545,6 +525,26 @@ var I18N_KEYS = {
|
|
|
545
525
|
...SCENE_KEYS,
|
|
546
526
|
...COMPOSITION_KEYS
|
|
547
527
|
};
|
|
528
|
+
|
|
529
|
+
// src/i18n/locale.ts
|
|
530
|
+
import {
|
|
531
|
+
DEFAULT_LOCALE,
|
|
532
|
+
isSupportedLocale,
|
|
533
|
+
resolveLocale,
|
|
534
|
+
SUPPORTED_LOCALES
|
|
535
|
+
} from "@contractspec/lib.contracts-spec/translations";
|
|
536
|
+
|
|
537
|
+
// src/i18n/messages.ts
|
|
538
|
+
import {
|
|
539
|
+
createI18nFactory
|
|
540
|
+
} from "@contractspec/lib.contracts-spec/translations";
|
|
541
|
+
var factory = createI18nFactory({
|
|
542
|
+
specKey: "video-gen.messages",
|
|
543
|
+
catalogs: [enMessages, frMessages, esMessages]
|
|
544
|
+
});
|
|
545
|
+
var createVideoGenI18n = factory.create;
|
|
546
|
+
var getDefaultI18n = factory.getDefault;
|
|
547
|
+
var resetI18nRegistry = factory.resetRegistry;
|
|
548
548
|
// src/generators/scene-planner.ts
|
|
549
549
|
class ScenePlanner {
|
|
550
550
|
llm;
|