@@ -160,7 +172,7 @@ export default function BugList() {
|
- {bug.status}
+ {STATUS_LABELS[bug.status] || bug.status}
|
@@ -177,16 +189,16 @@ export default function BugList() {
onClick={() => updateParams({ page: String(Math.max(1, currentPage - 1)) })}
disabled={currentPage === 1}
>
- Previous
+ 上一页
- Page {currentPage} of {totalPages}
+ 第 {currentPage} 页,共 {totalPages} 页
)}
diff --git a/web/src/pages/Dashboard.tsx b/web/src/pages/Dashboard.tsx
index 3cbd234..021306b 100644
--- a/web/src/pages/Dashboard.tsx
+++ b/web/src/pages/Dashboard.tsx
@@ -2,6 +2,18 @@ import { useState, useEffect } from 'react';
import { Bug, CalendarPlus, TrendingUp, AlertTriangle } from 'lucide-react';
import { getStats, type DashboardStats } from '../api';
+const STATUS_LABELS: Record = {
+ NEW: '新发现',
+ VERIFYING: '验证中',
+ CANNOT_REPRODUCE: '无法复现',
+ PENDING_FIX: '待修复',
+ FIXING: '修复中',
+ FIXED: '已修复',
+ VERIFIED: '已验证',
+ DEPLOYED: '已部署',
+ FIX_FAILED: '修复失败',
+};
+
export default function Dashboard() {
const [stats, setStats] = useState(null);
const [loading, setLoading] = useState(true);
@@ -29,14 +41,14 @@ export default function Dashboard() {
}
if (!stats) {
- return Failed to load statistics ;
+ return 加载统计数据失败 ;
}
return (
- Dashboard
- Overview of your error tracking system
+ 仪表盘
+ 错误追踪系统概览
@@ -44,28 +56,28 @@ export default function Dashboard() {
- Total Bugs
+ 缺陷总数
{stats.total_bugs}
- Today's New
+ 今日新增
{stats.today_bugs}
- Fix Rate
+ 修复率
{stats.fix_rate}%
- Pending Fix
+ 待修复
{(stats.status_distribution['NEW'] || 0) +
(stats.status_distribution['PENDING_FIX'] || 0)}
@@ -75,20 +87,22 @@ export default function Dashboard() {
- Status Distribution
+ 状态分布
- | Status |
- Count |
+ 状态 |
+ 数量 |
{Object.entries(stats.status_distribution).map(([status, count]) => (
|
- {status}
+
+ {STATUS_LABELS[status] || status}
+
|
{count} |
diff --git a/web/src/pages/RepairDetail.tsx b/web/src/pages/RepairDetail.tsx
index df4502c..247da4e 100644
--- a/web/src/pages/RepairDetail.tsx
+++ b/web/src/pages/RepairDetail.tsx
@@ -3,6 +3,18 @@ import { useParams, Link } from 'react-router-dom';
import { ArrowLeft, Bot, FileCode, FlaskConical } from 'lucide-react';
import { getRepairReportDetail, type RepairReport } from '../api';
+const STATUS_LABELS: Record = {
+ NEW: '新发现',
+ VERIFYING: '验证中',
+ CANNOT_REPRODUCE: '无法复现',
+ PENDING_FIX: '待修复',
+ FIXING: '修复中',
+ FIXED: '已修复',
+ VERIFIED: '已验证',
+ DEPLOYED: '已部署',
+ FIX_FAILED: '修复失败',
+};
+
export default function RepairDetail() {
const { id } = useParams<{ id: string }>();
const [report, setReport] = useState(null);
@@ -33,57 +45,59 @@ export default function RepairDetail() {
}
if (!report) {
- return Report not found ;
+ return 未找到该修复报告 ;
}
return (
- Back to Repair Reports
+ 返回修复报告列表
- Repair Report #{report.id}
- {report.status}
-
-
-
-
- Basic Info
-
- Project
- {report.project_id}
-
-
- Bug ID
- #{report.error_log_id}
-
-
- Created At
- {new Date(report.created_at).toLocaleString()}
-
-
- Test Result
-
- {report.test_passed ? 'PASS' : 'FAIL'}
+ 修复报告 #{report.id}
+
+ {STATUS_LABELS[report.status] || report.status}
- AI Analysis
+ 基本信息
+
+ 项目
+ {report.project_id}
+
+
+ 缺陷编号
+ #{report.error_log_id}
+
+
+ 创建时间
+ {new Date(report.created_at).toLocaleString()}
+
+
+ 测试结果
+
+ {report.test_passed ? '通过' : '失败'}
+
+
+
+
+
+ AI 分析
{report.ai_analysis}
- Code Changes
- {report.code_diff || 'No changes recorded'}
+ 代码变更
+ {report.code_diff || '无变更记录'}
- Test Output
+ 测试输出
{report.test_output}
diff --git a/web/src/pages/RepairList.tsx b/web/src/pages/RepairList.tsx
index c2f3ea1..b9826d4 100644
--- a/web/src/pages/RepairList.tsx
+++ b/web/src/pages/RepairList.tsx
@@ -2,6 +2,18 @@ import { useState, useEffect } from 'react';
import { Link } from 'react-router-dom';
import { getRepairReports, type RepairReport, getProjects } from '../api';
+const STATUS_LABELS: Record = {
+ NEW: '新发现',
+ VERIFYING: '验证中',
+ CANNOT_REPRODUCE: '无法复现',
+ PENDING_FIX: '待修复',
+ FIXING: '修复中',
+ FIXED: '已修复',
+ VERIFIED: '已验证',
+ DEPLOYED: '已部署',
+ FIX_FAILED: '修复失败',
+};
+
export default function RepairList() {
const [reports, setReports] = useState([]);
const [loading, setLoading] = useState(true);
@@ -52,8 +64,8 @@ export default function RepairList() {
- Repair Reports
- AI-powered bug repair attempts and their results
+ 修复报告
+ AI 自动修复记录及结果
) : reports.length === 0 ? (
- No reports found
+ 暂无修复报告
) : (
- | ID |
- Project |
- Bug ID |
- Modified Files |
- Test Result |
- Status |
- Date |
- Actions |
+ 编号 |
+ 项目 |
+ 缺陷编号 |
+ 修改文件数 |
+ 测试结果 |
+ 状态 |
+ 日期 |
+ 操作 |
@@ -101,15 +113,15 @@ export default function RepairList() {
#{report.error_log_id}
- {report.modified_files.length} files |
+ {report.modified_files.length} 个文件 |
- {report.test_passed ? 'PASS' : 'FAIL'}
+ {report.test_passed ? '通过' : '失败'}
|
- {report.status}
+ {STATUS_LABELS[report.status] || report.status}
|
@@ -117,7 +129,7 @@ export default function RepairList() {
|
- View
+ 查看
|
@@ -133,16 +145,16 @@ export default function RepairList() {
disabled={filters.page === 1}
onClick={() => setFilters((prev) => ({ ...prev, page: prev.page - 1 }))}
>
- Previous
+ 上一页
- Page {filters.page} of {totalPages}
+ 第 {filters.page} 页,共 {totalPages} 页
)}
|