{ "panelCard": { "play": "Play", "pause": "Pause", "retry": "Retry", "regenerate": "Regenerate", "download": "Download", "edit": "Edit", "save": "Save", "cancel": "Cancel", "generating": "Generating...", "failed": "Failed", "lipSync": "Lip Sync", "lipSyncVideo": "Lip Sync Video", "lipSyncLabel": "Lip Sync", "lipSyncTitle": "Lip Sync", "original": "Original", "synced": "Synced", "videoFixed": "✓ Video", "imagePreview": "Image Preview", "playVoice": "Play Voice", "stopVoice": "Stop", "noVoice": "No voice available", "forceRegenerate": "Force Regenerate (use if stuck)", "regenerateVideo": "Regenerate Video", "lipSyncStatus": "Lip syncing...", "lipSyncInProgress": "Lip syncing in progress...", "lipSyncMayTakeMinutes": "This may take a few minutes", "audioEnabled": "Audio enabled", "audioDisabled": "Audio disabled", "isSynced": "(Synced)", "needVideo": "(Please generate video first)", "needAudio": "(Please generate audio first)", "generateAudio": "Generate Audio", "regenerateLipSync": "Regenerate Lip Sync", "editPrompt": "Edit Prompt", "clickToEditPrompt": "Click to edit prompt...", "shot": "Shot {number}", "unknownShotType": "Unknown", "correspondingText": "Corresponding Text", "generateVideo": "Generate Video", "selectModel": "Select Video Model", "selectVoice": "Select voice to use:", "willAutoPad": "(will auto-pad)", "autoPadding": "Padding", "redo": "Redo", "generatingAudio": "Generating...", "error": { "audioFailed": "Audio generation failed" }, "batchMode": "Batch Mode", "batchModeDesc": "Offline inference, 50% cheaper, completes within 24 hours", "batchModeEnabled": "Batch mode enabled", "batchModeDisabled": "Batch mode disabled" }, "promptModal": { "title": "Edit Shot #{number} Video Prompt", "shotType": "Shot Type:", "duration": "s", "location": "Location:", "locationUnknown": "Unknown", "characters": "Characters:", "charactersNone": "None", "description": "Description:", "text": "Corresponding Text:", "promptLabel": "Video Prompt", "placeholder": "Enter video prompt...", "tip": "Tip: Video models don't recognize character names, use appearance descriptions like \"young man with black hair and blue eyes\" instead of \"Victor\"", "save": "Save", "cancel": "Cancel" }, "toolbar": { "title": "Video Generation", "filter": "Filter", "viewAll": "View All", "showGenerated": "Generated", "showPending": "Pending", "showFailed": "Failed", "totalShots": "Total {count} shots", "generatingShots": "{count} generating", "completedShots": "{count} completed", "failedShots": "{count} failed", "generateAll": "Generate All Videos", "batchConfigTitle": "Batch Generation Settings", "batchConfigDesc": "Choose model and parameters before generating all videos.", "confirmGenerateAll": "Confirm and Generate All", "confirming": "Submitting...", "noVideos": "No videos to download", "downloadCount": "Download {count} videos", "packing": "Packing...", "downloadAll": "Download All", "enterEditor": "Enter Video Editor", "enterEdit": "Enter Editor", "back": "Back" }, "stage": { "title": "Video Generation", "generateAll": "Generate All", "regenerateFailed": "Retry Failed", "downloadAll": "Download All Videos", "enterEditor": "Enter Editor", "lipSyncStatus": "Lip syncing...", "hasSynced": "✓ Generated", "generating": "Generating...", "downloading": "Downloading...", "downloadProgress": "Preparing video files... {current}/{total}", "noVideos": "No generated videos", "scrollTo": "Jump to shot", "error": { "saveFailed": "Failed to save video prompt", "lipSyncFailed": "Lip sync failed", "fetchVideosFailed": "Failed to fetch video list" }, "downloadFailed": "Download failed", "unknownError": "Unknown error" }, "firstLastFrame": { "title": "First/Last Frame Settings", "firstFrame": "First Frame", "lastFrame": "Last Frame", "range": "Shot {from} → Shot {to}", "link": "Link", "unlink": "Unlink", "unlinkAction": "Unlink", "asLastFrameFor": "As last frame for Shot {number}", "asFirstFrameFor": "As first frame for Shot {number}", "customPrompt": "Custom Prompt", "promptPlaceholder": "Enter first/last frame video prompt...", "useDefault": "Use Default", "generate": "Generate First/Last Frame Video", "generated": "First/Last Frame Video Generated", "model": "Model", "withAudio": "With Audio", "audioOn": "On", "audioOff": "Off", "linkToNext": "Link to next panel (First/Last Frame)", "asLastFrame": "As last frame for Panel {number}", "thenTransitionTo": "then transition to" }, "editor": { "alert": { "saveSuccess": "Saved successfully", "saveFailed": "Save failed", "exportStarted": "Export has started. Please wait...", "exportFailed": "Export failed" }, "toolbar": { "back": "← Back", "saveDirty": "Save *", "saved": "Saved", "export": "Export Video" }, "left": { "title": "Media Library", "description": "Clips imported from the video stage will appear here" }, "right": { "title": "Properties", "clipLabel": "Clip:", "clipFallback": "Clip {index}", "durationLabel": "Duration:", "transitionLabel": "Transition to Next Clip", "deleteConfirm": "Delete this clip?", "deleteClip": "Delete Clip", "selectClipHint": "Select a clip to view properties" }, "preview": { "emptyStartEditing": "Add media to start editing" }, "timeline": { "zoomLabel": "Zoom:", "videoTrack": "Video", "emptyHint": "Drag video clips from media library to here", "audioTrack": "Voice", "audioBadge": "A" }, "transition": { "title": "Transition", "duration": "Duration", "options": { "none": "None", "dissolve": "Dissolve", "fade": "Fade", "slide": "Slide" } } }, "errors": { "unknownError": "Unknown error" }, "capability": { "generationMode": "Generation mode", "generateAudio": "Generate audio", "duration": "Duration", "fps": "Frame rate", "resolution": "Resolution", "aspectRatio": "Aspect ratio", "reasoningEffort": "Reasoning effort", "voice": "Voice", "rate": "Rate", "mode": "Mode" }, "unit": { "second": "s", "frame": "fps" }, "common": { "generate": "Generate" } }