diff --git a/src/public/index.html b/src/public/index.html index ce356e7..3325fff 100644 --- a/src/public/index.html +++ b/src/public/index.html @@ -991,7 +991,7 @@
- +
@@ -1016,7 +1016,7 @@
- +
@@ -2700,6 +2700,7 @@ async function loadMeal() { function renderMeal(el) { var d = mealData; + var mealTypeNames = { breakfast:'Kahvalti', snack:'Ara Ogun', lunch:'Ogle Yemegi', pre_workout:'Antrenman Oncesi', post_workout:'Antrenman Sonrasi', dinner:'Aksam Yemegi' }; var html = ''; // Diet type badge @@ -2779,7 +2780,7 @@ function renderMeal(el) { html += '
'; d.meals.forEach(function(m) { html += '
'; - html += '
' + (m.type || '') + '
'; + html += '
' + (mealTypeNames[m.type] || m.type || '') + '
'; html += '
' + (m.name || '') + '
'; html += '
'; html += '' + (m.calories || 0) + ' kcal'; diff --git a/src/services/dietitian.js b/src/services/dietitian.js index 75cfe1f..44ae845 100644 --- a/src/services/dietitian.js +++ b/src/services/dietitian.js @@ -178,120 +178,120 @@ function getMedicalAdjustments(profile) { if (profile.has_diabetes) { adjustments.push({ - condition: "Diabetes", + condition: "Diyabet", actions: [ - "Prioritizing low glycemic index foods", - "Limiting added sugars and refined carbs", - "Balanced carb distribution across meals to prevent spikes", - "Including fiber-rich foods for blood sugar stability", + "Dusuk glisemik indeksli gidalar onceliklendiriliyor", + "Eklenmis sekerler ve rafine karbonhidratlar sinirlandiriliyor", + "Seker sivramalarini onlemek icin karbonhidratlar ogunlere dengeli dagildi", + "Kan sekeri dengesi icin lifli gidalar dahil ediliyor", ], }); } if (profile.heart_condition) { adjustments.push({ - condition: "Heart Condition", + condition: "Kalp Rahatsizligi", actions: [ - "Sodium limited to under 1500mg daily", - "Emphasis on heart-healthy unsaturated fats", - "Omega-3 rich foods prioritized", - "Avoiding trans fats and excessive saturated fat", + "Sodyum gunluk 1500mg altinda tutuluyor", + "Kalp dostu doymamis yaglara agirlik veriliyor", + "Omega-3 zengini gidalar onceliklendiriliyor", + "Trans yaglar ve asiri doymus yaglardan kaciniliyor", ], }); } if (profile.blood_pressure === "high") { adjustments.push({ - condition: "High Blood Pressure", + condition: "Yuksek Tansiyon", actions: [ - "Following DASH diet principles", - "Low sodium meals selected", - "Potassium-rich foods included", - "Limiting processed foods", + "DASH diyeti ilkeleri uygulaniyorr", + "Dusuk sodyumlu ogunler seciliyor", + "Potasyum zengini gidalar dahil ediliyor", + "Islenmis gidalar sinirlandiriliyor", ], }); } if (profile.has_arthritis) { adjustments.push({ - condition: "Arthritis", + condition: "Artrit", actions: [ - "Anti-inflammatory foods prioritized", - "Omega-3 fatty acid rich meals", - "Turmeric and ginger included where possible", - "Avoiding processed and fried foods", + "Anti-enflamatuar gidalar onceliklendiriliyor", + "Omega-3 yag asidi zengini ogunler", + "Mumkun olan yerlerde zerdecal ve zencefil dahil ediliyor", + "Islenmis ve kizartilmis gidalardan kaciniliyor", ], }); } if (profile.has_osteoporosis) { adjustments.push({ - condition: "Osteoporosis", + condition: "Osteoporoz", actions: [ - "High calcium foods included", - "Vitamin D rich foods prioritized", - "Limiting excessive caffeine", - "Adequate protein for bone maintenance", + "Yuksek kalsiyumlu gidalar dahil ediliyor", + "D vitamini zengini gidalar onceliklendiriliyor", + "Asiri kafein tuketimi sinirlandiriliyor", + "Kemik sagligi icin yeterli protein saglaniyor", ], }); } if (profile.has_fibromyalgia) { adjustments.push({ - condition: "Fibromyalgia", + condition: "Fibromiyalji", actions: [ - "Anti-inflammatory diet approach", - "Avoiding processed foods and artificial additives", - "Gluten reduction considered", - "Magnesium-rich foods included", + "Anti-enflamatuar beslenme yaklasimi", + "Islenmis gidalar ve yapay katki maddelerinden kaciniliyor", + "Gluten azaltimi degerlendiriliyor", + "Magnezyum zengini gidalar dahil ediliyor", ], }); } if (profile.has_thyroid) { adjustments.push({ - condition: "Thyroid Condition", + condition: "Tiroid Rahatsizligi", actions: [ - "Iodine-aware food selection", - "Selenium-rich foods included", - "Limiting soy products if hypothyroid", - "Avoiding excessive cruciferous vegetables raw", + "Iyot icerigi dikkate alinarak gida secimi yapiliyor", + "Selenyum zengini gidalar dahil ediliyor", + "Hipotiroidide soya urunleri sinirlandiriliyor", + "Asiri cig cruciferous sebze tuketiminden kaciniliyor", ], }); } if (profile.cholesterol_level === "high") { adjustments.push({ - condition: "High Cholesterol", + condition: "Yuksek Kolesterol", actions: [ - "Low saturated fat meals selected", - "High soluble fiber foods included", - "Plant sterol sources prioritized", - "Oat and legume-based meals favored", + "Dusuk doymus yag iceren ogunler seciliyor", + "Yuksek cozunur lif iceren gidalar dahil ediliyor", + "Bitkisel sterol kaynaklari onceliklendiriliyor", + "Yulaf ve baklagil bazli ogunler tercih ediliyor", ], }); } if (profile.has_asthma) { adjustments.push({ - condition: "Asthma", + condition: "Astim", actions: [ - "Anti-inflammatory foods included", - "Vitamin D rich foods prioritized", - "Magnesium-rich foods for bronchial relaxation", - "Avoiding sulfites and common triggers", + "Anti-enflamatuar gidalar dahil ediliyor", + "D vitamini zengini gidalar onceliklendiriliyor", + "Bronsiyal gevseme icin magnezyum zengini gidalar", + "Sulfitlerden ve yaygin tetikleyicilerden kaciniliyor", ], }); } if (profile.mental_health && profile.mental_health !== "none") { adjustments.push({ - condition: "Mental Health Support", + condition: "Ruh Sagligi Destegi", actions: [ - "Omega-3 fatty acid rich meals", - "B vitamin sources included", - "Probiotic and fermented foods for gut-brain axis", - "Tryptophan-rich foods for serotonin support", + "Omega-3 yag asidi zengini ogunler", + "B vitamini kaynaklari dahil ediliyor", + "Bagirsak-beyin ekseni icin probiyotik ve fermente gidalar", + "Serotonin destegi icin triptofan zengini gidalar", ], }); } @@ -309,25 +309,25 @@ function getSupplements(profile, dietType) { supplements.push({ name: "Multivitamin", dosage: "1 tablet daily", - rationale: "Baseline nutritional insurance for any dietary plan", + rationale: "Her beslenme plani icin temel besin sigortasi", }); supplements.push({ name: "Vitamin D3", dosage: "1000-2000 IU daily", - rationale: "Supports bone health, immune function, and mood regulation", + rationale: "Kemik sagligi, bagisiklik sistemi ve ruh hali duzenlemesini destekler", }); if ((profile.goal || "").split(",").map((s) => s.trim()).includes("build_muscle") || dietType === "high_protein") { supplements.push({ name: "Whey Protein (or plant-based protein)", dosage: "25-30g post-workout", - rationale: "Supports muscle protein synthesis and recovery", + rationale: "Kas protein sentezini ve toparlanmayi destekler", }); supplements.push({ name: "Creatine Monohydrate", dosage: "5g daily", - rationale: "Improves strength output and muscle cell hydration", + rationale: "Guc ciktisini ve kas hucresi hidrasyonunu arttirir", }); } @@ -335,18 +335,18 @@ function getSupplements(profile, dietType) { supplements.push({ name: "Omega-3 Fish Oil", dosage: "2000-3000mg EPA/DHA daily", - rationale: "Potent anti-inflammatory, reduces joint pain and stiffness", + rationale: "Guclu anti-enflamatuar, eklem agrisi ve sertligini azaltir", }); supplements.push({ name: "Turmeric/Curcumin", dosage: "500-1000mg with piperine daily", - rationale: "Natural anti-inflammatory, enhances joint comfort", + rationale: "Dogal anti-enflamatuar, eklem rahatligi saglar", }); } else { supplements.push({ name: "Omega-3 Fish Oil", dosage: "1000mg EPA/DHA daily", - rationale: "Supports heart health, brain function, and reduces inflammation", + rationale: "Kalp sagligi, beyin fonksiyonu destekler ve iltihaplanmayi azaltir", }); } @@ -354,12 +354,12 @@ function getSupplements(profile, dietType) { supplements.push({ name: "Calcium", dosage: "500-600mg twice daily", - rationale: "Essential for bone density maintenance and prevention of fractures", + rationale: "Kemik yogunlugu korunmasi ve kirik onlenmesi icin gereklidir", }); supplements.push({ name: "Vitamin K2", dosage: "100mcg daily", - rationale: "Directs calcium to bones rather than arteries", + rationale: "Kalsiyumu damarlar yerine kemiklere yonlendirir", }); } @@ -367,12 +367,12 @@ function getSupplements(profile, dietType) { supplements.push({ name: "Chromium Picolinate", dosage: "200mcg daily", - rationale: "May improve insulin sensitivity and glucose metabolism", + rationale: "Insulin duyarliligini ve glukoz metabolizmasini iyilestirebilir", }); supplements.push({ name: "Alpha-Lipoic Acid", dosage: "300-600mg daily", - rationale: "Antioxidant that supports nerve health and blood sugar regulation", + rationale: "Sinir sagligi ve kan sekeri duzenlemesini destekleyen antioksidan", }); } @@ -380,12 +380,12 @@ function getSupplements(profile, dietType) { supplements.push({ name: "Magnesium Glycinate", dosage: "400mg daily", - rationale: "Supports healthy blood pressure and cardiovascular function", + rationale: "Saglikli kan basinci ve kardiyovaskuler fonksiyonu destekler", }); supplements.push({ name: "CoQ10", dosage: "100-200mg daily", - rationale: "Supports heart muscle energy production and overall cardiac health", + rationale: "Kalp kasi enerji uretimini ve genel kalp sagligini destekler", }); } @@ -393,7 +393,7 @@ function getSupplements(profile, dietType) { supplements.push({ name: "Selenium", dosage: "200mcg daily", - rationale: "Critical for thyroid hormone conversion and gland protection", + rationale: "Tiroid hormonu donusumu ve bez korumasi icin kritik oneme sahiptir", }); } @@ -401,12 +401,12 @@ function getSupplements(profile, dietType) { supplements.push({ name: "B-Complex", dosage: "1 capsule daily", - rationale: "Supports neurotransmitter production, energy, and mood stability", + rationale: "Norotransmiter uretimi, enerji ve ruh hali dengesini destekler", }); supplements.push({ name: "Probiotic", dosage: "10-20 billion CFU daily", - rationale: "Gut-brain axis support for mood and cognitive function", + rationale: "Ruh hali ve bilissel fonksiyon icin bagirsak-beyin ekseni destegi", }); } @@ -414,17 +414,17 @@ function getSupplements(profile, dietType) { supplements.push({ name: "Vitamin B12", dosage: "1000mcg daily", - rationale: "Essential nutrient not available in plant foods, prevents deficiency", + rationale: "Bitkisel gidalarda bulunmayan temel besin ogeleri, eksikligi onler", }); supplements.push({ name: "Iron (plant-based form)", dosage: "18mg daily with vitamin C", - rationale: "Plant-based diets may be lower in bioavailable iron", + rationale: "Bitkisel beslenme biyoyararlanilabirdemiracesindan dusuk olabilir", }); supplements.push({ name: "Zinc", dosage: "15mg daily", - rationale: "Lower bioavailability from plant sources, supports immunity", + rationale: "Bitkisel kaynaklardan dusuk biyoyararlanilabirlik, bagisikligi destekler", }); } @@ -432,12 +432,12 @@ function getSupplements(profile, dietType) { supplements.push({ name: "Plant Sterols/Stanols", dosage: "2g daily", - rationale: "Clinically shown to reduce LDL cholesterol absorption", + rationale: "LDL kolesterol emilimini azalttigi klinik olarak kanitlanmistir", }); supplements.push({ name: "Psyllium Husk Fiber", dosage: "5-10g daily", - rationale: "Soluble fiber binds cholesterol in the gut for excretion", + rationale: "Cozunur lif bagirsakta kolesterolu baglayarak atilimini saglar", }); } @@ -3099,19 +3099,28 @@ function scaleMeal(meal, targetCalories) { // 7-DAY MEAL PLAN GENERATION // ============================================================================ -const DAY_NAMES = ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday"]; +const DAY_NAMES = ["Pazartesi", "Sali", "Carsamba", "Persembe", "Cuma", "Cumartesi", "Pazar"]; const DIET_TYPE_LABELS = { - balanced: "Balanced Nutrition", - mediterranean: "Mediterranean", - high_protein: "High-Protein", - low_carb: "Low-Carb", - plant_based: "Plant-Based", - anti_inflammatory: "Anti-Inflammatory", - heart_healthy: "Heart-Healthy (DASH)", - diabetic_friendly: "Diabetic-Friendly", - calorie_deficit: "Calorie-Deficit", - recovery_gentle: "Recovery / Gentle", + balanced: "Dengeli Beslenme", + mediterranean: "Akdeniz", + high_protein: "Yuksek Protein", + low_carb: "Dusuk Karbonhidrat", + plant_based: "Bitkisel", + anti_inflammatory: "Anti-Enflamatuar", + heart_healthy: "Kalp Dostu (DASH)", + diabetic_friendly: "Diyabet Dostu", + calorie_deficit: "Kalori Acigi", + recovery_gentle: "Toparlanma / Hafif", +}; + +const MEAL_TYPE_LABELS = { + breakfast: "Kahvalti", + snack: "Ara Ogun", + lunch: "Ogle Yemegi", + pre_workout: "Antrenman Oncesi", + post_workout: "Antrenman Sonrasi", + dinner: "Aksam Yemegi", }; function generateDietPlan(profile) { @@ -3237,6 +3246,7 @@ function generateDietPlan(profile) { dayMeals.push({ type: slot.type, + type_label: MEAL_TYPE_LABELS[slot.type] || slot.type, name: scaled.name, calories: scaled.calories, protein: scaled.protein, @@ -3270,41 +3280,54 @@ function generateDietPlan(profile) { // Build notes const notes = []; if (isNonExerciser) { - notes.push("Plan adjusted for sedentary lifestyle - no pre/post workout meals included."); - notes.push("Focus on nutrient-dense, fiber-rich meals for satiety without excess calories."); - notes.push("Consider adding light daily walking (20-30 min) for overall health."); + notes.push("Plan hareketsiz yasam tarzina gore ayarlandi - antrenman oncesi/sonrasi ogunler dahil edilmedi."); + notes.push("Fazla kalori almadan tokluk icin besin degeri yuksek, lif zengini ogunlere odaklanin."); + notes.push("Genel saglik icin gunluk hafif yuruyus (20-30 dk) eklemeyi dusunun."); } if (goal === "lose_weight") { - notes.push("Calorie deficit of approximately 500 kcal applied for gradual, sustainable weight loss."); - notes.push("Aim for 0.5-1 kg of weight loss per week. Adjust if progress stalls after 2 weeks."); + notes.push("Kademeli ve surdurulebilir kilo kaybi icin yaklasik 500 kcal kalori acigi uygulandi."); + notes.push("Haftada 0.5-1 kg kilo kaybi hedefleyin. 2 hafta sonra ilerleme durursa ayarlayin."); } if (goal === "build_muscle") { - notes.push("Caloric surplus of 300 kcal to support lean muscle growth."); - notes.push("Distribute protein intake evenly across all meals for optimal muscle protein synthesis."); + notes.push("Yagsiz kas buyumesini desteklemek icin 300 kcal kalori fazlasi uygulandi."); + notes.push("Optimal kas protein sentezi icin protein alimini tum ogunlere esit dagitir."); } if (medicalAdjustments.length > 0) { - notes.push("Medical conditions have been factored into food selection and macro distribution."); - notes.push("Always consult your healthcare provider before making significant dietary changes."); + notes.push("Tibbi durumlar gida secimi ve makro dagitiminda dikkate alindi."); + notes.push("Onemli beslenme degisiklikleri yapmadan once her zaman saglik uzmaniniza danisin."); + } + notes.push(`Gunluk en az ${waterIntake}L su icin.`); + notes.push("Ogun porsiyonlari gunluk kalori hedeflerinizi karsilayacak sekilde olceklendirilmistir."); + notes.push("Hazirlama sureleri tahminidir - hafta sonlari toplu pisirme onemli olcude zaman kazandirir."); + + // Flatten all days' meals into a single array for frontend compatibility + const allMeals = []; + for (const day of days) { + for (const meal of day.meals) { + allMeals.push({ ...meal, day: day.day, day_name: day.day_name }); + } } - notes.push(`Drink at least ${waterIntake}L of water daily.`); - notes.push("Meal portions are scaled to meet your daily calorie targets."); - notes.push("Prep times are estimates - batch cooking on weekends can save significant time."); return { - title: `7-Day ${DIET_TYPE_LABELS[dietType] || "Balanced"} Nutrition Plan`, + title: `7 Gunluk ${DIET_TYPE_LABELS[dietType] || "Dengeli Beslenme"} Beslenme Plani`, diet_type: dietType, - duration: "7 days", + duration: "7 gun", bmr, tdee, daily_calories: dailyCalories, daily_macros: dailyMacros, + macros: { + protein_g: dailyMacros.protein, + carbs_g: dailyMacros.carbs, + fat_g: dailyMacros.fat, + }, body_metrics: { bmi, weight, height, age, gender, - body_fat_percentage: bodyFat || "not provided", + body_fat_percentage: bodyFat || "belirtilmedi", bmr_methods_used: bodyFat > 0 ? "Mifflin-St Jeor, Harris-Benedict, Katch-McArdle, Cunningham (averaged)" : "Mifflin-St Jeor, Harris-Benedict (averaged)", @@ -3312,9 +3335,11 @@ function generateDietPlan(profile) { }, medical_adjustments: medicalAdjustments, water_intake: waterIntake, + recommended_water_liters: waterIntake, supplements, notes, days, + meals: allMeals, }; } diff --git a/src/services/shopping.js b/src/services/shopping.js index 1e89e12..cf168d4 100644 --- a/src/services/shopping.js +++ b/src/services/shopping.js @@ -109,15 +109,15 @@ function generateShoppingList(mealPlan) { } const categories = { - protein: { name: "Protein Sources", icon: "πŸ₯©", items: [] }, - dairy: { name: "Dairy", icon: "πŸ§€", items: [] }, - vegetables: { name: "Vegetables", icon: "πŸ₯¬", items: [] }, - fruits: { name: "Fruits", icon: "🍎", items: [] }, - grains: { name: "Grains & Legumes", icon: "🌾", items: [] }, - fats_nuts: { name: "Fats & Nuts", icon: "πŸ₯œ", items: [] }, - spices: { name: "Spices & Condiments", icon: "πŸ§‚", items: [] }, - beverages: { name: "Beverages", icon: "πŸ₯€", items: [] }, - other: { name: "Other", icon: "πŸ“¦", items: [] }, + protein: { name: "Protein Kaynaklari", icon: "πŸ₯©", items: [] }, + dairy: { name: "Sut Urunleri", icon: "πŸ§€", items: [] }, + vegetables: { name: "Sebzeler", icon: "πŸ₯¬", items: [] }, + fruits: { name: "Meyveler", icon: "🍎", items: [] }, + grains: { name: "Tahillar & Baklagiller", icon: "🌾", items: [] }, + fats_nuts: { name: "Yaglar & Kuruyemisler", icon: "πŸ₯œ", items: [] }, + spices: { name: "Baharatlar & Soslar", icon: "πŸ§‚", items: [] }, + beverages: { name: "Icecekler", icon: "πŸ₯€", items: [] }, + other: { name: "Diger", icon: "πŸ“¦", items: [] }, }; for (const data of Object.values(ingredientMap)) { @@ -142,8 +142,8 @@ function generateShoppingList(mealPlan) { } return { - title: "Weekly Shopping List", - note: "This list is based on your 7-day meal plan.", + title: "Haftalik Alisveris Listesi", + note: "Bu liste 7 gunluk beslenme planiniza dayanmaktadir.", categories: result, total_items: Object.values(ingredientMap).length, }; diff --git a/src/services/trainer.js b/src/services/trainer.js index 9790ae9..74ee945 100644 --- a/src/services/trainer.js +++ b/src/services/trainer.js @@ -183,10 +183,10 @@ const DAYS_TR = ["Pazartesi", "Sali", "Carsamba", "Persembe", "Cuma", "Cumartesi // Mesocycle configuration (4-week progression) // ───────────────────────────────────────────────────────────────────────────── const MESOCYCLE = { - 1: { phase: "Foundation", intensity_multiplier: 1.0, volume_multiplier: 1.0, description: "Foundation week - focus on form and technique" }, - 2: { phase: "Progression", intensity_multiplier: 1.05, volume_multiplier: 1.0, description: "+5% intensity increase" }, - 3: { phase: "Overreach", intensity_multiplier: 1.10, volume_multiplier: 1.0, description: "+10% intensity increase" }, - 4: { phase: "Deload", intensity_multiplier: 0.85, volume_multiplier: 0.6, description: "Deload week - volume reduced 40%, recovery focus" }, + 1: { phase: "Temel", intensity_multiplier: 1.0, volume_multiplier: 1.0, description: "Temel hafta - form ve teknik odakli" }, + 2: { phase: "Ilerleme", intensity_multiplier: 1.05, volume_multiplier: 1.0, description: "+%5 yogunluk artisi" }, + 3: { phase: "Yuklenme", intensity_multiplier: 1.10, volume_multiplier: 1.0, description: "+%10 yogunluk artisi" }, + 4: { phase: "Deload", intensity_multiplier: 0.85, volume_multiplier: 0.6, description: "Deload haftasi - hacim %40 azaltildi, toparlanma odakli" }, }; // ───────────────────────────────────────────────────────────────────────────── @@ -298,101 +298,101 @@ const DESK_MOBILITY = [ // ───────────────────────────────────────────────────────────────────────────── const LIGHT_ACTIVITY_PLANS = { standard: [ - { day: 1, name: "Day 1 - Walking & Breathing", type: "light_activity", focus: "Cardiovascular & Stress Relief", estimated_duration: 30, estimated_calories: 80, activities: [ - { name: "Brisk Walking", name_tr: "Tempolu Yuruyus", duration: "20 minutes", gif: gifUrl("Brisk Walking"), instructions: ["Walk at comfortable but brisk pace", "Swing arms naturally", "Breathe rhythmically"], notes: "Target 3000-4000 steps" }, - { name: "Diaphragmatic Breathing", name_tr: "Diyafram Nefesi", duration: "5 minutes", gif: gifUrl("Diaphragmatic Breathing"), instructions: ["Sit or lie comfortably", "Breathe in through nose 4 seconds", "Hold 4 seconds", "Exhale through mouth 6 seconds"], notes: "Stress relief and relaxation" }, - { name: "Gentle Full Body Stretch", name_tr: "Hafif Tum Vucut Germe", duration: "5 minutes", gif: gifUrl("Gentle Full Body Stretch"), instructions: ["Stretch neck, shoulders, arms, back, legs", "Hold each stretch 15-20 seconds", "No bouncing"], notes: "Improve flexibility" }, + { day: 1, name: "Gun 1 - Yuruyus & Nefes", type: "light_activity", focus: "Kardiyovaskuler & Stres Giderme", estimated_duration: 30, estimated_calories: 80, activities: [ + { name: "Tempolu Yuruyus", name_tr: "Tempolu Yuruyus", duration: "20 dakika", gif: gifUrl("Brisk Walking"), instructions: ["Rahat ama tempolu yuruyun", "Kollarinizi dogal sallayin", "Ritmik nefes alin"], notes: "Hedef 3000-4000 adim" }, + { name: "Diyafram Nefesi", name_tr: "Diyafram Nefesi", duration: "5 dakika", gif: gifUrl("Diaphragmatic Breathing"), instructions: ["Rahatca oturun veya uzanin", "Burundan 4 saniye nefes alin", "4 saniye tutun", "Agizdan 6 saniye verin"], notes: "Stres giderme ve rahatlama" }, + { name: "Hafif Tum Vucut Germe", name_tr: "Hafif Tum Vucut Germe", duration: "5 dakika", gif: gifUrl("Gentle Full Body Stretch"), instructions: ["Boyun, omuz, kol, sirt, bacak gerin", "Her germeyi 15-20 saniye tutun", "Ziplama yapmayin"], notes: "Esnekligi gelistirin" }, ] }, - { day: 2, name: "Day 2 - Mobility & Stretching", type: "light_activity", focus: "Flexibility & Joint Health", estimated_duration: 25, estimated_calories: 50, activities: [ - { name: "Joint Circles", name_tr: "Eklem Civirleri", duration: "5 minutes", gif: gifUrl("Joint Circles"), instructions: ["Circle ankles, knees, hips, shoulders, wrists", "10 circles each direction", "Gentle and controlled"], notes: "Warm up all joints" }, - { name: "Yoga-Inspired Stretching", name_tr: "Yoga Tarzinda Germe", duration: "15 minutes", gif: gifUrl("Yoga Stretching"), instructions: ["Cat-cow stretch", "Child's pose", "Downward dog or modified version", "Seated forward fold", "Gentle twist"], notes: "Focus on breathing and relaxation" }, - { name: "Box Breathing", name_tr: "Kutu Nefesi", duration: "5 minutes", gif: gifUrl("Box Breathing"), instructions: ["Breathe in 4 seconds", "Hold 4 seconds", "Breathe out 4 seconds", "Hold 4 seconds"], notes: "Calming technique" }, + { day: 2, name: "Gun 2 - Mobilite & Germe", type: "light_activity", focus: "Esneklik & Eklem Sagligi", estimated_duration: 25, estimated_calories: 50, activities: [ + { name: "Eklem Civirleri", name_tr: "Eklem Civirleri", duration: "5 dakika", gif: gifUrl("Joint Circles"), instructions: ["Ayak bilegi, diz, kalca, omuz, bilek civirleri yapin", "Her yone 10 civir", "Yumusak ve kontrollΓΌ"], notes: "Tum eklemleri isitma" }, + { name: "Yoga Tarzinda Germe", name_tr: "Yoga Tarzinda Germe", duration: "15 dakika", gif: gifUrl("Yoga Stretching"), instructions: ["Kedi-inek germesi", "Cocuk pozu", "Asagi bakan kopek veya modifiye versiyon", "Oturarak one egilme", "Hafif bΓΌkΓΌlme"], notes: "Nefes ve rahatlamaya odaklanin" }, + { name: "Kutu Nefesi", name_tr: "Kutu Nefesi", duration: "5 dakika", gif: gifUrl("Box Breathing"), instructions: ["4 saniye nefes alin", "4 saniye tutun", "4 saniye nefes verin", "4 saniye tutun"], notes: "Sakinlestirici teknik" }, ] }, - { day: 3, name: "Day 3 - Light Walk & Core", type: "light_activity", focus: "Walking & Core Stability", estimated_duration: 30, estimated_calories: 70, activities: [ - { name: "Outdoor or Indoor Walking", name_tr: "Yuruyus", duration: "15 minutes", gif: gifUrl("Walking"), instructions: ["Moderate pace", "Focus on posture", "Keep shoulders back"], notes: "Target 2000-3000 steps" }, - { name: "Gentle Core Work", name_tr: "Hafif Core Calismasi", duration: "10 minutes", gif: gifUrl("Gentle Core Work"), instructions: ["Dead bugs 10 each side", "Bird dog 10 each side", "Gentle pelvic tilts 15 reps", "Modified plank 15-20 seconds"], notes: "Low intensity core activation" }, - { name: "Progressive Muscle Relaxation", name_tr: "Kademeli Kas Gevsetme", duration: "5 minutes", gif: gifUrl("Progressive Muscle Relaxation"), instructions: ["Tense each muscle group 5 seconds", "Release and relax 10 seconds", "Work from toes to head"], notes: "Stress and tension relief" }, + { day: 3, name: "Gun 3 - Hafif Yuruyus & Core", type: "light_activity", focus: "Yuruyus & Core Stabilitesi", estimated_duration: 30, estimated_calories: 70, activities: [ + { name: "Dis veya Ic Mekan Yuruyusu", name_tr: "Yuruyus", duration: "15 dakika", gif: gifUrl("Walking"), instructions: ["Orta tempo", "Durusa odaklanin", "Omuzlari geride tutun"], notes: "Hedef 2000-3000 adim" }, + { name: "Hafif Core Calismasi", name_tr: "Hafif Core Calismasi", duration: "10 dakika", gif: gifUrl("Gentle Core Work"), instructions: ["Dead bug her taraf 10 tekrar", "Bird dog her taraf 10 tekrar", "Hafif pelvik tilt 15 tekrar", "Modifiye plank 15-20 saniye"], notes: "Dusuk yogunluklu core aktivasyonu" }, + { name: "Kademeli Kas Gevsetme", name_tr: "Kademeli Kas Gevsetme", duration: "5 dakika", gif: gifUrl("Progressive Muscle Relaxation"), instructions: ["Her kas grubunu 5 saniye kasin", "Birakin ve 10 saniye gevsetin", "Ayak parmaklarindan basa dogru calisin"], notes: "Stres ve gerilim giderme" }, ] }, - { day: 4, name: "Day 4 - Rest & Breathing", type: "light_activity", focus: "Recovery & Mental Wellness", estimated_duration: 20, estimated_calories: 30, activities: [ - { name: "Gentle Walking", name_tr: "Hafif Yuruyus", duration: "10 minutes", gif: gifUrl("Gentle Walking"), instructions: ["Very easy pace", "Focus on environment", "Practice mindful walking"], notes: "Light movement only" }, - { name: "4-7-8 Breathing", name_tr: "4-7-8 Nefes", duration: "5 minutes", gif: gifUrl("4-7-8 Breathing"), instructions: ["Inhale through nose 4 seconds", "Hold breath 7 seconds", "Exhale through mouth 8 seconds", "Repeat 4-8 cycles"], notes: "Promotes relaxation and sleep quality" }, - { name: "Gentle Neck & Shoulder Release", name_tr: "Boyun ve Omuz Gevsetme", duration: "5 minutes", gif: gifUrl("Neck Shoulder Release"), instructions: ["Neck tilts each direction", "Shoulder rolls forward and back", "Shoulder shrugs and release"], notes: "Release common tension areas" }, + { day: 4, name: "Gun 4 - Dinlenme & Nefes", type: "light_activity", focus: "Toparlanma & Zihinsel Saglik", estimated_duration: 20, estimated_calories: 30, activities: [ + { name: "Hafif Yuruyus", name_tr: "Hafif Yuruyus", duration: "10 dakika", gif: gifUrl("Gentle Walking"), instructions: ["Cok yavas tempo", "Cevrenizdeki seylere odaklanin", "BilinΓ§li yuruyus yapin"], notes: "Sadece hafif hareket" }, + { name: "4-7-8 Nefes", name_tr: "4-7-8 Nefes", duration: "5 dakika", gif: gifUrl("4-7-8 Breathing"), instructions: ["Burundan 4 saniye nefes alin", "7 saniye nefesinizi tutun", "Agizdan 8 saniye nefes verin", "4-8 dΓΆngΓΌ tekrarlayin"], notes: "Rahatlama ve uyku kalitesini arttirir" }, + { name: "Boyun ve Omuz Gevsetme", name_tr: "Boyun ve Omuz Gevsetme", duration: "5 dakika", gif: gifUrl("Neck Shoulder Release"), instructions: ["Her yone boyun egilmeleri", "Ileri geri omuz civirma", "Omuz kaldirma ve birakmalar"], notes: "Yaygin gerilim bolgelerini gevsetin" }, ] }, - { day: 5, name: "Day 5 - Walking & Flexibility", type: "light_activity", focus: "Cardiovascular & Stretching", estimated_duration: 30, estimated_calories: 75, activities: [ - { name: "Brisk Walking", name_tr: "Tempolu Yuruyus", duration: "20 minutes", gif: gifUrl("Brisk Walking"), instructions: ["Moderate to brisk pace", "Include some hills or inclines if possible", "Maintain good posture"], notes: "Target 3000-4000 steps" }, - { name: "Standing Stretches", name_tr: "Ayakta Germe", duration: "10 minutes", gif: gifUrl("Standing Stretches"), instructions: ["Calf stretch against wall", "Quad stretch holding chair", "Hamstring stretch on step", "Side bend stretch", "Chest opener stretch"], notes: "Focus on areas that feel tight" }, + { day: 5, name: "Gun 5 - Yuruyus & Esneklik", type: "light_activity", focus: "Kardiyovaskuler & Germe", estimated_duration: 30, estimated_calories: 75, activities: [ + { name: "Tempolu Yuruyus", name_tr: "Tempolu Yuruyus", duration: "20 dakika", gif: gifUrl("Brisk Walking"), instructions: ["Orta-hizli tempo", "Mumkunse yokuslar dahil edin", "Iyi durusu koruyun"], notes: "Hedef 3000-4000 adim" }, + { name: "Ayakta Germe", name_tr: "Ayakta Germe", duration: "10 dakika", gif: gifUrl("Standing Stretches"), instructions: ["Duvara yaslanarak baldΔ±r germesi", "Sandalye tutarak quadriceps germesi", "Basamakta hamstring germesi", "Yana egilme germesi", "Gogus acma germesi"], notes: "SΔ±kΔ± hissedilen bolgelere odaklanin" }, ] }, - { day: 6, name: "Day 6 - Mobility & Balance", type: "light_activity", focus: "Balance & Joint Mobility", estimated_duration: 25, estimated_calories: 50, activities: [ - { name: "Balance Exercises", name_tr: "Denge Egzersizleri", duration: "10 minutes", gif: gifUrl("Balance Exercises"), instructions: ["Single leg stand 30 seconds each", "Heel-to-toe walk", "Standing weight shifts", "Tandem stance"], notes: "Improve stability and proprioception" }, - { name: "Seated Mobility Flow", name_tr: "Oturarak Mobilite", duration: "10 minutes", gif: gifUrl("Seated Mobility Flow"), instructions: ["Seated spinal twist", "Seated hip circles", "Ankle circles", "Wrist circles", "Shoulder rolls"], notes: "Full body joint mobility from chair" }, - { name: "Deep Breathing Cool-Down", name_tr: "Derin Nefes Soguma", duration: "5 minutes", gif: gifUrl("Deep Breathing"), instructions: ["Belly breathing", "Long slow exhales", "Close eyes if comfortable"], notes: "End with relaxation" }, + { day: 6, name: "Gun 6 - Mobilite & Denge", type: "light_activity", focus: "Denge & Eklem Mobilitesi", estimated_duration: 25, estimated_calories: 50, activities: [ + { name: "Denge Egzersizleri", name_tr: "Denge Egzersizleri", duration: "10 dakika", gif: gifUrl("Balance Exercises"), instructions: ["Tek bacak durma her taraf 30 saniye", "Topuk-parmak yuruyusu", "Ayakta agirlik aktarma", "Tandem durus"], notes: "Stabilite ve propriyosepsiyonu gelistirin" }, + { name: "Oturarak Mobilite Akisi", name_tr: "Oturarak Mobilite", duration: "10 dakika", gif: gifUrl("Seated Mobility Flow"), instructions: ["Oturarak omurga bΓΌkΓΌlmesi", "Oturarak kalca civirleri", "Ayak bilegi civirleri", "Bilek civirleri", "Omuz civirma"], notes: "Sandalyeden tum vucut eklem mobilitesi" }, + { name: "Derin Nefes Soguma", name_tr: "Derin Nefes Soguma", duration: "5 dakika", gif: gifUrl("Deep Breathing"), instructions: ["Karin nefesi", "Uzun yavas nefes verme", "Rahatsa gozlerinizi kapatΔ±n"], notes: "Rahatlamayla bitirin" }, ] }, - { day: 7, name: "Day 7 - Rest & Recovery", type: "light_activity", focus: "Complete Rest & Self-Care", estimated_duration: 15, estimated_calories: 20, activities: [ - { name: "Gentle Walk", name_tr: "Hafif Yuruyus", duration: "10 minutes", gif: gifUrl("Gentle Walk"), instructions: ["Very easy pace", "Enjoy the environment", "No intensity targets"], notes: "Optional - only if you feel up to it" }, - { name: "Body Scan Meditation", name_tr: "Vucut Tarama Meditasyonu", duration: "5 minutes", gif: gifUrl("Body Scan Meditation"), instructions: ["Lie down or sit comfortably", "Mentally scan from toes to head", "Notice sensations without judgment", "Breathe into any tense areas"], notes: "Mindfulness and recovery" }, + { day: 7, name: "Gun 7 - Dinlenme & Toparlanma", type: "light_activity", focus: "Tam Dinlenme & Oz Bakim", estimated_duration: 15, estimated_calories: 20, activities: [ + { name: "Hafif Yuruyus", name_tr: "Hafif Yuruyus", duration: "10 dakika", gif: gifUrl("Gentle Walk"), instructions: ["Cok kolay tempo", "Cevrenin tadini cikarin", "Yogunluk hedefi yok"], notes: "Istege bagli - sadece kendinizi hazir hissediyorsaniz" }, + { name: "Vucut Tarama Meditasyonu", name_tr: "Vucut Tarama Meditasyonu", duration: "5 dakika", gif: gifUrl("Body Scan Meditation"), instructions: ["Uzanin veya rahatca oturun", "Ayak parmaklarindan basa zihinsel tarama yapin", "Yargilamadan hislere dikkat edin", "Gergin bolgelere nefes gonderin"], notes: "Farkindalik ve toparlanma" }, ] }, ], wheelchair: [ - { day: 1, name: "Day 1 - Upper Body Seated", type: "light_activity", focus: "Seated Upper Body Movement", estimated_duration: 25, estimated_calories: 50, activities: [ - { name: "Seated Arm Circles", name_tr: "Oturarak Kol Civirme", duration: "5 minutes", gif: gifUrl("Seated Arm Circles"), instructions: ["Small circles forward 20 reps", "Small circles backward 20 reps", "Large circles forward 10 reps", "Large circles backward 10 reps"], notes: "Warm up shoulders" }, - { name: "Seated Chest Press Motion", name_tr: "Oturarak Gogus Press", duration: "10 minutes", gif: gifUrl("Seated Chest Press Motion"), instructions: ["Push hands forward from chest", "Light resistance band if available", "15-20 reps, 2-3 sets", "Rest 30 seconds between sets"], notes: "Upper body strengthening" }, - { name: "Seated Deep Breathing", name_tr: "Oturarak Derin Nefes", duration: "5 minutes", gif: gifUrl("Seated Deep Breathing"), instructions: ["Sit tall", "Breathe deeply into belly", "Exhale slowly", "Focus on posture"], notes: "Respiratory health" }, - { name: "Upper Body Stretch", name_tr: "Ust Vucut Germe", duration: "5 minutes", gif: gifUrl("Upper Body Stretch"), instructions: ["Overhead reach", "Cross-body shoulder stretch", "Triceps stretch", "Chest opener"], notes: "Flexibility maintenance" }, + { day: 1, name: "Gun 1 - Oturarak Ust Vucut", type: "light_activity", focus: "Oturarak Ust Vucut Hareketi", estimated_duration: 25, estimated_calories: 50, activities: [ + { name: "Oturarak Kol Civirme", name_tr: "Oturarak Kol Civirme", duration: "5 dakika", gif: gifUrl("Seated Arm Circles"), instructions: ["Ileri kucuk daireler 20 tekrar", "Geri kucuk daireler 20 tekrar", "Ileri buyuk daireler 10 tekrar", "Geri buyuk daireler 10 tekrar"], notes: "Omuzlari isitma" }, + { name: "Oturarak Gogus Press Hareketi", name_tr: "Oturarak Gogus Press", duration: "10 dakika", gif: gifUrl("Seated Chest Press Motion"), instructions: ["Elleri gogΓΌsten ileri itin", "Varsa hafif direnΓ§ bandi kullanin", "15-20 tekrar, 2-3 set", "Setler arasi 30 saniye dinlenme"], notes: "Ust vucut guclenme" }, + { name: "Oturarak Derin Nefes", name_tr: "Oturarak Derin Nefes", duration: "5 dakika", gif: gifUrl("Seated Deep Breathing"), instructions: ["Dik oturun", "Karna dogru derin nefes alin", "Yavasca nefes verin", "Durusa odaklanin"], notes: "Solunum sagligi" }, + { name: "Ust Vucut Germe", name_tr: "Ust Vucut Germe", duration: "5 dakika", gif: gifUrl("Upper Body Stretch"), instructions: ["Basa dogru uzanma", "Capraz omuz germesi", "Triceps germesi", "Gogus acma"], notes: "Esneklik bakimi" }, ] }, - { day: 2, name: "Day 2 - Breathing & Mobility", type: "light_activity", focus: "Respiratory & Joint Health", estimated_duration: 20, estimated_calories: 30, activities: [ - { name: "Breathing Exercises", name_tr: "Nefes Egzersizleri", duration: "10 minutes", gif: gifUrl("Breathing Exercises"), instructions: ["Pursed lip breathing 2 min", "Diaphragmatic breathing 3 min", "Box breathing 5 min"], notes: "Lung capacity and relaxation" }, - { name: "Seated Joint Mobility", name_tr: "Oturarak Eklem Mobilitesi", duration: "10 minutes", gif: gifUrl("Seated Joint Mobility"), instructions: ["Wrist circles", "Elbow flexion/extension", "Shoulder rolls", "Neck rotations", "Trunk rotations"], notes: "Maintain joint range of motion" }, + { day: 2, name: "Gun 2 - Nefes & Mobilite", type: "light_activity", focus: "Solunum & Eklem Sagligi", estimated_duration: 20, estimated_calories: 30, activities: [ + { name: "Nefes Egzersizleri", name_tr: "Nefes Egzersizleri", duration: "10 dakika", gif: gifUrl("Breathing Exercises"), instructions: ["BΓΌzΓΌk dudak nefesi 2 dk", "Diyafram nefesi 3 dk", "Kutu nefesi 5 dk"], notes: "Akciger kapasitesi ve rahatlama" }, + { name: "Oturarak Eklem Mobilitesi", name_tr: "Oturarak Eklem Mobilitesi", duration: "10 dakika", gif: gifUrl("Seated Joint Mobility"), instructions: ["Bilek civirleri", "Dirsek bΓΌkme/acma", "Omuz civirma", "Boyun rotasyonlari", "Govde rotasyonlari"], notes: "Eklem hareket acikligini koruyun" }, ] }, - { day: 3, name: "Day 3 - Light Resistance", type: "light_activity", focus: "Seated Resistance Training", estimated_duration: 25, estimated_calories: 45, activities: [ - { name: "Seated Band Rows", name_tr: "Oturarak Bantli Row", duration: "8 minutes", gif: gifUrl("Seated Band Rows"), instructions: ["Anchor band at chest height", "Pull toward torso", "Squeeze shoulder blades", "12-15 reps, 2 sets"], notes: "Back strengthening" }, - { name: "Seated Band Press", name_tr: "Oturarak Bantli Press", duration: "8 minutes", gif: gifUrl("Seated Band Press"), instructions: ["Band behind back", "Press forward", "12-15 reps, 2 sets"], notes: "Chest and arm strengthening" }, - { name: "Seated Core Activation", name_tr: "Oturarak Core Aktivasyonu", duration: "5 minutes", gif: gifUrl("Seated Core Activation"), instructions: ["Seated pelvic tilts", "Seated trunk rotation", "Seated side bends"], notes: "Core stability" }, - { name: "Cool-Down Stretching", name_tr: "Soguma Germe", duration: "4 minutes", gif: gifUrl("Seated Stretching"), instructions: ["Stretch all worked muscle groups", "Hold 20-30 seconds each"], notes: "Recovery" }, + { day: 3, name: "Gun 3 - Hafif Direnc", type: "light_activity", focus: "Oturarak Direnc Antrenmani", estimated_duration: 25, estimated_calories: 45, activities: [ + { name: "Oturarak Bantli Row", name_tr: "Oturarak Bantli Row", duration: "8 dakika", gif: gifUrl("Seated Band Rows"), instructions: ["Bandi gogus hizasinda sabitleyin", "Govdeye dogru cekin", "Kurek kemiklerini sikin", "12-15 tekrar, 2 set"], notes: "Sirt guclendirme" }, + { name: "Oturarak Bantli Press", name_tr: "Oturarak Bantli Press", duration: "8 dakika", gif: gifUrl("Seated Band Press"), instructions: ["Band sirtin arkasinda", "Ileri itin", "12-15 tekrar, 2 set"], notes: "Gogus ve kol guclendirme" }, + { name: "Oturarak Core Aktivasyonu", name_tr: "Oturarak Core Aktivasyonu", duration: "5 dakika", gif: gifUrl("Seated Core Activation"), instructions: ["Oturarak pelvik tilt", "Oturarak govde rotasyonu", "Oturarak yana egilme"], notes: "Core stabilitesi" }, + { name: "Soguma Germe", name_tr: "Soguma Germe", duration: "4 dakika", gif: gifUrl("Seated Stretching"), instructions: ["Calisan tum kas gruplarini gerin", "Her birini 20-30 saniye tutun"], notes: "Toparlanma" }, ] }, - { day: 4, name: "Day 4 - Rest & Recovery", type: "light_activity", focus: "Mental Wellness", estimated_duration: 15, estimated_calories: 15, activities: [ - { name: "Guided Breathing", name_tr: "Rehberli Nefes", duration: "10 minutes", gif: gifUrl("Guided Breathing"), instructions: ["Follow 4-7-8 pattern", "Focus on complete relaxation"], notes: "Stress management" }, - { name: "Gentle Stretching", name_tr: "Hafif Germe", duration: "5 minutes", gif: gifUrl("Gentle Stretching"), instructions: ["Only stretch what feels comfortable", "No pushing into pain"], notes: "Light recovery" }, + { day: 4, name: "Gun 4 - Dinlenme & Toparlanma", type: "light_activity", focus: "Zihinsel Saglik", estimated_duration: 15, estimated_calories: 15, activities: [ + { name: "Rehberli Nefes", name_tr: "Rehberli Nefes", duration: "10 dakika", gif: gifUrl("Guided Breathing"), instructions: ["4-7-8 kalibini takip edin", "Tam rahatlamaya odaklanin"], notes: "Stres yonetimi" }, + { name: "Hafif Germe", name_tr: "Hafif Germe", duration: "5 dakika", gif: gifUrl("Gentle Stretching"), instructions: ["Sadece rahat hissettiren bolgeleri gerin", "Agriya zorlamayin"], notes: "Hafif toparlanma" }, ] }, - { day: 5, name: "Day 5 - Seated Cardio", type: "light_activity", focus: "Cardiovascular Health", estimated_duration: 25, estimated_calories: 55, activities: [ - { name: "Seated Arm Ergometer / Air Punches", name_tr: "Oturarak Kol Kardiyosu", duration: "15 minutes", gif: gifUrl("Seated Arm Cardio"), instructions: ["Alternating arm punches", "Arm cranking motion", "Overhead reaches", "Keep moderate pace"], notes: "Elevate heart rate safely" }, - { name: "Seated Torso Twists", name_tr: "Oturarak Govde Dondurmesi", duration: "5 minutes", gif: gifUrl("Seated Torso Twists"), instructions: ["Rotate torso left and right", "Arms at chest level", "Controlled movement"], notes: "Core engagement" }, - { name: "Cool-Down", name_tr: "Soguma", duration: "5 minutes", gif: gifUrl("Seated Cool Down"), instructions: ["Slow arm movements", "Deep breathing", "Gentle stretching"], notes: "Gradual recovery" }, + { day: 5, name: "Gun 5 - Oturarak Kardiyo", type: "light_activity", focus: "Kardiyovaskuler Saglik", estimated_duration: 25, estimated_calories: 55, activities: [ + { name: "Oturarak Kol Kardiyosu", name_tr: "Oturarak Kol Kardiyosu", duration: "15 dakika", gif: gifUrl("Seated Arm Cardio"), instructions: ["Sirayla kol yumruklari", "Kol cevirme hareketi", "Basa dogru uzanmalar", "Orta tempoyu koruyun"], notes: "Kalp atisini guvenle yukseltin" }, + { name: "Oturarak Govde Dondurmesi", name_tr: "Oturarak Govde Dondurmesi", duration: "5 dakika", gif: gifUrl("Seated Torso Twists"), instructions: ["Govdeyi saga sola cevirme", "Kollar gogus seviyesinde", "KontrollΓΌ hareket"], notes: "Core aktivasyonu" }, + { name: "Soguma", name_tr: "Soguma", duration: "5 dakika", gif: gifUrl("Seated Cool Down"), instructions: ["Yavas kol hareketleri", "Derin nefes", "Hafif germe"], notes: "Kademeli toparlanma" }, ] }, - { day: 6, name: "Day 6 - Flexibility Focus", type: "light_activity", focus: "Stretching & Relaxation", estimated_duration: 20, estimated_calories: 25, activities: [ - { name: "Comprehensive Seated Stretch", name_tr: "Kapsamli Oturarak Germe", duration: "15 minutes", gif: gifUrl("Comprehensive Seated Stretch"), instructions: ["Neck stretches all directions", "Shoulder stretches", "Chest opener", "Trunk side bends", "Wrist stretches", "Hip flexor stretch if possible"], notes: "Full body flexibility" }, - { name: "Meditation", name_tr: "Meditasyon", duration: "5 minutes", gif: gifUrl("Seated Meditation"), instructions: ["Close eyes", "Focus on breathing", "Let thoughts pass without engagement"], notes: "Mental wellness" }, + { day: 6, name: "Gun 6 - Esneklik Odakli", type: "light_activity", focus: "Germe & Rahatlama", estimated_duration: 20, estimated_calories: 25, activities: [ + { name: "Kapsamli Oturarak Germe", name_tr: "Kapsamli Oturarak Germe", duration: "15 dakika", gif: gifUrl("Comprehensive Seated Stretch"), instructions: ["Her yone boyun germeleri", "Omuz germeleri", "Gogus acma", "Govde yana egilmeleri", "Bilek germeleri", "Mumkunse kalca fleksor germesi"], notes: "Tum vucut esnekligi" }, + { name: "Meditasyon", name_tr: "Meditasyon", duration: "5 dakika", gif: gifUrl("Seated Meditation"), instructions: ["Gozleri kapatin", "Nefese odaklanin", "Dusuncelerin gecmesine izin verin"], notes: "Zihinsel saglik" }, ] }, - { day: 7, name: "Day 7 - Complete Rest", type: "light_activity", focus: "Full Recovery", estimated_duration: 10, estimated_calories: 10, activities: [ - { name: "Optional Light Movement", name_tr: "Istege Bagli Hafif Hareket", duration: "5 minutes", gif: gifUrl("Optional Light Movement"), instructions: ["Only if you feel like it", "Gentle arm swings", "Shoulder rolls"], notes: "Completely optional" }, - { name: "Relaxation Breathing", name_tr: "Rahatlama Nefesi", duration: "5 minutes", gif: gifUrl("Relaxation Breathing"), instructions: ["Long slow breaths", "Focus on letting go of tension"], notes: "End the week relaxed" }, + { day: 7, name: "Gun 7 - Tam Dinlenme", type: "light_activity", focus: "Tam Toparlanma", estimated_duration: 10, estimated_calories: 10, activities: [ + { name: "Istege Bagli Hafif Hareket", name_tr: "Istege Bagli Hafif Hareket", duration: "5 dakika", gif: gifUrl("Optional Light Movement"), instructions: ["Sadece isterseniz", "Hafif kol sallama", "Omuz civirma"], notes: "Tamamen istege bagli" }, + { name: "Rahatlama Nefesi", name_tr: "Rahatlama Nefesi", duration: "5 dakika", gif: gifUrl("Relaxation Breathing"), instructions: ["Uzun yavas nefesler", "Gerilimi birakmeye odaklanin"], notes: "Haftayi rahat bitirin" }, ] }, ], limited_both: [ - { day: 1, name: "Day 1 - Gentle Mobility", type: "light_activity", focus: "Gentle Movement", estimated_duration: 15, estimated_calories: 20, activities: [ - { name: "Seated Breathing Exercise", name_tr: "Oturarak Nefes", duration: "5 minutes", gif: gifUrl("Seated Breathing"), instructions: ["Deep belly breaths", "Slow and rhythmic"], notes: "Foundation exercise" }, - { name: "Gentle Range of Motion", name_tr: "Hafif Hareket Acikligi", duration: "10 minutes", gif: gifUrl("Gentle ROM"), instructions: ["Move whatever joints feel comfortable", "Very gentle circles and movements", "Stop if any discomfort"], notes: "Maintain what mobility you have" }, + { day: 1, name: "Gun 1 - Hafif Mobilite", type: "light_activity", focus: "Hafif Hareket", estimated_duration: 15, estimated_calories: 20, activities: [ + { name: "Oturarak Nefes Egzersizi", name_tr: "Oturarak Nefes", duration: "5 dakika", gif: gifUrl("Seated Breathing"), instructions: ["Derin karin nefesleri", "Yavas ve ritmik"], notes: "Temel egzersiz" }, + { name: "Hafif Hareket Acikligi", name_tr: "Hafif Hareket Acikligi", duration: "10 dakika", gif: gifUrl("Gentle ROM"), instructions: ["Rahat hissedilen eklemleri hareket ettirin", "Cok hafif daireler ve hareketler", "Rahatsizlik olursa durdurun"], notes: "Mevcut mobiliteyi koruyun" }, ] }, - { day: 2, name: "Day 2 - Breathing Focus", type: "light_activity", focus: "Respiratory Health", estimated_duration: 15, estimated_calories: 15, activities: [ - { name: "Progressive Breathing", name_tr: "Kademeli Nefes", duration: "10 minutes", gif: gifUrl("Progressive Breathing"), instructions: ["Start with normal breaths", "Gradually deepen inhales", "Gradually lengthen exhales", "4-7-8 pattern if comfortable"], notes: "Improve lung capacity" }, - { name: "Body Awareness Scan", name_tr: "Vucut Farkindalik", duration: "5 minutes", gif: gifUrl("Body Awareness"), instructions: ["Notice each body part", "Release tension where found", "Accept current state"], notes: "Mind-body connection" }, + { day: 2, name: "Gun 2 - Nefes Odakli", type: "light_activity", focus: "Solunum Sagligi", estimated_duration: 15, estimated_calories: 15, activities: [ + { name: "Kademeli Nefes", name_tr: "Kademeli Nefes", duration: "10 dakika", gif: gifUrl("Progressive Breathing"), instructions: ["Normal nefeslerle baslayin", "Yavasce nefes almayi derinlestirin", "Yavasce nefes vermeyi uzatin", "Rahatsa 4-7-8 kalibi"], notes: "Akciger kapasitesini gelistirin" }, + { name: "Vucut Farkindalik Taramasi", name_tr: "Vucut Farkindalik", duration: "5 dakika", gif: gifUrl("Body Awareness"), instructions: ["Her vucut bolumune dikkat edin", "Bulunan gerilimi birakin", "Mevcut durumu kabul edin"], notes: "Zihin-vucut baglantisi" }, ] }, - { day: 3, name: "Day 3 - Light Stretch", type: "light_activity", focus: "Gentle Flexibility", estimated_duration: 15, estimated_calories: 15, activities: [ - { name: "Supported Stretching", name_tr: "Destekli Germe", duration: "10 minutes", gif: gifUrl("Supported Stretching"), instructions: ["Use pillows or supports as needed", "Very gentle holds 10-15 seconds", "Focus on comfortable range only"], notes: "Gentle flexibility work" }, - { name: "Relaxation", name_tr: "Rahatlama", duration: "5 minutes", gif: gifUrl("Relaxation"), instructions: ["Close eyes", "Deep breathing", "Progressive muscle relaxation where possible"], notes: "Recovery" }, + { day: 3, name: "Gun 3 - Hafif Germe", type: "light_activity", focus: "Hafif Esneklik", estimated_duration: 15, estimated_calories: 15, activities: [ + { name: "Destekli Germe", name_tr: "Destekli Germe", duration: "10 dakika", gif: gifUrl("Supported Stretching"), instructions: ["Gerektiginde yastik veya destek kullanin", "Cok hafif tutmalar 10-15 saniye", "Sadece rahat araliga odaklanin"], notes: "Hafif esneklik calismasi" }, + { name: "Rahatlama", name_tr: "Rahatlama", duration: "5 dakika", gif: gifUrl("Relaxation"), instructions: ["Gozleri kapatin", "Derin nefes", "Mumkun olan yerlerde kademeli kas gevsetme"], notes: "Toparlanma" }, ] }, - { day: 4, name: "Day 4 - Rest", type: "light_activity", focus: "Complete Rest", estimated_duration: 10, estimated_calories: 10, activities: [ - { name: "Breathing Only", name_tr: "Sadece Nefes", duration: "10 minutes", gif: gifUrl("Breathing Only"), instructions: ["Comfortable position", "Gentle natural breathing", "Mindfulness focus"], notes: "Active rest through breathing" }, + { day: 4, name: "Gun 4 - Dinlenme", type: "light_activity", focus: "Tam Dinlenme", estimated_duration: 10, estimated_calories: 10, activities: [ + { name: "Sadece Nefes", name_tr: "Sadece Nefes", duration: "10 dakika", gif: gifUrl("Breathing Only"), instructions: ["Rahat pozisyon", "Hafif dogal nefes", "Farkindalik odagi"], notes: "Nefes ile aktif dinlenme" }, ] }, - { day: 5, name: "Day 5 - Gentle Mobility", type: "light_activity", focus: "Joint Care", estimated_duration: 15, estimated_calories: 20, activities: [ - { name: "Assisted Range of Motion", name_tr: "Yardimli Hareket Acikligi", duration: "10 minutes", gif: gifUrl("Assisted ROM"), instructions: ["Use one limb to help the other if needed", "Gentle passive stretching", "Stay within comfort zone"], notes: "Maintain joint health" }, - { name: "Visualization Exercise", name_tr: "Gorsellestirme", duration: "5 minutes", gif: gifUrl("Visualization"), instructions: ["Imagine performing movements", "Mental rehearsal activates neural pathways", "Relaxing and beneficial"], notes: "Mind-body exercise" }, + { day: 5, name: "Gun 5 - Hafif Mobilite", type: "light_activity", focus: "Eklem Bakimi", estimated_duration: 15, estimated_calories: 20, activities: [ + { name: "Yardimli Hareket Acikligi", name_tr: "Yardimli Hareket Acikligi", duration: "10 dakika", gif: gifUrl("Assisted ROM"), instructions: ["Gerekirse bir uzvu digerine yardimci kullanin", "Hafif pasif germe", "Konfor bolgesi icinde kalin"], notes: "Eklem sagligini koruyun" }, + { name: "Gorsellestirme Egzersizi", name_tr: "Gorsellestirme", duration: "5 dakika", gif: gifUrl("Visualization"), instructions: ["Hareketleri yaptiginizi hayal edin", "Zihinsel prova sinir yollarini aktive eder", "Rahatlatici ve faydalΔ±"], notes: "Zihin-vucut egzersizi" }, ] }, - { day: 6, name: "Day 6 - Breathing & Relaxation", type: "light_activity", focus: "Stress Relief", estimated_duration: 15, estimated_calories: 10, activities: [ - { name: "Extended Breathing Session", name_tr: "Uzun Nefes Seansi", duration: "10 minutes", gif: gifUrl("Extended Breathing"), instructions: ["Alternate nostril breathing", "Box breathing", "4-7-8 breathing"], notes: "Multiple techniques" }, - { name: "Gentle Self-Massage", name_tr: "Hafif Masaj", duration: "5 minutes", gif: gifUrl("Self Massage"), instructions: ["Gently massage accessible areas", "Focus on hands, arms, neck", "Use gentle circular motions"], notes: "Relaxation and circulation" }, + { day: 6, name: "Gun 6 - Nefes & Rahatlama", type: "light_activity", focus: "Stres Giderme", estimated_duration: 15, estimated_calories: 10, activities: [ + { name: "Uzun Nefes Seansi", name_tr: "Uzun Nefes Seansi", duration: "10 dakika", gif: gifUrl("Extended Breathing"), instructions: ["Alternatif burun nefesi", "Kutu nefesi", "4-7-8 nefesi"], notes: "Birden fazla teknik" }, + { name: "Hafif Masaj", name_tr: "Hafif Masaj", duration: "5 dakika", gif: gifUrl("Self Massage"), instructions: ["Erisilebilir bolgeleri hafifce masaj yapin", "Eller, kollar, boyuna odaklanin", "Hafif dairesel hareketler kullanin"], notes: "Rahatlama ve kan dolasimi" }, ] }, - { day: 7, name: "Day 7 - Full Rest", type: "light_activity", focus: "Recovery", estimated_duration: 5, estimated_calories: 5, activities: [ - { name: "Mindful Rest", name_tr: "Bilinc Dinlenmesi", duration: "5 minutes", gif: gifUrl("Mindful Rest"), instructions: ["Simply rest", "Breathe naturally", "Be present"], notes: "Complete rest day" }, + { day: 7, name: "Gun 7 - Tam Dinlenme", type: "light_activity", focus: "Toparlanma", estimated_duration: 5, estimated_calories: 5, activities: [ + { name: "BilinΓ§li Dinlenme", name_tr: "Bilinc Dinlenmesi", duration: "5 dakika", gif: gifUrl("Mindful Rest"), instructions: ["Sadece dinlenin", "Dogal nefes alin", "Anda kalin"], notes: "Tam dinlenme gunu" }, ] }, ], }; @@ -622,16 +622,16 @@ function getAlternativeExercises(injuryArea, count) { function buildWarmupRoutine(profile) { const injuryArea = profile.has_injury ? (profile.injury_area || "none") : "none"; const warmup = [ - { name: "General Warm-Up (Light Cardio)", duration: "5 min", notes: "Treadmill, bike, or jumping jacks to raise heart rate" }, - { name: "Dynamic Stretching", duration: "3 min", notes: "Arm circles, leg swings, torso rotations" }, + { name: "Genel Isinma (Hafif Kardiyo)", duration: "5 dk", notes: "Kalp atisini yukseltmek icin kosus bandi, bisiklet veya jumping jack" }, + { name: "Dinamik Germe", duration: "3 dk", notes: "Kol civirleri, bacak sallamalari, govde rotasyonlari" }, ]; if (profile.has_asthma) { - warmup[0].notes += " - Extend to 8-10 min for asthma; gradual intensity increase is important"; + warmup[0].notes += " - Astim icin 8-10 dk'ya uzatin; kademeli yogunluk artisi onemlidir"; } if (profile.has_diabetes) { - warmup.push({ name: "Blood Sugar Check", duration: "1 min", notes: "Check blood sugar before exercise. Ensure it is between 100-250 mg/dL" }); + warmup.push({ name: "Kan Sekeri Kontrolu", duration: "1 dk", notes: "Egzersiz oncesi kan sekerini kontrol edin. 100-250 mg/dL arasinda oldugundan emin olun" }); } if (injuryArea !== "none" && INJURY_WARMUPS[injuryArea]) { @@ -640,7 +640,7 @@ function buildWarmupRoutine(profile) { const jobType = profile.job_type || ""; if (jobType === "desk" || jobType === "office" || jobType === "masa_basi") { - warmup.push({ name: "Posture Correction Mobility", duration: "3 min", notes: "Shoulder and hip opening for desk workers" }); + warmup.push({ name: "Durus Duzeltme Mobilitesi", duration: "3 dk", notes: "Masa basi calisanlar icin omuz ve kalca acma" }); } return warmup; @@ -648,20 +648,24 @@ function buildWarmupRoutine(profile) { function buildCooldown(profile) { const injuryArea = profile.has_injury ? (profile.injury_area || "none") : "none"; + const areaNamesTR = { + knee: "Diz", back: "Sirt", shoulder: "Omuz", elbow: "Dirsek", + wrist: "Bilek", ankle: "Ayak Bilegi", hip: "Kalca", neck: "Boyun", + }; const cooldown = [ - { name: "General Stretching", duration: "5 min", notes: "Stretch all worked muscle groups" }, + { name: "Genel Germe", duration: "5 dk", notes: "Calisan tum kas gruplarini gerin" }, ]; if (injuryArea !== "none") { - const areaName = injuryArea.charAt(0).toUpperCase() + injuryArea.slice(1); - cooldown.push({ name: `${areaName} Area Specific Stretching`, duration: "3 min", notes: "Targeted stretching for injury area" }); + const areaName = areaNamesTR[injuryArea] || (injuryArea.charAt(0).toUpperCase() + injuryArea.slice(1)); + cooldown.push({ name: `${areaName} Bolgesi Ozel Germe`, duration: "3 dk", notes: "Yaralanma bolgesi icin hedefli germe" }); } if (profile.has_diabetes) { - cooldown.push({ name: "Post-Exercise Blood Sugar Check", duration: "1 min", notes: "Monitor blood sugar after exercise" }); + cooldown.push({ name: "Egzersiz Sonrasi Kan Sekeri Kontrolu", duration: "1 dk", notes: "Egzersiz sonrasi kan sekerini izleyin" }); } - cooldown.push({ name: "Deep Breathing & Relaxation", duration: "2 min", notes: "Breathe in 4 seconds, hold 4 seconds, breathe out 4 seconds" }); + cooldown.push({ name: "Derin Nefes & Rahatlama", duration: "2 dk", notes: "4 saniye nefes alin, 4 saniye tutun, 4 saniye nefes verin" }); return cooldown; } @@ -671,38 +675,38 @@ function buildCooldown(profile) { function buildGeneralTips(profile) { const tips = [ - "Warm up 5-10 minutes before every workout", - "Cool down and stretch 5-10 minutes after every workout", - "Drink at least 2-3 liters of water daily", - "Prioritize sleep (7-9 hours per night)", - "Stop any exercise immediately if you feel pain", - "Take at least 1 full rest day per week", + "Her antrenmandan once 5-10 dakika isinma yapin", + "Her antrenmandan sonra 5-10 dakika soguma ve germe yapin", + "Gunluk en az 2-3 litre su icin", + "Uykuyu onceliklendirin (gecede 7-9 saat)", + "Agri hissederseniz herhangi bir egzersizi hemen durdurun", + "Haftada en az 1 tam dinlenme gunu alin", ]; const experience = profile.workout_experience || "beginner"; if (experience === "beginner") { - tips.push("Beginner level: Prioritize form and technique over weight. Increase weights gradually."); + tips.push("Baslangic seviyesi: Agirliktan once form ve teknige oncelik verin. Agirliklari kademeli artirin."); } else if (experience === "advanced") { - tips.push("Advanced level: Apply progressive overload. Consider super-sets and drop-sets for intensity."); + tips.push("Ileri seviye: Kademeli artan yuk uygulayin. Yogunluk icin super-set ve drop-set dusunun."); } const bodyType = profile.body_type || "mesomorph"; if (bodyType === "ectomorph") { - tips.push("Ectomorph body type: Focus on compound movements, limit excess cardio, maintain calorie surplus."); + tips.push("Ektomorf vucut tipi: Bileşik hareketlere odaklanin, fazla kardiyoyu sinirlayin, kalori fazlasini koruyun."); } else if (bodyType === "endomorph") { - tips.push("Endomorph body type: Add post-workout cardio, watch portion sizes, prefer HIIT cardio."); + tips.push("Endomorf vucut tipi: Antrenman sonrasi kardiyo ekleyin, porsiyon boyutlarina dikkat edin, HIIT kardiyo tercih edin."); } if ((profile.sleep_hours || 7) < 6) { - tips.push("Your sleep is insufficient: Avoid overtraining, prioritize recovery."); + tips.push("Uykunuz yetersiz: Asiri antrenmandan kacinin, toparlanmayi onceliklendirin."); } if (profile.stress_level === "high") { - tips.push("High stress level: Add meditation and breathing exercises. Training volume has been reduced."); + tips.push("Yuksek stres seviyesi: Meditasyon ve nefes egzersizleri ekleyin. Antrenman hacmi azaltildi."); } const jobType = profile.job_type || ""; if (jobType === "desk" || jobType === "office" || jobType === "masa_basi") { - tips.push("Desk worker: Stand up and move every hour. Include posture correction exercises."); + tips.push("Masa basi calisan: Her saat ayaga kalkin ve hareket edin. Durus duzeltme egzersizleri ekleyin."); } return tips; @@ -712,28 +716,28 @@ function buildMedicalNotes(profile) { const notes = []; if (profile.heart_condition) { - notes.push("Heart condition: Low intensity only. No HIIT. Monitor heart rate and stay in safe zones (50-65% max HR). Stop if dizzy or chest pain."); + notes.push("Kalp rahatsizligi: Sadece dusuk yogunluk. HIIT yok. Kalp atisini izleyin ve guvenli bolgelerde kalin (maks KH %50-65). Bas donmesi veya gogus agrisi olursa durdurun."); } if (profile.blood_pressure === "high" || profile.high_blood_pressure) { - notes.push("High blood pressure: No heavy lifting or breath holding (Valsalva). Avoid overhead pressing. Keep intensity moderate. Monitor blood pressure regularly."); + notes.push("Yuksek tansiyon: Agir kaldirma veya nefes tutma (Valsalva) yok. Bas ustu basma hareketi yapmayin. Yogunlugu orta seviyede tutun. Tansiyonu duzenli olcun."); } if (profile.has_asthma) { - notes.push("Asthma: Extended warm-up is important. Keep inhaler nearby. Avoid cold environments. Moderate cardio intensity."); + notes.push("Astim: Uzun isinma onemlidir. Inhalatoru yaninizda bulundurun. Soguk ortamlardan kacinin. Orta kardiyo yogunlugu."); } if (profile.has_diabetes) { - notes.push("Diabetes: Check blood sugar before and after exercise. Include warm-up and cool-down. Avoid fasted training. Carry fast-acting sugar."); + notes.push("Diyabet: Egzersiz oncesi ve sonrasi kan sekerini kontrol edin. Isinma ve soguma dahil edin. Ac karnina antrenman yapmayin. Hizli etkili seker tasiyin."); } if (profile.has_arthritis) { - notes.push("Arthritis: Low impact exercises only. Joint-friendly movements. Consider swimming/water exercises if available. Longer warm-ups help."); + notes.push("Artrit: Sadece dusuk etkili egzersizler. Eklem dostu hareketler. Mumkunse yuzme/su egzersizlerini dusunun. Uzun isinmalar yardimci olur."); } if (profile.has_osteoporosis) { - notes.push("Osteoporosis: Weight-bearing exercises are beneficial but avoid high impact. No trunk flexion exercises. Focus on balance to prevent falls."); + notes.push("Osteoporoz: Agirlik tasiyan egzersizler faydalΔ±dir ama yuksek etkiden kacinin. Govde bukme egzersizi yapmayin. Dusmeleri onlemek icin dengeye odaklanin."); } if (profile.has_fibromyalgia) { - notes.push("Fibromyalgia: Gentle, low-intensity exercises only. Focus on stretching and yoga-based movements. Listen to your body. Volume has been reduced."); + notes.push("Fibromiyalji: Sadece hafif, dusuk yogunluklu egzersizler. Germe ve yoga tabanli hareketlere odaklanin. Vucudunuzu dinleyin. Hacim azaltildi."); } if (profile.has_epilepsy) { - notes.push("Epilepsy: Avoid exercises where falling could be dangerous (no heavy overhead lifts, no climbing). Train with a partner when possible."); + notes.push("Epilepsi: Dusmenin tehlikeli olabilecegi egzersizlerden kacinin (agir bas ustu kaldirma yok, tirmanma yok). Mumkun oldugunda bir partnerle antrenman yapin."); } return notes; @@ -743,26 +747,26 @@ function buildInjuryNote(profile) { if (!profile.has_injury || !profile.injury_area || profile.injury_area === "none") return null; const areaNames = { - knee: "Knee", back: "Back/Lower Back", shoulder: "Shoulder", elbow: "Elbow", - wrist: "Wrist", ankle: "Ankle", hip: "Hip", neck: "Neck", + knee: "Diz", back: "Sirt/Bel", shoulder: "Omuz", elbow: "Dirsek", + wrist: "Bilek", ankle: "Ayak Bilegi", hip: "Kalca", neck: "Boyun", }; const severityNames = { - mild: "mild", moderate: "moderate", severe: "severe", + mild: "hafif", moderate: "orta", severe: "agir", }; const areas = String(profile.injury_area).split(",").map((s) => s.trim()).filter((s) => s && s !== "none"); const areaName = areas.map((a) => areaNames[a] || a).join(", "); - const severityName = severityNames[profile.injury_severity] || "mild"; - let note = `Program adapted for ${severityName} ${areaName} injury.`; + const severityName = severityNames[profile.injury_severity] || "hafif"; + let note = `Program ${severityName} ${areaName} yaralanmasina gore uyarlandi.`; if (profile.injury_notes) { - note += ` Note: ${profile.injury_notes}`; + note += ` Not: ${profile.injury_notes}`; } if (profile.injury_severity === "severe") { - note += " Intensity significantly reduced due to severe injury. Do not train heavy without doctor approval."; + note += " Agir yaralanma nedeniyle yogunluk onemli olcude azaltildi. Doktor onayi olmadan agir antrenman yapmayin."; } else if (profile.injury_severity === "moderate") { - note += " Exercise with caution and control. Stop if pain increases."; + note += " Dikkatli ve kontrollΓΌ egzersiz yapin. Agri artarsa durdurun."; } return note; @@ -862,7 +866,7 @@ function buildStrengthDay(dayNumber, dayName, focus, muscleGroups, profile, week return { day: dayNumber, - name: `Day ${dayNumber} - ${dayName}`, + name: `Gun ${dayNumber} - ${dayName}`, type: "strength", focus: focus, estimated_duration: estimateDayDuration(exercises), @@ -901,7 +905,7 @@ function buildCardioDay(dayNumber, dayName, focus, profile, week) { return { day: dayNumber, - name: `Day ${dayNumber} - ${dayName}`, + name: `Gun ${dayNumber} - ${dayName}`, type: "cardio", focus: focus, estimated_duration: estimateDayDuration(exercises), @@ -924,15 +928,15 @@ function buildFlexibilityDay(dayNumber, dayName, profile, week) { return { day: dayNumber, - name: `Day ${dayNumber} - ${dayName}`, + name: `Gun ${dayNumber} - ${dayName}`, type: "active_recovery", - focus: "Flexibility & Recovery", + focus: "Esneklik & Toparlanma", estimated_duration: 25, estimated_calories: 40, - warmup: [{ name: "Light Movement", duration: "3 min", notes: "Easy walking or gentle arm swings" }], + warmup: [{ name: "Hafif Hareket", duration: "3 dk", notes: "Kolay yuruyus veya hafif kol sallamalari" }], exercises: formattedExercises, - cooldown: [{ name: "Deep Breathing & Meditation", duration: "5 min", notes: "Full relaxation for recovery" }], - notes: ["Active recovery day - focus on mobility and flexibility", "Keep all movements gentle and controlled"], + cooldown: [{ name: "Derin Nefes & Meditasyon", duration: "5 dk", notes: "Toparlanma icin tam rahatlama" }], + notes: ["Aktif toparlanma gunu - mobilite ve esneklige odaklanin", "Tum hareketleri yumusak ve kontrollΓΌ tutun"], }; } @@ -947,15 +951,15 @@ function buildRestDay(dayNumber, dayName, profile, week) { return { day: dayNumber, - name: `Day ${dayNumber} - Rest`, + name: `Gun ${dayNumber} - Dinlenme`, type: "rest", - focus: "Active Rest & Flexibility", + focus: "Aktif Dinlenme & Esneklik", estimated_duration: 20, estimated_calories: 30, warmup: [], exercises: formattedExercises, - cooldown: [{ name: "Deep Breathing & Meditation", duration: "5 min", notes: "Focus on recovery and relaxation" }], - notes: ["Rest day - listen to your body", "Light stretching and walking are encouraged"], + cooldown: [{ name: "Derin Nefes & Meditasyon", duration: "5 dk", notes: "Toparlanma ve rahatlamaya odaklanin" }], + notes: ["Dinlenme gunu - vucudunuzu dinleyin", "Hafif germe ve yuruyus tavsiye edilir"], }; } @@ -1217,7 +1221,7 @@ function generateLightActivityPlan(profile, week) { adjustedDay.warmup = []; adjustedDay.exercises = []; adjustedDay.cooldown = []; - adjustedDay.notes = [`Week ${week}: ${weekConfig.description}`]; + adjustedDay.notes = [`Hafta ${week}: ${weekConfig.description}`]; return adjustedDay; }); } @@ -1236,17 +1240,17 @@ function generateWorkoutProgram(profile, week = 1) { if (workoutLocation === "none") { const lightDays = generateLightActivityPlan(profile, normalizedWeek); return { - title: "Personal Light Activity Plan", - description: "A gentle daily activity plan designed for your current situation. Focus on movement quality, breathing, and gradual improvement.", + title: "Kisisel Hafif Aktivite Plani", + description: "Mevcut durumunuz icin tasarlanmis hafif gunluk aktivite plani. Hareket kalitesi, nefes ve kademeli gelisime odaklanin.", week: normalizedWeek, mesocycle_phase: mesocycleConfig.phase, workout_location: "none", experience_level: experience, notes: [ - "This is a light activity plan, not a workout program", - "Listen to your body and rest when needed", - "Consistency matters more than intensity", - "Consult your doctor before starting any new exercise routine", + "Bu bir hafif aktivite planidir, antrenman programi degildir", + "Vucudunuzu dinleyin ve gerektiginde dinlenin", + "Tutarlilik yogunluktan daha onemlidir", + "Yeni bir egzersiz rutinine baslamadan once doktorunuza danisin", ], general_tips: buildGeneralTips(profile), injury_note: buildInjuryNote(profile), @@ -1262,16 +1266,16 @@ function generateWorkoutProgram(profile, week = 1) { const adjustedDays = applyGoalAdjustments(days, profile, normalizedWeek); return { - title: "Personal Wheelchair-Adapted Training Program", - description: "Upper body focused program adapted for wheelchair users. All exercises are seated or upper body only.", + title: "Kisisel Tekerlekli Sandalye Uyumlu Antrenman Programi", + description: "Tekerlekli sandalye kullananlar icin uyarlanmis ust vucut odakli program. Tum egzersizler oturarak veya sadece ust vucuttur.", week: normalizedWeek, mesocycle_phase: mesocycleConfig.phase, workout_location: workoutLocation, experience_level: experience, notes: [ - "All exercises adapted for seated position", - "Focus on upper body strength and core stability", - "Include shoulder health and posture exercises", + "Tum egzersizler oturma pozisyonuna uyarlanmistir", + "Ust vucut gucu ve core stabilitesine odaklanin", + "Omuz sagligi ve durus egzersizleri dahil edin", ], general_tips: buildGeneralTips(profile), injury_note: buildInjuryNote(profile), @@ -1283,16 +1287,16 @@ function generateWorkoutProgram(profile, week = 1) { // Limited both - generate light activity even if location is gym/home const lightDays = generateLightActivityPlan(profile, normalizedWeek); return { - title: "Personal Gentle Movement Plan", - description: "A gentle movement plan adapted for your mobility level. Focus on what you can do comfortably.", + title: "Kisisel Hafif Hareket Plani", + description: "Mobilite seviyenize uyarlanmis hafif hareket plani. Rahatca yapabileceklerinize odaklanin.", week: normalizedWeek, mesocycle_phase: mesocycleConfig.phase, workout_location: workoutLocation, experience_level: experience, notes: [ - "Gentle movements only - stay within your comfort zone", - "Focus on breathing and mobility", - "Any movement is beneficial", + "Sadece hafif hareketler - konfor bolgenizde kalin", + "Nefes ve mobiliteye odaklanin", + "Her hareket faydalΔ±dir", ], general_tips: buildGeneralTips(profile), injury_note: buildInjuryNote(profile), @@ -1321,10 +1325,12 @@ function generateWorkoutProgram(profile, week = 1) { days = adjustCardioRestDays(days, profile, normalizedWeek); const title = workoutLocation === "home" - ? "Personal Home Training Program" - : "Personal Training Program"; + ? "Kisisel Ev Antrenman Programi" + : "Kisisel Antrenman Programi"; - const description = `${experience.charAt(0).toUpperCase() + experience.slice(1)} level ${workoutLocation} training program. Week ${normalizedWeek} of 4 (${mesocycleConfig.phase}).`; + const experienceTR = { beginner: "Baslangic", intermediate: "Orta", advanced: "Ileri" }; + const locationTR = { gym: "spor salonu", home: "ev" }; + const description = `${experienceTR[experience] || experience} seviye ${locationTR[workoutLocation] || workoutLocation} antrenman programi. Hafta ${normalizedWeek}/4 (${mesocycleConfig.phase}).`; return { title: title, @@ -1334,7 +1340,7 @@ function generateWorkoutProgram(profile, week = 1) { workout_location: workoutLocation, experience_level: experience, notes: [ - `Mesocycle phase: ${mesocycleConfig.phase} - ${mesocycleConfig.description}`, + `Mezosiklus fazi: ${mesocycleConfig.phase} - ${mesocycleConfig.description}`, ], general_tips: buildGeneralTips(profile), injury_note: buildInjuryNote(profile),