fr.ts 16 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454
  1. export default {
  2. email_sent: "Email envoyé",
  3. cant_send_email: "Impossible d'envoyer l'email",
  4. logout: "Déconnexion",
  5. verify_email: "Vérifier votre email. ⚠️ Pensez à vérifier votre dossier SPAM.",
  6. verify_email_subtitle: "Veuillez vérifier votre email pour continuer.",
  7. resend_email: "Renvoyer l'email",
  8. resend_email_countdown: "Renvoyer l'email dans {seconds} secondes",
  9. signin_error_subtitle: "Veuillez vérifier vos identifiants et réessayer.",
  10. register_title: "Créer un compte",
  11. register_description: "Entrez vos informations ci-dessous pour créer votre compte",
  12. register_terms: "En vous inscrivant, vous acceptez nos",
  13. register_privacy: "Politique de confidentialité",
  14. register_privacy_link: "et notre",
  15. register_privacy_link_2: "Politique de confidentialité",
  16. password_forgot_title: "Forgot password?",
  17. password_forgot_subtitle: "Enter your email to reset your password",
  18. new_password: "Nouveau mot de passe",
  19. new_password_placeholder: "Entrez votre nouveau mot de passe",
  20. current_password: "Mot de passe actuel",
  21. current_password_placeholder: "Entrez votre mot de passe actuel",
  22. confirm_password: "Confirmer le mot de passe",
  23. confirm_password_placeholder: "Confirmez votre mot de passe",
  24. success: {
  25. feedback_sent: "Feedback envoyé",
  26. password_forgot_success: "Email envoyé",
  27. reset_password_success: "Mot de passe réinitialisé avec succès",
  28. password_updated_successfully: "Mot de passe mis à jour avec succès",
  29. },
  30. error: {
  31. invalid_credentials: "Identifiants invalides ou compte inexistant",
  32. upload_failed: "Erreur lors du téléchargement",
  33. generic_error: "Erreur lors de l'opération",
  34. sending_email: "Erreur lors de l'envoi de l'email",
  35. },
  36. backend_errors: {
  37. EMAIL_ALREADY_EXISTS: "Email déjà existant",
  38. INVALID_FILE_TYPE: "Type de fichier invalide",
  39. FILE_TOO_LARGE: "Fichier trop grand",
  40. NO_FILE_UPLOADED: "Aucun fichier téléchargé",
  41. IMAGE_PROCESSING_ERROR: "Erreur lors du traitement de l'image",
  42. upload_failed: "Erreur lors du téléchargement",
  43. },
  44. profile: {
  45. new_workout: "Nouvelle séance",
  46. alert: {
  47. title: "Votre progression est stockée dans votre navigateur.",
  48. create_account: "Créer un compte",
  49. log_in: "Se connecter",
  50. to_ensure_it_is_not_getting_lost: "pour la sauvegarder.",
  51. },
  52. },
  53. // Release Notes
  54. release_notes: {
  55. title: "Nouveautés",
  56. release_notes: "Notes",
  57. notes: {
  58. note_2025_06_22: {
  59. title: "🌍 Nouvelles langues & amélioration des performances !",
  60. content:
  61. "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. ⚡",
  62. },
  63. note_2025_06_19: {
  64. title: "📱 Maintenant disponible en PWA !",
  65. content:
  66. "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. 🚀",
  67. },
  68. note_2025_06_18: {
  69. title: "🚀 Mis en avant #1 sur Hacker News !",
  70. content:
  71. "Workout.cool a atteint le top spot sur Hacker News ! Merci à tous pour le support incroyable — bienvenue à tous les nouveaux utilisateurs ! 💪",
  72. },
  73. note_2025_06_01: {
  74. title: "🎉 Nouveau : Dialogue des notes de version",
  75. content: "Vous pouvez maintenant voir les nouveautés directement depuis l'en-tête ! Restez à l'écoute pour plus de mises à jour.",
  76. },
  77. note_2025_05_20: {
  78. title: "Améliorations de l'interface",
  79. content: "Amélioration de la réactivité mobile et ajout d'effets de survol subtils aux boutons.",
  80. },
  81. },
  82. },
  83. // Donation Alert
  84. donation_alert: {
  85. title: "Gardez Workout.cool gratuit. Soutenez-nous via",
  86. or: "ou",
  87. },
  88. // Donation Modal
  89. donation_modal: {
  90. support_via: "Soutenir via...",
  91. title: "Soutenez le projet",
  92. congrats: "Félicitations pour la séance ! 🎉",
  93. subtitle: "Cette app vous aide gratuitement, mais elle a un coût réel pour moi...",
  94. costs_title: "La réalité des coûts",
  95. costs_description:
  96. "Actuellement, les donations ne couvrent même pas les coûts de base : serveurs, authentification, infrastructure, base de données, etc.",
  97. open_source_title: "100% Open Source",
  98. open_source_description:
  99. "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.",
  100. no_ads: "Pas de pub",
  101. no_tracking: "Pas de tracking",
  102. impact_title: "Votre impact",
  103. impact_3_euros: "• Même 3€ couvrent 1 semaine de serveur",
  104. impact_support: "• Votre soutien garde l'app gratuite pour tous",
  105. impact_footer: "Chaque don, même petit, fait une vraie différence ! 🙏",
  106. later_button: "Plus tard",
  107. support_button: "Soutenir le projet",
  108. },
  109. // Contact Support
  110. contact_support: "Contacter le support",
  111. contact_support_subtitle: "Décrivez votre problème et nous vous aiderons dès que possible. Vous pouvez aussi nous écrire directement à",
  112. // Social Platforms
  113. social_platforms: {
  114. x: "X (Twitter)",
  115. facebook: "Facebook",
  116. email: "Email",
  117. whatsapp: "WhatsApp",
  118. website: "Site web",
  119. phone: "Téléphone",
  120. youtube: "YouTube",
  121. linkedin: "LinkedIn",
  122. snapchat: "Snapchat",
  123. instagram: "Instagram",
  124. tiktok: "TikTok",
  125. threads: "Threads",
  126. },
  127. // Workout Builder
  128. workout_builder: {
  129. confirm_delete: "Êtes-vous sûr de vouloir supprimer cette séance ?",
  130. steps: {
  131. equipment: {
  132. title: "Équipement",
  133. description: "Sélectionnez votre équipement",
  134. },
  135. muscles: {
  136. title: "Muscles",
  137. description: "Choisissez votre entraînement",
  138. },
  139. exercises: {
  140. title: "Exercices",
  141. description: "Personnalisez votre séance",
  142. },
  143. },
  144. muscles: {
  145. abdominals: "Abdominaux",
  146. back: "Dos",
  147. biceps: "Biceps",
  148. triceps: "Triceps",
  149. chest: "Pectoraux",
  150. shoulders: "Épaules",
  151. quadriceps: "Quadriceps",
  152. hamstrings: "Ischio-jambiers",
  153. glutes: "Fessiers",
  154. calves: "Mollets",
  155. forearms: "Avant-bras",
  156. traps: "Trapèzes",
  157. obliques: "Obliques",
  158. },
  159. exercise: {
  160. watch_video: "Voir la vidéo",
  161. shuffle: "Mélanger",
  162. pick: "Choisir",
  163. remove: "Supprimer",
  164. no_video_available: "Aucune vidéo disponible.",
  165. },
  166. loading: {
  167. exercises: "Chargement des exercices...",
  168. },
  169. error: {
  170. loading_exercises: "Erreur lors du chargement des exercices",
  171. },
  172. no_exercises_found: "Aucun exercice trouvé. Essayez de changer vos équipements ou vos muscles sélectionnés.",
  173. equipment: {
  174. bodyweight: {
  175. label: "Poids du corps",
  176. description: "Exercices utilisant uniquement le poids de votre corps",
  177. },
  178. dumbbell: {
  179. label: "Haltères",
  180. description: "Exercices de poids libres avec haltères",
  181. },
  182. barbell: {
  183. label: "Barre",
  184. description: "Mouvements composés avec une barre",
  185. },
  186. kettlebell: {
  187. label: "Kettlebell",
  188. description: "Exercices dynamiques avec kettlebells",
  189. },
  190. band: {
  191. label: "Élastique",
  192. description: "Exercices avec bandes de résistance",
  193. },
  194. plate: {
  195. label: "Disques",
  196. description: "Exercices utilisant des disques de poids",
  197. },
  198. pullup_bar: {
  199. label: "Barre de traction",
  200. description: "Exercices du haut du corps avec barre de traction",
  201. },
  202. bench: {
  203. label: "Banc",
  204. description: "Exercices sur banc et support",
  205. },
  206. },
  207. navigation: {
  208. previous: "Précédent",
  209. continue: "Continuer",
  210. complete: "Terminer",
  211. },
  212. stats: {
  213. "muscle_selected#zero": "0 muscle sélectionné",
  214. "muscle_selected#one": "1 muscle sélectionné",
  215. "muscle_selected#other": "{count} muscles sélectionnés",
  216. "equipment_selected#zero": "0 équipement sélectionné",
  217. "equipment_selected#one": "1 équipement sélectionné",
  218. "equipment_selected#other": "{count} équipements sélectionnés",
  219. selected: "Sélectionné",
  220. total: "Total",
  221. equipment_ready: "équipement prêt",
  222. equipment_ready_plural: "équipements prêts",
  223. },
  224. selection: {
  225. choose_your_arsenal: "Choisissez votre arsenal",
  226. select_equipment_description: "Sélectionnez l'équipement pour débloquer des entraînements personnalisés",
  227. clear_all: "Tout effacer",
  228. muscle_selection_coming_soon: "Sélection des muscles (Bientôt disponible)",
  229. muscle_selection_description: "Sélectionnez le(s) muscle(s) que vous voulez entraîner en cliquant dessus.",
  230. exercise_selection_coming_soon: "Sélection des exercices (Bientôt disponible)",
  231. exercise_selection_description: "Cette étape vous montrera des recommandations d'exercices personnalisées.",
  232. },
  233. session: {
  234. back_to_workout: "Retour à l'entraînement",
  235. congrats: "Bravo, séance terminée ! 🎉",
  236. congrats_subtitle: "Tu l'as fait !",
  237. see_instructions: "Voir les instructions",
  238. finish_set: "Valider la série",
  239. finish_session: "Terminer la séance",
  240. bodyweight: "Poids du corps",
  241. weight: "Poids",
  242. reps: "Répétitions",
  243. time: "Temps",
  244. next_exercise: "Exercice suivant",
  245. add_set: "Ajouter une série",
  246. add_column: "Ajouter une colonne",
  247. add_row: "Ajouter une ligne d'attributs",
  248. remove_column: "Supprimer une colonne",
  249. set_number: "Série {number}",
  250. set_number_plural: "Séries {number}",
  251. set_number_singular: "Série {number}",
  252. set_number_plural_singular: "Séries {number}",
  253. workout_in_progress: "Entraînement en cours",
  254. started_at: "Débuté à",
  255. quit_workout: "Quitter l'entraînement",
  256. elapsed_time: "Temps écoulé",
  257. chronometer: "Chronomètre",
  258. total_workout_time: "Temps total d'entraînement",
  259. exercise_progress: "Progression",
  260. total_volume: "Volume Total",
  261. current_exercise: "Exercice actuel",
  262. complete: "Terminé",
  263. active: "Actif",
  264. 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.",
  265. no_exercise_selected: "Aucun exercice sélectionné",
  266. quit_workout_title: "Quitter l'entraînement ?",
  267. progress: "Progression",
  268. quit_warning: "Êtes-vous sûr de vouloir quitter ? Vous pouvez sauvegarder votre progression ou la perdre complètement.",
  269. save_and_quit: "Sauvegarder & Quitter",
  270. quit_without_save: "Quitter sans sauvegarder",
  271. continue_workout: "Continuer l'entraînement",
  272. history: "Historique des séances [{count}]",
  273. no_workout_yet: "Aucune séance enregistrée.",
  274. start: "début",
  275. end: "fin",
  276. exercise: "EXERCICE",
  277. repeat: "Répéter",
  278. delete: "Supprimer",
  279. },
  280. attribute_value: {
  281. bodyweight: "Poids du corps",
  282. strength: "Force",
  283. powerlifting: "Powerlifting",
  284. calisthenic: "Calisthénie",
  285. plyometrics: "Plyométrie",
  286. stretching: "Étirement",
  287. strongman: "Strongman",
  288. cardio: "Cardio",
  289. stabilization: "Stabilisation",
  290. power: "Puissance",
  291. resistance: "Résistance",
  292. crossfit: "CrossFit",
  293. weightlifting: "Haltérophilie",
  294. neck: "Cou",
  295. lats: "Grands dorsaux",
  296. adductors: "Adducteurs",
  297. abductors: "Abducteurs",
  298. groin: "Aine",
  299. full_body: "Corps entier",
  300. rotator_cuff: "Coiffe des rotateurs",
  301. hip_flexor: "Fléchisseur de hanche",
  302. achilles_tendon: "Tendon d'Achille",
  303. fingers: "Doigts",
  304. smith_machine: "Smith machine",
  305. other: "Autre",
  306. ez_bar: "Barre EZ",
  307. machine: "Machine",
  308. desk: "Bureau",
  309. none: "Aucun",
  310. cable: "Câble",
  311. medicine_ball: "Medecine ball",
  312. swiss_ball: "Swiss ball",
  313. foam_roll: "Foam roll",
  314. trx: "TRX",
  315. box: "Box",
  316. ropes: "Cordes",
  317. spin_bike: "Vélo de spinning",
  318. step: "Step",
  319. bosu: "BOSU",
  320. tyre: "Pneu",
  321. sandbag: "Sac de sable",
  322. pole: "Barre verticale",
  323. wall: "Mur",
  324. bar: "Barre",
  325. rack: "Rack",
  326. car: "Voiture",
  327. sled: "Luge",
  328. chain: "Chaîne",
  329. skierg: "SkiErg",
  330. rope: "Corde",
  331. na: "N/A",
  332. isolation: "Isolation",
  333. compound: "Polyarticulaire",
  334. },
  335. },
  336. commons: {
  337. signup_with: "S'inscrire avec {provider}",
  338. signin_with: "Se connecter avec {provider}",
  339. signup: "S'inscrire",
  340. login: "Se connecter",
  341. connecting: "Connexion...",
  342. password_reset_success: "Le mot de passe a été réinitialisé avec succès",
  343. login_to_your_account_title: "Connectez-vous à votre compte",
  344. login_to_your_account_subtitle: "Entrez vos identifiants ci-dessous pour vous connecter",
  345. password_forgot: "Mot de passe oublié ?",
  346. dont_have_account: "Vous n'avez pas de compte ?",
  347. already_have_account: "Vous avez déjà un compte ?",
  348. or: "Ou",
  349. add: "Ajouter",
  350. your_feminine: "ta",
  351. password: "Mot de passe",
  352. email: "Email",
  353. logout: "Déconnexion",
  354. first_name: "Prénom",
  355. last_name: "Nom",
  356. verify_password: "Vérifier le mot de passe",
  357. submit: "Envoyer",
  358. upload: "Télécharger",
  359. cancel: "Annuler",
  360. save_changes: "Enregistrer les modifications",
  361. change: "Changer",
  362. subject: "Sujet",
  363. message: "Message",
  364. saving: "Enregistrement...",
  365. edit: "Modifier",
  366. more_options: "Plus d'options",
  367. open_link: "Ouvrir le lien",
  368. hide: "Masquer",
  369. make_visible: "Rendre visible",
  370. delete: "Supprimer",
  371. share: "Partager",
  372. title: "Titre",
  373. subtitle: "Sous-titre",
  374. content: "Contenu",
  375. save: "Enregistrer",
  376. button: "Bouton",
  377. card: "Carte",
  378. go_back: "Retour",
  379. next: "Suivant",
  380. choose_image: "Choisir une image",
  381. soon: "Bientôt",
  382. coming_soon_with_emoji: "Bientôt disponible 🤫",
  383. no_image: "Aucune image",
  384. description: "Description",
  385. price: "Prix",
  386. duration: "Durée",
  387. location: "Lieu",
  388. schedule: "Horaire",
  389. participants_info: "Informations sur les participants",
  390. title_placeholder: "Entrez le titre",
  391. description_placeholder: "Entrez la description",
  392. changes_saved: "Les modifications ont été sauvegardées",
  393. replace: "Remplacer",
  394. loading: "Chargement...",
  395. image_deleted: "L'image a été supprimée",
  396. discover_workoutcool: "Découvrir gratuitement",
  397. received_just_now: "Reçu à l'instant",
  398. copied: "Copié",
  399. url_copied: "L'URL a été copiée",
  400. copy_failed: "Erreur lors de la copie de l'URL",
  401. accordion: "Accordéon",
  402. image: "Image",
  403. other: "Autre",
  404. register: "S'inscrire",
  405. instantly: "instantanément",
  406. immediately: "immédiatement",
  407. link: "Lien",
  408. accept: "Accepter",
  409. deny: "Refuser",
  410. invalid_input: "Saisie invalide. Veuillez vérifier les erreurs.",
  411. copy_url: "Copier l'URL",
  412. page_url: "URL de la page",
  413. saving_short: "Enregistrement...",
  414. saved_short: "Sauvegardé",
  415. looks_like_you_are_lost: "Il semble que vous soyez perdu",
  416. the_page_you_are_looking_for_is_not_available: "La page que vous cherchez n'est pas disponible",
  417. go_to_home: "Retour à l'accueil",
  418. go_to_profile: "Aller à mon profil",
  419. terms: "Conditions d'utilisation",
  420. privacy: "Politique de confidentialité",
  421. sales_terms: "Conditions de vente",
  422. consent_banner: "Nous utilisons des cookies pour améliorer votre expérience. En cliquant sur Accepter, vous acceptez nos cookies.",
  423. about: "À propos",
  424. profile: "Profil",
  425. donate: "Faire un don",
  426. my_account: "Mon compte",
  427. dashboard: "Tableau de bord",
  428. home: "Accueil",
  429. changelog: "Annonces & notes de version",
  430. stop_impersonation_button: "Arrêter l'impersonnalisation",
  431. impersonating_user_label: "Impersonnification en cours",
  432. re_hello: "Re Hello",
  433. back_to_login: "Retour à la connexion",
  434. sending: "Envoi...",
  435. send_me_link: "Envoyer un lien",
  436. extremely_dissatisfied: "Très insatisfait",
  437. somewhat_dissatisfied: "Insatisfait",
  438. neutral: "Neutre",
  439. satisfied: "Satisfait",
  440. support: "Support",
  441. change_language: "Changer de langue",
  442. in_progress: "En cours",
  443. },
  444. } as const;