From 6dbe7d044531d66989ba7227314fe1d988b2bb21 Mon Sep 17 00:00:00 2001 From: Jia <31085601+Jia35@users.noreply.github.com> Date: Tue, 26 May 2026 07:34:58 +0800 Subject: [PATCH] feat(i18n): add Traditional Chinese locale (#1360) * feat: add Traditional Chinese locale * feat: add Traditional Chinese locale * feat(i18n): Update Traditional Chinese translation * fix(i18n): sync Traditional Chinese locale keys --------- Co-authored-by: Bohdan Triapitsyn --- packages/ui/src/lib/i18n/messages/en.ts | 1 + packages/ui/src/lib/i18n/messages/es.ts | 1 + packages/ui/src/lib/i18n/messages/ko.ts | 1 + packages/ui/src/lib/i18n/messages/pl.ts | 1 + packages/ui/src/lib/i18n/messages/pt-BR.ts | 1 + packages/ui/src/lib/i18n/messages/uk.ts | 1 + packages/ui/src/lib/i18n/messages/zh-CN.ts | 1 + .../src/lib/i18n/messages/zh-TW.settings.ts | 1708 ++++++++++++ packages/ui/src/lib/i18n/messages/zh-TW.ts | 2316 +++++++++++++++++ packages/ui/src/lib/i18n/runtime.ts | 10 +- packages/ui/src/lib/i18n/store.ts | 24 +- 11 files changed, 4051 insertions(+), 14 deletions(-) create mode 100644 packages/ui/src/lib/i18n/messages/zh-TW.settings.ts create mode 100644 packages/ui/src/lib/i18n/messages/zh-TW.ts diff --git a/packages/ui/src/lib/i18n/messages/en.ts b/packages/ui/src/lib/i18n/messages/en.ts index 37316017..38d0a0c3 100644 --- a/packages/ui/src/lib/i18n/messages/en.ts +++ b/packages/ui/src/lib/i18n/messages/en.ts @@ -6,6 +6,7 @@ export const dict = { 'common.unavailable': 'Unavailable', 'common.language.english': 'English', 'common.language.simplifiedChinese': 'Chinese (Simplified)', + 'common.language.traditionalChinese': 'Chinese (Traditional)', 'common.language.ukrainian': 'Ukrainian', 'common.language.spanish': 'Spanish', 'common.language.brazilianPortuguese': 'Brazilian Portuguese', diff --git a/packages/ui/src/lib/i18n/messages/es.ts b/packages/ui/src/lib/i18n/messages/es.ts index 42475a58..e977bf5f 100644 --- a/packages/ui/src/lib/i18n/messages/es.ts +++ b/packages/ui/src/lib/i18n/messages/es.ts @@ -7,6 +7,7 @@ export const dict: Record = { "common.unavailable": "No disponible", "common.language.english": "Inglés", "common.language.simplifiedChinese": "Chino (simplificado)", + "common.language.traditionalChinese": "Chino (tradicional)", "common.language.ukrainian": "Ucraniano", "common.language.spanish": "Español", "common.language.brazilianPortuguese": "Portugués brasileño", diff --git a/packages/ui/src/lib/i18n/messages/ko.ts b/packages/ui/src/lib/i18n/messages/ko.ts index 664eba52..ea915de8 100644 --- a/packages/ui/src/lib/i18n/messages/ko.ts +++ b/packages/ui/src/lib/i18n/messages/ko.ts @@ -7,6 +7,7 @@ export const dict: Record = { 'common.unavailable': '사용할 수 없음', 'common.language.english': '영어', 'common.language.simplifiedChinese': '중국어(간체)', + 'common.language.traditionalChinese': '중국어(번체)', 'common.language.ukrainian': '우크라이나어', 'common.language.spanish': '스페인어', 'common.language.brazilianPortuguese': '브라질 포르투갈어', diff --git a/packages/ui/src/lib/i18n/messages/pl.ts b/packages/ui/src/lib/i18n/messages/pl.ts index 193d2ed5..d75d4725 100644 --- a/packages/ui/src/lib/i18n/messages/pl.ts +++ b/packages/ui/src/lib/i18n/messages/pl.ts @@ -8,6 +8,7 @@ export const dict: Record = { 'common.unavailable': 'Niedostępne', 'common.language.english': 'Angielski', 'common.language.simplifiedChinese': 'Chiński (Uproszczony)', + 'common.language.traditionalChinese': 'Chiński (Tradycyjny)', 'common.language.ukrainian': 'Ukraiński', 'common.language.spanish': 'Hiszpański', 'common.language.brazilianPortuguese': 'Portugalski (Brazylia)', diff --git a/packages/ui/src/lib/i18n/messages/pt-BR.ts b/packages/ui/src/lib/i18n/messages/pt-BR.ts index ed083722..39730d5e 100644 --- a/packages/ui/src/lib/i18n/messages/pt-BR.ts +++ b/packages/ui/src/lib/i18n/messages/pt-BR.ts @@ -7,6 +7,7 @@ export const dict: Record = { "common.unavailable": "Indisponível", "common.language.english": "Inglês", "common.language.simplifiedChinese": "Chinês (simplificado)", + "common.language.traditionalChinese": "Chinês (tradicional)", "common.language.ukrainian": "Ucraniano", "common.language.spanish": "Espanhol", "common.language.brazilianPortuguese": "Português brasileiro", diff --git a/packages/ui/src/lib/i18n/messages/uk.ts b/packages/ui/src/lib/i18n/messages/uk.ts index 1ed6aa6f..2cb895da 100644 --- a/packages/ui/src/lib/i18n/messages/uk.ts +++ b/packages/ui/src/lib/i18n/messages/uk.ts @@ -7,6 +7,7 @@ export const dict: Record = { "common.unavailable": "Недоступно", "common.language.english": "англійська", "common.language.simplifiedChinese": "Китайська (спрощена)", + "common.language.traditionalChinese": "Китайська (традиційна)", "common.language.ukrainian": "Українська", "common.language.spanish": "Іспанська", "common.language.brazilianPortuguese": "Бразильська португальська", diff --git a/packages/ui/src/lib/i18n/messages/zh-CN.ts b/packages/ui/src/lib/i18n/messages/zh-CN.ts index 15232485..0c972c75 100644 --- a/packages/ui/src/lib/i18n/messages/zh-CN.ts +++ b/packages/ui/src/lib/i18n/messages/zh-CN.ts @@ -7,6 +7,7 @@ export const dict: Record = { 'common.unavailable': '不可用', 'common.language.english': 'English', 'common.language.simplifiedChinese': '简体中文', + 'common.language.traditionalChinese': '繁体中文', 'common.language.ukrainian': '乌克兰语', 'common.language.spanish': '西班牙语', 'common.language.brazilianPortuguese': '巴西葡萄牙语', diff --git a/packages/ui/src/lib/i18n/messages/zh-TW.settings.ts b/packages/ui/src/lib/i18n/messages/zh-TW.settings.ts new file mode 100644 index 00000000..546852e7 --- /dev/null +++ b/packages/ui/src/lib/i18n/messages/zh-TW.settings.ts @@ -0,0 +1,1708 @@ +export const settingsDict = { + 'settings.appearance.language.label': '語言', + 'settings.appearance.language.description': '選擇介面語言。', + 'settings.appearance.language.select': '選擇語言', + 'settings.window.description': 'OpenChamber 設定視窗。', + 'settings.view.home.title': '設定', + 'settings.view.home.description': '跳轉到常用頁面。', + 'settings.view.home.cards.providers.title': '供應商', + 'settings.view.home.cards.providers.description': '連線模型和憑證', + 'settings.view.home.cards.agents.title': 'Agents', + 'settings.view.home.cards.agents.description': '提示詞、工具、權限', + 'settings.view.home.cards.skillsCatalog.title': 'Skills 目錄', + 'settings.view.home.cards.skillsCatalog.description': '從目錄安裝 skills', + 'settings.view.home.cards.mcp.title': 'MCP', + 'settings.view.home.cards.mcp.description': '設定 MCP 伺服器和連線', + 'settings.view.home.cards.usage.title': '用量', + 'settings.view.home.cards.usage.description': '配額和花費可見性', + 'settings.view.unavailable.title': '無法使用', + 'settings.view.unavailable.description': '此設定頁面在目前執行環境中無法使用。', + 'settings.view.badge.beta': 'beta', + 'settings.view.actions.reloadOpenCode': '重新載入 OpenCode', + 'settings.view.actions.reloadOpenCodeTooltip': '重新啟動 OpenCode 並重新載入其設定。', + 'settings.view.actions.backToSettings': '返回設定頁', + 'settings.view.actions.closeSettings': '關閉設定', + 'settings.view.actions.openSectionList': '開啟群組清單', + 'settings.view.actions.closeSettingsWithShortcut': '關閉設定({shortcut}+,)', + 'settings.view.actions.back': '返回', + 'settings.view.actions.resizeNavigation': '調整設定導覽寬度', + 'settings.page.projects.title': '專案', + 'settings.page.remoteInstances.title': '遠端執行個體', + 'settings.page.providers.title': '供應商', + 'settings.page.usage.title': '用量', + 'settings.page.agents.title': 'Agents', + 'settings.page.commands.title': '命令', + 'settings.page.mcp.title': 'MCP', + 'settings.page.skills.title': 'Skills', + 'settings.page.skillsCatalog.title': 'Skills 目錄', + 'settings.page.git.title': 'Git', + 'settings.page.appearance.title': '外觀', + 'settings.page.chat.title': '聊天', + 'settings.page.shortcuts.title': '快速鍵', + 'settings.page.sessions.title': '工作階段', + 'settings.page.magicPrompts.title': '魔法提示詞', + 'settings.page.notifications.title': '通知', + 'settings.page.voice.title': '語音', + 'settings.page.tunnel.title': 'Remote Tunnel', + 'settings.page.snippets.title': '程式片段', + 'settings.snippets.sidebar.title': '程式片段', + 'settings.snippets.sidebar.total': '共 {count} 個', + 'settings.snippets.sidebar.actions.create': '創建程式片段', + 'settings.snippets.sidebar.actions.more': '{name} 的更多操作', + 'settings.snippets.sidebar.toast.deleted': '程式片段已刪除', + 'settings.snippets.sidebar.toast.deleteFailed': '刪除程式片段失敗', + 'settings.snippets.sidebar.dialog.deleteTitle': '刪除程式片段?', + 'settings.snippets.sidebar.dialog.deleteDescription': '這將永久刪除 #{name}。', + 'settings.snippets.page.empty.title': '選擇程式片段', + 'settings.snippets.page.empty.description': '從側邊欄選擇程式片段進行編輯。', + 'settings.snippets.page.title.new': '新建程式片段', + 'settings.snippets.page.field.namePlaceholder': 'snippet-name', + 'settings.snippets.page.field.descriptionPlaceholder': '這個程式片段的作用', + 'settings.snippets.page.field.aliases': '別名', + 'settings.snippets.page.field.aliasesPlaceholder': 'safe, careful', + 'settings.snippets.page.field.content': '內容', + 'settings.snippets.page.field.contentPlaceholder': '程式片段 Markdown...', + 'settings.snippets.page.hint': '在提示詞中使用 #name。支援別名與 opencode-snippets 相容的 prepend/append 區塊。', + 'settings.snippets.page.toast.nameRequired': '程式片段名稱為必填項', + 'settings.snippets.page.toast.contentRequired': '程式片段內容為必填項', + 'settings.snippets.page.toast.saveFailed': '保存程式片段失敗', + 'settings.snippets.page.toast.saved': '程式片段已保存', + 'settings.openchamber.tunnel.title': 'Remote Tunnel', + 'settings.openchamber.tunnel.description': '透過快速連結或你自己的 Cloudflare managed remote tunnel 設定安全遠端存取。', + 'settings.openchamber.tunnel.note.serverSideEnforced': '安全通道存取由伺服器端強制執行。', + 'settings.openchamber.tunnel.note.connectLinksOneTime': '連線連結為一次性,Tunnel 停止或連線連結 TTL 到期後會被撤銷。', + 'settings.openchamber.tunnel.note.cloudflareConnectorTarget': 'Cloudflare connector 目標:', + 'settings.openchamber.tunnel.note.cloudflareConnectorTargetUse': '對於 Cloudflare connector 目標,請使用', + 'settings.openchamber.tunnel.note.tokensSavedPerTunnel': 'Token 按 tunnel 儲存並從磁碟重複使用。', + 'settings.openchamber.tunnel.note.customConfigUsed': '啟動 tunnel 時將使用自訂設定檔。', + 'settings.openchamber.tunnel.note.defaultConfigUsed': '為空時,cloudflared 使用預設設定(~/.cloudflared/config.yml)。', + 'settings.openchamber.tunnel.note.managedRemoteRequiresDomain': 'Managed remote tunnel 需要你在 Cloudflare 帳戶中購買的網域名稱。', + 'settings.openchamber.tunnel.note.managedLocalUsesConfig': 'Managed local tunnel 使用本機 cloudflared 設定檔。', + 'settings.openchamber.tunnel.note.startModeAndGenerateLink': '啟動 {mode} tunnel 並產生一次性連線連結。此 tunnel 使用期間請勿關閉應用程式。', + 'settings.openchamber.tunnel.note.scanQrToConnect': '用手機掃碼連線。', + 'settings.openchamber.tunnel.section.redeemedAccessLinks': '已兌換存取連結', + 'settings.openchamber.tunnel.section.savedManagedRemoteTunnels': '已儲存的 managed remote tunnel', + 'settings.openchamber.tunnel.notAvailable.cloudflaredNotFound': '找不到 cloudflared', + 'settings.openchamber.tunnel.notAvailable.installHint': '安裝它以啟用 remote tunnel 存取:', + 'settings.openchamber.tunnel.field.provider': '供應商', + 'settings.openchamber.tunnel.field.providerPlaceholder': '選擇供應商', + 'settings.openchamber.tunnel.field.tunnelType': 'Tunnel 類型', + 'settings.openchamber.tunnel.field.connectLinkTtl': '連線連結 TTL', + 'settings.openchamber.tunnel.field.tunnelSessionTtl': 'Tunnel 工作階段 TTL', + 'settings.openchamber.tunnel.field.hostnameLabel': '主機名稱:', + 'settings.openchamber.tunnel.field.savedTokenAvailablePlaceholder': '已儲存 token(可選替換)', + 'settings.openchamber.tunnel.field.pasteTokenPlaceholder': '貼上此 tunnel 的 token', + 'settings.openchamber.tunnel.field.newPresetNamePlaceholder': 'tunnel 名稱(例如 Production)', + 'settings.openchamber.tunnel.field.newPresetHostnamePlaceholder': '主機名稱(例如 oc.example.com)', + 'settings.openchamber.tunnel.field.newPresetTokenPlaceholder': 'Token', + 'settings.openchamber.tunnel.field.managedRemoteTokenInfoAria': 'Managed remote tunnel token 資訊', + 'settings.openchamber.tunnel.field.configurationFile': '設定檔', + 'settings.openchamber.tunnel.field.configurationFilePlaceholder': '使用預設 cloudflared 設定', + 'settings.openchamber.tunnel.field.managedRemoteTunnelToConnect': '用於連線的 Managed remote tunnel', + 'settings.openchamber.tunnel.field.selectSavedTunnelPlaceholder': '選擇已儲存 tunnel', + 'settings.openchamber.tunnel.field.publicUrlHint': '公開 URL(沒有 token 無法存取)', + 'settings.openchamber.tunnel.field.connectLink': '連線連結', + 'settings.openchamber.tunnel.field.expires': '到期', + 'settings.openchamber.tunnel.field.connectQrAlt': 'Tunnel 連線 QR Code', + 'settings.openchamber.tunnel.actions.removePresetAria': '移除 {name}', + 'settings.openchamber.tunnel.actions.saveToken': '儲存 token', + 'settings.openchamber.tunnel.actions.browseConfigFileAria': '瀏覽設定檔', + 'settings.openchamber.tunnel.actions.clearConfigFileAria': '清除設定檔', + 'settings.openchamber.tunnel.actions.openManagedRemoteDocs': '查看 managed remote tunnel 設定文件', + 'settings.openchamber.tunnel.actions.openManagedLocalDocs': '查看 managed local tunnel 設定文件', + 'settings.openchamber.tunnel.actions.startTunnel': '啟動 tunnel', + 'settings.openchamber.tunnel.actions.startingTunnel': '正在啟動 tunnel...', + 'settings.openchamber.tunnel.actions.stopTunnel': '停止 tunnel', + 'settings.openchamber.tunnel.actions.stopping': '正在停止...', + 'settings.openchamber.tunnel.actions.newConnectLink': '新增連線連結', + 'settings.openchamber.tunnel.actions.copied': '已複製', + 'settings.openchamber.tunnel.actions.retry': '重試', + 'settings.openchamber.tunnel.option.moreProvidersSoon': '更多供應商即將推出', + 'settings.openchamber.tunnel.option.mode.quick.label': 'Quick', + 'settings.openchamber.tunnel.option.mode.quick.tooltip': 'Quick Tunnel 僅盡力提供,Cloudflare 不保證可用性。', + 'settings.openchamber.tunnel.option.mode.managedRemote.label': 'Managed Remote', + 'settings.openchamber.tunnel.option.mode.managedRemote.tooltip': 'Managed Remote 使用你的 Cloudflare 帳戶與主機名稱提供長期存取。', + 'settings.openchamber.tunnel.option.mode.managedLocal.label': 'Managed Local', + 'settings.openchamber.tunnel.option.mode.managedLocal.tooltip': 'Managed Local 使用本機 cloudflared 設定檔。', + 'settings.openchamber.tunnel.warning.quickModeReliability': '如需更可靠的長期存取,請切換到 managed remote 或 managed local tunnel 模式。', + 'settings.openchamber.tunnel.warning.replacesActiveTunnel': '啟動該 tunnel 會取代目前活動 tunnel,並撤銷現有連線連結與遠端工作階段。', + 'settings.openchamber.tunnel.badge.quick': 'QUICK', + 'settings.openchamber.tunnel.badge.remote': 'REMOTE', + 'settings.openchamber.tunnel.badge.local': 'LOCAL', + 'settings.openchamber.tunnel.state.loading': '載入中', + 'settings.openchamber.tunnel.state.expired': '已過期', + 'settings.openchamber.tunnel.state.revoked': '已撤銷', + 'settings.openchamber.tunnel.state.inactive': '非使用中', + 'settings.openchamber.tunnel.state.noExpiry': '無到期時間', + 'settings.openchamber.tunnel.state.never': '永不過期', + 'settings.openchamber.tunnel.state.tunnelReady': 'Tunnel 已就緒', + 'settings.openchamber.tunnel.session.redeemedAt': '已兌換 {time}', + 'settings.openchamber.tunnel.session.expiresIn': '{remaining} 後到期', + 'settings.openchamber.tunnel.session.inactiveWithReason': '非使用中({reason})', + 'settings.openchamber.tunnel.error.invalidConfigExtension': '設定檔必須使用 .yml、.yaml 或 .json 副檔名。', + 'settings.openchamber.tunnel.tooltip.tokensSavedPath': 'Token 儲存在 ~/.config/openchamber/cloudflare-managed-remote-tunnels.json。', + 'settings.openchamber.tunnel.empty.noManagedRemoteTunnels': '尚未儲存任何 managed remote tunnel。', + 'settings.openchamber.tunnel.toast.checkAvailabilityFailed': '檢查 tunnel 可用性失敗', + 'settings.openchamber.tunnel.toast.saveSettingsFailed': '儲存 tunnel 設定失敗', + 'settings.openchamber.tunnel.toast.saveTtlFailed': '儲存 tunnel TTL 設定失敗', + 'settings.openchamber.tunnel.toast.saveTokenFailed': '儲存 managed remote tunnel token 失敗', + 'settings.openchamber.tunnel.toast.selectOrAddManagedRemoteFirst': '請先選擇或新增一個 managed remote tunnel', + 'settings.openchamber.tunnel.toast.managedRemoteTokenRequiredBeforeStarting': '啟動前必須提供 managed remote tunnel token', + 'settings.openchamber.tunnel.toast.addManagedRemoteTokenBeforeStarting': '請先新增 managed remote tunnel token 再啟動', + 'settings.openchamber.tunnel.toast.startFailed': '啟動 tunnel 失敗', + 'settings.openchamber.tunnel.toast.startedButNoPublicUrl': 'tunnel 已啟動,但未回傳公開 URL', + 'settings.openchamber.tunnel.toast.replacedTunnelSingleSingle': '已取代之前的 tunnel:撤銷 1 個連結,失效 1 個工作階段。', + 'settings.openchamber.tunnel.toast.replacedTunnelSingleManySessions': '已取代之前的 tunnel:撤銷 1 個連結,失效 {invalidatedSessionCount} 個工作階段。', + 'settings.openchamber.tunnel.toast.replacedTunnelManyLinksSingleSession': '已取代之前的 tunnel:撤銷 {revokedBootstrapCount} 個連結,失效 1 個工作階段。', + 'settings.openchamber.tunnel.toast.replacedTunnelManyMany': '已取代之前的 tunnel:撤銷 {revokedBootstrapCount} 個連結,失效 {invalidatedSessionCount} 個工作階段。', + 'settings.openchamber.tunnel.toast.linkReady': 'tunnel 連結已就緒', + 'settings.openchamber.tunnel.toast.stopped': 'tunnel 已停止', + 'settings.openchamber.tunnel.toast.stopFailed': '停止 tunnel 失敗', + 'settings.openchamber.tunnel.toast.connectLinkCopied': '連線連結已複製', + 'settings.openchamber.tunnel.toast.copyUrlFailed': '複製 URL 失敗', + 'settings.openchamber.tunnel.toast.saveSelectedManagedRemoteFailed': '儲存所選 managed remote tunnel 失敗', + 'settings.openchamber.tunnel.toast.tunnelNameRequired': 'tunnel 名稱為必填項', + 'settings.openchamber.tunnel.toast.managedRemoteHostnameRequired': 'Managed memote tunnel 主機名稱為必填項', + 'settings.openchamber.tunnel.toast.managedRemoteTokenRequired': 'Managed memote tunnel token 為必填項', + 'settings.openchamber.tunnel.toast.hostnameAlreadyExists': '該主機名稱已存在', + 'settings.openchamber.tunnel.toast.managedRemoteSaved': 'Managed remote tunnel 已儲存', + 'settings.openchamber.tunnel.toast.managedRemoteRemoved': 'Managed remote tunnel 已移除', + 'settings.magicPrompts.sidebar.title': '魔法提示詞', + 'settings.magicPrompts.sidebar.description': '選擇要編輯的提示詞模板。', + 'settings.magicPrompts.sidebar.group.git': 'Git', + 'settings.magicPrompts.sidebar.group.github': 'GitHub', + 'settings.magicPrompts.sidebar.group.planning': '規劃', + 'settings.magicPrompts.sidebar.group.session': '工作階段', + 'settings.magicPrompts.sidebar.item.gitCommitGenerate': '提交生成', + 'settings.magicPrompts.sidebar.item.gitPrGenerate': 'PR 產生', + 'settings.magicPrompts.sidebar.item.gitConflictResolve': 'Merge/Rebase 衝突解決', + 'settings.magicPrompts.sidebar.item.gitCherrypickConflictResolve': 'Cherry-pick 衝突解決', + 'settings.magicPrompts.sidebar.item.githubPrReview': 'PR 審查', + 'settings.magicPrompts.sidebar.item.githubIssueReview': 'Issue 審查', + 'settings.magicPrompts.sidebar.item.githubPrFailedChecksReview': 'PR 失敗檢查審查', + 'settings.magicPrompts.sidebar.item.githubPrCommentsReview': 'PR 評論審查', + 'settings.magicPrompts.sidebar.item.githubSinglePrCommentReview': '單則 PR 評論審查', + 'settings.magicPrompts.sidebar.item.planTodo': '待辦規劃', + 'settings.magicPrompts.sidebar.item.planImprove': '改進計畫', + 'settings.magicPrompts.sidebar.item.planImplement': '執行計畫', + 'settings.magicPrompts.sidebar.item.sessionSummary': '工作階段總結', + 'settings.magicPrompts.sidebar.item.sessionWorkspaceReview': '工作區審查', + 'settings.magicPrompts.sidebar.item.sessionFusion': 'Fusion', + 'settings.remoteInstances.sidebar.title': '遠端執行個體', + 'settings.remoteInstances.sidebar.total': '總計 {count}', + 'settings.remoteInstances.sidebar.newSshInstanceName': '新增 SSH 執行個體', + 'settings.remoteInstances.sidebar.actions.addSshInstance': '新增 SSH 執行個體', + 'settings.remoteInstances.sidebar.actions.connect': '連線', + 'settings.remoteInstances.sidebar.actions.disconnect': '中斷連線', + 'settings.remoteInstances.sidebar.actions.retry': '重試', + 'settings.remoteInstances.sidebar.actions.remove': '移除', + 'settings.remoteInstances.sidebar.confirm.localPortInUseRetry': '本機連接埠已被佔用。是否選擇一個隨機可用本機連接埠並重試?', + 'settings.remoteInstances.sidebar.toast.createFailed': '建立 SSH 執行個體失敗', + 'settings.remoteInstances.sidebar.toast.retriedWithRandomPort': '已使用隨機本機連接埠重試', + 'settings.remoteInstances.sidebar.toast.connectFailed': '連線執行個體失敗', + 'settings.remoteInstances.sidebar.toast.disconnectFailed': '中斷執行個體連線失敗', + 'settings.remoteInstances.sidebar.toast.retryFailed': '重試連線失敗', + 'settings.remoteInstances.sidebar.toast.removeFailed': '移除執行個體失敗', + 'settings.remoteInstances.sidebar.phase.ready': '就緒', + 'settings.remoteInstances.sidebar.phase.error': '錯誤', + 'settings.remoteInstances.sidebar.phase.reconnect': '重新連線', + 'settings.remoteInstances.sidebar.phase.installing': '安裝中', + 'settings.remoteInstances.sidebar.phase.updating': '更新中', + 'settings.remoteInstances.sidebar.phase.forwarding': '轉送中', + 'settings.remoteInstances.sidebar.phase.starting': '啟動中', + 'settings.remoteInstances.sidebar.phase.connecting': '連線中', + 'settings.remoteInstances.sidebar.phase.idle': '可用', + 'settings.remoteInstances.page.section.instance': '執行個體', + 'settings.remoteInstances.page.section.instanceDescription': '核心 SSH 設定。', + 'settings.remoteInstances.page.field.mode': '模式', + 'settings.remoteInstances.page.field.modeHint': 'Managed 模式會在遠端安裝/更新並啟動 OpenChamber。External 模式假設它已在執行。', + 'settings.remoteInstances.page.field.modePlaceholder': '選擇模式', + 'settings.remoteInstances.page.field.modeManaged': 'Managed(自動啟動)', + 'settings.remoteInstances.page.field.modeExternal': 'External(已在執行)', + 'settings.remoteInstances.page.field.preferredRemotePort': '偏好遠端連接埠', + 'settings.remoteInstances.page.field.preferredRemotePortHint': 'OpenChamber 在遠端主機使用的連接埠。留空則由執行時自動選擇。', + 'settings.remoteInstances.page.field.keepServerRunning': '保持服務執行', + 'settings.remoteInstances.page.field.keepServerRunningHint': '啟用後,中斷連線時會保留遠端 OpenChamber 背景程式。', + 'settings.remoteInstances.page.field.bindHost': '綁定主機', + 'settings.remoteInstances.page.field.bindHostHint': '主本機存取位址使用的網路介面。使用 127.0.0.1/localhost 可僅限本機存取。', + 'settings.remoteInstances.page.field.preferredLocalPort': '偏好本機連接埠', + 'settings.remoteInstances.page.field.preferredLocalPortHint': '主 OpenChamber tunnel 的偏好本機連接埠。留空自動選擇。', + 'settings.remoteInstances.page.field.forwardType': '轉送類型', + 'settings.remoteInstances.page.field.localHostPlaceholder': '127.0.0.1', + 'settings.remoteInstances.page.field.remoteHostPlaceholder': '127.0.0.1', + 'settings.remoteInstances.page.field.auto': '自動', + 'settings.remoteInstances.page.confirm.bindAllInterfaces': '綁定到 0.0.0.0 會將轉送連接埠暴露到本機網路。是否繼續?', + 'settings.remoteInstances.page.preview.localSocks5': '(本機 SOCKS5)', + 'settings.remoteInstances.page.preview.local': '(本機)', + 'settings.remoteInstances.page.preview.remote': '(遠端)', + 'settings.remoteInstances.page.toast.openLocalEndpointFailed': '開啟本機端點失敗', + 'settings.remoteInstances.page.toast.localUrlCopied': '本機 URL 已複製', + 'settings.remoteInstances.page.actions.copyLocalUrl': '複製本機 URL', + 'settings.remoteInstances.page.actions.open': '開啟', + 'settings.remoteInstances.page.logsDialog.selectedInstanceFallback': '所選執行個體', + 'settings.remoteInstances.page.patternDialog.descriptionWithHost': '{host} 需要一個具體目標地址。', + 'settings.remoteInstances.page.patternDialog.description': '輸入目標地址。', + 'settings.common.actions.cancel': '取消', + 'settings.common.actions.create': '建立', + 'settings.common.actions.delete': '刪除', + 'settings.common.actions.reset': '重設', + 'settings.common.actions.rename': '重新命名', + 'settings.common.actions.duplicate': '複製', + 'settings.common.actions.import': '匯入', + 'settings.common.actions.copyAll': '全部複製', + 'settings.common.actions.clear': '清除', + 'settings.common.actions.saving': '儲存中...', + 'settings.common.actions.saveChanges': '儲存變更', + 'settings.common.scope.global': '全域', + 'settings.common.scope.project': '專案', + 'settings.common.field.description': '說明', + 'settings.common.badge.new': '新增', + 'settings.common.badge.modified': '已修改', + 'settings.common.permission.allow': '允許', + 'settings.common.permission.ask': '詢問', + 'settings.common.permission.deny': '拒絕', + 'settings.common.state.comingSoon': '即將推出...', + 'settings.projects.actions.title': '操作', + 'settings.projects.actions.description': '按專案顯示在專案名稱旁標題列中的命令。', + 'settings.projects.actions.validation.fillNameAndCommand': '儲存前請填寫操作名稱和命令。', + 'settings.projects.actions.state.loading': '載入中...', + 'settings.projects.actions.state.empty': '尚未設定任何操作。', + 'settings.projects.actions.state.untitled': '未命名操作', + 'settings.projects.actions.state.noDesktopSshForwards': '沒有可用的本機 SSH 轉送。', + 'settings.projects.actions.field.selectIconAria': '選擇圖示', + 'settings.projects.actions.field.iconAria': '圖示 {icon}', + 'settings.projects.actions.field.actionNamePlaceholder': '操作名稱', + 'settings.projects.actions.field.command': '命令', + 'settings.projects.actions.field.commandPlaceholder': '例如 bun run lint', + 'settings.projects.actions.field.autoOpenUrl': '自動開啟 URL', + 'settings.projects.actions.field.autoOpenUrlForAria': '為 {title} 自動開啟 URL', + 'settings.projects.actions.field.autoOpenUrlDescription': '從輸出中開啟 URL,或使用下面的自訂 URL', + 'settings.projects.actions.field.overrideUrlPlaceholder': '覆寫 URL(可選)', + 'settings.projects.actions.field.overrideUrlTooltip': '如果填寫此欄位,將使用自訂 URL。為空時,應用程式會從輸出中選擇最合適的 URL 開啟。', + 'settings.projects.actions.field.desktopSshForward': '桌面 SSH 轉送', + 'settings.projects.actions.field.useOutputManualUrl': '使用輸出/手動 URL', + 'settings.projects.actions.actions.add': '新增操作', + 'settings.projects.actions.actions.save': '儲存操作', + 'settings.projects.actions.toast.saveFailed': '儲存操作失敗', + 'settings.projects.actions.toast.saved': '專案操作已儲存', + 'settings.openchamber.about.title': '關於 OpenChamber', + 'settings.openchamber.about.field.version': '版本', + 'settings.openchamber.about.state.checking': '檢查中...', + 'settings.openchamber.about.state.upToDate': '已是最新', + 'settings.openchamber.about.actions.checkUpdates': '檢查更新', + 'settings.openchamber.about.actions.update': '更新', + 'settings.openchamber.about.actions.updateToVersion': '更新到 {version}', + 'settings.openchamber.about.actions.checkForUpdates': '檢查更新', + 'settings.openchamber.about.toast.latestVersion': '你已是最新版本', + 'settings.agents.sidebar.title': 'Agents', + 'settings.agents.sidebar.total': '總計 {count}', + 'settings.agents.sidebar.empty.title': '未設定 agents', + 'settings.agents.sidebar.empty.description': '使用上方 + 按鈕建立一個', + 'settings.agents.sidebar.section.builtIn': '內建 Agents', + 'settings.agents.sidebar.section.custom': '自訂 Agents', + 'settings.agents.sidebar.badge.system': '系統', + 'settings.agents.sidebar.dialog.deleteTitle': '刪除 Agent', + 'settings.agents.sidebar.dialog.resetTitle': '重設 Agent', + 'settings.agents.sidebar.dialog.deleteDescription': '確定要刪除 agent「{name}」嗎?', + 'settings.agents.sidebar.dialog.resetDescription': '確定要將 agent「{name}」重設為預設設定嗎?', + 'settings.agents.sidebar.renameDialog.title': '重新命名 Agent', + 'settings.agents.sidebar.renameDialog.description': '為 agent「@{name}」輸入新名稱', + 'settings.agents.sidebar.renameDialog.placeholder': '新 agent 名稱...', + 'settings.agents.sidebar.toast.builtInCannotDelete': '內建 agents 無法刪除', + 'settings.agents.sidebar.toast.agentDeleted': 'Agent「{name}」已刪除', + 'settings.agents.sidebar.toast.agentReset': 'Agent「{name}」已重設為預設值', + 'settings.agents.sidebar.toast.deleteFailed': '刪除 agent 失敗', + 'settings.agents.sidebar.toast.resetFailed': '重設 agent 失敗', + 'settings.agents.sidebar.toast.agentNameRequired': 'Agent 名稱為必填項', + 'settings.agents.sidebar.toast.agentExists': '已存在同名 agent', + 'settings.agents.sidebar.toast.removeOldAfterRenameFailed': '重新命名後移除舊 agent 失敗', + 'settings.agents.sidebar.toast.renameFailed': '重新命名 agent 失敗', + 'settings.agents.page.toast.permissionNameRequired': '權限名稱為必填項', + 'settings.agents.page.toast.created': 'Agent 建立成功', + 'settings.agents.page.toast.updated': 'Agent 更新成功', + 'settings.agents.page.toast.createFailed': '建立 agent 失敗', + 'settings.agents.page.toast.updateFailed': '更新 agent 失敗', + 'settings.agents.page.toast.saveUnexpectedError': '儲存時發生錯誤', + 'settings.agents.page.empty.title': '從側邊欄選擇一個 agent', + 'settings.agents.page.empty.description': '或建立一個 agent', + 'settings.agents.page.title.new': '新增 Agent', + 'settings.agents.page.subtitle.new': '設定新的助理人格', + 'settings.agents.page.subtitle.edit': '編輯 agent 設定', + 'settings.agents.page.section.identityRole': '身分與角色', + 'settings.agents.page.section.modelParameters': '模型與參數', + 'settings.agents.page.section.systemPrompt': '系統提示詞', + 'settings.agents.page.section.toolPermissions': '工具權限', + 'settings.agents.page.field.agentName': 'Agent 名稱', + 'settings.agents.page.field.agentNamePlaceholder': 'agent-name', + 'settings.agents.page.field.scopePlaceholder': '作用域', + 'settings.agents.page.field.descriptionPlaceholder': '這個 agent 的作用是什麼?', + 'settings.agents.page.field.mode': '模式', + 'settings.agents.page.field.modeTooltip': 'Primary 與 Subagent 可見性', + 'settings.agents.page.field.overrideModel': '覆寫模型', + 'settings.agents.page.field.temperature': 'Temperature', + 'settings.agents.page.field.temperatureTooltip': '控制隨機性。越高越有創造力,越低越聚焦。', + 'settings.agents.page.field.temperatureRange': '0.0 到 2.0', + 'settings.agents.page.field.clearTemperatureAria': '清除 Temperature 覆寫', + 'settings.agents.page.field.topP': 'Top P', + 'settings.agents.page.field.topPTooltip': '核取樣多樣性。越低越傾向高機率 token。', + 'settings.agents.page.field.topPRange': '0.0 到 1.0', + 'settings.agents.page.field.clearTopPAria': '清除 Top P 覆寫', + 'settings.agents.page.field.systemPromptPlaceholder': '你是一名專業程式碼撰寫助理...', + 'settings.agents.page.mode.primary': 'Primary', + 'settings.agents.page.mode.subagent': 'Subagent', + 'settings.agents.page.mode.all': '全部', + 'settings.agents.page.permissions.defaultLabel': '預設', + 'settings.agents.page.permissions.hideEditor': '隱藏編輯器', + 'settings.agents.page.permissions.advancedEditor': '進階編輯器', + 'settings.agents.page.permissions.globalSummary': '全域:{summary}', + 'settings.agents.page.permissions.rulesSummary': '規則:{summary}', + 'settings.agents.page.permissions.globalDefault': '全域預設', + 'settings.agents.page.permissions.pattern': '模式', + 'settings.agents.page.permissions.addCustomRule': '新增自訂規則', + 'settings.agents.page.permissions.permissionPlaceholder': '權限...', + 'settings.agents.page.permissions.patternPlaceholder': '模式(例如 *)', + 'settings.page.behavior.title': '行為', + 'settings.behavior.page.title': '行為', + 'settings.behavior.page.warning.title': '全域規則會與專案規則合併使用', + 'settings.behavior.page.warning.description': '此處所做的變更會更新 {path}。當專案級 AGENTS.md 存在時,OpenCode 也會包含它。', + 'settings.behavior.page.section.systemPrompt': '全域 AGENTS.md', + 'settings.behavior.page.field.systemPromptPlaceholder': '你是一個有幫助的 AI 助助理...\n\n在此設定 AI 在所有工作階段與服務提供者中都必須遵守的絕對行為規則。', + 'settings.behavior.page.section.responseStyle': '回覆風格', + 'settings.behavior.page.responseStyle.tooltip': '啟用後,這些說明會指導助理在每個新對話中的回覆方式。它們會隨你的第一則訊息一起送出,不會變更全域 AGENTS.md 規則。', + 'settings.behavior.page.responseStyle.enableAria': '啟用回覆風格說明', + 'settings.behavior.page.responseStyle.enable': '向新對話新增回覆風格說明', + 'settings.behavior.page.responseStyle.preset': '預設', + 'settings.behavior.page.responseStyle.option.concise': '簡潔', + 'settings.behavior.page.responseStyle.option.detailed': '詳細', + 'settings.behavior.page.responseStyle.option.mentor': '導師', + 'settings.behavior.page.responseStyle.option.pushback': '反駁', + 'settings.behavior.page.responseStyle.option.noFiller': '無廢話', + 'settings.behavior.page.responseStyle.option.matchEnergy': '配合我的語氣', + 'settings.behavior.page.responseStyle.option.warmPeer': '親近的同事', + 'settings.behavior.page.responseStyle.option.custom': '自訂', + 'settings.behavior.page.responseStyle.customPlaceholder': '編寫要新增到第一則訊息的說明...', + 'settings.behavior.page.toast.saved': '行為儲存成功', + 'settings.behavior.page.toast.saveFailed': '行為儲存失敗', + 'settings.commands.sidebar.title': '命令', + 'settings.commands.sidebar.total': '總計 {count}', + 'settings.commands.sidebar.empty.title': '未設定命令', + 'settings.commands.sidebar.empty.description': '使用上方 + 按鈕建立一個', + 'settings.commands.sidebar.section.builtIn': '內建命令', + 'settings.commands.sidebar.section.custom': '自訂命令', + 'settings.commands.sidebar.dialog.deleteTitle': '刪除命令', + 'settings.commands.sidebar.dialog.resetTitle': '重設命令', + 'settings.commands.sidebar.dialog.deleteDescription': '確定要刪除命令「{name}」嗎?', + 'settings.commands.sidebar.dialog.resetDescription': '確定要將命令「{name}」重設為預設設定嗎?', + 'settings.commands.sidebar.renameDialog.title': '重新命名命令', + 'settings.commands.sidebar.renameDialog.description': '為命令「/{name}」輸入新名稱', + 'settings.commands.sidebar.renameDialog.placeholder': '新命令名稱...', + 'settings.commands.sidebar.toast.builtInCannotDelete': '內建命令無法刪除', + 'settings.commands.sidebar.toast.commandDeleted': '命令「{name}」已刪除', + 'settings.commands.sidebar.toast.commandReset': '命令「{name}」已重設為預設值', + 'settings.commands.sidebar.toast.deleteFailed': '刪除命令失敗', + 'settings.commands.sidebar.toast.resetFailed': '重設命令失敗', + 'settings.commands.sidebar.toast.commandNameRequired': '命令名稱為必填項', + 'settings.commands.sidebar.toast.commandExists': '已存在同名命令', + 'settings.commands.sidebar.toast.removeOldAfterRenameFailed': '重新命名後移除舊命令失敗', + 'settings.commands.sidebar.toast.renameFailed': '重新命名命令失敗', + 'settings.commands.page.toast.templateRequired': '命令模板為必填項', + 'settings.commands.page.toast.created': '命令建立成功', + 'settings.commands.page.toast.updated': '命令更新成功', + 'settings.commands.page.toast.createFailed': '建立命令失敗', + 'settings.commands.page.toast.updateFailed': '更新命令失敗', + 'settings.commands.page.toast.saveUnexpectedError': '儲存時發生錯誤', + 'settings.commands.page.empty.title': '從側邊欄選擇一個命令', + 'settings.commands.page.empty.description': '或新增一個命令', + 'settings.commands.page.title.new': '新增命令', + 'settings.commands.page.subtitle.new': '設定新的斜線命令', + 'settings.commands.page.subtitle.edit': '編輯命令設定', + 'settings.commands.page.section.identity': '身分', + 'settings.commands.page.section.executionContext': '執行上下文', + 'settings.commands.page.section.template': '命令模板', + 'settings.commands.page.field.commandName': '命令名稱', + 'settings.commands.page.field.commandNamePlaceholder': 'command-name', + 'settings.commands.page.field.descriptionPlaceholder': '這個命令的作用是什麼?', + 'settings.commands.page.field.overrideAgent': '覆寫 Agent', + 'settings.commands.page.field.templatePlaceholder': '在此輸入命令模板...\n\n使用 $ARGUMENTS 引用使用者輸入。\n使用 !`shell command` 注入 shell 輸出。\n使用 @filename 包含檔案內容。', + 'settings.commands.page.templateHint.userInput': '使用者輸入', + 'settings.commands.page.templateHint.shellOutput': 'shell 輸出', + 'settings.commands.page.templateHint.fileContents': '檔案內容', + 'settings.commands.agentSelector.title': '選擇 agent', + 'settings.commands.agentSelector.notSelected': '未選擇', + 'settings.commands.agentSelector.selectAgentPlaceholder': '選擇 agent...', + 'settings.gitIdentities.page.section.title': '身分', + 'settings.gitIdentities.page.empty.title': '未設定身分', + 'settings.gitIdentities.page.empty.description': '建立一個以按專案管理 Git 作者設定', + 'settings.gitIdentities.page.discoveredCredentials.title': '在 ~/.git-credentials 中發現', + 'settings.gitIdentities.page.badge.default': '預設', + 'settings.gitIdentities.page.actions.setAsDefault': '設為預設', + 'settings.gitIdentities.page.actions.unsetDefault': '取消預設', + 'settings.gitIdentities.page.actions.import': '匯入', + 'settings.gitIdentities.page.toast.updateDefaultFailed': '更新預設身分失敗', + 'settings.gitIdentities.page.toast.defaultUpdated': '預設身分已更新', + 'settings.gitIdentities.page.toast.defaultUnset': '預設身分已取消', + 'settings.gitIdentities.page.toast.profileDeleted': '身分「{name}」已刪除', + 'settings.gitIdentities.page.toast.deleteProfileFailed': '刪除身分失敗', + 'settings.gitIdentities.page.deleteDialog.title': '刪除身分', + 'settings.gitIdentities.page.deleteDialog.description': '確定要刪除「{name}」嗎?', + 'settings.gitIdentities.editor.title.importCredential': '匯入憑證', + 'settings.gitIdentities.editor.title.newIdentity': '新增身分', + 'settings.gitIdentities.editor.title.globalIdentity': '全域身分', + 'settings.gitIdentities.editor.title.editIdentity': '編輯身分', + 'settings.gitIdentities.editor.description.globalReadOnly': '系統範圍 Git 身分(唯讀)', + 'settings.gitIdentities.editor.description.newProfile': '建立新的 Git 身分設定', + 'settings.gitIdentities.editor.description.editProfile': '編輯身分設定', + 'settings.gitIdentities.editor.field.profileName': '身分名稱', + 'settings.gitIdentities.editor.field.profileNamePlaceholder': '工作身分、個人身分等', + 'settings.gitIdentities.editor.field.color': '顏色', + 'settings.gitIdentities.editor.field.icon': '圖示', + 'settings.gitIdentities.editor.field.userName': '使用者名稱', + 'settings.gitIdentities.editor.field.userNameTooltip': '該名稱會顯示在 Git 提交訊息中。', + 'settings.gitIdentities.editor.field.userNamePlaceholder': '張三', + 'settings.gitIdentities.editor.field.emailAddress': '電子郵件地址', + 'settings.gitIdentities.editor.field.emailAddressTooltip': '應與你在 GitHub/GitLab 中的電子郵件一致以便正確歸屬。', + 'settings.gitIdentities.editor.field.emailAddressPlaceholder': 'name@example.com', + 'settings.gitIdentities.editor.field.authMethod': '驗證方式', + 'settings.gitIdentities.editor.field.authToken': 'Token', + 'settings.gitIdentities.editor.field.sshKeyPath': 'SSH 金鑰路徑', + 'settings.gitIdentities.editor.field.sshKeyPathTooltip': '可選私鑰路徑,例如 ~/.ssh/id_ed25519', + 'settings.gitIdentities.editor.field.sshKeyPathPlaceholder': '~/.ssh/id_ed25519', + 'settings.gitIdentities.editor.field.host': 'Host', + 'settings.gitIdentities.editor.field.hostTooltip': '該 host 的 token 將從 ~/.git-credentials 讀取。', + 'settings.gitIdentities.editor.field.hostPlaceholder': 'github.com', + 'settings.gitIdentities.editor.actions.close': '關閉', + 'settings.gitIdentities.editor.actions.create': '建立', + 'settings.gitIdentities.editor.actions.save': '儲存', + 'settings.gitIdentities.editor.toast.userNameEmailRequired': '使用者名稱和電子郵件為必填項', + 'settings.gitIdentities.editor.toast.hostRequiredForToken': '基於 token 驗證時 Host 為必填項', + 'settings.gitIdentities.editor.toast.profileCreated': '身分已建立', + 'settings.gitIdentities.editor.toast.profileUpdated': '身分已更新', + 'settings.gitIdentities.editor.toast.createProfileFailed': '建立身分失敗', + 'settings.gitIdentities.editor.toast.updateProfileFailed': '更新身分失敗', + 'settings.gitIdentities.editor.toast.saveUnexpectedError': '儲存時發生錯誤', + 'settings.gitIdentities.editor.toast.profileDeleted': '身分已刪除', + 'settings.gitIdentities.editor.toast.deleteProfileFailed': '刪除身分失敗', + 'settings.gitIdentities.editor.toast.deleteUnexpectedError': '刪除時發生錯誤', + 'settings.skills.sidebar.title': 'Skills', + 'settings.skills.sidebar.total': '總計 {count}', + 'settings.skills.sidebar.section.project': '專案 Skills', + 'settings.skills.sidebar.section.user': '使用者 Skills', + 'settings.skills.sidebar.empty.title': '未設定 skills', + 'settings.skills.sidebar.empty.description': '使用上方 + 按鈕建立一個', + 'settings.skills.sidebar.badge.claude': 'claude', + 'settings.skills.sidebar.badge.agents': 'agents', + 'settings.skills.sidebar.badge.opencode': 'opencode', + 'settings.skills.sidebar.toast.skillDeleted': 'skill「{name}」已刪除', + 'settings.skills.sidebar.toast.deleteSkillFailed': '刪除 skill 失敗', + 'settings.skills.sidebar.toast.duplicateLoadFailed': '複製 skill 的詳細資訊載入失敗', + 'settings.skills.sidebar.toast.renameLoadFailed': '載入 skill 詳情失敗', + 'settings.skills.sidebar.toast.removeOldAfterRenameFailed': '重新命名後移除舊 skill 失敗', + 'settings.skills.sidebar.toast.renameFailed': '重新命名 skill 失敗', + 'settings.skills.sidebar.deleteDialog.title': '刪除 Skill', + 'settings.skills.sidebar.deleteDialog.description': '確定要刪除 skill「{name}」嗎?', + 'settings.skills.sidebar.renameDialog.title': '重新命名 Skill', + 'settings.skills.sidebar.renameDialog.description': '為 skill「{name}」輸入新名稱', + 'settings.skills.sidebar.renameDialog.placeholder': '新 skill 名稱...', + 'settings.skills.page.title.newSkill': '新增 skill', + 'settings.skills.page.subtitle.newSkill': '設定新 skill', + 'settings.skills.page.subtitle.skillLocation': '{location} skill', + 'settings.skills.page.section.basicInformation': '基本資訊', + 'settings.skills.page.section.instructions': '說明', + 'settings.skills.page.section.supportingFiles': '支援檔案', + 'settings.skills.page.field.skillNameLocation': 'Skill 名稱與位置', + 'settings.skills.page.field.skillNameHint': '小寫字母、數字、連字號', + 'settings.skills.page.field.skillNamePlaceholder': 'skill-name', + 'settings.skills.page.field.descriptionHint': 'agent 會用它判斷何時載入此 skill', + 'settings.skills.page.field.descriptionPlaceholder': '簡要說明該 skill 的作用...', + 'settings.skills.page.field.instructionsPlaceholder': '逐步說明、指南或參考內容...', + 'settings.skills.page.badge.claudeCompatible': 'Claude 相容', + 'settings.skills.page.badge.pending': '待處理', + 'settings.skills.page.actions.addFile': '新增檔案', + 'settings.skills.page.actions.createSkill': '建立 skill', + 'settings.skills.page.actions.createFile': '建立檔案', + 'settings.skills.page.supportingFiles.empty': '暫無支援檔案。使用「新增檔案」包含參考資料。', + 'settings.skills.page.loading.details': '正在載入 skill 詳情...', + 'settings.skills.page.loading.fileContent': '正在載入檔案內容...', + 'settings.skills.page.empty.title': '從側邊欄選擇一個 skill', + 'settings.skills.page.empty.description': '或建立一個 skill', + 'settings.skills.page.deleteFileDialog.title': '刪除支援檔案', + 'settings.skills.page.deleteFileDialog.description': '確定要刪除「{path}」嗎?', + 'settings.skills.page.fileDialog.titleEdit': '編輯支援檔案', + 'settings.skills.page.fileDialog.titleAdd': '新增支援檔案', + 'settings.skills.page.fileDialog.descriptionEdit': '修改檔案內容', + 'settings.skills.page.fileDialog.descriptionAdd': '在 skill 目錄中新增檔案', + 'settings.skills.page.fileDialog.field.filePath': '檔案路徑', + 'settings.skills.page.fileDialog.field.filePathPlaceholder': 'example.md 或 docs/reference.txt', + 'settings.skills.page.fileDialog.field.filePathHint': 'skill 目錄下的相對路徑。子目錄會自動建立。', + 'settings.skills.page.fileDialog.field.content': '內容', + 'settings.skills.page.fileDialog.field.contentPlaceholder': '檔案內容...', + 'settings.skills.page.toast.skillNameRequired': 'skill 名稱為必填', + 'settings.skills.page.toast.invalidSkillName': 'skill 名稱必須為 1-64 位小寫英數字或連字號,且不能以連字號開頭或結尾', + 'settings.skills.page.toast.descriptionRequired': '說明為必填項', + 'settings.skills.page.toast.skillExists': '已存在同名 skill', + 'settings.skills.page.toast.skillCreated': 'skill 建立成功', + 'settings.skills.page.toast.skillUpdated': 'skill 更新成功', + 'settings.skills.page.toast.createSkillFailed': '建立 skill 失敗', + 'settings.skills.page.toast.updateSkillFailed': '更新 skill 失敗', + 'settings.skills.page.toast.saveUnexpectedError': '儲存時發生錯誤', + 'settings.skills.page.toast.loadFileContentFailed': '載入檔案內容失敗', + 'settings.skills.page.toast.fileNameRequired': '檔案名稱為必填項', + 'settings.skills.page.toast.fileExists': '已存在同名檔案', + 'settings.skills.page.toast.noSkillSelected': '未選擇 skill', + 'settings.skills.page.toast.fileAdded': '檔案「{path}」已新增', + 'settings.skills.page.toast.fileCreated': '檔案「{path}」已建立', + 'settings.skills.page.toast.fileUpdated': '檔案「{path}」已更新', + 'settings.skills.page.toast.fileRemoved': '檔案「{path}」已移除', + 'settings.skills.page.toast.fileDeleted': '檔案「{path}」已刪除', + 'settings.skills.page.toast.createFileFailed': '建立檔案失敗', + 'settings.skills.page.toast.updateFileFailed': '更新檔案失敗', + 'settings.skills.page.toast.deleteFileFailed': '刪除檔案失敗', + 'settings.skills.location.option.userOpencode.label': '使用者 / OpenCode', + 'settings.skills.location.option.userOpencode.description': '全域 OpenCode 設定位置', + 'settings.skills.location.option.projectOpencode.label': '專案 / OpenCode', + 'settings.skills.location.option.projectOpencode.description': '目前專案 .opencode 位置', + 'settings.skills.location.option.userClaude.label': '使用者 / Claude', + 'settings.skills.location.option.userClaude.description': '全域 Claude skills 位置', + 'settings.skills.location.option.projectClaude.label': '專案 / Claude', + 'settings.skills.location.option.projectClaude.description': '目前專案 .claude 位置', + 'settings.skills.location.option.userAgents.label': '使用者 / Agents', + 'settings.skills.location.option.userAgents.description': '全域 .agents 相容位置', + 'settings.skills.location.option.projectAgents.label': '專案 / Agents', + 'settings.skills.location.option.projectAgents.description': '目前專案 .agents 相容位置', + 'settings.skills.catalog.shared.field.repository': '儲存庫', + 'settings.skills.catalog.shared.field.repositoryPlaceholder': 'owner/repo 或 git@github.com:owner/repo.git', + 'settings.skills.catalog.shared.field.optionalSubpath': '可選子路徑', + 'settings.skills.catalog.shared.field.subpathPlaceholder': '例如 skills', + 'settings.skills.catalog.shared.field.targetLocation': '目標位置', + 'settings.skills.catalog.shared.field.project': '專案', + 'settings.skills.catalog.shared.field.noProjects': '沒有可用專案', + 'settings.skills.catalog.shared.field.chooseProjectPlaceholder': '選擇專案', + 'settings.skills.catalog.shared.field.searchSkillsPlaceholder': '搜尋 skills…', + 'settings.skills.catalog.shared.toast.repositoryRequired': '儲存庫來源為必填項', + 'settings.skills.catalog.shared.toast.privateRepoNotSupportedVsCode': 'VS Code 暫不支援私有儲存庫', + 'settings.skills.catalog.shared.toast.foundSkills': '找到 {count} 個 skill(s)', + 'settings.skills.catalog.shared.noDescription': '未提供說明', + 'settings.skills.catalog.shared.actions.scan': '掃描', + 'settings.skills.catalog.shared.actions.scanning': '掃描中...', + 'settings.skills.catalog.shared.actions.install': '安裝', + 'settings.skills.catalog.shared.actions.installing': '安裝中...', + 'settings.skills.catalog.shared.auth.title': '需要驗證', + 'settings.skills.catalog.shared.auth.description': '選擇一個 Git 身分(SSH 金鑰)', + 'settings.skills.catalog.shared.auth.chooseIdentity': '選擇身分', + 'settings.skills.catalog.shared.auth.footerHint': '在設定 - Git Identities 中設定身分。', + 'settings.skills.catalog.shared.auth.footerHintArrow': '在設定 → Git Identities 中設定身分。', + 'settings.skills.catalog.conflicts.title': 'Skills 已存在', + 'settings.skills.catalog.conflicts.description': '部分選中 skills 在此作用域已安裝。請選擇略過或覆寫。', + 'settings.skills.catalog.conflicts.count': '{count} 個衝突', + 'settings.skills.catalog.conflicts.installedIn': '已安裝於 {scope} / {source}', + 'settings.skills.catalog.conflicts.scope.user': '使用者', + 'settings.skills.catalog.conflicts.scope.project': '專案', + 'settings.skills.catalog.conflicts.source.opencode': 'opencode', + 'settings.skills.catalog.conflicts.source.agents': 'agents', + 'settings.skills.catalog.conflicts.decision.skip': '略過', + 'settings.skills.catalog.conflicts.decision.overwrite': '覆寫', + 'settings.skills.catalog.conflicts.actions.skipAll': '全部略過', + 'settings.skills.catalog.conflicts.actions.overwriteAll': '全部覆寫', + 'settings.skills.catalog.conflicts.actions.continue': '繼續', + 'settings.skills.catalog.installSkill.title': '安裝 skill', + 'settings.skills.catalog.installSkill.descriptionPrefix': '將', + 'settings.skills.catalog.installSkill.descriptionSuffix': '安裝到四個目標位置之一。', + 'settings.skills.catalog.installSkill.field.destination': '目標位置', + 'settings.skills.catalog.installSkill.field.project': '專案', + 'settings.skills.catalog.installSkill.field.noProjects': '沒有可用專案', + 'settings.skills.catalog.installSkill.field.chooseProjectPlaceholder': '選擇專案', + 'settings.skills.catalog.installSkill.actions.install': '安裝', + 'settings.skills.catalog.installSkill.actions.installing': '安裝中...', + 'settings.skills.catalog.installSkill.toast.installed': 'Skill 安裝成功', + 'settings.skills.catalog.installSkill.toast.authRequired': '需要驗證', + 'settings.skills.catalog.installSkill.toast.installFailed': '安裝 skill 失敗', + 'settings.skills.catalog.add.title': '新增 skills 目錄', + 'settings.skills.catalog.add.descriptionPrefix': '將 Git 儲存庫新增為新的目錄來源。OpenChamber 會掃描其中包含', + 'settings.skills.catalog.add.descriptionSuffix': '的資料夾。', + 'settings.skills.catalog.add.field.catalogName': '目錄名稱', + 'settings.skills.catalog.add.field.catalogNamePlaceholder': '例如 Team Skills', + 'settings.skills.catalog.add.field.repository': '儲存庫', + 'settings.skills.catalog.add.field.optionalSubpath': '可選子路徑', + 'settings.skills.catalog.add.field.repositoryHint': '公開儲存庫在所有環境可用。私有儲存庫需要 SSH 身分(僅限 Desktop/Web)。', + 'settings.skills.catalog.add.scanResult': '掃描結果:找到 {count} 個 skill(s)', + 'settings.skills.catalog.add.duplicateMessage': '該目錄已新增。', + 'settings.skills.catalog.add.actions.addCatalog': '新增目錄', + 'settings.skills.catalog.add.toast.repositoryRequired': '儲存庫來源為必填項', + 'settings.skills.catalog.add.toast.authenticationRequiredScan': '需要驗證。請選擇 Git 身分後再掃描。', + 'settings.skills.catalog.add.toast.scanFailed': '掃描儲存庫失敗', + 'settings.skills.catalog.add.toast.noSkillsFound': '該儲存庫中找不到 skills', + 'settings.skills.catalog.add.toast.catalogNameRequired': '目錄名稱為必填項', + 'settings.skills.catalog.add.toast.scanBeforeAdd': '請先掃描儲存庫再新增目錄', + 'settings.skills.catalog.add.toast.catalogAlreadyExists': '該目錄已存在', + 'settings.skills.catalog.add.toast.catalogAdded': '目錄已新增', + 'settings.skills.catalog.add.toast.saveFailed': '儲存目錄失敗', + 'settings.skills.catalog.installFromRepo.title': '從 Git 儲存庫安裝', + 'settings.skills.catalog.installFromRepo.descriptionPrefix': '掃描儲存庫中包含', + 'settings.skills.catalog.installFromRepo.descriptionSuffix': '的資料夾,然後安裝選中的 skills。', + 'settings.skills.catalog.installFromRepo.repositoryHintPrefix': '對於 GitHub 簡寫,你可以新增子路徑,例如', + 'settings.skills.catalog.installFromRepo.authDescription': '選擇一個可存取該儲存庫的 Git 身分(SSH 金鑰)。', + 'settings.skills.catalog.installFromRepo.empty.noScanResultsTitle': '暫無掃描結果', + 'settings.skills.catalog.installFromRepo.empty.noScanResultsDescription': '掃描儲存庫以發現 skills', + 'settings.skills.catalog.installFromRepo.actions.selectAll': '全選', + 'settings.skills.catalog.installFromRepo.actions.selectNone': '全不選', + 'settings.skills.catalog.installFromRepo.actions.installSelected': '安裝所選', + 'settings.skills.catalog.installFromRepo.badge.installed': '已安裝({scope}/{source})', + 'settings.skills.catalog.installFromRepo.selectedCount': '已選:{selected} / {total}', + 'settings.skills.catalog.installFromRepo.toast.authenticationRequiredScan': '需要驗證。請選擇 Git 身分後再掃描。', + 'settings.skills.catalog.installFromRepo.toast.authenticationRequiredInstall': '需要驗證。請選擇 Git 身分後再安裝。', + 'settings.skills.catalog.installFromRepo.toast.scanFailed': '掃描儲存庫失敗', + 'settings.skills.catalog.installFromRepo.toast.selectAtLeastOne': '請至少選擇一個要安裝的 skill', + 'settings.skills.catalog.installFromRepo.toast.installedCount': '已安裝 {count} 個 skill(s)', + 'settings.skills.catalog.installFromRepo.toast.installCompleted': '安裝完成', + 'settings.skills.catalog.installFromRepo.toast.installFailed': '安裝 skills 失敗', + 'settings.skills.catalog.page.mode.manual': '手動', + 'settings.skills.catalog.page.mode.external': '外部', + 'settings.skills.catalog.page.title': 'Skills 目錄', + 'settings.skills.catalog.page.section.sourceRepository': '來源儲存庫', + 'settings.skills.catalog.page.field.selectSourcePlaceholder': '選擇來源', + 'settings.skills.catalog.page.actions.refreshTitle': '重新整理', + 'settings.skills.catalog.page.actions.removeCatalogTitle': '移除目錄', + 'settings.skills.catalog.page.actions.addCatalog': '新增目錄', + 'settings.skills.catalog.page.actions.removeCatalog': '移除目錄', + 'settings.skills.catalog.page.actions.loadMoreSkills': '載入更多 Skills', + 'settings.skills.catalog.page.loading.catalog': '載入中...', + 'settings.skills.catalog.page.loading.skills': '正在載入 skills...', + 'settings.skills.catalog.page.loading.more': '載入中...', + 'settings.skills.catalog.page.foundCount': '找到 {count} 個 skill(s)', + 'settings.skills.catalog.page.error.catalogTitle': '目錄錯誤', + 'settings.skills.catalog.page.empty.noSkillsTitle': '找不到 skills', + 'settings.skills.catalog.page.empty.noSkillsDescription': '請嘗試其他搜尋條件或重新整理目錄', + 'settings.skills.catalog.page.badge.installed': '已安裝({scope})', + 'settings.skills.catalog.page.badge.notInstallable': '不可安裝', + 'settings.skills.catalog.page.badge.unknown': '未知', + 'settings.skills.catalog.page.byOwnerPrefix': '作者', + 'settings.skills.catalog.page.removeDialog.title': '移除目錄', + 'settings.skills.catalog.page.removeDialog.description': '確定要移除此目錄嗎?', + 'settings.openchamber.passkeys.title': 'Passkeys', + 'settings.openchamber.passkeys.field.currentDevice': '目前裝置', + 'settings.openchamber.passkeys.actions.add': '新增 passkey', + 'settings.openchamber.passkeys.actions.cancelSetup': '取消 passkey 設定', + 'settings.openchamber.passkeys.actions.signOutEverywhere': '全部登出', + 'settings.openchamber.passkeys.actions.signingOut': '正在登出…', + 'settings.openchamber.passkeys.actions.removing': '移除中…', + 'settings.openchamber.passkeys.state.uiPasswordRequired': '僅在啟用 UI 密碼鎖後可使用 passkey。', + 'settings.openchamber.passkeys.state.loading': '正在載入 passkey…', + 'settings.openchamber.passkeys.state.noneSaved': '此主機尚未儲存 passkey。', + 'settings.openchamber.passkeys.item.lastUsed': '上次使用 {time}', + 'settings.openchamber.passkeys.item.added': '新增於 {time}', + 'settings.openchamber.passkeys.time.neverUsed': '從未使用', + 'settings.openchamber.passkeys.toast.loadFailed': '無法載入 passkey。', + 'settings.openchamber.passkeys.toast.enableUiPasswordFirst': '請先啟用 UI 密碼鎖再新增 passkey。', + 'settings.openchamber.passkeys.toast.added': 'passkey 已新增', + 'settings.openchamber.passkeys.toast.setupCanceled': 'passkey 設定已取消', + 'settings.openchamber.passkeys.toast.addFailed': '無法新增 passkey。', + 'settings.openchamber.passkeys.toast.removed': 'passkey 已移除', + 'settings.openchamber.passkeys.toast.removeFailed': '無法移除 passkey。', + 'settings.openchamber.passkeys.toast.clearAuthFailed': '無法清除已儲存的驗證資訊。', + 'settings.openchamber.sessionRetention.title': '工作階段保留', + 'settings.openchamber.sessionRetention.tooltip': '根據最後活動時間自動封存或刪除閒置工作階段。會保留最近 5 個工作階段。', + 'settings.openchamber.sessionRetention.field.enableAutoCleanupAria': '啟用自動清理', + 'settings.openchamber.sessionRetention.field.enableAutoCleanup': '啟用自動清理', + 'settings.openchamber.sessionRetention.field.retentionPeriod': '保留時長', + 'settings.openchamber.sessionRetention.field.retentionPeriodAria': '按天設定保留時長', + 'settings.openchamber.sessionRetention.field.days': '天', + 'settings.openchamber.sessionRetention.field.whenSessionsExpire': '工作階段過期時', + 'settings.openchamber.sessionRetention.actions.resetRetentionAria': '重設保留時長', + 'settings.openchamber.sessionRetention.actions.runCleanupNow': '立即執行清理', + 'settings.openchamber.sessionRetention.actions.cleaningUp': '清理中...', + 'settings.openchamber.sessionRetention.action.archive': '封存', + 'settings.openchamber.sessionRetention.action.delete': '刪除', + 'settings.openchamber.sessionRetention.manualCleanup.title': '手動清理', + 'settings.openchamber.sessionRetention.manualCleanup.eligibleArchiveNow': '目前可封存:{count}', + 'settings.openchamber.sessionRetention.manualCleanup.eligibleDeleteNow': '目前可刪除:{count}', + 'settings.openchamber.sessionRetention.toast.noneEligibleArchive': '沒有可封存的工作階段', + 'settings.openchamber.sessionRetention.toast.noneEligibleDelete': '沒有可刪除的工作階段', + 'settings.openchamber.sessionRetention.toast.archivedCount': '已封存 {count} 個工作階段', + 'settings.openchamber.sessionRetention.toast.deletedCount': '已刪除 {count} 個工作階段', + 'settings.openchamber.sessionRetention.toast.failedArchiveCount': '封存 {count} 個工作階段失敗', + 'settings.openchamber.sessionRetention.toast.failedDeleteCount': '刪除 {count} 個工作階段失敗', + 'settings.openchamber.desktopNetwork.title': '桌面端網路存取', + 'settings.openchamber.desktopNetwork.field.allowLanAccessAria': '允許桌面 sidecar 區域網路存取', + 'settings.openchamber.desktopNetwork.field.allowLanAccess': '允許你本機網路中的其他裝置開啟此應用程式', + 'settings.openchamber.desktopNetwork.field.allowLanAccessDescription': '會重新啟動應用程式,以便手機、平板和同一 Wi‑Fi 下的其他電腦存取。', + 'settings.openchamber.desktopNetwork.field.warning': '警告:啟用後,同一區域網路中的任何人都可存取此應用程式。', + 'settings.openchamber.desktopNetwork.hint.openAfterRestart': '重新啟動後可在其他裝置開啟:', + 'settings.openchamber.desktopNetwork.hint.openNow': '可在其他裝置開啟:', + 'settings.openchamber.desktopNetwork.actions.saveAndRestart': '儲存並重新啟動', + 'settings.openchamber.desktopNetwork.error.loadFailed': '載入桌面設定失敗', + 'settings.openchamber.desktopNetwork.error.saveFailed': '儲存桌面設定失敗', + 'settings.openchamber.desktopNetwork.error.savedRestartFailed': '已儲存,但重新啟動應用程式失敗', + 'settings.openchamber.opencodeCli.title': 'OpenCode CLI', + 'settings.openchamber.opencodeCli.tooltipPrefix': '可選的', + 'settings.openchamber.opencodeCli.tooltipSuffix': '二進位檔絕對路徑。', + 'settings.openchamber.opencodeCli.field.binaryPath': 'OpenCode 可執行檔路徑', + 'settings.openchamber.opencodeCli.field.binaryPathPlaceholder': '/Users/you/.bun/bin/opencode', + 'settings.openchamber.opencodeCli.field.showUpdateNotifications': '顯示 OpenCode 更新通知', + 'settings.openchamber.opencodeCli.field.showUpdateNotificationsAria': '顯示 OpenCode 更新通知', + 'settings.openchamber.opencodeCli.actions.browseAria': '瀏覽 OpenCode 可執行檔路徑', + 'settings.openchamber.opencodeCli.actions.browse': '瀏覽', + 'settings.openchamber.opencodeCli.actions.saveAndReload': '儲存並重新載入', + 'settings.openchamber.opencodeCli.actions.restartingOpenCode': '正在重新啟動 OpenCode…', + 'settings.openchamber.opencodeCli.dialog.selectBinaryTitle': '選擇 OpenCode 可執行檔', + 'settings.openchamber.opencodeCli.tipPrefix': '提示:你也可以使用', + 'settings.openchamber.opencodeCli.tipMiddle': '環境變數,但此設定會持久化到', + 'settings.mcp.sidebar.title': 'MCP 伺服器', + 'settings.mcp.sidebar.total': '總計 {count}', + 'settings.mcp.sidebar.actions.refreshStatusAria': '重新整理 MCP 狀態', + 'settings.mcp.sidebar.actions.refreshStatusTitle': '重新整理 MCP 狀態', + 'settings.mcp.sidebar.actions.addServerTitle': '新增 MCP 伺服器', + 'settings.mcp.sidebar.actions.deleting': '刪除中…', + 'settings.mcp.sidebar.empty.title': '未設定 MCP 伺服器', + 'settings.mcp.sidebar.empty.description': '使用上方 + 按鈕新增一個', + 'settings.mcp.sidebar.group.projectServers': '專案伺服器', + 'settings.mcp.sidebar.group.userServers': '使用者伺服器', + 'settings.mcp.sidebar.serverType.localTitle': '本機伺服器', + 'settings.mcp.sidebar.serverType.remoteTitle': '遠端伺服器', + 'settings.mcp.sidebar.deleteDialog.title': '刪除 MCP 伺服器', + 'settings.mcp.sidebar.deleteDialog.descriptionPrefix': '確定要刪除「{name}」嗎?這會將它從下列檔案中移除', + 'settings.mcp.sidebar.toast.deleteFailed': '刪除 MCP 伺服器失敗', + 'settings.mcp.sidebar.toast.serverDeleted': 'MCP 伺服器「{name}」已刪除', + 'settings.mcp.sidebar.toast.refreshListIfStale': '如果介面看起來未更新,請重新整理 MCP 列表。', + 'settings.openchamber.keyboardShortcuts.title': '鍵盤快速鍵', + 'settings.openchamber.keyboardShortcuts.actions.resetAll': '全部重設', + 'settings.openchamber.keyboardShortcuts.actions.overwrite': '覆寫', + 'settings.openchamber.keyboardShortcuts.tooltip': '錄入新的按鍵組合並儲存,綁定會立即生效。', + 'settings.openchamber.keyboardShortcuts.overwritePrompt': '該組合已被其他快速鍵使用。是否覆寫並清除原對應?', + 'settings.openchamber.keyboardShortcuts.field.pressKeys': '按下按鍵...', + 'settings.openchamber.keyboardShortcuts.error.captureFirst': '請先錄入一個快速鍵。', + 'settings.openchamber.keyboardShortcuts.warning.riskyBrowserShortcut': '該快速鍵可能與瀏覽器預設快速鍵衝突,但仍已儲存。', + 'settings.openchamber.keyboardShortcuts.action.open_go_to_line.label': '跳轉到行(檔案編輯器)', + 'settings.openchamber.keyboardShortcuts.action.open_command_palette.label': '開啟命令面板', + 'settings.openchamber.keyboardShortcuts.action.focus_input.label': '聚焦輸入方塊', + 'settings.openchamber.keyboardShortcuts.action.open_settings.label': '開啟設定', + 'settings.openchamber.keyboardShortcuts.action.toggle_terminal.label': '切換終端機停靠區', + 'settings.openchamber.keyboardShortcuts.action.toggle_terminal_expanded.label': '切換終端機展開', + 'settings.openchamber.keyboardShortcuts.action.toggle_sidebar.label': '切換側邊欄', + 'settings.openchamber.keyboardShortcuts.action.toggle_right_sidebar.label': '切換右側邊欄', + 'settings.openchamber.keyboardShortcuts.action.open_right_sidebar_git.label': '開啟右側邊欄 Git 分頁', + 'settings.openchamber.keyboardShortcuts.action.open_right_sidebar_files.label': '開啟右側邊欄 Files 分頁', + 'settings.openchamber.keyboardShortcuts.action.cycle_right_sidebar_tab.label': '輪換右側邊欄分頁', + 'settings.openchamber.keyboardShortcuts.action.new_chat.label': '新建工作階段', + 'settings.openchamber.keyboardShortcuts.action.new_chat_worktree.label': '新增 worktree 草稿', + 'settings.openchamber.keyboardShortcuts.action.new_mini_chat.label': '新建 Mini Chat 視窗', + 'settings.openchamber.keyboardShortcuts.action.open_help.label': '開啟鍵盤快速鍵', + 'settings.openchamber.keyboardShortcuts.action.toggle_context_plan.label': '切換上下文面板中的計畫', + 'settings.openchamber.keyboardShortcuts.action.toggle_services_menu.label': '切換服務選單', + 'settings.openchamber.keyboardShortcuts.action.cycle_services_tab.label': '輪換服務選單分頁', + 'settings.openchamber.keyboardShortcuts.action.cycle_theme.label': '輪換主題', + 'settings.openchamber.keyboardShortcuts.action.cycle_agent.label': '輪換 agent', + 'settings.openchamber.keyboardShortcuts.action.cycle_favorite_model_forward.label': '向前輪換收藏模型', + 'settings.openchamber.keyboardShortcuts.action.cycle_favorite_model_backward.label': '向後輪換收藏模型', + 'settings.openchamber.keyboardShortcuts.action.expand_input.label': '展開輸入方塊', + 'settings.openchamber.keyboardShortcuts.action.open_timeline_dialog.label': '開啟對話時間軸', + 'settings.projects.sidebar.total': '總計 {count}', + 'settings.projects.sidebar.actions.addProject': '新增專案', + 'settings.projects.page.empty.noProjects': '暫無專案。', + 'settings.projects.page.title.default': '專案設定', + 'settings.projects.page.section.worktree': 'Worktree', + 'settings.projects.page.field.projectName': '專案名稱', + 'settings.projects.page.field.projectNamePlaceholder': '專案名稱', + 'settings.projects.page.field.accentColor': '強調色', + 'settings.projects.page.field.projectIcon': '專案圖示', + 'settings.projects.page.field.projectIconBackgroundAria': '專案圖示背景顏色', + 'settings.projects.page.field.clearIconBackgroundAria': '清除圖示背景', + 'settings.projects.page.field.clearBackground': '清除背景', + 'settings.projects.page.field.none': '無', + 'settings.projects.page.field.preview': '預覽', + 'settings.projects.page.actions.uploadIcon': '上傳圖示', + 'settings.projects.page.actions.uploading': '上傳中...', + 'settings.projects.page.actions.discoverFavicon': '發現網站圖示', + 'settings.projects.page.actions.discovering': '發現中...', + 'settings.projects.page.actions.removeProjectIcon': '移除專案圖示', + 'settings.projects.page.actions.removing': '移除中...', + 'settings.projects.page.actions.undoRemove': '撤銷移除', + 'settings.projects.page.toast.uploadIconFailed': '上傳專案圖示失敗', + 'settings.projects.page.toast.iconUpdated': '專案圖示已更新', + 'settings.projects.page.toast.removeIconFailed': '移除專案圖示失敗', + 'settings.projects.page.toast.iconRemoved': '專案圖示已移除', + 'settings.projects.page.toast.discoverIconFailed': '發現專案圖示失敗', + 'settings.projects.page.toast.customIconAlreadySet': '該專案已設定自訂圖示', + 'settings.projects.page.toast.iconDiscovered': '專案圖示已發現', + 'settings.usage.sidebar.title': '用量', + 'settings.usage.sidebar.total': '總計 {count}', + 'settings.usage.sidebar.actions.toggleAutoRefreshAria': '切換自動重新整理', + 'settings.usage.sidebar.actions.refreshAria': '重新整理用量', + 'settings.usage.sidebar.actions.refreshTitle': '重新整理用量', + 'settings.usage.sidebar.tooltip.autoRefresh': '按設定間隔自動重新整理用量資料', + 'settings.usage.sidebar.field.intervalPlaceholder': '間隔', + 'settings.usage.sidebar.field.display': '顯示', + 'settings.usage.sidebar.field.displayModePlaceholder': '顯示模式', + 'settings.usage.sidebar.field.displayModeUsage': '用量', + 'settings.usage.sidebar.field.displayModeRemaining': '剩餘配額', + 'settings.usage.sidebar.status.notSet': '未設定', + 'settings.usage.page.empty.selectProvider': '選擇一個供應商以查看用量詳情。', + 'settings.usage.page.header.providerUsage': '{provider} 用量', + 'settings.usage.page.header.refreshing': '正在重新整理用量...', + 'settings.usage.page.header.lastUpdated': '最後更新:{time}', + 'settings.usage.page.options.showInHeaderAria': '在頁首選單顯示', + 'settings.usage.page.options.showInHeader': '在頁首選單顯示', + 'settings.usage.page.options.showInHeaderTooltip': '啟用後,該供應商的用量會顯示在應用程式頁首的快速存取下拉選單中。', + 'settings.usage.page.state.noData': '暫無用量資料。', + 'settings.usage.page.state.refreshFailedTitle': '重新整理用量資料失敗', + 'settings.usage.page.state.providerNotConfiguredTitle': '供應商未設定', + 'settings.usage.page.state.providerNotConfiguredDescription': '請在「供應商」分頁新增憑證以啟用用量追蹤。', + 'settings.usage.page.section.modelQuotas': '模型配額', + 'settings.usage.page.section.otherModels': '其他模型', + 'settings.usage.page.state.noQuotaWindowsTitle': '未報告配額視窗', + 'settings.usage.page.state.noQuotaWindowsDescription': '該供應商目前未報告任何速率限制或用量配額。', + 'settings.usage.pace.status.onTrack': '正常', + 'settings.usage.pace.status.slightlyFast': '稍快', + 'settings.usage.pace.status.tooFast': '過快', + 'settings.usage.pace.status.usedUp': '已用盡', + 'settings.usage.pace.predictionTooltip': '基於目前速度預測視窗結束時的用量:{prediction}', + 'settings.usage.pace.wait': '等待 {duration}', + 'settings.usage.pace.prediction': '預測:{prediction}', + 'settings.usage.pace.rate': '速度:{rate}', + 'settings.usage.pace.waitSeparator': ' · 等待 ', + 'settings.usage.pace.predictionLabel': '預測:', + 'settings.remoteInstances.page.title': '遠端執行個體', + 'settings.remoteInstances.page.description': '設定 SSH 連線、遠端服務和連接埠轉送設定。', + 'settings.remoteInstances.page.empty.selectInstance': '選擇一個執行個體以查看和編輯其設定。', + 'settings.remoteInstances.page.empty.noExtraForwards': '尚未設定額外連接埠轉送。', + 'settings.remoteInstances.page.section.actions': '操作', + 'settings.remoteInstances.page.section.actionsDescription': '連線、重新連線、查看紀錄或移除此執行個體。', + 'settings.remoteInstances.page.section.remoteServer': '遠端服務', + 'settings.remoteInstances.page.section.remoteServerDescription': 'OpenChamber 在遠端主機上的管理與啟動方式。', + 'settings.remoteInstances.page.section.mainTunnel': '主 tunnel', + 'settings.remoteInstances.page.section.mainTunnelDescription': '該遠端執行個體的主本機存取端點。', + 'settings.remoteInstances.page.section.authentication': '驗證', + 'settings.remoteInstances.page.section.authenticationDescription': 'SSH 和遠端 OpenChamber UI 的可選憑證。', + 'settings.remoteInstances.page.section.portForwards': '連接埠轉送', + 'settings.remoteInstances.page.section.portForwardsDescription': '除主 tunnel 外的額外 SSH 轉送。', + 'settings.remoteInstances.page.field.sshCommand': 'SSH 命令', + 'settings.remoteInstances.page.field.sshCommandPlaceholder': 'ssh user@host', + 'settings.remoteInstances.page.field.nickname': '暱稱', + 'settings.remoteInstances.page.field.nicknamePlaceholder': '我的遠端主機', + 'settings.remoteInstances.page.field.connectionTimeoutSeconds': '連線超時(秒)', + 'settings.remoteInstances.page.field.installMethod': '安裝方式', + 'settings.remoteInstances.page.field.installMethodHint': '在 managed 模式下 OpenChamber 的安裝方式。', + 'settings.remoteInstances.page.field.selectInstallMethodPlaceholder': '選擇安裝方式', + 'settings.remoteInstances.page.field.installMethodDownloadRelease': '下載發行版本', + 'settings.remoteInstances.page.field.installMethodUploadBundle': '上傳安裝套件', + 'settings.remoteInstances.page.field.selectBindHostPlaceholder': '選擇綁定主機', + 'settings.remoteInstances.page.field.sshPasswordOptional': 'SSH 密碼(可選)', + 'settings.remoteInstances.page.field.sshPasswordPlaceholder': '輸入 SSH 密碼', + 'settings.remoteInstances.page.field.uiPasswordOptional': 'UI 密碼(可選)', + 'settings.remoteInstances.page.field.uiPasswordPlaceholder': '輸入 UI 密碼', + 'settings.remoteInstances.page.field.forwardTypeHint': '選擇本機(-L)、遠端(-R)或動態(-D)轉送。', + 'settings.remoteInstances.page.field.typePlaceholder': '類型', + 'settings.remoteInstances.page.forwardType.local': '本機(-L)', + 'settings.remoteInstances.page.forwardType.remote': '遠端(-R)', + 'settings.remoteInstances.page.forwardType.dynamic': '動態(-D)', + 'settings.remoteInstances.page.forwardTypeDescription.local': '將本機流量轉送到遠端目標。', + 'settings.remoteInstances.page.forwardTypeDescription.remote': '暴露遠端端點並回傳到本機機器。', + 'settings.remoteInstances.page.forwardTypeDescription.dynamic': '透過 SSH 建立本機 SOCKS5 Proxy。', + 'settings.remoteInstances.page.actions.create': '建立', + 'settings.remoteInstances.page.actions.cancel': '取消', + 'settings.remoteInstances.page.actions.connecting': '連線中...', + 'settings.remoteInstances.page.actions.reconnecting': '重新連線中...', + 'settings.remoteInstances.page.actions.reconnectNow': '立即重新連線', + 'settings.remoteInstances.page.actions.logs': 'SSH 紀錄', + 'settings.remoteInstances.page.actions.pickRandomPort': '隨機連接埠', + 'settings.remoteInstances.page.actions.enableForwardAria': '啟用轉送', + 'settings.remoteInstances.page.actions.openLocal': '開啟本機', + 'settings.remoteInstances.page.actions.addForward': '新增轉送', + 'settings.remoteInstances.page.import.sectionTitle': '從 SSH 設定匯入', + 'settings.remoteInstances.page.import.loading': '正在載入 SSH 主機...', + 'settings.remoteInstances.page.import.noneFound': '找不到 SSH 主機。', + 'settings.remoteInstances.page.import.noneAvailable': '沒有可匯入的 SSH 主機。', + 'settings.remoteInstances.page.import.patternSuffix': '(模式)', + 'settings.remoteInstances.page.status.currentLocalUrl': '目前本機 URL:', + 'settings.remoteInstances.page.status.reconnectStale': '重新連線似乎卡住了。你可以立即重試。', + 'settings.remoteInstances.page.logsDialog.title': 'SSH 紀錄', + 'settings.remoteInstances.page.logsDialog.loading': '正在載入紀錄...', + 'settings.remoteInstances.page.logsDialog.empty': '暫無 SSH 紀錄。', + 'settings.remoteInstances.page.patternDialog.title': '根據萬用字元模式建立', + 'settings.remoteInstances.page.patternDialog.destinationPlaceholder': 'user@host', + 'settings.remoteInstances.page.phase.resolvingConfiguration': '正在解析設定', + 'settings.remoteInstances.page.phase.checkingAuth': '正在檢查驗證', + 'settings.remoteInstances.page.phase.establishingSsh': '正在建立 SSH 連線', + 'settings.remoteInstances.page.phase.probingRemote': '正在探測遠端主機', + 'settings.remoteInstances.page.phase.installingOpenChamber': '正在安裝 OpenChamber', + 'settings.remoteInstances.page.phase.updatingOpenChamber': '正在更新 OpenChamber', + 'settings.remoteInstances.page.phase.detectingServer': '正在偵測服務', + 'settings.remoteInstances.page.phase.startingServer': '正在啟動服務', + 'settings.remoteInstances.page.phase.forwardingPorts': '正在轉送連接埠', + 'settings.remoteInstances.page.phase.reconnecting': '正在重新連線', + 'settings.remoteInstances.page.confirm.storeSshPasswordPlaintext': '是否將 SSH 密碼以明文儲存到磁碟?', + 'settings.remoteInstances.page.confirm.storeUiPasswordPlaintext': '是否將 UI 密碼以明文儲存到磁碟?', + 'settings.remoteInstances.page.confirm.removeInstance': '要移除此遠端執行個體嗎?', + 'settings.remoteInstances.page.toast.sshCommandRequired': 'SSH 命令為必填項', + 'settings.remoteInstances.page.toast.saveFailed': '儲存執行個體失敗', + 'settings.remoteInstances.page.toast.instanceSaved': '執行個體已儲存', + 'settings.remoteInstances.page.toast.instanceCreated': '執行個體已建立', + 'settings.remoteInstances.page.toast.destinationRequired': '目標地址為必填項', + 'settings.remoteInstances.page.toast.noLogsToCopy': '沒有可複製的紀錄', + 'settings.remoteInstances.page.toast.logsCopied': '紀錄已複製', + 'settings.remoteInstances.page.toast.logsCleared': '紀錄已清除', + 'settings.remoteInstances.page.toast.clearLogsFailed': '清除紀錄失敗', + 'settings.remoteInstances.page.toast.instanceUrlUnavailable': '執行個體 URL 無法使用', + 'settings.remoteInstances.page.toast.connectFailed': '連線執行個體失敗', + 'settings.remoteInstances.page.toast.cancelConnectionFailed': '取消連線失敗', + 'settings.remoteInstances.page.toast.disconnectFailed': '中斷執行個體連線失敗', + 'settings.remoteInstances.page.toast.retryFailed': '重試連線失敗', + 'settings.remoteInstances.page.toast.instanceRemoved': '執行個體已移除', + 'settings.remoteInstances.page.toast.removeInstanceFailed': '移除執行個體失敗', + 'settings.openchamber.worktrees.state.selectProject': '選擇一個專案以管理 worktree。', + 'settings.openchamber.worktrees.state.gitOnly': 'Worktree 設定僅適用於 Git 儲存庫。', + 'settings.openchamber.worktrees.setup.title': '初始化命令', + 'settings.openchamber.worktrees.setup.tooltipPrefix': '建立 worktree 後會在新 worktree 目錄內自動執行。專案根目錄可使用', + 'settings.openchamber.worktrees.setup.tooltipSuffix': '。', + 'settings.openchamber.worktrees.setup.loading': '載入中...', + 'settings.openchamber.worktrees.setup.commandPlaceholder': '例如:bun install', + 'settings.openchamber.worktrees.setup.removeCommandAria': '移除命令', + 'settings.openchamber.worktrees.setup.addCommand': '新增命令', + 'settings.openchamber.worktrees.list.title': '現有 worktree', + 'settings.openchamber.worktrees.list.tooltip': 'Worktree 位於儲存庫外部(由 OpenCode 管理)。刪除 worktree 也會刪除關聯工作階段。', + 'settings.openchamber.worktrees.list.loading': '正在載入 worktree...', + 'settings.openchamber.worktrees.list.empty': '該專案找不到 worktree', + 'settings.openchamber.worktrees.list.detachedHead': '分離 HEAD', + 'settings.openchamber.worktrees.list.deleteWorktreeAria': '刪除 worktree {name}', + 'settings.agents.modelSelector.title': '選擇模型', + 'settings.agents.modelSelector.searchPlaceholder': '搜尋模型', + 'settings.agents.modelSelector.selectPlaceholder': '選擇模型...', + 'settings.agents.modelSelector.notSelected': '未選擇', + 'settings.agents.modelSelector.noModelOptional': '無模型(可選)', + 'settings.agents.modelSelector.section.favorites': '收藏', + 'settings.agents.modelSelector.section.recents': '最近使用', + 'settings.agents.modelSelector.section.recent': '最近', + 'settings.agents.modelSelector.badge.current': '目前', + 'settings.agents.modelSelector.actions.favorite': '收藏', + 'settings.agents.modelSelector.actions.unfavorite': '取消收藏', + 'settings.agents.modelSelector.actions.addToFavorites': '新增到收藏', + 'settings.agents.modelSelector.actions.removeFromFavorites': '從收藏中移除', + 'settings.agents.modelSelector.state.noModelsFound': '找不到模型', + 'settings.agents.modelSelector.keyboardHints': '↑↓ 導覽 • Enter 選擇 • Esc 關閉', + 'settings.providers.sidebar.title': '供應商', + 'settings.providers.sidebar.total': '總計 {count}', + 'settings.providers.sidebar.actions.connectProviderAria': '連線供應商', + 'settings.providers.sidebar.actions.connectProviderTitle': '連線供應商', + 'settings.providers.sidebar.empty.title': '找不到供應商', + 'settings.providers.sidebar.empty.description': '請檢查 OpenCode 設定', + 'settings.providers.sidebar.section.userProviders': '使用者級供應商', + 'settings.providers.sidebar.section.projectProviders': '專案級供應商', + 'settings.providers.page.state.loading': '載入中...', + 'settings.providers.page.state.unableToLoadProviderList': '無法載入供應商列表', + 'settings.providers.page.empty.noProvidersDetected': '未偵測到供應商', + 'settings.providers.page.empty.checkOpenCodeConfiguration': '請檢查 OpenCode 設定', + 'settings.providers.page.empty.selectProviderFromSidebar': '請從側邊欄選擇供應商', + 'settings.providers.page.empty.reviewDetailsAndConfigureAuth': '查看詳情並設定驗證', + 'settings.providers.page.connect.title': '連線供應商', + 'settings.providers.page.connect.selectProviderTitle': '選擇供應商', + 'settings.providers.page.connect.providerField': '供應商', + 'settings.providers.page.connect.selectProviderPlaceholder': '選擇供應商', + 'settings.providers.page.connect.searchProvidersPlaceholder': '搜尋...', + 'settings.providers.page.connect.noProvidersFound': '找不到供應商', + 'settings.providers.page.connect.allProvidersConnected': '所有供應商均已連線。', + 'settings.providers.page.auth.title': '驗證', + 'settings.providers.page.auth.loadingMethods': '正在載入驗證方式...', + 'settings.providers.page.auth.apiKeyLabel': 'API Key', + 'settings.providers.page.auth.apiKeyTooltip': '金鑰將直接送出給 OpenCode,不會由 OpenChamber 儲存。', + 'settings.providers.page.auth.apiKeyPlaceholder': 'sk-...', + 'settings.providers.page.auth.oauthMethodFallback': 'OAuth 方式 {index}', + 'settings.providers.page.auth.pasteAuthorizationCodePlaceholder': '貼上授權碼', + 'settings.providers.page.auth.connected': '已連線', + 'settings.providers.page.auth.useReconnectHint': '· 使用「重新連線」以更新憑證', + 'settings.providers.page.connectionDetails.title': '連線詳情', + 'settings.providers.page.connectionDetails.configuredIn': '設定來源:', + 'settings.providers.page.connectionDetails.noActiveSource': '沒有活動設定來源', + 'settings.providers.page.connectionDetails.source.authCredentials': '驗證憑證', + 'settings.providers.page.connectionDetails.source.userConfig': '使用者設定', + 'settings.providers.page.connectionDetails.source.projectConfig': '專案設定', + 'settings.providers.page.connectionDetails.source.customConfig': '自訂設定', + 'settings.providers.page.models.title': '可用模型', + 'settings.providers.page.models.filterPlaceholder': '篩選模型...', + 'settings.providers.page.models.noModelsMatchFilter': '沒有模型相符此篩選條件。', + 'settings.providers.page.models.capability.toolCalling': '工具呼叫', + 'settings.providers.page.models.capability.reasoning': '推理', + 'settings.providers.page.models.capability.imageInput': '影像輸入', + 'settings.providers.page.models.tokenBadge.context': '上下文', + 'settings.providers.page.models.tokenBadge.output': '輸出', + 'settings.providers.page.models.actions.hideModelFromSelectors': '在選擇器中隱藏模型', + 'settings.providers.page.models.actions.showModelInSelectors': '在選擇器中顯示模型', + 'settings.providers.page.models.actions.hideModel': '隱藏模型', + 'settings.providers.page.models.actions.showModel': '顯示模型', + 'settings.providers.page.actions.saving': '儲存中...', + 'settings.providers.page.actions.saveKey': '儲存金鑰', + 'settings.providers.page.actions.connect': '連線', + 'settings.providers.page.actions.copyCode': '複製程式碼', + 'settings.providers.page.actions.open': '開啟', + 'settings.providers.page.actions.copy': '複製', + 'settings.providers.page.actions.complete': '完成', + 'settings.providers.page.actions.hide': '隱藏', + 'settings.providers.page.actions.reconnect': '重新連線', + 'settings.providers.page.actions.disconnecting': '中斷連線中...', + 'settings.providers.page.actions.disconnect': '中斷連線', + 'settings.providers.page.actions.hideAll': '全部隱藏', + 'settings.providers.page.actions.showAll': '全部顯示', + 'settings.providers.page.toast.authMethodsLoadFailed': '載入供應商驗證方式失敗', + 'settings.providers.page.toast.providerSourcesLoadFailed': '載入供應商來源失敗', + 'settings.providers.page.toast.apiKeyRequired': 'API Key 為必填項', + 'settings.providers.page.toast.apiKeySaveFailed': '儲存 API Key 失敗', + 'settings.providers.page.toast.apiKeySaved': 'API Key 已儲存', + 'settings.providers.page.toast.oauthStartFailed': '啟動 OAuth 流程失敗', + 'settings.providers.page.toast.oauthDetailsMissing': '未回傳 OAuth 詳情', + 'settings.providers.page.toast.completeOAuthInBrowser': '請在瀏覽器中完成 OAuth 流程', + 'settings.providers.page.toast.oauthCompleteFailed': '完成 OAuth 流程失敗', + 'settings.providers.page.toast.oauthCompleted': 'OAuth 連線已完成', + 'settings.providers.page.toast.oauthLinkCopied': 'OAuth 連結已複製', + 'settings.providers.page.toast.oauthLinkCopyFailed': '複製 OAuth 連結失敗', + 'settings.providers.page.toast.deviceCodeCopied': '裝置程式碼已複製', + 'settings.providers.page.toast.deviceCodeCopyFailed': '複製裝置程式碼失敗', + 'settings.providers.page.toast.providerDisconnected': '供應商已中斷連線', + 'settings.providers.page.toast.providerDisconnectFailed': '中斷供應商連線失敗', + 'settings.mcp.page.empty.selectServer': '請從側邊欄選擇一個 MCP 伺服器', + 'settings.mcp.page.empty.addNewOne': '或新增一個新的', + 'settings.mcp.page.header.newServer': '新建 MCP 伺服器', + 'settings.mcp.page.header.configureNewServer': '設定新的 MCP 伺服器', + 'settings.mcp.page.header.transport': '{type} 傳輸', + 'settings.mcp.page.transport.local': '本機 · stdio', + 'settings.mcp.page.transport.remote': '遠端 · SSE', + 'settings.mcp.page.status.label.connected': '已連線', + 'settings.mcp.page.status.label.failed': '失敗', + 'settings.mcp.page.status.label.needsAuth': '需要授權', + 'settings.mcp.page.status.label.needsRegistration': '需要註冊', + 'settings.mcp.page.status.description.connected': '已連線,OpenCode 可發現工具和資源。', + 'settings.mcp.page.status.description.failedDefault': 'OpenCode 無法連線到此 MCP 伺服器。', + 'settings.mcp.page.status.description.needsAuth': '此遠端 MCP 伺服器在連線前需要授權。', + 'settings.mcp.page.status.description.needsClientRegistrationDefault': '此遠端 MCP 伺服器在完成授權前需要用戶端註冊。', + 'settings.mcp.page.status.description.disabled': '此 MCP 伺服器在設定中已停用。', + 'settings.mcp.page.status.description.default': '請重新整理或測試連線以載入即時執行狀態。', + 'settings.mcp.page.status.runtimeStatus': '執行狀態', + 'settings.mcp.page.status.projectScopedTo': '專案作用域:{directory}', + 'settings.mcp.page.status.userScoped': '使用者作用域設定', + 'settings.mcp.page.status.activeProject': '目前專案', + 'settings.mcp.page.actions.connect': '連線', + 'settings.mcp.page.actions.disconnect': '中斷連線', + 'settings.mcp.page.actions.authorize': '授權', + 'settings.mcp.page.actions.reauthorize': '重新授權', + 'settings.mcp.page.actions.clearAuth': '清除授權', + 'settings.mcp.page.actions.test': '測試', + 'settings.mcp.page.actions.testConnection': '測試連線', + 'settings.mcp.page.actions.working': '處理中...', + 'settings.mcp.page.actions.starting': '啟動中...', + 'settings.mcp.page.actions.clearing': '清除中...', + 'settings.mcp.page.actions.testing': '測試中...', + 'settings.mcp.page.actions.completing': '完成中...', + 'settings.mcp.page.actions.completeAuthorization': '完成授權', + 'settings.mcp.page.actions.openInBrowser': '在瀏覽器中開啟', + 'settings.mcp.page.actions.copyLink': '複製連結', + 'settings.mcp.page.actions.deleting': '刪除中…', + 'settings.mcp.page.auth.authorizationUrl': '授權 URL', + 'settings.mcp.page.auth.manualFallbackTitle': '手動授權回退', + 'settings.mcp.page.auth.manualFallbackDescription': '如果瀏覽器跳轉到了其他機器,或顯示了帶 code 的回呼 URL,請在這裡貼上完整 URL 或原始 code。', + 'settings.mcp.page.auth.callbackInputPlaceholder': '貼上回呼 URL 或授權程式碼', + 'settings.mcp.page.auth.waitingForOpenCode': '正在等待 OpenCode 識別瀏覽器中已完成的授權流程...', + 'settings.mcp.page.server.title': '伺服器', + 'settings.mcp.page.server.name': '伺服器名稱', + 'settings.mcp.page.server.namePlaceholder': 'my-mcp-server', + 'settings.mcp.page.server.importJson': '從 JSON 片段匯入', + 'settings.mcp.page.server.importJsonTitle': '從 JSON 片段匯入完整 MCP 伺服器設定', + 'settings.mcp.page.server.enable': '啟用伺服器', + 'settings.mcp.page.server.enableAria': '啟用伺服器', + 'settings.mcp.page.server.transportMode': '傳輸模式', + 'settings.mcp.page.connection.command': '命令', + 'settings.mcp.page.connection.serverUrl': '伺服器 URL', + 'settings.mcp.page.connection.serverUrlPlaceholder': 'https://mcp.example.com/mcp', + 'settings.mcp.page.connection.pasteCommand': '貼上命令', + 'settings.mcp.page.connection.pasteCommandTitle': '從剪貼簿貼上本機命令並自動拆分', + 'settings.mcp.page.connection.previewArgs': '預覽({count} 個參數)', + 'settings.mcp.page.advanced.title': '遠端進階選項', + 'settings.mcp.page.advanced.configure': '設定進階選項', + 'settings.mcp.page.advanced.autoDetect': '自動偵測', + 'settings.mcp.page.advanced.custom': '自訂', + 'settings.mcp.page.advanced.headers': 'headers', + 'settings.mcp.page.advanced.timeoutMs': '超時(毫秒)', + 'settings.mcp.page.advanced.timeoutHint': '留空以使用 OpenCode 的預設 MCP 超時。', + 'settings.mcp.page.advanced.requestHeaders': 'Request Headers', + 'settings.mcp.page.advanced.headerNamePlaceholder': 'Header-Name', + 'settings.mcp.page.advanced.pasteHeaders': '貼上 headers', + 'settings.mcp.page.advanced.pasteHeadersTitle': '從剪貼簿貼上 KEY=VALUE header', + 'settings.mcp.page.advanced.oauthAutoDetection': '啟用 OAuth 自動偵測', + 'settings.mcp.page.advanced.oauthAutoDetectionAria': '啟用 OAuth 自動偵測', + 'settings.mcp.page.advanced.oauthClientIdPlaceholder': 'OAuth 用戶端 ID', + 'settings.mcp.page.advanced.oauthClientSecretPlaceholder': 'OAuth 用戶端金鑰', + 'settings.mcp.page.advanced.oauthScopesPlaceholder': 'Scopes(空格分隔)', + 'settings.mcp.page.advanced.oauthRedirectUriPlaceholder': '重新導向 URI', + 'settings.mcp.page.advanced.oauthHint': '將這些欄位留空可讓 OpenCode 從 MCP 伺服器推斷 OAuth 設定。', + 'settings.mcp.page.advanced.oauthCallbackHint': '當重新導向 URI 為空時,瀏覽器 MCP 授權會使用以下回呼 URL:', + 'settings.mcp.page.env.title': '環境變數', + 'settings.mcp.page.env.key': '鍵', + 'settings.mcp.page.env.value': '值', + 'settings.mcp.page.env.valuePlaceholder': 'value', + 'settings.mcp.page.env.hide': '隱藏', + 'settings.mcp.page.env.show': '顯示', + 'settings.mcp.page.env.addVariable': '新增變數', + 'settings.mcp.page.env.addEnvironmentVariable': '新增環境變數', + 'settings.mcp.page.env.keyPlaceholder': 'API_KEY', + 'settings.mcp.page.env.pasteEnv': '貼上 .env', + 'settings.mcp.page.env.pasteEnvTitle': '從剪貼簿貼上 KEY=VALUE 行', + 'settings.mcp.page.env.plainTextWarning': '⚠ 值將以明文儲存在 opencode.json 中', + 'settings.mcp.page.env.removeVariableAria': '移除變數', + 'settings.mcp.page.importDialog.title': '匯入 JSON 片段', + 'settings.mcp.page.importDialog.description': '從文件或其他設定檔貼上完整 MCP JSON 片段。解析後的值將填入此表單,儲存前可先檢查。', + 'settings.mcp.page.importDialog.pasteFromClipboard': '從剪貼簿貼上 JSON', + 'settings.mcp.page.deleteDialog.title': '刪除「{name}」?', + 'settings.mcp.page.deleteDialog.descriptionPrefix': '這會從下列檔案中移除此伺服器:', + 'settings.mcp.page.deleteDialog.descriptionSuffix': 'OpenCode 需要重新載入。', + 'settings.mcp.page.toast.clipboardReadFailed': '無法讀取剪貼簿', + 'settings.mcp.page.toast.configImported': 'MCP 設定已匯入', + 'settings.mcp.page.toast.nameRequired': '名稱為必填項', + 'settings.mcp.page.toast.serverNameExists': '已存在同名伺服器', + 'settings.mcp.page.toast.localCommandRequired': '本機伺服器的命令不可為空', + 'settings.mcp.page.toast.remoteUrlRequired': '遠端伺服器的 URL 不可為空', + 'settings.mcp.page.toast.serverCreatedReloadFailed': 'MCP 伺服器已建立,但 OpenCode 重新載入失敗。', + 'settings.mcp.page.toast.savedReloadFailed': '已儲存,但 OpenCode 重新載入失敗。', + 'settings.mcp.page.toast.retryRefreshHint': '請重試重新整理或重新開啟設定後再授權該伺服器。', + 'settings.mcp.page.toast.serverCreatedReloading': 'MCP 伺服器已建立。OpenCode 正在重新載入…', + 'settings.mcp.page.toast.savedReloading': '已儲存。OpenCode 正在重新載入…', + 'settings.mcp.page.toast.saveFailed': '儲存失敗', + 'settings.mcp.page.toast.unexpectedError': '發生錯誤', + 'settings.mcp.page.toast.serverDeletedReloadFailed': '「{name}」已刪除,但 OpenCode 重新載入失敗', + 'settings.mcp.page.toast.refreshListIfStale': '如果介面看起來未更新,請重新整理 MCP 列表。', + 'settings.mcp.page.toast.serverDeleted': '「{name}」已刪除', + 'settings.mcp.page.toast.deleteFailed': '刪除失敗', + 'settings.mcp.page.toast.disconnected': '已中斷連線', + 'settings.mcp.page.toast.connected': '已連線', + 'settings.mcp.page.toast.connectionNeedsAuthorization': '連線需要授權', + 'settings.mcp.page.toast.connectionNeedsClientRegistration': '連線需要用戶端註冊', + 'settings.mcp.page.toast.connectionFailed': '連線失敗', + 'settings.mcp.page.toast.connectionAttemptFinished': '連線嘗試已完成。請重新整理狀態查看詳情。', + 'settings.mcp.page.toast.createServerBeforeLiveActions': '請先建立伺服器再執行即時操作', + 'settings.mcp.page.toast.saveBeforeLiveActions': '請先儲存變更再執行即時操作', + 'settings.mcp.page.toast.refreshStatusFailed': '重新整理 MCP 狀態失敗', + 'settings.mcp.page.toast.oauthRedirectUrlBuildFailed': '無法建構 MCP OAuth 重新導向 URL', + 'settings.mcp.page.toast.oauthBrowserCallbackSaveFailed': '儲存 MCP 授權瀏覽器回呼 URL 失敗', + 'settings.mcp.page.toast.openCodeReloadFailedAfterCallbackSave': '儲存瀏覽器回呼 URL 後 OpenCode 重新載入失敗', + 'settings.mcp.page.toast.completeAuthorizationInBrowserWithPaste': '請在瀏覽器中完成 MCP 授權流程,然後在這裡貼上回傳的 code 或回呼 URL', + 'settings.mcp.page.toast.completeAuthorizationInBrowser': '請在瀏覽器中完成 MCP 授權流程', + 'settings.mcp.page.toast.openAuthorizationUrlFailed': '無法自動開啟授權 URL', + 'settings.mcp.page.toast.authorizationStartFailed': '啟動授權失敗', + 'settings.mcp.page.toast.authSessionExpired': '授權工作階段已過期或在重新載入時被清除。請再次點擊「授權」。', + 'settings.mcp.page.toast.savedAuthorizationRemoved': '已儲存的 MCP 授權已移除', + 'settings.mcp.page.toast.clearAuthorizationFailed': '清除授權失敗', + 'settings.mcp.page.toast.authorizationUrlCopied': '授權 URL 已複製', + 'settings.mcp.page.toast.authorizationUrlCopyFailed': '複製授權 URL 失敗', + 'settings.mcp.page.toast.pasteCallbackOrCodeFirst': '請先貼上回呼 URL 或授權程式碼', + 'settings.mcp.page.toast.missingServerDetails': '缺少 MCP 伺服器資訊。請重新選擇伺服器或貼上完整回呼 URL。', + 'settings.mcp.page.toast.authorizationCompleted': 'MCP 授權已完成', + 'settings.mcp.page.toast.authorizationCompletedFor': '已為 {name} 完成 MCP 授權', + 'settings.mcp.page.toast.authorizationCompleteFailed': '完成 MCP 授權失敗', + 'settings.mcp.page.toast.enableServerBeforeTest': '測試連線前請先啟用該伺服器', + 'settings.mcp.page.toast.connectionTestSucceeded': '連線測試成功', + 'settings.mcp.page.toast.connectionTestFailed': '連線測試失敗', + 'settings.mcp.page.toast.connectionTestFinished': '連線測試已完成。請重新整理狀態查看詳情。', + 'settings.mcp.page.toast.authorizationFailed': '授權失敗', + 'settings.mcp.page.toast.authorizationStillInProgress': '瀏覽器中的授權仍在進行中。如有需要請貼上回呼 URL 或程式碼。', + 'settings.mcp.page.toast.noKeyValuePairsFound': '剪貼簿中找不到 KEY=VALUE 對', + 'settings.mcp.page.toast.importedVariablesCount': '已匯入變數:{count}', + 'settings.mcp.page.toast.pastedArgumentsCount': '已貼上參數:{count}', + 'settings.shared.projectSelector.fallbackProject': '專案', + 'settings.shared.projectSelector.switchProjectAria': '切換專案', + 'settings.shared.projectSelector.switchProjectTitle': '切換專案', + 'settings.openchamber.defaults.title': '工作階段預設值', + 'settings.openchamber.defaults.summaryPrefix': '新工作階段將預設使用:', + 'settings.openchamber.defaults.summaryOpenCodeDefault': 'OpenCode agent 預設', + 'settings.openchamber.defaults.field.defaultModel': '預設模型', + 'settings.openchamber.defaults.field.defaultThinking': '預設思考模式', + 'settings.openchamber.defaults.field.thinkingPlaceholder': '思考模式', + 'settings.openchamber.defaults.field.defaultAgent': '預設 Agent', + 'settings.openchamber.defaults.field.showDeletionDialogAria': '顯示刪除對話方塊', + 'settings.openchamber.defaults.field.showDeletionDialog': '顯示刪除對話方塊', + 'settings.openchamber.defaults.field.openFilesPreviewAria': '以預覽模式開啟檔案', + 'settings.openchamber.defaults.field.openFilesPreview': '以預覽模式開啟檔案', + 'settings.openchamber.defaults.option.default': '預設', + 'settings.openchamber.defaults.option.defaultLowercase': '預設', + 'settings.openchamber.git.title': 'Git 偏好設定', + 'settings.openchamber.git.changesViewTitle': '變更檢視', + 'settings.openchamber.git.changesViewAria': 'Git 變更檢視模式', + 'settings.openchamber.git.option.flatList': '平面清單', + 'settings.openchamber.git.option.treeView': '樹狀檢視', + 'settings.openchamber.git.optionAria': 'Git 變更檢視模式:{option}', + 'settings.openchamber.git.enableGitmojiAria': '啟用 Gitmoji 選擇器', + 'settings.openchamber.git.enableGitmoji': '啟用 Gitmoji 選擇器', + 'settings.openchamber.git.showGitignoredAria': '顯示已被 gitignore 忽略的檔案', + 'settings.openchamber.git.showGitignored': '顯示 Gitignored 檔案', + 'settings.github.page.tooltip.connectAccount': '連線 GitHub 帳號以在應用程式內處理 PR 和 Issue 工作流程。', + 'settings.github.page.avatarAlt.withLogin': '{login} 頭像', + 'settings.github.page.avatarAlt.fallback': 'GitHub 頭像', + 'settings.github.page.label.unknownUser': '未知', + 'settings.github.page.label.scopes': '作用域:{value}', + 'settings.github.page.label.otherAccounts': '其他帳號', + 'settings.github.page.actions.disconnect': '中斷連線', + 'settings.github.page.actions.connect': '連線 GitHub', + 'settings.github.page.actions.switchTo': '切換到', + 'settings.github.page.actions.addAccount': '新增帳號', + 'settings.github.page.actions.openGithub': '開啟 GitHub', + 'settings.github.page.status.notConnected': '未連線', + 'settings.github.page.status.active': '目前', + 'settings.github.page.flow.title': '授權 OpenChamber', + 'settings.github.page.flow.description': '在 GitHub 中輸入以下程式碼以授權此裝置:', + 'settings.github.page.flow.waiting': '等待批准…(自動重新整理)', + 'settings.github.page.toast.startConnectFailed': '啟動 GitHub 連線失敗', + 'settings.github.page.toast.connected': 'GitHub 已連線', + 'settings.github.page.toast.authorizationFailed': 'GitHub 授權失敗', + 'settings.github.page.toast.disconnected': 'GitHub 已中斷連線', + 'settings.github.page.toast.disconnectFailed': '中斷 GitHub 失敗', + 'settings.github.page.toast.accountSwitched': 'GitHub 帳號已切換', + 'settings.github.page.toast.accountSwitchFailed': '切換 GitHub 帳號失敗', + 'settings.notifications.page.delivery.title': '通知傳遞', + 'settings.notifications.page.delivery.enableAria': '啟用通知', + 'settings.notifications.page.delivery.enableLabel': '啟用通知', + 'settings.notifications.page.delivery.focusedAria': '應用程式聚焦時通知', + 'settings.notifications.page.delivery.focusedLabel': '應用程式聚焦時通知', + 'settings.notifications.page.delivery.testAction': '送出測試通知', + 'settings.notifications.page.delivery.browserPermissionHint': '瀏覽器可能會在首次使用時請求權限。', + 'settings.notifications.page.delivery.permissionDenied': '通知權限被拒絕。請在瀏覽器設定中啟用。', + 'settings.notifications.page.delivery.permissionGrantedButDisabled': '權限已授予,但通知處於關閉狀態。', + 'settings.notifications.page.delivery.vscodeHint': '啟用後,通知將透過 VS Code 原生通知送出。', + 'settings.notifications.page.events.title': '通知事件', + 'settings.notifications.page.events.completionAria': 'Agent 完成', + 'settings.notifications.page.events.completionLabel': 'Agent 完成', + 'settings.notifications.page.events.subtaskAria': 'Subagent 完成', + 'settings.notifications.page.events.subtaskLabel': 'Subagent 完成', + 'settings.notifications.page.events.errorAria': 'Agent 錯誤', + 'settings.notifications.page.events.errorLabel': 'Agent 錯誤', + 'settings.notifications.page.events.questionAria': 'Agent 提問', + 'settings.notifications.page.events.questionLabel': 'Agent 提問', + 'settings.notifications.page.template.title': '通知模板', + 'settings.notifications.page.template.variablesLabel': '變數:', + 'settings.notifications.page.template.event.completion': '完成', + 'settings.notifications.page.template.event.subtask': 'Subagent 完成', + 'settings.notifications.page.template.event.error': '錯誤', + 'settings.notifications.page.template.event.question': '提問', + 'settings.notifications.page.template.field.title': '標題', + 'settings.notifications.page.template.field.message': '訊息', + 'settings.notifications.page.template.defaults.completion.title': '{agent_name} 已完成', + 'settings.notifications.page.template.defaults.completion.message': '{model_name} 已完成任務', + 'settings.notifications.page.template.defaults.error.title': '工具錯誤', + 'settings.notifications.page.template.defaults.error.message': '{last_message}', + 'settings.notifications.page.template.defaults.question.title': '需要輸入', + 'settings.notifications.page.template.defaults.question.message': '{last_message}', + 'settings.notifications.page.template.defaults.subtask.title': '{agent_name} 已完成', + 'settings.notifications.page.template.defaults.subtask.message': '{model_name} 已完成任務', + 'settings.notifications.page.summary.title': 'AI 摘要', + 'settings.notifications.page.summary.toggleAria': '摘要最後一則訊息', + 'settings.notifications.page.summary.toggleLabel': '摘要最後一則訊息', + 'settings.notifications.page.summary.requiresTemplateVariable': '需要在通知模板中包含', + 'settings.notifications.page.summary.modelLabel': '摘要模型', + 'settings.notifications.page.summary.modelTooltip': '用於通知和語音摘要。', + 'settings.notifications.page.summary.notSelected': '未選擇', + 'settings.notifications.page.summary.thresholdLabel': '閾值', + 'settings.notifications.page.summary.thresholdHint': '超過該長度的訊息將被摘要', + 'settings.notifications.page.summary.resetThresholdAria': '重設閾值', + 'settings.notifications.page.summary.lengthLabel': '長度', + 'settings.notifications.page.summary.lengthHint': '摘要目標字元長度', + 'settings.notifications.page.summary.resetLengthAria': '重設摘要長度', + 'settings.notifications.page.summary.maxLengthLabel': '最大長度', + 'settings.notifications.page.summary.maxLengthHint': '將 {last_message} 截斷到該長度', + 'settings.notifications.page.summary.resetMaxLengthAria': '重設最大訊息長度', + 'settings.notifications.page.push.title': '背景推播通知', + 'settings.notifications.page.push.enableAria': '啟用推播通知', + 'settings.notifications.page.push.enableLabel': '啟用推播通知', + 'settings.notifications.page.push.unsupportedHint': '目前不支援推播。桌面 Chrome/Edge 與 Android 支援推播。iOS 需要已安裝 PWA。', + 'settings.notifications.page.push.supportedHint': '透過作業系統背景服務接收提醒', + 'settings.notifications.page.push.loadingAria': '載入中', + 'settings.notifications.page.toast.permissionDenied.title': '通知權限被拒絕', + 'settings.notifications.page.toast.permissionDenied.description': '請在瀏覽器設定中啟用通知。', + 'settings.notifications.page.toast.permissionDenied.enableInBrowser': '請在瀏覽器設定中啟用通知。', + 'settings.notifications.page.toast.requestPermissionFailed': '請求通知權限失敗', + 'settings.notifications.page.toast.notificationsApiUnavailable': '通知 API 不可用', + 'settings.notifications.page.toast.testNotificationSent': '測試通知送出成功', + 'settings.notifications.page.toast.testNotificationFailed': '送出測試通知失敗', + 'settings.notifications.page.toast.pushUnsupported': '不支援推播通知', + 'settings.notifications.page.toast.pushApiUnavailable': '推播 API 不可用', + 'settings.notifications.page.toast.pushKeyLoadFailed': '載入推播金鑰失敗', + 'settings.notifications.page.toast.enableBackgroundFailed': '啟用背景通知失敗', + 'settings.notifications.page.toast.backgroundEnabled': '背景通知已啟用', + 'settings.notifications.page.toast.backgroundDisabled': '背景通知已關閉', + 'settings.notifications.page.testNotification.title': '測試通知', + 'settings.notifications.page.testNotification.body': '這是來自 OpenChamber 的測試通知。', + 'settings.voice.page.section.voiceSetup': '語音設定', + 'settings.voice.page.section.speechRecognition': '語音辨識', + 'settings.voice.page.section.playbackAndSummary': '播放', + 'settings.voice.page.field.enableVoiceModeAria': '啟用語音模式', + 'settings.voice.page.field.enableVoiceMode': '啟用語音模式', + 'settings.voice.page.field.provider': '提供方', + 'settings.voice.page.provider.browser': '瀏覽器', + 'settings.voice.page.provider.custom': '自訂', + 'settings.voice.page.provider.say': 'Say', + 'settings.voice.page.provider.server': '伺服器', + 'settings.voice.page.provider.wasm': '本機', + 'settings.voice.page.stt.wasmModel': 'Whisper 模型', + 'settings.voice.page.stt.wasmLoaded': '模型已載入', + 'settings.voice.page.stt.wasmDownloading': '下載模型中...', + 'settings.voice.page.stt.wasmLoading': '載入模型中...', + 'settings.voice.page.stt.wasmNotLoaded': '模型將在首次使用時下載', + 'settings.voice.page.stt.wasmDownload': '下載', + 'settings.voice.page.stt.wasmRetry': '重試', + 'settings.voice.page.tooltip.browser': '免費、離線,行動裝置支援有限。', + 'settings.voice.page.tooltip.openai': '品質高,行動裝置可用,需要 API Key。', + 'settings.voice.page.tooltip.custom': 'OpenAI 相容伺服器(例如 Kokoro)。', + 'settings.voice.page.tooltip.say': 'macOS 原生。快速、免費、離線。', + 'settings.voice.page.tooltip.sttBrowser': 'Web Speech API(Chrome/Edge)。免費,無須設定。', + 'settings.voice.page.tooltip.sttServer': 'OpenAI 相容 Whisper 伺服器。準確率更高,支援任意語言。', + 'settings.voice.page.field.apiKey': 'API Key', + 'settings.voice.page.field.apiKeyHintUsingConfig': '使用設定中的金鑰', + 'settings.voice.page.field.apiKeyHintRequired': 'OpenAI TTS 需要 API Key', + 'settings.voice.page.field.apiKeyHintProvide': '提供你的 OpenAI Key', + 'settings.voice.page.field.serverUrl': '伺服器 URL', + 'settings.voice.page.field.serverUrlHint': 'OpenAI 相容 TTS 伺服器的基礎 URL', + 'settings.voice.page.field.model': '模型', + 'settings.voice.page.field.voice': '聲音', + 'settings.voice.page.field.voiceIdentifierHint': '伺服器支援的聲音識別碼', + 'settings.voice.page.field.configuredAbove': '已在上方設定', + 'settings.voice.page.actions.preview': '預覽', + 'settings.voice.page.field.selectVoicePlaceholder': '選擇聲音', + 'settings.voice.page.field.auto': '自動', + 'settings.voice.page.field.speechRate': '語速', + 'settings.voice.page.field.speechPitch': '音高', + 'settings.voice.page.field.speechVolume': '音量', + 'settings.voice.page.field.language': '語言', + 'settings.voice.page.field.selectLanguagePlaceholder': '選擇語言', + 'settings.voice.page.field.sttBrowserSupportError': '此瀏覽器不支援 MediaRecorder 或 AudioContext。伺服器 STT 可能無法運作。', + 'settings.voice.page.field.sttServerUrlHint': 'Whisper 相容伺服器的基礎 URL', + 'settings.voice.page.field.sttLanguageHint': 'BCP-47 程式碼(例如 en、fr)。留空為自動偵測。', + 'settings.voice.page.field.silenceThreshold': '靜音閾值', + 'settings.voice.page.field.silenceHold': '靜音保持時長', + 'settings.voice.page.field.transcribeOnStopAria': '停止錄音時轉錄', + 'settings.voice.page.field.transcribeOnStop': '停止時轉錄', + 'settings.voice.page.field.millisecondsUnit': '毫秒', + 'settings.voice.page.field.messageReadAloudButtonAria': '訊息朗讀按鈕', + 'settings.voice.page.field.messageReadAloudButton': '訊息朗讀按鈕', + 'settings.voice.page.field.summarizeBeforePlaybackAria': '播放前摘要', + 'settings.voice.page.field.summarizeBeforePlayback': '播放前摘要', + 'settings.voice.page.field.summarizeVoiceModeResponsesAria': '摘要語音模式回覆', + 'settings.voice.page.field.summarizeVoiceModeResponses': '摘要語音模式回覆', + 'settings.voice.page.field.summarizationThreshold': '摘要閾值', + 'settings.voice.page.field.summaryMaxLength': '摘要最大長度', + 'settings.voice.page.hint.shiftClickPrefix': '按住', + 'settings.voice.page.hint.shiftClickSuffix': '點擊麥克風按鈕可切換連續模式', + 'settings.voice.page.preview.browserVoiceFallback': '你的瀏覽器聲音', + 'settings.voice.page.preview.voiceLine': '你好!我是 {voiceName}。這是我的聲音效果。', + 'settings.voice.page.preview.customServerLine': '你好!這是自訂 TTS 伺服器的預覽。', + 'settings.openchamber.visual.section.colorMode': '顏色模式', + 'settings.openchamber.visual.section.localization': '在地化', + 'settings.openchamber.visual.section.spacingAndLayout': '間距與佈局', + 'settings.openchamber.visual.section.navigation': '導覽', + 'settings.openchamber.visual.section.chatRenderMode': '聊天渲染模式', + 'settings.openchamber.visual.section.chatRenderModeAria': '聊天渲染模式', + 'settings.openchamber.visual.section.messageStreamTransport': '訊息流傳輸方式', + 'settings.openchamber.visual.section.activityDefault': '活動預設狀態', + 'settings.openchamber.visual.section.activityDefaultAria': '活動預設模式', + 'settings.openchamber.visual.section.showToolsOpenedByDefault': '預設展開以下工具:', + 'settings.openchamber.visual.section.userMessageRendering': '使用者訊息渲染', + 'settings.openchamber.visual.section.userMessageRenderingAria': '使用者訊息渲染模式', + 'settings.openchamber.visual.section.mermaidRendering': 'Mermaid 渲染', + 'settings.openchamber.visual.section.mermaidRenderingAria': 'Mermaid 渲染模式', + 'settings.openchamber.visual.section.diffLayout': '差異佈局', + 'settings.openchamber.visual.section.diffLayoutAria': '差異佈局', + 'settings.openchamber.visual.section.diffViewMode': '差異檢視模式', + 'settings.openchamber.visual.section.diffViewModeAria': '差異檢視模式', + 'settings.openchamber.visual.section.privacy': '隱私', + 'settings.openchamber.visual.field.lightTheme': '淺色主題', + 'settings.openchamber.visual.field.darkTheme': '深色主題', + 'settings.openchamber.visual.field.selectLightThemeAria': '選擇淺色主題', + 'settings.openchamber.visual.field.selectDarkThemeAria': '選擇深色主題', + 'settings.openchamber.visual.field.selectThemePlaceholder': '選擇主題', + 'settings.openchamber.visual.field.timeFormat': '時間格式', + 'settings.openchamber.visual.field.weekStartsOn': '一週起始日', + 'settings.openchamber.visual.field.selectTimeFormatAria': '選擇時間格式', + 'settings.openchamber.visual.field.selectWeekStartAria': '選擇一週起始日', + 'settings.openchamber.visual.actions.reloadThemes': '重新載入主題', + 'settings.openchamber.visual.actions.reloadingThemes': '正在重新載入主題...', + 'settings.openchamber.visual.field.themeImportInfoAria': '主題匯入說明', + 'settings.openchamber.visual.field.themeImportInfoTooltip': '從 ~/.config/openchamber/themes/ 匯入自訂主題', + 'settings.openchamber.visual.field.installAppName': '安裝應用程式名稱', + 'settings.openchamber.visual.field.installAppNameHint': '用於 PWA 安裝流程。', + 'settings.openchamber.visual.field.pwaInstallAppNameAria': 'PWA 安裝應用程式名稱', + 'settings.openchamber.visual.actions.resetInstallAppNameAria': '重設安裝應用程式名稱', + 'settings.openchamber.visual.field.installOrientation': '安裝方向', + 'settings.openchamber.visual.field.installOrientationHint': '用於已安裝的 Web 應用程式。變更後請重新安裝 PWA。', + 'settings.openchamber.visual.field.pwaInstallOrientationAria': 'PWA 安裝方向', + 'settings.openchamber.visual.field.selectOrientationPlaceholder': '選擇方向', + 'settings.openchamber.visual.actions.resetInstallOrientationAria': '重設安裝方向', + 'settings.openchamber.visual.field.mobileKeyboardMode': '行動裝置鍵盤行為', + 'settings.openchamber.visual.field.mobileKeyboardModeHint': '預設瀏覽器行為最穩妥。調整內容大小會請求受支援的瀏覽器在鍵盤開啟時縮小應用程式版面配置。', + 'settings.openchamber.visual.field.mobileKeyboardModeAria': '行動裝置鍵盤行為', + 'settings.openchamber.visual.field.selectMobileKeyboardModePlaceholder': '選擇鍵盤行為', + 'settings.openchamber.visual.actions.resetMobileKeyboardModeAria': '重設行動裝置鍵盤行為', + 'settings.openchamber.visual.field.interfaceFontSize': '介面字體大小', + 'settings.openchamber.visual.field.interfaceFont': '介面字體', + 'settings.openchamber.visual.field.selectInterfaceFontAria': '選擇介面字體', + 'settings.openchamber.visual.actions.resetInterfaceFontAria': '重設介面字體', + 'settings.openchamber.visual.field.fontSizePercentageAria': '字體大小百分比', + 'settings.openchamber.visual.actions.resetFontSizeAria': '重設字體大小', + 'settings.openchamber.visual.field.terminalFontSize': '終端機字體大小', + 'settings.openchamber.visual.field.codeFont': '程式碼字體', + 'settings.openchamber.visual.field.selectCodeFontAria': '選擇程式碼字體', + 'settings.openchamber.visual.actions.resetCodeFontAria': '重設程式碼字體', + 'settings.openchamber.visual.actions.resetTerminalFontSizeAria': '重設終端機字體大小', + 'settings.openchamber.visual.field.spacingDensity': '間距密度', + 'settings.openchamber.visual.actions.resetSpacingAria': '重設間距', + 'settings.openchamber.visual.field.inputBarOffset': '輸入列偏移', + 'settings.openchamber.visual.field.inputBarOffsetTooltip': '上移輸入列以避開系統級遮擋(如底部手勢條)。', + 'settings.openchamber.visual.actions.resetInputBarOffsetAria': '重設輸入列偏移', + 'settings.openchamber.visual.field.terminalQuickKeysAria': '終端機快速鍵', + 'settings.openchamber.visual.field.terminalQuickKeys': '終端機快速鍵', + 'settings.openchamber.visual.field.terminalQuickKeysTooltip': '在終端機檢視顯示 Esc、Ctrl、方向鍵', + 'settings.openchamber.visual.field.activityDefaultModeAria': '活動預設模式:{option}', + 'settings.openchamber.visual.field.showExpandedBashToolsAria': '預設展開 Bash 工具', + 'settings.openchamber.visual.field.showExpandedEditToolsAria': '預設展開編輯工具', + 'settings.openchamber.visual.field.bash': 'Bash', + 'settings.openchamber.visual.field.editTools': '編輯工具', + 'settings.openchamber.visual.field.userMessageRenderingAria': '使用者訊息渲染:{option}', + 'settings.openchamber.visual.field.mermaidRenderingAria': 'Mermaid 渲染:{option}', + 'settings.openchamber.visual.field.diffLayoutAria': '差異佈局:{option}', + 'settings.openchamber.visual.field.diffViewModeAria': '差異檢視模式:{option}', + 'settings.openchamber.visual.field.showReasoningTracesAria': '顯示推理軌跡', + 'settings.openchamber.visual.field.showReasoningTraces': '顯示推理軌跡', + 'settings.openchamber.visual.field.collapsibleThinkingBlocksAria': '啟用可摺疊推理區塊', + 'settings.openchamber.visual.field.collapsibleThinkingBlocks': '啟用可摺疊推理區塊', + 'settings.openchamber.visual.field.stickyUserHeaderAria': '固定使用者訊息標頭', + 'settings.openchamber.visual.field.stickyUserHeader': '固定使用者訊息標頭', + 'settings.openchamber.visual.field.wideChatLayoutAria': '寬聊天佈局', + 'settings.openchamber.visual.field.wideChatLayout': '寬聊天佈局', + 'settings.openchamber.visual.field.showSplitAssistantMessageActionsAria': '行內助理操作', + 'settings.openchamber.visual.field.showSplitAssistantMessageActions': '行內助理操作', + 'settings.openchamber.visual.field.showSplitAssistantMessageActionsTooltip': '在同一則回覆中,如果助理文字區塊後方還有工具呼叫,則顯示「複製回答」「儲存為圖片」和「朗讀」操作。', + 'settings.openchamber.visual.field.showToolFileIconsAria': '顯示工具檔案圖示', + 'settings.openchamber.visual.field.showToolFileIcons': '顯示工具檔案圖示', + 'settings.openchamber.visual.field.showMobileStatusBarAria': '顯示行動裝置狀態列', + 'settings.openchamber.visual.field.showMobileStatusBar': '顯示行動裝置狀態列', + 'settings.openchamber.visual.field.showDotfilesAria': '顯示點檔案', + 'settings.openchamber.visual.field.showDotfiles': '顯示點檔案', + 'settings.openchamber.visual.field.queueMessagesByDefaultAria': '預設排隊訊息', + 'settings.openchamber.visual.field.queueMessagesByDefault': '預設排隊訊息', + 'settings.openchamber.visual.field.queueMessagesByDefaultTooltip': '啟用後,按 Enter 會將訊息加入佇列。使用 {modifier}+Enter 直接送出。', + 'settings.openchamber.visual.field.persistDraftMessagesAria': '保留草稿訊息', + 'settings.openchamber.visual.field.persistDraftMessages': '保留草稿訊息', + 'settings.openchamber.visual.field.enableSpellcheckInTextInputsAria': '在文字輸入方塊啟用拼寫檢查', + 'settings.openchamber.visual.field.enableSpellcheckInTextInputs': '在文字輸入方塊啟用拼寫檢查', + 'settings.openchamber.visual.field.sendAnonymousUsageReportsAria': '送出匿名使用報告', + 'settings.openchamber.visual.field.sendAnonymousUsageReports': '送出匿名使用報告', + 'settings.openchamber.visual.field.sendAnonymousUsageReportsHint': '協助我們了解哪些應用程式版本仍在被積極使用,以便優先改進。僅收集應用程式版本、平台與執行階段資訊,不收集個人資料或程式碼。', + 'settings.openchamber.visual.option.themeMode.system': '跟隨系統', + 'settings.openchamber.visual.option.themeMode.light': '淺色', + 'settings.openchamber.visual.option.themeMode.dark': '深色', + 'settings.openchamber.visual.option.diffLayout.dynamic.label': '動態', + 'settings.openchamber.visual.option.diffLayout.dynamic.description': '新增檔案用行內檢視,修改檔案用並排檢視。', + 'settings.openchamber.visual.option.diffLayout.inline.label': '始終行內', + 'settings.openchamber.visual.option.diffLayout.inline.description': '以單一統一檢視顯示。', + 'settings.openchamber.visual.option.diffLayout.sideBySide.label': '始終並排', + 'settings.openchamber.visual.option.diffLayout.sideBySide.description': '對比原始檔案與修改後檔案。', + 'settings.openchamber.visual.option.diffViewMode.single.label': '單檔案', + 'settings.openchamber.visual.option.diffViewMode.single.description': '一次只顯示一個檔案。', + 'settings.openchamber.visual.option.diffViewMode.stacked.label': '所有檔案', + 'settings.openchamber.visual.option.diffViewMode.stacked.description': '將所有變更檔案堆疊顯示。', + 'settings.openchamber.visual.option.mermaidRendering.svg.label': 'SVG', + 'settings.openchamber.visual.option.mermaidRendering.svg.description': '將圖表轉譯為可縮放圖形。', + 'settings.openchamber.visual.option.mermaidRendering.ascii.label': 'ASCII', + 'settings.openchamber.visual.option.mermaidRendering.ascii.description': '將圖表轉譯為文字區塊。', + 'settings.openchamber.visual.option.pwaOrientation.system.label': '跟隨系統', + 'settings.openchamber.visual.option.pwaOrientation.system.description': '遵循裝置旋轉設定。', + 'settings.openchamber.visual.option.pwaOrientation.portrait.label': '鎖定豎屏', + 'settings.openchamber.visual.option.pwaOrientation.portrait.description': '安裝後應用程式鎖定為豎屏。', + 'settings.openchamber.visual.option.pwaOrientation.landscape.label': '鎖定橫屏', + 'settings.openchamber.visual.option.pwaOrientation.landscape.description': '安裝後應用程式鎖定為橫屏。', + 'settings.openchamber.visual.option.mobileKeyboardMode.native.label': '跟隨瀏覽器', + 'settings.openchamber.visual.option.mobileKeyboardMode.native.description': '鍵盤開啟時使用瀏覽器預設的平移和可視區域變化行為。', + 'settings.openchamber.visual.option.mobileKeyboardMode.resizeContent.label': '調整內容大小', + 'settings.openchamber.visual.option.mobileKeyboardMode.resizeContent.description': '請求受支援的瀏覽器縮小應用程式版面配置,而不是只依賴平移。', + 'settings.openchamber.visual.option.userMessageRendering.markdown.label': 'Markdown', + 'settings.openchamber.visual.option.userMessageRendering.markdown.description': '用 Markdown 格式渲染使用者文字。', + 'settings.openchamber.visual.option.userMessageRendering.plain.label': '純文字', + 'settings.openchamber.visual.option.userMessageRendering.plain.description': '保留空白和連結,以純文字渲染使用者文字。', + 'settings.openchamber.visual.option.chatRenderMode.sorted.label': '排序後顯示', + 'settings.openchamber.visual.option.chatRenderMode.sorted.description': '不進行即時串流顯示,待助理訊息完成後再渲染。', + 'settings.openchamber.visual.option.chatRenderMode.live.label': '即時顯示', + 'settings.openchamber.visual.option.chatRenderMode.live.description': '助理文字與工具輸出到達即串流渲染。', + 'settings.openchamber.visual.option.messageTransport.auto.label': '自動', + 'settings.openchamber.visual.option.messageTransport.auto.description': '優先使用 WebSocket,必要時退回 SSE。', + 'settings.openchamber.visual.option.messageTransport.ws.label': 'WebSocket', + 'settings.openchamber.visual.option.messageTransport.ws.description': '使用 WebSocket 進行訊息串流傳輸。', + 'settings.openchamber.visual.option.messageTransport.sse.label': 'SSE', + 'settings.openchamber.visual.option.messageTransport.sse.description': '使用 Server-Sent Events 進行訊息串流傳輸。', + 'settings.openchamber.visual.option.activityRenderMode.collapsed.label': '折疊', + 'settings.openchamber.visual.option.activityRenderMode.collapsed.description': '預設折疊 Activity。', + 'settings.openchamber.visual.option.activityRenderMode.summary.label': '展開', + 'settings.openchamber.visual.option.activityRenderMode.summary.description': '預設展開 Activity。', + 'settings.openchamber.visual.option.timeFormat.auto.label': '自動', + 'settings.openchamber.visual.option.timeFormat.auto.description': '使用系統地區設定偏好。', + 'settings.openchamber.visual.option.timeFormat.24h.label': '24 小時制', + 'settings.openchamber.visual.option.timeFormat.24h.description': '時間顯示為 14:15。', + 'settings.openchamber.visual.option.timeFormat.12h.label': '12 小時制', + 'settings.openchamber.visual.option.timeFormat.12h.description': '時間顯示為 02:15 PM。', + 'settings.openchamber.visual.option.weekStart.auto.label': '自動', + 'settings.openchamber.visual.option.weekStart.auto.description': '使用地區預設的一週起始日。', + 'settings.openchamber.visual.option.weekStart.monday.label': '星期一', + 'settings.openchamber.visual.option.weekStart.sunday.label': '星期日', + 'settings.magicPrompts.page.loading.aria': '載入中', + 'settings.magicPrompts.page.loading.text': '正在載入魔法提示詞...', + 'settings.magicPrompts.page.block.visiblePrompt': '可見提示詞', + 'settings.magicPrompts.page.block.instructions': '說明', + 'settings.magicPrompts.page.group.gitCommitGenerate.title': '提交生成', + 'settings.magicPrompts.page.group.gitCommitGenerate.description': '用於提交訊息產生的提示詞:可見使用者訊息 + 隱藏說明。', + 'settings.magicPrompts.page.group.gitPrGenerate.title': 'PR 產生', + 'settings.magicPrompts.page.group.gitPrGenerate.description': '用於 PR 標題/內文產生的提示詞:可見使用者訊息 + 隱藏說明。', + 'settings.magicPrompts.page.group.githubPrReview.title': 'PR 審查', + 'settings.magicPrompts.page.group.githubPrReview.description': '用於 PR 審查流程的提示詞:可見使用者訊息 + 隱藏指令負載。', + 'settings.magicPrompts.page.group.githubIssueReview.title': 'Issue 審查', + 'settings.magicPrompts.page.group.githubIssueReview.description': '用於 Issue 審查流程的提示詞:可見使用者訊息 + 隱藏指令負載。', + 'settings.magicPrompts.page.group.githubPrFailedChecksReview.title': 'PR 失敗檢查審查', + 'settings.magicPrompts.page.group.githubPrFailedChecksReview.description': '用於 PR 失敗檢查分析的提示詞。', + 'settings.magicPrompts.page.group.githubPrCommentsReview.title': 'PR 評論審查', + 'settings.magicPrompts.page.group.githubPrCommentsReview.description': '用於 PR 評論分析的提示詞。', + 'settings.magicPrompts.page.group.githubSinglePrCommentReview.title': '單則 PR 評論審查', + 'settings.magicPrompts.page.group.githubSinglePrCommentReview.description': '用於單則 PR 評論分析的提示詞。', + 'settings.magicPrompts.page.group.gitConflictResolve.title': 'Merge/Rebase 衝突解決', + 'settings.magicPrompts.page.group.gitConflictResolve.description': '用於 AI 解決 Merge/Rebase 衝突的提示詞。', + 'settings.magicPrompts.page.group.gitCherrypickConflictResolve.title': 'Cherry-pick 衝突解決', + 'settings.magicPrompts.page.group.gitCherrypickConflictResolve.description': '用於 integrate 流程中解決 cherry-pick 衝突的提示詞。', + 'settings.magicPrompts.page.group.planImprove.title': '改進計畫', + 'settings.magicPrompts.page.group.planImprove.description': '把已儲存計畫送出到改進流程時使用的隱藏提示詞。', + 'settings.magicPrompts.page.group.planTodo.title': '待辦規劃', + 'settings.magicPrompts.page.group.planTodo.description': '把待辦送出到新規劃工作階段時使用的隱藏提示詞。', + 'settings.magicPrompts.page.group.planImplement.title': '執行計畫', + 'settings.magicPrompts.page.group.planImplement.description': '把已儲存計畫送出到執行流程時使用的隱藏提示詞。', + 'settings.magicPrompts.page.group.sessionSummary.title': '工作階段總結', + 'settings.magicPrompts.page.group.sessionSummary.description': '由 /summary 斜線命令使用的提示詞:可見使用者訊息 + 隱藏說明。非破壞性,不會壓縮工作階段歷史。', + 'settings.magicPrompts.page.group.sessionWorkspaceReview.title': '工作區審查', + 'settings.magicPrompts.page.group.sessionWorkspaceReview.description': '由 /workspace-review 斜線命令使用的提示詞:可見使用者訊息 + 隱藏說明。僅審查目前工作區中的高訊號問題。', + 'settings.magicPrompts.page.group.sessionFusion.title': 'Fusion', + 'settings.magicPrompts.page.group.sessionFusion.description': '用於將 multi-run 輸出合併為一個最終答案的提示詞:可見使用者訊息 + 結果前的隱藏說明。', + 'settings.magicPrompts.page.actions.resetting': '重設中...', + 'settings.magicPrompts.page.actions.resetAllOverrides': '重設全部覆寫', + 'settings.magicPrompts.page.actions.resetToDefault': '重設為預設', + 'settings.magicPrompts.page.actions.save': '儲存', + 'settings.magicPrompts.page.placeholdersLabel': '預留位置:', + 'settings.magicPrompts.page.validation.visiblePromptRequired': '可見提示詞不可為空。', + 'settings.magicPrompts.page.status.unsavedChanges': '尚未儲存變更', + 'settings.magicPrompts.page.status.usingSavedOverride': '使用已儲存覆寫', + 'settings.magicPrompts.page.status.usingBuiltinDefault': '使用內建預設值', + 'settings.magicPrompts.page.toast.loadFailed': '載入魔法提示詞失敗', + 'settings.magicPrompts.page.toast.visiblePromptRequired': '可見提示詞不可為空', + 'settings.magicPrompts.page.toast.saved': '魔法提示詞已儲存', + 'settings.magicPrompts.page.toast.saveFailed': '儲存魔法提示詞失敗', + 'settings.magicPrompts.page.toast.resetSuccess': '提示詞已重設為預設值', + 'settings.magicPrompts.page.toast.resetFailed': '重設提示詞失敗', + 'settings.magicPrompts.page.toast.resetAllSuccess': '所有提示詞覆寫已重設', + 'settings.magicPrompts.page.toast.resetAllFailed': '重設全部提示詞失敗', + 'settings.page.promptTemplates.title': '提示詞模板', + 'settings.promptTemplates.sidebar.title': '提示詞模板', + 'settings.promptTemplates.sidebar.total': '共 {count} 個', + 'settings.promptTemplates.sidebar.empty.title': '暫無提示詞模板', + 'settings.promptTemplates.sidebar.empty.description': '建立一個提示詞模板以開始使用。', + 'settings.promptTemplates.sidebar.toast.deleted': '模板 "{name}" 已刪除', + 'settings.promptTemplates.sidebar.toast.deleteFailed': '刪除模板失敗', + 'settings.promptTemplates.sidebar.toast.nameRequired': '模板名稱為必填', + 'settings.promptTemplates.sidebar.toast.renamed': '模板已重新命名', + 'settings.promptTemplates.sidebar.toast.renameFailed': '重新命名模板失敗', + 'settings.promptTemplates.sidebar.dialog.deleteTitle': '刪除模板?', + 'settings.promptTemplates.sidebar.dialog.deleteDescription': '將永久刪除 "{name}"。此操作無法復原。', + 'settings.promptTemplates.sidebar.renameDialog.title': '重新命名模板', + 'settings.promptTemplates.sidebar.renameDialog.description': '為 "{name}" 輸入新名稱。', + 'settings.promptTemplates.sidebar.renameDialog.placeholder': '模板名稱', + 'settings.promptTemplates.sidebar.badge.default': '預設', + 'settings.promptTemplates.page.empty.title': '選擇一個模板', + 'settings.promptTemplates.page.empty.description': '從側邊欄選擇一個模板進行編輯。', + 'settings.promptTemplates.page.title.new': '新增模板', + 'settings.promptTemplates.page.subtitle.edit': '編輯模板', + 'settings.promptTemplates.page.subtitle.new': '建立新的提示詞模板', + 'settings.promptTemplates.page.section.identity': '識別', + 'settings.promptTemplates.page.field.name': '名稱', + 'settings.promptTemplates.page.field.namePlaceholder': '模板名稱', + 'settings.promptTemplates.page.section.template': '模板', + 'settings.promptTemplates.page.field.templatePlaceholder': '輸入提示詞模板文字...', + 'settings.promptTemplates.page.templateHint': '在多執行群組中選擇此模板時,此文字將加入到使用者提示詞之前。', + 'settings.promptTemplates.page.toast.nameRequired': '模板名稱為必填', + 'settings.promptTemplates.page.toast.updated': '模板已更新', + 'settings.promptTemplates.page.toast.updateFailed': '更新模板失敗', + 'settings.promptTemplates.page.toast.created': '模板已建立', + 'settings.promptTemplates.page.toast.createFailed': '建立模板失敗', + 'settings.promptTemplates.page.toast.saveUnexpectedError': '儲存時發生意外錯誤', + 'settings.openchamber.desktopNetwork.error.launchAtLoginSaveFailed': '無法更新登入時自動啟動設定', + 'settings.openchamber.desktopNetwork.error.launchAtLoginUnsupported': '此系統不支援登入時自動啟動', + 'settings.openchamber.desktopNetwork.field.launchAtLogin': '登入時自動啟動 OpenChamber', + 'settings.openchamber.desktopNetwork.field.launchAtLoginAria': '登入時自動啟動 OpenChamber', + 'settings.openchamber.desktopNetwork.field.launchAtLoginDescription': '在背景啟動應用程式,不開啟視窗。按一下 Dock 圖示即可開啟。', + 'settings.openchamber.desktopPassword.field.password': '桌面 UI 密碼', + 'settings.openchamber.desktopPassword.field.passwordDescription': 'OpenChamber 會在重新啟動後要求輸入密碼,之後會在登入工作階段過期時再次要求:12 小時後,或選擇「信任此裝置」後 7 天。留空可停用登入。', + 'settings.openchamber.desktopPassword.field.passwordPlaceholder': '不需要密碼', + 'settings.page.plugins.title': '外掛', + 'settings.plugins.dialog.add.action.cancel': '取消', + 'settings.plugins.dialog.add.action.submit': '新增', + 'settings.plugins.dialog.add.tab.file': '新增檔案', + 'settings.plugins.dialog.add.tab.npm': '從 npm', + 'settings.plugins.dialog.add.tab.path': '從本機路徑', + 'settings.plugins.dialog.add.title': '新增外掛', + 'settings.plugins.page.action.discard': '捨棄', + 'settings.plugins.page.action.save': '儲存', + 'settings.plugins.page.empty.add': '或按一下 + 新增外掛', + 'settings.plugins.page.empty.select': '選擇外掛以檢視或編輯', + 'settings.plugins.page.field.content': '內容', + 'settings.plugins.page.field.fileName': '檔案名稱', + 'settings.plugins.page.field.options': '選項(JSON)', + 'settings.plugins.page.field.options.invalidJson': 'JSON 無效', + 'settings.plugins.page.field.scope': '範圍', + 'settings.plugins.page.field.spec': '套件或路徑', + 'settings.plugins.page.field.spec.placeholder': 'npm-package@version 或 /absolute/path', + 'settings.plugins.page.header.entry': '已安裝外掛', + 'settings.plugins.page.header.file': '外掛檔案', + 'settings.plugins.registry.badge.malformed.tooltip': '套件或路徑格式錯誤', + 'settings.plugins.registry.badge.missingPackage.tooltip': 'npm 上找不到套件 {name}', + 'settings.plugins.registry.badge.missingVersion.tooltip': '{name} 的版本 {version} 尚未發布', + 'settings.plugins.registry.badge.network.tooltip': '無法連線到 npm registry', + 'settings.plugins.registry.badge.pathMissing.tooltip': '找不到檔案:{path}', + 'settings.plugins.registry.badge.pathUnreadable.tooltip': '無法讀取檔案:{path}', + 'settings.plugins.registry.badge.update.label': '↑ {version}', + 'settings.plugins.registry.badge.update.tooltip': '有可用更新:{current} → {latest}', + 'settings.plugins.registry.banner.invalid.malformed': '套件或路徑格式錯誤', + 'settings.plugins.registry.banner.invalid.missingPackage': 'npm 上找不到該套件', + 'settings.plugins.registry.banner.invalid.missingVersion': '版本尚未發布', + 'settings.plugins.registry.banner.invalid.pathMissing': '檔案不存在', + 'settings.plugins.registry.banner.invalid.pathUnreadable': '檔案不可讀', + 'settings.plugins.registry.banner.invalid.title': '外掛無效', + 'settings.plugins.registry.banner.updateAvailable.action': '更新到 {latest}', + 'settings.plugins.registry.banner.updateAvailable.description': '{current} → {latest}', + 'settings.plugins.registry.banner.updateAvailable.title': '有可用更新', + 'settings.plugins.scope.project': '專案', + 'settings.plugins.scope.user': '使用者', + 'settings.plugins.sidebar.actions.addTitle': '新增外掛', + 'settings.plugins.sidebar.actions.deleting': '正在刪除…', + 'settings.plugins.sidebar.actions.refresh': '檢查更新', + 'settings.plugins.sidebar.actions.updateToLatest': '更新到最新版', + 'settings.plugins.sidebar.deleteDialog.description': '確定要刪除「{name}」嗎?', + 'settings.plugins.sidebar.deleteDialog.title': '刪除外掛', + 'settings.plugins.sidebar.empty.description': '使用上方的 + 按鈕新增外掛', + 'settings.plugins.sidebar.empty.title': '尚未設定外掛', + 'settings.plugins.sidebar.group.projectEntries': '專案設定', + 'settings.plugins.sidebar.group.projectFiles': '專案外掛檔案', + 'settings.plugins.sidebar.group.updatesAvailable_one': '有 {count} 個更新', + 'settings.plugins.sidebar.group.updatesAvailable_other': '有 {count} 個更新', + 'settings.plugins.sidebar.group.userEntries': '使用者設定', + 'settings.plugins.sidebar.group.userFiles': '使用者外掛檔案', + 'settings.plugins.sidebar.kind.file': '外掛檔案', + 'settings.plugins.sidebar.kind.npm': 'npm 套件', + 'settings.plugins.sidebar.kind.path': '本機路徑', + 'settings.plugins.sidebar.title': '外掛', + 'settings.plugins.sidebar.toast.deleteFailed': '刪除外掛失敗', + 'settings.plugins.sidebar.toast.deleted': '外掛「{name}」已刪除', + 'settings.plugins.sidebar.total': '共 {count} 個', + 'settings.plugins.toast.created': '外掛已新增', + 'settings.plugins.toast.refreshFailed': '無法檢查 npm registry', + 'settings.plugins.toast.refreshing': '正在檢查 npm 更新…', + 'settings.plugins.toast.reloadFailed': 'opencode 重新載入失敗;需要重新啟動', + 'settings.plugins.toast.updated': '外掛已更新', + 'settings.plugins.toast.updatedToLatest': '外掛已更新到 {version}', + 'settings.plugins.validation.fileName': '檔案名稱必須為小寫,並以 .js / .ts / .mjs / .cjs 結尾', + 'settings.plugins.validation.specRequired': '請輸入套件或路徑', + 'settings.usage.sidebar.field.showPredictions': '顯示預測', + 'settings.view.home.cards.plugins.description': '管理 opencode 外掛', + 'settings.view.home.cards.plugins.title': '外掛', +} as const; diff --git a/packages/ui/src/lib/i18n/messages/zh-TW.ts b/packages/ui/src/lib/i18n/messages/zh-TW.ts new file mode 100644 index 00000000..06543512 --- /dev/null +++ b/packages/ui/src/lib/i18n/messages/zh-TW.ts @@ -0,0 +1,2316 @@ +import type { I18nKey } from './en'; +import { settingsDict } from './zh-TW.settings'; + +export const dict: Record = { + ...settingsDict, + 'common.loading': '載入中...', + 'common.unavailable': '無法使用', + 'common.language.english': 'English', + 'common.language.simplifiedChinese': '簡體中文', + 'common.language.traditionalChinese': '繁體中文', + 'common.language.ukrainian': '烏克蘭語', + 'common.language.spanish': '西班牙語', + 'common.language.brazilianPortuguese': '巴西葡萄牙語', + 'common.language.korean': '韓語', + 'common.language.polish': '波蘭語', + 'common.revealPath.finder': '在 Finder 中顯示', + 'common.revealPath.fileExplorer': '在檔案總管中開啟', + 'common.revealPath.fileManager': '在檔案管理員中開啟', + 'pwa.installPrompt.description': '安裝 OpenChamber 以便更快存取', + 'pwa.installPrompt.action': '安裝', + 'pwa.installPrompt.dismiss': '忽略', + 'pwa.installPrompt.started': '已開始安裝', + 'pwa.installPrompt.installed': 'OpenChamber 已安裝', + 'layout.mainTab.chat': '聊天', + 'layout.mainTab.plan': '計畫', + 'layout.mainTab.diff': '差異', + 'layout.mainTab.files': '檔案', + 'layout.mainTab.terminal': '終端機', + 'layout.mainTab.context': '上下文', + 'layout.rightSidebar.git': 'Git', + 'layout.rightSidebar.files': '檔案', + 'layout.rightSidebar.context': '上下文', + 'layout.services.instance': '實例', + 'layout.services.usage': '用量', + 'sessions.sidebar.header.actions.closeSessions': '關閉會話', + 'sessions.sidebar.header.actions.addProject': '新增專案', + 'sessions.sidebar.header.actions.newSession': '新增會話', + 'sessions.sidebar.header.actions.newMultiRun': '新增 Multi-run', + 'sessions.sidebar.header.actions.scheduledTasks': '排程任務', + 'sessions.scheduledTasks.dialog.title': '排程任務', + 'sessions.scheduledTasks.dialog.description': '伺服器端任務會建立新會話並傳送已設定的提示詞。', + 'sessions.scheduledTasks.dialog.project.label': '專案', + 'sessions.scheduledTasks.dialog.project.placeholder': '選擇專案', + 'sessions.scheduledTasks.dialog.project.empty': '暫無專案', + 'sessions.scheduledTasks.dialog.actions.newTask': '新增任務', + 'sessions.scheduledTasks.dialog.actions.runNow': '立即執行', + 'sessions.scheduledTasks.dialog.actions.edit': '編輯', + 'sessions.scheduledTasks.dialog.actions.editAria': '編輯 {taskName}', + 'sessions.scheduledTasks.dialog.actions.deleteAria': '刪除 {taskName}', + 'sessions.scheduledTasks.dialog.loading': '正在載入任務...', + 'sessions.scheduledTasks.dialog.empty.noTasks': '暫無排程任務。', + 'sessions.scheduledTasks.dialog.empty.selectProject': '請選擇一個專案來管理排程任務。', + 'sessions.scheduledTasks.dialog.error.chooseProjectFirst': '請先選擇一個專案', + 'sessions.scheduledTasks.dialog.toast.loadFailed': '載入排程任務失敗', + 'sessions.scheduledTasks.dialog.toast.saved': '排程任務已儲存', + 'sessions.scheduledTasks.dialog.toast.updateFailed': '更新任務失敗', + 'sessions.scheduledTasks.dialog.toast.deleted': '排程任務已刪除', + 'sessions.scheduledTasks.dialog.toast.deleteFailed': '刪除任務失敗', + 'sessions.scheduledTasks.dialog.toast.started': '任務已啟動', + 'sessions.scheduledTasks.dialog.toast.runFailed': '執行任務失敗', + 'sessions.scheduledTasks.dialog.confirm.deleteTask': '刪除排程任務「{taskName}」?', + 'sessions.scheduledTasks.dialog.schedule.daily': '每天 {time}', + 'sessions.scheduledTasks.dialog.schedule.dailyWithTimezone': '每天 {time}({timezone})', + 'sessions.scheduledTasks.dialog.schedule.weekly': '每週 {days} {time}', + 'sessions.scheduledTasks.dialog.schedule.weeklyWithTimezone': '每週 {days} {time}({timezone})', + 'sessions.scheduledTasks.dialog.schedule.once': '一次性 {date} {time}', + 'sessions.scheduledTasks.dialog.schedule.onceWithTimezone': '一次性 {date} {time}({timezone})', + 'sessions.scheduledTasks.dialog.schedule.cron': 'Cron:{cron}', + 'sessions.scheduledTasks.dialog.schedule.cronWithTimezone': 'Cron:{cron}({timezone})', + 'sessions.scheduledTasks.dialog.schedule.unknownDate': '未知日期', + 'sessions.scheduledTasks.dialog.schedule.weekdayShort.sun': '週日', + 'sessions.scheduledTasks.dialog.schedule.weekdayShort.mon': '週一', + 'sessions.scheduledTasks.dialog.schedule.weekdayShort.tue': '週二', + 'sessions.scheduledTasks.dialog.schedule.weekdayShort.wed': '週三', + 'sessions.scheduledTasks.dialog.schedule.weekdayShort.thu': '週四', + 'sessions.scheduledTasks.dialog.schedule.weekdayShort.fri': '週五', + 'sessions.scheduledTasks.dialog.schedule.weekdayShort.sat': '週六', + 'sessions.scheduledTasks.dialog.schedule.weekdayShort.unknown': '?', + 'sessions.scheduledTasks.dialog.relativeTime.inLessThanOneMinute': '不到 1 分鐘後', + 'sessions.scheduledTasks.dialog.relativeTime.justNow': '剛剛', + 'sessions.scheduledTasks.dialog.relativeTime.inMinutes': '{count} 分鐘後', + 'sessions.scheduledTasks.dialog.relativeTime.minutesAgo': '{count} 分鐘前', + 'sessions.scheduledTasks.dialog.relativeTime.inDuration': '{duration} 後', + 'sessions.scheduledTasks.dialog.relativeTime.durationAgo': '{duration} 前', + 'sessions.scheduledTasks.dialog.status.success': '成功', + 'sessions.scheduledTasks.dialog.status.error': '錯誤', + 'sessions.scheduledTasks.dialog.status.running': '執行中', + 'sessions.scheduledTasks.dialog.status.idle': '閒置', + 'sessions.scheduledTasks.dialog.nextRun.label': '下次', + 'sessions.scheduledTasks.dialog.lastRun.label': '上次執行', + 'sessions.scheduledTasks.dialog.lastRun.runningNow': '正在執行', + 'sessions.scheduledTasks.dialog.lastRun.never': '從未', + 'sessions.scheduledTasks.dialog.taskToggle.enableAria': '啟用 {taskName}', + 'sessions.scheduledTasks.dialog.taskToggle.pauseAria': '暫停 {taskName}', + 'sessions.scheduledTasks.dialog.taskToggle.enabled': '已啟用', + 'sessions.scheduledTasks.dialog.taskToggle.paused': '已暫停', + 'sessions.scheduledTasks.editor.title.edit': '編輯排程任務', + 'sessions.scheduledTasks.editor.title.new': '新增排程任務', + 'sessions.scheduledTasks.editor.description': '設定一個伺服器端任務,用於建立新會話並傳送提示詞。', + 'sessions.scheduledTasks.editor.taskName.label': '任務名稱', + 'sessions.scheduledTasks.editor.taskName.placeholder': '每日同步', + 'sessions.scheduledTasks.editor.scheduleType.label': '排程類型', + 'sessions.scheduledTasks.editor.scheduleType.daily': '每天', + 'sessions.scheduledTasks.editor.scheduleType.weekly': '每週', + 'sessions.scheduledTasks.editor.scheduleType.once': '一次性', + 'sessions.scheduledTasks.editor.date.label': '日期', + 'sessions.scheduledTasks.editor.date.placeholder': '選擇日期', + 'sessions.scheduledTasks.editor.date.previousMonth': '上個月', + 'sessions.scheduledTasks.editor.date.nextMonth': '下個月', + 'sessions.scheduledTasks.editor.date.jumpToToday': '跳至今天', + 'sessions.scheduledTasks.editor.date.today': '今天', + 'sessions.scheduledTasks.editor.time.label': '時間', + 'sessions.scheduledTasks.editor.time.hourAria': '小時', + 'sessions.scheduledTasks.editor.time.minuteAria': '分鐘', + 'sessions.scheduledTasks.editor.time.periodAria': '時段', + 'sessions.scheduledTasks.editor.time.period.am': 'AM', + 'sessions.scheduledTasks.editor.time.period.pm': 'PM', + 'sessions.scheduledTasks.editor.times.label': '時間點', + 'sessions.scheduledTasks.editor.times.add': '新增時間', + 'sessions.scheduledTasks.editor.times.removeAria': '移除時間', + 'sessions.scheduledTasks.editor.timezone.label': '時區', + 'sessions.scheduledTasks.editor.weekdays.label': '星期', + 'sessions.scheduledTasks.editor.model.label': '模型', + 'sessions.scheduledTasks.editor.thinkingLevel.label': '思考級別', + 'sessions.scheduledTasks.editor.thinkingLevel.default': '預設', + 'sessions.scheduledTasks.editor.agent.label': 'Agent', + 'sessions.scheduledTasks.editor.prompt.label': '提示詞', + 'sessions.scheduledTasks.editor.prompt.placeholder': '總結未完成任務並給出下一步建議', + 'sessions.scheduledTasks.editor.enabled.aria': '啟用任務', + 'sessions.scheduledTasks.editor.enabled.label': '已啟用', + 'sessions.scheduledTasks.editor.actions.closeAria': '關閉', + 'sessions.scheduledTasks.editor.actions.cancel': '取消', + 'sessions.scheduledTasks.editor.actions.save': '儲存', + 'sessions.scheduledTasks.editor.actions.saving': '儲存中...', + 'sessions.scheduledTasks.editor.toast.saveFailed': '儲存任務失敗', + 'sessions.scheduledTasks.editor.validation.taskNameRequired': '任務名稱為必填項', + 'sessions.scheduledTasks.editor.validation.promptRequired': '提示詞為必填項', + 'sessions.scheduledTasks.editor.validation.modelRequired': '模型為必填項', + 'sessions.scheduledTasks.editor.validation.dateFormat': '日期格式必須是 YYYY-MM-DD', + 'sessions.scheduledTasks.editor.validation.timeFormat': '時間格式必須是 HH:mm', + 'sessions.scheduledTasks.editor.validation.atLeastOneTime': '請至少新增一個有效時間', + 'sessions.scheduledTasks.editor.validation.atLeastOneWeekday': '請至少選擇一個星期', + 'sessions.scheduledTasks.editor.validation.timezoneRequired': '時區為必填項', + 'multirun.launcher.title': '新增 Multi-run', + 'multirun.launcher.actions.closeEsc': '關閉 (Esc)', + 'multirun.launcher.actions.cancel': '取消', + 'multirun.launcher.actions.creating': '建立中...', + 'multirun.launcher.actions.startWithModelCount': '開始({count} 個模型)', + 'multirun.launcher.project.label': '專案', + 'multirun.launcher.project.placeholder': '選擇專案', + 'multirun.launcher.project.empty': '請先新增專案。', + 'multirun.launcher.project.gitRequired': '無 worktree 隔離:執行將使用同一目錄。', + 'multirun.launcher.groupName.label': '群組名稱', + 'multirun.launcher.groupName.info': '用於 worktree 目錄和分支名稱', + 'multirun.launcher.groupName.placeholder': 'feature-auth, bugfix-login', + 'multirun.launcher.baseBranch.label': '基底分支', + 'multirun.launcher.baseBranch.info': '每個模型都會基於此分支建立新分支', + 'multirun.launcher.isolateRuns.label': '隔離執行', + 'multirun.launcher.agent.label': 'Agent', + 'multirun.launcher.agent.info': '所有執行使用同一 Agent。預設使用你目前設定的 Agent。', + 'multirun.launcher.setupCommands.label': '設定命令', + 'multirun.launcher.setupCommands.loading': '載入中...', + 'multirun.launcher.setupCommands.commandPlaceholder': 'bun install', + 'multirun.launcher.setupCommands.removeCommandAria': '移除命令', + 'multirun.launcher.setupCommands.addCommand': '新增命令', + 'multirun.launcher.prompt.label': '提示詞', + 'multirun.launcher.prompt.placeholder': '輸入要傳送給所有模型的提示詞...', + 'multirun.launcher.attachments.attach': '附加', + 'multirun.launcher.attachments.tooltip': '相同檔案會傳送到所有執行', + 'multirun.launcher.models.label': '模型', + 'multirun.launcher.models.info': '選擇 2-{max} 個模型。同一模型可重複加入。', + 'multirun.launcher.toast.fileTooLarge': '檔案「{fileName}」過大(最大 10MB)', + 'multirun.launcher.toast.attachFailed': '附加「{fileName}」失敗', + 'multirun.launcher.toast.attachedSingle': '已附加 {count} 個檔案', + 'multirun.launcher.toast.attachedPlural': '已附加 {count} 個檔案', + 'multirun.modelMultiSelect.actions.addModel': '新增模型', + 'multirun.modelMultiSelect.search.placeholder': '搜尋模型', + 'multirun.modelMultiSelect.search.noResults': '找不到模型', + 'multirun.modelMultiSelect.sections.favorites': '我的最愛', + 'multirun.modelMultiSelect.sections.recent': '最近', + 'multirun.modelMultiSelect.variant.placeholder': '思考', + 'multirun.modelMultiSelect.variant.default': '預設', + 'multirun.modelMultiSelect.keyboard.hint': '↑↓ 導覽 • Enter 選擇 • Esc 關閉', + 'multirun.modelMultiSelect.validation.minOnly': '請至少選擇 {min} 個模型。', + 'multirun.modelMultiSelect.validation.minToMax': '請選擇 {min} 到 {max} 個模型。', + 'multirun.agentSelector.placeholder': '選擇 Agent', + 'multirun.fusion.title': '執行 fusion', + 'multirun.fusion.description': '將選取的 multi-run 輸出合併為一個更強的答案。', + 'multirun.fusion.provider.placeholder': '供應商', + 'multirun.fusion.model.placeholder': '模型', + 'multirun.fusion.sources.label': '來源({count})', + 'multirun.fusion.actions.cancel': '取消', + 'multirun.fusion.actions.start': '開始 fusion', + 'multirun.fusion.actions.starting': '正在開始...', + 'multirun.fusion.toast.noOutputs': '找不到可用於 fusion 的助理輸出。', + 'multirun.fusion.toast.failed': '啟動 fusion 失敗。', + 'multirun.launcher.attachments.label': '文件', + 'multirun.launcher.actions.startWithRunCount': '開始({count} 次運行)', + 'multirun.launcher.groups.addGroup': '新增執行群組', + 'multirun.launcher.groups.removeGroup': '移除執行群組', + 'multirun.launcher.groups.groupLabel': '執行群組 {index}', + 'multirun.launcher.groups.template.label': '模板', + 'multirun.launcher.groups.template.placeholder': '選擇模板...', + 'multirun.launcher.groups.template.custom': '自定義提示詞', + 'multirun.launcher.groups.prompt.label': '提示詞', + 'multirun.launcher.groups.prompt.placeholder': '輸入此執行群組的提示詞...', + 'sessions.sidebar.header.actions.searchSessions': '搜尋會話', + 'sessions.sidebar.header.actions.exitSelection': '退出選取', + 'sessions.sidebar.header.actions.selectSessions': '選擇會話', + 'sessions.sidebar.header.actions.sessionDisplayMode': '會話顯示模式', + 'sessions.sidebar.header.displayMode.label': '顯示模式', + 'sessions.sidebar.header.displayMode.default': '預設', + 'sessions.sidebar.header.displayMode.minimal': '精簡', + 'sessions.sidebar.header.displayMode.showRecent': '顯示最近部分', + 'sessions.sidebar.header.displayMode.collapseAll': '全部摺疊', + 'sessions.sidebar.header.displayMode.expandAll': '全部展開', + 'sessions.sidebar.header.search.matchCountSingle': '{count} 個符合', + 'sessions.sidebar.header.search.matchCountPlural': '{count} 個符合', + 'sessions.sidebar.header.search.escapeHint': '按 Esc 清除', + 'sessions.sidebar.header.search.placeholder': '搜尋會話...', + 'sessions.sidebar.header.search.clear': '清除搜尋', + 'sessions.sidebar.footer.actions.settings': '設定', + 'sessions.sidebar.footer.actions.shortcuts': '快速鍵', + 'sessions.sidebar.footer.actions.aboutOpenChamber': '關於 OpenChamber', + 'sessions.sidebar.footer.actions.update': '更新', + 'sessions.sidebar.empty.noSessions.title': '暫無會話', + 'sessions.sidebar.empty.noSessions.description': '建立你的第一個會話以開始編碼。', + 'sessions.sidebar.empty.noMatches.title': '沒有符合的會話', + 'sessions.sidebar.empty.noMatches.description': '請嘗試其他標題、分支、資料夾或路徑。', + 'sessions.sidebar.activity.recentTitle': '最近', + 'sessions.switcher.openAria': '開啟會話切換器', + 'sessions.switcher.empty': '沒有最近會話', + 'sessions.switcher.draftTitle': '新會話', + 'sessions.sidebar.updateCheck.errorTitle': '檢查更新失敗', + 'sessions.sidebar.updateCheck.latestVersion': '你已是最新版本', + 'sessions.sidebar.directory.errorAddProjectTitle': '新增專案失敗', + 'sessions.sidebar.directory.errorAddProjectDescription': '請選擇有效的目錄。', + 'sessions.sidebar.directory.errorSelectDirectoryTitle': '選擇目錄失敗', + 'sessions.sidebar.folder.newFolderName': '新增資料夾', + 'sessions.sidebar.bulkActions.delete': '刪除', + 'sessions.sidebar.bulkActions.archive': '封存', + 'sessions.sidebar.bulkActions.selectedCount': '已選擇 {count} 項', + 'sessions.sidebar.bulkActions.moveToFolder': '移動到資料夾', + 'sessions.sidebar.bulkActions.deletedSingle': '已刪除 {count} 個會話', + 'sessions.sidebar.bulkActions.deletedPlural': '已刪除 {count} 個會話', + 'sessions.sidebar.bulkActions.failedDeleteSingle': '刪除 {count} 個會話失敗', + 'sessions.sidebar.bulkActions.failedDeletePlural': '刪除 {count} 個會話失敗', + 'sessions.sidebar.bulkActions.archivedSingle': '已封存 {count} 個會話', + 'sessions.sidebar.bulkActions.archivedPlural': '已封存 {count} 個會話', + 'sessions.sidebar.bulkActions.failedArchiveSingle': '封存 {count} 個會話失敗', + 'sessions.sidebar.bulkActions.failedArchivePlural': '封存 {count} 個會話失敗', + 'sessions.sidebar.folders.none': '暫無資料夾', + 'sessions.sidebar.folders.newFolderEllipsis': '新增資料夾...', + 'sessions.sidebar.folders.removeFromFolder': '從資料夾中移除', + 'sessions.sidebar.folders.moveToFolder': '移動到資料夾', + 'sessions.sidebar.project.actions.newWorktree': '新增 worktree', + 'sessions.sidebar.project.actions.newWorktreeEllipsis': '新增 worktree...', + 'sessions.sidebar.project.actions.projectMenu': '專案選單', + 'sessions.sidebar.project.actions.newSession': '新增會話', + 'sessions.sidebar.project.actions.closeProject': '關閉專案', + 'sessions.sidebar.project.actions.newDraftSession': '新增草稿會話', + 'sessions.sidebar.session.menu.rename': '重新命名', + 'sessions.sidebar.session.rename.save': '儲存會話名稱', + 'sessions.sidebar.session.rename.cancel': '取消重新命名會話', + 'sessions.sidebar.session.menu.unpin': '取消釘選會話', + 'sessions.sidebar.session.menu.pin': '釘選會話', + 'sessions.sidebar.session.menu.share': '分享', + 'sessions.sidebar.session.menu.copied': '已複製', + 'sessions.sidebar.session.menu.copyLink': '複製連結', + 'sessions.sidebar.session.menu.unshare': '取消分享', + 'sessions.sidebar.session.menu.exportMarkdown': '匯出 Markdown', + 'sessions.sidebar.session.menu.runFusion': '執行 fusion', + 'sessions.sidebar.session.menu.openInSidePanel': '在側邊面板中開啟', + 'sessions.sidebar.session.actions.openInEditor': '在編輯器中開啟', + 'sessions.sidebar.session.menu.betaBadge': 'beta', + 'sessions.sidebar.session.menu.label': '會話選單', + 'sessions.sidebar.session.untitled': '未命名會話', + 'sessions.sidebar.session.export.nothingToExport': '沒有可匯出的內容', + 'sessions.sidebar.session.export.success': '會話已匯出', + 'sessions.sidebar.session.export.failedRevealPath': '顯示路徑失敗', + 'sessions.sidebar.session.export.untitledSubagent': '未命名子 Agent', + 'sessions.sidebar.session.export.skippedSubtaskSingle': '會話已匯出,但略過了 {count} 個無法載入的子 Agent 任務。', + 'sessions.sidebar.session.export.skippedSubtaskMany': '會話已匯出,但略過了 {count} 個無法載入的子 Agent 任務。', + 'sessions.sidebar.session.export.dialog.title': '匯出 Markdown', + 'sessions.sidebar.session.export.dialog.descriptionSingle': '此會話有 {count} 個子 Agent 任務。是否包含在匯出中?', + 'sessions.sidebar.session.export.dialog.descriptionMany': '此會話有 {count} 個子 Agent 任務。是否包含在匯出中?', + 'sessions.sidebar.session.export.dialog.includeSubtasks': '包含子 Agent 任務', + 'sessions.sidebar.session.export.dialog.confirm': '匯出', + 'sessions.sidebar.session.status.active': '會話活躍中', + 'sessions.sidebar.session.status.unread': '有未讀更新', + 'sessions.sidebar.session.status.pinned': '已釘選會話', + 'sessions.sidebar.session.status.permissionRequired': '需要權限', + 'sessions.sidebar.session.subsessions.collapse': '摺疊子會話', + 'sessions.sidebar.session.subsessions.expand': '展開子會話', + 'sessions.sidebar.dialogs.deleteSession.title': '刪除會話?', + 'sessions.sidebar.dialogs.archiveSession.title': '封存會話?', + 'sessions.sidebar.dialogs.deleteSession.withOneSubtask': '「{sessionTitle}」及其 {count} 個子任務將被永久刪除。', + 'sessions.sidebar.dialogs.deleteSession.withManySubtasks': '「{sessionTitle}」及其 {count} 個子任務將被永久刪除。', + 'sessions.sidebar.dialogs.archiveSession.withOneSubtask': '「{sessionTitle}」及其 {count} 個子任務將被封存。', + 'sessions.sidebar.dialogs.archiveSession.withManySubtasks': '「{sessionTitle}」及其 {count} 個子任務將被封存。', + 'sessions.sidebar.dialogs.deleteSession.single': '「{sessionTitle}」將被永久刪除。', + 'sessions.sidebar.dialogs.archiveSession.single': '「{sessionTitle}」將被封存。', + 'sessions.sidebar.dialogs.neverAsk': '不再詢問', + 'sessions.sidebar.dialogs.cancel': '取消', + 'sessions.sidebar.dialogs.deleteSession.titleAction': '刪除會話', + 'sessions.sidebar.dialogs.deleteSessions.titleAction': '刪除會話', + 'sessions.sidebar.dialogs.deleteSessions.title': '刪除會話?', + 'sessions.sidebar.dialogs.archiveSessions.title': '封存會話?', + 'sessions.sidebar.dialogs.deleteSessions.singleDescription': '{count} 個會話將被永久刪除。', + 'sessions.sidebar.dialogs.deleteSessions.pluralDescription': '{count} 個會話將被永久刪除。', + 'sessions.sidebar.dialogs.archiveSessions.singleDescription': '{count} 個會話將被封存。', + 'sessions.sidebar.dialogs.archiveSessions.pluralDescription': '{count} 個會話將被封存。', + 'sessions.sidebar.dialogs.deleteFolder.title': '刪除資料夾?', + 'sessions.sidebar.dialogs.deleteFolder.withOneSubfolder': '「{folderName}」將被刪除,並包含 {count} 個子資料夾。其中的會話不會被刪除。', + 'sessions.sidebar.dialogs.deleteFolder.withManySubfolders': '「{folderName}」將被刪除,並包含 {count} 個子資料夾。其中的會話不會被刪除。', + 'sessions.sidebar.dialogs.deleteFolder.withContentsNoSubfolders': '「{folderName}」將被刪除。其中的會話不會被刪除。', + 'sessions.sidebar.dialogs.deleteFolder.single': '「{folderName}」將被永久刪除。', + 'sessions.sidebar.dialogs.deleteResult.singleFailedToDelete': '{count} 個會話刪除失敗。', + 'sessions.sidebar.dialogs.deleteResult.manyFailedToDelete': '{count} 個會話刪除失敗。', + 'sessions.sidebar.dialogs.deleteResult.singleFailedToArchive': '{count} 個會話封存失敗。', + 'sessions.sidebar.dialogs.deleteResult.manyFailedToArchive': '{count} 個會話封存失敗。', + 'sessions.sidebar.dialogs.deleteResult.removedFromDate': '已移除 {dateLabel} 中的所有會話。', + 'sessions.sidebar.dialogs.deleteResult.tryAgain': '請稍後重試。', + 'sessions.sidebar.dialogs.worktreeDelete.descriptionNoLinked': '這將移除所選 worktree。', + 'sessions.sidebar.dialogs.worktreeDelete.descriptionOneLinked': '這將移除所選 worktree 並封存 {count} 個關聯會話。', + 'sessions.sidebar.dialogs.worktreeDelete.descriptionManyLinked': '這將移除所選 worktree 並封存 {count} 個關聯會話。', + 'sessions.sidebar.dialogs.sessionDelete.descriptionOne': '此操作將永久刪除 1 個會話。', + 'sessions.sidebar.dialogs.sessionDelete.descriptionOneWithDate': '此操作將永久刪除來自 {dateLabel} 的 1 個會話。', + 'sessions.sidebar.dialogs.sessionDelete.descriptionMany': '此操作將永久刪除 {count} 個會話。', + 'sessions.sidebar.dialogs.sessionDelete.descriptionManyWithDate': '此操作將永久刪除來自 {dateLabel} 的 {count} 個會話。', + 'sessions.sidebar.dialogs.sessionList.more': '+{count} 更多', + 'sessions.sidebar.session.share.successTitle': '會話已分享', + 'sessions.sidebar.session.share.successDescription': '你可以在選單中複製連結。', + 'sessions.sidebar.session.share.error': '無法分享會話', + 'sessions.sidebar.session.share.copyUrlError': '複製 URL 失敗', + 'sessions.sidebar.session.unshare.success': '會話已取消分享', + 'sessions.sidebar.session.unshare.error': '無法取消分享會話', + 'sessions.sidebar.session.delete.success': '會話已刪除', + 'sessions.sidebar.session.delete.error': '刪除會話失敗', + 'sessions.sidebar.session.archive.success': '會話已封存', + 'sessions.sidebar.session.archive.error': '封存會話失敗', + 'sessions.sidebar.group.pr.checksPassed': '{success}/{total} 項檢查已通過', + 'sessions.sidebar.group.pr.failingCount': '{count} 項失敗', + 'sessions.sidebar.group.pr.pendingCount': '{count} 項等待中', + 'sessions.sidebar.group.pr.conflictsOrBlocked': '有衝突或被阻止', + 'sessions.sidebar.group.pr.mergeable': '可合併', + 'sessions.sidebar.group.pr.mergeState': '合併狀態:{state}', + 'sessions.sidebar.group.pr.status.merged': '已合併', + 'sessions.sidebar.group.pr.status.readyToMerge': '可合併', + 'sessions.sidebar.group.pr.status.open': 'PR 已開啟', + 'sessions.sidebar.group.pr.status.mergeConflicts': '存在合併衝突', + 'sessions.sidebar.group.pr.status.mergeBlocked': '合併被阻止', + 'sessions.sidebar.group.pr.status.draft': '草稿 PR', + 'sessions.sidebar.group.pr.status.closed': '已關閉', + 'sessions.sidebar.group.empty.noArchivedSessions': '暫無已封存會話。', + 'sessions.sidebar.group.empty.noSessionsInWorkspace': '該工作區暫無會話。', + 'sessions.sidebar.group.showMoreSingle': '再顯示 {count} 個會話', + 'sessions.sidebar.group.showMorePlural': '再顯示 {count} 個會話', + 'sessions.sidebar.group.showFewer': '顯示更少會話', + 'sessions.sidebar.group.expandAria': '展開 {label}', + 'sessions.sidebar.group.collapseAria': '摺疊 {label}', + 'sessions.sidebar.group.actions.deleteArchivedInGroupAria': '刪除 {label} 中已封存會話', + 'sessions.sidebar.group.actions.deleteArchivedSessions': '刪除已封存會話', + 'sessions.sidebar.group.actions.deleteGroupAria': '刪除 {label}', + 'sessions.sidebar.group.actions.deleteWorktree': '刪除 worktree', + 'sessions.sidebar.group.actions.newDraftInGroupAria': '在 {label} 中新增草稿會話', + 'sessions.sidebar.grouping.projectRoot': '專案根目錄', + 'sessions.sidebar.grouping.projectRootWithBranch': '專案根目錄:{branch}', + 'sessions.sidebar.grouping.archived': '已封存', + 'sessions.sidebar.grouping.archivedDescription': '已封存且未分配的會話', + 'sessions.sidebar.folderItem.expandAria': '展開資料夾 {folderName}', + 'sessions.sidebar.folderItem.collapseAria': '摺疊資料夾 {folderName}', + 'sessions.sidebar.folderItem.namePlaceholder': '資料夾名稱', + 'sessions.sidebar.folderItem.newSessionAria': '在 {folderName} 中新增會話', + 'sessions.sidebar.folderItem.newSubfolderAria': '在 {folderName} 中新增子資料夾', + 'sessions.sidebar.folderItem.newSubfolder': '新增子資料夾', + 'sessions.sidebar.folderItem.renameAria': '重新命名資料夾 {folderName}', + 'sessions.sidebar.folderItem.deleteArchivedInFolderAria': '刪除資料夾 {folderName} 中已封存會話', + 'sessions.sidebar.folderItem.deleteFolderAria': '刪除資料夾 {folderName}', + 'sessions.sidebar.folderItem.emptyFolder': '空資料夾', + 'sessions.sidebar.sessionDialogs.ok': '確定', + 'sessions.sidebar.sessionDialogs.linkedSessionSingle': '關聯會話', + 'sessions.sidebar.sessionDialogs.linkedSessionPlural': '關聯會話', + 'sessions.sidebar.sessionDialogs.delete.note': 'worktree 目錄會保留。與所選會話關聯的子會話也會被刪除。', + 'sessions.sidebar.sessionDialogs.directory.errorSelectTitle': '選擇目錄失敗', + 'sessions.sidebar.sessionDialogs.directory.errorOpenTitle': '開啟目錄失敗', + 'sessions.sidebar.sessionDialogs.directory.errorOpenDescription': '桌面端無法授予檔案存取權限。', + 'sessions.sidebar.sessionDialogs.directory.errorAddProjectTitle': '新增專案失敗', + 'sessions.sidebar.sessionDialogs.directory.errorAddProjectDescription': '請選擇有效的目錄路徑。', + 'sessions.sidebar.sessionDialogs.worktree.errorRemoveTitle': '移除 worktree 失敗', + 'sessions.sidebar.sessionDialogs.worktree.removedTitle': 'worktree 已移除', + 'sessions.sidebar.sessionDialogs.worktree.removed': 'worktree 已移除。', + 'sessions.sidebar.sessionDialogs.worktree.removedWithRemote': 'worktree 和遠端分支已移除。', + 'sessions.sidebar.sessionDialogs.worktree.attachedArchived': '關聯 worktree 已封存。', + 'sessions.sidebar.sessionDialogs.worktree.attachedArchivedPlural': '關聯 worktree 已封存。', + 'sessions.sidebar.sessionDialogs.worktree.archivedAndRemoteRemoved': 'worktree 已封存且遠端分支已移除。', + 'sessions.sidebar.sessionDialogs.worktree.label': 'worktree', + 'sessions.sidebar.sessionDialogs.worktree.pathUnavailable': 'worktree 路徑無法使用。', + 'sessions.sidebar.sessionDialogs.worktree.uncommittedWarning': '未提交的變更將被捨棄。', + 'sessions.sidebar.sessionDialogs.actions.deleteRemoteBranch': '刪除遠端分支', + 'sessions.sidebar.sessionDialogs.actions.remoteBranchInfoUnavailable': '遠端分支資訊無法使用', + 'sessions.sidebar.sessionDialogs.actions.deleteLocalBranch': '刪除本地分支', + 'sessions.sidebar.sessionDialogs.actions.deleting': '刪除中…', + 'sessions.sidebar.sessionDialogs.actions.deleteWorktree': '刪除 worktree', + 'gitView.branch.branchToMergeInto': '要合併到 {branch} 的分支', + 'gitView.branch.branchToRebaseOnto': '要 Rebase 到其上的分支', + 'gitView.branch.create': '建立新分支...', + 'gitView.branch.currentBadge': '目前', + 'gitView.branch.currentBranchFallback': '目前分支', + 'gitView.branch.currentBranchTooltip': '目前分支', + 'gitView.branch.detachedHead': '分離的 HEAD', + 'gitView.branch.dialogDescriptionPrefix': '選擇如何將另一個分支的變更帶入', + 'gitView.branch.empty': '找不到分支。', + 'gitView.branch.localBranches': '本地分支', + 'gitView.branch.mergeDescription': '使用合併提交合併分支,並保留歷史紀錄。', + 'gitView.branch.mergeRebase': '合併 / Rebase', + 'gitView.branch.mergeRebaseTooltip': '從另一個分支合併或 Rebase 變更。', + 'gitView.branch.mergingInProgress': '正在合併...', + 'gitView.branch.namePlaceholder': '分支名稱', + 'gitView.branch.newBranchPlaceholder': '新分支名稱', + 'gitView.branch.noLocalBranches': '沒有本地分支', + 'gitView.branch.noRemoteBranches': '沒有遠端分支', + 'gitView.branch.operation': '操作', + 'gitView.branch.operationCompleted': '操作已完成', + 'gitView.branch.operationFailed': '操作失敗', + 'gitView.branch.pushToPrefix': '將', + 'gitView.branch.pushToSuffix': '推送到:', + 'gitView.branch.rebaseDescription': '將你的提交移動到另一分支之上,形成線性歷史。', + 'gitView.branch.rebasingInProgress': '正在 Rebase...', + 'gitView.branch.remoteBranches': '遠端分支', + 'gitView.branch.renameTitle': '重新命名分支', + 'gitView.branch.renameSave': '儲存分支名稱', + 'gitView.branch.renameSaving': '正在儲存分支名稱', + 'gitView.branch.renameCancel': '取消重新命名分支', + 'gitView.branch.searchPlaceholder': '搜尋分支...', + 'gitView.branch.selectBranch': '選擇分支...', + 'gitView.branch.summaryMergeInfix': '合併到', + 'gitView.branch.summaryMergePrefix': '這將把', + 'gitView.branch.summaryRebaseInfix': 'Rebase 到', + 'gitView.branch.summaryRebasePrefix': '這將把', + 'gitView.branch.updateDescriptionPrefix': '將另一個分支的變更帶入', + 'gitView.branch.updateTitle': '更新分支', + 'gitView.changes.changedFilesAria': '已變更檔案', + 'gitView.changes.clearSelectionAria': '清除檔案選取', + 'gitView.changes.collapseDirectoryAria': '摺疊目錄 {path}', + 'gitView.changes.expandDirectoryAria': '展開目錄 {path}', + 'gitView.changes.revertAll': '全部還原', + 'gitView.changes.revertAllDescriptionPlural': '這將捨棄列表中 {count} 個檔案的本地變更。', + 'gitView.changes.revertAllDescriptionSingle': '這將捨棄列表中 {count} 個檔案的本地變更。', + 'gitView.changes.revertAllDialogTitle': '還原所有變更?', + 'gitView.changes.revertFileAria': '還原 {path} 的變更', + 'gitView.changes.revertFileTooltip': '還原變更', + 'gitView.changes.reverting': '正在還原...', + 'gitView.changes.selectAllAria': '全選檔案', + 'gitView.changes.selectFileAria': '選擇 {path}', + 'gitView.changes.stagedTitle': '已暫存', + 'gitView.changes.resizeSplitAria': '調整已暫存和未暫存更改區域大小', + 'gitView.changes.stageAllAria': '暫存所有更改', + 'gitView.changes.stageDirectoryAria': '暫存 {path} 中的所有更改', + 'gitView.changes.stageFileAria': '暫存 {path}', + 'gitView.changes.title': '變更', + 'gitView.changes.toggleDirectorySelectionAria': '切換目錄 {path} 的選取', + 'gitView.changes.unstageAllAria': '取消暫存所有更改', + 'gitView.changes.unstageDirectoryAria': '取消暫存 {path} 中的所有更改', + 'gitView.changes.unstageFileAria': '取消暫存 {path}', + 'gitView.commit.addGitmoji': '加入 gitmoji', + 'gitView.commit.aiHighlights.insertAria': '將重點插入提交訊息', + 'gitView.commit.aiHighlights.insertTooltip': '將重點附加到提交訊息', + 'gitView.commit.aiHighlights.title': '重點', + 'gitView.commit.commit': '提交', + 'gitView.commit.commitAria': '提交', + 'gitView.commit.committing': '提交中...', + 'gitView.commit.generate': '生成', + 'gitView.commit.generateAria': '生成提交訊息', + 'gitView.commit.messagePlaceholder': '提交訊息', + 'gitView.commit.push': 'Commit & sync', + 'gitView.commit.pushAria': 'Commit and sync', + 'gitView.commit.pushing': 'sync 中...', + 'gitView.commit.selectFilesHint': '在「變更」中選擇檔案以啟用提交。', + 'gitView.commit.stageFilesHint': '暫存文件以啟用提交。', + 'gitView.commit.title': '提交', + 'gitView.common.cancel': '取消', + 'gitView.common.close': '關閉', + 'gitView.common.done': '完成', + 'gitView.common.processing': '處理中...', + 'gitView.common.reset': '重設', + 'gitView.conflict.abortOperation': '中止 {operation}', + 'gitView.conflict.conflictedFiles': '衝突檔案:', + 'gitView.conflict.continueLater': '稍後繼續', + 'gitView.conflict.detectedDescription': '{operation} 操作產生了需要解決的衝突。', + 'gitView.conflict.detectedTitle': '偵測到 {operation} 衝突', + 'gitView.conflict.errorLoadingDetails': '載入詳情失敗:{message}', + 'gitView.conflict.headInfo': 'HEAD 資訊:', + 'gitView.conflict.loadFailed': '載入衝突詳情失敗', + 'gitView.conflict.loading': '正在載入衝突詳情...', + 'gitView.conflict.noActiveSession': '沒有活動會話', + 'gitView.conflict.noActiveSessionDescription': '請先開啟一個聊天會話或新增會話。', + 'gitView.conflict.resolveCurrentSession': '在目前會話中解決', + 'gitView.conflict.resolveNewSession': '在新會話中解決', + 'gitView.empty.cleanDescription': '所有變更都已提交', + 'gitView.empty.cleanTitle': '工作區乾淨', + 'gitView.empty.pullBehindPlural': 'Pull {count} 個提交', + 'gitView.empty.pullBehindSingle': 'Pull {count} 個提交', + 'gitView.header.identityTooltip': 'Git 身分', + 'gitView.header.noIdentity': '無身分', + 'gitView.header.noProfiles': '沒有可套用的設定。', + 'gitView.header.removeRemoteAria': '移除遠端 {name}', + 'gitView.header.removeRemoteTitle': '移除 {name}', + 'gitView.history.binary': '二進位', + 'gitView.history.binaryNoDiff': '二進位檔案 — 無可用 diff', + 'gitView.history.commitsPlaceholder': '提交數', + 'gitView.history.copySha': '複製 SHA', + 'gitView.history.diffError': '載入 diff 失敗,點擊重試。', + 'gitView.history.largeDiffDescription': '渲染可能較慢。你仍可點擊下方查看 diff。', + 'gitView.history.largeDiffTitle': '大型 diff({count} 行變更)', + 'gitView.history.loadingDiff': '正在載入 diff...', + 'gitView.history.loadingFiles': '正在載入檔案...', + 'gitView.history.logSize100': '100 個提交', + 'gitView.history.logSize25': '25 個提交', + 'gitView.history.logSize50': '50 個提交', + 'gitView.history.noCommits': '找不到提交', + 'gitView.history.noFiles': '沒有檔案', + 'gitView.history.renamedNoDiff': '已重新命名檔案 — 不支援 diff', + 'gitView.history.renderDiffAnyway': '仍然渲染', + 'gitView.history.title': '歷史紀錄', + 'gitView.integrate.checking': '檢查中…', + 'gitView.integrate.cherryPickAbortedToast': '已中止 cherry-pick', + 'gitView.integrate.cherryPickConflictDescription': '請先解決衝突,然後繼續。', + 'gitView.integrate.cherryPickConflictToast': 'cherry-pick 衝突', + 'gitView.integrate.cherryPickContinueFailedToast': '繼續 cherry-pick 失敗', + 'gitView.integrate.cherryPickFinishedToast': 'cherry-pick 已完成', + 'gitView.integrate.commitsMovedDescriptionPlural': '已將 {count} 個提交移動到 {branch}', + 'gitView.integrate.commitsMovedDescriptionSingle': '已將 {count} 個提交移動到 {branch}', + 'gitView.integrate.commitsMovedToast': '提交已移動', + 'gitView.integrate.commitsToMove': '待移動提交', + 'gitView.integrate.conflictsInFiles': '{count} 個檔案存在衝突', + 'gitView.integrate.currentCommit': '目前提交', + 'gitView.integrate.currentSession': '目前會話', + 'gitView.integrate.failedToMoveToast': '移動提交失敗', + 'gitView.integrate.moreFiles': '另有 {count} 個', + 'gitView.integrate.move': '移動', + 'gitView.integrate.moveCommits': '移動提交', + 'gitView.integrate.moving': '移動中…', + 'gitView.integrate.newSession': '新會話', + 'gitView.integrate.noActiveSession': '沒有活動會話', + 'gitView.integrate.noActiveSessionDescription': '請先開啟聊天會話或新增會話。', + 'gitView.integrate.noCommitsToMove': '沒有可移動的提交。', + 'gitView.integrate.noCommitsToMoveToast': '沒有可移動的提交', + 'gitView.integrate.previewUnavailable': '預覽無法使用。', + 'gitView.integrate.showAll': '顯示全部', + 'gitView.integrate.showLess': '收起', + 'gitView.integrate.showingFirstCommits': '顯示前 {count} 個提交。', + 'gitView.integrate.target': '目標', + 'gitView.integrate.title': '重新整合提交', + 'gitView.integrate.toMoveCount': '{count} 待移動', + 'gitView.operation.abort': '中止', + 'gitView.operation.continue': '繼續', + 'gitView.operation.inProgressTitle': '{operation} 進行中', + 'gitView.operation.merge': '合併', + 'gitView.operation.mergeInProgressWithHead': '合併進行中({head})', + 'gitView.operation.mergingMessage': '正在合併:{message}', + 'gitView.operation.rebase': 'Rebase', + 'gitView.operation.rebaseInProgress': 'Rebase 進行中', + 'gitView.operation.rebasingOnto': '正在將 {headName} Rebase 到 {onto}', + 'gitView.operation.resolveConflictsHint': '解決衝突,然後繼續操作。', + 'gitView.operation.resolveWithAi': '使用 AI 解決', + 'gitView.stash.confirmButton': 'Stash 並 {operation}', + 'gitView.stash.description': '你有未提交的變更會被此次 {operation} 覆寫。是否先暫時 Stash 這些變更?', + 'gitView.stash.mergeWith': '與', + 'gitView.stash.rebaseOnto': 'Rebase 到', + 'gitView.stash.restoreAfterOperation': '{operation} 後恢復變更', + 'gitView.stash.restoreAria': '在操作後恢復變更', + 'gitView.stash.stepRestore': '恢復已 Stash 的變更', + 'gitView.stash.stepStash': 'Stash 未提交的變更', + 'gitView.stash.thisWill': '這將會:', + 'gitView.stash.title': '未提交的變更', + 'gitView.stashes.actions.apply': 'Apply', + 'gitView.stashes.actions.drop': 'Drop', + 'gitView.stashes.actions.pop': 'Pop', + 'gitView.stashes.actions.stashCurrent': 'Stash 目前的變更', + 'gitView.stashes.actions.stashCurrentWithCount': 'Stash {count} 個檔案', + 'gitView.stashes.confirm.drop': 'Drop {ref}?', + 'gitView.stashes.description': '儲存、還原與清理此儲存庫的 Git stashes。', + 'gitView.stashes.empty.list': '目前沒有 stashes。', + 'gitView.stashes.empty.search': '沒有符合的 stashes。', + 'gitView.stashes.includeUntrackedHint': '會自動包含 untracked 檔案。', + 'gitView.stashes.fileCount': '{count} 個檔案', + 'gitView.stashes.fileCountLoading': '正在計算檔案數量...', + 'gitView.stashes.itemNumber': '#{number}', + 'gitView.stashes.latestLabel': '最新', + 'gitView.stashes.messagePlaceholder': 'Stash 名稱', + 'gitView.stashes.searchPlaceholder': '搜尋 stashes', + 'gitView.stashes.title': 'Stashes', + 'gitView.stashes.toast.applyFailed': 'Apply stash 失敗', + 'gitView.stashes.toast.applySuccess': '已 apply stash', + 'gitView.stashes.toast.createFailed': 'Stash 變更失敗', + 'gitView.stashes.toast.created': '已 stash 變更', + 'gitView.stashes.toast.dropFailed': 'Drop stash 失敗', + 'gitView.stashes.toast.dropSuccess': '已 drop stash', + 'gitView.stashes.toast.loadFailed': '載入 stashes 失敗', + 'gitView.stashes.toast.noChanges': '沒有可 stash 的本機變更', + 'gitView.stashes.toast.popFailed': 'Pop stash 失敗', + 'gitView.stashes.toast.popSuccess': '已 pop stash', + 'gitView.stashes.untitled': '未命名的 stash', + 'gitView.sync.fetch': 'Fetch', + 'gitView.sync.fetchFromRemote': '從 {name} Fetch', + 'gitView.sync.fetchTooltip': '從遠端 Fetch', + 'gitView.sync.commitOrStashTooltip': '同步前請先提交或 Stash 你的變更', + 'gitView.sync.moreActionsAria': '更多同步操作', + 'gitView.sync.noRemoteTooltip': '未設定遠端', + 'gitView.sync.pull': 'Pull', + 'gitView.sync.pullTooltip': 'Pull 變更', + 'gitView.sync.pullTooltipBehind': 'Pull 變更(落後 {count})', + 'gitView.sync.push': 'Push', + 'gitView.sync.pushTooltip': 'Push 變更', + 'gitView.sync.pushTooltipAhead': 'Push 變更(領先 {count})', + 'gitView.sync.sync': 'sync', + 'gitView.sync.syncChanges': 'Sync Changes', + 'gitView.sync.syncChangesTooltip': 'Sync Changes({behind} 下,{ahead} 上)', + 'gitView.sync.syncChangesWithCounts': 'Sync Changes {behind}↓ {ahead}↑', + 'gitView.sync.syncCounts': '{behind}↓ {ahead}↑', + 'gitView.branch.actionsUnavailable': '目前儲存庫狀態下分支操作無法使用', + 'gitView.conflict.noDetailsAvailable': '沒有可用的衝突詳情', + 'gitView.empty.notGitRepository': '目前目錄不是 Git 儲存庫', + 'gitView.empty.notGitRepositoryDescription': '請在此目錄初始化 Git,或開啟一個 Git 儲存庫。', + 'gitView.empty.selectSessionOrDirectory': '請選擇會话或目錄以查看 Git 狀態', + 'gitView.empty.worktreeFeaturesUnavailable': '目前工作區模式下,worktree 功能無法使用。', + 'gitView.empty.worktreeSetupDescription': '正在完成 worktree 設定並準備儲存庫狀態。', + 'gitView.empty.worktreeSetupInProgress': 'worktree 設定進行中', + 'gitView.gitmoji.empty': '找不到 gitmoji', + 'gitView.gitmoji.searchPlaceholder': '搜尋 gitmoji...', + 'gitView.gitmoji.title': '插入 gitmoji', + 'gitView.history.dialogDescription': '瀏覽最近提交並查看變更檔案。', + 'gitView.loading.checkingRepository': '正在檢查儲存庫...', + 'gitView.loading.loading': '載入中...', + 'gitView.pr.actions.add': '加入', + 'gitView.pr.actions.cancelEditing': '取消編輯', + 'gitView.pr.actions.cancelEditingAria': '取消 PR 編輯', + 'gitView.pr.actions.createPr': '建立 PR', + 'gitView.pr.actions.edit': '編輯', + 'gitView.pr.actions.editPr': '編輯 PR', + 'gitView.pr.actions.editPrAria': '編輯 Pull Request', + 'gitView.pr.actions.hide': '隱藏', + 'gitView.pr.actions.markReady': '標記為可審查', + 'gitView.pr.actions.markReadyAria': '將 Pull Request 標記為可審查', + 'gitView.pr.actions.mergePr': '合併 PR', + 'gitView.pr.actions.mergePrAria': '合併 Pull Request', + 'gitView.pr.actions.openChecks': '開啟檢查', + 'gitView.pr.actions.openChecksAria': '開啟失敗的檢查', + 'gitView.pr.actions.openComments': '開啟留言', + 'gitView.pr.actions.openCommentsAria': '開啟 Pull Request 留言', + 'gitView.pr.actions.openOnGitHub': '在 GitHub 中開啟', + 'gitView.pr.actions.openOnGitHubAria': '在 GitHub 中開啟 Pull Request', + 'gitView.pr.actions.openSettings': '開啟設定', + 'gitView.pr.actions.repo': '儲存庫', + 'gitView.pr.actions.resolveFailedChecks': '處理失敗檢查', + 'gitView.pr.actions.resolveFailedChecksAria': '將失敗的檢查傳送給 Agent', + 'gitView.pr.actions.savePr': '儲存 PR', + 'gitView.pr.actions.savePrAria': '儲存 Pull Request 變更', + 'gitView.pr.actions.sendCommentToAgent': '將留言傳送給 Agent', + 'gitView.pr.actions.sendCommentToAgentAria': '將此留言傳送給 Agent', + 'gitView.pr.actions.sendToAgent': '傳送給 Agent', + 'gitView.pr.actions.shareComments': '分享留言', + 'gitView.pr.actions.shareCommentsAria': '將 Pull Request 留言傳送給 Agent', + 'gitView.pr.actions.toggleDraftAria': '切換草稿狀態', + 'gitView.pr.actions.refresh': '重新整理 PR 狀態', + 'gitView.pr.actions.refreshAria': '重新整理 Pull Request 狀態', + 'gitView.pr.additionalContext.added': '已加入', + 'gitView.pr.additionalContext.hint': '加入額外上下文可提升審查品質。', + 'gitView.pr.additionalContext.optional': '可選', + 'gitView.pr.additionalContext.title': '補充上下文', + 'gitView.pr.checkDetails.empty': '沒有可用的檢查詳情', + 'gitView.pr.checkDetails.title': '失敗檢查詳情', + 'gitView.pr.checkingStatus': '正在檢查 Pull Request 狀態...', + 'gitView.pr.checks.label': 'checks', + 'gitView.pr.checks.completedLabel': '完成時間', + 'gitView.pr.checks.conclusionLabel': '結論', + 'gitView.pr.checks.startedLabel': '開始時間', + 'gitView.pr.checks.statusLabel': '狀態', + 'gitView.pr.checks.stepLabel': '步驟', + 'gitView.pr.checks.steps': '步驟', + 'gitView.pr.comments.empty': '找不到留言', + 'gitView.pr.comments.generalContext': '普通留言', + 'gitView.pr.comments.reviewContext': '審查留言', + 'gitView.pr.comments.title': '留言', + 'gitView.pr.comments.unknownAuthor': '未知作者', + 'gitView.pr.createTitle': '建立 Pull Request', + 'gitView.pr.draftMustBeReady': '草稿 PR 必須先標記為可審查才能合併。', + 'gitView.pr.field.baseBranch': '基底分支', + 'gitView.pr.field.description': '描述', + 'gitView.pr.field.draft': '草稿', + 'gitView.pr.field.title': '標題', + 'gitView.pr.githubNotConnected': 'GitHub 未連線', + 'gitView.pr.loadingDescription': '正在載入描述...', + 'gitView.pr.mergeMethod.merge': '建立合併提交', + 'gitView.pr.mergeMethod.rebase': 'Rebase 並合併', + 'gitView.pr.mergeMethod.squash': '壓縮並合併', + 'gitView.pr.noDescription': '無描述', + 'gitView.pr.noMergePermission': '你沒有權限合併此 Pull Request。', + 'gitView.pr.notMergeable': '不可合併', + 'gitView.pr.numberLabel': 'PR #{number}', + 'gitView.pr.placeholder.additionalContext': '補充約束、發布說明或評審上下文...', + 'gitView.pr.placeholder.description': '描述此變更...', + 'gitView.pr.placeholder.main': '總結你的 Pull Request', + 'gitView.pr.placeholder.selectBaseBranch': '選擇基底分支', + 'gitView.pr.placeholder.title': 'Pull Request 標題', + 'gitView.pr.placeholder.whatChanged': '改了什麼,為什麼改?', + 'gitView.pr.statusUnavailable': 'Pull Request 狀態無法使用', + 'gitView.pr.toast.baseBranchRequired': '請選擇基底分支', + 'gitView.pr.toast.baseMustDifferFromHead': '基底分支必須與目前分支不同', + 'gitView.pr.toast.createPrFailed': '建立 Pull Request 失敗', + 'gitView.pr.toast.generateDescriptionFailed': '生成 Pull Request 描述失敗', + 'gitView.pr.toast.githubApiUnavailable': 'GitHub API 無法使用', + 'gitView.pr.toast.loadCheckDetailsFailed': '載入檢查詳情失敗', + 'gitView.pr.toast.loadChecksFailed': '載入 Pull Request 檢查失敗', + 'gitView.pr.toast.loadCommentsFailed': '載入留言失敗', + 'gitView.pr.toast.loadPrCommentsFailed': '載入 Pull Request 留言失敗', + 'gitView.pr.toast.markReadyFailed': '標記 Pull Request 可審查失敗', + 'gitView.pr.toast.markedReady': 'Pull Request 已標記為可審查', + 'gitView.pr.toast.mergeFailed': '合併 Pull Request 失敗', + 'gitView.pr.toast.noActiveSession': '沒有活動聊天會話', + 'gitView.pr.toast.noActiveSessionDescription': '請先開啟或建立聊天會話,再向 Agent 傳送上下文。', + 'gitView.pr.toast.noFailedChecks': '沒有失敗檢查', + 'gitView.pr.toast.noModelSelected': '請先選擇模型', + 'gitView.pr.toast.noPrComments': '找不到 Pull Request 留言', + 'gitView.pr.toast.prCreated': 'Pull Request 已建立', + 'gitView.pr.toast.prMerged': 'Pull Request 已合併', + 'gitView.pr.toast.prNotMerged': 'Pull Request 未合併', + 'gitView.pr.toast.prUpdated': 'Pull Request 已更新', + 'gitView.pr.toast.sendMessageFailed': '向 Agent 傳送訊息失敗', + 'gitView.pr.toast.titleRequired': '標題不能為空', + 'gitView.pr.toast.updatePrFailed': '更新 Pull Request 失敗', + 'gitView.pullRequest.createHint': '從目前分支建立並管理 Pull Request。', + 'gitView.pullRequest.availableOnFeatureBranches': '目前分支可以開啟 PR 時可用。', + 'gitView.pullRequest.title': 'Pull Request', + 'gitView.tabs.commit': '提交', + 'gitView.tabs.pr': 'PR', + 'gitView.tabs.update': '更新', + 'gitView.tabs.worktree': 'Worktree', + 'gitView.toast.abortOperationFailed': '中止操作失敗', + 'gitView.toast.appliedIdentity': '已套用身分:{name}', + 'gitView.toast.applyIdentityFailed': '套用身分失敗', + 'gitView.toast.branchCreatedLocally': '分支已在本地建立,但設定上游失敗。', + 'gitView.toast.cannotCheckout': '無法切換分支:{reason}', + 'gitView.toast.cannotCreateBranch': '無法建立分支:{reason}', + 'gitView.toast.cannotRemoveOriginRemote': '不能移除 origin 遠端', + 'gitView.toast.cannotRenameBranch': '無法重新命名分支:{reason}', + 'gitView.toast.checkedOut': '已切換到 {name}', + 'gitView.toast.checkoutFailed': '切換到 {name} 失敗', + 'gitView.toast.commitCreated': '提交已建立', + 'gitView.toast.commitHashCopied': '提交雜湊已複製', + 'gitView.toast.continueOperationFailed': '繼續操作失敗', + 'gitView.toast.copyFailed': '複製失敗', + 'gitView.toast.createBranchFailed': '建立分支失敗', + 'gitView.toast.createCommitFailed': '建立提交失敗', + 'gitView.toast.createdBranch': '已建立分支 {name}', + 'gitView.toast.enterCommitMessage': '請輸入提交訊息', + 'gitView.toast.fetchedFromRemote': '已從 {name} Fetch', + 'gitView.toast.generateCommitMessageFailed': '生成提交訊息失敗', + 'gitView.toast.mergeAborted': '合併已中止', + 'gitView.toast.mergeCompleted': '合併完成', + 'gitView.toast.mergeConflictsDetected': '偵測到合併衝突', + 'gitView.toast.mergedIntoBranch': '已將 {branch} 合併到 {currentBranch}', + 'gitView.toast.pulledFilesPlural': '已從 {name} Pull {count} 個檔案', + 'gitView.toast.pulledFilesSingle': '已從 {name} Pull {count} 個檔案', + 'gitView.toast.pushedToUpstream': '已推送到上游', + 'gitView.toast.commitOrStashBeforeSync': '同步前請先提交或 Stash 你的變更', + 'gitView.toast.alreadyUpToDate': '已是最新狀態', + 'gitView.toast.syncedPulledPluralAndPushed': '已從 {name} Pull {count} 個檔案並推送到上游', + 'gitView.toast.syncedPulledSingleAndPushed': '已從 {name} Pull {count} 個檔案並推送到上游', + 'gitView.toast.syncedChanges': '已同步變更', + 'gitView.toast.rebaseAborted': 'Rebase 已中止', + 'gitView.toast.rebaseConflictsDetected': '偵測到 Rebase 衝突', + 'gitView.toast.rebaseStepCompleted': 'Rebase 步驟已完成', + 'gitView.toast.rebasedOntoBranch': '已將 {currentBranch} Rebase 到 {branch}', + 'gitView.toast.refreshRepositoryFailed': '重新整理儲存庫失敗', + 'gitView.toast.remoteNameRequired': '遠端名稱不能為空', + 'gitView.toast.removedRemote': '已移除遠端 {name}', + 'gitView.toast.renameBranchFailed': '將 {oldName} 重新命名為 {newName} 失敗', + 'gitView.toast.renamedBranch': '已將 {oldName} 重新命名為 {newName}', + 'gitView.toast.restoreStashFailed': '恢復 Stash 變更失敗', + 'gitView.toast.restoreStashManually': '請手動恢復 Stash 的變更', + 'gitView.toast.revertFailed': '回退變更失敗', + 'gitView.toast.revertedFile': '已回退 {path}', + 'gitView.toast.revertedFilesPlural': '已回退 {count} 個檔案', + 'gitView.toast.revertedFilesSingle': '已回退 {count} 個檔案', + 'gitView.toast.revertedSomePlural': '已回退 {success} 個檔案,{failed} 個失敗', + 'gitView.toast.revertedSomeSingle': '已回退 {success} 個檔案,{failed} 個失敗', + 'gitView.toast.stageFileFailed': '暫存更改失敗', + 'gitView.toast.stageFileToCommit': '請至少暫存一個文件再提交', + 'gitView.toast.stageFileToDescribe': '請至少暫存一個文件再生成描述', + 'gitView.toast.selectFileToCommit': '請至少選擇一個檔案再提交', + 'gitView.toast.selectFileToDescribe': '請至少選擇一個檔案再生成描述', + 'gitView.toast.stashedRestored': '已恢復 Stash 的變更', + 'gitView.toast.syncActionFailed': '{action} 失敗', + 'gitView.toast.unstageFileFailed': '取消暫存更改失敗', + 'gitView.toast.upstreamSet': '已將 {branch} 的上游設定為 {remote}', + 'gitView.worktree.availableInWorktreeMode': '僅在 worktree 模式可用', + 'contextPanel.mode.chat': '聊天', + 'contextPanel.mode.files': '檔案', + 'contextPanel.mode.diff': '差異', + 'contextPanel.mode.stagedDiff': 'Staged Diff', + 'contextPanel.mode.workingDiff': 'Working Diff', + 'contextPanel.mode.plan': '計畫', + 'contextPanel.mode.context': '上下文', + 'contextPanel.mode.preview': '預覽', + 'contextPanel.mode.browser': '瀏覽器', + 'contextPanel.browser.open': '開啟瀏覽器面板', + 'contextPanel.browser.addressAria': '瀏覽器網址', + 'contextPanel.browser.empty': '網頁瀏覽器', + 'contextPanel.browser.emptyHint': '在上方輸入網址開始瀏覽', + 'contextPanel.tab.closeTabAria': '關閉 {label} 分頁', + 'contextPanel.actions.collapsePanel': '摺疊面板', + 'contextPanel.actions.expandPanel': '展開面板', + 'contextPanel.actions.closePanel': '關閉面板', + 'contextPanel.actions.resizePanelAria': '調整上下文面板大小', + 'contextPanel.iframe.sessionChatTitle': '會話聊天 {sessionID}', + 'contextPanel.preview.actions.reload': '重新整理預覽', + 'contextPanel.preview.actions.openExternal': '在瀏覽器中開啟', + 'contextPanel.preview.actions.retry': '重試', + 'contextPanel.preview.iframeTitle': '預覽', + 'contextPanel.preview.invalidUrl': '預覽需要有效的 http(s) URL。', + 'contextPanel.preview.empty': '沒有預覽 URL', + 'contextPanel.preview.loading': '正在連線預覽 proxy...', + 'contextPanel.preview.proxyError': '無法啟動預覽 proxy。', + 'contextPanel.preview.upstreamUnreachable': '開發伺服器無回應。', + 'contextPanel.preview.upstreamUnreachableHint': '請確認開發伺服器仍在執行,然後重試。', + + 'terminalView.preview.open': '預覽', + 'terminalView.preview.openTitle': '開啟預覽面板', + 'sidebarFilesTree.menu.rename': '重新命名', + 'sidebarFilesTree.menu.copyPath': '複製路徑', + 'sidebarFilesTree.menu.save': '儲存', + 'sidebarFilesTree.menu.newFile': '新增檔案', + 'sidebarFilesTree.menu.newFolder': '新增資料夾', + 'sidebarFilesTree.menu.delete': '刪除', + 'sidebarFilesTree.toast.pathCopied': '路徑已複製', + 'sidebarFilesTree.toast.copyFailed': '複製失敗', + 'sidebarFilesTree.toast.revealFailed': '定位路徑失敗', + 'sidebarFilesTree.toast.filenameRequired': '檔案名稱不能為空', + 'sidebarFilesTree.toast.writeNotSupported': '不支援寫入', + 'sidebarFilesTree.toast.fileCreated': '檔案已建立', + 'sidebarFilesTree.toast.operationFailed': '操作失敗', + 'sidebarFilesTree.toast.folderNameRequired': '資料夾名稱不能為空', + 'sidebarFilesTree.toast.folderCreated': '資料夾已建立', + 'sidebarFilesTree.toast.nameRequired': '名稱不能為空', + 'sidebarFilesTree.toast.renameNotSupported': '不支援重新命名', + 'sidebarFilesTree.toast.renamedSuccessfully': '重新命名成功', + 'sidebarFilesTree.toast.deleteNotSupported': '不支援刪除', + 'sidebarFilesTree.toast.deletedSuccessfully': '刪除成功', + 'sidebarFilesTree.search.placeholder': '搜尋檔案...', + 'sidebarFilesTree.search.clearAria': '清除搜尋', + 'sidebarFilesTree.actions.newFileTitle': '新增檔案', + 'sidebarFilesTree.actions.newFolderTitle': '新增資料夾', + 'sidebarFilesTree.actions.refreshTitle': '重新整理', + 'sidebarFilesTree.state.searching': '搜尋中...', + 'sidebarFilesTree.state.loading': '載入中...', + 'sidebarFilesTree.dialog.createFile.title': '新增檔案', + 'sidebarFilesTree.dialog.createFolder.title': '新增資料夾', + 'sidebarFilesTree.dialog.rename.title': '重新命名', + 'sidebarFilesTree.dialog.delete.title': '刪除', + 'sidebarFilesTree.dialog.createFile.description': '在 {path} 中建立新檔案', + 'sidebarFilesTree.dialog.createFolder.description': '在 {path} 中建立新資料夾', + 'sidebarFilesTree.dialog.rename.description': '重新命名 {name}', + 'sidebarFilesTree.dialog.delete.description': '確定要刪除 {name} 嗎?此操作不可復原。', + 'sidebarFilesTree.dialog.rootFallback': '根目錄', + 'sidebarFilesTree.dialog.rename.placeholder': '新名稱', + 'sidebarFilesTree.dialog.namePlaceholder': '名稱', + 'sidebarFilesTree.dialog.cancel': '取消', + 'sidebarFilesTree.dialog.confirm': '確認', + 'sidebarFilesTree.dialog.delete.confirm': '刪除', + 'filesView.dialog.createFile.title': '新增檔案', + 'filesView.dialog.createFolder.title': '新增資料夾', + 'filesView.dialog.rename.title': '重新命名', + 'filesView.dialog.delete.title': '刪除', + 'filesView.dialog.createFile.description': '在 {path} 中建立新檔案', + 'filesView.dialog.createFolder.description': '在 {path} 中建立新資料夾', + 'filesView.dialog.rename.description': '重新命名 {name}', + 'filesView.dialog.delete.description': '確定要刪除 {name} 嗎?此操作不可復原。', + 'filesView.dialog.rootFallback': '根目錄', + 'filesView.dialog.rename.placeholder': '新名稱', + 'filesView.dialog.namePlaceholder': '名稱', + 'filesView.dialog.cancel': '取消', + 'filesView.dialog.confirm': '確認', + 'filesView.dialog.delete.confirm': '刪除', + 'filesView.editor.saving': '儲存中...', + 'filesView.editor.saved': '已儲存', + 'filesView.editor.autoSaveOn': '自動儲存已開啟', + 'filesView.editor.manualSave': '手動儲存', + 'filesView.editor.saveNowTitle': '立即儲存({shortcut})- 1.5 秒後自動儲存', + 'filesView.editor.saveNowManualTitle': '立即儲存({shortcut})', + 'filesView.editor.saveAria': '儲存({shortcut})', + 'filesView.editor.openInDesktopApp': '在桌面應用程式中開啟', + 'filesView.editor.refreshApps': '重新整理應用程式', + 'filesView.editor.disableLineWrap': '關閉自動換行', + 'filesView.editor.enableLineWrap': '開啟自動換行', + 'filesView.editor.findInFile': '檔案內尋找', + 'filesView.editor.goToLine': '跳轉到行', + 'filesView.editor.switchToTextView': '切換到文字檢視', + 'filesView.editor.switchToTreeView': '切換到樹狀檢視', + 'filesView.toast.copyFailed': '複製失敗', + 'filesView.toast.openInAppFailed': '在 {app} 中開啟失敗', + 'filesView.toast.savingNotSupported': '不支援儲存', + 'filesView.toast.writeFileFailed': '寫入檔案失敗', + 'filesView.toast.saveFailed': '儲存失敗', + 'filesView.editor.copyFileContents': '複製檔案內容', + 'filesView.editor.copyFilePathTitle': '複製檔案路徑({path})', + 'filesView.editor.saveFile': '儲存檔案', + 'filesView.editor.exitFullscreen': '退出全螢幕', + 'filesView.editor.fullscreen': '全螢幕', + 'filesView.unsaved.title': '未儲存的變更', + 'filesView.unsaved.description': '繼續前是否儲存你的編輯?', + 'filesView.unsaved.saveChanges': '儲存變更', + 'filesView.unsaved.discard': '捨棄', + 'filesView.editor.back': '返回', + 'filesView.editor.openFilesAria': '開啟檔案清單', + 'filesView.editor.closeFileAria': '關閉 {name}', + 'filesView.editor.selectFile': '選擇一個檔案', + 'filesView.editor.showControlsAria': '顯示編輯器控制項', + 'filesView.editor.controlsTitle': '編輯器控制項', + 'filesView.editor.pickFileFromTree': '請從檔案樹中選擇一個檔案。', + 'filesView.state.loading': '載入中...', + 'filesView.state.openingFileAtChange': '正在開啟變更處的檔案...', + 'filesView.tree.search.placeholder': '搜尋檔案...', + 'filesView.tree.search.clearAria': '清除搜尋', + 'filesView.tree.search.searching': '搜尋中...', + 'filesView.tree.actions.newFileTitle': '新增檔案', + 'filesView.tree.actions.newFolderTitle': '新增資料夾', + 'filesView.editor.imageAltFallback': '圖片', + 'filesView.error.jsonViewerUnavailable': 'JSON 檢視器無法使用', + 'filesView.error.switchToTextMode': '請切換到文字模式查看原始內容。', + 'filesView.warning.largeFilePreviewLimited': '該檔案較大({sizeKb}KB),預覽可能受限。', + 'filesView.error.previewUnavailable': '預覽無法使用', + 'filesView.error.switchToEditMode': '請切換到編輯模式修復問題。', + 'filesView.error.readFileFailed': '讀取檔案失敗', + 'filesView.editor.htmlPreviewTitle': 'HTML 預覽', + 'contextUsage.aria.label': '上下文用量', + 'contextUsage.mobile.title': '上下文用量', + 'contextUsage.mobile.usedTokens': '已用 Token', + 'contextUsage.mobile.contextLimit': '上下文上限', + 'contextUsage.mobile.outputLimit': '輸出上限', + 'contextUsage.mobile.usage': '使用率', + 'contextUsage.tooltip.usedTokens': '已用 Token:{tokens}', + 'contextUsage.tooltip.contextLimit': '上下文上限:{tokens}', + 'contextUsage.tooltip.outputLimit': '輸出上限:{tokens}', + 'contextSidebar.session.untitled': '未命名會話', + 'contextSidebar.empty.openSession': '請先開啟會話以查看上下文。', + 'contextSidebar.section.context': '上下文', + 'contextSidebar.section.lastAssistantMessage': '最近一條助理訊息', + 'contextSidebar.section.rawMessages': '原始訊息', + 'contextSidebar.context.percentUsed': '已使用 {percent}%', + 'contextSidebar.breakdown.user': '使用者', + 'contextSidebar.breakdown.assistant': '助理', + 'contextSidebar.breakdown.toolCalls': '工具呼叫', + 'contextSidebar.breakdown.other': '其他', + 'contextSidebar.stats.messages': '訊息', + 'contextSidebar.stats.user': '使用者', + 'contextSidebar.stats.assistant': '助理', + 'contextSidebar.stats.cost': '成本', + 'contextSidebar.tokens.input': '輸入', + 'contextSidebar.tokens.output': '輸出', + 'contextSidebar.tokens.reasoning': '推理', + 'contextSidebar.tokens.cacheRead': '快取讀取', + 'contextSidebar.tokens.cacheWrite': '快取寫入', + 'contextSidebar.actions.copyJson': '複製 JSON', + 'contextSidebar.actions.copy': '複製', + 'contextSidebar.actions.copied': '已複製', + 'planView.file.defaultName': 'plan', + 'planView.title.default': '計畫', + 'planView.error.saveFailed': '儲存失敗', + 'planView.error.previewUnavailable': '預覽無法使用', + 'planView.error.switchToEditMode': '請切換到編輯模式修復問題。', + 'planView.error.writeFailed': '寫入失敗', + 'planView.error.writePlanFileFailed': '寫入計畫檔案失敗({status})', + 'planView.actions.improvePlanAria': '改進計畫', + 'planView.actions.improve': '改進', + 'planView.actions.implementPlanAria': '執行計畫', + 'planView.actions.implement': '執行', + 'planView.actions.sendToNewSession': '傳送到新會話', + 'planView.actions.sendToNewWorktreeSession': '傳送到新 worktree 會話', + 'planView.actions.copyPlanContents': '複製計畫內容', + 'planView.state.loading': '載入中...', + 'diffView.binary.unavailable': '該檔案內容無法查看。', + 'diffView.change.untracked': '未追蹤檔案', + 'diffView.change.new': '新檔案', + 'diffView.change.deleted': '已刪除檔案', + 'diffView.change.renamed': '已重新命名檔案', + 'diffView.change.copied': '已複製檔案', + 'diffView.change.modified': '已修改檔案', + 'diffView.mode.single.label': '單一檔案', + 'diffView.mode.single.description': '一次只顯示一個檔案', + 'diffView.mode.stacked.label': '全部檔案', + 'diffView.mode.stacked.description': '將所有修改檔案堆疊顯示', + 'diffView.selector.selectFile': '選擇檔案', + 'diffView.selector.viewMode': '檢視模式', + 'diffView.image.original': '原始', + 'diffView.image.modified': '已修改', + 'diffView.image.new': '新檔案', + 'diffView.image.originalAlt': '原始:{path}', + 'diffView.image.modifiedAlt': '已修改:{path}', + 'diffView.section.files': '檔案', + 'diffView.state.selectSessionDirectory': '請選擇會話目錄以查看差異', + 'diffView.state.loadingRepositoryStatus': '正在載入儲存庫狀態...', + 'diffView.state.notGitRepository': '目前不是 Git 儲存庫。請在 Git 標籤中初始化或切換目錄。', + 'diffView.state.cleanWorkingTree': '工作區乾淨,沒有可顯示的改動', + 'diffView.state.failedToLoadDiff': '載入差異失敗', + 'diffView.state.loadingDiff': '正在載入差異...', + 'diffView.state.loadingChanges': '正在載入變更...', + 'diffView.summary.changedFilesSingle': '{count} 個檔案已變更', + 'diffView.summary.changedFilesPlural': '{count} 個檔案已變更', + 'diffView.actions.retry': '重試', + 'diffView.actions.disableLineWrap': '關閉自動換行', + 'diffView.actions.enableLineWrap': '開啟自動換行', + 'diffView.actions.openFileInEditorAtChange': '在編輯器中開啟此檔案並定位變更', + 'diffView.actions.openFileAtFirstChangedLine': '在首個變更行開啟此檔案', + 'rightSidebar.contextNotesTodo.plan.defaultTitle': '計畫', + 'rightSidebar.contextNotesTodo.empty.selectProject': '請選擇一個專案以新增筆記和待辦事項。', + 'rightSidebar.contextNotesTodo.notes.title': '快速筆記 - {project}', + 'rightSidebar.contextNotesTodo.notes.placeholder': '記錄上下文、提醒或連結', + 'rightSidebar.contextNotesTodo.todo.title': '待辦', + 'rightSidebar.contextNotesTodo.todo.itemsSingle': '{count} 項', + 'rightSidebar.contextNotesTodo.todo.itemsPlural': '{count} 項', + 'rightSidebar.contextNotesTodo.todo.clearCompleted': '清除已完成', + 'rightSidebar.contextNotesTodo.todo.inputPlaceholder': '新增待辦', + 'rightSidebar.contextNotesTodo.todo.addAria': '新增待辦', + 'rightSidebar.contextNotesTodo.todo.empty': '還沒有待辦。為此專案新增一個簡短清單吧。', + 'rightSidebar.contextNotesTodo.todo.actions.markComplete': '將「{text}」標記為已完成', + 'rightSidebar.contextNotesTodo.todo.actions.collapse': '摺疊待辦「{text}」', + 'rightSidebar.contextNotesTodo.todo.actions.expand': '展開待辦「{text}」', + 'rightSidebar.contextNotesTodo.todo.actions.delete': '刪除「{text}」', + 'rightSidebar.contextNotesTodo.todo.actions.send': '傳送「{text}」', + 'rightSidebar.contextNotesTodo.todo.actions.reorder': '重新排序「{text}」', + 'rightSidebar.contextNotesTodo.todo.resizeAria': '調整待辦清單大小', + 'rightSidebar.contextNotesTodo.todo.sendMenu.currentSession': '傳送到目前會話', + 'rightSidebar.contextNotesTodo.todo.sendMenu.newSession': '傳送到新會話', + 'rightSidebar.contextNotesTodo.todo.sendMenu.newWorktreeSession': '傳送到新 worktree 會話', + 'rightSidebar.contextNotesTodo.plans.title': '計畫', + 'rightSidebar.contextNotesTodo.plans.filesSingle': '{count} 個檔案', + 'rightSidebar.contextNotesTodo.plans.filesPlural': '{count} 個檔案', + 'rightSidebar.contextNotesTodo.plans.importFromFile': '從檔案匯入計畫', + 'rightSidebar.contextNotesTodo.plans.empty': '還沒有已儲存的計畫。', + 'rightSidebar.contextNotesTodo.plans.deletePlan': '刪除計畫', + 'rightSidebar.contextNotesTodo.plans.deletePlanWithTitle': '刪除計畫「{title}」', + 'rightSidebar.contextNotesTodo.sendDialog.title.newSession': '傳送到新會話', + 'rightSidebar.contextNotesTodo.sendDialog.title.newWorktree': '傳送到新 worktree', + 'rightSidebar.contextNotesTodo.sendDialog.variant.default': '預設', + 'rightSidebar.contextNotesTodo.sendDialog.actions.cancel': '取消', + 'rightSidebar.contextNotesTodo.sendDialog.actions.send': '傳送', + 'rightSidebar.contextNotesTodo.sendDialog.actions.sending': '傳送中', + 'rightSidebar.contextNotesTodo.toast.saveNotesFailed': '儲存專案筆記失敗', + 'rightSidebar.contextNotesTodo.toast.loadNotesFailed': '載入專案筆記失敗', + 'rightSidebar.contextNotesTodo.toast.noActiveSession': '未選擇活動會话', + 'rightSidebar.contextNotesTodo.toast.sentToCurrentSession': '待辦已傳送到目前會話', + 'rightSidebar.contextNotesTodo.toast.worktreeRequiresGitRepo': '僅 Git 儲存庫支援 worktree 操作', + 'rightSidebar.contextNotesTodo.toast.createSessionFailed': '建立會話失敗', + 'rightSidebar.contextNotesTodo.toast.sentToNewSession': '待辦已傳送到新會話', + 'rightSidebar.contextNotesTodo.toast.sentToNewWorktreeSession': '待辦已傳送到新的 worktree 會話', + 'rightSidebar.contextNotesTodo.toast.sendTodoFailed': '傳送待辦失敗', + 'rightSidebar.contextNotesTodo.toast.deletePlanFailed': '刪除計畫失敗', + 'rightSidebar.contextNotesTodo.toast.planFileEmpty': '計畫檔案為空', + 'rightSidebar.contextNotesTodo.toast.importPlanFailed': '匯入計畫失敗', + 'rightSidebar.contextNotesTodo.toast.planImported': '計畫已匯入', + 'rightSidebar.contextNotesTodo.toast.readPlanFileFailed': '讀取計畫檔案失敗', + 'inlineComment.range.lines': '行 {start}-{end}', + 'inlineComment.input.placeholder': '新增留言...(Cmd+Enter 儲存)', + 'inlineComment.actions.cancel': '取消', + 'inlineComment.actions.save': '儲存', + 'inlineComment.actions.comment': '留言', + 'inlineComment.actions.showLess': '收起', + 'inlineComment.actions.showMore': '展開', + 'inlineComment.actions.editComment': '編輯留言', + 'inlineComment.actions.deleteComment': '刪除留言', + 'inlineComment.toast.selectSessionToSave': '請選擇會話以儲存留言', + 'header.github.connectedWithLogin': 'GitHub:{login}', + 'header.github.connected': 'GitHub 已連線', + 'header.github.avatarWithLogin': '{login} 頭像', + 'header.github.avatar': 'GitHub 頭像', + 'header.github.accountsTitle': 'GitHub 帳戶', + 'header.services.openWithCurrent': '開啟實例、用量和 MCP(目前:{current})', + 'header.services.open': '開啟服務、用量和 MCP', + 'header.services.tooltip.currentInstanceWithShortcuts': '目前實例:{current}({toggle};下一分頁 {nextTab})', + 'header.services.tooltip.servicesWithShortcuts': '服務({toggle};下一分頁 {nextTab})', + 'header.services.title': '服務', + 'header.services.viewAria': '查看服務', + 'header.services.closeAria': '關閉服務', + 'header.services.rateLimits': '速率限制', + 'header.services.refreshRateLimitsAria': '重新整理速率限制', + 'header.services.noRateLimits': '沒有可用的速率限制。', + 'header.services.noRateLimitsReported': '未報告速率限制。', + 'header.services.used': '已用', + 'header.services.remaining': '剩餘', + 'header.services.shutdownDev': '停止 OpenChamber', + 'header.services.modelFamily.other': '其他', + 'header.actions.openPlanAria': '開啟計畫', + 'header.actions.planWithShortcut': '計畫({shortcut})', + 'header.actions.terminalPanelWithShortcut': '終端機面板({shortcut})', + 'header.actions.toggleTerminalPanelAria': '切換終端機面板', + 'terminalView.stream.processExitedMessage': '\r\n[處理程序已結束{exitCodeSegment}{signalSegment}]\r\n', + 'terminalView.stream.processExitedWithCode': ',結束代碼 {exitCode}', + 'terminalView.stream.processExitedWithSignal': '(訊號 {signal})', + 'terminalView.error.sessionEnded': '終端機會話已結束', + 'terminalView.error.connectionFailed': '連線失敗:{message}', + 'terminalView.error.startSessionFailed': '啟動終端機會話失敗', + 'terminalView.error.restartFailed': '重新啟動終端機失敗', + 'terminalView.error.sendInputFailed': '傳送輸入失敗', + 'terminalView.empty.noWorkingDirectory': '終端機無法使用,缺少工作目錄。', + 'terminalView.empty.selectSession': '選擇一個會話以開啟終端機。', + 'terminalView.empty.noWorkingDirectoryForSession': '此會話沒有可用的工作目錄。', + 'terminalView.actions.retry': '重試', + 'terminalView.actions.hardRestart': '強制重新啟動', + 'terminalView.actions.hardRestartTitle': '強制終止並建立全新會話', + 'terminalView.quickKeys.escape': 'Esc', + 'terminalView.quickKeys.tabAria': 'Tab 鍵', + 'terminalView.quickKeys.controlLabel': 'Ctrl', + 'terminalView.quickKeys.controlModifierAria': 'Control 修飾鍵', + 'terminalView.quickKeys.commandModifierAria': 'Command 修飾鍵', + 'terminalView.quickKeys.arrowUpAria': '上箭頭', + 'terminalView.quickKeys.arrowLeftAria': '左箭頭', + 'terminalView.quickKeys.arrowDownAria': '下箭頭', + 'terminalView.quickKeys.arrowRightAria': '右箭頭', + 'terminalView.quickKeys.enterAria': 'Enter 鍵', + 'terminalView.tabs.closeTabTitle': '關閉分頁', + 'terminalView.tabs.newTabTitle': '新增分頁', + 'terminalView.bottomDock.resizeAria': '調整終端機面板大小', + 'terminalView.bottomDock.restoreTitle': '恢復終端機面板高度', + 'terminalView.bottomDock.restoreAria': '恢復終端機面板高度', + 'terminalView.bottomDock.expandTitle': '展開終端機面板', + 'terminalView.bottomDock.expandAria': '展開終端機面板', + 'terminalView.bottomDock.closeTitle': '關閉終端機面板', + 'terminalView.bottomDock.closeAria': '關閉終端機面板', + 'terminalView.viewport.inputAria': '終端機輸入', + 'directoryExplorerDialog.title': '新增專案目錄', + 'directoryExplorerDialog.description': '選擇一個資料夾新增為專案。', + 'directoryExplorerDialog.toggle.showHidden': '顯示隱藏項目', + 'directoryExplorerDialog.pathInput.placeholder': '輸入路徑或從樹狀目錄中選擇...', + 'directoryExplorerDialog.actions.openingFinder': '正在開啟...', + 'directoryExplorerDialog.actions.openInFinder': '在 Finder 中開啟', + 'directoryExplorerDialog.actions.adding': '新增中...', + 'directoryExplorerDialog.actions.addProject': '新增專案', + 'directoryExplorerDialog.actions.addLocalProject': '新增本地專案', + 'directoryExplorerDialog.actions.cloneRepository': '複製儲存庫', + 'directoryExplorerDialog.actions.cloneAndAdd': '複製並新增', + 'directoryExplorerDialog.actions.cloning': '正在複製...', + 'directoryExplorerDialog.actions.createAndAdd': '建立並新增', + 'directoryExplorerDialog.actions.alreadyAdded': '已新增', + 'directoryExplorerDialog.clone.remoteUrlPlaceholder': '儲存庫 URL(HTTPS 或 SSH)', + 'directoryExplorerDialog.browse.directories': '目錄', + 'directoryExplorerDialog.browse.loading': '正在載入目錄...', + 'directoryExplorerDialog.browse.empty': '沒有符合的目錄。', + 'directoryExplorerDialog.browse.parentDirectory': '上層目錄', + 'directoryExplorerDialog.browse.addedBadge': '已新增', + 'directoryExplorerDialog.browse.quickAdd': '添加', + 'directoryExplorerDialog.footer.navigate': '導覽', + 'directoryExplorerDialog.footer.select': '選擇', + 'directoryExplorerDialog.footer.add': '新增', + 'directoryExplorerDialog.shortcut.enter': 'Enter', + 'directoryExplorerDialog.toast.unableToAccessDirectory': '無法存取目錄', + 'directoryExplorerDialog.toast.desktopDeniedAccess': '桌面端拒絕了目錄存取。', + 'directoryExplorerDialog.toast.failedToOpenDirectory': '開啟目錄失敗', + 'directoryExplorerDialog.toast.desktopCouldNotGrantAccess': '桌面端無法授予檔案存取權限。', + 'directoryExplorerDialog.toast.failedToAddProject': '新增專案失敗', + 'directoryExplorerDialog.toast.cloneUrlRequired': '複製前請輸入儲存庫 URL。', + 'directoryExplorerDialog.toast.selectValidDirectoryPath': '請選擇有效的目錄路徑。', + 'directoryExplorerDialog.toast.failedToSelectDirectory': '選擇目錄失敗', + 'directoryExplorerDialog.toast.unknownError': '發生未知錯誤。', + 'directoryTree.actions.createNewDirectory': '建立新目錄', + 'directoryTree.actions.pinDirectory': '釘選目錄', + 'directoryTree.actions.unpinDirectory': '取消釘選目錄', + 'directoryTree.actions.createDirectory': '建立目錄', + 'directoryTree.actions.cancel': '取消', + 'directoryTree.actions.selectWorkingDirectoryAria': '選擇工作目錄', + 'directoryTree.state.locatingHomeDirectory': '正在定位主目錄...', + 'directoryTree.state.loading': '載入中...', + 'directoryTree.state.noDirectoriesFound': '找不到目錄', + 'directoryTree.section.pinned': '已釘選', + 'directoryTree.section.browse': '瀏覽', + 'aboutDialog.versionLabel': '版本 {version}', + 'aboutDialog.openChamberVersionLabel': 'OpenChamber 版本 {version}', + 'aboutDialog.openCodeVersionLabel': 'OpenCode 版本 {version}', + 'aboutDialog.actions.copyDiagnostics': '複製診斷資訊', + 'aboutDialog.actions.preparingDiagnostics': '正在準備診斷資訊...', + 'aboutDialog.actions.diagnosticsCopied': '診斷資訊已複製', + 'aboutDialog.diagnosticsDescription': '包含 OpenChamber 狀態、OpenCode 健康資訊、目錄和專案。', + 'aboutDialog.footerNote': '為社群用心打造', + 'aboutDialog.toast.copyFailed': '複製失敗', + 'aboutDialog.toast.diagnosticsNotReady': '診斷資訊尚未就緒。請稍後重試。', + 'aboutDialog.toast.diagnosticsCopied': '診斷資訊已複製', + 'helpDialog.title': '鍵盤快速鍵', + 'helpDialog.description': '使用這些快速鍵可更有效率地導覽 OpenChamber', + 'helpDialog.section.navigationCommands': '導覽與命令', + 'helpDialog.section.sessionManagement': '會話管理', + 'helpDialog.section.panels': '面板', + 'helpDialog.section.interface': '介面', + 'helpDialog.item.openCommandPalette': '開啟命令面板', + 'helpDialog.item.showKeyboardShortcuts': '顯示鍵盤快速鍵(此對話方塊)', + 'helpDialog.item.toggleSessionSidebar': '切換會話側邊欄', + 'helpDialog.item.cycleAgent': '循環切換 Agent(聊天輸入)', + 'helpDialog.item.openModelSelector': '開啟模型選擇器', + 'helpDialog.item.navigateModels': '導覽模型(選擇器中)', + 'helpDialog.item.adjustThinkingMode': '調整思考模式(選擇器中,支援時)', + 'helpDialog.item.cycleThinkingVariant': '循環思考變體(全域快速鍵)', + 'helpDialog.item.newWindow': '新增視窗(僅桌面端)', + 'helpDialog.item.createNewSession': '建立新會話', + 'helpDialog.item.createNewWorktreeDraft': '建立新 worktree 草稿', + 'helpDialog.item.focusChatInput': '聚焦聊天輸入框', + 'helpDialog.item.abortActiveRun': '中止目前執行(連按兩下)', + 'helpDialog.item.toggleRightSidebar': '切換右側邊欄', + 'helpDialog.item.openRightSidebarGitTab': '開啟右側邊欄 Git 標籤', + 'helpDialog.item.openRightSidebarFilesTab': '開啟右側邊欄檔案標籤', + 'helpDialog.item.cycleRightSidebarTab': '循環右側邊欄標籤', + 'helpDialog.item.toggleTerminalDock': '切換終端機停靠欄', + 'helpDialog.item.toggleTerminalExpanded': '切換終端機展開狀態', + 'helpDialog.item.togglePlanContextPanel': '切換計畫上下文面板', + 'helpDialog.item.cycleTheme': '循環切換主題(淺色 → 深色 → 跟隨系統)', + 'helpDialog.item.switchProject': '切換專案', + 'helpDialog.item.toggleServicesMenu': '切換服務選單', + 'helpDialog.item.cycleServicesTab': '循環服務標籤', + 'helpDialog.item.openSettings': '開啟設定', + 'helpDialog.keyCombiner.or': '或', + 'helpDialog.proTips.title': '使用提示:', + 'helpDialog.proTips.commandPalette': '使用命令面板({shortcut})可快速存取所有操作', + 'helpDialog.proTips.recentSessions': '最近 5 個會话會顯示在命令面板中', + 'helpDialog.proTips.themeCycling': '主題循環會記住你在各會話中的偏好', + 'header.actions.rightSidebarWithShortcut': '右側邊欄({shortcut})', + 'header.actions.toggleRightSidebarAria': '切換右側邊欄', + 'header.actions.openSessionsWithShortcut': '開啟會話({shortcut})', + 'header.actions.openSessionsAria': '開啟會話', + 'header.actions.closeSessionsAria': '關閉會話', + 'header.actions.newSessionAria': '新增會話', + 'header.actions.newSessionWithShortcut': '新增會話({shortcut})', + 'header.actions.backAria': '返回', + 'header.navigation.mainAria': '主導覽', + 'header.sessions.title': '會話', + 'header.changes.availableAria': '有可用變更', + 'session.githubIssuePicker.error.noActiveProject': '沒有活動專案', + 'session.githubIssuePicker.error.runtimeUnavailable': 'GitHub 執行時 API 無法使用', + 'session.githubIssuePicker.error.notConnected': 'GitHub 未連線', + 'session.githubIssuePicker.error.repoNotResolvable': '無法解析儲存庫', + 'session.githubIssuePicker.error.repoMustBeGithub': 'origin 遠端儲存庫必須是 GitHub URL', + 'session.githubIssuePicker.error.issueNotFound': '找不到 Issue', + 'session.githubIssuePicker.error.noModelSelected': '未選擇模型', + 'session.githubIssuePicker.toast.loadMoreFailed': '載入更多 Issue 失敗', + 'session.githubIssuePicker.toast.loadIssueDetailsFailed': '載入 Issue 詳情失敗', + 'session.githubIssuePicker.toast.sendContextFailed': '傳送 Issue 上下文失敗', + 'session.githubIssuePicker.toast.sessionCreated': '已從 Issue 建立會話', + 'session.githubIssuePicker.toast.startSessionFailed': '啟動會話失敗', + 'session.githubIssuePicker.title.select': '關聯 GitHub Issue', + 'session.githubIssuePicker.title.createSession': '從 GitHub Issue 新增會話', + 'session.githubIssuePicker.description.select': '選擇一個 Issue 關聯到目前會話。', + 'session.githubIssuePicker.description.createSession': '使用隱藏的 Issue 上下文(標題/內文/標籤/留言)初始化新會話。', + 'session.githubIssuePicker.searchPlaceholder': '按標題或 #123 搜尋,或貼上 Issue URL', + 'session.githubIssuePicker.empty.noActiveProject': '未選擇活動專案。', + 'session.githubIssuePicker.empty.runtimeUnavailable': 'GitHub 執行時 API 無法使用。', + 'session.githubIssuePicker.empty.notConnected': 'GitHub 未連線。請在設定中連接 GitHub 帳號。', + 'session.githubIssuePicker.empty.noIssuesFound': '找不到 Issue', + 'session.githubIssuePicker.empty.noOpenIssuesFound': '沒有未關閉的 Issue', + 'session.githubIssuePicker.loading.issues': '正在載入 Issue...', + 'session.githubIssuePicker.loading.more': '載入中...', + 'session.githubIssuePicker.actions.openSettings': '開啟設定', + 'session.githubIssuePicker.actions.useIssue': '使用 Issue #{number}', + 'session.githubIssuePicker.actions.openInGitHubAria': '在 GitHub 中開啟', + 'session.githubIssuePicker.actions.loadMore': '載入更多', + 'session.githubIssuePicker.actions.sectionTitle': '操作', + 'session.githubIssuePicker.actions.toggleWorktreeAria': '切換 worktree', + 'session.githubIssuePicker.actions.createInWorktree': '在 worktree 中建立', + 'session.githubIssuePicker.actions.openRepo': '開啟儲存庫', + 'session.githubIssuePicker.actions.refresh': '重新整理', + 'session.githubPrPicker.error.noActiveProject': '沒有活動專案', + 'session.githubPrPicker.error.runtimeUnavailable': 'GitHub 執行時 API 無法使用', + 'session.githubPrPicker.error.notConnected': 'GitHub 未連線', + 'session.githubPrPicker.error.prNotFound': '找不到 Pull Request', + 'session.githubPrPicker.error.repoNotResolvable': '無法解析儲存庫', + 'session.githubPrPicker.error.repoMustBeGithub': 'origin 遠端儲存庫必須是 GitHub URL', + 'session.githubPrPicker.toast.loadMoreFailed': '載入更多 Pull Request 失敗', + 'session.githubPrPicker.toast.loadDetailsFailed': '載入 Pull Request 詳情失敗', + 'session.githubPrPicker.title': '關聯 GitHub Pull Request', + 'session.githubPrPicker.description': '選擇一個 Pull Request,將審查上下文附加到此訊息。', + 'session.githubPrPicker.searchPlaceholder': '按標題或 #123 搜尋,或貼上 Pull Request URL', + 'session.githubPrPicker.includeDiffAria': '在附加上下文中包含 PR diff', + 'session.githubPrPicker.includeDiff': '包含 PR diff', + 'session.githubPrPicker.empty.noActiveProject': '未選擇活動專案。', + 'session.githubPrPicker.empty.runtimeUnavailable': 'GitHub 執行時 API 無法使用。', + 'session.githubPrPicker.empty.notConnected': 'GitHub 未連線。請在設定中連接 GitHub 帳號。', + 'session.githubPrPicker.empty.noPullRequestsFound': '找不到 Pull Request', + 'session.githubPrPicker.empty.noOpenPullRequestsFound': '沒有未關閉的 Pull Request', + 'session.githubPrPicker.loading.pullRequests': '正在載入 Pull Request...', + 'session.githubPrPicker.loading.more': '載入中...', + 'session.githubPrPicker.actions.openSettings': '開啟設定', + 'session.githubPrPicker.actions.usePullRequest': '使用 Pull Request #{number}', + 'session.githubPrPicker.actions.openInGitHubAria': '在 GitHub 中開啟', + 'session.githubPrPicker.actions.loadMore': '載入更多', + 'session.newWorktree.title': '新增 Worktree', + 'session.newWorktree.mode.newBranch': '新分支', + 'session.newWorktree.mode.existingBranch': '現有分支', + 'session.newWorktree.selectBranch': '選擇分支', + 'session.newWorktree.chooseBranch': '選擇一個分支...', + 'session.newWorktree.fetchBranches': 'Fetch 分支', + 'session.newWorktree.searchBranches': '搜尋分支...', + 'session.newWorktree.loadingBranches': '正在載入分支...', + 'session.newWorktree.noBranchesFound': '找不到分支', + 'session.newWorktree.matchingBranches': '符合分支', + 'session.newWorktree.noMatchingBranches': '沒有符合分支', + 'session.newWorktree.localBranches': '本地分支', + 'session.newWorktree.remoteBranches': '遠端分支', + 'session.newWorktree.otherLocalBranches': '其他本地分支', + 'session.newWorktree.otherRemoteBranches': '其他遠端分支', + 'session.newWorktree.branchName': '分支名稱', + 'session.newWorktree.branchNamePlaceholder': 'feature/my-awesome-feature', + 'session.newWorktree.actions.change': '變更', + 'session.newWorktree.actions.startFromGitHubIssuePr': '從 GitHub Issue/PR 開始', + 'session.newWorktree.usingPrBranch': '使用 PR 分支:{branch}', + 'session.newWorktree.fromIssue': '來自 Issue #{number}:{title}', + 'session.newWorktree.worktreeDirectory': 'Worktree 目錄', + 'session.newWorktree.worktreeDirectoryPlaceholder': 'my-worktree-directory', + 'session.newWorktree.resetToMatchBranchName': '重設為與分支名稱一致', + 'session.newWorktree.sourceBranch': '來源分支', + 'session.newWorktree.selectSourceBranch': '選擇來源分支', + 'session.newWorktree.selectSourceBranchPlaceholder': '選擇來源分支...', + 'session.newWorktree.newBranchFromSource': '新分支將從 {source} 建立', + 'session.newWorktree.issueNumber': 'Issue #{number}', + 'session.newWorktree.prNumber': 'PR #{number}', + 'session.newWorktree.includeDiffBadge': '+diff', + 'session.newWorktree.newSessionTitle': '新會話', + 'session.newWorktree.fromSource': '來自 {source}', + 'session.newWorktree.actions.cancel': '取消', + 'session.newWorktree.actions.creating': '建立中...', + 'session.newWorktree.actions.createWorktree': '建立 Worktree', + 'session.newWorktree.actions.reset': '重設', + 'session.newWorktree.error.noModelSelected': '未選擇模型', + 'session.newWorktree.error.noActiveProject': '沒有活動專案', + 'session.newWorktree.error.branchNameRequired': '分支名稱是必填項', + 'session.newWorktree.error.worktreeDirectoryRequired': 'Worktree 目錄是必填項', + 'session.newWorktree.error.sendGitHubContextFailed': '傳送 GitHub 上下文失敗', + 'session.newWorktree.error.createWorktreeFailed': '建立 Worktree 失敗', + 'session.newWorktree.toast.sessionFromIssue': '已從 Issue 建立會話', + 'session.newWorktree.toast.sessionFromPr': '已從 PR 建立會話', + 'session.newWorktree.toast.worktreeCreated': 'Worktree 已建立', + 'session.newWorktree.toast.worktreeCreatedDescription': '{target} - 正在背景初始化', + 'session.githubIntegration.title': '從 GitHub 選擇', + 'session.githubIntegration.tabs.issues': 'Issues', + 'session.githubIntegration.tabs.pullRequests': 'Pull Requests', + 'session.githubIntegration.connect.title': '連接到 GitHub', + 'session.githubIntegration.connect.description': '關聯 Issue 或 Pull Request 以自動填入 worktree 詳情', + 'session.githubIntegration.connect.action': '連接 GitHub', + 'session.githubIntegration.search.issuesPlaceholder': '搜尋 Issue 或輸入 #123...', + 'session.githubIntegration.search.prsPlaceholder': '搜尋 PR 或輸入 #456...', + 'session.githubIntegration.empty.noIssuesFound': '找不到 Issue', + 'session.githubIntegration.empty.noPullRequestsFound': '找不到 Pull Request', + 'session.githubIntegration.actions.loadMore': '載入更多', + 'session.githubIntegration.actions.cancel': '取消', + 'session.githubIntegration.actions.select': '選擇', + 'session.githubIntegration.selected.issueNumber': 'Issue #{number}', + 'session.githubIntegration.selected.prNumber': 'PR #{number}', + 'session.githubIntegration.includeDiffAria': '在會話上下文中包含 PR diff', + 'session.githubIntegration.includeDiff': '包含 PR diff', + 'session.githubIntegration.error.notConnected': 'GitHub 未連線', + 'session.githubIntegration.error.loadDataFailed': '載入資料失敗', + 'session.githubIntegration.validation.branchAlreadyCheckedOut': '該分支已在某個 worktree 中簽出', + 'session.githubIntegration.validation.branchAlreadyExists': '該分支已在本地存在', + 'session.githubIntegration.validation.failed': '驗證失敗', + 'chat.fileAttachment.toast.attachFailed': '附加檔案失敗', + 'chat.fileAttachment.toast.someFilesSkipped': '以下檔案被跳過:\n{summary}', + 'chat.fileAttachment.toast.vscodePickFailed': '在 VS Code 中選擇檔案失敗', + 'chat.fileAttachment.fileFallback': '檔案', + 'chat.fileAttachment.skippedFallback': '已跳過', + 'chat.fileAttachment.actions.attachAria': '附加檔案', + 'chat.fileAttachment.actions.attach': '附加檔案', + 'chat.fileAttachment.actions.removeNamed': '移除 {name}', + 'chat.fileAttachment.actions.removeImage': '移除圖片', + 'chat.fileAttachment.activeEditor.addFile': '將檔案加入上下文:{name}', + 'chat.fileAttachment.activeEditor.pinSelection': '將選擇釘選到上下文', + 'chat.fileAttachment.activeEditor.remove': '從上下文中移除', + 'chat.pendingChanges.fileCountSingle': '{count} 個檔案', + 'chat.pendingChanges.fileCountPlural': '{count} 個檔案', + 'chat.pendingChanges.changedInWorkspace': '工作區中有變更', + 'chat.changedFiles.title': '已變更檔案', + 'chat.changedFiles.actions.openFileTitle': '開啟 {path}', + 'chat.emptyState.opencodeUnreachable': '無法連線 OpenCode', + 'chat.emptyState.startNewChat': '開始新的聊天', + 'chat.scrollToBottom.aria': '捲動到底部', + 'chat.timeline.relative.justNow': '剛剛', + 'chat.timeline.relative.minutesAgo': '{count} 分鐘前', + 'chat.timeline.relative.hoursAgo': '{count} 小時前', + 'chat.timeline.relative.daysAgo': '{count} 天前', + 'chat.timeline.title': '會話時間線', + 'chat.timeline.description': '跳轉到會話中的任意位置,或從該處分支新會話', + 'chat.timeline.searchPlaceholder': '搜尋訊息...', + 'chat.timeline.empty.search': '找不到訊息', + 'chat.timeline.empty.session': '目前會話還沒有訊息', + 'chat.timeline.noTextContent': '[無文字內容]', + 'chat.timeline.actions.title': '操作', + 'chat.timeline.actions.revertFromHere': '從此處還原', + 'chat.timeline.actions.forkFromHere': '從此處分支', + 'chat.timeline.actions.previousTurn': '上一輪', + 'chat.timeline.actions.latest': '最新', + 'chat.timeline.help.clickMessage': '點擊訊息可捲動到會話中的對應位置', + 'chat.timeline.help.undoToPoint': '收回到該點(訊息文字會填入輸入框)', + 'chat.timeline.help.createSessionFromHere': '從此處開始建立新會話', + 'chat.statusRow.todo.status.inProgress': '進行中', + 'chat.statusRow.todo.status.pending': '待處理', + 'chat.statusRow.todo.status.completed': '已完成', + 'chat.statusRow.todo.status.cancelled': '已取消', + 'chat.statusRow.todo.priority.high': '高優先級', + 'chat.statusRow.todo.priority.medium': '中優先級', + 'chat.statusRow.todo.priority.low': '低優先級', + 'chat.statusRow.actions.stopGeneratingAria': '停止生成', + 'chat.statusRow.tasksTitle': '任務', + 'chat.statusRow.summary.activeLeft': '{active} 個活躍 · 剩餘 {left} 個', + 'chat.statusRow.aborted': '已中止', + 'chat.revertIndicator.redo': '重做', + 'chat.revertIndicator.redoAria': '重做 — 恢復已收回的訊息', + 'chat.revertPopover.title': '已收回', + 'chat.revertPopover.noTextContent': '無文字內容', + 'chat.revertPopover.forkFromHere': '從此處分支', + 'chat.revertPopover.forkFromMessage': '從此訊息分支', + 'chat.revertPopover.restoreAll': '恢復全部', + 'chat.revertPopover.restore': '恢復', + 'chat.revertPopover.revert': '收回', + 'chat.revertPopover.fork': '分支', + 'chat.revert.toast.undo': '已收回至 {preview}', + 'chat.revert.toast.redo': '已重做', + 'chat.revert.toast.restored': '已恢復全部訊息', + 'chat.errorBoundary.title': '聊天錯誤', + 'chat.errorBoundary.description': '聊天介面發生錯誤,可能是暫時網路問題或訊息資料損毀導致。', + 'chat.errorBoundary.sessionLabel': '會話', + 'chat.errorBoundary.detailsSummary': '錯誤詳情', + 'chat.errorBoundary.resetAction': '重設聊天', + 'chat.errorBoundary.persistentHint': '如果問題持續,請嘗試重新整理頁面。', + 'chat.autocomplete.tabs.commands': '命令', + 'chat.autocomplete.tabs.agents': 'Agent', + 'chat.autocomplete.tabs.files': '檔案', + 'chat.autocomplete.keyboardHint': '↑↓ 導覽 • Enter 選擇 • Esc 關閉', + 'chat.commandAutocomplete.command.initDescription': '建立/更新 AGENTS.md 檔案', + 'chat.commandAutocomplete.command.undoDescription': '復原上一條訊息', + 'chat.commandAutocomplete.command.redoDescription': '重做之前復原的訊息', + 'chat.commandAutocomplete.command.timelineDescription': '開啟對話時間線', + 'chat.commandAutocomplete.command.compactDescription': '使用 AI 壓縮會話歷史以減少上下文大小', + 'chat.commandAutocomplete.command.summaryDescription': '非破壞性會話總結。命令後可選填主題提示。', + 'chat.commandAutocomplete.command.workspaceReviewDescription': '僅審查目前工作區中高價值的問題。', + 'chat.commandAutocomplete.badge.skill': 'Skills', + 'chat.commandAutocomplete.badge.command': '命令', + 'chat.commandAutocomplete.badge.system': '系統', + 'chat.commandAutocomplete.empty': '找不到命令', + 'chat.agentMentionAutocomplete.badge.system': '系統', + 'chat.agentMentionAutocomplete.empty': '找不到 Agent', + 'chat.fileMentionAutocomplete.searchMoreAgents': '輸入以搜尋更多 Agent', + 'chat.fileMentionAutocomplete.empty': '找不到符合項目', + 'chat.queuedMessage.attachments': '+{count} 個檔案', + 'chat.queuedMessage.empty': '(空)', + 'chat.queuedMessage.removeAria': '從佇列移除', + 'chat.container.returnToParent.aria': '返回父會話', + 'chat.container.returnToParent.titleNamed': '返回到:{title}', + 'chat.container.returnToParent.title': '返回父會話', + 'chat.container.returnToParent.label': '父級', + 'chat.container.readOnlySubagentPromptBanner': '無法向子 Agent 會話傳送提示。', + 'chat.unifiedControls.title': '控制', + 'chat.unifiedControls.model.title': '模型', + 'chat.unifiedControls.model.noRecent': '沒有最近使用的模型', + 'chat.unifiedControls.model.moreAria': '更多模型', + 'chat.unifiedControls.effort.title': '思考強度', + 'chat.unifiedControls.effort.moreAria': '更多強度選項', + 'chat.questionCard.summaryTab': '總結', + 'chat.questionCard.noAnswer': '(無答案)', + 'chat.questionCard.inputNeeded': '需要輸入', + 'chat.questionCard.fromSubagent': '來自子 Agent', + 'chat.questionCard.questionFallback': '問題 {index}', + 'chat.questionCard.selectMultiple': '可複選', + 'chat.questionCard.recommended': '推薦', + 'chat.questionCard.other': '其他…', + 'chat.questionCard.yourAnswer': '你的回答', + 'chat.questionCard.submit': '提交', + 'chat.questionCard.next': '下一個', + 'chat.questionCard.dismiss': '忽略', + 'chat.questionCard.copyMarkdown': '複製為 Markdown', + 'chat.questionCard.copyJson': '複製為 JSON', + 'chat.questionCard.copiedMarkdown': '問題已複製為 Markdown', + 'chat.questionCard.copiedJson': '問題已複製為 JSON', + 'chat.questionCard.copyFailed': '複製問題失敗', + 'chat.textSelection.toast.noProject': '找不到此會話對應的專案', + 'chat.textSelection.toast.addToNotesFailed': '加入筆記失敗', + 'chat.textSelection.toast.addToNotesSuccess': '已將選取文字加入筆記', + 'chat.textSelection.toast.addToNotesSummaryFailed': '無法總結所選內容,已將所選文字加入筆記', + 'chat.textSelection.actions.addToChat': '加入聊天', + 'chat.textSelection.actions.newSession': '新增會話', + 'chat.textSelection.actions.copy': '複製', + 'chat.textSelection.actions.addToNotes': '加入筆記', + 'chat.textSelection.title.addToCurrentChat': '加入目前聊天', + 'chat.textSelection.title.newSessionWithSelection': '使用選取內容建立新會話', + 'chat.textSelection.title.saveInsightToNotes': '將選取文字儲存到筆記', + 'chat.messageBody.actions.revertAria': '收回到這條訊息', + 'chat.messageBody.actions.revert': '從此處收回', + 'chat.messageBody.actions.forkAria': '從這條訊息分支', + 'chat.messageBody.actions.fork': '從此處分支', + 'chat.messageBody.actions.copyMessageAria': '複製訊息文字', + 'chat.messageBody.actions.copyMessage': '複製訊息', + 'chat.messageBody.actions.openPreviewAria': '開啟預覽', + 'chat.messageBody.actions.openPreview': '開啟預覽', + 'chat.messageBody.actions.copyAnswer': '複製回答', + 'chat.messageBody.actions.savingImage': '正在儲存圖片...', + 'chat.messageBody.actions.saveAsImage': '儲存為圖片', + 'chat.messageBody.actions.saveAsPlan': '儲存為計畫', + 'chat.messageBody.actions.startNewSession': '基於此回答開始新會話', + 'chat.messageBody.actions.startNewMultiRun': '基於此回答開始新的 Multi-run', + 'chat.generatedResult.actions.copy': '複製', + 'chat.generatedResult.actions.copied': '已複製', + 'chat.generatedResult.commit.title': '生成的提交訊息', + 'chat.generatedResult.commit.highlights': '重點', + 'chat.generatedResult.pullRequest.title': '生成的 Pull Request', + 'chat.generatedResult.pullRequest.titleLabel': '標題', + 'chat.generatedResult.pullRequest.bodyLabel': '內文', + 'chat.messageBody.tts.stopSpeaking': '停止朗讀', + 'chat.messageBody.tts.readAloud': '朗讀', + 'chat.messageBody.tts.readAloudWithProvider': '朗讀({provider} 語音)', + 'chat.messageBody.toast.noProject': '找不到此會話對應的專案', + 'chat.messageBody.toast.savePlanFailed': '儲存計畫失敗', + 'chat.messageBody.toast.planSaved': '計畫已儲存', + 'chat.messageBody.toast.imageSaved': '圖片已儲存', + 'chat.messageBody.toast.generateImageFailed': '生成圖片失敗', + 'chat.chatInput.actions.commands': '命令', + 'chat.chatInput.actions.attachFiles': '附加檔案', + 'chat.chatInput.actions.addAttachment': '加入附件', + 'chat.chatInput.actions.linkGithubIssue': '關聯 GitHub Issue', + 'chat.chatInput.actions.linkGithubPr': '關聯 GitHub PR', + 'chat.chatInput.actions.modelAgentSettings': '模型與 Agent 設定', + 'chat.chatInput.actions.sendMessageAria': '傳送訊息', + 'chat.chatInput.actions.queueMessageAria': '將訊息加入佇列', + 'chat.chatInput.actions.stopGeneratingAria': '停止生成', + 'chat.chatInput.focusMode.toggleAria': '切換專注模式', + 'chat.chatInput.focusMode.label': '專注模式', + 'chat.chatInput.permissionAutoAccept.disable': '關閉權限自動接受', + 'chat.chatInput.permissionAutoAccept.enable': '開啟權限自動接受', + 'chat.chatInput.permissionAutoAccept.on': '權限自動接受:開', + 'chat.chatInput.permissionAutoAccept.off': '權限自動接受:關', + 'chat.chatInput.linked.byAuthor': '由 {author}', + 'chat.chatInput.linked.issue.openInBrowserAria': '在瀏覽器中開啟 Issue', + 'chat.chatInput.linked.issue.removeAria': '移除已關聯的 Issue', + 'chat.chatInput.linked.pr.number': 'PR #{number}', + 'chat.chatInput.linked.pr.openInBrowserAria': '在瀏覽器中開啟 Pull Request', + 'chat.chatInput.linked.pr.removeAria': '移除已關聯的 Pull Request', + 'chat.chatInput.placeholder.shell': '輸入 shell 命令...', + 'chat.chatInput.placeholder.chat': '@ 用於檔案/Agent;/ 用於命令;! 用於 shell;# 用於程式片段', + 'chat.chatInput.placeholder.chatCompact': '使用 @ / ! # 輔助', + 'chat.chatInput.placeholder.selectSession': '選擇或建立會話以開始聊天', + 'chat.snippetAutocomplete.action.addNew': '+ 新建程式片段', + 'chat.snippetAutocomplete.empty': '未找到程式片段', + 'chat.snippetAutocomplete.footer': '↑↓ 導航 • Enter 選擇 • Esc 關閉', + 'snippets.source.global': '全局', + 'snippets.source.project': '項目', + 'chat.chatInput.toast.compactFailed': '壓縮會話失敗', + 'chat.chatInput.toast.summaryFailed': '生成總結失敗', + 'chat.chatInput.toast.reviewFailed': '審查變更失敗', + 'chat.chatInput.toast.attachmentsTooLarge': '附件過大,無法傳送。請減少圖片數量或大小。', + 'chat.chatInput.toast.sendAttachmentsFailed': '傳送附件失敗。請嘗試更少檔案或更小圖片。', + 'chat.chatInput.toast.messageSendFailed': '訊息傳送失敗,附件已恢復。', + 'chat.chatInput.toast.clipboardAttachFailed': '從剪貼簿附加圖片失敗', + 'chat.chatInput.toast.addedFileMentions': '已加入 {count} 個檔案提及', + 'chat.chatInput.toast.attachFileFailed': '附加檔案失敗', + 'chat.chatInput.toast.attachNamedFailed': '附加 {name} 失敗', + 'chat.chatInput.toast.someFilesSkipped': '部分檔案被跳過:\n{summary}', + 'chat.chatInput.toast.vscodePickFailed': '在 VS Code 中選擇檔案失敗', + 'chat.chatInput.toast.openSessionFirst': '請先開啟一個會話', + 'chat.chatInput.toast.togglePermissionAutoAcceptFailed': '切換權限自動接受失敗', + 'chat.chatInput.reviewComments': '審查留言:', + 'chat.chatInput.devServerLogs': 'Dev Server 日誌:', + 'chat.chatInput.devServerLogsRemove': '移除 Dev Server 日誌', + 'chat.chatInput.previewAnnotations': '預覽註釋:', + 'chat.chatInput.previewContext': '預覽上下文:', + 'chat.chatInput.previewContextRemove': '移除預覽上下文', + 'chat.chatInput.projectRoot': '專案根目錄', + 'chat.chatInput.branch': '分支', + 'chat.chatInput.worktrees': 'Worktree', + 'chat.chatInput.worktreeNew': '+ 新增', + 'chat.chatInput.drop.insertMention': '放開以插入為提及', + 'chat.chatInput.drop.attachFiles': '將檔案拖放至此處以附加', + 'chat.chatInput.fileFallback': '檔案', + 'chat.mobileStatus.editProjects.title': '編輯專案', + 'chat.mobileStatus.editProjects.footer': '拖曳可重新排序,或使用箭頭移動。點擊編輯可修改詳情。', + 'chat.mobileStatus.editProjects.empty': '沒有可編輯的專案', + 'chat.mobileStatus.projects.empty': '沒有專案', + 'chat.mobileStatus.projects.addAria': '新增專案', + 'chat.mobileStatus.projects.removeTitle': '移除專案', + 'chat.mobileStatus.projects.removeDescriptionPrefix': '確定要移除', + 'chat.mobileStatus.projects.cancel': '取消', + 'chat.mobileStatus.projects.remove': '移除', + 'chat.mobileStatus.new': '新增', + 'chat.mobileStatus.noSessionsInProject': '該專案中沒有會話', + 'chat.mobileStatus.swipeHint': '← 在此滑動以開啟側邊欄 →', + 'chat.mobileStatus.toast.addProjectFailed': '新增專案失敗', + 'chat.mobileStatus.toast.selectValidDirectory': '請選擇有效目錄。', + 'chat.mobileStatus.toast.selectDirectoryFailed': '選擇目錄失敗', + 'chat.toolOutputDialog.image.previousAria': '上一張圖片', + 'chat.toolOutputDialog.image.nextAria': '下一張圖片', + 'chat.toolOutputDialog.image.closeAria': '關閉圖片預覽', + 'chat.toolOutputDialog.mermaid.missingSource': '缺少 Mermaid 來源 URL。', + 'chat.toolOutputDialog.mermaid.loadFailed': '無法載入 Mermaid 圖表。', + 'chat.toolOutputDialog.mermaid.closeAria': '關閉圖表預覽', + 'chat.toolOutputDialog.mermaid.loading': '正在載入圖表...', + 'chat.toolOutputDialog.mermaid.renderFailed': '無法渲染 Mermaid 圖表。', + 'chat.toolOutputDialog.mermaid.retry': '重試', + 'chat.toolOutputDialog.commandCompleted': '命令已成功完成', + 'chat.toolOutputDialog.noOutputProduced': '沒有產生輸出', + 'chat.toolPart.lspErrors': 'LSP 錯誤', + 'chat.toolPart.moreErrors': '+{count} 個更多錯誤', + 'chat.toolPart.error': '錯誤:', + 'chat.toolPart.awaitingResponse': '等待回應...', + 'chat.toolPart.noOutputProduced': '未產生輸出', + 'chat.toolPart.output': '輸出', + 'chat.toolPart.openSubtask': '開啟{type}子任務', + 'chat.todo.total': '總計', + 'chat.todo.inProgress': '進行中', + 'chat.todo.pending': '待處理', + 'chat.todo.completed': '已完成', + 'chat.todo.cancelled': '已取消', + 'chat.permissionCard.workingDirectory': '工作目錄:', + 'chat.permissionCard.timeout': '逾時:', + 'chat.permissionCard.request': 'Request:', + 'chat.permissionCard.headers': 'Headers:', + 'chat.permissionCard.body': 'Body:', + 'chat.permissionCard.action': '操作:', + 'chat.permissionCard.details': '詳情:', + 'chat.permissionCard.patterns': '模式:', + 'chat.permissionToast.sessionFallback': '會話', + 'chat.permissionToast.permissionFallback': '權限詳情無法使用', + 'chat.permissionToast.labels.session': '會話:', + 'chat.permissionToast.labels.permission': '權限:', + 'chat.permissionToast.actions.once': '一次', + 'chat.permissionToast.actions.always': '始終', + 'chat.permissionToast.actions.deny': '拒絕', + 'chat.permissionToast.actions.approveOnceAria': '核准一次', + 'chat.permissionToast.actions.approveOnceAriaWithSession': '為 {session} 核准一次', + 'chat.permissionToast.actions.approveAlwaysAria': '始終核准', + 'chat.permissionToast.actions.approveAlwaysAriaWithSession': '為 {session} 始終核准', + 'chat.permissionToast.actions.denyAria': '拒絕權限', + 'chat.permissionToast.actions.denyAriaWithSession': '拒絕 {session} 的權限', + 'chat.permissionRequest.required': '需要權限:', + 'chat.permissionRequest.actions.once': '一次', + 'chat.permissionRequest.actions.always': '始終', + 'chat.permissionRequest.actions.reject': '拒絕', + 'chat.modelControls.provider': '供應商', + 'chat.modelControls.capability.toolCalling': '工具呼叫', + 'chat.modelControls.capability.reasoning': '推理', + 'chat.modelControls.modality.text': '文字', + 'chat.modelControls.modality.image': '圖片', + 'chat.modelControls.modality.video': '影片', + 'chat.modelControls.modality.audio': '音訊', + 'chat.modelControls.modality.pdf': 'PDF', + 'chat.modelControls.capabilities': '能力', + 'chat.modelControls.modalities': '模態', + 'chat.modelControls.input': '輸入', + 'chat.modelControls.output': '輸出', + 'chat.modelControls.limits': '限制', + 'chat.modelControls.context': '上下文', + 'chat.modelControls.metadata': '元資料', + 'chat.modelControls.knowledge': '知識', + 'chat.modelControls.release': '發布時間', + 'chat.modelControls.mode': '模式', + 'chat.modelControls.model': '模型', + 'chat.modelControls.temperature': '溫度', + 'chat.modelControls.topP': 'Top P', + 'chat.modelControls.permissions': '權限', + 'chat.modelControls.edit': '編輯', + 'chat.modelControls.bash': 'Bash', + 'chat.modelControls.webFetch': 'WebFetch', + 'chat.modelControls.customPrompt': '自訂提示詞', + 'chat.modelControls.selectModel': '選擇模型', + 'chat.modelControls.searchProvidersOrModels': '搜尋供應商或模型', + 'chat.modelControls.clearSearch': '清除搜尋', + 'chat.modelControls.current': '目前', + 'chat.modelControls.thinking': '思考', + 'chat.modelControls.default': '預設', + 'chat.modelControls.selectAgent': '選擇 Agent', + 'chat.modelControls.costPerMillion': '成本($/百萬 tokens)', + 'chat.modelControls.metadataUnavailable': '模型元資料無法使用。', + 'chat.modelControls.addNewProvider': '新增供應商', + 'chat.modelControls.noAgentSelected': '未選擇 Agent。', + 'chat.modelControls.resetToDefault': '重設為預設', + 'chat.modelControls.searchModels': '搜尋模型', + 'chat.modelControls.searchAgents': '搜尋 Agent', + 'chat.modelControls.noModelsFound': '找不到模型', + 'chat.modelControls.favorites': '我的最愛', + 'chat.modelControls.recent': '最近', + 'chat.modelControls.addToFavorites': '加到我的最愛', + 'chat.modelControls.removeFromFavorites': '從我的最愛中移除', + 'chat.modelControls.favoriteAria': '加入最愛', + 'chat.modelControls.unfavoriteAria': '取消最愛', + 'chat.modelControls.collapseProvider': '摺疊供應商', + 'chat.modelControls.expandProvider': '展開供應商', + 'chat.modelControls.keyboardHint': '↑↓ 導覽{thinking} • Enter 選擇 • Esc 關閉', + 'chat.modelControls.keyboardHintNavigate': '↑↓ 導覽', + 'chat.modelControls.keyboardHintSwitchAgent': '{shortcut} 切換 Agent', + 'chat.modelControls.keyboardHintThinking': '←→ 思考', + 'chat.modelControls.showThinkingModes': '顯示思考模式', + 'chat.modelControls.hideThinkingModes': '隱藏思考模式', + 'chat.modelControls.moreThinkingModes': '更多思考模式', + 'chat.modelControls.noProvidersOrModelsFound': '沒有供應商或模型符合你的搜尋。', + 'chat.modelControls.reorderFavoriteAria': '重新排序最愛', + 'chat.modelControls.reorderFavoriteTitle': '拖曳以重新排序最愛', + 'chat.modelControls.permissionLabel.custom': '自訂', + 'chat.modelControls.permissionLabel.allow': '允許', + 'chat.modelControls.permissionLabel.deny': '拒絕', + 'chat.modelControls.permissionLabel.ask': '詢問', + 'chat.modelControls.modeValue.primary': '主 Agent', + 'chat.modelControls.modeValue.subagent': '子 Agent', + 'chat.modelControls.modeValue.all': '全部', + 'chat.modelControls.modeValue.none': '—', + 'chat.reasoningTrace.thinking': '思考', + 'chat.reasoningTrace.justification': '理由', + 'chat.reasoningTrace.expandAria': '展開推理軌跡', + 'chat.reasoningTrace.collapseAria': '摺疊推理軌跡', + 'chat.reasoningTrace.thought': '已思考', + 'chat.messageBody.subtask.title': '委派任務', + 'chat.messageBody.subtask.hidePrompt': '隱藏提示', + 'chat.messageBody.subtask.showPrompt': '顯示提示', + 'chat.messageBody.subtask.openSession': '開啟子任務會話', + 'chat.messageBody.shellCommand.title': 'Shell 命令', + 'chat.messageBody.shellCommand.hideOutput': '隱藏輸出', + 'chat.messageBody.shellCommand.showOutput': '顯示輸出', + 'chat.messageBody.shellCommand.copied': '已複製', + 'chat.messageBody.shellCommand.copyOutput': '複製輸出', + 'commandPalette.title': '命令面板', + 'commandPalette.description': '搜尋檔案、會話和命令。', + 'commandPalette.input.placeholder': '搜尋檔案、會話、命令...', + 'commandPalette.empty.noResults': '找不到結果。', + 'commandPalette.empty.searchingFiles': '正在搜尋檔案...', + 'commandPalette.item.newSession': '新增會話', + 'commandPalette.item.newMiniChat': '新增 Mini Chat 視窗', + 'commandPalette.item.newWorktreeDraft': '新增 worktree 草稿', + 'commandPalette.item.addProject': '新增專案', + 'commandPalette.item.showSessionSwitcher': '顯示會話切換器', + 'commandPalette.item.toggleSidebar': '切換側邊欄', + 'commandPalette.item.toggleRightSidebar': '切換右側邊欄', + 'commandPalette.item.showContextUsage': '顯示上下文用量', + 'commandPalette.item.toggleTerminal': '切換終端機', + 'commandPalette.item.openSettings': '開啟設定...', + 'commandPalette.session.untitled': '未命名會話', + 'openCodeStatusDialog.title': 'OpenCode 狀態', + 'openCodeStatusDialog.description': '查看目前 OpenCode 狀態與診斷資訊。', + 'openCodeStatusDialog.actions.copy': '複製', + 'openCodeStatusDialog.empty.noData': '無資料。', + 'openCodeStatusDialog.toast.copiedTitle': '已複製', + 'openCodeStatusDialog.toast.copiedDescription': '狀態已複製到剪貼簿', + 'openCodeStatusDialog.toast.copyFailed': '複製狀態失敗', + 'saveProjectPlanDialog.title': '儲存專案計畫', + 'saveProjectPlanDialog.description': '將此計畫以 Markdown 檔案儲存到你的專案中。', + 'saveProjectPlanDialog.field.title': '標題', + 'saveProjectPlanDialog.field.titlePlaceholder': '計畫標題', + 'saveProjectPlanDialog.field.contentPreview': '內容預覽', + 'saveProjectPlanDialog.actions.cancel': '取消', + 'saveProjectPlanDialog.actions.save': '儲存', + 'saveProjectPlanDialog.actions.saving': '儲存中...', + 'branchPickerDialog.title': '分支選擇器', + 'branchPickerDialog.description.localBranchesForProject': '{project} 的本地分支', + 'branchPickerDialog.description.selectProject': '請選擇一個專案以查看分支', + 'branchPickerDialog.search.placeholder': '搜尋分支...', + 'branchPickerDialog.search.renameBranchPlaceholder': '重新命名分支', + 'branchPickerDialog.state.noProjectSelected': '未選擇專案', + 'branchPickerDialog.state.loadingBranches': '正在載入分支...', + 'branchPickerDialog.state.noMatchingBranches': '沒有符合分支', + 'branchPickerDialog.state.noBranchesFound': '找不到分支', + 'branchPickerDialog.badge.head': 'HEAD', + 'branchPickerDialog.badge.worktree': 'worktree', + 'branchPickerDialog.actions.createWorktreeAria': '從分支建立 worktree', + 'branchPickerDialog.actions.renameAria': '重新命名分支', + 'branchPickerDialog.actions.deleteAria': '刪除分支', + 'branchPickerDialog.actions.deleteWorktreeAria': '移除 worktree', + 'branchPickerDialog.actions.confirmRenameAria': '確認重新命名', + 'branchPickerDialog.actions.cancelRenameAria': '取消重新命名', + 'branchPickerDialog.actions.confirmDeleteAria': '確認刪除分支', + 'branchPickerDialog.actions.cancelDeleteAria': '取消刪除分支', + 'branchPickerDialog.actions.deletePrompt': '刪除', + 'branchPickerDialog.actions.forceDeletePrompt': '強制刪除', + 'branchPickerDialog.tooltip.createWorktree': '建立 worktree', + 'branchPickerDialog.tooltip.worktreeAlreadyExists': 'worktree 已存在', + 'branchPickerDialog.tooltip.rename': '重新命名分支', + 'branchPickerDialog.tooltip.renameDisabledForRoot': '不能重新命名根分支', + 'branchPickerDialog.tooltip.delete': '刪除分支', + 'branchPickerDialog.tooltip.deleteCurrentBranch': '不能刪除目前分支', + 'branchPickerDialog.tooltip.deleteDisabledForRoot': '不能刪除根分支', + 'branchPickerDialog.tooltip.deleteWorktree': '移除 worktree', + 'branchPickerDialog.tooltip.deleteWorktreeRootProtected': '不能移除根 worktree', + 'branchPickerDialog.toast.branchRenamed': '分支已重新命名', + 'branchPickerDialog.toast.failedToRenameBranch': '重新命名分支失敗', + 'branchPickerDialog.toast.branchDeleted': '分支已刪除', + 'branchPickerDialog.toast.branchNotMerged': '分支尚未完全合併', + 'branchPickerDialog.toast.confirmAgainToForceDelete': '再次確認以強制刪除', + 'branchPickerDialog.toast.failedToDeleteBranch': '刪除分支失敗', + 'branchPickerDialog.toast.worktreeCreated': 'worktree 已建立', + 'branchPickerDialog.toast.failedToCreateWorktree': '建立 worktree 失敗', + 'branchPickerDialog.error.failedToLoad': '載入分支失敗', + 'branchPickerDialog.error.renameRejected': '重新命名被拒絕', + 'branchPickerDialog.error.renameFailed': '重新命名分支失敗', + 'branchPickerDialog.error.deleteRejected': '刪除被拒絕', + 'branchPickerDialog.error.deleteFailed': '刪除分支失敗', + 'branchPickerDialog.error.createWorktreeFailed': '建立 worktree 失敗', + 'projectEditDialog.title': '編輯專案', + 'projectEditDialog.field.name': '名稱', + 'projectEditDialog.field.namePlaceholder': '專案名稱', + 'projectEditDialog.field.color': '顏色', + 'projectEditDialog.field.icon': '圖示', + 'projectEditDialog.field.preview': '預覽', + 'projectEditDialog.field.iconBackground': '圖示背景', + 'projectEditDialog.field.iconBackgroundAria': '專案圖示背景色', + 'projectEditDialog.option.none': '無', + 'projectEditDialog.actions.uploadIcon': '上傳圖示', + 'projectEditDialog.actions.uploading': '上傳中...', + 'projectEditDialog.actions.discoverFavicon': '發現網站圖示', + 'projectEditDialog.actions.discovering': '發現中...', + 'projectEditDialog.actions.removeProjectIcon': '移除專案圖示', + 'projectEditDialog.actions.removing': '移除中...', + 'projectEditDialog.actions.undoRemove': '復原移除', + 'projectEditDialog.actions.clear': '清除', + 'projectEditDialog.actions.cancel': '取消', + 'projectEditDialog.actions.save': '儲存', + 'projectEditDialog.toast.failedToUploadIcon': '上傳專案圖示失敗', + 'projectEditDialog.toast.iconUpdated': '專案圖示已更新', + 'projectEditDialog.toast.failedToRemoveIcon': '移除專案圖示失敗', + 'projectEditDialog.toast.iconRemoved': '專案圖示已移除', + 'projectEditDialog.toast.failedToDiscoverIcon': '發現專案圖示失敗', + 'projectEditDialog.toast.customIconAlreadySet': '該專案已設定自訂圖示', + 'projectEditDialog.toast.iconDiscovered': '專案圖示已發現', + 'agentManager.sidebar.search.placeholder': '搜尋 Agent 群組...', + 'agentManager.sidebar.actions.newAgentGroup': '新增 Agent 群組', + 'agentManager.sidebar.actions.more': '... 更多({count})', + 'agentManager.sidebar.actions.showLess': '收起', + 'agentManager.sidebar.section.agentGroups': 'Agent 群組', + 'agentManager.sidebar.state.loading': '載入中...', + 'agentManager.sidebar.state.noGroupsFound': '找不到群組', + 'agentManager.sidebar.state.noGroupsYet': '還沒有 Agent 群組', + 'agentManager.sidebar.state.createToGetStarted': '建立一個新的 Agent 群組以開始使用', + 'agentManager.sidebar.item.modelCountSingle': '{count} 個模型', + 'agentManager.sidebar.item.modelCountPlural': '{count} 個模型', + 'agentManager.sidebar.item.groupMenuAria': '群組選單', + 'agentManager.sidebar.item.delete': '刪除', + 'agentManager.sidebar.relativeTime.now': '剛剛', + 'agentManager.sidebar.relativeTime.minutes': '{count} 分鐘', + 'agentManager.sidebar.relativeTime.hours': '{count} 小時', + 'agentManager.sidebar.relativeTime.days': '{count} 天', + 'agentManager.sidebar.dialog.deleteGroupTitle': '刪除 Agent 群組', + 'agentManager.sidebar.dialog.deleteGroupDescription': '刪除「{group}」?這會移除該組中的所有 worktree 和會話。', + 'agentManager.sidebar.dialog.cancel': '取消', + 'agentManager.sidebar.dialog.delete': '刪除', + 'agentManager.sidebar.dialog.deleting': '刪除中...', + 'agentManager.sidebar.toast.deletingGroup': '正在刪除「{group}」...', + 'agentManager.sidebar.toast.deletedGroup': '已刪除「{group}」', + 'agentManager.sidebar.toast.failedToDeleteGroup': '未能完全刪除「{group}」', + 'agentManager.detail.header.modelCountSingle': '{count} 個模型', + 'agentManager.detail.header.modelCountPlural': '{count} 個模型', + 'agentManager.detail.header.noBranch': '無分支', + 'agentManager.detail.actions.worktreeActionsAria': 'worktree 操作', + 'agentManager.detail.actions.removeThisWorktree': '移除此 worktree', + 'agentManager.detail.actions.keepThisRemoveOthers': '保留此項,移除其他', + 'agentManager.detail.actions.copyWorktreePath': '複製 worktree 路徑', + 'agentManager.detail.dialog.removeWorktreeTitle': '移除 worktree', + 'agentManager.detail.dialog.removeOtherWorktreesTitle': '移除其他 worktree', + 'agentManager.detail.dialog.removeWorktreeDescription': '移除「{label}」?這將刪除該 worktree 中的所有會話並移除 worktree 本身。', + 'agentManager.detail.dialog.removeOtherWorktreesDescription': '保留「{label}」,並移除「{group}」中的其他 worktree。', + 'agentManager.detail.dialog.cancel': '取消', + 'agentManager.detail.dialog.remove': '移除', + 'agentManager.detail.dialog.removeOthers': '移除其他', + 'agentManager.detail.dialog.working': '處理中...', + 'agentManager.detail.state.loadingSessionFor': '正在載入 {label} 的會話', + 'agentManager.detail.state.sessionId': '會話 ID:{id}', + 'agentManager.detail.state.noSessionsInGroup': '該群組中沒有會話', + 'agentManager.detail.toast.noWorktreePath': '沒有可用的 worktree 路徑', + 'agentManager.detail.toast.worktreePathCopied': 'worktree 路徑已複製', + 'agentManager.detail.toast.failedToCopyPath': '複製路徑失敗', + 'agentManager.detail.toast.removingWorktree': '正在移除 worktree...', + 'agentManager.detail.toast.removingOtherWorktrees': '正在移除其他 worktree...', + 'agentManager.detail.toast.failedToFullyRemoveWorktree': '未能完全移除 worktree', + 'agentManager.detail.toast.worktreeRemoved': 'worktree 已移除', + 'agentManager.detail.toast.otherWorktreesRemoved': '其他 worktree 已移除', + 'agentManager.empty.groupName.label': '群組名稱', + 'agentManager.empty.groupName.placeholder': '例如:feature-auth, bugfix-login', + 'agentManager.empty.groupName.description': '用於 worktree 目錄和分支命名', + 'agentManager.empty.baseBranch.label': '基底分支', + 'agentManager.empty.baseBranch.description': '將從 {branch} 建立新分支', + 'agentManager.empty.setupCommands.label': '初始化命令', + 'agentManager.empty.setupCommands.configured': '已設定 {count} 條', + 'agentManager.empty.setupCommands.description': '這些命令會在每個新 worktree 中執行。專案根目錄可用 $ROOT_PROJECT_PATH。', + 'agentManager.empty.setupCommands.loading': '載入中...', + 'agentManager.empty.setupCommands.commandPlaceholder': '例如:bun install', + 'agentManager.empty.setupCommands.removeCommandAria': '移除命令', + 'agentManager.empty.setupCommands.addCommand': '新增命令', + 'agentManager.empty.agent.label': 'Agent', + 'agentManager.empty.agent.description': '預設使用你設定的預設 Agent', + 'agentManager.empty.models.label': '模型', + 'agentManager.empty.models.addModel': '新增模型', + 'agentManager.empty.models.selectedSingle': '已選擇 {count} 個模型', + 'agentManager.empty.models.selectedPlural': '已選擇 {count} 個模型', + 'agentManager.empty.prompt.label': '提示詞', + 'agentManager.empty.prompt.placeholder': '問任何問題...', + 'agentManager.empty.prompt.addAttachmentAria': '加入附件', + 'agentManager.empty.actions.startAgentGroupAria': '啟動 Agent 群組', + 'agentManager.empty.toast.fileTooLarge': '檔案「{fileName}」過大(最大 10MB)', + 'agentManager.empty.toast.failedToAttach': '附加「{fileName}」失敗', + 'agentManager.empty.toast.attachedSingle': '已附加 {count} 個檔案', + 'agentManager.empty.toast.attachedPlural': '已附加 {count} 個檔案', + 'agentManager.empty.toast.failedToCreateGroup': '建立 Agent 群組失敗', + 'openInApp.actions.open': '開啟', + 'openInApp.actions.openInAria': '在 {app} 中開啟', + 'openInApp.actions.chooseAppAria': '選擇要開啟的應用程式', + 'openInApp.actions.copyPath': '複製路徑', + 'openInApp.actions.refreshApps': '重新整理應用程式', + 'openInApp.toast.pathCopied': '路徑已複製到剪貼簿', + 'projectActions.actions.addActionAria': '新增操作', + 'projectActions.actions.addAction': '新增操作', + 'projectActions.actions.addNewAction': '新增新操作', + 'projectActions.actions.autoDiscover': '自動發現', + 'projectActions.actions.chooseActionAria': '選擇專案操作', + 'projectActions.actions.openPreview': '開啟預覽', + 'projectActions.actions.runNamedAria': '執行 {name}', + 'projectActions.actions.stopNamedAria': '停止 {name}', + 'projectActions.label.fallbackAction': '操作', + 'projectActions.toast.openedUrlFromOutput': '已從操作輸出中開啟 URL', + 'projectActions.toast.openedForwardedUrl': '已開啟轉發 URL', + 'projectActions.toast.openedActionUrl': '已開啟操作 URL', + 'projectActions.error.noActiveDirectory': '沒有活動目錄', + 'projectActions.error.noActiveDirectoryForAction': '沒有可用於該操作的活動目錄', + 'projectActions.error.failedToCreateTerminalSession': '建立終端機會話失敗', + 'projectActions.error.invalidCustomUrlFormat': '自訂 URL 格式無效', + 'projectActions.error.selectedDesktopSshForwardUnavailable': '所選桌面 SSH 轉發無法使用', + 'projectActions.error.failedToRunAction': '執行操作失敗', + 'mcpDropdown.title': 'MCP 伺服器', + 'mcpDropdown.actions.refreshAria': '重新整理', + 'mcpDropdown.actions.openAria': 'MCP 伺服器', + 'mcpDropdown.statusAria': 'MCP 狀態', + 'mcpDropdown.status.unknown': '未知', + 'mcpDropdown.status.connected': '已連線', + 'mcpDropdown.status.failed': '失敗:{error}', + 'mcpDropdown.status.unknownError': '未知錯誤', + 'mcpDropdown.status.needsAuth': '需要認證', + 'mcpDropdown.status.needsRegistration': '需要註冊:{error}', + 'mcpDropdown.empty.configureInConfig': '請在 OpenCode 設定中設定 MCP 伺服器。', + 'sessionAuth.error.rateLimitTitle': '嘗試次數過多', + 'sessionAuth.error.networkTitle': '無法連線伺服器', + 'sessionAuth.error.rateLimitDescriptionSingle': '請等待 {minutes} 分鐘後再試。', + 'sessionAuth.error.rateLimitDescriptionPlural': '請等待 {minutes} 分鐘後再試。', + 'sessionAuth.error.networkDescription': '無法驗證 UI 會話。請檢查服務是否執行後重試。', + 'sessionAuth.error.retry': '重試', + 'sessionAuth.error.passkeySetupFailed': 'Passkey 設定失敗。', + 'sessionAuth.error.incorrectPassword': '密碼錯誤,請重試。', + 'sessionAuth.error.unexpectedResponse': '伺服器傳回了意外回應。', + 'sessionAuth.error.networkRetry': '網路錯誤。請檢查連線後重試。', + 'sessionAuth.error.passkeySignInCanceled': 'Passkey 登入已取消。', + 'sessionAuth.error.enterPasswordForPasskey': '請輸入密碼以新增 passkey。', + 'sessionAuth.locked.tunnelTitle': '需要 Tunnel 存取', + 'sessionAuth.locked.unlockTitle': '解鎖 OpenChamber', + 'sessionAuth.locked.tunnelDescription': '請使用桌面應用程式提供的一次性連結開啟該 Tunnel。', + 'sessionAuth.locked.passwordDescription': '此會話受密碼保護。', + 'sessionAuth.locked.hostSwitcherHint': '如果遠端無法連線,請使用 Local。', + 'sessionAuth.actions.cancelPasskey': '取消 passkey', + 'sessionAuth.actions.usePasskey': '使用 passkey', + 'sessionAuth.actions.unlockingAria': '解鎖中', + 'sessionAuth.actions.unlockAria': '解鎖', + 'sessionAuth.actions.trustDevice': '信任此裝置', + 'sessionAuth.actions.trustDeviceAria': '信任此裝置', + 'sessionAuth.actions.cancelPasskeySetup': '取消 passkey 設定', + 'sessionAuth.actions.addPasskey': '新增 passkey', + 'sessionAuth.password.placeholder': '輸入密碼', + 'sessionAuth.toast.passkeyAdded': 'Passkey 已新增', + 'sessionAuth.toast.passkeySetupCanceled': 'Passkey 設定已取消', + 'desktopHostSwitcher.title': '實例', + 'desktopHostSwitcher.description': '在 Local 與遠端 OpenChamber 伺服器之間切換', + 'desktopHostSwitcher.header.current': '目前', + 'desktopHostSwitcher.header.default': '預設', + 'desktopHostSwitcher.header.currentColon': '目前:', + 'desktopHostSwitcher.header.currentDefaultColon': '目前預設:', + 'desktopHostSwitcher.status.connected': '已連線', + 'desktopHostSwitcher.status.authRequired': '需要認證', + 'desktopHostSwitcher.status.wrongService': '服務不符', + 'desktopHostSwitcher.status.unreachable': '無法連線', + 'desktopHostSwitcher.status.unknown': '未知', + 'desktopHostSwitcher.status.ping': ' · {ms}ms 延遲', + 'desktopHostSwitcher.statusAria': '實例狀態', + 'desktopHostSwitcher.sshPhase.ready': '已就緒', + 'desktopHostSwitcher.sshPhase.error': '錯誤', + 'desktopHostSwitcher.sshPhase.reconnecting': '重連中', + 'desktopHostSwitcher.sshPhase.resolvingConfig': '解析設定中', + 'desktopHostSwitcher.sshPhase.checkingAuth': '檢查認證中', + 'desktopHostSwitcher.sshPhase.connectingSsh': '連線 SSH 中', + 'desktopHostSwitcher.sshPhase.probingRemote': '探測遠端中', + 'desktopHostSwitcher.sshPhase.installing': '安裝中', + 'desktopHostSwitcher.sshPhase.updating': '更新中', + 'desktopHostSwitcher.sshPhase.detectingServer': '檢測服務中', + 'desktopHostSwitcher.sshPhase.startingServer': '啟動服務中', + 'desktopHostSwitcher.sshPhase.forwardingPorts': '通訊埠轉發中', + 'desktopHostSwitcher.sshPhase.idle': '閒置', + 'desktopHostSwitcher.ssh.needInstancesHint': '需要 SSH 實例?請在設定中管理。', + 'desktopHostSwitcher.ssh.instanceFallback': 'SSH 實例', + 'desktopHostSwitcher.ssh.connectingTo': '正在連線到 {host}', + 'desktopHostSwitcher.actions.refresh': '重新整理', + 'desktopHostSwitcher.actions.refreshInstancesAria': '重新整理實例', + 'desktopHostSwitcher.actions.remoteSsh': '遠端 SSH', + 'desktopHostSwitcher.actions.instanceActionsAria': '實例操作', + 'desktopHostSwitcher.actions.edit': '編輯', + 'desktopHostSwitcher.actions.delete': '刪除', + 'desktopHostSwitcher.actions.connect': '連線', + 'desktopHostSwitcher.actions.defaultInstanceAria': '預設實例', + 'desktopHostSwitcher.actions.setAsDefaultAria': '設為預設', + 'desktopHostSwitcher.actions.setAsDefault': '設為預設', + 'desktopHostSwitcher.actions.openInNewWindowAria': '在新視窗開啟', + 'desktopHostSwitcher.actions.openInNewWindow': '在新視窗開啟', + 'desktopHostSwitcher.actions.addInstance': '新增實例', + 'desktopHostSwitcher.actions.cancel': '取消', + 'desktopHostSwitcher.actions.save': '儲存', + 'desktopHostSwitcher.actions.add': '新增', + 'desktopHostSwitcher.actions.switchToLocal': '切換到 Local', + 'desktopHostSwitcher.actions.retry': '重試', + 'desktopHostSwitcher.actions.switchInstanceAria': '切換實例', + 'desktopHostSwitcher.actions.switchInstance': '切換實例', + 'desktopHostSwitcher.actions.switchToAria': '切換到 {instance}', + 'desktopHostSwitcher.field.labelPlaceholder': '標籤', + 'desktopHostSwitcher.field.labelOptionalPlaceholder': '標籤(可選)', + 'desktopHostSwitcher.field.urlPlaceholder': 'https://host:port', + 'desktopHostSwitcher.state.limitedOnPage': '此頁面上的實例切換器功能受限。可使用 Local 恢復。', + 'desktopHostSwitcher.state.loading': '載入中...', + 'desktopHostSwitcher.state.instanceUnreachable': '實例無法連線', + 'desktopHostSwitcher.edit.title': '編輯實例', + 'desktopHostSwitcher.add.title': '新增實例', + 'desktopHostSwitcher.error.failedToSave': '儲存失敗', + 'desktopHostSwitcher.error.failedToLoad': '載入失敗', + 'desktopHostSwitcher.error.invalidUrl': '無效 URL(必須是 http/https)', + 'desktopHostSwitcher.error.failedToOpenNewWindow': '在新視窗開啟失敗', + 'desktopHostSwitcher.instance.local': 'Local', + 'desktopHostSwitcher.instance.fallback': '實例', + 'desktopHostSwitcher.startup.title': '預設 SSH 實例無法使用', + 'desktopHostSwitcher.startup.connectingTo': '正在連線到 {host}...', + 'desktopHostSwitcher.startup.failed': '連線預設 SSH 實例失敗。', + 'desktopHostSwitcher.toast.sshConnected': 'SSH 實例「{host}」已連線', + 'desktopHostSwitcher.toast.sshFailedToConnect': 'SSH 實例「{host}」連線失敗', + 'desktopHostSwitcher.toast.instanceUnreachable': '實例「{host}」無法連線', + 'miniChat.header.newSession': '新會話', + 'miniChat.header.session': '會話', + 'miniChat.header.defaultAgent': '預設 Agent', + 'miniChat.header.noModel': '未選擇模型', + 'miniChat.status.busy': '執行中', + 'miniChat.status.retry': '重試中', + 'miniChat.status.idle': '閒置', + 'miniChat.actions.pin': '釘選在其他視窗上方', + 'miniChat.actions.unpin': '取消釘選視窗', + 'miniChat.actions.pinAria': '釘選 Mini Chat 視窗', + 'miniChat.actions.unpinAria': '取消釘選 Mini Chat 視窗', + 'miniChat.actions.openMain': '在主視窗中開啟', + 'miniChat.actions.openMainAria': '在主視窗中開啟會話', + 'miniChat.unavailable.title': '會話無法使用', + 'miniChat.unavailable.description': '無法載入此會話。它可能已被刪除、封存,或從其他專案上下文開啟。', + 'sessions.sidebar.session.menu.openMiniChatWindow': '在 Mini Chat 視窗中開啟', + 'header.actions.newMiniChat': '新增 Mini Chat 視窗', + 'header.actions.newMiniChatAria': '開啟新的 Mini Chat 視窗', + 'header.actions.openSessionMiniChat': '在 Mini Chat 中開啟會話', + 'header.actions.openSessionMiniChatAria': '在 Mini Chat 中開啟目前會話', + 'errorBoundary.title': '發生錯誤', + 'errorBoundary.description': '應用程式遇到意外錯誤,已記錄用於偵錯。', + 'errorBoundary.state.unknownError': '未知錯誤', + 'errorBoundary.state.componentStackLabel': '元件堆疊:', + 'errorBoundary.actions.errorDetails': '錯誤詳情', + 'errorBoundary.actions.tryAgain': '重試', + 'errorBoundary.actions.copy': '複製', + 'errorBoundary.actions.copied': '已複製', + 'jsonTreeView.error.emptyJson': 'JSON 內容為空', + 'jsonTreeView.error.invalidJson': '無效 JSON', + 'jsonTreeView.error.invalidJsonTitle': '無效 JSON', + 'jsonTreeView.actions.expandAll': '全部展開', + 'jsonTreeView.actions.collapseAll': '全部摺疊', + 'numberInput.actions.decreaseAria': '減少數值', + 'numberInput.actions.increaseAria': '增加數值', + 'goToLineDialog.field.linePlaceholderShort': '行', + 'goToLineDialog.field.linePlaceholder': '行號', + 'goToLineDialog.actions.go': '前往', + 'goToLineDialog.helper.editorUnavailable': '編輯器無法使用。', + 'goToLineDialog.helper.currentLineRange': '目前行:{current}。輸入 1 到 {max} 之間的行號進行跳轉。', + 'goToLineDialog.helper.goToLine': '跳轉到第 {line} 行', + 'dialog.common.actions.close': '關閉', + 'filesView.toast.relativePathCopied': '相對路徑已複製', + 'filesView.tree.menu.copyRelativePath': '複製相對路徑', + 'multiRun.branchSelector.placeholder.selectSourceBranch': '選擇來源分支...', + 'multiRun.branchSelector.status.loadingBranches': '正在載入分支...', + 'multiRun.branchSelector.status.noBranchesFound': '找不到分支', + 'multiRun.branchSelector.status.notInGitRepository': '目前目錄不是 Git 儲存庫。', + 'multiRun.branchSelector.groups.localBranches': '本地分支', + 'multiRun.branchSelector.groups.remoteBranches': '遠端分支', + 'multiRun.window.actions.closeAria': '關閉多執行視窗', + 'multiRun.window.description': 'OpenChamber 多執行視窗。', + 'voice.status.idle': '語音就緒', + 'voice.status.listening': '監聽中...', + 'voice.status.processing': '處理中...', + 'voice.status.speaking': '播放中...', + 'voice.status.error': '語音錯誤', + 'voice.status.conversationModeActiveAria': '對話模式已啟用', + 'voice.action.finishAndTranscribe': '結束並轉錄語音輸入', + 'onboarding.common.actions.back': '返回', + 'onboarding.common.copyToClipboard': '複製到剪貼簿', + 'onboarding.common.status.copiedToClipboard': '已複製到剪貼簿', + 'onboarding.chooser.title': '歡迎使用 OpenChamber', + 'onboarding.chooser.description': '選擇你的連線方式以開始使用。', + 'onboarding.chooser.tabs.localInstall': '本地安裝', + 'onboarding.chooser.tabs.connectRemote': '連接遠端', + 'onboarding.localSetup.title': '設定 OpenCode', + 'onboarding.localSetup.description': '安裝 OpenCode CLI 以繼續。', + 'onboarding.localSetup.dialog.selectOpencodeBinary': '選擇 OpenCode 執行檔', + 'onboarding.localSetup.errors.cliNotReady': 'OpenCode CLI 尚未就緒。請確認安裝完成後重試。', + 'onboarding.localSetup.errors.detectionFailed': '偵測失敗', + 'onboarding.localSetup.windows.title': 'Windows 設定(推薦 WSL)', + 'onboarding.localSetup.windows.stepInstallWsl': '如需,請先在 PowerShell 中執行', + 'onboarding.localSetup.windows.stepInstallWslSuffix': '安裝 WSL。', + 'onboarding.localSetup.windows.stepRunInstallInWsl': '在 WSL 終端機中執行下方安裝命令。', + 'onboarding.localSetup.windows.stepSetBinaryPath': '如果 OpenChamber 未自動偵測到 OpenCode,請在下方設定執行檔路徑。', + 'onboarding.localSetup.intro': 'OpenCode 是 OpenChamber 的核心,先安裝它即可開始。', + 'onboarding.localSetup.docs.windows': 'OpenCode Windows + WSL 文件', + 'onboarding.localSetup.docs.default': 'OpenCode 文件', + 'onboarding.localSetup.actions.checking': '偵測中...', + 'onboarding.localSetup.actions.checkAndContinue': '我已完成安裝,偵測並繼續', + 'onboarding.localSetup.actions.checkNow': '立即偵測', + 'onboarding.localSetup.helper.checkAndContinue': '點擊偵測 OpenCode CLI 是否可用。成功後將自動進入主介面。', + 'onboarding.localSetup.status.watching': '正在等待 OpenCode', + 'onboarding.localSetup.status.autoContinue': '偵測到後將自動繼續。', + 'onboarding.localSetup.field.alreadyInstalled': '已安裝?設定 OpenCode CLI 路徑:', + 'onboarding.localSetup.advanced.title': '設定自訂執行檔路徑', + 'onboarding.localSetup.troubleshoot.title': '遇到問題?', + 'onboarding.localSetup.actions.browse': '瀏覽', + 'onboarding.localSetup.actions.apply': '套用', + 'onboarding.localSetup.helper.saveAndReload': '將儲存到 OpenChamber 設定並重新載入 OpenCode 設定。', + 'onboarding.localSetup.remotePreference': '更希望使用遠端伺服器?', + 'onboarding.localSetup.actions.connectRemoteServer': '連接遠端伺服器 →', + 'onboarding.localSetup.windows.hintInstallInWsl': '在 Windows 上,建議在 WSL 中安裝並執行 OpenCode 以獲得最佳相容性。', + 'onboarding.localSetup.windows.hintDetectionFailed': '若偵測失敗,請設定本地路徑(opencode.cmd/opencode.exe)、wsl.exe,或 wsl:/usr/local/bin/opencode。', + 'onboarding.localSetup.hint.ensurePath': '已安裝?請確認 opencode 在你的 PATH 中。', + 'onboarding.localSetup.hint.setEnv': '或設定 OPENCODE_BINARY 環境變數。', + 'onboarding.localSetup.hint.missingRuntime': '如果看到「env: node: No such file or directory」或「env: bun: No such file or directory」,請安裝對應執行環境或確保其在 PATH 中。', + 'onboarding.remoteConnection.title': '連接遠端伺服器', + 'onboarding.remoteConnection.titleRecovery': '連接到其他伺服器', + 'onboarding.remoteConnection.description': '輸入要連接的 OpenChamber 伺服器位址。', + 'onboarding.remoteConnection.field.serverAddress': '伺服器位址', + 'onboarding.remoteConnection.field.serverAddressPlaceholder': 'https://your-server.example.com:4096', + 'onboarding.remoteConnection.field.nameOptional': '名稱(可選)', + 'onboarding.remoteConnection.field.namePlaceholder': '我的遠端伺服器', + 'onboarding.remoteConnection.errors.connectionTestFailed': '連線測試失敗', + 'onboarding.remoteConnection.errors.failedToSaveConnection': '儲存連線失敗', + 'onboarding.remoteConnection.status.connectedSuccessfully': '連線成功({latencyMs}ms)', + 'onboarding.remoteConnection.status.authWarning': '伺服器需要身分驗證。你仍可繼續連線。', + 'onboarding.remoteConnection.status.connectionFailed': '連線失敗', + 'onboarding.remoteConnection.status.suggestionsUnreachable': '建議:檢查伺服器位址、確認服務已啟動,或檢查網路連線。', + 'onboarding.remoteConnection.status.suggestionsWrongService': '建議:確認 URL 指向 OpenChamber 伺服器,或聯絡伺服器管理員。', + 'onboarding.remoteConnection.actions.testing': '測試中…', + 'onboarding.remoteConnection.actions.testConnection': '測試連線', + 'onboarding.remoteConnection.actions.connectAndRestart': '連線並重新啟動', + 'onboarding.remoteConnection.actions.whatToDo': '你希望如何處理?', + 'onboarding.remoteConnection.actions.chooseDifferentServer': '選擇其他伺服器', + 'onboarding.remoteConnection.actions.useLocalInstead': '改用本地', + 'onboarding.remoteConnection.probe.authMessage': '伺服器需要身分驗證。你仍可連線,但可能需要提供憑證。', + 'onboarding.remoteConnection.probe.wrongServiceMessage': '伺服器有回應,但未執行 OpenChamber。請確認位址是否指向 OpenChamber 伺服器。', + 'onboarding.remoteConnection.probe.unreachableMessage': '伺服器無法連線。請檢查網路連線並確認伺服器位址。', + 'onboarding.desktopRecovery.localUnavailable.title': '本地 OpenCode 無法使用', + 'onboarding.desktopRecovery.localUnavailable.description': 'OpenCode CLI 無法啟動或未安裝。請安裝 OpenCode,或改為連接遠端伺服器。', + 'onboarding.desktopRecovery.localUnavailable.retry': '重試本地', + 'onboarding.desktopRecovery.localUnavailable.useLocal': '設定本地', + 'onboarding.desktopRecovery.noDefaultConnection.title': '無預設連線', + 'onboarding.desktopRecovery.noDefaultConnection.description': '找不到已儲存的預設連線。請選擇你的連線方式。', + 'onboarding.desktopRecovery.remoteUnreachable.title': '遠端伺服器無法連線', + 'onboarding.desktopRecovery.remoteUnreachable.description': '無法連線到「{host}」。請檢查網路連線並確認伺服器位址。', + 'onboarding.desktopRecovery.remoteUnreachable.retry': '重試連線', + 'onboarding.desktopRecovery.incompatibleServer.title': '伺服器不相容', + 'onboarding.desktopRecovery.incompatibleServer.description': '「{host}」上的伺服器未執行 OpenChamber。請確認位址是否指向 OpenChamber 伺服器。', + 'onboarding.desktopRecovery.common.useLocal': '使用本地', + 'onboarding.desktopRecovery.common.useRemote': '使用遠端', + 'onboarding.desktopRecovery.actions.retrying': '重試中…', + 'onboarding.desktopRecovery.actions.retryConnection': '重試連線', + 'startup.initRecovery.title': '啟動失敗', + 'startup.initRecovery.description': 'OpenChamber 未能完成初始化。請檢查伺服器是否正在執行,然後重試。', + 'startup.initRecovery.retry': '重試', + 'startup.initRecovery.retrying': '重試中…', + 'onboarding.desktopRecovery.placeholders.remoteServer': '遠端伺服器', + 'onboarding.desktopRecovery.placeholders.unknownServer': '未知伺服器', + 'vscodeLayout.title.chat': '聊天', + 'vscodeLayout.title.newSession': '新會話', + 'vscodeLayout.title.sessions': '會話', + 'vscodeLayout.title.sessionFallback': '會話', + 'vscodeLayout.actions.backToSessionsAria': '返回會話清單', + 'vscodeLayout.actions.newSessionAria': '新增會話', + 'vscodeLayout.actions.openAgentManagerAria': '開啟 Agent 管理器', + 'vscodeLayout.actions.resizeSessionsSidebarAria': '調整會話側邊欄大小', + 'vscodeLayout.actions.settingsAria': '設定', + 'vscodeLayout.quota.title': '速率限制', + 'vscodeLayout.quota.mode.used': '已用', + 'vscodeLayout.quota.mode.remaining': '剩餘', + 'vscodeLayout.quota.lastUpdated': '上次更新 {time}', + 'vscodeLayout.quota.noRateLimitsAvailable': '沒有可用的速率限制資料。', + 'vscodeLayout.quota.noRateLimitsReported': '未報告速率限制。', + 'vscodeLayout.quota.actions.rateLimitsAria': '速率限制', + 'vscodeLayout.quota.actions.showUsedAria': '顯示已用配額', + 'vscodeLayout.quota.actions.showRemainingAria': '顯示剩餘配額', + 'vscodeLayout.quota.actions.refreshAria': '重新整理速率限制', + 'updateDialog.header.updateAvailable': '有可用更新', + 'updateDialog.header.updating': '正在更新 OpenChamber...', + 'updateDialog.changelog.title': '更新內容', + 'updateDialog.status.installingUpdate': '正在安裝更新...', + 'updateDialog.status.serverRestarting': '伺服器正在重新啟動...', + 'updateDialog.status.waitingForServer': '正在等待伺服器...', + 'updateDialog.status.autoReloadHint': '更新完成後頁面將自動重新載入。', + 'updateDialog.fallback.updateViaTerminal': '或透過終端機更新:', + 'updateDialog.actions.copyCommand': '複製命令', + 'updateDialog.actions.copied': '已複製!', + 'updateDialog.status.downloadingPayload': '正在下載更新包...', + 'updateDialog.actions.downloadUpdate': '下載更新', + 'updateDialog.status.downloading': '下載中...', + 'updateDialog.actions.restartToUpdate': '重新啟動以更新', + 'updateDialog.actions.updateNow': '立即更新', + 'updateDialog.status.updating': '更新中...', + 'updateDialog.error.updateFailed': '更新失敗', + 'updateDialog.error.takingLonger': '更新耗時超出預期。請稍等後重新整理,或執行:openchamber update', + 'opencodeUpdate.toast.available.title': 'OpenCode 更新', + 'opencodeUpdate.toast.available.description': '版本 {version} 可安裝。', + 'opencodeUpdate.toast.actions.update': '更新', + 'opencodeUpdate.toast.actions.dismiss': '忽略', + 'opencodeUpdate.toast.actions.reload': '重新載入 OpenCode', + 'opencodeUpdate.toast.upgrading.title': '正在更新 OpenCode...', + 'opencodeUpdate.toast.upgrading.description': '請保持 OpenChamber 開啟。', + 'opencodeUpdate.toast.updated.title': 'OpenCode 已更新', + 'opencodeUpdate.toast.updated.description': '更新已安裝。', + 'opencodeUpdate.toast.updated.descriptionWithVersion': '版本 {version} 已安裝。', + 'opencodeUpdate.toast.failed.title': '無法更新 OpenCode', + 'opencodeUpdate.toast.failed.description': 'OpenCode 升級失敗。', + 'opencodeUpdate.toast.reload.message': '正在重新啟動 OpenCode...', + 'memoryDebugPanel.title': '偵錯面板', + 'memoryDebugPanel.tabs.memory': '記憶體', + 'memoryDebugPanel.tabs.streaming': '串流', + 'memoryDebugPanel.section.sessionsInMemory': '記憶體中的會話', + 'memoryDebugPanel.section.uiStreamingMetrics': 'UI 串流指標', + 'memoryDebugPanel.section.vscodeBridgeMetrics': 'VS Code 橋接指標', + 'memoryDebugPanel.section.noUiSamples': '暫無 UI 串流取樣。請開始一次串流輸出並保持該面板開啟。', + 'memoryDebugPanel.section.noVscodeSamples': '暫無 VS Code 橋接取樣。', + 'memoryDebugPanel.metric.totalMessages': '訊息總數', + 'memoryDebugPanel.metric.cachedSessions': '快取會話', + 'memoryDebugPanel.metric.viewportWindow': '視口視窗', + 'memoryDebugPanel.metric.zombieTimeout': '殭屍逾時', + 'memoryDebugPanel.metric.githubTotalRequests': 'GitHub 請求總數', + 'memoryDebugPanel.metric.metrics': '指標', + 'memoryDebugPanel.metric.samples': '取樣', + 'memoryDebugPanel.metric.lastUpdate': '最近更新', + 'memoryDebugPanel.metric.uiMetrics': 'UI 指標', + 'memoryDebugPanel.metric.vscodeMetrics': 'VS Code 指標', + 'memoryDebugPanel.metric.messageListRenders': '訊息清單渲染', + 'memoryDebugPanel.metric.messageListStreamRenders': '訊息清單串流渲染', + 'memoryDebugPanel.metric.chatMessageRenders': 'ChatMessage 渲染', + 'memoryDebugPanel.metric.chatMessageStreamRenders': 'ChatMessage 串流渲染', + 'memoryDebugPanel.metric.chatMessageStaticDuringStream': '串流期間 ChatMessage 靜態渲染', + 'memoryDebugPanel.metric.chatMessageStaticOutsideActiveTurn': '活躍輪次外 ChatMessage 靜態渲染', + 'memoryDebugPanel.metric.messagesValue': '{count} 條訊息', + 'memoryDebugPanel.metric.minutesValue': '{count} 分鐘', + 'memoryDebugPanel.metric.msgsValue': '{count} 條', + 'memoryDebugPanel.metric.countValue': '次數 {value}', + 'memoryDebugPanel.metric.avgValue': '平均 {value}', + 'memoryDebugPanel.metric.maxValue': '最大 {value}', + 'memoryDebugPanel.metric.totalValue': '總計 {value}', + 'memoryDebugPanel.actions.logState': '輸出狀態', + 'memoryDebugPanel.actions.copyJson': '複製 JSON', + 'memoryDebugPanel.tooltip.logCurrentState': '將目前記憶體狀態輸出到瀏覽器主控台', + 'memoryDebugPanel.streaming.copy.copied': '串流偵錯 JSON 已複製', + 'memoryDebugPanel.streaming.copy.failed': '複製 JSON 失敗', + 'memoryDebugPanel.streaming.copy.hint': '複製會匯出 UI 與 VS Code 的串流指標 JSON', + 'memoryDebugPanel.common.idle': '閒置', + 'memoryDebugPanel.common.live': '即時', + 'memoryDebugPanel.common.notAvailable': '無', + 'memoryDebugPanel.common.untitled': '未命名', + 'directoryTree.field.newDirectoryPlaceholder': 'new_directory', + 'textarea.resizeHandleAria': '調整文字區域大小', + 'sidebar.resize.leftPanelAria': '調整左側面板大小', + 'sidebar.resize.rightPanelAria': '調整右側面板大小', + 'mainLayout.mobile.closeDrawerAria': '關閉抽屜', + 'sortableTabsStrip.aria.tabs': '分頁', + 'openChamberLogo.aria.logo': 'OpenChamber 標誌', + 'markdownRenderer.table.actions.copyTitle': '複製表格', + 'markdownRenderer.table.actions.downloadTitle': '下載表格', + 'markdownRenderer.table.toast.downloadedAsFormat': '表格已下載為 {format}', + 'markdownRenderer.mermaid.actions.copyTitle': '複製', + 'markdownRenderer.mermaid.actions.copySourceTitle': '複製原始碼', + 'markdownRenderer.mermaid.actions.downloadSvgTitle': '下載 SVG', + 'markdownRenderer.mermaid.toast.downloadFailed': '下載圖表失敗', + 'contextPanel.preview.title': '預覽', + 'contextPanel.preview.description': '使用專案操作或終端機 Preview 按鈕開啟預覽。', + 'contextPanel.preview.startPreview': '啟動預覽', + 'contextPanel.preview.starting': '正在啟動...', + 'contextPanel.preview.noDevServer': '找不到開發伺服器命令。請設定專案操作或新增 "dev" 腳本到 package.json。', + 'contextPanel.preview.startFailed': '啟動預覽伺服器失敗。', + 'contextPanel.preview.serverExited': '開發伺服器意外退出。', + 'contextPanel.preview.noUrlDetected': '開發伺服器已啟動,但未在輸出中偵測到 URL。請開啟預覽終端機分頁查看日誌。', + 'contextPanel.preview.serverExitedWithLog': '開發伺服器意外退出。最後輸出:\n\n{log}', + 'contextPanel.preview.noUrlDetectedWithLog': '開發伺服器未能回應。最後輸出:\n\n{log}', + 'contextPanel.preview.startingServer': '正在啟動開發伺服器...', + 'contextPanel.preview.startingServerHint': '正在等待伺服器開始接受連線。', + 'contextPanel.preview.console.open': '開啟預覽主控台', + 'contextPanel.preview.console.waiting': '正在等待預覽主控台', + 'contextPanel.preview.console.title': '預覽主控台', + 'contextPanel.preview.console.attach': '附加', + 'contextPanel.preview.console.copy': '複製', + 'contextPanel.preview.console.clear': '清除', + 'contextPanel.preview.console.empty': '還沒有預覽主控台事件。', + 'contextPanel.preview.console.noFilteredEvents': '沒有符合此篩選器的事件。', + 'contextPanel.preview.console.runtimeError': '執行時錯誤', + 'contextPanel.preview.console.copied': '預覽主控台已複製', + 'contextPanel.preview.console.copyFailed': '無法複製預覽主控台', + 'contextPanel.preview.console.attached': '預覽主控台已附加到聊天', + 'contextPanel.preview.console.attachNoSession': '請先開啟聊天會話,再附加預覽日誌', + 'contextPanel.preview.console.attachAnnotation': '這些是此專案開發伺服器的瀏覽器主控台日誌。', + 'contextPanel.preview.inspect.toggle': '檢查預覽元素', + 'contextPanel.preview.inspect.attached': '預覽註釋已附加到聊天', + 'contextPanel.preview.inspect.attachNoSession': '請先開啟聊天會話,再附加預覽註釋', + 'contextPanel.preview.inspect.attachAnnotation': '這是內建預覽中選取的 DOM 元素。', + 'contextPanel.preview.inspect.attachAnnotationWithScreenshot': '這是內建預覽中選取的 DOM 元素。已附加帶有標明選取元素的可見預覽區域截圖。', + 'contextPanel.preview.console.filter.all': '全部', + 'contextPanel.preview.console.filter.errors': '錯誤', + 'contextPanel.preview.console.filter.warnings': '警告', + 'contextPanel.preview.console.filter.logs': '日誌', + 'filesView.tree.actions.refreshTitle': '重新整理', + 'sidebarFilesTree.actions.fileMenuTitle': '檔案選單', +}; diff --git a/packages/ui/src/lib/i18n/runtime.ts b/packages/ui/src/lib/i18n/runtime.ts index 20b4abda..c3119909 100644 --- a/packages/ui/src/lib/i18n/runtime.ts +++ b/packages/ui/src/lib/i18n/runtime.ts @@ -1,12 +1,13 @@ -export type Locale = 'en' | 'zh-CN' | 'uk' | 'es' | 'pt-BR' | 'ko' | 'pl'; +export type Locale = 'en' | 'zh-CN' | 'zh-TW' | 'uk' | 'es' | 'pt-BR' | 'ko' | 'pl'; -export const LOCALES = ['en', 'zh-CN', 'uk', 'es', 'pt-BR', 'ko', 'pl'] as const satisfies readonly Locale[]; +export const LOCALES = ['en', 'zh-CN', 'zh-TW', 'uk', 'es', 'pt-BR', 'ko', 'pl'] as const satisfies readonly Locale[]; export const DEFAULT_LOCALE: Locale = 'en'; -export const LOCALE_LABEL_KEYS: Record = { +export const LOCALE_LABEL_KEYS: Record = { en: 'common.language.english', 'zh-CN': 'common.language.simplifiedChinese', + 'zh-TW': 'common.language.traditionalChinese', uk: 'common.language.ukrainian', es: 'common.language.spanish', 'pt-BR': 'common.language.brazilianPortuguese', @@ -29,6 +30,9 @@ export function normalizeLocale(value: string | undefined | null): Locale { if (normalized === 'zh-cn' || normalized === 'zh-hans' || normalized.startsWith('zh-hans-')) { return 'zh-CN'; } + if (normalized === 'zh-tw' || normalized === 'zh-hant' || normalized.startsWith('zh-hant-')) { + return 'zh-TW'; + } if (normalized.startsWith('zh')) { return 'zh-CN'; } diff --git a/packages/ui/src/lib/i18n/store.ts b/packages/ui/src/lib/i18n/store.ts index 652e24e1..2e1f2f41 100644 --- a/packages/ui/src/lib/i18n/store.ts +++ b/packages/ui/src/lib/i18n/store.ts @@ -28,17 +28,19 @@ async function loadDictionary(locale: Locale): Promise { const mod = locale === 'zh-CN' ? await import('./messages/zh-CN') as { dict: I18nDictionary } - : locale === 'es' - ? await import('./messages/es') as { dict: I18nDictionary } - : locale === 'pt-BR' - ? await import('./messages/pt-BR') as { dict: I18nDictionary } - : locale === 'uk' - ? await import('./messages/uk') as { dict: I18nDictionary } - : locale === 'ko' - ? await import('./messages/ko') as { dict: I18nDictionary } - : locale === 'pl' - ? await import('./messages/pl') as { dict: I18nDictionary } - : { dict: enDict }; + : locale === 'zh-TW' + ? await import('./messages/zh-TW') as { dict: I18nDictionary } + : locale === 'es' + ? await import('./messages/es') as { dict: I18nDictionary } + : locale === 'pt-BR' + ? await import('./messages/pt-BR') as { dict: I18nDictionary } + : locale === 'uk' + ? await import('./messages/uk') as { dict: I18nDictionary } + : locale === 'ko' + ? await import('./messages/ko') as { dict: I18nDictionary } + : locale === 'pl' + ? await import('./messages/pl') as { dict: I18nDictionary } + : { dict: enDict }; dictionaries.set(locale, mod.dict); return mod.dict; }