[Init] Initial commit - NetMesh terminal manager
Some checks failed
build-packages / resolve bundled mosh-client (push) Has been cancelled
build-packages / resolve bundled et-client (push) Has been cancelled
build-packages / build-macos (push) Has been cancelled
build-packages / build-windows (push) Has been cancelled
build-packages / build-linux-x64 (push) Has been cancelled
build-packages / build-linux-arm64 (push) Has been cancelled
build-packages / release (push) Has been cancelled
build-packages / update Nix release metadata (push) Has been cancelled
build-packages / bump homebrew tap (push) Has been cancelled
test / lint-and-test (push) Has been cancelled
AI automation / Route event (push) Has been cancelled
AI automation / Hand reopened issue to maintainers (push) Has been cancelled
AI automation / Clean source issue state (push) Has been cancelled
AI automation / Reconcile handoffs (push) Has been cancelled
AI automation / Classify issue (push) Has been cancelled
AI automation / Claude Code smoke (push) Has been cancelled
AI automation / Review issue follow-up (push) Has been cancelled
AI automation / Publish issue follow-up (push) Has been cancelled
AI automation / Implement with Claude Code (push) Has been cancelled
AI automation / Publish implement PR (push) Has been cancelled
AI automation / Continue queued issue comments (push) Has been cancelled
AI automation / Codex review loop (push) Has been cancelled
AI automation / Publish Codex fix (push) Has been cancelled
AI automation / Clear Codex dispatch marker (push) Has been cancelled
AI automation / Own PR re-request Codex (push) Has been cancelled
AI automation / External PR re-request Codex (push) Has been cancelled
AI automation / Poll Codex reaction / retry (push) Has been cancelled
build-et-binaries / build-linux-x64 (push) Has been cancelled
build-et-binaries / build-linux-arm64 (push) Has been cancelled
build-et-binaries / build-macos-universal (push) Has been cancelled
build-et-binaries / build-windows-x64 (push) Has been cancelled
build-et-binaries / release (push) Has been cancelled

This commit is contained in:
2026-09-13 18:24:01 +08:00
commit 3c72efcb7f
3255 changed files with 907009 additions and 0 deletions

View File

