Add multi-language support for UI
- Add 30 new locale files (ar, bn, cs, da, de, el, es, fi, fr, he, hi, hu, id, it, ja, ko, nl, no, pl, pt-BR, pt-PT, ro, ru, sv, th, tl, tr, uk, ur, zh-TW)
- Update i18n config to register new languages
- Update LanguageSwitcher component to support expanded language list
- Update localDb and pricing constants for i18n compatibility
Made-with: Cursor
2026-03-16 22:30:07 -04:00
|
|
|
|
{
|
|
|
|
|
|
"Cancel": "取消",
|
|
|
|
|
|
"Delete": "刪除",
|
|
|
|
|
|
"Edit": "編輯",
|
|
|
|
|
|
"Save": "保存",
|
|
|
|
|
|
"Close": "關閉",
|
|
|
|
|
|
"Add": "添加",
|
|
|
|
|
|
"Remove": "移除",
|
|
|
|
|
|
"Settings": "設置",
|
|
|
|
|
|
"Profile": "個人資料",
|
|
|
|
|
|
"Dashboard": "儀表板",
|
|
|
|
|
|
"Logout": "登出",
|
|
|
|
|
|
"Login": "登錄",
|
|
|
|
|
|
"Providers": "提供者",
|
feat(ui): enhance model select modal UX and modal traffic lights (#1111)
* feat(model-select-modal): highlight added models and support bulk selection
- Add addedModelValues prop to highlight already-added models with primary color
- Sort models alphabetically per provider, with added models floated to top
- Replace green highlight with primary brand color (orange #E56A4A)
- Use check icon (10px) inline with model name instead of check_circle
- Replace Done button with info bar explaining click-to-toggle behavior
- Add ProviderIcon to provider group headers replacing colored dot
- Import ProviderIcon, remove unused Button import
* feat(cli-tools): wire addedModelValues, onDeselect, and auto-save to model select modals
- Pass selectedModels as addedModelValues to ModelSelectModal in OpenCode and Copilot cards
- Add onDeselect handler to remove model from list on second click
- Set closeOnSelect=false to allow bulk model selection
- Remove manual setModalOpen(false) from onSelect callbacks
- Add saveModels() silent auto-save triggered on modal close (OpenCodeToolCard)
- Use useRef to track latest selectedModels in closure-safe way
* feat(modal): functional traffic light close button with hover icon and tooltip
- Make red dot a clickable button that closes the modal
- Show ✕ icon inside red dot on hover via group-hover opacity transition
- Gray out yellow and green dots (cursor-not-allowed, no tooltip)
- Increase dot size from w-3 h-3 to w-4 h-4
- Add Tooltip with brand-matched color #FF5F56 on red dot
- Remove X close button from modal header
* feat(tooltip): add color prop for themed tooltip backgrounds
* feat(i18n): add translations for model select info bar and close tooltip
- Add 'Click to add, click again to remove. Changes are saved automatically.' to all 32 locales
- Add 'Close' translation to all 32 locales
* fix(ui): address code review feedback on modal UX and auto-save
- Modal: remove showCloseButton prop, use showTrafficLights for header
condition, hide traffic lights on mobile (hidden md:flex), add mobile
X button (md:hidden) with aria-label, add aria-label and title on
traffic light close button
- OpenCodeToolCard: validate activeModel membership before saving —
fallback to models[0] or empty string; clear/reassign activeModel
on deselect when removed model was the active one
- CopilotToolCard: add useRef + selectedModelsRef, add saveModels()
using /api/cli-tools/copilot-settings, wire auto-save on modal close
- ModelSelectModal: fix JSX formatting — separate info bar closing div
from Search comment onto its own line
2026-05-14 22:21:24 -04:00
|
|
|
|
"Usage": "統計",
|
Add multi-language support for UI
- Add 30 new locale files (ar, bn, cs, da, de, el, es, fi, fr, he, hi, hu, id, it, ja, ko, nl, no, pl, pt-BR, pt-PT, ro, ru, sv, th, tl, tr, uk, ur, zh-TW)
- Update i18n config to register new languages
- Update LanguageSwitcher component to support expanded language list
- Update localDb and pricing constants for i18n compatibility
Made-with: Cursor
2026-03-16 22:30:07 -04:00
|
|
|
|
"API Key": "API 金鑰",
|
|
|
|
|
|
"Connected": "已連接",
|
|
|
|
|
|
"Disconnected": "未連接",
|
|
|
|
|
|
"Active": "活躍",
|
|
|
|
|
|
"Inactive": "非活躍",
|
|
|
|
|
|
"Success": "成功",
|
|
|
|
|
|
"Failed": "失敗",
|
|
|
|
|
|
"Error": "錯誤",
|
|
|
|
|
|
"Warning": "警告",
|
|
|
|
|
|
"Info": "信息",
|
|
|
|
|
|
"Loading": "載入中",
|
|
|
|
|
|
"Search": "搜尋",
|
|
|
|
|
|
"Filter": "篩選",
|
|
|
|
|
|
"Sort": "排序",
|
|
|
|
|
|
"Export": "導出",
|
|
|
|
|
|
"Import": "導入",
|
|
|
|
|
|
"Refresh": "刷新",
|
|
|
|
|
|
"Back": "返回",
|
|
|
|
|
|
"Next": "下一個",
|
|
|
|
|
|
"Previous": "上一個",
|
|
|
|
|
|
"Submit": "提交",
|
|
|
|
|
|
"Confirm": "確認",
|
|
|
|
|
|
"Yes": "是",
|
|
|
|
|
|
"No": "否",
|
|
|
|
|
|
"OK": "確定",
|
|
|
|
|
|
"Apply": "應用",
|
|
|
|
|
|
"Reset": "重置",
|
|
|
|
|
|
"Clear": "清除",
|
|
|
|
|
|
"Select": "選擇",
|
|
|
|
|
|
"Upload": "上傳",
|
|
|
|
|
|
"Download": "下載",
|
|
|
|
|
|
"Copy": "複製",
|
|
|
|
|
|
"Paste": "粘貼",
|
|
|
|
|
|
"Cut": "剪切",
|
|
|
|
|
|
"Undo": "撤銷",
|
|
|
|
|
|
"Redo": "重做",
|
|
|
|
|
|
"Name": "名稱",
|
|
|
|
|
|
"Description": "描述",
|
|
|
|
|
|
"Status": "狀態",
|
|
|
|
|
|
"Type": "類型",
|
|
|
|
|
|
"Date": "日期",
|
|
|
|
|
|
"Time": "時間",
|
|
|
|
|
|
"Created": "已建立",
|
|
|
|
|
|
"Updated": "已更新",
|
|
|
|
|
|
"Actions": "操作",
|
|
|
|
|
|
"Details": "詳細信息",
|
|
|
|
|
|
"View": "查看",
|
|
|
|
|
|
"New": "新建",
|
|
|
|
|
|
"Total": "總計",
|
|
|
|
|
|
"Count": "計數",
|
|
|
|
|
|
"Price": "價格",
|
|
|
|
|
|
"Cost": "成本",
|
|
|
|
|
|
"Free": "免費",
|
|
|
|
|
|
"Paid": "付費",
|
|
|
|
|
|
"Enable": "啟用",
|
|
|
|
|
|
"Disable": "禁用",
|
|
|
|
|
|
"Enabled": "已啟用",
|
|
|
|
|
|
"Disabled": "已禁用",
|
|
|
|
|
|
"Online": "在線",
|
|
|
|
|
|
"Offline": "離線",
|
|
|
|
|
|
"Available": "可用",
|
|
|
|
|
|
"Unavailable": "不可用",
|
|
|
|
|
|
"Required": "必需",
|
|
|
|
|
|
"Optional": "可選",
|
|
|
|
|
|
"Default": "默認",
|
|
|
|
|
|
"Custom": "自定義",
|
|
|
|
|
|
"Advanced": "進階",
|
|
|
|
|
|
"Basic": "基本",
|
|
|
|
|
|
"Help": "幫助",
|
|
|
|
|
|
"Support": "支持",
|
|
|
|
|
|
"Documentation": "文檔",
|
|
|
|
|
|
"Version": "版本",
|
|
|
|
|
|
"Language": "語言",
|
|
|
|
|
|
"Theme": "主題",
|
|
|
|
|
|
"Light": "淺色",
|
|
|
|
|
|
"Dark": "深色",
|
|
|
|
|
|
"Auto": "自動",
|
|
|
|
|
|
"Endpoint": "端點",
|
|
|
|
|
|
"Combos": "組合",
|
|
|
|
|
|
"Quota Tracker": "配額跟蹤",
|
|
|
|
|
|
"MITM": "MITM",
|
|
|
|
|
|
"CLI Tools": "CLI 工具",
|
|
|
|
|
|
"Console Log": "控制台日誌",
|
|
|
|
|
|
"System": "系統",
|
|
|
|
|
|
"Debug": "調試",
|
|
|
|
|
|
"Shutdown": "關機",
|
|
|
|
|
|
"Close Proxy": "關閉代理",
|
|
|
|
|
|
"Are you sure you want to close the proxy server?": "您確定要關閉代理服務器嗎?",
|
|
|
|
|
|
"Server Disconnected": "服務器已斷開連接",
|
|
|
|
|
|
"The proxy server has been stopped.": "代理服務器已停止。",
|
|
|
|
|
|
"Reload Page": "重新加載頁面",
|
|
|
|
|
|
"Service is running in terminal. You can close this web page. Shutdown will stop the service.": "服務在終端中運行。您可以關閉此網頁。關機將停止服務。",
|
|
|
|
|
|
"Manage your AI provider connections": "管理您的 AI 提供者連接",
|
|
|
|
|
|
"Model combos with fallback": "具有備用的模型組合",
|
|
|
|
|
|
"Monitor your API usage, token consumption, and request logs": "監控您的 API 使用、令牌消耗和請求日誌",
|
|
|
|
|
|
"Intercept CLI tool traffic and route through 9Router": "攔截 CLI 工具流量並通過 9Router 路由",
|
|
|
|
|
|
"Configure CLI tools": "配置 CLI 工具",
|
|
|
|
|
|
"API endpoint configuration": "API 端點配置",
|
|
|
|
|
|
"Manage your preferences": "管理您的首選項",
|
|
|
|
|
|
"Debug translation flow between formats": "調試格式之間的轉換流",
|
|
|
|
|
|
"Live server console output": "實時服務器控制台輸出",
|
|
|
|
|
|
"Create model combos with fallback support": "創建具有備用支持的模型組合",
|
|
|
|
|
|
"Local Mode": "本地模式",
|
|
|
|
|
|
"Running on your machine": "在您的機器上運行",
|
|
|
|
|
|
"Database Location": "數據庫位置",
|
|
|
|
|
|
"Download Backup": "下載備份",
|
|
|
|
|
|
"Import Backup": "導入備份",
|
|
|
|
|
|
"Database backup downloaded": "已下載數據庫備份",
|
|
|
|
|
|
"Database imported successfully": "已成功導入數據庫",
|
|
|
|
|
|
"Security": "安全性",
|
|
|
|
|
|
"Require login": "需要登錄",
|
|
|
|
|
|
"When ON, dashboard requires password. When OFF, access without login.": "打開時,儀表板需要密碼。關閉時,無需登錄即可訪問。",
|
|
|
|
|
|
"Current Password": "當前密碼",
|
|
|
|
|
|
"Enter current password": "輸入當前密碼",
|
|
|
|
|
|
"New Password": "新密碼",
|
|
|
|
|
|
"Enter new password": "輸入新密碼",
|
|
|
|
|
|
"Confirm New Password": "確認新密碼",
|
|
|
|
|
|
"Confirm new password": "確認新密碼",
|
|
|
|
|
|
"Update Password": "更新密碼",
|
|
|
|
|
|
"Set Password": "設置密碼",
|
|
|
|
|
|
"Password updated successfully": "已成功更新密碼",
|
|
|
|
|
|
"Passwords do not match": "密碼不匹配",
|
|
|
|
|
|
"Routing Strategy": "路由策略",
|
|
|
|
|
|
"Round Robin": "輪詢",
|
|
|
|
|
|
"Cycle through accounts to distribute load": "循環循環帳戶以分配負載",
|
|
|
|
|
|
"Sticky Limit": "粘性限制",
|
|
|
|
|
|
"Calls per account before switching": "切換前每個帳戶的調用次數",
|
|
|
|
|
|
"Network": "網絡",
|
|
|
|
|
|
"Outbound Proxy": "出站代理",
|
|
|
|
|
|
"Enable proxy for OAuth + provider outbound requests.": "為 OAuth + 提供者出站請求啟用代理。",
|
|
|
|
|
|
"Proxy URL": "代理 URL",
|
|
|
|
|
|
"Leave empty to inherit existing env proxy (if any).": "留空以繼承現有的環境代理(如果有)。",
|
|
|
|
|
|
"No Proxy": "無代理",
|
|
|
|
|
|
"Comma-separated hostnames/domains to bypass the proxy.": "逗號分隔的主機名/域以繞過代理。",
|
|
|
|
|
|
"Test proxy URL": "測試代理 URL",
|
|
|
|
|
|
"Proxy settings applied": "已應用代理設置",
|
|
|
|
|
|
"Proxy enabled": "已啟用代理",
|
|
|
|
|
|
"Proxy disabled": "已禁用代理",
|
|
|
|
|
|
"Proxy test OK": "代理測試成功",
|
|
|
|
|
|
"Proxy test failed": "代理測試失敗",
|
|
|
|
|
|
"Please enter a Proxy URL to test": "請輸入要測試的代理 URL",
|
|
|
|
|
|
"Observability": "可觀測性",
|
|
|
|
|
|
"Enable Observability": "啟用可觀測性",
|
|
|
|
|
|
"Turn request detail recording on/off globally": "全局打開/關閉請求詳細記錄",
|
|
|
|
|
|
"Max Records": "最大記錄數",
|
|
|
|
|
|
"Maximum request detail records to keep (older records are auto-deleted)": "要保留的最大請求詳細記錄數(舊記錄自動刪除)",
|
|
|
|
|
|
"Batch Size": "批量大小",
|
|
|
|
|
|
"Number of items to accumulate before writing to database (higher = better performance)": "寫入數據庫前要積累的項目數(更高 = 更好的性能)",
|
|
|
|
|
|
"Flush Interval (ms)": "刷新間隔 (ms)",
|
|
|
|
|
|
"Maximum time to wait before flushing buffer (prevents data loss during low traffic)": "刷新緩衝區之前的最大等待時間(防止低流量期間的數據丟失)",
|
|
|
|
|
|
"Max JSON Size (KB)": "最大 JSON 大小 (KB)",
|
|
|
|
|
|
"Maximum size for each JSON field (request/response) before truncation": "截斷前每個 JSON 字段(請求/響應)的最大大小",
|
|
|
|
|
|
"All data stored on your machine": "所有數據存儲在您的機器上",
|
|
|
|
|
|
"MITM Server": "MITM 服務器",
|
|
|
|
|
|
"Running": "運行中",
|
|
|
|
|
|
"Stopped": "已停止",
|
|
|
|
|
|
"Cert": "證書",
|
|
|
|
|
|
"Server": "服務器",
|
|
|
|
|
|
"Purpose:": "目的:",
|
|
|
|
|
|
"Use Antigravity IDE & GitHub Copilot → with ANY provider/model from 9Router": "使用 Antigravity IDE 和 GitHub Copilot → 與 9Router 中的任何提供者/模型一起",
|
|
|
|
|
|
"How it works:": "工作原理:",
|
|
|
|
|
|
"Antigravity/Copilot IDE request → DNS redirect to localhost:443 → MITM proxy intercepts → 9Router → response to Antigravity/Copilot": "Antigravity/Copilot IDE 請求 → DNS 重定向到 localhost:443 → MITM 代理攔截 → 9Router → 响應到 Antigravity/Copilot",
|
|
|
|
|
|
"No API keys — create one in Keys page": "沒有 API 金鑰 — 在金鑰頁面中創建一個",
|
|
|
|
|
|
"sk_9router (default)": "sk_9router(默認)",
|
|
|
|
|
|
"Server started": "服務器已啟動",
|
|
|
|
|
|
"Failed to start server": "啟動服務器失敗",
|
|
|
|
|
|
"Server stopped — all DNS cleared": "服務器已停止 — 已清除所有 DNS",
|
|
|
|
|
|
"Failed to stop server": "停止服務器失敗",
|
|
|
|
|
|
"Sudo password is required": "需要 Sudo 密碼",
|
|
|
|
|
|
"Stop Server": "停止服務器",
|
|
|
|
|
|
"Start Server": "啟動服務器",
|
|
|
|
|
|
"Enable DNS per tool below to activate interception": "為下面的每個工具啟用 DNS 以激活攔截",
|
|
|
|
|
|
"Sudo Password Required": "需要 Sudo 密碼",
|
|
|
|
|
|
"Enter your sudo password to start/stop MITM server": "輸入您的 Sudo 密碼以啟動/停止 MITM 服務器",
|
|
|
|
|
|
"Sudo Password": "Sudo 密碼",
|
feat(ui): enhance model select modal UX and modal traffic lights (#1111)
* feat(model-select-modal): highlight added models and support bulk selection
- Add addedModelValues prop to highlight already-added models with primary color
- Sort models alphabetically per provider, with added models floated to top
- Replace green highlight with primary brand color (orange #E56A4A)
- Use check icon (10px) inline with model name instead of check_circle
- Replace Done button with info bar explaining click-to-toggle behavior
- Add ProviderIcon to provider group headers replacing colored dot
- Import ProviderIcon, remove unused Button import
* feat(cli-tools): wire addedModelValues, onDeselect, and auto-save to model select modals
- Pass selectedModels as addedModelValues to ModelSelectModal in OpenCode and Copilot cards
- Add onDeselect handler to remove model from list on second click
- Set closeOnSelect=false to allow bulk model selection
- Remove manual setModalOpen(false) from onSelect callbacks
- Add saveModels() silent auto-save triggered on modal close (OpenCodeToolCard)
- Use useRef to track latest selectedModels in closure-safe way
* feat(modal): functional traffic light close button with hover icon and tooltip
- Make red dot a clickable button that closes the modal
- Show ✕ icon inside red dot on hover via group-hover opacity transition
- Gray out yellow and green dots (cursor-not-allowed, no tooltip)
- Increase dot size from w-3 h-3 to w-4 h-4
- Add Tooltip with brand-matched color #FF5F56 on red dot
- Remove X close button from modal header
* feat(tooltip): add color prop for themed tooltip backgrounds
* feat(i18n): add translations for model select info bar and close tooltip
- Add 'Click to add, click again to remove. Changes are saved automatically.' to all 32 locales
- Add 'Close' translation to all 32 locales
* fix(ui): address code review feedback on modal UX and auto-save
- Modal: remove showCloseButton prop, use showTrafficLights for header
condition, hide traffic lights on mobile (hidden md:flex), add mobile
X button (md:hidden) with aria-label, add aria-label and title on
traffic light close button
- OpenCodeToolCard: validate activeModel membership before saving —
fallback to models[0] or empty string; clear/reassign activeModel
on deselect when removed model was the active one
- CopilotToolCard: add useRef + selectedModelsRef, add saveModels()
using /api/cli-tools/copilot-settings, wire auto-save on modal close
- ModelSelectModal: fix JSX formatting — separate info bar closing div
from Search comment onto its own line
2026-05-14 22:21:24 -04:00
|
|
|
|
"Click to add, click again to remove. Changes are saved automatically.": "點擊新增,再次點擊移除。變更將自動儲存。"
|
Add multi-language support for UI
- Add 30 new locale files (ar, bn, cs, da, de, el, es, fi, fr, he, hi, hu, id, it, ja, ko, nl, no, pl, pt-BR, pt-PT, ro, ru, sv, th, tl, tr, uk, ur, zh-TW)
- Update i18n config to register new languages
- Update LanguageSwitcher component to support expanded language list
- Update localDb and pricing constants for i18n compatibility
Made-with: Cursor
2026-03-16 22:30:07 -04:00
|
|
|
|
}
|