From e8915831dc459991dde21722bcea5ee10592d800 Mon Sep 17 00:00:00 2001 From: paisley <8197966+su8su@users.noreply.github.com> Date: Fri, 13 Feb 2026 17:42:52 +0800 Subject: [PATCH] feat: localize custom provider name and ollama placeholder (#75) --- src/components/settings/ProvidersSettings.tsx | 14 +++++++------- src/i18n/locales/en/settings.json | 2 ++ src/i18n/locales/ja/settings.json | 2 ++ src/i18n/locales/zh/settings.json | 2 ++ src/pages/Setup/index.tsx | 12 ++++++------ 5 files changed, 19 insertions(+), 13 deletions(-) diff --git a/src/components/settings/ProvidersSettings.tsx b/src/components/settings/ProvidersSettings.tsx index 15e5b935e..bc59826e0 100644 --- a/src/components/settings/ProvidersSettings.tsx +++ b/src/components/settings/ProvidersSettings.tsx @@ -328,7 +328,7 @@ function ProviderCard({
setNewKey(e.target.value)} className="pr-10 h-9 text-sm" @@ -482,7 +482,7 @@ function AddProviderDialog({ existingTypes, onClose, onAdd, onValidateKey }: Add await onAdd( selectedType, - name || typeInfo?.name || selectedType, + name || (typeInfo?.id === 'custom' ? t('aiProviders.custom') : typeInfo?.name) || selectedType, apiKey.trim(), { baseUrl: baseUrl.trim() || undefined, @@ -513,7 +513,7 @@ function AddProviderDialog({ existingTypes, onClose, onAdd, onValidateKey }: Add key={type.id} onClick={() => { setSelectedType(type.id); - setName(type.name); + setName(type.id === 'custom' ? t('aiProviders.custom') : type.name); setBaseUrl(type.defaultBaseUrl || ''); setModelId(type.defaultModelId || ''); }} @@ -524,7 +524,7 @@ function AddProviderDialog({ existingTypes, onClose, onAdd, onValidateKey }: Add ) : ( {type.icon} )} -

{type.name}

+

{type.id === 'custom' ? t('aiProviders.custom') : type.name}

))}
@@ -537,7 +537,7 @@ function AddProviderDialog({ existingTypes, onClose, onAdd, onValidateKey }: Add {typeInfo?.icon} )}
-

{typeInfo?.name}

+

{typeInfo?.id === 'custom' ? t('aiProviders.custom') : typeInfo?.name}

@@ -964,7 +964,7 @@ function ProviderContent({ ) : ( {p.icon} )} - {p.name}{p.model ? ` — ${p.model}` : ''} + {p.id === 'custom' ? t('settings:aiProviders.custom') : p.name}{p.model ? ` — ${p.model}` : ''} {isSelected && } @@ -1527,7 +1527,7 @@ interface CompleteContentProps { } function CompleteContent({ selectedProvider, installedSkills }: CompleteContentProps) { - const { t } = useTranslation('setup'); + const { t } = useTranslation(['setup', 'settings']); const gatewayStatus = useGatewayStore((state) => state.status); const providerData = providers.find((p) => p.id === selectedProvider); @@ -1548,7 +1548,7 @@ function CompleteContent({ selectedProvider, installedSkills }: CompleteContentP
{t('complete.provider')} - {providerData ? {getProviderIconUrl(providerData.id) ? {providerData.name} : providerData.icon} {providerData.name} : '—'} + {providerData ? {getProviderIconUrl(providerData.id) ? {providerData.name} : providerData.icon} {providerData.id === 'custom' ? t('settings:aiProviders.custom') : providerData.name} : '—'}