Files
momentry_studio/src/locales/zh-TW.json
Momentry Studio e65d5648b8 feat: 批量 unregister 功能 + 性能优化
功能:
- LibraryView 添加批量 unregister 按钮(勾选多个已注册文件后显示)
- 添加确认对话框,支持批量取消注册
- 添加中英日三语翻译

性能优化:
- search_agents API timeout 提升到 90s(避免前端超时)
- thumbnail 并发数从 32 降到 10(减少服务器压力)

修复:
- PeopleView 添加 group_uuid 字段映射
- LibraryView 排序优化(scanning/preparing 优先)
2026-10-07 23:39:31 +08:00

455 lines
14 KiB
JSON
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
{
"common": {
"loading": "載入中...",
"error": "錯誤",
"success": "成功",
"cancel": "取消",
"confirm": "確認",
"delete": "刪除",
"save": "儲存",
"edit": "編輯",
"search": "搜尋",
"back": "返回",
"close": "關閉",
"play": "播放",
"logout": "登出",
"login": "登入"
},
"library": {
"sort": {
"title": "排序方式",
"time_desc": "依時間・由近到遠",
"time_asc": "依時間・由遠到近",
"size_desc": "依大小・由大到小",
"size_asc": "依大小・由小到大",
"name_asc": "依檔名・由 A 到 Z",
"name_desc": "依檔名・由 Z 到 A"
},
"filter": {
"title": "過濾方式",
"unregistered": "未註冊",
"registered": "已註冊",
"pending": "待處理",
"completed": "已完成",
"videos_only": "僅顯示影片",
"photos_only": "僅顯示照片"
},
"size": {
"title": "大小",
"min_mb": "最小 MB",
"max_mb": "最大 MB"
},
"duration": {
"title": "影片時長",
"min_minutes": "最小分鐘",
"max_minutes": "最大分鐘"
},
"status": {
"files": "{count} 個檔案",
"registered": "已註冊",
"unregistered": "未註冊",
"pending": "等待中",
"preparing": "準備中",
"processing": "處理中",
"completed": "已完成",
"scanning": "掃描中",
"ready": "就緒",
"keyword_ready": "關鍵字可用",
"semantic_ready": "語意可用",
"face_mgmt_ready": "臉部管理可用",
"agent_ready": "Agent 可用"
},
"thumbnail": {
"register_to_preview": "註冊以預覽"
},
"context": {
"register_file": "註冊檔案",
"process_file": "處理檔案",
"reprocess": "重新處理",
"unregister": "取消註冊",
"play_video": "播放影片",
"processor_selection": "處理器選擇",
"overall_progress": "整體進度",
"missing_file_path": "缺少檔案路徑",
"file_not_registered": "檔案未註冊",
"select_processor": "請選擇至少一個處理器",
"file_must_be_completed": "檔案必須先完成處理",
"face_deduplication": "人臉去重",
"qc_check": "品質檢查"
},
"pipeline": {
"processors": "處理器",
"rule1_ingestion": "Rule1 入庫",
"face_tracing": "Face Tracing",
"tkg_nodes": "TKG Nodes",
"tkg_edges": "TKG Edges",
"rule2_ingestion": "Rule2 入庫"
},
"phase": {
"processor_output": "Rule1: 處理器輸出",
"postgresql_ingestion": "Rule1: PostgreSQL 入庫",
"qdrant_ingestion": "Rule1: Qdrant 入庫"
},
"action": {
"registering": "註冊中...",
"registered": "註冊成功:{name}",
"registration_failed": "註冊失敗:{message}",
"registration_error": "註冊錯誤:{error}",
"processing": "處理中...",
"processing_started": "處理已觸發:{name}",
"processing_failed": "處理失敗:{message}",
"processing_error": "處理錯誤:{error}",
"removing": "移除中...",
"removed": "移除成功:{name}",
"removal_failed": "移除失敗:{message}",
"removal_error": "移除錯誤:{error}",
"clear_filters": "清除篩選"
},
"qc": {
"audio_info": "音軌資訊",
"audio_track": "音軌",
"has_audio": "✓ 有音軌",
"no_audio": "✗ 無音軌",
"speech": "語音",
"has_speech": "✓ 有語音",
"no_speech": "🔇 無語音",
"language": "語言",
"sample_rate": "取樣率",
"uuid_label": "UUID:",
"track_processor_output": "路徑一:處理器輸出",
"track_ingestion": "路徑二:資料入庫",
"track_status_change": "終點:狀態改變",
"output_ingestion_done": "📥 輸出 + 入庫 完成",
"items": "{count} 筆"
},
"refresh": "重新整理",
"refresh_status": "重新整理狀態",
"confirm": {
"title_register": "📥 註冊",
"title_process": "🔍 深度掃描",
"title_rescan": "🔄 重新掃描",
"message_register": "檔案將以預設設定註冊並處理。",
"message_register_no_scan": "僅註冊,不自動掃描。",
"message_process": "將使用預設設定對選定的處理器執行處理。",
"message_rescan": "將執行取消註冊 → 註冊 → 深度掃描(使用選擇的處理器)。",
"cancel": "取消",
"proceed": "開始",
"rerun_processor": "重新執行 {processor}?",
"run_processor": "在 {filename} 上執行 {processor}?",
"unregister_title": "取消註冊",
"unregister_message": "取消註冊「{filename}」?\n\n這將移除檔案及其輸出資料。",
"batch_unregister_message": "取消註冊 {count} 個檔案?\n\n這將移除檔案及其輸出資料。"
},
"processor": {
"started": "{processor} 已開始",
"failed": "失敗:{message}",
"error": "錯誤:{message}",
"no_file": "錯誤:未選擇檔案",
"vlm_failed": "無法觸發 VLM 摘要:{message}",
"pipeline_qc": "管道品質檢查"
},
"settings": {
"auto_scan": "註冊後自動深度掃描"
}
},
"people": {
"toolbar": {
"all_files": "全部檔案",
"view_all_people": "查看所有人物",
"view_starred_people": "查看重要人物",
"refresh": "重新整理",
"pending_people": "人物",
"skipped_people": "已略過",
"pending_faces": "人臉",
"face_group": "人臉群組"
},
"section": {
"known_people": "已知人物",
"pending_people": "人物",
"skipped_people": "已略過",
"pending_faces": "人臉",
"face_group": "人臉群組",
"unassigned": "未分組"
},
"sort": {
"title": "排序方式",
"recent": "最近瀏覽",
"file_name": "依檔案名稱",
"name_az": "依檔名・由 A 到 Z",
"name_za": "依檔名・由 Z 到 A",
"time_desc": "依時間・由近到遠",
"time_asc": "依時間・由遠到近"
},
"search": {
"known_people": "搜尋已知人物",
"pending_people": "搜尋待定人物",
"person_name": "搜尋人物名稱..."
},
"action_history": {
"title": "操作記錄 · {name}",
"undo_all": "全部復原",
"redo_all": "全部重做",
"delete_person": "刪除此人物",
"no_history": "尚無操作記錄"
},
"expand": {
"collapse": "收起",
"expand": "展開",
"view_faces": "查看面孔",
"appears_in": "出現檔案:",
"faces": "{count} 面孔",
"set_as_profile": "設為大頭貼",
"no_face_data": "無面孔資料"
},
"context": {
"star_person": "★ 標為重要人物",
"unstar_person": "☆ 取消重要人物",
"details": "📋 詳情",
"confirm_person": "✓ 確認人物",
"pending": "待定",
"edit_name": "✎ 編輯名稱",
"merge_person": "⇄ 已有此人物",
"skip_person": "✕ 略過此人物",
"undo": "↩ 復原",
"redo": "↪ 重做",
"delete_person": "🗑 刪除此人物"
},
"face_context": {
"details": "📋 詳情",
"assign_existing": "⇄ 指派給現有人物",
"skip_face": "✕ 略過此人臉"
},
"assign": {
"title": "指派給現有人物",
"search_placeholder": "搜尋人物名稱...",
"no_results": "沒有找到符合的人物",
"confirm_assign": "確認指派"
},
"face_detail": {
"title": "待定人臉詳情",
"file": "檔案:",
"trace_id": "Trace ID:",
"frame_number": "帧號:",
"confidence": "置信度:",
"face_id": "Face ID:",
"play_segment": "播放影片片段",
"new_identity": "新增為新人物",
"enter_name": "輸入人物名稱...",
"add": "新增",
"close": "關閉"
},
"detail": {
"back": "返回",
"edit": "編輯",
"role": "角色",
"description": "描述",
"enter_name": "加入人名",
"enter_alias": "輸入別名後按 Enter",
"add_alias": "+ 別名",
"collapse": "收起",
"role_name": "角色名稱",
"custom_description": "自訂描述",
"saving": "儲存中...",
"save_changes": "✓ 儲存更改",
"cancel": "取消",
"add_same_person": "加入相同人物",
"play": "▶ 播放",
"unbind": "✕ 解綁",
"segments": "{count} 個片段",
"traces": "{count} 個追蹤",
"all_segments": "所有片段",
"mode_trace": "追蹤",
"mode_segment": "片段",
"mode_continuous": "連續",
"status": "狀態:",
"confirm": "✓ 確認",
"skip": "略過",
"bind_face": "+ 綁定人臉",
"merge_other": "⇄ 合併到其他人物",
"delete_person": "刪除此人物",
"bind_face_title": "Bind Face",
"merge_title": "⇄ 合併到其他人物",
"unbind_trace": "解綁 trace T{trace_id}(face_id: {face_id})?",
"no_face_id": "此 trace 沒有 face_id,無法解綁",
"unbind_failed": "解綁失敗:{error}",
"merge_confirm": "合併「{source}」到「{target}」?",
"not_this_person": "不是此人物",
"delete_confirm": "刪除「{name}」?",
"delete_confirm_message": "刪除「{name}」?此操作無法復原。",
"delete_failed": "刪除失敗:{error}",
"create_identity_failed": "新增人物失敗:API 未返回 identity_uuid",
"create_identity_error": "新增人物失敗:{error}",
"assign_failed": "指派失敗:{error}"
},
"action": {
"delete_person": "刪除人物",
"update_person": "更新人物",
"bind_face": "綁定面部",
"unbind_face": "解綁面部",
"bind_trace": "綁定軌跡"
}
},
"agent": {
"welcome": {
"title": "👋 歡迎使用 Momentry Studio",
"intro": "我會幫助你更好地使用系統。讓我介紹一下主要功能:",
"smart_search": {
"title": "智能搜索",
"desc": "關鍵詞、語義、人物三種搜索模式"
},
"people_management": {
"title": "人物管理",
"desc": "識別視頻中的人物,建立人物庫"
},
"file_management": {
"title": "文件管理",
"desc": "管理和處理你的視頻、照片文件"
},
"got_it": "知道了,開始使用"
}
},
"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": "剛剛",
"minutes_ago": "{count} 分鐘前",
"hours_ago": "{count} 小時前"
},
"video": {
"prev": "上一個",
"next": "下一個",
"key_frame": "定位關鍵影格"
},
"language": {
"en": "English",
"zh-TW": "繁體中文",
"zh-CN": "简体中文",
"ja": "日本語",
"ko": "한국어",
"auto": "自動偵測"
},
"client": {
"title": "檔案管理器",
"search": {
"placeholder": "搜尋檔案..."
},
"table": {
"name": "名稱",
"size": "大小",
"type": "類型",
"modified": "修改時間"
},
"button": {
"upload": "上傳",
"newFolder": "新建資料夾",
"refresh": "刷新",
"create": "創建",
"cancel": "取消",
"delete": "刪除",
"rename": "重命名",
"move": "移動",
"preview": "預覽",
"download": "下載"
},
"dialog": {
"createFolder": "創建新資料夾",
"folderName": "資料夾名稱",
"deleteTitle": "刪除「{name}」",
"deleteMessage": "確定要刪除此{type}嗎?此操作無法撤銷。",
"renameTitle": "重命名「{name}」",
"newName": "新名稱",
"previewTitle": "檔案預覽:{name}",
"uploadTitle": "上傳檔案{s}",
"moveTitle": "移動{type}「{name}」",
"selectFiles": "選擇檔案"
},
"type": {
"file": "檔案",
"folder": "資料夾",
"files": "個檔案"
},
"status": {
"uploading": "上傳中...",
"success": "成功",
"error": "錯誤"
}
},
"admin": {
"title": "管理面板",
"tab": {
"dashboard": "儀表板",
"users": "用戶",
"shares": "共享",
"config": "配置",
"settings": "設定"
},
"section": {
"systemResources": "系統資源",
"validation": "驗證",
"configuration": "管理配置",
"vlmPrompts": "VLM 提示詞",
"languagePacks": "語言包",
"llmConfig": "LLM 配置",
"processorConfig": "處理器配置",
"filterConfig": "過濾器配置",
"searchConfig": "搜索配置",
"systemConfig": "系統配置",
"uploadPath": "上傳路徑",
"serviceUrls": "服務 URL"
},
"resource": {
"cpu": "CPU",
"memory": "記憶體",
"swap": "交換空間",
"gpu": "GPU",
"gpuFreq": "GPU 頻率",
"systemPower": "系統功耗"
},
"table": {
"username": "用戶名",
"homeDir": "主目錄",
"status": "狀態",
"name": "名稱",
"port": "端口",
"filter": "過濾器",
"parameters": "參數"
},
"config": {
"systemPrompt": "系統提示詞",
"prompt": "提示詞",
"userPrompt": "用戶提示詞",
"maxTokens": "最大 Token 數",
"url": "URL",
"model": "模型",
"availableLanguages": "可用語言",
"importLanguagePack": "導入語言包",
"tools": "工具"
},
"stat": {
"users": "用戶",
"shares": "共享"
}
},
"app": {
"productName": "Momentry Studio",
"tagline": "Turn Every Moment Into Intelligence"
}
}