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": "Введите URL и нажмите ↺",
"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": {
"analyzing": "Анализ ваших заметок...",