Забыли пароль?

Пароль должен содержать минимум 6 символов
Пароль должен содержать буквы и цифры
Пароли не совпадают

Генерируются ([[ generatingTasks.filter(t => t.status === 'pending' || t.status === 'processing').length ]])

[[ task.request_text | truncate(50) ]]

[[ task.duration_days ]] дней • [[ getTaskStatusText(task.status) ]]

[[ task.progress_message || '' ]]
[[ task.error_message ]]

[[ dashboardStats.total_courses || 0 ]]

Всего курсов

[[ dashboardStats.total_days_completed || 0 ]]

Дней завершено

[[ dashboardStats.total_time_spent || 0 ]]

Минут изучения

[[ dashboardStats.current_streak || 0 ]]

Дней подряд

Активные курсы

[[ course.title ]]

Активен
[[ Math.round(course.progress?.completion_rate || 0) ]]%
[[ course.progress?.completed_days || 0 ]]/[[ course.progress?.total_days || 0 ]] дней

Нет активных курсов

Доступ к курсам открыт по подписке "Базовый" и выше

Достижения

[[ getAchievementName(ach.achievement_type) ]]

[[ formatDate(ach.earned_at) ]]

Пока нет достижений

Доступ к курсам открыт по подписке "Базовый" и выше

[[ course.title ]]

[[ truncate(course.description, 100) ]]

[[ getCourseProgress(course) ]]%

У вас пока нет курсов

Доступ к витрине курсов открыт по подписке "Базовый" и выше

Рекомендуемый

[[ template.title ]]

[[ truncate(template.description, 120) ]]

[[ template.duration_days ]] дней [[ getDifficultyText(template.difficulty_level) ]]

Курсы не найдены

ИИ генерация курсов доступна по подписке "Базовый + ИИ"

Создать персональный курс

ИИ создаст индивидуальный план обучения под ваши цели

[[ user.first_name ]] [[ user.last_name ]]

[[ user.email ]]

Имя пользователя: [[ user.username || '—' ]]
Дата рождения: [[ user.birth_date || '—' ]]
Статус: [[ user.status === 'active' ? 'Активен' : 'Не активен' ]]
Email подтвержден: [[ user.email_verified ? '✅ Да' : '❌ Нет' ]]

Подписка

Доступен пробный период

15 дней бесплатного доступа ко всем функциям (PREMIUM уровень)

Пробный период уже был использован

[[ subscription.plan_name ]] [[ getSubscriptionStatusBadge(subscription.status) ]]
[[ getSubscriptionStatusText(subscription.status) ]]
Доступ к задачам и таймеру
Доступ к курсам и витрине
Доступ к курсам и витрине
ИИ генерация персональных курсов
ИИ генерация персональных курсов
Активирован: [[ formatDate(subscription.trial_started_at) ]]
Заканчивается: [[ formatDate(subscription.trial_ends_at) ]]
Осталось [[ getDaysLeft(subscription.trial_ends_at) ]] дней
Действует с: [[ formatDate(subscription.started_at) ]]
Заканчивается: [[ formatDate(subscription.ends_at) ]]
Осталось [[ getDaysLeft(subscription.ends_at) ]] дней
[[ taskStats.completed || 0 ]]
Выполнено
[[ taskStats.in_progress || 0 ]]
В процессе
[[ taskStats.pending || 0 ]]
Ожидают
[[ formatTime(taskStats.total_time_spent || 0) ]]
Всего времени
[[ tag.name ]]

Нет тегов. Создайте их для фильтрации задач.

Добавить новую задачу...
[[ t.title ]]
[[ getPriorityText(t.priority) ]]
[[ tag.name ]]
[[ t.description ]]
План: [[ formatTime(t.estimated_minutes) ]] • Факт: [[ formatTime(t.actual_minutes) ]] Время не задано
[[ formatDate(t.due_date) ]]

[[ showArchivedTasks ? 'Архив пуст' : 'Нет задач' ]]

Раздел "Здоровье" доступен только в подписке "Базовый + ИИ"

[[ healthData.weight_data && healthData.weight_data.length ? healthData.weight_data[healthData.weight_data.length - 1].value + ' кг' : '—' ]]

Текущий вес

[[ healthData.food_summary ? healthData.food_summary.total_calories : 0 ]]

Калорий сегодня

[[ healthData.water ? healthData.water.total_ml : 0 ]] мл

Воды выпито

[[ healthData.workout_stats ? healthData.workout_stats.total_workouts : 0 ]]

Тренировок за 30 дн.

Динамика веса

Настроение

Энергия

Потребление калорий

Последние тренировки

[[ formatDate(w.workout_date) ]]
[[ w.workout_type ]]
[[ w.duration_minutes ]] мин [[ w.calories_burned ]] ккал [[ getIntensityText(w.intensity) ]]
Заполнить данные за сегодня

Питание

[[ formatDate(nutritionDate) ]]
[[ nutritionSummary.total_calories ]]
Калории
[[ nutritionSummary.total_protein ]]г
Белки
[[ nutritionSummary.total_fats ]]г
Жиры
[[ nutritionSummary.total_carbs ]]г
Углеводы

Приёмы пищи

[[ entry.calories ]] ккал

Нет записей о питании

Мои продукты

[[ product.name ]] [[ product.calories_per_100g ]] ккал / 100г

Физическая активность

[[ workoutStats.total_workouts ]]

Всего тренировок

[[ workoutStats.total_minutes ]]

Минут за 30 дней

[[ workoutStats.total_calories_burned ]]

Ккал сожжено

[[ formatDate(w.workout_date) ]] [[ getIntensityText(w.intensity) ]]

[[ w.workout_type ]]

[[ w.duration_minutes ]] мин [[ w.calories_burned ]] ккал

[[ w.notes ]]

Нет записей о тренировках

Замеры тела

Грудь
[[ measurements.chest || '—' ]] см [[ getChangeText(measurements.chest, measurements.previous.chest) ]]
Талия
[[ measurements.waist || '—' ]] см [[ getChangeText(measurements.waist, measurements.previous.waist) ]]
Бёдра
[[ measurements.hips || '—' ]] см [[ getChangeText(measurements.hips, measurements.previous.hips) ]]
Бицепс
[[ measurements.biceps || '—' ]] см [[ getChangeText(measurements.biceps, measurements.previous.biceps) ]]
Бедро
[[ measurements.thigh || '—' ]] см [[ getChangeText(measurements.thigh, measurements.previous.thigh) ]]
Икра
[[ measurements.calf || '—' ]] см [[ getChangeText(measurements.calf, measurements.previous.calf) ]]

Нет данных о замерах

История замеров

[[ formatDate(m.measurement_date) ]]
Грудь: [[ m.chest ]] см Талия: [[ m.waist ]] см Бёдра: [[ m.hips ]] см Бицепс: [[ m.biceps ]] см Бедро: [[ m.thigh ]] см Икра: [[ m.calf ]] см

Динамика замеров

Трекер воды

[[ waterData.percentage ]]%

[[ waterData.total_ml ]] / [[ waterData.target_ml ]] мл

Осталось: [[ Math.max(0, waterData.target_ml - waterData.total_ml) ]] мл

Сегодня

Нет записей за сегодня

Витрина рецептов

Рекомендуемый

[[ recipe.title ]]

[[ truncate(recipe.description, 100) ]]

[[ recipe.calories_per_serving ]] ккал [[ recipe.cooking_time_minutes ]] мин [[ getDifficultyText(recipe.difficulty) ]]

Рецепты не найдены