The native port is finished off with the readability work the earlier rounds left open, plus the cleanup of everything the shadcn era or the older canvas left behind. - Geometry: node height is now composed from named parts (chrome, two title lines, meta row) and per-node extras, so a teammate card that carries a task line no longer gets clipped by the old fixed 68px budget; the layout spec follows the new model and GRAPH_ROW_STRIDE stays exported for it. - Readability: row rhythm (28-32px), three ink levels for title/meta/owner, truncation with title hints, current-row and hover expressed as an accent bar plus a hover fill (no shadows), phase frames and edges back on the l1/l2 hairlines, control cluster uniformly 28px, drawer durations on tabular figures, kill action revealed on hover/focus without shifting the row, no horizontal overflow at 360px. - Task window: the markdown body is pulled onto the page scale (12px body, 12/13px headings, tightened list indent and paragraph spacing) while the shared MarkdownText/markdownTextProps contract is untouched. - Cleanup: dead stylesheet rules, unused TSX exports and helpers, stale comments that still described the retired Variant-D canvas, zero-reference i18n keys across the dictionaries, and the Tailwind/shadcn/Variant-D narrative in the design doc, AGENTS.md and the plugin guide (kept as one short "why it was rolled back" section). Verified here: typecheck and lint clean; 133 files / 1413 tests; build with no radix-ui or --tw- strings in lib/client.js (988.9 KiB); the 70-assertion real-browser contract at 70/70 with the 20 reference screenshots regenerated; mount e2e 7/7.
502 lines
30 KiB
TypeScript
502 lines
30 KiB
TypeScript
/**
|
||
* The zh-HK (Traditional Chinese — Hong Kong) dictionary for the betterSidebar
|
||
* namespace.
|
||
*
|
||
* Mirrors the key set of `zh` in `locales.ts`. Consumed by better-locale's
|
||
* override store when the active override id is `'zh-HK'` (registered under
|
||
* the `betterSidebar` namespace). Absent that, the existing zh/en chain
|
||
* runs unchanged.
|
||
*
|
||
* Hong Kong regional conventions:
|
||
* - 软件 → 軟體 (NOT 軟體); 网络 → 網路 (NOT 網路); 鼠标 → 滑鼠
|
||
* - 檔案 (file), 資料夾 (folder), 程式 (program), 程式碼 (code), 螢幕 (screen)
|
||
* - 預設 (default), 儲存 (save), 設定 (settings/config), 唯讀 (read-only)
|
||
* - 資源管理器 → 檔案總管; refresh → 重新整理; cache → 快取
|
||
* - timeout → 逾時; loop → 迴圈; override → 覆寫; built-in → 內建
|
||
* - adapter → 介面卡; interface → 介面; address → 位址; field → 欄位
|
||
* - byte → 位元組; binary → 二進位; character → 字元; hash → 雜湊
|
||
* - rename → 重新命名; archive → 歸檔; idle → 閒置; mount → 掛載
|
||
* - package → 套件; generate → 產生; fetch → 取得; export → 匯出
|
||
* - login → 登入; detect → 偵測; block → 封鎖; access → 存取
|
||
* - port → 連接埠; sensor → 感測器; server → 伺服器; global → 全域
|
||
* - nested → 巢狀; thread → 執行緒; queue → 佇列; tab → 標籤
|
||
* - source code → 原始碼; symlink → 符號連結; recover → 復原
|
||
* - placeholder → 佔位符; template → 範本; variable → 變數
|
||
* - through → 透過; paste → 貼上; project → 專案; account → 帳號
|
||
* - session (会话) → 工作階段; chat (对话) → 對話
|
||
* - quotation marks: "" → 「」
|
||
* - Placeholders keep `{name}` verbatim (interpolation runs after lookup).
|
||
* - English brand names (VS Code, Cursor, Zed, SSH, Git, Chrome) stay as-is.
|
||
*/
|
||
|
||
/** The zh-HK dictionary (key-set-equal to zh, enforced by the type annotation in locales.ts). */
|
||
export const zhTW: Record<string, string> = {
|
||
files: '檔案',
|
||
guideDescFiles: '瀏覽工作區檔案樹,點開即可預覽或編輯',
|
||
guideDescGit: 'Git 變更與本輪檔案改動,雙視角合一',
|
||
guideDescSubagent: '工作流圖 · 團隊任務板 · 背景任務,即時狀態',
|
||
guideDescSidechat: '繼承目前工作階段上下文的獨立追問執行緒',
|
||
guideDescTerminal: '真實 shell 終端(xterm + pty),斷線重連',
|
||
guideDescBrowser: '內嵌網頁瀏覽器,可接管聊天中的外鏈',
|
||
changesSessionEmpty: '本作業階段還沒有檔案操作',
|
||
changesRead: '讀取',
|
||
changesMdReading: '閱讀',
|
||
changesHtmlRender: "渲染",
|
||
changesHtmlRaw: "原文",
|
||
changesPdfRender: "渲染",
|
||
changesPdfRaw: "原文",
|
||
changesMdRaw: '原文',
|
||
changesWrite: '寫入',
|
||
changesEdit: '編輯',
|
||
changesRunning: '執行中',
|
||
changesError: '出錯',
|
||
changesFold: '{count} 行…點擊展開',
|
||
changesFoldLoading: '展開中…',
|
||
changesFoldUnavailable: '上下文未載入',
|
||
changesContext: '上下文',
|
||
changesPriorUnknown: '變更前的內容不在視窗內,顯示為全部新增',
|
||
explorer: '檔案總管',
|
||
terminal: '終端',
|
||
editor: '編輯器',
|
||
editorExplorer: '檔案開啟方式',
|
||
editorExplorerDesc: '控制檔案開啟方式',
|
||
editorExplorerMerged: '合併',
|
||
editorExplorerMergedDesc: '檔案在同一視窗內原地切換;新視窗預設展開檔案樹',
|
||
editorExplorerSplit: '獨立',
|
||
editorExplorerSplitDesc: '無路徑視窗即檔案總管(僅檔案樹);檔案各自新開視窗(帶檔案樹,預設收起)',
|
||
editorTreeToggle: '檔案樹面板',
|
||
editorPathPlaceholder: '輸入檔案路徑(相對工作階段目錄或絕對路徑),Enter 開啟',
|
||
editorSearchPlaceholder: '按檔案名稱搜尋…',
|
||
editorSearchNoResults: '無匹配檔案',
|
||
editorSearchTruncated: '結果過多,僅顯示部分匹配',
|
||
editorEmptyHint: '從右側檔案樹或上方路徑輸入框選擇檔案開始預覽',
|
||
openFileNewTab: '在新 Tab 中開啟',
|
||
openFileSide: '在側邊開啟',
|
||
openWithMenu: '在應用程式中開啟',
|
||
openWithSshSuffix: ' (SSH)',
|
||
pinOpenWith: '固定到選單',
|
||
unpinOpenWith: '取消固定',
|
||
openWithExplorer: '檔案總管',
|
||
openWithVscode: 'VS Code',
|
||
openWithCursor: 'Cursor',
|
||
openWithZed: 'Zed',
|
||
openWithSettingsSshTitle: 'SSH 遠端主機',
|
||
openWithSettingsSshDesc: '留空為本地工作區;填入 user@host 或 SSH 別名後,VSCode 系開啟方式將改用 vscode-remote/ssh-remote 協議,檔案總管 / Zed / 非 VSCode 系自訂編輯器將從選單隱藏',
|
||
openWithSettingsSshPlaceholder: 'user@host 或 SSH 別名',
|
||
openWithSettingsCustomTitle: '自訂編輯器',
|
||
openWithSettingsCustomDesc: '名稱 + URL 範本({path} 佔位符)+ 是否 VSCode 系;SSH 模式下僅 VSCode 系可開啟遠端',
|
||
openWithSettingsAdd: '新增',
|
||
openWithSettingsName: '名稱',
|
||
openWithSettingsTemplate: '如 cursor://file/{path}',
|
||
openWithSettingsFamily: 'VSCode 系',
|
||
openWithSettingsFamilyDesc: '該編輯器使用 VSCode 的 URL 協議(支援 SSH 遠端開啟)',
|
||
openWithSettingsRemove: '刪除',
|
||
openWithSettingsInvalidHint: '名稱或範本(需含 {path} 且以 scheme:// 開頭)未填寫的編輯器不會出現在選單中',
|
||
newTab: '新增標籤',
|
||
brokenSymlink: '失效的符號連結',
|
||
close: '關閉',
|
||
closeOtherTabs: '關閉其他標籤',
|
||
closeLeftTabs: '關閉左側標籤',
|
||
closeRightTabs: '關閉右側標籤',
|
||
pinTerminal: '固定終端',
|
||
pinAgentTerminal: '固定 Agent 終端',
|
||
pinToWorkspace: '固定到工作區',
|
||
pinToGlobal: '固定到全域',
|
||
unpinTerminal: '取消固定',
|
||
collapseBottomPanel: '收起底部面板',
|
||
expandBottomPanel: '展開底部面板',
|
||
terminalError: '終端連線失敗',
|
||
terminalConnectFailed: '終端多次連線失敗',
|
||
terminalRetry: '重試',
|
||
terminalWaitBanner: 'Agent 正在等待 {needle}',
|
||
terminalSkipWait: '跳過等待',
|
||
terminalDepsFailed: '終端依賴 node-pty 載入失敗',
|
||
terminalDepsHint: '在 DSH 所在環境的終端或 cmd 中執行以下命令修復,然後點重試(node-pty 與 DSH 核心保持同一版本):',
|
||
terminalDepsProfile: '(偵測到 profile:{profile})',
|
||
terminalShellNotFound: '未找到配置的 Shell:{name},請到 設定 → 側邊卡片 → 終端 檢查 Shell 路徑',
|
||
preview: '預覽',
|
||
toc: '目錄',
|
||
edit: '編輯',
|
||
mermaidError: 'Mermaid 渲染失敗',
|
||
mermaidZoomIn: '放大',
|
||
mermaidZoomOut: '縮小',
|
||
mermaidZoomReset: '重設',
|
||
mermaidZoomHint: '滾輪縮放 · 拖曳平移 · Esc 關閉',
|
||
refresh: '重新整理',
|
||
showInFolder: '在資料夾中顯示',
|
||
refreshUnsavedConfirm: '檔案已在磁碟上變更。重新整理會丟失尚未儲存的編輯。繼續?',
|
||
save: '儲存',
|
||
saved: '已儲存',
|
||
unsaved: '未儲存',
|
||
saveFailed: '儲存失敗',
|
||
truncation: '檔案過大,僅顯示前 512KB',
|
||
binary: '二進位檔案,無法預覽',
|
||
loading: '載入中…',
|
||
error: '載入失敗',
|
||
retry: '重試',
|
||
notRepo: '目前目錄不是 git 倉庫',
|
||
noChanges: '沒有變更',
|
||
statusTruncated: '變更過多,僅顯示前 2000 條',
|
||
stage: '暫存',
|
||
unstage: '取消暫存',
|
||
stageAll: '全部暫存',
|
||
unstageAll: '全部取消暫存',
|
||
commitPlaceholder: '提交訊息 (Ctrl+Enter)',
|
||
commit: '提交',
|
||
branch: '分支',
|
||
worktree: '工作樹',
|
||
checkoutError: '切換分支失敗',
|
||
history: '歷史',
|
||
changes: '檔案變動',
|
||
changesGitLens: 'Git',
|
||
changesSessionLens: '本輪檔案',
|
||
changesFilterAll: '全部',
|
||
changesFilterEmpty: '沒有此類操作',
|
||
changesOpenDiffTab: '在獨立頁籤中開啟',
|
||
changesClosePreview: '關閉預覽',
|
||
changesResizePreview: '調整預覽高度',
|
||
changesLoadError: '工作階段檔案記錄暫不可用',
|
||
staged: '已暫存',
|
||
unstaged: '未暫存',
|
||
cancel: '取消',
|
||
diffEmpty: '沒有文字差異',
|
||
diffLoadError: '載入差異失敗',
|
||
diffBinary: '二進位',
|
||
diffAdded: '新增',
|
||
diffDeleted: '刪除',
|
||
diffRenamed: '重新命名',
|
||
diffExpand: '展開其餘 {count} 行',
|
||
discard: '放棄變更',
|
||
discardTitle: '放棄變更',
|
||
discardDesc: '將丟棄「{path}」的工作區修改(不可復原)。',
|
||
viewCommitDiff: '檢視提交差異',
|
||
copyShortHash: '複製短雜湊',
|
||
copyFullHash: '複製完整雜湊',
|
||
copySubject: '複製提交訊息',
|
||
revertCommit: '還原此提交',
|
||
revertTitle: '還原此提交',
|
||
revertDesc: '將在目前分支建立一個反轉「{subject}」的新提交。',
|
||
cherryPickCommit: '撿取此提交',
|
||
cherryPickTitle: '撿取此提交',
|
||
cherryPickDesc: '將「{subject}」的變更套用到目前分支。',
|
||
timeJustNow: '剛剛',
|
||
timeMinutesAgo: '{n} 分鐘前',
|
||
timeHoursAgo: '{n} 小時前',
|
||
timeYesterday: '昨天',
|
||
loadMore: '載入更多',
|
||
historyLoadError: '載入更多歷史失敗',
|
||
produced: '本次產出',
|
||
disconnected: '終端連線斷開,重新連線中…',
|
||
exited: '終端程序已退出',
|
||
noSession: '選擇一個工作階段以使用側邊欄',
|
||
pluginNotLoaded: '插件未載入,標籤暫不可用:',
|
||
parent: '上層目錄',
|
||
copied: '已複製',
|
||
copy: '複製',
|
||
openEditor: '開啟編輯器',
|
||
referenceFile: '@檔案',
|
||
addToConversation: '新增到對話',
|
||
copyRelative: '複製相對位址',
|
||
copyAbsolute: '複製絕對位址',
|
||
rename: '重新命名',
|
||
renameInvalid: '名稱不可為空,且不可包含路徑分隔符。',
|
||
delete: '刪除',
|
||
deleteTitle: '刪除「{name}」?',
|
||
deleteDescFile: '將永久刪除該檔案,此操作無法復原。',
|
||
deleteDescDir: '將永久刪除該目錄及其全部內容,此操作無法復原。',
|
||
dismiss: '關閉',
|
||
download: '下載',
|
||
uploadFiles: '上傳檔案',
|
||
uploadFolder: '上傳資料夾',
|
||
uploadHere: '上傳到此處',
|
||
uploadDropHint: '拖曳檔案/資料夾到此處上傳',
|
||
uploadDropChat: '拖放到聊天區:新增圖片到對話',
|
||
uploadTo: '上傳到 {dir}',
|
||
uploadingTo: '正在上傳到 {dir}…',
|
||
uploadProgress: '正在上傳 {done}/{total}: {name}',
|
||
uploadDone: '已上傳 {count} 個檔案',
|
||
uploadFailed: '上傳失敗:{error}',
|
||
uploadFailedUnknown: '未知錯誤',
|
||
uploadTooLarge: '檔案過大,超出上傳上限',
|
||
uploadCancelled: '上傳已取消',
|
||
settingsNav: '側邊卡片',
|
||
settingsIntro: '管理側邊卡片的顯示內容與預設行為',
|
||
settingsPopupDesc: '為「{feature}」設定相關選項',
|
||
settingsDone: '完成',
|
||
settingsOpenToolsTitle: '為模型注入側邊欄開啟工具',
|
||
settingsOpenToolsDesc: '開啟後,模型可透過 sidebar_open 工具在側邊欄主動開啟檔案、資料夾和 HTTP(S) 網頁(預設關閉)',
|
||
settingsTitleBarTitle: '位置相容模式',
|
||
settingsTitleBarDesc: '選擇頂欄相容方案:自動偵測(預設,保守)/ DSH官方Web / 已知桌面殼 / 自訂方案(下移距離 + 自訂 CSS)',
|
||
settingsTitleBarStripTitle: '下移距離',
|
||
settingsTitleBarStripDesc: '標題欄條帶高度:側邊欄按鈕與內容下移的像素數(0–120,預設 40;自訂方案下生效)',
|
||
settingsSchemeAutoTitle: '自動偵測',
|
||
settingsSchemeAutoDesc: '保守方案:僅在 Window Controls Overlay 標準 API 可用時按真實標題欄高度讓位;網頁環境下不做任何修改',
|
||
settingsSchemeWebTitle: 'DSH官方Web',
|
||
settingsSchemeWebDesc: '顯式宣告執行在官方網頁版:不做任何適配(連標準 WCO 幾何也不適用)',
|
||
settingsSchemeCustomTitle: '自訂方案',
|
||
settingsSchemeCustomDesc: '完全由你控制:注入自訂 CSS(可覆寫內建樣式),並指定標題欄下移距離',
|
||
settingsSchemeDetectedSuffix: '已偵測',
|
||
settingsCustomCssTitle: '自訂 CSS',
|
||
settingsCustomCssPlaceholder: '/* 例:為自繪標題欄的殼預留 36px */\nhtml[data-dsh-title-bar-height="36"] {\n --dsh-title-bar-strip: 36px !important;\n}',
|
||
settingsSaveFailed: '儲存失敗',
|
||
settingsConflict: '設定已被其他視窗修改,請重試',
|
||
binaryNoPreview: '此檔案類型不支援預覽',
|
||
downloadToView: '下載檢視',
|
||
settingsSubagentTitle: '偵測到子代理時自動選取任務管理頁',
|
||
settingsSubagentDesc: '目前工作階段產生新的子代理時,自動選取任務管理頁;寬螢幕時亦會展開側邊欄,窄螢幕時不會強制開啟全螢幕抽屜;關閉後需手動選取',
|
||
settingsJobsTitle: '有新背景任務時自動選取任務管理頁',
|
||
settingsJobsDesc: '目前工作階段出現新的背景任務時,自動選取任務管理頁(每個新任務都會觸發);寬螢幕時亦會展開側邊欄,窄螢幕時不會強制開啟全螢幕抽屜;關閉後需手動選取',
|
||
settingsToolsTitle: '為模型注入終端工具',
|
||
settingsToolsDesc: '開啟後,模型可透過 terminal_create 等 8 個工具建立並操作側邊欄終端(預設關閉)',
|
||
settingsFenceTitle: '工作區路徑檢測',
|
||
settingsFenceDesc: '開啟後,側欄的檔案功能僅能存取工作階段工作區內的路徑(預設);關閉後可存取主機上任意檔案——關閉期間頁面內指令碼也將獲得同等存取能力',
|
||
fenceErrorReason: '此路徑在工作階段工作區之外,已被工作區檢測攔截',
|
||
fenceDisableAction: '關閉工作區檢測',
|
||
settingsBottomTerminalTitle: '底部面板首次展開自動開終端',
|
||
settingsBottomTerminalDesc: '每次工作階段中第一次展開底部面板時,嘗試在底部面板自動開啟一個新終端標籤(終端數量上限仍會限制;預設開啟)',
|
||
settingsFontFamilyTitle: '終端字體',
|
||
settingsFontFamilyDesc: '自訂終端字體族(CSS font-family,如 "JetBrains Mono", monospace;留空跟隨主題等寬字體)',
|
||
settingsFontFamilyPlaceholder: '"JetBrains Mono", monospace',
|
||
settingsFontSizeTitle: '終端字型大小',
|
||
settingsFontSizeDesc: '終端字型大小(9–32,預設 13)',
|
||
settingsShellTitle: 'Shell 路徑',
|
||
settingsShellDesc: 'UI 與模型終端啟動的 shell(絕對路徑或可執行名)。留空按既有順序解析:yaml 的 config.shell → $SHELL / 登入 shell / Windows 的 powershell.exe。對之後開啟的終端生效',
|
||
settingsShellPlaceholder: '如 /bin/zsh(留空自動解析)',
|
||
settingsShellArgsTitle: 'Shell 參數',
|
||
settingsShellArgsDesc: '顯式 shell 啟動參數,空格分隔;非空時完全替換預設參數(與 yaml 的 shellArgs 契約一致)',
|
||
settingsShellArgsPlaceholder: '如 -l(留空用預設參數)',
|
||
settingsTabsTitle: '側邊欄內容',
|
||
settingsViewersTitle: '檔案預覽',
|
||
settingsGeneralTitle: '一般',
|
||
settingsPopup: '功能設定',
|
||
settingsViewerCatchAll: '兜底:任意檔案',
|
||
viewerMarkdown: 'Markdown',
|
||
viewerCode: '程式碼',
|
||
viewerHtml: 'HTML',
|
||
browser: '瀏覽器',
|
||
browserPlaceholder: '輸入網址,例如 example.com',
|
||
browserGo: '前往',
|
||
browserBack: '上一頁',
|
||
browserForward: '下一頁',
|
||
browserStart: '輸入網址開始瀏覽(沙箱模式)',
|
||
browserBlockedScheme: '已封鎖:僅支援 http/https 連結',
|
||
browserBlockedLoopback: '已封鎖:不允許在瀏覽器中存取本機或內部位址',
|
||
browserInvalid: '無效的網址',
|
||
htmlNoSandboxWarning: '沙箱已關閉:此 HTML 與介面同源,可讀取工作階段檔案與內部介面(可在設定中恢復)',
|
||
sandboxStatusOn: '沙箱模式:已啟用 · 頁面無法存取介面資料與本地檔案,登入態與第三方 Cookie 可能不可用',
|
||
sandboxUnlock: '臨時解鎖(不安全)',
|
||
sandboxRestore: '恢復沙箱',
|
||
settingsHtmlDefaultUnsafeTitle: 'HTML 預覽預設以非沙箱模式開啟(不安全)',
|
||
settingsHtmlDefaultUnsafeDesc: '開啟後,每次開啟 HTML 檔案時預覽預設處於非沙箱狀態(與介面同源,可讀取工作階段檔案與內部介面);可在狀態列臨時恢復沙箱',
|
||
settingsHtmlSandboxTitle: '關閉 HTML 預覽沙箱(不安全)',
|
||
settingsHtmlSandboxDesc: '關閉後,預覽的 HTML 將與介面同源執行,可讀取工作階段檔案、本地儲存並呼叫內部介面。僅對完全可信的檔案開啟',
|
||
settingsBrowserSandboxTitle: '關閉瀏覽器沙箱(不安全)',
|
||
settingsBrowserSandboxDesc: '關閉後,存取的任何網站都將與介面同源執行,可讀取工作階段資料並冒充你的登入狀態。僅對完全可信的網站開啟',
|
||
settingsBrowserLoopbackTitle: '允許存取的本機地址',
|
||
settingsBrowserLoopbackDesc: '逗號分隔的本機回環地址白名單(如 localhost:5174 或 127.0.0.1:8080),側邊欄瀏覽器可存取這些本機服務;預設留空則本機地址全部攔截。沙箱隔離仍然生效,頁面無法讀取介面資料',
|
||
settingsBrowserLoopbackPlaceholder: '例如 localhost:5174, 127.0.0.1:8080',
|
||
browserOpenExternal: '在瀏覽器中開啟',
|
||
browserEmbedBlocked: '{host} 拒絕了嵌入請求',
|
||
browserEmbedBlockedDesc: '該網站透過 X-Frame-Options / frame-ancestors 禁止在其它頁面中顯示,無法在側邊欄內載入。可在瀏覽器中直接開啟',
|
||
browserEmbedAnyway: '仍然載入',
|
||
subagent: '任務管理',
|
||
subagentMainAgent: '主代理',
|
||
subagentEmpty: '暫無子代理',
|
||
subagentEmptyDesc: '目前主代理派生的子代理將顯示在這裡',
|
||
subagentInactive: '閒置',
|
||
subagentModeOneShot: '一次性',
|
||
subagentModeContinuable: '可續接',
|
||
subagentCount: '{count} 個子代理',
|
||
subagentCountRunning: '{count} 個子代理 · {running} 執行中',
|
||
subagentThinking: '思考中…',
|
||
sideChat: '側邊對話(beta)',
|
||
sideChatNew: '新增對話',
|
||
sideChatUntitled: '新對話',
|
||
sideChatEmpty: '暫無側邊對話',
|
||
sideChatEmptyDesc: '每個側邊對話是標籤列裡的獨立 Tab,繼承目前工作階段的上下文執行,不會進入主工作階段',
|
||
sideChatCreating: '正在建立側邊對話…',
|
||
sideChatRetry: '重試',
|
||
sideChatThreads: '切換執行緒 / 新增',
|
||
sideChatSave: '儲存為新工作階段',
|
||
sideChatSaveTitle: '把該執行緒提升為頂層工作階段,出現在主工作階段列表中',
|
||
sideChatSaved: '已儲存為新工作階段',
|
||
sideChatNoTurn: '至少完成一輪對話後才能儲存',
|
||
sideChatPendingDrop: '最後一則未完成的追問不會包含在新工作階段中',
|
||
sideChatFirstPlaceholder: '輸入第一個問題,已繼承目前工作階段上下文…',
|
||
sideChatComposerPlaceholder: '追問…',
|
||
sideChatThinking: '正在深入…',
|
||
sideChatThink: '思考過程',
|
||
sideChatInjection: '已注入上下文',
|
||
sideChatSend: '發送',
|
||
sideChatCancelTitle: '中止目前回合(保留佇列)',
|
||
sideChatError: '側邊對話出錯:{message}',
|
||
sideChatTurnUsage: '輸入 {input} tok · 輸出 {output} tok',
|
||
sideChatBlockCollapse: '收起',
|
||
sideChatBlockCollapseAria: '收起',
|
||
sideChatBlockExpand: '展開 {hidden} 行',
|
||
sideChatBlockExpandAria: '展開其餘 {hidden} 行',
|
||
sideChatBlockSignal: '訊號終止:{signal}',
|
||
sideChatBlockExitCode: '結束碼 {code}',
|
||
sideChatBlockNoExitCode: "已結束(無結束碼)",
|
||
sideChatBlockRunning: '執行中',
|
||
sideChatBlockFailed: '失敗',
|
||
sideChatBlockDone: '完成',
|
||
sideChatBlockNoOutput: '(無輸出)',
|
||
codeBlockTitle: '程式碼區塊',
|
||
codeBlockWrap: '自動換行',
|
||
codeBlockUnwrap: '取消自動換行',
|
||
sideChatBlockWindow: '共 {total} 行 · 顯示 {shown} 行',
|
||
sideChatConnDisconnected: '連線已中斷',
|
||
sideChatConnReconnect: '重新連線',
|
||
sideChatConnConnecting: '正在重新連線…',
|
||
sideChatConnRecovered: '連線已恢復',
|
||
sideChatConnReconnectAction: '立即重新連線',
|
||
sideChatConnRestartAction: '重新發起連線',
|
||
jobs: '背景任務',
|
||
jobsCount: '{count} 個背景任務',
|
||
jobsCountRunning: '{count} 個背景任務 · {running} 執行中',
|
||
jobStatusRunning: '執行中',
|
||
jobStatusStopping: '終止中',
|
||
jobStatusCompleted: '已完成',
|
||
jobStatusKilled: '已終止',
|
||
jobStatusFailed: '失敗',
|
||
jobDurationSeconds: '{seconds} 秒',
|
||
jobDurationMinutes: '{minutes} 分 {seconds} 秒',
|
||
jobDurationHours: '{hours} 小時 {minutes} 分',
|
||
jobViewOutput: '檢視輸出',
|
||
jobNoOutput: '暫無輸出',
|
||
jobNotReadYet: '等待模型讀取該任務的輸出(模型執行 job_output 後,輸出會顯示在這裡)',
|
||
jobOutputTruncated: '輸出過長,已截斷顯示',
|
||
jobOutputError: '輸出讀取失敗',
|
||
jobKill: '終止',
|
||
jobKillConfirm: '再次點擊確認終止',
|
||
jobKillError: '終止失敗',
|
||
tasksViewGraph: '工作流圖',
|
||
tasksViewTree: '樹狀圖',
|
||
tasksViewSwitchToGraph: '切換為工作流圖',
|
||
tasksViewSwitchToTree: '切換為樹狀圖',
|
||
settingsViewModeTitle: '任務管理預設檢視',
|
||
settingsViewModeDesc: '任務管理頁開啟時的預設顯示方式(頁內仍可臨時切換)',
|
||
settingsViewModeGraph: '工作流圖',
|
||
settingsViewModeGraphDesc: '分層節點圖,可縮放平移',
|
||
settingsViewModeTree: '樹狀圖',
|
||
settingsViewModeTreeDesc: '經典縮排樹,可用鍵盤導航',
|
||
tasksFoldCompleted: '✓ {count} 已完成',
|
||
tasksFoldExpand: '展開已完成的節點',
|
||
tasksFoldCollapse: '收起已完成的節點',
|
||
tasksZoomIn: '放大',
|
||
tasksZoomOut: '縮小',
|
||
tasksZoomFit: '適應畫布',
|
||
tasksNodeJump: '檢視逐字稿',
|
||
tasksNodeDetail: '節點詳情',
|
||
workflowRun: '工作流',
|
||
tasksNodeState: '狀態',
|
||
tasksNodeMode: '模式',
|
||
tasksNodeModel: '模型',
|
||
tasksNodeTeamRole: '團隊角色',
|
||
tasksNodeActivity: '最近活動',
|
||
tasksStateRunning: '執行中',
|
||
tasksStateIdle: '閒置',
|
||
tasksStateDone: '已完成',
|
||
tasksStateError: '出錯',
|
||
teamBoard: '團隊任務板',
|
||
teamChip: '團隊 {members} 成員 · {tasks} 任務',
|
||
teamTasksEmpty: '暫無共用任務',
|
||
teamTaskCreate: '新增任務',
|
||
teamTaskSubject: '標題',
|
||
teamTaskDescription: '描述',
|
||
teamTaskOwner: '負責人',
|
||
teamTaskUnowned: '未認領',
|
||
teamTaskPending: '待辦',
|
||
teamTaskInProgress: '進行中',
|
||
teamTaskCompleted: '已完成',
|
||
teamTaskBlocked: '受阻',
|
||
teamTaskComplete: '完成',
|
||
teamTaskReopen: '重開',
|
||
teamTaskDelete: '刪除',
|
||
teamTaskDeleteConfirm: '確認刪除',
|
||
teamTaskEdit: '編輯',
|
||
teamTaskSave: '儲存',
|
||
teamTaskCancel: '取消',
|
||
teamTaskConflict: '任務已被他人修改,已重新整理',
|
||
teamTaskError: '操作失敗:{message}',
|
||
teamTaskDeleted: '已刪除',
|
||
teamTaskActions: '任務操作',
|
||
teamTaskDetail: '任務詳情',
|
||
teamTaskNoDescription: '暫無描述,點擊「編輯」補充',
|
||
teamTaskBlockedBy: '受阻於',
|
||
teamTaskSubjectPlaceholder: '一句話說明要做什麼',
|
||
teamTaskDescriptionPlaceholder: '補充說明(可選)',
|
||
teamFilterAll: '全部',
|
||
tasksNodeTasks: '共用任務',
|
||
jobCopyOutput: '複製輸出',
|
||
jobCopied: '已複製',
|
||
jobFollowTail: '跟隨最新',
|
||
jobDragHint: '拖曳浮窗',
|
||
workflowRunning: '進行中',
|
||
workflowCompleted: '已完成',
|
||
workflowCancelled: '已取消',
|
||
workflowFailed: '失敗',
|
||
workflowPhaseUnnamed: '未命名階段',
|
||
workflowMembers: '{done}/{total} 成員',
|
||
jobsAutoCollapsed: '代理較多,已自動收起',
|
||
catalogLoadFailed: '{count} 個分支載入失敗',
|
||
addPluginsTabCard: '新增 Tab 插件',
|
||
addPluginsTabCardDesc: '註冊新的側邊欄頁面',
|
||
addPluginsViewerCard: '新增預覽插件',
|
||
addPluginsViewerCardDesc: '註冊新的檔案類型預覽',
|
||
addPluginsTabDesc: '側邊欄頁面(Tab)可以由插件擴展。插件透過 ctx.betterSidebar 服務註冊;點擊「安裝」複製安裝命令,貼到 DSH 所在環境的終端執行。',
|
||
addPluginsViewerDesc: '檔案預覽器可以由插件擴展。插件透過 ctx.betterSidebar 服務註冊;點擊「安裝」複製安裝命令,貼到 DSH 所在環境的終端執行。',
|
||
addPluginsBrowseMore: '在 GitHub 上瀏覽更多插件(topic: dsh-better-sidebar)',
|
||
addPluginsSearch: '搜尋插件名稱 / 描述…',
|
||
addPluginsNoMatch: '沒有匹配的插件',
|
||
addPluginsRecommended: '推薦插件',
|
||
addPluginsEmpty: '暫未收錄插件,歡迎在 GitHub topic 下發布你的插件',
|
||
openPlugin: '跳轉',
|
||
copyInstall: '複製安裝命令',
|
||
pluginOfficeDesc: '為 better-sidebar 編輯器提供 Office 三件套預覽(.docx / .xlsx / .pptx),把重型 Office 渲染庫拆出主套件、按需安裝',
|
||
pluginFlowglassDesc: '即時工作階段流程圖:三列泳道展示使用者、助手與工具呼叫,支援並行分組、子代理支線、逐層鑽取和即時狀態;安裝 better-sidebar 後註冊原生「流鏡」Tab,未安裝時保留獨立抽屜',
|
||
pluginGitForgeDesc: 'better-sidebar「Git 憑證」Tab:GitHub/Gitea 等 Forge 帳號庫 + 按專案授權 + push 策略硬攔;token 僅存本地 secrets,不進模型上下文;提供唯讀 GitForge 工具與 agent HTTPS credential helper',
|
||
pluginGithubWorkbenchDesc: 'better-sidebar「GitHub 工作台」Tab:遠端儲存庫目錄樹 + Issues / Pull requests / Actions 頁籤,讀取之外支援建立 Issue/PR、留言、編輯、關閉重開、squash·merge·rebase 合併(強確認)與重跑/取消 CI;儲存庫彈出視窗自動載入有權限清單並支援公開儲存庫搜尋;未安裝 better-sidebar 時自動降級為獨立右側面板',
|
||
pluginMdExportDesc: '在 better-sidebar 的 Markdown 工具列上新增「匯出」按鈕:一鍵把目前 .md 渲染為獨立 HTML(表格/程式碼區塊/Mermaid 圖表內嵌,版面跟隨預覽主題)直接儲存到同目錄,或透過列印對話框匯出為 PDF',
|
||
pluginCodeNavDesc: '程式碼預覽導覽:按檔案類型自動識別語言並高亮語法,符號大綱(類別/方法/變數篩選 + 一鍵跳轉),檔案內搜尋(全部符合高亮、上/下一處、區分大小寫),接管 better-sidebar 的程式碼檔案預覽',
|
||
pluginSuhuangScrollDesc: '把本機蘇黃共閱 Runtime 接入 DSH 設定與 better-sidebar,支援模型設定、連線測試及連續閱卷控制;使用前須安裝 Suhuang Scroll Runtime 與 dsh-better-sidebar',
|
||
pluginBetterOverleafDesc: 'better-sidebar 的 Overleaf 分頁:直連 CDP 瀏覽器登入(支援第三方 Chromium),專案列表/切換,<workspace>/overleaf/ 本地 git 映像,git 雙向同步(API 唯讀兜底),檔案預覽走側邊欄工作台',
|
||
pluginGitRemotesDesc: 'better-sidebar Git 遠端 Tab:看分支/上游/ahead-behind,fetch(可 prune)、ff-only pull、確認後才 push。不替換內建 Git 的暫存/提交,也不提供 force-push 或模型自動推送',
|
||
pluginSentinelDesc: '條件驅動的 agent 喚醒系統:檔案/程序/連接埠/HTTP/命令/webhook 感測器,條件達成自動喚醒休眠工作階段;註冊「哨兵」Tab 展示伺服器全域監控表',
|
||
pluginServerDeckDesc: '伺服器卡片儀表板:每台伺服器一張卡片,展示線上狀態、OS、執行時間、CPU/記憶體/磁碟用量與延遲;點擊卡片開啟 xterm.js 互動終端機,支援 ~/.ssh/config 一鍵匯入(自動略過 Git 託管別名);安裝 better-sidebar 後註冊原生「伺服器」分頁,未安裝時保留獨立抽屜',
|
||
pluginSidebarQaDesc: '基於 better-sidebar 的劃選提問tab分頁: 對話劃選 → 右側面板提問 → 同工作區獨立追問工作階段(❓追問·主題):快速無思考模型壓縮主對話上下文後與引文一起注入,不打斷主對話;追問可巢狀、可繼續、可歸檔',
|
||
pluginSidenoteDesc: 'Codex 風格側邊聊天與劃選註解:從目前工作階段 fork 出獨立側邊工作階段(歸檔隱藏、多實例並存、/side 命令、重新整理/重啟後恢復、模型跟隨主工作階段);assistant 訊息劃選 → 編號角標 + 註解編輯器 →「N 條註解」chip 隨訊息送出,也可直接進入側邊聊天提問',
|
||
pluginSshTunnelDesc: 'better-sidebar「SSH 隧道」Tab:多機主機清單 + 按專案授權 + 密鑰本地保管;模型工具 SSHManager(exec/SFTP/工作階段策略);中央互動終端與雙欄 SFTP',
|
||
pluginTurnReviewDesc: '對「剛剛這一回合」的 diff 做 Approve / Request changes 的人閘門:只審上一回合,不 fork 工作階段;檔案按主工作階段/子代理/未歸因分組,按檔案勾選打回 + 可選評語,點檔案先看回合開始快照 vs 現在的 diff。不是 /rewind',
|
||
pluginVideoPreviewDesc: '在 better-sidebar 編輯器內聯預覽影片檔案(.mp4/.webm/.mov/.mkv/.avi 等),自帶支援 HTTP Range(206)的 /video 宿主路由,可拖曳進度條、不受 20MB mediaLimit 限制',
|
||
pluginDocsPanelDesc: 'DSH 側邊欄裡的「全域文件」:全域 Markdown 筆記,任何工作區隨時可讀——列表點選閱讀、懸浮大綱跳轉、Chrome / VS Code 外部開啟、程式碼複製,目錄可設定(預設 ~/.dsh/docs)',
|
||
pluginEgoBrowserDesc: '將 CitroLabs/ego-lite 接進 DeepSeek Harness 的 agent 瀏覽器:32 個 ego_* 工具驅動真實 Chromium,側邊欄原生「ego 瀏覽器」Tab 實時觀察 agent 逛的每個頁面,可直接點擊/拖拽/輸入接管;裝 better-sidebar 時自動註冊 Tab,沒裝則退回浮動浮窗',
|
||
pluginBilingualReaderDesc: '在 DSH 側邊欄讀論文 PDF:原生 PDF 顯示,選取一段文字即用大模型劃詞翻譯,結合上下文、完全隔離主對話,只作閱讀輔助',
|
||
changesRedactOn: "已開啟脫敏:敏感內容以 [REDACTED] 顯示;點擊關閉(自擔風險)",
|
||
changesRedactOff: "脫敏已關閉:將原樣顯示文件內容;點擊開啟",
|
||
changesRedactOnLabel: "脫敏中",
|
||
changesRedactOffLabel: "脫敏關",
|
||
changesRedactBanner: "已脫敏",
|
||
pluginSentinelName: 'dsh-sentinel 喚醒系統',
|
||
pluginEgoBrowserName: 'ego-browser Agent 瀏覽器',
|
||
pluginBetterOverleafName: 'dsh-better-overleaf Overleaf 標籤',
|
||
pluginDocsPanelName: 'dsh-docs-panel 全域文件',
|
||
pluginFlowglassName: 'dsh-flowglass 流鏡',
|
||
pluginGitForgeName: 'dsh-git-forge Git 憑證',
|
||
pluginGitRemotesName: 'dsh-git-remotes Git 遠端',
|
||
pluginGithubWorkbenchName: 'dsh-github-workbench GitHub 工作台',
|
||
pluginSidebarQaName: 'dsh-sidebar-qa 劃選追問',
|
||
pluginSidenoteName: 'dsh-sidenote 側邊對話',
|
||
pluginServerDeckName: 'dsh-server-deck 伺服器甲板',
|
||
pluginSuhuangScrollName: 'dsh-suhuang-scroll 蘇黃共閱',
|
||
pluginSshTunnelName: 'dsh-ssh-tunnel SSH 隧道',
|
||
pluginTurnReviewName: 'dsh-turn-review 本輪審查',
|
||
pluginBilingualReaderName: 'dsh-bilingual-reader 雙語閱讀',
|
||
pluginOfficeName: 'Office 預覽插件',
|
||
pluginMdExportName: 'Markdown 匯出插件',
|
||
pluginCodeNavName: '程式碼預覽導覽',
|
||
pluginVideoPreviewName: '影片預覽插件',
|
||
presetDshDesktopDesc: 'Electron 進階模式(無邊框):macOS 頂欄 20px、Windows 無 WCO 時 32px 標題列讓位',
|
||
}
|