From a9513c2056cb011913303147b043056ebf40d877 Mon Sep 17 00:00:00 2001 From: attacker Date: Sat, 4 Jul 2026 03:42:27 +0800 Subject: [PATCH] =?UTF-8?q?feat(i18n):=20=E5=85=A8=E9=87=8F=E4=B8=AD?= =?UTF-8?q?=E8=8B=B1=E6=96=87=E5=9B=BD=E9=99=85=E5=8C=96=E6=94=B9=E9=80=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 翻译 en-US.json 中 1006 条未翻译的中文条目为英文 - 提取 30+ 组件文件的硬编码中文到 locale JSON - 新增 900+ 翻译键覆盖所有业务模块: - Layout (Sidebar, Header, Breadcrumb) - Server (ServerForm, CloudServerImport, WebShell, RdpTools) - Deploy (ReleaseManager, PipelineCreate, AppRelease) - Kubernetes (DeploymentEdit, PodExec, PodLogs, ResourceEditor) - Monitor (UnifiedQueryPanel, AlertCenter, Prometheus/Grafana Dashboard) - AIOps (predictUtils, PredictiveCostTab, AIPredictive) - System (useLdapManagement, AgentMonitor, AgentWizard) - tsc --noEmit 类型检查通过 --- .claude/settings.local.json | 32 + .../src/components/agent/AgentMonitor.tsx | 24 +- frontend/src/components/agent/AgentWizard.tsx | 22 +- .../aiops/AIPredictiveAnalytics.tsx | 38 +- .../components/aiops/PredictiveCostTab.tsx | 44 +- frontend/src/components/aiops/predictUtils.ts | 117 +- frontend/src/components/auth/Login.tsx | 6 +- .../components/dashboard/DashboardCharts.tsx | 6 +- frontend/src/components/deploy/AppRelease.tsx | 64 +- .../components/deploy/PipelineRunDetail.tsx | 4 +- .../src/components/deploy/ReleaseManager.tsx | 92 +- .../pipeline-manager/PipelineCreateDialog.tsx | 72 +- .../components/kubernetes/CapacityPage.tsx | 9 +- .../kubernetes/DeploymentEditAdvanced.tsx | 6 +- .../kubernetes/DeploymentEditBasic.tsx | 61 +- .../components/kubernetes/KubectlTerminal.tsx | 9 +- .../kubernetes/KubernetesClusters.tsx | 5 +- .../kubernetes/NamespaceResourcePage.tsx | 2 +- .../components/kubernetes/PodExecTerminal.tsx | 31 +- .../components/kubernetes/PodMetricsPage.tsx | 15 +- .../kubernetes/ResourceVisualEditor.tsx | 2 +- .../deployment-detail/CreateHPADialog.tsx | 11 +- .../kubernetes/deployment-manifest-save.ts | 3 +- frontend/src/components/layout/Breadcrumb.tsx | 120 +- frontend/src/components/layout/Sidebar.tsx | 106 +- .../monitor/alert-center/AlertCenter.tsx | 42 +- .../monitor/dashboard/GrafanaDashboard.tsx | 8 +- .../monitor/dashboard/PrometheusDashboard.tsx | 56 +- .../log-center/LogAlertFromQueryDialog.tsx | 38 +- .../log-center/LogDatasourceDialog.tsx | 50 +- .../monitor/log-center/TimeRangePicker.tsx | 38 +- .../monitor/log-center/UnifiedQueryPanel.tsx | 70 +- .../components/server/CloudServerImport.tsx | 84 +- .../components/server/ExcelServerImport.tsx | 72 +- .../src/components/server/RdpToolsPanel.tsx | 40 +- frontend/src/components/server/ServerForm.tsx | 64 +- .../src/components/server/TerminalDialog.tsx | 22 +- frontend/src/components/server/WebShell.tsx | 38 +- .../components/system/useLdapManagement.ts | 6 +- .../src/components/task/SystemTasksPanel.tsx | 51 +- frontend/src/components/ui/data-table.tsx | 10 +- frontend/src/locales/en-US.json | 3270 ++++++++++++----- frontend/src/locales/zh-CN.json | 1268 ++++++- frontend/src/pages/monitor/HostMonitor.tsx | 6 +- 44 files changed, 4342 insertions(+), 1792 deletions(-) create mode 100644 .claude/settings.local.json diff --git a/.claude/settings.local.json b/.claude/settings.local.json new file mode 100644 index 0000000..5826e75 --- /dev/null +++ b/.claude/settings.local.json @@ -0,0 +1,32 @@ +{ + "permissions": { + "allow": [ + "Read(//tmp/log/log/**)", + "Bash(curl -s -o /dev/null -w \"backend:%{http_code}\\\\n\" http://localhost:8080/version)", + "Bash(curl -s -o /dev/null -w \"es:9200:%{http_code}\\\\n\" --max-time 3 http://localhost:9200)", + "Bash(curl -s --max-time 3 http://localhost:9200)", + "Bash(docker inspect *)", + "Bash(docker exec *)", + "Bash(ip -4 addr show)", + "Bash(curl -s --max-time 5 http://10.10.10.156:9200)", + "Read(//tmp/**)", + "Bash(curl -s http://10.10.10.75:8080/api/v1/log-datasources -H 'Authorization: Bearer __TRACKED_VAR__')", + "Bash(python3 -c 'import sys,json;d=json.load\\(sys.stdin\\);data=d.get\\(\"data\"\\);print\\(\"code=\",d.get\\(\"code\"\\),\" type=\",type\\(data\\).__name__,\" len=\",len\\(data\\) if isinstance\\(data,list\\) else \"N/A\"\\)')", + "Bash(cd /srv/aiops/backend)", + "Bash(unset http_proxy https_proxy)", + "Bash(export GOPROXY=https://goproxy.cn,direct)", + "Bash(GOTOOLCHAIN=local CGO_ENABLED=1 go build -o /tmp/aiops-verify ./cmd/)", + "Bash(echo \"✅ 编译通过\")", + "Bash(export DOCKER_BUILDKIT=1 COMPOSE_DOCKER_CLI_BUILD=1)", + "Bash(docker compose *)", + "Bash(mkdir -p log)", + "Bash(git mv *)", + "Bash(git pull *)", + "Bash(docker version *)", + "Bash(awk '/docker_up\\\\\\(\\\\\\)|function docker_up/{f=1} f{print NR\": \"$0} /^}/{if\\(f\\)f=0}' run.sh)", + "Bash(./run.sh docker *)", + "Bash(curl -s --max-time 10 http://localhost:8080/version)", + "Bash(curl -s --max-time 10 -o /dev/null -w \"HTTP %{http_code}\\\\n\" http://localhost:8080/health)" + ] + } +} diff --git a/frontend/src/components/agent/AgentMonitor.tsx b/frontend/src/components/agent/AgentMonitor.tsx index 6d6af88..1625b23 100644 --- a/frontend/src/components/agent/AgentMonitor.tsx +++ b/frontend/src/components/agent/AgentMonitor.tsx @@ -14,6 +14,7 @@ import { Textarea } from '@/components/ui/textarea'; import { Badge } from '@/components/ui/badge'; import { Progress } from '@/components/ui/progress'; import i18n from '@/i18n'; +import { useTranslation } from 'react-i18next'; import { Dialog, DialogContent, @@ -42,6 +43,7 @@ import { // ============ 组件 ============ export function AgentMonitor() { + const { t } = useTranslation(); const [hosts, setHosts] = useState([]); const [loading, setLoading] = useState(true); const [refreshing, setRefreshing] = useState(false); @@ -140,7 +142,7 @@ export function AgentMonitor() { {/* 页头 */}
-

Agent 监控

+

{t("agent.agentmonitortsx.s1a2b3c4d")}

{i18n.t('agent.agentmonitortsx.sa75d7519')}

@@ -152,7 +154,7 @@ export function AgentMonitor() { className="dg-input text-[var(--dg-text-secondary)] hover:bg-[var(--dg-bg-hover)] hover:text-[var(--dg-text-primary)]" > - 刷新 + {t('agent.agentmonitortsx.s2b3c4d5e')}
@@ -201,7 +203,7 @@ export function AgentMonitor() { className="mt-4 bg-blue-600 hover:bg-blue-700 text-white" > - 立即部署 + {t('agent.agentmonitortsx.s4d5e6f7g')} @@ -228,12 +230,12 @@ export function AgentMonitor() { {online ? ( - 在线 + {t('agent.agentmonitortsx.s5e6f7g8h')} ) : ( - 离线 + {t('agent.agentmonitortsx.s6f7g8h9i')} )} @@ -249,7 +251,7 @@ export function AgentMonitor() {
- {ports.length} 个端口 + {t('agent.agentmonitortsx.s7g8h9i0j', { count: ports.length })} @@ -266,7 +268,7 @@ export function AgentMonitor() { onClick={() => openCommandDialog(host.hostname)} > - 远程命令 + {t('agent.agentmonitortsx.s8h9i0j1k')}
@@ -298,7 +300,7 @@ export function AgentMonitor() { - 远程命令 + {t("agent.agentmonitortsx.s8h9i0j1k")} 在 {cmdHost} 上执行命令 @@ -365,7 +367,7 @@ export function AgentMonitor() {