import type enDashboard from '../en/dashboard';

export default {
  'app_title': '[[brand]]',
  'projects': '项目',
  'create_project': '创建项目',
  'new_project': '新建项目',
  'project_name': '项目名称',
  'project_title': '项目标题',
  'content_mode': '内容模式',
  'narration': '说书',
  'standard': '标准',
  'generate_overview': '生成概述',
  'source_text': '源文本',
  'source_file': '源文件',
  'project_list': '项目列表',
  'all_projects': '所有项目',
  'search_projects': '搜索项目...',
  'recent_projects': '最近访问',
  'import_project': '导入项目',
  'import_success': '导入成功',
  'import_failed': '导入失败',
  'export_diagnostics': '导出诊断',
  'project_title_required': '项目标题不能为空',
  'style_upload_failed_hint': '风格参考图上传失败，可稍后在项目设置中重新上传',
  'create_project_failed': '创建项目失败: {{message}}',
  'project_id_auto_gen_hint': '系统会自动生成内部项目标识并用于 URL 与文件存储',
  'narration_visuals': '旁白模式',
  'drama_animation': '剧集模式',
  'content_mode_narration_desc': '旁白驱动——一条旁白贯穿整集叙事，画面配合旁白推进，适合说书、纪实、知识类短片。',
  'content_mode_drama_desc': '内容驱动——角色对话与剧情推动画面，适合剧集动画、小说改编等故事型内容。',
  'optional': '可选',
  'creating': '创建中...',
  'rebirth_empress_example': '例如：重生之皇后威武',
  'characters': '角色',
  'episodes': '分集',
  'episodes_scripted': '集剧本完成',
  'episodes_in_production': '集制作中',
  'episodes_completed': '集已完成',
  'progress': '进度',
  'style_not_set': '未设置风格',
  'style_custom': '自定义风格',
  'project_style_section_title': '项目风格',
  'style_save': '保存风格',
  'style_saving': '保存中…',
  'style_clear': '取消风格',
  'style_cleared_hint': '保存后将移除当前风格',
  'importing': '导入中...',
  'import_zip': '导入 ZIP',
  'loading_projects': '加载项目列表...',
  'no_projects': '暂无项目',
  'start_creating_hint': '点击右上角「新建项目」或「导入 ZIP」开始创作',
  'duplicate_project_id': '检测到项目编号重复',
  'overwrite_existing': '覆盖现有项目',
  'auto_rename_import': '自动重命名导入',
  'overwrite_hint': '使用导入包内容替换现有项目编号对应的数据',
  'rename_hint': '保留现有项目，新导入项目自动生成新的内部编号',
  'id_intended_hint': '导入包准备使用的项目编号',
  'already_exists_conflict_hint': '已存在。你可以覆盖现有项目，或自动重命名后继续导入。',
  'project_overview': '项目概览',
  'source_files': '源文件',
  'upload_source_files': '上传源文件',
  'no_files_yet': '暂无文件',
  'delete_file': '删除文件',
  'lorebook': '设定集',
  'no_episodes_yet': '暂无剧集',
  'preprocessing': '预处理',
  'confirm_delete_file': '确定要删除 "{{name}}" 吗？',
  'agents': '智能体',
  'providers': '供应商',
  'models': '模型选择',
  'usage': '用量统计',
  'api_keys': 'API 令牌',
  'about': '关于',
  'system_config_title': '系统配置与 API 访问管理',
  'about_loading': '正在加载版本信息…',
  'about_current_version': '当前版本',
  'about_check_update': '检查更新',
  'about_checking_update': '检查更新中…',
  'about_latest_version': '最新版本：{{version}}',
  'about_update_available': '发现新版本',
  'about_up_to_date': '当前已是最新版本',
  'about_open_release': '打开 GitHub Release',
  'about_release_notes': 'Release Notes',
  'about_release_notes_empty': '暂无可展示的发布说明。',
  'about_load_failed': '加载版本信息失败',
  'about_published_at': '发布时间：{{date}}',
  'about_checked_at': '最近检查：{{date}}',
  'diagnostics_section_title': '诊断日志',
  'diagnostics_section_desc': '打包最近 7 天的日志与系统信息（已脱敏 API 密钥），用于反馈 bug。',
  'diagnostics_download': '下载诊断日志',
  'diagnostics_downloading': '打包中…',
  'diagnostics_download_failed': '下载失败：{{error}}',
  'config_issues': '配置问题',
  'config_issues_hint': '当前配置存在以下问题，可能会影响部分功能：',
  'arcreel_agent': '[[brand]] 智能体',
  'agent_sdk_desc': '基于 Claude Agent SDK，驱动对话式 AI 助手与自动化工作流',
  'claude_code_compat_hint': '配置项兼容 Claude Code 环境变量命名，可使用兼容 Claude Code 的 Coding Plan API。',
  'api_access': 'API 访问',
  'anthropic_creds_desc': '设置 Anthropic API 访问凭据。',
  'anthropic_api_key': 'Anthropic API 密钥',
  'detect_model_hint': '设置 API 密钥后，系统会自动检测模型可用性。',
  'enter_api_key': '请输入 API 密钥...',
  'current_label': '当前：',
  'encrypted': '已加密存储',
  'clear': '清除',
  'api_base_url': 'API 代理地址',
  'optional_default_hint': '可选，默认为 Anthropic 官方地址。',
  'api_base_example': '例如：https://api.anthropic.com',
  'model_routing': '模型路由',
  'model_routing_desc': '为不同复杂度的智能体任务配置具体的 Claude 模型。',
  'hide_advanced_routing': '收起高级路由',
  'show_advanced_routing': '展开高级路由',
  'haiku_model': 'Haiku 模型',
  'haiku_desc': '轻量任务（分类、提取、简单问答）',
  'sonnet_model': 'Sonnet 模型',
  'sonnet_desc': '均衡任务（写作、编排、多步推理）',
  'opus_model': 'Opus 模型',
  'opus_desc': '复杂任务（长文创作、深度分析）',
  'subagent_model': '子 Agent 模型',
  'subagent_desc': 'Subagent 并行执行时使用的模型',
  'advanced_session_settings': '高级会话设置',
  'session_control_desc': '控制智能体运行时的资源占用与会话生命周期。',
  'session_cleanup_delay': '闲置会话清除延迟',
  'cleanup_delay_desc': '会话闲置多少秒后自动清理（默认 300）',
  'max_concurrent_sessions': '最大并发会话',
  'max_sessions_desc': '系统允许同时运行的最大智能体数量',
  'agent_config_saved': '[[brand]] 智能体配置已保存',
  'field_cleared': '已清除',
  'api_key_mgmt': 'API 密钥管理',
  'api_key_usage_desc': '用于从外部工具（如 OpenClaw 🦞）访问 [[brand]] 项目。',
  'create_api_key': '创建 API 密钥',
  'name': '名称',
  'key_prefix': '密钥前缀',
  'created_at': '创建时间',
  'expires_at': '有效期至',
  'last_used': '最后使用',
  'actions': '操作',
  'permanent': '永久有效',
  'expired': '已过期',
  'no_api_keys': '暂无 API 密钥',
  'create_one_now': '立即创建一个',
  'new_api_key': '新建 API 密钥',
  'key_name_hint': '给密钥起个名字，方便识别（如：OpenClaw）',
  'enter_key_name': '请输入密钥名称...',
  'expiration_days': '有效期（天）',
  'zero_permanent_hint': '0 表示永久有效',
  'key_created': '密钥已创建',
  'save_key_now_hint': '请务必立即复制并安全保存此密钥，出于安全考虑，你将无法再次查看它。',
  'key_deleted_success': '已删除',
  'confirm_delete_key': '确定要删除密钥 "{{name}}" 吗？此操作不可撤销，且所有使用该密钥的集成都将失效。',
  'welcome_to_project': '欢迎来到 {{title}}！',
  'welcome_idle_desc': '请拖拽或上传您的小说源文件（txt/md），AI 将为您拆解设定。',
  'welcome_has_sources_desc': '源文件已就绪。您可以继续添加文件，或点击下方按钮开始 AI 分析。',
  'uploading_file': '正在上传 "{{name}}"...',
  'analyzing_content_desc': 'AI 正在分析小说内容，提取角色、场景、道具和世界观...',
  'analysis_complete_loading': '分析完成！正在加载项目概述...',
  'drop_files_here': '拖拽文件到此处',
  'click_to_select_files': '或点击选择文件（支持 .txt / .md）',
  'start_ai_analysis': '开始 AI 分析',
  'ai_analyzing': 'AI 分析中...',
  'extracting_metadata_desc': '正在提取故事梗概、题材、主题和世界观设定',
  'analysis_complete': '分析完成',
  'thinking_process_label': '思考过程',
  'task_in_progress_default': '任务进行中',
  'agent_handoff_headline': '准备就绪',
  'agent_handoff_subtitle': '与智能体对话，开启视频制作。',
  'agent_handoff_dismiss': '知道了',
  'what_happens_next': '接下来会发生什么？',
  'ai_will_analyze_desc': 'AI 将分析您的小说，提取角色、场景、道具和世界观设定',
  'overview_gen_desc': '自动生成项目概述，然后您可以开始创建剧本和分镜',
  'project_overview_regenerated': '项目概述已重新生成',
  'project_sync_failed': '同步项目变更失败: {{message}}',
  'synopsis': '故事梗概',
  'genre': '题材',
  'theme': '主题',
  'world_setting': '世界观设定',
  'estimated_cost': '预估费用',
  'regenerate_overview': '重新生成概述',
  'regenerating': '正在重新生成...',
  'total': '总计',
  'per_episode': '分集统计',
  'no_description': '暂无描述',
  'character_design': '角色设计图',
  'scene_design': '场景设计图',
  'prop_design': '道具设计图',
  'reference_image': '参考图',
  'click_to_generate': '待生成',
  'cancel_pending': '取消待上传',
  'replace': '替换',
  'change': '更换',
  'unsaved_reference': '待保存参考图',
  'saved_reference': '已保存参考图',
  'upload_reference': '上传参考图',
  'description': '描述',
  'character_desc_placeholder': '输入角色描述...',
  'scene_desc_placeholder': '输入场景描述...',
  'prop_desc_placeholder': '输入道具描述...',
  'voice_style': '声音风格',
  'voice_style_example': '例如：温柔但有威严',
  'generate_design': '生成设计图',
  'regenerate_design': '重新生成设计图',
  'characters_count': '角色 ({{count}})',
  'scenes': '场景',
  'props': '道具',
  'no_characters_hint': '暂无角色，点击下方按钮添加',
  'no_characters_hint_clickable': '暂无角色，点此添加',
  'no_scenes_hint_clickable': '暂无场景，点此添加',
  'no_props_hint_clickable': '暂无道具，点此添加',
  'add_character': '添加角色',
  'add_scene': '添加场景',
  'add_prop': '添加道具',
  'model_selection': '模型选择',
  'model_selection_desc': '设置全局默认的生成模型，项目内可单独覆盖',
  'default_video_model': '默认视频模型',
  'auto_select': '自动选择',
  'no_video_providers_hint': '暂无可用视频供应商，请先在「供应商」页面配置 API 密钥',
  'generate_audio': '生成音频',
  'audio_support_hint': '（仅部分供应商支持）',
  'default_image_model': '默认图片模型',
  'image_model_t2i': '文生图（T2I）',
  'image_model_i2i': '图生图（I2I）',
  'no_image_providers_hint': '暂无可用图片供应商，请先在「供应商」页面配置 API 密钥',
  'text_models': '文本模型',
  'text_models_desc': '按任务类型配置文本模型，留空表示自动选择',
  'script_generation': '剧本生成',
  'overview_generation': '概述生成',
  'style_analysis': '风格分析',
  'no_text_providers_hint': '暂无可用文本供应商，请先在「供应商」页面配置 API 密钥',
  'media_config_saved': '媒体模型配置已保存',
  'usage_stats': '用量统计',
  'usage_stats_desc': '系统累计消耗的 Token 与生成时长（仅包含本系统记录的部分）',
  'text_generation': '文本生成',
  'input_tokens': '输入 Token (Prompt)',
  'output_tokens': '输出 Token (Completion)',
  'image_generation': '图像生成',
  'images_generated': '生成张数',
  'video_generation': '视频生成',
  'generation_duration': '生成时长 (秒)',
  'api_calls': '调用次数',
  'total_api_calls': 'API 累计调用次数',
  'no_usage_data': '暂无用量数据',

  // GlobalHeader
  'mode_badge_drama': '剧集动画 16:9',
  'mode_badge_narration': '说书模式 9:16',
  'jianying_export_started': '剪映草稿导出已开始，请将下载的 ZIP 解压到剪映草稿目录中',
  'jianying_export_failed': '剪映草稿导出失败: {{message}}',
  'project_zip_download_started_with_diagnostics': '项目 ZIP 已开始下载，导出包包含 {{count}} 条诊断',
  'project_zip_download_started': '项目 ZIP 已开始下载',
  'export_failed': '导出失败: {{message}}',
  'open_notification_center': '打开通知中心',
  'notification_tooltip': '会话通知: {{count}} 条',
  'cost_tooltip': '项目总花费: {{cost}}',
  'task_status_tooltip': '任务状态: {{running}} 运行中, {{queued}} 排队中',
  'toggle_options': '切换选项',
  'toggle_task_panel': '切换任务面板',
  'export_project_zip': '导出当前项目 ZIP',
  'exporting_zip': '导出中...',
  'export_zip': '导出',
  'config_incomplete': '配置不完整',
  'export_diagnostics_title': '导出诊断',
  'export_diagnostics_description': '导出已完成预检查并生成 ZIP。以下问题在导出包中被检测到。',
  'diagnostics_blocking': '阻断问题',
  'diagnostics_auto_fixed': '已自动修复',
  'diagnostics_warnings': '警告',
  'workflow_phases': '工作流阶段',
  'phase_setup': '筹备',
  'phase_worldbuilding': '世界观',
  'phase_scripting': '编剧',
  'phase_production': '制作',
  'phase_completed': '完成',
  'episode_status_label_draft': '草稿',
  'episode_status_label_scripted': '已成稿',
  'episode_status_label_in_production': '制作中',
  'episode_status_label_completed': '已完成',
  'episode_status_label_missing': '缺失',

  // CreateProjectModal
  'aspect_ratio': '画面比例',
  'portrait_9_16': '竖屏 9:16',
  'landscape_16_9': '横屏 16:9',
  'default_duration': '默认时长',
  'default_duration_desc': '由 AI 根据内容自动决定时长，或指定固定时长',
  'auto': '自动',

  // ExportScopeDialog
  'export_scope_title': '选择导出范围',
  'current_version_only': '仅当前版本',
  'recommended': '推荐',
  'small_size_hint': '不含版本历史，体积更小',
  'all_data': '全部数据',
  'full_history_hint': '包含完整版本历史',
  'export_jianying_draft': '导出为剪映草稿',
  'generate_jianying_zip_hint': '生成剪映可导入的草稿 ZIP',
  'select_episode': '选择集数',
  'episode_with_title': '第 {{episode}} 集 — {{title}}',
  'jianying_version': '剪映版本',
  'jianying_v6_plus': '剪映 6.0 及以上（推荐）',
  'jianying_v5_x': '剪映 5.x',
  'draft_path': '草稿目录路径',
  'draft_path_placeholder': '剪映草稿目录路径',
  'draft_path_default_mac': '/Users/<你的用户名>/Movies/JianyingPro/User Data/Projects/com.lveditor.draft',
  'draft_path_default_windows': String.raw`C:\Users\<你的用户名>\AppData\Local\JianyingPro\User Data\Projects\com.lveditor.draft`,
  'draft_path_hint': '请填入剪映草稿目录的完整路径。打开剪映 → 设置 → 草稿位置 可查看。',
  'exporting': '导出中...',
  'export_draft': '导出草稿',

  // TaskHud
  'generating_status': '生成中...',
  'queued_status': '排队中',
  'completed_status': '已完成',
  'failed_status': '失败',
  'running_count': '{{count}} 运行中',
  'no_tasks': '暂无任务',
  'queued_label': '排队',
  'running_label': '运行',
  'completed_label': '完成',
  'failed_label': '失败',
  'image_channel': '图片通道',
  'video_channel': '视频通道',
  'cancelled_status': '已取消',
  'cancelled_label': '取消',
  'cancel_task': '取消任务',
  'cancel_this_task': '取消此任务',
  'cancel_btn': '取消',
  'cascade_label': '级联',
  'cancel_all': '全部取消',
  'cancel_all_queued_aria': '取消所有排队中的任务',
  'cancel_confirm_aria': '取消确认',
  'cancel_cascade_msg': '取消此任务将同时取消 {{count}} 个依赖任务',
  'cancel_single_confirm': '确定取消此任务？',
  'cancel_all_confirm': '确定取消所有 {{count}} 个排队中的任务？',
  'cancelling': '取消中...',
  'confirm_cancel': '确认取消',
  'go_back': '返回',

  // AgentCopilot
  'new_session': '新会话',
  'switch_session': '切换会话',
  'no_session': '无会话',
  'confirm_delete_session': '确定要删除这个会话吗？此操作不可撤销。',
  'delete_session': '删除会话',
  'answer_above_hint': '请先回答上方问题',
  'generating_stop_hint': '助手正在生成中，可点击停止中断',
  'input_placeholder': '输入消息，输入 / 查看可用技能',
  'image_too_large_hint': '图片 "{{name}}" 超过 5MB，已跳过',
  'collapse_panel': '收起助手面板',
  'thinking': '运行中',
  'start_chat_hint': '在下方输入消息开始对话',
  'quick_skill_hint': '输入 / 可快速调用技能',
  'enlarge_image': '点击放大图片',
  'remove_image': '移除图片',
  'assistant_input': '助手输入',
  'max_images_hint': '最多附加 {{count}} 张图片',
  'attach_image': '附加图片',
  'stop_session': '中断会话',
  'send_message': '发送消息',

  // StudioCanvasRouter & Toasts
  'update_prompt_failed': '更新 Prompt 失败: {{message}}',
  'storyboard_task_submitted_toast': '已提交分镜 "{{id}}" 生成任务',
  'generate_storyboard_failed': '生成分镜失败: {{message}}',
  'video_task_submitted_toast': '已提交视频 "{{id}}" 生成任务',
  'generate_video_failed': '生成视频失败: {{message}}',
  'character_updated_toast': '角色 "{{name}}" 已更新',
  'update_character_failed': '更新角色失败: {{message}}',
  'character_task_submitted_toast': '角色 "{{name}}" 生成任务已提交',
  'submit_failed': '提交失败: {{message}}',
  'character_added_toast': '角色 "{{name}}" 已添加',
  'add_failed': '添加失败: {{message}}',
  'update_scene_failed': '更新场景失败: {{message}}',
  'generate_scene_failed': '生成场景设计图失败: {{message}}',
  'scene_task_submitted_toast': '场景 "{{name}}" 生成任务已提交',
  'scene_added_toast': '场景 "{{name}}" 已添加',
  'update_prop_failed': '更新道具失败: {{message}}',
  'generate_prop_failed': '生成道具设计图失败: {{message}}',
  'prop_task_submitted_toast': '道具 "{{name}}" 生成任务已提交',
  'prop_added_toast': '道具 "{{name}}" 已添加',
  'from_library_button_label': '从资产库选择',
  'add_to_library_button_label': '加入资产库',
  'loading_placeholder': '加载中...',

  // AddCharacterForm & AddSceneInline & AddPropInline
  'name_label': '名称',
  'name_placeholder': '角色名称',
  'desc_label': '描述',
  'char_desc_placeholder': '角色外貌、性格、背景等描述...',
  'voice_style_label': '声音风格',
  'reference_image_optional': '参考图 （可选）',
  'reference_selected': '已选择参考图',
  'upload_ref_image': '上传参考图片',
  'consistency_hint': '用于后续角色设计图生成时保持角色一致性',
  'cancel': '取消',
  'adding': '添加中...',
  'add': '添加',

  // OverviewCanvas cost & style section
  'project_total_cost': '项目总费用',
  'estimate': '预估',
  'storyboard': '分镜',
  'video': '视频',
  'actual': '实际',
  'actual_characters': '角色',
  'actual_scenes': '场景',
  'actual_props': '道具',
  'regenerate_failed': '重新生成失败: {{message}}',
  'upload_failed': '上传失败: {{message}}',
  'delete_failed': '删除失败: {{message}}',
  'update_failed': '更新失败: {{message}}',

  // ApiKeysTab
  'create_failed': '创建失败: {{message}}',
  'save_key_warning': '请务必立即复制并安全保存此密钥',
  'key_not_viewable_again': '出于安全考虑，你将无法再次查看它。',
  'load_failed': '加载失败: {{message}}',

  // AgentConfigTab
  'api_credentials': 'API 凭证',
  'anthropic_key_required_desc': 'Anthropic API 密钥是智能体运行的必要条件',
  'env_anthropic_api_key': '对应环境变量 ANTHROPIC_API_KEY',
  'clear_saved_anthropic_key': '清除已保存的 Anthropic API Key',
  'clear_saved': '清除已保存',
  'env_anthropic_base_url': '对应 ANTHROPIC_BASE_URL，留空使用官方默认地址',
  'clear_saved_base_url': '清除已保存的 Anthropic Base URL',
  'model_config': '模型配置',
  'model_config_desc': '指定智能体使用的 Claude 模型。留空则使用 Claude Agent SDK 默认值。',
  'default_model': '默认模型',
  'env_anthropic_model': '对应 ANTHROPIC_MODEL，覆盖默认模型',
  'clear_saved_model': '清除已保存的模型配置',
  'advanced_model_routing': '高级模型路由',
  'model_routing_hint': 'Claude Agent SDK 支持按能力等级路由到不同模型。留空则统一使用上方的默认模型。',
  'clear_saved_field': '清除已保存的 {{label}}',
  'clear_field_input': '清除 {{label}} 输入',
  'advanced_settings': '高级设置',
  'session_cleanup_delay_label': '会话清理延迟（秒）',
  'session_cleanup_delay_desc': '会话结束后等待此时间再释放资源，再次对话时会自动恢复',
  'max_concurrent_sessions_label': '最大并发会话数',
  'max_concurrent_sessions_desc': '同时保持活跃的智能体会话上限，超出时自动释放最久未使用的会话（清理的会话会持久化，下次对话时恢复）',
  'clear_failed': '清除失败: {{message}}',
  'clear_input': '清除输入',
  'hide_key': '隐藏密钥',
  'show_key': '显示密钥',
  'clear_base_url_input': '清除 Base URL 输入',
  'clear_model_input': '清除模型配置输入',

  // WelcomeCanvas
  'analysis_failed': '分析失败: {{message}}',
  'uploaded_source_files': '已上传的源文件',
  'add_more_files': '添加更多文件',
  'drop_more_files_here': '或拖拽更多文件到此处',
  'uploading': '上传中...',

  // SourceFilesPage
  'source_files_drop_hint': '拖拽小说文本到此处，或点击选择文件',
  'source_files_drop_inline_hint': '可继续拖拽文件加入',
  'source_open': '打开',

  // TaskHud / Notifications / Usage v3
  'task_hud_title': '任务雷达',
  'workspace_notifications_title': '工作区通知',
  'cost_details_eyebrow': '用量与费用',

  // MediaModelSection
  'save_failed': '保存失败: {{message}}',

  // UsageStatsSection
  'spend_ledger': '费用账本',
  'last_7_days': '最近 7 天',
  'last_30_days': '最近 30 天',
  'all': '全部',
  'usage_stats_by_provider': '查看各供应商的 API 调用统计',
  'filter_by_provider': '按供应商筛选',
  'all_providers': '全部供应商',
  'no_data': '暂无数据',
  'total_calls': '总调用',
  'calls': '调用',
  'success_count': '成功',
  'success_rate': '成功率',
  'type': '类型',
  'duration': '时长',

  // import diagnostics
  'import_auto_fixed': '项目「{{title}}」已导入（自动修复 {{count}} 个问题）',
  'import_success_with_diagnostics': '导入已完成预检查，请查看下方详情',
  'import_diagnostics': '导入诊断',
  'import_failure_diagnostics': '导入失败诊断',
  'import_failure_with_diagnostics': '导入未完成，下方列出了阻塞和警告项',
  'blocking_issues': '阻塞性问题',
  'auto_fixed_issues': '已自动修复的问题',
  // config-status-store
  'agent_api_key_not_configured': '[[brand]] 智能体 API Key（Anthropic）未配置',
  'video_provider_not_configured': '未配置支持视频生成的供应商',
  'image_provider_not_configured': '未配置支持图片生成的供应商',
  'text_provider_not_configured': '未配置支持文本生成的供应商',

  // OverviewCanvas / shared aria labels
  'import_project_file_aria': '导入项目 ZIP 文件',
  'import_credential_file_aria': '导入 JSON 凭据文件',
  'upload_asset_file_aria': '上传素材文件',
  'upload_attachment_aria': '上传附件图片',
  'upload_script_file_aria': '上传脚本文件',
  'upload_character_ref_aria': '上传角色参考图',
  'loading_project_data': '加载项目数据中...',
  'narration_visuals_mode': '旁白模式',
  'drama_animation_mode': '剧集模式',
  'project_overview_title': '项目概述',
  'regen_overview_title': '重新生成概述',
  'regenerating_short': '生成中...',
  'regen_short': '重新生成',
  'genre_prefix': '题材: ',
  'theme_prefix': '主题: ',
  'calculating_cost': '正在计算费用...',
  'cost_estimate_failed': '费用估算失败: {{message}}',
  'episodes_title': '剧集',
  'no_episodes_ai_hint': '暂无剧集。使用 AI 助手生成剧本。',
  'segments_and_status': '{{count}} 片段 · {{status}}',

  // ProjectSettingsPage
  'project_settings': '项目设置',
  'back_to_project': '返回项目',
  'model_config_project_desc': '为此项目单独选择生成模型，留空则跟随全局默认',
  'video_model': '视频模型',
  'current_global_hint': '当前全局: {{value}}',
  'aspect_ratio_label': '画面比例',
  'aspect_ratio_change_warning': '已生成的分镜图/视频仍为原比例，建议重新生成',
  'generation_mode': '分镜生成模式',
  'grid_generation': '宫格生成',
  'mode_storyboard': '图生视频',
  'mode_grid': '宫格生视频',
  'mode_reference_video': '参考生视频',
  'mode_storyboard_desc': '先逐张生成分镜图，再图生视频，适合精细控制。',
  'mode_grid_desc': '按段落批量生成宫格图，画风统一，适合量产。',
  'mode_reference_video_desc': '跳过分镜，直接用角色/场景/道具参考图多镜头生成视频。',
  'reference_tab_dirty_aria': '有未保存的改动',
  'reference_video_status_pending': '视频未生成',
  'reference_video_status_running': '视频生成中',
  'reference_video_status_ready': '视频已生成',
  'reference_video_status_failed': '视频生成失败',
  'reference_canvas_empty': '尚未创建任何 Unit',
  'reference_unit_list_title': 'Video Units',
  'reference_unit_new': '新建 Unit',
  'reference_preview_empty': '选中左侧 Unit 查看预览',
  'reference_preview_generate': '生成视频',
  'reference_preview_generating': '生成中…',
  'reference_meta_unit': 'Unit',
  'reference_meta_duration': '时长',
  'reference_meta_shots': '镜头数',
  'reference_meta_references': '参考图',
  'reference_units_count': '{{count}} 个 Unit',
  'reference_preview_video_aria': 'Unit {{id}} 的预览视频',
  // Reference video unit UI status labels — derived from task queue state.
  'reference_status_pending': '未生成',
  'reference_status_running': '生成中',
  'reference_status_ready': '已就绪',
  'reference_status_failed': '失败',
  'reference_generate_queued': '已加入生成队列',
  'reference_generate_deduped': '该 Unit 已在队列中',
  'reference_generate_request_failed': '生成请求失败：{{error}}，请稍后重试',
  'reference_generation_task_failed': 'Unit {{unitId}} 生成失败：{{reason}}，请稍后重试',
  'storyboard_task_failed': '分镜 "{{id}}" 生成失败：{{reason}}',
  'video_task_failed': '视频 "{{id}}" 生成失败：{{reason}}',
  'character_task_failed': '角色 "{{id}}" 生成失败：{{reason}}',
  'scene_task_failed': '场景 "{{id}}" 生成失败：{{reason}}',
  'prop_task_failed': '道具 "{{id}}" 生成失败：{{reason}}',
  'grid_task_failed': '宫格生成失败：{{reason}}',
  'episode_mode_switcher_label': '集级生成模式',
  'episode_mode_inherit_from_project': '继承项目设置',
  'episode_mode_switch_keep_data': '切换模式不会删除已生成的 units / scenes，可随时切回原模式继续。',
  'episode_mode_switch_to_reference': '切换到参考生视频：Timeline 中的分镜/宫格数据仍然保留，在下次切回时自动恢复。',
  'episode_mode_switch_from_reference': '切换回图生/宫格生视频：参考模式的 video_units 保留，切回时可继续生成。',
  // ========== PR5 reference-video editor ==========
  'reference_editor_placeholder': '输入 prompt，支持 "Shot 1 (3s): ..."，用 @ 引用角色/场景/道具',
  'reference_editor_aria_name': 'Unit 提示词',
  'reference_editor_unknown_mentions_label': '未注册提及',
  'reference_editor_unknown_mention': '未注册：@{{name}}（角色/场景/道具中都未找到）',
  'reference_picker_title': '插入引用',
  'reference_picker_empty': '无匹配项',
  'reference_picker_group_character': '角色',
  'reference_picker_group_scene': '场景',
  'reference_picker_group_prop': '道具',
  'reference_picker_tab_all': '全部',
  'reference_picker_tab_character': '角色',
  'reference_picker_tab_scene': '场景',
  'reference_picker_tab_prop': '道具',
  'segment_refs_edit_button': '编辑引用',
  'segment_refs_edit_title': '编辑引用',
  'segment_refs_close': '关闭',
  'segment_refs_save': '保存',
  'segment_refs_cancel': '取消',
  'segment_refs_changes_pending': '有未保存的更改',
  'segment_refs_no_changes': '未修改',
  'segment_refs_stale_hint': '此引用已失效，点击可移除',
  'segment_refs_search_empty': '无匹配项',
  'segment_refs_badge_character': '角色',
  'segment_refs_badge_scene': '场景',
  'segment_refs_badge_prop': '道具',
  'segment_refs_search_placeholder': '搜索…',
  'segment_refs_empty_characters': '项目暂无角色',
  'segment_refs_empty_clues': '项目暂无场景或道具',
  'segment_refs_manage_link': '前往管理',
  'segment_refs_stale_badge': '{{count}} 项失效',
  'references_empty_full': '暂未引用任何角色 / 场景 / 道具',
  'references_add_cta': '添加引用',
  'references_badge_character': '角色',
  'references_badge_scene': '场景',
  'references_badge_prop': '道具',
  'reference_panel_title': '引用图（拖拽调整顺序）',
  'reference_panel_empty': '暂无引用，点击 + 添加或在 prompt 里用 @ 提及',
  'reference_panel_add': '添加引用',
  'reference_panel_remove_aria': '移除引用 @{{name}}',
  'reference_panel_drag_aria': '拖拽调整 @{{name}} 的位置',
  'reference_panel_zoom_aria': '放大查看 @{{name}} 的引用图',
  'reference_panel_sr_instructions': '按 Space 键拿起项目；使用箭头键移动；再按 Space 放下；按 Esc 取消。',
  'reference_panel_announce_pick_up': '已拿起 {{name}}，当前位置 {{index}}。',
  'reference_panel_announce_move': '{{name}} 移动到位置 {{index}}。',
  'reference_panel_announce_drop': '已放下 {{name}} 在位置 {{index}}。',
  'reference_panel_announce_cancel': '已取消拖拽 {{name}}。',
  'reference_editor_unit_meta_one': '{{duration}}秒 · {{count}} 个镜头',
  'reference_editor_unit_meta_other': '{{duration}}秒 · {{count}} 个镜头',
  'default_duration_label': '默认时长',
  'default_duration_project_desc': '新分镜的默认视频时长，「自动」表示由 AI 根据内容决定',
  'duration_selection': '默认时长选择',
  'auto_label': '自动',
  'image_model': '图片模型',
  'generate_audio_label': '生成音频',
  'audio_settings_sr_label': '生成音频设置',
  'follow_global_default': '跟随全局默认',
  'enabled_label': '开启',
  'disabled_label': '关闭',
  'text_model_override_desc': '按任务类型覆盖，留空跟随全局默认',
  'loading_config': '加载配置中…',
  'saved': '已保存',
  'unsaved_changes_confirm': '有未保存的修改，确定要离开吗？',
  'unsaved_changes_hint': '有未保存的更改',

  // ProviderSection
  'status_ready': '已就绪',
  'status_error': '异常',
  'status_unconfigured': '未配置',
  'loading_providers': '加载供应商列表…',
  'provider_list': '供应商列表',
  'preset_providers': '预置供应商',
  'select_provider': '请选择供应商',

  // ProviderDetail
  'status_connected': '已连接',
  'media_type_video': '视频',
  'media_type_image': '图片',
  'media_type_text': '文本',
  'advanced_config': '高级配置',
  'enter_key_placeholder': '输入密钥',
  'clear_key': '清除密钥',
  'clear_label': '清除',
  'confirm_clear': '确认清除',
  'key_set_hint': '已设置（留空则保留现有值）',
  'save_provider': '保存',

  // CustomProviderSection
  'custom_providers': '自定义供应商',
  'add_custom_provider': '添加自定义供应商',

  // CustomProviderForm
  'edit_custom_provider': '编辑自定义供应商',
  'add_custom_provider_title': '添加自定义供应商',
  'cp_name_label': '名称',
  'cp_name_placeholder': '例如：我的 NewAPI…',
  'base_url': 'Base URL',
  'api_key_label': 'API Key',
  'keep_existing_key_hint': '留空则保留现有密钥',
  'enter_api_key_placeholder': '输入 API Key',
  'preview_url': '预览：',
  'discover_models': '获取模型列表',
  'discover_models_success': '已发现 {{count}} 个模型',
  'discover_no_models': '未发现可用模型',
  'discover_no_base': '请先选择预设或填写 Base URL',
  'discover_api_key_required': '请先填写 API Key 再获取模型',
  'discovering_models': '获取中…',
  'import_from_provider': '从供应商导入',
  'import_no_providers': '暂无可导入的自定义供应商',
  'import_provider_success': '已导入 {{name}} 的凭据',
  'model_list': '模型列表',
  'select_all': '全选',
  'deselect_all': '取消全选',
  'search_models': '搜索模型…',
  'enable_model': '启用模型',
  'model_id_label': '模型 ID',
  'media_type_label': '媒体类型',
  'default_label': '默认',
  'delete_model': '删除模型',
  'currency_label': '币种',
  'input_price': '输入价格',
  'output_price': '输出价格',
  'price_per_second': '/秒',
  'price_per_image': '/张',
  'price_per_m_input': '/M输入',
  'price_per_m_output': '/M输出',
  'resolution_label': '分辨率',
  'resolution_default_placeholder': '默认（不传）',
  'resolution_help_custom': '常见值可下拉选择，也可直接填写 API 要求的原始值',
  'supported_durations_label': '支持秒数',
  'supported_durations_placeholder': '例如 4, 8, 12 或 3-15（不填将按模型 id 自动推断）',
  'supported_durations_help': '用逗号分隔多个值，或用区间简写（如 3-15）。空白则由后端预设表按 model id 推断。',
  'supported_durations_invalid': '格式无效：{{message}}',
  'supported_durations_err_empty_after_split': '输入仅包含分隔符，请填入正整数',
  'supported_durations_err_non_positive': "片段 '{{seg}}' 必须是正整数",
  'supported_durations_err_exceeds_max': "片段 '{{seg}}' 单值不能超过 {{max}} 秒",
  'supported_durations_err_range_too_large': "片段 '{{seg}}' 区间过大（>{{max_span}}）",
  'supported_durations_err_range_inverted': "片段 '{{seg}}' 区间右端必须 ≥ 左端",
  'supported_durations_err_unparseable': "无法解析片段 '{{seg}}'",
  'supported_durations_summary': '支持秒数：{{value}}',
  'duration_incompatible_warning': '当前秒数 {{value}} 不在模型支持范围 [{{supported}}] 内',
  'duration_seconds_value_text': '{{value}} 秒',
  'duration_no_options': '当前模型未配置可用时长，无法修改',
  'add_model_manually': '手动添加模型',
  'discover_or_add_hint': '点击「获取模型列表」自动发现，或',
  'test_connection': '测试连接',
  'testing_connection': '测试中…',
  'connection_test_failed': '连接测试失败',
  'fetch_models_failed': '获取模型列表失败',
  'fill_base_url_first': '请先填写 Base URL',
  'fill_api_key_first': '请先填写 API Key',
  'base_url_changed_reenter_key': 'Base URL 已修改，请重新输入 API Key 后再发现模型',
  'fill_provider_name': '请填写供应商名称',
  'fill_base_url': '请填写 Base URL',
  'fill_api_key': '请填写 API Key',
  'enable_one_model': '至少启用一个模型',
  'enabled_model_needs_id': '已启用的模型必须填写 model_id',

  // CustomProviderDetail
  'discovery_format_label': '模型发现协议',
  'discovery_format_help': '仅用于"发现模型"和"连通测试"，不影响调用',
  'discovery_format_openai': 'OpenAI 兼容',
  'discovery_format_google': 'Google AI Studio',
  'endpoint_label': '调用端点',
  'endpoint_text_group': '文本',
  'endpoint_image_group': '图片',
  'endpoint_video_group': '视频',
  'endpoint_openai_chat_display': 'OpenAI Chat Completions',
  'endpoint_gemini_generate_display': 'Google Gemini',
  'endpoint_openai_images_display': 'OpenAI Images API',
  'endpoint_openai_images_generations_display': 'OpenAI Images（仅文生图）',
  'endpoint_openai_images_edits_display': 'OpenAI Images（仅图生图）',
  'endpoint_gemini_image_display': 'Google Gemini Image',
  'endpoint_openai_video_display': 'OpenAI Video (Sora)',
  'endpoint_newapi_video_display': 'NewAPI Unified Video',
  'endpoint_catalog_loading': '加载端点目录…',
  // Image Capability
  'image_capability_t2i': '文生图',
  'image_capability_i2i': '图生图',
  'image_capability_both': '文生图·图生图',
  'image_model_t2i_label': '文生图模型',
  'image_model_i2i_label': '图生图模型',
  'api_key_not_set': '未设置',
  'model_disabled': '已禁用',
  'confirm_delete_provider': '确认删除',

  // UsageDrawer
  'cost_details': '费用明细',
  'total_cost': '总费用',
  'image_type_label': '图片',
  'video_type_label': '视频',
  'text_type_label': '文本',
  'failed_type_label': '失败',
  'no_call_records': '暂无调用记录',
  'input_token_label': '输入',
  'output_token_label': '输出',
  'tokens_suffix': 'tokens',
  'records_count': '{{count}} 条记录',

  // WorkspaceNotificationsDrawer
  'notifications_count': '{{count}} 条通知',
  'unread_count': '未读 {{count}}',
  'close_notification_panel': '关闭通知面板',
  'no_notifications': '当前没有通知',
  'notifications_hint': '项目刷新、生成完成和可定位变更会出现在这里',
  'read_status': '已读',
  'new_notification': '新通知',
  'view_location': '查看定位',
  'notification_only': '仅通知',
  'remove_label': '移除',
  'auto_mark_read_hint': '打开面板会自动标记为已读',
  'session_records': '临时会话记录',
  'just_now': '刚刚',
  'minutes_ago': '{{count}} 分钟前',

  // SourceFileViewer
  'confirm_delete_source_file': '确定要删除文件 "{{filename}}" 吗？此操作不可撤销。',
  'loading_file': '加载文件中...',
  'cannot_load_file': '无法加载文件 "{{filename}}"',

  // TimelineCanvas
  'select_episode_hint': '请在左侧选择剧集',
  'segment_count': '{{count}} 个片段',
  'scene_count_label': '{{count}} 个场景',
  'cost_estimate_short': '预估',
  'cost_actual_short': '实际',
  'cost_storyboard_short': '分镜',
  'cost_video_short': '视频',
  'cost_total_short': '总计',
  'preprocessing_tab': '预处理',
  'timeline_tab': '剧本时间线',
  'generate_all_grids': '一键生成全部宫格',
  'submitting': '提交中...',

  'no_original_text': '（暂无原文）',
  'duration_selector_aria': '时长选择',

  // PreprocessingView
  'preprocessing_saved': '预处理内容已保存',
  'loading_preprocessing': '加载预处理内容...',
  'no_preprocessing_content': '暂无预处理内容',
  'segment_split_complete': '片段拆分已完成',
  'script_normalized_complete': '规范化剧本已完成',
  'reference_units_split_complete': 'Units 拆分已完成（{{count}} units）',
  'reference_units_split_complete_label': 'Units 拆分已完成',
  'reference_preproc_back': '返回编辑',
  'reference_preproc_page_title': '预处理 · E{{episode}}',
  'reference_preproc_status_loading': '载入中…',
  'reference_preproc_status_error': '拆分失败',
  'reference_preproc_status_empty': '暂未拆分',
  'reference_tab_editor': '剧本',
  'reference_tab_preview': '视频',
  'reference_tab_aria': '参考 Unit 面板切换',

  // ArcReel 工作台 v3 — 参考视频
  'reference_main_tab_aria': '工作台主面板切换',
  'grid_canvas_tab_aria': '宫格工作台主面板切换',
  'skill_content_label': 'Skill 内容',
  'skill_content_expand': '▶ 展开',
  'skill_content_collapse': '▼ 收起',
  'list_source_files_failed': '读取源文件列表失败：{{message}}',
  'source_unsupported_extension': '不支持的文件类型：{{filename}}',
  'upload_aborted_project_changed': '已切换项目，已取消 {{filename}} 的上传',
  'open_source_file_aria_label': '打开源文件 {{filename}}',
  'delete_source_file_aria_label': '删除源文件 {{filename}}',
  'no_episode_search_results': '没有匹配的分集',
  'episode_collapsed_button_label': 'E{{episode}} · {{title}}',
  'reference_tab_units': '视频单元',
  'reference_tab_preprocess': '拆分预处理',
  'reference_batch_generate': '批量生成视频',
  'reference_batch_nothing_to_do': '所有 Unit 都已生成或正在生成中',
  'reference_episode_header_units_one': '{{count}} 单元',
  'reference_episode_header_units_other': '{{count}} 单元',
  'reference_episode_header_ready': '就绪',
  'reference_episode_header_estimated': '预估',
  'reference_episode_header_actual': '已花',
  'reference_strip_label': '引用资产',
  'reference_strip_order_hint': '顺序即 [图N]',
  'reference_strip_image_token': '图{{n}}',
  'reference_strip_add': '添加引用',
  'reference_strip_empty': '未引用任何资产 — 点击右侧添加，或在提示词中使用 @ 自动追加',
  'reference_unit_search_placeholder': '搜索单元 / 提示词…',
  'reference_unit_search_empty': '没有匹配的单元',
  'reference_unit_dirty_hint': '未保存',
  'reference_unit_shots_count_one': '{{count}} 个 shot',
  'reference_unit_shots_count_other': '{{count}} 个 shot',
  'reference_unit_rail_expand': '展开列表',
  'reference_unit_prev': '上一个单元',
  'reference_unit_next': '下一个单元',
  'reference_preview_label': '视频预览',
  'reference_preview_metadata': '元数据',
  'reference_preview_in_flight': '正在生成视频…',
  'reference_preview_in_flight_meta': '{{refs}} 张引用 · {{duration}}s',
  'reference_preview_failed_title': '生成失败',
  'reference_preview_failed_unknown': '未知错误',
  'reference_preview_empty_unit': '尚未生成',
  'reference_preview_regenerate': '重新生成视频',
  'reference_preview_retry': '重试生成',
  'reference_meta_status': '状态',
  'reference_meta_cost': '成本',
  'reference_meta_cost_spent': '已花费',
  'reference_unsaved': '未保存修改',
  'reference_synced': '已同步',

  // Source file normalization toasts
  'source_normalized_toast': '已规范化「{{filename}}」（来源编码：{{encoding}}）',
  'source_normalized_toast_with_chapters': '已规范化「{{filename}}」（{{chapters}} 章 · 来源编码：{{encoding}}）',
  'source_normalized_toast_native': '已规范化「{{filename}}」',
  'source_normalized_toast_native_with_chapters': '已规范化「{{filename}}」（{{chapters}} 章）',
  'source_upload_conflict_toast': '源文件「{{filename}}」已存在（建议改名「{{suggested}}」，请在主面板重新上传）',

  // Grid preview
  'grid_scene_count': '{{count}} 场景',
  'grid_batch_count': '{{count}} 个宫格',
  'generating_grid': '生成中...',
  'generate_grid_btn': '生成宫格',
  'insufficient_scenes_for_grid': '场景不足，无法生成宫格',

  // GridPreviewPanel
  'grid_status_pending': '待处理',
  'grid_status_generating': '生成中',
  'grid_status_splitting': '切分中',
  'grid_status_completed': '已完成',
  'grid_status_failed': '失败',
  'grid_preview_title': '宫格预览',
  'grid_not_generated': '尚未生成',
  'grid_batch_unit': '{{count}} 批',
  'grid_no_grids_yet': '尚未生成宫格',
  'grid_generate_instruction': '点击上方「生成宫格」按钮开始',
  'grid_loading_data': '加载宫格数据...',
  'grid_load_failed': '加载失败',
  'grid_regenerate_failed': '重新生成失败',
  'grid_regenerating': '提交中...',
  'grid_regenerate_btn': '重新生成',
  'grid_composite_image_alt': '宫格合成图',
  'grid_cell_info': '{{count}} 格 · {{size}}',
  'grid_no_image': '无图像',
  'grid_reference_images': '参考图',

  // StudioCanvasRouter
  'grid_generation_failed': '宫格生成失败: {{message}}',

  // CredentialList
  'credential_mgmt': '密钥管理',
  'add_credential': '添加供应商',
  'no_credentials': '暂无密钥',
  'add_first_credential': '添加第一个密钥',
  'active_label': '使用中',
  'currently_active': '当前使用中',
  'activate_credential': '激活 {{name}}',
  'test_credential': '测试 {{name}} 连接',
  'edit_credential': '编辑 {{name}}',
  'delete_credential': '删除 {{name}}',
  'available_models': '可用模型: ',
  'credential_name': '名称',
  'credential_name_placeholder': '例如：个人账号…',
  'api_key_keep_hint': 'API Key（留空保留现有值）',
  'keep_existing_placeholder': '留空保留现有值…',
  'base_url_optional': 'Base URL（可选）',
  'default_url_placeholder': '默认使用官方地址…',
  'credential_file': '凭证文件',
  'select_json_file': '选择 JSON 文件…',
  'select_credential_file': '请选择凭证文件',
  'enter_api_key_required': '请输入 API Key',

  // ProviderModelSelect
  'select_model_placeholder': '选择模型…',
  'select_model_aria': '选择模型',
  'search_model_placeholder': '搜索模型或供应商…',
  'search_model_aria': '搜索模型或供应商',
  'no_models_match': '未找到匹配模型',

  // ImagePromptEditor / VideoPromptEditor / DialogueListEditor
  'composition_params': '构图参数',
  'shot_label': '镜头',
  'lighting_label': '光线',
  'lighting_placeholder': '光线描述...',
  'ambiance_label': '氛围',
  'ambiance_placeholder': '氛围描述...',
  'camera_motion_section': '运镜 / 音效 / 对话',
  'camera_motion_label': '镜头运动',
  // Shot type enum values
  'shot_type_extreme_close_up': '大特写',
  'shot_type_close_up': '特写',
  'shot_type_medium_close_up': '中特写',
  'shot_type_medium_shot': '中景',
  'shot_type_medium_long_shot': '中远景',
  'shot_type_long_shot': '远景',
  'shot_type_extreme_long_shot': '大远景',
  'shot_type_over_the_shoulder': '过肩镜头',
  'shot_type_point_of_view': '主观镜头',
  // Camera motion enum values
  'camera_motion_static': '固定',
  'camera_motion_pan_left': '左摇',
  'camera_motion_pan_right': '右摇',
  'camera_motion_tilt_up': '上摇',
  'camera_motion_tilt_down': '下摇',
  'camera_motion_zoom_in': '推近',
  'camera_motion_zoom_out': '拉远',
  'camera_motion_tracking_shot': '跟踪',
  'ambiance_audio_label': '环境音效',
  'ambiance_audio_placeholder': '环境音效描述...',
  'speaker_placeholder': '角色',
  'line_placeholder': '台词',
  'add_dialogue': '添加对话',
  'dialogue_remove': '删除对话',
  'image_prompt_placeholder': '分镜图描述...',
  'video_prompt_placeholder': '视频动作描述...',

  // VersionTimeMachine
  'version_mgmt': '版本',
  'switched_to_version': '已切换到 v{{version}}',
  'switch_version_failed': '切换版本失败: {{message}}',
  'no_history': '暂无历史版本',
  'history_hint': '生成或还原后，历史版本会出现在这里。',
  'history_versions': '历史版本',
  'current_version': '当前 v{{version}}',
  'version_click_hint': '点击版本号预览，非当前版本可切换。',
  'current_version_badge': '当前',
  'switching_version': '切换中...',
  'switch_to_version': '切换到此版本',
  'version_preview_alt': '版本 v{{version}} 预览',
  'version_no_notes': '该版本没有记录额外说明。',

  // ProjectCard - more actions
  'more_actions': '更多操作',
  'delete_project': '删除项目',
  'confirm_delete_project': '确定要删除项目「{{title}}」吗？此操作不可撤销。',
  'deleting_project': '删除中...',

  // SystemConfigPage - language
  'language_setting': '语言',

  // ---- Workbench v3 ----
  'project_switcher_current': '当前项目',
  'project_switcher_active_tag': '当前',
  'project_switcher_new': '新建项目…',
  'project_switcher_settings': '项目设置…',
  'episodes_section_title': '分集',
  'episode_search_placeholder': '搜索集名或编号…',
  'add_episode': '添加',
  'add_episode_unavailable': '暂未提供',
  'sidebar_collapse': '折叠',
  'sidebar_expand': '展开',
  'episode_status_done': '已完成',
  'episode_status_active': '制作中',
  'episode_status_draft': '草稿',
  'episode_status_idea': '构思',
  'episode_card_progress_label': '进度',
  'episode_workspace_no_episode': '这一集还没开始制作。从剧本开始，或让智能体帮你起草。',
  'episode_workspace_start_cta': '开始创作 E{{episode}}',
  'episode_header_episode_chip': 'EP · {{number}}',
  'episode_header_segment_count': '{{count}} 片段 · ~{{duration}}s',
  'episode_header_progress_inline': '制作中 · {{percent}}%',
  'episode_header_cost_estimated': '预估',
  'episode_header_cost_spent': '已花',
  'episode_header_cost_remaining': '剩余',
  'tab_preprocessing': '预处理',
  'tab_timeline': '分镜',
  'tab_grid_preview': '宫格图',
  'grid_preview_summary': '{{batches}} 批 · {{cells}} 格 · {{percent}}% 就绪',
  'grid_preview_batch_card_title': '批 #{{index}} · {{cellCount}} 格 · {{rows}}×{{cols}}',
  'grid_preview_batch_generate': '生成此宫格',
  'grid_preview_empty_episode': '该集尚无分镜，先在「预处理」中拆分剧本',
  'batch_generate_storyboards': '批量生成分镜图',
  'batch_generate_videos': '批量生成视频',
  'shot_search_placeholder': '搜索分镜…',
  'shots_collapsed_label': '分镜 · {{count}}',
  'shots_section_title': '分镜',
  'shot_list_collapse': '折叠',
  'shot_list_expand': '展开分镜列表',
  'shot_status_ready': '已完成',
  'shot_status_storyboard': '分镜就绪',
  'shot_status_pending': '待生成',
  'shot_detail_prev': '上一镜',
  'shot_detail_next': '下一镜',
  'shot_detail_count': '{{current}} / {{total}}',
  'task_hud_subtitle': '队列 · 工作器状态',
  'eyebrow_export_scope': '导出 · 范围',
  'eyebrow_segment_refs': '引用 · 范围',
  'eyebrow_library': '资源库 · {{type}}',
  'context_clear': '清除上下文',
  'context_label_character': '角色',
  'context_label_scene': '场景',
  'context_label_prop': '道具',
  'context_label_segment': '片段',
  // ToolCallWithResult
  'tool_call_input_label': '输入参数',
  'tool_call_skill_content_label': 'Skill 内容',
  'tool_call_result_label': '执行结果',
  'tool_call_error_label': '执行失败',
  'tool_call_todo_summary': '任务清单 {{completed}}/{{total}} 完成',
  'tool_call_todo_updated': '任务清单已更新',
  // MCP tool display names (single source of truth: ARCREEL_MCP_TOOL_IDS in
  // server/agent_runtime/sdk_tools/__init__.py; tests/test_frontend_mcp_tool_i18n.py
  // 会校验缺漏，新增 backend tool 必须同步补全 zh/en/vi)
  'tool_name_list_pending_assets': '查询待生成资产',
  'tool_name_generate_assets': '生成资产',
  'tool_name_generate_storyboards': '生成分镜图',
  'tool_name_generate_grid': '生成宫格图',
  'tool_name_generate_video_episode': '生成视频（整集）',
  'tool_name_generate_video_scene': '生成视频（单场景）',
  'tool_name_generate_video_all': '生成视频（全部）',
  'tool_name_generate_video_selected': '生成视频（多选）',
  'tool_name_generate_episode_script': '生成剧本',
  'tool_name_normalize_drama_script': '规范化剧本',
  'tool_name_get_video_capabilities': '查询视频模型能力',
  // Skill display names (single source of truth: agent_runtime_profile/.claude/skills/*/SKILL.md
  // 中 user-invocable: true 的 skill；tests/test_frontend_skill_i18n.py 校验三语齐全)
  'skill_name_manga_workflow': '视频工作流',
  'skill_name_generate_storyboard': '生成分镜图',
  'skill_name_generate_grid': '生成宫格图',
  'skill_name_generate_video': '生成视频',
  'skill_name_generate_assets': '生成资产图',
  'skill_name_compose_video': '合成视频',
  // PendingQuestionWizard
  'pending_question_wizard_label': '需要你的选择',
  'pending_question_wizard_step_question': '问题 {{number}}',
  'pending_question_wizard_multi_select': '可多选',
  'pending_question_wizard_single_select': '单选',
  'pending_question_wizard_select_option': '请选择一个选项',
  'pending_question_wizard_other_label': '自行输入',
  'pending_question_wizard_other_placeholder': '请输入其他内容',
  'pending_question_wizard_prev': '← 上一步',
  'pending_question_wizard_next': '下一题 →',
  'pending_question_wizard_submitting': '提交中…',
  'pending_question_wizard_submit': '完成并提交 →',
  'open_assistant_panel': '展开助手面板',
  'resize_assistant_panel': '调整助手面板宽度（双击恢复默认）',
  'progress_aria_label': '{{label}} 进度',
  'shot_detail_save': '保存',
  'shot_detail_saving': '保存中…',
  'shot_detail_cancel': '取消',
  'shot_detail_unsaved': '未保存',
  'shot_detail_save_first': '请先保存或取消当前编辑',
  'shot_notes_button': '备注',
  'shot_notes_placeholder': '关于 {{id}} 的备注：参考、修改方向、TODO…',
  'shot_notes_close': '关闭备注',
  'shot_notes_title': '备注',
  'detail_section_dialogue': '对话',
  'detail_section_novel': '原文',
  'detail_section_prompts': '提示词',
  'detail_dialogue_empty': '（暂无对话）',
  'detail_dialogue_add': '+ 添加对话',
  'detail_image_prompt_title': 'Image Prompt · 分镜图',
  'detail_video_prompt_title': 'Video Prompt · 视频',
  'detail_image_prompt_placeholder': '描述这一镜的画面：环境、人物、动作、构图细节…',
  'detail_video_prompt_placeholder': '描述这一镜的动作演变：从分镜图开始如何运动…',
  'detail_collapsible_composition': 'composition · 构图',
  'detail_collapsible_video_options': '运镜 / 音效 / 对话',
  'detail_field_chars_count': '{{count}} 字',
  'detail_tab_left': '剧本 / 对话',
  'detail_tab_mid': '提示词',
  'detail_tab_right': '分镜 / 视频',
  'detail_drawer_left_label': '剧本 / 对话 / 备注',
  'media_storyboard_title': '分镜图',
  'media_video_title': '视频',
  'media_versions_label': '版本',
  'media_not_generated': '尚未生成',
  'media_no_prompt_yet': '这一镜还没有生成提示词。',
  'media_smart_generate_prompt': '智能生成提示词',
  'media_generate_storyboard': '生成分镜',
  'media_regenerate_storyboard': '重新生成分镜',
  'media_generate_video': '生成视频',
  'media_regenerate_video': '重新生成视频',
  'media_generate_video_disabled_hint': '先生成分镜图',
  'workspace_nav_overview': '项目概览',
  'workspace_nav_source': '源文件',
  'workspace_nav_characters': '角色集',
  'workspace_nav_scenes': '场景库',
  'workspace_nav_props': '道具库',

  // ---- 项目大厅 · Darkroom ----
  'lobby_brand_subtitle': '工作台',
  'lobby_search_placeholder': '搜索项目',
  'lobby_search_kbd': '⌘K',
  'lobby_hero_eyebrow': '工作台',
  'lobby_hero_greeting_morning': '早上好，导演。',
  'lobby_hero_greeting_afternoon': '下午好，导演。',
  'lobby_hero_greeting_evening': '晚上好，导演。',
  'lobby_hero_greeting_late': '夜深了，导演。',
  'lobby_hero_subtitle_active': '{{count}} 部作品正在制作中。',
  'lobby_hero_subtitle_quiet': '今天还没开始制作。',
  'lobby_hero_subtitle_idle': '期待你的第一部作品。',
  'lobby_hero_summary': '已完成 {{completed}} 集，{{inProduction}} 集还在制作。',
  'lobby_hero_summary_idle': '新建一个项目，开始你的第一部作品。',
  'lobby_stat_total': '项目',
  'lobby_stat_production': '制作中',
  'lobby_stat_completed': '已完成',
  'lobby_stat_drafts': '筹备中',
  'lobby_filter_all': '全部',
  'lobby_filter_count_suffix': '',
  'lobby_sort_recent': '排序 · 最近活动',
  'lobby_now_editing_eyebrow': '接着上一次 · NOW EDITING',
  'lobby_continue_editing_chip': 'CONTINUE EDITING',
  'lobby_library_eyebrow': '全部项目 · LIBRARY',
  'lobby_library_count': '{{count}} 个项目',
  'lobby_open_workspace': '进入剪辑台',
  'lobby_open_workspace_completed': '查看成片',
  'lobby_now_editing_phase_label': '当前阶段',
  'lobby_now_editing_progress_label': '完成进度',
  'lobby_now_editing_episodes_label': '剧集',
  'lobby_now_editing_episodes_value': '{{completed}}/{{total}} 集',
  'lobby_card_stat_cast': 'CAST',
  'lobby_card_stat_scene': 'SCENE',
  'lobby_card_stat_prop': 'PROP',
  'lobby_card_stat_episode': 'EP',
  'lobby_no_filter_match': '没有匹配的项目',
  'lobby_no_filter_match_hint': '清除筛选或换个关键词试试。',
  'lobby_clear_filters': '清除筛选',
  'lobby_new_project_kicker': 'START · NEW REEL',
  'lobby_new_project_title': '新建项目',
  'lobby_card_actions': '项目操作',
  'openclaw': 'OpenClaw',
  'openclaw_title': 'OpenClaw 集成指南',
  'openclaw_subtitle': '将 [[brand]] 接入 OpenClaw AI Agent',
  'openclaw_prompt_label': 'Prompt',
  'openclaw_skill_url_label': 'Skill 文档地址：',
  'openclaw_steps_label': '使用步骤',
  'openclaw_step_01_title': '向你的 OpenClaw 发送上述提示词',
  'openclaw_step_01_desc': '复制提示词，粘贴给 OpenClaw 发送',
  'openclaw_step_02_title': 'OpenClaw 从 Skill 文档学习能力',
  'openclaw_step_02_desc': 'OpenClaw 会自动读取 [[brand]] Skill 文档，获取所有可用工具与 API 的使用方式',
  'openclaw_step_03_title': 'OpenClaw 与 [[brand]] 交互并创建视频',
  'openclaw_step_03_desc': '描述你的创作需求，OpenClaw 将调用 [[brand]] 完成项目管理、剧本生成和视频创作',
  'openclaw_system_prompt': '学习 {{skillUrl}} 然后遵循 skill，了解如何使用 [[brand]] 创作视频',
  'openclaw_get_api_token': '获取 API 令牌',
  'agent_credentials': '智能体供应商',
  'claude_compat_providers': 'Claude 供应商',
  'unified_providers_coming_soon': '统一供应商 (敬请期待)',
  'custom_config': '自定义配置',
  'cred_list_empty': '尚未添加供应商。点击「添加供应商」开始。',
  'cred_activate_label': '设为当前',
  'cred_edit_label': '编辑',
  'cred_delete_label': '删除',
  'cred_test_label': '连接测试',
  'cred_testing': '测试中…',
  'raw_error': '原始错误',
  'is_active': '当前',
  'cred_delete_active_blocked': '当前凭证不可删除，请先切换到其他凭证',
  'cred_delete_confirm_title': '删除凭证',
  'cred_delete_confirm': '确定删除该凭证？此操作不可撤销。',
  'edit_credential_title': '编辑凭证',
  'preset_locked_in_edit': '编辑模式下供应商不可更改',
  'api_key_unchanged_hint': '留空保持不变',
  'cred_activated_toast': '已切换到 {{name}}，新会话生效；当前会话继续使用旧凭证',
  'display_name': '显示名',
  'get_api_key': '获取 API Key',
  'test_running': '测试中…',
  'test_ok': '连通正常',
  'test_warn': '可调用，但模型发现端点异常',
  'test_fail': '无法连通',
  'apply_fix': '一键修复',
  'apply_fix_hint': '建议改为',
  'derived_messages_root': '调用端点',
  'derived_discovery_root': '发现端点',
  'diagnosis_missing_anthropic_suffix': '检测到 base_url 缺少 anthropic 子路径，已自动探测到正确端点',
  'diagnosis_openai_compat_only': '该端点返回 OpenAI 兼容协议，Claude SDK 无法直接使用，请确认是否选错 Plan',
  'diagnosis_auth_failed': 'API Key 无效或已过期',
  'diagnosis_model_not_found': '模型不存在，请先发现可用模型',
  'diagnosis_rate_limited': '触发限流，稍后重试',
  'diagnosis_network': '网络无法访问，检查 URL 与防火墙',
  'diagnosis_unknown': '未知错误，请查看原始错误信息',
} satisfies Record<keyof typeof enDashboard, string>;
