Backend (FastAPI): - App factory with async SQLAlchemy 2.0 + PostgreSQL - Alembic migration for users and sessions tables - JWT auth (access + refresh tokens, bcrypt passwords) - Auth endpoints: register, login, refresh, logout, me - Admin seed script, role-based access deps Frontend (React + TypeScript): - Vite + Tailwind CSS + shadcn/ui theme (health-oriented palette) - i18n with English and Russian translations - Zustand auth/UI stores with localStorage persistence - Axios client with automatic token refresh on 401 - Login/register pages, protected routing - App layout: collapsible sidebar, header with theme/language toggles - Dashboard with placeholder stats Infrastructure: - Docker Compose (postgres, backend, frontend, nginx) - Nginx reverse proxy with WebSocket support - Dev override with hot reload Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
58 lines
2.3 KiB
JSON
58 lines
2.3 KiB
JSON
{
|
||
"auth": {
|
||
"login": "Войти",
|
||
"register": "Регистрация",
|
||
"email": "Email",
|
||
"password": "Пароль",
|
||
"confirmPassword": "Подтвердите пароль",
|
||
"username": "Имя пользователя",
|
||
"fullName": "Полное имя",
|
||
"rememberMe": "Запомнить меня",
|
||
"submit": "Отправить",
|
||
"noAccount": "Нет аккаунта?",
|
||
"hasAccount": "Уже есть аккаунт?",
|
||
"loginTitle": "С возвращением",
|
||
"loginSubtitle": "Войдите в свой аккаунт",
|
||
"registerTitle": "Создать аккаунт",
|
||
"registerSubtitle": "Начните работу с персональным ИИ-ассистентом",
|
||
"errors": {
|
||
"invalidCredentials": "Неверный email или пароль",
|
||
"emailExists": "Пользователь с таким email или именем уже существует",
|
||
"passwordMismatch": "Пароли не совпадают",
|
||
"passwordMinLength": "Пароль должен содержать минимум 8 символов",
|
||
"usernameFormat": "Имя пользователя: 3-50 символов (буквы, цифры, _ или -)",
|
||
"required": "Это поле обязательно"
|
||
}
|
||
},
|
||
"layout": {
|
||
"dashboard": "Главная",
|
||
"chats": "Чаты",
|
||
"documents": "Документы",
|
||
"memory": "Память",
|
||
"notifications": "Уведомления",
|
||
"profile": "Профиль",
|
||
"logout": "Выйти",
|
||
"settings": "Настройки",
|
||
"admin": "Администрирование",
|
||
"users": "Пользователи",
|
||
"context": "Контекст",
|
||
"skills": "Навыки"
|
||
},
|
||
"dashboard": {
|
||
"welcome": "Добро пожаловать, {{name}}",
|
||
"subtitle": "Ваш персональный ИИ-ассистент по здоровью"
|
||
},
|
||
"common": {
|
||
"loading": "Загрузка...",
|
||
"error": "Произошла ошибка",
|
||
"notFound": "Страница не найдена",
|
||
"goHome": "На главную",
|
||
"save": "Сохранить",
|
||
"cancel": "Отмена",
|
||
"delete": "Удалить",
|
||
"edit": "Редактировать",
|
||
"create": "Создать",
|
||
"search": "Поиск"
|
||
}
|
||
}
|