From c21a9f45610eb1eeb650d8e6cf8650e798f77f6f Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E5=A6=96=E6=80=AA=E4=B8=8D=E4=B8=B8?=
Date: Sat, 6 Jun 2026 02:45:49 +0800
Subject: [PATCH] feat(i18n): add Traditional Chinese (zh-TW) locale (#773)
* feat(i18n): add Traditional Chinese (zh-TW) locale
* fix(i18n): localize remaining English strings and fix README fence (zh-TW)
* fix(i18n): track zh-TW tasks.json (was excluded by .gitignore)
---------
Co-authored-by: Haile <118998054+blackmammoth@users.noreply.github.com>
---
README.de.md | 2 +-
README.ja.md | 2 +-
README.ko.md | 2 +-
README.md | 2 +-
README.ru.md | 2 +-
README.tr.md | 2 +-
README.zh-CN.md | 2 +-
README.zh-TW.md | 242 +++++++++++++
src/i18n/config.js | 18 +
src/i18n/languages.js | 5 +
src/i18n/locales/zh-TW/auth.json | 37 ++
src/i18n/locales/zh-TW/chat.json | 257 +++++++++++++
src/i18n/locales/zh-TW/codeEditor.json | 34 ++
src/i18n/locales/zh-TW/common.json | 267 ++++++++++++++
src/i18n/locales/zh-TW/settings.json | 484 +++++++++++++++++++++++++
src/i18n/locales/zh-TW/sidebar.json | 136 +++++++
src/i18n/locales/zh-TW/tasks.json | 142 ++++++++
17 files changed, 1629 insertions(+), 7 deletions(-)
create mode 100644 README.zh-TW.md
create mode 100644 src/i18n/locales/zh-TW/auth.json
create mode 100644 src/i18n/locales/zh-TW/chat.json
create mode 100644 src/i18n/locales/zh-TW/codeEditor.json
create mode 100644 src/i18n/locales/zh-TW/common.json
create mode 100644 src/i18n/locales/zh-TW/settings.json
create mode 100644 src/i18n/locales/zh-TW/sidebar.json
create mode 100644 src/i18n/locales/zh-TW/tasks.json
diff --git a/README.de.md b/README.de.md
index 9f8a429b..8532a3a3 100644
--- a/README.de.md
+++ b/README.de.md
@@ -15,7 +15,7 @@
-
+
---
diff --git a/README.ja.md b/README.ja.md
index b5dfdc80..17f67205 100644
--- a/README.ja.md
+++ b/README.ja.md
@@ -15,7 +15,7 @@
-
+
---
diff --git a/README.ko.md b/README.ko.md
index 41e142bf..b6f6e7e7 100644
--- a/README.ko.md
+++ b/README.ko.md
@@ -15,7 +15,7 @@
-
+
---
diff --git a/README.md b/README.md
index bb60c9e0..281e4327 100644
--- a/README.md
+++ b/README.md
@@ -15,7 +15,7 @@
-
+
---
diff --git a/README.ru.md b/README.ru.md
index 97d8074f..ff268015 100644
--- a/README.ru.md
+++ b/README.ru.md
@@ -15,7 +15,7 @@
-
+
---
diff --git a/README.tr.md b/README.tr.md
index c84770e5..f5a155d6 100644
--- a/README.tr.md
+++ b/README.tr.md
@@ -15,7 +15,7 @@
-
+
---
diff --git a/README.zh-CN.md b/README.zh-CN.md
index 2ee656e8..457d24dd 100644
--- a/README.zh-CN.md
+++ b/README.zh-CN.md
@@ -15,7 +15,7 @@
-
+
---
diff --git a/README.zh-TW.md b/README.zh-TW.md
new file mode 100644
index 00000000..f0710ff3
--- /dev/null
+++ b/README.zh-TW.md
@@ -0,0 +1,242 @@
+
+
+
+ CloudCLI Cloud · 文件 · Discord · Bug 回報 · 貢獻指南
+
+
+
+
+
+
+
+
+
+
+
+---
+
+## 截圖
+
+
+
+
+
+
+桌面檢視
+
+
+顯示專案總覽和聊天的主介面
+ |
+
+行動裝置體驗
+
+
+具有觸控導覽的響應式行動裝置設計
+ |
+
+
+
+CLI 選擇
+
+
+在 Claude Code、Gemini、Cursor CLI 與 Codex 之間進行選擇
+ |
+
+
+
+
+
+## 功能
+
+- **響應式設計** — 在桌面、平板和行動裝置上無縫運作,讓您隨時隨地使用 Agents
+- **互動聊天介面** — 內建聊天 UI,輕鬆與 Agents 交流
+- **整合 Shell 終端機** — 透過內建 shell 功能直接存取 Agents CLI
+- **檔案瀏覽器** — 互動式檔案樹,支援語法醒目提示與即時編輯
+- **Git 瀏覽器** — 檢視、暫存並提交變更,還可切換分支
+- **工作階段管理** — 恢復對話、管理多個工作階段並追蹤歷史紀錄
+- **外掛系統** — 透過自訂分頁、後端服務與整合來擴充 CloudCLI。[開始建構 →](https://github.com/cloudcli-ai/cloudcli-plugin-starter)
+- **TaskMaster AI 整合** *(選用)* — 結合 AI 任務規劃、PRD 分析與工作流程自動化,實現進階專案管理
+- **模型相容性** — 支援 Claude、GPT、Gemini 模型家族(完整支援列表見 [`shared/modelConstants.js`](shared/modelConstants.js))
+
+## 快速開始
+
+### CloudCLI Cloud(推薦)
+
+無需本機設定即可快速啟動。提供可透過網路瀏覽器、行動應用程式、API 或慣用的 IDE 存取的完全容器化託管開發環境。
+
+**[立即開始 CloudCLI Cloud](https://cloudcli.ai)**
+
+### 自架(開源)
+
+#### npm
+
+啟動 CloudCLI UI,只需一行 `npx`(需要 Node.js v22+):
+
+```bash
+npx @cloudcli-ai/cloudcli
+```
+
+或進行全域安裝,便於日常使用:
+
+```bash
+npm install -g @cloudcli-ai/cloudcli
+cloudcli
+```
+
+開啟 `http://localhost:3001`,系統會自動發現所有現有工作階段。
+
+更多設定選項、PM2、遠端伺服器設定等,請參閱 **[文件 →](https://cloudcli.ai/docs)**。
+
+#### Docker Sandboxes(實驗性)
+
+在隔離的沙箱中執行代理,具有虛擬機管理程式等級的隔離。預設啟動 Claude Code。需要 [`sbx` CLI](https://docs.docker.com/ai/sandboxes/get-started/)。
+
+```bash
+npx @cloudcli-ai/cloudcli@latest sandbox ~/my-project
+```
+
+支援 Claude Code、Codex 和 Gemini CLI。詳情請參閱[沙箱文件](docker/)。
+
+---
+
+## 哪個選項更適合你?
+
+CloudCLI UI 是 CloudCLI Cloud 的開源 UI 層。你可以在本機上自架它,也可以使用提供團隊功能與深入整合的 CloudCLI Cloud。
+
+| | CloudCLI UI(自架) | CloudCLI Cloud |
+|---|---|---|
+| **適合對象** | 需要為本機代理工作階段提供完整 UI 的開發者 | 需要部署在雲端,隨時從任何地方存取代理的團隊與開發者 |
+| **存取方式** | 透過 `[yourip]:port` 在瀏覽器中存取 | 瀏覽器、任意 IDE、REST API、n8n |
+| **設定** | `npx @cloudcli-ai/cloudcli` | 無需設定 |
+| **機器需保持開機嗎** | 是 | 否 |
+| **行動裝置存取** | 網路內任意瀏覽器 | 任意裝置(原生應用程式即將推出) |
+| **可用工作階段** | 自動發現 `~/.claude` 中的所有工作階段 | 雲端環境內的工作階段 |
+| **支援的 Agents** | Claude Code、Cursor CLI、Codex、Gemini CLI | Claude Code、Cursor CLI、Codex、Gemini CLI |
+| **檔案瀏覽與 Git** | 內建於 UI | 內建於 UI |
+| **MCP 設定** | UI 管理,與本機 `~/.claude` 設定同步 | UI 管理 |
+| **IDE 存取** | 本機 IDE | 任何連線到雲端環境的 IDE |
+| **REST API** | 是 | 是 |
+| **n8n 節點** | 否 | 是 |
+| **團隊共享** | 否 | 是 |
+| **平台費用** | 免費開源 | 起價 $7/月 |
+
+> 兩種方式都使用你自己的 AI 訂閱(Claude、Cursor 等)— CloudCLI 提供環境,而非 AI。
+
+---
+
+## 安全與工具設定
+
+**🔒 重要提示**:所有 Claude Code 工具預設**停用**,可防止潛在的有害操作自動執行。
+
+### 啟用工具
+
+1. **開啟工具設定** — 點擊側邊欄齒輪圖示
+2. **選擇性啟用** — 僅啟用所需工具
+3. **套用設定** — 偏好設定儲存在本機
+
+
+
+
+*工具設定介面 — 只啟用你需要的內容*
+
+
+
+**建議做法**:先啟用基礎工具,再根據需要新增其他工具。隨時可以調整。
+
+---
+
+## 外掛
+
+CloudCLI 配備外掛系統,允許你新增帶有自訂前端 UI 和選用 Node.js 後端的分頁。在 Settings > Plugins 中直接從 Git 儲存庫安裝外掛,或自行開發。
+
+### 可用外掛
+
+| 外掛 | 描述 |
+|---|---|
+| **[Project Stats](https://github.com/cloudcli-ai/cloudcli-plugin-starter)** | 展示目前專案的檔案數、程式碼行數、檔案類型分佈、最大檔案以及最近修改的檔案 |
+
+### 自行建構
+
+**[Plugin Starter Template →](https://github.com/cloudcli-ai/cloudcli-plugin-starter)** — Fork 該儲存庫以建構自己的外掛。範例包括前端渲染、即時上下文更新和 RPC 通訊。
+
+**[外掛文件 →](https://cloudcli.ai/docs/plugin-overview)** — 提供外掛 API、清單格式、安全模型等完整指南。
+
+---
+
+## 常見問題
+
+
+與 Claude Code Remote Control 有何不同?
+
+Claude Code Remote Control 讓你傳送訊息到本機終端機中已經執行的工作階段。該方式要求你的機器保持開機,終端機保持開啟,中斷網路後約 10 分鐘工作階段會逾時。
+
+CloudCLI UI 與 CloudCLI Cloud 是對 Claude Code 的擴充,而非旁觀 — MCP 伺服器、權限、設定、工作階段與 Claude Code 完全一致。
+
+- **涵蓋全部工作階段** — CloudCLI UI 會自動掃描 `~/.claude` 資料夾中的每個工作階段。Remote Control 只暴露目前活動的工作階段。
+- **設定統一** — 在 CloudCLI UI 中修改的 MCP、工具權限等設定會立即寫入 Claude Code。
+- **支援更多 Agents** — Claude Code、Cursor CLI、Codex、Gemini CLI。
+- **完整 UI** — 除了聊天介面,還包括檔案瀏覽器、Git 整合、MCP 管理和 Shell 終端機。
+- **CloudCLI Cloud 持續運作於雲端** — 關閉本機裝置也不會中斷代理執行,無需監控終端機。
+
+
+
+
+需要額外購買 AI 訂閱嗎?
+
+需要。CloudCLI 只提供環境。你仍需自行取得 Claude、Cursor、Codex 或 Gemini 訂閱。CloudCLI Cloud 從 $7/月起提供託管環境。
+
+
+
+
+能在手機上使用 CloudCLI UI 嗎?
+
+可以。自架時,在你的裝置上執行伺服器,然後在網路中的任意瀏覽器開啟 `[yourip]:port`。CloudCLI Cloud 可從任意裝置存取,內建原生應用程式也在開發中。
+
+
+
+
+UI 中的變更會影響本機 Claude Code 設定嗎?
+
+會的。自架模式下,CloudCLI UI 讀取並寫入 Claude Code 使用的 `~/.claude` 設定。透過 UI 新增的 MCP 伺服器會立即在 Claude Code 中可見。
+
+
+
+---
+
+## 社群與支援
+
+- **[文件](https://cloudcli.ai/docs)** — 安裝、設定、功能與疑難排解指南
+- **[Discord](https://discord.gg/buxwujPNRE)** — 取得協助並與社群交流
+- **[GitHub Issues](https://github.com/siteboon/claudecodeui/issues)** — 回報 Bug 與建議功能
+- **[貢獻指南](CONTRIBUTING.md)** — 如何參與專案貢獻
+
+## 授權條款
+
+GNU 通用公共授權條款 v3.0 — 詳見 [LICENSE](LICENSE) 檔案。
+
+該專案為開源軟體,在 GPL v3 授權條款下可自由使用、修改與散布。
+
+## 致謝
+
+### 使用技術
+- **[Claude Code](https://docs.anthropic.com/en/docs/claude-code)** — Anthropic 官方 CLI
+- **[Cursor CLI](https://docs.cursor.com/en/cli/overview)** — Cursor 官方 CLI
+- **[Codex](https://developers.openai.com/codex)** — OpenAI Codex
+- **[Gemini-CLI](https://geminicli.com/)** — Google Gemini CLI
+- **[React](https://react.dev/)** — 使用者介面函式庫
+- **[Vite](https://vitejs.dev/)** — 快速建構工具與開發伺服器
+- **[Tailwind CSS](https://tailwindcss.com/)** — 實用優先 CSS 框架
+- **[CodeMirror](https://codemirror.net/)** — 進階程式碼編輯器
+- **[TaskMaster AI](https://github.com/eyaltoledano/claude-task-master)** *(選用)* — AI 驅動的專案管理與任務規劃
+
+### 贊助商
+- [Siteboon - AI powered website builder](https://siteboon.ai)
+---
+
+
+ 為 Claude Code、Cursor 和 Codex 社群精心打造。
+
diff --git a/src/i18n/config.js b/src/i18n/config.js
index 7fcda777..6e9e3a95 100644
--- a/src/i18n/config.js
+++ b/src/i18n/config.js
@@ -84,6 +84,15 @@ import itCodeEditor from './locales/it/codeEditor.json';
// eslint-disable-next-line import-x/order
import itTasks from './locales/it/tasks.json';
+import zhTWCommon from './locales/zh-TW/common.json';
+import zhTWSettings from './locales/zh-TW/settings.json';
+import zhTWAuth from './locales/zh-TW/auth.json';
+import zhTWSidebar from './locales/zh-TW/sidebar.json';
+import zhTWChat from './locales/zh-TW/chat.json';
+import zhTWCodeEditor from './locales/zh-TW/codeEditor.json';
+// eslint-disable-next-line import-x/order
+import zhTWTasks from './locales/zh-TW/tasks.json';
+
// Import supported languages configuration
import { languages } from './languages.js';
@@ -178,6 +187,15 @@ i18n
codeEditor: itCodeEditor,
tasks: itTasks,
},
+ 'zh-TW': {
+ common: zhTWCommon,
+ settings: zhTWSettings,
+ auth: zhTWAuth,
+ sidebar: zhTWSidebar,
+ chat: zhTWChat,
+ codeEditor: zhTWCodeEditor,
+ tasks: zhTWTasks,
+ },
},
// Default language
diff --git a/src/i18n/languages.js b/src/i18n/languages.js
index c387c15c..efc17053 100644
--- a/src/i18n/languages.js
+++ b/src/i18n/languages.js
@@ -24,6 +24,11 @@ export const languages = [
label: 'Simplified Chinese',
nativeName: '简体中文',
},
+ {
+ value: 'zh-TW',
+ label: 'Traditional Chinese',
+ nativeName: '繁體中文',
+ },
{
value: 'ja',
label: 'Japanese',
diff --git a/src/i18n/locales/zh-TW/auth.json b/src/i18n/locales/zh-TW/auth.json
new file mode 100644
index 00000000..02cfed89
--- /dev/null
+++ b/src/i18n/locales/zh-TW/auth.json
@@ -0,0 +1,37 @@
+{
+ "login": {
+ "title": "歡迎回來",
+ "description": "登入您的 CloudCLI 帳戶",
+ "username": "使用者名稱",
+ "password": "密碼",
+ "submit": "登入",
+ "loading": "登入中...",
+ "errors": {
+ "invalidCredentials": "使用者名稱或密碼無效",
+ "requiredFields": "請填寫所有欄位",
+ "networkError": "網路錯誤,請重試。"
+ },
+ "placeholders": {
+ "username": "輸入您的使用者名稱",
+ "password": "輸入您的密碼"
+ }
+ },
+ "register": {
+ "title": "建立帳戶",
+ "username": "使用者名稱",
+ "password": "密碼",
+ "confirmPassword": "確認密碼",
+ "submit": "建立帳戶",
+ "loading": "建立帳戶中...",
+ "errors": {
+ "passwordMismatch": "密碼不一致",
+ "usernameTaken": "使用者名稱已被使用",
+ "weakPassword": "密碼強度太弱"
+ }
+ },
+ "logout": {
+ "title": "登出",
+ "confirm": "確定要登出嗎?",
+ "button": "登出"
+ }
+}
diff --git a/src/i18n/locales/zh-TW/chat.json b/src/i18n/locales/zh-TW/chat.json
new file mode 100644
index 00000000..1440bd52
--- /dev/null
+++ b/src/i18n/locales/zh-TW/chat.json
@@ -0,0 +1,257 @@
+{
+ "codeBlock": {
+ "copy": "複製",
+ "copied": "已複製",
+ "copyCode": "複製程式碼"
+ },
+ "copyMessage": {
+ "copy": "複製訊息",
+ "copied": "訊息已複製",
+ "selectFormat": "選擇複製格式",
+ "copyAsMarkdown": "複製為 Markdown",
+ "copyAsText": "複製為純文字"
+ },
+ "messageTypes": {
+ "user": "U",
+ "error": "錯誤",
+ "tool": "工具",
+ "claude": "Claude",
+ "cursor": "Cursor",
+ "codex": "Codex",
+ "gemini": "Gemini"
+ },
+ "tools": {
+ "settings": "工具設定",
+ "error": "工具錯誤",
+ "result": "工具結果",
+ "viewParams": "查看輸入參數",
+ "viewRawParams": "查看原始參數",
+ "viewDiff": "查看編輯差異",
+ "creatingFile": "建立新檔案:",
+ "updatingTodo": "更新待辦事項",
+ "read": "讀取",
+ "readFile": "讀取檔案",
+ "updateTodo": "更新待辦清單",
+ "readTodo": "讀取待辦清單",
+ "searchResults": "結果"
+ },
+ "search": {
+ "found": "找到 {{count}} 個{{type}}",
+ "file": "檔案",
+ "files": "檔案",
+ "pattern": "模式:",
+ "in": "在:"
+ },
+ "fileOperations": {
+ "updated": "檔案更新成功",
+ "created": "檔案建立成功",
+ "written": "檔案寫入成功",
+ "diff": "差異",
+ "newFile": "新檔案",
+ "viewContent": "查看檔案內容",
+ "viewFullOutput": "查看完整輸出({{count}} 個字元)",
+ "contentDisplayed": "檔案內容顯示在上方的差異檢視中"
+ },
+ "interactive": {
+ "title": "互動式提示",
+ "waiting": "等待您在 CLI 中回應",
+ "instruction": "請在 Claude 執行的終端機中選擇一個選項。",
+ "selectedOption": "✓ Claude 選擇了選項 {{number}}",
+ "instructionDetail": "在 CLI 中,您可以使用方向鍵或輸入數字來互動式地選擇此選項。"
+ },
+ "thinking": {
+ "title": "思考中...",
+ "emoji": "💭 思考中..."
+ },
+ "json": {
+ "response": "JSON 回應"
+ },
+ "permissions": {
+ "grant": "授予 {{tool}} 權限",
+ "added": "權限已新增",
+ "addTo": "將 {{entry}} 加入允許的工具。",
+ "retry": "權限已儲存。重試請求以使用該工具。",
+ "error": "無法更新權限。請重試。",
+ "openSettings": "開啟設定"
+ },
+ "todo": {
+ "updated": "待辦清單已成功更新",
+ "current": "目前待辦清單"
+ },
+ "plan": {
+ "viewPlan": "📋 查看實作計畫",
+ "title": "實作計畫"
+ },
+ "usageLimit": {
+ "resetAt": "Claude 使用限制已達到。您的限制將在 **{{time}} {{timezone}}** - {{date}} 重置"
+ },
+ "codex": {
+ "permissionMode": "權限模式",
+ "modes": {
+ "default": "預設模式",
+ "auto": "自動模式",
+ "acceptEdits": "編輯模式",
+ "bypassPermissions": "無限制模式",
+ "plan": "計畫模式"
+ },
+ "descriptions": {
+ "default": "只有受信任的指令(ls、cat、grep、git status 等)自動執行。其他指令將被略過。可以寫入工作區。",
+ "auto": "由模型分類器針對每次工具呼叫決定核准或拒絕。免手動操作,但比 Bypass 安全——仍可能發生拒絕。",
+ "acceptEdits": "工作區內的所有指令自動執行。完全自動模式,具有沙箱執行功能。",
+ "bypassPermissions": "完全的系統存取,無限制。所有指令自動執行,具有完整的磁碟和網路存取權限。請謹慎使用。",
+ "plan": "計畫模式 - 不執行任何指令"
+ },
+ "technicalDetails": "技術細節"
+ },
+ "input": {
+ "placeholder": "輸入 / 叫用指令,@ 選取檔案,或向 {{provider}} 提問...",
+ "placeholderDefault": "輸入您的訊息...",
+ "disabled": "輸入已停用",
+ "attachFiles": "附加檔案",
+ "attachImages": "附加圖片",
+ "send": "傳送",
+ "stop": "停止",
+ "hintText": {
+ "ctrlEnter": "Ctrl+Enter 傳送 • Shift+Enter 換行 • Tab 切換模式 • / 斜線指令",
+ "enter": "Enter 傳送 • Shift+Enter 換行 • Tab 切換模式 • / 斜線指令"
+ },
+ "clickToChangeMode": "點擊變更權限模式(或在輸入框中按 Tab)",
+ "showAllCommands": "顯示所有指令",
+ "clearInput": "清空輸入",
+ "scrollToBottom": "捲動到底部"
+ },
+ "thinkingMode": {
+ "selector": {
+ "title": "思考模式",
+ "description": "延伸思考讓 Claude 有更多時間來評估替代方案",
+ "active": "啟用",
+ "tip": "更高的思考模式需要更多時間,但提供更徹底的分析"
+ },
+ "modes": {
+ "none": {
+ "name": "標準",
+ "description": "一般 Claude 回應",
+ "prefix": ""
+ },
+ "think": {
+ "name": "思考",
+ "description": "基本延伸思考",
+ "prefix": "思考"
+ },
+ "thinkHard": {
+ "name": "深入思考",
+ "description": "更徹底的評估",
+ "prefix": "深入思考"
+ },
+ "thinkHarder": {
+ "name": "更深入思考",
+ "description": "考慮替代方案的深度分析",
+ "prefix": "更深入思考"
+ },
+ "ultrathink": {
+ "name": "超級思考",
+ "description": "最大思考預算",
+ "prefix": "超級思考"
+ }
+ },
+ "buttonTitle": "思考模式:{{mode}}"
+ },
+ "providerSelection": {
+ "title": "選擇您的 AI 助手",
+ "description": "選擇一個提供者以開始新對話",
+ "selectModel": "選擇模型",
+ "providerInfo": {
+ "anthropic": "由 Anthropic 提供",
+ "openai": "由 OpenAI 提供",
+ "cursorEditor": "AI 程式碼編輯器",
+ "google": "由 Google 提供"
+ },
+ "readyPrompt": {
+ "claude": "準備好使用 {{model}} 的 Claude。請在下方開始輸入您的訊息。",
+ "cursor": "準備好使用 {{model}} 的 Cursor。請在下方開始輸入您的訊息。",
+ "codex": "準備好使用 {{model}} 的 Codex。請在下方開始輸入您的訊息。",
+ "gemini": "準備好使用 {{model}} 的 Gemini。請在下方開始輸入您的訊息。",
+ "default": "請在上方選擇一個提供者以開始"
+ },
+ "pressToSearch": "按 {{shortcut}} 搜尋工作階段、檔案和提交"
+ },
+ "session": {
+ "continue": {
+ "title": "繼續您的對話",
+ "description": "詢問有關程式碼的問題、要求修改或取得開發任務的協助"
+ },
+ "loading": {
+ "olderMessages": "正在載入較早的訊息...",
+ "sessionMessages": "正在載入工作階段訊息..."
+ },
+ "messages": {
+ "showingOf": "顯示 {{shown}} / {{total}} 則訊息",
+ "scrollToLoad": "向上捲動以載入更多",
+ "showingLast": "顯示最近 {{count}} 則訊息(共 {{total}} 則)",
+ "loadEarlier": "載入較早的訊息",
+ "loadAll": "載入全部訊息",
+ "loadingAll": "正在載入全部訊息...",
+ "allLoaded": "全部訊息已載入",
+ "perfWarning": "已載入全部訊息 - 捲動可能變慢。點擊「捲動到底部」恢復效能。"
+ }
+ },
+ "shell": {
+ "selectProject": {
+ "title": "選擇專案",
+ "description": "選擇一個專案以在該目錄中開啟互動式 Shell"
+ },
+ "status": {
+ "newSession": "新工作階段",
+ "initializing": "初始化中...",
+ "restarting": "重新啟動中..."
+ },
+ "actions": {
+ "disconnect": "中斷連線",
+ "disconnectTitle": "中斷 Shell 連線",
+ "restart": "重新啟動",
+ "restartTitle": "重新啟動 Shell(請先中斷連線)",
+ "connect": "在 Shell 中繼續",
+ "connectTitle": "連線到 Shell"
+ },
+ "loading": "正在載入終端機...",
+ "connecting": "正在連線到 Shell...",
+ "startSession": "啟動新的 Claude 工作階段",
+ "resumeSession": "恢復工作階段:{{displayName}}...",
+ "runCommand": "在 {{projectName}} 中執行 {{command}}",
+ "startCli": "在 {{projectName}} 中啟動 Claude CLI",
+ "defaultCommand": "指令"
+ },
+ "claudeStatus": {
+ "actions": {
+ "thinking": "思考中",
+ "processing": "處理中",
+ "analyzing": "分析中",
+ "working": "執行中",
+ "computing": "運算中",
+ "reasoning": "推理中"
+ },
+ "state": {
+ "live": "進行中",
+ "paused": "已暫停"
+ },
+ "elapsed": {
+ "seconds": "{{count}} 秒",
+ "minutesSeconds": "{{minutes}} 分 {{seconds}} 秒",
+ "label": "已過 {{time}}",
+ "startingNow": "正要開始"
+ },
+ "controls": {
+ "stopGeneration": "停止生成",
+ "pressEscToStop": "隨時按 Esc 即可停止"
+ },
+ "providers": {
+ "assistant": "助理"
+ }
+ },
+ "projectSelection": {
+ "startChatWithProvider": "選擇一個專案以開始與 {{provider}} 聊天"
+ },
+ "tasks": {
+ "nextTaskPrompt": "開始下一個任務"
+ }
+}
diff --git a/src/i18n/locales/zh-TW/codeEditor.json b/src/i18n/locales/zh-TW/codeEditor.json
new file mode 100644
index 00000000..5c1bdacd
--- /dev/null
+++ b/src/i18n/locales/zh-TW/codeEditor.json
@@ -0,0 +1,34 @@
+{
+ "toolbar": {
+ "changes": "個變更",
+ "previousChange": "上一個變更",
+ "nextChange": "下一個變更",
+ "hideDiff": "隱藏差異醒目提示",
+ "showDiff": "顯示差異醒目提示",
+ "settings": "編輯器設定",
+ "collapse": "收合編輯器",
+ "expand": "展開編輯器到全寬"
+ },
+ "loading": "正在載入 {{fileName}}...",
+ "header": {
+ "showingChanges": "顯示變更"
+ },
+ "actions": {
+ "download": "下載檔案",
+ "save": "儲存",
+ "saving": "儲存中...",
+ "saved": "已儲存!",
+ "exitFullscreen": "離開全螢幕",
+ "fullscreen": "全螢幕",
+ "close": "關閉"
+ },
+ "footer": {
+ "lines": "行數:",
+ "characters": "字元數:",
+ "shortcuts": "按 Ctrl+S 儲存 • Esc 關閉"
+ },
+ "binaryFile": {
+ "title": "二進位檔案",
+ "message": "檔案「{{fileName}}」無法在文字編輯器中顯示,因為它是二進位檔案。"
+ }
+}
diff --git a/src/i18n/locales/zh-TW/common.json b/src/i18n/locales/zh-TW/common.json
new file mode 100644
index 00000000..ea05e41e
--- /dev/null
+++ b/src/i18n/locales/zh-TW/common.json
@@ -0,0 +1,267 @@
+{
+ "buttons": {
+ "save": "儲存",
+ "cancel": "取消",
+ "delete": "刪除",
+ "create": "建立",
+ "edit": "編輯",
+ "close": "關閉",
+ "confirm": "確認",
+ "submit": "送出",
+ "retry": "重試",
+ "refresh": "重新整理",
+ "search": "搜尋",
+ "clear": "清除",
+ "copy": "複製",
+ "download": "下載",
+ "upload": "上傳",
+ "browse": "瀏覽"
+ },
+ "tabs": {
+ "chat": "聊天",
+ "shell": "終端機",
+ "files": "檔案",
+ "git": "版本控制",
+ "tasks": "任務"
+ },
+ "status": {
+ "loading": "載入中...",
+ "success": "成功",
+ "error": "錯誤",
+ "failed": "失敗",
+ "pending": "待處理",
+ "completed": "已完成",
+ "inProgress": "進行中"
+ },
+ "messages": {
+ "savedSuccessfully": "儲存成功",
+ "deletedSuccessfully": "刪除成功",
+ "updatedSuccessfully": "更新成功",
+ "operationFailed": "操作失敗",
+ "networkError": "網路錯誤,請檢查您的連線。",
+ "unauthorized": "未授權,請登入。",
+ "notFound": "找不到",
+ "invalidInput": "輸入無效",
+ "requiredField": "此欄位為必填",
+ "unknownError": "發生未知錯誤"
+ },
+ "navigation": {
+ "settings": "設定",
+ "home": "首頁",
+ "back": "返回",
+ "next": "下一步",
+ "previous": "上一步",
+ "logout": "登出"
+ },
+ "common": {
+ "language": "語言",
+ "theme": "佈景主題",
+ "darkMode": "深色模式",
+ "lightMode": "淺色模式",
+ "name": "名稱",
+ "description": "描述",
+ "enabled": "已啟用",
+ "disabled": "已停用",
+ "optional": "選填",
+ "version": "版本",
+ "select": "選取",
+ "selectAll": "全選",
+ "deselectAll": "取消全選"
+ },
+ "time": {
+ "justNow": "剛剛",
+ "minutesAgo": "{{count}} 分鐘前",
+ "hoursAgo": "{{count}} 小時前",
+ "daysAgo": "{{count}} 天前",
+ "yesterday": "昨天"
+ },
+ "fileOperations": {
+ "newFile": "新增檔案",
+ "newFolder": "新增資料夾",
+ "rename": "重新命名",
+ "move": "移動",
+ "copyPath": "複製路徑",
+ "openInEditor": "在編輯器中開啟"
+ },
+ "mainContent": {
+ "loading": "正在載入 CloudCLI",
+ "settingUpWorkspace": "正在設定您的工作區...",
+ "chooseProject": "選擇您的專案",
+ "selectProjectDescription": "從側邊欄選擇一個專案以開始使用 Claude 進行程式開發。每個專案包含您的聊天紀錄和檔案歷史。",
+ "tip": "提示",
+ "createProjectMobile": "點擊上方的選單按鈕以存取專案",
+ "createProjectDesktop": "點擊側邊欄中的資料夾圖示以建立新專案",
+ "newSession": "新工作階段",
+ "untitledSession": "未命名工作階段",
+ "projectFiles": "專案檔案"
+ },
+ "fileTree": {
+ "loading": "正在載入檔案...",
+ "files": "檔案",
+ "simpleView": "簡易檢視",
+ "compactView": "精簡檢視",
+ "detailedView": "詳細檢視",
+ "searchPlaceholder": "搜尋檔案和資料夾...",
+ "clearSearch": "清除搜尋",
+ "name": "名稱",
+ "size": "大小",
+ "modified": "修改時間",
+ "permissions": "權限",
+ "noFilesFound": "找不到檔案",
+ "checkProjectPath": "請檢查專案路徑是否可存取",
+ "noMatchesFound": "找不到符合項目",
+ "tryDifferentSearch": "嘗試不同的搜尋詞或清除搜尋",
+ "justNow": "剛剛",
+ "minAgo": "{{count}} 分鐘前",
+ "hoursAgo": "{{count}} 小時前",
+ "daysAgo": "{{count}} 天前",
+ "newFile": "新增檔案 (Cmd+N)",
+ "newFolder": "新增資料夾 (Cmd+Shift+N)",
+ "refresh": "重新整理",
+ "collapseAll": "全部收合",
+ "context": {
+ "rename": "重新命名",
+ "delete": "刪除",
+ "copyPath": "複製路徑",
+ "download": "下載",
+ "newFile": "新增檔案",
+ "newFolder": "新增資料夾",
+ "refresh": "重新整理",
+ "menuLabel": "檔案右鍵選單",
+ "loading": "載入中..."
+ }
+ },
+ "projectWizard": {
+ "title": "建立新專案",
+ "steps": {
+ "type": "類型",
+ "configure": "設定",
+ "confirm": "確認"
+ },
+ "step1": {
+ "question": "您已經有工作區,還是想建立一個新的工作區?",
+ "existing": {
+ "title": "現有工作區",
+ "description": "我的伺服器上已經有工作區,只需要將其加入專案列表"
+ },
+ "new": {
+ "title": "新建工作區",
+ "description": "建立新工作區,可選擇從 GitHub 儲存庫複製"
+ }
+ },
+ "step2": {
+ "existingPath": "工作區路徑",
+ "newPath": "工作區路徑",
+ "existingPlaceholder": "/path/to/existing/workspace",
+ "newPlaceholder": "/path/to/new/workspace",
+ "existingHelp": "您現有工作區目錄的完整路徑",
+ "newHelp": "工作區目錄的完整路徑",
+ "githubUrl": "GitHub URL(選填)",
+ "githubPlaceholder": "https://github.com/username/repository",
+ "githubHelp": "選填:提供 GitHub URL 以複製儲存庫",
+ "githubAuth": "GitHub 身分驗證(選填)",
+ "githubAuthHelp": "僅私有儲存庫需要。公開儲存庫無需身分驗證即可複製。",
+ "loadingTokens": "正在載入已儲存的權杖...",
+ "storedToken": "已儲存的權杖",
+ "newToken": "新權杖",
+ "nonePublic": "無(公開)",
+ "selectToken": "選取權杖",
+ "selectTokenPlaceholder": "-- 選取權杖 --",
+ "tokenPlaceholder": "ghp_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
+ "tokenHelp": "此權杖僅用於此操作",
+ "publicRepoInfo": "公開儲存庫不需要身分驗證。如果複製公開儲存庫,可以略過提供權杖。",
+ "noTokensHelp": "沒有可用的已儲存權杖。您可以在 設定 → API 金鑰 中新增權杖以便重複使用。",
+ "optionalTokenPublic": "GitHub 權杖(公開儲存庫可選)",
+ "tokenPublicPlaceholder": "ghp_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx(公開儲存庫可留空)"
+ },
+ "step3": {
+ "reviewConfig": "檢閱您的設定",
+ "existingWorkspace": "現有工作區",
+ "newWorkspace": "新建工作區",
+ "path": "路徑:",
+ "cloneFrom": "複製自:",
+ "authentication": "身分驗證:",
+ "usingStoredToken": "使用已儲存的權杖:",
+ "usingProvidedToken": "使用提供的權杖",
+ "noAuthentication": "無身分驗證",
+ "sshKey": "SSH 金鑰",
+ "existingInfo": "工作區將加入您的專案列表,並可用於 Claude/Cursor 工作階段。",
+ "newWithClone": "儲存庫將從此資料夾複製。",
+ "newEmpty": "工作區將加入您的專案列表,並可用於 Claude/Cursor 工作階段。",
+ "cloningRepository": "正在複製儲存庫..."
+ },
+ "buttons": {
+ "cancel": "取消",
+ "back": "返回",
+ "next": "下一步",
+ "createProject": "建立專案",
+ "creating": "建立中...",
+ "cloning": "正在複製..."
+ },
+ "errors": {
+ "selectType": "請選擇您已有現有工作區還是想建立新工作區",
+ "providePath": "請提供工作區路徑",
+ "failedToCreate": "建立工作區失敗",
+ "failedToCreateFolder": "建立資料夾失敗"
+ }
+ },
+ "notifications": {
+ "genericTool": "工具",
+ "codes": {
+ "generic": {
+ "info": {
+ "title": "通知"
+ }
+ },
+ "permission": {
+ "required": {
+ "title": "需要處理",
+ "body": "{{toolName}} 正在等待你的決定。"
+ }
+ },
+ "run": {
+ "stopped": {
+ "title": "執行已停止",
+ "body": "原因:{{reason}}"
+ },
+ "failed": {
+ "title": "執行失敗"
+ }
+ },
+ "agent": {
+ "notification": {
+ "title": "Agent 通知"
+ }
+ }
+ }
+ },
+ "versionUpdate": {
+ "title": "有可用更新",
+ "newVersionReady": "新版本已準備就緒",
+ "currentVersion": "目前版本",
+ "latestVersion": "最新版本",
+ "whatsNew": "新功能:",
+ "viewFullRelease": "查看完整發行說明",
+ "updateProgress": "更新進度:",
+ "manualUpgrade": "手動升級:",
+ "npmUpgradeCommand": "npm install -g @cloudcli-ai/cloudcli@latest",
+ "manualUpgradeHint": "或點擊「立即更新」以自動執行更新。",
+ "updateCompleted": "更新成功完成!",
+ "restartServer": "請重新啟動伺服器以套用變更。",
+ "updateFailed": "更新失敗",
+ "buttons": {
+ "close": "關閉",
+ "later": "稍後",
+ "copyCommand": "複製指令",
+ "updateNow": "立即更新",
+ "updating": "更新中..."
+ },
+ "ariaLabels": {
+ "closeModal": "關閉版本升級對話框",
+ "showSidebar": "顯示側邊欄",
+ "settings": "設定",
+ "updateAvailable": "有可用更新",
+ "closeSidebar": "關閉側邊欄"
+ }
+ }
+}
diff --git a/src/i18n/locales/zh-TW/settings.json b/src/i18n/locales/zh-TW/settings.json
new file mode 100644
index 00000000..d38aa931
--- /dev/null
+++ b/src/i18n/locales/zh-TW/settings.json
@@ -0,0 +1,484 @@
+{
+ "title": "設定",
+ "tabs": {
+ "account": "帳戶",
+ "permissions": "權限",
+ "mcpServers": "MCP 伺服器",
+ "appearance": "外觀"
+ },
+ "account": {
+ "title": "帳戶",
+ "language": "語言",
+ "languageLabel": "顯示語言",
+ "languageDescription": "選擇您偏好的介面語言",
+ "username": "使用者名稱",
+ "email": "電子郵件",
+ "profile": "個人檔案",
+ "changePassword": "變更密碼"
+ },
+ "mcp": {
+ "title": "MCP 伺服器",
+ "addServer": "新增伺服器",
+ "editServer": "編輯伺服器",
+ "deleteServer": "刪除伺服器",
+ "serverName": "伺服器名稱",
+ "serverType": "伺服器類型",
+ "config": "設定",
+ "testConnection": "測試連線",
+ "status": "狀態",
+ "connected": "已連線",
+ "disconnected": "未連線",
+ "scope": {
+ "label": "範圍",
+ "user": "使用者",
+ "project": "專案"
+ }
+ },
+ "appearance": {
+ "title": "外觀",
+ "theme": "佈景主題",
+ "codeEditor": "程式碼編輯器",
+ "editorTheme": "編輯器佈景主題",
+ "wordWrap": "自動換行",
+ "showMinimap": "顯示縮圖",
+ "lineNumbers": "行號",
+ "fontSize": "字型大小"
+ },
+ "actions": {
+ "saveChanges": "儲存變更",
+ "resetToDefaults": "重設為預設值",
+ "cancelChanges": "取消變更"
+ },
+ "quickSettings": {
+ "title": "快速設定",
+ "sections": {
+ "appearance": "外觀",
+ "toolDisplay": "工具顯示",
+ "viewOptions": "檢視選項",
+ "inputSettings": "輸入設定"
+ },
+ "darkMode": "深色模式",
+ "autoExpandTools": "自動展開工具",
+ "showRawParameters": "顯示原始參數",
+ "showThinking": "顯示思考過程",
+ "autoScrollToBottom": "自動捲動到底部",
+ "sendByCtrlEnter": "使用 Ctrl+Enter 傳送",
+ "sendByCtrlEnterDescription": "啟用後,按 Ctrl+Enter 傳送訊息,而不是僅按 Enter。這對於使用輸入法的使用者可以避免意外傳送。",
+ "dragHandle": {
+ "dragging": "正在拖曳手柄",
+ "closePanel": "關閉設定面板",
+ "openPanel": "開啟設定面板",
+ "draggingStatus": "正在拖曳...",
+ "toggleAndMove": "點擊切換,拖曳移動"
+ }
+ },
+ "terminalShortcuts": {
+ "title": "終端機快速鍵",
+ "sectionKeys": "按鍵",
+ "sectionNavigation": "導覽",
+ "escape": "Escape",
+ "tab": "Tab",
+ "shiftTab": "Shift+Tab",
+ "arrowUp": "向上箭頭",
+ "arrowDown": "向下箭頭",
+ "scrollDown": "捲動到底部",
+ "handle": {
+ "closePanel": "關閉快速鍵面板",
+ "openPanel": "開啟快速鍵面板"
+ }
+ },
+ "mainTabs": {
+ "label": "設定",
+ "agents": "智慧代理",
+ "appearance": "外觀",
+ "git": "Git",
+ "apiTokens": "API 和權杖",
+ "tasks": "任務",
+ "notifications": "通知",
+ "plugins": "外掛",
+ "about": "關於"
+ },
+ "notifications": {
+ "title": "通知",
+ "description": "控制你希望接收的通知事件。",
+ "webPush": {
+ "title": "Web 推播通知",
+ "enable": "啟用推播通知",
+ "disable": "關閉推播通知",
+ "enabled": "推播通知已啟用",
+ "loading": "更新中...",
+ "unsupported": "此瀏覽器不支援推播通知。",
+ "denied": "推播通知已被封鎖,請在瀏覽器設定中允許。"
+ },
+ "events": {
+ "title": "事件類型",
+ "actionRequired": "需要處理",
+ "stop": "執行已停止",
+ "error": "執行失敗"
+ }
+ },
+ "appearanceSettings": {
+ "darkMode": {
+ "label": "深色模式",
+ "description": "切換淺色和深色佈景主題"
+ },
+ "projectSorting": {
+ "label": "專案排序",
+ "description": "專案在側邊欄中的排列方式",
+ "alphabetical": "依字母順序",
+ "recentActivity": "最近活動"
+ },
+ "codeEditor": {
+ "title": "程式碼編輯器",
+ "theme": {
+ "label": "編輯器佈景主題",
+ "description": "程式碼編輯器的預設佈景主題"
+ },
+ "wordWrap": {
+ "label": "自動換行",
+ "description": "在編輯器中預設啟用自動換行"
+ },
+ "showMinimap": {
+ "label": "顯示縮圖",
+ "description": "在差異檢視中顯示縮圖以便於導覽"
+ },
+ "lineNumbers": {
+ "label": "顯示行號",
+ "description": "在編輯器中顯示行號"
+ },
+ "fontSize": {
+ "label": "字型大小",
+ "description": "編輯器字型大小(px)"
+ }
+ }
+ },
+ "mcpForm": {
+ "title": {
+ "add": "新增 MCP 伺服器",
+ "edit": "編輯 MCP 伺服器"
+ },
+ "importMode": {
+ "form": "表單輸入",
+ "json": "JSON 匯入"
+ },
+ "scope": {
+ "label": "範圍",
+ "userGlobal": "使用者(全域)",
+ "projectLocal": "專案(本機)",
+ "userDescription": "使用者範圍:在您機器上的所有專案中可用",
+ "projectDescription": "本機範圍:僅在選定專案中可用",
+ "cannotChange": "編輯現有伺服器時無法變更範圍"
+ },
+ "fields": {
+ "serverName": "伺服器名稱",
+ "transportType": "傳輸類型",
+ "command": "指令",
+ "arguments": "參數(每行一個)",
+ "jsonConfig": "JSON 設定",
+ "url": "URL",
+ "envVars": "環境變數(KEY=值,每行一個)",
+ "headers": "標頭(KEY=值,每行一個)",
+ "selectProject": "選取專案..."
+ },
+ "placeholders": {
+ "serverName": "我的服務"
+ },
+ "validation": {
+ "missingType": "缺少必填欄位:type",
+ "stdioRequiresCommand": "stdio 類型需要 command 欄位",
+ "httpRequiresUrl": "{{type}} 類型需要 url 欄位",
+ "invalidJson": "無效的 JSON 格式",
+ "jsonHelp": "貼上您的 MCP 伺服器設定(JSON 格式)。範例格式:",
+ "jsonExampleStdio": "• stdio: {\"type\":\"stdio\",\"command\":\"npx\",\"args\":[\"@upstash/context7-mcp\"]}",
+ "jsonExampleHttp": "• http/sse: {\"type\":\"http\",\"url\":\"https://api.example.com/mcp\"}"
+ },
+ "configDetails": "設定詳細資訊(來自 {{configFile}})",
+ "projectPath": "路徑:{{path}}",
+ "actions": {
+ "cancel": "取消",
+ "saving": "儲存中...",
+ "addServer": "新增伺服器",
+ "updateServer": "更新伺服器"
+ }
+ },
+ "saveStatus": {
+ "success": "設定儲存成功!",
+ "error": "儲存設定失敗",
+ "saving": "儲存中..."
+ },
+ "footerActions": {
+ "save": "儲存設定",
+ "cancel": "取消"
+ },
+ "git": {
+ "title": "Git 設定",
+ "description": "設定您的 git 提交身分。這些設定將透過 git config --global 全域套用",
+ "name": {
+ "label": "Git 名稱",
+ "help": "您的 git 提交名稱"
+ },
+ "email": {
+ "label": "Git 電子郵件",
+ "help": "您的 git 提交電子郵件"
+ },
+ "actions": {
+ "save": "儲存設定",
+ "saving": "儲存中..."
+ },
+ "status": {
+ "success": "儲存成功"
+ }
+ },
+ "apiKeys": {
+ "title": "API 金鑰",
+ "description": "產生 API 金鑰以從其他應用程式存取外部 API。",
+ "newKey": {
+ "alertTitle": "⚠️ 儲存您的 API 金鑰",
+ "alertMessage": "這是您唯一一次看到此金鑰。請妥善保存。",
+ "iveSavedIt": "我已儲存"
+ },
+ "form": {
+ "placeholder": "API 金鑰名稱(例如:正式伺服器)",
+ "createButton": "建立",
+ "cancelButton": "取消"
+ },
+ "newButton": "新增 API 金鑰",
+ "empty": "尚未建立 API 金鑰。",
+ "list": {
+ "created": "建立時間:",
+ "lastUsed": "最後使用:"
+ },
+ "confirmDelete": "確定要刪除此 API 金鑰嗎?",
+ "status": {
+ "active": "啟用",
+ "inactive": "未啟用"
+ },
+ "github": {
+ "title": "GitHub 權杖",
+ "description": "新增 GitHub 個人存取權杖以透過外部 API 複製私有儲存庫。",
+ "descriptionAlt": "新增 GitHub 個人存取權杖以複製私有儲存庫。您也可以直接在 API 請求中傳遞權杖而無需儲存。",
+ "addButton": "新增權杖",
+ "form": {
+ "namePlaceholder": "權杖名稱(例如:個人儲存庫)",
+ "tokenPlaceholder": "GitHub 個人存取權杖(ghp_...)",
+ "descriptionPlaceholder": "描述(選填)",
+ "addButton": "新增權杖",
+ "cancelButton": "取消",
+ "howToCreate": "如何建立 GitHub 個人存取權杖 →"
+ },
+ "empty": "尚未新增 GitHub 權杖。",
+ "added": "新增時間:",
+ "confirmDelete": "確定要刪除此 GitHub 權杖嗎?"
+ },
+ "apiDocsLink": "API 文件",
+ "documentation": {
+ "title": "外部 API 文件",
+ "description": "了解如何使用外部 API 從您的應用程式觸發 Claude/Cursor 工作階段。",
+ "viewLink": "查看 API 文件 →"
+ },
+ "loading": "載入中...",
+ "version": {
+ "updateAvailable": "有可用更新:v{{version}}"
+ }
+ },
+ "tasks": {
+ "checking": "正在檢查 TaskMaster 安裝...",
+ "notInstalled": {
+ "title": "未安裝 TaskMaster AI CLI",
+ "description": "需要 TaskMaster CLI 才能使用任務管理功能。安裝它以開始使用:",
+ "installCommand": "npm install -g task-master-ai",
+ "viewOnGitHub": "在 GitHub 上查看",
+ "afterInstallation": "安裝後:",
+ "steps": {
+ "restart": "重新啟動此應用程式",
+ "autoAvailable": "TaskMaster 功能將自動啟用",
+ "initCommand": "在專案目錄中使用 task-master init"
+ }
+ },
+ "settings": {
+ "enableLabel": "啟用 TaskMaster 整合",
+ "enableDescription": "在整個介面中顯示 TaskMaster 任務、橫幅和側邊欄指示器"
+ }
+ },
+ "agents": {
+ "authStatus": {
+ "checking": "檢查中...",
+ "connected": "已連線",
+ "notConnected": "未連線",
+ "disconnected": "已中斷連線",
+ "checkingAuth": "正在檢查驗證狀態...",
+ "loggedInAs": "登入為 {{email}}",
+ "authenticatedUser": "已驗證使用者"
+ },
+ "account": {
+ "claude": {
+ "description": "Anthropic Claude AI 助手"
+ },
+ "cursor": {
+ "description": "Cursor AI 驅動的程式碼編輯器"
+ },
+ "codex": {
+ "description": "OpenAI Codex AI 助手"
+ },
+ "gemini": {
+ "description": "Google Gemini AI 助手"
+ }
+ },
+ "connectionStatus": "連線狀態",
+ "login": {
+ "title": "登入",
+ "reAuthenticate": "重新驗證",
+ "description": "登入您的 {{agent}} 帳戶以啟用 AI 功能",
+ "reAuthDescription": "使用其他帳戶登入或重新整理憑證",
+ "button": "登入",
+ "reLoginButton": "重新登入"
+ },
+ "error": "錯誤:{{error}}"
+ },
+ "permissions": {
+ "title": "權限設定",
+ "skipPermissions": {
+ "label": "略過權限提示(請謹慎使用)",
+ "claudeDescription": "等同於 --dangerously-skip-permissions 旗標",
+ "cursorDescription": "等同於 Cursor CLI 中的 -f 旗標"
+ },
+ "allowedTools": {
+ "title": "允許的工具",
+ "description": "無需權限提示即可自動使用的工具",
+ "placeholder": "例如:\"Bash(git log:*)\" 或 \"Write\"",
+ "quickAdd": "快速新增常用工具:",
+ "empty": "未設定允許的工具"
+ },
+ "blockedTools": {
+ "title": "停用的工具",
+ "description": "無需權限提示即可自動停用的工具",
+ "placeholder": "例如:\"Bash(rm:*)\"",
+ "empty": "未設定停用的工具"
+ },
+ "allowedCommands": {
+ "title": "允許的 Shell 指令",
+ "description": "無需權限提示即可自動執行的 Shell 指令",
+ "placeholder": "例如:\"Shell(ls)\" 或 \"Shell(git status)\"",
+ "quickAdd": "快速新增常用指令:",
+ "empty": "未設定允許的指令"
+ },
+ "blockedCommands": {
+ "title": "封鎖的 Shell 指令",
+ "description": "自動封鎖的 Shell 指令",
+ "placeholder": "例如:\"Shell(rm -rf)\" 或 \"Shell(sudo)\"",
+ "empty": "未設定封鎖的指令"
+ },
+ "toolExamples": {
+ "title": "工具模式範例:",
+ "bashGitLog": "- 允許所有 git log 指令",
+ "bashGitDiff": "- 允許所有 git diff 指令",
+ "write": "- 允許所有 Write 工具使用",
+ "bashRm": "- 封鎖所有 rm 指令(危險)"
+ },
+ "shellExamples": {
+ "title": "Shell 指令範例:",
+ "ls": "- 允許 ls 指令",
+ "gitStatus": "- 允許 git status",
+ "npmInstall": "- 允許 npm install",
+ "rmRf": "- 封鎖遞迴刪除"
+ },
+ "codex": {
+ "permissionMode": "權限模式",
+ "description": "控制 Codex 如何處理檔案修改和指令執行",
+ "modes": {
+ "default": {
+ "title": "預設",
+ "description": "只有受信任的指令(ls、cat、grep、git status 等)會自動執行。其他指令將被略過。可以寫入工作區。"
+ },
+ "acceptEdits": {
+ "title": "接受編輯",
+ "description": "所有指令在工作區內自動執行。具有沙箱執行的全自動模式。"
+ },
+ "bypassPermissions": {
+ "title": "略過權限",
+ "description": "完全系統存取,無任何限制。所有指令自動執行,具有完整的磁碟和網路存取權限。請謹慎使用。"
+ }
+ },
+ "technicalDetails": "技術詳情",
+ "technicalInfo": {
+ "default": "sandboxMode=workspace-write, approvalPolicy=untrusted。受信任的指令:cat、cd、grep、head、ls、pwd、tail、git status/log/diff/show、find(不帶 -exec)等。",
+ "acceptEdits": "sandboxMode=workspace-write, approvalPolicy=never。所有指令在專案目錄內自動執行。",
+ "bypassPermissions": "sandboxMode=danger-full-access, approvalPolicy=never。完全系統存取權限,僅在可信環境中使用。",
+ "overrideNote": "您可以使用聊天介面中的模式按鈕按工作階段覆蓋此設定。"
+ }
+ },
+ "actions": {
+ "add": "新增"
+ }
+ },
+ "mcpServers": {
+ "title": "MCP 伺服器",
+ "description": {
+ "claude": "Model Context Protocol 伺服器為 Claude 提供額外的工具和資料來源",
+ "cursor": "Model Context Protocol 伺服器為 Cursor 提供額外的工具和資料來源",
+ "codex": "Model Context Protocol 伺服器為 Codex 提供額外的工具和資料來源"
+ },
+ "addButton": "新增 MCP 伺服器",
+ "empty": "未設定 MCP 伺服器",
+ "serverType": "類型",
+ "scope": {
+ "local": "本機",
+ "user": "使用者"
+ },
+ "config": {
+ "command": "指令",
+ "url": "URL",
+ "args": "參數",
+ "environment": "環境變數"
+ },
+ "tools": {
+ "title": "工具",
+ "count": "({{count}}):",
+ "more": "還有 {{count}} 個"
+ },
+ "actions": {
+ "edit": "編輯伺服器",
+ "delete": "刪除伺服器"
+ },
+ "help": {
+ "title": "關於 Codex MCP",
+ "description": "Codex 支援基於 stdio 的 MCP 伺服器。您可以新增伺服器,透過額外的工具和資源來擴充 Codex 的功能。"
+ }
+ },
+ "pluginSettings": {
+ "title": "外掛",
+ "description": "透過自訂外掛擴充介面。從 git 安裝或直接將資料夾放入 ~/.claude-code-ui/plugins/",
+ "installPlaceholder": "https://github.com/user/my-plugin",
+ "installButton": "安裝",
+ "installing": "安裝中…",
+ "securityWarning": "僅安裝您已審查過原始碼或信任作者的外掛。",
+ "scanningPlugins": "正在掃描外掛…",
+ "noPluginsInstalled": "未安裝外掛",
+ "pullLatest": "從 git 拉取最新內容",
+ "noGitRemote": "無 git 遠端儲存庫 — 無法更新",
+ "uninstallPlugin": "解除安裝外掛",
+ "confirmUninstall": "再次點擊確認",
+ "confirmUninstallMessage": "移除 {{name}}?此操作無法復原。",
+ "cancel": "取消",
+ "remove": "移除",
+ "updateFailed": "更新失敗",
+ "installFailed": "安裝失敗",
+ "uninstallFailed": "解除安裝失敗",
+ "toggleFailed": "切換失敗",
+ "buildYourOwn": "建立您自己的外掛",
+ "starter": "入門範本",
+ "docs": "文件",
+ "starterPlugin": {
+ "name": "專案統計",
+ "badge": "入門",
+ "description": "查看專案的檔案數、程式碼行數、檔案類型分佈以及最近活動。",
+ "install": "安裝"
+ },
+ "morePlugins": "更多",
+ "enable": "啟用",
+ "disable": "停用",
+ "installAriaLabel": "外掛 git 儲存庫 URL",
+ "tab": "分頁",
+ "runningStatus": "執行中"
+ }
+}
diff --git a/src/i18n/locales/zh-TW/sidebar.json b/src/i18n/locales/zh-TW/sidebar.json
new file mode 100644
index 00000000..c147a0ab
--- /dev/null
+++ b/src/i18n/locales/zh-TW/sidebar.json
@@ -0,0 +1,136 @@
+{
+ "projects": {
+ "title": "專案",
+ "newProject": "新增專案",
+ "deleteProject": "移除專案",
+ "renameProject": "重新命名專案",
+ "noProjects": "找不到專案",
+ "loadingProjects": "載入專案中...",
+ "searchPlaceholder": "搜尋專案...",
+ "projectNamePlaceholder": "專案名稱",
+ "starred": "星號標記",
+ "all": "全部",
+ "untitledSession": "未命名工作階段",
+ "newSession": "新工作階段",
+ "codexSession": "Codex 工作階段",
+ "fetchingProjects": "正在取得您的 Claude 專案和工作階段",
+ "projects": "專案",
+ "noMatchingProjects": "找不到符合的專案",
+ "tryDifferentSearch": "嘗試調整您的搜尋詞",
+ "runClaudeCli": "在專案目錄中執行 Claude CLI 以開始使用"
+ },
+ "app": {
+ "title": "CloudCLI",
+ "subtitle": "AI 程式開發助手"
+ },
+ "sessions": {
+ "title": "工作階段",
+ "newSession": "新增工作階段",
+ "deleteSession": "刪除工作階段",
+ "renameSession": "重新命名工作階段",
+ "noSessions": "暫無工作階段",
+ "loadingSessions": "載入工作階段中...",
+ "unnamed": "未命名",
+ "loading": "載入中...",
+ "showMore": "顯示更多工作階段"
+ },
+ "tooltips": {
+ "viewEnvironments": "查看環境",
+ "hideSidebar": "隱藏側邊欄",
+ "createProject": "建立新專案",
+ "refresh": "重新整理專案和工作階段 (Ctrl+R)",
+ "renameProject": "重新命名專案 (F2)",
+ "deleteProject": "從側邊欄移除專案 (Delete)",
+ "addToFavorites": "加入收藏",
+ "removeFromFavorites": "從收藏移除",
+ "editSessionName": "手動編輯工作階段名稱",
+ "deleteSession": "永久刪除此工作階段",
+ "save": "儲存",
+ "cancel": "取消",
+ "clearSearch": "清除搜尋",
+ "openCommandPalette": "開啟指令面板"
+ },
+ "navigation": {
+ "chat": "聊天",
+ "files": "檔案",
+ "git": "Git",
+ "terminal": "終端機",
+ "tasks": "任務"
+ },
+ "actions": {
+ "refresh": "重新整理",
+ "settings": "設定",
+ "collapseAll": "全部收合",
+ "expandAll": "全部展開",
+ "cancel": "取消",
+ "save": "儲存",
+ "delete": "刪除",
+ "rename": "重新命名",
+ "joinCommunity": "加入社群",
+ "reportIssue": "回報問題",
+ "starOnGithub": "在 GitHub 上加星"
+ },
+ "branding": {
+ "openSource": "開源"
+ },
+ "status": {
+ "active": "使用中",
+ "inactive": "非使用中",
+ "thinking": "思考中...",
+ "error": "錯誤",
+ "aborted": "已中止",
+ "unknown": "未知"
+ },
+ "time": {
+ "justNow": "剛剛",
+ "oneMinuteAgo": "1 分鐘前",
+ "minutesAgo": "{{count}} 分鐘前",
+ "oneHourAgo": "1 小時前",
+ "hoursAgo": "{{count}} 小時前",
+ "oneDayAgo": "1 天前",
+ "daysAgo": "{{count}} 天前"
+ },
+ "messages": {
+ "deleteConfirm": "確定要刪除嗎?",
+ "renameSuccess": "重新命名成功",
+ "deleteSuccess": "刪除成功",
+ "errorOccurred": "發生錯誤",
+ "deleteSessionConfirm": "確定要刪除此工作階段嗎?此操作無法復原。",
+ "deleteProjectConfirm": "從側邊欄移除此專案?您的專案檔案、記憶和工作階段資料不會被刪除。",
+ "enterProjectPath": "請輸入專案路徑",
+ "deleteSessionFailed": "刪除工作階段失敗,請重試。",
+ "deleteSessionError": "刪除工作階段時出錯,請重試。",
+ "renameSessionFailed": "重新命名工作階段失敗,請重試。",
+ "renameSessionError": "重新命名工作階段時出錯,請重試。",
+ "deleteProjectFailed": "移除專案失敗,請重試。",
+ "deleteProjectError": "移除專案時出錯,請重試。",
+ "createProjectFailed": "建立專案失敗,請重試。",
+ "createProjectError": "建立專案時出錯,請重試。"
+ },
+ "version": {
+ "updateAvailable": "有可用更新"
+ },
+ "search": {
+ "modeProjects": "專案",
+ "modeConversations": "對話",
+ "conversationsPlaceholder": "搜尋對話內容...",
+ "searching": "搜尋中...",
+ "noResults": "找不到結果",
+ "tryDifferentQuery": "嘗試不同的搜尋詞",
+ "matches_one": "{{count}} 個符合",
+ "matches_other": "{{count}} 個符合",
+ "projectsScanned_one": "{{count}} 個專案已掃描",
+ "projectsScanned_other": "{{count}} 個專案已掃描"
+ },
+ "deleteConfirmation": {
+ "deleteProject": "移除專案",
+ "deleteSession": "刪除工作階段",
+ "confirmDelete": "您想如何處理",
+ "sessionCount_one": "此專案包含 {{count}} 個對話。",
+ "sessionCount_other": "此專案包含 {{count}} 個對話。",
+ "removeFromSidebar": "僅從側邊欄移除",
+ "deleteAllData": "永久刪除所有資料",
+ "allConversationsDeleted": "專案將從側邊欄中移除。您的檔案、記憶和工作階段資料將會保留。",
+ "cannotUndo": "您可以稍後重新新增此專案。"
+ }
+}
diff --git a/src/i18n/locales/zh-TW/tasks.json b/src/i18n/locales/zh-TW/tasks.json
new file mode 100644
index 00000000..0f5e9c10
--- /dev/null
+++ b/src/i18n/locales/zh-TW/tasks.json
@@ -0,0 +1,142 @@
+{
+ "notConfigured": {
+ "title": "TaskMaster AI 尚未設定",
+ "description": "TaskMaster 協助將複雜的專案分解為可管理的任務,搭配 AI 驅動的輔助功能",
+ "whatIsTitle": "🎯 什麼是 TaskMaster?",
+ "features": {
+ "aiPowered": "AI 驅動的任務管理:將複雜專案分解為可管理的子任務",
+ "prdTemplates": "PRD 範本:從產品需求文件產生任務",
+ "dependencyTracking": "相依性追蹤:了解任務關係和執行順序",
+ "progressVisualization": "進度視覺化:看板和詳細的任務分析",
+ "cliIntegration": "CLI 整合:使用 taskmaster 指令進行進階工作流程"
+ },
+ "initializeButton": "初始化 TaskMaster AI"
+ },
+ "gettingStarted": {
+ "title": "開始使用 TaskMaster",
+ "subtitle": "TaskMaster 已初始化!以下是接下來要做的事:",
+ "steps": {
+ "createPRD": {
+ "title": "建立產品需求文件(PRD)",
+ "description": "討論您的專案構想並建立描述您想建立什麼的 PRD。",
+ "addButton": "新增 PRD",
+ "existingPRDs": "現有的 PRD:"
+ },
+ "generateTasks": {
+ "title": "從 PRD 產生任務",
+ "description": "一旦您有了 PRD,請 AI 助手解析它,TaskMaster 將自動將其分解為可管理的任務,包含實作細節。"
+ },
+ "analyzeTasks": {
+ "title": "分析並展開任務",
+ "description": "請 AI 助手分析任務複雜度,並將其展開為詳細的子任務以便於實作。"
+ },
+ "startBuilding": {
+ "title": "開始建構",
+ "description": "請 AI 助手開始處理任務、更新狀態,並在專案演進時新增任務。"
+ }
+ },
+ "tip": "💡 提示:從 PRD 開始可以充分利用 TaskMaster 的 AI 驅動任務產生功能"
+ },
+ "setupModal": {
+ "title": "TaskMaster 設定",
+ "subtitle": "{{projectName}} 的互動式 CLI",
+ "willStart": "TaskMaster 初始化將自動開始",
+ "completed": "TaskMaster 設定完成!您現在可以關閉此視窗。",
+ "closeButton": "關閉",
+ "closeContinueButton": "關閉並繼續"
+ },
+ "helpGuide": {
+ "title": "開始使用 TaskMaster",
+ "subtitle": "您的高效任務管理指南",
+ "examples": {
+ "parsePRD": "💬 範例:\n「我剛用 Claude Task Master 初始化了一個新專案。我有一個 PRD 在 .taskmaster/docs/prd.txt。你能幫我解析它並設定初始任務嗎?」",
+ "expandTask": "💬 範例:\n「任務 5 看起來很複雜。你能把它分解成子任務嗎?」",
+ "addTask": "💬 範例:\n「請新增一個任務來實作使用 Cloudinary 的使用者個人頭像上傳功能,研究最佳方法。」"
+ },
+ "moreExamples": "查看更多範例和使用模式 →",
+ "proTips": {
+ "title": "💡 專業提示",
+ "search": "使用搜尋列快速找到特定任務",
+ "views": "使用檢視切換在看板、清單和網格檢視之間切換",
+ "filters": "使用篩選器聚焦特定任務狀態或優先順序",
+ "details": "點擊任何任務以查看詳細資訊和管理子任務"
+ },
+ "learnMore": {
+ "title": "📚 了解更多",
+ "description": "TaskMaster AI 是為開發者打造的進階任務管理系統。取得文件、範例並為專案做出貢獻。",
+ "githubButton": "在 GitHub 上查看"
+ }
+ },
+ "search": {
+ "placeholder": "搜尋任務..."
+ },
+ "filters": {
+ "button": "篩選",
+ "status": "狀態",
+ "priority": "優先順序",
+ "sortBy": "排序依據",
+ "allStatuses": "所有狀態",
+ "allPriorities": "所有優先順序",
+ "showing": "顯示 {{filtered}} / {{total}} 個任務",
+ "clearFilters": "清除篩選"
+ },
+ "sort": {
+ "id": "ID",
+ "status": "狀態",
+ "priority": "優先順序",
+ "idAsc": "ID(遞增)",
+ "idDesc": "ID(遞減)",
+ "titleAsc": "標題(A-Z)",
+ "titleDesc": "標題(Z-A)",
+ "statusAsc": "狀態(待處理優先)",
+ "statusDesc": "狀態(已完成優先)",
+ "priorityAsc": "優先順序(高優先)",
+ "priorityDesc": "優先順序(低優先)"
+ },
+ "views": {
+ "kanban": "看板檢視",
+ "list": "清單檢視",
+ "grid": "網格檢視"
+ },
+ "kanban": {
+ "pending": "📋 待辦",
+ "inProgress": "🚀 進行中",
+ "done": "✅ 已完成",
+ "blocked": "🚫 已封鎖",
+ "deferred": "⏳ 已延後",
+ "cancelled": "❌ 已取消",
+ "noTasksYet": "尚無任務",
+ "tasksWillAppear": "任務將顯示在這裡",
+ "moveTasksHere": "開始後將任務移到這裡",
+ "completedTasksHere": "已完成的任務顯示在這裡",
+ "statusTasksHere": "此狀態的任務將顯示在這裡"
+ },
+ "buttons": {
+ "help": "TaskMaster 入門指南",
+ "prds": "PRD",
+ "addPRD": "新增 PRD",
+ "addTask": "新增任務",
+ "createNewPRD": "建立新 PRD",
+ "prdsAvailable": "{{count}} 個 PRD 可用"
+ },
+ "prd": {
+ "modified": "修改時間:{{date}}"
+ },
+ "statuses": {
+ "pending": "待處理",
+ "in-progress": "進行中",
+ "done": "已完成",
+ "blocked": "已封鎖",
+ "deferred": "已延後",
+ "cancelled": "已取消"
+ },
+ "priorities": {
+ "high": "高",
+ "medium": "中",
+ "low": "低"
+ },
+ "noMatchingTasks": {
+ "title": "沒有符合篩選條件的任務",
+ "description": "嘗試調整您的搜尋或篩選條件。"
+ }
+}