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/i18n/en.js |  304 ++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 304 insertions(+), 0 deletions(-)

diff --git a/rsf-admin/src/i18n/en.js b/rsf-admin/src/i18n/en.js
index f0b39e1..ae41b15 100644
--- a/rsf-admin/src/i18n/en.js
+++ b/rsf-admin/src/i18n/en.js
@@ -232,6 +232,310 @@
         taskPathTemplateMerge: 'TaskPathTemplateMerge',
         missionFlowStepInstance: 'Mission Flow Steps',
     },
+    ai: {
+        common: {
+            cancel: "Cancel",
+            close: "Close",
+            save: "Save",
+            new: "New",
+            detail: "Details",
+            delete: "Delete",
+            enabled: "Enabled",
+            disabled: "Disabled",
+            saveSuccess: "Saved successfully",
+            updateSuccess: "Updated successfully",
+            deleteSuccess: "Deleted successfully",
+            deleteFailed: "Delete failed",
+            operationFailed: "Operation failed",
+            confirmDelete: "Delete \"%{name}\"?",
+            none: "None",
+            notValidated: "Not validated",
+            notTested: "Not tested",
+            lastUpdatedBy: "Last updated by",
+            lastUpdatedAt: "Last updated at",
+            target: "Target",
+            lastTest: "Last test",
+            prompt: "Prompt",
+            model: "Model",
+            error: "Error",
+            testing: "Testing...",
+        },
+        runtimeSummary: {
+            fetchFailed: "Failed to load runtime summary",
+            title: "Current Runtime",
+            description: "Shows the active model, prompt, and MCP mounts.",
+            currentModel: "Current Model",
+            validateStatus: "Validate %{status}",
+            currentPrompt: "Current Prompt",
+            lastUpdated: "Last updated: %{time} / %{user}",
+            enabledMcp: "Enabled MCP",
+            enabledMcpCount: "%{count} enabled",
+        },
+        param: {
+            fields: {
+                providerType: "Provider Type",
+                model: "Model",
+                baseUrl: "Base URL",
+                apiKey: "API Key",
+                temperature: "Temperature",
+                topP: "Top P",
+                maxTokens: "Max Tokens",
+                timeoutMs: "Timeout(ms)",
+                streamingEnabled: "Enable Streaming",
+                validateStatus: "Latest Validate Status",
+                lastValidateElapsedMs: "Latest Validate Elapsed(ms)",
+                lastValidateTime: "Latest Validate Time",
+                lastValidateMessage: "Latest Validate Result",
+            },
+            list: {
+                emptyTitle: "No AI parameter configs",
+                emptyDescription: "Create an OpenAI-compatible model card first.",
+                streaming: "Streaming",
+                nonStreaming: "Non-streaming",
+            },
+            dialog: {
+                create: "New AI Parameter",
+                edit: "Edit AI Parameter",
+                show: "View AI Parameter Details",
+            },
+            validate: {
+                success: "AI parameter validation succeeded",
+                failed: "AI parameter validation failed",
+                loading: "Validating...",
+                beforeSave: "Validate Before Save",
+                description: "Validates the current Base URL, API Key, and model directly.",
+            },
+            form: {
+                sections: {
+                    main: "Main Configuration",
+                    runtime: "Runtime and Audit",
+                },
+            },
+        },
+        prompt: {
+            fields: {
+                code: "Code",
+                scene: "Scene",
+                systemPrompt: "System Prompt",
+                userPromptTemplate: "User Prompt Template",
+            },
+            list: {
+                emptyTitle: "No prompt configs",
+                emptyDescription: "Once you create a prompt card, AI chat will load it dynamically.",
+                sceneValue: "Scene: %{value}",
+            },
+            dialog: {
+                create: "New Prompt",
+                edit: "Edit Prompt",
+                show: "View Prompt Details",
+            },
+            preview: {
+                defaultInput: "Please summarize what this page can do",
+                success: "Prompt preview generated",
+                failed: "Prompt preview failed",
+                title: "Prompt Preview",
+                input: "Sample Input",
+                metadata: "Sample Metadata JSON",
+                loading: "Rendering...",
+                render: "Render Preview",
+                description: "Render the System Prompt and User Prompt with the current form values.",
+                resolvedVariables: "Resolved variables: %{value}",
+                renderedSystemPrompt: "Rendered System Prompt",
+                renderedUserPrompt: "Rendered User Prompt",
+            },
+            form: {
+                sections: {
+                    main: "Prompt Configuration",
+                    runtime: "Runtime and Audit",
+                },
+            },
+        },
+        mcp: {
+            fields: {
+                transportType: "Transport Type",
+                builtinCode: "Built-in MCP",
+                serverUrl: "Server URL",
+                command: "Command",
+                sort: "Sort",
+                healthStatus: "Health Status",
+                lastInitElapsedMs: "Last Init Elapsed(ms)",
+                lastTestTime: "Last Test Time",
+                lastTestMessage: "Last Test Result",
+            },
+            groups: {
+                builtin: {
+                    title: "Built-in MCP",
+                    description: "Built-in tool mounts for exposing platform capabilities directly.",
+                },
+                sse: {
+                    title: "Remote SSE MCP",
+                    description: "Mount external tools through a remote MCP server.",
+                },
+                stdio: {
+                    title: "Local STDIO MCP",
+                    description: "Mount external MCP tools through a local command process.",
+                },
+            },
+            health: {
+                healthy: "Healthy",
+                unhealthy: "Failed",
+            },
+            list: {
+                emptyTitle: "No MCP mounts",
+                emptyDescription: "Create a built-in MCP, remote SSE mount, or local STDIO mount.",
+                sortValue: "Sort %{value}",
+                noConnectivityTest: "No connectivity test has been run yet",
+                connectivityTest: "Connectivity Test",
+            },
+            dialog: {
+                create: "New MCP Mount",
+                edit: "Edit MCP Mount",
+                show: "View MCP Mount Details",
+            },
+            connectivity: {
+                success: "Connectivity test completed",
+                failed: "Connectivity test failed",
+            },
+            form: {
+                testBeforeSave: "Test Before Save",
+                testDescription: "Validate connectivity directly with the current draft without saving.",
+                sections: {
+                    main: "MCP Mount Configuration",
+                    runtime: "Runtime Info",
+                },
+            },
+            tools: {
+                schemaParseFailed: "Failed to parse input schema: %{message}",
+                loadFailed: "Failed to load tools",
+                inputRequired: "Please enter tool test JSON",
+                testSuccess: "Tool %{name} test completed",
+                testFailed: "Tool test failed",
+                saveBeforePreview: "Save the mount before previewing tools and running tests.",
+                title: "Tool Preview and Test",
+                description: "Supports connectivity checks, structured schema preview, and generated test forms from input parameters.",
+                refresh: "Refresh Tools",
+                noTools: "No tools were resolved for this mount.",
+                purpose: "Purpose: %{value}",
+                fieldCount: "%{count} fields",
+                queryBoundary: "Query boundary: %{value}",
+                exampleQuestions: "Example Questions",
+                formattedSchema: "Formatted Input Schema",
+                testInput: "Test Input JSON",
+                testInputPlaceholder: "Example: {\"code\":\"A01\"}",
+                executeTest: "Run Test",
+                testResult: "Test Result",
+            },
+        },
+        observe: {
+            fields: {
+                requestId: "Request ID",
+                promptCode: "Prompt Code",
+                userId: "User ID",
+                sessionId: "Session ID",
+                mountedMcp: "MCP Mounts",
+            },
+            summary: {
+                fetchFailed: "Failed to load AI observe stats",
+                title: "Observe Overview",
+                description: "Statistics for AI chats and MCP tool calls in the current tenant.",
+                callCount: "AI Calls",
+                successFailure: "Success %{success} / Failed %{failure}",
+                avgElapsed: "Average Elapsed",
+                firstToken: "First token %{value} ms",
+                tokenUsage: "Token Usage",
+                avgToken: "Average %{value}",
+                toolSuccessRate: "Tool Success Rate",
+                toolCallFailure: "Calls %{call} / Failed %{failure}",
+            },
+            status: {
+                completed: "Success",
+                failed: "Failed",
+                aborted: "Aborted",
+            },
+            detail: {
+                mcpLogsFailed: "Failed to load MCP call logs",
+                title: "AI Call Details",
+                mcpLogs: "MCP Tool Call Logs",
+                noMcpLogs: "No MCP tool logs were generated for this call.",
+                inputSummary: "Input Summary",
+                outputSummary: "Output Summary / Error",
+            },
+            list: {
+                emptyTitle: "No AI call logs",
+                emptyDescription: "After starting AI chats, statistics and audit records will appear here.",
+                userValue: "User %{value}",
+                elapsedValue: "Elapsed %{value} ms",
+                tokenValue: "Token %{value}",
+                mcpToolCalls: "MCP / Tool Calls",
+                mcpToolSummary: "%{mcp} mounts, %{success} tool successes, %{failure} failures",
+            },
+        },
+        drawer: {
+            title: "AI Chat",
+            runtimeFailed: "Failed to load AI runtime",
+            sessionListFailed: "Failed to load AI sessions",
+            sessionDeleted: "Session deleted",
+            deleteSessionFailed: "Failed to delete AI session",
+            pinned: "Session pinned",
+            unpinned: "Session unpinned",
+            pinFailed: "Failed to update session pin state",
+            renamed: "Session renamed",
+            renameFailed: "Failed to rename session",
+            memoryCleared: "Session memory cleared",
+            clearMemoryFailed: "Failed to clear session memory",
+            retainLatestRoundSuccess: "Only the latest round was kept",
+            retainLatestRoundFailed: "Failed to keep only the latest round",
+            stopSuccess: "Current output stopped",
+            chatFailed: "AI chat failed",
+            newSession: "New Session",
+            sessionList: "Sessions",
+            searchPlaceholder: "Search session titles",
+            noSessions: "No history sessions",
+            sessionTitle: "Session %{id}",
+            pinAction: "Pin session",
+            unpinAction: "Unpin session",
+            renameAction: "Rename session",
+            deleteAction: "Delete session",
+            toolTrace: "Tool Trace",
+            noToolTrace: "No tool call was triggered in this round",
+            unknownTool: "Unknown tool",
+            toolStatusFailed: "Failed",
+            toolStatusCompleted: "Completed",
+            toolStatusRunning: "Running",
+            collapseDetail: "Hide Details",
+            viewDetail: "View Details",
+            toolInput: "Input: %{value}",
+            toolOutput: "Output summary: %{value}",
+            toolError: "Error: %{value}",
+            hasSummary: "Summary",
+            noSummary: "No Summary",
+            hasFacts: "Facts",
+            noFacts: "No Facts",
+            retainLatestRound: "Keep Latest Round",
+            clearMemory: "Clear Memory",
+            loadingRuntime: "Loading AI runtime info...",
+            emptyHint: "AI responses stream back through SSE here. You can also maintain parameters, prompts, and MCP mounts from the quick links above.",
+            userRole: "You",
+            assistantRole: "AI",
+            thinking: "Thinking...",
+            inputPlaceholder: "Type your question. Press Enter to send, Shift + Enter for a new line",
+            clearInput: "Clear Input",
+            stop: "Stop",
+            send: "Send",
+            renameDialogTitle: "Rename Session",
+            sessionTitleField: "Session Title",
+            requestMetric: "Req: %{value}",
+            sessionMetric: "Session: %{id}",
+            promptMetric: "Prompt: %{value}",
+            modelMetric: "Model: %{value}",
+            mcpMetric: "MCP: %{value}",
+            historyMetric: "History: %{value}",
+            recentMetric: "Recent: %{value}",
+            elapsedMetric: "Elapsed: %{value} ms",
+            firstTokenMetric: "First token: %{value} ms",
+            tokenMetric: "Tokens: prompt %{prompt} / completion %{completion} / total %{total}",
+        },
+    },
     table: {
         field: {
             basStationArea: {

--
Gitblit v1.9.1