Files
fitness/lang/ro/app.php
T
rootandClaude Sonnet 5 1cc21ad0c5 Add body weight logging with a trend on the dashboard
No way existed to log body weight over time - only the single
self-reported value from the signup profile - and the dashboard showed
session activity but nothing about physical progress, which is usually
the main reason people keep using a fitness app.

Adds a WeightLog model (one entry per user per day, re-logging the same
day updates it rather than duplicating), a quick-add form and trend
summary on the dashboard, and delete support.

Found and fixed a real bug along the way: the first implementation used
WeightLog::updateOrCreate() with a raw ['logged_at' => $date] match
array, which silently failed to find the same-day entry because the
`date` cast stores full datetime strings ('2026-01-01 00:00:00') while
the match array holds a plain 'Y-m-d' string - so re-logging the same
day hit a unique-constraint violation instead of updating. Fixed by
using a whereDate() lookup instead, which is comparison-format-safe.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-10 12:10:08 +03:00

349 lines
15 KiB
PHP
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<?php
return [
'nav' => [
'exercises' => 'Exerciții',
'yoga' => 'Yoga',
'workouts' => 'Antrenamente',
'blog' => 'Blog',
'build_workout' => 'Creează un antrenament',
'dashboard' => 'Tabloul de bord',
'admin' => 'Admin',
'profile' => 'Profil',
'logout' => 'Deconectare',
'login' => 'Autentificare',
'register' => 'Înregistrare',
'enable_dark' => 'Activează Modul Închis',
'disable_dark' => 'Dezactivează Modul Închis',
'language' => 'Limba',
'english' => 'Engleză',
'romanian' => 'Română',
],
'home' => [
'badge' => 'Nou • Descoperă peste 1.000 de mișcări',
'title' => 'Descoperă peste 1.000 de exerciții. Construiește antrenamentul perfect.',
'subtitle' => 'Explorează FitAtlas pentru a găsi exerciții după grupă musculară și echipament, apoi creează rutine potrivite obiectivelor tale.',
'search_placeholder' => 'Caută exerciții (ex: flotări, gantere, spate)',
'search' => 'Caută',
'filters' => [
'arms' => 'Brațe',
'chest' => 'Piept',
'legs' => 'Picioare',
'core' => 'Trunchi',
'back' => 'Spate',
],
'featured' => 'Exerciții recomandate',
'browse_all' => 'Vezi toate',
'favorites' => 'Favorite',
'favorites_desc' => 'O rutină echilibrată care vizează toate grupele musculare principale. Potrivită pentru majoritatea nivelurilor și ușor de adaptat în funcție de echipamentul disponibil.',
'try_routine' => 'Încearcă această rutină',
'features' => [
'title' => 'Tot ce ai nevoie pentru a te antrena mai inteligent',
'subtitle' => 'Instrumente puternice pentru a planifica antrenamente, a învăța mișcări și a-ți urmări progresul — într-un singur loc.',
'items' => [
'tracking' => [
'title' => 'Urmărirea sesiunilor',
'desc' => 'Bifează exercițiile pe parcurs și marchează sesiunile ca finalizate pentru a vedea consistența.',
],
'library' => [
'title' => 'Bibliotecă bogată de exerciții',
'desc' => 'Răsfoiește peste 1.000 de mișcări cu mușchi țintă, echipament și instrucțiuni clare.',
],
'plans' => [
'title' => 'Antrenamente personalizate',
'desc' => 'Construiește rutine potrivite obiectivelor și echipamentului disponibil.',
],
'yoga' => [
'title' => 'Poziții de yoga',
'desc' => 'Caută și învață poziții de yoga după categorie și beneficii, cu imagini.',
],
'progress' => [
'title' => 'Tablou de bord al progresului',
'desc' => 'Vezi rata de finalizare, sesiuni recente și activitatea din ultimele 30 de zile dintr-o privire.',
],
'community' => [
'title' => 'Personalizare',
'desc' => 'Redenumește exercițiile pentru tine și adaugă la favorite pe cele folosite cel mai des.',
],
],
],
'pricing' => [
'title' => 'Prețuri simple',
'subtitle' => 'Începe gratuit. Fă upgrade oricând pentru mai multe funcții.',
'cta' => 'Începe acum',
'plans' => [
'free' => [
'name' => 'Gratuit',
'price' => '0 RON',
'period' => '/ pentru totdeauna',
'desc' => 'Tot ce îți trebuie pentru a începe.',
'features' => [
'feature1' => 'Căutare și filtre pentru exerciții',
'feature2' => 'Construiește și gestionează antrenamente',
'feature3' => 'Catalog de poziții yoga',
'feature4' => 'Statistici de bază în tablou',
],
],
'pro' => [
'name' => 'Pro',
'price' => '9 $',
'period' => '/ lună',
'desc' => 'Analize și personalizare aprofundate.',
'features' => [
'feature1' => 'Analitice avansate de progres',
'feature2' => 'Favorite și aliasuri nelimitate',
'feature3' => 'Actualizări de date prioritare',
'feature4' => 'Acces anticipat la funcții',
'feature5' => 'Suport prin email',
],
],
'ultimate' => [
'name' => 'Ultimate',
'price' => '19 $',
'period' => '/ lună',
'desc' => 'Pentru utilizatori avansați și pasionați.',
'features' => [
'feature1' => 'Tot din Pro',
'feature2' => 'Extra opțiuni de personalizare',
'feature3' => 'Suport prioritar',
],
],
],
],
'faq' => [
'title' => 'Întrebări frecvente',
'subtitle' => 'Dacă nu găsești răspunsul, scrie-ne și te ajutăm.',
'q1' => 'FitAtlas este gratuit?',
'a1' => 'Da. Poți răsfoi exerciții, crea antrenamente și urmări sesiuni gratuit.',
'q2' => 'Ce este Tabloul de bord?',
'a2' => 'Centrul tău personal cu statistici precum rata de finalizare, sesiuni recente și activitate pe 30 de zile.',
'q3' => 'Aveți suport pentru yoga?',
'a3' => 'Da. Răsfoiește categorii și poziții de yoga, filtrează după beneficii și vezi pagini detaliate.',
'q4' => 'Pot redenumi exercițiile?',
'a4' => 'Da. Poți seta nume personalizate vizibile doar pentru tine pe pagina fiecărui exercițiu.',
'q5' => 'Va exista un plan Pro?',
'a5' => 'Prețurile sunt orientative. Poți începe gratuit și face upgrade ulterior dacă ai nevoie.',
'q6' => 'Ce limbi sunt disponibile?',
'a6' => 'Engleză și Română. Schimbă limba din antet.',
],
],
'workouts' => [
'my_workouts' => 'Antrenamentele mele',
'manage_desc' => 'Creează rutine și gestionează exercițiile.',
'new_workout' => 'Antrenament nou',
'none_yet' => 'Încă nu există antrenamente. Creează primul tău antrenament.',
'open' => 'Deschide',
'delete' => 'Șterge',
'confirm_delete' => 'Ștergi acest antrenament?',
'create_title' => 'Creează antrenament',
'create_desc' => 'Dă un nume antrenamentului și, opțional, adaugă detalii.',
'title_label' => 'Titlu',
'estimated_minutes' => 'Minute estimate',
'notes' => 'Notițe',
'cancel' => 'Anulează',
'create_submit' => 'Creează antrenament',
'back_to_workouts' => '← Înapoi la Antrenamente',
'favorited' => 'La favorite',
'favorite' => 'Adaugă la favorite',
'min' => 'min',
'exercises_count' => 'exerciții',
'exercises' => 'Exerciții',
'no_exercises_yet' => 'Încă nu există exerciții. Adaugă primul în dreapta.',
'remove_exercise_confirm' => 'Elimini acest exercițiu?',
'remove' => 'Elimină',
'edit' => 'Editează',
'position_ph' => 'Poziție',
'sets' => 'Seturi',
'reps' => 'Repetări',
'weight' => 'Greutate (kg)',
'rest' => 'Pauză (s)',
'save' => 'Salvează',
'add_exercise' => 'Adaugă exercițiu',
'exercise_label' => 'Exercițiu',
'add_exercise_submit' => 'Adaugă exercițiu',
'rest_suffix' => 's pauză',
'kg' => 'kg',
],
'exercises' => [
'browse' => 'Răsfoiește exercițiile',
'browse_desc' => 'Explorează întreaga bibliotecă FitAtlas. Filtrează după zonă, mușchi sau echipament.',
'search' => 'Căutare',
'search_placeholder' => 'Caută după nume sau instrucțiuni',
'body_part' => 'Zonă',
'muscle' => 'Mușchi',
'equipment' => 'Echipament',
'any' => 'Oricare',
'reset' => 'Resetează',
'apply_filters' => 'Aplică filtrele',
'showing' => 'Se afișează',
'exercises_noun' => 'exerciții',
'per_page' => 'Pe pagină',
'none_found' => 'Nu s-au găsit exerciții. Încearcă să ajustezi filtrele.',
'similar' => 'Exerciții similare',
'similar_none' => 'Nu s-au găsit exerciții similare.',
'rename' => 'Nume personalizat',
'rename_placeholder' => 'Numele tău pentru acest exercițiu',
'rename_save' => 'Salvează',
'rename_reset' => 'Resetează',
'renamed_success' => 'Numele personalizat a fost salvat.',
'rename_cleared' => 'Numele personalizat a fost eliminat.',
],
'sessions' => [
'start' => 'Începe sesiunea',
'back_to_workout' => 'Înapoi la antrenament',
'progress' => 'Progres',
'mark_complete' => 'Marchează ca finalizată',
'mark_complete_confirm' => 'Marchezi această sesiune ca finalizată?',
'no_items' => 'Nu există exerciții în acest antrenament.',
'sets' => 'seturi',
'reps' => 'repetări',
'rest' => 'pauză',
'completed' => 'Sesiune de antrenament finalizată! Bravo!',
'exercise_timer' => 'Cronometru exercițiu',
'start_timer' => 'Start',
'stop_timer' => 'Stop',
'rest_timer' => 'Cronometru pauză',
'start_rest' => 'Start',
'pause_rest' => 'Pauză',
'reset_rest' => 'Reset'
],
'dashboard' => [
'title' => 'Tabloul tău de bord',
'subtitle' => 'Vezi pe scurt antrenamentele și progresul tău.',
'metrics' => [
'workouts' => 'Antrenamente',
'sessions' => 'Sesiuni',
'completed' => 'Finalizate',
'completion_rate' => 'Rată de finalizare',
],
'recent_sessions' => 'Sesiuni recente',
'no_sessions' => 'Încă nu există sesiuni. Începe un antrenament pentru a-ți urmări progresul.',
'completed' => 'Finalizată',
'view_session' => 'Vezi sesiunea',
'activity_30d' => 'Activitate în ultimele 30 de zile',
'activity_30d_help' => 'Număr de sesiuni pe zi (mai mult este mai bine).',
],
'weight_log' => [
'title' => 'Greutate corporală',
'change_since_first' => 'Schimbare de la prima înregistrare:',
'weight_kg' => 'Greutate (kg)',
'date' => 'Data',
'log' => 'Adaugă',
'none' => 'Nicio înregistrare încă. Adaugă prima pentru a-ți urmări evoluția.',
'saved' => 'Greutate înregistrată',
'deleted' => 'Înregistrare ștearsă',
'delete' => 'Șterge',
'confirm_delete' => 'Ștergi această înregistrare?',
],
'admin' => [
'title' => 'Panou de administrare',
'subtitle' => 'Gestionează conținutul și vezi statisticile generale ale site‑ului.',
'metrics' => [
'users' => 'Utilizatori',
'workouts' => 'Antrenamente',
'sessions' => 'Sesiuni',
'exercises' => 'Exerciții',
'yoga_poses' => 'Poziții yoga',
'posts' => 'Articole blog',
],
'recent_users' => 'Utilizatori recenți',
'recent_workouts' => 'Antrenamente recente',
'none' => 'Nimic de afișat momentan.',
'manage_workouts' => 'Gestionează antrenamentele',
],
'footer' => [
'privacy' => 'Politica de confidențialitate',
'terms' => 'Termeni și condiții',
'rights' => 'Toate drepturile rezervate.',
],
'yoga' => [
'browse' => 'Răsfoiește pozițiile de yoga',
'browse_desc' => 'Explorează pozițiile de yoga după categorie sau beneficii.',
'search' => 'Căutare',
'search_placeholder' => 'Caută după nume în engleză sau sanscrită',
'category' => 'Categorie',
'benefit' => 'Beneficiu conține',
'benefit_placeholder' => 'ex: stres, digestie',
'any' => 'Oricare',
'reset' => 'Resetează',
'apply_filters' => 'Aplică filtrele',
'showing' => 'Se afișează',
'poses_noun' => 'poziții',
'none_found' => 'Nu s-au găsit poziții. Încearcă să ajustezi filtrele.',
'no_image' => 'Fără imagine',
'back' => 'Înapoi',
'description' => 'Descriere',
'no_description' => 'Nu există descriere disponibilă.',
'benefits' => 'Beneficii',
'no_benefits' => 'Nu există beneficii documentate.',
'pose_info' => 'Informații despre poziție',
'translation' => 'Traducere',
'sanskrit' => 'Sanscrită',
'sanskrit_adapted' => 'Sanscrită (adaptată)',
'browse_all' => 'Vezi toate pozițiile',
'similar' => 'Poziții similare',
'similar_none' => 'Nu s-au găsit poziții similare.',
],
'auth' => [
'register' => [
'age' => 'Vârstă',
'weight_kg' => 'Greutate (kg)',
'height_cm' => 'Înălțime (cm)',
'fitness_level' => 'Nivel de fitness',
'goal' => 'Obiectiv principal',
'health_notes' => 'Afectiuni de sănătate sau accidentări',
'available_equipment' => 'Echipament disponibil',
'available_equipment_ph' => 'ex: gantere, bară, kettlebell, benzi, bară de tracțiuni',
'days_per_week' => 'Zile pe săptămână',
'minutes_per_session' => 'Minute pe sesiune',
'select_optional' => 'Selectează (opțional)',
'levels' => [
'beginner' => 'Începător',
'intermediate' => 'Intermediar',
'advanced' => 'Avansat',
],
'goals' => [
'strength' => 'Forță',
'endurance' => 'Anduranță',
'weight_loss' => 'Scădere în greutate',
'hypertrophy' => 'Hipertrofie',
'mobility' => 'Mobilitate',
],
'steps' => [
'step1_title' => 'Creează-ți contul',
'step2_title' => 'Spune-ne despre profilul tău de fitness (opțional)',
'next' => 'Înainte',
'back' => 'Înapoi',
'register' => 'Înregistrare',
],
'consent_prefix' => 'Prin crearea unui cont, ești de acord cu',
'consent_and' => 'și cu',
'is_trainer' => 'Sunt antrenor',
'equipment_options' => [
'dumbbells' => 'Gantere',
'barbell' => 'Bară',
'kettlebell' => 'Kettlebell',
'bands' => 'Benzi elastice',
'pullup_bar' => 'Bară de tracțiuni',
'bench' => 'Bancă',
'machines' => 'Aparate',
'yoga_mat' => 'Saltea de yoga',
'treadmill' => 'Banda de alergare',
'bodyweight' => 'Doar greutatea corpului',
],
],
],
];