From 22173843169fbbf0627f56766b515c2e5e9922c0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=90=B9=E9=9B=AA?= <2b@yorha.xyz> Date: Thu, 11 Jun 2026 07:22:38 +0900 Subject: [PATCH] feat(ui): i18n for edit auto router modal --- .../edit_auto_router_modal.tsx | 53 +++++++++++-------- ui/litellm-dashboard/src/locales/en.json | 22 ++++++++ ui/litellm-dashboard/src/locales/zh-CN.json | 22 ++++++++ 3 files changed, 75 insertions(+), 22 deletions(-) diff --git a/ui/litellm-dashboard/src/components/edit_auto_router/edit_auto_router_modal.tsx b/ui/litellm-dashboard/src/components/edit_auto_router/edit_auto_router_modal.tsx index e4e6ebd1da9..279885dba15 100644 --- a/ui/litellm-dashboard/src/components/edit_auto_router/edit_auto_router_modal.tsx +++ b/ui/litellm-dashboard/src/components/edit_auto_router/edit_auto_router_modal.tsx @@ -1,4 +1,5 @@ import React, { useEffect, useState } from "react"; +import { useTranslation } from "react-i18next"; import { Modal, Form, Button, Select as AntdSelect } from "antd"; import { Text, TextInput } from "@tremor/react"; import { modelAvailableCall, modelPatchUpdateCall } from "../networking"; @@ -23,6 +24,7 @@ const EditAutoRouterModal: React.FC = ({ accessToken, userRole, }) => { + const { t } = useTranslation(); const [form] = Form.useForm(); const [loading, setLoading] = useState(false); const [modelAccessGroups, setModelAccessGroups] = useState([]); @@ -92,7 +94,7 @@ const EditAutoRouterModal: React.FC = ({ setShowCustomEmbeddingModel(!allModelGroups.has(modelData.litellm_params?.auto_router_embedding_model)); } catch (error) { console.error("Error parsing auto router config:", error); - NotificationsManager.fromBackend("Error loading auto router configuration"); + NotificationsManager.fromBackend(t("editAutoRouter.editAutoRouterModal.errorLoadingConfig")); } }; @@ -130,12 +132,12 @@ const EditAutoRouterModal: React.FC = ({ model_info: updatedModelInfo, }; - NotificationsManager.success("Auto router configuration updated successfully"); + NotificationsManager.success(t("editAutoRouter.editAutoRouterModal.updateSuccess")); onSuccess(updatedModelData); onCancel(); } catch (error) { console.error("Error updating auto router:", error); - NotificationsManager.fromBackend("Failed to update auto router configuration"); + NotificationsManager.fromBackend(t("editAutoRouter.editAutoRouterModal.updateFailed")); } finally { setLoading(false); } @@ -148,33 +150,31 @@ const EditAutoRouterModal: React.FC = ({ return ( - Cancel + {t("common.cancel")} , , ]} width={1000} destroyOnHidden >
- - Edit the auto router configuration including routing logic, default models, and access settings. - + {t("editAutoRouter.editAutoRouterModal.description")}
{/* Auto Router Name */} - + {/* Router Configuration Builder */} @@ -190,28 +190,37 @@ const EditAutoRouterModal: React.FC = ({ {/* Default Model */} { setShowCustomDefaultModel(value === "custom"); }} - options={[...modelOptions, { value: "custom", label: "Enter custom model name" }]} + options={[ + ...modelOptions, + { value: "custom", label: t("editAutoRouter.editAutoRouterModal.enterCustomModelName") }, + ]} showSearch={true} /> {/* Embedding Model */} - + { setShowCustomEmbeddingModel(value === "custom"); }} - options={[...modelOptions, { value: "custom", label: "Enter custom model name" }]} + options={[ + ...modelOptions, + { value: "custom", label: t("editAutoRouter.editAutoRouterModal.enterCustomModelName") }, + ]} showSearch={true} allowClear /> @@ -220,14 +229,14 @@ const EditAutoRouterModal: React.FC = ({ {/* Model Access Groups - Admin only */} {userRole === "Admin" && ( ({ diff --git a/ui/litellm-dashboard/src/locales/en.json b/ui/litellm-dashboard/src/locales/en.json index 615b22d1412..4f48392408a 100644 --- a/ui/litellm-dashboard/src/locales/en.json +++ b/ui/litellm-dashboard/src/locales/en.json @@ -8360,5 +8360,27 @@ "filterUserId": "User ID", "filterKeyHash": "Key Hash" } + }, + "editAutoRouter": { + "editAutoRouterModal": { + "title": "Edit Auto Router Configuration", + "saveChanges": "Save Changes", + "description": "Edit the auto router configuration including routing logic, default models, and access settings.", + "fieldAutoRouterName": "Auto Router Name", + "placeholderAutoRouterName": "e.g., auto_router_1, smart_routing", + "ruleAutoRouterName": "Auto router name is required", + "fieldDefaultModel": "Default Model", + "placeholderDefaultModel": "Select a default model", + "ruleDefaultModel": "Default model is required", + "fieldEmbeddingModel": "Embedding Model", + "placeholderEmbeddingModel": "Select an embedding model (optional)", + "enterCustomModelName": "Enter custom model name", + "fieldModelAccessGroups": "Model Access Groups", + "tooltipModelAccessGroups": "Control who can access this auto router", + "placeholderModelAccessGroups": "Select existing groups or type to create new ones", + "errorLoadingConfig": "Error loading auto router configuration", + "updateSuccess": "Auto router configuration updated successfully", + "updateFailed": "Failed to update auto router configuration" + } } } diff --git a/ui/litellm-dashboard/src/locales/zh-CN.json b/ui/litellm-dashboard/src/locales/zh-CN.json index 554a373f02e..5decf917efe 100644 --- a/ui/litellm-dashboard/src/locales/zh-CN.json +++ b/ui/litellm-dashboard/src/locales/zh-CN.json @@ -8360,5 +8360,27 @@ "filterUserId": "用户 ID", "filterKeyHash": "密钥哈希" } + }, + "editAutoRouter": { + "editAutoRouterModal": { + "title": "编辑自动路由器配置", + "saveChanges": "保存更改", + "description": "编辑自动路由器配置,包括路由逻辑、默认模型和访问设置。", + "fieldAutoRouterName": "自动路由器名称", + "placeholderAutoRouterName": "例如:auto_router_1, smart_routing", + "ruleAutoRouterName": "自动路由器名称为必填项", + "fieldDefaultModel": "默认模型", + "placeholderDefaultModel": "选择默认模型", + "ruleDefaultModel": "默认模型为必填项", + "fieldEmbeddingModel": "嵌入模型", + "placeholderEmbeddingModel": "选择嵌入模型(可选)", + "enterCustomModelName": "输入自定义模型名称", + "fieldModelAccessGroups": "模型访问组", + "tooltipModelAccessGroups": "控制谁可以访问此自动路由器", + "placeholderModelAccessGroups": "选择现有组或输入以创建新组", + "errorLoadingConfig": "加载自动路由器配置时出错", + "updateSuccess": "自动路由器配置更新成功", + "updateFailed": "更新自动路由器配置失败" + } } }