From 287a666e1b2bb155e86aa88ebace201d1e8a51f6 Mon Sep 17 00:00:00 2001
From: zhou zhou <3272660260@qq.com>
Date: 星期四, 19 三月 2026 13:26:02 +0800
Subject: [PATCH] #AI.国际化

---
 rsf-admin/src/page/system/aiShared/AiRuntimeSummary.jsx |   25 +++++++++++++++----------
 1 files changed, 15 insertions(+), 10 deletions(-)

diff --git a/rsf-admin/src/page/system/aiShared/AiRuntimeSummary.jsx b/rsf-admin/src/page/system/aiShared/AiRuntimeSummary.jsx
index bf0a840..723ff59 100644
--- a/rsf-admin/src/page/system/aiShared/AiRuntimeSummary.jsx
+++ b/rsf-admin/src/page/system/aiShared/AiRuntimeSummary.jsx
@@ -1,8 +1,10 @@
 import React, { useEffect, useState } from "react";
+import { useTranslate } from "react-admin";
 import { Alert, Box, Card, CardContent, Chip, CircularProgress, Grid, Stack, Typography } from "@mui/material";
 import { getAiConfigSummary } from "@/api/ai/configCenter";
 
 const AiRuntimeSummary = ({ promptCode = "home.default" }) => {
+    const translate = useTranslate();
     const [summary, setSummary] = useState(null);
     const [loading, setLoading] = useState(true);
     const [error, setError] = useState("");
@@ -22,7 +24,7 @@
                 if (!active) {
                     return;
                 }
-                setError(err?.message || "鑾峰彇杩愯鎬佹憳瑕佸け璐�");
+                setError(err?.message || translate("ai.runtimeSummary.fetchFailed"));
             })
             .finally(() => {
                 if (active) {
@@ -46,9 +48,9 @@
                 <CardContent>
                     <Stack direction="row" justifyContent="space-between" alignItems="center" mb={2}>
                         <Box>
-                            <Typography variant="h6">褰撳墠杩愯鎬�</Typography>
+                            <Typography variant="h6">{translate("ai.runtimeSummary.title")}</Typography>
                             <Typography variant="body2" color="text.secondary">
-                                灞曠ず褰撳墠鐢熸晥鐨勬ā鍨嬨�丳rompt 涓� MCP 鎸傝浇淇℃伅銆�
+                                {translate("ai.runtimeSummary.description")}
                             </Typography>
                         </Box>
                         {loading && <CircularProgress size={24} />}
@@ -57,29 +59,32 @@
                     {!loading && !error && summary && (
                         <Grid container spacing={2}>
                             <Grid item xs={12} md={4}>
-                                <Typography variant="caption" color="text.secondary">褰撳墠妯″瀷</Typography>
+                                <Typography variant="caption" color="text.secondary">{translate("ai.runtimeSummary.currentModel")}</Typography>
                                 <Typography variant="body1">{summary.activeModel || "--"}</Typography>
                                 <Typography variant="body2" color="text.secondary">
                                     {summary.activeParamName || "--"}
                                 </Typography>
                                 <Stack direction="row" spacing={1} mt={1} flexWrap="wrap" useFlexGap>
-                                    <Chip size="small" label={`鏍¢獙 ${summary.activeParamValidateStatus || "--"}`} />
-                                    <Chip size="small" variant="outlined" label={summary.activeParamValidatedAt || "鏈牎楠�"} />
+                                    <Chip size="small" label={translate("ai.runtimeSummary.validateStatus", { status: summary.activeParamValidateStatus || "--" })} />
+                                    <Chip size="small" variant="outlined" label={summary.activeParamValidatedAt || translate("ai.common.notValidated")} />
                                 </Stack>
                             </Grid>
                             <Grid item xs={12} md={4}>
-                                <Typography variant="caption" color="text.secondary">褰撳墠 Prompt</Typography>
+                                <Typography variant="caption" color="text.secondary">{translate("ai.runtimeSummary.currentPrompt")}</Typography>
                                 <Typography variant="body1">{summary.promptName || "--"}</Typography>
                                 <Typography variant="body2" color="text.secondary">
                                     {summary.promptCode || "--"} / {summary.promptScene || "--"}
                                 </Typography>
                                 <Typography variant="body2" color="text.secondary" mt={1}>
-                                    鏈�杩戞洿鏂帮細{summary.activePromptUpdatedAt || "--"} / {summary.activePromptUpdatedBy || "--"}
+                                    {translate("ai.runtimeSummary.lastUpdated", {
+                                        time: summary.activePromptUpdatedAt || "--",
+                                        user: summary.activePromptUpdatedBy || "--",
+                                    })}
                                 </Typography>
                             </Grid>
                             <Grid item xs={12} md={4}>
-                                <Typography variant="caption" color="text.secondary">宸插惎鐢� MCP</Typography>
-                                <Typography variant="body1">{summary.enabledMcpCount ?? 0} 涓�</Typography>
+                                <Typography variant="caption" color="text.secondary">{translate("ai.runtimeSummary.enabledMcp")}</Typography>
+                                <Typography variant="body1">{translate("ai.runtimeSummary.enabledMcpCount", { count: summary.enabledMcpCount ?? 0 })}</Typography>
                                 <Stack direction="row" spacing={1} mt={1} flexWrap="wrap" useFlexGap>
                                     {(summary.enabledMcpNames || []).map((name) => (
                                         <Chip key={name} size="small" variant="outlined" label={name} />

--
Gitblit v1.9.1