import type enDashboard from "@/i18n/en/dashboard";

export default {
  'app_title': '[[brand]]',
  'projects': 'Dự án',
  'create_project': 'Tạo dự án',
  'new_project': 'Dự án mới',
  'project_name': 'Tên dự án',
  'project_title': 'Tiêu đề dự án',
  'content_mode': 'Chế độ nội dung',
  'narration': 'Thuyết minh',
  'standard': 'Tiêu chuẩn',
  'generate_overview': 'Tạo tổng quan',
  'source_text': 'Nội dung gốc',
  'source_file': 'Tệp gốc',
  'project_list': 'Danh sách dự án',
  'all_projects': 'Tất cả dự án',
  'search_projects': 'Tìm kiếm dự án...',
  'recent_projects': 'Dự án gần đây',
  'import_project': 'Nhập dự án',
  'import_success': 'Nhập thành công',
  'import_failed': 'Nhập thất bại',
  'export_diagnostics': 'Chẩn đoán xuất',
  'project_title_required': 'Tiêu đề dự án không được để trống',
  'style_upload_failed_hint': 'Tải ảnh tham chiếu phong cách thất bại, bạn có thể tải lên sau trong Cài đặt dự án',
  'create_project_failed': 'Tạo dự án thất bại: {{message}}',
  'project_id_auto_gen_hint': 'Hệ thống sẽ tự sinh ID dự án nội bộ dùng cho URL và lưu trữ',
  'narration_visuals': 'Chế độ Thuyết minh',
  'drama_animation': 'Chế độ Phim truyện',
  'content_mode_narration_desc': 'Dẫn dắt bởi thuyết minh — một giọng đọc duy nhất dẫn dắt hình ảnh xuyên suốt tập. Phù hợp cho kể chuyện, phim tài liệu hoặc video giải thích ngắn.',
  'content_mode_drama_desc': 'Dẫn dắt bởi nội dung — đối thoại nhân vật và cốt truyện thúc đẩy hình ảnh. Phù hợp cho phim truyện và chuyển thể tiểu thuyết.',
  'optional': 'Tùy chọn',
  'creating': 'Đang tạo...',
  'rebirth_empress_example': 'Ví dụ: Trùng sinh vĩ đại Hoàng hậu',
  'characters': 'Nhân vật',
  'episodes': 'Tập',
  'episodes_scripted': 'tập đã có kịch bản',
  'episodes_in_production': 'tập đang sản xuất',
  'episodes_completed': 'tập đã hoàn thành',
  'progress': 'Tiến độ',
  'style_not_set': 'Chưa đặt phong cách',
  'style_custom': 'Phong cách tùy chỉnh',
  'project_style_section_title': 'Phong cách dự án',
  'style_save': 'Lưu phong cách',
  'style_saving': 'Đang lưu…',
  'style_clear': 'Xóa phong cách',
  'style_cleared_hint': 'Lưu để xóa phong cách hiện tại',
  'importing': 'Đang nhập...',
  'import_zip': 'Nhập ZIP',
  'loading_projects': 'Đang tải danh sách dự án...',
  'no_projects': 'Chưa có dự án nào',
  'start_creating_hint': 'Nhấn "Tạo dự án" hoặc "Nhập ZIP" để bắt đầu',
  'duplicate_project_id': 'Phát hiện ID dự án trùng lặp',
  'overwrite_existing': 'Ghi đè dự án hiện có',
  'auto_rename_import': 'Tự đổi tên và nhập',
  'overwrite_hint': 'Thay thế dữ liệu dự án hiện có bằng nội dung gói nhập',
  'rename_hint': 'Giữ dự án hiện có và tự sinh ID mới cho dự án nhập',
  'id_intended_hint': 'ID dự án dự định dùng trong gói nhập',
  'already_exists_conflict_hint': 'đã tồn tại. Bạn có thể ghi đè dự án hiện có hoặc tự đổi tên để tiếp tục nhập.',
  'project_overview': 'Tổng quan dự án',
  'source_files': 'Tệp gốc',
  'upload_source_files': 'Tải lên tệp gốc',
  'no_files_yet': 'Chưa có tệp nào',
  'delete_file': 'Xóa tệp',
  'lorebook': 'Sổ tri thức',
  'no_episodes_yet': 'Chưa có tập nào',
  'preprocessing': 'Tiền xử lý',
  'confirm_delete_file': 'Bạn có chắc muốn xóa "{{name}}"?',
  'agents': 'Trợ lý AI',
  'providers': 'Nhà cung cấp',
  'models': 'Mô hình',
  'usage': 'Sử dụng',
  'api_keys': 'Khóa API',
  'about': 'Giới thiệu',
  'system_config_title': 'Cấu hình hệ thống và quản lý truy cập API',
  'about_loading': 'Đang tải thông tin phiên bản…',
  'about_current_version': 'Phiên bản hiện tại',
  'about_check_update': 'Kiểm tra cập nhật',
  'about_checking_update': 'Đang kiểm tra cập nhật…',
  'about_latest_version': 'Phiên bản mới nhất: {{version}}',
  'about_update_available': 'Có phiên bản mới hơn',
  'about_up_to_date': 'Bạn đang dùng phiên bản mới nhất',
  'about_open_release': 'Mở bản phát hành GitHub',
  'about_release_notes': 'Ghi chú phát hành',
  'about_release_notes_empty': 'Không có ghi chú phát hành.',
  'about_load_failed': 'Tải thông tin phiên bản thất bại',
  'about_published_at': 'Phát hành: {{date}}',
  'about_checked_at': 'Kiểm tra lần cuối: {{date}}',
  'diagnostics_section_title': 'Nhật ký chẩn đoán',
  'diagnostics_section_desc': 'Đóng gói nhật ký 7 ngày gần nhất và thông tin hệ thống (API key đã ẩn) để báo lỗi.',
  'diagnostics_download': 'Tải nhật ký chẩn đoán',
  'diagnostics_downloading': 'Đang đóng gói…',
  'diagnostics_download_failed': 'Tải về thất bại: {{error}}',
  'config_issues': 'Vấn đề cấu hình',
  'config_issues_hint': 'Phát hiện các vấn đề sau trong cấu hình hiện tại, có thể ảnh hưởng tới chức năng:',
  'arcreel_agent': '[[brand]] Agent',
  'agent_sdk_desc': 'Được hỗ trợ bởi Claude Agent SDK, vận hành trợ lý AI hội thoại và quy trình tự động',
  'claude_code_compat_hint': 'Cấu hình tương thích với biến môi trường Claude Code và API Coding Plan.',
  'api_access': 'Truy cập API',
  'anthropic_creds_desc': 'Đặt thông tin xác thực truy cập API Anthropic.',
  'anthropic_api_key': 'Khóa API Anthropic',
  'detect_model_hint': 'Sau khi đặt khóa API, hệ thống sẽ tự phát hiện các mô hình khả dụng.',
  'enter_api_key': 'Nhập khóa API...',
  'current_label': 'Hiện tại: ',
  'encrypted': 'Đã mã hóa',
  'clear': 'Xóa',
  'api_base_url': 'API Base URL',
  'optional_default_hint': 'Tùy chọn, mặc định dùng URL chính thức của Anthropic.',
  'api_base_example': 'Ví dụ: https://api.anthropic.com',
  'model_routing': 'Định tuyến mô hình',
  'model_routing_desc': 'Cấu hình mô hình theo độ phức tạp của tác vụ trợ lý.',
  'hide_advanced_routing': 'Ẩn định tuyến nâng cao',
  'show_advanced_routing': 'Hiện định tuyến nâng cao',
  'haiku_model': 'Mô hình Haiku',
  'haiku_desc': 'Tác vụ nhẹ (phân loại, trích xuất, hỏi đáp đơn giản)',
  'sonnet_model': 'Mô hình Sonnet',
  'sonnet_desc': 'Tác vụ cân bằng (viết, điều phối, suy luận)',
  'opus_model': 'Mô hình Opus',
  'opus_desc': 'Tác vụ phức tạp (sáng tạo dài, phân tích sâu)',
  'subagent_model': 'Mô hình Sub-agent',
  'subagent_desc': 'Mô hình dùng khi sub-agent thực thi song song',
  'advanced_session_settings': 'Cài đặt phiên nâng cao',
  'session_control_desc': 'Kiểm soát tài nguyên và vòng đời phiên cho các trợ lý đang chạy.',
  'session_cleanup_delay': 'Thời gian dọn dẹp phiên',
  'cleanup_delay_desc': 'Số giây không hoạt động trước khi tự dọn dẹp (mặc định 300)',
  'max_concurrent_sessions': 'Số phiên tối đa đồng thời',
  'max_sessions_desc': 'Số trợ lý tối đa được phép chạy đồng thời',
  'agent_config_saved': 'Đã lưu cấu hình [[brand]] Agent',
  'field_cleared': 'đã xóa',
  'api_key_mgmt': 'Quản lý khóa API',
  'api_key_usage_desc': 'Dùng để truy cập dự án [[brand]] từ các công cụ ngoài (ví dụ OpenClaw 🦞).',
  'create_api_key': 'Tạo khóa API',
  'name': 'Tên',
  'key_prefix': 'Tiền tố',
  'created_at': 'Ngày tạo',
  'expires_at': 'Hết hạn',
  'last_used': 'Lần dùng gần nhất',
  'actions': 'Thao tác',
  'permanent': 'Vĩnh viễn',
  'expired': 'Đã hết hạn',
  'no_api_keys': 'Chưa có khóa API',
  'create_one_now': 'Tạo ngay',
  'new_api_key': 'Khóa API mới',
  'key_name_hint': 'Đặt tên cho khóa để nhận biết (ví dụ OpenClaw)',
  'enter_key_name': 'Nhập tên khóa...',
  'expiration_days': 'Hết hạn (ngày)',
  'zero_permanent_hint': '0 nghĩa là vĩnh viễn',
  'key_created': 'Đã tạo khóa API',
  'save_key_now_hint': 'Hãy chắc chắn sao chép và lưu khóa này ngay. Vì lý do bảo mật, bạn sẽ không thể xem lại.',
  'key_deleted_success': 'Đã xóa',
  'confirm_delete_key': 'Bạn có chắc muốn xóa khóa "{{name}}"? Thao tác không thể hoàn tác và mọi tích hợp dùng khóa này sẽ ngừng hoạt động.',
  'welcome_to_project': 'Chào mừng đến với {{title}}!',
  'welcome_idle_desc': 'Hãy kéo thả hoặc tải lên tệp tiểu thuyết (.txt/.md), AI sẽ phân tích thế giới quan cho bạn.',
  'welcome_has_sources_desc': 'Tệp gốc đã sẵn sàng. Bạn có thể tiếp tục thêm tệp hoặc nhấn nút bên dưới để bắt đầu phân tích AI.',
  'uploading_file': 'Đang tải lên "{{name}}"...',
  'analyzing_content_desc': 'AI đang phân tích nội dung, trích xuất nhân vật, cảnh, đạo cụ và bối cảnh thế giới...',
  'analysis_complete_loading': 'Phân tích hoàn tất! Đang tải tổng quan dự án...',
  'drop_files_here': 'Kéo và thả tệp vào đây',
  'click_to_select_files': 'hoặc nhấn để chọn tệp (hỗ trợ .txt / .md)',
  'start_ai_analysis': 'Bắt đầu phân tích AI',
  'ai_analyzing': 'AI đang phân tích...',
  'extracting_metadata_desc': 'Đang trích xuất tóm tắt, thể loại, chủ đề và bối cảnh thế giới',
  'analysis_complete': 'Phân tích hoàn tất',
  'thinking_process_label': 'Suy nghĩ',
  'task_in_progress_default': 'Đang xử lý',
  'agent_handoff_headline': 'Sẵn sàng',
  'agent_handoff_subtitle': 'Trò chuyện với trợ lý để bắt đầu sản xuất video.',
  'agent_handoff_dismiss': 'Đã hiểu',
  'what_happens_next': 'Tiếp theo sẽ là gì?',
  'ai_will_analyze_desc': 'AI sẽ phân tích tiểu thuyết và trích xuất nhân vật, cảnh, đạo cụ và bối cảnh thế giới',
  'overview_gen_desc': 'Tổng quan dự án sẽ được tạo, sau đó bạn có thể bắt đầu viết kịch bản và phân cảnh',
  'project_overview_regenerated': 'Đã tạo lại tổng quan dự án',
  'project_sync_failed': 'Đồng bộ thay đổi dự án thất bại: {{message}}',
  'synopsis': 'Tóm tắt',
  'genre': 'Thể loại',
  'theme': 'Chủ đề',
  'world_setting': 'Bối cảnh thế giới',
  'estimated_cost': 'Chi phí ước tính',
  'regenerate_overview': 'Tạo lại tổng quan',
  'regenerating': 'Đang tạo lại...',
  'total': 'Tổng',
  'per_episode': 'Mỗi tập',
  'no_description': 'Chưa có mô tả',
  'character_design': 'Thiết kế nhân vật',
  'scene_design': 'Thiết kế cảnh',
  'prop_design': 'Thiết kế đạo cụ',
  'reference_image': 'Ảnh tham chiếu',
  'click_to_generate': 'Nhấn để tạo',
  'cancel_pending': 'Hủy chờ',
  'replace': 'Thay thế',
  'change': 'Thay đổi',
  'unsaved_reference': 'Tham chiếu chưa lưu',
  'saved_reference': 'Tham chiếu đã lưu',
  'upload_reference': 'Tải lên tham chiếu',
  'description': 'Mô tả',
  'character_desc_placeholder': 'Nhập mô tả nhân vật...',
  'scene_desc_placeholder': 'Nhập mô tả cảnh...',
  'prop_desc_placeholder': 'Nhập mô tả đạo cụ...',
  'voice_style': 'Phong cách giọng',
  'voice_style_example': 'Ví dụ: Dịu dàng nhưng uy nghiêm',
  'generate_design': 'Tạo thiết kế',
  'regenerate_design': 'Tạo lại thiết kế',
  'characters_count': 'Nhân vật ({{count}})',
  'scenes': 'Cảnh',
  'props': 'Đạo cụ',
  'no_characters_hint': 'Chưa có nhân vật, nhấn nút bên dưới để thêm.',
  'no_characters_hint_clickable': 'Chưa có nhân vật, nhấn để thêm',
  'no_scenes_hint_clickable': 'Chưa có cảnh, nhấn để thêm',
  'no_props_hint_clickable': 'Chưa có đạo cụ, nhấn để thêm',
  'add_character': 'Thêm nhân vật',
  'add_scene': 'Thêm cảnh',
  'add_prop': 'Thêm đạo cụ',
  'model_selection': 'Lựa chọn mô hình',
  'model_selection_desc': 'Đặt mô hình mặc định toàn cục để tạo nội dung, có thể ghi đè theo dự án.',
  'default_video_model': 'Mô hình video mặc định',
  'auto_select': 'Tự chọn',
  'no_video_providers_hint': 'Không có nhà cung cấp video khả dụng, vui lòng cấu hình khóa API tại "Nhà cung cấp" trước.',
  'generate_audio': 'Tạo âm thanh',
  'audio_support_hint': '(Chỉ một số nhà cung cấp hỗ trợ)',
  'default_image_model': 'Mô hình ảnh mặc định',
  'image_model_t2i': 'Text-to-Image (T2I)',
  'image_model_i2i': 'Image-to-Image (I2I)',
  'no_image_providers_hint': 'Không có nhà cung cấp ảnh khả dụng, vui lòng cấu hình khóa API tại "Nhà cung cấp" trước.',
  'text_models': 'Mô hình văn bản',
  'text_models_desc': 'Cấu hình mô hình văn bản theo loại tác vụ, để trống để tự chọn.',
  'script_generation': 'Tạo kịch bản',
  'overview_generation': 'Tạo tổng quan',
  'style_analysis': 'Phân tích phong cách',
  'no_text_providers_hint': 'Không có nhà cung cấp văn bản khả dụng, vui lòng cấu hình khóa API tại "Nhà cung cấp" trước.',
  'media_config_saved': 'Đã lưu cấu hình mô hình media',
  'usage_stats': 'Thống kê sử dụng',
  'usage_stats_desc': 'Tổng tiêu thụ Token và thời gian tạo của hệ thống (chỉ tính dữ liệu hệ thống ghi nhận).',
  'text_generation': 'Tạo văn bản',
  'input_tokens': 'Token đầu vào (Prompt)',
  'output_tokens': 'Token đầu ra (Completion)',
  'image_generation': 'Tạo ảnh',
  'images_generated': 'Số ảnh đã tạo',
  'video_generation': 'Tạo video',
  'generation_duration': 'Thời gian tạo (giây)',
  'api_calls': 'Lượt gọi API',
  'total_api_calls': 'Tổng lượt gọi API',
  'no_usage_data': 'Chưa có dữ liệu sử dụng',

  // GlobalHeader
  'mode_badge_drama': 'Phim truyện 16:9',
  'mode_badge_narration': 'Thuyết minh 9:16',
  'jianying_export_started': 'Đã bắt đầu xuất bản nháp Jianying. Hãy giải nén ZIP đã tải vào thư mục bản nháp Jianying.',
  'jianying_export_failed': 'Xuất bản nháp Jianying thất bại: {{message}}',
  'project_zip_download_started_with_diagnostics': 'Đã bắt đầu tải ZIP dự án, gói xuất chứa {{count}} mục chẩn đoán',
  'project_zip_download_started': 'Đã bắt đầu tải ZIP dự án',
  'export_failed': 'Xuất thất bại: {{message}}',
  'open_notification_center': 'Mở trung tâm thông báo',
  'notification_tooltip': 'Thông báo phiên: {{count}} mục',
  'cost_tooltip': 'Tổng chi phí dự án: {{cost}}',
  'task_status_tooltip': 'Trạng thái tác vụ: {{running}} đang chạy, {{queued}} chờ',
  'toggle_task_panel': 'Bật/tắt bảng tác vụ',
  'export_project_zip': 'Xuất ZIP dự án hiện tại',
  'exporting_zip': 'Đang xuất...',
  'export_zip': 'Xuất',
  'config_incomplete': 'Cấu hình chưa đầy đủ',
  'export_diagnostics_title': 'Chẩn đoán xuất',
  'export_diagnostics_description': 'Hoàn tất kiểm tra trước xuất và đã tạo ZIP. Phát hiện các vấn đề sau trong gói xuất.',
  'diagnostics_blocking': 'Vấn đề nghiêm trọng',
  'diagnostics_auto_fixed': 'Đã tự sửa',
  'diagnostics_warnings': 'Cảnh báo',
  'workflow_phases': 'Các giai đoạn quy trình',

  // CreateProjectModal
  'aspect_ratio': 'Tỉ lệ khung hình',
  'portrait_9_16': 'Dọc 9:16',
  'landscape_16_9': 'Ngang 16:9',
  'default_duration': 'Thời lượng mặc định',
  'default_duration_desc': 'Để AI tự quyết định thời lượng theo nội dung, hoặc đặt thời lượng cố định',
  'auto': 'Tự động',

  // ExportScopeDialog
  'export_scope_title': 'Chọn phạm vi xuất',
  'current_version_only': 'Chỉ phiên bản hiện tại',
  'recommended': 'Khuyến nghị',
  'small_size_hint': 'Không có lịch sử phiên bản, kích thước nhỏ hơn',
  'all_data': 'Toàn bộ dữ liệu',
  'full_history_hint': 'Bao gồm toàn bộ lịch sử phiên bản',
  'export_jianying_draft': 'Xuất bản nháp Jianying',
  'generate_jianying_zip_hint': 'Tạo ZIP bản nháp có thể nhập vào Jianying',
  'select_episode': 'Chọn tập',
  'episode_with_title': 'Tập {{episode}} — {{title}}',
  'jianying_version': 'Phiên bản Jianying',
  'jianying_v6_plus': 'Jianying 6.0 trở lên (Khuyến nghị)',
  'jianying_v5_x': 'Jianying 5.x',
  'draft_path': 'Đường dẫn thư mục bản nháp',
  'draft_path_placeholder': 'Đường dẫn thư mục bản nháp Jianying',
  'draft_path_default_mac': '/Users/<TênNgườiDùng>/Movies/JianyingPro/User Data/Projects/com.lveditor.draft',
  'draft_path_default_windows': String.raw`C:\Users\<TênNgườiDùng>\AppData\Local\JianyingPro\User Data\Projects\com.lveditor.draft`,
  'draft_path_hint': 'Vui lòng nhập đường dẫn đầy đủ tới thư mục bản nháp Jianying. Vào Jianying -> Cài đặt -> Vị trí bản nháp để tìm.',
  'exporting': 'Đang xuất...',
  'export_draft': 'Xuất bản nháp',

  // TaskHud
  'generating_status': 'Đang tạo...',
  'queued_status': 'Đang chờ',
  'completed_status': 'Hoàn tất',
  'failed_status': 'Thất bại',
  'running_count': '{{count}} đang chạy',
  'no_tasks': 'Không có tác vụ',
  'queued_label': 'Đang chờ',
  'running_label': 'Đang chạy',
  'completed_label': 'Hoàn tất',
  'failed_label': 'Thất bại',
  'image_channel': 'Kênh ảnh',
  'video_channel': 'Kênh video',
  'cancelled_status': 'Đã hủy',
  'cancelled_label': 'Đã hủy',
  'cancel_task': 'Hủy tác vụ',
  'cancel_this_task': 'Hủy tác vụ này',
  'cancel_btn': 'Hủy',
  'cascade_label': 'liên đới',
  'cancel_all': 'Hủy tất cả',
  'cancel_all_queued_aria': 'Hủy tất cả tác vụ đang chờ',
  'cancel_confirm_aria': 'Xác nhận hủy',
  'cancel_cascade_msg': 'Hủy tác vụ này cũng sẽ hủy {{count}} tác vụ phụ thuộc',
  'cancel_single_confirm': 'Hủy tác vụ này?',
  'cancel_all_confirm': 'Hủy toàn bộ {{count}} tác vụ đang chờ?',
  'cancelling': 'Đang hủy...',
  'confirm_cancel': 'Xác nhận hủy',
  'go_back': 'Quay lại',

  // AgentCopilot
  'new_session': 'Phiên mới',
  'switch_session': 'Đổi phiên',
  'no_session': 'Không có phiên',
  'confirm_delete_session': 'Bạn có chắc muốn xóa phiên này? Thao tác không thể hoàn tác.',
  'delete_session': 'Xóa phiên',
  'answer_above_hint': 'Vui lòng trả lời câu hỏi phía trên',
  'generating_stop_hint': 'Trợ lý đang tạo, nhấn để dừng',
  'input_placeholder': 'Nhập tin nhắn, gõ / để xem các skill khả dụng',
  'image_too_large_hint': 'Ảnh "{{name}}" vượt 5MB và đã bị bỏ qua',
  'collapse_panel': 'Thu gọn bảng trợ lý',
  'thinking': 'Đang suy nghĩ',
  'start_chat_hint': 'Nhập tin nhắn bên dưới để bắt đầu trò chuyện',
  'quick_skill_hint': 'Gõ / để gọi nhanh các skill',
  'enlarge_image': 'Nhấn để phóng to ảnh',
  'remove_image': 'Bỏ ảnh',
  'assistant_input': 'Ô nhập trợ lý',
  'max_images_hint': 'Tối đa {{count}} ảnh',
  'attach_image': 'Đính kèm ảnh',
  'stop_session': 'Dừng phiên',
  'send_message': 'Gửi tin nhắn',

  // StudioCanvasRouter & Toasts
  'update_prompt_failed': 'Cập nhật Prompt thất bại: {{message}}',
  'storyboard_task_submitted_toast': 'Đã gửi tác vụ tạo phân cảnh cho "{{id}}"',
  'generate_storyboard_failed': 'Tạo phân cảnh thất bại: {{message}}',
  'video_task_submitted_toast': 'Đã gửi tác vụ tạo video cho "{{id}}"',
  'generate_video_failed': 'Tạo video thất bại: {{message}}',
  'character_updated_toast': 'Đã cập nhật nhân vật "{{name}}"',
  'update_character_failed': 'Cập nhật nhân vật thất bại: {{message}}',
  'character_task_submitted_toast': 'Đã gửi tác vụ tạo nhân vật cho "{{name}}"',
  'submit_failed': 'Gửi thất bại: {{message}}',
  'character_added_toast': 'Đã thêm nhân vật "{{name}}"',
  'add_failed': 'Thêm thất bại: {{message}}',
  'update_scene_failed': 'Cập nhật cảnh thất bại: {{message}}',
  'generate_scene_failed': 'Tạo thiết kế cảnh thất bại: {{message}}',
  'scene_task_submitted_toast': 'Đã gửi tác vụ tạo cảnh cho "{{name}}"',
  'scene_added_toast': 'Đã thêm cảnh "{{name}}"',
  'update_prop_failed': 'Cập nhật đạo cụ thất bại: {{message}}',
  'generate_prop_failed': 'Tạo thiết kế đạo cụ thất bại: {{message}}',
  'prop_task_submitted_toast': 'Đã gửi tác vụ tạo đạo cụ cho "{{name}}"',
  'prop_added_toast': 'Đã thêm đạo cụ "{{name}}"',
  'from_library_button_label': 'Chọn từ thư viện',
  'add_to_library_button_label': 'Thêm vào thư viện',
  'loading_placeholder': 'Đang tải...',

  // AddCharacterForm & AddSceneInline & AddPropInline
  'name_label': 'Tên',
  'name_placeholder': 'Tên nhân vật',
  'desc_label': 'Mô tả',
  'char_desc_placeholder': 'Mô tả ngoại hình, tính cách, lai lịch của nhân vật...',
  'voice_style_label': 'Phong cách giọng',
  'reference_image_optional': 'Ảnh tham chiếu (Tùy chọn)',
  'reference_selected': 'Đã chọn tham chiếu',
  'upload_ref_image': 'Tải lên ảnh tham chiếu',
  'consistency_hint': 'Dùng để giữ tính nhất quán của nhân vật trong các thiết kế sau',
  'cancel': 'Hủy',
  'adding': 'Đang thêm...',
  'add': 'Thêm',

  // OverviewCanvas cost & style section
  'project_total_cost': 'Tổng chi phí dự án',
  'estimate': 'Ước tính',
  'storyboard': 'Phân cảnh',
  'video': 'Video',
  'actual': 'Thực tế',
  'actual_characters': 'Nhân vật',
  'actual_scenes': 'Cảnh',
  'actual_props': 'Đạo cụ',
  'regenerate_failed': 'Tạo lại thất bại: {{message}}',
  'upload_failed': 'Tải lên thất bại: {{message}}',
  'delete_failed': 'Xóa thất bại: {{message}}',
  'update_failed': 'Cập nhật thất bại: {{message}}',

  // ApiKeysTab
  'create_failed': 'Tạo thất bại: {{message}}',
  'save_key_warning': 'Hãy chắc chắn sao chép và lưu khóa này ngay.',
  'key_not_viewable_again': 'Vì lý do bảo mật, bạn sẽ không thể xem lại.',
  'load_failed': 'Tải thất bại: {{message}}',

  // AgentConfigTab
  'api_credentials': 'Thông tin xác thực API',
  'anthropic_key_required_desc': 'Khóa API Anthropic là bắt buộc để trợ lý hoạt động',
  'env_anthropic_api_key': 'Ánh xạ tới biến môi trường ANTHROPIC_API_KEY',
  'clear_saved_anthropic_key': 'Xóa khóa API Anthropic đã lưu',
  'clear_saved': 'Xóa giá trị đã lưu',
  'env_anthropic_base_url': 'Ánh xạ tới ANTHROPIC_BASE_URL. Để trống để dùng URL chính thức.',
  'clear_saved_base_url': 'Xóa Anthropic Base URL đã lưu',
  'model_config': 'Cấu hình mô hình',
  'model_config_desc': 'Chỉ định các mô hình Claude cho trợ lý. Để trống để dùng mặc định của Claude Agent SDK.',
  'default_model': 'Mô hình mặc định',
  'env_anthropic_model': 'Ánh xạ tới ANTHROPIC_MODEL, ghi đè mô hình mặc định',
  'clear_saved_model': 'Xóa cấu hình mô hình đã lưu',
  'advanced_model_routing': 'Định tuyến mô hình nâng cao',
  'model_routing_hint': 'Claude Agent SDK hỗ trợ định tuyến tới các mô hình khác nhau theo cấp năng lực. Để trống để dùng mô hình mặc định ở trên.',
  'clear_saved_field': 'Xóa giá trị đã lưu cho {{label}}',
  'clear_field_input': 'Xóa nhập liệu {{label}}',
  'advanced_settings': 'Cài đặt nâng cao',
  'session_cleanup_delay_label': 'Thời gian dọn dẹp phiên (giây)',
  'session_cleanup_delay_desc': 'Sau khi phiên kết thúc, chờ khoảng này trước khi giải phóng tài nguyên. Phiên sẽ tự khôi phục ở lượt trò chuyện kế tiếp.',
  'max_concurrent_sessions_label': 'Số phiên tối đa đồng thời',
  'max_concurrent_sessions_desc': 'Số phiên trợ lý hoạt động tối đa. Phiên vượt quá sẽ tự giải phóng các phiên ít dùng nhất (phiên đã dọn dẹp được lưu trữ và khôi phục ở lượt trò chuyện kế tiếp).',
  'clear_failed': 'Xóa thất bại: {{message}}',
  'clear_input': 'Xóa nội dung nhập',
  'hide_key': 'Ẩn khóa',
  'show_key': 'Hiện khóa',
  'clear_base_url_input': 'Xóa nội dung Base URL',
  'clear_model_input': 'Xóa nội dung cấu hình mô hình',

  // WelcomeCanvas
  'analysis_failed': 'Phân tích thất bại: {{message}}',
  'uploaded_source_files': 'Tệp gốc đã tải lên',
  'add_more_files': 'Thêm tệp khác',
  'drop_more_files_here': 'Hoặc kéo thả thêm tệp vào đây',
  'uploading': 'Đang tải lên...',

  // MediaModelSection
  'save_failed': 'Lưu thất bại: {{message}}',

  // UsageStatsSection
  'spend_ledger': 'Sổ chi phí',
  'last_7_days': '7 ngày qua',
  'last_30_days': '30 ngày qua',
  'all': 'Tất cả',
  'usage_stats_by_provider': 'Xem thống kê lượt gọi API theo nhà cung cấp',
  'filter_by_provider': 'Lọc theo nhà cung cấp',
  'all_providers': 'Tất cả nhà cung cấp',
  'no_data': 'Chưa có dữ liệu',
  'total_calls': 'Tổng lượt gọi',
  'calls': 'Lượt gọi',
  'success_count': 'Thành công',
  'success_rate': 'Tỉ lệ thành công',
  'type': 'Loại',
  'duration': 'Thời lượng',

  // import diagnostics
  'import_auto_fixed': 'Đã nhập dự án "{{title}}" (tự sửa {{count}} vấn đề)',
  'import_success_with_diagnostics': 'Nhập hoàn tất với chẩn đoán — xem chi tiết bên dưới',
  'blocking_issues': 'Vấn đề nghiêm trọng',
  'auto_fixed_issues': 'Vấn đề đã tự sửa',
  // config-status-store
  'agent_api_key_not_configured': 'Chưa cấu hình Khóa API [[brand]] Agent (Anthropic)',
  'video_provider_not_configured': 'Chưa cấu hình nhà cung cấp cho việc tạo video',
  'image_provider_not_configured': 'Chưa cấu hình nhà cung cấp cho việc tạo ảnh',
  'text_provider_not_configured': 'Chưa cấu hình nhà cung cấp cho việc tạo văn bản',

  // OverviewCanvas / shared aria labels
  'import_project_file_aria': 'Nhập tệp ZIP dự án',
  'import_credential_file_aria': 'Nhập tệp thông tin xác thực JSON',
  'upload_asset_file_aria': 'Tải lên tệp tài nguyên',
  'upload_attachment_aria': 'Tải lên ảnh đính kèm',
  'upload_script_file_aria': 'Tải lên tệp kịch bản',
  'upload_character_ref_aria': 'Tải lên ảnh tham chiếu nhân vật',
  'loading_project_data': 'Đang tải dữ liệu dự án...',
  'narration_visuals_mode': 'Chế độ Thuyết minh',
  'drama_animation_mode': 'Chế độ Phim truyện',
  'project_overview_title': 'Tổng quan dự án',
  'regen_overview_title': 'Tạo lại tổng quan',
  'regenerating_short': 'Đang tạo...',
  'regen_short': 'Tạo lại',
  'genre_prefix': 'Thể loại: ',
  'theme_prefix': 'Chủ đề: ',
  'calculating_cost': 'Đang tính chi phí...',
  'cost_estimate_failed': 'Ước tính chi phí thất bại: {{message}}',
  'episodes_title': 'Tập',
  'no_episodes_ai_hint': 'Chưa có tập nào. Dùng trợ lý AI để tạo kịch bản.',
  'segments_and_status': '{{count}} đoạn · {{status}}',

  // ProjectSettingsPage
  'project_settings': 'Cài đặt dự án',
  'back_to_project': 'Quay lại dự án',
  'model_config_project_desc': 'Chọn mô hình tạo cho dự án này; để trống để dùng mặc định toàn cục',
  'video_model': 'Mô hình video',
  'current_global_hint': 'Toàn cục hiện tại: {{value}}',
  'aspect_ratio_label': 'Tỉ lệ khung hình',
  'aspect_ratio_change_warning': 'Phân cảnh/video hiện tại vẫn giữ tỉ lệ gốc; cân nhắc tạo lại',
  'generation_mode': 'Chế độ tạo',
  'grid_generation': 'Tạo lưới',
  'mode_storyboard': 'Image-to-Video',
  'mode_grid': 'Grid-to-Video',
  'mode_reference_video': 'Reference-to-Video',
  'mode_storyboard_desc': 'Tạo khung phân cảnh trước, sau đó tạo video theo từng khung. Phù hợp khi cần kiểm soát chi tiết.',
  'mode_grid_desc': 'Tạo theo lô ảnh lưới cho mỗi đoạn. Phong cách nhất quán cho sản lượng lớn.',
  'mode_reference_video_desc': 'Bỏ qua phân cảnh; dùng ảnh tham chiếu nhân vật/cảnh/đạo cụ cho video nhiều cảnh quay.',
  'reference_tab_dirty_aria': 'Có thay đổi chưa lưu',
  'reference_video_status_pending': 'Chưa tạo video',
  'reference_video_status_running': 'Đang tạo video',
  'reference_video_status_ready': 'Đã tạo video',
  'reference_video_status_failed': 'Tạo video thất bại',
  'reference_canvas_empty': 'Chưa có đơn vị nào',
  'reference_unit_list_title': 'Đơn vị video',
  'reference_unit_new': 'Đơn vị mới',
  'reference_preview_empty': 'Chọn một đơn vị để xem trước',
  'reference_preview_generate': 'Tạo video',
  'reference_preview_generating': 'Đang tạo…',
  'reference_meta_unit': 'Đơn vị',
  'reference_meta_duration': 'Thời lượng',
  'reference_meta_shots': 'Cảnh quay',
  'reference_meta_references': 'Tham chiếu',
  'reference_units_count': '{{count}} đơn vị',
  'reference_preview_video_aria': 'Xem trước video cho đơn vị {{id}}',
  // Reference video unit UI status labels — derived from task queue state.
  'reference_status_pending': 'Đang chờ',
  'reference_status_running': 'Đang chạy',
  'reference_status_ready': 'Sẵn sàng',
  'reference_status_failed': 'Thất bại',
  'reference_generate_queued': 'Đã đưa vào hàng đợi tạo',
  'reference_generate_deduped': 'Đã có trong hàng đợi',
  'reference_generate_request_failed': 'Yêu cầu tạo thất bại: {{error}}; vui lòng thử lại.',
  'reference_generation_task_failed': 'Tạo đơn vị {{unitId}} thất bại: {{reason}}; vui lòng thử lại.',
  'storyboard_task_failed': 'Tạo phân cảnh "{{id}}" thất bại: {{reason}}',
  'video_task_failed': 'Tạo video "{{id}}" thất bại: {{reason}}',
  'character_task_failed': 'Tạo nhân vật "{{id}}" thất bại: {{reason}}',
  'scene_task_failed': 'Tạo cảnh "{{id}}" thất bại: {{reason}}',
  'prop_task_failed': 'Tạo đạo cụ "{{id}}" thất bại: {{reason}}',
  'grid_task_failed': 'Tạo lưới thất bại: {{reason}}',
  'episode_mode_switcher_label': 'Chế độ tạo của tập',
  'episode_mode_inherit_from_project': 'Kế thừa từ dự án',
  'episode_mode_switch_keep_data': "Chuyển chế độ sẽ không xóa các đơn vị / cảnh hiện có — bạn có thể chuyển lại bất cứ lúc nào.",
  'episode_mode_switch_to_reference': 'Đã chuyển sang reference-to-video. Dữ liệu phân cảnh/lưới được giữ nguyên và sẽ hiện lại khi bạn chuyển về.',
  'episode_mode_switch_from_reference': 'Đã chuyển về phân cảnh/lưới. Các video_units chế độ tham chiếu được giữ lại để dùng sau.',
  // ========== PR5 reference-video editor ==========
  'reference_editor_placeholder': 'Nhập prompt. Dùng dấu "Shot 1 (3s): ..." và @mentions cho nhân vật/cảnh/đạo cụ.',
  'reference_editor_aria_name': 'Prompt đơn vị',
  'reference_editor_unknown_mentions_label': 'Mention chưa đăng ký',
  'reference_editor_unknown_mention': 'Chưa đăng ký: @{{name}} (không có trong nhân vật/cảnh/đạo cụ)',
  'reference_picker_title': 'Chèn tham chiếu',
  'reference_picker_empty': 'Không có kết quả',
  'reference_picker_group_character': 'Nhân vật',
  'reference_picker_group_scene': 'Cảnh',
  'reference_picker_group_prop': 'Đạo cụ',
  'reference_picker_tab_all': 'Tất cả',
  'reference_picker_tab_character': 'Nhân vật',
  'reference_picker_tab_scene': 'Cảnh',
  'reference_picker_tab_prop': 'Đạo cụ',
  'segment_refs_edit_button': 'Chỉnh sửa tham chiếu',
  'segment_refs_edit_title': 'Chỉnh sửa tham chiếu',
  'segment_refs_close': 'Đóng',
  'segment_refs_save': 'Lưu',
  'segment_refs_cancel': 'Hủy',
  'segment_refs_changes_pending': 'Có thay đổi chưa lưu',
  'segment_refs_no_changes': 'Không có thay đổi',
  'segment_refs_stale_hint': 'Tham chiếu không còn tồn tại — nhấn để xóa',
  'segment_refs_search_empty': 'Không có kết quả',
  'segment_refs_badge_character': 'Nhân vật',
  'segment_refs_badge_scene': 'Cảnh',
  'segment_refs_badge_prop': 'Đạo cụ',
  'segment_refs_search_placeholder': 'Tìm kiếm…',
  'segment_refs_empty_characters': 'Chưa có nhân vật nào',
  'segment_refs_empty_clues': 'Chưa có cảnh hoặc đạo cụ nào',
  'segment_refs_manage_link': 'Quản lý tham chiếu',
  'segment_refs_stale_badge': '{{count}} không còn hợp lệ',
  'references_empty_full': 'Chưa tham chiếu nhân vật / cảnh / đạo cụ nào',
  'references_add_cta': 'Thêm tham chiếu',
  'references_badge_character': 'Nhân vật',
  'references_badge_scene': 'Cảnh',
  'references_badge_prop': 'Đạo cụ',
  'reference_panel_title': 'Tham chiếu (kéo để sắp xếp lại)',
  'reference_panel_empty': 'Chưa có tham chiếu — nhấn + hoặc @mention một tên trong prompt.',
  'reference_panel_add': 'Thêm tham chiếu',
  'reference_panel_remove_aria': 'Xóa tham chiếu @{{name}}',
  'reference_panel_drag_aria': 'Sắp xếp lại @{{name}}',
  'reference_panel_zoom_aria': 'Xem ảnh thu nhỏ lớn hơn cho @{{name}}',
  'reference_panel_sr_instructions': 'Nhấn Space để chọn mục; dùng phím mũi tên để di chuyển; nhấn Space lần nữa để thả; Esc để hủy.',
  'reference_panel_announce_pick_up': 'Đã chọn {{name}} ở vị trí {{index}}.',
  'reference_panel_announce_move': '{{name}} di chuyển đến vị trí {{index}}.',
  'reference_panel_announce_drop': 'Đã thả {{name}} ở vị trí {{index}}.',
  'reference_panel_announce_cancel': 'Đã hủy kéo cho {{name}}.',
  'reference_editor_unit_meta_one': '{{duration}}s · {{count}} cảnh',
  'reference_editor_unit_meta_other': '{{duration}}s · {{count}} cảnh',
  'default_duration_label': 'Thời lượng mặc định',
  'default_duration_project_desc': 'Thời lượng video mặc định cho phân cảnh mới; "Tự động" để AI quyết định theo nội dung',
  'duration_selection': 'Chọn thời lượng',
  'auto_label': 'Tự động',
  'image_model': 'Mô hình ảnh',
  'generate_audio_label': 'Tạo âm thanh',
  'audio_settings_sr_label': 'Cài đặt tạo âm thanh',
  'follow_global_default': 'Theo mặc định toàn cục',
  'enabled_label': 'Đã bật',
  'disabled_label': 'Đã tắt',
  'text_model_override_desc': 'Ghi đè theo loại tác vụ; để trống để theo mặc định toàn cục',
  'loading_config': 'Đang tải cấu hình...',
  'saved': 'Đã lưu',
  'unsaved_changes_confirm': 'Bạn có thay đổi chưa lưu. Bạn có chắc muốn rời khỏi?',
  'unsaved_changes_hint': 'Bạn có thay đổi chưa lưu',

  // ProviderSection
  'status_ready': 'Sẵn sàng',
  'status_error': 'Lỗi',
  'status_unconfigured': 'Chưa cấu hình',
  'loading_providers': 'Đang tải nhà cung cấp...',
  'provider_list': 'Danh sách nhà cung cấp',
  'preset_providers': 'Nhà cung cấp có sẵn',
  'select_provider': 'Vui lòng chọn nhà cung cấp',

  // ProviderDetail
  'status_connected': 'Đã kết nối',
  'media_type_video': 'Video',
  'media_type_image': 'Ảnh',
  'media_type_text': 'Văn bản',
  'advanced_config': 'Cấu hình nâng cao',
  'enter_key_placeholder': 'Nhập khóa',
  'clear_key': 'Xóa khóa',
  'clear_label': 'Xóa',
  'confirm_clear': 'Xác nhận xóa',
  'key_set_hint': 'Đã đặt (để trống để giữ giá trị hiện có)',
  'save_provider': 'Lưu',

  // CustomProviderSection
  'custom_providers': 'Nhà cung cấp tùy chỉnh',
  'add_custom_provider': 'Thêm nhà cung cấp tùy chỉnh',

  // CustomProviderForm
  'edit_custom_provider': 'Chỉnh sửa nhà cung cấp tùy chỉnh',
  'add_custom_provider_title': 'Thêm nhà cung cấp tùy chỉnh',
  'cp_name_label': 'Tên',
  'cp_name_placeholder': 'Ví dụ: NewAPI của tôi...',
  'base_url': 'Base URL',
  'api_key_label': 'Khóa API',
  'keep_existing_key_hint': 'Để trống để giữ khóa hiện có',
  'enter_api_key_placeholder': 'Nhập khóa API',
  'preview_url': 'Xem trước: ',
  'discover_models': 'Phát hiện mô hình',
  'discover_models_success': 'Tìm thấy {{count}} mô hình',
  'discover_no_models': 'Không tìm thấy mô hình',
  'discover_no_base': 'Chọn cấu hình hoặc nhập Base URL trước',
  'discover_api_key_required': 'Nhập API Key trước để phát hiện mô hình',
  'discovering_models': 'Đang phát hiện...',
  'import_from_provider': 'Nhập từ nhà cung cấp',
  'import_no_providers': 'Không có nhà cung cấp tùy chỉnh để nhập',
  'import_provider_success': 'Đã nhập thông tin xác thực từ {{name}}',
  'model_list': 'Danh sách mô hình',
  'select_all': 'Chọn tất cả',
  'deselect_all': 'Bỏ chọn tất cả',
  'search_models': 'Tìm kiếm mô hình...',
  'enable_model': 'Bật mô hình',
  'model_id_label': 'Model ID',
  'media_type_label': 'Loại media',
  'default_label': 'Mặc định',
  'delete_model': 'Xóa mô hình',
  'currency_label': 'Tiền tệ',
  'input_price': 'Giá đầu vào',
  'output_price': 'Giá đầu ra',
  'price_per_second': '/giây',
  'price_per_image': '/ảnh',
  'price_per_m_input': '/M đầu vào',
  'price_per_m_output': '/M đầu ra',
  'resolution_label': 'Độ phân giải',
  'resolution_default_placeholder': 'Mặc định (chưa đặt)',
  'resolution_help_custom': 'Chọn token phổ biến từ danh sách hoặc nhập giá trị thô mà API yêu cầu',
  'supported_durations_label': 'Thời lượng hỗ trợ',
  'supported_durations_placeholder': 'Ví dụ 4, 8, 12 hoặc 3-15 (để trống để tự suy luận)',
  'supported_durations_help': 'Các giá trị phân tách bằng dấu phẩy hoặc khoảng (ví dụ 3-15). Để trống để máy chủ tự suy luận từ model id.',
  'supported_durations_invalid': 'Định dạng không hợp lệ: {{message}}',
  'supported_durations_err_empty_after_split': 'Đầu vào chỉ chứa dấu phân tách — vui lòng nhập số nguyên dương',
  'supported_durations_err_non_positive': "Đoạn '{{seg}}' phải là số nguyên dương",
  'supported_durations_err_exceeds_max': "Đoạn '{{seg}}' vượt giới hạn tối đa {{max}} giây cho mỗi giá trị",
  'supported_durations_err_range_too_large': "Khoảng '{{seg}}' quá lớn (>{{max_span}})",
  'supported_durations_err_range_inverted': "Đoạn '{{seg}}': cận trên của khoảng phải ≥ cận dưới",
  'supported_durations_err_unparseable': "Không thể phân tích đoạn '{{seg}}'",
  'supported_durations_summary': 'Thời lượng hỗ trợ: {{value}}',
  'duration_incompatible_warning': '{{value}}s đã chọn không nằm trong [{{supported}}] mà mô hình hỗ trợ',
  'duration_seconds_value_text': '{{value}}s',
  'duration_no_options': 'Mô hình hiện tại không có thời lượng cấu hình — không thể thay đổi',
  'add_model_manually': 'Thêm mô hình thủ công',
  'discover_or_add_hint': 'Nhấn "Phát hiện mô hình" để tự phát hiện, hoặc',
  'test_connection': 'Kiểm tra kết nối',
  'testing_connection': 'Đang kiểm tra...',
  'connection_test_failed': 'Kiểm tra kết nối thất bại',
  'fetch_models_failed': 'Tải danh sách mô hình thất bại',
  'fill_base_url_first': 'Vui lòng điền Base URL trước',
  'fill_api_key_first': 'Vui lòng điền khóa API trước',
  'base_url_changed_reenter_key': 'Base URL đã thay đổi — nhập lại khóa API để phát hiện mô hình',
  'fill_provider_name': 'Vui lòng điền tên nhà cung cấp',
  'fill_base_url': 'Vui lòng điền Base URL',
  'fill_api_key': 'Vui lòng điền khóa API',
  'enable_one_model': 'Phải bật ít nhất một mô hình',
  'enabled_model_needs_id': 'Mô hình đã bật phải có model_id',

  // CustomProviderDetail
  'discovery_format_label': 'Giao thức phát hiện mô hình',
  'discovery_format_help': 'Chỉ dùng cho phát hiện mô hình và kiểm tra kết nối; không ảnh hưởng tới các lượt gọi runtime',
  'discovery_format_openai': 'Tương thích OpenAI',
  'discovery_format_google': 'Google AI Studio',
  'endpoint_label': 'Endpoint gọi',
  'endpoint_text_group': 'Văn bản',
  'endpoint_image_group': 'Ảnh',
  'endpoint_video_group': 'Video',
  '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 (chỉ T2I)',
  'endpoint_openai_images_edits_display': 'OpenAI Images (chỉ I2I)',
  'endpoint_gemini_image_display': 'Google Gemini Image',
  'endpoint_openai_video_display': 'OpenAI Video (Sora)',
  'endpoint_newapi_video_display': 'NewAPI Unified Video',
  'endpoint_catalog_loading': 'Đang tải danh mục endpoint…',
  // Image Capability
  'image_capability_t2i': 'T2I',
  'image_capability_i2i': 'I2I',
  'image_capability_both': 'T2I · I2I',
  'image_model_t2i_label': 'Mô hình Text-to-Image',
  'image_model_i2i_label': 'Mô hình Image-to-Image',
  'api_key_not_set': 'Chưa đặt',
  'model_disabled': 'Đã tắt',
  'confirm_delete_provider': 'Xác nhận xóa',

  // UsageDrawer
  'cost_details': 'Chi tiết chi phí',
  'total_cost': 'Tổng chi phí',
  'image_type_label': 'Ảnh',
  'video_type_label': 'Video',
  'text_type_label': 'Văn bản',
  'failed_type_label': 'Thất bại',
  'no_call_records': 'Chưa có bản ghi cuộc gọi',
  'input_token_label': 'Đầu vào',
  'output_token_label': 'Đầu ra',
  'tokens_suffix': 'token',
  'records_count': '{{count}} bản ghi',

  // WorkspaceNotificationsDrawer
  'notifications_count': '{{count}} thông báo',
  'unread_count': 'Chưa đọc {{count}}',
  'close_notification_panel': 'Đóng bảng thông báo',
  'no_notifications': 'Không có thông báo',
  'notifications_hint': 'Cập nhật dự án, hoàn tất tạo và các thay đổi có thể điều hướng sẽ xuất hiện ở đây',
  'read_status': 'Đã đọc',
  'new_notification': 'Mới',
  'view_location': 'Xem & định vị',
  'notification_only': 'Chỉ thông báo',
  'remove_label': 'Xóa',
  'auto_mark_read_hint': 'Mở bảng tự động đánh dấu thông báo là đã đọc',
  'session_records': 'Bản ghi phiên',
  'just_now': 'Vừa xong',
  'minutes_ago': '{{count}} phút trước',

  // SourceFileViewer
  'confirm_delete_source_file': 'Bạn có chắc muốn xóa "{{filename}}"? Thao tác không thể hoàn tác.',
  'loading_file': 'Đang tải tệp...',
  'cannot_load_file': 'Không thể tải tệp "{{filename}}"',

  // TimelineCanvas
  'select_episode_hint': 'Vui lòng chọn một tập từ thanh bên',
  'segment_count': '{{count}} đoạn',
  'scene_count_label': '{{count}} cảnh',
  'cost_estimate_short': 'Ước tính',
  'cost_actual_short': 'Thực tế',
  'cost_storyboard_short': 'Phân cảnh',
  'cost_video_short': 'Video',
  'cost_total_short': 'Tổng',
  'preprocessing_tab': 'Tiền xử lý',
  'timeline_tab': 'Dòng thời gian kịch bản',
  'generate_all_grids': 'Tạo tất cả lưới',
  'submitting': 'Đang gửi...',

  'no_original_text': '(Chưa có văn bản gốc)',
  'duration_selector_aria': 'Chọn thời lượng',

  // PreprocessingView
  'preprocessing_saved': 'Đã lưu nội dung tiền xử lý',
  'loading_preprocessing': 'Đang tải nội dung tiền xử lý...',
  'no_preprocessing_content': 'Không có nội dung tiền xử lý',
  'segment_split_complete': 'Hoàn tất chia đoạn',
  'script_normalized_complete': 'Hoàn tất chuẩn hóa kịch bản',
  'reference_units_split_complete': 'Hoàn tất chia đơn vị tham chiếu ({{count}} đơn vị)',
  'reference_units_split_complete_label': 'Hoàn tất chia đơn vị tham chiếu',
  'reference_preproc_back': 'Về trình soạn thảo',
  'reference_preproc_page_title': 'Tiền xử lý · E{{episode}}',
  'reference_preproc_status_loading': 'Đang tải…',
  'reference_preproc_status_error': 'Chia thất bại',
  'reference_preproc_status_empty': 'Chưa chia',
  'reference_tab_editor': 'Kịch bản',
  'reference_tab_preview': 'Video',
  'reference_tab_aria': 'Tab bảng đơn vị tham chiếu',

  // ArcReel Workbench v3 — Video Tham Chiếu
  'reference_main_tab_aria': 'Tab chính của workspace',
  'reference_tab_units': 'Đơn vị video',
  'reference_tab_preprocess': 'Tiền xử lý tách',
  'reference_batch_generate': 'Tạo hàng loạt',
  'reference_batch_nothing_to_do': 'Tất cả đơn vị đã được tạo hoặc đang xử lý',
  'reference_episode_header_units_one': '{{count}} đơn vị',
  'reference_episode_header_units_other': '{{count}} đơn vị',
  'reference_episode_header_ready': 'Sẵn sàng',
  'reference_episode_header_estimated': 'Ước tính',
  'reference_episode_header_actual': 'Đã chi',
  'reference_strip_label': 'Tham chiếu',
  'reference_strip_order_hint': 'Thứ tự = [IMG-N]',
  'reference_strip_image_token': 'IMG-{{n}}',
  'reference_strip_add': 'Thêm tham chiếu',
  'reference_strip_empty': 'Chưa có tham chiếu — bấm + bên phải hoặc dùng @ trong prompt để thêm tự động',
  'reference_unit_search_placeholder': 'Tìm kiếm đơn vị / prompt…',
  'reference_unit_search_empty': 'Không tìm thấy đơn vị nào',
  'reference_unit_dirty_hint': 'Chưa lưu',
  'reference_unit_shots_count_one': '{{count}} shot',
  'reference_unit_shots_count_other': '{{count}} shot',
  'reference_unit_rail_expand': 'Mở rộng danh sách',
  'reference_unit_prev': 'Đơn vị trước',
  'reference_unit_next': 'Đơn vị sau',
  'reference_preview_label': 'Xem trước video',
  'reference_preview_metadata': 'Siêu dữ liệu',
  'reference_preview_in_flight': 'Đang tạo video…',
  'reference_preview_in_flight_meta': '{{refs}} tham chiếu · {{duration}}s',
  'reference_preview_failed_title': 'Tạo thất bại',
  'reference_preview_failed_unknown': 'Lỗi không xác định',
  'reference_preview_empty_unit': 'Chưa được tạo',
  'reference_preview_regenerate': 'Tạo lại video',
  'reference_preview_retry': 'Thử lại',
  'reference_meta_status': 'Trạng thái',
  'reference_meta_cost': 'Chi phí',
  'reference_meta_cost_spent': 'đã chi',
  'reference_unsaved': 'Chưa lưu thay đổi',
  'reference_synced': 'Đã đồng bộ',

  // Source file normalization toasts
  'source_normalized_toast': 'Đã chuẩn hóa "{{filename}}" (mã hóa nguồn: {{encoding}})',
  'source_normalized_toast_with_chapters': 'Đã chuẩn hóa "{{filename}}" ({{chapters}} chương; mã hóa nguồn: {{encoding}})',
  'source_normalized_toast_native': 'Đã chuẩn hóa "{{filename}}"',
  'source_normalized_toast_native_with_chapters': 'Đã chuẩn hóa "{{filename}}" ({{chapters}} chương)',
  'source_upload_conflict_toast': 'Tệp nguồn "{{filename}}" đã tồn tại (gợi ý đổi tên: "{{suggested}}"; thử lại từ bảng chính)',

  // Grid preview
  'grid_scene_count': '{{count}} cảnh',
  'grid_batch_count': '{{count}} lưới',
  'generating_grid': 'Đang tạo...',
  'generate_grid_btn': 'Tạo lưới',
  'insufficient_scenes_for_grid': 'Chưa đủ cảnh để tạo lưới',

  // GridPreviewPanel
  'grid_status_pending': 'Đang chờ',
  'grid_status_generating': 'Đang tạo',
  'grid_status_splitting': 'Đang tách',
  'grid_status_completed': 'Hoàn tất',
  'grid_status_failed': 'Thất bại',
  'grid_preview_title': 'Xem trước lưới',
  'grid_not_generated': 'Chưa tạo',
  'grid_batch_unit': '{{count}} lô',
  'grid_no_grids_yet': 'Chưa có lưới nào',
  'grid_generate_instruction': 'Nhấn nút "Tạo lưới" phía trên để bắt đầu',
  'grid_loading_data': 'Đang tải dữ liệu lưới...',
  'grid_load_failed': 'Tải thất bại',
  'grid_regenerate_failed': 'Tạo lại thất bại',
  'grid_regenerating': 'Đang gửi...',
  'grid_regenerate_btn': 'Tạo lại',
  'grid_composite_image_alt': 'Ảnh ghép lưới',
  'grid_cell_info': '{{count}} ô · {{size}}',
  'grid_no_image': 'Không có ảnh',
  'grid_reference_images': 'Ảnh tham chiếu',

  // StudioCanvasRouter
  'grid_generation_failed': 'Tạo lưới thất bại: {{message}}',

  // CredentialList
  'credential_mgmt': 'Quản lý khóa',
  'add_credential': 'Thêm nhà cung cấp',
  'no_credentials': 'Chưa có khóa nào',
  'add_first_credential': 'Thêm khóa đầu tiên',
  'active_label': 'Đang dùng',
  'currently_active': 'Hiện đang dùng',
  'activate_credential': 'Kích hoạt {{name}}',
  'test_credential': 'Kiểm tra kết nối {{name}}',
  'edit_credential': 'Chỉnh sửa {{name}}',
  'delete_credential': 'Xóa {{name}}',
  'available_models': 'Mô hình khả dụng: ',
  'credential_name': 'Tên',
  'credential_name_placeholder': 'Ví dụ: Tài khoản cá nhân...',
  'api_key_keep_hint': 'Khóa API (để trống để giữ giá trị hiện có)',
  'keep_existing_placeholder': 'Để trống để giữ giá trị hiện có...',
  'base_url_optional': 'Base URL (tùy chọn)',
  'default_url_placeholder': 'Mặc định dùng URL chính thức...',
  'credential_file': 'Tệp xác thực',
  'select_json_file': 'Chọn tệp JSON...',
  'select_credential_file': 'Vui lòng chọn tệp xác thực',
  'enter_api_key_required': 'Vui lòng nhập khóa API',

  // ProviderModelSelect
  'select_model_placeholder': 'Chọn mô hình...',
  'select_model_aria': 'Chọn mô hình',
  'search_model_placeholder': 'Tìm mô hình hoặc nhà cung cấp...',
  'search_model_aria': 'Tìm mô hình hoặc nhà cung cấp',
  'no_models_match': 'Không có mô hình phù hợp',

  // ImagePromptEditor / VideoPromptEditor / DialogueListEditor
  'composition_params': 'Bố cục',
  'shot_label': 'Cỡ cảnh',
  'lighting_label': 'Ánh sáng',
  'lighting_placeholder': 'Mô tả ánh sáng...',
  'ambiance_label': 'Không khí',
  'ambiance_placeholder': 'Mô tả không khí...',
  'camera_motion_section': 'Camera / Âm thanh / Đối thoại',
  'camera_motion_label': 'Chuyển động camera',
  // Shot type enum values
  'shot_type_extreme_close_up': 'Cực cận',
  'shot_type_close_up': 'Cận cảnh',
  'shot_type_medium_close_up': 'Trung cận',
  'shot_type_medium_shot': 'Trung cảnh',
  'shot_type_medium_long_shot': 'Trung viễn',
  'shot_type_long_shot': 'Toàn cảnh',
  'shot_type_extreme_long_shot': 'Đại toàn cảnh',
  'shot_type_over_the_shoulder': 'Qua vai',
  'shot_type_point_of_view': 'Góc nhìn người',
  // Camera motion enum values
  'camera_motion_static': 'Cố định',
  'camera_motion_pan_left': 'Lia trái',
  'camera_motion_pan_right': 'Lia phải',
  'camera_motion_tilt_up': 'Ngẩng lên',
  'camera_motion_tilt_down': 'Cúi xuống',
  'camera_motion_zoom_in': 'Zoom vào',
  'camera_motion_zoom_out': 'Zoom ra',
  'camera_motion_tracking_shot': 'Quay theo',
  'ambiance_audio_label': 'Âm thanh không khí',
  'ambiance_audio_placeholder': 'Mô tả âm thanh không khí...',
  'speaker_placeholder': 'Người nói',
  'line_placeholder': 'Câu thoại',
  'add_dialogue': 'Thêm đối thoại',
  'dialogue_remove': 'Xoá đối thoại',
  'image_prompt_placeholder': 'Mô tả phân cảnh...',
  'video_prompt_placeholder': 'Mô tả hành động video...',

  // VersionTimeMachine
  'version_mgmt': 'Phiên bản',
  'switched_to_version': 'Đã chuyển sang v{{version}}',
  'switch_version_failed': 'Chuyển phiên bản thất bại: {{message}}',
  'no_history': 'Chưa có phiên bản lịch sử',
  'history_hint': 'Sau khi tạo hoặc khôi phục, các phiên bản lịch sử sẽ xuất hiện ở đây.',
  'history_versions': 'Phiên bản lịch sử',
  'current_version': 'Hiện tại v{{version}}',
  'version_click_hint': 'Nhấn vào số phiên bản để xem trước; có thể chuyển sang các phiên bản không phải hiện tại.',
  'current_version_badge': 'Hiện tại',
  'switching_version': 'Đang chuyển...',
  'switch_to_version': 'Chuyển sang phiên bản này',
  'version_preview_alt': 'Xem trước phiên bản v{{version}}',
  'version_no_notes': 'Phiên bản này không có ghi chú bổ sung.',

  // ProjectCard - more actions
  'more_actions': 'Thao tác khác',
  'delete_project': 'Xóa dự án',
  'confirm_delete_project': 'Bạn có chắc muốn xóa dự án "{{title}}"? Thao tác không thể hoàn tác.',
  'deleting_project': 'Đang xóa...',

  // SystemConfigPage - language
  'language_setting': 'Ngôn ngữ',

  // Tab labels (timeline / grid canvas)
  'tab_grid_preview': 'Lưới ảnh',
  'grid_preview_summary': '{{batches}} đợt · {{cells}} ô · {{percent}}% sẵn sàng',
  'grid_preview_batch_card_title': 'Đợt #{{index}} · {{cellCount}} ô · {{rows}}×{{cols}}',
  'grid_preview_batch_generate': 'Tạo lưới này',
  'grid_preview_empty_episode': 'Tập này chưa có phân cảnh — hãy chia kịch bản trong Tiền xử lý trước',

  // OpenClaw integration modal
  'openclaw_title': 'Hướng dẫn tích hợp OpenClaw',
  'openclaw_subtitle': 'Kết nối [[brand]] với AI Agent OpenClaw của bạn',
  'openclaw_prompt_label': 'Prompt',
  'openclaw_skill_url_label': 'Địa chỉ Skill doc:',
  'openclaw_steps_label': 'Các bước',
  'openclaw_step_01_title': 'Gửi prompt phía trên cho OpenClaw',
  'openclaw_step_01_desc': 'Sao chép prompt và dán vào OpenClaw.',
  'openclaw_step_02_title': 'OpenClaw học từ tài liệu Skill',
  'openclaw_step_02_desc': 'OpenClaw sẽ tự động đọc tài liệu [[brand]] Skill và khám phá mọi công cụ và API có sẵn.',
  'openclaw_step_03_title': 'OpenClaw điều khiển [[brand]] để tạo video',
  'openclaw_step_03_desc': 'Hãy mô tả mong muốn của bạn; OpenClaw sẽ gọi [[brand]] để quản lý dự án, tạo kịch bản và sản xuất video.',
  'openclaw_system_prompt': 'Đọc {{skillUrl}} rồi làm theo skill để biết cách dùng [[brand]] tạo video',
  'openclaw_get_api_token': 'Lấy API token',


  'add_episode': 'Thêm',
  'add_episode_unavailable': 'Chưa khả dụng',
  'batch_generate_storyboards': 'Tạo phân cảnh hàng loạt',
  'batch_generate_videos': 'Tạo video hàng loạt',
  'context_clear': 'Xóa ngữ cảnh',
  'context_label_character': 'Nhân vật',
  'context_label_prop': 'Đạo cụ',
  'context_label_scene': 'Cảnh',
  'context_label_segment': 'Phân đoạn',
  'cost_details_eyebrow': 'Usage & Spend',
  'delete_source_file_aria_label': 'Xóa tệp gốc {{filename}}',
  'detail_collapsible_composition': 'composition · bố cục',
  'detail_collapsible_video_options': 'máy quay / âm thanh / đối thoại',
  'detail_dialogue_add': '+ Thêm đối thoại',
  'detail_dialogue_empty': '(chưa có đối thoại)',
  'detail_drawer_left_label': 'Kịch bản / Đối thoại / Ghi chú',
  'detail_field_chars_count': '{{count}} ký tự',
  'detail_image_prompt_placeholder': 'Mô tả khung hình: bối cảnh, nhân vật, hành động, bố cục…',
  'detail_image_prompt_title': 'Image Prompt · Phân cảnh',
  'detail_section_dialogue': 'DIALOGUE',
  'detail_section_novel': 'ORIGINAL TEXT',
  'detail_section_prompts': 'PROMPTS',
  'detail_tab_left': 'Kịch bản / Đối thoại',
  'detail_tab_mid': 'Prompt',
  'detail_tab_right': 'Phân cảnh / Video',
  'detail_video_prompt_placeholder': 'Mô tả chuyển động bắt đầu từ khung phân cảnh…',
  'detail_video_prompt_title': 'Video Prompt · Cảnh quay',
  'episode_card_progress_label': 'Tiến độ',
  'episode_collapsed_button_label': 'E{{episode}} · {{title}}',
  'episode_header_cost_estimated': 'Dự kiến',
  'episode_header_cost_remaining': 'Còn lại',
  'episode_header_cost_spent': 'Đã chi',
  'episode_header_episode_chip': 'EP · {{number}}',
  'episode_header_progress_inline': 'Đang sản xuất · {{percent}}%',
  'episode_header_segment_count': '{{count}} cảnh quay · ~{{duration}}s',
  'episode_search_placeholder': 'Tìm tập theo tên hoặc số…',
  'episode_status_active': 'Đang sản xuất',
  'episode_status_done': 'Đã hoàn thành',
  'episode_status_draft': 'Bản nháp',
  'episode_status_idea': 'Ý tưởng',
  'episode_status_label_completed': 'Đã hoàn thành',
  'episode_status_label_draft': 'Bản nháp',
  'episode_status_label_in_production': 'Đang sản xuất',
  'episode_status_label_missing': 'Thiếu',
  'episode_status_label_scripted': 'Đã có kịch bản',
  'episode_workspace_no_episode': 'Tập này chưa được bắt đầu. Hãy bắt đầu từ kịch bản, hoặc để trợ lý phác thảo cho bạn.',
  'episode_workspace_start_cta': 'Bắt đầu E{{episode}}',
  'episodes_section_title': 'Tập',
  'eyebrow_export_scope': 'Export · Scope',
  'eyebrow_library': 'Library · {{type}}',
  'eyebrow_segment_refs': 'References · Scope',
  'grid_canvas_tab_aria': 'Các tab chính của bảng lưới',
  'import_diagnostics': 'Chẩn đoán nhập',
  'import_failure_diagnostics': 'Chẩn đoán nhập thất bại',
  'import_failure_with_diagnostics': 'Việc nhập chưa hoàn tất. Các mục chặn và cảnh báo được liệt kê bên dưới.',
  'list_source_files_failed': 'Tải danh sách tệp gốc thất bại: {{message}}',
  'lobby_brand_subtitle': 'Studio',
  'lobby_card_actions': 'Hành động dự án',
  'lobby_card_stat_cast': 'CAST',
  'lobby_card_stat_episode': 'EP',
  'lobby_card_stat_prop': 'PROP',
  'lobby_card_stat_scene': 'SCENE',
  'lobby_clear_filters': 'Xóa bộ lọc',
  'lobby_continue_editing_chip': 'CONTINUE EDITING',
  'lobby_filter_all': 'Tất cả',
  'lobby_filter_count_suffix': '',
  'lobby_hero_eyebrow': 'Studio',
  'lobby_hero_greeting_afternoon': 'Chào buổi chiều, đạo diễn.',
  'lobby_hero_greeting_evening': 'Chào buổi tối, đạo diễn.',
  'lobby_hero_greeting_late': 'Đêm đã khuya rồi, đạo diễn.',
  'lobby_hero_greeting_morning': 'Chào buổi sáng, đạo diễn.',
  'lobby_hero_subtitle_active': '{{count}} tác phẩm đang sản xuất.',
  'lobby_hero_subtitle_idle': 'Đang chờ tác phẩm đầu tiên của bạn.',
  'lobby_hero_subtitle_quiet': 'Hôm nay vẫn chưa bắt đầu.',
  'lobby_hero_summary': 'Đã hoàn thành {{completed}} tập, {{inProduction}} tập còn đang sản xuất.',
  'lobby_hero_summary_idle': 'Tạo một dự án để bắt đầu tác phẩm đầu tiên của bạn.',
  'lobby_library_count': '{{count}} dự án',
  'lobby_library_eyebrow': 'All projects · LIBRARY',
  'lobby_new_project_kicker': 'START · NEW REEL',
  'lobby_new_project_title': 'Dự án mới',
  'lobby_no_filter_match': 'Không có dự án phù hợp',
  'lobby_no_filter_match_hint': 'Hãy thử xóa bộ lọc hoặc dùng từ khóa khác.',
  'lobby_now_editing_episodes_label': 'Tập',
  'lobby_now_editing_episodes_value': '{{completed}}/{{total}} tập',
  'lobby_now_editing_eyebrow': 'Pick up where you left off · NOW EDITING',
  'lobby_now_editing_phase_label': 'Giai đoạn',
  'lobby_now_editing_progress_label': 'Tiến độ',
  'lobby_open_workspace': 'Mở trình chỉnh sửa',
  'lobby_open_workspace_completed': 'Xem bản dựng hoàn chỉnh',
  'lobby_search_kbd': '⌘K',
  'lobby_search_placeholder': 'Tìm dự án',
  'lobby_sort_recent': 'Sorted · Recent',
  'lobby_stat_completed': 'DONE',
  'lobby_stat_drafts': 'DRAFT',
  'lobby_stat_production': 'PROD',
  'lobby_stat_total': 'TOTAL',
  'media_generate_storyboard': 'Tạo phân cảnh',
  'media_generate_video': 'Tạo video',
  'media_generate_video_disabled_hint': 'Hãy tạo phân cảnh trước',
  'media_no_prompt_yet': 'Cảnh quay này chưa có prompt.',
  'media_not_generated': 'Chưa được tạo',
  'media_regenerate_storyboard': 'Tạo lại phân cảnh',
  'media_regenerate_video': 'Tạo lại video',
  'media_smart_generate_prompt': 'Tạo prompt thông minh',
  'media_storyboard_title': 'Phân cảnh',
  'media_versions_label': 'Phiên bản',
  'media_video_title': 'Video',
  'no_episode_search_results': 'Không có tập phù hợp',
  'open_assistant_panel': 'Mở bảng trợ lý',
  'resize_assistant_panel': 'Điều chỉnh chiều rộng bảng trợ lý (nhấp đúp để đặt lại)',
  'open_source_file_aria_label': 'Mở tệp gốc {{filename}}',
  'openclaw': 'OpenClaw',
  'pending_question_wizard_label': 'Cần bạn nhập thông tin',
  'pending_question_wizard_multi_select': 'Chọn nhiều',
  'pending_question_wizard_next': 'Tiếp →',
  'pending_question_wizard_other_label': 'Khác',
  'pending_question_wizard_other_placeholder': 'Nhập câu trả lời của bạn',
  'pending_question_wizard_prev': '← Trước',
  'pending_question_wizard_select_option': 'Chọn một tùy chọn',
  'pending_question_wizard_single_select': 'Chọn một',
  'pending_question_wizard_step_question': 'Câu hỏi {{number}}',
  'pending_question_wizard_submit': 'Gửi →',
  'pending_question_wizard_submitting': 'Đang gửi…',
  'phase_completed': 'Hoàn thành',
  'phase_production': 'Sản xuất',
  'phase_scripting': 'Viết kịch bản',
  'phase_setup': 'Chuẩn bị',
  'phase_worldbuilding': 'Xây dựng thế giới',
  'progress_aria_label': 'Tiến độ {{label}}',
  'project_switcher_active_tag': 'ACTIVE',
  'project_switcher_current': 'Dự án hiện tại',
  'project_switcher_new': 'Dự án mới…',
  'project_switcher_settings': 'Cài đặt dự án…',
  'shot_detail_cancel': 'Hủy bỏ',
  'shot_detail_count': '{{current}} / {{total}}',
  'shot_detail_next': 'Tiếp',
  'shot_detail_prev': 'Trước',
  'shot_detail_save': 'Lưu',
  'shot_detail_save_first': 'Hãy lưu hoặc hủy chỉnh sửa hiện tại trước',
  'shot_detail_saving': 'Đang lưu…',
  'shot_detail_unsaved': 'Chưa lưu',
  'shot_list_collapse': 'Thu gọn',
  'shot_list_expand': 'Mở danh sách cảnh quay',
  'shot_notes_button': 'Ghi chú',
  'shot_notes_close': 'Đóng ghi chú',
  'shot_notes_placeholder': 'Ghi chú cho {{id}}: tham chiếu, chỉnh sửa, việc cần làm…',
  'shot_notes_title': 'NOTES',
  'shot_search_placeholder': 'Tìm cảnh quay…',
  'shot_status_pending': 'Chờ xử lý',
  'shot_status_ready': 'Đã xong',
  'shot_status_storyboard': 'Phân cảnh đã sẵn sàng',
  'shots_collapsed_label': 'SHOTS · {{count}}',
  'shots_section_title': 'Cảnh quay',
  'sidebar_collapse': 'Thu gọn',
  'sidebar_expand': 'Mở rộng',
  'skill_content_collapse': '▼ Thu gọn',
  'skill_content_expand': '▶ Mở rộng',
  'skill_content_label': 'Nội dung Skill',
  'source_files_drop_hint': 'Kéo văn bản tiểu thuyết vào đây, hoặc nhấn để chọn tệp',
  'source_files_drop_inline_hint': 'Thả thêm tệp để bổ sung',
  'source_open': 'Mở',
  'source_unsupported_extension': 'Loại tệp không được hỗ trợ: {{filename}}',
  'tab_preprocessing': 'Tiền xử lý',
  'tab_timeline': 'Cảnh quay',
  'task_hud_subtitle': 'Queue · Worker Status',
  'task_hud_title': 'Task Radar',
  'toggle_options': 'Bật/tắt tùy chọn',
  'tool_call_error_label': 'Thất bại',
  'tool_call_input_label': 'Đầu vào',
  'tool_call_result_label': 'Kết quả',
  'tool_call_skill_content_label': 'Nội dung Skill',
  'tool_call_todo_summary': 'Danh sách việc cần làm hoàn thành {{completed}}/{{total}}',
  'tool_call_todo_updated': 'Danh sách việc cần làm đã cập nhật',
  // 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
  // sẽ kiểm tra các ngôn ngữ đồng bộ, thêm tool backend mà thiếu zh/en/vi sẽ fail CI)
  'tool_name_list_pending_assets': 'Liệt kê tài sản chờ tạo',
  'tool_name_generate_assets': 'Tạo tài sản',
  'tool_name_generate_storyboards': 'Tạo storyboard',
  'tool_name_generate_grid': 'Tạo lưới',
  'tool_name_generate_video_episode': 'Tạo video (toàn tập)',
  'tool_name_generate_video_scene': 'Tạo video (cảnh)',
  'tool_name_generate_video_all': 'Tạo video (tất cả)',
  'tool_name_generate_video_selected': 'Tạo video (đã chọn)',
  'tool_name_generate_episode_script': 'Tạo kịch bản',
  'tool_name_normalize_drama_script': 'Chuẩn hóa kịch bản',
  'tool_name_get_video_capabilities': 'Truy vấn năng lực mô hình video',
  // Skill display names (single source of truth: user-invocable SKILL.md
  // dưới agent_runtime_profile/.claude/skills/; tests/test_frontend_skill_i18n.py kiểm tra đồng bộ)
  'skill_name_manga_workflow': 'Quy trình video',
  'skill_name_generate_storyboard': 'Tạo storyboard',
  'skill_name_generate_grid': 'Tạo lưới',
  'skill_name_generate_video': 'Tạo video',
  'skill_name_generate_assets': 'Tạo tài sản',
  'skill_name_compose_video': 'Ghép video',
  'upload_aborted_project_changed': 'Đã đổi dự án; đã hủy tải lên {{filename}}',
  'workspace_nav_characters': 'Nhân vật',
  'workspace_nav_overview': 'Tổng quan',
  'workspace_nav_props': 'Đạo cụ',
  'workspace_nav_scenes': 'Cảnh',
  'workspace_nav_source': 'Tệp gốc',
  'workspace_notifications_title': 'Thông báo không gian làm việc',
  'agent_credentials': 'Nhà cung cấp Agent',
  'claude_compat_providers': 'Nhà cung cấp Claude',
  'unified_providers_coming_soon': 'Nhà cung cấp thống nhất (sắp ra mắt)',
  'custom_config': 'Tuỳ chỉnh',
  'cred_list_empty': 'Chưa có nhà cung cấp nào. Nhấn "Thêm nhà cung cấp" để bắt đầu.',
  'cred_activate_label': 'Đặt làm mặc định',
  'cred_edit_label': 'Chỉnh sửa',
  'cred_delete_label': 'Xoá',
  'cred_test_label': 'Kiểm tra',
  'cred_testing': 'Đang kiểm tra…',
  'raw_error': 'Lỗi gốc',
  'is_active': 'ĐANG DÙNG',
  'cred_delete_active_blocked': 'Không thể xoá xác thực đang dùng. Hãy chuyển sang xác thực khác trước.',
  'cred_delete_confirm_title': 'Xoá xác thực',
  'cred_delete_confirm': 'Xoá xác thực này? Không thể hoàn tác.',
  'edit_credential_title': 'Chỉnh sửa xác thực',
  'preset_locked_in_edit': 'Không thể đổi nhà cung cấp khi chỉnh sửa',
  'api_key_unchanged_hint': 'Để trống để giữ nguyên',
  'cred_activated_toast': 'Đã chuyển sang {{name}}. Phiên mới sẽ dùng; phiên đang chạy giữ xác thực cũ.',
  'display_name': 'Tên hiển thị',
  'get_api_key': 'Lấy API Key',
  'test_running': 'Đang kiểm tra…',
  'test_ok': 'Kết nối thành công',
  'test_warn': 'Có thể gọi, nhưng endpoint khám phá lỗi',
  'test_fail': 'Không thể kết nối',
  'apply_fix': 'Áp dụng sửa',
  'apply_fix_hint': 'Đề xuất:',
  'derived_messages_root': 'Endpoint messages',
  'derived_discovery_root': 'Endpoint discovery',
  'diagnosis_missing_anthropic_suffix': 'base_url thiếu hậu tố anthropic; đã tự động phát hiện endpoint đúng.',
  'diagnosis_openai_compat_only': 'Endpoint này dùng giao thức tương thích OpenAI — Claude SDK không thể dùng. Kiểm tra Plan.',
  'diagnosis_auth_failed': 'API key không hợp lệ hoặc đã hết hạn.',
  'diagnosis_model_not_found': 'Không tìm thấy model. Hãy khám phá model khả dụng trước.',
  'diagnosis_rate_limited': 'Đã vượt giới hạn tốc độ. Thử lại sau.',
  'diagnosis_network': 'Không thể truy cập mạng. Kiểm tra URL và tường lửa.',
  'diagnosis_unknown': 'Lỗi không xác định. Xem chi tiết bên dưới.',
} satisfies Record<keyof typeof enDashboard, string>;
