';
- 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),