469 lines
27 KiB
YAML
469 lines
27 KiB
YAML
# ===========================================
|
||
# 錯誤訊息 - mcp-proxy
|
||
# ===========================================
|
||
errors.mcp_proxy.service_not_found: "服務 %{service} 未找到"
|
||
errors.mcp_proxy.service_restart_cooldown: "服務 %{service} 在重啟冷卻期內,請稍後再試"
|
||
errors.mcp_proxy.service_startup_in_progress: "服務 %{service} 正在啟動中,請稍後再試"
|
||
errors.mcp_proxy.service_startup_failed: "服務啟動失敗: %{mcp_id}: %{reason}"
|
||
errors.mcp_proxy.backend_connection: "後端連線錯誤: %{detail}"
|
||
errors.mcp_proxy.config_parse: "設定解析錯誤: %{detail}"
|
||
errors.mcp_proxy.mcp_server_error: "MCP 伺服器錯誤: %{detail}"
|
||
errors.mcp_proxy.json_serialization: "JSON 序列化錯誤: %{detail}"
|
||
errors.mcp_proxy.io_error: "IO 錯誤: %{detail}"
|
||
errors.mcp_proxy.route_not_found: "路由未找到: %{path}"
|
||
errors.mcp_proxy.invalid_parameter: "無效的請求參數: %{detail}"
|
||
# ===========================================
|
||
# 錯誤訊息 - document-parser
|
||
# ===========================================
|
||
errors.document_parser.config: "設定錯誤: %{detail}"
|
||
errors.document_parser.file: "檔案操作錯誤: %{detail}"
|
||
errors.document_parser.unsupported_format: "不支援的檔案格式: %{format}"
|
||
errors.document_parser.parse: "解析錯誤: %{detail}"
|
||
errors.document_parser.mineru: "MinerU錯誤: %{detail}"
|
||
errors.document_parser.markitdown: "MarkItDown錯誤: %{detail}"
|
||
errors.document_parser.oss: "OSS操作錯誤: %{detail}"
|
||
errors.document_parser.database: "資料庫錯誤: %{detail}"
|
||
errors.document_parser.network: "網路錯誤: %{detail}"
|
||
errors.document_parser.task: "任務錯誤: %{detail}"
|
||
errors.document_parser.internal: "內部錯誤: %{detail}"
|
||
errors.document_parser.timeout: "操作逾時: %{detail}"
|
||
errors.document_parser.validation: "驗證錯誤: %{detail}"
|
||
errors.document_parser.environment: "環境錯誤: %{detail}"
|
||
errors.document_parser.virtual_environment_path: "虛擬環境路徑錯誤: %{detail}"
|
||
errors.document_parser.permission: "權限錯誤: %{detail}"
|
||
errors.document_parser.path: "路徑錯誤: %{detail}"
|
||
errors.document_parser.queue: "佇列錯誤: %{detail}"
|
||
errors.document_parser.processing: "處理錯誤: %{detail}"
|
||
# 錯誤建議 - document-parser
|
||
errors.document_parser.suggestions.config: "檢查設定檔案和環境變數"
|
||
errors.document_parser.suggestions.file: "檢查檔案路徑和權限"
|
||
errors.document_parser.suggestions.unsupported_format: "檢查檔案格式是否支援"
|
||
errors.document_parser.suggestions.parse: "檢查檔案內容是否完整"
|
||
errors.document_parser.suggestions.mineru: "檢查MinerU環境設定"
|
||
errors.document_parser.suggestions.markitdown: "檢查MarkItDown環境設定"
|
||
errors.document_parser.suggestions.oss: "檢查OSS設定和網路連線"
|
||
errors.document_parser.suggestions.database: "檢查資料庫連線和權限"
|
||
errors.document_parser.suggestions.network: "檢查網路連線和防火牆設定"
|
||
errors.document_parser.suggestions.task: "檢查任務參數和狀態"
|
||
errors.document_parser.suggestions.internal: "聯絡技術支援"
|
||
errors.document_parser.suggestions.timeout: "檢查網路延遲或增加逾時時間"
|
||
errors.document_parser.suggestions.validation: "檢查輸入參數格式"
|
||
errors.document_parser.suggestions.environment: "檢查系統環境和相依套件安裝"
|
||
errors.document_parser.suggestions.queue: "檢查佇列服務狀態和設定"
|
||
errors.document_parser.suggestions.processing: "檢查處理流程和資料格式"
|
||
errors.document_parser.suggestions.virtual_environment_path: "檢查虛擬環境路徑和目錄權限"
|
||
errors.document_parser.suggestions.permission: "檢查檔案和目錄權限設定"
|
||
errors.document_parser.suggestions.path: "檢查路徑是否存在且可存取"
|
||
# ===========================================
|
||
# 錯誤訊息 - oss-client
|
||
# ===========================================
|
||
errors.oss.config: "設定錯誤: %{detail}"
|
||
errors.oss.network: "網路錯誤: %{detail}"
|
||
errors.oss.file_not_found: "檔案不存在: %{path}"
|
||
errors.oss.permission: "權限不足: %{detail}"
|
||
errors.oss.io: "IO錯誤: %{detail}"
|
||
errors.oss.sdk: "OSS SDK錯誤: %{detail}"
|
||
errors.oss.file_size_exceeded: "檔案大小超出限制: %{detail}"
|
||
errors.oss.unsupported_file_type: "不支援的檔案類型: %{detail}"
|
||
errors.oss.timeout: "操作逾時: %{detail}"
|
||
errors.oss.invalid_parameter: "無效的參數: %{detail}"
|
||
# ===========================================
|
||
# 錯誤訊息 - voice-cli
|
||
# ===========================================
|
||
errors.voice.config: "設定錯誤: %{detail}"
|
||
errors.voice.audio_processing: "音訊處理錯誤: %{detail}"
|
||
errors.voice.transcription: "轉錄錯誤: %{detail}"
|
||
errors.voice.model: "模型錯誤: %{detail}"
|
||
errors.voice.file_io: "檔案I/O錯誤: %{detail}"
|
||
errors.voice.http: "HTTP請求錯誤: %{detail}"
|
||
errors.voice.serialization: "序列化錯誤: %{detail}"
|
||
errors.voice.json: "JSON錯誤: %{detail}"
|
||
errors.voice.config_rs: "設定讀取錯誤: %{detail}"
|
||
errors.voice.daemon: "常駐程式錯誤: %{detail}"
|
||
errors.voice.unsupported_format: "不支援的音訊格式: %{detail}"
|
||
errors.voice.file_too_large: "檔案過大: %{size} 位元組 (最大: %{max} 位元組)"
|
||
errors.voice.model_not_found: "模型未找到: %{model}"
|
||
errors.voice.invalid_model_name: "無效的模型名稱: %{model}"
|
||
errors.voice.worker_pool: "工作池錯誤: %{detail}"
|
||
errors.voice.transcription_timeout: "轉錄逾時 (%{seconds} 秒後)"
|
||
errors.voice.transcription_failed: "轉錄失敗: %{detail}"
|
||
errors.voice.audio_conversion_failed: "音訊轉換失敗: %{detail}"
|
||
errors.voice.audio_probe_error: "音訊探測錯誤: %{detail}"
|
||
errors.voice.temp_file_error: "暫存檔錯誤: %{detail}"
|
||
errors.voice.multipart_error: "Multipart表單錯誤: %{detail}"
|
||
errors.voice.missing_field: "缺少必填欄位: %{field}"
|
||
errors.voice.network: "網路錯誤: %{detail}"
|
||
errors.voice.storage: "儲存錯誤: %{detail}"
|
||
errors.voice.task_management_disabled: "任務管理已停用"
|
||
errors.voice.not_found: "資源未找到: %{resource}"
|
||
errors.voice.initialization: "初始化錯誤: %{detail}"
|
||
errors.voice.tts: "TTS錯誤: %{detail}"
|
||
errors.voice.invalid_input: "無效輸入: %{detail}"
|
||
errors.voice.io: "IO錯誤: %{detail}"
|
||
# ===========================================
|
||
# CLI 訊息 - mcp-proxy 啟動
|
||
# ===========================================
|
||
cli.mirror.not_configured: "未配置鏡像源(npm/PyPI),將使用預設來源"
|
||
cli.mirror.npm: "npm 鏡像: %{url}"
|
||
cli.mirror.pypi: "PyPI 鏡像: %{url}"
|
||
cli.startup.service_starting: "MCP-Proxy 啟動中..."
|
||
cli.startup.version: "版本: %{version}"
|
||
cli.startup.config_loaded: "設定載入完成"
|
||
cli.startup.port: "連接埠: %{port}"
|
||
cli.startup.log_dir: "日誌目錄: %{path}"
|
||
cli.startup.log_level: "日誌級別: %{level}"
|
||
cli.startup.log_retain_days: "日誌保留天數: %{days}"
|
||
cli.startup.success: "✅ 服務啟動成功,監聽位址: %{addr}"
|
||
cli.startup.health_endpoint: "✅ 健康檢查端點: http://%{addr}/health"
|
||
cli.startup.mcp_list: "✅ MCP 服務列表: http://%{addr}/mcp"
|
||
cli.startup.schedule_task_started: "✅ MCP服務狀態檢查定時任務已啟動"
|
||
cli.startup.log_rotation_configured: "✅ 日誌自動輪轉已設定(保留最近 %{count} 個日誌檔案)"
|
||
cli.startup.system_info: "系統資訊:"
|
||
cli.startup.os: "作業系統: %{os}"
|
||
cli.startup.arch: "架構: %{arch}"
|
||
cli.startup.work_dir: "工作目錄: %{path}"
|
||
cli.startup.env_override: "環境變數覆蓋:"
|
||
cli.startup.env_port_override: "MCP_PROXY_PORT: %{port}"
|
||
cli.startup.env_log_dir_override: "MCP_PROXY_LOG_DIR: %{dir}"
|
||
cli.startup.env_log_level_override: "MCP_PROXY_LOG_LEVEL: %{level}"
|
||
cli.startup.trying_bind: "嘗試綁定到位址: %{addr}"
|
||
cli.startup.bind_success: "成功綁定到位址: %{addr}"
|
||
cli.startup.bind_failed: "綁定位址 %{addr} 失敗: %{error}"
|
||
cli.startup.init_state: "初始化應用狀態..."
|
||
cli.startup.state_done: "應用狀態初始化完成"
|
||
cli.startup.init_router: "初始化路由..."
|
||
cli.startup.router_done: "路由初始化完成"
|
||
cli.startup.warming_up: "\U0001F504 開始預熱 uv/deno 環境相依套件..."
|
||
cli.startup.warmup_success: "✅ 預熱 uv/deno 環境相依套件完成"
|
||
cli.startup.warmup_failed: "❌ 預熱 uv/deno 環境相依套件失敗: %{error}"
|
||
cli.startup.http_server_starting: "\U0001F680 HTTP 伺服器啟動,等待連線..."
|
||
cli.startup.proxy_mode: "命令: proxy (HTTP 伺服器模式)"
|
||
cli.startup.config_info: "設定資訊:"
|
||
cli.startup.listen_port: "監聽連接埠: %{port}"
|
||
cli.startup.log_retention: "日誌保留: %{days} 天"
|
||
# CLI 訊息 - mcp-proxy 關閉
|
||
cli.shutdown.signal_received: "⚠️ 伺服器收到關閉訊號,開始清理資源..."
|
||
cli.shutdown.cleanup_success: "✅ 資源清理成功"
|
||
cli.shutdown.cleanup_failed: "❌ 清理資源時出錯: %{error}"
|
||
cli.shutdown.complete: "✅ 資源清理完成,服務已完全關閉"
|
||
cli.shutdown.service_error: "❌ 服務執行錯誤: %{error}"
|
||
# CLI 訊息 - panic 處理
|
||
cli.panic.handler_started: "程式發生panic,執行清理..."
|
||
cli.panic.reason: "Panic 原因: %{reason}"
|
||
cli.panic.reason_unknown: "Panic 原因: 未知"
|
||
cli.panic.location: "Panic 位置: %{file}:%{line}"
|
||
cli.panic.stack_trace: "堆疊追蹤:"
|
||
# ===========================================
|
||
# CLI 訊息 - convert 模式
|
||
# ===========================================
|
||
cli.convert.starting: "開始 URL 模式處理"
|
||
cli.convert.target_url: "目標 URL: %{url}"
|
||
cli.convert.protocol_specified: "使用命令列指定協定: %{protocol}"
|
||
cli.convert.protocol_config: "使用設定檔協定: %{protocol}"
|
||
cli.convert.detecting_protocol: "開始自動偵測協定..."
|
||
cli.convert.detect_failed: "協定偵測失敗: %{error}"
|
||
cli.convert.using_protocol: "使用 %{protocol} 協定模式"
|
||
cli.convert.stdio_url_not_supported: "Stdio 協定不支援透過 URL 轉換"
|
||
cli.convert.tool_whitelist: "工具白名單: %{tools}"
|
||
cli.convert.tool_blacklist: "工具黑名單: %{tools}"
|
||
cli.convert.config_parsed: "設定解析成功"
|
||
cli.convert.service_name: "MCP 服務名稱: %{name}"
|
||
cli.convert.service_name_not_specified: "MCP 服務名稱: 未指定(使用 direct URL)"
|
||
cli.convert.cli_starting: "MCP-Proxy CLI 啟動"
|
||
cli.convert.command: "命令: convert (stdio 橋接模式)"
|
||
cli.convert.version: "版本: %{version}"
|
||
cli.convert.diagnostic_mode: "診斷模式: %{enabled}"
|
||
cli.convert.mode_direct_url: "模式: 直接 URL 模式"
|
||
cli.convert.mode_remote_service: "模式: 遠端服務設定模式"
|
||
cli.convert.service_url: "服務 URL: %{url}"
|
||
cli.convert.config_protocol: "設定協定: %{protocol}"
|
||
cli.convert.ping_config: "Ping 間隔: %{interval}s, Ping 逾時: %{timeout}s"
|
||
cli.convert.connecting_backend: "開始連線到後端服務 (逾時: %{timeout}s)..."
|
||
cli.convert.detect_complete: "協定偵測完成: %{protocol} (耗時: %{duration})"
|
||
# ===========================================
|
||
# CLI 訊息 - SSE 模式
|
||
# ===========================================
|
||
cli.sse.mode_starting: "SSE 模式啟動"
|
||
cli.sse.connect_timeout: "連線後端逾時 (%{seconds}s)"
|
||
cli.sse.connect_failed: "連線後端失敗: %{error}"
|
||
cli.sse.connect_success: "後端連線成功 (耗時: %{duration})"
|
||
cli.sse.stdio_starting: "啟動 stdio server..."
|
||
cli.sse.stdio_started: "stdio server 已啟動"
|
||
cli.sse.waiting_events: "開始等待 stdio server 事件..."
|
||
cli.sse.stdio_exit_eof: "stdio server 結束 - 原因: MCP 客戶端斷開連線 (stdin EOF)"
|
||
cli.sse.watchdog_exit: "Watchdog 任務結束"
|
||
cli.sse.normal_exit: "mcp-proxy convert (SSE 模式) 正常結束"
|
||
cli.sse.watchdog_starting: "SSE Watchdog 啟動"
|
||
cli.sse.max_retries: "最大重試次數: %{count} (0=無限)"
|
||
cli.sse.monitoring_connection: "開始監控初始連線..."
|
||
cli.sse.initial_disconnect: "初始連線斷開: %{reason}"
|
||
cli.sse.connection_alive: "初始連線存活時長: %{seconds}s"
|
||
cli.sse.reconnect_attempt: "重連嘗試 #%{attempt}/%{max}"
|
||
cli.sse.backoff_time: "退避時間: %{seconds}s"
|
||
cli.sse.reconnect_success: "重連成功 (耗時: %{duration})"
|
||
cli.sse.monitoring_reconnect: "開始監控重連後的連線..."
|
||
cli.sse.reconnect_disconnect: "重連後斷開: %{reason}"
|
||
cli.sse.reconnect_alive: "重連後存活時長: %{seconds}s"
|
||
cli.sse.max_retries_reached: "達到最大重試次數 (%{count}), 停止重連"
|
||
cli.sse.watchdog_exit_msg: "SSE Watchdog 結束"
|
||
# ===========================================
|
||
# CLI 訊息 - Stream 模式
|
||
# ===========================================
|
||
cli.stream.mode_starting: "Stream 模式啟動"
|
||
cli.stream.connect_timeout: "連線後端逾時 (%{seconds}s)"
|
||
cli.stream.connect_failed: "連線後端失敗: %{error}"
|
||
cli.stream.connect_success: "後端連線成功 (耗時: %{duration})"
|
||
cli.stream.stdio_starting: "啟動 stdio server..."
|
||
cli.stream.stdio_started: "stdio server 已啟動"
|
||
cli.stream.waiting_events: "開始等待 stdio server 事件..."
|
||
cli.stream.stdio_exit_eof: "stdio server 結束 - 原因: MCP 客戶端斷開連線 (stdin EOF)"
|
||
cli.stream.watchdog_exit: "Watchdog 任務結束"
|
||
cli.stream.normal_exit: "mcp-proxy convert (Stream 模式) 正常結束"
|
||
# ===========================================
|
||
# CLI 訊息 - Command 模式
|
||
# ===========================================
|
||
cli.command.local_mode: "模式: 本地命令模式"
|
||
cli.command.command: "命令: %{cmd} %{args}"
|
||
cli.command.ctrl_c: "收到 Ctrl+C 訊號,正在關閉..."
|
||
# ===========================================
|
||
# CLI 訊息 - 監控
|
||
# ===========================================
|
||
cli.monitoring.health: "開始監控 %{protocol} 連線健康狀態"
|
||
cli.monitoring.health_check_status: "\U0001F493 [%{protocol}][健康檢查] 連線狀態: %{status} (僅檢查連線通道, 未呼叫 list_tools), 檢查 #%{count}, 已存活: %{seconds}s"
|
||
cli.monitoring.health_check_normal: "\U0001F493 [%{protocol}][健康檢查] 後端服務正常 (list_tools 驗證通過), Ping #%{count}, 已存活: %{seconds}s"
|
||
# ===========================================
|
||
# 診斷訊息
|
||
# ===========================================
|
||
diagnostic.report_header: "========== 診斷報告 =========="
|
||
diagnostic.connection_protocol: "連線協定: %{protocol}"
|
||
diagnostic.service_url: "服務 URL: %{url}"
|
||
diagnostic.connection_duration: "連線存活時長: %{seconds} 秒"
|
||
diagnostic.disconnect_reason: "斷開原因: %{reason}"
|
||
diagnostic.error_type: "錯誤類型: %{error_type}"
|
||
diagnostic.possible_causes: "可能原因分析:"
|
||
diagnostic.suggestions: "建議:"
|
||
# 診斷 - 30秒逾時分析
|
||
diagnostic.analysis.timeout_30s: "⚠️ 連線在約 30 秒時斷開,極有可能是:"
|
||
diagnostic.analysis.timeout_30s_cause1: "伺服器端設定了 30 秒逾時限制"
|
||
diagnostic.analysis.timeout_30s_cause2: "負載平衡器(如 Nginx/ALB)的預設逾時"
|
||
diagnostic.analysis.timeout_30s_cause3: "雲端服務商的閘道逾時限制"
|
||
# 診斷 - 快速斷開分析
|
||
diagnostic.analysis.quick_disconnect: "⚠️ 連線很快斷開(%{seconds}秒),可能是:"
|
||
diagnostic.analysis.quick_disconnect_cause1: "認證失敗或 token 無效"
|
||
diagnostic.analysis.quick_disconnect_cause2: "伺服器拒絕連線"
|
||
diagnostic.analysis.quick_disconnect_cause3: "網路不穩定"
|
||
# 診斷 - 長時間連線分析
|
||
diagnostic.analysis.long_connection: "✅ 連線保持了較長時間(%{seconds}秒),可能是:"
|
||
diagnostic.analysis.long_connection_cause1: "工具呼叫執行時間過長"
|
||
diagnostic.analysis.long_connection_cause2: "網路波動導致斷開"
|
||
# 診斷建議
|
||
diagnostic.suggestion.timeout_30s: "聯絡服務提供商增加逾時限制"
|
||
diagnostic.suggestion.timeout_client: "使用 --request-timeout 參數設定客戶端逾時"
|
||
diagnostic.suggestion.async_mode: "考慮使用非同步處理模式(webhook 回呼)"
|
||
diagnostic.suggestion.ping_interval: "嘗試增加 ping 間隔: --ping-interval %{seconds}"
|
||
diagnostic.suggestion.ping_timeout: "增加 ping 逾時時間: --ping-timeout %{seconds}"
|
||
diagnostic.suggestion.ping_disable: "或停用 ping: --ping-interval 0"
|
||
# ===========================================
|
||
# 錯誤分類
|
||
# ===========================================
|
||
error_classify.timeout_30s: "30秒逾時(可能是伺服器限制)"
|
||
error_classify.service_unavailable_503: "服務不可用(503)"
|
||
error_classify.internal_server_error_500: "伺服器內部錯誤(500)"
|
||
error_classify.bad_gateway_502: "閘道錯誤(502)"
|
||
error_classify.gateway_timeout_504: "閘道逾時(504)"
|
||
error_classify.unauthorized_401: "未授權(401)"
|
||
error_classify.forbidden_403: "禁止存取(403)"
|
||
error_classify.not_found_404: "資源未找到(404)"
|
||
error_classify.request_timeout_408: "請求逾時(408)"
|
||
error_classify.timeout: "逾時"
|
||
error_classify.connection_refused: "連線被拒絕"
|
||
error_classify.connection_reset: "連線被重設"
|
||
error_classify.connection_closed: "連線關閉"
|
||
error_classify.dns_failed: "DNS解析失敗"
|
||
error_classify.ssl_tls_error: "SSL/TLS錯誤"
|
||
error_classify.network_error: "網路錯誤"
|
||
error_classify.session_error: "工作階段錯誤"
|
||
error_classify.unknown_error: "未知錯誤"
|
||
# ===========================================
|
||
# CLI 訊息 - health 命令
|
||
# ===========================================
|
||
cli.health.checking: "\U0001F50D 健康檢查服務: %{url}"
|
||
cli.health.using_protocol: "\U0001F50D 使用指定協定: %{protocol}"
|
||
cli.health.detecting_protocol: "\U0001F50D 正在偵測協定..."
|
||
cli.health.detected_protocol: "\U0001F50D 偵測到 %{protocol} 協定"
|
||
cli.health.healthy: "✅ 服務健康"
|
||
cli.health.unhealthy: "❌ 服務不健康"
|
||
cli.health.stdio_not_supported: "health 命令不支援 stdio 協定"
|
||
# ===========================================
|
||
# CLI 訊息 - check 命令
|
||
# ===========================================
|
||
cli.check.checking: "\U0001F50D 檢查服務: %{url}"
|
||
cli.check.healthy: "✅ 服務正常,偵測到 %{protocol} 協定"
|
||
cli.check.failed: "❌ 服務檢查失敗: %{error}"
|
||
# ===========================================
|
||
# CLI 訊息 - document-parser
|
||
# ===========================================
|
||
doc_parser.startup.app_info: "=== %{name} v%{version} 啟動 ==="
|
||
doc_parser.startup.config_summary: "設定摘要: %{summary}"
|
||
doc_parser.startup.listening: "服務監聽位址: %{host}:%{port}"
|
||
doc_parser.startup.checking_python: "開始檢查和初始化Python環境..."
|
||
doc_parser.startup.checking_venv: "檢查並啟用虛擬環境..."
|
||
doc_parser.startup.venv_activate_failed: "虛擬環境自動啟用失敗: %{error}"
|
||
doc_parser.startup.venv_activate_manual: "請手動啟用虛擬環境: source ./venv/bin/activate"
|
||
doc_parser.startup.venv_activated: "虛擬環境已自動啟用"
|
||
doc_parser.startup.env_check_failed: "環境檢查失敗,將在背景自動安裝: %{error}"
|
||
doc_parser.startup.mineru_not_installed: "MinerU相依套件未安裝,開始背景自動安裝..."
|
||
doc_parser.startup.markitdown_not_installed: "MarkItDown相依套件未安裝,開始背景自動安裝..."
|
||
doc_parser.startup.install_complete: "背景Python環境安裝完成"
|
||
doc_parser.startup.install_failed: "背景Python環境安裝失敗: %{error}"
|
||
doc_parser.startup.install_task_started: "Python相依套件安裝任務已啟動(背景進行),服務將正常啟動"
|
||
doc_parser.startup.mineru_ready: "MinerU相依套件已安裝,版本: %{version}"
|
||
doc_parser.startup.markitdown_ready: "MarkItDown相依套件已安裝"
|
||
doc_parser.startup.python_ready: "Python環境檢查完成,所有相依套件已就緒"
|
||
doc_parser.startup.state_failed: "無法建立應用狀態: %{error}"
|
||
doc_parser.startup.health_check_failed: "應用健康檢查失敗: %{error}"
|
||
doc_parser.startup.state_ready: "應用狀態初始化成功"
|
||
doc_parser.startup.http_routes_ready: "HTTP路由初始化成功"
|
||
doc_parser.startup.background_tasks_started: "背景任務已啟動"
|
||
doc_parser.startup.service_ready: "服務啟動成功,開始監聽連線..."
|
||
doc_parser.shutdown.service_stopped: "服務已關閉"
|
||
doc_parser.shutdown.ctrl_c_received: "收到 Ctrl+C 訊號,開始優雅關閉..."
|
||
doc_parser.shutdown.terminate_received: "收到 terminate 訊號,開始優雅關閉..."
|
||
doc_parser.shutdown.closing: "正在關閉服務..."
|
||
# uv-init 命令
|
||
doc_parser.uv_init.starting: "\U0001F680 開始在目前目錄初始化uv虛擬環境和相依套件..."
|
||
doc_parser.uv_init.current_dir: "\U0001F4C1 目前工作目錄: %{path}"
|
||
doc_parser.uv_init.venv_path: "\U0001F4C1 虛擬環境將建立在: ./venv/"
|
||
doc_parser.uv_init.validating_dir: "\U0001F50D 驗證目前目錄設定..."
|
||
doc_parser.uv_init.dir_valid: " ✅ 目錄驗證通過"
|
||
doc_parser.uv_init.warnings_found: " ⚠️ 發現 %{count} 個警告"
|
||
doc_parser.uv_init.dir_invalid: " ❌ 目錄驗證失敗,發現 %{count} 個問題"
|
||
doc_parser.uv_init.auto_fixing: " \U0001F527 嘗試自動修復 %{count} 個問題..."
|
||
doc_parser.uv_init.fix_success: " ✅ %{message}"
|
||
doc_parser.uv_init.fix_failed: " ❌ 清理失敗: %{error}"
|
||
doc_parser.uv_init.manual_fix_hint: " \U0001F4A1 請手動解決以下問題:"
|
||
doc_parser.uv_init.dir_validation_failed: "目錄驗證失敗,請解決上述問題後重試"
|
||
doc_parser.uv_init.dir_validation_error: " ⚠️ 目錄驗證失敗: %{error}"
|
||
doc_parser.uv_init.continue_install: " 繼續進行安裝,但可能遇到問題..."
|
||
# 環境檢查
|
||
doc_parser.check.checking_env: "\U0001F50D 檢查目前環境狀態..."
|
||
doc_parser.check.env_check_complete: " 環境檢查完成:"
|
||
doc_parser.check.python_available: "✅ 可用"
|
||
doc_parser.check.python_unavailable: "❌ 不可用"
|
||
doc_parser.check.uv_available: "✅ 可用"
|
||
doc_parser.check.uv_unavailable: "❌ 不可用"
|
||
doc_parser.check.venv_active: "✅ 啟用"
|
||
doc_parser.check.venv_inactive: "❌ 未啟用"
|
||
doc_parser.check.mineru_available: "✅ 可用"
|
||
doc_parser.check.mineru_unavailable: "❌ 不可用"
|
||
doc_parser.check.markitdown_available: "✅ 可用"
|
||
doc_parser.check.markitdown_unavailable: "❌ 不可用"
|
||
doc_parser.check.env_check_failed: " ⚠️ 環境檢查失敗: %{error}"
|
||
doc_parser.check.continue_install: " 繼續進行安裝..."
|
||
# 安裝過程
|
||
doc_parser.install.all_ready: "✨ 所有相依套件都已就緒,無需安裝!"
|
||
doc_parser.install.plan: "\U0001F4CB 安裝計畫:"
|
||
doc_parser.install.install_uv: "安裝 uv 工具"
|
||
doc_parser.install.create_venv: "建立虛擬環境 (./venv/)"
|
||
doc_parser.install.install_mineru: "安裝 MinerU 相依套件"
|
||
doc_parser.install.install_markitdown: "安裝 MarkItDown 相依套件"
|
||
doc_parser.install.starting: "⚙️ 開始設定Python環境和相依套件..."
|
||
doc_parser.install.wait_hint: "這可能需要幾分鐘時間,請耐心等待..."
|
||
doc_parser.install.path_issues: "⚠️ 偵測到潛在的路徑問題:"
|
||
doc_parser.install.auto_fixing: "\U0001F527 嘗試自動修復問題..."
|
||
doc_parser.install.fixed: "✅ 已修復以下問題:"
|
||
doc_parser.install.cannot_auto_fix: "無法自動修復,請手動解決上述問題"
|
||
doc_parser.install.fix_failed: "❌ 自動修復失敗: %{error}"
|
||
doc_parser.install.manual_fix_hint: "\U0001F4A1 手動修復建議:"
|
||
doc_parser.install.python_setup_complete: "✅ Python環境設定完成!"
|
||
doc_parser.install.python_setup_failed: "❌ Python環境設定失敗: %{error}"
|
||
doc_parser.install.detailed_hints: "\U0001F4A1 詳細故障排除建議:"
|
||
doc_parser.install.diagnostic_commands: "\U0001F50D 診斷命令:"
|
||
doc_parser.install.check_env: "檢查環境狀態: document-parser check"
|
||
doc_parser.install.view_logs: "查看詳細日誌: 檢查 logs/ 目錄"
|
||
# 驗證
|
||
doc_parser.verify.starting: "\U0001F50D 驗證安裝結果..."
|
||
doc_parser.verify.complete: "驗證完成:"
|
||
doc_parser.verify.version: "版本: %{version}"
|
||
doc_parser.verify.partial_issues: "⚠️ 部分相依套件安裝可能有問題"
|
||
doc_parser.verify.need_fix: "\U0001F527 需要解決的問題:"
|
||
doc_parser.verify.suggestion: "建議: %{suggestion}"
|
||
doc_parser.verify.init_incomplete: "環境初始化未完全成功"
|
||
doc_parser.verify.failed: "❌ 驗證失敗: %{error}"
|
||
# 成功訊息
|
||
doc_parser.success.init_complete: "\U0001F389 uv環境初始化完成!"
|
||
doc_parser.success.all_ready: "✨ 所有相依套件都已就緒,現在可以啟動伺服器了"
|
||
doc_parser.success.venv_activate: "\U0001F4CB 虛擬環境啟用指令:"
|
||
doc_parser.success.start_server: "\U0001F680 啟動伺服器:"
|
||
doc_parser.success.use_uv: "\U0001F527 或者使用 uv 直接執行命令:"
|
||
doc_parser.success.more_help: "\U0001F4DA 更多說明:"
|
||
doc_parser.success.tips: "\U0001F4A1 提示:"
|
||
doc_parser.success.venv_location: "虛擬環境位置: ./venv/"
|
||
doc_parser.success.python_path: "Python可執行檔: ./venv/bin/python (Linux/macOS) 或 .\\venv\\Scripts\\python.exe (Windows)"
|
||
doc_parser.success.troubleshoot_hint: "如遇問題,請執行 'document-parser troubleshoot' 查看詳細指南"
|
||
# troubleshoot 命令
|
||
doc_parser.troubleshoot.title: "\U0001F527 Document Parser 故障排除指南"
|
||
doc_parser.troubleshoot.env_overview: "\U0001F4CA 目前環境概覽:"
|
||
doc_parser.troubleshoot.work_dir: "工作目錄: %{path}"
|
||
doc_parser.troubleshoot.venv_path: "虛擬環境: ./venv/"
|
||
doc_parser.troubleshoot.os: "作業系統: %{os}"
|
||
# 虛擬環境問題
|
||
doc_parser.troubleshoot.venv_problems: "\U0001F3E0 1. 虛擬環境問題"
|
||
doc_parser.troubleshoot.venv_create_failed: "❓ 問題: 虛擬環境建立失敗"
|
||
doc_parser.troubleshoot.diagnostic_steps: "\U0001F50D 診斷步驟:"
|
||
doc_parser.troubleshoot.solutions: "\U0001F4A1 解決方案:"
|
||
doc_parser.troubleshoot.venv_activate_failed: "❓ 問題: 虛擬環境啟用失敗"
|
||
# 相依套件安裝問題
|
||
doc_parser.troubleshoot.deps_problems: "\U0001F4E6 2. 相依套件安裝問題"
|
||
doc_parser.troubleshoot.uv_not_installed: "❓ 問題: UV工具未安裝或不可用"
|
||
doc_parser.troubleshoot.mineru_markitdown_failed: "❓ 問題: MinerU或MarkItDown安裝失敗"
|
||
# 網路問題
|
||
doc_parser.troubleshoot.network_problems: "\U0001F310 3. 網路和下載問題"
|
||
doc_parser.troubleshoot.network_timeout: "❓ 問題: 網路連線逾時或下載失敗"
|
||
# 系統環境問題
|
||
doc_parser.troubleshoot.system_problems: "⚙️ 4. 系統環境問題"
|
||
doc_parser.troubleshoot.python_incompatible: "❓ 問題: Python版本不相容"
|
||
doc_parser.troubleshoot.cuda_config: "❓ 問題: CUDA環境設定 (可選,用於GPU加速)"
|
||
# 診斷命令
|
||
doc_parser.troubleshoot.diagnostic_commands: "\U0001F50D 5. 常用診斷命令"
|
||
doc_parser.troubleshoot.env_check: "環境檢查:"
|
||
doc_parser.troubleshoot.manual_verify: "手動驗證:"
|
||
doc_parser.troubleshoot.view_logs: "日誌查看:"
|
||
# 取得幫助
|
||
doc_parser.troubleshoot.more_help: "\U0001F198 6. 取得更多幫助"
|
||
doc_parser.troubleshoot.if_unsolved: "如果上述方法都無法解決問題,請:"
|
||
# 即時診斷
|
||
doc_parser.troubleshoot.realtime_diagnosis: "\U0001F52C 即時環境診斷"
|
||
doc_parser.troubleshoot.env_good: "✅ 環境狀態良好,所有相依套件都已就緒"
|
||
doc_parser.troubleshoot.issues_found: "⚠️ 發現以下問題:"
|
||
doc_parser.troubleshoot.env_check_failed: "❌ 環境檢查失敗: %{error}"
|
||
doc_parser.troubleshoot.follow_guide: "請按照上述指南進行故障排除"
|
||
# 提示
|
||
doc_parser.troubleshoot.tip: "\U0001F4A1 提示: 大多數問題可以透過重新執行 'document-parser uv-init' 解決"
|
||
# 背景清理
|
||
doc_parser.background.cleanup_failed: "清理過期資料失敗: %{error}"
|
||
doc_parser.background.cleanup_complete: "背景清理任務執行完成"
|
||
# 訊號處理
|
||
doc_parser.signal.ctrl_c_failed: "無法監聽 Ctrl+C 訊號"
|
||
doc_parser.signal.terminate_failed: "無法監聽 terminate 訊號"
|
||
# ===========================================
|
||
# 通用訊息
|
||
# ===========================================
|
||
common.yes: "是"
|
||
common.no: "否"
|
||
common.success: "成功"
|
||
common.failed: "失敗"
|
||
common.error: "錯誤"
|
||
common.warning: "警告"
|
||
common.info: "資訊"
|
||
common.loading: "載入中..."
|
||
common.please_wait: "請稍候..."
|
||
common.retry: "重試"
|
||
common.cancel: "取消"
|
||
common.confirm: "確認"
|
||
common.back: "返回"
|
||
common.next: "下一步"
|
||
common.previous: "上一步"
|
||
common.done: "完成"
|
||
common.skip: "跳過"
|