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

@@ -71,7 +71,17 @@
"providerCustomOption": "🔧 سفارشی سازگار با OpenAI",
"saved": "(ذخیره شد)",
"chatProvider": "ارائه‌دهنده چت",
"chatDescription": "ارائه‌دهنده هوش مصنوعی برای دستیار چت. در صورت عدم پیکربندی، به ارائه‌دهنده برچسب‌ها بازمی‌گردد."
"chatDescription": "ارائه‌دهنده هوش مصنوعی برای دستیار چت. در صورت عدم پیکربندی، به ارائه‌دهنده برچسب‌ها بازمی‌گردد.",
"fetchModelsFailed": "دریافت مدل‌ها ناموفق بود",
"refreshModels": "بازنشانی مدل‌ها",
"configured": "پیکربندی شده",
"fetchingModels": "در حال دریافت مدل‌ها...",
"clickToLoadModels": "برای بارگذاری مدل‌ها روی ↺ کلیک کنید",
"searchModel": "جستجوی مدل...",
"noModels": "مدلی وجود ندارد. روی ↺ کلیک کنید",
"modelsAvailable": "{count} مدل در دسترس",
"enterUrlToLoad": "آدرس را وارد کرده و روی ↺ کلیک کنید",
"currentProvider": "(فعلی: {provider})"
},
"aiTest": {
"description": "تست ارائه‌دهندگان هوش مصنوعی برای تولید برچسب و تعبیه‌های جستجوی معنایی",
@@ -217,8 +227,11 @@
"jinaKeyDescription": "برای استخراج وب استفاده می‌شود. بدون کلید کار می‌کند اما با محدودیت نرخ.",
"saveSettings": "ذخیره تنظیمات ابزارها",
"updateSuccess": "تنظیمات ابزارها با موفقیت به‌روزرسانی شد",
"updateFailed": "شکست در به‌روزرسانی تنظیمات ابزارها"
}
"updateFailed": "شکست در به‌روزرسانی تنظیمات ابزارها",
"testing": "در حال تست...",
"testSearch": "تست جستجوی وب"
},
"settingsDescription": "پیکربندی تنظیمات کلی برنامه"
},
"ai": {
"analyzing": "در حال تحلیل هوش مصنوعی...",
@@ -368,7 +381,9 @@
"signIn": "ورود",
"signInToAccount": "به حساب کاربری خود وارد شوید",
"signOut": "خروج از حساب",
"signUp": "ثبت‌نام"
"signUp": "ثبت‌نام",
"confirmPassword": "تکرار رمز عبور",
"confirmPasswordPlaceholder": "رمز عبور را دوباره وارد کنید"
},
"autoLabels": {
"aiPowered": "قدرت گرفته از هوش مصنوعی",