@@ -0,0 +1,671 @@
import type { Messages } from '../types';
export const zhTWAiMessages: Messages = {
// AI Settings
'ai.agentSettings': 'Agent 設定',
'ai.chat.preparing': '準備中…',
'ai.chat.compactingContext': '正在壓縮較早的上下文…',
'ai.chat.compactingStep': '正在為下一步整理上下文…',
'ai.chat.compactionRetry': '請求過大,正在壓縮上下文並重試…',
'ai.chat.compactionBanner': '上下文已壓縮:{before}K → {after}K tokens',
'ai.chat.contextUsage': '上下文使用:{used} / {max} tokens',
'ai.chat.activity.title': 'Agent 活動',
'ai.chat.activity.plan': '計畫',
'ai.chat.activity.webSearch': '網頁搜尋',
'ai.chat.activity.fileChanges': '檔案變更',
'ai.chat.activity.status.running': '進行中',
'ai.chat.activity.status.completed': '已完成',
'ai.chat.activity.status.failed': '失敗',
'ai.chat.activity.file.add': '新增',
'ai.chat.activity.file.update': '修改',
'ai.chat.activity.file.delete': '刪除',
'ai.chat.activity.usage': 'Token',
'ai.chat.activity.usage.input': '輸入',
'ai.chat.activity.usage.output': '輸出',
'ai.chat.activity.usage.cached': '快取',
'ai.chat.activity.usage.reasoning': '推理',
'ai.title': 'AI',
'ai.description': '設定 AI 供應商、Agent 和安全設定',
'ai.providers': '供應商',
'ai.agents': 'Agent',
'ai.providers.empty': '尚未設定供應商。新增一個供應商以開始使用。',
'ai.providers.add': '新增供應商',
'ai.providers.active': '使用中',
'ai.providers.apiKeyConfigured': 'API Key 已設定',
'ai.providers.noApiKey': '未設定 API Key',
'ai.providers.configure': '設定',
'ai.providers.remove': '移除',
'ai.providers.name': '顯示名稱',
'ai.providers.name.placeholder': '例如 我的供應商',
'ai.providers.style': '協定風格',
'ai.providers.style.anthropic': 'Anthropic 相容',
'ai.providers.style.openai': 'OpenAI 相容',
'ai.providers.style.google': 'Google 相容',
'ai.providers.style.inherited': '預設',
'ai.providers.style.help': '決定請求使用哪種 API 格式。當第三方端點的協定與其供應商型別不一致時,可手動覆蓋。',
'ai.providers.openaiApi': 'OpenAI 請求格式',
'ai.providers.openaiApi.chat': 'Chat Completions',
'ai.providers.openaiApi.responses': 'Responses',
'ai.providers.openaiApi.help': '預設 Chat Completions相容大多數 OpenAI 相容介面。部分中繼站在 Responses/v1/responses上快取命中率較高。',
'ai.providers.icon.change': '修改圖示',
'ai.providers.icon.upload': '上傳圖片',
'ai.providers.icon.reset': '恢復預設',
'ai.providers.icon.close': '收起',
'ai.providers.icon.uploadedNote': '自訂圖示64×64 WebP',
'ai.providers.icon.errorType': '請選擇圖片檔案。',
'ai.providers.apiKey': 'API Key',
'ai.providers.apiKey.placeholder': '輸入 API Key',
'ai.providers.apiKey.decrypting': '解密中...',
'ai.providers.baseUrl': 'Base URL',
'ai.providers.baseUrl.anthropicHelp': 'Anthropic 相容:可填不帶或帶 /v1 的主機(例如 https://gateway.example 或 https://gateway.example/v1。偵測與聊天都會請求 /v1/models、/v1/messages。',
'ai.providers.baseUrl.ollamaHelp': '本機 Ollamahttp://localhost:11434/v1不需 API Key。Ollama Cloudhttps://ollama.com/v1並填寫 Cloud API Key。',
'ai.providers.skipTLSVerify': '跳過 TLS 憑證驗證(用於自我簽署憑證)',
'ai.providers.defaultModel': '預設模型',
'ai.providers.defaultModel.placeholder': '例如 gpt-4o, claude-sonnet-4-20250514',
'ai.providers.contextWindow': '上下文視窗',
'ai.providers.contextWindow.placeholder': '例如 128000',
'ai.providers.contextWindow.help': '留空時優先使用模型列表傳回的值如果沒有NetMesh 會使用安全預設值。',
'ai.providers.contextWindow.error': '請輸入正整數,或留空。',
'ai.providers.refreshModels': '重新整理模型列表',
'ai.providers.test': '檢測',
'ai.providers.test.testing': '檢測中…',
'ai.providers.test.ok': '連線正常({latency} ms',
'ai.providers.test.warn': '已連通,但回應不完整({latency} ms',
'ai.providers.test.warnSlow': '已連通,但較慢({latency} ms',
'ai.providers.test.error': '檢測失敗({detail}',
'ai.providers.test.missingBaseUrl': '請先填寫 Base URL',
'ai.providers.test.missingApiKey': '請先填寫 API Key',
'ai.providers.test.unavailable': '目前環境無法進行連線檢測',
'ai.providers.searchModel': '搜尋或輸入模型 ID...',
'ai.providers.filterModels': '篩選模型...',
'ai.providers.loadingModels': '載入模型中...',
'ai.providers.noMatchingModels': '沒有相符的模型',
'ai.providers.clickToLoadModels': '點選載入模型',
'ai.providers.showingModels': '顯示前 100 個,共 {count} 個模型。輸入以篩選。',
'ai.providers.advancedParams': '高階引數',
'ai.providers.advancedParams.hint': '留空則使用供應商預設值。',
'ai.providers.advancedParams.maxTokens.placeholder': '例如 4096',
'ai.providers.advancedParams.default': '供應商預設',
// AI Codex
'ai.codex': 'Codex',
'ai.codex.title': 'Codex CLI',
'ai.codex.description': '介接 OpenAI Codex。可以在這裡登入 ChatGPT也可以在設定裡啟用相容 OpenAI 的 API Key 和自訂介面位址。',
'ai.codex.appServer.title': '使用 Codex App Server',
'ai.codex.appServer.experimental': '實驗性',
'ai.codex.appServer.description': '使用持久化 Codex 協定,提供原生核准、沙箱控制、動態模型和對話中提問。預設仍使用 SDK。',
'ai.codex.appServer.checking': '正在檢查 App Server 支援…',
'ai.codex.appServer.available': '目前 Codex CLI 支援 App Server。',
'ai.codex.appServer.modelCatalogWarning': 'Codex 動態模型目錄暫時無法使用,目前將使用內建模型清單。',
'ai.codex.appServer.approval.allowSession': '本工作階段允許',
'ai.codex.appServer.userInput.title': 'Codex 需要你的輸入',
'ai.codex.appServer.userInput.description': '回答以下問題以繼續目前任務。',
'ai.codex.appServer.userInput.other': '輸入其他答案',
'ai.codex.appServer.userInput.autoResolve': '若未及時回答Codex 將自動繼續。',
'ai.codex.appServer.userInput.skip': '略過',
'ai.codex.appServer.userInput.submit': '繼續',
'ai.codex.steer.addInstruction': '補充指令',
'ai.codex.steer.sending': '正在補充指令…',
'ai.codex.steer.placeholder': '在 Codex 工作時補充指令…',
'ai.codex.steer.notSteerableReview': '目前 Codex 審查任務無法接收補充指令,草稿已保留。',
'ai.codex.steer.notSteerableCompact': '目前 Codex 壓縮任務無法接收補充指令,草稿已保留。',
'ai.codex.steer.busy': '已有一則補充指令正在傳送給 Codex。',
'ai.codex.steer.inactive': '目前 Codex 任務已經結束,草稿已保留。',
'ai.codex.steer.unsupported': '執行中補充指令僅支援 Codex App Server。',
'ai.codex.steer.failed': 'Codex 無法接收補充指令,草稿已保留。',
'ai.codex.detecting': '偵測中...',
'ai.codex.notFound': '未找到',
'ai.codex.awaitingLogin': '等待登入',
'ai.codex.connectedChatGPT': '已透過 ChatGPT 連線',
'ai.codex.connectedApiKey': '已透過 API Key 連線',
'ai.codex.connectedCustomConfig': '使用 ~/.codex/config.toml 自訂 provider',
'ai.codex.customConfigIncomplete': '偵測到自訂設定(缺少環境變數)',
'ai.codex.customConfigHint': '使用 ~/.codex/config.toml 中設定的自訂 provider "{provider}",無需 ChatGPT 登入。',
'ai.codex.customConfigMissingEnvKey': '警告:環境變數 {envKey} 未在目前 shell 中設定。請 export 它(或從包含該變數的 shell 啟動 NetMesh否則 Codex 無法完成認證。',
'ai.codex.notConnected': '未連線',
'ai.codex.statusUnknown': '狀態未知',
'ai.codex.path': '路徑:',
'ai.codex.notFoundHint': '在 PATH 中未找到 codex。請安裝或在下方指定執行檔路徑。',
'ai.codex.customPathPlaceholder': '例如 /usr/local/bin/codex',
'ai.codex.check': '檢查',
'ai.codex.resetPath': '重設',
'ai.codex.openLogin': '開啟登入',
'ai.codex.logout': '登出',
'ai.codex.connectChatGPT': '連線 ChatGPT',
'ai.codex.refreshStatus': '重新整理狀態',
// AI Claude Code
'ai.claude.title': 'Claude Code',
'ai.claude.description': 'Anthropic 的智慧程式設計助手。需要系統中已安裝 Claude Code CLI。',
'ai.claude.detecting': '偵測中...',
'ai.claude.detected': '已偵測到',
'ai.claude.notFound': '未找到',
'ai.claude.path': '路徑:',
'ai.claude.notFoundHint': '在 PATH 中未找到 claude。請安裝或在下方指定執行檔路徑。',
'ai.claude.customPathPlaceholder': '例如 /usr/local/bin/claude',
'ai.claude.configSection': '認證與設定(可選)',
'ai.claude.configDir': '設定目錄',
'ai.claude.configDir.placeholder': '~/.claude留空用預設',
'ai.claude.configDir.hint': '設定 CLAUDE_CONFIG_DIR —— 指向你已執行 `claude` 登入的目錄(含 settings.json 和憑證)。',
'ai.claude.settings': 'Settings 檔案',
'ai.claude.settings.placeholder': '~/team-settings.json路徑或內聯 {"model":"..."}',
'ai.claude.settings.hint': '可選。settings.json 路徑或內聯 JSON作為 SDK 的 `settings` 傳入。與上面的「設定目錄」互補且獨立(疊加合併,不是替換)。',
'ai.claude.envVars': '環境變數',
'ai.claude.envVars.placeholder': 'ANTHROPIC_BASE_URL=https://...\nANTHROPIC_MODEL=...',
'ai.claude.envVars.hint': '每行一個 KEY=VALUE傳給 Claude agent。明文存在本機——API key憑證建議用上面的「設定目錄」claude 登入),不要放這裡。',
'ai.claude.check': '檢查',
'ai.claude.resetPath': '重設',
// AI GitHub Copilot CLI
'ai.copilot.title': 'GitHub Copilot CLI',
'ai.copilot.description': '介接 GitHub Copilot CLI。偵測到後即可作為外部程式設計 Agent 使用。',
'ai.copilot.detecting': '偵測中...',
'ai.copilot.detected': '已偵測到',
'ai.copilot.notFound': '未找到',
'ai.copilot.path': '路徑:',
'ai.copilot.notFoundHint': '在 PATH 中未找到 copilot。請安裝或在下方指定執行檔路徑。',
'ai.copilot.customPathPlaceholder': '例如 /usr/local/bin/copilot',
'ai.copilot.check': '檢查',
'ai.copilot.resetPath': '重設',
// AI Cursor SDK
'ai.cursor.title': 'Cursor',
'ai.cursor.description': '使用 Cursor SDK 或本機 Agent CLI 登入。',
'ai.cursor.detecting': '偵測中...',
'ai.cursor.detected': '可用',
'ai.cursor.notFound': '不可用',
'ai.cursor.path': '執行環境:',
'ai.cursor.notFoundHint': '填寫 API Key或切換到 CLI 登入模式。',
'ai.cursor.notInstalledHint': '未偵測到 Cursor SDK / Agent CLI。',
'ai.cursor.installStatus': 'Cursor 執行環境',
'ai.cursor.installed': '已偵測到',
'ai.cursor.notInstalled': '未偵測到',
'ai.cursor.modeCli': 'CLI 登入',
'ai.cursor.modeApiKey': 'API Key',
'ai.cursor.modeCliHint': '使用本機 `cursor-agent login` 工作階段與訂閱 Auto 額度。已儲存的 API Key 會保留,但此模式不會使用。',
'ai.cursor.modeApiKeyHint': '走 Cursor 計量 API。此模式下不會使用 CLI 登入。',
'ai.cursor.cliLoginStatus': 'CLI 登入',
'ai.cursor.cliLoginOk': '已登入',
'ai.cursor.cliLoginAs': '已登入為 {{email}}',
'ai.cursor.cliLoginMissing': '未登入',
'ai.cursor.cliLoginHint': '在終端機執行 `cursor-agent login`,然後點「檢查」。',
'ai.cursor.apiKeyStatus': 'API Key',
'ai.cursor.apiKeyConfigured': '已填寫',
'ai.cursor.apiKeyMissing': '未填寫',
'ai.cursor.apiKeyFromEnv': '來自環境變數',
'ai.cursor.apiKey': 'API Key',
'ai.cursor.apiKeyPlaceholder': '輸入 Cursor API Key',
'ai.cursor.apiKeyPlaceholder.env': '已使用 CURSOR_API_KEY填寫後會覆蓋',
'ai.cursor.apiKeyEnvHint': '已偵測到本機 CURSOR_API_KEY。留空即可繼續使用填寫儲存後會覆蓋它。',
'ai.cursor.apiKeyOverrideHint': '目前優先使用這裡儲存的 Key清空儲存後會回到 CURSOR_API_KEY。',
'ai.cursor.saveApiKey': '儲存',
'ai.cursor.saved': '已儲存',
'ai.cursor.showApiKey': '顯示 API Key',
'ai.cursor.hideApiKey': '隱藏 API Key',
'ai.cursor.customPathPlaceholder': '例如 /usr/local/bin/cursor',
'ai.cursor.check': '檢查',
// AI CodeBuddy Code
'ai.codebuddy.title': 'CodeBuddy Code',
'ai.codebuddy.description': '透過官方 Agent SDK`@tencent-ai/agent-sdk`)介接 CodeBuddy Code。偵測到後即可作為外部程式設計 Agent 使用。',
'ai.codebuddy.detecting': '偵測中...',
'ai.codebuddy.detected': '已偵測到',
'ai.codebuddy.notFound': '未找到',
'ai.codebuddy.path': '路徑:',
'ai.codebuddy.notFoundHint': '在 PATH 中未找到 codebuddy。請安裝或在下方指定執行檔路徑。',
'ai.codebuddy.customPathPlaceholder': '例如 /usr/local/bin/codebuddy',
'ai.codebuddy.check': '檢查',
'ai.codebuddy.resetPath': '重設',
'ai.codebuddy.configSection': '認證與設定(可選)',
'ai.codebuddy.internetEnv': '網路環境',
'ai.codebuddy.internetEnv.default': '預設(海外)',
'ai.codebuddy.internetEnv.internal': 'Internal',
'ai.codebuddy.internetEnv.ioa': 'IOA',
'ai.codebuddy.internetEnv.hint': '設定 CODEBUDDY_INTERNET_ENVIRONMENT —— 受限網路環境請選擇 Internal 或 IOA。',
'ai.codebuddy.envVars': '環境變數',
'ai.codebuddy.envVars.placeholder': 'CODEBUDDY_API_KEY=...\nCODEBUDDY_AUTH_TOKEN=...\nOTHER_VAR=...',
'ai.codebuddy.envVars.hint': '每行一個 KEY=VALUE傳給 CodeBuddy agent。可在此設定 CODEBUDDY_API_KEY 或 CODEBUDDY_AUTH_TOKEN 完成認證。明文存在本機。',
'ai.codebuddy.advancedSection': '進階選項SDK 0.3.230',
'ai.codebuddy.effort': '推理力度',
'ai.codebuddy.effort.default': '預設',
'ai.codebuddy.effort.low': 'Low',
'ai.codebuddy.effort.medium': 'Medium',
'ai.codebuddy.effort.high': 'High',
'ai.codebuddy.effort.xhigh': 'XHigh',
'ai.codebuddy.effort.hint': '控制模型推理深度。簡單命令用 Low 節省 token複雜診斷用 High/XHigh。',
'ai.codebuddy.maxTurns': '最大輪次',
'ai.codebuddy.maxTurns.hint': '限制每次請求的最大對話輪次,防止 AI 失控循環。留空使用預設值。',
'ai.codebuddy.maxBudget': '預算上限 (USD)',
'ai.codebuddy.maxBudget.hint': '每次請求的最大花費(美元)。超出後自動停止。留空不限制。',
'ai.codebuddy.sandbox': '沙箱模式',
'ai.codebuddy.sandbox.hint': '在沙箱中執行工具呼叫,限制檔案系統和網路存取。',
'ai.codebuddy.fileCheckpointing': '檔案檢查點',
'ai.codebuddy.fileCheckpointing.hint': '啟用檔案操作檢查點AI 修改檔案後可回滾。',
'ai.codebuddy.elicitation.title': 'CodeBuddy 需要你的輸入',
'ai.codebuddy.elicitation.description': '請確認或填寫請求內容以繼續目前輪次。',
'ai.codebuddy.elicitation.select': '請選擇',
'ai.codebuddy.elicitation.yes': '是',
'ai.codebuddy.elicitation.no': '否',
'ai.codebuddy.elicitation.decline': '拒絕',
'ai.codebuddy.elicitation.accept': '繼續',
'ai.codebuddy.elicitation.validation.required': '{field} 為必填項。',
'ai.codebuddy.elicitation.validation.invalidType': '{field} 的值無效。',
'ai.codebuddy.elicitation.validation.integer': '{field} 必須是整數。',
'ai.codebuddy.elicitation.validation.notInteger': '{field} 必須是整數。',
'ai.codebuddy.elicitation.validation.minimum': '{field} 不能小於 {limit}。',
'ai.codebuddy.elicitation.validation.maximum': '{field} 不能大於 {limit}。',
'ai.codebuddy.elicitation.validation.minLength': '{field} 至少需要 {limit} 個字元。',
'ai.codebuddy.elicitation.validation.maxLength': '{field} 最多允許 {limit} 個字元。',
'ai.codebuddy.elicitation.validation.minItems': '{field} 至少選擇 {limit} 項。',
'ai.codebuddy.elicitation.validation.maxItems': '{field} 最多選擇 {limit} 項。',
'ai.codebuddy.elicitation.validation.format': '{field} 必須符合 {format} 格式。',
'ai.codebuddy.elicitation.validation.option': '請為 {field} 選擇有效選項。',
// AI OpenCode
'ai.opencode.title': 'OpenCode',
'ai.opencode.description': '透過官方 SDK 介接 OpenCode。先在 OpenCode 裡設定 provider 和金鑰,偵測到後即可作為外部程式設計 Agent 使用。',
'ai.opencode.detecting': '偵測中...',
'ai.opencode.detected': '已偵測到',
'ai.opencode.notFound': '未找到',
'ai.opencode.path': '路徑:',
'ai.opencode.notFoundHint': '在 PATH 中未找到 opencode。請安裝或在下方指定執行檔路徑。',
'ai.opencode.customPathPlaceholder': '例如 /usr/local/bin/opencode',
'ai.opencode.check': '檢查',
'ai.opencode.resetPath': '重設',
// AI Grok Build應用內託管 Agent與 External MCP「新增到 Grok」不同
'ai.grok.title': 'Grok Build',
'ai.grok.description': 'xAI 的 Grok Build 程式設計 Agent CLI。安裝 Grok CLI使用 `grok login` 登入或設定 XAI_API_KEY 後,即可作為外部 Agent 選擇。',
'ai.grok.detecting': '偵測中...',
'ai.grok.detected': '已偵測到',
'ai.grok.notFound': '未找到',
'ai.grok.path': '路徑:',
'ai.grok.notFoundHint': '在 PATH 中未找到 grok。請安裝 Grok Build CLI 或在下方指定執行檔路徑。',
'ai.grok.customPathPlaceholder': '例如 /usr/local/bin/grok',
'ai.grok.check': '檢查',
'ai.grok.resetPath': '重設',
'ai.grok.runtime.acp.title': '使用 Grok ACPagent stdio',
'ai.grok.runtime.acp.default': '預設',
'ai.grok.runtime.acp.description':
'透過 Agent Client Protocolgrok agent stdio接入 Grok。在 session/new 注入 NetMesh MCP。關閉後使用原始 headless streaming-json CLI 路徑。',
'ai.grok.runtime.streamingJson.hint':
'目前為 headless streaming-jsongrok -p --output-format streaming-json。MCP 透過專案 .grok/config.toml 注入。',
// AI Default Agent
'ai.defaultAgent': '預設 Agent',
'ai.defaultAgent.description': '建立新 AI 工作階段時使用的 Agent',
'ai.defaultAgent.catty': 'Catty內建',
'ai.toolAccess.title': '工具介接',
'ai.toolAccess.mode': 'NetMesh 介接模式',
'ai.toolAccess.description': '選擇外部 Agent 存取 NetMesh 工作階段的方式。MCP 會公開內建伺服器Skills + CLI 會引導 Agent 讀取本機 Skill 並呼叫 NetMesh CLI。',
'ai.toolAccess.mode.mcp': 'MCP',
'ai.toolAccess.mode.skills': 'Skills + CLI',
'ai.toolAccess.mcpPrompt.title': '餵給 AI 的接入提示詞',
'ai.toolAccess.mcpPrompt.description': '把這段提示詞貼到你的 AI 用戶端Codex、Claude Code 等),它就會幫你完成 NetMesh MCP 的註冊。',
'ai.toolAccess.mcpPrompt.enableHint': '先在下方開啟對外 MCP 開關,提示詞中才會包含 launcher 路徑。',
'ai.toolAccess.skills.file': 'Skill 檔案',
'ai.toolAccess.skills.description': 'Skills + CLI 模式下Agent 會自動被指向這個本機 Skill 檔案。NetMesh CLI 啟動路徑會在每個工作階段提供給 Agent。',
'ai.toolAccess.skills.unavailable': '暫時無法取得 Skill 檔案路徑',
'ai.externalMcp.title': '對外 MCP',
'ai.externalMcp.description': '將 NetMesh 作為 MCP 伺服器暴露給 Codex、Claude Code、Cursor、Grok 等外部用戶端。工具面與應用內 Agent 相同。用戶端連線期間請保持 NetMesh 執行。',
'ai.externalMcp.sessionsExposed': '作用域內工作階段:{count}',
'ai.externalMcp.mode': '可用模式',
'ai.externalMcp.mode.temporary': '暫時',
'ai.externalMcp.mode.persistent': '常開',
'ai.externalMcp.mode.description': '暫時模式會在閒置逾時後自動關閉;常開模式會在 NetMesh 啟動時還原對外 MCP。',
'ai.externalMcp.idleTimeout': '閒置逾時',
'ai.externalMcp.idleTimeout.description': '暫時模式下,若超過該分鐘數沒有 MCP 操作,將自動關閉對外 MCP。',
'ai.externalMcp.idleTimeout.minutes': '分鐘',
'ai.externalMcp.focusOnHostOpen': 'host_open 時啟用視窗',
'ai.externalMcp.focusOnHostOpen.description': '當 MCP 用戶端開啟主機連線時,將主視窗切換到前景。關閉後可不受打擾地繼續目前工作。',
'ai.externalMcp.silentSessions': 'AI 工作階段靜默執行',
'ai.externalMcp.silentSessions.description': 'AI 開啟的工作階段不會出現在分頁列,重新啟動後也不會還原。可隨時在系統匣面板中查看。',
'ai.externalMcp.sessionIdleTimeout': '已開啟工作階段閒置逾時',
'ai.externalMcp.sessionIdleTimeout.description': 'AI 開啟的工作階段若超過該分鐘數沒有終端或檔案操作,將自動關閉。',
'ai.externalMcp.usage.title': '使用說明',
'ai.externalMcp.usage.keepRunning': '1. 開啟對外 MCP 開關,並保持 NetMesh 執行。',
'ai.externalMcp.usage.localhost': '2. 用戶端透過本機 launcher 連線(僅 127.0.0.1)。關閉開關後會刪除 discovery。',
'ai.externalMcp.usage.permissions': '3. 寫入操作遵循「設定 → AI → 安全」以及命令黑名單。',
'ai.externalMcp.usage.capabilities': '4. 完整 catalog 工具可用終端機、SFTP、Vault、連接埠轉發。密碼 / 私鑰不會回傳。',
'ai.externalMcp.help.ariaLabel': '對外 MCP 使用說明',
'ai.externalMcp.security': '安全',
'ai.externalMcp.security.description': '僅監聽 127.0.0.1,使用輪替 token寫入操作重用 AI 權限模式,關閉時刪除 discovery。',
'ai.externalMcp.permissionMode': '目前權限模式:{mode}',
'ai.externalMcp.permissionMode.label': '寫入權限模式',
'ai.externalMcp.permissionMode.hint': '與「設定 → AI → 安全」為同一項。自動NetMesh 寫入操作不再彈本應用核准確認每次詢問。外部用戶端Codex / Claude / Grok仍可能有自己的工具核准介面。',
'ai.externalMcp.permissionMode.unknown': '未知',
'ai.externalMcp.discovery': 'Discovery',
'ai.externalMcp.launcher': 'Launcher',
'ai.externalMcp.unavailable': '無法使用',
'ai.externalMcp.bridgeUnavailable': '對外 MCP 橋接無法使用',
'ai.externalMcp.copy': '複製',
'ai.externalMcp.copied': '已複製',
'ai.externalMcp.copyFailed': '複製失敗,請手動複製。',
'ai.externalMcp.refresh': '重新整理',
'ai.externalMcp.clientConfiguration': '用戶端設定',
'ai.externalMcp.clientConfiguration.description': '選擇用戶端一鍵安裝,或複製 CLI / 設定片段。',
'ai.externalMcp.client.codex': 'Codex',
'ai.externalMcp.client.claude': 'Claude Code',
'ai.externalMcp.client.grok': 'Grok',
'ai.externalMcp.client.cursor': 'Cursor',
'ai.externalMcp.cliCommand': 'CLI 命令',
'ai.externalMcp.configSnippet': '設定片段',
'ai.externalMcp.addToCodex': '新增到 Codex',
'ai.externalMcp.addToClaude': '新增到 Claude Code',
'ai.externalMcp.addToGrok': '新增到 Grok',
'ai.externalMcp.codexAdded': '已新增 Codex MCP 項目。請重新啟動 Codex 或開啟新工作階段。',
'ai.externalMcp.claudeAdded': '已新增 Claude Code MCP 項目。請重新啟動 Claude Code 或開啟新工作階段。',
'ai.externalMcp.grokAdded': '已新增 Grok MCP 項目。請重新啟動 Grok 或開啟新工作階段。',
'ai.externalMcp.installCodex': '請先另外安裝 Codex然後按重新整理。',
'ai.externalMcp.installClaude': '請先另外安裝 Claude Code然後按重新整理。',
'ai.externalMcp.installGrok': '請先另外安裝 Grok CLI然後按重新整理。',
'ai.externalMcp.conflict.description': '已存在指向其他位置的 NetMesh-external 項目,請手動刪除或修改。',
'ai.externalMcp.enableForLauncher': '請先啟用對外 MCP以取得可用的 launcher 路徑。',
'ai.externalMcp.cursor.title': 'Cursor / 其他用戶端',
'ai.externalMcp.cursor.description': '合併到 MCP 設定檔(例如 ~/.cursor/mcp.json。若已有其他伺服器請勿整檔覆蓋。',
'ai.externalMcp.status.unavailable': '無法使用',
'ai.externalMcp.status.disabled': '已關閉',
'ai.externalMcp.status.running': '執行中',
'ai.externalMcp.status.starting': '啟動中',
'ai.externalMcp.status.error': '錯誤',
'ai.externalMcp.status.configured': '已設定',
'ai.externalMcp.status.notConfigured': '未設定',
'ai.externalMcp.status.checking': '檢查中',
'ai.externalMcp.status.codexNotFound': '找不到 Codex',
'ai.externalMcp.status.claudeNotFound': '找不到 Claude Code',
'ai.externalMcp.status.grokNotFound': '找不到 Grok',
'ai.externalMcp.status.conflict': '衝突',
'ai.userSkills.title': '使用者 Skills',
'ai.userSkills.description': '開啟 NetMesh 的 Skills 資料夾以新增你自己的技能目錄。NetMesh 會自動掃描這些 skills預設只注入輕量索引只有在請求明顯命中某個 skill 時才展開正文。',
'ai.userSkills.openFolder': '開啟 Skills 資料夾',
'ai.userSkills.reload': '重新載入 Skills',
'ai.userSkills.location': '位置',
'ai.userSkills.loading': '正在掃描使用者 skills...',
'ai.userSkills.summary': '已就緒 {ready} 個,警告 {warnings} 個',
'ai.userSkills.empty': '暫未發現使用者 skills。開啟資料夾後可新增包含 SKILL.md 的技能目錄。',
'ai.userSkills.unavailable': '目前環境不支援使用者 skills。',
'ai.userSkills.status.ready': '正常',
'ai.userSkills.status.warning': '警告',
// AI Quick Messages
'ai.quickMessages.title': '快捷訊息',
'ai.quickMessages.description': '建立常用提示詞,在 AI 聊天框輸入 / 或點選快捷按鈕即可插入到輸入框。與使用者 Skills 不同,快捷訊息會直接填入訊息內容。',
'ai.quickMessages.add': '新增快捷訊息',
'ai.quickMessages.createTitle': '新增快捷訊息',
'ai.quickMessages.editTitle': '編輯快捷訊息',
'ai.quickMessages.name': '名稱',
'ai.quickMessages.name.placeholder': '例如:檢查磁碟空間',
'ai.quickMessages.slug': '指令',
'ai.quickMessages.slug.placeholder': 'disk-check',
'ai.quickMessages.descriptionField': '說明(可選)',
'ai.quickMessages.descriptionField.placeholder': '簡短描述這條快捷訊息的用途',
'ai.quickMessages.content': '訊息內容',
'ai.quickMessages.content.placeholder': '輸入選擇後要插入的完整提示詞...',
'ai.quickMessages.empty': '還沒有快捷訊息。新增幾條常用提示,聊天時就能一鍵插入。',
'ai.quickMessages.confirmDelete': '確定刪除快捷訊息「{name}」嗎?',
'ai.quickMessages.error.nameRequired': '請填寫名稱。',
'ai.quickMessages.error.invalidSlug': '指令只能包含小寫字母、數字和連字元。',
'ai.quickMessages.error.contentRequired': '請填寫訊息內容。',
'ai.quickMessages.error.slugTaken': '該指令已被其他快捷訊息使用。',
'ai.quickMessages.error.slugConflictsWithSkill': '該指令與使用者 Skill「/{slug}」衝突,請換一個指令。',
'ai.quickMessages.error.maxItems': '最多只能儲存 {max} 條快捷訊息。',
// AI Chat
'ai.chat.noProvider': '尚未設定 AI 供應商。請前往 **設定 → AI → 供應商** 新增並啟用一個供應商。',
'ai.chat.toolDenied': '操作已被使用者拒絕。',
'ai.chat.toolApproved': '已核准',
'ai.chat.toolApprovalHint': 'Enter 允許 · Esc 拒絕',
'ai.chat.approve': '核准',
'ai.chat.approveOnce': '允許',
'ai.chat.alwaysAllow': '始終',
'ai.chat.slashStopDesc': '停止目前 AI 回合並取消進行中的工具',
'ai.chat.slashCompactDesc': '壓縮較早的對話上下文',
'ai.chat.reject': '拒絕',
'ai.chat.toolLabel': '工具',
'ai.chat.targetLabel': '目標',
'ai.chat.rawCommand': '指令',
'ai.chat.copyCommand': '複製',
'ai.chat.commandCopied': '已複製',
'ai.chat.approvalSession': '工作階段',
'ai.chat.approvalShell': 'Shell',
'ai.chat.approvalCwd': '目錄',
'ai.chat.approvalReason': '原因',
'ai.chat.approvalInvocation': '呼叫詳情',
'ai.chat.permissionRequired': '需要權限',
'ai.chat.permissionDescription': 'AI Agent 希望執行一個需要你核准的工具呼叫。',
'ai.chat.commandBlocked': '此指令已被安全策略攔截,無法執行。',
'ai.chat.recommendAllow': '允許',
'ai.chat.recommendConfirm': '確認',
'ai.chat.recommendDeny': '拒絕',
'ai.chat.exportConversation': '匯出對話',
'ai.chat.exportAs': '匯出為',
'ai.chat.exportMarkdown': 'Markdown',
'ai.chat.exportJSON': 'JSON',
'ai.chat.exportPlainText': '純文字',
'ai.chat.thinking': '思考中',
'ai.chat.thoughtFor': '思考了 {duration}',
'ai.chat.thought': '思考',
'ai.chat.agents': 'Agents',
'ai.chat.detectedOnMachine': '在本機偵測到',
'ai.chat.rescan': '重新掃描',
'ai.chat.permObserver': '觀察',
'ai.chat.permConfirm': '確認',
'ai.chat.permAuto': '自動',
'ai.chat.permObserverDesc': '只讀',
'ai.chat.permConfirmDesc': '寫入前確認',
'ai.chat.permAutoDesc': '自由執行',
'ai.chat.emptyHint': '詢問伺服器相關問題、執行指令或取得設定協助。',
'ai.chat.placeholder': '向 {agent} 傳送訊息 — @ 引用上下文,/ 使用指令',
'ai.chat.placeholderDefault': '向 Catty Agent 傳送訊息...',
'ai.chat.noModel': '未選擇模型',
'ai.chat.noProviderModel': '未設定預設模型——前往 設定 → AI → 供應商 設定。',
'ai.chat.selectProvider': '選擇供應商',
'ai.chat.selectProviderAndModel': '選擇供應商與模型',
'ai.chat.selectModel': '選擇模型',
'ai.chat.searchModels': '搜尋模型',
'ai.chat.providers': '供應商',
'ai.chat.models': '模型',
'ai.chat.pinned': '已釘選',
'ai.chat.useCustomModel': '使用「{id}」',
'ai.chat.thinkingLevel': '思考強度',
'ai.chat.thinkingOff': '關閉',
'ai.chat.pinModel': '釘選模型',
'ai.chat.unpinModel': '取消釘選',
'ai.chat.loadingModels': '正在載入模型...',
'ai.chat.noMatchingModels': '沒有符合的模型',
'ai.chat.recent': '最近',
'ai.chat.viewAll': '檢視全部',
'ai.chat.untitled': '無標題',
'ai.chat.justNow': '剛剛',
'ai.chat.minutesAgo': '{n}分鐘前',
'ai.chat.hoursAgo': '{n}小時前',
'ai.chat.daysAgo': '{n}天前',
'ai.chat.newChat': '新對話',
'ai.chat.allSessions': '所有工作階段',
'ai.chat.loadEarlierMessages': '載入更早的訊息(還有 {n} 條)',
'ai.chat.jumpNav': '跳轉到訊息',
'ai.chat.jumpUntitled': '(空訊息)',
'ai.chat.usedTools': '已使用 {n} 個工具',
'ai.chat.loadMoreSessions': '載入更多工作階段(還有 {n} 條)',
'ai.chat.noSessions': '沒有歷史工作階段',
'ai.chat.retryHint': '你可以重新發送訊息來重試。',
'ai.chat.approvalTimeout': '工具核准已超時5 分鐘)。你可以重新發送訊息來重試。',
'ai.chat.menuHosts': '主機',
'ai.chat.menuContext': '上下文',
'ai.chat.menuFiles': '檔案',
'ai.chat.menuImage': '圖片',
'ai.chat.menuMentionHost': '提及主機',
'ai.chat.menuMentionNote': '提及筆記',
'ai.chat.mentionNoteSearch': '搜尋筆記…',
'ai.chat.mentionNoteEmpty': '沒有符合的筆記',
'ai.chat.mentionNoteUnavailable': '目前連線方式下,此 AI 無法讀取保險箱筆記。',
'ai.chat.mentionNoteTooMany': '這些筆記無法一起引用,請減少選擇。',
'ai.chat.mentionNoteInvalid': '無法附加「{{title}}」:筆記的識別碼無效。',
'ai.chat.untitledNote': '未命名筆記',
'ai.chat.menuUserSkills': '使用者 Skills',
'ai.chat.menuSlashCommands': '快捷指令',
'ai.chat.slashCommands': '快捷指令',
'ai.chat.slashSystemCommands': '系統指令',
'ai.chat.slashQuickMessages': '快捷訊息',
'ai.chat.slashUserSkills': '使用者 Skills',
'ai.chat.quickMessages': '快捷指令',
'ai.chat.slashNoResults': '沒有相符的指令',
'ai.chat.slashEmptyHint': '可在 設定 → AI → 快捷訊息 中新增常用提示詞。',
// AI 聊天快捷入口
'ai.chatShortcuts.title': '聊天快捷入口',
'ai.chatShortcuts.selectionAction': '選取終端內容時顯示「新增到對話」',
'ai.chatShortcuts.selectionAction.description': '在終端裡選取文字後顯示 AI 快捷按鈕。',
// AI Error
'ai.codex.bridgeError': 'Codex 主程序處理器尚未載入。請完全重新啟動 NetMesh 或重新啟動 Electron 開發程序,然後重試。',
// AI Web Search
'ai.webSearch.title': '網路搜尋',
'ai.webSearch.enable': '啟用網路搜尋',
'ai.webSearch.enable.description': '允許 AI 代理搜尋網際網路取得最新資訊。',
'ai.webSearch.provider': '搜尋供應商',
'ai.webSearch.provider.description': '選擇一個網路搜尋 API 供應商。',
'ai.webSearch.apiKey': 'API 金鑰',
'ai.webSearch.apiKey.description': '所選搜尋供應商的 API 金鑰。',
'ai.webSearch.apiKey.placeholder': '輸入 API 金鑰...',
'ai.webSearch.apiHost': 'API 位址',
'ai.webSearch.apiHost.description': '自訂 API 端點。除非使用代理,否則保持預設值。',
'ai.webSearch.apiHost.searxngDescription': 'SearXNG 例項的 URL必填。',
'ai.webSearch.maxResults': '最大結果數',
'ai.webSearch.maxResults.description': '搜尋傳回的最大結果數1-20。',
// AI Safety Settings
'ai.safety.title': '安全',
'ai.safety.permissionMode': '權限模式',
'ai.safety.permissionMode.description': '控制 AI 透過 NetMesh 存取終端工作階段的方式。觀察者模式會阻止經由 NetMesh 的寫操作;外部 Agent CLI 可能仍有自己的本機工具和核准流程。',
'ai.safety.permissionMode.observer': '觀察者 - 只讀,禁止操作',
'ai.safety.permissionMode.confirm': '確認 - 操作前詢問',
'ai.safety.permissionMode.auto': '自動 - 自由執行',
'ai.safety.commandTimeout': '指令超時',
'ai.safety.commandTimeout.description': '透過 NetMesh 執行指令時允許執行的最長秒數,超時將被終止。',
'ai.safety.commandTimeout.unit': '秒',
'ai.safety.responseIdleTimeout': '內建 AI 回應等待時間',
'ai.safety.responseIdleTimeout.description': '內建 AI 請求連續這麼多秒沒有收到新回應時會被取消。此設定不控制整段回應總時長,也不影響指令超時。',
'ai.safety.responseIdleTimeout.unit': '秒',
'ai.safety.maxIterations': '最大迭代次數',
'ai.safety.maxIterations.description': '防止 AI 失控執行的最大工具呼叫迴圈次數。外部 Agent 可能有自己的內部迭代限制,以其為準。',
'ai.safety.blocklist': '指令黑名單',
'ai.safety.blocklist.description': '用於攔截透過 NetMesh 執行的危險指令的正規表示式。',
'ai.safety.blocklist.placeholder': '正規表示式...',
'ai.safety.blocklist.reset': '恢復預設',
'ai.safety.blocklist.add': '新增規則',
'ai.safety.grants.title': '許可記憶表',
'ai.safety.grants.heading': 'Confirm 模式放行規則',
'ai.safety.grants.description': 'Confirm 模式會先詢問再執行;儲存為規則後,相符的同類操作會自動放行。規則對所有終端節點/工作階段生效,也可手動編輯。',
'ai.safety.grants.empty': '尚無規則。可在核准時選擇「一律許可」,或手動新增。',
'ai.safety.grants.capability': '能力',
'ai.safety.grants.sessionPattern': '節點/工作階段模式',
'ai.safety.grants.commandPattern': '指令模式(可選)',
'ai.safety.grants.note': '備註(可選)',
'ai.safety.grants.add': '新增規則',
'ai.safety.grants.remove': '刪除',
'ai.safety.grants.export': '匯出 JSON',
'ai.safety.grants.import': '匯入 JSON',
'ai.safety.note': '這些安全設定會約束經由 NetMesh 執行的操作。外部 Agent CLI 也可能提供本機工具,那部分由 Agent 自己的控制規則約束。',
// 統一終端工作區和頂部標籤的 tooltip 文案 (issue #954)
'terminal.layer.addTerminal': '新增終端',
'terminal.layer.switchToSplitView': '切換到分割檢視',
'terminal.layer.sftp': '檔案傳輸',
'terminal.layer.scripts': '指令碼',
'terminal.layer.history': '指令歷史',
'terminal.layer.theme': '主題',
'terminal.layer.notes': '筆記',
'terminal.layer.aiChat': 'AI 助手',
'terminal.layer.movePanelLeft': '面板移至左側',
'terminal.layer.movePanelRight': '面板移至右側',
'terminal.layer.closePanel': '關閉面板',
'terminal.layer.closePane': '關閉分割',
'terminal.layer.resizeSplit': '調整分割大小',
'terminal.layer.splitHorizontal': '上下分割',
'terminal.layer.splitVertical': '左右分割',
'terminal.layer.openInNewSplit': '在新分割中開啟',
'terminal.layer.hostTree.search': '搜尋主機...',
'terminal.layer.hostTree.searchButton': '搜尋',
'terminal.layer.hostTree.tagsButton': '按標籤篩選',
'terminal.layer.hostTree.newHost': '新增主機',
'terminal.layer.hostTree.newHostInGroup': '在此群組中新增主機',
'terminal.layer.hostTree.editHost': '編輯主機',
'terminal.layer.hostTree.hostSavedNextConnection': '主機已更新,連線設定將在下次連線時生效。',
'terminal.layer.hostTree.newGroup': '新增群組',
'terminal.layer.hostTree.localShell': '本機 Shell',
'terminal.layer.hostTree.tagsEmpty': '暫無標籤',
'terminal.layer.hostTree.clearTags': '清除篩選',
'terminal.layer.hostTree.collapse': '收起主機列表',
'terminal.layer.hostTree.expand': '展開主機列表',
'terminal.layer.hostTree.empty': '沒有相符的主機',
'terminal.layer.hostTree.details.host': '主機',
'terminal.layer.hostTree.details.user': '使用者',
'terminal.layer.hostTree.details.port': '埠',
'terminal.layer.hostTree.details.protocol': '協定',
'terminal.layer.hostTree.details.group': '群組',
'terminal.layer.hostTree.details.tags': '標籤',
'terminal.layer.hostTree.details.lastConnected': '最近連線',
'topTabs.openQuickSwitcher': '開啟快速切換',
'topTabs.moreTabs': '更多分頁',
'topTabs.aiAssistant': 'AI 助手',
'topTabs.newLocalTerminal': '新增本機終端',
'topTabs.controlPanel': '快捷控制',
'topTabs.controlPanel.externalMcp': '對外 MCP',
'topTabs.controlPanel.theme': '主題',
'topTabs.controlPanel.theme.light': '淺色',
'topTabs.controlPanel.theme.dark': '深色',
'topTabs.controlPanel.theme.system': '系統',
'topTabs.externalMcp.enable': '啟用對外 MCP',
'topTabs.externalMcp.disable': '停用對外 MCP',
'topTabs.windowOpacity': '視窗透明度',
'topTabs.openSettings': '開啟設定',
'ai.chat.sessionHistory': '工作階段歷史',
'ai.chat.resizeInput': '拖曳調整訊息輸入框高度',
'ai.chat.attach': '附件',
'ai.chat.terminalSelectionAttachment': '終端選區',
'ai.chat.terminalSelectionLines': '{count} 行',
'ai.chat.collapse': '收起',
'ai.chat.expand': '展開',
'ai.chat.enableAgent': '啟用 {name}',
'ai.chat.artifact.noteFallback': 'Vault 筆記',
'ai.chat.artifact.openNotes': '開啟筆記',
'ai.chat.artifact.openHosts': '開啟主機',
'ai.chat.artifact.notesSummary': 'Vault 中有 {count} 條筆記',
'ai.chat.artifact.hostsSummary': 'Vault 中有 {count} 台主機',
'ai.chat.artifact.hostsAdded': '已新增 {count} 台主機',
'ai.chat.artifact.hostsPreview': '預覽 {count} 台主機',
'ai.chat.artifact.failed': 'Vault 操作失敗',
'ai.chat.artifact.unavailableTitle': '不可用',
'ai.chat.artifact.noteMissing': '該筆記已不在 Vault 中。',
'ai.chat.artifact.hostMissing': '該主機已不在 Vault 中。',
'ai.chat.artifact.snippetMissing': '該 Snippet 或指令碼已不在 Vault 中。',
'ai.chat.artifact.openSnippets': '開啟 Snippets',
'ai.chat.artifact.snippetsSummary': 'Vault 中有 {count} 個 Snippet',
'ai.chat.artifact.scriptsSummary': 'Vault 中有 {count} 個指令碼',
'ai.chat.artifact.snippetFallback': 'Vault Snippet',
'ai.chat.artifact.scriptFallback': '自動化指令碼',
'ai.chat.artifact.scriptLanguage': '{language} 指令碼',
'ai.chat.artifact.snippetDeleted': 'Snippet 已刪除',
'ai.chat.artifact.scriptDeleted': '指令碼已刪除',
'ai.chat.artifact.snippetRan': 'Snippet 已執行',
'ai.chat.artifact.scriptStarted': '指令碼執行已啟動',
'ai.chat.artifact.scriptRunStatus': '指令碼執行 {status}',
'ai.chat.artifact.scriptRunsSummary': '{count} 個指令碼執行',
'ai.chat.artifact.scriptRunStopped': '指令碼執行已停止',
'ai.chat.artifact.scriptRunPaused': '指令碼執行已暫停',
'ai.chat.artifact.scriptRunResumed': '指令碼執行已恢復',
'ai.chat.artifact.scriptReference': 'nct API 參考',
'zmodem.waitingForRemote': '等待遠端...',
'zmodem.uploading': '上傳中',
'zmodem.downloading': '下載中',
'zmodem.cancelTransfer': '取消傳輸 (Ctrl+C)',
'zmodem.overwrite.title': '遠端已存在同名檔案',
'zmodem.overwrite.applyToRest': '套用到其餘衝突檔案',
'zmodem.overwrite.overwrite': '覆蓋',
'zmodem.overwrite.skip': '跳過',
'zmodem.overwrite.cancel': '取消',
'settings.shortcuts.resetToDefault': '重設為預設值',
};