mirror of
https://github.com/NanmiCoder/cc-haha
synced 2026-07-21 14:03:35 +08:00
2158 lines
131 KiB
TypeScript
2158 lines
131 KiB
TypeScript
import type { TranslationKey } from './en'
|
||
|
||
export const zh: Record<TranslationKey, string> = {
|
||
// ─── Common ──────────────────────────────────────
|
||
'common.cancel': '取消',
|
||
'common.save': '儲存',
|
||
'common.delete': '刪除',
|
||
'common.add': '新增',
|
||
'common.run': '執行',
|
||
'common.send': '傳送',
|
||
'common.stop': '停止',
|
||
'common.tokens': '{count} tokens',
|
||
'common.rename': '重新命名',
|
||
'common.retry': '重試',
|
||
'common.loading': '載入中...',
|
||
'common.select': '選擇',
|
||
'common.enable': '啟用',
|
||
'common.disable': '禁用',
|
||
'common.active': '已啟用',
|
||
'common.error': '錯誤',
|
||
'common.copyFailed': '複製失敗。',
|
||
'common.copied': '已複製',
|
||
|
||
// ─── Sidebar ──────────────────────────────────────
|
||
'sidebar.newSession': '新建會話',
|
||
'sidebar.scheduled': '定時任務',
|
||
'sidebar.skills': '技能',
|
||
'sidebar.terminal': '終端',
|
||
'sidebar.settings': '設定',
|
||
'sidebar.searchPlaceholder': '搜尋會話...',
|
||
'sidebar.noSessions': '暫無會話',
|
||
'sidebar.noMatching': '沒有匹配的會話',
|
||
'sidebar.sessionListFailed': '會話列表載入失敗',
|
||
'sidebar.refreshSessions': '重新整理會話列表',
|
||
'search.global.trigger': '搜尋聊天',
|
||
'search.global.placeholder': '搜尋全部聊天內容…',
|
||
'search.global.recentTitle': '近期會話',
|
||
'search.global.noResults': '找不到符合的內容',
|
||
'search.global.matchCount': '{count} 筆符合',
|
||
'search.global.truncated': '僅顯示前 {count} 個會話,請縮小關鍵字',
|
||
'search.global.roleUser': '你',
|
||
'search.global.roleAssistant': '助手',
|
||
'search.global.loading': '搜尋中…',
|
||
'search.global.error': '搜尋失敗',
|
||
'search.global.close': '關閉',
|
||
'sidebar.projects': '專案',
|
||
'sidebar.projectMenu': '專案選單',
|
||
'sidebar.newProject': '新建專案',
|
||
'sidebar.archiveAllChats': '歸檔所有聊天',
|
||
'sidebar.organizeSidebar': '整理側邊欄',
|
||
'sidebar.sortCondition': '排序條件',
|
||
'sidebar.organizeByProject': '按專案',
|
||
'sidebar.organizeByRecentProject': '近期專案',
|
||
'sidebar.organizeByTime': '按時間順序',
|
||
'sidebar.sortByCreatedAt': '建立時間',
|
||
'sidebar.sortByUpdatedAt': '更新時間',
|
||
'sidebar.newBlankProject': '新建空白專案',
|
||
'sidebar.useExistingFolder': '使用現有資料夾',
|
||
'sidebar.chooseProjectFolderUnavailable': '選擇資料夾僅在桌面端可用。',
|
||
'sidebar.projectActions': '{project} 專案操作',
|
||
'sidebar.pinProject': '置頂專案',
|
||
'sidebar.unpinProject': '取消置頂專案',
|
||
'sidebar.openInFinder': '在“訪達”中開啟',
|
||
'sidebar.openInFinderFailed': '無法在訪達中開啟專案。',
|
||
'sidebar.openInFinderUnavailable': '沒有可用的檔案管理器。',
|
||
'sidebar.hideProjectFromSidebar': '從側邊欄隱藏',
|
||
'sidebar.restoreProjectToSidebar': '恢復到側邊欄',
|
||
'sidebar.restoreHiddenProjects': '恢復隱藏專案({count})',
|
||
'sidebar.projectHidden': '已從側邊欄隱藏 {project},已有會話不會被刪除。',
|
||
'sidebar.newSessionInProject': '在 {project} 中新建會話',
|
||
'sidebar.showMoreSessions': '展開顯示',
|
||
'sidebar.showFewerSessions': '摺疊顯示',
|
||
'sidebar.expandProject': '展開 {project}',
|
||
'sidebar.collapseProject': '摺疊 {project}',
|
||
'sidebar.worktree': 'worktree',
|
||
'sidebar.sessionRunning': '會話執行中',
|
||
'sidebar.missingDir': '目錄缺失',
|
||
'sidebar.confirmDelete': '確定要刪除這個會話嗎?此操作不可撤銷。',
|
||
'sidebar.batchManage': '批次管理',
|
||
'sidebar.batchSelectedCount': '已選 {count} 個',
|
||
'sidebar.batchSelectAll': '全選',
|
||
'sidebar.batchDeselectAll': '取消全選',
|
||
'sidebar.batchSelectGroup': '選擇{group}',
|
||
'sidebar.batchDeleteSelected': '刪除已選 ({count})',
|
||
'sidebar.batchDeleteConfirm': '確定要刪除 {count} 個會話嗎?此操作不可撤銷。',
|
||
'sidebar.batchDeleteConfirmBody': '以下會話將被刪除:',
|
||
'sidebar.batchDeleteMore': '...還有 {count} 條',
|
||
'sidebar.batchExit': '退出批次管理',
|
||
'sidebar.batchDeleteSucceeded': '已刪除 {count} 個會話。',
|
||
'sidebar.batchDeleteFailed': '有 {count} 個會話刪除失敗。',
|
||
'sidebar.allProjects': '所有專案',
|
||
'sidebar.other': '其他',
|
||
'sidebar.timeGroup.today': '今天',
|
||
'sidebar.timeGroup.yesterday': '昨天',
|
||
'sidebar.timeGroup.last7days': '最近 7 天',
|
||
'sidebar.timeGroup.last30days': '最近 30 天',
|
||
'sidebar.timeGroup.older': '更早',
|
||
'sidebar.collapse': '摺疊側邊欄',
|
||
'sidebar.expand': '展開側邊欄',
|
||
|
||
// ─── Title Bar ──────────────────────────────────────
|
||
'titlebar.code': '程式碼',
|
||
'titlebar.terminal': '終端',
|
||
'titlebar.history': '歷史',
|
||
|
||
// ─── Open Project ──────────────────────────────────────
|
||
'openProject.openProject': '開啟專案',
|
||
'openProject.openIn': '用 {target} 開啟',
|
||
'openProject.openFailed': '無法開啟專案',
|
||
|
||
// ─── Open With ─────────────────────────────────────
|
||
'openWith.title': '開啟方式',
|
||
'openWith.inAppBrowser': '應用內瀏覽器',
|
||
'openWith.systemBrowser': '系統瀏覽器',
|
||
'openWith.workspacePreview': '工作臺預覽',
|
||
'openWith.openInTarget': '用 {target} 開啟',
|
||
'openWith.revealInTarget': '在 {target} 中顯示',
|
||
'openWith.fileType.document': '文件',
|
||
'openWith.fileType.web': '網頁',
|
||
'openWith.fileType.image': '圖片',
|
||
'openWith.fileType.code': '程式碼',
|
||
'openWith.fileType.file': '檔案',
|
||
|
||
// ─── Assistant Output Targets ──────────────────────
|
||
'assistantOutputs.kind.markdown': 'Markdown',
|
||
'assistantOutputs.kind.html': 'HTML',
|
||
'assistantOutputs.kind.image': '圖片',
|
||
'assistantOutputs.kind.localhost': '本地服務',
|
||
'assistantOutputs.moreOutputs': '+{count} 個輸出',
|
||
'assistantOutputs.open': '開啟',
|
||
|
||
// ─── Workspace Panel ───────────────────────────────
|
||
'workspace.changedFiles': '已更改檔案',
|
||
'workspace.allFiles': '所有檔案',
|
||
'workspace.viewTabs': '工作區檢視',
|
||
'workspace.previewTabs': '預覽標籤',
|
||
'workspace.filterPlaceholder': '篩選檔案...',
|
||
'workspace.clearFilter': '清除檔案篩選',
|
||
'workspace.refresh': '重新整理工作區',
|
||
'workspace.closePanel': '關閉工作區面板',
|
||
'workspace.resizePanel': '調整工作區寬度',
|
||
'workspace.showNavigator': '顯示檔案導覽',
|
||
'workspace.hideNavigator': '隱藏檔案導覽',
|
||
'workbench.modeSwitch': '工作臺模式',
|
||
'workbench.modeWorkspace': '檔案',
|
||
'workbench.modeBrowser': '瀏覽器',
|
||
'workbench.expand': '展開面板',
|
||
'workbench.close': '關閉',
|
||
'workbench.tabTitle': '工作臺',
|
||
'workspace.closeTab': '關閉標籤',
|
||
'workspace.preview': '預覽',
|
||
'workspace.previewEmpty': '選擇一個檔案進行預覽。',
|
||
'workspace.notGitRepo': '當前目錄不是 Git 倉庫。',
|
||
'workspace.missingWorkdir': '工作目錄不存在。',
|
||
'workspace.loadError': '工作區資料載入失敗。',
|
||
'workspace.noChanges': '沒有變更',
|
||
'workspace.noFiles': '沒有檔案',
|
||
'workspace.noMatchingFiles': '沒有匹配的檔案',
|
||
'workspace.previewKind.diff': 'Diff',
|
||
'workspace.previewKind.file': '檔案',
|
||
'workspace.previewState.loading': '正在載入預覽...',
|
||
'workspace.previewState.binary': '二進位制檔案暫不支援預覽。',
|
||
'workspace.previewState.tooLarge': '檔案過大,無法預覽。',
|
||
'workspace.previewState.missing': '檔案不存在。',
|
||
'workspace.imagePreviewUnavailable': '圖片無法預覽。',
|
||
'workspace.previewLineLimit': '正在顯示已載入內容的前 {count} / {total} 行。',
|
||
'workspace.previewAllLines': '正在顯示全部 {total} 行已載入內容。',
|
||
'workspace.showAllLoadedLines': '顯示全部已載入行',
|
||
'workspace.collapsePreview': '收起預覽',
|
||
'workspace.addToChat': '新增到聊天',
|
||
'workspace.addSelectionToChat': '新增到對話',
|
||
'workspace.copyPath': '複製路徑',
|
||
'workspace.copyAbsolutePath': '複製絕對路徑',
|
||
'workspace.pathCopied': '路徑已複製。',
|
||
'workspace.localComment': '本地評論',
|
||
'workspace.commentLine': '評論第 {line} 行',
|
||
'workspace.commentLineTarget': '第 {line} 行',
|
||
'workspace.commentPlaceholder': '描述你希望這裡怎麼改...',
|
||
'workspace.addCommentToChat': '新增評論',
|
||
|
||
// ─── Status Bar ──────────────────────────────────────
|
||
'status.connected': '已連線',
|
||
'status.connecting': '連線中...',
|
||
'status.reconnecting': '重連中...',
|
||
'status.disconnected': '已斷開',
|
||
|
||
// ─── Settings ──────────────────────────────────────
|
||
'settings.title': '設定',
|
||
'settings.tab.providers': '服務商',
|
||
'settings.tab.permissions': '許可權',
|
||
'settings.tab.activity': 'Token 用量',
|
||
'settings.tab.trace': 'Trace',
|
||
'settings.tab.general': '通用',
|
||
'settings.tab.h5Access': 'H5 訪問',
|
||
'settings.tab.terminal': '終端',
|
||
'settings.tab.skills': '技能',
|
||
'settings.tab.mcp': 'MCP',
|
||
'settings.tab.plugins': '外掛',
|
||
'settings.tab.diagnostics': '診斷',
|
||
|
||
// Settings > Usage
|
||
'settings.activity.title': 'Token 用量',
|
||
'settings.activity.profileTitle': '個人資料',
|
||
'settings.activity.profilePrivacy': '僅本地',
|
||
'settings.activity.defaultHandle': 'github.com/NanmiCoder/cc-haha',
|
||
'settings.activity.editProfile': '編輯個人資料',
|
||
'settings.activity.displayName': '顯示名稱',
|
||
'settings.activity.subtitle': '第二行',
|
||
'settings.activity.displayNameHelper': '修改主名稱和第二行;第二行如果是網址會自動作為連結開啟。',
|
||
'settings.activity.avatar': '頭像',
|
||
'settings.activity.avatarHelper': '支援 PNG、JPEG 或 WebP,最大 2 MB。',
|
||
'settings.activity.changeAvatar': '更換頭像',
|
||
'settings.activity.removeAvatar': '移除頭像',
|
||
'settings.activity.saveProfile': '儲存',
|
||
'settings.activity.cancelEdit': '取消',
|
||
'settings.activity.profileSaved': '已儲存到本地',
|
||
'settings.activity.profileSaveFailed': '儲存個人資料失敗',
|
||
'settings.activity.subtitleLoading': '基於本機 Claude Code CLI 會話記錄統計',
|
||
'settings.activity.totalTokens': '累計 Token 數',
|
||
'settings.activity.peakTokens': '峰值 Token 數',
|
||
'settings.activity.longestTask': '最長任務時長',
|
||
'settings.activity.currentStreak': '當前連續天數',
|
||
'settings.activity.longestStreak': '最長連續天數',
|
||
'settings.activity.noDuration': '0 分鐘',
|
||
'settings.activity.tokenActivity': 'Token 活動',
|
||
'settings.activity.mode.daily': '每日',
|
||
'settings.activity.mode.weekly': '每週',
|
||
'settings.activity.mode.cumulative': '累計',
|
||
'settings.activity.modeHelp.daily': '每日:每個格子表示當天 Token 用量。',
|
||
'settings.activity.modeHelp.weekly': '每週:每一列表示這一週的 Token 總量。',
|
||
'settings.activity.modeHelp.cumulative': '累計:每一列表示截至該周的累計 Token 總量。',
|
||
'settings.activity.emptyTitle': '暫無本地用量',
|
||
'settings.activity.emptyBody': '啟動 CLI 或桌面會話並完成模型回覆後,這裡會顯示統計。',
|
||
'settings.activity.metric.yesterday': '昨天',
|
||
'settings.activity.metric.today': '今天',
|
||
'settings.activity.metric.last4': '近 4 天',
|
||
'settings.activity.metric.last30': '30 天',
|
||
'settings.activity.metric.streak': '連續活躍',
|
||
'settings.activity.metric.bestStreak': '最長 {days} 天',
|
||
'settings.activity.heatmapLabel': '按天統計的 Token 用量',
|
||
'settings.activity.weekRange': '{start} - {end}',
|
||
'settings.activity.cumulativeThrough': '截至 {date}',
|
||
'settings.activity.tokenValue': '{tokens} Token',
|
||
'settings.activity.count.sessionOne': '{count} 次會話',
|
||
'settings.activity.count.sessionOther': '{count} 次會話',
|
||
'settings.activity.count.dayOne': '{count} 天',
|
||
'settings.activity.count.dayOther': '{count} 天',
|
||
'settings.activity.count.runOne': '{count} 次執行',
|
||
'settings.activity.count.runOther': '{count} 次執行',
|
||
'settings.activity.weekday.mon': '週一',
|
||
'settings.activity.weekday.wed': '週三',
|
||
'settings.activity.weekday.fri': '週五',
|
||
'settings.activity.selectedDay': '選中日期',
|
||
'settings.activity.sessions': '會話',
|
||
'settings.activity.tokens': 'Token',
|
||
'settings.activity.messages': '訊息',
|
||
'settings.activity.tools': '工具',
|
||
'settings.activity.activityInsights': '活動洞察',
|
||
'settings.activity.activeRate': '活躍率',
|
||
'settings.activity.mostUsedModel': '最常用模型',
|
||
'settings.activity.exploredSkills': '已使用的技能',
|
||
'settings.activity.totalSkillUses': '技能使用總數',
|
||
'settings.activity.totalToolCalls': '工具呼叫',
|
||
'settings.activity.totalSessions': '會話總數',
|
||
'settings.activity.mostUsedPluginsAndSkills': '最常用的外掛和技能',
|
||
'settings.activity.none': '暫無',
|
||
'settings.activity.less': '少',
|
||
'settings.activity.more': '多',
|
||
|
||
// Settings > Terminal
|
||
'settings.terminal.title': '終端',
|
||
'settings.terminal.description': '直接執行宿主機命令,用於安裝外掛、Skills、MCP 等擴充套件。桌面端已內建 claude-haha;文件裡的 claude <引數> 可替換成 claude-haha <引數>,例如 claude-haha plugin install ... 或 claude-haha mcp add ...',
|
||
'settings.terminal.infoLabel': '終端安裝說明',
|
||
'settings.terminal.clear': '清屏',
|
||
'settings.terminal.restart': '重啟',
|
||
'settings.terminal.windowTitle': '宿主機 Shell',
|
||
'settings.terminal.unavailableTitle': '需要桌面端執行時',
|
||
'settings.terminal.unavailableBody': '請在打包後的桌面端裡開啟這個頁面,才能啟動互動式終端。',
|
||
'settings.terminal.preferencesTitle': '啟動 Shell',
|
||
'settings.terminal.preferencesBody': '用於新開的終端會話,以及點選重啟後的終端。',
|
||
'settings.terminal.startupShell': '啟動 Shell',
|
||
'settings.terminal.customPath': '自定義 Shell 路徑',
|
||
'settings.terminal.customPathPlaceholder': 'C:\\Program Files\\PowerShell\\7\\pwsh.exe',
|
||
'settings.terminal.customPathRequired': '儲存前請先填寫 Shell 路徑。',
|
||
'settings.terminal.customPathAbsolute': '自定義 Shell 路徑必須是絕對 Windows 路徑。',
|
||
'settings.terminal.saveShell': '儲存 Shell',
|
||
'settings.terminal.saveShellSuccess': '已儲存。重啟終端或新開終端後生效。',
|
||
'settings.terminal.shell.system': '系統預設',
|
||
'settings.terminal.shell.systemDesc': '保持當前基於 COMSPEC 的行為。',
|
||
'settings.terminal.shell.pwsh': 'PowerShell 7 (pwsh)',
|
||
'settings.terminal.shell.pwshDesc': '安裝了 pwsh.exe 時優先使用它。',
|
||
'settings.terminal.shell.powershell': 'Windows PowerShell',
|
||
'settings.terminal.shell.powershellDesc': '使用系統自帶的 powershell.exe。',
|
||
'settings.terminal.shell.cmd': '命令提示符',
|
||
'settings.terminal.shell.cmdDesc': '明確使用 cmd.exe。',
|
||
'settings.terminal.shell.custom': '自定義可執行檔案',
|
||
'settings.terminal.shell.customDesc': '啟動一個絕對路徑的 Shell 可執行檔案。',
|
||
'settings.terminal.status.idle': '空閒',
|
||
'settings.terminal.status.starting': '啟動中',
|
||
'settings.terminal.status.running': '執行中',
|
||
'settings.terminal.status.exited': '已退出',
|
||
'settings.terminal.status.error': '錯誤',
|
||
'settings.terminal.status.unavailable': '不可用',
|
||
'settings.terminal.bashPathLabel': 'Bash 路徑',
|
||
'settings.terminal.bashPathDescription': 'Windows 下預設使用 CMD 作為終端。如果工具呼叫 grep、sed 等 Unix 命令,請在此配置 Bash 可執行檔案路徑(如 Git Bash)。',
|
||
'settings.terminal.bashPathSave': '儲存',
|
||
'settings.terminal.bashPathReset': '恢復預設',
|
||
'settings.terminal.bashPathSaved': '已儲存',
|
||
'settings.terminal.bashPathInvalid': '路徑不存在,請選擇有效的 Bash 可執行檔案',
|
||
'terminal.newTab': '新建終端',
|
||
'terminal.openInTab': '在 Tab 中開啟',
|
||
'terminal.closePanel': '關閉終端面板',
|
||
'terminal.resizePanel': '調整終端面板大小',
|
||
|
||
// Settings > Diagnostics
|
||
'settings.diagnostics.title': '診斷',
|
||
'settings.diagnostics.description': '記錄服務端與 CLI 的啟動、服務商、會話執行錯誤,便於復現和定位問題。',
|
||
'settings.diagnostics.refresh': '重新整理',
|
||
'settings.diagnostics.totalSize': '日誌大小',
|
||
'settings.diagnostics.events': '事件數',
|
||
'settings.diagnostics.recentErrors': '24h 警告',
|
||
'settings.diagnostics.retention': '保留策略',
|
||
'settings.diagnostics.retentionValue': '{days} 天 / {size}',
|
||
'settings.diagnostics.logDirectory': '日誌目錄',
|
||
'settings.diagnostics.openDirectory': '開啟',
|
||
'settings.diagnostics.exportBundle': '匯出診斷包',
|
||
'settings.diagnostics.copySummary': '複製錯誤摘要',
|
||
'settings.diagnostics.clearLogs': '清理日誌',
|
||
'settings.diagnostics.recentEvents': '最近事件',
|
||
'settings.diagnostics.privacyNote': '匯出的診斷包會脫敏,不包含聊天內容、檔案內容、完整環境變數或 API Key。',
|
||
'settings.diagnostics.noEvents': '暫無診斷事件。',
|
||
'settings.diagnostics.noRecentErrors': '最近沒有警告或錯誤。',
|
||
'settings.diagnostics.loadFailed': '載入診斷資訊失敗。',
|
||
'settings.diagnostics.openFailed': '開啟診斷目錄失敗。',
|
||
'settings.diagnostics.exportFailed': '匯出診斷包失敗。',
|
||
'settings.diagnostics.exported': '已匯出 {file}',
|
||
'settings.diagnostics.summaryCopied': '錯誤摘要已複製。',
|
||
'settings.diagnostics.copyFailed': '複製錯誤摘要失敗。',
|
||
'settings.diagnostics.confirmClear': '確定清理所有本地診斷日誌和已匯出的診斷包?',
|
||
'settings.diagnostics.cleared': '診斷日誌已清理。',
|
||
'settings.diagnostics.clearFailed': '清理診斷日誌失敗。',
|
||
'settings.diagnostics.eventDetails': '詳情',
|
||
'settings.diagnostics.doctorTitle': 'Doctor',
|
||
'settings.diagnostics.doctorDescription': '用於啟動和介面狀態問題的安全桌面修復。',
|
||
'settings.diagnostics.doctorProtectedData': '絕不會觸碰聊天曆史、模型配置、Skills、MCP、IM 或 OAuth。',
|
||
'settings.diagnostics.doctorSafeKeys': '只會清理:cc-haha-open-tabs、cc-haha-session-runtime、cc-haha-theme、cc-haha-locale 和 cc-haha.persistence.schemaVersion。',
|
||
'settings.diagnostics.runDoctor': '執行 Doctor',
|
||
'settings.diagnostics.doctorCompleted': 'Doctor 已執行完成。',
|
||
'settings.diagnostics.doctorPartial': 'Doctor 已完成,但有 {count} 個本地清理項處理失敗。',
|
||
'settings.diagnostics.doctorFailed': 'Doctor 執行失敗。',
|
||
'settings.diagnostics.doctorResultLocal': '已清理 {count} 個安全 UI 鍵。',
|
||
'settings.diagnostics.doctorResultFailedKeys': '有 {count} 個鍵無法移除。',
|
||
'settings.diagnostics.doctorServerRan': '服務端 Doctor 修復也已執行。',
|
||
'settings.diagnostics.doctorServerUnavailable': '服務端 Doctor 不可用,因此只執行了本地修復。',
|
||
'errorBoundary.title': '出現異常。',
|
||
'errorBoundary.description': '錯誤已記錄到診斷日誌。',
|
||
|
||
// Settings > Claude Official Login
|
||
'settings.claudeOfficialLogin.intro': '使用官方 Claude 模型需要登入你的 Claude.ai 賬號。點選下方按鈕,瀏覽器會開啟 Claude 官方登入頁面,授權後自動回到這裡。',
|
||
'settings.claudeOfficialLogin.loginButton': '登入 Claude 賬號',
|
||
'settings.claudeOfficialLogin.loginStarting': '正在啟動…',
|
||
'settings.claudeOfficialLogin.logoutButton': '登出',
|
||
'settings.claudeOfficialLogin.logoutProcessing': '處理中…',
|
||
'settings.claudeOfficialLogin.loggedInPrefix': '已登入(Claude',
|
||
'settings.claudeOfficialLogin.subTypeUnknown': '未知',
|
||
'settings.claudeOfficialLogin.errorPrefix': '錯誤:',
|
||
'settings.claudeOfficialLogin.openBrowserFailed': '無法開啟瀏覽器,請手動訪問授權連結。',
|
||
|
||
// Settings > ChatGPT Official Login
|
||
'settings.chatgptOfficialLogin.intro': '登入 ChatGPT 後,就可以在桌面端會話裡使用 GPT 模型。',
|
||
'settings.chatgptOfficialLogin.loginButton': '登入 ChatGPT',
|
||
'settings.chatgptOfficialLogin.loginStarting': '正在啟動登入...',
|
||
'settings.chatgptOfficialLogin.logoutButton': '退出登入',
|
||
'settings.chatgptOfficialLogin.logoutProcessing': '正在退出...',
|
||
'settings.chatgptOfficialLogin.loggedInPrefix': '已登入',
|
||
'settings.chatgptOfficialLogin.accountUnknown': 'ChatGPT 賬號',
|
||
'settings.chatgptOfficialLogin.openBrowserFailed': '無法開啟瀏覽器。請複製授權連結並手動開啟。',
|
||
'settings.chatgptOfficialLogin.copyAuthorizeUrl': '複製授權連結',
|
||
'settings.chatgptOfficialLogin.copyLinkFailed': '無法複製授權連結。',
|
||
'settings.chatgptOfficialLogin.errorPrefix': 'ChatGPT OAuth 錯誤:',
|
||
|
||
// Settings > Providers
|
||
'settings.providers.title': '服務商',
|
||
'settings.providers.description': '管理 API 服務商以訪問模型。',
|
||
'settings.providers.addProvider': '新增服務商',
|
||
'settings.providers.officialName': 'Claude 官方',
|
||
'settings.providers.officialDesc': 'Anthropic 原生接入 — 無需 API 金鑰',
|
||
'settings.providers.openaiOfficialName': 'ChatGPT 官方',
|
||
'settings.providers.openaiOfficialDesc': '透過 ChatGPT 賬號完成 OpenAI OAuth — 無需 API 金鑰',
|
||
'settings.providers.connected': '已連線 ({latency}ms)',
|
||
'settings.providers.failed': '失敗: {error}',
|
||
'settings.providers.connectivityOk': '① 連通 ({latency}ms)',
|
||
'settings.providers.connectivityFailed': '① 連通失敗: {error}',
|
||
'settings.providers.proxyOk': '② 代理轉換 ({latency}ms)',
|
||
'settings.providers.proxyFailed': '② 代理轉換失敗: {error}',
|
||
'settings.providers.confirmDelete': '刪除服務商 "{name}"?此操作不可撤銷。',
|
||
'settings.providers.activate': '啟用',
|
||
'settings.providers.default': '預設',
|
||
'settings.providers.setDefault': '設為預設',
|
||
'settings.providers.test': '測試',
|
||
'settings.providers.edit': '編輯',
|
||
'settings.providers.dragToReorder': '拖曳排序',
|
||
'settings.providers.requestFailed': '請求失敗',
|
||
'settings.providers.addTitle': '新增服務商',
|
||
'settings.providers.editTitle': '編輯服務商',
|
||
'settings.providers.preset': '預設',
|
||
'settings.providers.name': '名稱',
|
||
'settings.providers.namePlaceholder': '服務商名稱',
|
||
'settings.providers.notes': '備註',
|
||
'settings.providers.notesPlaceholder': '可選備註...',
|
||
'settings.providers.baseUrl': '介面地址',
|
||
'settings.providers.baseUrlPlaceholder': 'https://api.example.com/anthropic',
|
||
'settings.providers.apiKey': 'API 金鑰',
|
||
'settings.providers.apiKeyKeep': 'API 金鑰(留空保持不變)',
|
||
'settings.providers.getApiKey': '獲取 API Key',
|
||
'settings.providers.modelMapping': '模型對映',
|
||
'settings.providers.mainModel': '主模型',
|
||
'settings.providers.haikuModel': 'Haiku 模型',
|
||
'settings.providers.sonnetModel': 'Sonnet 模型',
|
||
'settings.providers.opusModel': 'Opus 模型',
|
||
'settings.providers.model1mSupportShort': '1M',
|
||
'settings.providers.modelIdPlaceholder': '模型 ID',
|
||
'settings.providers.sameAsMain': '與主模型相同',
|
||
'settings.providers.contextSettingsTitle': '上下文與自動壓縮',
|
||
'settings.providers.contextSettingsDesc': '預設會自動應用模型視窗。只有服務商調整限制,或使用自定義模型 ID 時才需要修改。',
|
||
'settings.providers.contextSettingsEdit': '高階',
|
||
'settings.providers.contextSettingsHide': '收起',
|
||
'settings.providers.contextSummaryAuto': '自動識別已配置模型;未知模型使用內建兜底',
|
||
'settings.providers.contextFallbackAuto': '未知模型:自動',
|
||
'settings.providers.contextFallbackSummary': '未知模型:{tokens}',
|
||
'settings.providers.modelContextWindows': '模型上下文視窗',
|
||
'settings.providers.mainContextWindow': '主模型上下文',
|
||
'settings.providers.haikuContextWindow': 'Haiku 模型上下文',
|
||
'settings.providers.sonnetContextWindow': 'Sonnet 模型上下文',
|
||
'settings.providers.opusContextWindow': 'Opus 模型上下文',
|
||
'settings.providers.contextWindowPlaceholder': '例如 200000',
|
||
'settings.providers.modelContextWindowsDesc': '按每個模型的真實上下文填寫,內建預設會自動帶出,留空則走內建識別或預設 200K。',
|
||
'settings.providers.modelContextWindowNumberError': '請輸入整數。',
|
||
'settings.providers.modelContextWindowRangeError': '範圍必須在 16000 到 10000000 之間。',
|
||
'settings.providers.autoCompactWindow': '未知模型兜底視窗',
|
||
'settings.providers.autoCompactWindowPlaceholder': '可選,例如 200000',
|
||
'settings.providers.autoCompactWindowDesc': '僅用於無法識別的模型;已配置的模型視窗會優先使用。',
|
||
'settings.providers.autoCompactWindowNumberError': '請輸入整數。',
|
||
'settings.providers.autoCompactWindowRangeError': '範圍必須在 16000 到 10000000 之間。',
|
||
'settings.providers.testConnection': '測試連線',
|
||
'settings.providers.settingsJson': '設定 JSON',
|
||
'settings.providers.settingsJsonDesc': '~/.claude/cc-haha/settings.json — 直接編輯,儲存時寫入。',
|
||
'settings.providers.jsonError': 'JSON 語法錯誤: {error}',
|
||
'settings.providers.apiFormat': 'API 格式',
|
||
'settings.providers.apiFormatAnthropic': 'Anthropic Messages (原生)',
|
||
'settings.providers.apiFormatOpenaiChat': 'OpenAI Chat Completions (代理轉換)',
|
||
'settings.providers.apiFormatOpenaiResponses': 'OpenAI Responses API (代理轉換)',
|
||
'settings.providers.proxyHint': '請求將透過本地代理轉換協議格式',
|
||
'settings.providers.authStrategy': '認證變數',
|
||
'settings.providers.authStrategyApiKey': 'API Key (ANTHROPIC_API_KEY)',
|
||
'settings.providers.authStrategyApiKeyDesc': '直連 Anthropic 官方 API,傳送 x-api-key。',
|
||
'settings.providers.authStrategyAuthToken': 'Bearer Token (ANTHROPIC_AUTH_TOKEN)',
|
||
'settings.providers.authStrategyAuthTokenDesc': '大多數第三方 Anthropic 相容服務,傳送 Authorization Bearer。',
|
||
'settings.providers.authStrategyAuthTokenEmptyApiKey': 'Bearer + 清空 API_KEY',
|
||
'settings.providers.authStrategyAuthTokenEmptyApiKeyDesc': 'OpenRouter/Ollama 等場景,避免回退到 Anthropic API key。',
|
||
'settings.providers.authStrategyDualSameToken': '兩個變數寫同一個 Token',
|
||
'settings.providers.authStrategyDualSameTokenDesc': 'Hugging Face Router 等同時檢查兩個變數的服務。',
|
||
'settings.providers.authStrategyDualDummy': '兩個變數寫 dummy',
|
||
'settings.providers.authStrategyDualDummyDesc': 'vLLM 等本地相容服務,只需要佔位認證值。',
|
||
'settings.providers.toolSearchEnabled': '啟用 Tool Search',
|
||
'settings.providers.toolSearchDesc': '按需載入 MCP 和延遲工具,減少首輪工具 schema token。弱模型或不支援 tool_reference 的服務商可以關閉。',
|
||
'settings.providers.toolSearchUnsupported': '目前僅 Anthropic Messages 格式支援 Tool Search;OpenAI 代理格式會保留完整工具 schema。',
|
||
'settings.providers.disableExperimentalBetas': '關閉實驗性 Beta 標頭',
|
||
'settings.providers.disableExperimentalBetasDesc': '為此服務商設定 CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1,避免第三方通道拒絕 beta API 形態。',
|
||
|
||
// Settings > Permissions
|
||
'settings.permissions.title': '許可權模式',
|
||
'settings.permissions.description': '控制工具執行許可權的處理方式。',
|
||
'settings.permissions.default': '詢問許可權',
|
||
'settings.permissions.defaultDesc': '執行工具前先詢問',
|
||
'settings.permissions.acceptEdits': '接受編輯',
|
||
'settings.permissions.acceptEditsDesc': '自動批准檔案編輯,其他操作仍詢問',
|
||
'settings.permissions.plan': '計劃模式',
|
||
'settings.permissions.planDesc': '僅思考和規劃,不執行操作',
|
||
'settings.permissions.bypass': '跳過全部',
|
||
'settings.permissions.bypassDesc': '跳過所有許可權檢查(危險)',
|
||
|
||
// Settings > Adapters
|
||
'settings.tab.adapters': 'IM 接入',
|
||
'settings.adapters.description': '配置即時通訊介面卡,透過 Telegram、微信、釘釘、WhatsApp 或飛書與 Claude Code 對話。首次配置請參考',
|
||
'settings.adapters.configurationDocs': '文件地址',
|
||
'settings.adapters.descriptionAfterDocs': '。',
|
||
'settings.adapters.telegram': 'Telegram',
|
||
'settings.adapters.feishu': '飛書',
|
||
'settings.adapters.wechat': '微信',
|
||
'settings.adapters.dingtalk': '釘釘',
|
||
'settings.adapters.whatsapp': 'WhatsApp',
|
||
'settings.adapters.botToken': 'Bot Token',
|
||
'settings.adapters.botTokenPlaceholder': '貼上從 @BotFather 獲取的 Token',
|
||
'settings.adapters.appId': 'App ID',
|
||
'settings.adapters.appIdPlaceholder': '如 cli_xxx',
|
||
'settings.adapters.appSecret': 'App Secret',
|
||
'settings.adapters.appSecretPlaceholder': '從飛書開放平臺獲取',
|
||
'settings.adapters.feishuCreateBotTitle': '還沒有飛書機器人?',
|
||
'settings.adapters.feishuCreateBotDesc': '使用文件中的官方 OpenClaw 模板,一鍵建立已預配許可權的飛書機器人。建立後把 App ID 和 App Secret 填到下方。',
|
||
'settings.adapters.feishuCreateBotAction': '一鍵建立飛書機器人',
|
||
'settings.adapters.feishuCreateBotStepCreate': '點選模板建立機器人。',
|
||
'settings.adapters.feishuCreateBotStepFill': '複製 App ID 和 App Secret,回到這裡填寫。',
|
||
'settings.adapters.encryptKey': 'Encrypt Key',
|
||
'settings.adapters.encryptKeyPlaceholder': '可選',
|
||
'settings.adapters.verificationToken': 'Verification Token',
|
||
'settings.adapters.verificationTokenPlaceholder': '可選',
|
||
'settings.adapters.allowedUsers': '允許的使用者',
|
||
'settings.adapters.allowedUsersHint': '逗號分隔。留空則只允許已配對使用者。',
|
||
'settings.adapters.tgAllowedUsersPlaceholder': '如 123456789, 987654321',
|
||
'settings.adapters.fsAllowedUsersPlaceholder': '如 ou_xxx, ou_yyy',
|
||
'settings.adapters.wcAllowedUsersPlaceholder': '如 wx_user_id_1, wx_user_id_2',
|
||
'settings.adapters.dtAllowedUsersPlaceholder': '如 manager001, staff_yyy',
|
||
'settings.adapters.waAllowedUsersPlaceholder': '如 15551234567@s.whatsapp.net',
|
||
'settings.adapters.defaultProject': '預設專案',
|
||
'settings.adapters.defaultProjectHint': '新 IM 會話的預設工作目錄。留空則使用當前使用者工作目錄。',
|
||
'settings.adapters.streamingCard': '流式卡片模式',
|
||
'settings.adapters.streamingCardDesc': '實時更新訊息內容,體驗更好',
|
||
'settings.adapters.serverUrl': '伺服器地址',
|
||
'settings.adapters.serverUrlPlaceholder': 'ws://127.0.0.1:3456',
|
||
'settings.adapters.save': '儲存',
|
||
'settings.adapters.saved': '已儲存',
|
||
'settings.adapters.saving': '儲存中...',
|
||
'settings.adapters.startHint': '儲存後執行介面卡:cd adapters && bun run {platform}',
|
||
'settings.adapters.pairing': '配對管理',
|
||
'settings.adapters.pairingDesc': '生成配對碼後在 IM 私聊中傳送給 Bot,完成身份繫結。',
|
||
'settings.adapters.generateCode': '生成配對碼',
|
||
'settings.adapters.regenerateCode': '重新生成',
|
||
'settings.adapters.codeExpired': '已過期',
|
||
'settings.adapters.codeExpiresIn': '有效期剩餘',
|
||
'settings.adapters.minutes': '分鐘',
|
||
'settings.adapters.pairingCodeHint': '請在釘釘、飛書、微信、WhatsApp 或 Telegram 私聊中傳送此配對碼給 Bot。微信和 WhatsApp 需要先完成掃碼繫結。',
|
||
'settings.adapters.pairedUsers': '已配對使用者',
|
||
'settings.adapters.noPairedUsers': '暫無已配對使用者',
|
||
'settings.adapters.unbind': '解綁',
|
||
'settings.adapters.unbindConfirm': '確定要解綁該使用者嗎?解綁後需重新配對才能使用。',
|
||
'settings.adapters.platform.telegram': 'Telegram',
|
||
'settings.adapters.platform.feishu': '飛書',
|
||
'settings.adapters.platform.wechat': '微信',
|
||
'settings.adapters.platform.dingtalk': '釘釘',
|
||
'settings.adapters.platform.whatsapp': 'WhatsApp',
|
||
'settings.adapters.dingtalkQrTitle': '掃碼繫結釘釘機器人',
|
||
'settings.adapters.dingtalkQrDesc': '使用釘釘手機 App 掃碼,一鍵建立並授權機器人。成功後會自動儲存 Client ID / Secret 並重啟介面卡。',
|
||
'settings.adapters.dingtalkStartAuth': '掃碼繫結',
|
||
'settings.adapters.dingtalkUnbindBot': '解除機器人繫結',
|
||
'settings.adapters.dingtalkQrAlt': '釘釘授權二維碼',
|
||
'settings.adapters.dingtalkWaiting': '等待釘釘掃碼確認...',
|
||
'settings.adapters.dingtalkBound': '釘釘機器人已繫結。',
|
||
'settings.adapters.dingtalkAuthFailed': '釘釘掃碼授權失敗。',
|
||
'settings.adapters.dingtalkAuthExpired': '釘釘掃碼授權已過期,請重新生成二維碼。',
|
||
'settings.adapters.dingtalkUnbindFailed': '釘釘解綁失敗。',
|
||
'settings.adapters.dingtalkUnbindBotConfirm': '確定解除這個釘釘機器人繫結嗎?解除後需要重新掃碼,釘釘才能繼續收發訊息。',
|
||
'settings.adapters.dingtalkClientId': 'Client ID',
|
||
'settings.adapters.dingtalkClientIdPlaceholder': '掃碼後自動填寫,也可手動輸入',
|
||
'settings.adapters.dingtalkClientSecret': 'Client Secret',
|
||
'settings.adapters.dingtalkClientSecretPlaceholder': '掃碼後自動填寫,也可手動輸入',
|
||
'settings.adapters.dingtalkEndpoint': 'Stream Endpoint',
|
||
'settings.adapters.dingtalkEndpointPlaceholder': '預設 https://api.dingtalk.com',
|
||
'settings.adapters.dingtalkPermissionCardTemplateId': '許可權卡片模板 ID',
|
||
'settings.adapters.dingtalkPermissionCardTemplateIdPlaceholder': '可選,互動卡片模板 ID',
|
||
'settings.adapters.dingtalkPermissionCardTemplateIdHint': '填寫後許可權請求會優先傳送釘釘互動卡片;留空則使用 /allow、/always、/deny 文字授權。',
|
||
'settings.adapters.wechatBind': '掃碼繫結',
|
||
'settings.adapters.wechatRebind': '重新掃碼',
|
||
'settings.adapters.wechatConnected': '微信已繫結',
|
||
'settings.adapters.wechatNotConnected': '微信未繫結',
|
||
'settings.adapters.wechatQrHint': '生成二維碼後使用微信掃碼並確認,繫結完成後介面卡會自動重啟。',
|
||
'settings.adapters.wechatQrAlt': '微信繫結二維碼',
|
||
'settings.adapters.wechatWaiting': '等待微信掃碼確認...',
|
||
'settings.adapters.wechatBindSuccess': '微信繫結成功。',
|
||
'settings.adapters.wechatUnbindAccount': '解除微信繫結',
|
||
'settings.adapters.wechatUnbindAccountConfirm': '確定解除這個微信賬號繫結嗎?解除後需要重新掃碼,微信才能繼續收發訊息。',
|
||
'settings.adapters.wechatUnbound': '微信繫結已解除。',
|
||
'settings.adapters.wechatUnbindFailed': '微信解綁失敗。',
|
||
'settings.adapters.wechatAllowedUsersHint': '微信掃碼只繫結賬號能力;使用者仍需傳送配對碼,或在這裡額外填寫允許的微信使用者 ID。',
|
||
'settings.adapters.whatsappBind': '掃碼繫結',
|
||
'settings.adapters.whatsappRebind': '重新掃碼',
|
||
'settings.adapters.whatsappConnected': 'WhatsApp 已繫結',
|
||
'settings.adapters.whatsappNotConnected': 'WhatsApp 未繫結',
|
||
'settings.adapters.whatsappQrHint': '生成二維碼後,在 WhatsApp 的「已連結裝置」中掃碼確認。繫結完成後介面卡會自動重啟。',
|
||
'settings.adapters.whatsappQrAlt': 'WhatsApp 繫結二維碼',
|
||
'settings.adapters.whatsappWaiting': '等待 WhatsApp 掃碼確認...',
|
||
'settings.adapters.whatsappBindSuccess': 'WhatsApp 繫結成功。',
|
||
'settings.adapters.whatsappBindFailed': 'WhatsApp 繫結失敗。',
|
||
'settings.adapters.whatsappUnbindAccount': '解除 WhatsApp 繫結',
|
||
'settings.adapters.whatsappUnbindAccountConfirm': '確定解除這個 WhatsApp 帳號繫結嗎?解除後需要重新掃碼,WhatsApp 才能繼續收發訊息。',
|
||
'settings.adapters.whatsappUnbound': 'WhatsApp 繫結已解除。',
|
||
'settings.adapters.whatsappUnbindFailed': 'WhatsApp 解綁失敗。',
|
||
'settings.adapters.whatsappAllowedUsersHint': 'WhatsApp 掃碼只繫結 Web 帳號能力;使用者仍需傳送配對碼,或在這裡額外填寫允許的 WhatsApp JID。',
|
||
|
||
// Settings > MCP
|
||
'settings.mcp.title': 'MCP 服務',
|
||
'settings.mcp.description': '在桌面端直接管理外部工具與資料來源。Local、Project、User 三種範圍與 CLI 保持一致。',
|
||
'settings.mcp.addServer': '新增服務',
|
||
'settings.mcp.empty': '還沒有配置 MCP 服務',
|
||
'settings.mcp.emptyHint': '先新增一個自定義的 STDIO、HTTP 或 SSE MCP 服務。',
|
||
'settings.mcp.stats.total': '服務總數',
|
||
'settings.mcp.stats.connected': '當前已連線',
|
||
'settings.mcp.stats.attention': '需要處理',
|
||
'settings.mcp.scope.project': '專案共享',
|
||
'settings.mcp.scope.local': '專案私有',
|
||
'settings.mcp.scope.user': '全域性使用者',
|
||
'settings.mcp.scope.plugin': '外掛',
|
||
'settings.mcp.scopeDesc.local': '只對你自己生效,但繫結到某一個專案。配置寫在使用者配置裡,同時帶上選中的專案上下文。',
|
||
'settings.mcp.scopeDesc.project': '寫入選中專案的 `.mcp.json`,專案成員共享。',
|
||
'settings.mcp.scopeDesc.user': '寫入你的全域性 Claude 配置,對所有專案生效。',
|
||
'settings.mcp.scope.dynamic': '內建',
|
||
'settings.mcp.scope.enterprise': '企業託管',
|
||
'settings.mcp.scope.claudeai': 'Claude.ai',
|
||
'settings.mcp.scope.managed': '受管控',
|
||
'settings.mcp.transport.http': 'Streamable HTTP',
|
||
'settings.mcp.globalOnlyHint': '選擇專案私有、專案共享或全域性使用者範圍。',
|
||
'settings.mcp.currentProjectHint': '當前專案:{path}',
|
||
'settings.mcp.form.back': '返回服務列表',
|
||
'settings.mcp.form.createTitle': '連線自定義 MCP',
|
||
'settings.mcp.form.createHint': '按當前 Claude Code 支援的欄位新增一個自定義 MCP 服務。',
|
||
'settings.mcp.form.editTitle': '設定 {name} MCP',
|
||
'settings.mcp.form.editHint': '檢視連線資訊、儲存修改,或直接在桌面端重連這個服務。',
|
||
'settings.mcp.form.transportLocked': '如果你想切換 MCP 服務型別,請先解除安裝後重新新增。',
|
||
'settings.mcp.form.uninstall': '解除安裝',
|
||
'settings.mcp.form.reconnect': '重連',
|
||
'settings.mcp.form.save': '儲存',
|
||
'settings.mcp.form.name': '名稱',
|
||
'settings.mcp.form.namePlaceholder': 'MCP 服務名稱',
|
||
'settings.mcp.form.scope': '配置範圍',
|
||
'settings.mcp.form.transport': '傳輸方式',
|
||
'settings.mcp.form.status': '狀態',
|
||
'settings.mcp.form.location': '配置位置',
|
||
'settings.mcp.form.rawConfig': '原始配置',
|
||
'settings.mcp.form.command': '啟動命令',
|
||
'settings.mcp.form.commandPlaceholder': 'npx',
|
||
'settings.mcp.form.commandHostHint': 'STDIO MCP 命令會直接在宿主機上執行。像 Node.js、Python、Bun、uv 這類執行時需要使用者自己安裝,並確保這個命令在 PATH 裡可用。',
|
||
'settings.mcp.form.arguments': '引數',
|
||
'settings.mcp.form.argumentPlaceholder': 'chrome-devtools-mcp@latest',
|
||
'settings.mcp.form.addArgument': '新增引數',
|
||
'settings.mcp.form.environmentVariables': '環境變數',
|
||
'settings.mcp.form.addEnv': '新增環境變數',
|
||
'settings.mcp.form.keyPlaceholder': '鍵',
|
||
'settings.mcp.form.valuePlaceholder': '值',
|
||
'settings.mcp.form.url': 'URL',
|
||
'settings.mcp.form.sseUrl': 'SSE 地址',
|
||
'settings.mcp.form.urlPlaceholder': 'https://mcp.example.com/mcp',
|
||
'settings.mcp.form.headers': '請求頭',
|
||
'settings.mcp.form.addHeader': '新增請求頭',
|
||
'settings.mcp.form.oauthClientId': 'OAuth Client ID',
|
||
'settings.mcp.form.oauthClientIdPlaceholder': '可選 Client ID',
|
||
'settings.mcp.form.oauthCallbackPort': 'OAuth 回撥埠',
|
||
'settings.mcp.form.oauthCallbackPortPlaceholder': '可選固定回撥埠',
|
||
'settings.mcp.form.headersHelper': 'Headers Helper 指令碼',
|
||
'settings.mcp.form.headersHelperPlaceholder': '可選的輔助指令碼路徑',
|
||
'settings.mcp.form.deleteTitle': '刪除 MCP 服務',
|
||
'settings.mcp.form.cancel': '取消',
|
||
'settings.mcp.form.confirmDelete': '刪除',
|
||
'settings.mcp.form.deleteConfirm': '確定刪除 MCP 服務 “{name}” 嗎?此操作不可撤銷。',
|
||
'settings.mcp.form.deleteConfirmBody': '確定刪除 MCP 服務 “{name}” 嗎?此操作不可撤銷。',
|
||
'settings.mcp.targetProject.title': '目標專案',
|
||
'settings.mcp.targetProject.selected': '當前展示的是這個專案下的私有/共享 MCP:{path}',
|
||
'settings.mcp.targetProject.empty': '先選擇一個專案,才能檢視專案私有或專案共享的 MCP。',
|
||
'settings.mcp.targetProject.emptyWithCurrent': '請先選擇目標專案。當前啟用會話的專案是:{path}',
|
||
'settings.mcp.targetProject.localSelected': '這個 MCP 會作為“專案私有”安裝到:{path}',
|
||
'settings.mcp.targetProject.localEmpty': '請選擇要安裝這個私有 MCP 的專案。',
|
||
'settings.mcp.targetProject.projectSelected': '這個 MCP 會寫入:{path}/.mcp.json,作為專案共享配置。',
|
||
'settings.mcp.targetProject.projectEmpty': '請選擇要寫入 `.mcp.json` 的專案。',
|
||
'settings.mcp.targetProject.globalTitle': '全域性安裝目標',
|
||
'settings.mcp.targetProject.globalHint': '全域性使用者不需要選擇專案。它會寫入你的全域性 Claude 配置,並對所有專案生效。',
|
||
'settings.mcp.toast.created': '已建立 MCP 服務 “{name}”',
|
||
'settings.mcp.toast.saved': '已儲存 MCP 服務 “{name}”',
|
||
'settings.mcp.toast.deleted': '已刪除 MCP 服務 “{name}”',
|
||
'settings.mcp.toast.enabled': '已啟用 MCP 服務 “{name}”',
|
||
'settings.mcp.toast.disabled': '已禁用 MCP 服務 “{name}”',
|
||
'settings.mcp.toast.reconnected': '已重連 MCP 服務 “{name}”',
|
||
'settings.mcp.toast.saveFailed': '儲存 MCP 服務失敗',
|
||
'settings.mcp.toast.deleteFailed': '刪除 MCP 服務失敗',
|
||
'settings.mcp.toast.toggleFailed': '更新 MCP 服務狀態失敗',
|
||
'settings.mcp.toast.reconnectFailed': '重連 MCP 服務失敗',
|
||
|
||
// Settings > Agents
|
||
'settings.tab.agents': 'Agents',
|
||
'settings.agents.title': '已安裝的 Agents',
|
||
'settings.agents.description': '瀏覽 Claude 當前可用的 Agents,包括內建、專案和使用者來源。可在 TUI 中使用 /agents 檢視當前生效項與覆蓋關係。',
|
||
'settings.agents.browserTitle': '瀏覽已安裝 Agents',
|
||
'settings.agents.browserEyebrow': 'Agent 瀏覽器',
|
||
'settings.agents.entryEyebrow': 'Agent 檔案',
|
||
'settings.agents.empty': '暫無可用 Agent。',
|
||
'settings.agents.emptyHint': '在 Claude 設定或當前專案中新增 Agent 定義後,就會顯示在這裡。',
|
||
'settings.agents.model': '模型',
|
||
'settings.agents.tools': '工具',
|
||
'settings.agents.systemPrompt': '系統提示詞',
|
||
'settings.agents.noDescription': '暫無描述',
|
||
'settings.agents.noSystemPrompt': '未定義系統提示詞。',
|
||
'settings.agents.backToList': '返回列表',
|
||
'settings.agents.agentCount': '{count} 個 Agent',
|
||
'settings.agents.summary.totalAgents': 'Agent 總數',
|
||
'settings.agents.summary.activeAgents': '生效中',
|
||
'settings.agents.summary.sources': '來源型別',
|
||
'settings.agents.summary.source': '來源',
|
||
'settings.agents.summary.model': '模型',
|
||
'settings.agents.summary.tools': '工具',
|
||
'settings.agents.summary.status': '狀態',
|
||
'settings.agents.groupHint': '{source}中有 {count} 個 Agent 可用',
|
||
'settings.agents.status.active': '已生效',
|
||
'settings.agents.status.available': '可檢視',
|
||
'settings.agents.overriddenBy': '被 {source} 覆蓋',
|
||
'settings.agents.overriddenByShort': '被 {source} 覆蓋',
|
||
'settings.agents.toolCount': '{count} 個工具',
|
||
'settings.agents.noTools': '未限制工具',
|
||
'settings.agents.promptHint': '閱讀當前 system prompt,並對比這個 Agent 的職責範圍。',
|
||
'settings.agents.source.userSettings': '使用者',
|
||
'settings.agents.source.projectSettings': '專案',
|
||
'settings.agents.source.localSettings': '本地',
|
||
'settings.agents.source.policySettings': '託管',
|
||
'settings.agents.source.plugin': '外掛',
|
||
'settings.agents.source.flagSettings': 'CLI 引數',
|
||
'settings.agents.source.built-in': '內建',
|
||
|
||
// Settings > Skills
|
||
'settings.skills.title': '已安裝技能',
|
||
'settings.skills.description': '技能擴充套件 Claude 的能力。在 ~/.claude/skills/ 中管理技能。',
|
||
'settings.skills.redirectDescription': '技能現在統一放在技能中心管理,市場和已安裝技能會放在同一個入口裡。',
|
||
'settings.skills.browserTitle': '瀏覽已安裝技能',
|
||
'settings.skills.browserEyebrow': '技能瀏覽器',
|
||
'settings.skills.browserDescription': '檢視內建、專案和使用者技能,比較它們的來源與規模,並開啟技能目錄閱讀文件和原始碼檔案。',
|
||
'settings.skills.searchLabel': '搜尋技能',
|
||
'settings.skills.searchPlaceholder': '搜尋技能名稱、描述或來源...',
|
||
'settings.skills.searchResultCount': '匹配 {count} / {total} 個技能',
|
||
'settings.skills.clearSearch': '清空技能搜尋',
|
||
'settings.skills.noSearchResults': '沒有匹配的技能',
|
||
'settings.skills.noSearchResultsHint': '換一個關鍵詞,或清空搜尋檢視全部技能。',
|
||
'settings.skills.entryEyebrow': '技能入口',
|
||
'settings.skills.slashCommand': '/斜槓命令',
|
||
'settings.skills.tokenEstimate': '約 {count} tokens',
|
||
'settings.skills.tokenEstimateShort': '約 {count}',
|
||
'settings.skills.summary.totalSkills': '技能總數',
|
||
'settings.skills.summary.totalFiles': '檔案數',
|
||
'settings.skills.summary.sources': '來源型別',
|
||
'settings.skills.summary.tokens': '預估 tokens',
|
||
'settings.skills.summary.source': '來源',
|
||
'settings.skills.summary.entry': '入口檔案',
|
||
'settings.skills.groupHint': '{source}中有 {count} 個技能可用',
|
||
'settings.skills.ready': '可檢視',
|
||
'settings.skills.unavailable': '不可用',
|
||
'settings.skills.empty': '暫無已安裝技能',
|
||
'settings.skills.emptyHint': '在 ~/.claude/skills/ 中新增技能即可開始',
|
||
'settings.skills.back': '返回列表',
|
||
'settings.skills.files': '個檔案',
|
||
'settings.skills.entryFile': '入口檔案',
|
||
'settings.skills.metaTitle': '技能後設資料',
|
||
'settings.skills.filesPanel': '檔案',
|
||
'settings.skills.filesPanelHint': '瀏覽入口檔案及其配套實現檔案。',
|
||
'settings.skills.readingMode': '當前為{mode}',
|
||
'settings.skills.docMode': '文件模式',
|
||
'settings.skills.codeMode': '程式碼模式',
|
||
'settings.skills.source.user': '使用者',
|
||
'settings.skills.source.project': '專案',
|
||
'settings.skills.source.plugin': '外掛',
|
||
'settings.skills.source.mcp': 'MCP',
|
||
'settings.skills.source.bundled': '內建',
|
||
|
||
// Settings > Memory
|
||
'settings.tab.memory': '記憶',
|
||
'settings.memory.title': '專案記憶',
|
||
'settings.memory.description': '檢視和編輯 Claude 為每個專案寫入的 Markdown 記憶檔案。這些檔案存放在 ~/.claude/projects/<project>/memory/,會被 CLI 執行時載入。',
|
||
'settings.memory.refresh': '重新整理',
|
||
'settings.memory.projects': '專案',
|
||
'settings.memory.files': '記憶檔案',
|
||
'settings.memory.resourceManager': '資源管理器',
|
||
'settings.memory.editor': '編輯',
|
||
'settings.memory.edit': '編輯',
|
||
'settings.memory.preview': '預覽',
|
||
'settings.memory.rendered': '已渲染',
|
||
'settings.memory.emptyProjects': '還沒有找到記憶專案。',
|
||
'settings.memory.emptyFiles': '還沒有找到記憶檔案。',
|
||
'settings.memory.selectFile': '選擇一個記憶檔案。',
|
||
'settings.memory.selectProject': '選擇一個專案。',
|
||
'settings.memory.noFileSelected': '未選擇檔案',
|
||
'settings.memory.current': '當前',
|
||
'settings.memory.indexFile': '索引',
|
||
'settings.memory.missing': '目錄缺失',
|
||
'settings.memory.fileCount': '{count} 個檔案',
|
||
'settings.memory.unsaved': '未儲存',
|
||
'settings.memory.saved': '已儲存',
|
||
'settings.memory.revert': '還原',
|
||
'settings.memory.discardUnsavedConfirm': '要放棄未儲存的記憶修改嗎?',
|
||
'settings.memory.projectSearchPlaceholder': '按路徑搜尋專案...',
|
||
'settings.memory.fileSearchPlaceholder': '搜尋記憶檔案...',
|
||
'settings.memory.resourceSearchPlaceholder': '搜尋專案或記憶檔案...',
|
||
'settings.memory.noProjectMatches': '沒有匹配的專案。',
|
||
'settings.memory.noFileMatches': '沒有匹配的記憶檔案。',
|
||
'settings.memory.clearSearch': '清空搜尋',
|
||
'settings.memory.toggleFolder': '展開或摺疊 {name}',
|
||
|
||
// Settings > Plugins
|
||
'settings.plugins.title': '已安裝外掛',
|
||
'settings.plugins.description': '檢視已安裝外掛、執行狀態,並把外掛變更應用到桌面端執行時。',
|
||
'settings.plugins.browserTitle': '瀏覽已安裝外掛',
|
||
'settings.plugins.browserEyebrow': '外掛管理',
|
||
'settings.plugins.browserDescription': '外掛會把技能、Agent、Hook、MCP 服務和語言工具打包在一起。這裡先聚焦已安裝外掛、健康狀態和應用變更反饋,不把 CLI 的整套複雜互動直接搬過來。',
|
||
'settings.plugins.entryEyebrow': '外掛詳情',
|
||
'settings.plugins.summary.total': '外掛總數',
|
||
'settings.plugins.summary.enabled': '已啟用',
|
||
'settings.plugins.summary.attention': '需關注',
|
||
'settings.plugins.summary.marketplaces': '市場',
|
||
'settings.plugins.summary.skills': '技能',
|
||
'settings.plugins.summary.agents': 'Agents',
|
||
'settings.plugins.summary.mcp': 'MCP',
|
||
'settings.plugins.summary.hooks': 'Hooks',
|
||
'settings.plugins.group.attention': '需關注',
|
||
'settings.plugins.group.enabled': '已啟用',
|
||
'settings.plugins.group.disabled': '已禁用',
|
||
'settings.plugins.groupHint': '此分組下共有 {count} 個外掛',
|
||
'settings.plugins.refresh': '重新整理',
|
||
'settings.plugins.apply': '應用變更',
|
||
'settings.plugins.applyHint': '啟用、禁用或更新後,需要把外掛變更重新應用到當前桌面端執行時。',
|
||
'settings.plugins.lastReload': '最近一次應用:{enabled} 個活躍外掛,{skills} 個外掛技能,{errors} 個錯誤。',
|
||
'settings.plugins.reloadToast': '外掛變更已應用:{enabled} 個活躍外掛,{skills} 個技能,{errors} 個錯誤。',
|
||
'settings.plugins.marketplacesTitle': '已知外掛市場',
|
||
'settings.plugins.marketplacesHint': '這裡只展示當前機器已經配置好的 marketplace 來源摘要。',
|
||
'settings.plugins.marketplaceAutoUpdateOn': '自動更新開',
|
||
'settings.plugins.marketplaceAutoUpdateOff': '自動更新關',
|
||
'settings.plugins.marketplaceInstalledCount': '已安裝 {count} 個',
|
||
'settings.plugins.marketplaceUpdatedAt': '更新於 {value}',
|
||
'settings.plugins.status.enabled': '已啟用',
|
||
'settings.plugins.status.disabled': '已禁用',
|
||
'settings.plugins.status.attention': '需關注',
|
||
'settings.plugins.scope.user': '使用者',
|
||
'settings.plugins.scope.project': '專案',
|
||
'settings.plugins.scope.local': '本地',
|
||
'settings.plugins.scope.managed': '託管',
|
||
'settings.plugins.scope.builtin': '內建',
|
||
'settings.plugins.empty': '暫無已安裝外掛',
|
||
'settings.plugins.emptyHint': '先在 Claude Code 裡安裝外掛,桌面端就可以在這裡管理。',
|
||
'settings.plugins.back': '返回列表',
|
||
'settings.plugins.noDescription': '這個外掛沒有可用描述。',
|
||
'settings.plugins.errorCount': '{count} 個錯誤',
|
||
'settings.plugins.enable': '啟用',
|
||
'settings.plugins.disable': '禁用',
|
||
'settings.plugins.update': '更新',
|
||
'settings.plugins.uninstall': '解除安裝',
|
||
'settings.plugins.confirmUninstall': '確定解除安裝外掛“{name}”嗎?會刪除當前 scope 下的安裝副本。',
|
||
'settings.plugins.selectionCount': '已選擇 {count} 個',
|
||
'settings.plugins.clearSelection': '清除',
|
||
'settings.plugins.enableSelected': '啟用所選',
|
||
'settings.plugins.disableSelected': '禁用所選',
|
||
'settings.plugins.selectPlugin': '選擇 {name}',
|
||
'settings.plugins.bulkEnableTitle': '啟用已選擇的 {count} 個外掛?',
|
||
'settings.plugins.bulkDisableTitle': '禁用已選擇的 {count} 個外掛?',
|
||
'settings.plugins.bulkEnableBody': '將啟用 {names},並把外掛變更應用到當前桌面端執行時。',
|
||
'settings.plugins.bulkDisableBody': '將禁用 {names},並把外掛變更應用到當前桌面端執行時。',
|
||
'settings.plugins.bulkEnableToast': '已啟用 {count} 個外掛,並應用外掛變更。',
|
||
'settings.plugins.bulkDisableToast': '已禁用 {count} 個外掛,並應用外掛變更。',
|
||
'settings.plugins.author': '作者:{value}',
|
||
'settings.plugins.projectPath': '專案:{value}',
|
||
'settings.plugins.installPath': '安裝位置:{value}',
|
||
'settings.plugins.managedHint': '這個外掛由策略託管,不能在桌面端修改。',
|
||
'settings.plugins.builtinHint': '內建外掛支援在這裡重新應用,但不開放安裝和解除安裝操作。',
|
||
'settings.plugins.errorsTitle': '外掛錯誤',
|
||
'settings.plugins.capabilitiesTitle': '打包能力',
|
||
'settings.plugins.capabilitiesHint': '根據外掛 manifest 和執行時整合解析出的能力列表。',
|
||
'settings.plugins.sharedNavigationDisabled': '先啟用外掛並應用變更,才能在共享管理頁中開啟它的技能、Agent 或 MCP 條目。',
|
||
'settings.plugins.capabilityEmpty': '沒有暴露',
|
||
'settings.plugins.capability.skills': '{count} 個技能',
|
||
'settings.plugins.capability.agents': '{count} 個 Agent',
|
||
'settings.plugins.capability.mcpServers': '{count} 個 MCP 服務',
|
||
'settings.plugins.capabilityLabel.skills': '技能',
|
||
'settings.plugins.capabilityLabel.commands': '命令',
|
||
'settings.plugins.capabilityLabel.agents': 'Agents',
|
||
'settings.plugins.capabilityLabel.hooks': 'Hooks',
|
||
'settings.plugins.capabilityLabel.mcpServers': 'MCP 服務',
|
||
'settings.plugins.capabilityLabel.lspServers': 'LSP 服務',
|
||
|
||
// Settings > About
|
||
'settings.tab.about': '關於',
|
||
'settings.about.version': '版本',
|
||
'settings.about.changelog': '更新日誌',
|
||
'settings.about.repo': 'GitHub 倉庫',
|
||
'settings.about.starHint': '如果這個專案對你有幫助,歡迎給個 Star',
|
||
'settings.about.feedback': '反饋問題',
|
||
'settings.about.feedbackDesc': '遇到 Bug 或使用問題,前往 GitHub Issue 提交反饋',
|
||
'settings.about.author': '作者',
|
||
'settings.about.socialMedia': '社交媒體',
|
||
'settings.about.updates': '應用更新',
|
||
'settings.about.updatesDesc': '檢查 GitHub Releases,下載安裝包,並在安裝後自動重啟。',
|
||
|
||
// Settings > Computer Use
|
||
'settings.tab.computerUse': 'Computer Use',
|
||
'settings.computerUse.title': 'Computer Use',
|
||
'settings.computerUse.description': '允許 Claude 截圖、點選、打字並控制你的電腦。需要 Python 3,macOS 上還需要輔助功能許可權。',
|
||
'settings.computerUse.enabledToggle': '啟用',
|
||
'settings.computerUse.disabledHint': 'Computer Use 已關閉。新會話不會注入 computer-use MCP,也不會把桌面控制工具暴露給 Coding Agent。',
|
||
'settings.computerUse.notSupported': 'Computer Use 僅支援 macOS 和 Windows。',
|
||
'settings.computerUse.python': 'Python 3',
|
||
'settings.computerUse.pythonNotFound': '未安裝,請先安裝 Python 3。',
|
||
'settings.computerUse.pythonFound': '已安裝',
|
||
'settings.computerUse.pythonCustomInvalid': '自定義直譯器不可用',
|
||
'settings.computerUse.pythonPathLabel': 'Python 直譯器路徑',
|
||
'settings.computerUse.pythonPathPlaceholder': '自動檢測,或選擇 python.exe / python3',
|
||
'settings.computerUse.pythonPathHint': '留空則自動檢測;選擇 conda、pyenv 或自定義環境裡的 Python 可執行檔案後會優先使用它建立執行環境。',
|
||
'settings.computerUse.pythonPathBrowse': '選擇',
|
||
'settings.computerUse.pythonPathSave': '應用',
|
||
'settings.computerUse.pythonPathAuto': '自動',
|
||
'settings.computerUse.pythonPathSaved': '已儲存,重新檢測會優先使用這個直譯器。',
|
||
'settings.computerUse.pythonPathSaveFailed': '儲存失敗,請稍後重試。',
|
||
'settings.computerUse.pythonPathDialogTitle': '選擇 Python 直譯器',
|
||
'settings.computerUse.pythonPathDialogFailed': '無法開啟檔案選擇器,請手動貼上路徑。',
|
||
'settings.computerUse.venv': '虛擬環境',
|
||
'settings.computerUse.venvReady': '已就緒',
|
||
'settings.computerUse.venvNotReady': '未建立',
|
||
'settings.computerUse.deps': '依賴包',
|
||
'settings.computerUse.depsReady': '已安裝',
|
||
'settings.computerUse.depsNotReady': '未安裝',
|
||
'settings.computerUse.accessibility': '輔助功能許可權',
|
||
'settings.computerUse.screenRecording': '螢幕錄製許可權',
|
||
'settings.computerUse.permGranted': '已授權',
|
||
'settings.computerUse.permDenied': '未授權 — 請前往「系統設定 > 隱私與安全性」授權',
|
||
'settings.computerUse.permUnknown': '請先安裝環境後檢測',
|
||
'settings.computerUse.permScreenRecordingUnknownSoft': '自動檢測結果不穩定;如果系統設定裡已授權,通常可以直接使用',
|
||
'settings.computerUse.permScreenRecordingManual': '無法自動檢測 — 請在系統設定中手動確認已授權',
|
||
'settings.computerUse.setupBtn': '安裝環境',
|
||
'settings.computerUse.setupRunning': '安裝中...',
|
||
'settings.computerUse.setupSuccess': '環境安裝完成!',
|
||
'settings.computerUse.setupFail': '安裝失敗',
|
||
'settings.computerUse.allReady': '所有檢查透過,Computer Use 已就緒。',
|
||
'settings.computerUse.downloadPython': '下載 Python 3',
|
||
'settings.computerUse.recheckBtn': '重新檢測',
|
||
'settings.computerUse.requirementsLabel': '需要的 Python 包',
|
||
'settings.computerUse.appsTitle': '已授權應用',
|
||
'settings.computerUse.appsDescription': '預先授權 App,Claude 將可以直接控制這些 App,無需執行時彈窗確認。',
|
||
'settings.computerUse.appsLoading': '載入已安裝的 App...',
|
||
'settings.computerUse.appsEmpty': '未找到已安裝的 App,請先安裝環境。',
|
||
'settings.computerUse.appsSearch': '搜尋 App...',
|
||
'settings.computerUse.appsSaved': '已儲存',
|
||
'settings.computerUse.openAccessibility': '開啟輔助功能設定',
|
||
'settings.computerUse.openScreenRecording': '開啟螢幕錄製設定',
|
||
'settings.computerUse.permRestartHint': '授權後需重啟 App 才能生效。',
|
||
'settings.computerUse.flagClipboard': '剪貼簿訪問',
|
||
'settings.computerUse.flagSystemKeys': '系統快捷鍵',
|
||
|
||
// Settings > General - Storage
|
||
'settings.general.modeSwitchTitle': '切換資料儲存位置?',
|
||
'settings.general.modeSwitchConfirm': '儲存並重啟',
|
||
'settings.general.storageTitle': '資料儲存位置',
|
||
'settings.general.storageDescription': '低頻高階設定。切換後,會話記錄、Skills、MCP、外掛、Provider 配置、任務和快取都會從新的目錄讀取。',
|
||
'settings.general.storageSystemTitle': '使用系統目錄',
|
||
'settings.general.storageSystemDescription': '回到預設資料來源。若啟動環境設定了 CLAUDE_CONFIG_DIR,則仍會優先使用該環境變數指定的目錄。',
|
||
'settings.general.storagePortableTitle': '使用便攜目錄',
|
||
'settings.general.storagePortableDescription': '把桌面端資料寫入你選擇的資料夾,適合放在行動硬碟或和應用一起打包遷移。',
|
||
'settings.general.storagePortableDirLabel': '便攜資料目錄',
|
||
'settings.general.storagePortableDirPlaceholder': '選擇一個用於儲存 cc-haha 資料的資料夾',
|
||
'settings.general.storageChooseDir': '選擇目錄',
|
||
'settings.general.storageChooseDirTitle': '選擇便攜資料目錄',
|
||
'settings.general.storageUseDefaultPortableDir': '使用應用旁邊的預設便攜目錄',
|
||
'settings.general.storageApplyPortable': '使用這個目錄並重啟',
|
||
'settings.general.storageActiveDir': '當前實際讀取目錄',
|
||
'settings.general.storageEnvironmentHint': '當前目錄由 CLAUDE_CONFIG_DIR 環境變數控制。應用內切換不會覆蓋這個環境變數;如需回到系統目錄,請先移除啟動環境裡的 CLAUDE_CONFIG_DIR。',
|
||
'settings.general.storageEnvironmentSwitchBlocked': '當前由 CLAUDE_CONFIG_DIR 環境變數控制。請先移除啟動環境裡的 CLAUDE_CONFIG_DIR,再切回系統目錄。',
|
||
'settings.general.storageRestartHint': '已儲存切換請求。請重啟應用,讓新的資料目錄生效。',
|
||
'settings.general.storageMoveHint': '切換目錄不會自動搬遷舊資料。如果希望舊會話繼續出現,請把原目錄下的 projects、skills、plugins、cc-haha 等資料複製到新目錄。要做便攜包,建議把目錄放在應用旁邊並一起壓縮。',
|
||
'settings.general.storageNoDirError': '請先選擇或填寫一個便攜資料目錄。',
|
||
'settings.general.storagePickerError': '無法開啟目錄選擇器,請手動貼上目錄路徑。',
|
||
'settings.general.storageRestartError': '切換已儲存,但自動重啟失敗,請手動重啟應用。',
|
||
'settings.general.storageSwitchPortableBody': '切換後,桌面端會從下面這個目錄讀取和寫入會話、配置、Skills、MCP、外掛、任務和快取。',
|
||
'settings.general.storageSwitchDefaultBody': '切回系統目錄後,桌面端會回到系統預設資料來源。當前便攜目錄中的資料不會被刪除,也不會自動遷回。',
|
||
'settings.general.storageSwitchRestartBody': '應用將先關閉本地服務和介面卡程序,然後自動重啟。重啟後新目錄才會生效。',
|
||
|
||
// Settings > General
|
||
'settings.general.appearanceTitle': '配色主題',
|
||
'settings.general.appearanceDescription': '在經典暖色、暗色與純白工作區之間切換。',
|
||
'settings.general.appearance.light': '經典暖色',
|
||
'settings.general.appearance.dark': '暗色',
|
||
'settings.general.appearance.white': '純白',
|
||
'settings.general.languageTitle': '語言',
|
||
'settings.general.languageDescription': '選擇應用程式的顯示語言。',
|
||
'settings.general.responseLangTitle': '回覆語言',
|
||
'settings.general.responseLangDescription': '指定 Claude 始終以某種語言回覆。',
|
||
'settings.general.responseLangDefault': '預設(英語)',
|
||
'settings.general.outputStyleTitle': '輸出風格',
|
||
'settings.general.outputStyleDescription': '選擇 Claude 在新會話或重啟後的會話中如何表達。',
|
||
'settings.general.outputStyleBuiltin.default.label': '預設',
|
||
'settings.general.outputStyleBuiltin.default.description': 'Claude 會高效完成編碼任務,並提供簡潔回覆',
|
||
'settings.general.outputStyleBuiltin.explanatory.label': '解釋型',
|
||
'settings.general.outputStyleBuiltin.explanatory.description': 'Claude 會解釋實作選擇和程式碼庫模式',
|
||
'settings.general.outputStyleBuiltin.learning.label': '學習型',
|
||
'settings.general.outputStyleBuiltin.learning.description': 'Claude 會暫停並請你編寫小段程式碼進行實戰練習',
|
||
'settings.general.outputStyleSelectLabel': '選擇輸出風格',
|
||
'settings.general.outputStyleLoading': '正在載入輸出風格...',
|
||
'settings.general.outputStyleSaved': '輸出風格已儲存。',
|
||
'settings.general.outputStyleRestartHint': '正在執行的會話會繼續使用目前提示詞。新建會話、在新程序中繼續,或重啟會話後生效。',
|
||
'settings.general.outputStyleScopeLocal': '目前專案',
|
||
'settings.general.outputStyleScopeUser': '使用者設定',
|
||
'settings.general.outputStyleScopeLocalHint': '已儲存到目前專案的 .claude/settings.local.json。',
|
||
'settings.general.outputStyleScopeUserHint': '目前未選擇專案,因此儲存到使用者設定。',
|
||
'settings.general.outputStyleSourceBuiltIn': '內建',
|
||
'settings.general.outputStyleSourceUser': '使用者風格',
|
||
'settings.general.outputStyleSourceProject': '專案風格',
|
||
'settings.general.outputStyleSourceLocal': '專案本地風格',
|
||
'settings.general.outputStyleSourcePolicy': '受管風格',
|
||
'settings.general.outputStyleSourcePlugin': '外掛風格',
|
||
'settings.general.defaultPermissionTitle': '預設會話權限',
|
||
'settings.general.defaultPermissionDescription': '選擇桌面端新建聊天會話時預設使用的權限模式。',
|
||
'settings.general.defaultPermissionLabel': '新會話權限模式',
|
||
'settings.general.defaultPermissionHint': '每個會話內部仍然可以透過聊天區的權限選擇器單獨修改。',
|
||
'settings.general.defaultPermissionScope': '每個新會話的工作區',
|
||
'settings.general.effortTitle': '推理強度',
|
||
'settings.general.effortDescription': '控制模型使用的計算量。',
|
||
'settings.general.effort.low': '低',
|
||
'settings.general.effort.medium': '中',
|
||
'settings.general.effort.high': '高',
|
||
'settings.general.effort.xhigh': '極高',
|
||
'settings.general.effort.max': '最大',
|
||
'settings.general.thinkingTitle': '思考模式',
|
||
'settings.general.thinkingDescription': '控制新會話是否啟用模型思考。關閉後,DeepSeek 等相容供應商會收到顯式非思考模式引數。',
|
||
'settings.general.thinkingEnabled': '啟用思考模式',
|
||
'settings.general.thinkingHint': '關閉後會以 --thinking disabled 啟動新會話;適合 DeepSeek V4 Flash/Pro 等需要非思考模式的模型。',
|
||
'settings.general.autoDreamTitle': '自動做夢',
|
||
'settings.general.autoDreamDescription': '在累積足夠會話後,背景定期整理和壓縮 auto-memory。',
|
||
'settings.general.autoDreamEnabled': '啟用自動做夢',
|
||
'settings.general.autoDreamHintOn': '符合條件的會話結束後,桌面端可以在背景執行記憶整理。',
|
||
'settings.general.autoDreamHintOff': '預設關閉,因為它可能發起背景模型呼叫。',
|
||
'settings.general.autoDreamConfirmTitle': '啟用自動做夢?',
|
||
'settings.general.autoDreamConfirmKeepRunning': '請保持桌面端處於啟用狀態,這樣符合條件的會話結束後才能啟動背景記憶整理。',
|
||
'settings.general.autoDreamConfirmTokenCost': '自動做夢會在審查和改寫記憶檔案時額外消耗模型 Token。',
|
||
'settings.general.autoDreamConfirmEnable': '啟用自動做夢',
|
||
'settings.general.notificationsTitle': '系統通知',
|
||
'settings.general.notificationsDescription': '使用作業系統原生通知提醒授權確認、Agent 回覆完成和定時任務結果。',
|
||
'settings.general.notificationsEnabled': '啟用系統通知',
|
||
'settings.general.notificationsHintOn': '開啟後會請求系統通知許可權,並透過系統通知中心提醒。',
|
||
'settings.general.notificationsHintOff': '關閉後,授權確認、Agent 回覆和定時任務都不會傳送桌面通知。',
|
||
'settings.general.notificationsStatus': '許可權',
|
||
'settings.general.notificationsStatusGranted': '已授權',
|
||
'settings.general.notificationsStatusDenied': '已被系統設定阻止',
|
||
'settings.general.notificationsStatusDefault': '尚未請求',
|
||
'settings.general.notificationsStatusUnsupported': '當前環境不可用',
|
||
'settings.general.notificationsAuthorize': '授權通知',
|
||
'settings.general.notificationsOpenSettings': '開啟系統設定',
|
||
'settings.general.notificationsTestTitle': 'Claude Code Haha 通知已啟用',
|
||
'settings.general.notificationsTestBody': '後續授權確認和 Agent 回覆完成都會透過系統通知提醒。',
|
||
'settings.general.traceTitle': 'Agent Trace',
|
||
'settings.general.traceDescription': '收集本地會話的模型請求鏈路,用於排查卡住、失敗和異常等待。',
|
||
'settings.general.traceEnabled': '收集 Agent Trace',
|
||
'settings.general.traceHintOn': '新會話會把精簡請求、回應、狀態事件寫入本機 cc-haha traces 目錄。',
|
||
'settings.general.traceHintOff': '關閉後不會寫入新的 Trace;已有記錄仍可在 Trace 列表裡查看。',
|
||
'settings.general.chatSendBehaviorTitle': '訊息傳送方式',
|
||
'settings.general.chatSendBehaviorDescription': '選擇桌面端對話輸入框如何傳送訊息。',
|
||
'settings.general.chatSendBehaviorEnter': 'Enter 傳送',
|
||
'settings.general.chatSendBehaviorEnterDescription': 'Shift+Enter 換行。',
|
||
'settings.general.chatSendBehaviorModifier': 'Ctrl/Cmd+Enter 傳送',
|
||
'settings.general.chatSendBehaviorModifierDescription': 'Enter 和 Shift+Enter 都會換行。',
|
||
'settings.general.h5AccessTitle': 'H5 訪問',
|
||
'settings.general.h5AccessDescription': '在區域網內暴露桌面端 H5 應用。手機透過帶 H5 token 的二維碼快速連線。',
|
||
'settings.general.h5AccessEnabled': '啟用 H5 訪問',
|
||
'settings.general.h5AccessEnabledHint': '桌面服務會監聽區域網地址,並開放桌面會話相關能力。',
|
||
'settings.general.h5AccessStatusEnabled': '已啟用',
|
||
'settings.general.h5AccessTokenPreview': '令牌預覽',
|
||
'settings.general.h5AccessDisabledValue': '未啟用',
|
||
'settings.general.h5AccessDisable': '關閉',
|
||
'settings.general.h5AccessGenerateToken': '生成令牌',
|
||
'settings.general.h5AccessRegenerate': '重新生成令牌',
|
||
'settings.general.h5AccessGeneratedToken': '生成的令牌',
|
||
'settings.general.h5AccessGeneratedTokenHint': '僅顯示一次,請立即複製並像密碼一樣儲存。',
|
||
'settings.general.h5AccessShowToken': '顯示令牌',
|
||
'settings.general.h5AccessCopy': '複製',
|
||
'settings.general.h5AccessCopyUrl': '複製 H5 連結',
|
||
'settings.general.h5AccessCopyLaunchUrl': '複製掃碼連結',
|
||
'settings.general.h5AccessUrlCopied': 'H5 連結已複製。',
|
||
'settings.general.h5AccessLaunchUrlCopied': '掃碼連結已複製。',
|
||
'settings.general.h5AccessHideToken': '隱藏令牌',
|
||
'settings.general.h5AccessTokenNotAvailable': '舊版本的令牌無法找回。重新生成一次後,令牌將長期保存,可隨時查看。',
|
||
'settings.general.h5AccessPublicHost': '訪問主機 / IP',
|
||
'settings.general.h5AccessPublicHostPlaceholder': '192.168.1.100',
|
||
'settings.general.h5AccessCurrentPort': '當前埠',
|
||
'settings.general.h5AccessCurrentPortUnknown': '自動',
|
||
'settings.general.h5AccessFixedPort': '固定埠',
|
||
'settings.general.h5AccessFixedPortPlaceholder': '自動',
|
||
'settings.general.h5AccessFixedPortInvalid': '埠需為 1024-65535 之間且瀏覽器允許存取的整數。',
|
||
'settings.general.h5AccessFixedPortHint': '不設固定埠時會自動沿用上次的埠;反向代理等需要穩定埠的場景建議固定。修改埠後重啟應用程式生效。',
|
||
'settings.general.h5AccessFixedPortRestartNote': '固定埠 {fixedPort} 將在重啟應用程式後生效,目前仍執行在 {activePort}。',
|
||
'settings.general.h5AccessDisconnectGrace': '斷線保活(秒)',
|
||
'settings.general.h5AccessDisconnectGracePlaceholder': '30',
|
||
'settings.general.h5AccessDisconnectGraceInvalid': '需為 5-86400 之間的整數秒。',
|
||
'settings.general.h5AccessDisconnectGraceHint': '手機鎖屏或切後台導致斷線後,正在執行的任務不會被中斷,會在後台跑完、重連即可看到結果;只有任務空閒且無人連線時才在此時長後停止 CLI(預設 30 秒)。外出遠端操作可調大,例如 600。',
|
||
'settings.general.h5AccessPublicUrl': '公開訪問 URL',
|
||
'settings.general.h5AccessPublicUrlPlaceholder': 'https://chat.example.com',
|
||
'settings.general.h5AccessAllowedOrigins': '允許的來源',
|
||
'settings.general.h5AccessAllowedOriginsPlaceholder': 'https://chat.example.com, https://phone.example',
|
||
'settings.general.h5AccessOriginsHint': '每行一個來源,或使用逗號分隔多個來源。',
|
||
'settings.general.h5AccessOpenHint': '普通區域網訪問只改主機 / IP,埠使用當前服務埠。反向代理可直接填完整 URL。',
|
||
'settings.general.h5AccessSave': '儲存 H5 設定',
|
||
'settings.general.h5AccessUrl': 'H5 連結',
|
||
'settings.general.h5AccessQrTitle': '手機連線',
|
||
'settings.general.h5AccessQrHint': '掃碼會直接開啟 H5,並自動帶上 token。',
|
||
'settings.general.h5AccessQrRefreshHint': '點選“生成令牌”後會建立可掃碼的連線。',
|
||
'settings.general.h5AccessQrEmptyHint': '生成令牌後會在這裡顯示二維碼。',
|
||
'settings.general.h5AccessQrAlt': 'H5 訪問二維碼',
|
||
'settings.general.h5AccessSafetyNote': '只在可信網路中啟用。拿到二維碼連結的人可以訪問 H5 暴露的桌面能力。',
|
||
'settings.general.h5AccessConfirmTitle': '啟用區域網 H5 訪問?',
|
||
'settings.general.h5AccessConfirmBody': '這會把桌面 H5 應用暴露到區域網地址和埠。持有二維碼 token 的裝置可以訪問桌面會話和相關控制能力。請只在可信網路中繼續。',
|
||
'settings.general.h5AccessConfirmEnable': '啟用 H5 訪問',
|
||
'settings.general.h5AccessError': '更新 H5 設定失敗。',
|
||
'settings.general.h5AccessStaleHostTitle': '當前儲存的訪問主機已不可達',
|
||
'settings.general.h5AccessStaleHostBody': '儲存的 {storedHost} 不在本機當前的任何網絡卡上。手機掃碼會連不上。建議切到本機當前的區域網 IP。',
|
||
'settings.general.h5AccessStaleHostNoSuggestion': '儲存的 {storedHost} 不在本機當前的任何網絡卡上。手機掃碼會連不上。請檢查本機的網路連線,或改填反向代理 URL。',
|
||
'settings.general.h5AccessStaleHostApply': '切到 {suggestedHost}',
|
||
'settings.general.h5AccessProxyNote': '當前使用的是反向代理 URL,手機掃碼會經公網/隧道返回桌面端。請確認你的反代仍能工作。',
|
||
'settings.general.networkTitle': '網路',
|
||
'settings.general.networkDescription': '控制桌面會話發起的服務商 API 請求。',
|
||
'settings.general.networkProxyModeDirect': '直連',
|
||
'settings.general.networkProxyModeDirectDescription': '服務商 API 請求不使用應用程序繼承到的代理。',
|
||
'settings.general.networkProxyModeSystem': '系統代理',
|
||
'settings.general.networkProxyModeSystemDescription': '使用應用程序繼承到的代理設定。',
|
||
'settings.general.networkProxyModeManual': '手動代理',
|
||
'settings.general.networkProxyModeManualDescription': '使用下方填寫的 HTTP 或 HTTPS 代理地址。',
|
||
'settings.general.networkProxyUrl': '代理地址',
|
||
'settings.general.networkProxyUrlHint': '支援 HTTP 和 HTTPS 代理,例如 http://127.0.0.1:7890。',
|
||
'settings.general.networkProxyUrlInvalid': '請輸入 HTTP 或 HTTPS 代理地址。',
|
||
'settings.general.networkProxyUrlRequired': '請輸入代理地址。',
|
||
'settings.general.networkTimeout': 'AI 請求超時',
|
||
'settings.general.networkTimeoutValue': '{seconds} 秒',
|
||
'settings.general.networkTimeoutHint': '用於服務商請求、流式首個響應,以及服務商連線測試。支援 30-1800 秒;部分服務商在大上下文下首個流式位元組可能需要等待數分鐘。',
|
||
'settings.general.networkTimeoutUnit': '秒',
|
||
'settings.general.networkTimeoutDecrease': '減少 30 秒',
|
||
'settings.general.networkTimeoutIncrease': '增加 30 秒',
|
||
'settings.general.networkTimeoutRequired': '請輸入超時時間。',
|
||
'settings.general.networkTimeoutRange': '請輸入 {min}-{max} 秒之間的整數。',
|
||
'settings.general.networkSaved': '網路設定已儲存。',
|
||
'settings.general.networkScopeHint': '不會影響單獨的應用更新代理。',
|
||
'settings.general.networkSave': '儲存',
|
||
'settings.general.webFetchPreflightTitle': 'WebFetch 預檢',
|
||
'settings.general.webFetchPreflightDescription': '桌面端預設跳過 Claude 的域名預檢,避免第三方服務商或受限網路下出現誤報失敗。',
|
||
'settings.general.webFetchPreflightEnabled': '跳過 WebFetch 域名預檢',
|
||
'settings.general.webFetchPreflightHint': '只有在你明確需要恢復上游預設安全預檢時,才建議關閉這個選項。',
|
||
'settings.general.webSearchTitle': 'WebSearch',
|
||
'settings.general.webSearchDescription': '配置 Agent 聯網搜尋在 Claude 原生、第三方供應商和本地 fallback key 之間如何選擇。',
|
||
'settings.general.webSearch.mode.auto': '自動',
|
||
'settings.general.webSearch.mode.tavily': 'Tavily',
|
||
'settings.general.webSearch.mode.brave': 'Brave',
|
||
'settings.general.webSearch.mode.anthropic': 'Claude',
|
||
'settings.general.webSearch.mode.disabled': '關閉',
|
||
'settings.general.webSearchTavilyKey': 'Tavily API Key',
|
||
'settings.general.webSearchBraveKey': 'Brave Search API Key',
|
||
'settings.general.webSearchBravePlaceholder': 'Brave Search token',
|
||
'settings.general.webSearchGetApiKey': '獲取 API Key',
|
||
'settings.general.webSearchTavilyApiKeyLink': '獲取 Tavily API Key',
|
||
'settings.general.webSearchBraveApiKeyLink': '獲取 Brave Search API Key',
|
||
'settings.general.webSearchTavilyFreeHint': '註冊賬號即可複製 API Key,免費額度包含 1000 Credits。',
|
||
'settings.general.webSearchBraveFreeHint': '註冊賬號後可建立 Search API Key,免費額度可用於測試。',
|
||
'settings.general.webSearchHint': '自動模式會對 Claude 模型名優先使用原生 WebSearch,失敗或非 Claude 模型時再使用 Tavily/Brave。',
|
||
'settings.general.webSearchSave': '儲存',
|
||
'settings.general.uiZoom': '介面縮放',
|
||
'settings.general.uiZoomDescription': '調整整個介面的顯示大小。',
|
||
'settings.general.uiZoomShortcutHint': '快捷鍵更直接:',
|
||
'settings.general.uiZoomShortcutMac': 'macOS',
|
||
'settings.general.uiZoomShortcutWindows': 'Windows / Linux',
|
||
'settings.general.uiZoomShortcutResetHint': '0 表示恢復到 100%。',
|
||
'settings.general.uiZoomReset': '重置介面縮放到 100%',
|
||
|
||
// ─── Empty Session ──────────────────────────────────────
|
||
'empty.title': '新建會話',
|
||
'empty.subtitle': '開始一個新的編碼會話。Claude 已準備好幫你構建、除錯和設計你的專案。',
|
||
'empty.placeholder': '隨便問點什麼...',
|
||
'empty.addFiles': '新增檔案或圖片',
|
||
'empty.slashCommands': '斜槓命令',
|
||
'empty.failedToCreate': '建立會話失敗',
|
||
'empty.createError.workdirMissing': '專案目錄不存在或不是資料夾。請選擇一個存在的專案後重試。',
|
||
'empty.createError.notGit': '當前專案不是 Git 倉庫,無法選擇分支啟動。可以直接在當前目錄開始,或改選一個 Git 專案。',
|
||
'empty.createError.branchNotFound': '選中的分支已經不存在。請重新整理專案上下文後重新選擇分支。',
|
||
'empty.createError.dirtyWorktree': '當前專案有未提交改動,已阻止直接切換分支。請開啟“獨立工作樹”,或先提交/暫存這些改動。',
|
||
'empty.createError.branchCheckedOut': '該分支已在其他工作樹中檢出。請開啟“獨立工作樹”,或選擇其他分支。',
|
||
'empty.createError.worktreeCreateFailed': '無法建立獨立工作樹。請確認 Git 可以寫入此倉庫後重試。詳情:{detail}',
|
||
'empty.createError.switchFailed': '無法切換當前專案分支。請先確認 Git 錯誤並保護好本地改動後重試。詳情:{detail}',
|
||
'empty.createError.contextFailed': '無法檢查這個 Git 專案。請確認倉庫狀態後重試。',
|
||
|
||
// ─── Repository Launch Controls ──────────────────────────────────────
|
||
'repoLaunch.selectBranch': '選擇分支',
|
||
'repoLaunch.searchBranch': '搜尋分支',
|
||
'repoLaunch.noBranch': '無分支',
|
||
'repoLaunch.noBranchMatch': '沒有匹配的分支',
|
||
'repoLaunch.currentBranch': '當前分支',
|
||
'repoLaunch.localBranch': '本地分支',
|
||
'repoLaunch.remoteBranch': '遠端分支',
|
||
'repoLaunch.checkedOut': '已在其他工作樹中檢出',
|
||
'repoLaunch.worktreeCurrent': '當前工作樹',
|
||
'repoLaunch.worktreeIsolated': '獨立工作樹',
|
||
'repoLaunch.selectWorktree': '選擇工作樹模式',
|
||
'repoLaunch.missingWorkdir': '工作目錄不存在。',
|
||
'repoLaunch.dirtyWarning': '檢測到未提交變更,直接切換可能會被阻止;使用獨立工作樹可以繼續,且不會改動當前目錄。',
|
||
'repoLaunch.checkedOutWarning': '選中的分支已在其他工作樹中檢出。直接啟動可能會被 Git 阻止;使用“獨立工作樹”可以避免切換當前目錄。',
|
||
|
||
// ─── Chat Input ──────────────────────────────────────
|
||
'chat.placeholder': '讓 Claude 編輯、除錯或解釋程式碼...',
|
||
'chat.placeholderMissing': '此會話指向的工作目錄缺失。請新建會話或選擇其他專案。',
|
||
'chat.addFiles': '新增檔案或圖片',
|
||
'chat.dropFilesTitle': '鬆手新增檔案',
|
||
'chat.dropFilesHint': '會以檔案路徑附加到當前輸入。',
|
||
'chat.workspaceReferencesOnly': '已新增 {count} 個工作區引用',
|
||
'chat.contextReferencesOnly': '已新增 {count} 個引用',
|
||
'chat.addSelectionToChat': '新增到對話',
|
||
'chat.branchFromHere': 'Fork 一個新對話',
|
||
'chat.branchSuccess': '已 Fork 新對話“{title}”。',
|
||
'chat.branchError': '從該訊息 Fork 新對話失敗。詳情:{detail}',
|
||
'chat.userMessageReference': '使用者訊息',
|
||
'chat.assistantMessageReference': 'AI 回覆',
|
||
'chat.conversationNavigator.label': '對話導覽',
|
||
'chat.conversationNavigator.attachments': '{count} 個附件',
|
||
'chat.slashCommands': '斜槓命令',
|
||
'chat.pendingMessageGuide': '引導',
|
||
'chat.pendingMessageGuideNow': '立即引導',
|
||
'chat.pendingMessageEdit': '編輯排隊訊息',
|
||
'chat.pendingMessageDelete': '刪除排隊訊息',
|
||
'chat.pendingMessageEditInput': '排隊訊息文字',
|
||
'chat.goalEvent.created': '目標已設定',
|
||
'chat.goalEvent.replaced': '目標已設定',
|
||
'chat.goalEvent.statusTitle': '目標狀態',
|
||
'chat.goalEvent.paused': '目標已暫停',
|
||
'chat.goalEvent.resumed': '目標已恢復',
|
||
'chat.goalEvent.completed': '目標已完成',
|
||
'chat.goalEvent.cleared': '目標已清除',
|
||
'chat.goalEvent.continuing': '目標繼續執行',
|
||
'chat.goalEvent.message': '目標更新',
|
||
'chat.goalEvent.objective': '目標:{value}',
|
||
'chat.goalEvent.statusValue': '狀態:{value}',
|
||
'chat.goalEvent.budget': '預算:{value}',
|
||
'chat.goalEvent.continuations': '續作次數:{value}',
|
||
'chat.compactSummary.compacting': '上下文正在壓縮',
|
||
'chat.compactSummary.title': '上下文已壓縮',
|
||
'chat.compactSummary.autoTitle': '上下文已自動壓縮',
|
||
'chat.compactSummary.manualTitle': '上下文已手動壓縮',
|
||
'chat.compactSummary.trigger.manual': '手動',
|
||
'chat.compactSummary.trigger.auto': '自動',
|
||
'chat.compactSummary.tokens': '壓縮前 {count} tokens',
|
||
'chat.compactSummary.messages': '已摘要 {count} 條訊息',
|
||
'chat.activeGoal.title': '當前目標',
|
||
'chat.activeGoal.running': '自迴圈執行中',
|
||
'chat.activeGoal.active': '進行中',
|
||
'chat.activeGoal.paused': '已暫停',
|
||
'chat.activeGoal.completed': '已完成',
|
||
'chat.activeGoal.budget': '預算 {value}',
|
||
'chat.activeGoal.continuations': '續作次數 {value}',
|
||
'chat.activeGoal.elapsed': '已用時 {value}',
|
||
'chat.backgroundAgents.title': '後臺 Agent',
|
||
'chat.backgroundAgents.count': '{count} 個執行中或最近任務',
|
||
'chat.backgroundAgents.agent': 'agent',
|
||
'chat.backgroundTasks.title': '後臺任務',
|
||
'chat.backgroundTasks.runningCountOne': '{count} 個執行中任務',
|
||
'chat.backgroundTasks.runningCountMany': '{count} 個執行中任務',
|
||
'chat.backgroundTasks.finishedCountOne': '{count} 個已完成任務',
|
||
'chat.backgroundTasks.finishedCountMany': '{count} 個已完成任務',
|
||
'chat.backgroundTasks.running': '執行中',
|
||
'chat.backgroundTasks.finished': '已完成',
|
||
'chat.backgroundTasks.clear': '清除',
|
||
'chat.backgroundTasks.close': '關閉後臺任務',
|
||
'chat.backgroundTasks.command': '後臺命令',
|
||
'chat.backgroundTasks.workflow': '後臺工作流',
|
||
'chat.backgroundTasks.task': '後臺任務',
|
||
'chat.backgroundTasks.type.agent': 'Agent',
|
||
'chat.backgroundTasks.type.bash': 'Bash',
|
||
'chat.backgroundTasks.type.workflow': '工作流',
|
||
'chat.backgroundTasks.type.task': '任務',
|
||
'chat.backgroundAgents.tokens': '{count} tokens',
|
||
'chat.backgroundAgents.status.running': '執行中',
|
||
'chat.backgroundAgents.status.completed': '已完成',
|
||
'chat.backgroundAgents.status.failed': '失敗',
|
||
'chat.backgroundAgents.status.stopped': '已停止',
|
||
'chat.duration.seconds': '{seconds} 秒',
|
||
'chat.duration.minutesSeconds': '{minutes} 分 {seconds} 秒',
|
||
'slash.mcp.title': '可用 MCP 工具',
|
||
'slash.mcp.subtitle': '展示當前聊天上下文裡的全域性 MCP 和當前專案 MCP。',
|
||
'slash.mcp.subtitleWithProject': '當前展示全域性 MCP 以及這個專案的 MCP:{path}',
|
||
'slash.mcp.emptyTitle': '沒有可用的 MCP 服務',
|
||
'slash.mcp.emptyBody': '當前聊天上下文裡沒有可用的全域性或專案 MCP 服務。',
|
||
'slash.mcp.projectBadge': '專案:{name}',
|
||
'slash.skills.title': '可用技能',
|
||
'slash.skills.subtitle': '展示當前上下文裡可直接呼叫的技能。',
|
||
'slash.skills.subtitleWithProject': '當前展示專案下的技能:{path}',
|
||
'slash.skills.emptyTitle': '沒有可用技能',
|
||
'slash.skills.emptyBody': '當前上下文裡沒有找到可直接呼叫的技能。',
|
||
'slash.plugins.title': '外掛',
|
||
'slash.plugins.subtitle': '外掛管理後續會接到這個斜槓命令面板裡。',
|
||
'slash.plugins.emptyTitle': '外掛面板即將接入',
|
||
'slash.plugins.emptyBody': '這套共享的斜槓命令面板已經接通,外掛資料下一步接進來。',
|
||
'slash.help.title': '斜槓命令',
|
||
'slash.help.subtitle': '執行 Agent 工作流、檢視會話狀態,或開啟桌面端面板。',
|
||
'slash.help.group.context': '上下文',
|
||
'slash.help.group.project': '專案',
|
||
'slash.help.group.desktop': '桌面端',
|
||
'slash.help.group.more': '更多',
|
||
'slash.help.moreAvailable': '還有 {count} 條命令可用。輸入 / 可以搜尋完整命令列表。',
|
||
'slash.inspector.title': '會話檢查器',
|
||
'slash.inspector.close': '關閉會話檢查器',
|
||
'slash.inspector.loading': '正在載入會話資料',
|
||
'slash.inspector.error.noActiveSession': '當前沒有選中的活躍會話。',
|
||
'slash.inspector.error.unavailable': '會話檢查器資料不可用。請重啟桌面端後端,讓 /api/sessions/:id/inspection 介面生效。',
|
||
'slash.inspector.tab.status': '狀態',
|
||
'slash.inspector.tab.usage': '用量',
|
||
'slash.inspector.tab.context': '上下文',
|
||
'slash.inspector.status.cliStatus': 'CLI 狀態',
|
||
'slash.inspector.status.running': '執行中',
|
||
'slash.inspector.status.notRunning': '未執行',
|
||
'slash.inspector.status.activeModel': '當前模型',
|
||
'slash.inspector.status.unknown': '未知',
|
||
'slash.inspector.status.mcpConnections': 'MCP 連線',
|
||
'slash.inspector.status.connected': '已連線',
|
||
'slash.inspector.status.failed': '失敗',
|
||
'slash.inspector.status.registeredTools': '註冊工具',
|
||
'slash.inspector.status.commands': '條命令',
|
||
'slash.inspector.status.sessionMetadata': '會話後設資料',
|
||
'slash.inspector.status.version': '版本',
|
||
'slash.inspector.status.sessionId': '會話 ID',
|
||
'slash.inspector.status.workingDirectory': '工作目錄',
|
||
'slash.inspector.status.permissionMode': '許可權模式',
|
||
'slash.inspector.status.authToken': '認證令牌',
|
||
'slash.inspector.status.outputStyle': '輸出樣式',
|
||
'slash.inspector.status.default': '預設',
|
||
'slash.inspector.status.mcpServers': 'MCP 服務',
|
||
'slash.inspector.status.refresh': '重新整理',
|
||
'slash.inspector.status.contextWindow': '上下文視窗',
|
||
'slash.inspector.usage.emptyTitle': '暫無用量資料',
|
||
'slash.inspector.usage.emptyBody': 'CLI 會話啟動並完成至少一輪迴復後,這裡會顯示用量。',
|
||
'slash.inspector.usage.contextSnapshotNotice': '當前展示來自上下文快照的 token 用量。上下文資料重新整理後會同步更新。',
|
||
'slash.inspector.usage.transcriptNotice': '當前展示從會話記錄重建的用量。API 耗時只對正在執行的 CLI 程序可用。',
|
||
'slash.inspector.usage.unknownCost': '部分模型價格未知,費用統計可能不準確。',
|
||
'slash.inspector.usage.totalCost': '總費用',
|
||
'slash.inspector.usage.source': '來源',
|
||
'slash.inspector.usage.source.contextSnapshot': '上下文快照',
|
||
'slash.inspector.usage.source.transcript': '會話記錄',
|
||
'slash.inspector.usage.source.currentProcess': '當前程序',
|
||
'slash.inspector.usage.apiDuration': 'API 耗時',
|
||
'slash.inspector.usage.wallDuration': '總耗時',
|
||
'slash.inspector.usage.usageSpan': '用量跨度',
|
||
'slash.inspector.usage.codeChanges': '程式碼改動',
|
||
'slash.inspector.usage.input': '輸入',
|
||
'slash.inspector.usage.output': '輸出',
|
||
'slash.inspector.usage.cacheReadWrite': '快取讀 / 寫',
|
||
'slash.inspector.usage.webSearch': '網頁搜尋',
|
||
'slash.inspector.usage.byModel': '按模型統計',
|
||
'slash.inspector.usage.tokens': 'Tokens',
|
||
'slash.inspector.usage.noModelTitle': '暫無模型用量',
|
||
'slash.inspector.usage.noModelBody': '記錄到模型回覆後,這裡會顯示 token 用量。',
|
||
'slash.inspector.context.loading': '正在載入上下文資料',
|
||
'slash.inspector.context.emptyTitle': '暫無上下文資料',
|
||
'slash.inspector.context.emptyBody': '上下文用量需要活躍的 CLI 會話。',
|
||
'slash.inspector.context.windowUsage': '上下文視窗用量',
|
||
'slash.inspector.context.used': '已使用',
|
||
'slash.inspector.context.free': '剩餘',
|
||
'slash.inspector.context.messages': '訊息',
|
||
'slash.inspector.context.assistant': '助手',
|
||
'slash.inspector.context.toolResults': '工具結果',
|
||
'slash.inspector.context.context': '上下文',
|
||
'slash.inspector.context.categoryTitle': '按類別估算',
|
||
'slash.inspector.context.noCategoriesTitle': '暫無上下文分類',
|
||
'slash.inspector.context.noCategoriesBody': 'CLI 返回上下文分析後,這裡會顯示分類資料。',
|
||
'slash.inspector.context.memoryFiles': '記憶檔案',
|
||
'slash.inspector.context.noMemoryFiles': '當前會話沒有載入記憶檔案。',
|
||
'slash.inspector.context.openMemory': '開啟記憶',
|
||
'contextIndicator.ariaLabel': '上下文用量 {percent}',
|
||
'contextIndicator.pendingAria': '上下文用量待計算',
|
||
'contextIndicator.loadingAria': '上下文用量載入中',
|
||
'contextIndicator.unavailableAria': '上下文用量不可用',
|
||
'contextIndicator.title': '上下文',
|
||
'contextIndicator.modelUnknown': '未知模型',
|
||
'contextIndicator.used': '已使用',
|
||
'contextIndicator.free': '剩餘',
|
||
'contextIndicator.window': '視窗',
|
||
'contextIndicator.loading': '正在載入上下文用量...',
|
||
'contextIndicator.pendingDetail': '會話啟動後計算上下文用量。',
|
||
'contextIndicator.unavailable': '不可用',
|
||
'contextIndicator.unavailableDetail': '此會話暫時無法獲取上下文用量。',
|
||
'contextIndicator.updatedUnknown': '尚未重新整理',
|
||
'contextIndicator.updatedNow': '剛剛更新',
|
||
'contextIndicator.updatedMinutes': '{count} 分鐘前更新',
|
||
'contextIndicator.estimate': '估算',
|
||
'chat.navigate': '導航',
|
||
'chat.select': '選擇',
|
||
'chat.dismiss': '關閉',
|
||
'chat.stopTitle': '停止生成 (Cmd+.)',
|
||
'chat.jumpToLatest': '回到最新',
|
||
'chat.memorySavedTitle': '已儲存 {count} 個記憶檔案',
|
||
'chat.memorySavedFromToolsTitle': '儲存了 {count} 條記憶',
|
||
'chat.memoryReferencedTitle': '{count} 條記憶引用',
|
||
'chat.memoryOpenSettings': '開啟記憶',
|
||
'chat.memoryMoreFiles': '還有 {count} 個',
|
||
'chat.memoryTechnicalDetails': '工具詳情',
|
||
'chat.rewindSuccessWithCode': '已回滾 {count} 條訊息,並恢復相關檔案。',
|
||
'chat.rewindSuccessConversationOnly': '已回滾 {count} 條訊息。這一輪沒有可用的檔案檢查點。',
|
||
'chat.turnChangesTitle': '{count} 個檔案已更改',
|
||
'chat.turnChangesLatestCardLabel': '輪次已更改檔案',
|
||
'chat.turnChangesHistoricalCardLabel': '輪次已更改檔案',
|
||
'chat.turnChangesLatestSubtitle': '當前輪次檢查點',
|
||
'chat.turnChangesHistoricalSubtitle': '歷史輪次檢查點',
|
||
'chat.turnChangesLatestUndo': '撤銷當前輪次',
|
||
'chat.turnChangesHistoricalUndo': '回滾到這一輪之前',
|
||
'chat.turnChangesUndoing': '正在撤銷...',
|
||
'chat.turnChangesLatestUndoAria': '撤銷當前輪次變更',
|
||
'chat.turnChangesHistoricalUndoAria': '回滾到這一輪之前',
|
||
'chat.turnChangesLatestConfirmTitle': '撤銷當前輪次?',
|
||
'chat.turnChangesHistoricalConfirmTitle': '回滾到這一輪之前?',
|
||
'chat.turnChangesLatestConfirmBody': '這會回滾最近一次助手回覆,並恢復這一輪中被跟蹤的檔案變更。',
|
||
'chat.turnChangesHistoricalConfirmBody': '這會把會話回滾到這一輪之前,並恢復該檢查點對應的檔案變更。',
|
||
'chat.turnChangesLatestConfirmUndo': '撤銷當前輪次',
|
||
'chat.turnChangesHistoricalConfirmUndo': '回滾到這一輪之前',
|
||
'chat.turnChangesOpenInWorkspaceAria': '在工作區開啟 {path}',
|
||
'chat.turnChangesShowMore': '再顯示 {count} 個檔案',
|
||
'chat.turnChangesShowLess': '收起',
|
||
|
||
// ─── Streaming Indicator ──────────────────────────────────────
|
||
'streaming.thinking': '思考中',
|
||
'streaming.running': '執行中',
|
||
'streaming.working': '工作中',
|
||
|
||
// ─── Permission Dialog ──────────────────────────────────────
|
||
'permission.allowEditFile': '允許 Claude {toolName} {fileName}?',
|
||
'permission.allowEditFileGeneric': '允許 Claude {toolName}此檔案?',
|
||
'permission.allowBash': '允許 Claude 執行此命令?',
|
||
'permission.allowTool': '允許 Claude 使用 {toolName}?',
|
||
'permission.awaitingApproval': '等待審批',
|
||
'permission.responded': '已響應',
|
||
'permission.allow': '允許',
|
||
'permission.allowForSession': '本次會話允許',
|
||
'permission.deny': '拒絕',
|
||
'permission.hideDetails': '隱藏詳情',
|
||
'permission.showFullInput': '顯示完整輸入',
|
||
'permission.replacingContent': '替換檔案內容',
|
||
'permission.planReadyTitle': '準備開始編碼?',
|
||
'permission.planPreviewTitle': 'Claude 的計劃',
|
||
'permission.planRequestedPermissions': '請求的權限',
|
||
'permission.planApprove': '批准計劃',
|
||
'permission.planKeepPlanning': '繼續規劃',
|
||
'permission.planFeedbackPlaceholder': '告訴 Claude 需要修改什麼',
|
||
'permission.planEmpty': '暫無計劃內容。',
|
||
'permission.planApproved': '計劃已批准',
|
||
'permission.planRejected': '計劃已拒絕',
|
||
|
||
// ─── Computer Use Approval ──────────────────────────────────────
|
||
'computerUseApproval.titleApps': 'Computer Use 想控制這些應用',
|
||
'computerUseApproval.titleTcc': 'Computer Use 需要 macOS 許可權',
|
||
'computerUseApproval.reason': '請求原因',
|
||
'computerUseApproval.allow': '本次會話允許',
|
||
'computerUseApproval.deny': '拒絕',
|
||
'computerUseApproval.alreadyGranted': '本次會話已授權',
|
||
'computerUseApproval.notInstalled': '應用未安裝',
|
||
'computerUseApproval.sensitiveApp': '該應用屬於高敏感類別,請額外確認後再授權。',
|
||
'computerUseApproval.alsoRequested': '同時請求了',
|
||
'computerUseApproval.hideWhileWorking': 'Claude 工作時會隱藏另外 {count} 個應用。',
|
||
'computerUseApproval.hideWhileWorkingRestore': 'Claude 工作時會隱藏另外 {count} 個應用,結束後會自動恢復。',
|
||
'computerUseApproval.accessibility': '輔助功能',
|
||
'computerUseApproval.screenRecording': '螢幕錄製',
|
||
'computerUseApproval.granted': '已授權',
|
||
'computerUseApproval.notGranted': '未授權',
|
||
'computerUseApproval.openAccessibility': '開啟輔助功能設定',
|
||
'computerUseApproval.openScreenRecording': '開啟螢幕錄製設定',
|
||
'computerUseApproval.tryAgain': '稍後重試',
|
||
'computerUseApproval.tccHint': '先在系統設定裡授予缺失許可權,返回後再點“稍後重試”。',
|
||
'computerUseApproval.tryAgainHint': '“稍後重試”會把控制權交還給 Claude,讓它在 macOS 許可權生效後重新呼叫 request_access。',
|
||
|
||
// ─── Ask User Question ──────────────────────────────────────
|
||
'question.needsInput': 'Claude 需要你的輸入',
|
||
'question.answered': '已回答',
|
||
'question.completed': '已結束',
|
||
'question.customResponse': '或輸入自定義回覆:',
|
||
'question.typePlaceholder': '輸入你的回答...',
|
||
'question.submit': '提交',
|
||
'question.answeredPrefix': '已回答: ',
|
||
'question.resultPrefix': '結果: ',
|
||
|
||
// ─── Thinking Block ──────────────────────────────────────
|
||
'thinking.label': '思考中',
|
||
'thinking.labelDone': '已思考',
|
||
|
||
// ─── Tool Calls ──────────────────────────────────────
|
||
'tool.errorOutput': '錯誤輸出',
|
||
'tool.toolOutput': '工具輸出',
|
||
'tool.toolInput': '工具輸入',
|
||
'tool.partialInput': '部分輸入',
|
||
'tool.writerPreview': 'Writer',
|
||
'tool.writerPreviewLatest': '正在顯示最新 {visible} / {total} 行',
|
||
'tool.contentStats': '{lines} · {chars}',
|
||
'tool.contentStatsLatest': '最新 {visible} / {total} 行 · {chars}',
|
||
'tool.lineCountSingular': '{count} 行',
|
||
'tool.lineCountPlural': '{count} 行',
|
||
'tool.charCountSingular': '{count} 字元',
|
||
'tool.charCountPlural': '{count} 字元',
|
||
'tool.generatingContent': '正在生成內容',
|
||
'tool.preparingEdit': '正在準備編輯',
|
||
'tool.preparingTool': '正在準備工具',
|
||
'tool.stopped': '已停止',
|
||
'tool.readFileContents': '讀取檔案內容',
|
||
'tool.createFile': '建立檔案',
|
||
'tool.updateFileContents': '更新檔案內容',
|
||
'tool.linesChanged': '{count} 行已更改',
|
||
'tool.linesCreated': '{count} 行已建立',
|
||
'tool.linesOutput': '{count} 行輸出',
|
||
'tool.result': '{toolName} 結果',
|
||
'tool.resultGeneric': '工具結果',
|
||
'tool.error': '錯誤',
|
||
'tool.success': '成功',
|
||
'tool.showLess': '收起',
|
||
'tool.showMore': '展開 {count} 個字元',
|
||
|
||
// ─── Tool Group Verbs ──────────────────────────────────────
|
||
'toolGroup.readOne': '讀取了 1 個檔案',
|
||
'toolGroup.readMany': '讀取了 {count} 個檔案',
|
||
'toolGroup.createdOne': '建立了一個檔案',
|
||
'toolGroup.createdMany': '建立了 {count} 個檔案',
|
||
'toolGroup.editedOne': '編輯了一個檔案',
|
||
'toolGroup.editedMany': '編輯了 {count} 個檔案',
|
||
'toolGroup.ranOne': '執行了一條命令',
|
||
'toolGroup.ranMany': '執行了 {count} 條命令',
|
||
'toolGroup.foundFiles': '查詢到檔案',
|
||
'toolGroup.searchedOne': '搜尋了程式碼',
|
||
'toolGroup.searchedMany': '搜尋了 {count} 個模式',
|
||
'toolGroup.agentOne': '派遣了一個代理',
|
||
'toolGroup.agentMany': '派遣了 {count} 個代理',
|
||
'agentStatus.starting': '開始中',
|
||
'agentStatus.running': '進行中',
|
||
'agentStatus.done': '完成',
|
||
'agentStatus.failed': '失敗',
|
||
'agentStatus.stopped': '已停止',
|
||
'agentStatus.noActivity': '暫時還沒有工具活動',
|
||
'agentStatus.viewResult': '檢視結果',
|
||
'agentStatus.resultTitle': 'Agent 結果',
|
||
'toolGroup.searchedWeb': '搜尋了網頁',
|
||
'toolGroup.fetchedOne': '獲取了一個頁面',
|
||
'toolGroup.fetchedMany': '獲取了 {count} 個頁面',
|
||
|
||
// ─── Tasks ──────────────────────────────────────
|
||
'tasks.title': '任務',
|
||
'tasks.completed': '已完成的任務',
|
||
'tasks.dismissCompleted': '隱藏已完成任務',
|
||
'tasks.newTask': '+ 新建任務',
|
||
'tasks.emptyTitle': '暫無定時任務。',
|
||
'tasks.emptyDesc': '建立定時任務來自動化你的工程工作流。',
|
||
'tasks.createNew': '建立新任務',
|
||
'tasks.totalTasks': '總任務數',
|
||
'tasks.active': '活躍',
|
||
'tasks.disabled': '已禁用',
|
||
|
||
// ─── New Task Modal ──────────────────────────────────────
|
||
'newTask.title': '新建定時任務',
|
||
'newTask.localWarning': '本地任務僅在電腦喚醒時執行。',
|
||
'newTask.fullPermissions': '所有許可權',
|
||
'newTask.name': '名稱',
|
||
'newTask.namePlaceholder': 'daily-code-review',
|
||
'newTask.description': '描述',
|
||
'newTask.descPlaceholder': '審查昨天的提交併標記可疑之處',
|
||
'newTask.frequency': '頻率',
|
||
'newTask.everyNMinutes': '每 N 分鐘',
|
||
'newTask.everyNHours': '每 N 小時',
|
||
'newTask.daily': '每天',
|
||
'newTask.weekdays': '工作日(週一至週五)',
|
||
'newTask.specificDays': '指定星期幾',
|
||
'newTask.monthly': '每月',
|
||
'newTask.customCron': '自定義 Cron 表示式',
|
||
'newTask.intervalMinutes': '每 {n} 分鐘',
|
||
'newTask.intervalHours': '每 {n} 小時',
|
||
'newTask.atMinute': '在第 :{m} 分鐘',
|
||
'newTask.onMonthDay': '每月第 {d} 天',
|
||
'newTask.cronFormatHint': '格式:分 時 日 月 星期',
|
||
'newTask.invalidCron': '無效的 Cron 表示式',
|
||
'newTask.daySun': '日',
|
||
'newTask.dayMon': '一',
|
||
'newTask.dayTue': '二',
|
||
'newTask.dayWed': '三',
|
||
'newTask.dayThu': '四',
|
||
'newTask.dayFri': '五',
|
||
'newTask.daySat': '六',
|
||
'newTask.delayNote': '定時任務會使用隨機延遲以最佳化伺服器效能。',
|
||
'newTask.create': '建立任務',
|
||
'newTask.promptPlaceholder': '檢視過去 24 小時的提交。總結變更內容,標記有風險的模式或缺失的測試,並記錄值得跟進的事項。',
|
||
'newTask.notification': '通知',
|
||
'newTask.notifyOnComplete': '完成後推送通知',
|
||
'newTask.notifyChannels': '通知渠道',
|
||
'newTask.notifyHint': '任務完成後傳送原生桌面通知或 IM 訊息。',
|
||
'newTask.notifyDesktop': '桌面',
|
||
'newTask.notConfigured': '未配置',
|
||
'newTask.noChannelConfigured': '尚未配置任何 IM 渠道,請前往 設定 → IM 接入 進行配置。',
|
||
'newTask.noChannelSelected': '請至少選擇一個通知渠道。',
|
||
|
||
// ─── Cron 描述 ──────────────────────────────────────
|
||
'cron.everyMinute': '每分鐘執行',
|
||
'cron.everyNMinutes': '每 {n} 分鐘執行',
|
||
'cron.everyHour': '每小時執行',
|
||
'cron.everyNHours': '每 {n} 小時執行',
|
||
'cron.everyNHoursAtMinute': '每 {n} 小時在第 :{m} 分鐘執行',
|
||
'cron.dailyAt': '每天 {time} 執行',
|
||
'cron.weekdaysAt': '工作日 {time} 執行',
|
||
'cron.specificDaysAt': '每{days} {time} 執行',
|
||
'cron.monthlyAt': '每月 {day} 日 {time} 執行',
|
||
'cron.customSchedule': '自定義:{cron}',
|
||
'cron.dow.0': '週日',
|
||
'cron.dow.1': '週一',
|
||
'cron.dow.2': '週二',
|
||
'cron.dow.3': '週三',
|
||
'cron.dow.4': '週四',
|
||
'cron.dow.5': '週五',
|
||
'cron.dow.6': '週六',
|
||
|
||
// ─── 任務操作與日誌 ──────────────────────────────────────
|
||
'tasks.runNow': '立即執行',
|
||
'tasks.confirmRun': '確定要立即執行此任務嗎?',
|
||
'tasks.confirmDisable': '確定要禁用此定時任務嗎?',
|
||
'tasks.confirmEnable': '確定要啟用此定時任務嗎?',
|
||
'tasks.confirmDelete': '確定要永久刪除此任務及其所有日誌嗎?',
|
||
'tasks.running': '執行中...',
|
||
'tasks.viewLogs': '日誌',
|
||
'tasks.logsTitle': '執行記錄',
|
||
'tasks.noLogs': '暫無執行記錄',
|
||
'tasks.runStatus.running': '執行中',
|
||
'tasks.runStatus.completed': '已完成',
|
||
'tasks.runStatus.failed': '失敗',
|
||
'tasks.runStatus.timeout': '超時',
|
||
'tasks.duration': '{s}秒',
|
||
'tasks.viewOutput': '摘要',
|
||
'tasks.hideOutput': '收起',
|
||
'tasks.close': '關閉',
|
||
'tasks.edit': '編輯',
|
||
'tasks.editTitle': '編輯定時任務',
|
||
'tasks.saveChanges': '儲存修改',
|
||
'tasks.openSession': '檢視完整對話',
|
||
'tasks.createdAt': '建立於 ',
|
||
'tasks.lastRunAt': '上次執行 ',
|
||
'tasks.outputHintSession': '點選「檢視完整對話」可在會話中檢視完整輸出。',
|
||
'tasks.noOutputText': '暫無輸出內容。',
|
||
|
||
// ─── Prompt Editor ──────────────────────────────────────
|
||
'promptEditor.worktree': '工作樹',
|
||
'promptEditor.bypassWarning': '跳過模式將授予完整系統訪問許可權',
|
||
'promptEditor.within': '範圍',
|
||
'promptEditor.selectFolder': '— 選擇資料夾以限制範圍',
|
||
|
||
// ─── Permission Mode Selector ──────────────────────────────────────
|
||
'permMode.executionPermissions': '執行許可權',
|
||
'permMode.askPermissions': '詢問許可權',
|
||
'permMode.askPermDesc': 'CLI 請求時確認檔案編輯和高風險命令',
|
||
'permMode.autoAccept': '自動接受編輯',
|
||
'permMode.autoAcceptDesc': 'Claude 無需詢問即可寫入磁碟',
|
||
'permMode.planMode': '計劃模式',
|
||
'permMode.planModeDesc': '僅架構和推理,不操作檔案',
|
||
'permMode.bypass': '跳過許可權',
|
||
'permMode.bypassDesc': '對 Shell 和檔案系統的完整工具訪問',
|
||
'permMode.dontAsk': '不詢問',
|
||
'permMode.enableBypassTitle': '啟用跳過許可權?',
|
||
'permMode.enableBypassSubtitle': '這將授予對系統的完全訪問許可權',
|
||
'permMode.enableBypassBody': 'Claude 將擁有<strong>不受限制的</strong>許可權來執行 Shell 命令和修改以下目錄中的檔案:',
|
||
'permMode.permReadWrite': '讀取、寫入和刪除任何檔案',
|
||
'permMode.permShell': '執行任意 Shell 命令',
|
||
'permMode.permPackages': '安裝或移除軟體包',
|
||
'permMode.enableBypassBtn': '啟用跳過',
|
||
'permMode.disabledDuringTurn': '工作階段進行中,無法切換權限',
|
||
|
||
// Mode labels (compact, for chips)
|
||
'permMode.label.default': '詢問許可權',
|
||
'permMode.label.acceptEdits': '自動接受',
|
||
'permMode.label.plan': '計劃模式',
|
||
'permMode.label.bypassPermissions': '跳過',
|
||
'permMode.label.dontAsk': '不詢問',
|
||
|
||
// ─── Model Selector ──────────────────────────────────────
|
||
'model.selectModel': '選擇模型',
|
||
'model.configuration': '模型配置',
|
||
'model.effort': '推理強度',
|
||
|
||
// ─── Directory Picker ──────────────────────────────────────
|
||
'dirPicker.selectProject': '選擇專案...',
|
||
'dirPicker.recent': '最近',
|
||
'dirPicker.noRecent': '暫無最近專案',
|
||
'dirPicker.chooseFolder': '選擇其他資料夾',
|
||
'dirPicker.chooseProjectFolder': '選擇專案資料夾',
|
||
'dirPicker.useThisFolder': '使用此資料夾',
|
||
'dirPicker.noSubdirs': '無子目錄',
|
||
|
||
// ─── File Search ──────────────────────────────────────
|
||
'fileSearch.searching': '搜尋中...',
|
||
'fileSearch.noMatch': '沒有匹配的檔案',
|
||
'fileSearch.noFiles': '此目錄下無檔案',
|
||
'fileSearch.accessDenied': '無法訪問此目錄',
|
||
'fileSearch.loadFailed': '目錄載入失敗',
|
||
'fileSearch.navigate': '導航',
|
||
'fileSearch.attach': '附加',
|
||
'fileSearch.select': '選擇',
|
||
'fileSearch.open': '開啟目錄',
|
||
'fileSearch.close': '關閉',
|
||
'fileSearch.directory': '目錄',
|
||
'fileSearch.currentDirectory': '當前目錄',
|
||
'fileSearch.folderTag': '目錄',
|
||
'fileSearch.fileTag': '檔案',
|
||
'fileSearch.openFolder': '開啟目錄',
|
||
|
||
// ─── Teams ──────────────────────────────────────
|
||
'teams.backToLeader': '\u2190 返回主控',
|
||
'teams.viewing': '檢視:',
|
||
'teams.transcript': '記錄',
|
||
'teams.noMessages': '暫無訊息',
|
||
'teams.team': '團隊:',
|
||
'teams.members': '名成員',
|
||
'teams.working': '正在工作中...',
|
||
'teams.thinking': '正在思考中...',
|
||
'teams.running': '執行中',
|
||
'teams.leader': '主控',
|
||
'teams.memberPlaceholder': '直接給這個 Agent 發訊息...',
|
||
'teams.memberSessionHint': '這裡傳送的訊息會直接投遞給該 Agent,同時繼續重新整理它的 transcript。',
|
||
|
||
// ─── Session Activity ──────────────────────────────────────
|
||
'session.activity.title': '活動',
|
||
'session.activity.close': '關閉活動',
|
||
'session.activity.clearFinished': '清除已完成',
|
||
'session.activity.openTeamMember': '開啟團隊成員 {name}',
|
||
'session.activity.openRun': '開啟執行 {name}',
|
||
'session.activity.openBackgroundTask': '開啟後台任務 {name}',
|
||
'session.activity.stopBackgroundTask': '停止後台任務 {name}',
|
||
'session.activity.stoppingBackgroundTask': '正在停止後台任務 {name}',
|
||
'session.activity.details.title': '詳情',
|
||
'session.activity.details.type': '類型',
|
||
'session.activity.details.description': '描述',
|
||
'session.activity.details.summary': '摘要',
|
||
'session.activity.details.outputFile': '輸出檔案',
|
||
'session.activity.details.usage': '用量',
|
||
'session.activity.section.tasks': '任務',
|
||
'session.activity.section.team': '團隊',
|
||
'session.activity.section.backgroundTasks': '後台任務',
|
||
'session.activity.section.subagents': 'SubAgent',
|
||
'session.activity.section.sources': '來源',
|
||
'session.activity.empty.tasks': '暫無任務',
|
||
'session.activity.empty.team': '暫無團隊成員',
|
||
'session.activity.empty.backgroundTasks': '暫無後台任務',
|
||
'session.activity.empty.subagents': '暫無 SubAgent',
|
||
'session.activity.empty.sources': '暫無來源',
|
||
'session.activity.task.completed': '任務已完成',
|
||
'session.activity.task.inProgress': '任務進行中',
|
||
'session.activity.task.pending': '任務待處理',
|
||
'session.activity.tasks.earlier': '歷史任務',
|
||
'session.activity.tasks.earlierSummary': '歷史輪次:{completed}/{total} 已完成',
|
||
'session.activity.status.pending': '待處理',
|
||
'session.activity.status.inProgress': '進行中',
|
||
'session.activity.status.completed': '已完成',
|
||
'session.activity.status.running': '執行中',
|
||
'session.activity.status.failed': '失敗',
|
||
'session.activity.status.stopped': '已停止',
|
||
'session.activity.status.idle': '閒置',
|
||
'session.activity.status.error': '錯誤',
|
||
'session.activity.status.unknown': '未知',
|
||
|
||
// ─── SubAgent Run ──────────────────────────────────────
|
||
'subagentRun.refresh': '重新整理 SubAgent 執行',
|
||
'subagentRun.loading': '正在載入 SubAgent 執行...',
|
||
'subagentRun.source': '來源',
|
||
'subagentRun.agent': 'Agent',
|
||
'subagentRun.unknown': '未知',
|
||
'subagentRun.task': '任務',
|
||
'subagentRun.updated': '更新時間',
|
||
'subagentRun.output': '輸出',
|
||
'subagentRun.agentInvocation': 'Agent 呼叫',
|
||
'subagentRun.parentToolInput': '父級 Agent 工具輸入',
|
||
'subagentRun.parentToolCall': '父級 Agent 工具呼叫',
|
||
'subagentRun.transcript': '執行記錄',
|
||
'subagentRun.noTranscript': '沒有擷取到這個 SubAgent 的本地執行記錄。',
|
||
'subagentRun.truncated': '顯示前 50 筆和最新 950 筆記錄',
|
||
'subagentRun.source.transcript': '執行記錄',
|
||
'subagentRun.source.sessionHistory': '會話歷史',
|
||
'subagentRun.source.liveTask': '即時任務',
|
||
'subagentRun.source.none': '無',
|
||
'subagentRun.status.completed': '已完成',
|
||
'subagentRun.status.failed': '失敗',
|
||
'subagentRun.status.stopped': '已停止',
|
||
'subagentRun.status.running': '執行中',
|
||
'subagentRun.status.unknown': '未知',
|
||
'subagentRun.result.completedFallback': 'SubAgent 已完成,但沒有結果內容。',
|
||
'subagentRun.result.failedFallback': 'SubAgent 已失敗,但沒有錯誤內容。',
|
||
'subagentRun.result.stoppedFallback': 'SubAgent 已停止,但沒有結果內容。',
|
||
'subagentRun.result.noneFallback': '暫無結果。',
|
||
|
||
// ─── Scheduled Tasks Pages ──────────────────────────────────────
|
||
'scheduledPage.title': '定時任務',
|
||
'scheduledPage.subtitle': '按計劃或在需要時執行任務。在任意會話中輸入 {code} 即可建立。',
|
||
'scheduledPage.desktopNotice': '定時任務僅在桌面應用開啟時執行。請確保應用持續執行以按時觸發任務。',
|
||
'scheduledPage.oldSubtitle': '管理自動化運維流程和後臺維護任務。',
|
||
'scheduledPage.executionMode': '執行模式',
|
||
'scheduledPage.localMode': '本地模式',
|
||
'scheduledPage.remoteMode': '遠端模式',
|
||
'scheduledPage.nextRun': '下次執行',
|
||
'scheduledPage.systemHealth': '系統健康',
|
||
'scheduledPage.activeSession': '活躍會話',
|
||
'scheduledPage.colTaskName': '任務名稱',
|
||
'scheduledPage.colFrequency': '頻率',
|
||
'scheduledPage.colLastResult': '上次結果',
|
||
'scheduledPage.colNextExecution': '下次執行',
|
||
'scheduledPage.colActions': '操作',
|
||
'scheduledPage.endOfList': '任務列表結束',
|
||
'scheduledPage.pausedTasks': '另有 9 個任務當前已暫停或因維護而禁用。',
|
||
'scheduledPage.recentLogs': '最近輸出日誌',
|
||
'scheduledPage.viewArtifacts': '檢視完整產物',
|
||
'scheduledPage.resourceAllocation': '資源分配',
|
||
'scheduledPage.cpuCapacity': 'CPU 容量',
|
||
'scheduledPage.memoryLoad': '記憶體負載',
|
||
'scheduledPage.connectedLocal': '已連線到本地節點',
|
||
'scheduledPage.thisMonth': '本月 {count}',
|
||
|
||
// ─── 更新檢查 ──────────────────────────────────────
|
||
'update.available': 'v{version} 可用',
|
||
'update.availableLabel': '可更新版本',
|
||
'update.checking': '正在檢查更新...',
|
||
'update.checkNow': '檢查更新',
|
||
'update.checkedAt': '上次檢查時間 {time}',
|
||
'update.currentVersionUnknown': '未知版本',
|
||
'update.newVersion': '新版本 v{version} 可用',
|
||
'update.downloading': '下載中...',
|
||
'update.downloaded': '更新已下載。方便時重啟即可使用新版。',
|
||
'update.idle': '點選檢查更新,對比當前安裝版本和 GitHub Releases 的最新版本。',
|
||
'update.installAndRestart': '安裝並重啟',
|
||
'update.installing': '正在安裝更新...',
|
||
'update.now': '立即更新',
|
||
'update.later': '稍後',
|
||
'update.progress': '正在下載更新... {progress}%',
|
||
'update.progressBytes': '正在下載更新... 已下載 {downloaded}',
|
||
'update.proxyAdvanced': '高階更新代理',
|
||
'update.proxyModeManual': '手動代理',
|
||
'update.proxyModeManualDescription': '使用你填寫的本地 HTTP 代理地址。',
|
||
'update.proxyModeSystem': '系統代理',
|
||
'update.proxyModeSystemDescription': '自動使用系統 HTTP/HTTPS 代理。',
|
||
'update.proxySave': '儲存',
|
||
'update.proxyScopeHint': '這裡隻影響應用自身的更新檢查和安裝包下載。',
|
||
'update.proxyUrl': '代理地址',
|
||
'update.proxyUrlHint': '支援 HTTP 和 HTTPS 代理,例如 http://127.0.0.1:7890。',
|
||
'update.proxyUrlInvalid': '請輸入 HTTP 或 HTTPS 代理地址。',
|
||
'update.proxyUrlRequired': '請輸入代理地址。',
|
||
'update.releaseNotes': '更新說明',
|
||
'update.readyBody': 'v{version} 已下載。方便時重啟即可使用新版。',
|
||
'update.readyTitle': '更新已準備好',
|
||
'update.restarting': '正在重啟以完成更新...',
|
||
'update.upToDate': '當前已是最新版本 v{version}。',
|
||
'update.failed': '更新失敗: {error}',
|
||
|
||
// ─── 活躍會話 ──────────────────────────────────────
|
||
'session.untitled': '未命名會話',
|
||
'session.active': '會話活躍中',
|
||
'session.lastUpdated': '最後更新 {time}',
|
||
'session.messages': '{count} 條訊息',
|
||
'session.historyLoadFailed': '歷史會話載入失敗。',
|
||
'session.workspaceUnavailable': '工作目錄不可用: {dir}',
|
||
'session.timeJustNow': '剛剛',
|
||
'session.timeMinutes': '{n}分鐘前',
|
||
'session.timeHours': '{n}小時前',
|
||
'session.timeDays': '{n}天前',
|
||
'trace.open': 'Trace',
|
||
'trace.title': '模型 Trace',
|
||
'trace.loadFailed': 'Trace 載入失敗',
|
||
'trace.apiCalls': 'API 呼叫',
|
||
'trace.failedCalls': '失敗',
|
||
'trace.duration': '耗時',
|
||
'trace.elapsed': '已用時',
|
||
'trace.completed': '完成',
|
||
'trace.wallTime': '牆鐘時間',
|
||
'trace.modelTime': '模型耗時',
|
||
'trace.toolTime': '工具耗時',
|
||
'trace.models': '模型',
|
||
'trace.request': '請求',
|
||
'trace.response': '回應',
|
||
'trace.status': '狀態',
|
||
'trace.live': '即時',
|
||
'trace.updatedAt': '更新',
|
||
'trace.copySessionId': '複製 Session ID',
|
||
'trace.refresh': '重新整理 Trace',
|
||
'trace.openWindow': '在獨立視窗開啟',
|
||
'trace.delete': '刪除 Trace',
|
||
'trace.noResponse': '未捕獲回應正文',
|
||
'trace.emptyTitle': '暫無 Trace 呼叫',
|
||
'trace.emptyBody': '這個會話還沒有捕獲到模型呼叫。新的桌面會話會自動記錄精簡的請求和回應預覽。',
|
||
'trace.tokens': 'Tokens',
|
||
'trace.snapshotEmpty': 'Trace 快照為空。',
|
||
'trace.errors': '錯誤',
|
||
'trace.focus': '關注點',
|
||
'trace.searchSpans': '搜尋 Span',
|
||
'trace.noMatchingSpans': '沒有符合的 Span',
|
||
'trace.filter.all': '全部',
|
||
'trace.filter.llm': 'LLM',
|
||
'trace.filter.tools': '工具',
|
||
'trace.filter.errors': '錯誤',
|
||
'trace.sidechain': '子鏈',
|
||
'trace.turnLabel': '第 {index} 輪',
|
||
'trace.waitingForResult': '等待結果',
|
||
'trace.started': '開始',
|
||
'trace.provider': 'Provider',
|
||
'trace.model': '模型',
|
||
'trace.childSpans': '子 Span',
|
||
'trace.requestBody': '請求正文',
|
||
'trace.requestHeaders': '請求頭',
|
||
'trace.responseBody': '回應正文',
|
||
'trace.responseHeaders': '回應頭',
|
||
'trace.toolResult': '工具結果',
|
||
'trace.truncatedShort': '已截斷',
|
||
'trace.noData': '無資料',
|
||
'trace.llmCalls': 'LLM 呼叫',
|
||
'trace.toolCalls': '工具呼叫',
|
||
'trace.status.ok': '正常',
|
||
'trace.status.error': '錯誤',
|
||
'trace.status.pending': '等待中',
|
||
'trace.message.user': '使用者訊息',
|
||
'trace.message.assistant': '助手訊息',
|
||
'trace.message.system': '系統訊息',
|
||
'trace.message.toolRequest': '助手請求工具',
|
||
'trace.message.toolResult': '工具結果',
|
||
'trace.toolError': '工具錯誤',
|
||
'trace.modelCall': '模型呼叫',
|
||
'trace.sessionActivity': '會話活動',
|
||
'trace.diagnosis.modelError': '模型呼叫失敗',
|
||
'trace.diagnosis.toolError': '工具執行失敗',
|
||
'trace.diagnosis.eventError': '鏈路事件失敗',
|
||
'trace.diagnosis.pendingModel': '正在等待模型回應',
|
||
'trace.diagnosis.pendingTool': '正在等待工具結果',
|
||
'trace.diagnosis.waitingForAgent': '使用者訊息尚未進入 agent 步驟',
|
||
'trace.diagnosis.empty': '沒有可診斷事件',
|
||
'trace.diagnosis.healthy': '未發現阻塞點',
|
||
'trace.event.apiCallStarted': 'API 呼叫開始',
|
||
'trace.event.apiCallCompleted': 'API 呼叫完成',
|
||
'trace.event.apiCallFailed': 'API 呼叫失敗',
|
||
'trace.event.apiCallAborted': 'API 呼叫中斷',
|
||
'trace.event.responseCaptureFailed': '回應捕獲失敗',
|
||
'trace.event.upstreamFetchStarted': '上游請求開始',
|
||
'trace.event.upstreamFetchCompleted': '上游請求完成',
|
||
'trace.event.upstreamFetchFailed': '上游請求失敗',
|
||
'trace.section.response': '回應',
|
||
'trace.section.messages': '訊息',
|
||
'trace.section.systemPrompt': '系統提示詞',
|
||
'trace.section.tools': '工具',
|
||
'trace.section.parameters': '參數',
|
||
'trace.section.raw': '原始資料',
|
||
'trace.section.input': '輸入',
|
||
'trace.section.result': '結果',
|
||
'trace.section.meta': '中繼資訊',
|
||
'trace.section.content': '內容',
|
||
'trace.section.event': '事件',
|
||
'trace.section.metadata': '中繼資料',
|
||
'trace.detail.stopReason': '停止原因',
|
||
'trace.detail.streaming': '等待模型回應...',
|
||
'trace.detail.aborted': '請求在回應完成前被中斷(逾時或取消)。',
|
||
'trace.status.aborted': '已中斷',
|
||
'trace.detail.legacyTruncated': '此記錄為舊格式截斷資料,無法解析語意檢視,請查看下方原始資料。',
|
||
'trace.detail.fetchFailed': '完整記錄載入失敗,以下顯示截斷預覽。',
|
||
'trace.detail.earlierMessages': '展開更早的 {count} 則訊息',
|
||
'trace.detail.chars': '{count} 字元',
|
||
'trace.detail.thinking': '思考',
|
||
'trace.detail.toolUseId': 'Tool use ID',
|
||
'trace.detail.phase': '階段',
|
||
'trace.detail.severity': '層級',
|
||
'trace.detail.message': '訊息',
|
||
'trace.tree.aria': 'Trace 時間軸',
|
||
'trace.tree.toggleTurn': '摺疊/展開輪次',
|
||
'trace.list.eyebrow': 'Agent Trace',
|
||
'trace.list.title': 'Trace 列表',
|
||
'trace.list.collecting': '正在收集',
|
||
'trace.list.paused': '已暫停',
|
||
'trace.list.settings': 'Trace 設定',
|
||
'trace.list.sessions': '會話',
|
||
'trace.list.searchPlaceholder': '搜尋標題、Session ID 或專案路徑',
|
||
'trace.list.emptyTitle': '還沒有 Trace 記錄',
|
||
'trace.list.emptyBody': '開啟收集後,新的桌面會話會把模型呼叫鏈路寫入本地 traces 目錄。',
|
||
'trace.list.loadFailed': 'Trace 列表載入失敗',
|
||
'trace.list.loadedCount': '已顯示 {shown} / {total}',
|
||
'trace.list.loadMore': '載入更多',
|
||
'trace.list.deleteConfirmTitle': '刪除 Trace 會話',
|
||
'trace.list.deleteConfirmBody': '刪除「{title}」的 Trace 資料?聊天記錄不會被刪除。',
|
||
'trace.list.deleteFailed': 'Trace 會話刪除失敗',
|
||
|
||
// ─── 應用外殼 ──────────────────────────────────────
|
||
'app.serverFailed': '本地服務啟動失敗',
|
||
'app.serverFailedHint': '反饋這個問題時,請把這塊診斷資訊截圖一起發到 issue 裡。',
|
||
'app.startupError': '啟動錯誤',
|
||
'app.serverLogs': '服務日誌',
|
||
'app.copyDiagnostics': '複製診斷資訊',
|
||
'app.copiedDiagnostics': '已複製',
|
||
'app.launching': '正在啟動本地工作區...',
|
||
|
||
// ─── Error Codes ──────────────────────────────────────
|
||
'error.CLI_NOT_RUNNING': 'CLI 程序未執行。會話可能已結束或程序已崩潰。',
|
||
'error.CLI_START_FAILED': 'CLI 程序啟動失敗。',
|
||
'error.CLI_AUTH_REQUIRED': '需要認證。請先登入。',
|
||
'error.CLI_SESSION_CONFLICT': '會話已被其他程序佔用。',
|
||
'error.CLI_SPAWN_FAILED': 'CLI 子程序啟動失敗。',
|
||
'error.CLI_ERROR': '處理過程中發生錯誤。',
|
||
'error.WORKDIR_INVALID': '工作目錄無效或不存在。',
|
||
'error.PARSE_ERROR': '訊息格式無效。',
|
||
'error.UNKNOWN_TYPE': '未知的訊息型別。',
|
||
'error.BAD_REQUEST': '請求無效。',
|
||
'error.NOT_FOUND': '資源未找到。',
|
||
'error.INTERNAL_ERROR': '內部伺服器錯誤。',
|
||
|
||
// ─── 業務錯誤 ──────────────────────────────────────
|
||
'businessError.pdf_too_large': '這個 PDF 超出了當前模型可處理的大小。請先轉成文字,或換一個更小的 PDF。',
|
||
'businessError.pdf_password_protected': '這個 PDF 有密碼保護。請先解鎖或轉換後再傳送。',
|
||
'businessError.pdf_invalid': '這個 PDF 檔案無效。請先轉成文字,或換一個檔案傳送。',
|
||
'businessError.image_too_large': '這張圖片超出了當前模型可處理的大小。請壓縮圖片,或換一張更小的圖片。',
|
||
'businessError.image_unsupported': '當前模型不支援圖片。請繼續使用文字,或切換到支援視覺的模型後重新傳送圖片。',
|
||
'businessError.request_too_large': '這次請求超出了當前模型可處理的大小。請移除大檔案,或縮短訊息後重試。',
|
||
'businessError.prompt_too_long': '當前上下文超出了模型限制。請先壓縮會話,或減少上下文後重試。',
|
||
'businessError.auto_mode_unavailable': '當前套餐不支援自動模式。',
|
||
|
||
// ─── Server Status Verbs ──────────────────────────────────────
|
||
'serverVerb.Thinking': '思考中',
|
||
'serverVerb.Compacting conversation': '正在壓縮上下文',
|
||
'serverVerb.Running': '執行中',
|
||
'serverVerb.Working': '處理中',
|
||
'serverVerb.Creating worktree': '正在建立工作樹',
|
||
'serverVerb.Task started': '任務已啟動',
|
||
'serverVerb.Task in progress': '任務進行中',
|
||
'chat.retry.title': '請求失敗,正在重試',
|
||
'chat.retry.attempt': '第 {attempt}/{max} 次',
|
||
'chat.retry.httpStatus': 'HTTP {status}',
|
||
'chat.retry.networkError': '網路錯誤',
|
||
'chat.retry.waiting': '等待 {seconds}s',
|
||
'chat.retry.retrying': '正在重試…',
|
||
'chat.fallback.title': '網路波動,已切換為非串流請求',
|
||
'chat.fallback.detail': '回應將一次性返回,可能需要較長時間',
|
||
|
||
|
||
// ─── Tabs ──────────────────────────────────────
|
||
'tabs.close': '關閉',
|
||
'tabs.closeOthers': '關閉其他',
|
||
'tabs.closeLeft': '關閉左側',
|
||
'tabs.closeRight': '關閉右側',
|
||
'tabs.closeAll': '關閉所有',
|
||
'tabs.closeConfirmTitle': '會話執行中',
|
||
'tabs.closeConfirmMessage': '此會話仍在執行,你想要怎麼做?',
|
||
'tabs.closeConfirmKeep': '保持執行',
|
||
'tabs.closeConfirmStop': '停止並關閉',
|
||
'tabs.closeAllConfirmTitle': '多個會話執行中',
|
||
// ─── Slash Command Descriptions ──────────────────────────────────────
|
||
'slashCmd.agent.description': '使用指定 Agent 執行提示',
|
||
'slashCmd.mcp.description': '開啟當前聊天上下文中可用的 MCP 工具',
|
||
'slashCmd.skills.description': '瀏覽當前上下文中可直接呼叫的技能',
|
||
'slashCmd.help.description': '檢視可用的桌面端與 Agent 命令',
|
||
'slashCmd.status.description': '檢視會話狀態、用量和上下文',
|
||
'slashCmd.cost.description': '檢視會話用量和費用',
|
||
'slashCmd.context.description': '檢視當前上下文用量',
|
||
'slashCmd.plugin.description': '在設定中開啟外掛管理',
|
||
'slashCmd.memory.description': '在設定中開啟專案記憶檔案',
|
||
'slashCmd.doctor.description': '在診斷中開啟 Doctor',
|
||
'slashCmd.compact.description': '壓縮會話上下文',
|
||
'slashCmd.clear.description': '清空會話歷史',
|
||
'slashCmd.goal.description': '設定完成目標',
|
||
'slashCmd.review.description': '審查程式碼變更',
|
||
'slashCmd.commit.description': '建立 git 提交',
|
||
'slashCmd.pr.description': '建立 Pull Request',
|
||
'slashCmd.init.description': '初始化專案 CLAUDE.md',
|
||
'slashCmd.bug.description': '報告 Bug',
|
||
'slashCmd.config.description': '開啟配置',
|
||
'slashCmd.login.description': '切換 Anthropic 賬戶',
|
||
'slashCmd.logout.description': '登出當前賬戶',
|
||
'slashCmd.model.description': '切換 AI 模型',
|
||
'slashCmd.permissions.description': '檢視或管理工具許可權',
|
||
'slashCmd.terminal-setup.description': '設定終端整合',
|
||
'slashCmd.vim.description': '切換 vim 編輯模式',
|
||
|
||
'tabs.closeAllConfirmMessage': '仍有 {count} 個會話正在執行。關閉這些標籤前是否停止它們?',
|
||
'tabs.closeAllConfirmStop': '全部停止並關閉',
|
||
'tabs.sessionRunning': '會話執行中',
|
||
'tabs.openTerminal': '開啟終端',
|
||
'tabs.showWorkspace': '顯示工作區',
|
||
'tabs.hideWorkspace': '隱藏工作區',
|
||
'tabs.showBrowser': '顯示瀏覽器',
|
||
'tabs.hideBrowser': '隱藏瀏覽器',
|
||
|
||
// 技能市集
|
||
'sidebar.market': '技能市集',
|
||
'market.title': '技能市集',
|
||
'market.subtitle': '瀏覽、預覽並安裝來自 ClawHub 與 SkillHub 的技能。',
|
||
'market.searchPlaceholder': '依名稱、關鍵字搜尋技能…',
|
||
'market.clearSearch': '清除搜尋',
|
||
'market.resultCount': '{count} 個技能',
|
||
'market.loadMore': '載入更多',
|
||
'market.loadingMore': '正在載入更多…',
|
||
'market.loading': '正在載入技能…',
|
||
'market.empty': '暫無可用技能',
|
||
'market.emptyHint': '兩個來源都沒有回傳結果,請檢查上方的來源狀態。',
|
||
'market.emptySearch': '沒有符合的技能',
|
||
'market.emptySearchHint': '換個關鍵字試試,或清除篩選條件。',
|
||
'market.error.list': '技能市集載入失敗',
|
||
'market.retry': '重試',
|
||
'market.filter.source': '來源',
|
||
'market.filter.security': '安全狀態',
|
||
'market.filter.installed': '安裝狀態',
|
||
'market.source.all': '全部來源',
|
||
'market.source.clawhub': 'ClawHub',
|
||
'market.source.skillhub': 'SkillHub',
|
||
'market.security.all': '全部安全狀態',
|
||
'market.security.verified': '已認證',
|
||
'market.security.benign': '掃描無風險',
|
||
'market.security.unknown': '未稽核',
|
||
'market.security.flagged': '存在風險',
|
||
'market.securityHint.verified': '發布者已認證,且通過來源方安全掃描。',
|
||
'market.securityHint.benign': '來源方安全掃描未發現風險。',
|
||
'market.securityHint.unknown': '來源方未提供安全審計資料,安裝前請自行檢查檔案內容。',
|
||
'market.securityHint.flagged': '來源方安全掃描標記該技能存在潛在風險。',
|
||
'market.disclaimer.title': '第三方技能,謹慎使用。',
|
||
'market.disclaimer.body': '技能來自社群第三方來源,本應用不對其內容做安全審計。安裝前請先查看技能檔案,建議先讓 AI 掃描一遍、確認安全後再使用。',
|
||
'market.disclaimer.dismiss': '關閉免責聲明',
|
||
'market.installedFilter.all': '全部技能',
|
||
'market.installedFilter.installed': '已安裝',
|
||
'market.installedFilter.installable': '未安裝',
|
||
'market.sourceStatus.ok': '正常',
|
||
'market.sourceStatus.degraded': '降級',
|
||
'market.sourceStatus.failed': '不可用',
|
||
'market.sourceStatus.cached': '快取',
|
||
'market.sourceStatus.cachedAt': '快取於 {time}',
|
||
'market.card.by': '作者 {author}',
|
||
'market.card.moreTags': '+{count}',
|
||
'market.install.state.installed': '已安裝',
|
||
'market.install.state.installable': '可安裝',
|
||
'market.install.state.notInstallable': '不可安裝',
|
||
'market.install.action': '安裝',
|
||
'market.install.installing': '安裝中…',
|
||
'market.uninstall.action': '解除安裝',
|
||
'market.uninstall.uninstalling': '解除安裝中…',
|
||
'market.uninstall.confirmTitle': '解除安裝技能',
|
||
'market.uninstall.confirmMessage': '確定從本機移除「{name}」嗎?{path} 下的檔案將被刪除。',
|
||
'market.uninstall.success': '「{name}」已解除安裝。',
|
||
'market.reason.empty-file-list': '該技能沒有可安裝的檔案(缺少 SKILL.md)。',
|
||
'market.reason.file-too-large': '該技能包含超過大小限制的檔案。',
|
||
'market.reason.too-many-files': '該技能檔案數量過多,無法安全安裝。',
|
||
'market.reason.invalid-name': '技能名稱無法作為本機目錄名稱使用。',
|
||
'market.reason.name-conflict': '本機已存在同名技能,請先重新命名或刪除後再安裝。',
|
||
'market.reason.source-unavailable': '該技能所屬的來源目前不可用。',
|
||
'market.detail.back': '返回市集',
|
||
'market.detail.overview': '概覽',
|
||
'market.detail.files': '檔案',
|
||
'market.detail.author': '作者',
|
||
'market.detail.version': '版本',
|
||
'market.detail.updated': '更新時間',
|
||
'market.detail.category': '分類',
|
||
'market.detail.license': '授權條款',
|
||
'market.detail.downloads': '下載量',
|
||
'market.detail.installs': '安裝量',
|
||
'market.detail.stars': '收藏',
|
||
'market.detail.securityReport': '安全報告',
|
||
'market.detail.viewReport': '檢視報告',
|
||
'market.detail.mirror': '也收錄於 {source}',
|
||
'market.detail.requiresApiKey': '需要 API Key',
|
||
'market.detail.loadError': '技能詳情載入失敗',
|
||
'market.detail.noDescription': '該技能未提供說明。',
|
||
'market.file.empty': '在左側選擇一個檔案進行預覽。',
|
||
'market.file.truncated': '預覽已截斷——檔案超出預覽大小限制。',
|
||
'market.file.loadError': '檔案載入失敗',
|
||
'market.file.noFiles': '該技能暫無可預覽檔案。',
|
||
'market.installConfirm.title': '安裝技能',
|
||
'market.installConfirm.message': '確定從 {source} 安裝「{name}」嗎?',
|
||
'market.installConfirm.location': '安裝位置',
|
||
'market.installConfirm.effectNote': '安裝完成後,技能將在新會話中生效。',
|
||
'market.installConfirm.riskBenign': '安全掃描未發現該技能存在風險。',
|
||
'market.installConfirm.riskVerified': '該技能來自已認證發布者,並通過了安全掃描。',
|
||
'market.installConfirm.riskUnknown': '該技能未經過安全稽核,安裝前請先檢查其檔案內容。',
|
||
'market.installConfirm.riskFlagged': '安全掃描標記該技能存在潛在風險,僅在您信任它時安裝。',
|
||
'market.installConfirm.confirm': '安裝',
|
||
'market.installConfirm.cancel': '取消',
|
||
'market.installSuccess': '「{name}」安裝成功,將在新會話中生效。',
|
||
'market.installError.network': '安裝失敗:無法連線技能來源,請檢查網路後重試。',
|
||
'market.installError.checksum': '安裝已中止:下載檔案未通過完整性驗證。在確認來源可信前請勿重試。',
|
||
'market.installError.exists': '安裝失敗:該技能已安裝或正在安裝中。',
|
||
'market.installError.disk': '安裝失敗:寫入磁碟失敗,請檢查權限與剩餘空間。',
|
||
'market.installError.notInstallable': '安裝失敗:該技能不可安裝。',
|
||
'market.installError.generic': '安裝失敗:{message}',
|
||
}
|