{
  "Language": "简体中文",
  "Translation": {
    "Video Script Configuration": "**视频脚本配置**",
    "Generate Video Script": "AI生成画面解说脚本",
    "Video Subject": "视频主题（给定一个关键词，:red[AI自动生成]视频文案）",
    "Script Language": "生成视频脚本的语言（一般情况AI会自动根据你输入的主题语言输出）",
    "Script Files": "脚本文件",
    "Generate Video Script and Keywords": "点击使用AI根据**主题**生成 【视频文案】 和 【视频关键词】",
    "Auto Detect": "自动检测",
    "Video Theme": "视频主题",
    "Generation Prompt": "自定义提示词",
    "Generation Settings": "生成参数",
    "Save Script": "保存脚本",
    "Video File": "视频文件",
    "Plot Description": "剧情描述 (:blue[可从 https://www.tvmao.com/ 获取])",
    "Generate Video Keywords": "点击使用AI根据**文案**生成【视频关键】",
    "Please Enter the Video Subject": "请先填写视频文案",
    "Generating Video Script and Keywords": "AI正在生成视频文案和关键词...",
    "Generating Video Keywords": "AI正在生成视频关键词...",
    "Video Keywords": "视频关键词（:blue[对于长视频配合剧情描述效果更好]）",
    "Video Settings": "**视频设置**",
    "Video Concat Mode": "视频拼接模式",
    "Random": "随机拼接（推荐）",
    "Sequential": "顺序拼接",
    "Video Ratio": "视频比例",
    "Portrait": "竖屏 9:16（抖音视频）",
    "Landscape": "横屏 16:9（西瓜视频）",
    "Clip Duration": "视频片段最大时长(秒)（**不是视频总长度**，是指每个**合成片段**的长度）",
    "Number of Videos Generated Simultaneously": "同时生成视频数量",
    "Audio Settings": "**音频设置**",
    "Speech Synthesis": "朗读声音（:red[**与文案语言保持一致**。注意：V2版效果更好，但是需要API KEY；SoulVoice 提供高质量中文语音]）",
    "Speech Region": "服务区域 (:red[必填，[点击获取](https://portal.azure.com/#view/Microsoft_Azure_ProjectOxford/CognitiveServicesHub/~/SpeechServices)])",
    "Speech Key": "API Key (:red[必填，密钥1 或 密钥2 均可 [点击获取](https://portal.azure.com/#view/Microsoft_Azure_ProjectOxford/CognitiveServicesHub/~/SpeechServices)])",
    "Speech Volume": "朗读音量（1.0表示100%）",
    "Speech Rate": "朗读速度（1.0表示1倍速）",
    "Male": "男性",
    "Female": "女性",
    "Background Music": "背景音乐",
    "No Background Music": "无背景音乐",
    "Random Background Music": "随机背景音乐",
    "Custom Background Music": "自定义背景音乐",
    "Custom Background Music File": "请输入自定义背景音乐的文件路径",
    "Background Music Source": "背景音乐来源",
    "Background Music Source Help": "选择资源目录中的背景音乐、上传新的背景音乐，或关闭背景音乐",
    "Upload Background Music": "上传背景音乐",
    "Background Music Path Help": "选择用于视频合成的背景音乐",
    "No Background Music Resources Found": "未找到资源目录中的背景音乐，请上传背景音乐文件",
    "Preview Background Music Help": "播放当前背景音乐",
    "Upload Background Music File": "上传背景音乐文件",
    "Upload Background Music Help": "上传一个音频文件作为背景音乐",
    "Background Music uploaded": "背景音乐已上传: {path}",
    "Background Music Volume": "背景音乐音量（0.2表示20%，背景声音不宜过高）",
    "Subtitle Settings": "**字幕设置**",
    "Enable Subtitles": "启用字幕（若取消勾选，下面的设置都将不生效）",
    "Enable Subtitle Mask": "启用字幕遮罩",
    "Enable Subtitle Mask Help": "开启后会在烧录新字幕前，先用模糊遮罩覆盖原视频自带字幕区域",
    "Set Subtitle Mask": "设置字幕遮罩",
    "Subtitle Mask Summary": "横屏 {landscape_x}%/{landscape_y}% · {landscape_width}%×{landscape_height}%；竖屏 {portrait_x}%/{portrait_y}% · {portrait_width}%×{portrait_height}%",
    "Subtitle Mask Settings": "字幕遮罩设置",
    "Subtitle Mask Settings Caption": "按画面百分比保存横屏和竖屏遮罩区域；生成视频时会先叠加柔化遮罩，再烧录新字幕。",
    "Landscape Subtitle Mask": "横屏遮罩",
    "Portrait Subtitle Mask": "竖屏遮罩",
    "Landscape Subtitle Position": "横屏字幕位置",
    "Portrait Subtitle Position": "竖屏字幕位置",
    "Save Subtitle Mask Settings": "保存字幕遮罩设置",
    "Subtitle Mask Left": "左侧位置",
    "Subtitle Mask Left Help": "遮罩距离画面左侧的百分比",
    "Subtitle Mask Top": "顶部位置",
    "Subtitle Mask Top Help": "遮罩距离画面顶部的百分比",
    "Subtitle Mask Width": "遮罩宽度",
    "Subtitle Mask Width Help": "遮罩覆盖区域的宽度百分比",
    "Subtitle Mask Height": "遮罩高度",
    "Subtitle Mask Height Help": "遮罩覆盖区域的高度百分比",
    "Subtitle Mask Blur Radius": "模糊半径",
    "Subtitle Mask Blur Radius Help": "遮罩边缘和背景的模糊强度",
    "Subtitle Mask Opacity": "遮罩强度",
    "Subtitle Mask Opacity Help": "遮罩融合强度，数值越高越容易遮住原字幕",
    "Subtitle Burn Position": "字幕位置",
    "Subtitle Burn Position Help": "新字幕距离画面顶部的百分比，可在下方安全区预览中实时查看位置",
    "Subtitle Mask Preview": "原字幕遮罩预览",
    "Subtitle Mask Preview Caption": "可上传一段原视频作为预览，也可直接使用当前已选择的原视频；上传内容仅用于预览遮罩位置。",
    "Upload Subtitle Mask Preview Video": "上传预览原视频",
    "Upload Subtitle Mask Preview Video Help": "仅用于在弹窗中预览遮罩，不会替换生成视频使用的原视频",
    "Using Subtitle Mask Preview Video": "当前预览视频: {file}",
    "Change Subtitle Mask Preview Video": "更换视频",
    "Subtitle Mask Preview Empty": "请上传预览视频，或先在上方选择原视频",
    "Subtitle Mask Preview Timeline": "预览时间轴（秒）",
    "Subtitle Mask Preview Timeline Help": "拖动到原字幕出现的画面，方便微调遮罩区域",
    "Subtitle Mask Preview Frame Caption": "{time} · {orientation} · 红框为遮罩区域，蓝线为字幕位置",
    "Subtitle Mask Preview Failed": "无法读取该视频预览，请尝试更换视频文件",
    "Enable Auto Transcription": "启用自动转录",
    "Enable Auto Transcription Help": "开启后会在最终视频合并完成后，对整条视频转录生成字幕并压入成片",
    "Font": "字幕字体",
    "Position": "字幕位置",
    "Top": "顶部",
    "Center": "中间",
    "Bottom": "底部（推荐）",
    "Custom": "自定义位置（70，表示离顶部70%的位置）",
    "Font Size": "字幕大小",
    "Font Color": "字幕颜色",
    "Stroke Color": "描边颜色",
    "Stroke Width": "描边粗细",
    "Subtitle Preview Orientation": "预览比例",
    "Portrait Safe Area": "竖屏安全区",
    "Landscape Safe Area": "横屏安全区",
    "Subtitle Preview Sample Text": "字幕预览效果",
    "Generate Video": "生成视频",
    "Video Script and Subject Cannot Both Be Empty": "视频主题 和 视频文案，不能同时为空",
    "Generating Video": "正在生成视频，请稍候...",
    "Start Generating Video": "开始生成视频",
    "Video Generation Completed": "视频生成完成",
    "Video Generation Failed": "视频生成失败",
    "You can download the generated video from the following links": "你可以从以下链接下载生成的视频",
    "Basic Settings": "**基础设置** (:blue[点击展开])",
    "Pixabay API Key": "Pixabay API Key ([点击获取](https://pixabay.com/api/docs/#api_search_videos)) :red[可以不用配置，如果 Pexels 无法使用，再选择Pixabay]",
    "Video LLM Provider": "视频转录大模型",
    "LLM Provider": "大语言模型",
    "API Key": "API Key (:red[必填，需要到大模型提供商的后台申请])",
    "Base Url": "Base Url (可选)",
    "Model Name": "模型名称 (:blue[需要到大模型提供商的后台确认被授权的模型名称])",
    "Please Enter the LLM API Key": "请先填写大模型 **API Key**",
    "Please Enter the Pixabay API Key": "请先填写 **Pixabay API Key**",
    "Get Help": "一站式 AI 影视解说+自动化剪辑工具\uD83C\uDF89\uD83C\uDF89\uD83C\uDF89\n\n有任何问题或建议，可以加入 **社区频道** 求助或讨论：https://github.com/linyqh/NarratoAI/wiki",
    "Video Source": "视频来源",
    "TikTok": "抖音 (TikTok 支持中，敬请期待)",
    "Bilibili": "哔哩哔哩 (Bilibili 支持中，敬请期待)",
    "Xiaohongshu": "小红书 (Xiaohongshu 支持中，敬请期待)",
    "Local file": "本地文件",
    "Play Voice": "试听语音合成",
    "Voice Example": "这是一段测试语音合成的示例文本",
    "Synthesizing Voice": "语音合成中，请稍候...",
    "TTS Provider": "语音合成提供商",
    "Hide Log": "隐藏日志",
    "Select from resource directory": "从资源目录选择",
    "Select a video from resource videos directory": "选择 ./resource/videos 目录中的视频",
    "Upload a new video file up to 2GB": "上传一个新的视频文件，限制 2GB",
    "Upload new video files up to 2GB each": "上传一个或多个视频文件，单个文件限制 2GB",
    "Select Video": "选择视频",
    "Choose a video file": "选择一个视频文件",
    "Upload Video": "上传视频",
    "No video files found in resource videos directory": "未在 ./resource/videos 目录中找到视频文件",
    "Upload Local Files": "上传本地文件",
    "File Uploaded Successfully": "文件上传成功",
    "Selected videos for processing": "已选择 {count} 个视频: {files}",
    "timestamp": "时间戳",
    "Picture description": "图片描述",
    "Narration": "视频文案",
    "Rebuild": "重新生成",
    "Load Video Script": "加载视频脚本",
    "Speech Pitch": "语调",
    "Please Select Script File": "请选择脚本文件",
    "Check Format": "脚本格式检查",
    "Script Loaded Successfully": "脚本加载成功",
    "Script format check passed": "脚本格式检查通过",
    "Script format check failed": "脚本格式检查失败",
    "Failed to Load Script": "加载脚本失败",
    "Failed to Save Script": "保存脚本失败",
    "Script saved successfully": "脚本保存成功",
    "Video Script": "视频脚本",
    "Edit Video Script": "查看/编辑视频脚本",
    "Video script row count": "共 {count} 条脚本",
    "Video script table help": "在表格中编辑完整脚本 JSON。可新增、删除行；保存时会重新校验并写入脚本文件。",
    "Raw JSON Preview": "原始 JSON 预览",
    "Script Column ID": "序号",
    "Script Column Video ID": "视频",
    "Script Column Video Name": "视频文件",
    "Script Column Timestamp": "时间戳",
    "Script Column Picture": "画面描述",
    "Script Column Narration": "解说台词",
    "Script Column OST": "标记",
    "Video Quality": "视频质量",
    "Custom prompt for LLM, leave empty to use default prompt": "自定义提示词，留空则使用默认提示词",
    "Proxy Settings": "代理设置",
    "HTTP_PROXY": "HTTP 代理",
    "HTTPs_PROXY": "HTTPS 代理",
    "Vision Model Settings": "视觉分析模型设置",
    "Vision Model Provider": "接口规范",
    "Vision API Key": "视觉分析 API 密钥",
    "Vision Base URL": "视觉分析接口地址",
    "Vision Model Name": "视觉分析模型名称",
    "Text Generation Model Settings": "文案生成模型设置",
    "LLM Model Name": "大语言模型名称",
    "LLM Model API Key": "大语言模型 API 密钥",
    "Text Model Provider": "接口规范",
    "Text API Key": "文案生成 API 密钥",
    "Text Base URL": "文案生成接口地址",
    "Text Model Name": "文案生成模型名称",
    "Top P": "Top P",
    "Top K": "Top K",
    "Max Output Tokens": "最大输出 Token",
    "Max Output Tokens Help": "单次生成的最大输出长度，0 表示使用服务端默认值",
    "Thinking Level": "思考等级",
    "Thinking Level Help": "控制推理/思考强度。自动表示不额外发送思考参数，低/中/高会尝试传递 reasoning_effort",
    "Thinking Level Auto": "自动",
    "Thinking Level Off": "关闭",
    "Thinking Level Low": "低",
    "Thinking Level Medium": "中",
    "Thinking Level High": "高",
    "Account ID": "账户 ID",
    "Skip the first few seconds": "跳过开头多少秒",
    "Difference threshold": "差异阈值",
    "Vision processing batch size": "视觉处理批次大小",
    "Test Connection": "测试连接",
    "gemini model is available": "Gemini 模型可用",
    "gemini model is not available": "Gemini 模型不可用",
    "Unsupported provider": "不支持的提供商",
    "0: Keep the audio only, 1: Keep the original sound only, 2: Keep the original sound and audio": "0: 仅保留音频，1: 仅保留原声，2: 保留原声和音频",
    "Text model is not available": "文案生成模型不可用",
    "Text model is available": "文案生成模型可用",
    "Upload Script": "上传脚本",
    "Upload Script File": "上传脚本文件",
    "Script Uploaded Successfully": "脚本上传成功",
    "Invalid JSON format": "无效的JSON格式",
    "Upload failed": "上传失败",
    "Enable Proxy": "启用代理",
    "QwenVL model is available": "QwenVL 模型可用",
    "QwenVL model is not available": "QwenVL 模型不可用",
    "System settings": "系统设置",
    "Clear Cache": "清理缓存",
    "Cache cleared": "缓存清理完成",
    "storage directory does not exist": "storage目录不存在",
    "Failed to clear cache": "清理缓存失败",
    "Clear frames": "清理关键帧",
    "Clear clip videos": "清理裁剪视频",
    "Clear tasks": "清理任务",
    "Directory cleared": "目录清理完成",
    "Directory does not exist": "目录不存在",
    "Failed to clear directory": "清理目录失败",
    "FFmpeg Engine Detection": "FFmpeg 引擎检测",
    "FFmpeg Engine": "FFmpeg 引擎",
    "FFmpeg Engine Help": "选择当前应用优先使用的 ffmpeg 可执行文件；会自动发现整合包运行时和本机 PATH 中的 ffmpeg",
    "No FFmpeg engines found": "未发现可用 FFmpeg 引擎",
    "Custom FFmpeg Path": "自定义 FFmpeg 路径",
    "Custom FFmpeg Path Help": "如果下拉框没有列出目标引擎，可以粘贴 ffmpeg 可执行文件的绝对路径",
    "Current FFmpeg Engine": "当前生效引擎",
    "Save FFmpeg Engine": "保存引擎",
    "Test Selected FFmpeg": "检测所选 FFmpeg",
    "Testing FFmpeg engine": "正在检测 FFmpeg 引擎...",
    "FFmpeg engine saved": "FFmpeg 引擎已保存",
    "Selected FFmpeg path is invalid": "所选 FFmpeg 路径无效",
    "FFmpeg detection details": "FFmpeg 检测详情",
    "FFmpeg source Configured": "已配置",
    "FFmpeg source NarratoAI packaged runtime": "NarratoAI 整合包运行时",
    "FFmpeg source Integrated runtime": "内置运行时",
    "FFmpeg source System PATH": "系统 PATH",
    "FFmpeg source Homebrew": "Homebrew",
    "FFmpeg source Python environment": "Python 环境",
    "FFmpeg source Python executable folder": "Python 可执行目录",
    "FFmpeg source IMAGEIO_FFMPEG_EXE": "IMAGEIO_FFMPEG_EXE",
    "FFmpeg source imageio-ffmpeg": "imageio-ffmpeg",
    "FFmpeg source System": "系统路径",
    "Version": "版本",
    "Path": "路径",
    "Available": "可用",
    "Unavailable": "不可用",
    "Hardware Acceleration": "硬件加速",
    "Subtitle Burn-in": "字幕烧录",
    "FFmpeg engine passed all checks": "FFmpeg 引擎检测通过：基础功能、硬件加速和字幕烧录均可用",
    "FFmpeg engine works but hardware acceleration is unavailable": "FFmpeg 基础功能和字幕烧录可用，但硬件加速不可用，将使用软件编码",
    "FFmpeg engine check failed": "FFmpeg 引擎检测失败",
    "Hardware acceleration detail": "硬件加速详情",
    "Subtitle burn-in detail": "字幕烧录详情",
    "Type": "类型",
    "Encoder": "编码器",
    "Message": "信息",
    "Method": "方式",
    "Supported Hardware Methods": "支持的硬件加速方法",
    "Subtitle Filters": "字幕滤镜",
    "FFmpeg errors": "FFmpeg 错误",
    "Raw FFmpeg report": "原始 FFmpeg 报告",
    "Subtitle Preview": "字幕预览",
    "One-Click Transcribe": "一键转录",
    "Transcribing...": "正在转录中...",
    "Transcription Complete!": "转录完成！",
    "Transcription Failed. Please try again.": "转录失败，请重试。",
    "API rate limit exceeded. Please wait about an hour and try again.": "API 调用次数已达到限制，请等待约一小时后再试。",
    "Resources exhausted. Please try again later.": "资源已耗尽，请稍后再试。",
    "Transcription Failed": "转录失败",
    "Short Generate": "短剧混剪",
    "Generate Short Video Script": "AI生成短剧混剪脚本",
    "Adjust the volume of the original audio": "调整原始音频的音量",
    "Original Volume": "视频音量",
    "Auto Generate": "逐帧分析",
    "Frame Interval (seconds)": "帧间隔 (秒)",
    "Frame Interval (seconds) (More keyframes consume more tokens)": "帧间隔 (秒) (更多关键帧消耗更多令牌)",
    "Batch Size": "批处理大小",
    "Batch Size (More keyframes consume more tokens)": "批处理大小, 每批处理越少消耗 token 越多",
    "Short Drama Summary": "短剧解说",
    "Film TV Narration": "影视解说",
    "Video Type": "创作类型",
    "Select/Upload Script": "自定义脚本",
    "Script loaded successfully": "脚本加载成功",
    "Failed to load script": "加载脚本失败",
    "Failed to save script": "保存脚本失败",
    "QwenVL model returned invalid response": "QwenVL 模型返回了无效响应",
    "Testing connection...": "正在测试连接...",
    "Connection failed": "连接失败",
    "TTS engine does not support precise subtitles": "⚠️ {engine} 不支持精确字幕生成",
    "Manual subtitle editing recommendation": "💡 建议使用专业剪辑工具（如剪映、PR 等）手动添加字幕",
    "Disabled subtitles help": "当前 TTS 引擎不支持字幕生成，请使用其他 TTS 引擎",
    "Tencent Cloud TTS": "腾讯云 TTS",
    "Tongyi Qwen3 TTS": "通义千问 Qwen3 TTS",
    "IndexTTS Voice Clone": "IndexTTS-1.5 语音克隆",
    "Doubao TTS": "豆包语音 TTS",
    "Edge TTS features": "完全免费，但服务稳定性一般，不支持语音克隆功能",
    "Edge TTS use case": "测试和轻量级使用",
    "Azure Speech Services features": "提供一定免费额度，超出后按量付费，需要绑定海外信用卡",
    "Azure Speech Services use case": "企业级应用，需要稳定服务",
    "Tencent Cloud TTS features": "提供免费额度，音质优秀，支持多种音色，国内访问速度快",
    "Tencent Cloud TTS use case": "个人和企业用户，需要稳定的中文语音合成",
    "Tongyi Qwen3 TTS features": "阿里云通义千问语音合成，音质优秀，支持多种音色",
    "High-quality Chinese speech synthesis use case": "需要高质量中文语音合成的用户",
    "IndexTTS features": "本地/私有部署的 IndexTTS-1.5 语音克隆引擎。选择资源目录音频或上传参考音频后，可按该音色合成旁白。",
    "IndexTTS use case": "适合需要固定旁白音色、角色配音或批量生成同一音色视频的场景。使用前请先启动 IndexTTS-1.5 API 服务；部署包下载：https://pan.quark.cn/s/0767c9bcefd5",
    "IndexTTS download link": "下载地址：https://pan.quark.cn/s/0767c9bcefd5",
    "IndexTTS2 features": "本地/私有部署的 IndexTTS-2 语音克隆引擎，支持情感控制和更完整的生成参数。",
    "IndexTTS2 use case": "适合需要固定音色、情绪化旁白或更细致采样控制的本地语音合成场景。使用前请先启动 IndexTTS-2 API 服务。",
    "OmniVoice features": "本地/私有部署的 OmniVoice-Pack 多语种语音合成引擎，支持自动音色、指令音色和参考音频克隆。",
    "OmniVoice use case": "适合需要本地可控、多语言旁白、音色设计或参考音频克隆的场景。使用前请先启动 OmniVoice-Pack API 服务。",
    "Doubao TTS features": "火山引擎豆包语音合成，支持多种音色和情感，国内访问速度快",
    "Local Deployment": "本地部署",
    "Cloud Service": "云端服务",
    "Select TTS Engine": "选择 TTS 引擎",
    "Select TTS Engine Help": "选择您要使用的文本转语音引擎",
    "TTS Engine Details": "{engine} 详细说明",
    "Features": "特点",
    "Use Case": "适用场景",
    "Registration URL": "注册地址",
    "Voice Selection": "音色选择",
    "Select Edge TTS Voice": "选择 Edge TTS 音色",
    "Edge TTS Voice Description": "Edge TTS 音色说明",
    "Loaded voice count": "已加载 {count} 个音色",
    "Female Voice": "女声",
    "Male Voice": "男声",
    "Voice Volume": "音量调节",
    "Voice Volume Help Percent": "调节语音音量 (0-100)",
    "Voice Rate": "语速调节",
    "Voice Rate Help 0.5-2.0": "调节语音速度 (0.5-2.0 倍速)",
    "Voice Pitch": "语调调节",
    "Voice Pitch Help Percent": "调节语音音调 (-50% 到 +50%)",
    "Service Region": "服务区域",
    "Service Region Placeholder": "例如：eastus",
    "Azure Service Region Help": "Azure Speech Services 服务区域，如：eastus、westus2、eastasia 等",
    "Azure Speech Key Help": "Azure Speech Services API 密钥",
    "Voice Name": "音色名称",
    "Azure Voice Name Help": "输入 Azure Speech Services 音色名称，直接使用官方音色名称即可。例如：zh-CN-YunzeNeural",
    "Common Voice Reference": "常用音色参考",
    "Chinese Voices": "中文音色",
    "English Voices": "英文音色",
    "Multilingual": "多语言",
    "Azure Voices Docs Notice": "更多音色请参考 [Azure Speech Services 官方文档](https://docs.microsoft.com/en-us/azure/cognitive-services/speech-service/language-support)",
    "Quick Select": "快速选择",
    "Chinese Female Voice": "中文女声",
    "Chinese Male Voice": "中文男声",
    "English Female Voice": "英文女声",
    "Voice name valid": "音色名称有效: {voice}",
    "Voice name format may be invalid": "音色名称格式可能不正确: {voice}",
    "Azure voice name format notice": "Azure 音色名称通常格式为: [语言]-[地区]-[名称]Neural",
    "Azure Speech Services configured": "Azure Speech Services 配置已设置",
    "Please configure service region": "请配置服务区域",
    "Please configure API Key": "请配置 API Key",
    "Language": "界面语言",
    "Task failed": "任务失败",
    "Script file cannot be empty": "脚本文件不能为空",
    "Video file cannot be empty": "视频文件不能为空",
    "Export to Jianying Draft": "📤 导出到剪映草稿",
    "Please configure Jianying draft folder in basic settings": "请在基础设置中配置剪映草稿地址",
    "Jianying draft folder does not exist": "剪映草稿文件夹不存在: {path}",
    "Jianying export dialog title": "确认草稿名称",
    "Jianying export dialog description": "导出前请确认剪映草稿名称，完成后可在剪映草稿目录中打开。",
    "Jianying export destination": "保存目录",
    "Jianying draft name": "草稿名称",
    "Please enter Jianying draft name": "请输入剪映草稿名称",
    "Confirm Export": "确认导出",
    "Please enter draft name": "请输入草稿名称",
    "Failed to build parameters": "参数构建失败",
    "Exporting to Jianying draft...": "正在导出到剪映草稿，请稍候...",
    "Jianying draft exported successfully": "✅ 成功导出到剪映草稿: {name}",
    "Draft saved to": "📁 草稿已保存到: {path}",
    "Failed to export Jianying draft": "❌ 导出到剪映草稿失败",
    "Cancel": "取消",
    "LLM initialization failed": "⚠️ LLM 初始化失败: {error}\n\n请检查配置文件和依赖是否正确安装。",
    "Jianying Draft Settings": "剪映草稿设置",
    "Jianying Draft Folder Path": "剪映草稿文件夹路径",
    "Jianying Draft Folder Path Help": "剪映草稿文件夹路径，例如：C:\\Users\\用户名\\Documents\\JianyingPro Drafts",
    "Custom API endpoint help": "OpenAI 兼容接口地址。使用第三方或自建网关时填写完整 /v1 地址；使用 OpenAI 官方接口可留空。",
    "Recommended API endpoint": "推荐接口地址",
    "OpenAI compatible gateway help": "{model_type} 使用 OpenAI 兼容接口，请填写完整的接口地址。",
    "Vision model": "视觉分析模型",
    "Text model": "文案生成模型",
    "Model Name Input Help": "输入完整模型名称\n\n常用示例:",
    "OpenAI compatible providers help": "这里不限定模型厂商；OpenAI、DeepSeek、OpenRouter、SiliconFlow 或自建网关均可，只需提供兼容 OpenAI 的接口地址和模型名称。",
    "OpenAI compatible protocol": "OpenAI 兼容",
    "OpenAI compatible protocol help": "不是限定 OpenAI 官方模型；只要模型服务支持 OpenAI Chat Completions 兼容接口即可。",
    "Provider API Key Help": "模型服务的 API 密钥\n\n常见获取地址:",
    "Please fill OpenAI compatible gateway": "请在上方填写 OpenAI 兼容网关地址，例如：{example}",
    "Please enter API key": "请先输入 API 密钥",
    "Please enter model name": "请先输入模型名称",
    "Connection test error": "测试连接时发生错误",
    "Vision model config saved": "视觉分析模型配置已保存（OpenAI 兼容）",
    "Text model config saved": "文案生成模型配置已保存（OpenAI 兼容）",
    "Failed to save config": "保存配置失败",
    "Custom Position (% from top)": "自定义位置（距顶部百分比）",
    "Please enter a value between 0 and 100": "请输入 0 到 100 之间的值",
    "Please enter a valid number": "请输入有效数字",
    "None": "无",
    "Uploaded subtitle": "已上传字幕: {file}",
    "Encoding": "编码",
    "Size": "大小",
    "Characters": "字符",
    "Ali Bailian Fun-ASR Subtitle Transcription": "字幕处理",
    "Subtitle Processing Method": "字幕处理方式",
    "Fun-ASR Backend": "Fun-ASR 后端",
    "Local FunASR-Pack API": "FunASR(本地部署)",
    "Local FireRedASR API": "FireRedASR2(本地部署)",
    "Ali Bailian Online Fun-ASR": "FunASR(在线服务)",
    "Local Fun-ASR upload caption": "将使用上方当前视频，通过本机运行的 FunASR-Pack API 生成 SRT 字幕。",
    "Local FireRed-ASR upload caption": "将使用上方当前视频，通过本机运行的 FireRedASR2-AED-Pack API 生成 SRT 字幕。",
    "Fun-ASR upload caption": "将使用上方当前视频，自动上传到阿里百炼临时存储并通过 fun-asr 生成 SRT 字幕。",
    "Auto Transcription Local Caption": "将在最终视频合并完成后，通过本机运行的 FunASR-Pack API 生成 SRT 字幕。",
    "Auto Transcription FireRed Caption": "将在最终视频合并完成后，通过本机运行的 FireRedASR2-AED-Pack API 生成 SRT 字幕。",
    "Auto Transcription Online Caption": "将在最终视频合并完成后，自动上传到阿里百炼临时存储并通过 fun-asr 生成 SRT 字幕。",
    "Local FunASR-Pack API URL": "本地 FunASR-Pack API 地址",
    "Local FunASR-Pack API URL Help": "例如 http://127.0.0.1:7860；也可以直接填到 /asr 的完整地址。",
    "Local FireRedASR API URL": "本地ASR API 地址",
    "Local FireRedASR API URL Help": "例如 http://127.0.0.1:7867；也可以直接填到 /asr 的完整地址。",
    "Fun-ASR Hotword": "热词",
    "Fun-ASR Hotword Help": "可选，传给本地 FunASR-Pack 的热词参数。",
    "Enable speaker diarization": "启用说话人分段",
    "Enable speaker diarization Help": "需要本地 FunASR-Pack 已启用并加载 spk 模型。",
    "API Key URL": "API Key 获取地址",
    "Ali Bailian API Key": "阿里百炼 API Key",
    "Ali Bailian API Key Help": "请输入你自己的阿里百炼 API Key；保存配置后会写入本地 config.toml",
    "Upload media to transcribe": "上传需要转录的音频/视频",
    "Using selected video for subtitle transcription": "将使用当前视频生成字幕: {file}",
    "Using selected videos for subtitle transcription": "将使用当前 {count} 个视频生成字幕: {files}",
    "Please select or upload a video first": "请先在上方选择或上传视频文件",
    "Selected video file does not exist": "当前视频文件不存在，请重新选择或上传",
    "Selected video files do not exist": "以下视频文件不存在，请重新选择或上传: {files}",
    "Transcribe subtitles": "转录字幕",
    "Calibrate subtitles": "校准字幕",
    "Translate subtitles": "翻译字幕",
    "Subtitle target language": "目标语言",
    "Subtitle target language placeholder": "中文",
    "Please enter Ali Bailian API Key": "请先输入阿里百炼 API Key",
    "Please enter local FunASR-Pack API URL": "请先输入本地 FunASR-Pack API 地址",
    "Please enter local FireRedASR API URL": "请先输入本地ASR API 地址",
    "Please upload media to transcribe": "请先上传需要转录的音频或视频文件",
    "Transcribing with local FunASR-Pack...": "正在使用本地 FunASR-Pack 转写字幕，请稍候...",
    "Transcribing with local FireRedASR...": "正在使用本地ASR转写字幕，请稍候...",
    "Transcribing with Fun-ASR...": "正在使用阿里百炼 Fun-ASR 转写字幕，请稍候...",
    "Fun-ASR failed without subtitle file": "Fun-ASR 转写失败：未生成字幕文件",
    "Subtitle transcription succeeded": "字幕转写成功: {file}",
    "Subtitle transcription succeeded for multiple files": "字幕转写成功，共 {count} 个文件: {files}",
    "Calibrating subtitles...": "正在使用大模型校准字幕，请稍候...",
    "Subtitle calibration succeeded": "字幕校准成功: {file}",
    "Subtitle calibration succeeded for multiple files": "字幕校准成功，共 {count} 个文件: {files}",
    "Subtitle calibration failed": "字幕校准失败",
    "Translating subtitles...": "正在使用大模型翻译字幕为 {language}，请稍候...",
    "Subtitle translation succeeded": "字幕翻译成功: {file}",
    "Subtitle translation succeeded for multiple files": "字幕翻译成功，共 {count} 个文件: {files}",
    "Subtitle translation failed": "字幕翻译失败",
    "Subtitle translation progress": "{file}: {completed}/{total} 条 · {message}",
    "Transcribed subtitles storage hint": "之前转录生成的字幕保存在 {path}，可从该目录拖入上传",
    "Tavily Search Settings": "Tavily 联网搜索",
    "Tavily API Key": "Tavily API Key",
    "Tavily API Key Help": "用于剧情理解前的联网检索。开启“联网搜索”后，会先按作品名称检索剧情、人物和背景信息，再结合字幕分析。",
    "Tavily config saved": "Tavily 配置已保存",
    "联网搜索": "联网搜索",
    "Enable Web Search Help": "开启后，剧情理解会先使用 Tavily 按作品名称联网检索，再结合检索结果和字幕分析剧情。",
    "Please configure Tavily API Key in Basic Settings": "请先在基础设置中配置 Tavily API Key",
    "Please enter short drama name before web search": "开启联网搜索前，请先填写短剧名称",
    "Please enter film/tv title before web search": "开启联网搜索前，请先填写影视名称",
    "Searching short drama with Tavily...": "正在使用 Tavily 检索短剧信息...",
    "Tavily search failed": "Tavily 检索失败",
    "剧情理解": "剧情理解",
    "剧情理解结果": "剧情理解结果",
    "Analyzing plot...": "正在理解剧情...",
    "Plot analysis completed": "剧情理解完成",
    "Please generate or upload subtitles first": "请先转写或上传字幕",
    "Please transcribe or upload subtitles first": "请先转写或上传字幕",
    "Fun-ASR transcription failed": "Fun-ASR 字幕转写失败",
    "Validating script format...": "正在验证脚本格式...",
    "Script format validation failed": "脚本格式验证失败",
    "Error Message": "错误信息",
    "Details": "详细说明",
    "Correct script format example": "正确的脚本格式示例",
    "Script format validation error": "格式验证过程中发生错误",
    "Script validated and saved successfully": "✅ 脚本格式验证通过，保存成功！",
    "Tencent Secret ID Help": "请输入您的腾讯云 Secret ID",
    "Tencent Secret Key Help": "请输入您的腾讯云 Secret Key",
    "Tencent Service Region Help": "选择腾讯云 TTS 服务地域",
    "Custom Voice": "自定义音色",
    "Select Tencent TTS Voice": "选择腾讯云 TTS 音色",
    "Tencent Cloud TTS Voice Description": "腾讯云 TTS 音色说明",
    "Female Voices": "女声音色",
    "Male Voices": "男声音色",
    "Tencent More Voices Notice": "更多音色请参考腾讯云官方文档",
    "Qwen DashScope API Key Help": "通义千问 DashScope API Key",
    "TTS Model Name": "模型名称",
    "Qwen TTS Model Help": "Qwen TTS 模型名，例如 qwen3-tts-flash",
    "Select Qwen3 TTS Voice": "选择 Qwen3 TTS 音色",
    "API URL": "API 地址",
    "IndexTTS API URL Help": "IndexTTS-1.5 API 服务地址",
    "IndexTTS2 API URL Help": "IndexTTS-2 API 服务地址，可填写服务根地址或完整 /tts 地址",
    "OmniVoice API URL Help": "OmniVoice-Pack API 服务地址，可填写服务根地址或完整 /tts 地址",
    "OmniVoice Language Code": "合成语言",
    "OmniVoice Language Code Help": "传给 OmniVoice-Pack 的 language 参数，例如 zh、en。",
    "OmniVoice Generation Mode": "生成模式",
    "OmniVoice Generation Mode Help": "自动音色无需额外参数；指令音色使用描述词；参考音频克隆需要参考音频和对应文本。",
    "OmniVoice Mode Auto": "自动音色",
    "OmniVoice Mode Voice Design": "指令音色",
    "OmniVoice Mode Voice Clone": "参考音频克隆",
    "OmniVoice Instruct": "音色指令",
    "OmniVoice Instruct Help": "描述希望生成的音色，例如性别、音高、口音或风格。",
    "OmniVoice Instruct Placeholder": "例如：female, low pitch, british accent",
    "OmniVoice Reference Text": "参考音频文本",
    "OmniVoice Reference Text Help": "参考音频对应的逐字文本；当前部署未启用 ASR 时必须填写。",
    "OmniVoice Reference Text Placeholder": "请输入参考音频中实际朗读的内容",
    "OmniVoice Num Step Help": "扩散生成步数，值越大通常质量更高但速度更慢。",
    "OmniVoice Guidance Scale Help": "控制文本条件的引导强度。",
    "OmniVoice Duration": "目标时长（秒）",
    "OmniVoice Duration Help": "0 表示由模型自动决定时长。",
    "OmniVoice Denoise": "启用降噪",
    "OmniVoice Denoise Help": "让 OmniVoice-Pack 对生成结果执行降噪处理。",
    "OmniVoice Postprocess Output": "后处理输出",
    "OmniVoice Postprocess Output Help": "启用 OmniVoice-Pack 的输出后处理。",
    "OmniVoice Preprocess Prompt": "预处理文本",
    "OmniVoice Preprocess Prompt Help": "启用 OmniVoice-Pack 的文本预处理。",
    "Reference Audio Source": "参考音频来源",
    "Reference Audio Source Help": "选择从资源目录选择参考音频，或上传新的参考音频",
    "Select from Resource Directory": "从资源目录选择",
    "Upload Reference Audio": "上传参考音频",
    "Reference Audio Path": "参考音频",
    "Reference Audio Path Help": "选择用于语音克隆的参考音频（WAV/MP3 格式，建议 3-10 秒）",
    "No Reference Audio Resources Found": "未找到资源目录中的参考音频，请上传参考音频文件",
    "Preview Reference Audio": "试听",
    "Preview Reference Audio Help": "播放当前参考音频",
    "Upload Reference Audio File": "上传参考音频文件",
    "Upload Reference Audio Help": "上传一段清晰的音频用于语音克隆",
    "Audio uploaded": "音频已上传: {path}",
    "Inference Mode": "推理模式",
    "Standard Inference": "普通推理",
    "Fast Inference": "快速推理",
    "Inference Mode Help": "普通推理质量更高但速度较慢，快速推理速度更快但质量略低",
    "Advanced Parameters": "高级参数",
    "Sampling Temperature": "采样温度 (Temperature)",
    "Sampling Temperature Help": "控制随机性，值越高输出越随机，值越低越确定",
    "Top P Help": "nucleus 采样的概率阈值，值越小结果越确定",
    "Top K Help": "top-k 采样的 k 值，0 表示不使用 top-k",
    "Num Beams": "束搜索 (Num Beams)",
    "Num Beams Help": "束搜索的 beam 数量，值越大质量可能越好但速度越慢",
    "Repetition Penalty": "重复惩罚 (Repetition Penalty)",
    "Repetition Penalty Help": "值越大越能避免重复，但过大可能导致不自然",
    "Enable Sampling": "启用采样",
    "Enable Sampling Help": "启用采样可以获得更自然的语音",
    "IndexTTS Usage Instructions Title": "IndexTTS-1.5 使用说明",
    "IndexTTS Usage Instructions": "**零样本语音克隆**\n\n1. **准备参考音频**：上传或指定一段清晰的音频文件（建议 3-10 秒）\n2. **设置 API 地址**：确保 IndexTTS-1.5 服务正常运行\n3. **开始合成**：系统会自动使用参考音频的音色合成新语音\n\n**注意事项**：\n- 参考音频质量直接影响合成效果\n- 建议使用无背景噪音的清晰音频\n- 文本长度建议控制在合理范围内\n- 首次合成可能需要较长时间",
    "IndexTTS2 Emotion Parameters": "情感参数",
    "Emotion Mode": "情感控制方式",
    "Emotion Mode Help": "选择 IndexTTS-2 的情感控制来源",
    "Emotion Mode Speaker": "与音色参考相同",
    "Emotion Mode Audio": "使用情感参考音频",
    "Emotion Mode Vector": "使用情感向量",
    "Emotion Mode Text": "使用情感描述文本",
    "Emotion Alpha": "情感权重",
    "Emotion Alpha Help": "控制情感条件的影响强度，0 表示弱，1 表示强",
    "Emotion Reference Audio Path": "情感参考音频路径",
    "Emotion Reference Audio Path Help": "emotion_mode=audio 时使用的本地情感参考音频路径",
    "Emotion Text": "情感描述文本",
    "Emotion Text Help": "emotion_mode=text 时使用的情感描述，例如开心、紧张、委屈",
    "Emotion Text Placeholder": "例如：沉稳、紧张、开心",
    "Use Random Emotion": "启用随机情感",
    "Use Random Emotion Help": "让 IndexTTS-2 在生成时使用随机情感采样",
    "Emotion Happy": "开心",
    "Emotion Angry": "愤怒",
    "Emotion Sad": "悲伤",
    "Emotion Afraid": "害怕",
    "Emotion Disgusted": "厌恶",
    "Emotion Melancholic": "忧郁",
    "Emotion Surprised": "惊讶",
    "Emotion Calm": "平静",
    "Max Text Tokens Per Segment": "单段最大文本 Token",
    "Max Text Tokens Per Segment Help": "IndexTTS-2 分段推理的最大文本 token 数",
    "Max Mel Tokens": "最大 Mel Tokens",
    "Max Mel Tokens Help": "控制单次生成的最大 mel token 数，值越大可生成更长音频",
    "IndexTTS2 Usage Instructions Title": "IndexTTS-2 使用说明",
    "IndexTTS2 Usage Instructions": "**IndexTTS-2 语音克隆**\n\n1. **选择音色**：复用 IndexTTS-1.5 的资源音频或上传参考音频\n2. **设置 API 地址**：例如 http://192.168.3.6:7863/tts，也可以填写服务根地址\n3. **调整情感参数**：默认使用 speaker，可按需切换到 audio、vector 或 text\n4. **调整生成参数**：temperature、top_p、top_k、num_beams、repetition_penalty 和 max_mel_tokens 会直接传给 IndexTTS-2 接口\n\n**注意事项**：\n- 参考音频质量会直接影响克隆效果\n- 首次请求可能需要加载模型，耗时更长\n- CPU 部署生成速度会明显慢于 GPU",
    "OmniVoice Usage Instructions Title": "OmniVoice 使用说明",
    "OmniVoice Usage Instructions": "**OmniVoice-Pack 语音合成**\n\n1. **自动音色**：只需要设置 API 地址和语言，可直接合成。\n2. **指令音色**：填写 instruct 描述想要的性别、音高、口音或风格。\n3. **参考音频克隆**：上传或选择参考音频，并填写该音频对应文本。\n\n**注意事项**：\n- 当前默认服务地址为 http://127.0.0.1:7866/tts\n- 参考音频克隆在服务未加载 ASR 模型时必须填写参考文本\n- OmniVoice 返回 WAV 音频，系统会按音频时长估算字幕段落",
    "Volcengine Access Key Help": "火山引擎 Access Key",
    "Volcengine Secret Key Help": "火山引擎 Secret Key",
    "Doubao AppID Help": "豆包语音应用 AppID",
    "Doubao Token Help": "豆包语音应用 Token",
    "Cluster": "集群",
    "Doubao Cluster Help": "业务集群，标准音色使用 volcano_tts",
    "Select Doubao TTS Voice": "选择豆包语音 TTS 音色",
    "Voice Rate Help 0.2-3.0": "调节语音速度 (0.2-3.0)",
    "Voice Volume Help 0.1-2.0": "调节语音音量 (0.1-2.0)",
    "Voice Pitch Help 0.5-1.5": "调节语音音高 (0.5-1.5)",
    "Sentence Silence Duration": "句尾静音时长 (秒)",
    "Sentence Silence Duration Help": "调节句尾静音时长 (0.0-2.0 秒)",
    "Doubao TTS API Key Application Process": "豆包语音 TTS API Key申请流程",
    "Application Steps": "申请步骤",
    "Doubao TTS Step 1": "1. 打开 [https://console.volcengine.com/iam/keymanage](https://console.volcengine.com/iam/keymanage)",
    "Doubao TTS Step 2": "2. 新建 Access Key 和 Secret Key",
    "Doubao TTS Step 3": "3. 打开 [https://www.volcengine.com/product/voice-tech](https://www.volcengine.com/product/voice-tech)",
    "Doubao TTS Step 4": "4. 点击立即使用",
    "Doubao TTS Step 5": "5. 在最左边的 API 服务中心找到音频生成下面的语音合成（注意：是语音合成，不是语音合成大模型）",
    "Doubao TTS Step 6": "6. 翻到最下面获取 APPID 和 Access Token",
    "Doubao TTS Fill Credentials Notice": "请将获取到的 Access Key、Secret Key、AppID 和 Token 填写到上方的配置中",
    "Doubao TTS configured": "豆包语音 TTS 配置已设置",
    "Please configure missing fields": "请配置: {fields}",
    "Preview Voice Synthesis": "试听语音合成",
    "Voice Preview Sample": "感谢关注 NarratoAI，有任何问题或建议，可以加入社区频道求助或讨论",
    "Please configure voice settings first": "请先配置语音设置",
    "Voice synthesis successful": "语音合成成功！",
    "Voice synthesis failed": "语音合成失败，请检查配置",
    "SoulVoice pitch not supported": "SoulVoice 引擎不支持音调调节",
    "上传字幕文件": "上传字幕",
    "清除已上传字幕": "清除已上传字幕",
    "无法读取字幕文件，请检查文件编码（支持 UTF-8、UTF-16、GBK、GB2312）": "无法读取字幕文件，请检查文件编码（支持 UTF-8、UTF-16、GBK、GB2312）",
    "字幕文件内容似乎为空，请检查文件": "字幕文件内容似乎为空，请检查文件",
    "字幕上传成功": "字幕上传成功",
    "短剧名称": "短剧名称",
    "影视名称": "影视名称",
    "解说语言": "解说语言",
    "自定义解说语言": "自定义解说语言",
    "例如：意大利语（意大利）": "例如：意大利语（意大利）",
    "请输入自定义解说语言": "请输入自定义解说语言",
    "简体中文（中国）": "简体中文（中国）",
    "英语（美国）": "英语（美国）",
    "日语（日本）": "日语（日本）",
    "韩语（韩国）": "韩语（韩国）",
    "法语（法国）": "法语（法国）",
    "德语（德国）": "德语（德国）",
    "西班牙语（西班牙）": "西班牙语（西班牙）",
    "葡萄牙语（巴西）": "葡萄牙语（巴西）",
    "俄语（俄罗斯）": "俄语（俄罗斯）",
    "自定义": "自定义",
    "短剧类型": "短剧类型",
    "自定义短剧类型": "自定义短剧类型",
    "影视类型": "影视类型",
    "自定义影视类型": "自定义影视类型",
    "原片占比": "原片占比",
    "例如：豪门虐恋": "例如：豪门虐恋",
    "例如：悬疑犯罪": "例如：悬疑犯罪",
    "请输入自定义短剧类型": "请输入自定义短剧类型",
    "请输入自定义影视类型": "请输入自定义影视类型",
    "逆袭/复仇": "逆袭/复仇",
    "霸总/甜宠": "霸总/甜宠",
    "家庭伦理": "家庭伦理",
    "古装/权谋": "古装/权谋",
    "悬疑/犯罪": "悬疑/犯罪",
    "都市情感": "都市情感",
    "年代/乡村": "年代/乡村",
    "剧情/情感": "剧情/情感",
    "动作/冒险": "动作/冒险",
    "喜剧/轻松": "喜剧/轻松",
    "科幻/奇幻": "科幻/奇幻",
    "历史/战争": "历史/战争",
    "恐怖/惊悚": "恐怖/惊悚",
    "生成解说文案": "生成解说文案",
    "生成剪辑脚本": "生成剪辑脚本",
    "短剧解说文案": "短剧解说文案",
    "影视解说文案": "影视解说文案",
    "Narration Copy Help": "先点击生成解说文案；审核、删改或重写这段文案后，再点击生成剪辑脚本匹配画面和时间戳。",
    "Narration copy generated successfully": "解说文案已生成，可先审核修改",
    "生成短剧解说脚本": "生成短剧解说脚本",
    "请输入视频脚本": "请输入视频脚本",
    "自定义片段": "自定义片段",
    "设置需要生成的短视频片段数量": "设置需要生成的短视频片段数量",
    "原生Gemini模型连接成功": "原生 Gemini 模型连接成功",
    "原生Gemini模型连接失败": "原生 Gemini 模型连接失败",
    "OpenAI兼容Gemini代理连接成功": "OpenAI 兼容 Gemini 代理连接成功",
    "OpenAI兼容Gemini代理连接失败": "OpenAI 兼容 Gemini 代理连接失败",
    "Progress": "进度",
    "Generating script...": "正在生成脚本...",
    "Please select video file first": "请先选择视频文件",
    "Extracting keyframes...": "正在提取关键帧...",
    "Script generation completed": "脚本生成完成",
    "Script generation completed!": "🎉 脚本生成完成！",
    "Video script generated successfully": "✅ 视频脚本生成成功！",
    "Generation error": "❌ 生成过程中发生错误",
    "Please upload subtitle file first": "请先上传字幕文件",
    "Video": "视频",
    "Subtitle": "字幕",
    "Preparing script generation": "开始准备生成脚本",
    "Script generation failed check logs": "生成脚本失败，请检查日志",
    "Parsing subtitles...": "正在解析字幕...",
    "Analyzing subtitles with model...": "正在等待模型分析字幕...",
    "Subtitle file does not exist": "字幕文件不存在",
    "Subtitle file is empty or unreadable": "字幕文件内容为空或无法读取",
    "Generating narration copy...": "正在生成文案...",
    "Generated narration copy is empty": "生成的解说文案为空",
    "Please generate and review narration copy first": "请先生成并审核解说文案",
    "Matching narration copy to footage...": "正在根据解说文案匹配画面和时间戳...",
    "Waiting for model stream...": "正在等待模型流式输出...",
    "Streaming unavailable fallback waiting...": "当前接口未返回流式内容，正在等待完整响应...",
    "LLM stream window title": "模型思考 / 输出流",
    "Model reasoning stream": "【模型思考】",
    "Model output preview": "【模型输出预览】",
    "Repairing narration script...": "正在修复解说脚本...",
    "Generated narration JSON parse failed": "生成的解说文案格式错误，无法解析为 JSON",
    "Generated narration missing items field": "生成的解说文案缺少必要的 'items' 字段",
    "Generated narration validation failed": "生成的解说脚本校验失败",
    "Preparing output...": "整理输出..."
  }
}
