refactor(i18n): support per-provider empty state and OAuth messages

This commit is contained in:
Supra4E8C
2025-12-28 17:41:25 +08:00
parent 762db81252
commit 981f7ac9b2
2 changed files with 27 additions and 11 deletions

View File

@@ -1216,6 +1216,8 @@ export function AiProvidersPage() {
onEdit: (index: number) => void,
onDelete: (item: T) => void,
addLabel: string,
emptyTitle: string,
emptyDescription: string,
deleteLabel?: string,
options?: {
getRowDisabled?: (item: T, index: number) => boolean;
@@ -1229,8 +1231,8 @@ export function AiProvidersPage() {
if (!items.length) {
return (
<EmptyState
title={t('common.info')}
description={t('ai_providers.gemini_empty_desc')}
title={emptyTitle}
description={emptyDescription}
action={
<Button onClick={() => onEdit(-1)} disabled={disableControls}>
{addLabel}
@@ -1381,6 +1383,8 @@ export function AiProvidersPage() {
(index) => openGeminiModal(index),
(item) => deleteGemini(item.apiKey),
t('ai_providers.gemini_add_button'),
t('ai_providers.gemini_empty_title'),
t('ai_providers.gemini_empty_desc'),
undefined,
{
getRowDisabled: (item) => hasDisableAllModelsRule(item.excludedModels),
@@ -1499,6 +1503,8 @@ export function AiProvidersPage() {
(index) => openProviderModal('codex', index),
(item) => deleteProviderEntry('codex', item.apiKey),
t('ai_providers.codex_add_button'),
t('ai_providers.codex_empty_title'),
t('ai_providers.codex_empty_desc'),
undefined,
{
getRowDisabled: (item) => hasDisableAllModelsRule(item.excludedModels),
@@ -1633,6 +1639,8 @@ export function AiProvidersPage() {
(index) => openProviderModal('claude', index),
(item) => deleteProviderEntry('claude', item.apiKey),
t('ai_providers.claude_add_button'),
t('ai_providers.claude_empty_title'),
t('ai_providers.claude_empty_desc'),
undefined,
{
getRowDisabled: (item) => hasDisableAllModelsRule(item.excludedModels),
@@ -1853,7 +1861,9 @@ export function AiProvidersPage() {
},
(index) => openOpenaiModal(index),
(item) => deleteOpenai(item.name),
t('ai_providers.openai_add_button')
t('ai_providers.openai_add_button'),
t('ai_providers.openai_empty_title'),
t('ai_providers.openai_empty_desc')
)}
</Card>