-
Default Role
+
{t("settingsPages.roleMappings.defaultRole")}
{defaultRoleDisplayNames[roleMappings.default_role]}
diff --git a/ui/litellm-dashboard/src/components/Settings/AdminSettings/SSOSettings/SSOSettings.tsx b/ui/litellm-dashboard/src/components/Settings/AdminSettings/SSOSettings/SSOSettings.tsx
index 053da380103..afc644bb663 100644
--- a/ui/litellm-dashboard/src/components/Settings/AdminSettings/SSOSettings/SSOSettings.tsx
+++ b/ui/litellm-dashboard/src/components/Settings/AdminSettings/SSOSettings/SSOSettings.tsx
@@ -4,6 +4,7 @@ import { useSSOSettings, type SSOSettingsValues } from "@/app/(dashboard)/hooks/
import { Button, Card, Descriptions, Space, Tag, Typography } from "antd";
import { Edit, Shield, Trash2 } from "lucide-react";
import { useState } from "react";
+import { useTranslation } from "react-i18next";
import { ssoProviderDisplayNames, ssoProviderLogoMap } from "./constants";
import AddSSOSettingsModal from "./Modals/AddSSOSettingsModal";
import DeleteSSOSettingsModal from "./Modals/DeleteSSOSettingsModal";
@@ -17,6 +18,7 @@ import { detectSSOProvider } from "./utils";
const { Title, Text } = Typography;
export default function SSOSettings() {
+ const { t } = useTranslation();
const { data: ssoSettings, refetch, isLoading } = useSSOSettings();
const [isDeleteModalVisible, setIsDeleteModalVisible] = useState(false);
const [isAddModalVisible, setIsAddModalVisible] = useState(false);
@@ -37,11 +39,11 @@ export default function SSOSettings() {
);
const renderSimpleValue = (value?: string | null) =>
- value ? value :
Not configured ;
+ value ? value :
{t("settingsPages.sSOSettings.notConfigured")} ;
const renderTeamMappingsField = (values: SSOSettingsValues) => {
if (!values.team_mappings?.team_ids_jwt_field) {
- return
Not configured ;
+ return
{t("settingsPages.sSOSettings.notConfigured")} ;
}
return
{values.team_mappings.team_ids_jwt_field} ;
};
@@ -62,58 +64,70 @@ export default function SSOSettings() {
providerText: ssoProviderDisplayNames.google,
fields: [
{
- label: "Client ID",
+ label: t("settingsPages.sSOSettings.clientId"),
render: (values: SSOSettingsValues) =>
,
},
{
- label: "Client Secret",
+ label: t("settingsPages.sSOSettings.clientSecret"),
render: (values: SSOSettingsValues) =>
,
},
- { label: "Proxy Base URL", render: (values: SSOSettingsValues) => renderSimpleValue(values.proxy_base_url) },
+ {
+ label: t("settingsPages.sSOSettings.proxyBaseUrl"),
+ render: (values: SSOSettingsValues) => renderSimpleValue(values.proxy_base_url),
+ },
],
},
microsoft: {
providerText: ssoProviderDisplayNames.microsoft,
fields: [
{
- label: "Client ID",
+ label: t("settingsPages.sSOSettings.clientId"),
render: (values: SSOSettingsValues) =>
,
},
{
- label: "Client Secret",
+ label: t("settingsPages.sSOSettings.clientSecret"),
render: (values: SSOSettingsValues) =>
,
},
- { label: "Tenant", render: (values: any) => renderSimpleValue(values.microsoft_tenant) },
- { label: "Proxy Base URL", render: (values: SSOSettingsValues) => renderSimpleValue(values.proxy_base_url) },
+ {
+ label: t("settingsPages.sSOSettings.tenant"),
+ render: (values: any) => renderSimpleValue(values.microsoft_tenant),
+ },
+ {
+ label: t("settingsPages.sSOSettings.proxyBaseUrl"),
+ render: (values: SSOSettingsValues) => renderSimpleValue(values.proxy_base_url),
+ },
],
},
okta: {
providerText: ssoProviderDisplayNames.okta,
fields: [
{
- label: "Client ID",
+ label: t("settingsPages.sSOSettings.clientId"),
render: (values: SSOSettingsValues) =>
,
},
{
- label: "Client Secret",
+ label: t("settingsPages.sSOSettings.clientSecret"),
render: (values: SSOSettingsValues) =>
,
},
{
- label: "Authorization Endpoint",
+ label: t("settingsPages.sSOSettings.authorizationEndpoint"),
render: (values: SSOSettingsValues) => renderEndpointValue(values.generic_authorization_endpoint),
},
{
- label: "Token Endpoint",
+ label: t("settingsPages.sSOSettings.tokenEndpoint"),
render: (values: SSOSettingsValues) => renderEndpointValue(values.generic_token_endpoint),
},
{
- label: "User Info Endpoint",
+ label: t("settingsPages.sSOSettings.userInfoEndpoint"),
render: (values: SSOSettingsValues) => renderEndpointValue(values.generic_userinfo_endpoint),
},
- { label: "Proxy Base URL", render: (values: SSOSettingsValues) => renderSimpleValue(values.proxy_base_url) },
+ {
+ label: t("settingsPages.sSOSettings.proxyBaseUrl"),
+ render: (values: SSOSettingsValues) => renderSimpleValue(values.proxy_base_url),
+ },
isTeamMappingsEnabled
? {
- label: "Team IDs JWT Field",
+ label: t("settingsPages.sSOSettings.teamIdsJwtField"),
render: (values: SSOSettingsValues) => renderTeamMappingsField(values),
}
: null,
@@ -123,29 +137,32 @@ export default function SSOSettings() {
providerText: ssoProviderDisplayNames.generic,
fields: [
{
- label: "Client ID",
+ label: t("settingsPages.sSOSettings.clientId"),
render: (values: SSOSettingsValues) =>
,
},
{
- label: "Client Secret",
+ label: t("settingsPages.sSOSettings.clientSecret"),
render: (values: SSOSettingsValues) =>
,
},
{
- label: "Authorization Endpoint",
+ label: t("settingsPages.sSOSettings.authorizationEndpoint"),
render: (values: SSOSettingsValues) => renderEndpointValue(values.generic_authorization_endpoint),
},
{
- label: "Token Endpoint",
+ label: t("settingsPages.sSOSettings.tokenEndpoint"),
render: (values: SSOSettingsValues) => renderEndpointValue(values.generic_token_endpoint),
},
{
- label: "User Info Endpoint",
+ label: t("settingsPages.sSOSettings.userInfoEndpoint"),
render: (values: SSOSettingsValues) => renderEndpointValue(values.generic_userinfo_endpoint),
},
- { label: "Proxy Base URL", render: (values: SSOSettingsValues) => renderSimpleValue(values.proxy_base_url) },
+ {
+ label: t("settingsPages.sSOSettings.proxyBaseUrl"),
+ render: (values: SSOSettingsValues) => renderSimpleValue(values.proxy_base_url),
+ },
isTeamMappingsEnabled
? {
- label: "Team IDs JWT Field",
+ label: t("settingsPages.sSOSettings.teamIdsJwtField"),
render: (values: SSOSettingsValues) => renderTeamMappingsField(values),
}
: null,
@@ -163,7 +180,7 @@ export default function SSOSettings() {
return (
-
+
{ssoProviderLogoMap[selectedProvider] && (
-
SSO Configuration
- Manage Single Sign-On authentication settings
+ {t("settingsPages.sSOSettings.title")}
+ {t("settingsPages.sSOSettings.subtitle")}
@@ -209,14 +226,14 @@ export default function SSOSettings() {
{isSSOConfigured && (
<>
} onClick={() => setIsEditModalVisible(true)}>
- Edit SSO Settings
+ {t("settingsPages.sSOSettings.editSSOSettings")}
}
onClick={() => setIsDeleteModalVisible(true)}
>
- Delete SSO Settings
+ {t("settingsPages.sSOSettings.deleteSSOSettings")}
>
)}
diff --git a/ui/litellm-dashboard/src/components/Settings/AdminSettings/SSOSettings/SSOSettingsEmptyPlaceholder.tsx b/ui/litellm-dashboard/src/components/Settings/AdminSettings/SSOSettings/SSOSettingsEmptyPlaceholder.tsx
index fc315493a54..e135e9daec4 100644
--- a/ui/litellm-dashboard/src/components/Settings/AdminSettings/SSOSettings/SSOSettingsEmptyPlaceholder.tsx
+++ b/ui/litellm-dashboard/src/components/Settings/AdminSettings/SSOSettings/SSOSettingsEmptyPlaceholder.tsx
@@ -1,4 +1,5 @@
import { Empty, Typography, Button } from "antd";
+import { useTranslation } from "react-i18next";
const { Title, Paragraph } = Typography;
@@ -7,22 +8,23 @@ interface SSOSettingsEmptyPlaceholderProps {
}
export default function SSOSettingsEmptyPlaceholder({ onAdd }: SSOSettingsEmptyPlaceholderProps) {
+ const { t } = useTranslation();
+
return (
- No SSO Configuration Found
+ {t("settingsPages.sSOSettingsEmptyPlaceholder.noConfigTitle")}
- Configure Single Sign-On (SSO) to enable seamless authentication for your team members using your identity
- provider.
+ {t("settingsPages.sSOSettingsEmptyPlaceholder.noConfigDesc")}
}
>
- Configure SSO
+ {t("settingsPages.sSOSettingsEmptyPlaceholder.configureButton")}
diff --git a/ui/litellm-dashboard/src/components/Settings/AdminSettings/SSOSettings/SSOSettingsLoadingSkeleton.tsx b/ui/litellm-dashboard/src/components/Settings/AdminSettings/SSOSettings/SSOSettingsLoadingSkeleton.tsx
index 59e34f255e3..dd4f12e2349 100644
--- a/ui/litellm-dashboard/src/components/Settings/AdminSettings/SSOSettings/SSOSettingsLoadingSkeleton.tsx
+++ b/ui/litellm-dashboard/src/components/Settings/AdminSettings/SSOSettings/SSOSettingsLoadingSkeleton.tsx
@@ -2,9 +2,11 @@
import { Card, Descriptions, Skeleton, Space, Typography } from "antd";
import { Shield } from "lucide-react";
+import { useTranslation } from "react-i18next";
const { Title, Text } = Typography;
export default function SSOSettingsLoadingSkeleton() {
+ const { t } = useTranslation();
const descriptionsConfig = {
column: {
xxl: 1,
@@ -24,8 +26,8 @@ export default function SSOSettingsLoadingSkeleton() {
diff --git a/ui/litellm-dashboard/src/components/Settings/AdminSettings/UISettings/PageVisibilitySettings.tsx b/ui/litellm-dashboard/src/components/Settings/AdminSettings/UISettings/PageVisibilitySettings.tsx
index 9cfe4e7ccc7..a7cee0d20e2 100644
--- a/ui/litellm-dashboard/src/components/Settings/AdminSettings/UISettings/PageVisibilitySettings.tsx
+++ b/ui/litellm-dashboard/src/components/Settings/AdminSettings/UISettings/PageVisibilitySettings.tsx
@@ -63,15 +63,15 @@ export default function PageVisibilitySettings({
@@ -359,10 +371,10 @@ export default function UISettings() {
disabled={isUpdating}
loading={isUpdating}
onChange={handleToggleDisableAgents}
- aria-label={disableAgentsProperty?.description ?? "Disable agents for internal users"}
+ aria-label={disableAgentsProperty?.description ?? t("settingsPages.uISettings.disableAgentsLabel")}
/>