{ "Language": "English", "Translation": { "Video Script Configuration": "**Video Script Configuration**", "Video Script Generate": "Generate Video Script", "Video Subject": "Video Subject (Given a keyword, :red[AI auto-generates] video script)", "Script Language": "Language of the generated video script (Usually, AI automatically outputs according to the language of the input subject)", "Script Files": "Script Files", "Generate Video Script and Keywords": "Click to use AI to generate **Video Script** and **Video Keywords** based on the **subject**", "Auto Detect": "Auto Detect", "Auto Generate": "Frame Analysis", "Video Script": "Video Script", "Edit Video Script": "View/Edit Video Script", "Video script row count": "{count} script rows", "Video script table help": "Edit the full script JSON as a table. You can add or delete rows; saving will validate and write the script file again.", "Raw JSON Preview": "Raw JSON Preview", "Script Column ID": "ID", "Script Column Video ID": "Video", "Script Column Video Name": "Video Name", "Script Column Timestamp": "Timestamp", "Script Column Picture": "Picture", "Script Column Narration": "Narration", "Script Column OST": "Mark", "Generation Settings": "Generation Settings", "Save Script": "Save Script", "Crop Video": "Crop Video", "Video File": "Video File", "Plot Description": "Plot Description (:blue[Can be obtained from https://www.tvmao.com/])", "Generate Video Keywords": "Click to use AI to generate **Video Keywords** based on the **script**", "Please Enter the Video Subject": "Please enter the video script first", "Generating Video Script and Keywords": "AI is generating the video script and keywords...", "Generating Video Keywords": "AI is generating the video keywords...", "Video Keywords": "Video Keywords (:blue[Long videos work better in conjunction with plot descriptions.])", "Video Settings": "**Video Settings**", "Video Concat Mode": "Video Concatenation Mode", "Random": "Random Concatenation (Recommended)", "Sequential": "Sequential Concatenation", "Video Ratio": "Video Ratio", "Portrait": "Portrait 9:16 (TikTok Video)", "Landscape": "Landscape 16:9 (Xigua Video)", "Clip Duration": "Maximum Clip Duration (Seconds) (**Not the total length of the video**, refers to the length of each **composite segment**)", "Number of Videos Generated Simultaneously": "Number of Videos Generated Simultaneously", "Audio Settings": "**Audio Settings**", "Speech Synthesis": "Speech Synthesis Voice (:red[**Keep consistent with the script language**. Note: V2 version performs better, but requires an API KEY; SoulVoice provides high-quality Chinese voices])", "Speech Region": "Service Region (:red[Required, [Click to Get](https://portal.azure.com/#view/Microsoft_Azure_ProjectOxford/CognitiveServicesHub/~/SpeechServices)])", "Speech Key": "API Key (:red[Required, either Key 1 or Key 2 is acceptable [Click to Get](https://portal.azure.com/#view/Microsoft_Azure_ProjectOxford/CognitiveServicesHub/~/SpeechServices)])", "Speech Volume": "Speech Volume (1.0 represents 100%)", "Speech Rate": "Speech Rate (1.0 represents 1x speed)", "Male": "Male", "Female": "Female", "Background Music": "Background Music", "No Background Music": "No Background Music", "Random Background Music": "Random Background Music", "Custom Background Music": "Custom Background Music", "Custom Background Music File": "Please enter the file path of the custom background music", "Background Music Source": "Background Music Source", "Background Music Source Help": "Choose background music from the resource directory, upload a new file, or disable background music.", "Upload Background Music": "Upload Background Music", "Background Music Path Help": "Choose the background music used for video synthesis.", "No Background Music Resources Found": "No background music resources found. Please upload a background music file.", "Preview Background Music Help": "Play the selected background music.", "Upload Background Music File": "Upload Background Music File", "Upload Background Music Help": "Upload an audio file to use as background music.", "Background Music uploaded": "Background music uploaded: {path}", "Background Music Volume": "Background Music Volume (0.2 represents 20%, background sound should not be too loud)", "Subtitle Settings": "**Subtitle Settings**", "Enable Subtitles": "Enable Subtitles (If unchecked, the following settings will not take effect)", "Enable Subtitle Mask": "Enable Subtitle Mask", "Enable Subtitle Mask Help": "Before burning in new subtitles, cover the original subtitle area with a soft blurred mask.", "Set Subtitle Mask": "Set Subtitle Mask", "Subtitle Mask Summary": "Landscape {landscape_x}%/{landscape_y}% · {landscape_width}%×{landscape_height}%; portrait {portrait_x}%/{portrait_y}% · {portrait_width}%×{portrait_height}%", "Subtitle Mask Settings": "Subtitle Mask Settings", "Subtitle Mask Settings Caption": "Save landscape and portrait mask regions as frame percentages. The mask is applied before new subtitles are burned in.", "Landscape Subtitle Mask": "Landscape Mask", "Portrait Subtitle Mask": "Portrait Mask", "Landscape Subtitle Position": "Landscape Subtitle Position", "Portrait Subtitle Position": "Portrait Subtitle Position", "Save Subtitle Mask Settings": "Save Subtitle Mask Settings", "Subtitle Mask Left": "Left Position", "Subtitle Mask Left Help": "Mask distance from the left edge as a frame percentage.", "Subtitle Mask Top": "Top Position", "Subtitle Mask Top Help": "Mask distance from the top edge as a frame percentage.", "Subtitle Mask Width": "Mask Width", "Subtitle Mask Width Help": "Width of the covered mask region as a frame percentage.", "Subtitle Mask Height": "Mask Height", "Subtitle Mask Height Help": "Height of the covered mask region as a frame percentage.", "Subtitle Mask Blur Radius": "Blur Radius", "Subtitle Mask Blur Radius Help": "Blur strength for the mask background and edge.", "Subtitle Mask Opacity": "Mask Strength", "Subtitle Mask Opacity Help": "Mask blend strength. Higher values cover source subtitles more strongly.", "Subtitle Burn Position": "Subtitle Position", "Subtitle Burn Position Help": "New subtitle distance from the top edge as a frame percentage. The safe-area preview updates in real time.", "Subtitle Mask Preview": "Source Subtitle Mask Preview", "Subtitle Mask Preview Caption": "Upload a source video for preview, or use the currently selected source video. Uploaded files here are only used for mask preview.", "Upload Subtitle Mask Preview Video": "Upload Preview Source Video", "Upload Subtitle Mask Preview Video Help": "Only used for previewing the mask in this dialog. It will not replace the source video used for generation.", "Using Subtitle Mask Preview Video": "Preview video: {file}", "Change Subtitle Mask Preview Video": "Change Video", "Subtitle Mask Preview Empty": "Upload a preview video, or select a source video above first.", "Subtitle Mask Preview Timeline": "Preview Timeline (seconds)", "Subtitle Mask Preview Timeline Help": "Drag to a frame where the source subtitles appear, then fine-tune the mask region.", "Subtitle Mask Preview Frame Caption": "{time} · {orientation} · red outline is the mask, blue line is the subtitle position", "Subtitle Mask Preview Failed": "Unable to read this video preview. Please try another video file.", "Enable Auto Transcription": "Enable Auto Transcription", "Enable Auto Transcription Help": "After the final video is merged, transcribe the whole video into subtitles and burn them into the output.", "Font": "Subtitle Font", "Position": "Subtitle Position", "Top": "Top", "Center": "Center", "Bottom": "Bottom (Recommended)", "Custom": "Custom Position (70, represents 70% from the top)", "Font Size": "Subtitle Size", "Font Color": "Subtitle Color", "Stroke Color": "Stroke Color", "Stroke Width": "Stroke Width", "Subtitle Preview Orientation": "Preview Ratio", "Portrait Safe Area": "Portrait Safe Area", "Landscape Safe Area": "Landscape Safe Area", "Subtitle Preview Sample Text": "Preview", "Generate Video": "Generate Video", "Video Script and Subject Cannot Both Be Empty": "Video Subject and Video Script cannot both be empty", "Generating Video": "Generating video, please wait...", "Start Generating Video": "Start Generating Video", "Video Generation Completed": "Video Generation Completed", "Video Generation Failed": "Video Generation Failed", "You can download the generated video from the following links": "You can download the generated video from the following links", "Basic Settings": "**Basic Settings** (:blue[Click to expand])", "Language": "Interface Language", "Pexels API Key": "Pexels API Key ([Click to Get](https://www.pexels.com/api/)) :red[Recommended]", "Pixabay API Key": "Pixabay API Key ([Click to Get](https://pixabay.com/api/docs/#api_search_videos)) :red[Optional, if Pexels is unavailable, then choose Pixabay]", "LLM Provider": "LLM Provider", "API Key": "API Key (:red[Required, must be applied from the LLM provider's backend])", "Base Url": "Base Url (Optional)", "Account ID": "Account ID (Obtained from the URL of the Cloudflare dashboard)", "Model Name": "Model Name (:blue[Confirm the authorized model name from the LLM provider's backend])", "Please Enter the LLM API Key": "Please enter the **LLM API Key**", "Please Enter the Pexels API Key": "Please enter the **Pexels API Key**", "Please Enter the Pixabay API Key": "Please enter the **Pixabay API Key**", "Get Help": "One-stop AI video commentary + automated editing tool\uD83C\uDF89\uD83C\uDF89\uD83C\uDF89\n\nFor any questions or suggestions, you can join the **community channel** for help or discussion: https://github.com/linyqh/NarratoAI/wiki", "Video Source": "Video Source", "TikTok": "TikTok (Support is coming soon)", "Bilibili": "Bilibili (Support is coming soon)", "Xiaohongshu": "Xiaohongshu (Support is coming soon)", "Local file": "Local file", "Play Voice": "Play Synthesized Voice", "Voice Example": "This is a sample text for testing voice synthesis", "Synthesizing Voice": "Synthesizing voice, please wait...", "TTS Provider": "TTS Provider", "Hide Log": "Hide Log", "Select from resource directory": "Select from resource directory", "Select a video from resource videos directory": "Select a video from the ./resource/videos directory", "Upload a new video file up to 2GB": "Upload a new video file, up to 2GB", "Upload new video files up to 2GB each": "Upload one or more video files, up to 2GB each", "Select Video": "Select Video", "Choose a video file": "Choose a video file", "Upload Video": "Upload Video", "No video files found in resource videos directory": "No video files found in the ./resource/videos directory", "Upload Local Files": "Upload Local Files", "File Uploaded Successfully": "File Uploaded Successfully", "Selected videos for processing": "Selected {count} video(s): {files}", "Frame Interval (seconds)": "Frame Interval (seconds)", "Generate Video Script": "Generate Video Script", "Video Theme": "Video Theme", "Generation Prompt": "Custom Prompt", "Video LLM Provider": "Video Analysis Model", "timestamp": "Timestamp", "Picture description": "Picture Description", "Narration": "Narration", "Rebuild": "Regenerate", "Load Video Script": "Load Video Script", "Speech Pitch": "Speech Pitch", "Please Select Script File": "Please Select Script File", "Check Format": "Check Format", "Script Loaded Successfully": "Script Loaded Successfully", "Script loaded successfully": "Script loaded successfully", "Script format check passed": "Script format check passed", "Script format check failed": "Script format check failed", "Failed to Load Script": "Failed to Load Script", "Failed to load script": "Failed to load script", "Failed to Save Script": "Failed to Save Script", "Failed to save script": "Failed to save script", "Script saved successfully": "Script saved successfully", "Video Quality": "Video Quality", "Custom prompt for LLM, leave empty to use default prompt": "Custom prompt for LLM. Leave empty to use the default prompt.", "Proxy Settings": "Proxy Settings", "HTTP_PROXY": "HTTP Proxy", "HTTPs_PROXY": "HTTPS Proxy", "Vision Model Settings": "Vision Model Settings", "Vision Model Provider": "API Protocol", "Vision API Key": "Vision API Key", "Vision Base URL": "Vision Base URL", "Vision Model Name": "Vision Model Name", "Text Generation Model Settings": "Text Generation Model Settings", "LLM Model Name": "LLM Model Name", "LLM Model API Key": "LLM Model API Key", "Text Model Provider": "API Protocol", "Text API Key": "Text API Key", "Text Base URL": "Text Base URL", "Text Model Name": "Text Model Name", "Top P": "Top P", "Top K": "Top K", "Max Output Tokens": "Max Output Tokens", "Max Output Tokens Help": "Maximum generated output length. 0 uses the provider default.", "Thinking Level": "Thinking Level", "Thinking Level Help": "Controls reasoning effort. Auto sends no extra thinking parameter; low/medium/high tries reasoning_effort.", "Thinking Level Auto": "Auto", "Thinking Level Off": "Off", "Thinking Level Low": "Low", "Thinking Level Medium": "Medium", "Thinking Level High": "High", "Skip the first few seconds": "Skip the first few seconds", "Difference threshold": "Difference Threshold", "Vision processing batch size": "Vision Processing Batch Size", "Test Connection": "Test Connection", "Testing connection...": "Testing connection...", "gemini model is available": "Gemini model is available", "gemini model is not available": "Gemini model is not available", "Unsupported provider": "Unsupported provider", "0: Keep the audio only, 1: Keep the original sound only, 2: Keep the original sound and audio": "0: Keep the narration only, 1: Keep the original sound only, 2: Keep both original sound and narration", "Text model is not available": "Text model is not available", "Text model is available": "Text model is available", "Upload Script": "Upload Script", "Upload Script File": "Upload Script File", "Script Uploaded Successfully": "Script Uploaded Successfully", "Invalid JSON format": "Invalid JSON format", "Upload failed": "Upload failed", "Enable Proxy": "Enable Proxy", "QwenVL model is available": "QwenVL model is available", "QwenVL model is not available": "QwenVL model is not available", "QwenVL model returned invalid response": "QwenVL model returned an invalid response", "System settings": "System Settings", "Clear Cache": "Clear Cache", "Cache cleared": "Cache cleared", "storage directory does not exist": "Storage directory does not exist", "Failed to clear cache": "Failed to clear cache", "Clear frames": "Clear frames", "Clear clip videos": "Clear clip videos", "Clear tasks": "Clear tasks", "Directory cleared": "Directory cleared", "Directory does not exist": "Directory does not exist", "Failed to clear directory": "Failed to clear directory", "FFmpeg Engine Detection": "FFmpeg Engine Detection", "FFmpeg Engine": "FFmpeg Engine", "FFmpeg Engine Help": "Choose the ffmpeg executable this app should prefer; the packaged runtime and local PATH are discovered automatically", "No FFmpeg engines found": "No FFmpeg engines found", "Custom FFmpeg Path": "Custom FFmpeg Path", "Custom FFmpeg Path Help": "Paste an absolute path to an ffmpeg executable if the target engine is not listed", "Current FFmpeg Engine": "Current FFmpeg Engine", "Save FFmpeg Engine": "Save Engine", "Test Selected FFmpeg": "Test Selected FFmpeg", "Testing FFmpeg engine": "Testing FFmpeg engine...", "FFmpeg engine saved": "FFmpeg engine saved", "Selected FFmpeg path is invalid": "Selected FFmpeg path is invalid", "FFmpeg detection details": "FFmpeg detection details", "FFmpeg source Configured": "Configured", "FFmpeg source NarratoAI packaged runtime": "NarratoAI packaged runtime", "FFmpeg source Integrated runtime": "Integrated runtime", "FFmpeg source System PATH": "System PATH", "FFmpeg source Homebrew": "Homebrew", "FFmpeg source Python environment": "Python environment", "FFmpeg source Python executable folder": "Python executable folder", "FFmpeg source IMAGEIO_FFMPEG_EXE": "IMAGEIO_FFMPEG_EXE", "FFmpeg source imageio-ffmpeg": "imageio-ffmpeg", "FFmpeg source System": "System", "Version": "Version", "Path": "Path", "Available": "Available", "Unavailable": "Unavailable", "Hardware Acceleration": "Hardware Acceleration", "Subtitle Burn-in": "Subtitle Burn-in", "FFmpeg engine passed all checks": "FFmpeg engine passed all checks: basic execution, hardware acceleration and subtitle burn-in are available", "FFmpeg engine works but hardware acceleration is unavailable": "FFmpeg and subtitle burn-in work, but hardware acceleration is unavailable; software encoding will be used", "FFmpeg engine check failed": "FFmpeg engine check failed", "Hardware acceleration detail": "Hardware acceleration detail", "Subtitle burn-in detail": "Subtitle burn-in detail", "Type": "Type", "Encoder": "Encoder", "Message": "Message", "Method": "Method", "Supported Hardware Methods": "Supported hardware methods", "Subtitle Filters": "Subtitle filters", "FFmpeg errors": "FFmpeg errors", "Raw FFmpeg report": "Raw FFmpeg report", "Subtitle Preview": "Subtitle Preview", "One-Click Transcribe": "One-Click Transcribe", "Transcribing...": "Transcribing...", "Transcription Complete!": "Transcription Complete!", "Transcription Failed. Please try again.": "Transcription failed. Please try again.", "API rate limit exceeded. Please wait about an hour and try again.": "API rate limit exceeded. Please wait about an hour and try again.", "Resources exhausted. Please try again later.": "Resources exhausted. Please try again later.", "Transcription Failed": "Transcription Failed", "Short Generate": "Short Drama Mix", "Generate Short Video Script": "Generate Short Video Script", "Adjust the volume of the original audio": "Adjust the volume of the original audio", "Original Volume": "Original Volume", "Frame Interval (seconds) (More keyframes consume more tokens)": "Frame Interval (seconds) (More keyframes consume more tokens)", "Batch Size": "Batch Size", "Batch Size (More keyframes consume more tokens)": "Batch Size (smaller batches consume more tokens)", "Short Drama Summary": "Short Drama Summary", "Film TV Narration": "Film/TV Narration", "Video Type": "Creation Type", "Select/Upload Script": "Custom Script", "原生Gemini模型连接成功": "Native Gemini model connection succeeded", "原生Gemini模型连接失败": "Native Gemini model connection failed", "OpenAI兼容Gemini代理连接成功": "OpenAI-compatible Gemini proxy connection succeeded", "OpenAI兼容Gemini代理连接失败": "OpenAI-compatible Gemini proxy connection failed", "Connection failed": "Connection failed", "自定义片段": "Custom Clips", "设置需要生成的短视频片段数量": "Set the number of short video clips to generate", "上传字幕文件": "Upload SRT", "清除已上传字幕": "Clear Uploaded Subtitle", "无法读取字幕文件,请检查文件编码(支持 UTF-8、UTF-16、GBK、GB2312)": "Unable to read the subtitle file. Please check the file encoding. Supported encodings: UTF-8, UTF-16, GBK, GB2312.", "字幕文件内容似乎为空,请检查文件": "The subtitle file appears to be empty. Please check the file.", "字幕上传成功": "Subtitle uploaded successfully", "短剧名称": "Short Drama Name", "影视名称": "Film/TV Title", "解说语言": "Narration Language", "自定义解说语言": "Custom Narration Language", "例如:意大利语(意大利)": "For example: Italian (Italy)", "请输入自定义解说语言": "Please enter a custom narration language", "简体中文(中国)": "Simplified Chinese (China)", "英语(美国)": "English (United States)", "日语(日本)": "Japanese (Japan)", "韩语(韩国)": "Korean (South Korea)", "法语(法国)": "French (France)", "德语(德国)": "German (Germany)", "西班牙语(西班牙)": "Spanish (Spain)", "葡萄牙语(巴西)": "Portuguese (Brazil)", "俄语(俄罗斯)": "Russian (Russia)", "自定义": "Custom", "短剧类型": "Short Drama Type", "自定义短剧类型": "Custom Short Drama Type", "影视类型": "Film/TV Type", "自定义影视类型": "Custom Film/TV Type", "原片占比": "Original Footage Ratio", "例如:豪门虐恋": "For example: billionaire angst romance", "例如:悬疑犯罪": "For example: suspense crime", "请输入自定义短剧类型": "Please enter a custom short drama type", "请输入自定义影视类型": "Please enter a custom film/TV type", "逆袭/复仇": "Counterattack / Revenge", "霸总/甜宠": "CEO Romance / Sweet Romance", "家庭伦理": "Family Ethics", "古装/权谋": "Costume / Power Struggle", "悬疑/犯罪": "Suspense / Crime", "都市情感": "Urban Romance", "年代/乡村": "Period / Rural", "剧情/情感": "Drama / Emotion", "动作/冒险": "Action / Adventure", "喜剧/轻松": "Comedy / Light", "科幻/奇幻": "Sci-Fi / Fantasy", "历史/战争": "History / War", "恐怖/惊悚": "Horror / Thriller", "生成解说文案": "Generate Narration Copy", "生成剪辑脚本": "Generate Editing Script", "短剧解说文案": "Short Drama Narration Copy", "影视解说文案": "Film/TV Narration Copy", "Narration Copy Help": "Generate the narration copy first, review or rewrite it here, then generate the editing script to match footage and timestamps.", "Narration copy generated successfully": "Narration copy generated. Please review and edit it.", "生成短剧解说脚本": "Generate Short Drama Narration Script", "请输入视频脚本": "Please enter the video script", "TTS engine does not support precise subtitles": "⚠️ {engine} does not support precise subtitle generation", "Manual subtitle editing recommendation": "💡 We recommend adding subtitles manually in a professional editor such as CapCut or Premiere Pro.", "Disabled subtitles help": "This TTS engine does not support subtitle generation. Please use another TTS engine.", "Tencent Cloud TTS": "Tencent Cloud TTS", "Tongyi Qwen3 TTS": "Tongyi Qwen3 TTS", "IndexTTS Voice Clone": "IndexTTS-1.5 Voice Clone", "Doubao TTS": "Doubao TTS", "Edge TTS features": "Completely free, but service stability can vary and voice cloning is not supported.", "Edge TTS use case": "Testing and lightweight use", "Azure Speech Services features": "Includes a free quota, then pay-as-you-go billing. An overseas credit card may be required.", "Azure Speech Services use case": "Enterprise use cases that need a stable service", "Tencent Cloud TTS features": "Includes a free quota, good voice quality, multiple voices, and fast access in mainland China.", "Tencent Cloud TTS use case": "Personal and enterprise users who need stable Chinese speech synthesis", "Tongyi Qwen3 TTS features": "Alibaba Cloud Tongyi Qwen speech synthesis with high-quality voices and multiple voice options.", "High-quality Chinese speech synthesis use case": "Users who need high-quality Chinese speech synthesis", "IndexTTS features": "A locally or privately deployed IndexTTS-1.5 voice-cloning engine. Choose a resource audio file or upload a reference audio file, then synthesize narration in that voice.", "IndexTTS use case": "Best for fixed narrator voices, character dubbing, or generating multiple videos with the same voice. Start the IndexTTS-1.5 API service before use. Deployment package: https://pan.quark.cn/s/0767c9bcefd5", "IndexTTS download link": "Download link: https://pan.quark.cn/s/0767c9bcefd5", "IndexTTS2 features": "A locally or privately deployed IndexTTS-2 voice-cloning engine with emotion control and fuller generation parameters.", "IndexTTS2 use case": "Best for fixed voices, emotional narration, and local speech synthesis workflows that need finer sampling controls. Start the IndexTTS-2 API service before use.", "OmniVoice features": "A locally or privately deployed OmniVoice-Pack multilingual TTS engine with automatic voice generation, voice design, and reference-audio cloning.", "OmniVoice use case": "Best for local controllable multilingual narration, voice design, or reference-audio cloning. Start the OmniVoice-Pack API service before use.", "Doubao TTS features": "Volcengine Doubao speech synthesis with multiple voices and emotions, plus fast access in mainland China.", "Local Deployment": "Local Deployment", "Cloud Service": "Cloud Service", "Select TTS Engine": "Select TTS Engine", "Select TTS Engine Help": "Choose the text-to-speech engine you want to use.", "TTS Engine Details": "{engine} Details", "Features": "Features", "Use Case": "Use Case", "Registration URL": "Registration URL", "Voice Selection": "Voice Selection", "Select Edge TTS Voice": "Select an Edge TTS voice", "Edge TTS Voice Description": "Edge TTS Voice Notes", "Loaded voice count": "Loaded {count} voices", "Female Voice": "Female voice", "Male Voice": "Male voice", "Voice Volume": "Voice Volume", "Voice Volume Help Percent": "Adjust voice volume (0-100)", "Voice Rate": "Voice Rate", "Voice Rate Help 0.5-2.0": "Adjust voice speed (0.5-2.0x)", "Voice Pitch": "Voice Pitch", "Voice Pitch Help Percent": "Adjust voice pitch (-50% to +50%)", "Service Region": "Service Region", "Service Region Placeholder": "e.g. eastus", "Azure Service Region Help": "Azure Speech Services region, such as eastus, westus2, or eastasia.", "Azure Speech Key Help": "Azure Speech Services API key", "Voice Name": "Voice Name", "Azure Voice Name Help": "Enter an Azure Speech Services voice name. You can use the official voice name directly, such as zh-CN-YunzeNeural.", "Common Voice Reference": "Common Voice Reference", "Chinese Voices": "Chinese Voices", "English Voices": "English Voices", "Multilingual": "multilingual", "Azure Voices Docs Notice": "For more voices, see the [Azure Speech Services documentation](https://docs.microsoft.com/en-us/azure/cognitive-services/speech-service/language-support).", "Quick Select": "Quick Select", "Chinese Female Voice": "Chinese Female Voice", "Chinese Male Voice": "Chinese Male Voice", "English Female Voice": "English Female Voice", "Voice name valid": "Voice name is valid: {voice}", "Voice name format may be invalid": "Voice name format may be incorrect: {voice}", "Azure voice name format notice": "Azure voice names usually follow this format: [language]-[region]-[name]Neural", "Azure Speech Services configured": "Azure Speech Services is configured", "Please configure service region": "Please configure the service region", "Please configure API Key": "Please configure the API Key", "Task failed": "Task failed", "Script file cannot be empty": "Script file cannot be empty", "Video file cannot be empty": "Video file cannot be empty", "Export to Jianying Draft": "📤 Export to Jianying Draft", "Please configure Jianying draft folder in basic settings": "Please configure the Jianying draft folder in Basic Settings", "Jianying draft folder does not exist": "Jianying draft folder does not exist: {path}", "Jianying export dialog title": "Confirm draft name", "Jianying export dialog description": "Confirm the Jianying draft name before exporting. Once complete, you can open it from the Jianying draft folder.", "Jianying export destination": "Save location", "Jianying draft name": "Draft name", "Please enter Jianying draft name": "Please enter the Jianying draft name", "Confirm Export": "Confirm Export", "Please enter draft name": "Please enter a draft name", "Failed to build parameters": "Failed to build parameters", "Exporting to Jianying draft...": "Exporting to Jianying draft, please wait...", "Jianying draft exported successfully": "✅ Successfully exported to Jianying draft: {name}", "Draft saved to": "📁 Draft saved to: {path}", "Failed to export Jianying draft": "❌ Failed to export Jianying draft", "Cancel": "Cancel", "LLM initialization failed": "⚠️ LLM initialization failed: {error}\n\nPlease check whether the configuration file and dependencies are installed correctly.", "Jianying Draft Settings": "Jianying Draft Settings", "Jianying Draft Folder Path": "Jianying Draft Folder Path", "Jianying Draft Folder Path Help": "Jianying draft folder path, for example: C:\\Users\\Username\\Documents\\JianyingPro Drafts", "Custom API endpoint help": "OpenAI-compatible endpoint URL. Use a full /v1 URL for third-party or self-hosted gateways; leave empty for the official OpenAI API.", "Recommended API endpoint": "Recommended endpoint", "OpenAI compatible gateway help": "{model_type} uses an OpenAI-compatible API, so a complete endpoint URL is required.", "Vision model": "Vision model", "Text model": "Text model", "Model Name Input Help": "Enter the full model name.\n\nCommon examples:", "OpenAI compatible providers help": "The vendor is not limited here; OpenAI, DeepSeek, OpenRouter, SiliconFlow, or a self-hosted gateway all work as long as the endpoint is OpenAI-compatible.", "OpenAI compatible protocol": "OpenAI-compatible", "OpenAI compatible protocol help": "This does not require the official OpenAI model; any service that supports the OpenAI Chat Completions compatible API can be used.", "Provider API Key Help": "API key for the model service.\n\nCommon places to get one:", "Please fill OpenAI compatible gateway": "Please fill in the OpenAI-compatible gateway URL above, for example: {example}", "Please enter API key": "Please enter the API key first", "Please enter model name": "Please enter the model name first", "Connection test error": "An error occurred while testing the connection", "Vision model config saved": "Vision model configuration saved (OpenAI compatible)", "Text model config saved": "Text generation model configuration saved (OpenAI compatible)", "Failed to save config": "Failed to save configuration", "Custom Position (% from top)": "Custom Position (% from top)", "Please enter a value between 0 and 100": "Please enter a value between 0 and 100", "Please enter a valid number": "Please enter a valid number", "None": "None", "Uploaded subtitle": "Uploaded subtitle: {file}", "Encoding": "Encoding", "Size": "Size", "Characters": "characters", "Ali Bailian Fun-ASR Subtitle Transcription": "Subtitle Processing", "Subtitle Processing Method": "Subtitle Processing Method", "Fun-ASR Backend": "Fun-ASR Backend", "Local FunASR-Pack API": "FunASR (Local)", "Local FireRedASR API": "FireRedASR2 (Local)", "Ali Bailian Online Fun-ASR": "FunASR (Online)", "Local Fun-ASR upload caption": "The current video above will be converted to SRT subtitles through the locally running FunASR-Pack API.", "Local FireRed-ASR upload caption": "The current video above will be converted to SRT subtitles through the locally running FireRedASR2-AED-Pack API.", "Fun-ASR upload caption": "The current video above will be uploaded to temporary Ali Bailian storage and converted to SRT subtitles with fun-asr.", "Auto Transcription Local Caption": "After the final video is merged, it will be converted to SRT subtitles through the locally running FunASR-Pack API.", "Auto Transcription FireRed Caption": "After the final video is merged, it will be converted to SRT subtitles through the locally running FireRedASR2-AED-Pack API.", "Auto Transcription Online Caption": "After the final video is merged, it will be uploaded to temporary Ali Bailian storage and converted to SRT subtitles with fun-asr.", "Local FunASR-Pack API URL": "Local FunASR-Pack API URL", "Local FunASR-Pack API URL Help": "For example, http://127.0.0.1:7860. A full /asr, /v1, or /v1/audio/transcriptions URL is also supported.", "Local FireRedASR API URL": "Local ASR API URL", "Local FireRedASR API URL Help": "For example, http://127.0.0.1:7867. A full /asr endpoint URL is also supported.", "Fun-ASR Hotword": "Hotword", "Fun-ASR Hotword Help": "Optional hotwords passed to the local FunASR-Pack API.", "Enable speaker diarization": "Enable speaker diarization", "Enable speaker diarization Help": "Requires the local FunASR-Pack service to enable and load the spk model.", "API Key URL": "API Key URL", "Ali Bailian API Key": "Ali Bailian API Key", "Ali Bailian API Key Help": "Enter your Ali Bailian API Key. After saving, it will be written to the local config.toml file.", "Upload media to transcribe": "Upload audio/video to transcribe", "Using selected video for subtitle transcription": "Using current video for subtitle transcription: {file}", "Using selected videos for subtitle transcription": "Using {count} current videos for subtitle transcription: {files}", "Please select or upload a video first": "Please select or upload a video file above first", "Selected video file does not exist": "The selected video file does not exist. Please select or upload it again", "Selected video files do not exist": "These selected video files do not exist. Please select or upload them again: {files}", "Transcribe subtitles": "Transcribe Subtitles", "Calibrate subtitles": "Calibrate Subtitles", "Translate subtitles": "Translate Subtitles", "Subtitle target language": "Target language", "Subtitle target language placeholder": "Chinese", "Please enter Ali Bailian API Key": "Please enter the Ali Bailian API Key first", "Please enter local FunASR-Pack API URL": "Please enter the local FunASR-Pack API URL first", "Please enter local FireRedASR API URL": "Please enter the local ASR API URL first", "Please upload media to transcribe": "Please upload the audio or video file to transcribe first", "Transcribing with local FunASR-Pack...": "Transcribing subtitles with local FunASR-Pack, please wait...", "Transcribing with local FireRedASR...": "Transcribing subtitles with local ASR, please wait...", "Transcribing with Fun-ASR...": "Transcribing subtitles with Ali Bailian Fun-ASR, please wait...", "Fun-ASR failed without subtitle file": "Fun-ASR transcription failed: no subtitle file was generated", "Subtitle transcription succeeded": "Subtitle transcription succeeded: {file}", "Subtitle transcription succeeded for multiple files": "Subtitle transcription succeeded for {count} files: {files}", "Calibrating subtitles...": "Calibrating subtitles with the LLM, please wait...", "Subtitle calibration succeeded": "Subtitle calibration succeeded: {file}", "Subtitle calibration succeeded for multiple files": "Subtitle calibration succeeded for {count} files: {files}", "Subtitle calibration failed": "Subtitle calibration failed", "Translating subtitles...": "Translating subtitles to {language} with the LLM, please wait...", "Subtitle translation succeeded": "Subtitle translation succeeded: {file}", "Subtitle translation succeeded for multiple files": "Subtitle translation succeeded for {count} files: {files}", "Subtitle translation failed": "Subtitle translation failed", "Subtitle translation progress": "{file}: {completed}/{total} items · {message}", "Transcribed subtitles storage hint": "Previously transcribed subtitles are saved in {path}; drag a file from that folder to upload", "Tavily Search Settings": "Tavily Web Search", "Tavily API Key": "Tavily API Key", "Tavily API Key Help": "Used for web search before plot analysis. When Web Search is enabled, the app searches plot, character, and background context by title, then combines it with subtitles.", "Tavily config saved": "Tavily configuration saved", "联网搜索": "Web Search", "Enable Web Search Help": "When enabled, plot analysis searches the web with Tavily by title before combining those results with subtitles.", "Please configure Tavily API Key in Basic Settings": "Please configure the Tavily API Key in Basic Settings first", "Please enter short drama name before web search": "Please enter the short drama name before enabling web search", "Please enter film/tv title before web search": "Please enter the film/TV title before enabling web search", "Searching short drama with Tavily...": "Searching short drama context with Tavily...", "Tavily search failed": "Tavily search failed", "剧情理解": "Plot Analysis", "剧情理解结果": "Plot Analysis Result", "Analyzing plot...": "Analyzing plot...", "Plot analysis completed": "Plot analysis completed", "Please generate or upload subtitles first": "Please transcribe or upload subtitles first", "Please transcribe or upload subtitles first": "Please transcribe or upload subtitles first", "Fun-ASR transcription failed": "Fun-ASR transcription failed", "Validating script format...": "Validating script format...", "Script format validation failed": "Script format validation failed", "Error Message": "Error Message", "Details": "Details", "Correct script format example": "Correct script format example", "Script format validation error": "An error occurred during script format validation", "Script validated and saved successfully": "✅ Script format validated and saved successfully!", "Tencent Secret ID Help": "Enter your Tencent Cloud Secret ID", "Tencent Secret Key Help": "Enter your Tencent Cloud Secret Key", "Tencent Service Region Help": "Select the Tencent Cloud TTS service region", "Custom Voice": "Custom Voice", "Select Tencent TTS Voice": "Select a Tencent Cloud TTS voice", "Tencent Cloud TTS Voice Description": "Tencent Cloud TTS Voice Notes", "Female Voices": "Female Voices", "Male Voices": "Male Voices", "Tencent More Voices Notice": "See the official Tencent Cloud documentation for more voices.", "Qwen DashScope API Key Help": "Tongyi Qwen DashScope API Key", "TTS Model Name": "TTS Model Name", "Qwen TTS Model Help": "Qwen TTS model name, for example qwen3-tts-flash", "Select Qwen3 TTS Voice": "Select a Qwen3 TTS voice", "API URL": "API URL", "IndexTTS API URL Help": "IndexTTS-1.5 API service URL", "IndexTTS2 API URL Help": "IndexTTS-2 API service URL. You can enter the service root or the full /tts endpoint.", "OmniVoice API URL Help": "OmniVoice-Pack API service URL. You can enter the service root or the full /tts endpoint.", "OmniVoice Language Code": "Synthesis Language", "OmniVoice Language Code Help": "The language parameter sent to OmniVoice-Pack, such as zh or en.", "OmniVoice Generation Mode": "Generation Mode", "OmniVoice Generation Mode Help": "Automatic voice needs no extra fields; voice design uses an instruction; reference-audio cloning needs reference audio and matching text.", "OmniVoice Mode Auto": "Automatic Voice", "OmniVoice Mode Voice Design": "Voice Design", "OmniVoice Mode Voice Clone": "Reference Audio Clone", "OmniVoice Instruct": "Voice Instruction", "OmniVoice Instruct Help": "Describe the desired voice, such as gender, pitch, accent, or style.", "OmniVoice Instruct Placeholder": "e.g. female, low pitch, british accent", "OmniVoice Reference Text": "Reference Audio Text", "OmniVoice Reference Text Help": "The exact transcript of the reference audio. Required when the deployed service has ASR disabled.", "OmniVoice Reference Text Placeholder": "Enter the text spoken in the reference audio", "OmniVoice Num Step Help": "Diffusion generation steps. Higher values usually improve quality but slow generation.", "OmniVoice Guidance Scale Help": "Controls how strongly text conditions guide generation.", "OmniVoice Duration": "Target Duration (seconds)", "OmniVoice Duration Help": "0 lets the model decide the duration automatically.", "OmniVoice Denoise": "Enable Denoise", "OmniVoice Denoise Help": "Ask OmniVoice-Pack to denoise the generated output.", "OmniVoice Postprocess Output": "Postprocess Output", "OmniVoice Postprocess Output Help": "Enable OmniVoice-Pack output post-processing.", "OmniVoice Preprocess Prompt": "Preprocess Text", "OmniVoice Preprocess Prompt Help": "Enable OmniVoice-Pack text preprocessing.", "Reference Audio Source": "Reference Audio Source", "Reference Audio Source Help": "Choose a reference audio from the resource directory or upload a new one.", "Select from Resource Directory": "Select from Resource Directory", "Upload Reference Audio": "Upload Reference Audio", "Reference Audio Path": "Reference Audio", "Reference Audio Path Help": "Choose the reference audio for voice cloning (WAV/MP3, 3-10 seconds recommended)", "No Reference Audio Resources Found": "No reference audio resources found. Please upload a reference audio file.", "Preview Reference Audio": "Preview", "Preview Reference Audio Help": "Play the selected reference audio.", "Upload Reference Audio File": "Upload Reference Audio File", "Upload Reference Audio Help": "Upload a clear audio clip for voice cloning", "Audio uploaded": "Audio uploaded: {path}", "Inference Mode": "Inference Mode", "Standard Inference": "Standard Inference", "Fast Inference": "Fast Inference", "Inference Mode Help": "Standard inference has higher quality but is slower. Fast inference is faster with slightly lower quality.", "Advanced Parameters": "Advanced Parameters", "Sampling Temperature": "Sampling Temperature", "Sampling Temperature Help": "Controls randomness. Higher values are more random; lower values are more deterministic.", "Top P Help": "Probability threshold for nucleus sampling. Smaller values make results more deterministic.", "Top K Help": "The k value for top-k sampling. 0 disables top-k.", "Num Beams": "Num Beams", "Num Beams Help": "Number of beams for beam search. Higher values may improve quality but slow generation.", "Repetition Penalty": "Repetition Penalty", "Repetition Penalty Help": "Higher values reduce repetition, but overly high values may sound unnatural.", "Enable Sampling": "Enable Sampling", "Enable Sampling Help": "Enable sampling for more natural speech.", "IndexTTS Usage Instructions Title": "IndexTTS-1.5 Usage Instructions", "IndexTTS Usage Instructions": "**Zero-shot voice cloning**\n\n1. **Prepare reference audio**: upload or specify a clear audio file (3-10 seconds recommended)\n2. **Set API URL**: make sure the IndexTTS-1.5 service is running\n3. **Start synthesis**: the system will use the reference voice to synthesize new speech\n\n**Notes**:\n- Reference audio quality directly affects synthesis quality\n- Use clean audio without background noise when possible\n- Keep text length within a reasonable range\n- The first synthesis may take longer", "IndexTTS2 Emotion Parameters": "Emotion Parameters", "Emotion Mode": "Emotion Mode", "Emotion Mode Help": "Choose the emotion control source for IndexTTS-2.", "Emotion Mode Speaker": "Same as speaker reference", "Emotion Mode Audio": "Use emotion reference audio", "Emotion Mode Vector": "Use emotion vector", "Emotion Mode Text": "Use emotion text", "Emotion Alpha": "Emotion Alpha", "Emotion Alpha Help": "Controls how strongly the emotion condition affects generation. 0 is weak, 1 is strong.", "Emotion Reference Audio Path": "Emotion Reference Audio Path", "Emotion Reference Audio Path Help": "Local emotion reference audio path used when emotion_mode=audio.", "Emotion Text": "Emotion Text", "Emotion Text Help": "Emotion description used when emotion_mode=text, such as happy, nervous, or aggrieved.", "Emotion Text Placeholder": "e.g. calm, nervous, happy", "Use Random Emotion": "Use Random Emotion", "Use Random Emotion Help": "Let IndexTTS-2 use random emotion sampling during generation.", "Emotion Happy": "Happy", "Emotion Angry": "Angry", "Emotion Sad": "Sad", "Emotion Afraid": "Afraid", "Emotion Disgusted": "Disgusted", "Emotion Melancholic": "Melancholic", "Emotion Surprised": "Surprised", "Emotion Calm": "Calm", "Max Text Tokens Per Segment": "Max Text Tokens Per Segment", "Max Text Tokens Per Segment Help": "Maximum text tokens per segment for IndexTTS-2 inference.", "Max Mel Tokens": "Max Mel Tokens", "Max Mel Tokens Help": "Controls the maximum mel tokens generated in one request. Higher values can produce longer audio.", "IndexTTS2 Usage Instructions Title": "IndexTTS-2 Usage Instructions", "IndexTTS2 Usage Instructions": "**IndexTTS-2 voice cloning**\n\n1. **Choose a voice**: reuse IndexTTS-1.5 resource audio or upload a reference audio file\n2. **Set API URL**: for example http://192.168.3.6:7863/tts, or enter the service root\n3. **Tune emotion**: speaker is the default; switch to audio, vector, or text when needed\n4. **Tune generation**: temperature, top_p, top_k, num_beams, repetition_penalty, and max_mel_tokens are sent directly to the IndexTTS-2 API\n\n**Notes**:\n- Reference audio quality directly affects cloning quality\n- The first request may load the model and take longer\n- CPU deployments are much slower than GPU deployments", "OmniVoice Usage Instructions Title": "OmniVoice Usage Instructions", "OmniVoice Usage Instructions": "**OmniVoice-Pack speech synthesis**\n\n1. **Automatic voice**: set the API URL and language, then synthesize directly.\n2. **Voice design**: fill instruct with the desired gender, pitch, accent, or style.\n3. **Reference-audio clone**: upload or choose reference audio and fill its matching transcript.\n\n**Notes**:\n- The default service URL is http://127.0.0.1:7866/tts\n- Reference-audio cloning requires reference text when the service has no ASR model loaded\n- OmniVoice returns WAV audio, and NarratoAI estimates subtitle segment timing from the audio duration", "Volcengine Access Key Help": "Volcengine Access Key", "Volcengine Secret Key Help": "Volcengine Secret Key", "Doubao API Key Help": "New Doubao Speech API Key. This field is preferred and does not require AppID or Token.", "Doubao Legacy Credentials": "Legacy AppID / Token Credentials", "Doubao AppID Help": "Doubao TTS application AppID", "Doubao Token Help": "Doubao TTS application Token", "Cluster": "Cluster", "Doubao Cluster Help": "Business cluster. Standard voices use volcano_tts.", "Select Doubao TTS Voice": "Select a Doubao TTS voice", "Voice Rate Help 0.2-3.0": "Adjust voice speed (0.2-3.0)", "Voice Volume Help 0.1-2.0": "Adjust voice volume (0.1-2.0)", "Voice Pitch Help 0.5-1.5": "Adjust voice pitch (0.5-1.5)", "Sentence Silence Duration": "Sentence-end Silence Duration (seconds)", "Sentence Silence Duration Help": "Adjust sentence-end silence duration (0.0-2.0 seconds)", "Doubao TTS API Key Application Process": "Doubao TTS API Key Application Process", "Application Steps": "Application Steps", "Doubao TTS Step 1": "1. Open the Volcengine Doubao Speech console", "Doubao TTS Step 2": "2. Open API Key management and create an API Key", "Doubao TTS Step 3": "3. Make sure Doubao speech synthesis is enabled", "Doubao TTS Step 4": "4. Copy the API Key into the API Key field above", "Doubao TTS Step 5": "5. The default cluster is volcano_tts and usually does not need changes", "Doubao TTS Step 6": "6. Legacy AppID/Token users can keep using the compatibility fields", "Doubao TTS Fill Credentials Notice": "The new setup only requires an API Key. Legacy AppID/Token credentials remain supported.", "Doubao TTS configured": "Doubao TTS is configured", "Please configure missing fields": "Please configure: {fields}", "Preview Voice Synthesis": "Preview Voice Synthesis", "Voice Preview Sample": "Thanks for using NarratoAI. If you have any questions or suggestions, please join the community for help and discussion.", "Please configure voice settings first": "Please configure voice settings first", "Voice synthesis successful": "Voice synthesis successful!", "Voice synthesis failed": "Voice synthesis failed. Please check your configuration.", "SoulVoice pitch not supported": "SoulVoice does not support pitch adjustment", "Progress": "Progress", "Generating script...": "Generating script...", "Please select video file first": "Please select a video file first", "Extracting keyframes...": "Extracting keyframes...", "Script generation completed": "Script generation completed", "Script generation completed!": "Script generation completed!", "Video script generated successfully": "✅ Video script generated successfully!", "Generation error": "❌ An error occurred during generation", "Please upload subtitle file first": "Please upload a subtitle file first", "Video": "Video", "Subtitle": "Subtitle", "Preparing script generation": "Preparing script generation", "Script generation failed check logs": "Script generation failed. Please check the logs.", "Parsing subtitles...": "Parsing subtitles...", "Analyzing subtitles with model...": "Waiting for the model to analyze subtitles...", "Subtitle file does not exist": "Subtitle file does not exist", "Subtitle file is empty or unreadable": "Subtitle file is empty or unreadable", "Generating narration copy...": "Generating narration copy...", "Generated narration copy is empty": "The generated narration copy is empty", "Please generate and review narration copy first": "Please generate and review the narration copy first", "Matching narration copy to footage...": "Matching narration copy to footage and timestamps...", "Waiting for model stream...": "Waiting for model stream...", "Streaming unavailable fallback waiting...": "Streaming is unavailable for this request. Waiting for the full response...", "LLM stream window title": "Model reasoning / output stream", "Model reasoning stream": "[Model reasoning]", "Model output preview": "[Model output preview]", "Repairing narration script...": "Repairing narration script...", "Generated narration JSON parse failed": "The generated narration format is invalid and could not be parsed as JSON", "Generated narration missing items field": "The generated narration is missing the required 'items' field", "Generated narration validation failed": "The generated narration script failed validation", "Preparing output...": "Preparing output..." } }