export default {
email_sent: "Email envoyé",
cant_send_email: "Impossible d'envoyer l'email",
logout: "Déconnexion",
verify_email: "Vérifier votre email. ⚠️ Pensez à vérifier votre dossier SPAM.",
verify_email_subtitle: "Veuillez vérifier votre email pour continuer.",
resend_email: "Renvoyer l'email",
resend_email_countdown: "Renvoyer l'email dans {seconds} secondes",
signin_error_subtitle: "Veuillez vérifier vos identifiants et réessayer.",
register_title: "Créer un compte",
register_description: "Entrez vos informations ci-dessous pour créer votre compte",
register_terms: "En vous inscrivant, vous acceptez nos",
register_privacy: "Politique de confidentialité",
register_privacy_link: "et notre",
register_privacy_link_2: "Politique de confidentialité",
password_forgot_title: "Forgot password?",
password_forgot_subtitle: "Enter your email to reset your password",
new_password: "Nouveau mot de passe",
new_password_placeholder: "Entrez votre nouveau mot de passe",
current_password: "Mot de passe actuel",
current_password_placeholder: "Entrez votre mot de passe actuel",
confirm_password: "Confirmer le mot de passe",
confirm_password_placeholder: "Confirmez votre mot de passe",
success: {
feedback_sent: "Feedback envoyé",
password_forgot_success: "Email envoyé",
reset_password_success: "Mot de passe réinitialisé avec succès",
password_updated_successfully: "Mot de passe mis à jour avec succès",
},
error: {
invalid_credentials: "Identifiants invalides ou compte inexistant",
upload_failed: "Erreur lors du téléchargement",
generic_error: "Erreur lors de l'opération",
sending_email: "Erreur lors de l'envoi de l'email",
},
backend_errors: {
EMAIL_ALREADY_EXISTS: "Email déjà existant",
INVALID_FILE_TYPE: "Type de fichier invalide",
FILE_TOO_LARGE: "Fichier trop grand",
NO_FILE_UPLOADED: "Aucun fichier téléchargé",
IMAGE_PROCESSING_ERROR: "Erreur lors du traitement de l'image",
upload_failed: "Erreur lors du téléchargement",
},
profile: {
new_workout: "Nouvelle séance",
alert: {
title: "Votre progression est stockée dans votre navigateur.",
create_account: "Créer un compte",
log_in: "Se connecter",
to_ensure_it_is_not_getting_lost: "pour la sauvegarder.",
},
},
// Release Notes
release_notes: {
title: "Nouveautés",
release_notes: "Notes",
notes: {
note_2025_06_23: {
title: "🇵🇹 Support Portugais & Bannière de Don",
content:
"L'app supporte maintenant le portugais ! Nous avons aussi ajouté une bannière de don pour aider à supporter les coûts du projet via GitHub Sponsors ou Ko-fi.",
},
note_2025_06_22: {
title: "🌍 Nouvelles langues & amélioration des performances !",
content:
"L'application est maintenant disponible en chinois et en russe ! Nous avons aussi amélioré les performances du glisser-déposer pour une expérience plus fluide. ⚡",
},
note_2025_06_19: {
title: "📱 Maintenant disponible en PWA !",
content:
"Workout.cool v1.2 est maintenant une Progressive Web App ! Installez-la sur votre téléphone pour une expérience d'application native avec accès hors ligne.",
},
note_2025_06_18: {
title:
"🚀 Numéro #1 sur Hacker News !",
content:
"Workout.cool a atteint le top spot sur Hacker News ! Merci à tous pour le support incroyable — bienvenue à tous les nouveaux utilisateurs ! 💪",
},
note_2025_06_01: {
title: "🎉 Nouveau : Dialogue des notes de version",
content: "Vous pouvez maintenant voir les nouveautés directement depuis l'en-tête ! Restez à l'écoute pour plus de mises à jour.",
},
note_2025_05_20: {
title: "Améliorations de l'interface",
content: "Amélioration de la réactivité mobile et ajout d'effets de survol subtils aux boutons.",
},
},
},
// Donation Alert
donation_alert: {
title: "Gardez Workout.cool gratuit. Soutenez-nous via",
or: "ou",
},
// Donation Modal
donation_modal: {
support_via: "Soutenir via...",
title: "Soutenez le projet",
congrats: "Félicitations pour la séance ! 🎉",
subtitle: "Cette app vous aide gratuitement, mais elle a un coût réel pour moi...",
costs_title: "La réalité des coûts",
costs_description:
"Actuellement, les donations ne couvrent même pas les coûts de base : serveurs, authentification, infrastructure, base de données, etc.",
open_source_title: "100% Open Source",
open_source_description:
"Cette app est entièrement gratuite et open source. Aucun profit n'est généré - c'est un projet de passion pour aider la communauté et aider les gens à faire du sport.",
no_ads: "Pas de pub",
no_tracking: "Pas de tracking",
impact_title: "Votre impact",
impact_3_euros: "• Même 3€ couvrent 1 semaine de serveur",
impact_support: "• Votre soutien garde l'app gratuite pour tous",
impact_footer: "Chaque don, même petit, fait une vraie différence ! 🙏",
later_button: "Plus tard",
support_button: "Soutenir le projet",
},
// Contact Support
contact_support: "Contacter le support",
contact_support_subtitle: "Décrivez votre problème et nous vous aiderons dès que possible. Vous pouvez aussi nous écrire directement à",
// Social Platforms
social_platforms: {
x: "X (Twitter)",
facebook: "Facebook",
email: "Email",
whatsapp: "WhatsApp",
website: "Site web",
phone: "Téléphone",
youtube: "YouTube",
linkedin: "LinkedIn",
snapchat: "Snapchat",
instagram: "Instagram",
tiktok: "TikTok",
threads: "Threads",
},
// Workout Builder
workout_builder: {
confirm_delete: "Êtes-vous sûr de vouloir supprimer cette séance ?",
steps: {
equipment: {
title: "Équipement",
description: "Sélectionnez votre équipement",
},
muscles: {
title: "Muscles",
description: "Choisissez votre entraînement",
},
exercises: {
title: "Exercices",
description: "Personnalisez votre séance",
},
},
muscles: {
abdominals: "Abdominaux",
back: "Dos",
biceps: "Biceps",
triceps: "Triceps",
chest: "Pectoraux",
shoulders: "Épaules",
quadriceps: "Quadriceps",
hamstrings: "Ischio-jambiers",
glutes: "Fessiers",
calves: "Mollets",
forearms: "Avant-bras",
traps: "Trapèzes",
obliques: "Obliques",
},
exercise: {
watch_video: "Voir la vidéo",
shuffle: "Mélanger",
pick: "Choisir",
remove: "Supprimer",
no_video_available: "Aucune vidéo disponible.",
},
loading: {
exercises: "Chargement des exercices...",
},
error: {
loading_exercises: "Erreur lors du chargement des exercices",
},
no_exercises_found: "Aucun exercice trouvé. Essayez de changer vos équipements ou vos muscles sélectionnés.",
equipment: {
bodyweight: {
label: "Poids du corps",
description: "Exercices utilisant uniquement le poids de votre corps",
},
dumbbell: {
label: "Haltères",
description: "Exercices de poids libres avec haltères",
},
barbell: {
label: "Barre",
description: "Mouvements composés avec une barre",
},
kettlebell: {
label: "Kettlebell",
description: "Exercices dynamiques avec kettlebells",
},
band: {
label: "Élastique",
description: "Exercices avec bandes de résistance",
},
plate: {
label: "Disques",
description: "Exercices utilisant des disques de poids",
},
pullup_bar: {
label: "Barre de traction",
description: "Exercices du haut du corps avec barre de traction",
},
bench: {
label: "Banc",
description: "Exercices sur banc et support",
},
},
navigation: {
previous: "Précédent",
continue: "Continuer",
complete: "Terminer",
},
stats: {
"muscle_selected#zero": "0 muscle sélectionné",
"muscle_selected#one": "1 muscle sélectionné",
"muscle_selected#other": "{count} muscles sélectionnés",
"equipment_selected#zero": "0 équipement sélectionné",
"equipment_selected#one": "1 équipement sélectionné",
"equipment_selected#other": "{count} équipements sélectionnés",
selected: "Sélectionné",
total: "Total",
equipment_ready: "équipement prêt",
equipment_ready_plural: "équipements prêts",
},
selection: {
choose_your_arsenal: "Choisissez votre arsenal",
select_equipment_description: "Sélectionnez l'équipement pour débloquer des entraînements personnalisés",
clear_all: "Tout effacer",
muscle_selection_coming_soon: "Sélection des muscles (Bientôt disponible)",
muscle_selection_description: "Sélectionnez le(s) muscle(s) que vous voulez entraîner en cliquant dessus.",
exercise_selection_coming_soon: "Sélection des exercices (Bientôt disponible)",
exercise_selection_description: "Cette étape vous montrera des recommandations d'exercices personnalisées.",
},
session: {
back_to_workout: "Retour à l'entraînement",
congrats: "Bravo, séance terminée ! 🎉",
congrats_subtitle: "Tu l'as fait !",
see_instructions: "Voir les instructions",
finish_set: "Valider la série",
finish_session: "Terminer la séance",
bodyweight: "Poids du corps",
weight: "Poids",
reps: "Répétitions",
time: "Temps",
next_exercise: "Exercice suivant",
add_set: "Ajouter une série",
add_column: "Ajouter une colonne",
add_row: "Ajouter une ligne d'attributs",
remove_column: "Supprimer une colonne",
set_number: "Série {number}",
set_number_plural: "Séries {number}",
set_number_singular: "Série {number}",
set_number_plural_singular: "Séries {number}",
workout_in_progress: "Entraînement en cours",
started_at: "Débuté à",
quit_workout: "Quitter l'entraînement",
elapsed_time: "Temps écoulé",
chronometer: "Chronomètre",
total_workout_time: "Temps total d'entraînement",
exercise_progress: "Progression",
total_volume: "Volume Total",
current_exercise: "Exercice actuel",
complete: "Terminé",
active: "Actif",
already_have_a_active_session: "Vous avez déjà une séance active. Impossible de répéter sans terminer ou quitter l'entraînement.",
no_exercise_selected: "Aucun exercice sélectionné",
quit_workout_title: "Quitter l'entraînement ?",
progress: "Progression",
quit_warning: "Êtes-vous sûr de vouloir quitter ? Vous pouvez sauvegarder votre progression ou la perdre complètement.",
save_and_quit: "Sauvegarder & Quitter",
quit_without_save: "Quitter sans sauvegarder",
continue_workout: "Continuer l'entraînement",
history: "Historique des séances [{count}]",
no_workout_yet: "Aucune séance enregistrée.",
start: "début",
end: "fin",
exercise: "EXERCICE",
repeat: "Répéter",
delete: "Supprimer",
},
attribute_value: {
bodyweight: "Poids du corps",
strength: "Force",
powerlifting: "Powerlifting",
calisthenic: "Calisthénie",
plyometrics: "Plyométrie",
stretching: "Étirement",
strongman: "Strongman",
cardio: "Cardio",
stabilization: "Stabilisation",
power: "Puissance",
resistance: "Résistance",
crossfit: "CrossFit",
weightlifting: "Haltérophilie",
neck: "Cou",
lats: "Grands dorsaux",
adductors: "Adducteurs",
abductors: "Abducteurs",
groin: "Aine",
full_body: "Corps entier",
rotator_cuff: "Coiffe des rotateurs",
hip_flexor: "Fléchisseur de hanche",
achilles_tendon: "Tendon d'Achille",
fingers: "Doigts",
smith_machine: "Smith machine",
other: "Autre",
ez_bar: "Barre EZ",
machine: "Machine",
desk: "Bureau",
none: "Aucun",
cable: "Câble",
medicine_ball: "Medecine ball",
swiss_ball: "Swiss ball",
foam_roll: "Foam roll",
trx: "TRX",
box: "Box",
ropes: "Cordes",
spin_bike: "Vélo de spinning",
step: "Step",
bosu: "BOSU",
tyre: "Pneu",
sandbag: "Sac de sable",
pole: "Barre verticale",
wall: "Mur",
bar: "Barre",
rack: "Rack",
car: "Voiture",
sled: "Luge",
chain: "Chaîne",
skierg: "SkiErg",
rope: "Corde",
na: "N/A",
isolation: "Isolation",
compound: "Polyarticulaire",
},
},
commons: {
signup_with: "S'inscrire avec {provider}",
signin_with: "Se connecter avec {provider}",
signup: "S'inscrire",
login: "Se connecter",
connecting: "Connexion...",
password_reset_success: "Le mot de passe a été réinitialisé avec succès",
login_to_your_account_title: "Connectez-vous à votre compte",
login_to_your_account_subtitle: "Entrez vos identifiants ci-dessous pour vous connecter",
password_forgot: "Mot de passe oublié ?",
dont_have_account: "Vous n'avez pas de compte ?",
already_have_account: "Vous avez déjà un compte ?",
or: "Ou",
add: "Ajouter",
your_feminine: "ta",
password: "Mot de passe",
email: "Email",
logout: "Déconnexion",
first_name: "Prénom",
last_name: "Nom",
verify_password: "Vérifier le mot de passe",
submit: "Envoyer",
upload: "Télécharger",
cancel: "Annuler",
save_changes: "Enregistrer les modifications",
change: "Changer",
subject: "Sujet",
message: "Message",
saving: "Enregistrement...",
edit: "Modifier",
more_options: "Plus d'options",
open_link: "Ouvrir le lien",
hide: "Masquer",
make_visible: "Rendre visible",
delete: "Supprimer",
share: "Partager",
title: "Titre",
subtitle: "Sous-titre",
content: "Contenu",
save: "Enregistrer",
button: "Bouton",
card: "Carte",
go_back: "Retour",
next: "Suivant",
choose_image: "Choisir une image",
soon: "Bientôt",
coming_soon_with_emoji: "Bientôt disponible 🤫",
no_image: "Aucune image",
description: "Description",
price: "Prix",
duration: "Durée",
location: "Lieu",
schedule: "Horaire",
participants_info: "Informations sur les participants",
title_placeholder: "Entrez le titre",
description_placeholder: "Entrez la description",
changes_saved: "Les modifications ont été sauvegardées",
replace: "Remplacer",
loading: "Chargement...",
image_deleted: "L'image a été supprimée",
discover_workoutcool: "Découvrir gratuitement",
received_just_now: "Reçu à l'instant",
copied: "Copié",
url_copied: "L'URL a été copiée",
copy_failed: "Erreur lors de la copie de l'URL",
accordion: "Accordéon",
image: "Image",
other: "Autre",
register: "S'inscrire",
instantly: "instantanément",
immediately: "immédiatement",
link: "Lien",
accept: "Accepter",
deny: "Refuser",
invalid_input: "Saisie invalide. Veuillez vérifier les erreurs.",
copy_url: "Copier l'URL",
page_url: "URL de la page",
saving_short: "Enregistrement...",
saved_short: "Sauvegardé",
looks_like_you_are_lost: "Il semble que vous soyez perdu",
the_page_you_are_looking_for_is_not_available: "La page que vous cherchez n'est pas disponible",
go_to_home: "Retour à l'accueil",
go_to_profile: "Aller à mon profil",
terms: "Conditions d'utilisation",
privacy: "Politique de confidentialité",
sales_terms: "Conditions de vente",
consent_banner: "Nous utilisons des cookies pour améliorer votre expérience. En cliquant sur Accepter, vous acceptez nos cookies.",
about: "À propos",
profile: "Profil",
donate: "Faire un don",
my_account: "Mon compte",
dashboard: "Tableau de bord",
home: "Accueil",
changelog: "Annonces & notes de version",
stop_impersonation_button: "Arrêter l'impersonnalisation",
impersonating_user_label: "Impersonnification en cours",
re_hello: "Re Hello",
back_to_login: "Retour à la connexion",
sending: "Envoi...",
send_me_link: "Envoyer un lien",
extremely_dissatisfied: "Très insatisfait",
somewhat_dissatisfied: "Insatisfait",
neutral: "Neutre",
satisfied: "Satisfait",
support: "Support",
change_language: "Changer de langue",
in_progress: "En cours",
},
} as const;