feat: add password confirmation to register + fix i18n hardcoded strings

- Add confirmPassword field to registration form with Zod validation
- Replace ~30 hardcoded French/English strings in admin-settings-form
  with proper t() i18n calls (Ollama models, Custom models, search test)
- Extract SettingsHeader to client component for i18n support
- Add 15 i18n keys to all 15 locale files (auth + admin.ai + admin.tools)
- Remove debug "Config value" line from embeddings section

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
2026-04-26 19:59:38 +02:00
parent bbaae76103
commit e358171c45
20 changed files with 385 additions and 114 deletions

View File

@@ -26,7 +26,9 @@
"sending": "Sending...",
"sendResetLink": "Send Reset Link",
"backToLogin": "Back to login",
"signOut": "Sign out"
"signOut": "Sign out",
"confirmPassword": "Confirm Password",
"confirmPasswordPlaceholder": "Confirm your password"
},
"sidebar": {
"notes": "Notes",
@@ -721,7 +723,17 @@
"providerCustomOption": "🔧 Custom OpenAI-Compatible",
"bestValue": "Best value",
"bestQuality": "Best quality",
"saved": "(Saved)"
"saved": "(Saved)",
"fetchModelsFailed": "Failed to fetch models",
"refreshModels": "Refresh Models",
"configured": "Configured",
"fetchingModels": "Fetching models...",
"clickToLoadModels": "Click ↺ to load models",
"searchModel": "Search model...",
"noModels": "No models. Click ↺",
"modelsAvailable": "{count} model(s) available",
"enterUrlToLoad": "Enter URL and click ↺ to load models",
"currentProvider": "(Current: {provider})"
},
"resend": {
"title": "Resend (Recommended)",
@@ -859,8 +871,11 @@
"jinaKeyDescription": "Used for web scraping. Works without a key but with rate limits.",
"saveSettings": "Save Tools Settings",
"updateSuccess": "Tools settings updated successfully",
"updateFailed": "Failed to update tools settings"
}
"updateFailed": "Failed to update tools settings",
"testing": "Testing...",
"testSearch": "Test web search"
},
"settingsDescription": "Configure application-wide settings"
},
"about": {
"title": "About",