/** Traditional Chinese UI copy. Keep keys stable when adding another locale. */ export const zhTW = { search: "搜尋", sharedComputer: "共用電腦", privateComputer: "私人電腦", stopped: "已關閉", booting: "啟動中", running: "執行中", suspended: "休眠中", error: "發生錯誤", openComputer: "開啟電腦", stopTask: "停止任務", takeControl: "取得控制", takeOverNow: "接手操作", releaseControl: "釋放控制", done: "完成", skip: "略過", localWorkspace: "本機工作區", pinned: "已釘選", agentGroup: "Agent", operationFailed: "操作失敗", loadFailed: "載入失敗", settingsFailed: "設定失敗", loginFailed: "登入失敗", rememberFailed: "無法記住這則訊息", clipboardWriteBlocked: "瀏覽器封鎖剪貼簿寫入。", newConversation: "新對話", workTools: "工作工具", computer: "電腦", memory: "記憶", plugins: "外掛程式", pluginShort: "外掛", botSettings: "機器人設定", add: "新增", addBot: "新增機器人", addGroup: "新增群組", groups: "群組", unreadMessages: "{count} 則未讀訊息", members: "{count} 位成員", hideHiddenItems: "隱藏已隱藏項目", showHiddenItems: "顯示已隱藏項目", mcpConnected: "{count} 個 MCP 已連線", connectMcpServer: "接入 MCP server", openOnPhone: "在手機開啟", settings: "設定", about: "關於", helpCenter: "說明中心", sendFeedback: "傳送意見回饋", logout: "登出", workspaceMenu: "工作區選單", chooseBot: "選擇一個機器人", startRoomDiscussion: "和 {name} 開始討論", startBotWork: "和 {name} 開始工作", roomWillReply: "{names} 會一起回覆。", botWelcome: "傳送訊息,讓它在自己的電腦上完成任務。", remembered: "已記住", remember: "記住", working: "{name} 正在工作…", copyCode: "複製程式碼", copiedCode: "已複製", copyMessage: "複製", copiedMessage: "已複製", anotherConversationQueued: "另一則對話正在執行,這則會排隊。", workingStep: "{name} 正在工作… {step}", queuedMessages: "還有 {count} 則訊息排隊中", pausedUserControl: "你正在操控畫面,{name} 已暫停。完成後按「釋放控制」,它會從目前畫面接著做(排隊中的訊息也會一起處理)。", pausedNeedsUser: "{name} 需要你接手畫面(例如登入或驗證)。按「接手操作」處理,完成後再「釋放控制」。", releaseAndContinue: "釋放控制並繼續", attachFile: "附加檔案", attachFileHint: "圖片會直接給模型看;其他檔案放到電腦 inbox,兩小時後刪除", attachTooMany: "一次最多 4 個附件", attachTooLarge: "單檔不能超過 10 MB", attachType: "這個檔案類型不能附加", attachRemove: "移除 {name}", attachedFile: "附件 {name}", attachDrop: "放到這裡附加", teachTask: "教它一項任務", teachTaskHint: "你示範一次,它學成技能", teachNeedsBot: "先選擇一個機器人", taughtSkills: "已學會的技能", searchSkills: "搜尋技能", noMatchingSkills: "沒有符合的技能", teachDialogLead: "接下來畫面交給你操作,{name} 會在旁邊看:記錄你點了哪些控制項、輸入了什麼、去了哪些頁面,之後整理成一個「知道目的與流程」的技能,而不是死記座標。", teachGoalLabel: "你要示範什麼?(一句話說目標)", teachGoalPlaceholder: "例如:到 STAR 訓練系統,把指定課程的影片看完並完成測驗", teachTip1: "用平常的方式操作即可,不用刻意放慢;多餘的點擊會被忽略。", teachTip2: "會變動的值(搜尋字、名稱、日期)之後可以當作參數,做的時候先用實際例子。", teachTip3: "密碼欄位不會被記錄;遇到登入請先登好再開始示範。", startDemo: "開始示範", finishDemo: "完成示範", teachingBadge: "示範中", teachingComposerHint: "示範中:做完按「完成示範」再送訊息", teachingLive: "正在學:{goal}", teachingHint: "畫面已交給你,直接在右側(或放大)操作;做完按「完成示範」。", teachingCaptured: "已記錄 {count} 個動作", distilling: "正在把「{goal}」的示範整理成技能…", skillDraftTitle: "新技能草稿", skillDraftFrom: "從 {count} 個動作整理而來", skillName: "技能名稱", skillNamePlaceholder: "例如:完成 STAR 訓練課程", skillInputs: "可變輸入", skillSteps: "步驟(依意圖描述,可修改)", moreSteps: "…還有 {count} 步", editSteps: "編輯步驟", skillCheck: "怎麼確認完成", skillDistillFailed: "模型整理失敗,這是依動作直接列出的版本,建議修改後再儲存。", discard: "捨棄", testRun: "試跑", saveSkill: "儲存技能", messageTo: "傳訊息給 {name}", chooseConversationFirst: "先選擇對話", stopConversation: "停止對話", editSkill: "編輯技能", editSkillFull: "完整編輯", runSkillNamed: "執行「{name}」", skillEditLead: "寫給機器人看的說明,用意圖與畫面上的文字描述,不要寫座標。每行一項。", skillIntent: "意圖(這個技能要達成什麼)", skillWhenToUse: "使用時機", skillInputsLabel: "可變輸入(每行:名稱:說明|例:範例值)", skillInputsPlaceholder: "courseName:課程名稱|例:【TW】Workplace Bullying Prevention (2026)", skillPreconditions: "前提(開始前要成立的條件)", skillStepsLabel: "步驟(每行一步,可用 → 接上預期看到的畫面)", skillStepsPlaceholder: "點「Next」翻頁 → 頁碼加一;若 Next 鎖住就等它啟用", skillHowToCheck: "怎麼確認完成", skillWhatToReturn: "做完要回報什麼", skillCautions: "注意事項(每行一項)", deleteSkill: "刪除技能", deleteSkillConfirm: "確定刪除技能「{name}」?機器人之後就不會再認得它。", skillSaved: "已儲存", exportSkill: "匯出", exportSkillHint: "下載成 JSON,之後可以匯入到其他機器人", importSkill: "匯入技能", importSkillHint: "從先前匯出的 JSON 檔加入技能", skillImportInvalid: "這不是有效的技能檔。請選擇先前匯出的 JSON。", collapseSidebar: "收合側欄", botComputer: "{name} 的電腦", dedicatedScreen: "獨立螢幕", enlarge: "放大", userControlling: "你正在控制", aiReadOnly: "AI 操作中(唯讀)", readOnly: "唯讀", pasteClipboard: "貼上剪貼簿", copyDesktopClipboard: "複製桌面剪貼簿", moreActions: "更多操作", unpin: "取消釘選", pin: "釘選", markUnread: "標示為未讀", enterGroupName: "輸入分組名稱", changeGroup: "變更分組", createOrMoveGroup: "建立/移入分組", removeFromGroup: "移出分組", unhide: "取消隱藏", hide: "隱藏", delete: "刪除", chooseConversation: "選擇對話", deleteConversation: "刪除對話", clearConversation: "清除此對話", clearConversationTitle: "清除此對話?", clearConversationDescription: "訊息會刪除。這個 Agent 的長期記憶會保留。", cancel: "取消", clearMessages: "清除訊息", deleteConversationTitle: "刪除這則對話?", deleteConversationDescription: "這則對話會從列表消失。這個 Agent 的長期記憶會保留。", avatarAppearance: "頭像外觀", avatarAppearanceHint: "顏色、形狀、表情與背景都可選,眼睛會跟著游標", color: "顏色", chooseColor: "選擇 {value}", customColor: "自訂顏色", shape: "形狀", expression: "表情", background: "背景", bgNone: "無", bgCircle: "圓", bgSquircle: "方圓", bgSquare: "方", exprIdle: "閒置", exprHappy: "開心", exprSad: "難過", exprMad: "生氣", exprSurprised: "驚訝", exprWink: "眨眼", exprSleepy: "想睡", exprSmug: "得意", exprUnsure: "猶豫", exprScared: "害怕", exprLove: "喜歡", exprShy: "害羞", exprSick: "不適", exprThinking: "思考", name: "名稱", tags: "標籤", tagsPlaceholder: "研究、設計、客服(用逗號分隔)", tagsLimit: "最多儲存 6 個標籤", shortTitle: "簡短標題", shortTitlePlaceholder: "例如:產品研究助理", description: "說明", descriptionPlaceholder: "說明這個機器人的用途與工作範圍", saving: "儲存中…", saveSettings: "儲存設定", deleteBot: "刪除機器人", memoryHelp: "清除對話不會刪這些。只存明確偏好或事實,不要存密碼。", enableLongTermMemory: "啟用長期記憶", addMemory: "新增記憶", memoryPlaceholder: "只儲存明確偏好或事實;密碼與 token 會被拒絕。", memorySearch: "搜尋", filterMemory: "過濾記憶", noMemory: "還沒有長期記憶。對話裡講過的偏好,可以叫 Agent 記住,或你在這裡新增。", noMatchingMemory: "沒有符合的記憶。", save: "儲存", edit: "編輯", clearAllMemoryConfirm: "確定清除全部記憶?", clearMemoryConfirm: "確定清除", clearAll: "全部清除", mcpHelp: "點「選擇 MCP」從市集接入。標了需要金鑰的,先填 token 才能連。本機 stdio 會在 API 容器裡啟動。", mcpNamePlaceholder: "例如:github", mcpConnectFailed: "接入失敗,請檢查金鑰或稍後重試。", command: "Command", commandPlaceholder: "npx 或 uvx 或完整路徑", arguments: "參數", environmentVariables: "環境變數 KEY=value", headers: "Headers KEY=value", connecting: "連線中…", connectMcp: "接入 MCP", chooseMcp: "選擇 MCP", mcpPickerTitle: "選擇 MCP", mcpPickerLead: "從精選或官方市集挑一個,點下去接入。所有 Agent 都能用它的工具。", searchMcp: "搜尋 MCP", mcpRemote: "遠端", mcpLocal: "本機", mcpAdded: "已接入", mcpNeedsKey: "需要金鑰", mcpNoResults: "找不到符合的 MCP。換個關鍵字,或改用自訂接入。", mcpCustom: "自訂接入", mcpBackToList: "回到列表", mcpConnectNamed: "接入 {name}", mcpKeyHint: "這個 MCP 需要憑證才能連。", noMcp: "還沒有 MCP。點上面的「選擇 MCP」從市集接入。", toolsCount: "{count} 個工具", disabled: "已關閉", disconnected: "未連線", noTools: "沒有可用工具", reconnect: "重新連線", disable: "停用", enable: "啟用", preparingDesktop: "正在準備 Agent 的獨立桌面…", computerPreviewHint: "開啟電腦後,畫面會顯示在這裡。", bootingProgress: "啟動中…", restartDocker: "重啟 Docker", stopAndTakeOver: "停止並接管", hudBooting: "電腦啟動中…", hudWaking: "喚醒中…", hudConnecting: "連線中…", hudHandoff: "換手中…", pasteToRemoteComputer: "貼到遠端電腦", pasteRemoteHelp: "把外面的文字貼在這裡,再送進 VNC。這個方式在區網 HTTP 也能使用。", pasteTextPlaceholder: "在此貼上文字…", pasteIntoVnc: "貼入 VNC", botNamePlaceholder: "例如:研究助理", sharedComputerHint: "與其他機器人共用環境", privateComputerHint: "全新的獨立 Docker", create: "建立", groupDescription: "拉進群組會開一個對話,選中的 Agent 都會在裡面發言。", groupName: "群組名稱", groupNamePlaceholder: "例如:產品研究", chooseBots: "選擇機器人(至少兩位)", creating: "建立中…", createGroup: "建立群組", deleteGroup: "刪除群組", deleteNamed: "刪除 {name}?", deleteGroupDescription: "群組對話會刪除。裡面的機器人與他們自己的對話、記憶都會保留。", deleteDedicatedBotDescription: "對話、私人電腦與其中的檔案都會永久刪除。", deleteSharedBotDescription: "對話會刪除,但共用電腦與其中的檔案會保留。", phoneAccessDescription: "同一區網的手機用瀏覽器打開這個網址,再用同一個存取 token 登入。", localAddressWarning: "這是本機位址,手機打不開。請改成這台電腦的區網 IP,例如 http://192.168.x.x:3101。", close: "關閉", copied: "已複製", copyUrl: "複製網址", workspaceName: "工作區名稱", showHiddenBots: "顯示已隱藏的機器人", collapseRightSidebar: "收合右側欄", workspaceSettingsHint: "機器人外觀、記憶與 MCP 外掛在右側分頁。這裡只改這個工作區的顯示。", modelSettings: "模型", modelSettingsHint: "這裡的供應商與模型會套用到還沒單獨指定模型的機器人。", modelProvider: "模型供應商", providerXai: "xAI", providerOpencodeGo: "OpenCode Go", providerOpenaiCompatible: "OpenAI 相容", providerXaiHint: "Grok。金鑰從 console.x.ai 取得。", providerOpencodeGoHint: "OpenCode Go 訂閱。金鑰從 opencode.ai/auth 取得。", providerOpenaiCompatibleHint: "自架 vLLM、Ollama、LiteLLM 或其他 OpenAI 相容端點。", apiKey: "API 金鑰", apiKeyPlaceholder: "sk-…", apiKeyStored: "已儲存金鑰,留空表示沿用。", usingEnvKey: "目前會用環境變數 {name}。", clearApiKey: "清除已存金鑰", modelId: "模型", modelIdPlaceholder: "例如:qwen2.5 或 llama3.1", reloadModels: "重新載入模型列表", baseUrl: "Base URL", baseUrlPlaceholder: "http://127.0.0.1:11434/v1", baseUrlHint: "API 跑在 Docker 時,本機服務請填 host.docker.internal 而不是 localhost。", workspaceModelHint: "先選供應商,再填金鑰與模型。OpenAI 相容需要自己填端點。", aboutDescription: "本機多 Agent 工作區。每個機器人有自己的 Linux 電腦,也可以拉進群組一起討論,並接入 MCP 工具。", apiStatus: "API 狀態:{status}", statusNormal: "正常", statusUnavailable: "無法連線", statusChecking: "檢查中…", helpBotsTitle: "機器人", helpBots: "左上角 + 新增機器人。點左側列進入對話。右鍵可以釘選、隱藏或刪除。", helpGroupsTitle: "群組", helpGroups: "+ → 新增群組,選至少兩位。傳一句話,裡面的 Agent 都會回。", helpComputerTitle: "電腦", helpComputer: "右側「電腦」是這個 Agent 的獨立桌面。可以啟動、接管滑鼠鍵盤,或讓它自己操作。", helpMemoryTitle: "記憶", helpMemory: "清除對話不會刪長期記憶。可以叫 Agent 記住,或在右側「記憶」手動新增。", helpMcpTitle: "MCP 外掛", helpMcp: "左下「外掛程式」接入 MCP server。連上的工具會顯示在畫面上,對話時 Agent 可以使用。", helpSkillsTitle: "技能", helpSkills: "+ → 教它一項任務,示範一次就會整理成技能。示範結束後可以匯出 JSON,或把別人的技能檔匯入,換一個機器人也適用。", helpAttachTitle: "附件", helpAttach: "+ → 附加檔案。圖片這則訊息就會給模型看,不會存進對話紀錄。若機器人電腦要打開原檔,會暫放 inbox/,兩小時後自動刪,避免把磁碟塞滿。", helpShortcutsTitle: "快捷鍵", helpShortcuts: "Enter 送出,Shift+Enter 換行。正在回覆時送出鈕會變成停止。", feedbackDescription: "寫下問題、想法或想要的功能。這是本機工作區,內容會複製到剪貼簿,方便你貼到 issue 或訊息裡。", feedbackPlaceholder: "例如:群組對話希望可以指定誰先發言…", copyContent: "複製內容", loginTitle: "登入 LazyBoy", loginDescription: "輸入伺服器設定的共享存取 token。", accessToken: "存取 token", verifying: "驗證中…", login: "登入", agentComputer: "Agent 電腦", url: "URL", stdio: "stdio", http: "HTTP", sse: "SSE", argumentsPlaceholder: "-y @modelcontextprotocol/server-github", environmentVariablesPlaceholder: "GITHUB_TOKEN=…", urlPlaceholder: "https://mcp.example.com/mcp", headersPlaceholder: "Authorization=Bearer …", back: "返回", accounts: "帳號", accountsHelp: "存在這台機器人自己的保險箱。密碼只在這裡填,不會進聊天、也不會給模型看。排程碰到登入牆時會自動填表。", accountSite: "站名", accountSitePlaceholder: "例如:Gmail", accountHost: "網址或網域", accountHostPlaceholder: "mail.google.com", accountUsername: "帳號", accountPassword: "密碼", accountPasswordKeep: "留空表示不改密碼", accountNotes: "備註", accountNotesPlaceholder: "選填,例如:公司信箱", addAccount: "新增帳號", noAccounts: "還沒有已存帳號。排程若要自動登入,先在這裡加一筆。", loginNeedsYou: "需要你在鍵盤上登入", loginOpenScreen: "打開它的畫面", loginWhy: "登入之後:{why}", scheduleChip: "已排程", scheduleRunChip: "排程執行", schedules: "排程", schedule: "排程", schedCreate: "新增排程", schedEmpty: "還沒有排程。對話裡說「以後每天 9 點…」或按+。", schedPaused: "已暫停", schedRunNow: "立刻跑", schedRunning: "執行中…", schedActive: "啟用", schedNamePlaceholder: "例如:早報摘要", schedInstruction: "每次要做什麼", schedInstructionPlaceholder: "例如:打開信箱,把未讀摘要寫回對話。", schedWhen: "何時執行", schedEveryHour: "每小時", schedEveryDay: "每天", schedWeekdays: "工作日", schedEveryWeek: "每週一", schedEveryMonth: "每月", schedInterval: "間隔", schedAdvanced: "進階 cron", schedMinutes: "分鐘", schedHours: "小時", schedDays: "天", computerLoginHint: "在這台機器人自己的瀏覽器登入。Session 留在它的電腦,不要把密碼打在聊天裡。", } as const;