# Phase 2 Technical Debt - i18n 違憲代碼清單 > **Phase 3 首要清理任務** > 掃描日期: 2026-03-20 > 總計違規: 40+ 處 --- ## 🔴 高優先級 (紅燈) ### 1. agent/approval-card.tsx - 風險等級與資料影響標籤 | 行號 | 違規內容 | 修復方式 | |------|----------|----------| | 63-81 | `'LOW RISK'`, `'MEDIUM RISK'`, `'HIGH RISK'`, `'CRITICAL'` | 改為 `tRisk('low')` 等 | | 92-95 | `'NONE'`, `'READ ONLY'`, `'WRITE'`, `'DESTRUCTIVE'` | 改為 `tBlast('none')` 等 | | 174-251 | `'SIGNATURES'`, `'BLAST RADIUS'`, `'AFFECTED PODS'`, `'EST. DOWNTIME'`, `'RELATED SERVICES'`, `'DATA IMPACT'`, `'DRY-RUN VALIDATION'` | 改為 `t('approval.xxx')` | | 292 | `'Requested by '` | 改為 `t('requestedBy')` | ### 2. agent/data-pincer.tsx - 狀態標籤 | 行號 | 違規內容 | 修復方式 | |------|----------|----------| | 50-78 | `'STANDBY'`, `'ANALYZING'`, `'EXECUTING'`, `'AWAITING APPROVAL'`, `'ERROR'` | 改為 `t('status.xxx')` | ### 3. status-orb.tsx - 狀態標籤 | 行號 | 違規內容 | 修復方式 | |------|----------|----------| | 16-31 | `'Idle'`, `'Thinking'`, `'Executing'`, `'Awaiting Approval'` | 改為 `t('status.xxx')` | ### 4. layout/header.tsx - 連線狀態 | 行號 | 違規內容 | 修復方式 | |------|----------|----------| | 55-61 | `connectionLabel` 物件: `'Offline'`, `'Connecting...'`, `'LIVE'` 等 | 移至 i18n | ### 5. dashboard/connection-status.tsx - 連線狀態 | 行號 | 違規內容 | 修復方式 | |------|----------|----------| | 35-41 | `connectionLabels` 物件中英文字串 | 改為 `useTranslations('connection')` | --- ## 🟡 中優先級 (黃燈) ### 6. agent/thinking-terminal.tsx - 終端機 UI | 行號 | 違規內容 | 修復方式 | |------|----------|----------| | 58 | `'[ BLAST RADIUS ]'` | 改為 `t('graphRag.blastRadius')` | | 93-122 | `'[ ROOT CAUSE CHAIN ]'`, `'[ UPSTREAM IMPACT ]'`, `'[ DOWNSTREAM DEPENDENCIES ]'` | 改為對應 i18n keys | | 162-182 | `'[ FINOPS ANALYSIS ]'`, `'Wasted/mo'`, `'Realizable'`, `'Freed'` | 改為 `t('finops.xxx')` | | 334-382 | `'AWOOOI Terminal'`, `'v0.1.0 | SSE'`, `'>_ EXECUTING...'`, `'INITIATE SYNC'`, `'Waiting for command...'` | 改為 `t('terminal.xxx')` | ### 7. dashboard/live-host-card.tsx - Baseline 標籤 | 行號 | 違規內容 | 修復方式 | |------|----------|----------| | 285 | `'基準線'` (中文硬寫) | 改為 `baselineLabel` prop 或 `t('dashboard.baseline')` | --- ## 🟢 低優先級 (綠燈) ### 8. Locale Hardcoding | 檔案 | 行號 | 違規內容 | 修復方式 | |------|------|----------|----------| | `dashboard/host-card.tsx` | 220-223 | `toLocaleTimeString('zh-TW', ...)` | 改為動態 `params.locale` | | `dashboard/live-host-card.tsx` | 252-256 | `toLocaleTimeString('zh-TW', ...)` | 改為動態 locale | ### 9. 技術識別符 (保持原樣) 以下為技術識別符,不需 i18n 化: - 服務名稱: `'Harbor'`, `'GH Runner'`, `'Docker'` - IP 地址: `'192.168.0.xxx'` - API 路徑: `/api/v1/xxx` --- ## 修復優先順序 ``` Phase 3 Week 1: ├── [P0] agent/approval-card.tsx (20+ 違規) ├── [P0] agent/data-pincer.tsx (5 違規) ├── [P0] status-orb.tsx (4 違規) └── [P0] connection-status.tsx + header.tsx (10 違規) Phase 3 Week 2: ├── [P1] agent/thinking-terminal.tsx (15+ 違規) └── [P1] live-host-card.tsx baseline (1 違規) Phase 3 Bug Bash: └── [P2] Locale hardcoding (2 違規) ``` --- ## 已修復清單 ✅ | 檔案 | 修復內容 | |------|----------| | `sidebar.tsx` | Logo 已套用 `mix-blend-multiply` | | `sidebar.tsx` | `v1.0.0` / `Production` 改為 `tBrand('version')` / `tBrand('environment')` | | `demo/page.tsx` | `useMockApprovalData` 全面 i18n 化 | | `demo/page.tsx` | `createTestApprovalWithConfig` 使用 i18n config | | `approval-card.tsx` (新版) | 已完全 i18n 化 | | `host-card.tsx` | CPU/Memory 標籤已 i18n 化 | --- --- ## Phase 6 架構債 (新增 2026-03-22) > **來源**: `docs/ARCHITECTURE_CODE_REVIEW.md` | 類別 | 項目 | 現狀 | 目標 | |------|------|------|------| | 狀態持久化 | MultiSigEngine | In-Memory | Redis Hash | | 狀態持久化 | TopologyGraph | In-Memory | Neo4j | | 水平擴展 | SSE 廣播 | 單實例 | Redis Pub/Sub | 詳見 `docs/ARCHITECTURE_CODE_REVIEW.md` 第 5 章。 --- *最後更新: 2026-03-22*