{ "common": { "loading": "Loading...", "error": "Error", "success": "Success", "cancel": "Cancel", "confirm": "Confirm", "delete": "Delete", "save": "Save", "edit": "Edit", "search": "Search", "back": "Back", "close": "Close", "play": "Play", "logout": "Logout", "login": "Login" }, "library": { "sort": { "title": "Sort By", "time_desc": "Time (Newest First)", "time_asc": "Time (Oldest First)", "size_desc": "Size (Largest First)", "size_asc": "Size (Smallest First)", "name_asc": "Name (A to Z)", "name_desc": "Name (Z to A)" }, "filter": { "title": "Filter By", "unregistered": "Unregistered", "registered": "Registered", "pending": "Pending", "completed": "Completed", "videos_only": "Videos Only", "photos_only": "Photos Only" }, "size": { "title": "Size", "min_mb": "Min MB", "max_mb": "Max MB" }, "duration": { "title": "Video Duration", "min_minutes": "Min Minutes", "max_minutes": "Max Minutes" }, "status": { "files": "{count} files", "registered": "Registered", "unregistered": "Unregistered", "pending": "Pending", "preparing": "Preparing", "processing": "Processing", "completed": "Completed", "scanning": "Scanning", "ready": "Ready", "keyword_ready": "Keyword Ready", "semantic_ready": "Semantic Ready", "face_mgmt_ready": "Face Mgmt Ready", "agent_ready": "Agent Ready", "paused": "Paused" }, "thumbnail": { "register_to_preview": "Register to see preview" }, "context": { "register_file": "Register File", "process_file": "Process File", "reprocess": "Reprocess", "unregister": "Unregister", "play_video": "Play Video", "processor_selection": "Processor Selection", "overall_progress": "Overall Progress", "missing_file_path": "Missing file path", "file_not_registered": "File not registered", "select_processor": "Please select at least one processor", "file_must_be_completed": "File must be completed first", "face_deduplication": "Face Deduplication", "qc_check": "QC Check", "pause": "⏸ Pause", "resume": "▶ Resume" }, "pipeline": { "processors": "Processors", "rule1_ingestion": "Rule1 Ingestion", "face_tracing": "Face Tracing", "tkg_nodes": "TKG Nodes", "tkg_edges": "TKG Edges", "rule2_ingestion": "Rule2 Ingestion" }, "phase": { "processor_output": "Rule1: Processor Output", "postgresql_ingestion": "Rule1: PostgreSQL Ingestion", "qdrant_ingestion": "Rule1: Qdrant Ingestion" }, "action": { "registering": "Registering...", "registered": "Registered: {name}", "registration_failed": "Registration failed: {message}", "registration_error": "Registration error: {error}", "processing": "Processing...", "processing_started": "Processing started: {name}", "processing_failed": "Processing failed: {message}", "processing_error": "Processing error: {error}", "removing": "Removing...", "removed": "Removed: {name}", "removal_failed": "Removal failed: {message}", "removal_error": "Removal error: {error}", "clear_filters": "Clear Filters" }, "qc": { "audio_info": "Audio Info", "audio_track": "Audio Track", "has_audio": "✓ Has Audio", "no_audio": "✗ No Audio", "speech": "Speech", "has_speech": "✓ Has Speech", "no_speech": "🔇 No Speech", "language": "Language", "sample_rate": "Sample Rate", "uuid_label": "UUID:", "track_processor_output": "Phase 1: Processor Output", "track_ingestion": "Phase 2: Data Ingestion", "track_status_change": "Final: Status Change", "output_ingestion_done": "📥 Output + Ingestion Complete", "items": "{count} items" }, "refresh": "Refresh", "refresh_status": "Refresh Status", "confirm": { "title_register": "📥 Register", "title_process": "🔍 Deep Scan", "title_rescan": "🔄 Re-scan", "message_register": "File will be registered and processed with default settings.", "message_register_no_scan": "Register only, no automatic scan.", "message_process": "Processing will run on the selected processors using default settings.", "message_rescan": "This will unregister → register → deep scan the file using selected processors.", "cancel": "Cancel", "proceed": "Proceed", "rerun_processor": "Re-run {processor} for this file?", "run_processor": "Run {processor} on {filename}?", "unregister_title": "Unregister", "unregister_message": "Unregister \"{filename}\"?\n\nThis will remove the file and its output data.", "batch_unregister_message": "Unregister {count} files?\n\nThis will remove the files and their output data." }, "processor": { "started": "{processor} started", "failed": "Failed: {message}", "error": "Error: {message}", "no_file": "Error: No file selected", "vlm_failed": "Failed to trigger VLM summary: {message}", "pipeline_qc": "Pipeline QC" }, "settings": { "auto_scan": "Auto deep scan after registration" } }, "people": { "toolbar": { "all_files": "All Files", "view_all_people": "View All People", "view_starred_people": "View Starred People", "refresh": "Refresh", "pending_people": "People", "skipped_people": "Skipped People", "pending_faces": "Faces", "face_group": "Face Group" }, "section": { "known_people": "Known People", "pending_people": "People", "skipped_people": "Skipped People", "pending_faces": "Faces", "face_group": "Face Group", "unassigned": "Unassigned" }, "sort": { "title": "Sort By", "recent": "Recently Viewed", "file_name": "File Name", "name_az": "Name (A to Z)", "name_za": "Name (Z to A)", "time_desc": "Time (Newest First)", "time_asc": "Time (Oldest First)" }, "search": { "known_people": "Search known people", "pending_people": "Search pending people", "person_name": "Search person name..." }, "action_history": { "title": "Action History · {name}", "undo_all": "Undo All", "redo_all": "Redo All", "delete_person": "Delete This Person", "no_history": "No action history" }, "expand": { "collapse": "Collapse", "expand": "Expand", "view_faces": "View Faces", "appears_in": "Appears in:", "faces": "{count} faces", "set_as_profile": "Set as Profile", "no_face_data": "No face data" }, "context": { "star_person": "★ Mark as Important", "unstar_person": "☆ Remove Important", "details": "📋 Details", "confirm_person": "✓ Confirm Person", "pending": "Pending", "edit_name": "✎ Edit Name", "merge_person": "⇄ Already Have This Person", "skip_person": "✕ Skip This Person", "undo": "↩ Undo", "redo": "↪ Redo", "delete_person": "🗑 Delete This Person" }, "face_context": { "details": "📋 Details", "assign_existing": "⇄ Assign to Existing Person", "skip_face": "✕ Skip This Face" }, "assign": { "title": "Assign to Existing Person", "search_placeholder": "Search person name...", "no_results": "No matching people found", "confirm_assign": "Confirm Assignment" }, "face_detail": { "title": "Pending Face Details", "file": "File:", "trace_id": "Trace ID:", "frame_number": "Frame Number:", "confidence": "Confidence:", "face_id": "Face ID:", "play_segment": "Play Video Segment", "new_identity": "Create as New Person", "enter_name": "Enter person name...", "add": "Add", "close": "Close" }, "detail": { "back": "Back", "edit": "Edit", "role": "Role", "description": "Description", "enter_name": "Enter name", "enter_alias": "Enter alias and press Enter", "add_alias": "+ Alias", "collapse": "Collapse", "role_name": "Role name", "custom_description": "Custom description", "saving": "Saving...", "save_changes": "✓ Save Changes", "cancel": "Cancel", "add_same_person": "Add same person", "play": "▶ Play", "unbind": "✕ Unbind", "segments": "{count} segments", "traces": "{count} traces", "all_segments": "All segments", "mode_trace": "Trace", "mode_segment": "Segment", "mode_continuous": "Continuous", "status": "Status:", "confirm": "✓ Confirm", "skip": "Skip", "bind_face": "+ Bind Face", "merge_other": "⇄ Merge to Other Person", "delete_person": "Delete This Person", "bind_face_title": "Bind Face", "merge_title": "⇄ Merge to Other Person", "unbind_trace": "Unbind trace T{trace_id} (face_id: {face_id})?", "no_face_id": "This trace has no face_id, cannot unbind", "unbind_failed": "Unbind failed: {error}", "merge_confirm": "Merge \"{source}\" into \"{target}\"?", "not_this_person": "Not This Person", "delete_confirm": "Delete \"{name}\"?", "delete_confirm_message": "Delete \"{name}\"? This action cannot be undone.", "delete_failed": "Delete failed: {error}", "create_identity_failed": "Failed to create person: API did not return identity_uuid", "create_identity_error": "Failed to create person: {error}", "assign_failed": "Assignment failed: {error}" }, "action": { "delete_person": "Delete Person", "update_person": "Update Person", "bind_face": "Bind Face", "unbind_face": "Unbind Face", "bind_trace": "Bind Trace" } }, "agent": { "welcome": { "title": "👋 Welcome to Momentry Studio", "intro": "I'll help you make better use of the system. Let me introduce the main features:", "smart_search": { "title": "Smart Search", "desc": "Keyword, semantic, and people search modes" }, "people_management": { "title": "People Management", "desc": "Identify people in videos, build people database" }, "file_management": { "title": "File Management", "desc": "Manage and process your video and photo files" }, "got_it": "Got it, start using" } }, "login": { "title": "Momentry Studio", "subtitle": "Login to continue", "username": "Username", "password": "Password", "username_placeholder": "Enter username", "password_placeholder": "Enter password", "login_button": "Login", "logging_in": "Logging in...", "login_success": "Login successful!", "default_credentials": "Default credentials: demo / demo123" }, "nav": { "search": "Search", "library": "Library", "people": "People", "admin": "Admin", "client": "Client" }, "time": { "just_now": "Just now", "minutes_ago": "{count} min ago", "hours_ago": "{count} hr ago" }, "video": { "prev": "Previous", "next": "Next", "key_frame": "Key Frame" }, "language": { "en": "English", "zh-TW": "Traditional Chinese", "zh-CN": "Simplified Chinese", "ja": "Japanese", "ko": "Korean", "auto": "Auto Detect" }, "client": { "title": "File Manager", "search": { "placeholder": "Search files..." }, "table": { "name": "Name", "size": "Size", "type": "Type", "modified": "Modified" }, "button": { "upload": "Upload", "newFolder": "New Folder", "refresh": "Refresh", "create": "Create", "cancel": "Cancel", "delete": "Delete", "rename": "Rename", "move": "Move", "preview": "Preview", "download": "Download" }, "dialog": { "createFolder": "Create New Folder", "folderName": "Folder name", "deleteTitle": "Delete \"{name}\"", "deleteMessage": "Are you sure you want to delete this {type}? This action cannot be undone.", "renameTitle": "Rename \"{name}\"", "newName": "New name", "previewTitle": "File Preview: {name}", "uploadTitle": "Upload File{s}", "moveTitle": "Move {type} \"{name}\"", "selectFiles": "Select files" }, "type": { "file": "file", "folder": "folder", "files": "files" }, "status": { "uploading": "Uploading...", "success": "Success", "error": "Error" } }, "admin": { "title": "Admin Panel", "tab": { "dashboard": "Dashboard", "users": "Users", "shares": "Shares", "config": "Config", "settings": "Settings" }, "section": { "systemResources": "System Resources", "validation": "Validation", "configuration": "Admin Configuration", "vlmPrompts": "VLM Prompts", "languagePacks": "Language Packs", "llmConfig": "LLM Configuration", "processorConfig": "Processor Configuration", "filterConfig": "Filter Configuration", "searchConfig": "Search Configuration", "systemConfig": "System Configuration", "uploadPath": "Upload Path", "serviceUrls": "Service URLs" }, "resource": { "cpu": "CPU", "memory": "Memory", "swap": "Swap", "gpu": "GPU", "gpuFreq": "GPU Freq", "systemPower": "System Power" }, "table": { "username": "Username", "homeDir": "Home Dir", "status": "Status", "name": "Name", "port": "Port", "filter": "Filter", "parameters": "Parameters" }, "config": { "systemPrompt": "System Prompt", "prompt": "Prompt", "userPrompt": "User Prompt", "maxTokens": "Max Tokens", "url": "URL", "model": "Model", "availableLanguages": "Available Languages", "importLanguagePack": "Import Language Pack", "tools": "Tools" }, "stat": { "users": "Users", "shares": "Shares" } }, "app": { "productName": "Momentry Studio", "tagline": "Turn Every Moment Into Intelligence" } }