release: opensource snapshot 2026-02-27 19:25:00
This commit is contained in:
18
messages/en/actions.json
Normal file
18
messages/en/actions.json
Normal file
@@ -0,0 +1,18 @@
|
||||
{
|
||||
"storyboard": "Storyboard",
|
||||
"storyboard_candidate": "Storyboard Candidate",
|
||||
"character": "Character",
|
||||
"location": "Location",
|
||||
"video": "Video",
|
||||
"analyze": "Analyze",
|
||||
"analyze_character": "Character Analysis",
|
||||
"analyze_location": "Location Analysis",
|
||||
"clips": "Clip Splitting",
|
||||
"storyboard_text_plan": "Storyboard Planning",
|
||||
"storyboard_text_detail": "Storyboard Details",
|
||||
"tts": "Text-to-Speech",
|
||||
"regenerate": "Regenerate",
|
||||
"voice-generate": "Voice Generation",
|
||||
"voice-design": "Voice Design",
|
||||
"lip-sync": "Lip Sync"
|
||||
}
|
||||
107
messages/en/apiConfig.json
Normal file
107
messages/en/apiConfig.json
Normal file
@@ -0,0 +1,107 @@
|
||||
{
|
||||
"title": "API Configuration",
|
||||
"saving": "Saving...",
|
||||
"saved": "Saved",
|
||||
"saveFailed": "Save failed",
|
||||
"connected": "Connected",
|
||||
"notConfigured": "Not configured",
|
||||
"configure": "Configure",
|
||||
"connect": "Connect",
|
||||
"show": "Show",
|
||||
"hide": "Hide",
|
||||
"capability": "Models",
|
||||
"default": "Default",
|
||||
"delete": "Delete",
|
||||
"add": "Add",
|
||||
"cancel": "Cancel",
|
||||
"save": "Save",
|
||||
"comingSoon": "Coming soon",
|
||||
"priceInput": "Input {amount}",
|
||||
"priceOutput": "Output {amount}",
|
||||
"priceUnavailable": "N/A",
|
||||
"fillComplete": "Please fill in all fields",
|
||||
"fillPricing": "Please fill in pricing information",
|
||||
"pricingInputLabel": "Input price",
|
||||
"pricingOutputLabel": "Output price",
|
||||
"modelIdExists": "Model ID already exists",
|
||||
"modelDisplayName": "Display Name (for your reference)",
|
||||
"modelActualId": "Actual Model ID (API parameter)",
|
||||
"noModelsForProvider": "No models configured for this provider",
|
||||
"defaultModels": "Default Model Configuration",
|
||||
"textDefault": "Text Model",
|
||||
"characterDefault": "Character Model",
|
||||
"locationDefault": "Location Model",
|
||||
"storyboardDefault": "Storyboard Model",
|
||||
"editDefault": "Edit Model",
|
||||
"videoDefault": "Video Model",
|
||||
"lipsyncDefault": "Lip Sync Model",
|
||||
"selectDefault": "Select",
|
||||
"providerPool": "Provider Pool",
|
||||
"providerIdExists": "Provider ID already exists",
|
||||
"presetProviderCannotDelete": "Preset providers cannot be deleted",
|
||||
"confirmDeleteProvider": "Are you sure you want to delete this provider?",
|
||||
"presetModelCannotDelete": "Preset models cannot be deleted",
|
||||
"confirmDeleteModel": "Are you sure you want to delete this model?",
|
||||
"addGeminiProvider": "Add Model Provider",
|
||||
"baseUrl": "Base URL",
|
||||
"configureBaseUrl": "Configure URL",
|
||||
"addModel": "Add Model",
|
||||
"batchModeHalfPrice": "Batch mode (50% price)",
|
||||
"typeText": "Text",
|
||||
"typeImage": "Image",
|
||||
"typeVideo": "Video",
|
||||
"typeAudio": "Audio",
|
||||
"apiKeyLabel": "API Key",
|
||||
"apiType": "API Type",
|
||||
"apiTypeGeminiCompatible": "Gemini Compatible",
|
||||
"apiTypeOpenAICompatible": "OpenAI Compatible",
|
||||
"apiTypeGeminiHint": "Uses Google SDK",
|
||||
"otherProviders": "Other Settings",
|
||||
"audioCategory": "Audio",
|
||||
"audioAndLipsync": "Audio & Lip Sync",
|
||||
"configureApiKey": "Configure API Key",
|
||||
"enterApiKey": "Enter API Key",
|
||||
"tabs": {
|
||||
"llm": "Text Models",
|
||||
"image": "Image Models",
|
||||
"video": "Video Models",
|
||||
"audio": "Audio Models",
|
||||
"other": "Other"
|
||||
},
|
||||
"sections": {
|
||||
"llmApiKeys": "Text Model API Keys",
|
||||
"imageApiKeys": "Image Model API Keys",
|
||||
"videoApiKeys": "Video Model API Keys",
|
||||
"audioApiKey": "Audio Model API Key",
|
||||
"lipsyncApiKey": "Lip Sync API Key"
|
||||
},
|
||||
"defaultModel": {
|
||||
"title": "Default Model",
|
||||
"hint": "New projects and Asset Hub will use this default configuration",
|
||||
"notSelected": "Not selected",
|
||||
"analysis": "Analysis Model",
|
||||
"image": "Image Generation",
|
||||
"video": "Video Generation",
|
||||
"resolution": "Image Resolution"
|
||||
},
|
||||
"viewTutorial": "View Tutorial",
|
||||
"tutorial": {
|
||||
"button": "Tutorial",
|
||||
"title": "Setup Guide",
|
||||
"subtitle": "Follow these steps to complete the configuration",
|
||||
"close": "Got it",
|
||||
"openLink": "Open link",
|
||||
"steps": {
|
||||
"ark_step1": "Go to the Volcano Engine console to create an API Key",
|
||||
"ark_step2": "On the model management page, click 'Enable All Models' button in the top right corner",
|
||||
"openrouter_step1": "Go to OpenRouter platform and create an API Key (must select models with image capabilities)",
|
||||
"fal_step1": "Go to FAL platform and create an API Key",
|
||||
"google_step1": "Go to Google AI Studio and create an API Key",
|
||||
"minimax_step1": "Go to MiniMax platform and get an API Key",
|
||||
"vidu_step1": "Go to the Vidu platform and click 'Create API Key'",
|
||||
"openai_compatible_step1": "Enter any OpenAI-compatible service Base URL and API key",
|
||||
"gemini_compatible_step1": "Enter any Gemini-compatible service Base URL and API key",
|
||||
"qwen_step1": "Go to Alibaba Cloud Bailian platform and get an API Key"
|
||||
}
|
||||
}
|
||||
}
|
||||
9
messages/en/apiTypes.json
Normal file
9
messages/en/apiTypes.json
Normal file
@@ -0,0 +1,9 @@
|
||||
{
|
||||
"image": "Image Generation",
|
||||
"video": "Video Generation",
|
||||
"text": "Text Analysis",
|
||||
"tts": "Text-to-Speech",
|
||||
"voice": "Voice Dubbing",
|
||||
"voice_design": "Voice Design",
|
||||
"lip_sync": "Lip Sync"
|
||||
}
|
||||
101
messages/en/assetHub.json
Normal file
101
messages/en/assetHub.json
Normal file
@@ -0,0 +1,101 @@
|
||||
{
|
||||
"title": "Asset Hub",
|
||||
"description": "Manage your global character and location assets",
|
||||
"modelHint": "Asset Hub uses default models. To change settings, go to",
|
||||
"modelHintLink": "API Settings",
|
||||
"modelHintSuffix": "",
|
||||
"folders": "Folders",
|
||||
"noFolders": "No folders yet",
|
||||
"allAssets": "All Assets",
|
||||
"characters": "Characters",
|
||||
"locations": "Locations",
|
||||
"voices": "Voices",
|
||||
"addCharacter": "Add Character",
|
||||
"addLocation": "Add Location",
|
||||
"addVoice": "Add Voice",
|
||||
"newFolder": "New Folder",
|
||||
"editFolder": "Edit Folder",
|
||||
"deleteFolder": "Delete Folder",
|
||||
"folderName": "Folder Name",
|
||||
"folderNamePlaceholder": "Enter folder name",
|
||||
"emptyState": "No assets yet",
|
||||
"emptyStateHint": "Click the buttons above to add characters or locations",
|
||||
"generate": "Generate",
|
||||
"generating": "Generating...",
|
||||
"regenerate": "Regenerate",
|
||||
"undo": "Undo",
|
||||
"delete": "Delete",
|
||||
"cancel": "Cancel",
|
||||
"save": "Save",
|
||||
"create": "Create",
|
||||
"confirmDeleteFolder": "Delete this folder? Assets inside will be moved to uncategorized.",
|
||||
"confirmDeleteCharacter": "Delete this character? This action cannot be undone.",
|
||||
"confirmDeleteLocation": "Delete this location? This action cannot be undone.",
|
||||
"confirmDeleteVoice": "Delete this voice? This action cannot be undone.",
|
||||
"voiceName": "Voice Name",
|
||||
"voiceNamePlaceholder": "Enter voice name",
|
||||
"voiceNameRequired": "Please enter a voice name",
|
||||
"voicePickerTitle": "Select from Voice Library",
|
||||
"voicePickerEmpty": "No voices yet. Please create a voice first.",
|
||||
"voicePickerConfirm": "Confirm Selection",
|
||||
"pagination": {
|
||||
"previous": "Previous",
|
||||
"next": "Next"
|
||||
},
|
||||
"common": {
|
||||
"cancel": "Cancel"
|
||||
},
|
||||
"generateFailed": "Generation failed",
|
||||
"selectFailed": "Selection failed",
|
||||
"uploadFailed": "Upload failed",
|
||||
"editFailed": "Edit failed",
|
||||
"saveVoiceFailed": "Failed to save voice",
|
||||
"saveVoiceFailedDetail": "Failed to save voice: {error}",
|
||||
"bindVoiceFailed": "Failed to bind voice",
|
||||
"bindVoiceFailedDetail": "Failed to bind voice: {error}",
|
||||
"voiceDesignSaved": "AI-designed voice has been set for {name}",
|
||||
"appearanceLabel": "Appearance {index}",
|
||||
"voiceSettings": {
|
||||
"title": "Voice",
|
||||
"noVoice": "No voice",
|
||||
"previewFailed": "Preview failed: {error}",
|
||||
"uploadFailed": "Upload audio failed: {error}",
|
||||
"uploading": "Uploading...",
|
||||
"uploaded": "Uploaded",
|
||||
"uploadAudio": "Upload Audio",
|
||||
"aiDesign": "AI Design",
|
||||
"voiceLibrary": "Voice Library",
|
||||
"pause": "Pause",
|
||||
"preview": "Preview Voice"
|
||||
},
|
||||
"modal": {
|
||||
"newCharacter": "New Character",
|
||||
"confirm": "Confirm",
|
||||
"processing": "Processing...",
|
||||
"newLocation": "New Location",
|
||||
"addCharacter": "Create Character",
|
||||
"addLocation": "Create Location",
|
||||
"adding": "Creating...",
|
||||
"aiDesign": "AI Design",
|
||||
"aiDesignPlaceholder": "e.g., A beautiful woman in a red traditional dress with flowing long hair",
|
||||
"aiDesignLocationPlaceholder": "e.g., A classical Chinese garden with rockery and pavilions",
|
||||
"aiDesignTip": "AI will generate a detailed description based on your input. You can edit it after generation.",
|
||||
"aiDesignLocationTip": "AI will generate a detailed scene description based on your input",
|
||||
"generate": "Generate",
|
||||
"generating": "Generating...",
|
||||
"nameLabel": "Character Name",
|
||||
"namePlaceholder": "Enter character name",
|
||||
"descLabel": "Character Description",
|
||||
"descPlaceholder": "Describe the character's appearance, clothing, hairstyle, etc...",
|
||||
"locationNameLabel": "Location Name",
|
||||
"locationNamePlaceholder": "Enter location name",
|
||||
"locationSummaryLabel": "Location Description",
|
||||
"locationSummaryPlaceholder": "Describe the environment, atmosphere, features, etc...",
|
||||
"referenceUpload": "Upload Reference",
|
||||
"referenceUploadTip": "Upload a character image, AI will convert it to a three-view design sheet",
|
||||
"convertToCharacter": "Convert to 3-View",
|
||||
"converting": "Converting...",
|
||||
"dropOrClick": "Drop image or click to upload",
|
||||
"supportedFormats": "JPG, PNG supported"
|
||||
}
|
||||
}
|
||||
14
messages/en/assetLibrary.json
Normal file
14
messages/en/assetLibrary.json
Normal file
@@ -0,0 +1,14 @@
|
||||
{
|
||||
"title": "Asset Library",
|
||||
"button": "Assets",
|
||||
"characters": "Characters",
|
||||
"locations": "Locations",
|
||||
"noCharacters": "No characters",
|
||||
"noLocations": "No locations",
|
||||
"addCharacter": "Add Character",
|
||||
"addLocation": "Add Location",
|
||||
"generateImage": "Generate Image",
|
||||
"regenerateImage": "Regenerate",
|
||||
"analyzeAssets": "Analyze Assets",
|
||||
"analyzing": "Analyzing..."
|
||||
}
|
||||
78
messages/en/assetModal.json
Normal file
78
messages/en/assetModal.json
Normal file
@@ -0,0 +1,78 @@
|
||||
{
|
||||
"character": {
|
||||
"title": "New Character",
|
||||
"name": "Character Name",
|
||||
"namePlaceholder": "Enter character name",
|
||||
"modeReference": "Reference Image",
|
||||
"modeDescription": "Description",
|
||||
"isSubAppearance": "This is a sub-appearance",
|
||||
"isSubAppearanceHint": "Add a new appearance state for an existing character",
|
||||
"uploadReference": "Upload Reference",
|
||||
"pasteHint": "Ctrl+V to paste",
|
||||
"dropOrClick": "Click to upload or drag image",
|
||||
"supportedFormats": "Supports JPG, PNG formats",
|
||||
"nameRequired": "Please enter character name first to use reference conversion",
|
||||
"convertToSheet": "Convert to standard character sheet",
|
||||
"referenceTip": "Upload any character image, AI will generate a standard character sheet",
|
||||
"description": "Character Description",
|
||||
"modifyDescription": "Modify Description",
|
||||
"descPlaceholder": "Enter character appearance description...",
|
||||
"modifyDescriptionPlaceholder": "Describe how to modify the primary appearance, e.g. formal outfit, post-battle injuries, add a cloak...",
|
||||
"selectMainCharacter": "Select Main Character",
|
||||
"selectCharacterPlaceholder": "Please select a character...",
|
||||
"appearancesCount": "{count} appearances",
|
||||
"changeReason": "Appearance Change Reason",
|
||||
"changeReasonPlaceholder": "e.g. injured after battle, changed into formal wear for a banquet...",
|
||||
"defaultDescription": "{name}'s character profile",
|
||||
"generationMode": "Generation Mode",
|
||||
"directGenerate": "Direct Generate",
|
||||
"extractPrompt": "Extract Prompt",
|
||||
"extractFirst": "Extract Description First",
|
||||
"directGenerateDesc": "Directly generate character sheet from reference (img2img)",
|
||||
"extractPromptDesc": "Extract description from image first, then generate (txt2img)",
|
||||
"maxReferenceImages": "Up to 5 reference images",
|
||||
"selectedCount": "Selected {count}/5 images",
|
||||
"extractDescription": "Extract Description",
|
||||
"extracting": "Extracting...",
|
||||
"extractedDescription": "Extracted Description (Editable)",
|
||||
"reExtract": "Re-extract",
|
||||
"editHint": "Edit the description, then click below to generate",
|
||||
"generateFromDescription": "Generate from Description",
|
||||
"textToImageTip": "Text-to-image mode: Generate from extracted description",
|
||||
"pleaseExtractFirst": "Please extract character description first"
|
||||
},
|
||||
"location": {
|
||||
"title": "New Location",
|
||||
"name": "Location Name",
|
||||
"namePlaceholder": "Enter location name",
|
||||
"description": "Location Description",
|
||||
"descPlaceholder": "Enter location description..."
|
||||
},
|
||||
"artStyle": {
|
||||
"title": "Art Style"
|
||||
},
|
||||
"aiDesign": {
|
||||
"title": "AI Design",
|
||||
"placeholder": "Describe the character you want...",
|
||||
"placeholderLocation": "Describe the scene atmosphere...",
|
||||
"generating": "Designing...",
|
||||
"generate": "Generate",
|
||||
"tip": "Enter a simple description, AI will generate detailed settings"
|
||||
},
|
||||
"common": {
|
||||
"creating": "Creating...",
|
||||
"create": "Create",
|
||||
"cancel": "Cancel",
|
||||
"adding": "Adding...",
|
||||
"add": "Add",
|
||||
"optional": "(Optional)"
|
||||
},
|
||||
"errors": {
|
||||
"uploadFailed": "Upload failed",
|
||||
"extractDescriptionFailed": "Failed to extract description",
|
||||
"createFailed": "Creation failed",
|
||||
"aiDesignFailed": "AI design failed",
|
||||
"addSubAppearanceFailed": "Failed to add sub-appearance",
|
||||
"insufficientBalance": "Insufficient balance"
|
||||
}
|
||||
}
|
||||
18
messages/en/assetPicker.json
Normal file
18
messages/en/assetPicker.json
Normal file
@@ -0,0 +1,18 @@
|
||||
{
|
||||
"selectCharacter": "Select Character from Asset Hub",
|
||||
"selectLocation": "Select Location from Asset Hub",
|
||||
"selectVoice": "Select Voice from Asset Hub",
|
||||
"searchPlaceholder": "Search by name or folder...",
|
||||
"noAssets": "No assets in Asset Hub",
|
||||
"createInAssetHub": "Please create characters/locations/voices in Asset Hub first",
|
||||
"noSearchResults": "No matching assets found",
|
||||
"appearances": "appearances",
|
||||
"images": "images",
|
||||
"cancel": "Cancel",
|
||||
"confirmCopy": "Confirm Copy",
|
||||
"copyFromGlobal": "Copy from Asset Hub",
|
||||
"copySuccess": "Copy successful",
|
||||
"copyFailed": "Copy failed",
|
||||
"preview": "Preview",
|
||||
"stop": "Stop"
|
||||
}
|
||||
321
messages/en/assets.json
Normal file
321
messages/en/assets.json
Normal file
@@ -0,0 +1,321 @@
|
||||
{
|
||||
"stage": {
|
||||
"title": "Assets Confirmation",
|
||||
"characters": "Characters",
|
||||
"locations": "Locations",
|
||||
"analyze": "Analyze Assets",
|
||||
"analyzing": "Analyzing...",
|
||||
"generateAll": "Generate All",
|
||||
"noCharacters": "No characters",
|
||||
"noLocations": "No locations",
|
||||
"confirmProfiles": "Character Profiles to Confirm",
|
||||
"confirmHint": "Please confirm these profiles before generating descriptions",
|
||||
"confirmAll": "Confirm All ({count})",
|
||||
"assetsTitle": "Asset Analysis",
|
||||
"characterAssets": "Character Assets",
|
||||
"locationAssets": "Location Assets",
|
||||
"counts": "{characterCount} Characters, {appearanceCount} Appearances",
|
||||
"locationCounts": "{count} Locations",
|
||||
"undoFailed": "Undo failed",
|
||||
"undoFailedError": "Undo failed: {error}",
|
||||
"undoSuccess": "Reverted to previous version",
|
||||
"editFailed": "Edit failed",
|
||||
"editFailedError": "Image edit failed: {error}",
|
||||
"updateSuccess": "Description updated successfully"
|
||||
},
|
||||
"character": {
|
||||
"add": "Add Character",
|
||||
"edit": "Edit Character",
|
||||
"delete": "Delete Character",
|
||||
"deleteConfirm": "Delete this character?",
|
||||
"deleteAppearanceConfirm": "Delete this appearance?",
|
||||
"deleteFailed": "Delete failed: {error}",
|
||||
"deleteWhole": "Delete Whole Character",
|
||||
"deleteOptions": "Delete Options",
|
||||
"name": "Character Name",
|
||||
"description": "Appearance Description",
|
||||
"generateImage": "Generate Profile",
|
||||
"regenerateImage": "Regenerate",
|
||||
"generate": "Generate",
|
||||
"regenerating": "Generating...",
|
||||
"profile": "Profile",
|
||||
"voiceSettings": "Voice Settings",
|
||||
"speaker": "Speaker",
|
||||
"selectSpeaker": "Select Speaker",
|
||||
"noSpeaker": "Not Set",
|
||||
"primary": "Primary",
|
||||
"secondary": "Secondary",
|
||||
"generateFromPrimary": "Generate from Primary",
|
||||
"selectPrimaryFirst": "Select primary first",
|
||||
"editing": "Editing...",
|
||||
"confirming": "Confirming...",
|
||||
"assetCount": "{count} Appearances",
|
||||
"characterCount": "{count} Characters",
|
||||
"updateFailed": "Update description failed",
|
||||
"addFailed": "Add character failed",
|
||||
"copyFromGlobal": "Copy from Asset Hub"
|
||||
},
|
||||
"location": {
|
||||
"add": "Add Location",
|
||||
"edit": "Edit Location",
|
||||
"delete": "Delete Location",
|
||||
"deleteConfirm": "Delete this location?",
|
||||
"deleteFailed": "Delete failed: {error}",
|
||||
"name": "Location Name",
|
||||
"summary": "Summary",
|
||||
"summaryPlaceholder": "Usage/associations, e.g.: John's master bedroom",
|
||||
"description": "Location Description",
|
||||
"generateImage": "Generate Image",
|
||||
"regenerateImage": "Regenerate",
|
||||
"updateFailed": "Update description failed",
|
||||
"addFailed": "Add location failed"
|
||||
},
|
||||
"image": {
|
||||
"upload": "Upload Image",
|
||||
"uploadReplace": "Upload Replacement",
|
||||
"uploadFailed": "Upload Failed",
|
||||
"uploadFailedError": "Upload failed: {error}",
|
||||
"uploadSuccess": "Upload Success!",
|
||||
"edit": "Edit Image",
|
||||
"editPrompt": "Edit Prompt",
|
||||
"undo": "Undo to Previous Version",
|
||||
"undoConfirm": "Are you sure you want to undo to the previous version? Current version will be deleted.",
|
||||
"regenerateGroup": "Regenerate Group",
|
||||
"regenerateStuck": "Click to regenerate (if stuck)",
|
||||
"selectTip": "Once selected and confirmed, you can edit and modify the image",
|
||||
"selectFirst": "Please select an image first",
|
||||
"useThis": "Use this option",
|
||||
"optionAlt": "{name} - Option {number}",
|
||||
"optionNumber": "Option {number}",
|
||||
"optionSelected": "Selected Option {number}",
|
||||
"confirmOption": "Confirm Option {number}",
|
||||
"deleteOthersHint": "(delete others)",
|
||||
"confirmSuccess": "Selection confirmed",
|
||||
"confirmFailed": "Confirm selection failed: {error}",
|
||||
"selectFailed": "Select image failed: {error}",
|
||||
"cancelSelection": "Cancel Selection",
|
||||
"deleteThis": "Delete this appearance",
|
||||
"undoFailed": "Undo failed",
|
||||
"undoSuccess": "✓ Reverted to previous version",
|
||||
"editFailed": "Image edit failed",
|
||||
"editSuccess": "Image edit successful",
|
||||
"regenerateFailed": "Regenerate failed: {error}"
|
||||
},
|
||||
"modal": {
|
||||
"newCharacter": "New Character",
|
||||
"addSubAppearance": "Add Sub-Appearance",
|
||||
"aiDesign": "AI Design",
|
||||
"aiDesigning": "Designing...",
|
||||
"designInstruction": "Please enter design instruction",
|
||||
"enterNameDesc": "Please enter character name and description",
|
||||
"selectCharacter": "Please select a character",
|
||||
"enterChangeReason": "Please enter change reason",
|
||||
"enterSubDesc": "Please enter appearance description",
|
||||
"insufficientBalance": "Insufficient Balance\n\n{error}",
|
||||
"designFailed": "AI Design Failed: {error}",
|
||||
"addFailed": "Add Failed: {error}",
|
||||
"aiDesignPlaceholderNew": "e.g. A 20-year-old female mage, blonde hair, blue eyes...",
|
||||
"aiDesignPlaceholderSub": "e.g. Changed into black combat gear...",
|
||||
"aiTipNew": "Describe the character, AI will generate details",
|
||||
"aiTipSub": "Describe the new state, AI will generate sub-appearance description",
|
||||
"nameLabel": "Character Name",
|
||||
"namePlaceholder": "Enter name...",
|
||||
"descLabel": "Appearance Description",
|
||||
"descPlaceholder": "Enter description...",
|
||||
"selectLabel": "Select Character",
|
||||
"selectPlaceholder": "-- Select Character --",
|
||||
"existingAppearances": "Existing:",
|
||||
"reasonLabel": "Change Reason",
|
||||
"reasonPlaceholder": "e.g. After changing clothes, Injured...",
|
||||
"reasonTip": "Briefly describe the difference from primary appearance",
|
||||
"subDescPlaceholder": "Describe only the changes...",
|
||||
"subDescTip": "Only describe changes (clothes, state), face/body inherits from primary",
|
||||
"adding": "Adding...",
|
||||
"insufficientBalanceDefault": "Insufficient balance, please top up to continue",
|
||||
"addFailedGeneric": "Add Failed",
|
||||
"appearancesCount": "Appearances",
|
||||
"addCharacter": "Add Character",
|
||||
"addLocation": "Add Location",
|
||||
"aiDesignTip": "Describe the scene you want, AI will generate name and details",
|
||||
"designing": "AI designing...",
|
||||
"saveName": "Save Name",
|
||||
"saveOnly": "Save Only",
|
||||
"sceneDescription": "Scene Description",
|
||||
"scenePrompt": "Scene Description Prompt",
|
||||
"appearancePrompt": "Appearance Description Prompt",
|
||||
"smartModify": "Smart Modify",
|
||||
"modifyPlaceholder": "e.g.: Change to night, add moonlight, add curtains...",
|
||||
"modifyPlaceholderCharacter": "e.g.: Change hair to blonde, height to 180cm, wear black suit...",
|
||||
"modifying": "Smart modifying...",
|
||||
"modifyFailed": "Modification failed",
|
||||
"editCharacter": "Edit Character",
|
||||
"editLocation": "Edit Location",
|
||||
"saveAndGenerate": "Save and Generate",
|
||||
"generatingAutoClose": "Generating image, will close automatically when done...",
|
||||
"aiLocationTip": "Enter what you want to modify, AI will adjust the scene description",
|
||||
"aiDesignPlaceholderLocation": "e.g. An ancient magical library, towering bookshelves, dim candlelight, mysterious atmosphere...",
|
||||
"artStyle": "Art Style",
|
||||
"generate": "Generate",
|
||||
"introduction": "Character Introduction",
|
||||
"introductionPlaceholder": "e.g.: The protagonist; 'I' refers to her. Others call her 'Snow' or 'Sister Snow'...",
|
||||
"introductionTip": "Describe the character's role in the story, narrative perspective (who 'I' refers to), how others address them",
|
||||
"saveIntroduction": "Save Introduction"
|
||||
},
|
||||
"toolbar": {
|
||||
"filter": "Filter",
|
||||
"viewAll": "View All",
|
||||
"showGenerated": "Generated",
|
||||
"showPending": "Pending",
|
||||
"assetManagement": "Asset Management",
|
||||
"assetCount": "{total} assets ({appearances} character appearances + {locations} locations)",
|
||||
"globalAnalyze": "Global Analysis",
|
||||
"globalAnalyzing": "Performing global asset analysis...",
|
||||
"globalAnalyzingHint": "Please don't refresh. Results will appear automatically when complete",
|
||||
"globalAnalyzingTip": "Analyzing all episodes, extracting characters and locations...",
|
||||
"globalAnalyzeHint": "Analyze all episodes to extract characters and locations",
|
||||
"globalAnalyzeSuccess": "Global analysis complete: {characters} new characters, {locations} new locations",
|
||||
"globalAnalyzeFailed": "Global analysis failed",
|
||||
"generateAll": "Generate All Images",
|
||||
"generateAllNoop": "All assets already have images, nothing to generate",
|
||||
"generating": "Generating ({current}/{total})",
|
||||
"regenerateAll": "Regenerate All",
|
||||
"regenerateAllConfirm": "Regenerate images for all assets? This will overwrite existing images.",
|
||||
"noAssetsToGenerate": "No assets available for generation",
|
||||
"regenerateAllHint": "Regenerate all asset images (overwrite existing)"
|
||||
},
|
||||
"common": {
|
||||
"actions": "Actions",
|
||||
"add": "Add",
|
||||
"cancel": "Cancel",
|
||||
"confirm": "Confirm",
|
||||
"copy": "Copy",
|
||||
"delete": "Delete",
|
||||
"download": "Download",
|
||||
"edit": "Edit",
|
||||
"generate": "Generate",
|
||||
"generateFailed": "Generation Failed",
|
||||
"loading": "Loading...",
|
||||
"none": "None",
|
||||
"preview": "Preview",
|
||||
"refresh": "Refresh",
|
||||
"regenerate": "Regenerate",
|
||||
"save": "Save",
|
||||
"status": "Status",
|
||||
"submitFailed": "Submit Failed",
|
||||
"upload": "Upload",
|
||||
"unknownError": "Unknown error"
|
||||
},
|
||||
"video": {
|
||||
"panelCard": {
|
||||
"generating": "Generating...",
|
||||
"editPrompt": "Edit Prompt"
|
||||
}
|
||||
},
|
||||
"smartImport": {
|
||||
"preview": {
|
||||
"saving": "Saving..."
|
||||
}
|
||||
},
|
||||
"storyboard": {
|
||||
"group": {
|
||||
"generating": "Generating..."
|
||||
}
|
||||
},
|
||||
"errors": {
|
||||
"saveFailed": "Save Failed, please retry",
|
||||
"failed": "failed, please retry",
|
||||
"insufficientBalance": "Insufficient balance",
|
||||
"aiDesignFailed": "AI design failed",
|
||||
"createFailed": "Creation failed"
|
||||
},
|
||||
"assetLibrary": {
|
||||
"button": "Asset Library",
|
||||
"title": "Asset Library",
|
||||
"copySuccessCharacter": "Character appearance copied successfully",
|
||||
"copySuccessLocation": "Location image copied successfully",
|
||||
"copySuccessVoice": "Voice copied successfully",
|
||||
"copyFailed": "Copy failed: {error}"
|
||||
},
|
||||
"tts": {
|
||||
"voiceDesignSaved": "AI-designed voice has been set for {name}",
|
||||
"saveVoiceDesignFailed": "Failed to save voice design: {error}",
|
||||
"title": "Voice",
|
||||
"noVoice": "No voice",
|
||||
"previewFailed": "Preview failed: {error}",
|
||||
"uploadFailed": "Upload audio failed: {error}",
|
||||
"uploading": "Uploading...",
|
||||
"uploaded": "Uploaded",
|
||||
"uploadAudio": "Upload Audio",
|
||||
"pause": "Pause",
|
||||
"preview": "Preview Voice"
|
||||
},
|
||||
"characterProfile": {
|
||||
"importance": {
|
||||
"S": "S-Level - Main Protagonist",
|
||||
"A": "A-Level - Core Supporting",
|
||||
"B": "B-Level - Important Supporting",
|
||||
"C": "C-Level - Minor Character",
|
||||
"D": "D-Level - Extra"
|
||||
},
|
||||
"costumeLevel": {
|
||||
"5": "Royal/Luxury",
|
||||
"4": "Noble/Elite",
|
||||
"3": "Professional/Quality",
|
||||
"2": "Casual/Normal",
|
||||
"1": "Plain/Uniform"
|
||||
},
|
||||
"importanceLevel": "Character Importance Level",
|
||||
"characterArchetype": "Character Archetype",
|
||||
"archetypePlaceholder": "e.g.: Domineering CEO, Schemer",
|
||||
"personalityTags": "Personality Tags",
|
||||
"addTagPlaceholder": "Add tag",
|
||||
"costumeLevelLabel": "Costume Level",
|
||||
"suggestedColors": "Suggested Colors",
|
||||
"colorPlaceholder": "e.g.: Navy blue, Gold",
|
||||
"primaryMarker": "Primary Identifier",
|
||||
"markerNote": "(Recommended for S/A level)",
|
||||
"markingsPlaceholder": "e.g.: Tear-shaped mole, Silver earring",
|
||||
"visualKeywords": "Visual Keywords",
|
||||
"keywordsPlaceholder": "e.g.: Elite aura, Ascetic style",
|
||||
"editDialogTitle": "Edit Character Profile - {name}",
|
||||
"confirmAndGenerate": "Confirm & Generate",
|
||||
"useExisting": "Use Existing",
|
||||
"editProfile": "Edit Profile",
|
||||
"delete": "Delete Character",
|
||||
"summary": {
|
||||
"gender": "Gender:",
|
||||
"age": "Age:",
|
||||
"era": "Era:",
|
||||
"class": "Class:",
|
||||
"occupation": "Occupation:",
|
||||
"personality": "Personality:",
|
||||
"costume": "Costume:",
|
||||
"identifier": "Identifier:"
|
||||
},
|
||||
"parseFailed": "Failed to parse profile data",
|
||||
"confirmSuccessGenerating": "✓ Profile confirmed. Visual description generation started",
|
||||
"confirmFailed": "Confirm failed: {error}",
|
||||
"noPendingCharacters": "No pending characters to confirm",
|
||||
"batchConfirmPrompt": "Generate visual descriptions for {count} characters?",
|
||||
"batchConfirmSuccess": "✓ Visual descriptions generated for {count} characters",
|
||||
"batchConfirmFailed": "Batch confirmation failed: {error}",
|
||||
"deleteConfirm": "Delete this character? This action cannot be undone.",
|
||||
"deleteSuccess": "✓ Character deleted",
|
||||
"deleteFailed": "Delete failed: {error}"
|
||||
},
|
||||
"imageEdit": {
|
||||
"editCharacterImage": "Edit Character Image",
|
||||
"editLocationImage": "Edit Location Image",
|
||||
"characterLabel": "Character: {name}",
|
||||
"locationLabel": "Location: {name}",
|
||||
"editInstruction": "Edit Instruction",
|
||||
"subtitle": "Enter an edit instruction and optionally upload reference images",
|
||||
"characterPlaceholder": "Describe what you want to change, e.g.: Change hair to blonde, add glasses, change to casual clothes...",
|
||||
"locationPlaceholder": "Describe what you want to change, e.g.: Add more trees, change to night scene...",
|
||||
"storyboardPlaceholder": "Describe what you want to change, e.g.: Change background color, adjust character expression...",
|
||||
"noAssetHint": "No assets, click \"Add Asset\" to select",
|
||||
"referenceImages": "Reference Images",
|
||||
"referenceImagesHint": "(optional, paste supported)",
|
||||
"startEditing": "Start Editing"
|
||||
}
|
||||
}
|
||||
29
messages/en/auth.json
Normal file
29
messages/en/auth.json
Normal file
@@ -0,0 +1,29 @@
|
||||
{
|
||||
"welcomeBack": "Welcome Back",
|
||||
"loginTo": "Sign in to waoowaoo",
|
||||
"createAccount": "Create Account",
|
||||
"joinPlatform": "Join waoowaoo",
|
||||
"phoneNumber": "Username",
|
||||
"password": "Password",
|
||||
"confirmPassword": "Confirm Password",
|
||||
"phoneNumberPlaceholder": "Enter your username",
|
||||
"passwordPlaceholder": "Enter your password",
|
||||
"passwordMinPlaceholder": "Enter password (at least 6 characters)",
|
||||
"confirmPasswordPlaceholder": "Re-enter your password",
|
||||
"loginButton": "Sign In",
|
||||
"loginButtonLoading": "Signing in...",
|
||||
"signupButton": "Sign Up",
|
||||
"signupButtonLoading": "Signing up...",
|
||||
"noAccount": "Don't have an account?",
|
||||
"hasAccount": "Already have an account?",
|
||||
"signupNow": "Sign Up Now",
|
||||
"signinNow": "Sign In Now",
|
||||
"backToHome": "← Back to Home",
|
||||
"loginFailed": "Login failed, please check your phone number and password",
|
||||
"loginError": "An error occurred during login",
|
||||
"passwordMismatch": "Passwords do not match",
|
||||
"passwordTooShort": "Password must be at least 6 characters",
|
||||
"signupSuccess": "Registration successful! Redirecting to login page...",
|
||||
"signupFailed": "Registration failed",
|
||||
"signupError": "An error occurred during registration"
|
||||
}
|
||||
15
messages/en/billing.json
Normal file
15
messages/en/billing.json
Normal file
@@ -0,0 +1,15 @@
|
||||
{
|
||||
"transactionType": "Transaction Type",
|
||||
"startDate": "Start Date",
|
||||
"endDate": "End Date",
|
||||
"all": "All",
|
||||
"income": "Income",
|
||||
"expense": "Expense",
|
||||
"reset": "Reset",
|
||||
"filter": "Filter",
|
||||
"noRecords": "No records",
|
||||
"accountRecharge": "Account Recharge",
|
||||
"serviceConsumption": "Service Consumption",
|
||||
"balance": "Balance",
|
||||
"allTypes": "All Types"
|
||||
}
|
||||
134
messages/en/common.json
Normal file
134
messages/en/common.json
Normal file
@@ -0,0 +1,134 @@
|
||||
{
|
||||
"appName": "waoowaoo",
|
||||
"betaVersion": "Beta v0.1",
|
||||
"loading": "Loading...",
|
||||
"save": "Save",
|
||||
"cancel": "Cancel",
|
||||
"confirm": "Confirm",
|
||||
"delete": "Delete",
|
||||
"edit": "Edit",
|
||||
"search": "Search",
|
||||
"clear": "Clear",
|
||||
"close": "Close",
|
||||
"back": "Back",
|
||||
"next": "Next",
|
||||
"previous": "Previous",
|
||||
"submit": "Submit",
|
||||
"reset": "Reset",
|
||||
"generate": "Generate",
|
||||
"regenerate": "Regenerate",
|
||||
"preview": "Preview",
|
||||
"download": "Download",
|
||||
"upload": "Upload",
|
||||
"select": "Select",
|
||||
"add": "Add",
|
||||
"remove": "Remove",
|
||||
"refresh": "Refresh",
|
||||
"expand": "Expand",
|
||||
"collapse": "Collapse",
|
||||
"all": "All",
|
||||
"none": "None",
|
||||
"success": "Success",
|
||||
"error": "Error",
|
||||
"warning": "Warning",
|
||||
"info": "Info",
|
||||
"copy": "Copy",
|
||||
"paste": "Paste",
|
||||
"apply": "Apply",
|
||||
"autoSave": "Auto-save",
|
||||
"saved": "Saved",
|
||||
"episode": "Episode",
|
||||
"project": "Project",
|
||||
"editEpisodeName": "Edit Episode Name",
|
||||
"deleteEpisode": "Delete Episode",
|
||||
"deleteEpisodeConfirm": "Confirm Delete",
|
||||
"newEpisode": "New Episode",
|
||||
"optional": "(Optional)",
|
||||
"rename": "Rename",
|
||||
"dragToReorder": "Drag to reorder",
|
||||
"episodeNamePlaceholder": "Enter episode name...",
|
||||
"cancelSelection": "Cancel selection",
|
||||
"referenceImage": "Reference image",
|
||||
"previewLarge": "Preview large",
|
||||
"viewOriginal": "View original",
|
||||
"schemeN": "Scheme {n}",
|
||||
"insufficientBalance": "Insufficient Balance",
|
||||
"insufficientBalanceDetail": "Insufficient account balance, please recharge to continue",
|
||||
"operationFailed": "Operation failed",
|
||||
"pleaseRetry": "Please retry",
|
||||
"recommended": "Recommended",
|
||||
"language": {
|
||||
"select": "Select language",
|
||||
"zh": "Chinese",
|
||||
"en": "English",
|
||||
"switchConfirmTitle": "Switch language?",
|
||||
"switchConfirmMessage": "Switching to {targetLanguage} will update not only interface text, but also end-to-end prompts, script generation, and workflow outputs. Continue?",
|
||||
"switchConfirmAction": "Switch now"
|
||||
},
|
||||
"taskStatus": {
|
||||
"intent": {
|
||||
"generate": {
|
||||
"running": {
|
||||
"image": "Generating",
|
||||
"video": "Generating",
|
||||
"audio": "Generating",
|
||||
"text": "Generating"
|
||||
}
|
||||
},
|
||||
"regenerate": {
|
||||
"running": {
|
||||
"image": "Regenerating",
|
||||
"video": "Regenerating",
|
||||
"audio": "Regenerating",
|
||||
"text": "Regenerating"
|
||||
}
|
||||
},
|
||||
"modify": {
|
||||
"running": {
|
||||
"image": "Modifying",
|
||||
"video": "Modifying",
|
||||
"audio": "Modifying",
|
||||
"text": "Modifying"
|
||||
}
|
||||
},
|
||||
"analyze": {
|
||||
"running": {
|
||||
"image": "Analyzing",
|
||||
"video": "Analyzing",
|
||||
"audio": "Analyzing",
|
||||
"text": "Analyzing"
|
||||
}
|
||||
},
|
||||
"build": {
|
||||
"running": {
|
||||
"image": "Building",
|
||||
"video": "Building",
|
||||
"audio": "Building",
|
||||
"text": "Building"
|
||||
}
|
||||
},
|
||||
"convert": {
|
||||
"running": {
|
||||
"image": "Converting",
|
||||
"video": "Converting",
|
||||
"audio": "Converting",
|
||||
"text": "Converting"
|
||||
}
|
||||
},
|
||||
"process": {
|
||||
"running": {
|
||||
"image": "Processing",
|
||||
"video": "Processing",
|
||||
"audio": "Processing",
|
||||
"text": "Processing"
|
||||
}
|
||||
}
|
||||
},
|
||||
"failed": {
|
||||
"image": "Failed",
|
||||
"video": "Failed",
|
||||
"audio": "Failed",
|
||||
"text": "Failed"
|
||||
}
|
||||
}
|
||||
}
|
||||
31
messages/en/configModal.json
Normal file
31
messages/en/configModal.json
Normal file
@@ -0,0 +1,31 @@
|
||||
{
|
||||
"title": "Project Global Configuration",
|
||||
"saved": "Saved",
|
||||
"autoSave": "Auto-save",
|
||||
"visualStyle": "Visual Style",
|
||||
"modelParams": "Model Parameters",
|
||||
"aspectRatio": "Aspect Ratio",
|
||||
"ttsSettings": "TTS Settings",
|
||||
"loadingModels": "Loading model list...",
|
||||
"analysisModel": "Analysis Model",
|
||||
"characterModel": "Character Model",
|
||||
"locationModel": "Location Model",
|
||||
"storyboardModel": "Storyboard Model",
|
||||
"editModel": "Edit Model",
|
||||
"videoModel": "Video Model",
|
||||
"videoResolution": "Video Resolution",
|
||||
"ttsVoice": "TTS Voice",
|
||||
"ttsRate": "Speech Rate",
|
||||
"fetchModelsFailed": "Failed to fetch user model list",
|
||||
"placeholder": "Please enter...",
|
||||
"description": "Description",
|
||||
"hint": "Hint",
|
||||
"pleaseSelect": "Please select...",
|
||||
"selectModel": "Select Model",
|
||||
"paramConfig": "Parameters",
|
||||
"fixed": "Fixed",
|
||||
"noParams": "No configurable parameters",
|
||||
"confirm": "Confirm",
|
||||
"cancel": "Cancel",
|
||||
"delete": "Delete"
|
||||
}
|
||||
19
messages/en/errors.json
Normal file
19
messages/en/errors.json
Normal file
@@ -0,0 +1,19 @@
|
||||
{
|
||||
"UNAUTHORIZED": "Please log in first",
|
||||
"FORBIDDEN": "Access denied",
|
||||
"NOT_FOUND": "Resource not found",
|
||||
"INSUFFICIENT_BALANCE": "Insufficient API balance. Please top up and retry",
|
||||
"RATE_LIMIT": "Too many requests. Please retry in {retryAfter} seconds",
|
||||
"QUOTA_EXCEEDED": "Quota exceeded. Please try again later",
|
||||
"GENERATION_FAILED": "Generation failed. Please retry",
|
||||
"GENERATION_TIMEOUT": "Generation timed out. Please retry",
|
||||
"SENSITIVE_CONTENT": "Content may contain sensitive material",
|
||||
"INVALID_PARAMS": "Invalid parameters",
|
||||
"MISSING_CONFIG": "Please complete model configuration first",
|
||||
"INTERNAL_ERROR": "Server error. Please try again later",
|
||||
"NETWORK_ERROR": "Network error. Please check your connection",
|
||||
"EXTERNAL_ERROR": "External service temporarily unavailable. Please retry later",
|
||||
"TASK_NOT_READY": "Task is still processing",
|
||||
"NO_RESULT": "Task has no result",
|
||||
"CONFLICT": "Resource state conflict"
|
||||
}
|
||||
26
messages/en/landing.json
Normal file
26
messages/en/landing.json
Normal file
@@ -0,0 +1,26 @@
|
||||
{
|
||||
"title": "waoowaoo",
|
||||
"subtitle": "AI Film & TV Studio",
|
||||
"enterWorkspace": "Enter Workspace",
|
||||
"getStarted": "Get Started",
|
||||
"learnMore": "Learn More",
|
||||
"features": {
|
||||
"title": "Unleash Infinite Creativity",
|
||||
"subtitle": "Full-process AI assistance, from script to final cut",
|
||||
"character": {
|
||||
"title": "Character Workshop",
|
||||
"description": "Create unique anime characters with high consistency"
|
||||
},
|
||||
"storyboard": {
|
||||
"title": "Smart Storyboard",
|
||||
"description": "One-click text to storyboard, precise narrative control"
|
||||
},
|
||||
"world": {
|
||||
"title": "World Building",
|
||||
"description": "Immersive scene generation to build grand story backgrounds"
|
||||
}
|
||||
},
|
||||
"footer": {
|
||||
"copyright": "2026 waoowaoo AI. All rights reserved."
|
||||
}
|
||||
}
|
||||
4
messages/en/layout.json
Normal file
4
messages/en/layout.json
Normal file
@@ -0,0 +1,4 @@
|
||||
{
|
||||
"title": "AI Anime Production Platform",
|
||||
"description": "Create professional anime content with cutting-edge AI technology"
|
||||
}
|
||||
27
messages/en/modelSection.json
Normal file
27
messages/en/modelSection.json
Normal file
@@ -0,0 +1,27 @@
|
||||
{
|
||||
"llmModels": "Text Model List",
|
||||
"imageModels": "Image Model List",
|
||||
"videoModels": "Video Model List",
|
||||
"price": "Price",
|
||||
"pricePerMillion": "Per million tokens",
|
||||
"pricePerImage": "Per image",
|
||||
"pricePerVideo": "Per video",
|
||||
"name": "Name",
|
||||
"modelId": "Model ID",
|
||||
"modelName": "Model Name",
|
||||
"provider": "Provider",
|
||||
"resolution": "Resolution",
|
||||
"add": "Add",
|
||||
"addModel": "Add Model",
|
||||
"addNewModel": "Add New Model",
|
||||
"selectPreset": "Select Preset Model",
|
||||
"customModel": "Custom Model",
|
||||
"confirmAdd": "Confirm",
|
||||
"cancel": "Cancel",
|
||||
"done": "Done",
|
||||
"fillComplete": "Please fill in all fields",
|
||||
"noModels": "No models yet, click the button above to add",
|
||||
"noApiKey": "Configure API Key",
|
||||
"batchMode": "Batch",
|
||||
"batchModeTooltip": "Offline inference, 50% cheaper, completes within 24 hours"
|
||||
}
|
||||
8
messages/en/nav.json
Normal file
8
messages/en/nav.json
Normal file
@@ -0,0 +1,8 @@
|
||||
{
|
||||
"workspace": "Workspace",
|
||||
"assetHub": "Asset Hub",
|
||||
"profile": "Settings",
|
||||
"signin": "Sign In",
|
||||
"signup": "Sign Up",
|
||||
"logout": "Logout"
|
||||
}
|
||||
139
messages/en/novel-promotion.json
Normal file
139
messages/en/novel-promotion.json
Normal file
@@ -0,0 +1,139 @@
|
||||
{
|
||||
"stages": {
|
||||
"story": "Story",
|
||||
"script": "Script",
|
||||
"storyboard": "Storyboard",
|
||||
"video": "Video",
|
||||
"editor": "AI Editor",
|
||||
"editorComingSoon": "Coming soon, follow us for updates"
|
||||
},
|
||||
"buttons": {
|
||||
"assetLibrary": "Asset Library",
|
||||
"settings": "Settings",
|
||||
"refreshData": "Refresh Data",
|
||||
"enterVideoGeneration": "Enter Video Generation →"
|
||||
},
|
||||
"smartImport": {
|
||||
"title": "Start Your Creative Journey",
|
||||
"subtitle": "First, choose your creation method",
|
||||
"manualCreate": {
|
||||
"title": "Create from Episode 1",
|
||||
"description": "Start from episode 1, suitable for episodic creation or single short videos",
|
||||
"button": "Start Creating"
|
||||
},
|
||||
"smartImport": {
|
||||
"title": "Smart Import Full Book",
|
||||
"description": "Upload a complete novel or script, AI engine automatically recognizes chapter structure and splits into episodes.",
|
||||
"button": "Import Now",
|
||||
"recommended": "Recommended"
|
||||
},
|
||||
"upload": {
|
||||
"title": "Upload Raw Material",
|
||||
"subtitle": "AI engine is ready, automatic episode splitting and formatting",
|
||||
"maxWords": "(Max 30,000 words)",
|
||||
"textInput": "Enter Text Content",
|
||||
"documentUpload": "Upload Full Document",
|
||||
"placeholder": "Paste your novel chapters or script content here...",
|
||||
"filePlaceholder": "File uploaded mode",
|
||||
"clickUpload": "Click to upload document",
|
||||
"clearTextFirst": "Please clear left text first",
|
||||
"supportedFormats": "Supports Word, TXT formats",
|
||||
"preview": "Preview",
|
||||
"expandPreview": "Expand More",
|
||||
"collapsePreview": "Collapse",
|
||||
"deleteFile": "Delete File",
|
||||
"startAnalysis": "Start Smart Analysis",
|
||||
"back": "Back",
|
||||
"words": "words"
|
||||
},
|
||||
"analyzing": {
|
||||
"title": "AI is Analyzing Your Story",
|
||||
"description": "Recognizing chapter structure, smart splitting in progress...",
|
||||
"autoSave": "Will auto-save after analysis complete"
|
||||
},
|
||||
"preview": {
|
||||
"title": "Smart Splitting Complete",
|
||||
"episodeCount": "Automatically split into {count} episodes",
|
||||
"totalWords": "Total {count} words",
|
||||
"autoSaved": "✓ Auto-saved",
|
||||
"reanalyze": "Re-analyze",
|
||||
"confirm": "Confirm Complete",
|
||||
"saving": "Saving...",
|
||||
"episodeList": "Episode List",
|
||||
"addEpisode": "Add Episode",
|
||||
"averageWords": "Average per episode",
|
||||
"episodeContent": "Episode Content",
|
||||
"episodePlaceholder": "Enter episode title...",
|
||||
"summaryPlaceholder": "Enter plot summary...",
|
||||
"newEpisode": "New Episode",
|
||||
"deleteEpisode": "Delete Episode",
|
||||
"deleteConfirm": {
|
||||
"title": "Confirm Delete",
|
||||
"message": "Are you sure you want to delete \"{title}\"?",
|
||||
"cancel": "Cancel",
|
||||
"confirm": "Confirm Delete"
|
||||
},
|
||||
"tip": {
|
||||
"title": "Tip",
|
||||
"content": "You can directly edit titles, summaries, and content. After clicking [Confirm Complete], episodes will be officially imported into the project"
|
||||
}
|
||||
},
|
||||
"errors": {
|
||||
"fileTooLarge": "File too large, please upload a file smaller than 10MB",
|
||||
"docNotSupported": ".doc format not supported, please convert to .docx in Word",
|
||||
"fileEmpty": "File content is empty",
|
||||
"fileReadError": "File read failed, please try again",
|
||||
"uploadFirst": "Please upload or paste content first",
|
||||
"analyzeFailed": "Analysis failed",
|
||||
"saveFailed": "Save failed"
|
||||
},
|
||||
"cancelConfirm": "Are you sure you want to cancel? Analyzed episodes will be cleared."
|
||||
},
|
||||
"storyInput": {
|
||||
"currentEditing": "Currently editing: {name}",
|
||||
"editingTip": "The following workflow is for this episode only. Switch episodes in the top left if needed",
|
||||
"wordCount": "Word count:",
|
||||
"assetLibraryTip": {
|
||||
"title": "Need custom characters and locations?",
|
||||
"description": "Click the 「Asset Library」 button in the top right to upload asset setting documents or manually add characters/locations. AI will prioritize using settings from the asset library for analysis."
|
||||
},
|
||||
"videoRatio": "Video Ratio",
|
||||
"visualStyle": "Visual Style",
|
||||
"moreConfig": "For more configuration options, click the 「 Settings」 button in the top right",
|
||||
"narration": {
|
||||
"title": "Enable Narration Voiceover",
|
||||
"description": "Generate TTS voice narration to add commentary to your video"
|
||||
},
|
||||
"creating": "AI Creating...",
|
||||
"ready": "✓ Configuration complete, ready for next step",
|
||||
"pleaseInput": "Please enter script content first"
|
||||
},
|
||||
"execution": {
|
||||
"selectEpisode": "Please select an episode first",
|
||||
"fillContentFirst": "Please enter content first",
|
||||
"requestAborted": "Request aborted (possibly due to page refresh)",
|
||||
"analysisFailed": "Asset analysis failed",
|
||||
"prepareFailed": "Preparation failed",
|
||||
"generationFailed": "Generation failed",
|
||||
"batchVideoFailed": "Batch video generation failed",
|
||||
"updateFailed": "Update failed",
|
||||
"saveFailed": "Save failed",
|
||||
"storyToScriptRunning": "Story→Script V2 running",
|
||||
"scriptToStoryboardRunning": "Script→Storyboard V2 running",
|
||||
"storyToScriptFailed": "Story to script failed",
|
||||
"scriptToStoryboardFailed": "Script to storyboard failed",
|
||||
"taskStreamTimeout": "Task timed out. The task may still be running in the background — please check its status or retry"
|
||||
},
|
||||
"rebuildConfirm": {
|
||||
"storyToScript": {
|
||||
"title": "Script Flow Will Be Rebuilt",
|
||||
"message": "Downstream storyboard data is detected for this episode ({storyboardCount} storyboards, {panelCount} panels). Continuing will clear and rebuild this data. Continue?"
|
||||
},
|
||||
"scriptToStoryboard": {
|
||||
"title": "Storyboard Data Will Be Rebuilt",
|
||||
"message": "Existing storyboard data is detected for this episode ({storyboardCount} storyboards, {panelCount} panels). Continuing will clear current storyboards and regenerate them. Continue?"
|
||||
},
|
||||
"confirm": "Continue and Clear",
|
||||
"cancel": "Cancel"
|
||||
}
|
||||
}
|
||||
107
messages/en/profile.json
Normal file
107
messages/en/profile.json
Normal file
@@ -0,0 +1,107 @@
|
||||
{
|
||||
"user": "User",
|
||||
"personalAccount": "Personal Account",
|
||||
"availableBalance": "Available Balance",
|
||||
"frozen": "Frozen",
|
||||
"totalSpent": "Total Spent",
|
||||
"apiConfig": "API Configuration",
|
||||
"rechargeRecords": "Recharge Records",
|
||||
"billingRecords": "Billing Records",
|
||||
"logout": "Logout",
|
||||
"accountTransactions": "Account Transactions",
|
||||
"projectDetails": "Project Details",
|
||||
"summary": "Summary",
|
||||
"transactions": "Transactions",
|
||||
"noTransactions": "No transaction records",
|
||||
"noProjectCosts": "No project cost records",
|
||||
"noDetails": "This project has no cost details",
|
||||
"noRecords": "No records",
|
||||
"byType": "By Type",
|
||||
"byAction": "By Action",
|
||||
"times": "times",
|
||||
"total": "Total",
|
||||
"filter": "Filter",
|
||||
"allTypes": "All Types",
|
||||
"recharge": "Account Recharge",
|
||||
"consume": "Service Consumption",
|
||||
"balanceAfter": "Balance {amount}",
|
||||
"recordCount": "{count} records",
|
||||
"totalCost": "Total {amount}",
|
||||
"previousPage": "Previous",
|
||||
"nextPage": "Next",
|
||||
"pagination": "{total} items, Page {page} / {totalPages}",
|
||||
"episodeLabel": "Episode {number}",
|
||||
"billingDetail": {
|
||||
"imageWithRes": "{count} images · {resolution}",
|
||||
"image": "{count} images",
|
||||
"videoWithRes": "{count} videos · {resolution}",
|
||||
"video": "{count} videos",
|
||||
"tokens": "{count} tokens",
|
||||
"seconds": "{count}s",
|
||||
"calls": "{count} calls"
|
||||
},
|
||||
"apiTypes": {
|
||||
"image": "Image Generation",
|
||||
"video": "Video Generation",
|
||||
"text": "Text Analysis",
|
||||
"tts": "Text-to-Speech",
|
||||
"voice": "Voice Acting",
|
||||
"voice_design": "Voice Design",
|
||||
"lip_sync": "Lip Sync"
|
||||
},
|
||||
"actionTypes": {
|
||||
"image_panel": "Storyboard Image",
|
||||
"image_character": "Character Image",
|
||||
"image_location": "Location Image",
|
||||
"video_panel": "Video Generation",
|
||||
"lip_sync": "Lip Sync",
|
||||
"voice_line": "Voice Synthesis",
|
||||
"voice_design": "Voice Design",
|
||||
"asset_hub_voice_design": "Asset Hub Voice Design",
|
||||
"regenerate_storyboard_text": "Regenerate Storyboard Text",
|
||||
"insert_panel": "Insert Panel",
|
||||
"panel_variant": "Shot Variant",
|
||||
"modify_asset_image": "Modify Image",
|
||||
"regenerate_group": "Batch Regenerate",
|
||||
"asset_hub_image": "Asset Hub Image",
|
||||
"asset_hub_modify": "Asset Hub Modify Image",
|
||||
"analyze_novel": "Novel Analysis",
|
||||
"story_to_script_run": "Story to Script",
|
||||
"script_to_storyboard_run": "Script to Storyboard",
|
||||
"clips_build": "Clips Build",
|
||||
"screenplay_convert": "Screenplay Convert",
|
||||
"voice_analyze": "Voice Analysis",
|
||||
"analyze_global": "Global Analysis",
|
||||
"ai_modify_appearance": "AI Modify Appearance",
|
||||
"ai_modify_location": "AI Modify Location",
|
||||
"ai_modify_shot_prompt": "AI Modify Shot Prompt",
|
||||
"analyze_shot_variants": "Analyze Shot Variants",
|
||||
"ai_create_character": "AI Create Character",
|
||||
"ai_create_location": "AI Create Location",
|
||||
"reference_to_character": "Reference to Character",
|
||||
"character_profile_confirm": "Confirm Character Profile",
|
||||
"character_profile_batch_confirm": "Batch Confirm Character Profiles",
|
||||
"episode_split_llm": "Episode Split",
|
||||
"asset_hub_ai_design_character": "Asset Hub AI Design Character",
|
||||
"asset_hub_ai_design_location": "Asset Hub AI Design Location",
|
||||
"asset_hub_ai_modify_character": "Asset Hub AI Modify Character",
|
||||
"asset_hub_ai_modify_location": "Asset Hub AI Modify Location",
|
||||
"asset_hub_reference_to_character": "Asset Hub Reference to Character",
|
||||
"storyboard": "Storyboard",
|
||||
"storyboard_candidate": "Storyboard Candidate",
|
||||
"character": "Character Image",
|
||||
"location": "Location Image",
|
||||
"video": "Video",
|
||||
"analyze": "Analysis",
|
||||
"analyze_character": "Character Analysis",
|
||||
"analyze_location": "Location Analysis",
|
||||
"clips": "Clip Splitting",
|
||||
"storyboard_text_plan": "Storyboard Planning",
|
||||
"storyboard_text_detail": "Storyboard Detail",
|
||||
"tts": "TTS",
|
||||
"regenerate": "Regenerate",
|
||||
"voice-generate": "Voice Generation",
|
||||
"voice-design": "Voice Design",
|
||||
"lip-sync": "Lip Sync"
|
||||
}
|
||||
}
|
||||
136
messages/en/progress.json
Normal file
136
messages/en/progress.json
Normal file
@@ -0,0 +1,136 @@
|
||||
{
|
||||
"analyzing": "Analyzing story structure...",
|
||||
"splittingClips": "Splitting into clips...",
|
||||
"convertingScreenplay": "Converting to screenplay...",
|
||||
"submittingStoryboard": "Submitting storyboard...",
|
||||
"step": "Step {current} of {total}",
|
||||
"status": {
|
||||
"completed": "Completed",
|
||||
"failed": "Failed",
|
||||
"processing": "Processing",
|
||||
"queued": "Queued",
|
||||
"pending": "Pending"
|
||||
},
|
||||
"stageCard": {
|
||||
"stage": "Stage",
|
||||
"realtimeStream": "Realtime Stream",
|
||||
"currentStage": "Current Stage",
|
||||
"outputTitle": "Live AI Output · {stage}",
|
||||
"waitingModelOutput": "Waiting for model output...",
|
||||
"reasoningNotProvided": "No reasoning was returned for this step"
|
||||
},
|
||||
"runtime": {
|
||||
"waitingExecution": "Waiting to start",
|
||||
"taskCreated": "Task created",
|
||||
"taskStarted": "Task started",
|
||||
"taskCompleted": "Task completed",
|
||||
"taskFailed": "Task failed",
|
||||
"taskProcessing": "Task processing...",
|
||||
"llm": {
|
||||
"processing": "Model is processing...",
|
||||
"output": "Model is generating output...",
|
||||
"reasoning": "Model is reasoning...",
|
||||
"completed": "Model output completed",
|
||||
"failed": "Model output failed"
|
||||
},
|
||||
"stage": {
|
||||
"llmSubmit": "Submitting model request",
|
||||
"llmStreaming": "Model streaming output",
|
||||
"llmFallbackNonStream": "Model fallback to non-stream mode",
|
||||
"llmCompleted": "Model output completed",
|
||||
"llmFailed": "Model output failed"
|
||||
}
|
||||
},
|
||||
"taskType": {
|
||||
"generic": "Task",
|
||||
"imagePanel": "Storyboard image",
|
||||
"imageCharacter": "Character image",
|
||||
"imageLocation": "Location image",
|
||||
"videoPanel": "Video generation",
|
||||
"lipSync": "Lip sync",
|
||||
"voiceLine": "Voice generation",
|
||||
"voiceDesign": "Voice design",
|
||||
"assetHubVoiceDesign": "Asset hub voice design",
|
||||
"regenerateStoryboardText": "Regenerate storyboard text",
|
||||
"insertPanel": "Insert storyboard panel",
|
||||
"panelVariant": "Storyboard variant",
|
||||
"modifyAssetImage": "Image edit",
|
||||
"regenerateGroup": "Batch regenerate",
|
||||
"assetHubImage": "Asset hub image",
|
||||
"assetHubModify": "Asset hub edit",
|
||||
"analyzeNovel": "Content analysis",
|
||||
"storyToScriptRun": "Story to script",
|
||||
"scriptToStoryboardRun": "Script to storyboard",
|
||||
"clipsBuild": "Clip generation",
|
||||
"screenplayConvert": "Screenplay conversion",
|
||||
"voiceAnalyze": "Voice line analysis",
|
||||
"analyzeGlobal": "Global analysis",
|
||||
"aiModifyAppearance": "Character description modify",
|
||||
"aiModifyLocation": "Location description modify",
|
||||
"aiModifyShotPrompt": "Shot prompt modify",
|
||||
"analyzeShotVariants": "Shot variant analysis",
|
||||
"aiCreateCharacter": "Project character design",
|
||||
"aiCreateLocation": "Project location design",
|
||||
"referenceToCharacter": "Reference to character",
|
||||
"characterProfileConfirm": "Character profile confirm",
|
||||
"characterProfileBatchConfirm": "Character profile batch confirm",
|
||||
"episodeSplitLlm": "Smart episode split",
|
||||
"assetHubAiDesignCharacter": "Asset hub character design",
|
||||
"assetHubAiDesignLocation": "Asset hub location design",
|
||||
"assetHubAiModifyCharacter": "Asset hub character modify",
|
||||
"assetHubAiModifyLocation": "Asset hub location modify",
|
||||
"assetHubReferenceToCharacter": "Asset hub reference to character"
|
||||
},
|
||||
"stage": {
|
||||
"received": "Task received",
|
||||
"generateCharacterImage": "Generate character image",
|
||||
"generateLocationImage": "Generate location image",
|
||||
"generatePanelCandidate": "Generate panel candidate",
|
||||
"generatePanelVideo": "Generate panel video",
|
||||
"generateVoiceSubmit": "Submit voice task",
|
||||
"generateVoicePersist": "Persist voice result",
|
||||
"voiceDesignSubmit": "Submit voice design task",
|
||||
"voiceDesignDone": "Voice design completed",
|
||||
"submitLipSync": "Submit lip sync task",
|
||||
"persistLipSync": "Persist lip sync result",
|
||||
"storyboardClip": "Generate storyboard clip",
|
||||
"regenerateStoryboardPrepare": "Prepare storyboard regeneration",
|
||||
"regenerateStoryboardPersist": "Persist storyboard regeneration",
|
||||
"storyToScriptPrepare": "Prepare story-to-script parameters",
|
||||
"storyToScriptStep": "Execute story-to-script step",
|
||||
"storyToScriptPersist": "Persist story-to-script output",
|
||||
"storyToScriptPersistDone": "Story-to-script output persisted",
|
||||
"scriptToStoryboardPrepare": "Prepare script-to-storyboard parameters",
|
||||
"scriptToStoryboardStep": "Execute script-to-storyboard step",
|
||||
"scriptToStoryboardPersist": "Persist script-to-storyboard output",
|
||||
"scriptToStoryboardPersistDone": "Storyboard and voice output persisted",
|
||||
"insertPanelGenerateText": "Generate inserted panel text",
|
||||
"insertPanelPersist": "Persist inserted panel",
|
||||
"pollingExternal": "Waiting for external service",
|
||||
"enqueueFailed": "Task enqueue failed",
|
||||
"llmProxySubmit": "Submit LLM task",
|
||||
"llmProxyExecute": "Execute LLM task",
|
||||
"llmProxyPersist": "Persist LLM result"
|
||||
},
|
||||
"runConsole": {
|
||||
"storyToScript": "Story to Script",
|
||||
"scriptToStoryboard": "Script to Storyboard",
|
||||
"storyToScriptRunning": "Story→Script running",
|
||||
"scriptToStoryboardRunning": "Script→Storyboard running",
|
||||
"storyToScriptSubtitle": "Story To Script V2",
|
||||
"scriptToStoryboardSubtitle": "Script To Storyboard V2",
|
||||
"stop": "Stop",
|
||||
"minimize": "Minimize"
|
||||
},
|
||||
"streamStep": {
|
||||
"analyzeCharacters": "Analyze characters",
|
||||
"analyzeLocations": "Analyze locations",
|
||||
"splitClips": "Split clips",
|
||||
"screenplayConversion": "Convert screenplay",
|
||||
"storyboardPlan": "Plan storyboard",
|
||||
"cinematographyRules": "Generate cinematography rules",
|
||||
"actingDirection": "Generate acting direction",
|
||||
"storyboardDetailRefine": "Refine storyboard details",
|
||||
"voiceAnalyze": "Analyze voice lines"
|
||||
}
|
||||
}
|
||||
7
messages/en/providerSection.json
Normal file
7
messages/en/providerSection.json
Normal file
@@ -0,0 +1,7 @@
|
||||
{
|
||||
"addProvider": "+ Add Provider",
|
||||
"name": "Name",
|
||||
"add": "Add",
|
||||
"save": "Save",
|
||||
"fillRequired": "Please fill in required fields"
|
||||
}
|
||||
70
messages/en/scriptView.json
Normal file
70
messages/en/scriptView.json
Normal file
@@ -0,0 +1,70 @@
|
||||
{
|
||||
"title": "Script View",
|
||||
"scriptBreakdown": "Script Breakdown",
|
||||
"splitCount": "{count} clips split",
|
||||
"noClips": "No clips yet, please generate from story view",
|
||||
"segment": {
|
||||
"title": "Clip {index}",
|
||||
"selected": "(Selected)"
|
||||
},
|
||||
"inSceneAssets": "In-Scene Assets",
|
||||
"currentSelected": "Selected: Clip {number}",
|
||||
"assetView": {
|
||||
"allClips": "All Clips",
|
||||
"viewingClip": "Viewing Clip {number}"
|
||||
},
|
||||
"asset": {
|
||||
"generateCharacter": "Click to generate character →",
|
||||
"generateLocation": "Click to generate location →",
|
||||
"removeCharacterConfirm": "Are you sure you want to remove this character from current clip?",
|
||||
"removeLocationConfirm": "Are you sure you want to remove this location from current clip?",
|
||||
"removeFromClip": "Remove from current clip",
|
||||
"noAudio": "No audio",
|
||||
"playing": "Playing",
|
||||
"listen": "Listen",
|
||||
"activeCharacters": "Active Characters",
|
||||
"activeLocations": "Active Locations",
|
||||
"selectCharacter": "Select character/appearance to add",
|
||||
"selectLocation": "Select location to add",
|
||||
"loadingAssets": "Loading assets...",
|
||||
"appearanceCount": "{count} appearances",
|
||||
"added": "Added",
|
||||
"primary": "Primary",
|
||||
"subAppearance": "Sub appearance",
|
||||
"defaultAppearance": "Default appearance",
|
||||
"clickToRemove": "Click to remove {name}",
|
||||
"clickToAdd": "Click to add {name}"
|
||||
},
|
||||
"screenplay": {
|
||||
"scene": "Scene {number}",
|
||||
"location": "Location:",
|
||||
"locationTime": "Time:",
|
||||
"day": "Day",
|
||||
"night": "Night",
|
||||
"dawn": "Dawn",
|
||||
"dusk": "Dusk",
|
||||
"dialogue": "Dialogue",
|
||||
"action": "Action",
|
||||
"narration": "Narration",
|
||||
"content": "Original Content",
|
||||
"noContent": "No content yet",
|
||||
"clickToEdit": "Click to edit",
|
||||
"interior": "INT",
|
||||
"exterior": "EXT",
|
||||
"characters": "Characters",
|
||||
"noCharacter": "No character info",
|
||||
"noLocation": "No active locations",
|
||||
"noCharacterInClip": "No active characters"
|
||||
},
|
||||
"confirm": {
|
||||
"removeCharacter": "Are you sure you want to remove this character from current clip?",
|
||||
"removeLocation": "Are you sure you want to remove this location from current clip?"
|
||||
},
|
||||
"generate": {
|
||||
"missingAssets": "{count} assets missing images",
|
||||
"missingAssetsTip": "Please generate images for all characters and locations in",
|
||||
"missingAssetsTipLink": "first",
|
||||
"generating": "Generating...",
|
||||
"startGenerate": "Confirm and Start Drawing →"
|
||||
}
|
||||
}
|
||||
168
messages/en/smartImport.json
Normal file
168
messages/en/smartImport.json
Normal file
@@ -0,0 +1,168 @@
|
||||
{
|
||||
"title": "Start Your Creative Journey",
|
||||
"subtitle": "First, choose your creation method",
|
||||
"manualCreate": {
|
||||
"title": "Create from Episode 1",
|
||||
"description": "Start from episode 1, suitable for episodic creation or single short videos",
|
||||
"button": "Start Creating"
|
||||
},
|
||||
"manualDesc": "Start from the first episode, suitable for serialized or single short video production",
|
||||
"startCreate": "Start Creating",
|
||||
"smartImport": {
|
||||
"title": "Smart Text Split",
|
||||
"description": "Upload a complete novel or script, AI engine automatically recognizes chapter structure and splits into episodes.",
|
||||
"button": "Import Now",
|
||||
"recommended": "Recommended"
|
||||
},
|
||||
"markerDetection": {
|
||||
"enable": "Use Markers (Episode X / 第X集)",
|
||||
"tooltip": "Auto-detect [Episode X], [Chapter X], [第X集/章] markers, free & fast"
|
||||
},
|
||||
"smartImportDesc": "Upload your novel or script, AI engine automatically identifies chapter structure for one-click smart episode splitting.",
|
||||
"recommended": "Recommended",
|
||||
"importNow": "Import Now",
|
||||
"uploadTitle": "Upload Source Material",
|
||||
"uploadSubtitle": "AI engine ready, one-click auto-split and format",
|
||||
"maxWords": "Max 30,000 words",
|
||||
"textInput": "Enter Text Content",
|
||||
"textPlaceholder": "Paste your novel chapter or script content here...",
|
||||
"uploadDoc": "Upload Complete Document",
|
||||
"clickUpload": "Click to Upload",
|
||||
"clearText": "Please clear left text first",
|
||||
"supportFormat": "Supports Word, TXT formats",
|
||||
"fileMax": "Max 30,000 words",
|
||||
"words": "words",
|
||||
"startAnalyzing": "Start Analysis",
|
||||
"analyzing": {
|
||||
"title": "AI is Analyzing Your Story",
|
||||
"description": "Recognizing chapter structure, smart splitting in progress...",
|
||||
"autoSave": "Will auto-save after analysis complete"
|
||||
},
|
||||
"analyzingDesc": "Identifying chapter structure, smart splitting...",
|
||||
"autoSave": "Will auto-save after analysis",
|
||||
"splitComplete": "Smart Split Complete",
|
||||
"splitResult": "Auto-split into {count} episodes, total {words} words",
|
||||
"saved": "Auto-saved",
|
||||
"reAnalyze": "Re-analyze",
|
||||
"confirmComplete": "Confirm Complete",
|
||||
"saving": "Saving...",
|
||||
"episodeList": "Episode List",
|
||||
"episodes": "episodes",
|
||||
"episode": "Episode {num}",
|
||||
"addEpisode": "Add Episode",
|
||||
"newEpisode": "New Episode",
|
||||
"avgWords": "Average per episode",
|
||||
"episodeContent": "Episode Content",
|
||||
"plotSummary": "Plot Summary",
|
||||
"enterTitle": "Enter episode title...",
|
||||
"enterSummary": "Enter plot summary...",
|
||||
"confirmDelete": "Confirm Delete",
|
||||
"deleteConfirmMsg": "Are you sure you want to delete \"{title}\"?",
|
||||
"preview": {
|
||||
"title": "Smart Splitting Complete",
|
||||
"episodeCount": "Automatically split into {count} episodes",
|
||||
"totalWords": "Total {count} words",
|
||||
"autoSaved": "✓ Auto-saved",
|
||||
"reanalyze": "Re-analyze",
|
||||
"confirm": "Confirm Complete",
|
||||
"saving": "Saving...",
|
||||
"episodeList": "Episode List",
|
||||
"addEpisode": "Add Episode",
|
||||
"averageWords": "Average per episode",
|
||||
"episodeContent": "Episode Content",
|
||||
"episodePlaceholder": "Enter episode title...",
|
||||
"summaryPlaceholder": "Enter plot summary...",
|
||||
"newEpisode": "New Episode",
|
||||
"deleteEpisode": "Delete Episode",
|
||||
"deleteConfirm": {
|
||||
"title": "Confirm Delete",
|
||||
"message": "Are you sure you want to delete \"{title}\"?",
|
||||
"cancel": "Cancel",
|
||||
"confirm": "Confirm Delete"
|
||||
},
|
||||
"tip": {
|
||||
"title": "Tip",
|
||||
"content": "You can directly edit titles, summaries, and content. After clicking [Confirm Complete], episodes will be officially imported into the project"
|
||||
}
|
||||
},
|
||||
"collapsePreview": "Collapse Preview",
|
||||
"expandMore": "Expand More",
|
||||
"deleteFile": "Delete File",
|
||||
"fileTooLarge": "File size cannot exceed 10MB",
|
||||
"docNotSupported": ".doc format not supported. Please save as .docx or .txt and try again",
|
||||
"fileEmpty": "File content is empty",
|
||||
"fileReadError": "File read failed, please ensure correct format",
|
||||
"uploadFirst": "Please upload a file or paste text first",
|
||||
"analyzeFailed": "Analysis failed",
|
||||
"saveFailed": "Save failed",
|
||||
"cancelConfirm": "Are you sure you want to cancel? Analyzed episodes will be cleared.",
|
||||
"deleteEpisode": "Delete Episode",
|
||||
"upload": {
|
||||
"title": "Upload Raw Material",
|
||||
"subtitle": "AI engine is ready, automatic episode splitting and formatting",
|
||||
"maxWords": "(Max 30,000 words)",
|
||||
"textInput": "Enter Text Content",
|
||||
"documentUpload": "Upload Full Document",
|
||||
"placeholder": "Paste your novel chapters or script content here...",
|
||||
"filePlaceholder": "File uploaded mode",
|
||||
"clickUpload": "Click to upload document",
|
||||
"clearTextFirst": "Please clear left text first",
|
||||
"supportedFormats": "Supports Word, TXT formats",
|
||||
"preview": "Preview",
|
||||
"expandPreview": "Expand More",
|
||||
"collapsePreview": "Collapse",
|
||||
"deleteFile": "Delete File",
|
||||
"startAnalysis": "Start Analysis",
|
||||
"back": "Back",
|
||||
"words": "words"
|
||||
},
|
||||
"errors": {
|
||||
"fileTooLarge": "File too large, please upload a file smaller than 10MB",
|
||||
"docNotSupported": ".doc format not supported, please convert to .docx in Word",
|
||||
"fileEmpty": "File content is empty",
|
||||
"fileReadError": "File read failed, please try again",
|
||||
"uploadFirst": "Please upload or paste content first",
|
||||
"analyzeFailed": "Analysis failed",
|
||||
"saveFailed": "Save failed",
|
||||
"analysisModelNotConfigured": "Please configure an analysis model in settings first"
|
||||
},
|
||||
"common": {
|
||||
"edit": "Edit",
|
||||
"delete": "Delete",
|
||||
"save": "Save",
|
||||
"cancel": "Cancel"
|
||||
},
|
||||
"markerDetected": {
|
||||
"title": "Episode Markers Detected",
|
||||
"description": "Detected {count} \"{type}\" format episode markers",
|
||||
"preview": "Preview Split Result",
|
||||
"useMarker": "Use Marker Split",
|
||||
"useMarkerDesc": "Fast & Free",
|
||||
"useAI": "Use AI Smart Split",
|
||||
"useAIDesc": "Intelligent analysis, uses credits",
|
||||
"cancel": "Cancel",
|
||||
"totalCount": "{count} episodes total",
|
||||
"markerTypes": {
|
||||
"episode": "Episode X (Chinese)",
|
||||
"chapter": "Chapter X (Chinese)",
|
||||
"act": "Act X (Chinese)",
|
||||
"scene": "X-Y [Scene]",
|
||||
"numbered": "Numbered",
|
||||
"numberedEscaped": "Numbered (Escaped)",
|
||||
"numberedDirect": "Number + Chinese",
|
||||
"episodeEn": "Episode X",
|
||||
"chapterEn": "Chapter X",
|
||||
"boldNumber": "**Number**",
|
||||
"pureNumber": "Pure Number"
|
||||
}
|
||||
},
|
||||
"globalAnalysis": {
|
||||
"title": "Global Asset Analysis",
|
||||
"description": "Extract all characters and locations from the full book to ensure consistency across episodes",
|
||||
"startButton": "Analyze Now",
|
||||
"analyzing": "Analyzing...",
|
||||
"success": "Analysis complete: {characters} new characters, {locations} new locations",
|
||||
"failed": "Global analysis failed",
|
||||
"confirmAndAnalyze": "Confirm & Analyze Assets"
|
||||
}
|
||||
}
|
||||
7
messages/en/stages.json
Normal file
7
messages/en/stages.json
Normal file
@@ -0,0 +1,7 @@
|
||||
{
|
||||
"config": "1. Config",
|
||||
"assets": "2. Asset Analysis",
|
||||
"storyboard": "3. Storyboard Edit",
|
||||
"videos": "4. Video Generation",
|
||||
"voice": "5. Voice Generation"
|
||||
}
|
||||
374
messages/en/storyboard.json
Normal file
374
messages/en/storyboard.json
Normal file
@@ -0,0 +1,374 @@
|
||||
{
|
||||
"phases": {
|
||||
"planning": "Planning Storyboard",
|
||||
"cinematography": "Cinematography Design",
|
||||
"acting": "Acting Direction",
|
||||
"detail": "Adding Details"
|
||||
},
|
||||
"prompts": {
|
||||
"imagePrompt": "Image Prompt",
|
||||
"aiInstruction": "AI Modify Instruction",
|
||||
"supportReference": "(Support @ referencing asset library)",
|
||||
"instructionPlaceholder": "e.g. Change location to @Hospital_Day, character to @ProtagonistA",
|
||||
"selectAsset": "Select Asset",
|
||||
"character": "Character",
|
||||
"location": "Location",
|
||||
"referencedAssets": "Referenced Assets:",
|
||||
"removeAsset": "Remove Asset",
|
||||
"aiModify": "AI Modify & Generate",
|
||||
"aiModifying": "Modifying...",
|
||||
"aiModifyTip": "Click to auto-save prompt and generate new image",
|
||||
"save": "Save",
|
||||
"currentPrompt": "Current Prompt",
|
||||
"enterInstruction": "Please enter instruction",
|
||||
"modifyFailed": "Operation Failed: {error}",
|
||||
"updateFailed": "Update Failed: {error}",
|
||||
"enterContinuation": "Please enter content to append",
|
||||
"appendTitle": "Continue Content",
|
||||
"appendDescription": "Enter new SRT content. The system will split and generate new shots, then append them to the end.",
|
||||
"appendSubmit": "Append and Generate Shots",
|
||||
"appendSuccess": "Append succeeded. New shots were added to the end of the list.",
|
||||
"appendFailed": "Append failed: {error}",
|
||||
"customStyle": "Custom Style"
|
||||
},
|
||||
"group": {
|
||||
"generating": "Generating...",
|
||||
"hasSynced": "✓ Generated",
|
||||
"failed": "Failed",
|
||||
"retry": "Retry",
|
||||
"regenerate": "Regenerate All",
|
||||
"generateAll": "Generate All",
|
||||
"expand": "Expand",
|
||||
"collapse": "Collapse",
|
||||
"addPanel": "Add Panel",
|
||||
"regenerating": "Regenerating...",
|
||||
"aiAnalyzing": "AI Analyzing...",
|
||||
"regenerateText": "Regenerate Text",
|
||||
"generateMissingImages": "Generate all panels without images in this segment",
|
||||
"segment": "Segment",
|
||||
"addAtStart": "Add new storyboard group at the start",
|
||||
"insertHere": "Insert new storyboard group here"
|
||||
},
|
||||
"header": {
|
||||
"title": "Storyboard Editing",
|
||||
"panels": "Panels",
|
||||
"submit": "Submit Generation",
|
||||
"submitting": "Submitting...",
|
||||
"storyboardPanel": "Storyboard Panel",
|
||||
"segments": "segments",
|
||||
"segmentsCount": "Total {count} segments,",
|
||||
"panelsCount": "{count} panels",
|
||||
"generatingStatus": "({count} generating)",
|
||||
"generateAllPanels": "Generate All Panels",
|
||||
"generatePendingPanels": "Generate {count} panels without images",
|
||||
"downloadAll": "Download All",
|
||||
"downloading": "Packing...",
|
||||
"noImages": "No images to download",
|
||||
"downloadAllImages": "Download all images",
|
||||
"generateVideo": "Generate Video →",
|
||||
"back": "← Back",
|
||||
"concurrencyLimit": "Concurrency limit {count}"
|
||||
},
|
||||
"panel": {
|
||||
"shotType": "Shot Type:",
|
||||
"duration": "seconds",
|
||||
"location": "Location:",
|
||||
"characters": "Characters:",
|
||||
"description": "Description:",
|
||||
"text": "Corresponding Text:",
|
||||
"regenerate": "Regenerate",
|
||||
"delete": "Delete",
|
||||
"insertBefore": "Insert Before",
|
||||
"insertAfter": "Insert After",
|
||||
"moveUp": "Move Up",
|
||||
"moveDown": "Move Down",
|
||||
"plot": "Plot:",
|
||||
"summary": "Summary:",
|
||||
"pov": "POV:",
|
||||
"focus": "Focus:",
|
||||
"mode": "Mode:",
|
||||
"shot": "Shot",
|
||||
"segment": "Segment",
|
||||
"stylePrompt": "Style/Prompt",
|
||||
"shotMode": "Shot/Mode",
|
||||
"regenerateImage": "Regenerate Image",
|
||||
"generateImage": "Generate Image",
|
||||
"cardView": "Card View",
|
||||
"tableView": "Table View",
|
||||
"shotTypeLabel": "Shot Type",
|
||||
"cameraMove": "Camera Move",
|
||||
"sourceText": "Source Text",
|
||||
"sceneDescription": "Scene Description",
|
||||
"videoPrompt": "Video Prompt",
|
||||
"videoPromptHint": "Describe subject movement, environment, and camera language",
|
||||
"locationLabel": "Location",
|
||||
"editLocation": "Edit Location",
|
||||
"characterLabel": "Character",
|
||||
"characterLabelWithCount": "Characters ({count})",
|
||||
"editCharacter": "Edit Characters",
|
||||
"select": "+ Select",
|
||||
"add": "+ Add",
|
||||
"noLocation": "No location selected",
|
||||
"locationNotEdited": "Location not edited yet",
|
||||
"noCharacters": "No characters selected",
|
||||
"charactersNotEdited": "Characters not edited yet",
|
||||
"shotTypePlaceholder": "Overhead medium shot...",
|
||||
"cameraMovePlaceholder": "Slow push, static...",
|
||||
"videoPromptPlaceholder": "Prompt for video generation...",
|
||||
"sceneDescriptionPlaceholder": "Describe subject, composition, lighting, and mood",
|
||||
"selectCharacter": "Select Character",
|
||||
"selectLocation": "Select Location",
|
||||
"noCharacterAssets": "No character assets",
|
||||
"noLocationAssets": "No location assets",
|
||||
"selected": "Selected",
|
||||
"defaultAppearance": "Default appearance",
|
||||
"newPanelDescription": "New shot description",
|
||||
"noShotType": "Shot type not set"
|
||||
},
|
||||
"image": {
|
||||
"generating": "Generating...",
|
||||
"regenerate": "Regenerate",
|
||||
"edit": "Edit",
|
||||
"editImage": "Edit Image",
|
||||
"candidate": "Candidate",
|
||||
"selectCandidate": "Select Candidate",
|
||||
"variants": "Variants",
|
||||
"generateVariants": "Generate Variants",
|
||||
"forceRegenerate": "Force Regenerate",
|
||||
"failed": "Generation Failed",
|
||||
"clickToPreview": "Click to preview",
|
||||
"enlargePreview": "Enlarge Preview",
|
||||
"candidateCount": "Candidate {count}",
|
||||
"candidateGenerating": "{count} generating",
|
||||
"selectingCandidate": "Selecting candidate...",
|
||||
"confirmCandidate": "Confirm Selection",
|
||||
"cancelSelection": "Cancel Selection",
|
||||
"noValidCandidates": "No valid candidates",
|
||||
"selectCount": "Select count",
|
||||
"generateMultiple": "Generate multiple candidates",
|
||||
"generateCount": "Generate {count}",
|
||||
"undoShort": "Back"
|
||||
},
|
||||
"candidate": {
|
||||
"title": "Select Candidate Image",
|
||||
"select": "Select",
|
||||
"cancel": "Cancel",
|
||||
"noImages": "No candidate images",
|
||||
"original": "Original"
|
||||
},
|
||||
"variant": {
|
||||
"title": "Image Variants",
|
||||
"generate": "Generate Variants",
|
||||
"select": "Use This Image",
|
||||
"close": "Close",
|
||||
"shotTitle": "Shot Variant - Based on #{number}",
|
||||
"originalDescription": "Original Shot Description",
|
||||
"noDescription": "No description",
|
||||
"noImage": "No image",
|
||||
"shotNum": "Shot {number}",
|
||||
"aiRecommend": "AI Recommended Variants",
|
||||
"reanalyze": "Re-analyze",
|
||||
"shotType": "Shot type:",
|
||||
"cameraMove": "Camera move:",
|
||||
"generating": "Generating",
|
||||
"clickToAnalyze": "Click Re-analyze to get AI recommendations",
|
||||
"customInstruction": "Or custom instruction",
|
||||
"customPlaceholder": "Enter the shot effect you want, e.g.: switch to reverse shot, focus on another character's expression...",
|
||||
"includeCharacter": "Include character reference",
|
||||
"includeLocation": "Include location reference",
|
||||
"customVariant": "Custom variant",
|
||||
"defaultShotType": "Medium Shot",
|
||||
"defaultCameraMove": "Static",
|
||||
"useCustomGenerate": "Generate with custom",
|
||||
"analyzeFailed": "Analysis failed",
|
||||
"creativeScore": "Creativity {score}/5"
|
||||
},
|
||||
"insert": {
|
||||
"title": "Insert New Panel",
|
||||
"position": "Insert Position",
|
||||
"before": "Before Panel {number}",
|
||||
"after": "After Panel {number}",
|
||||
"content": "Panel Content",
|
||||
"shotType": "Shot Type",
|
||||
"location": "Location",
|
||||
"characters": "Characters",
|
||||
"description": "Description",
|
||||
"text": "Corresponding Text",
|
||||
"placeholder": {
|
||||
"shotType": "Select shot type...",
|
||||
"location": "Enter location...",
|
||||
"characters": "Enter characters, comma separated",
|
||||
"description": "Describe the scene...",
|
||||
"text": "Corresponding script text..."
|
||||
},
|
||||
"insert": "Insert",
|
||||
"cancel": "Cancel"
|
||||
},
|
||||
"common": {
|
||||
"actions": "Actions",
|
||||
"add": "Add",
|
||||
"cancel": "Cancel",
|
||||
"confirm": "Confirm",
|
||||
"copy": "Copy",
|
||||
"delete": "Delete",
|
||||
"download": "Download",
|
||||
"edit": "Edit",
|
||||
"generate": "Generate",
|
||||
"loading": "Loading...",
|
||||
"none": "None",
|
||||
"unknownError": "Unknown error",
|
||||
"preview": "Preview",
|
||||
"refresh": "Refresh",
|
||||
"regenerate": "Regenerate",
|
||||
"deleting": "Deleting",
|
||||
"editing": "Editing",
|
||||
"saving": "Saving...",
|
||||
"saveFailed": "Save failed, changes not synced",
|
||||
"retrySave": "Retry save",
|
||||
"save": "Save",
|
||||
"status": "Status",
|
||||
"submitFailed": "Submit Failed",
|
||||
"upload": "Upload"
|
||||
},
|
||||
"confirm": {
|
||||
"deletePanel": "Delete this shot? This action cannot be undone.",
|
||||
"deleteGroup": "Delete this storyboard group? This will remove all {count} shots in this segment. This action cannot be undone."
|
||||
},
|
||||
"messages": {
|
||||
"episodeNotFound": "Episode information not found",
|
||||
"downloadFailed": "Download failed: {error}",
|
||||
"panelNotFound": "Shot information not found",
|
||||
"modifyFailed": "Modify failed: {error}",
|
||||
"selectCandidateFailed": "Select candidate failed: {error}",
|
||||
"insertPanelFailed": "Insert shot failed: {error}",
|
||||
"addPanelFailed": "Add shot failed: {error}",
|
||||
"deletePanelFailed": "Delete shot failed: {error}",
|
||||
"deleteGroupFailed": "Delete storyboard group failed: {error}",
|
||||
"regenerateGroupFailed": "Regenerate storyboard failed: {error}",
|
||||
"addGroupFailed": "Add storyboard group failed: {error}",
|
||||
"moveGroupFailed": "Move storyboard group failed: {error}",
|
||||
"batchGenerateCompleted": "Batch generation completed:\nSucceeded: {succeeded}\nFailed: {failed}\n\nSample errors: {errors}",
|
||||
"batchGenerateFailed": "Batch generation failed: {error}"
|
||||
},
|
||||
"canvas": {
|
||||
"emptyTitle": "No storyboard data yet",
|
||||
"emptyDescription": "Generate clips and storyboard text first, or add a storyboard group above"
|
||||
},
|
||||
"imageEdit": {
|
||||
"title": "Edit Storyboard Image",
|
||||
"subtitle": "Enter a modify instruction and optionally upload reference images or assets",
|
||||
"promptPlaceholder": "Describe what to modify, e.g. change background color or adjust expression...",
|
||||
"referenceImagesLabel": "Reference Images",
|
||||
"referenceImagesHint": "(optional, paste supported)",
|
||||
"start": "Start Editing",
|
||||
"selectAsset": "Select Assets",
|
||||
"selectedAssetsLabel": "Referenced Assets",
|
||||
"selectedAssetsCount": "{count}",
|
||||
"addAsset": "Add Asset",
|
||||
"noAssets": "No assets selected. Click \"Add Asset\" to choose."
|
||||
},
|
||||
"screenplay": {
|
||||
"tabs": {
|
||||
"formatted": "Screenplay",
|
||||
"original": "Original"
|
||||
},
|
||||
"scene": "Scene {number}",
|
||||
"characters": "Characters",
|
||||
"voiceover": "Voiceover",
|
||||
"parseFailedTitle": "Failed to parse screenplay format",
|
||||
"parseFailedDescription": "Please check the original content"
|
||||
},
|
||||
"assets": {
|
||||
"character": {
|
||||
"confirming": "Confirming...",
|
||||
"editing": "Editing..."
|
||||
},
|
||||
"image": {
|
||||
"undo": "Undo to Previous Version"
|
||||
},
|
||||
"location": {
|
||||
"generateImage": "Generate Image"
|
||||
},
|
||||
"stage": {
|
||||
"analyzing": "Analyzing..."
|
||||
}
|
||||
},
|
||||
"video": {
|
||||
"toolbar": {
|
||||
"showPending": "Pending"
|
||||
},
|
||||
"panelCard": {
|
||||
"forceRegenerate": "Force Regenerate (if stuck)"
|
||||
}
|
||||
},
|
||||
"smartImport": {
|
||||
"errors": {
|
||||
"analyzeFailed": "Analysis Failed"
|
||||
},
|
||||
"preview": {
|
||||
"reanalyze": "Re-analyze"
|
||||
},
|
||||
"smartImport": {
|
||||
"recommended": "Recommended"
|
||||
}
|
||||
},
|
||||
"aiData": {
|
||||
"title": "AI Data Editor",
|
||||
"subtitle": "Panel {number} - Complete data sent to image generation AI",
|
||||
"basicData": "Storyboard Basic Data",
|
||||
"shotType": "Shot Type",
|
||||
"cameraMove": "Camera Movement",
|
||||
"shotTypePlaceholder": "Overhead, wide shot, eye-level, medium shot...",
|
||||
"cameraMovePlaceholder": "Slow push, static, follow...",
|
||||
"scene": "Scene (Read-only)",
|
||||
"notSelected": "Not selected",
|
||||
"summary": "Scene Summary",
|
||||
"characters": "Characters (Read-only)",
|
||||
"plot": "Plot",
|
||||
"summarize": "Summary",
|
||||
"visualDescription": "Visual Description",
|
||||
"videoPrompt": "Video Prompt",
|
||||
"negativePrompt": "Negative Prompt",
|
||||
"save": "Save",
|
||||
"cancel": "Cancel",
|
||||
"lightingDirection": "Lighting Direction",
|
||||
"lightingQuality": "Lighting Quality",
|
||||
"depthOfField": "Depth of Field",
|
||||
"colorTone": "Color Tone",
|
||||
"characterPosition": "Character Position Rules",
|
||||
"position": "Position",
|
||||
"posture": "Posture",
|
||||
"facing": "Facing",
|
||||
"photographyRules": "Photography Rules",
|
||||
"viewData": "View Data",
|
||||
"jsonPreview": "JSON Preview",
|
||||
"actingNotes": "Acting Direction (acting_notes)",
|
||||
"actingTitle": "Acting Direction",
|
||||
"actingDescription": "Performance Notes",
|
||||
"noActingData": "No acting data"
|
||||
},
|
||||
"insertModal": {
|
||||
"insertBetween": "Insert between #{before} and #{after}",
|
||||
"panel": "Panel",
|
||||
"noImage": "No image",
|
||||
"insertAtEnd": "End",
|
||||
"aiAnalyze": "AI Auto-analyze",
|
||||
"analyzing": "AI analyzing...",
|
||||
"insert": "Insert",
|
||||
"inserting": "Inserting...",
|
||||
"placeholder": "Optional: Add notes, e.g. add a reaction shot..."
|
||||
},
|
||||
"panelActions": {
|
||||
"insertPanel": "Insert Panel",
|
||||
"panelVariant": "Panel Variant",
|
||||
"insertHere": "Insert panel here",
|
||||
"generateVariant": "Generate variant based on this panel",
|
||||
"needImage": "Need to generate image first",
|
||||
"deleteShot": "Delete Shot",
|
||||
"pasteSrtPlaceholder": "Paste new SRT content..."
|
||||
},
|
||||
"firstLastFrame": {
|
||||
"placeholder": "Enter first/last frame video prompt...",
|
||||
"modelTitle": "First/Last Frame Model"
|
||||
}
|
||||
}
|
||||
210
messages/en/video.json
Normal file
210
messages/en/video.json
Normal file
@@ -0,0 +1,210 @@
|
||||
{
|
||||
"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"
|
||||
}
|
||||
}
|
||||
254
messages/en/voice.json
Normal file
254
messages/en/voice.json
Normal file
@@ -0,0 +1,254 @@
|
||||
{
|
||||
"title": "Voice Lines",
|
||||
"linesCount": "{count} lines total, ",
|
||||
"audioGeneratedCount": "{count} audio generated",
|
||||
"emotionPrompt": "Emotion Prompt",
|
||||
"emotionPromptTip": "(Leave empty for auto-reference)",
|
||||
"emotionPlaceholder": "e.g. laugh, English only...",
|
||||
"emotionStrength": "Emotion Strength",
|
||||
"flat": "Flat",
|
||||
"intense": "Intense",
|
||||
"generating": "Generating...",
|
||||
"generateVoice": "Generate Voice",
|
||||
"toolbar": {
|
||||
"back": "← Back",
|
||||
"analyzeLines": "Analyze Lines",
|
||||
"addLine": "+ Add Voice",
|
||||
"generateAll": "Generate All Voices",
|
||||
"downloadAll": "Download Voices",
|
||||
"generatingCount": "Generating ({count})",
|
||||
"packing": "Packing...",
|
||||
"stats": "{total} lines | {withVoice} with voice | {withAudio} generated",
|
||||
"noDownload": "No voices to download",
|
||||
"downloadCount": "Download {count} voices",
|
||||
"uploadReferenceHint": "Please upload reference audio for all characters first"
|
||||
},
|
||||
"speakerVoice": {
|
||||
"title": "Speaker Voice Status",
|
||||
"hint": "Please upload reference audio for characters in Asset Library",
|
||||
"linesCount": "{count} lines",
|
||||
"noVoice": "No reference voice",
|
||||
"configured": "✓ Configured",
|
||||
"playVoice": "Play current voice",
|
||||
"aiDesign": "AI Design Voice",
|
||||
"aiDesignVoice": "AI Design Voice",
|
||||
"redesign": "Redesign voice with AI",
|
||||
"uploadAudio": "Upload audio",
|
||||
"uploading": "Uploading",
|
||||
"upload": "Upload",
|
||||
"microsoftVoice": "Microsoft Voice",
|
||||
"microsoft": "MS",
|
||||
"maleVoices": "Male",
|
||||
"femaleVoices": "Female",
|
||||
"openAssetLibrary": "Asset Library",
|
||||
"configuredStatus": "Voice Set",
|
||||
"pendingStatus": "Voice Pending",
|
||||
"voiceSettings": "Voice Settings",
|
||||
"inlineLabel": "Inline"
|
||||
},
|
||||
"inlineBinding": {
|
||||
"title": "Set voice for \"{speaker}\"",
|
||||
"description": "This speaker is not in the asset library. Choose a method to set a reference voice.",
|
||||
"selectFromLibrary": "Select from Voice Library",
|
||||
"selectFromLibraryDesc": "Choose an existing global voice",
|
||||
"uploadAudio": "Upload Reference Audio",
|
||||
"uploadAudioDesc": "Upload MP3, WAV or other audio files as reference voice",
|
||||
"aiDesign": "AI Design Voice",
|
||||
"aiDesignDesc": "Use AI to generate an exclusive reference voice"
|
||||
},
|
||||
"embedded": {
|
||||
"linesStats": "{total} lines · {audio} generated",
|
||||
"reanalyze": "Re-analyze",
|
||||
"analyzeLines": "Analyze Lines",
|
||||
"reanalyzeHint": "Re-analyze lines and update shot matching",
|
||||
"analyzeHint": "Extract lines from script",
|
||||
"downloadVoice": "Download Voices",
|
||||
"generateAllVoice": "Generate All Voices",
|
||||
"pendingCount": "({count} pending)",
|
||||
"generatingProgress": "Generating ({current}/{total})",
|
||||
"generatingHint": "Generating...",
|
||||
"noVoiceHint": "Please set voice for all characters above first",
|
||||
"noLinesHint": "No lines to generate",
|
||||
"allDoneHint": "All lines generated",
|
||||
"generateHint": "Click to generate {count} pending voices",
|
||||
"addLine": "+ Add Voice",
|
||||
"speakerVoiceStatus": "Speaker Voice Status",
|
||||
"speakersCount": "{count}",
|
||||
"listen": "Listen",
|
||||
"listenVoice": "Listen to voice",
|
||||
"reset": "Reset",
|
||||
"resetDesign": "Redesign",
|
||||
"aiDesign": "AI Design",
|
||||
"assetLibrary": "Asset Library"
|
||||
},
|
||||
"lineCard": {
|
||||
"generatingVoice": "Generating",
|
||||
"speaker": "Speaker",
|
||||
"speakerPlaceholder": "Speaker name",
|
||||
"content": "Content",
|
||||
"contentPlaceholder": "Line content",
|
||||
"emotionConfigured": "Emotion set",
|
||||
"emotionSettings": "Emotion Settings",
|
||||
"voiceConfigured": "✓ Configured",
|
||||
"needVoice": "Please set voice above",
|
||||
"locatePanel": "Locate bound shot",
|
||||
"locateVideo": "Locate Video",
|
||||
"play": "Play",
|
||||
"pause": "Pause",
|
||||
"locatePanelCta": "Jump to Shot {index}",
|
||||
"editLine": "Edit line",
|
||||
"deleteLine": "Delete line",
|
||||
"deleteAudio": "Delete audio"
|
||||
},
|
||||
"lineEditor": {
|
||||
"addTitle": "Add Voice Line",
|
||||
"editTitle": "Edit Voice Line",
|
||||
"contentLabel": "Line Content",
|
||||
"contentPlaceholder": "Enter line content",
|
||||
"speakerLabel": "Speaker",
|
||||
"speakerPlaceholder": "Enter speaker name",
|
||||
"selectSpeaker": "Select a speaker",
|
||||
"noSpeakerOptions": "No available speakers in this project yet. Analyze lines first.",
|
||||
"bindPanelLabel": "Bind Shot",
|
||||
"unboundPanel": "Unbound",
|
||||
"panelLabel": "Shot {index}",
|
||||
"saveAdd": "Add Voice",
|
||||
"saveEdit": "Save Changes"
|
||||
},
|
||||
"empty": {
|
||||
"title": "No Voice Lines",
|
||||
"description": "Extract lines and speakers from script",
|
||||
"analyzeButton": "Analyze Lines",
|
||||
"hint": "Please upload reference audio for characters in Asset Library first"
|
||||
},
|
||||
"confirm": {
|
||||
"deleteLine": "Are you sure you want to delete this line?\n\n\"{content}\"\n\nThis action cannot be undone.",
|
||||
"deleteAudio": "Are you sure you want to delete this audio?\n\n\"{content}\"\n\nThis action cannot be undone."
|
||||
},
|
||||
"errors": {
|
||||
"saveFailed": "Save Failed",
|
||||
"analyzeFailed": "Analysis Failed",
|
||||
"generateFailed": "Generation Failed",
|
||||
"batchFailed": "Batch Generation Failed",
|
||||
"downloadFailed": "Download Failed",
|
||||
"deleteFailed": "Delete Failed",
|
||||
"addFailed": "Add Voice Failed",
|
||||
"invalidLineInput": "Content and speaker cannot be empty",
|
||||
"bindFailed": "Bind shot failed",
|
||||
"deleteAudioFailed": "Delete Audio Failed",
|
||||
"uploadFailed": "Upload Failed",
|
||||
"voiceDesignFailed": "Voice Design Save Failed",
|
||||
"emotionSaveFailed": "Emotion Settings Save Failed",
|
||||
"voiceGenerateFailed": "Voice Generation Failed"
|
||||
},
|
||||
"alerts": {
|
||||
"insufficientBalance": "Insufficient Balance",
|
||||
"insufficientBalanceMsg": "Account balance insufficient, please top up to continue",
|
||||
"noLinesToGenerate": "No lines to generate (please upload reference audio for characters first)",
|
||||
"generateComplete": "Complete: {success}/{total} successful",
|
||||
"generateFailed": "{count} failed",
|
||||
"speakerVoiceSet": "Reference audio set for {speaker}",
|
||||
"speakerVoiceUploaded": "Reference audio uploaded for {speaker}",
|
||||
"voiceDesignSet": "AI designed voice set for {speaker}"
|
||||
},
|
||||
"common": {
|
||||
"loading": "Loading...",
|
||||
"save": "Save",
|
||||
"cancel": "Cancel",
|
||||
"cancelling": "Cancelling...",
|
||||
"upload": "Upload",
|
||||
"download": "Download",
|
||||
"generate": "Generate",
|
||||
"regenerate": "Regenerate"
|
||||
},
|
||||
"assets": {
|
||||
"image": {
|
||||
"uploadFailed": "Upload Failed"
|
||||
},
|
||||
"stage": {
|
||||
"analyzing": "Analyzing..."
|
||||
}
|
||||
},
|
||||
"smartImport": {
|
||||
"errors": {
|
||||
"analyzeFailed": "Analysis Failed"
|
||||
}
|
||||
},
|
||||
"video": {
|
||||
"panelCard": {
|
||||
"play": "Play"
|
||||
}
|
||||
},
|
||||
"tts": {
|
||||
"generatedAudio": "Generated Audio",
|
||||
"browserNotSupport": "Your browser does not support audio playback",
|
||||
"audioDuration": "Audio Duration:",
|
||||
"subtitleCount": "Subtitle Count:",
|
||||
"noAudio": "No audio",
|
||||
"srtPreview": "SRT Subtitle Preview",
|
||||
"noSubtitle": "No subtitles",
|
||||
"stats": "Generation Stats",
|
||||
"minute": "min",
|
||||
"second": "sec",
|
||||
"items": "items",
|
||||
"completed": "✓ Completed",
|
||||
"regenerating": "Regenerating...",
|
||||
"regenerateTTS": "Regenerate TTS",
|
||||
"nextStep": "Next: Analyze Assets",
|
||||
"readyTip": "Click to proceed to asset analysis",
|
||||
"needGenerate": "Please generate TTS audio first"
|
||||
},
|
||||
"voiceCreate": {
|
||||
"aiDesignMode": "AI Design Voice",
|
||||
"uploadMode": "Upload Audio",
|
||||
"dropOrClick": "Drop file or click to select",
|
||||
"supportedFormats": "Supports MP3, WAV, OGG, M4A, AAC formats",
|
||||
"invalidFileType": "Unsupported file format. Please upload an audio file",
|
||||
"fileTooLarge": "File too large. Maximum 50MB supported",
|
||||
"previewAudio": "Preview Audio",
|
||||
"uploading": "Uploading...",
|
||||
"uploadFailed": "Upload failed",
|
||||
"uploadSuccess": "Upload successful"
|
||||
},
|
||||
"voiceDesign": {
|
||||
"presets": {
|
||||
"maleBroadcaster": "Male Broadcaster",
|
||||
"gentleFemale": "Gentle Female",
|
||||
"matureMale": "Mature Male",
|
||||
"livelyFemale": "Lively Girl",
|
||||
"intellectualFemale": "Intellectual Female",
|
||||
"narrator": "Narrator"
|
||||
},
|
||||
"presetsPrompts": {
|
||||
"maleBroadcaster": "Middle-aged male broadcaster with steady, deep voice, clear pronunciation",
|
||||
"gentleFemale": "Gentle and sweet young woman with clear, melodious voice",
|
||||
"matureMale": "Mature male with charismatic and expressive voice",
|
||||
"livelyFemale": "Lively young girl with sweet, cute, energetic voice",
|
||||
"intellectualFemale": "Elegant intellectual woman with clear, pleasant voice",
|
||||
"narrator": "Emotional narrator with warm, storytelling voice"
|
||||
},
|
||||
"defaultPreviewText": "Hello, nice to meet you. This is your AI-designed exclusive voice. Let me demonstrate its features for you. Whether it's a gentle conversation or an excited narration, I can deliver it perfectly. I hope you enjoy this voice, let's create amazing content together.",
|
||||
"pleaseSelectStyle": "Please enter or select a voice style",
|
||||
"designVoiceFor": "Design AI Voice for \"{speaker}\"",
|
||||
"hasExistingVoice": "Has voice",
|
||||
"selectStyle": "Select voice style:",
|
||||
"orCustomDescription": "Or custom description:",
|
||||
"describePlaceholder": "Describe voice characteristics: age, gender, tone, pitch...",
|
||||
"editPreviewText": "Edit preview text",
|
||||
"generate3Schemes": "Generate 3 Voice Schemes",
|
||||
"generating3Schemes": "Generating 3 voice schemes...",
|
||||
"estimatedTime": "Est. 15-30 seconds",
|
||||
"selectScheme": "Select voice scheme:",
|
||||
"schemeN": "Scheme {n}",
|
||||
"regenerate": "Regenerate",
|
||||
"confirmUse": "✓ Confirm Use",
|
||||
"confirmReplace": "Confirm Replace Voice?",
|
||||
"replaceWarning": "'s original voice, irreversible",
|
||||
"confirmReplaceBtn": "Confirm Replace",
|
||||
"noVoiceGenerated": "No voice generated",
|
||||
"generationError": "Voice generation failed",
|
||||
"generateFailed": "Failed to generate voice {n}",
|
||||
"preview": "Preview",
|
||||
"playing": "Playing"
|
||||
}
|
||||
}
|
||||
31
messages/en/workspace.json
Normal file
31
messages/en/workspace.json
Normal file
@@ -0,0 +1,31 @@
|
||||
{
|
||||
"title": "My Projects",
|
||||
"subtitle": "Manage your AI anime production projects",
|
||||
"newProject": "New Project",
|
||||
"searchPlaceholder": "Search project name or description...",
|
||||
"searchButton": "Search",
|
||||
"clearButton": "Clear",
|
||||
"updatedAt": "Updated at",
|
||||
"noProjects": "No projects yet",
|
||||
"noProjectsDesc": "Create your first AI anime production project",
|
||||
"noResults": "No matching projects found",
|
||||
"noResultsDesc": "Try using different search terms",
|
||||
"createProject": "New Project",
|
||||
"editProject": "Edit Project",
|
||||
"deleteProject": "Delete Project",
|
||||
"deleteConfirm": "Are you sure you want to delete project \"{name}\"? This action cannot be undone.",
|
||||
"projectName": "Project Name",
|
||||
"projectNamePlaceholder": "Enter project name",
|
||||
"projectDescription": "Project Description (Optional)",
|
||||
"projectDescriptionPlaceholder": "Enter project description",
|
||||
"creating": "Creating...",
|
||||
"saving": "Saving...",
|
||||
"createFailed": "Failed to create project",
|
||||
"updateFailed": "Failed to update project",
|
||||
"deleteFailed": "Failed to delete project",
|
||||
"totalProjects": "{count} projects in total",
|
||||
"statsEpisodes": "Episodes",
|
||||
"statsImages": "Images",
|
||||
"statsVideos": "Videos",
|
||||
"noContent": "No content yet"
|
||||
}
|
||||
24
messages/en/workspaceDetail.json
Normal file
24
messages/en/workspaceDetail.json
Normal file
@@ -0,0 +1,24 @@
|
||||
{
|
||||
"globalAssets": "Global Assets",
|
||||
"createFailed": "Creation failed",
|
||||
"deleteFailed": "Deletion failed",
|
||||
"renameFailed": "Rename failed",
|
||||
"refreshFailed": "Refresh failed",
|
||||
"projectNotFound": "Project not found",
|
||||
"backToWorkspace": "Back to Workspace",
|
||||
"episode": "Episode",
|
||||
"sidebar": {
|
||||
"dragToMove": "Drag to move position",
|
||||
"listTitle": "Episode List",
|
||||
"episodeCount": "{count} episodes",
|
||||
"empty": "No episodes yet. Create one below.",
|
||||
"save": "Save",
|
||||
"deleteConfirm": "Delete \"{name}\"?",
|
||||
"delete": "Delete",
|
||||
"cancel": "Cancel",
|
||||
"rename": "Rename",
|
||||
"newEpisodePlaceholder": "Enter episode name...",
|
||||
"create": "Create",
|
||||
"addEpisode": "Add Episode"
|
||||
}
|
||||
}
|
||||
6
messages/en/worldContextModal.json
Normal file
6
messages/en/worldContextModal.json
Normal file
@@ -0,0 +1,6 @@
|
||||
{
|
||||
"title": "World & Character Settings",
|
||||
"description": "Define global character appearances, scene styles, and environment descriptions",
|
||||
"placeholder": "Example:\n【Protagonist】John, 25, short black hair, always wearing a faded denim jacket, melancholy eyes.\n【Heroine】Jane, 22, red twin tails, lively personality, likes to wear Lolita-style dresses.\n【Scene】Cyberpunk city in 2077, neon lights flashing, raining all year round...",
|
||||
"hint": "These settings will be inherited by all episodes as a reference for AI drawing."
|
||||
}
|
||||
18
messages/zh/actions.json
Normal file
18
messages/zh/actions.json
Normal file
@@ -0,0 +1,18 @@
|
||||
{
|
||||
"storyboard": "分镜图",
|
||||
"storyboard_candidate": "分镜候选",
|
||||
"character": "角色图",
|
||||
"location": "场景图",
|
||||
"video": "视频",
|
||||
"analyze": "分析",
|
||||
"analyze_character": "角色分析",
|
||||
"analyze_location": "场景分析",
|
||||
"clips": "片段切割",
|
||||
"storyboard_text_plan": "分镜规划",
|
||||
"storyboard_text_detail": "分镜细节",
|
||||
"tts": "语音合成",
|
||||
"regenerate": "重生成",
|
||||
"voice-generate": "配音生成",
|
||||
"voice-design": "声音设计",
|
||||
"lip-sync": "口型同步"
|
||||
}
|
||||
107
messages/zh/apiConfig.json
Normal file
107
messages/zh/apiConfig.json
Normal file
@@ -0,0 +1,107 @@
|
||||
{
|
||||
"title": "API 配置",
|
||||
"saving": "保存中...",
|
||||
"saved": "已保存",
|
||||
"saveFailed": "保存失败",
|
||||
"connected": "已连接",
|
||||
"notConfigured": "未配置 Key",
|
||||
"configure": "配置",
|
||||
"connect": "连接",
|
||||
"show": "显示",
|
||||
"hide": "隐藏",
|
||||
"capability": "能力",
|
||||
"default": "默认",
|
||||
"delete": "删除",
|
||||
"add": "添加",
|
||||
"cancel": "取消",
|
||||
"save": "保存",
|
||||
"comingSoon": "待上线",
|
||||
"priceInput": "输入 {amount}",
|
||||
"priceOutput": "输出 {amount}",
|
||||
"priceUnavailable": "暂无定价",
|
||||
"fillComplete": "请填写完整信息",
|
||||
"fillPricing": "请填写价格信息",
|
||||
"pricingInputLabel": "输入价格",
|
||||
"pricingOutputLabel": "输出价格",
|
||||
"modelIdExists": "模型 ID 已存在",
|
||||
"modelDisplayName": "外显名称(你自己看的)",
|
||||
"modelActualId": "实际调用 ID(模型参数)",
|
||||
"noModelsForProvider": "该厂商暂无配置模型",
|
||||
"defaultModels": "默认模型配置",
|
||||
"textDefault": "文本模型",
|
||||
"characterDefault": "角色模型",
|
||||
"locationDefault": "场景模型",
|
||||
"storyboardDefault": "分镜模型",
|
||||
"editDefault": "修图模型",
|
||||
"videoDefault": "视频模型",
|
||||
"lipsyncDefault": "口型同步模型",
|
||||
"selectDefault": "请选择",
|
||||
"providerPool": "厂商资源池",
|
||||
"providerIdExists": "该提供商 ID 已存在",
|
||||
"presetProviderCannotDelete": "预设提供商不能删除",
|
||||
"confirmDeleteProvider": "确定删除这个提供商吗?",
|
||||
"presetModelCannotDelete": "预设模型不能删除",
|
||||
"confirmDeleteModel": "确定删除这个模型吗?",
|
||||
"addGeminiProvider": "新增模型服务商",
|
||||
"baseUrl": "Base URL",
|
||||
"configureBaseUrl": "配置地址",
|
||||
"addModel": "添加模型",
|
||||
"batchModeHalfPrice": "批量模式(价格减半)",
|
||||
"typeText": "文本",
|
||||
"typeImage": "图像",
|
||||
"typeVideo": "视频",
|
||||
"typeAudio": "音频等",
|
||||
"apiKeyLabel": "API Key",
|
||||
"apiType": "API 类型",
|
||||
"apiTypeGeminiCompatible": "Gemini 兼容",
|
||||
"apiTypeOpenAICompatible": "OpenAI 兼容",
|
||||
"apiTypeGeminiHint": "使用 Google SDK",
|
||||
"otherProviders": "其他配置",
|
||||
"audioCategory": "音频",
|
||||
"audioAndLipsync": "语音与唇形同步",
|
||||
"configureApiKey": "配置 API Key",
|
||||
"enterApiKey": "请输入 API Key",
|
||||
"tabs": {
|
||||
"llm": "文本模型",
|
||||
"image": "图片模型",
|
||||
"video": "视频模型",
|
||||
"audio": "音频等模型",
|
||||
"other": "其他"
|
||||
},
|
||||
"sections": {
|
||||
"llmApiKeys": "文本模型 API Keys",
|
||||
"imageApiKeys": "图片模型 API Keys",
|
||||
"videoApiKeys": "视频模型 API Keys",
|
||||
"audioApiKey": "音频模型 API Key",
|
||||
"lipsyncApiKey": "唇形同步 API Key"
|
||||
},
|
||||
"defaultModel": {
|
||||
"title": "默认模型",
|
||||
"hint": "新建项目和资产库将使用此默认配置",
|
||||
"notSelected": "未选择",
|
||||
"analysis": "分析模型",
|
||||
"image": "图片生成",
|
||||
"video": "视频生成",
|
||||
"resolution": "图片分辨率"
|
||||
},
|
||||
"viewTutorial": "查看教程",
|
||||
"tutorial": {
|
||||
"button": "开通教程",
|
||||
"title": "开通教程",
|
||||
"subtitle": "按照以下步骤完成配置",
|
||||
"close": "我知道了",
|
||||
"openLink": "点击打开",
|
||||
"steps": {
|
||||
"ark_step1": "进入火山引擎控制台,开通 API Key",
|
||||
"ark_step2": "在模型管理页面,点击右上角「一键开通所有模型」",
|
||||
"openrouter_step1": "进入 OpenRouter 平台,创建 API Key(必须选择带有图像功能的模型)",
|
||||
"fal_step1": "进入 FAL 平台,创建 API Key",
|
||||
"google_step1": "进入 Google AI Studio,创建 API Key",
|
||||
"minimax_step1": "进入海螺 MiniMax 平台,获取 API Key",
|
||||
"vidu_step1": "进入生数科技 Vidu 平台,点击「新建 API Key」",
|
||||
"openai_compatible_step1": "填写任意 OpenAI 协议兼容服务的 Base URL 与 API Key",
|
||||
"gemini_compatible_step1": "填写任意 Gemini 协议兼容服务的 Base URL 与 API Key",
|
||||
"qwen_step1": "进入阿里云百炼平台,获取 API Key"
|
||||
}
|
||||
}
|
||||
}
|
||||
9
messages/zh/apiTypes.json
Normal file
9
messages/zh/apiTypes.json
Normal file
@@ -0,0 +1,9 @@
|
||||
{
|
||||
"image": "图片生成",
|
||||
"video": "视频生成",
|
||||
"text": "文本分析",
|
||||
"tts": "语音合成",
|
||||
"voice": "配音",
|
||||
"voice_design": "声音设计",
|
||||
"lip_sync": "口型同步"
|
||||
}
|
||||
101
messages/zh/assetHub.json
Normal file
101
messages/zh/assetHub.json
Normal file
@@ -0,0 +1,101 @@
|
||||
{
|
||||
"title": "资产中心",
|
||||
"description": "管理您的全局角色和场景资产",
|
||||
"modelHint": "资产中心使用默认模型,如需修改请在",
|
||||
"modelHintLink": "API配置页面",
|
||||
"modelHintSuffix": "进行设置",
|
||||
"folders": "文件夹",
|
||||
"noFolders": "暂无文件夹",
|
||||
"allAssets": "所有资产",
|
||||
"characters": "角色",
|
||||
"locations": "场景",
|
||||
"voices": "音色",
|
||||
"addCharacter": "新建角色",
|
||||
"addLocation": "新建场景",
|
||||
"addVoice": "新建音色",
|
||||
"newFolder": "新建文件夹",
|
||||
"editFolder": "编辑文件夹",
|
||||
"deleteFolder": "删除文件夹",
|
||||
"folderName": "文件夹名称",
|
||||
"folderNamePlaceholder": "请输入文件夹名称",
|
||||
"emptyState": "暂无资产",
|
||||
"emptyStateHint": "点击上方按钮添加角色或场景",
|
||||
"generate": "生成图片",
|
||||
"generating": "生成中...",
|
||||
"regenerate": "重新生成",
|
||||
"undo": "撤回",
|
||||
"delete": "删除",
|
||||
"cancel": "取消",
|
||||
"save": "保存",
|
||||
"create": "创建",
|
||||
"confirmDeleteFolder": "确定删除此文件夹吗?文件夹内的资产将移至未分类。",
|
||||
"confirmDeleteCharacter": "确定删除此角色吗?此操作无法撤回。",
|
||||
"confirmDeleteLocation": "确定删除此场景吗?此操作无法撤回。",
|
||||
"confirmDeleteVoice": "确定删除此音色吗?此操作无法撤回。",
|
||||
"voiceName": "音色名称",
|
||||
"voiceNamePlaceholder": "请输入音色名称",
|
||||
"voiceNameRequired": "请输入音色名称",
|
||||
"voicePickerTitle": "从音色库选择",
|
||||
"voicePickerEmpty": "暂无音色,请先创建音色",
|
||||
"voicePickerConfirm": "确认选择",
|
||||
"pagination": {
|
||||
"previous": "上一页",
|
||||
"next": "下一页"
|
||||
},
|
||||
"common": {
|
||||
"cancel": "取消"
|
||||
},
|
||||
"generateFailed": "生成失败",
|
||||
"selectFailed": "选择失败",
|
||||
"uploadFailed": "上传失败",
|
||||
"editFailed": "编辑失败",
|
||||
"saveVoiceFailed": "保存声音失败",
|
||||
"saveVoiceFailedDetail": "保存声音失败: {error}",
|
||||
"bindVoiceFailed": "绑定音色失败",
|
||||
"bindVoiceFailedDetail": "绑定音色失败: {error}",
|
||||
"voiceDesignSaved": "已为 {name} 设置 AI 设计的声音",
|
||||
"appearanceLabel": "形象 {index}",
|
||||
"voiceSettings": {
|
||||
"title": "配音音色",
|
||||
"noVoice": "无音色",
|
||||
"previewFailed": "预览失败: {error}",
|
||||
"uploadFailed": "上传音频失败: {error}",
|
||||
"uploading": "上传中...",
|
||||
"uploaded": "已上传",
|
||||
"uploadAudio": "上传音频",
|
||||
"aiDesign": "AI设计",
|
||||
"voiceLibrary": "音色库",
|
||||
"pause": "暂停",
|
||||
"preview": "试听音色"
|
||||
},
|
||||
"modal": {
|
||||
"newCharacter": "新建角色",
|
||||
"confirm": "确定",
|
||||
"processing": "处理中...",
|
||||
"newLocation": "新建场景",
|
||||
"addCharacter": "创建角色",
|
||||
"addLocation": "创建场景",
|
||||
"adding": "创建中...",
|
||||
"aiDesign": "AI 设计",
|
||||
"aiDesignPlaceholder": "例如:一个身穿红色长裙的古风美女,长发飘飘,手持折扇",
|
||||
"aiDesignLocationPlaceholder": "例如:一个古典中式园林,有假山流水和亭台楼阁",
|
||||
"aiDesignTip": "AI 将根据您的需求生成详细的描述,您可以在生成后编辑",
|
||||
"aiDesignLocationTip": "AI 将根据您的需求生成详细的场景描述",
|
||||
"generate": "生成",
|
||||
"generating": "生成中...",
|
||||
"nameLabel": "角色名称",
|
||||
"namePlaceholder": "请输入角色名称",
|
||||
"descLabel": "角色描述",
|
||||
"descPlaceholder": "请描述角色的外形特征、服装、发型等...",
|
||||
"locationNameLabel": "场景名称",
|
||||
"locationNamePlaceholder": "请输入场景名称",
|
||||
"locationSummaryLabel": "场景描述",
|
||||
"locationSummaryPlaceholder": "请描述场景的环境、氛围、特征等...",
|
||||
"referenceUpload": "上传参考图",
|
||||
"referenceUploadTip": "上传一张角色图片,AI 将自动转换为三视图设定图",
|
||||
"convertToCharacter": "转换三视图",
|
||||
"converting": "转换中...",
|
||||
"dropOrClick": "拖放图片或点击上传",
|
||||
"supportedFormats": "支持 JPG、PNG 格式"
|
||||
}
|
||||
}
|
||||
14
messages/zh/assetLibrary.json
Normal file
14
messages/zh/assetLibrary.json
Normal file
@@ -0,0 +1,14 @@
|
||||
{
|
||||
"title": "资产库",
|
||||
"button": "资产库",
|
||||
"characters": "角色",
|
||||
"locations": "场景",
|
||||
"noCharacters": "暂无角色",
|
||||
"noLocations": "暂无场景",
|
||||
"addCharacter": "添加角色",
|
||||
"addLocation": "添加场景",
|
||||
"generateImage": "生成图片",
|
||||
"regenerateImage": "重新生成",
|
||||
"analyzeAssets": "分析资产",
|
||||
"analyzing": "分析中..."
|
||||
}
|
||||
78
messages/zh/assetModal.json
Normal file
78
messages/zh/assetModal.json
Normal file
@@ -0,0 +1,78 @@
|
||||
{
|
||||
"character": {
|
||||
"title": "新建角色",
|
||||
"name": "角色名称",
|
||||
"namePlaceholder": "请输入角色名称",
|
||||
"modeReference": "参考图模式",
|
||||
"modeDescription": "描述模式",
|
||||
"isSubAppearance": "这是一个子形象",
|
||||
"isSubAppearanceHint": "为已有角色添加新的形象状态",
|
||||
"uploadReference": "上传参考图",
|
||||
"pasteHint": "Ctrl+V 粘贴",
|
||||
"dropOrClick": "点击上传或拖拽图片",
|
||||
"supportedFormats": "支持 JPG、PNG 等格式",
|
||||
"nameRequired": "请先输入角色名称才能使用参考图转换",
|
||||
"convertToSheet": "将参考图转换为标准三视图",
|
||||
"referenceTip": "上传任意角色图片,AI 将自动生成标准三视图设定",
|
||||
"description": "角色描述",
|
||||
"modifyDescription": "修改描述",
|
||||
"descPlaceholder": "请输入角色外貌描述...",
|
||||
"modifyDescriptionPlaceholder": "描述要对主形象做什么修改,例如:换上正装、受伤后的状态、披上斗篷...",
|
||||
"selectMainCharacter": "选择主角色",
|
||||
"selectCharacterPlaceholder": "请选择角色...",
|
||||
"appearancesCount": "{count} 个形象",
|
||||
"changeReason": "形象变化原因",
|
||||
"changeReasonPlaceholder": "例如:战斗后受伤、穿上正装参加宴会...",
|
||||
"defaultDescription": "{name} 的角色设定",
|
||||
"generationMode": "生成方式",
|
||||
"directGenerate": "直接生成",
|
||||
"extractPrompt": "反推提示词",
|
||||
"extractFirst": "先提取描述",
|
||||
"directGenerateDesc": "直接使用参考图生成角色设定图(图生图)",
|
||||
"extractPromptDesc": "先从图片提取角色描述,可编辑后再生成(文生图)",
|
||||
"maxReferenceImages": "最多上传 5 张参考图",
|
||||
"selectedCount": "已选择 {count}/5 张参考图",
|
||||
"extractDescription": "提取角色描述",
|
||||
"extracting": "提取中...",
|
||||
"extractedDescription": "提取的角色描述(可编辑)",
|
||||
"reExtract": "重新提取",
|
||||
"editHint": "编辑后点击下方按钮生成角色设定图",
|
||||
"generateFromDescription": "使用描述生成",
|
||||
"textToImageTip": "文生图模式:基于提取的描述生成角色设定图",
|
||||
"pleaseExtractFirst": "请先提取角色描述"
|
||||
},
|
||||
"location": {
|
||||
"title": "新建场景",
|
||||
"name": "场景名称",
|
||||
"namePlaceholder": "请输入场景名称",
|
||||
"description": "场景描述",
|
||||
"descPlaceholder": "请输入场景描述..."
|
||||
},
|
||||
"artStyle": {
|
||||
"title": "画面风格"
|
||||
},
|
||||
"aiDesign": {
|
||||
"title": "AI 设计",
|
||||
"placeholder": "描述你想要的角色特征...",
|
||||
"placeholderLocation": "描述场景氛围和环境...",
|
||||
"generating": "设计中...",
|
||||
"generate": "生成",
|
||||
"tip": "输入简单描述,AI 帮你生成详细设定"
|
||||
},
|
||||
"common": {
|
||||
"creating": "创建中...",
|
||||
"create": "创建",
|
||||
"cancel": "取消",
|
||||
"adding": "添加中...",
|
||||
"add": "添加",
|
||||
"optional": "(可选)"
|
||||
},
|
||||
"errors": {
|
||||
"uploadFailed": "上传失败",
|
||||
"extractDescriptionFailed": "提取描述失败",
|
||||
"createFailed": "创建失败",
|
||||
"aiDesignFailed": "AI 设计失败",
|
||||
"addSubAppearanceFailed": "添加子形象失败",
|
||||
"insufficientBalance": "账户余额不足"
|
||||
}
|
||||
}
|
||||
18
messages/zh/assetPicker.json
Normal file
18
messages/zh/assetPicker.json
Normal file
@@ -0,0 +1,18 @@
|
||||
{
|
||||
"selectCharacter": "从资产中心选择角色",
|
||||
"selectLocation": "从资产中心选择场景",
|
||||
"selectVoice": "从资产中心选择音色",
|
||||
"searchPlaceholder": "搜索资产名称或文件夹...",
|
||||
"noAssets": "资产中心暂无资产",
|
||||
"createInAssetHub": "请先在资产中心创建角色/场景/音色",
|
||||
"noSearchResults": "未找到匹配的资产",
|
||||
"appearances": "个形象",
|
||||
"images": "张图片",
|
||||
"cancel": "取消",
|
||||
"confirmCopy": "确认复制",
|
||||
"copyFromGlobal": "从资产中心复制",
|
||||
"copySuccess": "复制成功",
|
||||
"copyFailed": "复制失败",
|
||||
"preview": "试听",
|
||||
"stop": "停止"
|
||||
}
|
||||
321
messages/zh/assets.json
Normal file
321
messages/zh/assets.json
Normal file
@@ -0,0 +1,321 @@
|
||||
{
|
||||
"stage": {
|
||||
"title": "资产确认",
|
||||
"characters": "角色",
|
||||
"locations": "场景",
|
||||
"analyze": "分析资产",
|
||||
"analyzing": "分析中...",
|
||||
"generateAll": "批量生成全部",
|
||||
"noCharacters": "暂无角色",
|
||||
"noLocations": "暂无场景",
|
||||
"confirmProfiles": "角色档案待确认",
|
||||
"confirmHint": "请确认以下角色档案后生成外貌描述",
|
||||
"confirmAll": "全部确认 ({count})",
|
||||
"assetsTitle": "资产分析",
|
||||
"characterAssets": "角色资产",
|
||||
"locationAssets": "场景资产",
|
||||
"counts": "{characterCount} 个角色,{appearanceCount} 个形象",
|
||||
"locationCounts": "{count} 个场景",
|
||||
"undoFailed": "撤回失败",
|
||||
"undoFailedError": "撤回失败: {error}",
|
||||
"undoSuccess": "已撤回到上一版本",
|
||||
"editFailed": "编辑失败",
|
||||
"editFailedError": "图片编辑失败: {error}",
|
||||
"updateSuccess": "描述词已同步更新"
|
||||
},
|
||||
"character": {
|
||||
"add": "添加角色",
|
||||
"edit": "编辑角色",
|
||||
"delete": "删除角色",
|
||||
"deleteConfirm": "确定要删除这个角色吗?",
|
||||
"deleteAppearanceConfirm": "确定要删除这个形象吗?",
|
||||
"deleteFailed": "删除失败: {error}",
|
||||
"deleteWhole": "删除整个角色",
|
||||
"deleteOptions": "删除选项",
|
||||
"name": "角色名",
|
||||
"description": "外貌描述",
|
||||
"generateImage": "生成形象",
|
||||
"regenerateImage": "重新生成",
|
||||
"generate": "生成",
|
||||
"regenerating": "生成中...",
|
||||
"profile": "设定档案",
|
||||
"voiceSettings": "配音设置",
|
||||
"speaker": "说话人",
|
||||
"selectSpeaker": "选择说话人",
|
||||
"noSpeaker": "未设置",
|
||||
"primary": "主形象",
|
||||
"secondary": "子状态",
|
||||
"generateFromPrimary": "基于主形象生成",
|
||||
"selectPrimaryFirst": "请先选择主形象",
|
||||
"editing": "编辑中...",
|
||||
"confirming": "确认中...",
|
||||
"assetCount": "{count} 个形象",
|
||||
"characterCount": "{count} 个角色",
|
||||
"updateFailed": "更新描述失败",
|
||||
"addFailed": "添加角色失败",
|
||||
"copyFromGlobal": "从资产中心复制"
|
||||
},
|
||||
"location": {
|
||||
"add": "添加场景",
|
||||
"edit": "编辑场景",
|
||||
"delete": "删除场景",
|
||||
"deleteConfirm": "确定要删除这个场景吗?",
|
||||
"deleteFailed": "删除失败: {error}",
|
||||
"name": "场景名",
|
||||
"summary": "简要描述",
|
||||
"summaryPlaceholder": "场景用途/人物关联,如:张三居住的主卧室",
|
||||
"description": "场景描述",
|
||||
"generateImage": "生成图片",
|
||||
"regenerateImage": "重新生成",
|
||||
"updateFailed": "更新描述失败",
|
||||
"addFailed": "添加场景失败"
|
||||
},
|
||||
"image": {
|
||||
"upload": "上传图片",
|
||||
"uploadReplace": "上传替换图片",
|
||||
"uploadFailed": "上传失败",
|
||||
"uploadFailedError": "上传失败: {error}",
|
||||
"uploadSuccess": "上传成功!",
|
||||
"edit": "编辑图片",
|
||||
"editPrompt": "编辑提示词",
|
||||
"undo": "撤回到上一版本",
|
||||
"undoConfirm": "确定要撤回到上一版本吗?当前版本将被删除。",
|
||||
"regenerateGroup": "整组重新生成",
|
||||
"regenerateStuck": "点击重新生成(当前卡住)",
|
||||
"selectTip": "选择并确认后,可对图片进行编辑和修改",
|
||||
"selectFirst": "请选择一张图片",
|
||||
"useThis": "选择此方案",
|
||||
"optionAlt": "{name} - 方案{number}",
|
||||
"optionNumber": "方案{number}",
|
||||
"optionSelected": "已选择方案{number}",
|
||||
"confirmOption": "确定选择方案{number}",
|
||||
"deleteOthersHint": "(删除其他)",
|
||||
"confirmSuccess": "确认成功",
|
||||
"confirmFailed": "确认选择失败: {error}",
|
||||
"selectFailed": "选择图片失败: {error}",
|
||||
"cancelSelection": "取消选择",
|
||||
"deleteThis": "删除此形象",
|
||||
"undoFailed": "撤回失败",
|
||||
"undoSuccess": "✓ 已撤回到上一版本",
|
||||
"editFailed": "图片编辑失败",
|
||||
"editSuccess": "图片编辑成功",
|
||||
"regenerateFailed": "重新生成失败: {error}"
|
||||
},
|
||||
"modal": {
|
||||
"newCharacter": "新增角色",
|
||||
"addSubAppearance": "添加子形象",
|
||||
"aiDesign": "AI智能设计",
|
||||
"aiDesigning": "AI设计中...",
|
||||
"designInstruction": "请输入设计指令",
|
||||
"enterNameDesc": "请填写角色名称和描述",
|
||||
"selectCharacter": "请选择一个角色",
|
||||
"enterChangeReason": "请填写形象变化原因",
|
||||
"enterSubDesc": "请填写形象描述",
|
||||
"insufficientBalance": "余额不足\n\n{error}",
|
||||
"designFailed": "AI设计失败: {error}",
|
||||
"addFailed": "添加失败: {error}",
|
||||
"aiDesignPlaceholderNew": "例如:一个20岁的女性魔法师,金色长发,蓝色眼睛,穿着紫色法袍...",
|
||||
"aiDesignPlaceholderSub": "例如:换上黑色劲装,脚蹬厚底战靴,准备战斗的状态...",
|
||||
"aiTipNew": "描述你想要的角色,AI会自动生成详细描述",
|
||||
"aiTipSub": "描述角色的新状态,AI会生成子形象描述(只描述变化部分)",
|
||||
"nameLabel": "角色名称",
|
||||
"namePlaceholder": "输入角色名称...",
|
||||
"descLabel": "形象描述",
|
||||
"descPlaceholder": "输入角色形象描述...",
|
||||
"selectLabel": "选择角色",
|
||||
"selectPlaceholder": "-- 请选择角色 --",
|
||||
"existingAppearances": "现有形象:",
|
||||
"reasonLabel": "形象变化原因",
|
||||
"reasonPlaceholder": "例如:换装后、受伤状态、出浴状态...",
|
||||
"reasonTip": "简短描述这个形象与主形象的区别原因",
|
||||
"subDescPlaceholder": "只描述变化部分,例如:换装,脚蹬厚底战靴...",
|
||||
"subDescTip": "子形象只需描述变化部分(服装、状态等),面部和体型会自动继承主形象",
|
||||
"adding": "添加中...",
|
||||
"insufficientBalanceDefault": "账户余额不足,请充值后继续使用",
|
||||
"addFailedGeneric": "添加失败",
|
||||
"appearancesCount": "个形象",
|
||||
"addCharacter": "新增角色",
|
||||
"addLocation": "新增场景",
|
||||
"aiDesignTip": "描述你想要的场景,AI会自动生成名称和详细描述",
|
||||
"designing": "AI设计中...",
|
||||
"saveName": "保存名字",
|
||||
"saveOnly": "仅保存",
|
||||
"sceneDescription": "场景描述",
|
||||
"scenePrompt": "场景描述提示词",
|
||||
"appearancePrompt": "形象描述提示词",
|
||||
"smartModify": "智能修改",
|
||||
"modifyPlaceholder": "例如:改成夜晚,添加月光,增加窗帘...",
|
||||
"modifyPlaceholderCharacter": "例如:把头发改成金色、身高改为180cm、穿黑色西装...",
|
||||
"modifying": "智能修改中...",
|
||||
"modifyFailed": "修改失败",
|
||||
"editCharacter": "编辑角色",
|
||||
"editLocation": "编辑场景",
|
||||
"saveAndGenerate": "保存并生成",
|
||||
"generatingAutoClose": "正在生成图片,完成后将自动关闭...",
|
||||
"aiLocationTip": "输入你想修改的内容,AI会自动调整场景描述",
|
||||
"aiDesignPlaceholderLocation": "例如:一个古老的魔法图书馆,高耸的书架,昏暗的烛光,神秘的氛围...",
|
||||
"artStyle": "画面风格",
|
||||
"generate": "生成",
|
||||
"introduction": "角色介绍",
|
||||
"introductionPlaceholder": "例如:本书主角,第一人称'我'指的就是她。其他角色称她为'小雪'或'雪姐'...",
|
||||
"introductionTip": "描述角色在故事中的身份、叙述视角(如'我'对应谁)、其他角色如何称呼她等",
|
||||
"saveIntroduction": "保存介绍"
|
||||
},
|
||||
"toolbar": {
|
||||
"filter": "筛选",
|
||||
"viewAll": "查看全部",
|
||||
"showGenerated": "已生成",
|
||||
"showPending": "待生成",
|
||||
"assetManagement": "资产管理",
|
||||
"assetCount": "共 {total} 个资产({appearances} 角色形象 + {locations} 场景)",
|
||||
"globalAnalyze": "全局分析",
|
||||
"globalAnalyzing": "正在执行全局资产分析...",
|
||||
"globalAnalyzingHint": "请勿刷新页面,分析完成后将自动显示结果",
|
||||
"globalAnalyzingTip": "正在分析所有剧集内容,提取角色和场景...",
|
||||
"globalAnalyzeHint": "分析所有剧集内容,提取角色和场景",
|
||||
"globalAnalyzeSuccess": "全局分析完成:新增 {characters} 个角色,{locations} 个场景",
|
||||
"globalAnalyzeFailed": "全局分析失败",
|
||||
"generateAll": "生成全部图片",
|
||||
"generateAllNoop": "所有资产都已有图片,无需生成",
|
||||
"generating": "生成中 ({current}/{total})",
|
||||
"regenerateAll": "重新生成全部",
|
||||
"regenerateAllConfirm": "确定要重新生成所有资产的图片吗?这将覆盖现有图片。",
|
||||
"noAssetsToGenerate": "没有可生成的资产",
|
||||
"regenerateAllHint": "重新生成所有资产图片(覆盖现有)"
|
||||
},
|
||||
"common": {
|
||||
"actions": "操作",
|
||||
"add": "添加",
|
||||
"cancel": "取消",
|
||||
"confirm": "确认",
|
||||
"copy": "复制",
|
||||
"delete": "删除",
|
||||
"download": "下载",
|
||||
"edit": "编辑",
|
||||
"generate": "生成",
|
||||
"generateFailed": "生成失败",
|
||||
"loading": "加载中...",
|
||||
"none": "无",
|
||||
"preview": "预览",
|
||||
"refresh": "刷新",
|
||||
"regenerate": "重新生成",
|
||||
"save": "保存",
|
||||
"status": "状态",
|
||||
"submitFailed": "提交失败",
|
||||
"upload": "上传",
|
||||
"unknownError": "未知错误"
|
||||
},
|
||||
"video": {
|
||||
"panelCard": {
|
||||
"generating": "生成中...",
|
||||
"editPrompt": "编辑提示词"
|
||||
}
|
||||
},
|
||||
"smartImport": {
|
||||
"preview": {
|
||||
"saving": "保存中..."
|
||||
}
|
||||
},
|
||||
"storyboard": {
|
||||
"group": {
|
||||
"generating": "生成中..."
|
||||
}
|
||||
},
|
||||
"errors": {
|
||||
"saveFailed": "保存失败,请重试",
|
||||
"failed": "失败,请重试",
|
||||
"insufficientBalance": "账户余额不足",
|
||||
"aiDesignFailed": "AI 设计失败",
|
||||
"createFailed": "创建失败"
|
||||
},
|
||||
"assetLibrary": {
|
||||
"button": "资产库",
|
||||
"title": "资产库",
|
||||
"copySuccessCharacter": "角色形象复制成功",
|
||||
"copySuccessLocation": "场景图片复制成功",
|
||||
"copySuccessVoice": "音色复制成功",
|
||||
"copyFailed": "复制失败: {error}"
|
||||
},
|
||||
"tts": {
|
||||
"voiceDesignSaved": "已为 {name} 设置 AI 设计的声音",
|
||||
"saveVoiceDesignFailed": "保存声音设计失败: {error}",
|
||||
"title": "配音音色",
|
||||
"noVoice": "无音色",
|
||||
"previewFailed": "预览失败: {error}",
|
||||
"uploadFailed": "上传音频失败: {error}",
|
||||
"uploading": "上传中...",
|
||||
"uploaded": "已上传",
|
||||
"uploadAudio": "上传音频",
|
||||
"pause": "暂停",
|
||||
"preview": "试听音色"
|
||||
},
|
||||
"characterProfile": {
|
||||
"importance": {
|
||||
"S": "S级 - 绝对主角",
|
||||
"A": "A级 - 核心配角",
|
||||
"B": "B级 - 重要配角",
|
||||
"C": "C级 - 次要角色",
|
||||
"D": "D级 - 群众演员"
|
||||
},
|
||||
"costumeLevel": {
|
||||
"5": "皇室/顶奢级",
|
||||
"4": "贵族/精英级",
|
||||
"3": "专业/品质级",
|
||||
"2": "日常/普通级",
|
||||
"1": "朴素/统一级"
|
||||
},
|
||||
"importanceLevel": "角色重要性层级",
|
||||
"characterArchetype": "角色原型",
|
||||
"archetypePlaceholder": "如: 霸道总裁、心机婊",
|
||||
"personalityTags": "性格标签",
|
||||
"addTagPlaceholder": "添加标签",
|
||||
"costumeLevelLabel": "服装华丽度",
|
||||
"suggestedColors": "建议色彩",
|
||||
"colorPlaceholder": "如: 深蓝、金色",
|
||||
"primaryMarker": "主要辨识标志",
|
||||
"markerNote": "(S/A级推荐)",
|
||||
"markingsPlaceholder": "如: 眼角泪痣、左耳银色耳钉",
|
||||
"visualKeywords": "视觉关键词",
|
||||
"keywordsPlaceholder": "如: 精英气质、禁欲系",
|
||||
"editDialogTitle": "编辑角色档案 - {name}",
|
||||
"confirmAndGenerate": "确认并生成",
|
||||
"useExisting": "使用已有形象",
|
||||
"editProfile": "编辑档案",
|
||||
"delete": "删除此角色",
|
||||
"summary": {
|
||||
"gender": "性别:",
|
||||
"age": "年龄:",
|
||||
"era": "时代:",
|
||||
"class": "阶层:",
|
||||
"occupation": "职业:",
|
||||
"personality": "性格:",
|
||||
"costume": "服装:",
|
||||
"identifier": "标志:"
|
||||
},
|
||||
"parseFailed": "档案数据解析失败",
|
||||
"confirmSuccessGenerating": "✓ 档案确认成功,正在生成视觉描述",
|
||||
"confirmFailed": "确认失败: {error}",
|
||||
"noPendingCharacters": "没有待确认的角色",
|
||||
"batchConfirmPrompt": "确认为 {count} 个角色生成视觉描述吗?",
|
||||
"batchConfirmSuccess": "✓ 已为 {count} 个角色生成视觉描述",
|
||||
"batchConfirmFailed": "批量确认失败: {error}",
|
||||
"deleteConfirm": "确定要删除此角色吗?此操作不可撤销。",
|
||||
"deleteSuccess": "✓ 角色已删除",
|
||||
"deleteFailed": "删除失败: {error}"
|
||||
},
|
||||
"imageEdit": {
|
||||
"editCharacterImage": "编辑人物图片",
|
||||
"editLocationImage": "编辑场景图片",
|
||||
"characterLabel": "人物: {name}",
|
||||
"locationLabel": "场景: {name}",
|
||||
"editInstruction": "修改指令",
|
||||
"subtitle": "输入修改指令,可选择上传参考图片",
|
||||
"characterPlaceholder": "描述你想要修改的内容,例如:把头发改成金色、添加眼镜、换成休闲装...",
|
||||
"locationPlaceholder": "描述你想要修改的内容,例如:添加更多树木、改成夜晚场景...",
|
||||
"storyboardPlaceholder": "描述你想要修改的内容,例如:改变背景颜色、调整人物表情...",
|
||||
"noAssetHint": "暂无资产,点击\"添加资产\"选择",
|
||||
"referenceImages": "参考图片",
|
||||
"referenceImagesHint": "(可选,支持粘贴)",
|
||||
"startEditing": "开始编辑"
|
||||
}
|
||||
}
|
||||
29
messages/zh/auth.json
Normal file
29
messages/zh/auth.json
Normal file
@@ -0,0 +1,29 @@
|
||||
{
|
||||
"welcomeBack": "欢迎回来",
|
||||
"loginTo": "登录到waoowaoo",
|
||||
"createAccount": "创建账户",
|
||||
"joinPlatform": "加入waoowaoo",
|
||||
"phoneNumber": "用户名",
|
||||
"password": "密码",
|
||||
"confirmPassword": "确认密码",
|
||||
"phoneNumberPlaceholder": "请输入用户名",
|
||||
"passwordPlaceholder": "请输入密码",
|
||||
"passwordMinPlaceholder": "请输入密码(至少6位)",
|
||||
"confirmPasswordPlaceholder": "请再次输入密码",
|
||||
"loginButton": "登录",
|
||||
"loginButtonLoading": "登录中...",
|
||||
"signupButton": "注册",
|
||||
"signupButtonLoading": "注册中...",
|
||||
"noAccount": "还没有账户?",
|
||||
"hasAccount": "已有账户?",
|
||||
"signupNow": "立即注册",
|
||||
"signinNow": "立即登录",
|
||||
"backToHome": "← 返回首页",
|
||||
"loginFailed": "登录失败,请检查手机号和密码",
|
||||
"loginError": "登录过程中出现错误",
|
||||
"passwordMismatch": "密码确认不匹配",
|
||||
"passwordTooShort": "密码长度至少6位",
|
||||
"signupSuccess": "注册成功!正在跳转到登录页面...",
|
||||
"signupFailed": "注册失败",
|
||||
"signupError": "注册过程中出现错误"
|
||||
}
|
||||
15
messages/zh/billing.json
Normal file
15
messages/zh/billing.json
Normal file
@@ -0,0 +1,15 @@
|
||||
{
|
||||
"transactionType": "交易类型",
|
||||
"startDate": "开始日期",
|
||||
"endDate": "结束日期",
|
||||
"all": "全部",
|
||||
"income": "收入",
|
||||
"expense": "支出",
|
||||
"reset": "重置",
|
||||
"filter": "筛选",
|
||||
"noRecords": "暂无记录",
|
||||
"accountRecharge": "账户充值",
|
||||
"serviceConsumption": "服务消费",
|
||||
"balance": "余额",
|
||||
"allTypes": "全部类型"
|
||||
}
|
||||
134
messages/zh/common.json
Normal file
134
messages/zh/common.json
Normal file
@@ -0,0 +1,134 @@
|
||||
{
|
||||
"appName": "waoowaoo",
|
||||
"betaVersion": "Beta v0.1 (测试版)",
|
||||
"loading": "加载中...",
|
||||
"save": "保存",
|
||||
"cancel": "取消",
|
||||
"confirm": "确认",
|
||||
"delete": "删除",
|
||||
"edit": "编辑",
|
||||
"search": "搜索",
|
||||
"clear": "清除",
|
||||
"close": "关闭",
|
||||
"back": "返回",
|
||||
"next": "下一步",
|
||||
"previous": "上一步",
|
||||
"submit": "提交",
|
||||
"reset": "重置",
|
||||
"generate": "生成",
|
||||
"regenerate": "重新生成",
|
||||
"preview": "预览",
|
||||
"download": "下载",
|
||||
"upload": "上传",
|
||||
"select": "选择",
|
||||
"add": "添加",
|
||||
"remove": "移除",
|
||||
"refresh": "刷新",
|
||||
"expand": "展开",
|
||||
"collapse": "收起",
|
||||
"all": "全部",
|
||||
"none": "无",
|
||||
"success": "成功",
|
||||
"error": "错误",
|
||||
"warning": "警告",
|
||||
"info": "信息",
|
||||
"copy": "复制",
|
||||
"paste": "粘贴",
|
||||
"apply": "应用",
|
||||
"autoSave": "自动保存",
|
||||
"saved": "已保存",
|
||||
"episode": "剧集",
|
||||
"project": "项目",
|
||||
"editEpisodeName": "编辑剧集名称",
|
||||
"deleteEpisode": "删除剧集",
|
||||
"deleteEpisodeConfirm": "确认删除",
|
||||
"newEpisode": "新建剧集",
|
||||
"optional": "(可选)",
|
||||
"rename": "重命名",
|
||||
"dragToReorder": "拖动调整位置",
|
||||
"episodeNamePlaceholder": "输入剧集名称...",
|
||||
"cancelSelection": "取消选择",
|
||||
"referenceImage": "参考图",
|
||||
"previewLarge": "预览大图",
|
||||
"viewOriginal": "查看原图",
|
||||
"schemeN": "方案 {n}",
|
||||
"insufficientBalance": "余额不足",
|
||||
"insufficientBalanceDetail": "账户余额不足,请充值后继续使用",
|
||||
"operationFailed": "操作失败",
|
||||
"pleaseRetry": "请重试",
|
||||
"recommended": "推荐",
|
||||
"language": {
|
||||
"select": "选择语言",
|
||||
"zh": "中文",
|
||||
"en": "English",
|
||||
"switchConfirmTitle": "切换语言?",
|
||||
"switchConfirmMessage": "切换到 {targetLanguage} 后,不仅界面文字会改变,整条流程的提示词模板、剧本生成和任务输出语言也会同步切换。是否继续?",
|
||||
"switchConfirmAction": "确认切换"
|
||||
},
|
||||
"taskStatus": {
|
||||
"intent": {
|
||||
"generate": {
|
||||
"running": {
|
||||
"image": "生成中",
|
||||
"video": "生成中",
|
||||
"audio": "生成中",
|
||||
"text": "生成中"
|
||||
}
|
||||
},
|
||||
"regenerate": {
|
||||
"running": {
|
||||
"image": "重新生成中",
|
||||
"video": "重新生成中",
|
||||
"audio": "重新生成中",
|
||||
"text": "重新生成中"
|
||||
}
|
||||
},
|
||||
"modify": {
|
||||
"running": {
|
||||
"image": "修改中",
|
||||
"video": "修改中",
|
||||
"audio": "修改中",
|
||||
"text": "修改中"
|
||||
}
|
||||
},
|
||||
"analyze": {
|
||||
"running": {
|
||||
"image": "分析中",
|
||||
"video": "分析中",
|
||||
"audio": "分析中",
|
||||
"text": "分析中"
|
||||
}
|
||||
},
|
||||
"build": {
|
||||
"running": {
|
||||
"image": "构建中",
|
||||
"video": "构建中",
|
||||
"audio": "构建中",
|
||||
"text": "构建中"
|
||||
}
|
||||
},
|
||||
"convert": {
|
||||
"running": {
|
||||
"image": "转换中",
|
||||
"video": "转换中",
|
||||
"audio": "转换中",
|
||||
"text": "转换中"
|
||||
}
|
||||
},
|
||||
"process": {
|
||||
"running": {
|
||||
"image": "处理中",
|
||||
"video": "处理中",
|
||||
"audio": "处理中",
|
||||
"text": "处理中"
|
||||
}
|
||||
}
|
||||
},
|
||||
"failed": {
|
||||
"image": "处理失败",
|
||||
"video": "处理失败",
|
||||
"audio": "处理失败",
|
||||
"text": "处理失败"
|
||||
}
|
||||
}
|
||||
}
|
||||
31
messages/zh/configModal.json
Normal file
31
messages/zh/configModal.json
Normal file
@@ -0,0 +1,31 @@
|
||||
{
|
||||
"title": "项目全局配置",
|
||||
"saved": "已保存",
|
||||
"autoSave": "自动保存",
|
||||
"visualStyle": "视觉风格",
|
||||
"modelParams": "模型参数",
|
||||
"aspectRatio": "画面比例",
|
||||
"ttsSettings": "旁白配置",
|
||||
"loadingModels": "加载模型列表...",
|
||||
"analysisModel": "分析模型",
|
||||
"characterModel": "人物生成模型",
|
||||
"locationModel": "场景生成模型",
|
||||
"storyboardModel": "分镜图像模型",
|
||||
"editModel": "修图/编辑模型",
|
||||
"videoModel": "视频模型",
|
||||
"videoResolution": "视频分辨率",
|
||||
"ttsVoice": "旁白音色",
|
||||
"ttsRate": "语速",
|
||||
"fetchModelsFailed": "获取用户模型列表失败",
|
||||
"placeholder": "请输入...",
|
||||
"description": "描述",
|
||||
"hint": "提示",
|
||||
"pleaseSelect": "请选择...",
|
||||
"selectModel": "选择模型",
|
||||
"paramConfig": "参数配置",
|
||||
"fixed": "固定",
|
||||
"noParams": "该模型无可配置参数",
|
||||
"confirm": "确认",
|
||||
"cancel": "取消",
|
||||
"delete": "删除"
|
||||
}
|
||||
19
messages/zh/errors.json
Normal file
19
messages/zh/errors.json
Normal file
@@ -0,0 +1,19 @@
|
||||
{
|
||||
"UNAUTHORIZED": "请先登录",
|
||||
"FORBIDDEN": "没有权限访问",
|
||||
"NOT_FOUND": "资源不存在",
|
||||
"INSUFFICIENT_BALANCE": "API余额不足,请充值后重试",
|
||||
"RATE_LIMIT": "请求过于频繁,请 {retryAfter} 秒后重试",
|
||||
"QUOTA_EXCEEDED": "配额已用尽,请稍后重试",
|
||||
"GENERATION_FAILED": "生成失败,请重试",
|
||||
"GENERATION_TIMEOUT": "生成超时,请重试",
|
||||
"SENSITIVE_CONTENT": "内容可能包含敏感信息",
|
||||
"INVALID_PARAMS": "参数错误",
|
||||
"MISSING_CONFIG": "请先完成模型配置",
|
||||
"INTERNAL_ERROR": "服务器错误,请稍后重试",
|
||||
"NETWORK_ERROR": "网络错误,请检查连接",
|
||||
"EXTERNAL_ERROR": "外部服务暂时不可用,请稍后重试",
|
||||
"TASK_NOT_READY": "任务正在处理中",
|
||||
"NO_RESULT": "任务无结果",
|
||||
"CONFLICT": "资源状态冲突"
|
||||
}
|
||||
26
messages/zh/landing.json
Normal file
26
messages/zh/landing.json
Normal file
@@ -0,0 +1,26 @@
|
||||
{
|
||||
"title": "waoowaoo",
|
||||
"subtitle": "AI影视Studio",
|
||||
"enterWorkspace": "进入工作区",
|
||||
"getStarted": "立即体验",
|
||||
"learnMore": "了解更多",
|
||||
"features": {
|
||||
"title": "释放无限创造力",
|
||||
"subtitle": "全流程 AI 辅助,从剧本到成片",
|
||||
"character": {
|
||||
"title": "角色工坊",
|
||||
"description": "打造独一无二的动漫角色,保持高度一致性"
|
||||
},
|
||||
"storyboard": {
|
||||
"title": "智能分镜",
|
||||
"description": "文字一键转分镜,精准把控叙事节奏"
|
||||
},
|
||||
"world": {
|
||||
"title": "世界构建",
|
||||
"description": "沉浸式场景生成,构建宏大的故事背景"
|
||||
}
|
||||
},
|
||||
"footer": {
|
||||
"copyright": "2026 waoowaoo AI. All rights reserved."
|
||||
}
|
||||
}
|
||||
4
messages/zh/layout.json
Normal file
4
messages/zh/layout.json
Normal file
@@ -0,0 +1,4 @@
|
||||
{
|
||||
"title": "AI动漫制作工作台",
|
||||
"description": "使用最先进的AI技术创建专业级动漫内容"
|
||||
}
|
||||
27
messages/zh/modelSection.json
Normal file
27
messages/zh/modelSection.json
Normal file
@@ -0,0 +1,27 @@
|
||||
{
|
||||
"llmModels": "文本模型列表",
|
||||
"imageModels": "图片模型列表",
|
||||
"videoModels": "视频模型列表",
|
||||
"price": "价格",
|
||||
"pricePerMillion": "每百万token",
|
||||
"pricePerImage": "每张",
|
||||
"pricePerVideo": "每条",
|
||||
"name": "名称",
|
||||
"modelId": "模型 ID",
|
||||
"modelName": "模型名称",
|
||||
"provider": "厂商",
|
||||
"resolution": "分辨率",
|
||||
"add": "添加",
|
||||
"addModel": "添加模型",
|
||||
"addNewModel": "添加新模型",
|
||||
"selectPreset": "选择预设模型",
|
||||
"customModel": "自定义模型",
|
||||
"confirmAdd": "确认添加",
|
||||
"cancel": "取消",
|
||||
"done": "完成",
|
||||
"fillComplete": "请填写完整信息",
|
||||
"noModels": "暂无模型,点击上方按钮添加",
|
||||
"noApiKey": "请配置API Key",
|
||||
"batchMode": "批量",
|
||||
"batchModeTooltip": "离线推理,价格便宜50%,24小时内完成"
|
||||
}
|
||||
8
messages/zh/nav.json
Normal file
8
messages/zh/nav.json
Normal file
@@ -0,0 +1,8 @@
|
||||
{
|
||||
"workspace": "工作区",
|
||||
"assetHub": "资产中心",
|
||||
"profile": "设置中心",
|
||||
"signin": "登录",
|
||||
"signup": "注册",
|
||||
"logout": "退出登录"
|
||||
}
|
||||
139
messages/zh/novel-promotion.json
Normal file
139
messages/zh/novel-promotion.json
Normal file
@@ -0,0 +1,139 @@
|
||||
{
|
||||
"stages": {
|
||||
"story": "故事",
|
||||
"script": "剧本",
|
||||
"storyboard": "分镜",
|
||||
"video": "成片",
|
||||
"editor": "AI剪辑",
|
||||
"editorComingSoon": "开发中,关注我们获取最新消息"
|
||||
},
|
||||
"buttons": {
|
||||
"assetLibrary": "资产库",
|
||||
"settings": "配置",
|
||||
"refreshData": "刷新项目数据",
|
||||
"enterVideoGeneration": "进入视频生成 →"
|
||||
},
|
||||
"smartImport": {
|
||||
"title": "开启你的创作之旅",
|
||||
"subtitle": "首先,选择你的创作方式",
|
||||
"manualCreate": {
|
||||
"title": "从第一集开始创作",
|
||||
"description": "从第一集开始,适合边写边播或单集短视频制作",
|
||||
"button": "开始创作"
|
||||
},
|
||||
"smartImport": {
|
||||
"title": "智能全书导入",
|
||||
"description": "上传整本小说或剧本,AI 引擎自动识别章节结构,一键完成智能分集。",
|
||||
"button": "立即导入",
|
||||
"recommended": "推荐"
|
||||
},
|
||||
"upload": {
|
||||
"title": "上传原始素材",
|
||||
"subtitle": "AI 引擎已准备就绪,一键自动分集与格式化",
|
||||
"maxWords": "(最大支持 3 万字)",
|
||||
"textInput": "输入文本内容",
|
||||
"documentUpload": "上传完整文档",
|
||||
"placeholder": "在此处粘贴你的小说章节或剧本内容...",
|
||||
"filePlaceholder": "已上传文件模式",
|
||||
"clickUpload": "点击上传文档",
|
||||
"clearTextFirst": "请先清空左侧文本",
|
||||
"supportedFormats": "支持 Word, TXT 格式",
|
||||
"preview": "预览",
|
||||
"expandPreview": "展开更多",
|
||||
"collapsePreview": "收起预览",
|
||||
"deleteFile": "删除文件",
|
||||
"startAnalysis": "开始智能分析",
|
||||
"back": "返回",
|
||||
"words": "字"
|
||||
},
|
||||
"analyzing": {
|
||||
"title": "AI 正在分析你的故事",
|
||||
"description": "识别章节结构,智能分集中...",
|
||||
"autoSave": "分析完成后将自动保存"
|
||||
},
|
||||
"preview": {
|
||||
"title": "智能分集完成",
|
||||
"episodeCount": "已为你自动分为 {count} 集",
|
||||
"totalWords": "总计 {count} 字",
|
||||
"autoSaved": "✓ 已自动保存",
|
||||
"reanalyze": "重新分析",
|
||||
"confirm": "确认完成",
|
||||
"saving": "保存中...",
|
||||
"episodeList": "剧集列表",
|
||||
"addEpisode": "添加剧集",
|
||||
"averageWords": "平均每集",
|
||||
"episodeContent": "剧集内容",
|
||||
"episodePlaceholder": "输入剧集标题...",
|
||||
"summaryPlaceholder": "输入剧情简介...",
|
||||
"newEpisode": "新剧集",
|
||||
"deleteEpisode": "删除剧集",
|
||||
"deleteConfirm": {
|
||||
"title": "确认删除",
|
||||
"message": "确定要删除「{title}」吗?",
|
||||
"cancel": "取消",
|
||||
"confirm": "确认删除"
|
||||
},
|
||||
"tip": {
|
||||
"title": "提示",
|
||||
"content": "你可以直接编辑标题、简介和内容。点击【确认完成】后,剧集将正式导入到项目中"
|
||||
}
|
||||
},
|
||||
"errors": {
|
||||
"fileTooLarge": "文件过大,请上传小于 10MB 的文件",
|
||||
"docNotSupported": "不支持 .doc 格式,请使用 Word 转换为 .docx",
|
||||
"fileEmpty": "文件内容为空",
|
||||
"fileReadError": "文件读取失败,请重试",
|
||||
"uploadFirst": "请先上传或粘贴内容",
|
||||
"analyzeFailed": "分析失败",
|
||||
"saveFailed": "保存失败"
|
||||
},
|
||||
"cancelConfirm": "确定要取消吗?已分析的剧集将被清空。"
|
||||
},
|
||||
"storyInput": {
|
||||
"currentEditing": "当前正在编辑:{name}",
|
||||
"editingTip": "以下制作流程仅针对本集,如有其他剧集请在左上角切换",
|
||||
"wordCount": "字数:",
|
||||
"assetLibraryTip": {
|
||||
"title": "需要自定义角色和场景?",
|
||||
"description": "点击右上角的「资产库」按钮,可以上传资产设定文档或手动添加角色/场景。AI 将优先使用资产库中的设定进行分析。"
|
||||
},
|
||||
"videoRatio": "画面比例",
|
||||
"visualStyle": "视觉风格",
|
||||
"moreConfig": "更多配置请点击右上角「 配置」按钮",
|
||||
"narration": {
|
||||
"title": "启用旁白配音",
|
||||
"description": "生成 TTS 语音旁白,为视频添加解说"
|
||||
},
|
||||
"creating": "AI 创作中...",
|
||||
"ready": "✓ 配置完成,可以进入下一步",
|
||||
"pleaseInput": "请先输入剧本内容"
|
||||
},
|
||||
"execution": {
|
||||
"selectEpisode": "请先选择剧集",
|
||||
"fillContentFirst": "请先填写内容",
|
||||
"requestAborted": "请求已中断(可能因页面刷新)",
|
||||
"analysisFailed": "资产分析失败",
|
||||
"prepareFailed": "准备失败",
|
||||
"generationFailed": "生成失败",
|
||||
"batchVideoFailed": "批量生成视频失败",
|
||||
"updateFailed": "更新失败",
|
||||
"saveFailed": "保存失败",
|
||||
"storyToScriptRunning": "Story→Script V2 运行中",
|
||||
"scriptToStoryboardRunning": "Script→Storyboard V2 运行中",
|
||||
"storyToScriptFailed": "内容转剧本失败",
|
||||
"scriptToStoryboardFailed": "剧本转分镜失败",
|
||||
"taskStreamTimeout": "任务执行超时,请检查任务是否仍在运行,或重新触发"
|
||||
},
|
||||
"rebuildConfirm": {
|
||||
"storyToScript": {
|
||||
"title": "将重建剧本流程",
|
||||
"message": "检测到当前剧集已有下游分镜数据({storyboardCount} 个分镜,{panelCount} 个镜头面板)。继续执行将清空这些数据并重新生成,是否继续?"
|
||||
},
|
||||
"scriptToStoryboard": {
|
||||
"title": "将重建分镜数据",
|
||||
"message": "检测到当前剧集已有分镜数据({storyboardCount} 个分镜,{panelCount} 个镜头面板)。继续执行将清空当前分镜并重新生成,是否继续?"
|
||||
},
|
||||
"confirm": "继续并清空",
|
||||
"cancel": "取消"
|
||||
}
|
||||
}
|
||||
107
messages/zh/profile.json
Normal file
107
messages/zh/profile.json
Normal file
@@ -0,0 +1,107 @@
|
||||
{
|
||||
"user": "用户",
|
||||
"personalAccount": "个人账户",
|
||||
"availableBalance": "可用余额",
|
||||
"frozen": "冻结",
|
||||
"totalSpent": "已消费",
|
||||
"apiConfig": "API 配置",
|
||||
"rechargeRecords": "充值记录",
|
||||
"billingRecords": "扣费记录",
|
||||
"logout": "退出登录",
|
||||
"accountTransactions": "账户流水",
|
||||
"projectDetails": "项目明细",
|
||||
"summary": "汇总",
|
||||
"transactions": "流水",
|
||||
"noTransactions": "暂无流水记录",
|
||||
"noProjectCosts": "暂无项目费用记录",
|
||||
"noDetails": "该项目暂无费用明细",
|
||||
"noRecords": "暂无记录",
|
||||
"byType": "按类型",
|
||||
"byAction": "按操作",
|
||||
"times": "次",
|
||||
"total": "总计",
|
||||
"filter": "筛选",
|
||||
"allTypes": "全部类型",
|
||||
"recharge": "账户充值",
|
||||
"consume": "服务消费",
|
||||
"balanceAfter": "余额 {amount}",
|
||||
"recordCount": "{count} 条记录",
|
||||
"totalCost": "总计 {amount}",
|
||||
"previousPage": "上一页",
|
||||
"nextPage": "下一页",
|
||||
"pagination": "共 {total} 条,第 {page} / {totalPages} 页",
|
||||
"episodeLabel": "第 {number} 集",
|
||||
"billingDetail": {
|
||||
"imageWithRes": "{count}张 · {resolution}",
|
||||
"image": "{count}张",
|
||||
"videoWithRes": "{count}段 · {resolution}",
|
||||
"video": "{count}段",
|
||||
"tokens": "{count} tokens",
|
||||
"seconds": "{count}秒",
|
||||
"calls": "{count}次"
|
||||
},
|
||||
"apiTypes": {
|
||||
"image": "图片生成",
|
||||
"video": "视频生成",
|
||||
"text": "文本分析",
|
||||
"tts": "语音合成",
|
||||
"voice": "配音",
|
||||
"voice_design": "声音设计",
|
||||
"lip_sync": "口型同步"
|
||||
},
|
||||
"actionTypes": {
|
||||
"image_panel": "分镜生图",
|
||||
"image_character": "角色生图",
|
||||
"image_location": "场景生图",
|
||||
"video_panel": "视频生成",
|
||||
"lip_sync": "口型同步",
|
||||
"voice_line": "配音合成",
|
||||
"voice_design": "声音设计",
|
||||
"asset_hub_voice_design": "素材库声音设计",
|
||||
"regenerate_storyboard_text": "重生成分镜文案",
|
||||
"insert_panel": "插入面板",
|
||||
"panel_variant": "镜头变体",
|
||||
"modify_asset_image": "修图",
|
||||
"regenerate_group": "批量重生成",
|
||||
"asset_hub_image": "素材库生图",
|
||||
"asset_hub_modify": "素材库修图",
|
||||
"analyze_novel": "小说分析",
|
||||
"story_to_script_run": "故事转剧本",
|
||||
"script_to_storyboard_run": "剧本转分镜",
|
||||
"clips_build": "片段合成",
|
||||
"screenplay_convert": "剧本转换",
|
||||
"voice_analyze": "声音分析",
|
||||
"analyze_global": "全局分析",
|
||||
"ai_modify_appearance": "AI 修改角色形象",
|
||||
"ai_modify_location": "AI 修改场景",
|
||||
"ai_modify_shot_prompt": "AI 修改镜头提示词",
|
||||
"analyze_shot_variants": "镜头变体分析",
|
||||
"ai_create_character": "AI 创建角色",
|
||||
"ai_create_location": "AI 创建场景",
|
||||
"reference_to_character": "参考图转角色",
|
||||
"character_profile_confirm": "确认角色档案",
|
||||
"character_profile_batch_confirm": "批量确认角色档案",
|
||||
"episode_split_llm": "章节拆分",
|
||||
"asset_hub_ai_design_character": "素材库 AI 设计角色",
|
||||
"asset_hub_ai_design_location": "素材库 AI 设计场景",
|
||||
"asset_hub_ai_modify_character": "素材库 AI 修改角色",
|
||||
"asset_hub_ai_modify_location": "素材库 AI 修改场景",
|
||||
"asset_hub_reference_to_character": "素材库参考图转角色",
|
||||
"storyboard": "分镜图",
|
||||
"storyboard_candidate": "分镜候选",
|
||||
"character": "角色图",
|
||||
"location": "场景图",
|
||||
"video": "视频",
|
||||
"analyze": "分析",
|
||||
"analyze_character": "角色分析",
|
||||
"analyze_location": "场景分析",
|
||||
"clips": "片段切割",
|
||||
"storyboard_text_plan": "分镜规划",
|
||||
"storyboard_text_detail": "分镜细节",
|
||||
"tts": "语音合成",
|
||||
"regenerate": "重生成",
|
||||
"voice-generate": "配音生成",
|
||||
"voice-design": "声音设计",
|
||||
"lip-sync": "口型同步"
|
||||
}
|
||||
}
|
||||
136
messages/zh/progress.json
Normal file
136
messages/zh/progress.json
Normal file
@@ -0,0 +1,136 @@
|
||||
{
|
||||
"analyzing": "正在分析故事结构...",
|
||||
"splittingClips": "正在分割片段...",
|
||||
"convertingScreenplay": "正在转换为分镜脚本...",
|
||||
"submittingStoryboard": "正在提交分镜...",
|
||||
"step": "第 {current} 步,共 {total} 步",
|
||||
"status": {
|
||||
"completed": "已完成",
|
||||
"failed": "失败",
|
||||
"processing": "进行中",
|
||||
"queued": "排队中",
|
||||
"pending": "未开始"
|
||||
},
|
||||
"stageCard": {
|
||||
"stage": "阶段",
|
||||
"realtimeStream": "实时流",
|
||||
"currentStage": "当前阶段",
|
||||
"outputTitle": "AI 实时输出 · {stage}",
|
||||
"waitingModelOutput": "等待模型输出...",
|
||||
"reasoningNotProvided": "该步骤未返回思考过程"
|
||||
},
|
||||
"runtime": {
|
||||
"waitingExecution": "等待执行",
|
||||
"taskCreated": "任务已创建",
|
||||
"taskStarted": "任务开始处理",
|
||||
"taskCompleted": "任务已完成",
|
||||
"taskFailed": "任务失败",
|
||||
"taskProcessing": "任务处理中...",
|
||||
"llm": {
|
||||
"processing": "模型处理中...",
|
||||
"output": "模型正在输出...",
|
||||
"reasoning": "模型正在推理...",
|
||||
"completed": "模型输出完成",
|
||||
"failed": "模型输出失败"
|
||||
},
|
||||
"stage": {
|
||||
"llmSubmit": "模型请求提交中",
|
||||
"llmStreaming": "模型流式输出中",
|
||||
"llmFallbackNonStream": "模型降级为非流式模式",
|
||||
"llmCompleted": "模型输出完成",
|
||||
"llmFailed": "模型输出失败"
|
||||
}
|
||||
},
|
||||
"taskType": {
|
||||
"generic": "任务",
|
||||
"imagePanel": "分镜图片",
|
||||
"imageCharacter": "角色图片",
|
||||
"imageLocation": "场景图片",
|
||||
"videoPanel": "视频生成",
|
||||
"lipSync": "口型同步",
|
||||
"voiceLine": "配音生成",
|
||||
"voiceDesign": "声音设计",
|
||||
"assetHubVoiceDesign": "资产库声音设计",
|
||||
"regenerateStoryboardText": "重生成分镜文本",
|
||||
"insertPanel": "插入分镜",
|
||||
"panelVariant": "分镜变体",
|
||||
"modifyAssetImage": "图片编辑",
|
||||
"regenerateGroup": "批量重生成",
|
||||
"assetHubImage": "资产中心图片",
|
||||
"assetHubModify": "资产中心编辑",
|
||||
"analyzeNovel": "内容分析",
|
||||
"storyToScriptRun": "剧本拆解",
|
||||
"scriptToStoryboardRun": "分镜生成",
|
||||
"clipsBuild": "片段生成",
|
||||
"screenplayConvert": "剧本转换",
|
||||
"voiceAnalyze": "台词分析",
|
||||
"analyzeGlobal": "全局分析",
|
||||
"aiModifyAppearance": "角色描述修改",
|
||||
"aiModifyLocation": "场景描述修改",
|
||||
"aiModifyShotPrompt": "镜头提示词修改",
|
||||
"analyzeShotVariants": "镜头变体分析",
|
||||
"aiCreateCharacter": "项目角色设计",
|
||||
"aiCreateLocation": "项目场景设计",
|
||||
"referenceToCharacter": "参考图转角色",
|
||||
"characterProfileConfirm": "角色档案确认",
|
||||
"characterProfileBatchConfirm": "批量角色档案确认",
|
||||
"episodeSplitLlm": "智能分集",
|
||||
"assetHubAiDesignCharacter": "资产库角色设计",
|
||||
"assetHubAiDesignLocation": "资产库场景设计",
|
||||
"assetHubAiModifyCharacter": "资产库角色修改",
|
||||
"assetHubAiModifyLocation": "资产库场景修改",
|
||||
"assetHubReferenceToCharacter": "资产库参考图转角色"
|
||||
},
|
||||
"stage": {
|
||||
"received": "任务已接收",
|
||||
"generateCharacterImage": "生成角色图片",
|
||||
"generateLocationImage": "生成场景图片",
|
||||
"generatePanelCandidate": "生成候选分镜图",
|
||||
"generatePanelVideo": "生成分镜视频",
|
||||
"generateVoiceSubmit": "提交配音任务",
|
||||
"generateVoicePersist": "保存配音结果",
|
||||
"voiceDesignSubmit": "提交声音设计任务",
|
||||
"voiceDesignDone": "声音设计完成",
|
||||
"submitLipSync": "提交口型同步任务",
|
||||
"persistLipSync": "保存口型同步结果",
|
||||
"storyboardClip": "生成片段分镜",
|
||||
"regenerateStoryboardPrepare": "准备重生成分镜",
|
||||
"regenerateStoryboardPersist": "保存重生成分镜",
|
||||
"storyToScriptPrepare": "准备剧本拆解参数",
|
||||
"storyToScriptStep": "执行剧本拆解步骤",
|
||||
"storyToScriptPersist": "保存剧本拆解结果",
|
||||
"storyToScriptPersistDone": "剧本拆解结果已保存",
|
||||
"scriptToStoryboardPrepare": "准备分镜生成参数",
|
||||
"scriptToStoryboardStep": "执行分镜生成步骤",
|
||||
"scriptToStoryboardPersist": "保存分镜结果",
|
||||
"scriptToStoryboardPersistDone": "分镜与台词结果已保存",
|
||||
"insertPanelGenerateText": "生成插入镜头文本",
|
||||
"insertPanelPersist": "保存插入镜头",
|
||||
"pollingExternal": "等待外部服务返回",
|
||||
"enqueueFailed": "任务入队失败",
|
||||
"llmProxySubmit": "提交 LLM 任务",
|
||||
"llmProxyExecute": "执行 LLM 任务",
|
||||
"llmProxyPersist": "保存 LLM 结果"
|
||||
},
|
||||
"runConsole": {
|
||||
"storyToScript": "内容到剧本",
|
||||
"scriptToStoryboard": "剧本到分镜",
|
||||
"storyToScriptRunning": "Story→Script 运行中",
|
||||
"scriptToStoryboardRunning": "Script→Storyboard 运行中",
|
||||
"storyToScriptSubtitle": "Story To Script V2",
|
||||
"scriptToStoryboardSubtitle": "Script To Storyboard V2",
|
||||
"stop": "停止",
|
||||
"minimize": "最小化"
|
||||
},
|
||||
"streamStep": {
|
||||
"analyzeCharacters": "角色分析",
|
||||
"analyzeLocations": "场景分析",
|
||||
"splitClips": "片段切分",
|
||||
"screenplayConversion": "剧本转换",
|
||||
"storyboardPlan": "分镜规划",
|
||||
"cinematographyRules": "摄影规则生成",
|
||||
"actingDirection": "演技指导生成",
|
||||
"storyboardDetailRefine": "分镜细节补全",
|
||||
"voiceAnalyze": "台词分析"
|
||||
}
|
||||
}
|
||||
7
messages/zh/providerSection.json
Normal file
7
messages/zh/providerSection.json
Normal file
@@ -0,0 +1,7 @@
|
||||
{
|
||||
"addProvider": "+ 添加提供商",
|
||||
"name": "名称",
|
||||
"add": "添加",
|
||||
"save": "保存",
|
||||
"fillRequired": "请填写必要信息"
|
||||
}
|
||||
70
messages/zh/scriptView.json
Normal file
70
messages/zh/scriptView.json
Normal file
@@ -0,0 +1,70 @@
|
||||
{
|
||||
"title": "剧本视图",
|
||||
"scriptBreakdown": "剧本拆解",
|
||||
"splitCount": "已拆分 {count} 个分镜",
|
||||
"noClips": "暂无分镜,请先在故事视图生成",
|
||||
"segment": {
|
||||
"title": "片段 {index}",
|
||||
"selected": "(选中)"
|
||||
},
|
||||
"inSceneAssets": "剧中资产",
|
||||
"currentSelected": "当前选中: 片段 {number}",
|
||||
"assetView": {
|
||||
"allClips": "全部片段",
|
||||
"viewingClip": "查看片段 {number}"
|
||||
},
|
||||
"asset": {
|
||||
"generateCharacter": "点击生成形象 →",
|
||||
"generateLocation": "点击生成场景 →",
|
||||
"removeCharacterConfirm": "确定要从当前片段移除该角色吗?",
|
||||
"removeLocationConfirm": "确定要从当前片段移除该场景吗?",
|
||||
"removeFromClip": "从当前片段移除",
|
||||
"noAudio": "无音频",
|
||||
"playing": "播放中",
|
||||
"listen": "试听",
|
||||
"activeCharacters": "出场角色",
|
||||
"activeLocations": "出场场景",
|
||||
"selectCharacter": "选择要添加的角色/形象",
|
||||
"selectLocation": "选择要添加的场景",
|
||||
"loadingAssets": "加载资产中...",
|
||||
"appearanceCount": "{count} 个形象",
|
||||
"added": "已添加",
|
||||
"primary": "主形象",
|
||||
"subAppearance": "子形象",
|
||||
"defaultAppearance": "初始形象",
|
||||
"clickToRemove": "点击移除 {name}",
|
||||
"clickToAdd": "点击添加 {name}"
|
||||
},
|
||||
"screenplay": {
|
||||
"scene": "场景 {number}",
|
||||
"location": "场景:",
|
||||
"locationTime": "时间:",
|
||||
"day": "日",
|
||||
"night": "夜",
|
||||
"dawn": "晨",
|
||||
"dusk": "昏",
|
||||
"dialogue": "对白",
|
||||
"action": "动作",
|
||||
"narration": "旁白",
|
||||
"content": "原文内容",
|
||||
"noContent": "暂无内容",
|
||||
"clickToEdit": "点击编辑",
|
||||
"interior": "内景",
|
||||
"exterior": "外景",
|
||||
"characters": "出场角色",
|
||||
"noCharacter": "暂无角色信息",
|
||||
"noLocation": "暂无出场场景",
|
||||
"noCharacterInClip": "暂无出场角色"
|
||||
},
|
||||
"confirm": {
|
||||
"removeCharacter": "确定要从当前片段移除该角色吗?",
|
||||
"removeLocation": "确定要从当前片段移除该场景吗?"
|
||||
},
|
||||
"generate": {
|
||||
"missingAssets": "还有 {count} 个资产未生成形象",
|
||||
"missingAssetsTip": "请先在",
|
||||
"missingAssetsTipLink": "中生成所有出场角色和场景的形象",
|
||||
"generating": "正在生成画面...",
|
||||
"startGenerate": "确认并开始绘制 →"
|
||||
}
|
||||
}
|
||||
168
messages/zh/smartImport.json
Normal file
168
messages/zh/smartImport.json
Normal file
@@ -0,0 +1,168 @@
|
||||
{
|
||||
"title": "开启你的创作之旅",
|
||||
"subtitle": "首先,选择你的创作方式",
|
||||
"manualCreate": {
|
||||
"title": "从第一集开始创作",
|
||||
"description": "从第一集开始,适合边写边播或单集短视频制作",
|
||||
"button": "开始创作"
|
||||
},
|
||||
"manualDesc": "从第一集开始,适合边写边播或单集短视频制作",
|
||||
"startCreate": "开始创作",
|
||||
"smartImport": {
|
||||
"title": "智能文本分集",
|
||||
"description": "上传整本小说或剧本,AI 引擎自动识别章节结构,一键完成智能分集。",
|
||||
"button": "立即导入",
|
||||
"recommended": "推荐"
|
||||
},
|
||||
"markerDetection": {
|
||||
"enable": "优先使用章节标记(如第X集/Episode X)",
|
||||
"tooltip": "自动识别【第X集/章】【Episode/Chapter X】等标记,免费快速"
|
||||
},
|
||||
"smartImportDesc": "上传整本小说或剧本,AI 引擎自动识别章节结构,一键完成智能分集。",
|
||||
"recommended": "推荐",
|
||||
"importNow": "立即导入",
|
||||
"uploadTitle": "上传原始素材",
|
||||
"uploadSubtitle": "AI 引擎已准备就绪,一键自动分集与格式化",
|
||||
"maxWords": "最大支持 3 万字",
|
||||
"textInput": "输入文本内容",
|
||||
"textPlaceholder": "在此处粘贴你的小说章节或剧本内容...",
|
||||
"uploadDoc": "上传完整文档",
|
||||
"clickUpload": "点击上传文档",
|
||||
"clearText": "请先清空左侧文本",
|
||||
"supportFormat": "支持 Word, TXT 格式",
|
||||
"fileMax": "文件最大 3万字",
|
||||
"words": "字",
|
||||
"startAnalyzing": "开始分析",
|
||||
"analyzing": {
|
||||
"title": "AI 正在分析你的故事",
|
||||
"description": "识别章节结构,智能分集中...",
|
||||
"autoSave": "分析完成后将自动保存"
|
||||
},
|
||||
"analyzingDesc": "识别章节结构,智能分集中...",
|
||||
"autoSave": "分析完成后将自动保存",
|
||||
"splitComplete": "智能分集完成",
|
||||
"splitResult": "已为你自动分为 {count} 集,总计 {words} 字",
|
||||
"saved": "已自动保存",
|
||||
"reAnalyze": "重新分析",
|
||||
"confirmComplete": "确认完成",
|
||||
"saving": "保存中...",
|
||||
"episodeList": "剧集列表",
|
||||
"episodes": "集",
|
||||
"episode": "第 {num} 集",
|
||||
"addEpisode": "添加剧集",
|
||||
"newEpisode": "新剧集",
|
||||
"avgWords": "平均每集",
|
||||
"episodeContent": "剧集内容",
|
||||
"plotSummary": "剧情简介",
|
||||
"enterTitle": "输入剧集标题...",
|
||||
"enterSummary": "输入剧情简介...",
|
||||
"confirmDelete": "确认删除",
|
||||
"deleteConfirmMsg": "确定要删除「{title}」吗?",
|
||||
"preview": {
|
||||
"title": "智能分集完成",
|
||||
"episodeCount": "已为你自动分为 {count} 集",
|
||||
"totalWords": "总计 {count} 字",
|
||||
"autoSaved": "✓ 已自动保存",
|
||||
"reanalyze": "重新分析",
|
||||
"confirm": "确认完成",
|
||||
"saving": "保存中...",
|
||||
"episodeList": "剧集列表",
|
||||
"addEpisode": "添加剧集",
|
||||
"averageWords": "平均每集",
|
||||
"episodeContent": "剧集内容",
|
||||
"episodePlaceholder": "输入剧集标题...",
|
||||
"summaryPlaceholder": "输入剧情简介...",
|
||||
"newEpisode": "新剧集",
|
||||
"deleteEpisode": "删除剧集",
|
||||
"deleteConfirm": {
|
||||
"title": "确认删除",
|
||||
"message": "确定要删除「{title}」吗?",
|
||||
"cancel": "取消",
|
||||
"confirm": "确认删除"
|
||||
},
|
||||
"tip": {
|
||||
"title": "提示",
|
||||
"content": "你可以直接编辑标题、简介和内容。点击【确认完成】后,剧集将正式导入到项目中"
|
||||
}
|
||||
},
|
||||
"collapsePreview": "收起预览",
|
||||
"expandMore": "展开更多",
|
||||
"deleteFile": "删除文件",
|
||||
"fileTooLarge": "文件大小不能超过 10MB",
|
||||
"docNotSupported": "暂不支持 .doc 格式,请将文件另存为 .docx 或 .txt 格式后重试",
|
||||
"fileEmpty": "文件内容为空",
|
||||
"fileReadError": "文件读取失败,请确保文件格式正确",
|
||||
"uploadFirst": "请先上传文件或粘贴文本",
|
||||
"analyzeFailed": "分析失败",
|
||||
"saveFailed": "保存失败",
|
||||
"cancelConfirm": "确定要取消吗?已分析的剧集将被清空。",
|
||||
"deleteEpisode": "删除剧集",
|
||||
"upload": {
|
||||
"title": "上传原始素材",
|
||||
"subtitle": "AI 引擎已准备就绪,一键自动分集与格式化",
|
||||
"maxWords": "(最大支持 3 万字)",
|
||||
"textInput": "输入文本内容",
|
||||
"documentUpload": "上传完整文档",
|
||||
"placeholder": "在此处粘贴你的小说章节或剧本内容...",
|
||||
"filePlaceholder": "已上传文件模式",
|
||||
"clickUpload": "点击上传文档",
|
||||
"clearTextFirst": "请先清空左侧文本",
|
||||
"supportedFormats": "支持 Word, TXT 格式",
|
||||
"preview": "预览",
|
||||
"expandPreview": "展开更多",
|
||||
"collapsePreview": "收起预览",
|
||||
"deleteFile": "删除文件",
|
||||
"startAnalysis": "开始分析",
|
||||
"back": "返回",
|
||||
"words": "字"
|
||||
},
|
||||
"errors": {
|
||||
"fileTooLarge": "文件过大,请上传小于 10MB 的文件",
|
||||
"docNotSupported": "不支持 .doc 格式,请使用 Word 转换为 .docx",
|
||||
"fileEmpty": "文件内容为空",
|
||||
"fileReadError": "文件读取失败,请重试",
|
||||
"uploadFirst": "请先上传或粘贴内容",
|
||||
"analyzeFailed": "分析失败",
|
||||
"saveFailed": "保存失败",
|
||||
"analysisModelNotConfigured": "请先在设置页面配置分析模型"
|
||||
},
|
||||
"common": {
|
||||
"edit": "编辑",
|
||||
"delete": "删除",
|
||||
"save": "保存",
|
||||
"cancel": "取消"
|
||||
},
|
||||
"markerDetected": {
|
||||
"title": "检测到分集标记",
|
||||
"description": "检测到 {count} 个「{type}」格式的分集标记",
|
||||
"preview": "预览分集结果",
|
||||
"useMarker": "使用标识符分集",
|
||||
"useMarkerDesc": "快速、免费",
|
||||
"useAI": "使用 AI 智能分集",
|
||||
"useAIDesc": "智能分析、消耗积分",
|
||||
"cancel": "取消",
|
||||
"totalCount": "共 {count} 集",
|
||||
"markerTypes": {
|
||||
"episode": "第X集",
|
||||
"chapter": "第X章",
|
||||
"act": "第X幕",
|
||||
"scene": "X-Y【场景】",
|
||||
"numbered": "数字编号",
|
||||
"numberedEscaped": "数字编号(转义)",
|
||||
"numberedDirect": "数字+中文",
|
||||
"episodeEn": "Episode X",
|
||||
"chapterEn": "Chapter X",
|
||||
"boldNumber": "**数字**",
|
||||
"pureNumber": "纯数字"
|
||||
}
|
||||
},
|
||||
"globalAnalysis": {
|
||||
"title": "全局资产分析",
|
||||
"description": "一键提取全书的角色和场景,确保角色形象在所有剧集中保持一致",
|
||||
"startButton": "立即分析",
|
||||
"analyzing": "分析中...",
|
||||
"success": "全局分析完成:新增 {characters} 个角色,{locations} 个场景",
|
||||
"failed": "全局分析失败",
|
||||
"confirmAndAnalyze": "确认并开启全局分析"
|
||||
}
|
||||
}
|
||||
7
messages/zh/stages.json
Normal file
7
messages/zh/stages.json
Normal file
@@ -0,0 +1,7 @@
|
||||
{
|
||||
"config": "1. 配置",
|
||||
"assets": "2. 资产分析",
|
||||
"storyboard": "3. 分镜编辑",
|
||||
"videos": "4. 视频生成",
|
||||
"voice": "5. 配音生成"
|
||||
}
|
||||
374
messages/zh/storyboard.json
Normal file
374
messages/zh/storyboard.json
Normal file
@@ -0,0 +1,374 @@
|
||||
{
|
||||
"phases": {
|
||||
"planning": "规划分镜",
|
||||
"cinematography": "设计摄影",
|
||||
"acting": "设计演技",
|
||||
"detail": "补充细节"
|
||||
},
|
||||
"prompts": {
|
||||
"imagePrompt": "图片提示词",
|
||||
"aiInstruction": "AI修改指令",
|
||||
"supportReference": "(支持@引用资产库)",
|
||||
"instructionPlaceholder": "例如:把场景改为@医院_白天,人物改为@主角A",
|
||||
"selectAsset": "选择资产",
|
||||
"character": "人物",
|
||||
"location": "场景",
|
||||
"referencedAssets": "已引用资产:",
|
||||
"removeAsset": "移除此资产",
|
||||
"aiModify": "AI修改并生成图片",
|
||||
"aiModifying": "AI修改中...",
|
||||
"aiModifyTip": "点击后将自动保存提示词并生成新图片",
|
||||
"save": "保存",
|
||||
"currentPrompt": "当前提示词",
|
||||
"enterInstruction": "请输入修改指令",
|
||||
"modifyFailed": "操作失败: {error}",
|
||||
"updateFailed": "更新失败: {error}",
|
||||
"enterContinuation": "请输入续写内容",
|
||||
"appendTitle": "续写内容",
|
||||
"appendDescription": "输入新的SRT内容,系统会自动切分并生成新的镜头,追加到当前列表末尾",
|
||||
"appendSubmit": "续写并生成镜头",
|
||||
"appendSuccess": "续写成功!新镜头已追加到列表末尾",
|
||||
"appendFailed": "续写失败: {error}",
|
||||
"customStyle": "自定义风格"
|
||||
},
|
||||
"group": {
|
||||
"generating": "生成中...",
|
||||
"hasSynced": "✓ 已生成",
|
||||
"failed": "失败",
|
||||
"retry": "重试",
|
||||
"regenerate": "重新生成所有",
|
||||
"generateAll": "批量生成全部",
|
||||
"expand": "展开",
|
||||
"collapse": "收起",
|
||||
"addPanel": "添加镜头",
|
||||
"regenerating": "重新生成中...",
|
||||
"aiAnalyzing": "AI 分析中...",
|
||||
"regenerateText": "重新生成文字",
|
||||
"generateMissingImages": "生成该片段所有未有图片的镜头",
|
||||
"segment": "片段",
|
||||
"addAtStart": "在开头添加新分镜组",
|
||||
"insertHere": "在此插入新分镜组"
|
||||
},
|
||||
"header": {
|
||||
"title": "分镜编辑",
|
||||
"panels": "个镜头",
|
||||
"submit": "提交生成",
|
||||
"submitting": "提交中...",
|
||||
"storyboardPanel": "分镜面板",
|
||||
"segments": "个片段",
|
||||
"segmentsCount": "共 {count} 个片段,",
|
||||
"panelsCount": "{count} 个镜头",
|
||||
"generatingStatus": "({count} 个生成中)",
|
||||
"generateAllPanels": "生成所有镜头",
|
||||
"generatePendingPanels": "生成{count}个未有图片的镜头",
|
||||
"downloadAll": "下载全部",
|
||||
"downloading": "打包中...",
|
||||
"noImages": "没有可下载的图片",
|
||||
"downloadAllImages": "下载所有图片",
|
||||
"generateVideo": "生成视频 →",
|
||||
"back": "← 返回",
|
||||
"concurrencyLimit": "并发上限 {count}"
|
||||
},
|
||||
"panel": {
|
||||
"shotType": "景别:",
|
||||
"duration": "秒",
|
||||
"location": "场景:",
|
||||
"characters": "角色:",
|
||||
"description": "描述:",
|
||||
"text": "对应文本:",
|
||||
"regenerate": "重新生成",
|
||||
"delete": "删除",
|
||||
"insertBefore": "在此前插入",
|
||||
"insertAfter": "在此后插入",
|
||||
"moveUp": "上移",
|
||||
"moveDown": "下移",
|
||||
"plot": "剧情:",
|
||||
"summary": "总结:",
|
||||
"pov": "视角:",
|
||||
"focus": "焦点:",
|
||||
"mode": "模式:",
|
||||
"shot": "镜头",
|
||||
"segment": "片段",
|
||||
"stylePrompt": "画风/提示词",
|
||||
"shotMode": "景别/模式",
|
||||
"regenerateImage": "重新生成图片",
|
||||
"generateImage": "生成图片",
|
||||
"cardView": "卡片视图",
|
||||
"tableView": "表格视图",
|
||||
"shotTypeLabel": "镜头类型",
|
||||
"cameraMove": "镜头运动",
|
||||
"sourceText": "对应原文",
|
||||
"sceneDescription": "画面描述",
|
||||
"videoPrompt": "视频提示词",
|
||||
"videoPromptHint": "建议描述主体动作、环境、镜头语言",
|
||||
"locationLabel": "场景",
|
||||
"editLocation": "编辑场景",
|
||||
"characterLabel": "角色",
|
||||
"characterLabelWithCount": "角色 ({count})",
|
||||
"editCharacter": "编辑角色",
|
||||
"select": "+ 选择",
|
||||
"add": "+ 添加",
|
||||
"noLocation": "未选择场景",
|
||||
"locationNotEdited": "暂未编辑场景",
|
||||
"noCharacters": "未选择角色",
|
||||
"charactersNotEdited": "暂未编辑角色",
|
||||
"shotTypePlaceholder": "俯拍中景...",
|
||||
"cameraMovePlaceholder": "缓推、固定...",
|
||||
"videoPromptPlaceholder": "用于视频生成的提示词...",
|
||||
"sceneDescriptionPlaceholder": "描述画面主体、构图、光线、情绪",
|
||||
"selectCharacter": "选择角色",
|
||||
"selectLocation": "选择场景",
|
||||
"noCharacterAssets": "暂无角色资产",
|
||||
"noLocationAssets": "暂无场景资产",
|
||||
"selected": "已选择",
|
||||
"defaultAppearance": "初始形象",
|
||||
"newPanelDescription": "新镜头描述",
|
||||
"noShotType": "未设置镜头"
|
||||
},
|
||||
"image": {
|
||||
"generating": "生成中...",
|
||||
"regenerate": "重新生成",
|
||||
"edit": "编辑",
|
||||
"editImage": "修图",
|
||||
"candidate": "候选图",
|
||||
"selectCandidate": "选择候选",
|
||||
"variants": "变体",
|
||||
"generateVariants": "生成变体",
|
||||
"forceRegenerate": "强制重新生成",
|
||||
"failed": "生成失败",
|
||||
"clickToPreview": "点击放大预览",
|
||||
"enlargePreview": "放大预览",
|
||||
"candidateCount": "候选 {count}",
|
||||
"candidateGenerating": "{count} 张生成中",
|
||||
"selectingCandidate": "选择候选图中...",
|
||||
"confirmCandidate": "确认选择",
|
||||
"cancelSelection": "取消选择",
|
||||
"noValidCandidates": "暂无有效候选图",
|
||||
"selectCount": "选择生成数量",
|
||||
"generateMultiple": "生成多张候选",
|
||||
"generateCount": "生成 {count} 张",
|
||||
"undoShort": "返回"
|
||||
},
|
||||
"candidate": {
|
||||
"title": "选择候选图",
|
||||
"select": "选择",
|
||||
"cancel": "取消",
|
||||
"noImages": "暂无候选图",
|
||||
"original": "原图"
|
||||
},
|
||||
"variant": {
|
||||
"title": "图片变体",
|
||||
"generate": "生成变体",
|
||||
"select": "使用此图",
|
||||
"close": "关闭",
|
||||
"shotTitle": "镜头变体 - 基于 #{number}",
|
||||
"originalDescription": "原镜头描述",
|
||||
"noDescription": "无描述",
|
||||
"noImage": "无图片",
|
||||
"shotNum": "镜头 {number}",
|
||||
"aiRecommend": "AI 推荐变体",
|
||||
"reanalyze": "重新分析",
|
||||
"shotType": "景别:",
|
||||
"cameraMove": "运镜:",
|
||||
"generating": "生成中",
|
||||
"clickToAnalyze": "点击重新分析获取 AI 推荐",
|
||||
"customInstruction": "或自定义指令",
|
||||
"customPlaceholder": "输入你想要的镜头效果,如:改为反打视角,聚焦另一个角色的表情...",
|
||||
"includeCharacter": "引用角色形象",
|
||||
"includeLocation": "引用场景图",
|
||||
"customVariant": "自定义变体",
|
||||
"defaultShotType": "中景",
|
||||
"defaultCameraMove": "固定",
|
||||
"useCustomGenerate": "使用自定义生成",
|
||||
"analyzeFailed": "分析失败",
|
||||
"creativeScore": "创意 {score}/5"
|
||||
},
|
||||
"insert": {
|
||||
"title": "插入新镜头",
|
||||
"position": "插入位置",
|
||||
"before": "在第 {number} 镜头前",
|
||||
"after": "在第 {number} 镜头后",
|
||||
"content": "镜头内容",
|
||||
"shotType": "景别",
|
||||
"location": "场景",
|
||||
"characters": "角色",
|
||||
"description": "描述",
|
||||
"text": "对应文本",
|
||||
"placeholder": {
|
||||
"shotType": "选择景别...",
|
||||
"location": "输入场景...",
|
||||
"characters": "输入角色,用逗号分隔",
|
||||
"description": "描述画面内容...",
|
||||
"text": "对应的剧本文本..."
|
||||
},
|
||||
"insert": "插入",
|
||||
"cancel": "取消"
|
||||
},
|
||||
"common": {
|
||||
"actions": "操作",
|
||||
"add": "添加",
|
||||
"cancel": "取消",
|
||||
"confirm": "确认",
|
||||
"copy": "复制",
|
||||
"delete": "删除",
|
||||
"download": "下载",
|
||||
"edit": "编辑",
|
||||
"generate": "生成",
|
||||
"loading": "加载中...",
|
||||
"none": "无",
|
||||
"unknownError": "未知错误",
|
||||
"preview": "预览",
|
||||
"refresh": "刷新",
|
||||
"regenerate": "重新生成",
|
||||
"deleting": "删除中",
|
||||
"editing": "编辑中",
|
||||
"saving": "保存中...",
|
||||
"saveFailed": "保存失败,修改尚未同步",
|
||||
"retrySave": "重试保存",
|
||||
"save": "保存",
|
||||
"status": "状态",
|
||||
"submitFailed": "提交失败",
|
||||
"upload": "上传"
|
||||
},
|
||||
"confirm": {
|
||||
"deletePanel": "确定要删除这个镜头吗?删除后无法恢复。",
|
||||
"deleteGroup": "确定要删除这整组分镜吗?\n\n这将删除该片段下的所有 {count} 个镜头,此操作不可撤销!"
|
||||
},
|
||||
"messages": {
|
||||
"episodeNotFound": "没有找到剧集信息",
|
||||
"downloadFailed": "下载失败: {error}",
|
||||
"panelNotFound": "未找到镜头信息",
|
||||
"modifyFailed": "修改失败: {error}",
|
||||
"selectCandidateFailed": "选择失败: {error}",
|
||||
"insertPanelFailed": "插入分镜失败: {error}",
|
||||
"addPanelFailed": "添加分镜失败: {error}",
|
||||
"deletePanelFailed": "删除失败: {error}",
|
||||
"deleteGroupFailed": "删除分镜组失败: {error}",
|
||||
"regenerateGroupFailed": "重新生成分镜失败: {error}",
|
||||
"addGroupFailed": "添加分镜组失败: {error}",
|
||||
"moveGroupFailed": "移动分镜组失败: {error}",
|
||||
"batchGenerateCompleted": "批量生成完成:\n成功: {succeeded}\n失败: {failed}\n\n部分错误: {errors}",
|
||||
"batchGenerateFailed": "批量生成失败: {error}"
|
||||
},
|
||||
"canvas": {
|
||||
"emptyTitle": "暂无分镜数据",
|
||||
"emptyDescription": "请先生成Clips和文字分镜,或点击上方按钮添加分镜组"
|
||||
},
|
||||
"imageEdit": {
|
||||
"title": "编辑分镜",
|
||||
"subtitle": "输入修改指令,可选择上传参考图片和资产",
|
||||
"promptPlaceholder": "描述你想要修改的内容,例如:改变背景颜色、调整人物表情...",
|
||||
"referenceImagesLabel": "参考图片",
|
||||
"referenceImagesHint": "(可选,支持粘贴)",
|
||||
"start": "开始编辑",
|
||||
"selectAsset": "选择资产",
|
||||
"selectedAssetsLabel": "参考资产",
|
||||
"selectedAssetsCount": "{count}个",
|
||||
"addAsset": "添加资产",
|
||||
"noAssets": "暂无资产,点击“添加资产”选择"
|
||||
},
|
||||
"screenplay": {
|
||||
"tabs": {
|
||||
"formatted": "剧本格式",
|
||||
"original": "原文"
|
||||
},
|
||||
"scene": "场景 {number}",
|
||||
"characters": "出场角色",
|
||||
"voiceover": "旁白",
|
||||
"parseFailedTitle": "剧本格式解析失败",
|
||||
"parseFailedDescription": "请查看原文内容"
|
||||
},
|
||||
"assets": {
|
||||
"character": {
|
||||
"confirming": "确认中...",
|
||||
"editing": "编辑中..."
|
||||
},
|
||||
"image": {
|
||||
"undo": "撤销到上一版本"
|
||||
},
|
||||
"location": {
|
||||
"generateImage": "生成图片"
|
||||
},
|
||||
"stage": {
|
||||
"analyzing": "分析中..."
|
||||
}
|
||||
},
|
||||
"video": {
|
||||
"toolbar": {
|
||||
"showPending": "待生成"
|
||||
},
|
||||
"panelCard": {
|
||||
"forceRegenerate": "强制重新生成(卡住时使用)"
|
||||
}
|
||||
},
|
||||
"smartImport": {
|
||||
"errors": {
|
||||
"analyzeFailed": "分析失败"
|
||||
},
|
||||
"preview": {
|
||||
"reanalyze": "重新分析"
|
||||
},
|
||||
"smartImport": {
|
||||
"recommended": "推荐"
|
||||
}
|
||||
},
|
||||
"aiData": {
|
||||
"title": "AI数据编辑器",
|
||||
"subtitle": "Panel {number} - 发送给图片生成AI的完整数据",
|
||||
"basicData": "分镜基础数据",
|
||||
"shotType": "镜头类型",
|
||||
"cameraMove": "镜头运动",
|
||||
"shotTypePlaceholder": "仰拍、全景、平视、中景...",
|
||||
"cameraMovePlaceholder": "缓推、固定、跟随...",
|
||||
"scene": "场景(只读)",
|
||||
"notSelected": "未选择",
|
||||
"summary": "场景总结",
|
||||
"characters": "角色(只读)",
|
||||
"plot": "剧情",
|
||||
"summarize": "总结",
|
||||
"visualDescription": "视觉描述",
|
||||
"videoPrompt": "视频提示词",
|
||||
"negativePrompt": "负面提示词",
|
||||
"save": "保存",
|
||||
"cancel": "取消",
|
||||
"lightingDirection": "光照方向",
|
||||
"lightingQuality": "光照质感",
|
||||
"depthOfField": "景深",
|
||||
"colorTone": "色调",
|
||||
"characterPosition": "角色位置规则",
|
||||
"position": "位置",
|
||||
"posture": "姿势",
|
||||
"facing": "朝向",
|
||||
"photographyRules": "摄影规则 (photography_rules)",
|
||||
"viewData": "查看数据",
|
||||
"jsonPreview": "JSON 预览",
|
||||
"actingNotes": "演技指导 (acting_notes)",
|
||||
"actingTitle": "演技指导",
|
||||
"actingDescription": "表演指令",
|
||||
"noActingData": "无演技数据"
|
||||
},
|
||||
"insertModal": {
|
||||
"insertBetween": "在 #{before} 和 #{after} 之间插入",
|
||||
"panel": "镜头",
|
||||
"noImage": "无图片",
|
||||
"insertAtEnd": "末尾",
|
||||
"aiAnalyze": "AI 自动分析",
|
||||
"analyzing": "AI 分析中...",
|
||||
"insert": "插入",
|
||||
"inserting": "插入中...",
|
||||
"placeholder": "可选:输入补充说明,如添加一个反应镜头..."
|
||||
},
|
||||
"panelActions": {
|
||||
"insertPanel": "插入分镜",
|
||||
"panelVariant": "镜头变体",
|
||||
"insertHere": "在此处插入分镜",
|
||||
"generateVariant": "基于此镜头生成变体",
|
||||
"needImage": "需要先生成图片",
|
||||
"deleteShot": "删除镜头",
|
||||
"pasteSrtPlaceholder": "粘贴新的SRT内容..."
|
||||
},
|
||||
"firstLastFrame": {
|
||||
"placeholder": "输入首尾帧视频提示词...",
|
||||
"modelTitle": "首尾帧模型"
|
||||
}
|
||||
}
|
||||
210
messages/zh/video.json
Normal file
210
messages/zh/video.json
Normal file
@@ -0,0 +1,210 @@
|
||||
{
|
||||
"panelCard": {
|
||||
"play": "播放",
|
||||
"pause": "暂停",
|
||||
"retry": "重试",
|
||||
"regenerate": "重新生成",
|
||||
"download": "下载",
|
||||
"edit": "编辑",
|
||||
"save": "保存",
|
||||
"cancel": "取消",
|
||||
"generating": "生成中...",
|
||||
"failed": "失败",
|
||||
"lipSync": "口型同步",
|
||||
"lipSyncVideo": "口型同步视频",
|
||||
"lipSyncLabel": "口型同步",
|
||||
"lipSyncTitle": "口型同步",
|
||||
"original": "原始",
|
||||
"synced": "同步",
|
||||
"videoFixed": "✓ 视频",
|
||||
"imagePreview": "图片预览",
|
||||
"playVoice": "播放配音",
|
||||
"stopVoice": "停止",
|
||||
"noVoice": "暂无配音",
|
||||
"forceRegenerate": "强制重新生成(卡住时使用)",
|
||||
"regenerateVideo": "重新生成视频",
|
||||
"lipSyncStatus": "口型同步中...",
|
||||
"lipSyncInProgress": "正在进行口型同步...",
|
||||
"lipSyncMayTakeMinutes": "这可能需要几分钟时间",
|
||||
"audioEnabled": "音频已开启",
|
||||
"audioDisabled": "音频已关闭",
|
||||
"isSynced": "(已同步)",
|
||||
"needVideo": "(请先生成视频)",
|
||||
"needAudio": "(请先生成音频)",
|
||||
"generateAudio": "生成音频",
|
||||
"regenerateLipSync": "重新生成口型同步",
|
||||
"editPrompt": "编辑提示词",
|
||||
"clickToEditPrompt": "点击编辑提示词...",
|
||||
"shot": "镜头 {number}",
|
||||
"unknownShotType": "未知景别",
|
||||
"correspondingText": "对应原文",
|
||||
"generateVideo": "生成视频",
|
||||
"selectModel": "选择视频模型",
|
||||
"selectVoice": "选择要使用的配音:",
|
||||
"willAutoPad": "(将自动填充)",
|
||||
"autoPadding": "填充",
|
||||
"redo": "重新",
|
||||
"generatingAudio": "生成中",
|
||||
"error": {
|
||||
"audioFailed": "生成音频失败"
|
||||
},
|
||||
"batchMode": "批量模式",
|
||||
"batchModeDesc": "离线推理,价格便宜50%,24小时内完成",
|
||||
"batchModeEnabled": "已开启批量模式",
|
||||
"batchModeDisabled": "批量模式已关闭"
|
||||
},
|
||||
"promptModal": {
|
||||
"title": "编辑镜头 #{number} 视频提示词",
|
||||
"shotType": "景别:",
|
||||
"duration": "秒",
|
||||
"location": "场景:",
|
||||
"locationUnknown": "未知",
|
||||
"characters": "角色:",
|
||||
"charactersNone": "无",
|
||||
"description": "描述:",
|
||||
"text": "对应文本:",
|
||||
"promptLabel": "视频提示词",
|
||||
"placeholder": "输入视频提示词...",
|
||||
"tip": "提示:视频模型不识别角色名字,请用外貌特征描述,如\"黑发蓝眸的年轻男子\"而非\"Victor\"",
|
||||
"save": "保存",
|
||||
"cancel": "取消"
|
||||
},
|
||||
"toolbar": {
|
||||
"title": "成片生成",
|
||||
"filter": "筛选",
|
||||
"viewAll": "查看全部",
|
||||
"showGenerated": "已生成",
|
||||
"showPending": "待生成",
|
||||
"showFailed": "失败",
|
||||
"totalShots": "共 {count} 个镜头",
|
||||
"generatingShots": "{count} 个生成中",
|
||||
"completedShots": "{count} 个已生成",
|
||||
"failedShots": "{count} 个失败",
|
||||
"generateAll": "生成所有视频",
|
||||
"batchConfigTitle": "批量生成参数",
|
||||
"batchConfigDesc": "先选择模型与参数,再一键生成所有视频",
|
||||
"confirmGenerateAll": "确认并生成全部",
|
||||
"confirming": "提交中...",
|
||||
"noVideos": "没有可下载的视频",
|
||||
"downloadCount": "下载 {count} 个视频",
|
||||
"packing": "打包中...",
|
||||
"downloadAll": "下载全部",
|
||||
"enterEditor": "进入视频剪辑器",
|
||||
"enterEdit": "进入剪辑",
|
||||
"back": "返回"
|
||||
},
|
||||
"stage": {
|
||||
"title": "视频生成",
|
||||
"generateAll": "批量生成全部",
|
||||
"regenerateFailed": "重试失败项",
|
||||
"downloadAll": "下载全部视频",
|
||||
"enterEditor": "进入剪辑器",
|
||||
"lipSyncStatus": "口型同步中...",
|
||||
"hasSynced": "✓ 已生成",
|
||||
"generating": "生成中...",
|
||||
"downloading": "下载中...",
|
||||
"downloadProgress": "正在准备视频文件... {current}/{total}",
|
||||
"noVideos": "暂无已生成的视频",
|
||||
"scrollTo": "跳转到镜头",
|
||||
"error": {
|
||||
"saveFailed": "保存视频提示词失败",
|
||||
"lipSyncFailed": "口型同步失败",
|
||||
"fetchVideosFailed": "获取视频列表失败"
|
||||
},
|
||||
"downloadFailed": "下载失败",
|
||||
"unknownError": "未知错误"
|
||||
},
|
||||
"firstLastFrame": {
|
||||
"title": "首尾帧设置",
|
||||
"firstFrame": "首帧",
|
||||
"lastFrame": "尾帧",
|
||||
"range": "镜头 {from} → 镜头 {to}",
|
||||
"link": "链接",
|
||||
"unlink": "解除链接",
|
||||
"unlinkAction": "取消链接",
|
||||
"asLastFrameFor": "作为镜头 {number} 的尾帧",
|
||||
"asFirstFrameFor": "作为镜头 {number} 的首帧",
|
||||
"customPrompt": "自定义提示词",
|
||||
"promptPlaceholder": "输入首尾帧视频提示词...",
|
||||
"useDefault": "使用默认",
|
||||
"generate": "生成首尾帧视频",
|
||||
"generated": "首尾帧视频已生成",
|
||||
"model": "模型",
|
||||
"withAudio": "包含音频",
|
||||
"audioOn": "开",
|
||||
"audioOff": "关",
|
||||
"linkToNext": "链接到下一镜头(首尾帧)",
|
||||
"asLastFrame": "作为镜头 {number} 的尾帧",
|
||||
"thenTransitionTo": "然后镜头转换到"
|
||||
},
|
||||
"editor": {
|
||||
"alert": {
|
||||
"saveSuccess": "保存成功",
|
||||
"saveFailed": "保存失败",
|
||||
"exportStarted": "导出任务已开始,请稍候...",
|
||||
"exportFailed": "导出失败"
|
||||
},
|
||||
"toolbar": {
|
||||
"back": "← 返回",
|
||||
"saveDirty": "保存 *",
|
||||
"saved": "已保存",
|
||||
"export": "导出视频"
|
||||
},
|
||||
"left": {
|
||||
"title": "素材库",
|
||||
"description": "从视频阶段导入的片段将显示在这里"
|
||||
},
|
||||
"right": {
|
||||
"title": "属性",
|
||||
"clipLabel": "片段:",
|
||||
"clipFallback": "片段 {index}",
|
||||
"durationLabel": "时长:",
|
||||
"transitionLabel": "转场到下一片段",
|
||||
"deleteConfirm": "确定删除此片段?",
|
||||
"deleteClip": "删除片段",
|
||||
"selectClipHint": "选择一个片段查看属性"
|
||||
},
|
||||
"preview": {
|
||||
"emptyStartEditing": "添加素材开始编辑"
|
||||
},
|
||||
"timeline": {
|
||||
"zoomLabel": "缩放:",
|
||||
"videoTrack": "视频",
|
||||
"emptyHint": "从素材库拖拽视频片段到这里",
|
||||
"audioTrack": "配音",
|
||||
"audioBadge": "配"
|
||||
},
|
||||
"transition": {
|
||||
"title": "转场效果",
|
||||
"duration": "持续时间",
|
||||
"options": {
|
||||
"none": "无",
|
||||
"dissolve": "溶解",
|
||||
"fade": "淡入淡出",
|
||||
"slide": "滑动"
|
||||
}
|
||||
}
|
||||
},
|
||||
"errors": {
|
||||
"unknownError": "未知错误"
|
||||
},
|
||||
"capability": {
|
||||
"generationMode": "生成模式",
|
||||
"generateAudio": "生成音频",
|
||||
"duration": "时长",
|
||||
"fps": "帧率",
|
||||
"resolution": "分辨率",
|
||||
"aspectRatio": "画幅比例",
|
||||
"reasoningEffort": "推理强度",
|
||||
"voice": "音色",
|
||||
"rate": "语速",
|
||||
"mode": "模式"
|
||||
},
|
||||
"unit": {
|
||||
"second": "秒",
|
||||
"frame": "帧"
|
||||
},
|
||||
"common": {
|
||||
"generate": "生成"
|
||||
}
|
||||
}
|
||||
254
messages/zh/voice.json
Normal file
254
messages/zh/voice.json
Normal file
@@ -0,0 +1,254 @@
|
||||
{
|
||||
"title": "台词配音",
|
||||
"linesCount": "共 {count} 条台词,",
|
||||
"audioGeneratedCount": "{count} 条已生成音频",
|
||||
"emotionPrompt": "情绪提示词",
|
||||
"emotionPromptTip": "(不填则使用台词自参考)",
|
||||
"emotionPlaceholder": "如:laugh,仅支持英文...",
|
||||
"emotionStrength": "情绪强度",
|
||||
"flat": "平淡",
|
||||
"intense": "强烈",
|
||||
"generating": "生成中...",
|
||||
"generateVoice": "生成语音",
|
||||
"toolbar": {
|
||||
"back": "← 返回",
|
||||
"analyzeLines": "分析台词",
|
||||
"addLine": "+ 添加语音",
|
||||
"generateAll": "一键生成所有配音",
|
||||
"downloadAll": "下载配音",
|
||||
"generatingCount": "生成中 ({count})",
|
||||
"packing": "打包中...",
|
||||
"stats": "共 {total} 条台词 | 已设置音色 {withVoice} 条 | 已生成配音 {withAudio} 条",
|
||||
"noDownload": "没有可下载的配音",
|
||||
"downloadCount": "下载 {count} 条配音",
|
||||
"uploadReferenceHint": "请先在资产库为所有角色上传参考音频"
|
||||
},
|
||||
"speakerVoice": {
|
||||
"title": "发言人音色状态",
|
||||
"hint": "请在资产库为角色上传参考音频",
|
||||
"linesCount": "{count} 条台词",
|
||||
"noVoice": "无参考音色",
|
||||
"configured": "✓ 已设置",
|
||||
"playVoice": "播放当前音色",
|
||||
"aiDesign": "AI设计声音",
|
||||
"aiDesignVoice": "AI 设计音色",
|
||||
"redesign": "使用 AI 重新设计声音",
|
||||
"uploadAudio": "上传音频",
|
||||
"uploading": "上传中",
|
||||
"upload": "上传",
|
||||
"microsoftVoice": "微软语音",
|
||||
"microsoft": "微软",
|
||||
"maleVoices": "男声",
|
||||
"femaleVoices": "女声",
|
||||
"openAssetLibrary": "资产库",
|
||||
"configuredStatus": "已设置音色",
|
||||
"pendingStatus": "待设置音色",
|
||||
"voiceSettings": "音色设置",
|
||||
"inlineLabel": "内联"
|
||||
},
|
||||
"inlineBinding": {
|
||||
"title": "为「{speaker}」设置音色",
|
||||
"description": "该发言人不在资产库中,请选择一种方式为其设置参考音色",
|
||||
"selectFromLibrary": "从音色库选择",
|
||||
"selectFromLibraryDesc": "选择已有的全局音色",
|
||||
"uploadAudio": "上传参考音频",
|
||||
"uploadAudioDesc": "上传 MP3、WAV 等音频文件作为参考音色",
|
||||
"aiDesign": "AI 设计音色",
|
||||
"aiDesignDesc": "使用 AI 生成专属参考音色"
|
||||
},
|
||||
"embedded": {
|
||||
"linesStats": "{total} 条台词 · {audio} 已生成",
|
||||
"reanalyze": "重新分析",
|
||||
"analyzeLines": "分析台词",
|
||||
"reanalyzeHint": "重新分析台词并更新镜头匹配",
|
||||
"analyzeHint": "从原文中提取台词",
|
||||
"downloadVoice": "下载配音",
|
||||
"generateAllVoice": "生成全部配音",
|
||||
"pendingCount": "({count} 条待生成)",
|
||||
"generatingProgress": "生成中 ({current}/{total})",
|
||||
"generatingHint": "正在生成中...",
|
||||
"noVoiceHint": "请先在上方为所有角色设置音色",
|
||||
"noLinesHint": "没有台词可生成",
|
||||
"allDoneHint": "所有台词已生成完成",
|
||||
"generateHint": "点击生成 {count} 条待生成的配音",
|
||||
"addLine": "+ 添加语音",
|
||||
"speakerVoiceStatus": "角色音色状态",
|
||||
"speakersCount": "{count} 个",
|
||||
"listen": "试听",
|
||||
"listenVoice": "试听音色",
|
||||
"reset": "重设",
|
||||
"resetDesign": "重新设计",
|
||||
"aiDesign": "AI设计",
|
||||
"assetLibrary": "资产库"
|
||||
},
|
||||
"lineCard": {
|
||||
"generatingVoice": "生成中",
|
||||
"speaker": "发言人",
|
||||
"speakerPlaceholder": "发言人名称",
|
||||
"content": "台词内容",
|
||||
"contentPlaceholder": "台词内容",
|
||||
"emotionConfigured": "情绪已设置",
|
||||
"emotionSettings": "情绪设置",
|
||||
"voiceConfigured": "✓ 已设置",
|
||||
"needVoice": "请在上方设置音色",
|
||||
"locatePanel": "定位到绑定镜头",
|
||||
"locateVideo": "定位视频",
|
||||
"play": "播放",
|
||||
"pause": "暂停",
|
||||
"locatePanelCta": "定位到镜头 {index}",
|
||||
"editLine": "编辑台词",
|
||||
"deleteLine": "删除台词",
|
||||
"deleteAudio": "删除配音"
|
||||
},
|
||||
"lineEditor": {
|
||||
"addTitle": "添加语音",
|
||||
"editTitle": "编辑语音",
|
||||
"contentLabel": "台词内容",
|
||||
"contentPlaceholder": "请输入台词内容",
|
||||
"speakerLabel": "发言人",
|
||||
"speakerPlaceholder": "请输入发言人名称",
|
||||
"selectSpeaker": "请选择发言人",
|
||||
"noSpeakerOptions": "当前项目暂无可选发言人,请先分析台词生成发言人",
|
||||
"bindPanelLabel": "绑定镜头",
|
||||
"unboundPanel": "未绑定镜头",
|
||||
"panelLabel": "镜头 {index}",
|
||||
"saveAdd": "添加语音",
|
||||
"saveEdit": "保存修改"
|
||||
},
|
||||
"empty": {
|
||||
"title": "暂无台词数据",
|
||||
"description": "从剧本中提取台词和发言人",
|
||||
"analyzeButton": "分析台词",
|
||||
"hint": "请先在资产库为角色上传参考音频"
|
||||
},
|
||||
"confirm": {
|
||||
"deleteLine": "确定要删除这条台词吗?\n\n\"{content}\"\n\n此操作不可撤销。",
|
||||
"deleteAudio": "确定要删除这条台词的配音吗?\n\n\"{content}\"\n\n此操作不可撤销。"
|
||||
},
|
||||
"errors": {
|
||||
"saveFailed": "保存失败",
|
||||
"analyzeFailed": "分析台词失败",
|
||||
"generateFailed": "生成配音失败",
|
||||
"batchFailed": "批量生成失败",
|
||||
"downloadFailed": "下载失败",
|
||||
"deleteFailed": "删除失败",
|
||||
"addFailed": "添加语音失败",
|
||||
"invalidLineInput": "台词内容和发言人不能为空",
|
||||
"bindFailed": "绑定镜头失败",
|
||||
"deleteAudioFailed": "删除配音失败",
|
||||
"uploadFailed": "上传音频失败",
|
||||
"voiceDesignFailed": "保存声音设计失败",
|
||||
"emotionSaveFailed": "保存情绪设置失败",
|
||||
"voiceGenerateFailed": "生成音频失败"
|
||||
},
|
||||
"alerts": {
|
||||
"insufficientBalance": "余额不足",
|
||||
"insufficientBalanceMsg": "账户余额不足,请充值后继续使用",
|
||||
"noLinesToGenerate": "没有需要生成的台词(请先为角色上传参考音频)",
|
||||
"generateComplete": "生成完成:{success}/{total} 条成功",
|
||||
"generateFailed": "{count} 条失败",
|
||||
"speakerVoiceSet": "已为 {speaker} 生成参考音频",
|
||||
"speakerVoiceUploaded": "已为 {speaker} 上传参考音频",
|
||||
"voiceDesignSet": "已为 {speaker} 设置 AI 设计的声音"
|
||||
},
|
||||
"common": {
|
||||
"loading": "加载中...",
|
||||
"save": "保存",
|
||||
"cancel": "取消",
|
||||
"cancelling": "取消中...",
|
||||
"upload": "上传",
|
||||
"download": "下载",
|
||||
"generate": "生成",
|
||||
"regenerate": "重新生成"
|
||||
},
|
||||
"assets": {
|
||||
"image": {
|
||||
"uploadFailed": "上传失败"
|
||||
},
|
||||
"stage": {
|
||||
"analyzing": "分析中..."
|
||||
}
|
||||
},
|
||||
"smartImport": {
|
||||
"errors": {
|
||||
"analyzeFailed": "分析失败"
|
||||
}
|
||||
},
|
||||
"video": {
|
||||
"panelCard": {
|
||||
"play": "播放"
|
||||
}
|
||||
},
|
||||
"tts": {
|
||||
"generatedAudio": "生成的音频",
|
||||
"browserNotSupport": "您的浏览器不支持音频播放",
|
||||
"audioDuration": "音频时长:",
|
||||
"subtitleCount": "字幕条数:",
|
||||
"noAudio": "暂无音频",
|
||||
"srtPreview": "SRT字幕预览",
|
||||
"noSubtitle": "暂无字幕",
|
||||
"stats": "生成统计",
|
||||
"minute": "分",
|
||||
"second": "秒",
|
||||
"items": "条",
|
||||
"completed": "✓ 已完成",
|
||||
"regenerating": "重新生成中...",
|
||||
"regenerateTTS": "重新生成TTS",
|
||||
"nextStep": "下一步: 分析资产",
|
||||
"readyTip": "点击进入资产分析阶段",
|
||||
"needGenerate": "请先生成TTS音频"
|
||||
},
|
||||
"voiceCreate": {
|
||||
"aiDesignMode": "AI 设计音色",
|
||||
"uploadMode": "上传音频",
|
||||
"dropOrClick": "拖放文件或点击选择",
|
||||
"supportedFormats": "支持 MP3、WAV、OGG、M4A、AAC 格式",
|
||||
"invalidFileType": "不支持的文件格式,请上传音频文件",
|
||||
"fileTooLarge": "文件过大,最大支持 50MB",
|
||||
"previewAudio": "试听音频",
|
||||
"uploading": "上传中...",
|
||||
"uploadFailed": "上传失败",
|
||||
"uploadSuccess": "上传成功"
|
||||
},
|
||||
"voiceDesign": {
|
||||
"presets": {
|
||||
"maleBroadcaster": "男播音",
|
||||
"gentleFemale": "温柔女",
|
||||
"matureMale": "成熟男",
|
||||
"livelyFemale": "活泼女",
|
||||
"intellectualFemale": "知性女",
|
||||
"narrator": "旁白"
|
||||
},
|
||||
"presetsPrompts": {
|
||||
"maleBroadcaster": "沉稳的中年男性播音员,音色低沉浑厚,语速平稳,吐字清晰",
|
||||
"gentleFemale": "温柔甜美的年轻女性,声音清脆悦耳,语调轻柔",
|
||||
"matureMale": "成熟稳重的男性,声音富有磁性和感染力",
|
||||
"livelyFemale": "活泼开朗的少女,声音甜美可爱,充满活力",
|
||||
"intellectualFemale": "知性优雅的女性,声音清晰悦耳,语调平和",
|
||||
"narrator": "富有感情的叙述者,声音温暖有故事感"
|
||||
},
|
||||
"defaultPreviewText": "你好,很高兴认识你。这是AI为你专属设计的声音,让我来为你展示它的特点。无论是温柔的对话,还是激动的讲述,我都能完美呈现。希望你喜欢这个声音,让我们一起创造精彩的内容吧。",
|
||||
"pleaseSelectStyle": "请输入或选择声音风格",
|
||||
"designVoiceFor": "为「{speaker}」设计AI声音",
|
||||
"hasExistingVoice": "已有声音",
|
||||
"selectStyle": "选择声音风格:",
|
||||
"orCustomDescription": "或自定义描述:",
|
||||
"describePlaceholder": "描述声音特征:年龄、性别、音色、语调...",
|
||||
"editPreviewText": "修改预览文本",
|
||||
"generate3Schemes": "生成 3 个声音方案",
|
||||
"generating3Schemes": "正在生成 3 个声音方案...",
|
||||
"estimatedTime": "预计 15-30 秒",
|
||||
"selectScheme": "选择声音方案:",
|
||||
"schemeN": "方案 {n}",
|
||||
"regenerate": "重新生成",
|
||||
"confirmUse": "✓ 确认使用",
|
||||
"confirmReplace": "确认替换声音?",
|
||||
"replaceWarning": "的原有声音,不可撤回",
|
||||
"confirmReplaceBtn": "确认替换",
|
||||
"noVoiceGenerated": "未能生成任何声音",
|
||||
"generationError": "生成声音失败",
|
||||
"generateFailed": "生成第 {n} 个声音失败",
|
||||
"preview": "试听",
|
||||
"playing": "播放中"
|
||||
}
|
||||
}
|
||||
31
messages/zh/workspace.json
Normal file
31
messages/zh/workspace.json
Normal file
@@ -0,0 +1,31 @@
|
||||
{
|
||||
"title": "我的项目",
|
||||
"subtitle": "管理您的AI动漫制作项目",
|
||||
"newProject": "新建项目",
|
||||
"searchPlaceholder": "搜索项目名称或描述...",
|
||||
"searchButton": "搜索",
|
||||
"clearButton": "清除",
|
||||
"updatedAt": "更新于",
|
||||
"noProjects": "还没有项目",
|
||||
"noProjectsDesc": "创建您的第一个AI动漫制作项目",
|
||||
"noResults": "没有找到匹配的项目",
|
||||
"noResultsDesc": "尝试使用不同的搜索词",
|
||||
"createProject": "新建项目",
|
||||
"editProject": "编辑项目",
|
||||
"deleteProject": "删除项目",
|
||||
"deleteConfirm": "确定要删除项目\"{name}\"吗?此操作无法撤销。",
|
||||
"projectName": "项目名称",
|
||||
"projectNamePlaceholder": "输入项目名称",
|
||||
"projectDescription": "项目描述(可选)",
|
||||
"projectDescriptionPlaceholder": "输入项目描述",
|
||||
"creating": "创建中...",
|
||||
"saving": "保存中...",
|
||||
"createFailed": "创建项目失败",
|
||||
"updateFailed": "更新项目失败",
|
||||
"deleteFailed": "删除项目失败",
|
||||
"totalProjects": "共 {count} 个项目",
|
||||
"statsEpisodes": "章节数",
|
||||
"statsImages": "图片数",
|
||||
"statsVideos": "视频数",
|
||||
"noContent": "暂无内容"
|
||||
}
|
||||
24
messages/zh/workspaceDetail.json
Normal file
24
messages/zh/workspaceDetail.json
Normal file
@@ -0,0 +1,24 @@
|
||||
{
|
||||
"globalAssets": "全局资产",
|
||||
"createFailed": "创建失败",
|
||||
"deleteFailed": "删除失败",
|
||||
"renameFailed": "重命名失败",
|
||||
"refreshFailed": "刷新失败",
|
||||
"projectNotFound": "项目不存在",
|
||||
"backToWorkspace": "返回工作区",
|
||||
"episode": "剧集",
|
||||
"sidebar": {
|
||||
"dragToMove": "拖动调整位置",
|
||||
"listTitle": "剧集列表",
|
||||
"episodeCount": "{count}集",
|
||||
"empty": "暂无剧集,点击下方创建",
|
||||
"save": "保存",
|
||||
"deleteConfirm": "确定删除「{name}」?",
|
||||
"delete": "删除",
|
||||
"cancel": "取消",
|
||||
"rename": "重命名",
|
||||
"newEpisodePlaceholder": "输入剧集名称...",
|
||||
"create": "创建",
|
||||
"addEpisode": "添加剧集"
|
||||
}
|
||||
}
|
||||
6
messages/zh/worldContextModal.json
Normal file
6
messages/zh/worldContextModal.json
Normal file
@@ -0,0 +1,6 @@
|
||||
{
|
||||
"title": "世界观与人设",
|
||||
"description": "定义全局通用的角色外貌、场景风格和环境描述",
|
||||
"placeholder": "例如:\n【男主】张三,25岁,黑色短发,总是穿着一件洗得发白的牛仔夹克,眼神忧郁。\n【女主】李四,22岁,红发双马尾,性格活泼,喜欢穿洛丽塔风格的裙子。\n【场景】2077年的赛博朋克城市,霓虹灯闪烁,终年下雨...",
|
||||
"hint": "这些设定将被所有剧集继承,作为AI绘画的基础参考。"
|
||||
}
|
||||
Reference in New Issue
Block a user