Session tracking only ever stored a done boolean - no record of what weight or reps were actually performed, so there was no way to derive real progress data even though the dashboard implied "progress tracking" was a thing. Workout templates only hold a static planned value, not a history of performance. Adds actual_weight/actual_reps to workout_session_items, captured inline when checking off a set in a session (defaults to the workout's planned weight/reps, editable before confirming). The exercise detail page now shows the user's personal best (heaviest completed set, tie broken by reps) computed from their completed session history across all workouts containing that exercise. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
353 lines
14 KiB
PHP
353 lines
14 KiB
PHP
<?php
|
||
|
||
return [
|
||
'nav' => [
|
||
'exercises' => 'Exercises',
|
||
'yoga' => 'Yoga',
|
||
'workouts' => 'Workouts',
|
||
'blog' => 'Blog',
|
||
'build_workout' => 'Build a Workout',
|
||
'dashboard' => 'Dashboard',
|
||
'admin' => 'Admin',
|
||
'profile' => 'Profile',
|
||
'logout' => 'Log Out',
|
||
'login' => 'Log in',
|
||
'register' => 'Sign up',
|
||
'enable_dark' => 'Enable Dark Mode',
|
||
'disable_dark' => 'Disable Dark Mode',
|
||
'language' => 'Language',
|
||
'english' => 'English',
|
||
'romanian' => 'Romanian',
|
||
],
|
||
|
||
'home' => [
|
||
'badge' => 'New • Explore 1,000+ moves',
|
||
'title' => 'Discover 1,000+ Exercises. Build Your Perfect Workout.',
|
||
'subtitle' => 'Explore FitAtlas to find exercises by muscle group and equipment, then craft routines that match your goals.',
|
||
'search_placeholder' => 'Search exercises (e.g. push up, dumbbell, back)',
|
||
'search' => 'Search',
|
||
'filters' => [
|
||
'arms' => 'Arms',
|
||
'chest' => 'Chest',
|
||
'legs' => 'Legs',
|
||
'core' => 'Core',
|
||
'back' => 'Back',
|
||
],
|
||
'featured' => 'Featured Exercises',
|
||
'browse_all' => 'Browse all',
|
||
'favorites' => 'Favorites',
|
||
'favorites_desc' => 'A balanced routine targeting all major muscle groups. Suitable for most levels and easy to adapt with available equipment.',
|
||
'try_routine' => 'Try This Routine',
|
||
'features' => [
|
||
'title' => 'Everything you need to train smarter',
|
||
'subtitle' => 'Powerful tools to plan workouts, learn movements, and track your progress — all in one place.',
|
||
'items' => [
|
||
'tracking' => [
|
||
'title' => 'Session tracking',
|
||
'desc' => 'Check off exercises as you go and mark sessions complete to visualize consistency.',
|
||
],
|
||
'library' => [
|
||
'title' => 'Rich exercise library',
|
||
'desc' => 'Browse 1,000+ movements with target muscles, equipment, and clear instructions.',
|
||
],
|
||
'plans' => [
|
||
'title' => 'Custom workouts',
|
||
'desc' => 'Build routines that match your goals and available equipment.',
|
||
],
|
||
'yoga' => [
|
||
'title' => 'Yoga poses',
|
||
'desc' => 'Search and learn yoga poses by category and benefits with images.',
|
||
],
|
||
'progress' => [
|
||
'title' => 'Progress dashboard',
|
||
'desc' => 'See completion rate, recent sessions, and 30‑day activity at a glance.',
|
||
],
|
||
'community' => [
|
||
'title' => 'Personalized',
|
||
'desc' => 'Rename exercises for yourself and favorite the ones you use the most.',
|
||
],
|
||
],
|
||
],
|
||
'pricing' => [
|
||
'title' => 'Simple pricing',
|
||
'subtitle' => 'Start free. Upgrade anytime for more features.',
|
||
'cta' => 'Get started',
|
||
'plans' => [
|
||
'free' => [
|
||
'name' => 'Free',
|
||
'price' => '$0',
|
||
'period' => '/ forever',
|
||
'desc' => 'Everything you need to begin.',
|
||
'features' => [
|
||
'feature1' => 'Exercise search and filters',
|
||
'feature2' => 'Build and manage workouts',
|
||
'feature3' => 'Yoga poses browser',
|
||
'feature4' => 'Basic dashboard stats',
|
||
],
|
||
],
|
||
'pro' => [
|
||
'name' => 'Pro',
|
||
'price' => '$9',
|
||
'period' => '/ month',
|
||
'desc' => 'Deeper insights and personalization.',
|
||
'features' => [
|
||
'feature1' => 'Advanced progress analytics',
|
||
'feature2' => 'Unlimited favorites and aliases',
|
||
'feature3' => 'Priority data updates',
|
||
'feature4' => 'Early access features',
|
||
'feature5' => 'Email support',
|
||
],
|
||
],
|
||
'ultimate' => [
|
||
'name' => 'Ultimate',
|
||
'price' => '$19',
|
||
'period' => '/ month',
|
||
'desc' => 'For power users and enthusiasts.',
|
||
'features' => [
|
||
'feature1' => 'Everything in Pro',
|
||
'feature2' => 'Customization extras',
|
||
'feature3' => 'Priority support',
|
||
],
|
||
],
|
||
],
|
||
],
|
||
'faq' => [
|
||
'title' => 'Frequently asked questions',
|
||
'subtitle' => 'If you can’t find what you’re looking for, reach out and we’ll help.',
|
||
'q1' => 'Is FitAtlas free to use?',
|
||
'a1' => 'Yes. You can browse exercises, create workouts, and track sessions for free.',
|
||
'q2' => 'What is the Dashboard?',
|
||
'a2' => 'Your personal hub with stats like completion rate, recent sessions, and activity over the last 30 days.',
|
||
'q3' => 'Do you support yoga?',
|
||
'a3' => 'Yes. Browse yoga categories and poses, filter by benefits, and open detailed pages.',
|
||
'q4' => 'Can I rename exercises?',
|
||
'a4' => 'Yes. You can set custom names visible only to you on each exercise page.',
|
||
'q5' => 'Will there be a Pro plan?',
|
||
'a5' => 'Pricing is indicative. You can start free and upgrade later if you need more features.',
|
||
'q6' => 'What languages are supported?',
|
||
'a6' => 'English and Romanian. Switch with the language control in the header.',
|
||
],
|
||
],
|
||
|
||
'workouts' => [
|
||
'my_workouts' => 'My Workouts',
|
||
'manage_desc' => 'Create routines and manage your exercises.',
|
||
'new_workout' => 'New Workout',
|
||
'none_yet' => 'No workouts yet. Create your first workout.',
|
||
'open' => 'Open',
|
||
'delete' => 'Delete',
|
||
'confirm_delete' => 'Delete this workout?',
|
||
|
||
'create_title' => 'Create Workout',
|
||
'create_desc' => 'Give your workout a name and optional details.',
|
||
'title_label' => 'Title',
|
||
'estimated_minutes' => 'Estimated Minutes',
|
||
'notes' => 'Notes',
|
||
'cancel' => 'Cancel',
|
||
'create_submit' => 'Create Workout',
|
||
|
||
'back_to_workouts' => '← Back to Workouts',
|
||
'favorited' => 'Favorited',
|
||
'favorite' => 'Favorite',
|
||
'min' => 'min',
|
||
'exercises_count' => 'exercises',
|
||
'exercises' => 'Exercises',
|
||
'no_exercises_yet' => 'No exercises yet. Add your first one on the right.',
|
||
'remove_exercise_confirm' => 'Remove this exercise?',
|
||
'remove' => 'Remove',
|
||
'edit' => 'Edit',
|
||
'position_ph' => 'Position',
|
||
'sets' => 'Sets',
|
||
'reps' => 'Reps',
|
||
'weight' => 'Weight (kg)',
|
||
'rest' => 'Rest (s)',
|
||
'save' => 'Save',
|
||
'add_exercise' => 'Add Exercise',
|
||
'exercise_label' => 'Exercise',
|
||
'add_exercise_submit' => 'Add Exercise',
|
||
'rest_suffix' => 's rest',
|
||
'kg' => 'kg',
|
||
],
|
||
|
||
'exercises' => [
|
||
'browse' => 'Browse Exercises',
|
||
'browse_desc' => 'Explore the full FitAtlas library. Filter by body part, muscle, or equipment.',
|
||
'search' => 'Search',
|
||
'search_placeholder' => 'Search by name or instruction',
|
||
'body_part' => 'Body Part',
|
||
'muscle' => 'Muscle',
|
||
'equipment' => 'Equipment',
|
||
'any' => 'Any',
|
||
'reset' => 'Reset',
|
||
'apply_filters' => 'Apply Filters',
|
||
'showing' => 'Showing',
|
||
'exercises_noun' => 'exercises',
|
||
'per_page' => 'Per page',
|
||
'none_found' => 'No exercises found. Try adjusting your filters.',
|
||
'similar' => 'Similar exercises',
|
||
'similar_none' => 'No similar exercises found.',
|
||
'rename' => 'Custom name',
|
||
'rename_placeholder' => 'Your custom name for this exercise',
|
||
'rename_save' => 'Save',
|
||
'rename_reset' => 'Reset',
|
||
'renamed_success' => 'Your custom name has been saved.',
|
||
'rename_cleared' => 'Custom name cleared.',
|
||
'personal_best' => 'Your Personal Best',
|
||
'no_personal_best' => 'No completed sets logged yet. Track weight and reps when you check off a set in a session.',
|
||
],
|
||
|
||
'sessions' => [
|
||
'start' => 'Start Session',
|
||
'back_to_workout' => 'Back to workout',
|
||
'progress' => 'Progress',
|
||
'mark_complete' => 'Mark as complete',
|
||
'mark_complete_confirm' => 'Mark this session as complete?',
|
||
'no_items' => 'No exercises in this workout.',
|
||
'sets' => 'sets',
|
||
'reps' => 'reps',
|
||
'rest' => 'rest',
|
||
'completed' => 'Workout session completed! Great job!',
|
||
'exercise_timer' => 'Exercise timer',
|
||
'start_timer' => 'Start',
|
||
'stop_timer' => 'Stop',
|
||
'rest_timer' => 'Rest timer',
|
||
'start_rest' => 'Start',
|
||
'pause_rest' => 'Pause',
|
||
'reset_rest' => 'Reset',
|
||
'weight_lifted' => 'Weight',
|
||
'reps_done' => 'Reps',
|
||
],
|
||
|
||
'dashboard' => [
|
||
'title' => 'Your Dashboard',
|
||
'subtitle' => 'See your workouts and training progress at a glance.',
|
||
'metrics' => [
|
||
'workouts' => 'Workouts',
|
||
'sessions' => 'Sessions',
|
||
'completed' => 'Completed',
|
||
'completion_rate' => 'Completion rate',
|
||
],
|
||
'recent_sessions' => 'Recent Sessions',
|
||
'no_sessions' => 'No sessions yet. Start a workout to track your progress.',
|
||
'completed' => 'Completed',
|
||
'view_session' => 'View session',
|
||
'activity_30d' => 'Last 30 Days Activity',
|
||
'activity_30d_help' => 'Number of sessions per day (higher is better).',
|
||
],
|
||
|
||
'weight_log' => [
|
||
'title' => 'Body Weight',
|
||
'change_since_first' => 'Change since your first entry:',
|
||
'weight_kg' => 'Weight (kg)',
|
||
'date' => 'Date',
|
||
'log' => 'Log',
|
||
'none' => 'No weight entries yet. Log your first one to start tracking your trend.',
|
||
'saved' => 'Weight logged',
|
||
'deleted' => 'Entry deleted',
|
||
'delete' => 'Delete',
|
||
'confirm_delete' => 'Delete this entry?',
|
||
],
|
||
|
||
'admin' => [
|
||
'title' => 'Admin Dashboard',
|
||
'subtitle' => 'Manage content and see overall site statistics.',
|
||
'metrics' => [
|
||
'users' => 'Users',
|
||
'workouts' => 'Workouts',
|
||
'sessions' => 'Sessions',
|
||
'exercises' => 'Exercises',
|
||
'yoga_poses' => 'Yoga poses',
|
||
'posts' => 'Blog posts',
|
||
],
|
||
'recent_users' => 'Recent users',
|
||
'recent_workouts' => 'Recent workouts',
|
||
'none' => 'Nothing to show yet.',
|
||
'manage_workouts' => 'Manage workouts',
|
||
],
|
||
|
||
'footer' => [
|
||
'privacy' => 'Privacy Policy',
|
||
'terms' => 'Terms of Service',
|
||
'rights' => 'All rights reserved.',
|
||
],
|
||
|
||
'yoga' => [
|
||
'browse' => 'Browse Yoga Poses',
|
||
'browse_desc' => 'Explore yoga poses by category or benefits.',
|
||
'search' => 'Search',
|
||
'search_placeholder' => 'Search by English or Sanskrit name',
|
||
'category' => 'Category',
|
||
'benefit' => 'Benefit contains',
|
||
'benefit_placeholder' => 'e.g. stress, digestion',
|
||
'any' => 'Any',
|
||
'reset' => 'Reset',
|
||
'apply_filters' => 'Apply Filters',
|
||
'showing' => 'Showing',
|
||
'poses_noun' => 'poses',
|
||
'none_found' => 'No poses found. Try adjusting your filters.',
|
||
'no_image' => 'No image',
|
||
'back' => 'Back',
|
||
'description' => 'Description',
|
||
'no_description' => 'No description available.',
|
||
'benefits' => 'Benefits',
|
||
'no_benefits' => 'No documented benefits.',
|
||
'pose_info' => 'Pose Info',
|
||
'translation' => 'Translation',
|
||
'sanskrit' => 'Sanskrit',
|
||
'sanskrit_adapted' => 'Sanskrit (adapted)',
|
||
'browse_all' => 'Browse all poses',
|
||
'similar' => 'Similar poses',
|
||
'similar_none' => 'No similar poses found.',
|
||
],
|
||
|
||
'auth' => [
|
||
'register' => [
|
||
'age' => 'Age',
|
||
'weight_kg' => 'Weight (kg)',
|
||
'height_cm' => 'Height (cm)',
|
||
'fitness_level' => 'Fitness level',
|
||
'goal' => 'Primary goal',
|
||
'health_notes' => 'Health conditions or injuries',
|
||
'available_equipment' => 'Available equipment',
|
||
'available_equipment_ph' => 'e.g. dumbbells, barbell, kettlebell, bands, pull-up bar',
|
||
'days_per_week' => 'Days per week',
|
||
'minutes_per_session' => 'Minutes per session',
|
||
'select_optional' => 'Select (optional)',
|
||
'levels' => [
|
||
'beginner' => 'Beginner',
|
||
'intermediate' => 'Intermediate',
|
||
'advanced' => 'Advanced',
|
||
],
|
||
'goals' => [
|
||
'strength' => 'Strength',
|
||
'endurance' => 'Endurance',
|
||
'weight_loss' => 'Weight loss',
|
||
'hypertrophy' => 'Hypertrophy',
|
||
'mobility' => 'Mobility',
|
||
],
|
||
'steps' => [
|
||
'step1_title' => 'Create your account',
|
||
'step2_title' => 'Tell us about your fitness profile (optional)',
|
||
'next' => 'Next',
|
||
'back' => 'Back',
|
||
'register' => 'Register',
|
||
],
|
||
'consent_prefix' => 'By creating an account, you agree to our',
|
||
'consent_and' => 'and',
|
||
'is_trainer' => 'I am a trainer',
|
||
'equipment_options' => [
|
||
'dumbbells' => 'Dumbbells',
|
||
'barbell' => 'Barbell',
|
||
'kettlebell' => 'Kettlebell',
|
||
'bands' => 'Resistance bands',
|
||
'pullup_bar' => 'Pull-up bar',
|
||
'bench' => 'Bench',
|
||
'machines' => 'Gym machines',
|
||
'yoga_mat' => 'Yoga mat',
|
||
'treadmill' => 'Treadmill',
|
||
'bodyweight' => 'Bodyweight only',
|
||
],
|
||
],
|
||
],
|
||
];
|