{
  "components/contributing": {
    "tasksList.typeSwitcher.dockerDescription": "Aide à améliorer nos Dockerfiles",
    "tasksList.typeSwitcher.codingDescription": "Écris du code de production",
    "tasksList.typeSwitcher.contentDescription": "Développe des exercices et des concepts",
    "tasksList.knowledgeSwitcher.none": "Aucune",
    "tasksList.knowledgeSwitcher.elementary": "Élémentaire",
    "tasksList.knowledgeSwitcher.intermediate": "Intermédiaire",
    "tasksList.knowledgeSwitcher.advanced": "Avancé",
    "tasksList.knowledgeSwitcher.anyKnowledge": "Toute connaissance",
    "tasksList.knowledgeSwitcher.multiple": "Multiple",
    "tasksList.knowledgeSwitcher.label": "Connaissances",
    "tasksList.knowledgeSwitcher.noneDescription": "Aucune connaissance préalable d'Exercism requise",
    "tasksList.knowledgeSwitcher.elementaryDescription": "Peu de connaissances d'Exercism requises",
    "tasksList.knowledgeSwitcher.intermediateDescription": "Pas mal de connaissances d'Exercism requises",
    "tasksList.knowledgeSwitcher.advancedDescription": "Des connaissances approfondies d'Exercism requises",
    "tasksList.moduleSwitcher.generator": "Générateur",
    "tasksList.moduleSwitcher.learningExercise": "Exercice d'apprentissage",
    "tasksList.moduleSwitcher.practiceExercise": "Exercice d'entraînement",
    "tasksList.moduleSwitcher.concept": "Concept",
    "tasksList.moduleSwitcher.testRunner": "Exécuteur de tests",
    "tasksList.moduleSwitcher.representer": "Representer",
    "tasksList.moduleSwitcher.analyzer": "Analyseur",
    "tasksList.moduleSwitcher.multiple": "Multiple",
    "tasksList.moduleSwitcher.allModules": "Tous les modules",
    "tasksList.moduleSwitcher.label": "Module",
    "tasksList.sorter.sortByMostRecent": "Trier par plus récent",
    "tasksList.sorter.sortByOldest": "Trier par plus ancien",
    "tasksList.sorter.sortByTrack": "Trier par parcours",
    "tasksList.task.new": "Nouveau",
    "tasksList.sizeSwitcher.allSizes": "Toutes les tailles",
    "tasksList.sizeSwitcher.tiny.title": "Minuscule",
    "tasksList.sizeSwitcher.tiny.description": "Une très petite quantité de travail",
    "tasksList.sizeSwitcher.small.title": "Petit",
    "tasksList.sizeSwitcher.small.description": "Une petite quantité de travail",
    "tasksList.sizeSwitcher.medium.title": "Moyen",
    "tasksList.sizeSwitcher.medium.description": "Une quantité de travail moyenne",
    "tasksList.sizeSwitcher.large.title": "Grand",
    "tasksList.sizeSwitcher.large.description": "Une grande quantité de travail",
    "tasksList.sizeSwitcher.massive.title": "Énorme",
    "tasksList.sizeSwitcher.massive.description": "Une quantité de travail énorme",
    "tasksList.sizeSwitcher.multiple": "Multiple",
    "tasksList.sizeSwitcher.extraSmall": "Très petit",
    "tasksList.sizeSwitcher.label": "Taille",
    "tasksList.showingTasks": "Affichage de {{totalCount}} {{task}}",
    "tasksList.outOfPossibleTasks": "sur un total possible de {{unscopedTotal}} {{unscopedTask}}",
    "tasksList.resetFilters": "Réinitialiser les filtres",
    "contributorsList.thisWeek": "Cette semaine",
    "contributorsList.last30Days": "30 derniers jours",
    "contributorsList.lastYear": "L'année dernière",
    "contributorsList.allTime": "Depuis le début",
    "contributorsList.categorySwitcher.authoring": "Rédaction",
    "contributorsList.categorySwitcher.building": "Construction",
    "contributorsList.categorySwitcher.maintaining": "Maintenance",
    "contributorsList.categorySwitcher.mentoring": "Mentorat",
    "contributorsList.categorySwitcher.allCategories": "Toutes les catégories",
    "tasksList.actionSwitcher.create": "Créer",
    "tasksList.actionSwitcher.sync": "Synchroniser",
    "tasksList.actionSwitcher.improve": "Améliorer",
    "tasksList.actionSwitcher.proofread": "Relire",
    "tasksList.actionSwitcher.fix": "Corriger",
    "tasksList.actionSwitcher.all": "Toutes",
    "tasksList.actionSwitcher.multiple": "Multiples",
    "tasksList.actionSwitcher.label": "Action",
    "tasksList.actionSwitcher.createDescription": "Travailler sur quelque chose à partir de zéro",
    "tasksList.actionSwitcher.syncDescription": "Synchroniser le contenu avec sa dernière version",
    "tasksList.actionSwitcher.improveDescription": "Améliorer les fonctionnalités / le contenu existants",
    "tasksList.actionSwitcher.proofreadDescription": "Relire le texte",
    "tasksList.actionSwitcher.fixDescription": "Corriger un problème",
    "tasksList.typeSwitcher.docs": "Docs",
    "tasksList.typeSwitcher.ci": "CI",
    "tasksList.typeSwitcher.coding": "Code",
    "tasksList.typeSwitcher.docker": "Docker",
    "tasksList.typeSwitcher.content": "Contenu",
    "tasksList.typeSwitcher.allTypes": "Tous les types",
    "tasksList.typeSwitcher.multiple": "Multiples",
    "tasksList.typeSwitcher.label": "Type",
    "tasksList.typeSwitcher.docsDescription": "Aider à construire la documentation d'Exercism",
    "tasksList.typeSwitcher.ciDescription": "Automatisation et intégration continue"
  },
  "components/common/exercise-widget": {
    "mentoringStatus.inProgress": "Mentorat en cours",
    "mentoringStatus.finished": "Mentorat terminé",
    "info.titleInTrack": "dans <0/> <1>{{trackTitle}}</1>",
    "info.iterationsCount_one": "{{count}} itération",
    "info.iterationsCount_many": "{{count}} itérations",
    "info.iterationsCount_other": "{{count}} itérations",
    "info.hasNotifications": "a des notifications",
    "info.outdated.solutionWasSolved": "Cette solution a été résolue sur une version plus ancienne de cet exercice",
    "solutionStatusTag.published": "Publiée",
    "solutionStatusTag.completed": "Terminée",
    "solutionStatusTag.inProgress": "En cours",
    "exerciseStatusTag.recommended": "Recommandé",
    "exerciseStatusTag.available": "Disponible",
    "exerciseStatusTag.locked": "Verrouillé",
    "difficulty.easy": "Facile",
    "difficulty.medium": "Moyen",
    "difficulty.hard": "Difficile",
    "exerciseTypeTag.learningExercise": "Exercice d'apprentissage",
    "exerciseTypeTag.tutorialExercise": "Exercice tutoriel",
    "mentoringStatus.requested": "Mentorat demandé"
  },
  "components/common/Introducer.tsx": {
    "introducer.unableToHide": "Impossible de masquer la présentation",
    "introducer.gotIt": "Compris 👍",
    "introducer.permanentlyHide": "Masquer définitivement cette présentation"
  },
  "components/common/Loading.tsx": {
    "loading": "Chargement"
  },
  "components/common/markdown-editor-form": {
    "mobileIdleFormFooter.send": "Envoyer",
    "newFormFooter.cancel": "Annuler",
    "newFormFooter.send": "Envoyer",
    "editFormFooter.cancel": "Annuler",
    "editFormFooter.delete": "Supprimer",
    "editFormFooter.update": "Mettre à jour"
  },
  "components/common/MarkdownEditor.tsx": {
    "previewUnavailable": "Aperçu indisponible",
    "unableToParseMarkdown": "Impossible d'analyser le markdown",
    "loading": "Chargement..."
  },
  "components/common/MarkdownEditorForm.tsx": {
    "areYouSureYouWantToDeleteThis": "Veux-tu vraiment supprimer ceci ?"
  },
  "components/common/MedianWaitTime.tsx": {
    "medianWaitTime.avgWaitTime": "Temps d'attente moyen : ~"
  },
  "components/common/MentorDiscussionSummary.tsx": {
    "mentorDiscussionSummary.inProgress": "En cours",
    "mentorDiscussionSummary.commentCount_one": "{{postsCount}} commentaire",
    "mentorDiscussionSummary.commentCount_many": "{{postsCount}} commentaires",
    "mentorDiscussionSummary.commentCount_other": "{{postsCount}} commentaires"
  },
  "components/common/MultipleSelect.tsx": {
    "multipleSelect.clickToChange": "Cliquer pour modifier"
  },
  "components/common/Pagination.tsx": {
    "pagination.first": "Premier",
    "pagination.previous": "Précédent",
    "pagination.goToPage": "Aller à la page {{page}}",
    "pagination.goToPreviousPage": "Aller à la page précédente",
    "pagination.goToNextPage": "Aller à la page suivante",
    "pagination.goToFirstPage": "Aller à la première page",
    "pagination.goToLastPage": "Aller à la dernière page",
    "pagination.next": "Suivant",
    "pagination.last": "Dernier"
  },
  "components/common/ProcessingStatusSummary.tsx": {
    "processing": "Traitement en cours",
    "failed": "Échoué",
    "passed": "Réussi",
    "processingStatus": "État du traitement"
  },
  "components/common/ProminentLink.tsx": {
    "prominentLink.opensInNewWindow": "Le lien s'ouvre dans une nouvelle fenêtre ou un nouvel onglet"
  },
  "components/common/Pronouns.tsx": {
    "pronouns.ratherThanUsingPronouns": "Plutôt que d'utiliser des pronoms (il, elle, etc.), désigne toujours {{handle}} par {{handle}}.",
    "pronouns.doNotUsePronouns": "Ne pas utiliser de pronoms",
    "pronouns.whenReferringTo": "Pour parler de @{{handle}}, utilise les pronoms",
    "pronouns.forExampleIfLeaving": "Par exemple, si tu laisses un témoignage pour {{handle}}, tu pourrais dire :",
    "pronouns.wasGreat": "{{handle}} a été formidable. {{pronoun1}} a répondu à toutes mes questions. Je recommanderai {{pronoun2}} à d'autres, car {{pronoun3}} conseils ont été très utiles."
  },
  "components/common/Reputation.tsx": {
    "reputation.valueReputation": "{{value}} de réputation",
    "reputation.reputation": "Réputation"
  },
  "components/training-data/dashboard": {
    "taggableCodeList.oopsSomethingWentWrong": "Oups ! Un problème est survenu !",
    "taggableCodeList.retry": "Réessayer",
    "dashboardHeader.filterExerciseName": "Filtrer par nom d'exercice",
    "dashboardTabs.needsTagging": "À taguer",
    "dashboardTabs.needsChecking": "À vérifier",
    "dashboardTabs.needsCheckingAdmin": "À vérifier (admin)",
    "taggableCodeList.noTrainingData": "Aucune donnée d'entraînement"
  },
  "discussion-batch": {
    "components.mentoring.discussion.addDiscussionPost.thisDiscussionHasEnded": "<strong>Cette discussion est terminée.</strong> Tu as encore des choses à dire ? Tu peux <em>toujours publier</em>.",
    "components.mentoring.discussion.discussionActions.ended": "Terminée",
    "components.mentoring.discussion.finishButton.endDiscussion": "<hint>Terminer la discussion</hint>"
  },
  "session-batch-1": {
    "components.mentoring.session.automatedFeedbackModal.automatedAnalysis": "Analyse automatisée",
    "components.mentoring.session.automatedFeedbackModal.forIteration": "pour l'itération {{iteration}}",
    "components.mentoring.session.automatedFeedbackModal.loadingAutomatedFeedback": "Chargement du retour automatisé",
    "components.mentoring.session.automatedFeedbackSummary.youReceivedAutomatedFeedback": "Tu as reçu un retour automatisé",
    "components.mentoring.session.automatedFeedbackSummary.studentReceivedAutomatedFeedback": "L'apprenant a reçu un retour automatisé",
    "components.mentoring.session.automatedFeedbackSummary.opensInAModal": "S'ouvre dans une fenêtre modale",
    "components.mentoring.session.cancelledRequestModal.mentoringRequestCancelled": "Demande de mentorat annulée",
    "components.mentoring.session.cancelledRequestModal.studentCancelledRequest": "L'apprenant a annulé cette demande de mentorat. On sait que c'est extrêmement frustrant une fois que tu as commencé à répondre 😞 Désolé pour le désagrément !",
    "components.mentoring.session.cancelledRequestModal.thankYouForBeingAMentor": "Merci d'être mentor sur Exercism 💙",
    "components.mentoring.session.cancelledRequestModal.backToMentorRequests": "Retour aux demandes de mentorat",
    "components.mentoring.session.cancelledRequestModal.closeThisModal": "Fermer cette fenêtre modale",
    "components.mentoring.session.filePanel.instructions": "Instructions",
    "components.mentoring.session.filePanel.tests": "Tests"
  },
  "session-batch-2": {
    "components.mentoring.session.guidance.theExemplarSolution": "La solution exemplaire",
    "components.mentoring.session.guidance.tryAndGuideStudent": "Essaie de guider l'apprenant vers cette solution. C'est le meilleur objectif à atteindre pour lui à ce stade du parcours.",
    "components.mentoring.session.guidance.exerciseNotes": "Notes sur l'exercice",
    "components.mentoring.session.guidance.trackNotes": "Notes sur le parcours",
    "components.mentoring.session.guidance.howYouSolvedExercise": "Comment tu as résolu l'exercice",
    "components.mentoring.session.guidance.automatedFeedback": "Retour automatisé",
    "components.mentoring.session.iterationButton.new": "Nouvelle",
    "components.mentoring.session.iterationButton.comment": "commentaire",
    "components.mentoring.session.iterationButton.comments": "commentaires",
    "components.mentoring.session.iterationButton.goToIteration": "Aller à l'itération {{idx}}",
    "components.mentoring.session.iterationMarker.iterationWasSubmitted": "<0>Itération {{idx}}</0> a été soumise",
    "components.mentoring.session.iterationsList.goToPreviousIteration": "Aller à l'itération précédente",
    "components.mentoring.session.iterationsList.previous": "Précédente",
    "components.mentoring.session.iterationsList.goToNextIteration": "Aller à l'itération suivante",
    "components.mentoring.session.iterationsList.next": "Suivante",
    "components.mentoring.session.iterationsList.leftArrow": "Flèche gauche",
    "components.mentoring.session.iterationsList.rightArrow": "Flèche droite",
    "components.mentoring.session.guidance.feedbackHere": "Retour ici"
  },
  "session-batch-3": {
    "components.mentoring.session.iterationView.iterationDeleted": "Cette itération a été supprimée",
    "components.mentoring.session.linkButton.conversationLinked": "Ton code et la discussion de mentorat sont actuellement liés.",
    "components.mentoring.session.linkButton.conversationLinkedDescription": "Cela signifie que si tu navigues vers une autre itération, la discussion de mentorat suivra, et inversement.",
    "components.mentoring.session.linkButton.clickToUnlink": "Clique ou appuie sur l'icône pour délier.",
    "components.mentoring.session.linkButton.conversationUnlinked": "Ton code et ta discussion de mentorat ne sont actuellement pas liés.",
    "components.mentoring.session.linkButton.conversationUnlinkedDescription": "Cela signifie que les panneaux de gauche et de droite fonctionnent indépendamment.",
    "components.mentoring.session.linkButton.clickToLink": "Clique ou appuie sur l'icône pour lier.",
    "components.mentoring.session.linkButton.linkConversation": "Lie la conversation",
    "components.mentoring.session.mentoringNote.mentoringDocs": "Consulte notre <a>documentation sur le mentorat</a> pour plus d'informations.",
    "components.mentoring.session.mentorNotes.noNotesYet": "Il n'y a pas encore de notes de mentorat pour {{guidanceType}}. Les notes de mentorat sont rédigées par notre communauté. Aide-nous à les lancer pour cet exercice en envoyant une <0>Pull Request sur GitHub</0>.",
    "components.mentoring.session.mentorNotes.improveNotes": "Améliore ces notes",
    "components.mentoring.session.mentorNotes.communityNotes": "Ces notes sont rédigées par notre communauté. Aide-nous à les améliorer en envoyant une <0>Pull Request sur GitHub</0>.",
    "components.mentoring.session.previousSessionsLink.opensInModal": "S'ouvre dans une fenêtre modale",
    "components.mentoring.session.previousSessionsLink.seePreviousSessions": "Voir les {{numPrevious}} {{sessions}} d'avant"
  },
  "components/modals/student/finish-mentor-discussion-modal": {
    "rateMentorStep.feedbackRequest": "Pour nous aider, nous et nos mentors, à comprendre si nous faisons bien les choses, nous aimerions beaucoup avoir ton avis sur ta discussion avec {{mentorHandle}}. Un bon mentor répond à tes questions, te fait découvrir de nouvelles idées ou t'encourage à essayer de nouvelles choses.",
    "rateMentorStep.howWasDiscussion": "Comment s'est passée ta discussion avec {{mentorHandle}} ?",
    "rateMentorStep.problematic": "Problématique",
    "rateMentorStep.acceptable": "Acceptable",
    "rateMentorStep.itWasGood": "C'était bien !",
    "successfulDonationStep.youveDonatedSuccessfully": "Tu as fait un don de {{amount}} avec succès, merci 💙",
    "successfulDonationStep.trulyAppreciateSupport": "Nous apprécions vraiment ton soutien. Exercism ne serait pas possible sans des contributeurs aussi formidables que toi. Tu recevras bientôt un email avec la confirmation de ton don et ton reçu.",
    "successfulDonationStep.youVeEarnedTheBadge": "Tu as gagné le badge <0>Supporter</0> !",
    "successfulDonationStep.continueToExercise": "Continuer vers l'exercice",
    "requeuedStep.solutionRequeued": "Ta solution a été remise dans la file d'attente.",
    "requeuedStep.requedExplanation": "Ta solution a été remise dans la file d'attente et un autre mentor s'en occupera sans doute bientôt. Nous espérons que ta prochaine session de mentorat sur cette solution sera positive !",
    "requeuedStep.goToSolution": "Revenir à ta solution",
    "testimonialField.writeTestimonial": "Écris ton témoignage ici",
    "testimonialField.minimum": "minimum",
    "unhappyStep.thankYouForReport": "Merci pour ton signalement",
    "unhappyStep.reportExplanation": "Merci de nous l'avoir signalé. Nous allons examiner ton signalement et te répondre dans les prochains jours. En attendant, nous espérons que ta prochaine expérience sera meilleure.",
    "unhappyStep.solutionRequeued": "Ta solution a été remise dans la file d'attente",
    "unhappyStep.requeueExplanation": "Ta solution a été remise dans la file d'attente et un autre mentor s'en occupera sans doute bientôt. Nous espérons que ta prochaine session de mentorat sur cette solution sera positive !",
    "unhappyStep.hopeBetterExperience": "Nous espérons que ta prochaine expérience sera meilleure",
    "unhappyStep.sorryExplanation": "Désolé que cette expérience n'ait pas été à la hauteur. Nous espérons que la prochaine sera meilleure.",
    "unhappyStep.goToSolution": "Revenir à ta solution",
    "addTestimonialStep.gladGoodDiscussion": "Nous sommes ravis que ta discussion se soit bien passée !",
    "addTestimonialStep.mentorsVolunteerTime": "Les mentors donnent bénévolement de leur temps. Un beau témoignage est une excellente façon de les remercier et de les encourager à continuer d'aider les autres.",
    "addTestimonialStep.leaveTestimonial": "Laisse un témoignage à {{mentorHandle}} (facultatif)",
    "addTestimonialStep.back": "Retour",
    "addTestimonialStep.skip": "Passer",
    "addTestimonialStep.finish": "Terminer",
    "celebrationStep.thankYouForTestimonial": "Merci d'avoir laissé un témoignage 💙",
    "celebrationStep.helpedMakeDay": "Tu as embelli la journée de {{mentorHandle}}.",
    "celebrationStep.shareExperience": "N'hésite pas à partager ton expérience d'Exercism avec d'autres.",
    "celebrationStep.backToExercise": "Retour à l'exercice",
    "satisfiedStep.sorryMentoringWasntGreat": "Désolé que ce mentorat n'ait pas été à la hauteur.",
    "satisfiedStep.putExerciseBack": "Souhaites-tu remettre cet exercice dans la file d'attente pour qu'un autre mentor y jette un œil ?",
    "satisfiedStep.back": "Retour",
    "satisfiedStep.noThanks": "Non merci",
    "satisfiedStep.yesPlease": "Oui, avec plaisir",
    "reasonSelect.codeOfConductViolation": "Violation du code de conduite",
    "reasonSelect.wrongOrMisleadingInformation": "Informations erronées ou trompeuses",
    "reasonSelect.other": "Autre",
    "donationStep.oneMoreRequest": "Une dernière requête…",
    "reportStep.howCanWeHelp": "Comment pouvons-nous t’aider ?",
    "reportStep.explanation": "Nous sommes vraiment désolés que tu aies vécu une discussion de mentorat problématique, et nous aimerions t’aider à faire en sorte que ta prochaine expérience soit positive.",
    "reportStep.resolveIssue": "Comment souhaites-tu résoudre le problème ?",
    "reportStep.blockMentor": "Bloquer les interactions futures avec ce mentor",
    "reportStep.requeueSolution": "Remettre ta solution dans la file d’attente de mentorat",
    "reportStep.reportDiscussion": "Signaler cette discussion à un administrateur",
    "reportStep.whyReporting": "Pourquoi signales-tu cette conversation ?",
    "reportStep.whatWentWrong": "Qu’est-ce qui s’est mal passé ?",
    "reportStep.reportAssurance": "Ton signalement sera transmis à nos administrateurs, qui l’examineront plus en détail",
    "reportStep.back": "Retour",
    "reportStep.finish": "Terminer",
    "rateMentorStep.reviewDiscussion": "Il est temps d’évaluer cette discussion",
    "rateMentorStep.yourDiscussionTimedOut": "Ta discussion a expiré",
    "rateMentorStep.mentorFinishedMentoring": "{{mentorHandle}} a terminé de te mentorer sur",
    "donationStep.areYouFindingHelpful": "Trouves-tu Exercism utile ?",
    "donationStep.cantAfford": "Pas les moyens ?",
    "donationStep.shareMessage": "Si tu n'as pas les moyens de faire un don, mais que tu aimerais aider d'une autre manière, parle d'Exercism à tes amis et à tes collègues, et fais-nous connaître sur les réseaux sociaux. Plus il y a de personnes qui nous utilisent, plus nous recevons de dons !",
    "donationStep.wantToKnowMore": "Tu veux en savoir plus ?",
    "donationStep.whyWeNeedDonations": "J'ai préparé une petite vidéo qui explique pourquoi nous avons besoin de dons et comment nous les utilisons 👇",
    "donationStep.continueWithoutDonating": "Continuer sans faire de don",
    "donationStep.lessThanOnePercentDonate": "Moins de 1 % des personnes qui utilisent Exercism choisissent de faire un don. Si tu en as les moyens, fais partie de ces personnes.",
    "reportStep.reportPlaceholder": "Explique précisément pourquoi tu fais ce signalement et raconte-nous ce qui s'est passé."
  },
  "components/editor/testComponents": {
    "testsList.details": "nom : {{name}}, statut : {{status}}, sortie : {{output}}",
    "testRunSummary.noTestResults": "Aucun résultat de test",
    "testRunSummary.trackNotSupportTests": "Ce parcours ne prend pas en charge l'exécution automatique des tests de l'exercice.",
    "testRunSummary.exerciseNotSupportTests": "Cet exercice ne prend pas en charge l'exécution automatique de ses tests.",
    "testRunSummary.testingCode": "On teste ton code pour vérifier qu'il fonctionne",
    "testRunSummary.usuallyTakes": "Cela prend généralement entre {{averageTestDuration}} et {{averageTestDurationMultiplied}} secondes.",
    "testRunSummary.tasksCompleted": "{{completedTasks}} / {{totalTasks}} tâches terminées",
    "testRunSummary.allTasksPassed": "Toutes les tâches sont réussies",
    "testRunSummary.allTestsPassed": "Tous les tests sont réussis",
    "testRunSummary.anErrorOccurred": "Une erreur s'est produite",
    "testRunSummary.yourTestsTimedOut": "Tes tests ont expiré",
    "testRunSummary.sweetLooksLike": "Génial. On dirait que tu as résolu l'exercice !",
    "testRunSummary.goodJobContinueImprove": "Bravo ! Tu peux continuer à améliorer ton code ou, si tu as terminé, soumettre une itération pour obtenir un retour automatisé et éventuellement demander du mentorat.",
    "testRunSummary.weReceivedError": "On a reçu l'erreur suivante lors de l'exécution de ton code :",
    "testRunSummary.errorOccurredWhileRunningTests": "Une erreur s'est produite pendant l'exécution de tes tests. Cela peut signifier qu'il y a eu un problème dans notre infrastructure, ou que quelque chose dans ton code fait planter nos systèmes.",
    "testRunSummary.pleaseCheckCode": "Vérifie ton code et, si rien ne semble poser problème, essaie de relancer les tests.",
    "testRunSummary.yourTestsTimedOutSuggestsCodeRunningSlowly": "Tes tests ont expiré. Cela peut signifier qu'il y a eu un problème dans notre infrastructure, mais il est plus probable que ton code s'exécute lentement. Y a-t-il une boucle infinie ou quelque chose du genre ?",
    "testRunSummary.runningTests": "Exécution des tests…",
    "testRunSummary.estimatedRunningTime": "Temps d'exécution estimé ~ {{averageTestDuration}} s",
    "testRunSummary.cancel": "Annuler",
    "testRunOutput.v1Message": "",
    "testPanel.hidden": "",
    "testsGroupedByStatusList.test_one": "{{count}} test",
    "testsGroupedByStatusList.test_many": "{{count}} tests",
    "testsGroupedByStatusList.test_other": "{{count}} tests",
    "testsGroupedByStatusList.passed": "réussis",
    "testsGroupedByStatusList.failed": "échoués",
    "testRunSummaryByStatusHeaderMessage.testFailure": "échec de test",
    "testRunSummaryByStatusHeaderMessage.testFailures": "échecs de test",
    "testRunSummaryByStatusHeaderMessage.testsFailed": "Tests échoués",
    "testsGroupedByTaskList.task": "Tâche",
    "testsGroupedByTaskList.jumpToInstructions": "Va aux instructions",
    "testSummary.passed": "Réussi",
    "testSummary.failed": "Échoué",
    "testSummary.test": "Test",
    "testSummary.codeRun": "Exécution du code",
    "testSummary.testFailure": "Échec de test",
    "testSummary.testError": "Erreur de test",
    "testSummary.yourOutput": "Ta sortie",
    "testContentWrapper.fileNotFound": "Fichier introuvable",
    "jumpToInstructionButton.jumpToInstructions": "Va aux instructions"
  },
  "components/favorites-list": {
    "index.filteringRestricted": "Filtrage réservé aux Insiders",
    "index.searchPlaceholder": "Rechercher par nom d'auteur",
    "index.defaultError": "Impossible de récupérer les solutions",
    "index.noResults.title": "Aucune solution trouvée.",
    "index.noResults.description": "Essaie de modifier tes filtres pour trouver tes solutions favorites.",
    "index.noFavoritesYet.title": "Pas encore de favoris.",
    "index.noFavoritesYet.description": "Mets une étoile aux solutions pour les ajouter à ta liste de favoris."
  },
  "components/github-syncer-widget": {
    "miniAdvert.backupYourSolutionsToGitHub": "Sauvegarde tes solutions sur GitHub",
    "miniAdvert.automaticallyBackupSolutions": "Sauvegarde automatiquement tes solutions sur GitHub grâce à notre outil de sauvegarde automatisée.",
    "miniAdvert.configureBackups": "Configurer les sauvegardes",
    "activeAutomaticSync.autoBackupEnabled": "Sauvegarde automatique activée",
    "activeAutomaticSync.newIterationsAutoBackupSolution": "Les nouvelles itérations seront automatiquement sauvegardées sur GitHub. Pour déclencher manuellement une sauvegarde de toutes les itérations de cette solution, utilise le bouton ci-dessous.",
    "activeAutomaticSync.newIterationsAutoBackupIteration": "Les nouvelles itérations de cette solution seront automatiquement sauvegardées sur GitHub. Pour déclencher manuellement une sauvegarde de cette itération, utilise le bouton ci-dessous.",
    "activeAutomaticSync.triggerSolutionBackup": "Déclencher la sauvegarde de la solution",
    "activeAutomaticSync.triggerIterationBackup": "Déclencher la sauvegarde de l'itération",
    "pausedSync.yourSyncerCurrentlyPaused": "Ton synchroniseur est actuellement <0>en pause</0>.",
    "pausedSync.visitSettingsToResumeSyncing": "Consulte tes <0>paramètres</0> pour reprendre la synchronisation.",
    "activeManualSync.automaticSyncsDisabled": "Tu as désactivé les synchronisations automatiques",
    "activeManualSync.clickToBackupSolution": "Clique pour sauvegarder ta solution",
    "miniAdvert.exercism": "Exercism",
    "miniAdvert.syncWith": "Synchroniser avec",
    "miniAdvert.github": "Github",
    "activeAutomaticSync.unknownError": "Erreur inconnue",
    "activeAutomaticSync.errorQueuing": "Erreur lors de la mise en file d'attente de la sauvegarde pour tous les parcours : {{message}}",
    "activeAutomaticSync.backupQueued": "Ta sauvegarde a été mise en file d'attente et devrait être terminée d'ici quelques minutes.",
    "activeAutomaticSync.somethingWentWrong": "Une erreur est survenue lors de la mise en file d'attente de la sauvegarde pour tous les parcours. Réessaie."
  },
  "components/impact/ImpactTestimonial.tsx": {
    "impactTestimonial.saidThisAbout": "a dit ceci à propos de",
    "impactTestimonial.on": "sur"
  },
  "components/impact/map.tsx": {
    "map.someoneJoinedExercism": "Quelqu'un a rejoint Exercism",
    "map.publishedNewSolution": "@{{handle}} a publié une nouvelle solution",
    "map.openedIssue": "@{{handle}} a ouvert une issue sur le GitHub d'Exercism",
    "map.submittedPullRequest": "@{{handle}} a soumis une Pull Request sur le GitHub d'Exercism",
    "map.mergedPullRequest": "@{{handle}} a eu une Pull Request fusionnée sur le GitHub d'Exercism"
  },
  "components/impact/TopLearningCountries.tsx": {
    "topLearningCountries.topLearningCountries": "Principaux pays d'apprentissage"
  },
  "components/insiders": {
    "insidersStatus.eligibleText": "Tu es actuellement éligible à Insiders. Merci de faire partie d'Exercism. Nous sommes ravis de poursuivre ce voyage avec toi !",
    "insidersStatus.ineligibleText": "Mets en place un don mensuel récurrent de 10 $ ou plus pour accéder à Insiders",
    "insidersStatus.eligibleLifetimeText": "Nous t'avons donné un accès à vie à Insiders. Merci de faire partie d'Exercism. Nous sommes ravis de poursuivre ce voyage avec toi !",
    "insidersStatus.unsetText": "Nous sommes en train de calculer ton statut Insiders. Ce bloc se mettra à jour une fois que nous aurons terminé.",
    "insidersStatus.getAccessToInsiders": "Obtenir l'accès à Insiders",
    "insidersStatus.donateToAccessInsiders": "Fais un don à Exercism pour accéder à Insiders",
    "insidersStatus.exercismIsNonProfit": "Exercism est une organisation à but non lucratif indépendante et enregistrée (Royaume-Uni n° 11733062) avec une petite équipe. Tous les dons servent à faire fonctionner et à améliorer la plateforme.",
    "insidersStatus.chooseMonthlyDonation": "1. Choisis ton don mensuel :",
    "insidersStatus.specifyAmount": "Indique le montant",
    "insidersStatus.minimumDonationAmount": "À noter : le montant minimum du don pour l'accès Insiders est de 10,00 $. Merci pour ton soutien !",
    "insidersStatus.choosePaymentMethod": "2. Choisis ton moyen de paiement :",
    "insidersStatus.thankYou": "Merci !",
    "insidersStatus.thankYouForSupport": "Merci infiniment de soutenir Exercism. Ça compte énormément pour nous ! 💜",
    "insidersStatus.setUpMonthlyDonation": "Utilise le formulaire ci-dessous pour mettre en place ton don mensuel. Tu peux modifier ou annuler ton don à tout moment depuis la page des paramètres.",
    "insidersStatus.donationsImprovePlatform": "Exercism est une organisation à but non lucratif indépendante. Tous les dons servent à faire fonctionner et à améliorer la plateforme. Tous les paiements sont traités en toute sécurité par Stripe.",
    "paymentPending.errorFetchingStatus": "Erreur lors de la récupération du statut PayPal"
  },
  "components/contributing/tasks-list/task": {
    "sizeTag.xs": "xs",
    "sizeTag.s": "s",
    "sizeTag.m": "m",
    "sizeTag.l": "l",
    "sizeTag.xl": "xl",
    "trackInfo.for": "<0>pour</0> <2/> <1>{{trackTitle}}</1>",
    "newTag.new": "Nouveau",
    "moduleTag.analyzer": "Analyseur",
    "moduleTag.representer": "Representer",
    "moduleTag.learningExercise": "Exercice d'apprentissage",
    "moduleTag.practiceExercise": "Exercice d'entraînement",
    "moduleTag.testRunner": "Exécuteur de tests",
    "moduleTag.trackGenerators": "Générateurs du parcours",
    "moduleTag.trackConcepts": "Concepts du parcours",
    "actionIcon.action": "Action : {{action}}",
    "knowledgeTag.none": "Connaissances : aucune",
    "knowledgeTag.elementary": "Connaissances : élémentaires",
    "knowledgeTag.intermediate": "Connaissances : intermédiaires",
    "knowledgeTag.advanced": "Connaissances : avancées"
  },
  "components/donations": {
    "transactionForm.orSpecifyCustomAmount": "Ou indique un montant personnalisé :",
    "subscriptionForm.youReCurrentlyDonatingEachMonthToExercism": "Tu fais actuellement un don de {{amount}} par mois à Exercism.",
    "subscriptionForm.thankYou": "Merci !",
    "subscriptionForm.regularDonationsLikeYoursAllowUsToAnticipateOurCashflowAndMakeResponsibleDecisionsAboutHiringAndGrowingExercism": "Les dons réguliers comme le tien nous permettent d'anticiper notre trésorerie et de prendre des décisions responsables en matière de recrutement et de développement d'Exercism.",
    "externalDonationManagement.yourRegularDonationIsManagedByToModifyOrCancelYourRecurringDonationPleaseUseDashboard": "Ton don régulier est géré par {{displayName}}. Pour modifier ou annuler ton don récurrent, utilise le <0>tableau de bord {{displayName}}<0/>.",
    "existingSubscriptionNotice.youAlreadyDonate": "<0>Tu fais déjà un don de {{amount}} par mois à Exercism.</0> Merci ! Pour changer ou gérer cela, rends-toi dans <1>Paramètres de dons<1/>.",
    "existingSubscriptionNotice.extra": "Les <0>dons ponctuels</0> supplémentaires sont toujours reçus avec gratitude !",
    "stripeForm.yourEmailAddressForReceipts": "Ton adresse e-mail (pour les reçus) :",
    "stripeForm.attackInfo": "En raison des <0>attaques de test de cartes</0> fréquentes, nous devons vérifier que tu n'es pas un robot avant de pouvoir accepter un don.",
    "formWithModal.youVeDonatedSuccessfullyThankYou": "Tu as fait un don de {{amount}} avec succès, merci 💙",
    "formWithModal.weTrulyAppreciateYourSupportExercismWouldNotBePossibleWithoutAwesomeContributorsLikeYourselfYouLlBeSentAnEmailShortlyWithYourDonationConfirmationAndReceipt": "Nous apprécions sincèrement ton soutien. Exercism ne serait pas possible sans des contributeurs formidables comme toi. Tu recevras bientôt un e-mail avec la confirmation de ton don et ton reçu.",
    "formWithModal.youVeEarnedTheBadge": "Tu as gagné le badge <0>Supporter</0> !",
    "formWithModal.happyToHelpImDoneHere": "Ravi d'avoir aidé ! J'ai terminé ici 👍",
    "footerForm.customAmount": "Montant personnalisé",
    "footerForm.continue": "Continuer",
    "form.monthlyRecurring": "Mensuel récurrent",
    "form.oneOff": "Ponctuel",
    "stripeForm.progressing": "En cours",
    "stripeForm.eligibleForInsidersAccess": "Éligible à l'accès Insiders",
    "stripeForm.defaultError": "Impossible de récupérer les informations d'abonnement",
    "transactionForm.specifyAmount": "Indique le montant"
  },
  "components/modals/realtime-feedback-modal/feedback-content/no-automated-feedback": {
    "index.noImmediateFeedback": "Pas de retour immédiat",
    "index.ourSystemsDontHave": "Nos systèmes n'ont aucune suggestion immédiate pour améliorer ton code.",
    "index.weRecommendRequesting": "On te recommande de demander une revue de code à l'un des mentors du parcours {{trackTitle}}. Ils te donneront un retour sur ton code et des idées pour le rendre encore plus idiomatique. C'est 100 % gratuit 🙂",
    "index.requestCodeReview": "Demander une revue de code",
    "index.youHaveMentoringSession": "Tu as une discussion de mentorat en cours pour cet exercice.",
    "index.itIsGenerallyGood": "C'est généralement une bonne pratique de dire à ton mentor ce que tu as modifié dans ton code et de lui demander de jeter un œil à ta nouvelle version.",
    "index.goToYourDiscussion": "Aller à ta discussion",
    "index.continueToExercise": "Continuer vers l'exercice",
    "index.noImmediateFeedbackNoSlot": "Pas de retour immédiat",
    "index.youveSubmittedSolution": "Tu as soumis ta solution pour la revue de code.",
    "index.mentorWillTakeLook": "Un mentor jettera un œil à ta solution et (avec un peu de chance) te fournira bientôt un retour utile. Tu recevras une notification et un e-mail quand cela arrivera.",
    "index.viewYourRequest": "Voir ta demande",
    "index.cancel": "Annuler",
    "index.submitForCodeReview": "Soumettre pour la revue de code",
    "index.onceYouSubmit": "Une fois que tu auras soumis, ta demande sera ouverte pour qu'un mentor puisse la rejoindre et commencer à te faire un retour."
  },
  "components/modals/RequestMentoringModal.tsx": {
    "selectExercise.title": "Sélectionne un exercice pour demander du mentorat",
    "selectExercise.searchPlaceholder": "Rechercher un exercice par nom",
    "exercise.numberOfIterations": "Nombre d'itérations"
  },
  "components/modals/ResetAccountModal.tsx": {
    "youAreAboutToReset": "Tu es sur le point de réinitialiser ton compte Exercism",
    "pleaseReadCarefully": "Merci de lire attentivement ceci avant de confirmer la réinitialisation de ton compte.",
    "thisIsIrreversible": "C'est <em>irréversible</em> et tu perdras tout ce que tu as fait sur ton compte.",
    "byResettingAccount": "<strong>En réinitialisant ton compte, tu perdras :</strong>",
    "allSolutionsSubmitted": "Toutes les solutions que tu as soumises",
    "allMentoringReceived": "Tout le mentorat que tu as reçu",
    "allMentoringGiven": "Tout le mentorat que tu as donné et les témoignages reçus.",
    "anyReputationEarned": "Toute la réputation que tu as gagnée grâce au mentorat ou en publiant des solutions.",
    "toConfirmWriteHandle": "Pour confirmer, écris ton nom d'utilisateur <pre>{{handle}}</pre> dans le champ ci-dessous :",
    "cancel": "Annuler",
    "resetAccount": "Réinitialiser le compte",
    "unableToResetAccount": "Impossible de réinitialiser le compte"
  },
  "components/modals/seniority-survey-modal": {
    "bootcampAd.heading": "Voici <strong>Jiki</strong>",
    "bootcampAd.subheading": "Notre nouvelle plateforme de code pour les débutants !",
    "bootcampAd.timeline": "En quelques semaines, tu passeras de zéro à la création de ce genre de choses...",
    "bootcampAd.punchline": "La plateforme pour tous ceux qui veulent vraiment devenir bons en code. Elle est incroyablement efficace. Elle est amusante. <strong>Et elle est gratuite !</strong>",
    "bootcampAd.learnMore": "Découvre Jiki",
    "bootcampAd.close": "Fermer",
    "bootcampAd.offer": "(On a mentionné que c'est gratuit ?)",
    "bootcampAd.videoIntro": "Regarde l'introduction du cours 👇",
    "bootcampAd.feature.video": "Tutoriels <strong>vidéo</strong>",
    "bootcampAd.feature.fun": "Projets <strong>amusants</strong>",
    "bootcampAd.feature.mentors": "Des <strong>mentors</strong> à ton écoute",
    "bootcampAd.quote": "Je débutais complètement en programmation et ce cours <strong>a dépassé mes attentes les plus folles</strong>. À mon humble avis, ce sera <strong>l’un des meilleurs choix que tu feras jamais !</strong>",
    "bootcampAd.quote.description": "Débutant absolu",
    "senioritySurveyModal.inner": "Interne",
    "initialView.heyThere": "Salut 👋",
    "initialView.expandingExercism": "Nous étendons Exercism pour ajouter du contenu adapté à des niveaux très variés. Pour qu’Exercism te montre le bon contenu, dis-nous quel est ton niveau d’expérience.",
    "initialView.howExperiencedAreYou": "Quel est ton niveau en tant que développeur ?",
    "initialView.saveMyChoice": "Enregistrer mon choix",
    "initialView.canBeUpdatedInSettings": "(Tu peux modifier ce choix à tout moment dans tes paramètres)",
    "initialView.absoluteBeginner": "Débutant absolu",
    "initialView.beginner": "Débutant",
    "initialView.juniorDeveloper": "Développeur junior",
    "initialView.midLevelDeveloper": "Développeur intermédiaire",
    "initialView.seniorDeveloper": "Développeur senior",
    "bootcampAd.gameAlt.spaceInvaders": "Image d’un jeu de space invaders",
    "bootcampAd.gameAlt.ticTacToe": "Image d’une partie de morpion",
    "bootcampAd.gameAlt.breakout": "Image d’un jeu de casse-briques",
    "bootcampAd.gameAlt.maze": "Image d’un jeu de labyrinthe"
  },
  "components/modals/student": {
    "confirmFinishMentorDiscussionModal.areYouSure": "Veux-tu vraiment mettre fin à cette discussion ?",
    "confirmFinishMentorDiscussionModal.feelLikeMentoringReachedConclusion": "Quand tu estimes que le mentorat a atteint son terme naturel, ou que tu ne souhaites tout simplement pas aller plus loin, il est temps de mettre fin à la discussion.",
    "confirmFinishMentorDiscussionModal.cancel": "Annuler",
    "confirmFinishMentorDiscussionModal.reviewAndEndDiscussion": "Relire et terminer la discussion…",
    "iterationSelector.allIterations": "Toutes les itérations",
    "iterationSelector.singleIteration": "Itération unique",
    "iterationSelect.iteration": "Itération {{idx}}",
    "finishMentorDiscussionModal.reportShouldNotBeNull": "Le rapport ne doit pas être null"
  },
  "components/journey/solutions-list": {
    "testsStatusSelect.exceptioned": "Exception levée",
    "testsStatusSelect.all": "Tous",
    "testsStatusSelect.testsStatus": "État des tests",
    "exerciseStatusSelect.started": "Commencé",
    "exerciseStatusSelect.iterated": "Itéré",
    "exerciseStatusSelect.completed": "Terminé",
    "exerciseStatusSelect.published": "Publiée",
    "exerciseStatusSelect.all": "Tous",
    "exerciseStatusSelect.exerciseStatus": "État de l'exercice",
    "solutionFilter.filterBy": "Filtrer par",
    "solutionFilter.applyFilters": "Appliquer les filtres",
    "solutionFilter.close": "Fermer",
    "solutionFilter.filterTracksLabel": "Une série d'options pour filtrer les parcours Exercism",
    "mentoringStatusSelect.mentoringRequested": "Demande de mentorat",
    "mentoringStatusSelect.mentoringInProgress": "Mentorat en cours",
    "mentoringStatusSelect.mentoringCompleted": "Mentorat terminé",
    "mentoringStatusSelect.any": "Tous",
    "mentoringStatusSelect.mentoringStatus": "Statut du mentorat",
    "syncStatusSelect.upToDate": "À jour",
    "syncStatusSelect.outOfDate": "Pas à jour",
    "syncStatusSelect.all": "Tous",
    "syncStatusSelect.syncStatus": "Statut de synchronisation",
    "testsStatusSelect.passed": "Réussis",
    "testsStatusSelect.failed": "Échoués",
    "testsStatusSelect.errored": "En erreur",
    "headTestsStatusSelect.passed": "Réussis",
    "headTestsStatusSelect.failed": "Échoués",
    "headTestsStatusSelect.errored": "En erreur",
    "headTestsStatusSelect.exceptioned": "Exception",
    "headTestsStatusSelect.all": "Tous",
    "headTestsStatusSelect.latestTestsStatus": "Statut des derniers tests",
    "orderSwitcher.oldestFirst": "Du plus ancien au plus récent",
    "orderSwitcher.newestFirst": "Du plus récent au plus ancien",
    "mentoringStatusSelect.noMentoring": "Sans mentorat"
  },
  "components/journey/UnrevealedBadge.tsx": {
    "unrevealedBadge.unrevealed": "Non révélé",
    "unrevealedBadge.clickTapToReveal": "Clique ou touche pour révéler",
    "unrevealedBadge.unableToRevealBadge": "Impossible de révéler le badge"
  },
  "components/mentoring/automation/AutomationListElement.tsx": {
    "adminTab.lastShown": "Dernier affichage",
    "adminTab.lastOccurence": "Dernière occurrence",
    "automationListElement.shownTime": "Affiché {{number}} fois",
    "automationListElement.shownTimes": "Affiché {{number}} fois",
    "automationListElement.occurenceTime": "occurrence {{number}} fois",
    "automationListElement.occurenceTimes": "occurrence {{number}} fois",
    "automationListElement.inTrackId": "dans {{trackTitle}} (#{{id}})"
  },
  "components/mentoring/automation/Representation.tsx": {
    "needFeedback": "Besoin de retours",
    "feedbackSubmitted": "Retours soumis",
    "admin": "Admin",
    "onlyShowSolutions": "Afficher uniquement les solutions que j'ai déjà mentorées",
    "filterByExercise": "Filtrer par exercice (min. 3 caractères)"
  },
  "components/mentoring/automation/RepresentationList.tsx": {
    "representationList.noSolutionsFound": "Aucune solution trouvée.",
    "representationList.tryChangingFilters": "Essaie de modifier les filtres pour trouver des solutions qui ont besoin de retours.",
    "representationList.noSolutionsNeedFeedback": "Aucune solution n'a besoin de retours pour le moment.",
    "representationList.checkBackLater": "Reviens plus tard pour en voir d'autres !"
  },
  "components/mentoring/automation/TrackFilterList.tsx": {
    "trackFilterList.unableToFetchTracks": "Impossible de récupérer les parcours",
    "trackFilterList.openTheTrackFilter": "Ouvrir le filtre des parcours",
    "trackFilterList.clickToChange": "Clique pour modifier"
  },
  "components/mentoring/discussion/discussion-post": {
    "discussionPostView.edit": "Modifier"
  },
  "components/mentoring/discussion/DiscussionDetails.tsx": {
    "discussionDetails.discussionTimedOut": "Cette discussion a expiré",
    "discussionDetails.finishedDiscussionWith": "Tu as terminé ta discussion avec {{studentHandle}}."
  },
  "components/mentoring/discussion/DiscussionPostList.tsx": {
    "discussionPostList.loadingIndicatorAriaLabel": "Indicateur de chargement de la liste des messages de la discussion"
  },
  "components/mentoring/discussion/finished-wizard": {
    "favoriteStep.addToFavorites": "Ajouter aux favoris",
    "favoriteStep.addStudentToFavorites": "Ajouter {{studentHandle}} à tes favoris ?",
    "favoriteStep.skip": "Passer",
    "finishStep.isOneOfYourFavorites": "{{studentHandle}} fait partie de tes favoris.",
    "finishStep.willNotSeeFutureRequests": "Tu ne verras plus les futures demandes de mentorat de {{studentHandle}}.",
    "finishStep.thanksForMentoring": "Merci d'avoir mentoré {{studentHandle}}.",
    "finishStep.changePreferences": "Modifier les préférences",
    "mentorAgainStep.mentorAgain": "Veux-tu mentorer {{studentHandle}} à nouveau ?",
    "mentorAgainStep.yes": "Oui",
    "mentorAgainStep.no": "Non"
  },
  "components/settings/FormMessage.tsx": {
    "formMessage.error": "Erreur"
  },
  "components/settings/github-syncer/common": {
    "insiderBubble.insidersOnly": "Réservé aux Insiders",
    "confirmationModal.confirm": "Confirmer",
    "confirmationModal.cancel": "Annuler"
  },
  "components/settings/github-syncer/sections/ConnectedSection": {
    "index.syncerConnected": "Syncer connecté",
    "dangerZoneSection.pauseSyncer": "Mettre le Syncer en pause",
    "dangerZoneSection.wantToPause": "Tu veux mettre le syncer en pause pendant un moment ?",
    "dangerZoneSection.useButtonBelow": "Utilise le bouton ci-dessous. Tu peux le redémarrer à tout moment.",
    "dangerZoneSection.disconnectSyncer": "Déconnecter le Syncer",
    "dangerZoneSection.wantToDisconnect": "Tu veux déconnecter le syncer de ton dépôt GitHub ? Utilise le bouton ci-dessous.",
    "dangerZoneSection.noteWillDeleteSettings": "<strong>Remarque : </strong> Cela supprimera aussi tous les réglages de cette page, alors pense à sauvegarder manuellement les réglages que tu voudras peut-être réutiliser plus tard (par exemple ton modèle de chemin).",
    "dangerZoneSection.disconnectGithub": "Déconnecter GitHub",
    "dangerZoneSection.areYouSureDisconnect": "Tu es sûr de vouloir déconnecter ton dépôt GitHub ?",
    "dangerZoneSection.thisActionCannotUndone": "Cette action est irréversible.",
    "dangerZoneSection.disconnectSyncerConfirm": "Déconnecter le Syncer",
    "dangerZoneSection.cancel": "Annuler",
    "dangerZoneSection.areYouSurePauseSyncing": "Tu es sûr de vouloir mettre en pause la synchronisation des solutions avec GitHub ?",
    "dangerZoneSection.pause": "Pause",
    "dangerZoneSection.pausedCodeSync": "Synchronisation du code avec GitHub mise en pause.",
    "dangerZoneSection.failedToChangeStatus": "Échec du changement de statut.",
    "dangerZoneSection.githubSyncDeleted": "Synchronisation GitHub supprimée avec succès",
    "dangerZoneSection.failedToDeleteSync": "Échec de la suppression de la synchronisation GitHub.",
    "dangerZoneSection.unexpectedErrorDeleting": "Oups ! Une erreur inattendue s'est produite lors de la suppression de la synchronisation GitHub.",
    "fileStructureSection.fileStructure": "Structure des fichiers",
    "fileStructureSection.configureFolderStructure": "Utilise cette option pour configurer la structure des dossiers de ton dépôt.",
    "fileStructureSection.placeholderValues": "Tu peux utiliser les valeurs de remplacement suivantes, qui seront interpolées à chaque commit :",
    "fileStructureSection.trackSlug": "<code>$track_slug</code> : le slug du parcours (par exemple « csharp »).",
    "fileStructureSection.trackTitle": "<code>$track_title</code> : le nom du parcours (par exemple « C# »)",
    "fileStructureSection.exerciseSlug": "<code>$exercise_slug</code> : le slug de l'exercice (par exemple « hello-world »)",
    "fileStructureSection.exerciseTitle": "<code>$exercise_title</code> : le nom de l'exercice (par exemple « Hello World »)",
    "fileStructureSection.iterationIdx": "<code>$iteration_idx</code> : l'indice d'itération de l'exercice (par exemple « 1 »)",
    "fileStructureSection.note1YourPath": "<strong>Remarque 1 :</strong> Ton chemin doit contenir un espace réservé de parcours (<code>$track_slug</code> ou <code>$track_title</code>) et un espace réservé d'exercice (<code>$exercise_slug</code> ou <code>$exercise_title</code>).",
    "fileStructureSection.note2Iteration": "<strong>Remarque 2 :</strong> L'espace réservé <code>$iteration_idx</code> est facultatif, mais si tu l'omets, chaque itération écrasera la précédente. Cela te permet d'utiliser Git pour versionner tes solutions. Inclure l'indice d'itération donnera un dossier différent pour chaque itération.",
    "fileStructureSection.pathTemplateMustInclude": "Ton modèle de chemin doit inclure soit <code>$track_slug</code> soit <code>$track_title</code>, et soit <code>$exercise_slug</code> soit <code>$exercise_title</code>.",
    "fileStructureSection.saveChanges": "Enregistrer les modifications",
    "fileStructureSection.revertToDefault": "Revenir aux valeurs par défaut",
    "fileStructureSection.areYouSureWantRevert": "Tu es sûr de vouloir rétablir ton modèle de chemin par défaut ?",
    "fileStructureSection.revert": "Rétablir",
    "fileStructureSection.cancel": "Annuler",
    "statusSection.status": "Statut : <span style={{ color: textColor }}>{{status}}</span>",
    "manualSyncSection.selectTrackToBackup": "Sélectionner le parcours à sauvegarder",
    "manualSyncSection.backupTrackButton": "Sauvegarder le parcours",
    "manualSyncSection.backupEverything": "Tout sauvegarder",
    "manualSyncSection.backupEverythingInfo": "Si tu veux sauvegarder tous tes exercices de tous les parcours sur GitHub, tu peux utiliser cette fonction.",
    "manualSyncSection.pleaseUseSparingBootstrap": "<strong className=\"font-medium\">Note :</strong> À utiliser avec parcimonie, par exemple quand tu veux initialiser un nouveau dépôt. Cette fonction n'est pas conçue pour faire partie de ton workflow habituel.",
    "manualSyncSection.backupEverythingButton": "Tout sauvegarder",
    "iterationFilesSection.iterationFiles": "Fichiers de l'itération",
    "iterationFilesSection.whenSyncing": "Lors de la synchronisation, veux-tu que tous les fichiers de l'exercice (par exemple ta solution, les tests, le README, les indices, etc.) soient synchronisés avec GitHub, ou seulement ton ou tes fichiers de solution ?",
    "iterationFilesSection.theFullExercise": "L'exercice complet",
    "iterationFilesSection.onlyMySolutionFiles": "Uniquement mes fichiers de solution",
    "iterationFilesSection.saveChanges": "Enregistrer les modifications",
    "syncBehaviourSection.syncBehaviour": "Comportement de synchronisation",
    "syncBehaviourSection.chooseWhetherSyncing": "Choisis si la synchronisation doit se faire automatiquement quand tu crées une nouvelle itération, ou manuellement quand c'est toi qui la déclenches. Le mode <strong>Automatique</strong> garde ton dépôt GitHub à jour, tandis que le mode <strong>Manuel</strong> te laisse un contrôle total.",
    "syncBehaviourSection.automatic": "Automatique",
    "syncBehaviourSection.manual": "Manuel",
    "statusSection.githubSyncerLinked": "Ton syncer GitHub est lié à <code>{{repoFullName}}</code>.",
    "statusSection.enableSyncer": "Activer le syncer",
    "statusSection.areYouSureResumeSyncing": "Veux-tu vraiment reprendre la synchronisation des solutions avec GitHub ?",
    "statusSection.resume": "Reprendre",
    "statusSection.cancel": "Annuler",
    "statusSection.resumedCodeSync": "Synchronisation du code avec GitHub reprise.",
    "statusSection.failedToChangeStatus": "Échec du changement de statut.",
    "commitMessageTemplateSection.heading": "Modèle de message de commit",
    "commitMessageTemplateSection.intro": "Utilise cette option pour définir le format de tes messages de commit et de PR.",
    "commitMessageTemplateSection.placeholder_intro": "Tu peux utiliser les valeurs de substitution suivantes :",
    "commitMessageTemplateSection.placeholders.track_slug": "Le slug du parcours (par ex. « csharp »).",
    "commitMessageTemplateSection.placeholders.track_title": "Le nom du parcours (par ex. « C# »)",
    "commitMessageTemplateSection.placeholders.exercise_slug": "Le slug de l'exercice (par ex. « hello-world »)",
    "commitMessageTemplateSection.placeholders.exercise_title": "Le nom de l'exercice (par ex. « Hello World »)",
    "commitMessageTemplateSection.placeholders.iteration_idx": "L'indice d'itération de l'exercice (par ex. « 1 »)",
    "commitMessageTemplateSection.placeholders.sync_object": "L'une des valeurs « Iteration », « Solution », « Track » ou « Everything », selon ce qui est synchronisé.",
    "commitMessageTemplateSection.note.note": "Note",
    "commitMessageTemplateSection.note.text": "Si ton message de commit contient des barres obliques ou des tirets au début ou à la fin, ils seront supprimés. Plusieurs barres obliques ou tirets consécutifs seront réduits à un seul.",
    "commitMessageTemplateSection.save_button": "Enregistrer les modifications",
    "commitMessageTemplateSection.revert_button": "Rétablir la valeur par défaut",
    "commitMessageTemplateSection.confirm_modal.title": "Veux-tu vraiment rétablir ton modèle de message de commit par défaut ?",
    "commitMessageTemplateSection.confirm_modal.confirm": "Rétablir",
    "commitMessageTemplateSection.confirm_modal.cancel": "Annuler",
    "processingMethodSection.processingMethod": "Méthode de traitement",
    "processingMethodSection.commitDirectly": "Commit direct",
    "processingMethodSection.createPullRequest": "Créer une pull request",
    "processingMethodSection.whatIsTheName": "Quel est le nom de ta branche principale ?",
    "processingMethodSection.ourBot": "Notre bot peut faire un commit directement dans ton dépôt pour une configuration entièrement automatisée, ou créer une pull request que tu peux approuver à chaque fois. Quelle méthode préfères-tu ?",
    "processingMethodSection.saveChange": "Enregistrer les modifications",
    "justConnectedModal.exercismAlt": "Exercism",
    "justConnectedModal.syncWithAlt": "Synchronisé avec",
    "justConnectedModal.githubAlt": "Github",
    "justConnectedModal.repositoryConnected": "Dépôt connecté avec succès !",
    "justConnectedModal.accountConnected": "Ton compte Exercism a bien été connecté au dépôt de ton choix.",
    "justConnectedModal.happyWithDefaults": "Si les valeurs par défaut te conviennent, tu peux tout sauvegarder maintenant. Sinon, tu peux ajuster tes paramètres, puis utiliser le bouton en bas de la page des paramètres pour sauvegarder plus tard. Veux-tu tout sauvegarder maintenant ?",
    "justConnectedModal.backUpEverythingNow": "Tout sauvegarder maintenant",
    "justConnectedModal.backUpLater": "Sauvegarder plus tard",
    "manualSyncSection.backupTrack": "Sauvegarder un parcours",
    "manualSyncSection.backupTrackInfo": "Si tu veux sauvegarder un parcours sur GitHub, tu peux utiliser cette fonction.",
    "manualSyncSection.pleaseUseSparing": "<strong className=\"font-medium\">Note :</strong> Utilise cette fonction avec parcimonie, par exemple lorsque tu souhaites sauvegarder un parcours pour la première fois. Elle n'est pas prévue pour faire partie de ton workflow habituel et tu risques d'atteindre les limites de requêtes à force de l'utiliser."
  },
  "components/dropdowns/track-menu": {
    "leaveTrackModal.leaveResetTrackForm.cancel": "Annuler",
    "leaveTrackModal.leaveResetTrackForm.leaveReset": "Quitter + réinitialiser",
    "leaveTrackModal.leaveTrackForm.strongText": "Quand tu quittes le parcours, tu conserves tout de même :",
    "leaveTrackModal.leaveTrackForm.listItem1": "Toutes les solutions que tu as soumises dans le parcours {{trackTitle}}",
    "leaveTrackModal.leaveTrackForm.listItem2": "Tout le mentorat que tu as reçu dans le parcours {{trackTitle}}",
    "leaveTrackModal.leaveTrackForm.howeverWeWill": "En revanche, nous allons :",
    "leaveTrackModal.leaveTrackForm.listItem3": "Mettre fin à toutes les discussions de mentorat dans le parcours {{trackTitle}}",
    "leaveTrackModal.leaveTrackForm.listItem4": "Retirer le parcours {{trackTitle}} de ta liste de parcours actifs",
    "leaveTrackModal.leaveTrackForm.infoBoxText": "Tu es libre de revenir à tout moment et de reprendre là où tu t’étais arrêté.",
    "leaveTrackModal.leaveTrackForm.cancel": "Annuler",
    "leaveTrackModal.leaveTrackForm.leaveTrack": "Quitter le parcours",
    "resetTrackModal.heading": "Tu es sur le point de réinitialiser toute ta progression sur le parcours {{trackTitle}}.",
    "resetTrackModal.pleaseReadCarefully": "Lis attentivement ce qui suit avant de continuer.",
    "resetTrackModal.irreversible": "C’est irréversible et cela signifie que tu perdras tout ce que tu as fait sur ce parcours.",
    "resetTrackModal.byResettingThisTrack": "Si tu réinitialises ce parcours, tu perdras l’accès à :",
    "resetTrackModal.listItem1": "Toutes les solutions que tu as soumises dans le parcours {{trackTitle}}",
    "resetTrackModal.listItem2": "Tout le mentorat que tu as reçu dans le parcours {{trackTitle}}",
    "resetTrackModal.listItem3": "Perdre toute la réputation que tu as gagnée en publiant des solutions dans le parcours {{trackTitle}}",
    "resetTrackModal.however": "En revanche :",
    "resetTrackModal.listItem4": "Les versions locales des solutions stockées sur ta machine ne seront pas affectées",
    "resetTrackModal.listItem5": "Tu conserveras tous les badges obtenus grâce à ton travail sur le parcours {{trackTitle}}",
    "resetTrackModal.confirmationLabel": "Pour confirmer, écris {{confirmation}} dans le champ ci-dessous :",
    "resetTrackModal.cancel": "Annuler",
    "resetTrackModal.resetTrack": "Réinitialiser le parcours",
    "activateLearningModeModal.activateLearningMode": "Activer le mode apprentissage",
    "activateLearningModeModal.paragraph1": "Activer le mode apprentissage rendra disponibles les concepts et les exercices d’apprentissage dans ce parcours. En revanche, il verrouillera les exercices dont tu n’as pas encore rempli les prérequis. Tu garderas l’accès à tous les exercices que tu as déjà commencés.",
    "activateLearningModeModal.warning": "Tu peux activer et désactiver le mode apprentissage à tout moment.",
    "activateLearningModeModal.activateLearningModeButton": "Activer le mode apprentissage",
    "leaveTrackModal.youreAboutToLeave": "Tu es sur le point de quitter le parcours {{trackTitle}}.",
    "leaveTrackModal.noLongerInterested": "Tu n’as plus envie d’apprendre {{trackTitle}} ? Pas de problème !",
    "leaveTrackModal.leave": "Quitter",
    "leaveTrackModal.leavePlusReset": "Quitter + réinitialiser",
    "leaveTrackModal.infoAlt": "Info",
    "activatePracticeModeModal.disableLearningMode": "Désactive le mode apprentissage",
    "activatePracticeModeModal.paragraph1": "Désactiver le mode apprentissage déverrouillera tous les exercices d'entraînement de ce parcours, mais désactivera les concepts et les exercices d'apprentissage.",
    "activatePracticeModeModal.warning": "Tu peux activer et désactiver le mode entraînement à tout moment.",
    "activatePracticeModeModal.disableLearningModeButton": "Désactive le mode apprentissage",
    "leaveTrackModal.leaveResetTrackForm.strongText": "Si tu quittes ce parcours et le réinitialises, tu vas :",
    "leaveTrackModal.leaveResetTrackForm.listItem1": "Perdre l'accès à toutes les solutions que tu as soumises dans le parcours {{trackTitle}}",
    "leaveTrackModal.leaveResetTrackForm.listItem2": "Perdre l'accès à tout le mentorat que tu as reçu dans le parcours {{trackTitle}}",
    "leaveTrackModal.leaveResetTrackForm.listItem3": "Perdre toute la réputation que tu as gagnée pour avoir publié des solutions dans le parcours {{trackTitle}}",
    "leaveTrackModal.leaveResetTrackForm.listItem4": "Retirer le parcours {{trackTitle}} de ta liste de parcours actifs",
    "leaveTrackModal.leaveResetTrackForm.irreversibleText": "Cette action est irréversible et tu perdras tout ce que tu as fait sur ce parcours.",
    "leaveTrackModal.leaveResetTrackForm.confirmationLabel": "Pour confirmer, écris {{confirmation}} dans le champ ci-dessous :"
  },
  "components/Editor.tsx": {
    "submitError.unableToSubmitFile": "Impossible de soumettre le fichier. Réessaie.",
    "revertError.unableToRevertFile": "Impossible de rétablir le fichier, réessaie."
  },
  "components/editor/EditorStatusSummary.tsx": {
    "editorStatusSummary.error": "Erreur : {{error}}",
    "editorStatusSummary.revertingFiles": "Rétablissement des fichiers…"
  },
  "components/editor/FeedbackPanel": {
    "feedbackPanelRequestMentoring.takeSolutionToNextLevel": "Fais passer ta solution au niveau supérieur",
    "feedbackPanelRequestMentoring.getFeedbackOnSolution": "Reçois un retour d’un mentor du parcours {{trackTitle}} sur ta solution à l’exercice {{exerciseTitle}}, découvre de nouvelles façons d’aborder le problème et approfondis ta connaissance du parcours {{trackTitle}}.",
    "feedbackPanelRequestMentoring.submitForCodeReview": "Soumettre à une revue de code",
    "feedbackPanelRequestMentoring.free": "C'est 100 % gratuit ! 😲",
    "feedbackPanelRequestMentoring.whyGetFeedback": "Pourquoi demander un retour ?",
    "feedbackPanelRequestMentoring.attainRealFluency": "Atteins une vraie fluidité en {{trackTitle}}",
    "feedbackPanelRequestMentoring.learningALanguage": "Apprendre un langage, ce n'est pas seulement savoir s'en servir : c'est aussi être capable de <bold>penser</bold> dans ce langage. Nos mentors t'aideront à développer ta perception.",
    "feedbackPanelRequestMentoring.youDontKnowWhatYouDontKnow": "On ne sait pas ce qu'on ne sait pas",
    "feedbackPanelRequestMentoring.hardToProgress": "Il est difficile de progresser quand on ne sait pas ce qui manque. Nos mentors t'aideront à découvrir les lacunes dans tes connaissances en {{trackTitle}}.",
    "feedbackPanelRequestMentoring.getYourQuestionsAnswered": "Obtiens des réponses à tes questions",
    "feedbackPanelRequestMentoring.whateverYourQuestions": "Quelles que soient tes questions, nos mentors sauront t'aider. Pense à poser tout ce qui te vient à l'esprit lorsque tu fais une demande de mentorat.",
    "feedbackPanelRequestMentoring.pushYourself": "Dépasse-toi",
    "feedbackPanelRequestMentoring.confidentFeelIn": "Quelle que soit ta confiance en {{trackTitle}}, il y aura toujours de nouvelles choses à apprendre. Va encore plus loin avec un mentor Exercism.",
    "feedbackPanel.codeReview": "Revue de code",
    "feedbackPanel.codeReviewPending": "Revue de code (en attente)",
    "feedbackPanelMentoringDiscussion.readonlyIterationMarker.iteration": "Itération {{idx}}",
    "feedbackPanelMentoringDiscussion.pendingMentoringRequest.youveSubmittedSolution": "Tu as soumis ta solution pour une revue de code.",
    "feedbackPanelMentoringDiscussion.pendingMentoringRequest.mentorWillProvideFeedback": "Un mentor te fera (on l'espère) un retour bientôt. Tu recevras une notification et un e-mail dès que cela se produira.",
    "feedbackPanelMentoringDiscussion.pendingMentoringRequest.viewYourRequest": "Voir ta demande",
    "feedbackPanelMentoringDiscussion.feedbackPanelMentoringDiscussion.loading": "Chargement…",
    "feedbackPanelMentoringDiscussion.feedbackPanelMentoringDiscussion.latestCodeReviewSessionDescription": "Voici ta dernière session de revue de code pour cet exercice. Pour poursuivre la discussion, passe en <link>mode mentorat</link>.",
    "feedbackDetail.automatedFeedback": "Retour automatisé"
  },
  "components/profile": {
    "newProfileForm.locationOptional": "Localisation (facultative)",
    "newProfileForm.whereDoYouCurrentlyLive": "Où habites-tu actuellement ?",
    "newProfileForm.exercismIsMadeUpOfPeople": "Exercism rassemble des personnes du monde entier 🌎",
    "newProfileForm.bioOptional": "Bio (facultative)",
    "newProfileForm.tellEveryoneABitMore": "Dis-en un peu plus à tout le monde sur qui tu es et ce qui te passionne. Par ex. : je suis un dev Rails qui adore l'escalade de bloc et le café",
    "newProfileForm.characters": "{{length}} / 160 caractères",
    "newProfileForm.createProfile": "Créer un profil",
    "contributionsList.building": "Création",
    "contributionsList.maintaining": "Maintenance",
    "contributionsList.authoring": "Rédaction",
    "contributionsList.other": "Autre",
    "communitySolutionsList.filterByExercise": "Filtrer par exercice",
    "avatarSelector.uploadNewPhoto": "Téléverser une nouvelle photo",
    "avatarSelector.deletePhoto": "Supprimer la photo",
    "testimonialsList.unableToLoadTestimonials": "Impossible de charger les témoignages",
    "testimonialsSummary.testimonials": "Témoignages",
    "testimonialsSummary.mentoredBy": "Mentoré par",
    "testimonialsSummary.exerciseInTrack": "<exercise>{{exercise}}</exercise> dans le parcours <track>{{track}}</track>",
    "contributionsSummary.contributions": "Contributions",
    "contributionsSummary.seeYourContributions": "Voir tes contributions",
    "contributionsSummary.seeHandleContributions": "Voir les contributions de {{handle}}",
    "testimonialsSummary.solutionsMentored": "Solutions mentorées",
    "testimonialsSummary.studentsHelped": "Apprenants aidés",
    "testimonialsSummary.testimonialsReceived": "Témoignages reçus",
    "testimonialsSummary.seeAllOfHandleTestimonials": "Voir tous les témoignages de {{handle}}",
    "newProfileForm.fullName": "Nom complet",
    "newProfileForm.howDoYouWantToBeKnown": "Comment veux-tu être connu ?"
  },
  "components/profile/avatar-selector": {
    "photo.yourProfilePicture": "Ta photo de profil",
    "photo.uploadNewImage": "Téléverser une nouvelle image",
    "photo.cropping": "Tu peux recadrer l'image après l'avoir téléversée.",
    "photo.youCanAlso": "Tu peux aussi <deleteButton/>.",
    "croppingModal.cropFinished": "Recadrage terminé"
  },
  "components/profile/avatar-selector/cropping-modal": {
    "croppingStep.cropYourPhoto": "Recadre ta photo",
    "croppingStep.cancel": "Annuler",
    "croppingStep.crop": "Recadrer",
    "cropFinishedStep.happyWithResult": "Le résultat te convient ?",
    "cropFinishedStep.recrop": "Recadrer à nouveau",
    "cropFinishedStep.saveImage": "Enregistrer l'image"
  },
  "components/profile/avatar-selector/photo": {
    "deletePhotoButton.deleteYourPicture": "supprimer ta photo",
    "deletePhotoButton.deletePhotoModal.deleteYourProfilePicture": "Supprimer ta photo de profil ?",
    "deletePhotoButton.deletePhotoModal.areYouSure": "Veux-tu vraiment supprimer ta photo ? Les autres utilisateurs verront une image de remplacement à la place. Tu pourras en téléverser une nouvelle à tout moment.",
    "deletePhotoButton.deletePhotoModal.deletePicture": "Supprimer la photo",
    "deletePhotoButton.deletePhotoModal.cancel": "Annuler"
  },
  "components/profile/community-solutions-list": {
    "orderSelect.sortByNewestFirst": "Trier du plus récent au plus ancien",
    "orderSelect.sortByOldestFirst": "Trier du plus ancien au plus récent",
    "orderSelect.sortByMostStarred": "Trier par nombre d'étoiles"
  },
  "components/profile/contributions-list": {
    "otherContributionsList.generic": "Générique",
    "maintainingContributionsList.generic": "Générique",
    "buildingContributionsList.generic": "Générique"
  },
  "components/modals/TaskHintsModal.tsx": {
    "taskHintsModal.hintsAndTips": "Astuces et conseils"
  },
  "components/modals/TestimonialModal.tsx": {
    "byLine": "par <0><1>{{handle}}</1></0> ",
    "exerciseLine": "sur <strong>{{exercise}}</strong> dans <trackIcon/><trackTitle>{{track}}</trackTitle>",
    "sharePanel.title": "Partage ton témoignage avec le monde",
    "sharePanel.shareTitle": "Voir ce témoignage sur Exercism"
  },
  "components/modals/track-welcome-modal/LHS": {
    "bootcampRecommendation.header": "Jiki pourrait mieux te convenir…",
    "bootcampRecommendation.tracksAudience": "Les parcours d'Exercism sont conçus pour les personnes qui <strong>savent déjà coder</strong> et qui pratiquent ou apprennent de nouveaux langages.",
    "bootcampRecommendation.codingJourney": "Si tu débutes tout juste ton parcours de codeur, notre nouvelle plateforme <strong>Jiki</strong> pourrait mieux te convenir.",
    "bootcampRecommendation.selfPaced": "Elle est disponible dès maintenant et, surtout, <strong>elle est gratuite !</strong>",
    "bootcampRecommendation.cta.checkOutCourse": "Découvrir Jiki",
    "bootcampRecommendation.cta.continueAnyway": "Continuer quand même"
  },
  "components/modals/track-welcome-modal/LHS/steps": {
    "learningEnvironmentSelectorStep.onlineOrOnYourComputer": "En ligne ou sur ton ordinateur ?",
    "learningEnvironmentSelectorStep.solveExercisesUsingEditorOrLocally": "Tu peux résoudre les exercices avec notre éditeur en ligne ou en local, dans ton propre environnement. Si tu utilises ton propre environnement, tu devras installer à la fois {{trackTitle}} et l'Exercism CLI.",
    "learningEnvironmentSelectorStep.recommendStartingWithEditor": "En général, on te recommande de commencer par notre éditeur.",
    "learningEnvironmentSelectorStep.howWouldYouLikeToStartSolvingExercises": "Comment souhaites-tu commencer à résoudre les exercices du parcours {{trackTitle}} ?",
    "learningEnvironmentSelectorStep.inTheOnlineEditor": "Dans l'éditeur en ligne",
    "learningEnvironmentSelectorStep.onMyLocalMachine": "Sur ma machine locale",
    "selectedOnlineEditorStep.youreAllSet": "Tout est prêt !",
    "selectedOnlineEditorStep.changeMindInstructions": "Si tu changes d'avis plus tard et que tu veux travailler dans ton propre environnement, tu trouveras les instructions pour installer l'Exercism CLI et l'outillage du langage sur la droite de chaque exercice.",
    "selectedOnlineEditorStep.letsJumpIntoFirstExercise": "Plongeons directement dans le premier exercice, « Hello, World! », qui te permettra de te familiariser avec l'éditeur.",
    "selectedOnlineEditorStep.continueToOnlineEditor": "Continuer vers l'éditeur en ligne",
    "selectedOnlineEditorStep.resetChoices": "Réinitialiser les choix",
    "selectedLocalMachineStep.title": "C'est parti pour coder !",
    "selectedLocalMachineStep.subtitle": "Trois étapes pour commencer :",
    "selectedLocalMachineStep.step1": "Installer <cliLink>l'Exercism CLI</cliLink>.",
    "selectedLocalMachineStep.step2": "Installer <toolingLink>l'outillage de {{trackTitle}}</toolingLink>.",
    "selectedLocalMachineStep.step3": "Télécharger cet exercice :",
    "selectedLocalMachineStep.doneMessage": "<strong>Tout est terminé ?</strong> Clique sur « Continuer » pour voir les instructions, puis résous l'exercice sur ta machine et soumets-le avec <code>exercism submit</code>.",
    "selectedLocalMachineStep.continue": "Continuer",
    "selectedLocalMachineStep.reset": "Réinitialiser les choix",
    "noLearningModeStep.title": "Tu seras en mode entraînement",
    "noLearningModeStep.description": "Le parcours {{trackTitle}} est conçu pour t'aider à pratiquer le langage. Contrairement à certains parcours, {{trackTitle}} n'a pas encore de mode apprentissage, tu vas donc réaliser les {{numExercises}} exercices du parcours en mode entraînement.",
    "noLearningModeStep.resources": "Si tu veux apprendre {{trackTitle}} depuis zéro, jette un œil à <0>ces ressources complémentaires</0> que l'on a rassemblées pour toi.",
    "noLearningModeStep.continue": "Continuer",
    "hasLearningModeStep.hereToLearnOrPractice": "Ici pour apprendre ou pour t'entraîner ?",
    "hasLearningModeStep.trackCanBeUsedForLearningOrPracticing": "Ce parcours peut servir à apprendre {{trackTitle}} (mode apprentissage) ou à t'entraîner en {{trackTitle}} (mode entraînement). ",
    "hasLearningModeStep.recommendLearningModeIfNew": "On recommande le mode apprentissage si tu débutes en {{trackTitle}}, et le mode entraînement si tu as de l'expérience.",
    "hasLearningModeStep.startTrackInLearningOrPracticeMode": "Veux-tu commencer ce parcours en mode apprentissage ou en mode entraînement ? (Tu peux toujours changer plus tard.)",
    "hasLearningModeStep.learningMode": "Mode apprentissage",
    "hasLearningModeStep.practiceMode": "Mode entraînement",
    "openModalStep.loading": "Chargement…"
  },
  "components/tooltips/task-tooltip": {
    "typeInfo.improveDockerfiles": "Utilise ton expertise Docker pour nous aider à améliorer, optimiser et alléger nos Dockerfiles.",
    "typeInfo.writingDocs": "Cette tâche implique de <strong>rédiger de la documentation</strong>.",
    "typeInfo.docsImportant": "La documentation est l'un des éléments les plus importants d'Exercism, car elle aide à la fois les contributeurs et les apprenants. Notre documentation est écrite en Markdown.",
    "sizeInfo.tinyTask": "C'est une <strong>minuscule</strong> tâche.",
    "sizeInfo.completeInMinutes": "Selon ton expérience, tu devrais pouvoir la terminer en quelques minutes.",
    "sizeInfo.smallTask": "C'est une <strong>petite</strong> tâche.",
    "sizeInfo.completeInHour": "Selon ton expérience, tu devrais pouvoir la terminer en moins d'une heure.",
    "sizeInfo.mediumSizedTask": "C'est une tâche <strong>de taille moyenne</strong>.",
    "sizeInfo.deepenKnowledge": "Selon ton expérience, tu devrais pouvoir la terminer en quelques heures. C'est une excellente tâche pour approfondir ta connaissance du travail sur Exercism et apporter une contribution importante.",
    "sizeInfo.largeTask": "C'est une <strong>grande tâche</strong>.",
    "sizeInfo.bigContribution": "Cela te prendra de nombreuses heures. C'est une excellente tâche dans laquelle te plonger, et ce sera une contribution importante pour Exercism.",
    "sizeInfo.project": "Cette tâche est un <strong>projet</strong>.",
    "sizeInfo.daysToComplete": "Cela te prendra plusieurs jours, même si tu as l'habitude de contribuer à Exercism.",
    "actionInfo.createNew": "Cette tâche te demande de <strong>créer</strong> quelque chose de nouveau.",
    "actionInfo.buildingFromScratch": "Cela signifie que tu vas construire quelque chose à partir de zéro.",
    "actionInfo.fixBroken": "Cette tâche te demande de <strong>réparer</strong> quelque chose de cassé.",
    "actionInfo.fixingIt": "Cela signifie que tu vas prendre quelque chose qui ne fonctionne pas actuellement et le réparer.",
    "actionInfo.improveSomething": "Cette tâche te demande d'<strong>améliorer</strong> quelque chose.",
    "actionInfo.addFeatureOrImprovement": "Chez Exercism, nous fusionnons souvent des contributions qui font avancer le projet, puis nous ajoutons des tickets de suivi pour améliorer les choses. C'est l'occasion d'ajouter une fonctionnalité ou une amélioration.",
    "actionInfo.proofread": "Cette tâche te demande de <strong>relire</strong>.",
    "actionInfo.checkDocsAndContent": "Aide à vérifier que notre documentation et notre contenu ont du sens, sont grammaticalement corrects et sont compréhensibles par des personnes non natives.",
    "actionInfo.syncContent": "Cette tâche te demande de <strong>synchroniser</strong> du contenu avec les dernières versions.",
    "actionInfo.updateTrackImplementation": "Exercism dispose d'un dépôt central d'exercices mis à jour par une équipe qui travaille sur plusieurs langages. Cette tâche consiste à mettre à jour l'implémentation d'un parcours vers la dernière version d'un exercice.",
    "summary.task": "Tâche",
    "summary.creating": "créer",
    "summary.fixing": "réparer",
    "summary.improving": "améliorer",
    "summary.proofreading": "relire",
    "summary.syncing": "synchroniser",
    "summary.analyzers": "Analyseurs",
    "summary.concepts": "Concepts",
    "summary.learningExercises": "Exercices d'apprentissage",
    "summary.generators": "Générateurs",
    "summary.practiceExercises": "Exercices d'entraînement",
    "summary.representers": "Representers",
    "summary.testRunners": "Exécuteurs de tests",
    "summary.workingOn": "Pour cette tâche, tu vas {{verb}} {{module}} {{type}}{{trackSuffix}}.",
    "knowledgeInfo.noExistingKnowledge": "Cette tâche ne requiert <strong>aucune</strong> connaissance préalable d'Exercism.",
    "knowledgeInfo.perfectForFirstContribution": "Cette tâche est parfaite pour les personnes qui font leur première contribution à Exercism. Si tu es là depuis un moment, pense à la laisser à quelqu'un de nouveau 🙂",
    "knowledgeInfo.elementaryKnowledge": "Cette tâche requiert des connaissances <strong>élémentaires</strong> d'Exercism.",
    "knowledgeInfo.littleBitAboutExercism": "Tu devras connaître un peu le fonctionnement d'Exercism, mais tu peux te débrouiller pendant cette tâche. Parfait pour une première contribution.",
    "knowledgeInfo.intermediateKnowledge": "Cette tâche requiert des connaissances <strong>intermédiaires</strong> d'Exercism.",
    "knowledgeInfo.keyPrinciplesOfArea": "Tu devras connaître les principes clés de {{desc}} pour travailler sur cette tâche. Si tu ne les connais pas, tu peux apprendre en faisant la tâche, mais il te faudra peut-être passer quelques heures à lire la documentation pour te mettre à niveau.",
    "knowledgeInfo.advancedKnowledge": "Cette tâche requiert des connaissances <strong>avancées</strong> d'Exercism.",
    "knowledgeInfo.solidUnderstandingOfArea": "Tu devras avoir une solide compréhension de {{desc}} pour travailler sur cette tâche. Si ce n'est pas le cas, tu devras probablement faire équipe avec quelqu'un de plus expérimenté pour la mener à bien.",
    "moduleInfo.analyzers": "Pour cette tâche, tu travailleras sur les <strong>Analyseurs</strong>.",
    "moduleInfo.analyzersDescription": "Les Analyseurs prennent du code et génèrent des suggestions automatisées pour le rendre plus idiomatique.",
    "moduleInfo.concepts": "Cette tâche porte sur les <strong>Concepts</strong>.",
    "moduleInfo.conceptsDescription": "Les Concepts sont composés de brèves introductions et d'explications plus complexes sur un sujet de programmation.",
    "moduleInfo.learningExercises": "Cette tâche porte sur les <strong>Exercices d'apprentissage</strong>.",
    "moduleInfo.learningExercisesDescription": "Les Exercices d'apprentissage enseignent un ou plusieurs Concepts. Ils sont nettement plus complexes à créer que les Exercices d'entraînement.",
    "moduleInfo.generators": "Cette tâche porte sur les <strong>Générateurs</strong>.",
    "moduleInfo.generatorsDescription": "Les Générateurs sont des outils que les parcours utilisent pour rester synchronisés avec notre ensemble central d'exercices.",
    "moduleInfo.practiceExercises": "Cette tâche porte sur les <strong>Exercices d'entraînement</strong>.",
    "moduleInfo.practiceExercisesDescription": "La plupart des exercices sont des Exercices d'entraînement : ils permettent aux apprenants de mettre en pratique les Concepts appris dans les Exercices d'apprentissage.",
    "moduleInfo.representers": "Cette tâche porte sur les <strong>Representers</strong>.",
    "moduleInfo.representersDescription": "Les Representers créent des versions normalisées des soumissions des apprenants, auxquelles des commentaires de mentorat peuvent être attachés.",
    "moduleInfo.testRunners": "Cette tâche porte sur les <strong>Exécuteurs de tests</strong>.",
    "moduleInfo.testRunnersDescription": "Les Exécuteurs de tests permettent à Exercism d'exécuter le code des apprenants, de déterminer s'il réussit ou échoue aux tests et de fournir un retour utile à l'apprenant.",
    "typeInfo.continuousIntegration": "Dans cette tâche, tu travailleras sur l'<strong>intégration continue</strong> d'Exercism.",
    "typeInfo.githubActions": "Tu travailleras probablement avec GitHub Actions, ou un outil similaire.",
    "typeInfo.codingTask": "C'est une tâche de <strong>programmation</strong>.",
    "typeInfo.productionLevelCode": "Tu écriras du code de niveau production, exécuté par Exercism ou par notre équipe de mainteneurs pour automatiser des tâches.",
    "typeInfo.studentFacingContent": "Cette tâche implique d'écrire du <strong>contenu destiné aux apprenants</strong>.",
    "typeInfo.writingInMarkdown": "Tu écriras principalement du contenu en Markdown, ainsi que quelques exemples de code et, éventuellement, des fichiers de test dans le langage concerné.",
    "typeInfo.writingDockerfiles": "Cette tâche implique d'écrire des <strong>Dockerfiles</strong>."
  },
  "components/tooltips/ToolingTooltip.tsx": {
    "toolingTooltip.loadingData": "Chargement des données",
    "toolingTooltip.unableToLoadData": "Impossible de charger les données"
  },
  "components/tooltips/UserTooltip.tsx": {
    "userTooltip.loadingUserData": "Chargement des données utilisateur",
    "userTooltip.unableToLoadUser": "Impossible de charger l'utilisateur"
  },
  "components/settings/github-syncer/sections/ConnectedSection/ManualSyncSection.tsx": {
    "backupATrack": "Sauvegarder un parcours",
    "syncingIsPausedEnableItToBackUpThisTrack": "La synchronisation est en pause. Active-la pour sauvegarder ce parcours.",
    "selectTrackToBackup": "Sélectionner le parcours à sauvegarder",
    "backupTrack": "Sauvegarder le parcours",
    "notePleaseUseThisSparing": "<strong>Note :</strong> À utiliser avec parcimonie, par exemple quand tu veux sauvegarder un parcours pour la première fois. Cette fonction n'est pas conçue pour faire partie de ton workflow habituel et risque fortement de dépasser les limites de requêtes si tu en abuses.",
    "ifYouWantToBackupATrackToGithubYouCanUseThisFunction": "Si tu veux sauvegarder un parcours sur GitHub, tu peux utiliser cette fonction.",
    "backupEverything": "Tout sauvegarder",
    "ifYouWantToBackupAllYourExercisesAcrossAllTracksToGithubYouCanUseThisFunction": "Si tu veux sauvegarder tous tes exercices de tous les parcours sur GitHub, tu peux utiliser cette fonction.",
    "notePleaseUseThisSparingForExampleWhenYouWantToBootstrapANewRepoThisIsNotDesignedToBePartOfYourNormalWorkflow": "<strong>Note :</strong> À utiliser avec parcimonie, par exemple quand tu veux initialiser un nouveau dépôt. Cette fonction n'est pas conçue pour faire partie de ton workflow habituel.",
    "backupEverythingLabel": "Tout sauvegarder",
    "syncingIsPausedEnableItToBackUpEverything": "La synchronisation est en pause. Active-la pour tout sauvegarder.",
    "yourBackupForTheTrackHasBeenQueuedAndShouldBeCompletedWithinAFewMinutes": "La sauvegarde du parcours {{trackSlug}} a été mise en file d'attente et devrait se terminer dans quelques minutes.",
    "errorQueuingBackupForTheTrack": "Erreur lors de la mise en file d'attente de la sauvegarde du parcours.",
    "somethingWentWrongWhileQueuingTheBackupPleaseTryAgain": "Une erreur s'est produite lors de la mise en file d'attente de la sauvegarde. Réessaie.",
    "yourBackupForAllTracksHasBeenQueuedAndShouldBeCompletedWithinAFewMinutes": "La sauvegarde de tous les parcours a été mise en file d'attente et devrait se terminer dans quelques minutes.",
    "errorQueuingBackupForAllTracks": "Erreur lors de la mise en file d'attente de la sauvegarde de tous les parcours.",
    "somethingWentWrongWhileQueuingTheBackupForAllTracksPleaseTryAgain": "Une erreur s'est produite lors de la mise en file d'attente de la sauvegarde de tous les parcours. Réessaie."
  },
  "components/settings/github-syncer/sections/ConnectedSection/SyncBehaviourSection.tsx": {
    "syncBehaviour.syncBehaviour": "Comportement de synchronisation",
    "syncBehaviour.syncingOptionDescription": "Choisis si la synchronisation doit se faire automatiquement quand tu crées une nouvelle itération, ou manuellement quand c'est toi qui la déclenches. Le mode <strong>Automatique</strong> garde ton dépôt GitHub à jour, tandis que le mode <strong>Manuel</strong> te laisse un contrôle total.",
    "syncBehaviour.automatic": "Automatique",
    "syncBehaviour.manual": "Manuel",
    "syncBehaviour.saveChanges": "Enregistrer les modifications",
    "syncBehaviour.savedChangesSuccessfully": "Modifications enregistrées !",
    "syncBehaviour.failedToSaveChanges": "Échec de l'enregistrement des modifications.",
    "syncBehaviour.somethingWentWrongWhileSaving": "Une erreur s'est produite lors de l'enregistrement des modifications. Réessaie."
  },
  "components/mentoring/representation/right-pane/RadioGroup.tsx": {
    "radioGroup.actionableTooltipTitle": "Si tu marques ceci comme Recommandé",
    "radioGroup.actionableTooltipBody": "L'apprenant est invité à agir là-dessus avant de poursuivre, mais ce n'est pas considéré comme essentiel. Une amélioration de grande valeur.",
    "radioGroup.non_actionableTooltipTitle": "Si tu marques ceci comme Facultatif",
    "radioGroup.non_actionableTooltipBody": "L'apprenant n'est pas invité à agir là-dessus avant de poursuivre, il s'agit uniquement d'une amélioration de faible valeur.",
    "radioGroup.celebratoryTooltipTitle": "Si tu marques ceci comme Célébratoire",
    "radioGroup.celebratoryTooltipBody": "L'apprenant n'est pas invité à agir là-dessus avant de poursuivre, ce commentaire le félicite pour sa solution.",
    "radioGroup.recommended": "Recommandé",
    "radioGroup.optional": "Facultatif",
    "radioGroup.recommendedTooltipTitle": "Si tu marques ceci comme Recommandé",
    "radioGroup.recommendedTooltipBody": "L'apprenant est invité à agir là-dessus avant de poursuivre, mais ce n'est pas considéré comme essentiel. Une amélioration de grande valeur.",
    "radioGroup.optionalTooltipTitle": "Si tu marques ceci comme Facultatif",
    "radioGroup.optionalTooltipBody": "L'apprenant n'est pas invité à agir là-dessus avant de poursuivre, il s'agit uniquement d'une amélioration de faible valeur.",
    "radioGroup.essential": "Essentiel",
    "radioGroup.actionable": "Recommandé",
    "radioGroup.non_actionable": "Optionnel",
    "radioGroup.celebratory": "Célébratoire",
    "radioGroup.essentialTooltipTitle": "Si tu marques ceci comme Essentiel",
    "radioGroup.essentialTooltipBody": "L'apprenant est fortement incité à agir sur ce point avant de continuer. Amélioration essentielle."
  },
  "components/mentoring/request/locked-solution-mentoring-note": {
    "lockedSolutionMentoringNote.mentoringDocs": "documentation de mentorat",
    "lockedSolutionMentoringNote.solutionLocked": "Cette solution est verrouillée jusqu'à {{lockedUntil}} (dans {{diffMins}}).",
    "lockedSolutionMentoringNote.solutionNoLongerLocked": "Cette solution n'est plus verrouillée et un autre mentor peut la prendre en charge",
    "extendLockedUntilModal.mentorLockExpiring": "Le verrou du mentor arrive bientôt à expiration",
    "extendLockedUntilModal.timeRemaining": "Il ne te reste que {{diffMinutes}} pour soumettre ton commentaire avant que cette demande de mentorat ne soit déverrouillée pour que d'autres mentors puissent y répondre.",
    "extendLockedUntilModal.wouldLikeMoreTime": "Tu veux plus de temps ?",
    "extendLockedUntilModal.yesExtend": "Oui, prolonger de 30 minutes",
    "extendLockedUntilModal.noThankYou": "Non, merci",
    "locked.stillLocked": "Consulte notre <a>documentation de mentorat</a> pour plus d'informations. Cette solution est verrouillée jusqu'à {{lockedUntil}} (dans {{diffMins}}).",
    "locked.unlocked": "Consulte notre <a>documentation de mentorat</a> pour plus d'informations. Cette solution n'est plus verrouillée et un autre mentor peut la prendre en charge."
  },
  "components/mentoring/request/StartMentoringPanel.tsx": {
    "startMentoringPanel.helpStudentWriteBetter": "Aider {{studentHandle}} à mieux écrire en {{trackTitle}} ?",
    "startMentoringPanel.showThemWayToCodeBliss": "Tu penses pouvoir aider {{studentHandle}} à aborder cela de meilleure façon ? Commence le mentorat et montre-lui la voie vers le plaisir de coder.",
    "startMentoringPanel.startMentoring": "Commencer le mentorat",
    "startMentoringPanel.sessionReturnsToQueue": "Tu as 30 minutes avant que la session ne retourne dans la file d'attente pour que d'autres mentors puissent la prendre.",
    "startMentoringPanel.unableToLockSolution": "Impossible de verrouiller la solution"
  },
  "components/mentoring/Session.tsx": {
    "session.code": "Code",
    "session.discussion": "Discussion",
    "session.scratchpad": "Brouillon",
    "session.guidance": "Conseils"
  },
  "components/mentoring/session/CloseButton.tsx": {
    "closeButton.returnToDashboard": "Fermer la discussion et revenir au tableau de bord du mentorat"
  },
  "components/mentoring/session/favorite-button": {
    "removeFavoriteButton.unfavorite": "Retirer des favoris ?",
    "removeFavoriteButton.favorited": "Ajouté aux favoris",
    "addFavoriteButton.addToFavorites": "Ajouter aux favoris"
  },
  "components/mentoring/session/iteration-view": {
    "iterationHeader.downloadButton.downloadThisSolutionViaCli": "Télécharger cette solution via la CLI",
    "iterationHeader.downloadButton.solutionDownloadedIntoSubdirectory": "Cette solution sera téléchargée dans un sous-répertoire réservé à cet apprenant.",
    "iterationHeader.copyButton.copied": "Copié",
    "iterationHeader.outOfDateNotice.exerciseUpdated": "Cet exercice a été mis à jour depuis que l'apprenant a soumis cette\n        itération. Il se peut qu'il ne passe pas la série de tests la plus récente. Les exercices\n        peuvent être mis à jour par les apprenants en cliquant sur la barre jaune\n        de la page principale de l'exercice.",
    "iterationHeader.downloadButton.downloadSolution": "Télécharger la solution",
    "iterationHeader.copyButton.copySolution": "Copier la solution"
  },
  "components/editor/header": {
    "settings.on": "Activé",
    "settings.off": "Désactivé",
    "settings.editor": "Éditeur",
    "settings.accessibility": "Accessibilité",
    "more.openMoreOptions": "Ouvrir plus d'options",
    "more.revertToExerciseStart": "Revenir au début de l'exercice",
    "more.revertToLastIteration": "Revenir à la dernière itération",
    "more.reportABug": "Signaler un bug",
    "backToExercise": "Retour à l'exercice",
    "settings.vim": "Vim",
    "settings.emacs": "Emacs",
    "settings.settings": "Paramètres",
    "settings.editorConfigurationLabel": "Une série de boutons radio pour configurer l'éditeur de code d'Exercism",
    "keyboardShortcuts": "Raccourcis clavier",
    "settings.theme": "Thème",
    "settings.keybindings": "Raccourcis clavier",
    "settings.wrap": "Retour à la ligne",
    "settings.tabMode": "Mode tabulation",
    "settings.light": "Clair",
    "settings.dark": "Sombre",
    "settings.default": "Par défaut"
  },
  "components/editor/legacy-file-banner": {
    "deleteFileModal.areYouSure": "Tu es sûr de vouloir supprimer ce fichier ?",
    "deleteFileModal.deletingFile": "Supprimer ce fichier signifie qu'il ne sera pas soumis dans le cadre de ta prochaine itération. Il restera toutefois visible dans ton itération précédente. Si tu changes d'avis avant de soumettre, tu peux utiliser le bouton « Réinitialiser à la dernière itération » (en haut à droite) pour annuler cette modification.",
    "deleteFileModal.deleteFile": "Supprimer le fichier",
    "deleteFileModal.cancel": "Annuler"
  },
  "components/editor/LegacyFileBanner.tsx": {
    "legacyFileBanner.fileUnexpected": "Ce fichier est inattendu. L'as-tu téléversé via la CLI par erreur ?",
    "legacyFileBanner.deleteFile": "Supprimer le fichier…",
    "legacyFileBanner.learnMore": "En savoir plus"
  },
  "components/editor/panels": {
    "resultsPanel.testRunCancelled": "Exécution des tests annulée",
    "resultsPanel.runTestsToCheckYourCode": "<0>Lancer les tests</0> pour vérifier ton code",
    "resultsPanel.wellRunYourCode": "On va lancer ton code sur les tests pour vérifier s'il fonctionne,\npuis on te donnera les résultats ici.",
    "instructionsPanel.introduction": "Introduction",
    "instructionsPanel.watchOurVideo": "Regarde notre vidéo « Introduction à Hello, World » pour bien démarrer 👇",
    "instructionsPanel.instructions": "Instructions",
    "instructionsPanel.task": "Tâche {{n}}",
    "instructionsPanel.stuckRevealHints": "Bloqué ? Afficher les indices",
    "instructionsPanel.opensInAModal": "S'ouvre dans une fenêtre modale",
    "instructionsPanel.howToDebug": "Comment déboguer",
    "instructionsPanel.helloWorldVideoTitle": "Bienvenue dans Hello, World !"
  },
  "components/editor/RunTestsButton.tsx": {
    "runTestsButton.youHaveNotMadeChanges": "Tu n'as fait aucune modification depuis la dernière exécution des tests",
    "runTestsButton.runTests": "Lancer les tests"
  },
  "components/editor/SubmitButton.tsx": {
    "submitButton.submit": "Soumettre",
    "submitButton.testsPassingRequired": "Tu dois faire passer les tests avant de pouvoir soumettre ta solution"
  },
  "components/editor/tabs": {
    "testsTab.tests": "Tests",
    "feedbackTab.feedback": "Retour",
    "instructionsTab.instructions": "Instructions",
    "resultsTab.results": "Résultats"
  },
  "components/mentoring/Queuetsx": {
    "queue.filterByStudentHandle": "Filtrer par nom d'utilisateur de l'apprenant"
  },
  "components/mentoring/representation/common": {
    "cancelButton.cancel": "Annuler",
    "commentTag.essential": "Essentiel",
    "commentTag.recommended": "Recommandé"
  },
  "components/mentoring/representation/left-pane": {
    "representationIterationView.solutionNumber": "Solution n° {{solutionNumber}}",
    "representationIterationView.occurrence": "{{count}} occurrence",
    "representationIterationView.occurrences": "{{count}} occurrences",
    "representationIterationView.lastOccurred": "Dernière occurrence {{lastOccurred}}",
    "representationInfo.feedbackOnSolution": "Tu donnes un retour sur un ensemble de solutions pour",
    "leftPane.exerciseInTrack": "{{exerciseTitle}} dans le parcours {{trackTitle}}"
  },
  "components/mentoring/representation/modals": {
    "previewAutomationModal.modalTitle": "Merci d'avoir soumis ton retour !",
    "submittedAutomationModal.thanksForFeedback": "Merci d'avoir soumis ton retour !",
    "submittedAutomationModal.shownToStudents": "Il sera montré aux apprenants concernés sur leurs solutions au fur et à mesure qu'ils avancent dans les exercices.",
    "submittedAutomationModal.solutionShownTimes": "On te montrera aussi combien de fois ta solution est montrée aux apprenants.",
    "submittedAutomationModal.continueToSolutions": "Continuer vers les solutions qui nécessitent un retour",
    "submittedAutomationModal.right": "droite",
    "submittedAutomationModal.earnedReputation": "Tu as gagné",
    "submittedAutomationModal.reputationForFeedback": "De la réputation pour avoir fourni ce retour 😊",
    "previewFooter.youCanEditFeedback": "Tu peux modifier ce retour à tout moment.",
    "previewFooter.feedbackWillAppearOn": "Ton retour apparaîtra sur",
    "previewFooter.submit": "Soumettre",
    "previewFooter.example": "Exemple",
    "previewFeedbackComment.gaveThisFeedback": "<0>{{mentorName}}</0> a donné ce retour sur une solution exactement comme la tienne :",
    "previewFeedbackComment.commentedOn": "Commenté le {{date}}"
  },
  "components/mentoring/representation/right-pane": {
    "automationRules.noGuidance": "Ce representer n'a pas encore de conseils. Les notes de conseils sont rédigées par nos mainteneurs pour expliquer quelles normalisations ont lieu pendant le processus de représentation. Si tu es mainteneur, aide-nous à les démarrer pour ce representer en envoyant une <0>Pull Request sur GitHub</0>.",
    "automationRules.pleaseReadBeforeGivingFeedback": "À lire avant de donner un retour",
    "considerations.readThisBeforeGivingFeedback": "Merci de <0>lire ceci</0> avant de donner ton premier retour.",
    "utilityTabs.information": "Informations",
    "utilityTabs.scratchpad": "Bloc-notes",
    "utilityTabs.guidance": "Conseils",
    "representationFeedbackEditor.previewAndSubmit": "Prévisualiser et soumettre",
    "howImportant.howImportantIsThis": "À quel point est-ce important ?",
    "radioButton.info": "Info"
  },
  "components/mentoring/representation/right-pane/MentoringConversation.tsx": {
    "mentoringConversation.loading": "Chargement.."
  },
  "components/journey/contribution-results": {
    "markAllAsSeenModal.cancel": "Annuler",
    "orderSwitcher.sortByOldestFirst": "Trier par plus anciens en premier",
    "orderSwitcher.sortByNewestFirst": "Trier par plus récents en premier",
    "markAllAsSeenButton.markAllAsSeen": "Tout marquer comme vu",
    "markAllAsSeenModal.markAllAsSeenQuestion": "Tout marquer comme vu ?",
    "markAllAsSeenModal.confirmationMessage": "Veux-tu vraiment marquer les {{unseenTotal}} contributions comme vues ? Note que ces contributions peuvent s'étendre sur plusieurs pages.",
    "markAllAsSeenModal.continue": "Continuer"
  },
  "components/journey/contributions-list": {
    "categorySelect.contributingToExercises": "Contribution aux exercices",
    "categorySelect.buildingExercism": "Développement d'Exercism",
    "categorySelect.maintaining": "Maintenance",
    "categorySelect.mentoring": "Mentorat",
    "categorySelect.publishing": "Publication",
    "categorySelect.other": "Autre",
    "categorySelect.anyCategory": "Toutes les catégories",
    "categorySelect.category": "Catégorie"
  },
  "components/journey/overview": {
    "contributingSection.youHaventContributed": "Tu n'as pas encore contribué à Exercism",
    "contributingSection.seeHowYouCanContribute": "Découvre comment contribuer",
    "contributingSection.yourContributions": "Tes contributions",
    "learningSection.youHaventJoinedTracks": "Tu n'as encore rejoint aucun parcours",
    "learningSection.chooseTrackToGetStarted": "Choisis un parcours pour commencer.",
    "learningSection.yourLearning": "Ton apprentissage",
    "mentoringSection.youHaventMentoredAnyone": "Tu n'as encore mentoré personne",
    "mentoringSection.tryMentoring": "Essaie le mentorat",
    "mentoringSection.yourMentoring": "Ton mentorat",
    "badgesSection.aGlimpseOfBadges": "Un aperçu de ta collection de badges",
    "badgesSection.seeEntireBadgeCollection": "Découvre toute ta collection de badges"
  },
  "components/journey/overview/badges-section": {
    "badgeSummary.none": "Tu n'as aucun badge.",
    "badgeSummary.summary": "Tu as {{list}}.",
    "badgeSummary.rarity.legendary_one": "{{count}} badge légendaire",
    "badgeSummary.rarity.legendary_many": "{{count}} badges légendaires",
    "badgeSummary.rarity.legendary_other": "{{count}} badges légendaires",
    "badgeSummary.rarity.ultimate_one": "{{count}} badge ultime",
    "badgeSummary.rarity.ultimate_many": "{{count}} badges ultimes",
    "badgeSummary.rarity.ultimate_other": "{{count}} badges ultimes",
    "badgeSummary.rarity.rare_one": "{{count}} badge rare",
    "badgeSummary.rarity.rare_many": "{{count}} badges rares",
    "badgeSummary.rarity.rare_other": "{{count}} badges rares",
    "badgeSummary.rarity.common_one": "{{count}} badge commun",
    "badgeSummary.rarity.common_many": "{{count}} badges communs",
    "badgeSummary.rarity.common_other": "{{count}} badges communs"
  },
  "components/journey/overview/contributing-section": {
    "headerSummary.youHaveContributedMostTo": "Tu as contribué le plus à ",
    "headerSummary.noSummaryForTrack": "Aucun résumé pour ce parcours"
  },
  "components/journey/overview/learning-section": {
    "exercisesCompletedSummary.exerciseCompleted": "Exercice terminé",
    "exercisesCompletedSummary.exercisesCompleted": "Exercices terminés",
    "conceptsLearntSummary.conceptLearnt": "Concept appris",
    "conceptsLearntSummary.conceptsLearnt": "Concepts appris",
    "headerSummary.youVeProgressed": "Tu as le plus progressé dans ",
    "learningStats.didYouKnow": "Le savais-tu ?",
    "learningStats.linesOfCodeStat": "Tu as écrit <strong>{{numLines}} {{lineLabel}}</strong> de code dans <link>{{numSolutions}} {{solutionLabel}}</link>.",
    "learningStats.aesopFact": "C'est à peu près l'équivalent de la longueur d'une <fableLink>fable d'Ésope !</fableLink>",
    "tracksEnrolledSummary.tracksEnrolled_one": "Parcours rejoint",
    "tracksEnrolledSummary.tracksEnrolled_many": "Parcours rejoints",
    "tracksEnrolledSummary.tracksEnrolled_other": "Parcours rejoints",
    "trackSummary.exercisesCompleted": "{{completed}} / {{total}} ({{percent}} %) exercices terminés",
    "trackSummary.joinedTrack": "Quand tu as rejoint le parcours {{title}}",
    "trackSummary.startedTrackAgo": "Tu as commencé à travailler sur le parcours {{title}} <strong>{{since}}</strong>.",
    "trackSummary.none": "aucun",
    "trackSummary.mentoringSessionsCompleted_one": "Session de mentorat terminée",
    "trackSummary.mentoringSessionsCompleted_many": "Sessions de mentorat terminées",
    "trackSummary.mentoringSessionsCompleted_other": "Sessions de mentorat terminées",
    "trackSummary.mentoringStatus": "Tu as <strong>{{inProgress}}</strong> en cours et <strong>{{queued}}</strong> dans la file d'attente.",
    "trackSummary.mentoring.discussion_one": "{{count}} discussion",
    "trackSummary.mentoring.discussion_many": "{{count}} de discussions",
    "trackSummary.mentoring.discussion_other": "{{count}} discussions",
    "trackSummary.mentoring.solution_one": "{{count}} solution",
    "trackSummary.mentoring.solution_many": "{{count}} de solutions",
    "trackSummary.mentoring.solution_other": "{{count}} solutions",
    "trackSummary.progressionVelocity": "Vitesse de progression",
    "trackSummary.avgVelocity": "Moy. sur Exercism = {{avg}}",
    "trackSummary.velocityExplanation": "C'est une mesure de la vitesse à laquelle tu as progressé dans le parcours au cours des 6 derniers mois",
    "learningOverview.youReThroughSingle": "Tu as parcouru <em>{{percentage}} %</em> du parcours auquel tu es inscrit. <strong>Continue comme ça !</strong>",
    "learningOverview.youReThroughMultiple": "Tu as parcouru <em>{{percentage}} %</em> des parcours auxquels tu es inscrit. <strong>Continue comme ça !</strong>",
    "learningOverview.exercisesCompleted": "{{completed}} / {{total}} exercices terminés"
  },
  "components/settings/PronounsForm.tsx": {
    "pronounsForm.pronounValidationTitle": "Le pronom ne peut pas contenir d'espace et ne doit pas dépasser 255 caractères",
    "pronounsForm.successAlt": "Succès",
    "pronounsForm.placeholderThey": "ex. : il",
    "pronounsForm.placeholderThem": "ex. : lui",
    "pronounsForm.placeholderTheir": "ex. : son",
    "pronounsForm.testimonialText": "{{handle}} a été vraiment formidable.",
    "pronounsForm.testimonialAnswered": "a répondu à toutes mes questions. Je recommande",
    "pronounsForm.testimonialToOthersBecause": "à d'autres parce que",
    "pronounsForm.testimonialAdviceHelpful": "les conseils étaient très utiles.",
    "pronounsForm.frequentlyUsed": "Fréquemment utilisés :",
    "pronounsForm.sheHerHer": "elle / la / son",
    "pronounsForm.heHimHis": "il / le / son",
    "pronounsForm.theyThemTheir": "iel / iel / son",
    "pronounsForm.useHandle": "Utilise le nom d'utilisateur",
    "pronounsForm.leaveBlank": "Laisse vide",
    "pronounsForm.savePronouns": "Enregistre les pronoms",
    "pronounsForm.yourPronounsHaveBeenUpdated": "Tes pronoms ont été mis à jour",
    "pronounsForm.howWouldYouLikeToBeAddressedOptional": "Comment souhaites-tu être appelé ? (facultatif)",
    "pronounsForm.instructions": "Nous te recommandons d'indiquer les pronoms que tu souhaites que les gens emploient pour parler de toi. <0>Dans l'exemple de témoignage ci-dessous, saisis les pronoms que tu veux que nous montrions à tes mentors et à tes apprenants.</0> Tu peux laisser ce champ vide, auquel cas nous ne suggérerons aucun pronom. <1>En savoir plus sur la façon dont nous utilisons les pronoms.</1>"
  },
  "components/settings/ResetAccountButton.tsx": {
    "resetAccount": "Réinitialiser le compte"
  },
  "components/settings/ShowOnSupportersPageButton.tsx": {
    "appearOnSupportersPage": "Apparaître sur la page des supporters ?"
  },
  "components/settings/theme-preference-form": {
    "infoMessage.insiderAccessToDarkMode": "En tant qu'Insider d'Exercism, tu as accès au mode sombre. Choisis entre clair, sombre, ou une mise à jour automatique selon les préférences de ton système. Profite bien ! 💎",
    "infoMessage.eligibleToJoinInsiders": "Tu peux rejoindre les Insiders. <0>Commence ici.</0>",
    "infoMessage.darkModeOnlyAvailableToInsiders": "Le mode sombre n'est disponible que pour les Insiders d'Exercism. <0>Fais un don à Exercism</0> et deviens Insider pour accéder au mode sombre, à l'intégration ChatGPT et plus encore.",
    "disabledTooltip.mustBeExercismInsider": "Tu dois être un <0>Insider d'Exercism <1/></0> pour débloquer ce thème."
  },
  "components/settings/ThemePreferenceForm.tsx": {
    "themePreferenceForm.theme": "Thème"
  },
  "components/settings/TokenForm.tsx": {
    "tokenForm.apiCliToken": "Jeton API / CLI",
    "tokenForm.yourAuthenticationTokenIs": "Ton jeton d'authentification est :",
    "tokenForm.whereDoIUseThis": "Où l'utiliser ?",
    "tokenForm.resetToken": "Réinitialiser le jeton",
    "tokenForm.yourTokenHasBeenReset": "Ton jeton a été réinitialisé",
    "tokenForm.successAlt": "Succès"
  },
  "components/settings/useInvalidField.tsx": {
    "field.mustBeNoLongerThan": "{{fieldName}} ne doit pas dépasser {{maxLength}} caractères"
  },
  "components/settings/UserPreferencesForm.tsx": {
    "automation.title": "Automatisation",
    "automation.changePreferences": "Modifier les préférences",
    "automation.successMessage": "Tes préférences ont été mises à jour",
    "automation.successAlt": "Succès"
  },
  "components/student/CompleteExerciseButton.tsx": {
    "markAsComplete": "Marquer comme terminé"
  },
  "components/student/ExerciseList.tsx": {
    "allExercises": "Tous les exercices",
    "completed": "Terminé",
    "inProgress": "En cours",
    "available": "Disponible",
    "locked": "Verrouillé",
    "searchByTitle": "Rechercher par titre",
    "noExercisesFound": "Aucun exercice trouvé"
  },
  "components/student/ExerciseStatusChart.tsx": {
    "exerciseStatusChart.invalidStatus": "Statut invalide"
  },
  "components/student/iterations-list": {
    "analyzerFeedback.analyzerGeneratedFeedback": "Notre <strong>analyseur {{trackTitle}}</strong> a généré ce retour lors de l'analyse de ta solution.",
    "analyzerFeedback.learnMore": "En savoir plus",
    "comment.essential": "Essentiel",
    "comment.recommended": "Recommandé",
    "analysisInformation.analyzingCode": "On analyse ton code pour te proposer des suggestions",
    "analysisInformation.analysisTime": "Cela prend généralement 10 à 30 secondes.",
    "analysisInformation.noAutoSuggestions": "Pas de suggestions automatiques ? Essaie le mentorat humain.",
    "analysisInformation.getHumanMentoring": "Reçois un vrai mentorat humain en tête-à-tête sur l'exercice {{exerciseTitle}} et commence à écrire du meilleur {{trackTitle}}.",
    "analysisInformation.getMentoring": "Obtenir du mentorat",
    "analysisInformation.testFailed": "Bip boup bop, impossible de calculer…",
    "analysisInformation.passingTestsNeeded": "Pour que nos systèmes puissent analyser ton code, les tests doivent être réussis.",
    "analysisInformation.interestedInImprovingTooling": "Envie d'améliorer l'outillage automatisé d'Exercism ? <helpLink>Nous avons besoin de ton aide</helpLink>.",
    "information.analysis": "Analyse",
    "information.tests": "Tests",
    "information.backup": "Sauvegarde",
    "representerFeedback.gaveFeedback": "<strong>{{authorName}}</strong> a laissé ce retour sur une solution très similaire à la tienne",
    "representerFeedback.editedBy": "modifié par <strong>{{editorName}}</strong>",
    "testsInformation.unableToFetchTestRun": "Impossible de récupérer l'exécution des tests",
    "emptyIterations.noIterations": "Tu n'as pas encore soumis d'itération.",
    "emptyIterations.iterationsWillAppear": "Tu verras toutes tes itérations avec les résultats des tests et le retour automatisé dès que tu auras soumis une solution.",
    "emptyIterations.viaExercismEditor": "Via l'éditeur d'Exercism",
    "emptyIterations.startInEditor": "Commencer dans l'éditeur",
    "emptyIterations.unableToStartExercise": "Impossible de démarrer l'exercice",
    "emptyIterations.workLocally": "Travailler en local (via la CLI)",
    "emptyIterations.learnMoreSolvingExercisesLocally": "En savoir plus sur la résolution d'exercices en local",
    "optionsDropdown.optionsForIteration": "Options pour l'itération {{iterationIdx}}",
    "optionsDropdown.deleteIteration": "Supprimer l'itération",
    "deleteIterationModal.areYouSure": "Veux-tu vraiment supprimer l'itération {{iterationIdx}} ?",
    "deleteIterationModal.deletedIterationsRemoved": "Les itérations supprimées sont aussi retirées des solutions publiées et des discussions de mentorat. <strong>C'est irréversible.</strong>",
    "deleteIterationModal.deleteIteration": "Supprimer l'itération",
    "deleteIterationModal.cancel": "Annuler",
    "deleteIterationModal.unableToDeleteIteration": "Impossible de supprimer l'itération",
    "iterationReport.thisIterationHasBeenDeleted": "Cette itération a été supprimée",
    "analyzerFeedback.opensInANewTab": "S'ouvre dans un nouvel onglet"
  },
  "components/modals/EnableSolutionCommentsModal.tsx": {
    "enableSolutionCommentsModal.cancel": "Annuler",
    "enableSolutionCommentsModal.unableToEnableComments": "Impossible d'activer les commentaires",
    "enableSolutionCommentsModal.enableComments": "Activer les commentaires ?",
    "enableSolutionCommentsModal.enablingCommentsAllows": "Activer les commentaires permet aux gens de publier publiquement des questions et des réflexions sur ta solution. Tu peux les désactiver à tout moment.",
    "enableSolutionCommentsModal.enableCommentsButton": "Activer les commentaires"
  },
  "components/modals/exercise-update-modal": {
    "exerciseUpdateForm.header": "Découvre ce qui a changé dans <icon/> {{exerciseTitle}}",
    "exerciseUpdateForm.warning": "Si tu passes à la dernière version, ta solution risque d'échouer aux tests et de devoir être mise à jour.",
    "exerciseUpdateForm.updateExercise": "Mettre à jour l'exercice",
    "exerciseUpdateForm.dismiss": "Ignorer"
  },
  "components/modals/ExerciseMakersModal.tsx": {
    "exerciseMakersModal.seeFullHistoryOnGithub": "Voir l'historique complet de cet exercice sur GitHub",
    "exerciseMakersModal.authors": "Auteurs",
    "exerciseMakersModal.peopleWhoWroteExercise": "Les personnes qui ont écrit l'exercice",
    "exerciseMakersModal.contributors": "Contributeurs",
    "exerciseMakersModal.peopleWhoUpdatedExercise": "Les personnes qui ont mis à jour l'exercice"
  },
  "components/modals/ExerciseUpdateModal.tsx": {
    "exerciseUpdateModal.loadingExerciseDiff": "Chargement du _diff_ de l'exercice",
    "exerciseUpdateModal.autoUpdatedTitle": "Exercice mis à jour",
    "exerciseUpdateModal.autoUpdatedBody": "Cet exercice a été automatiquement mis à jour vers la dernière version. Il n'y a aucun changement de fichier à examiner.",
    "exerciseUpdateModal.continue": "Continuer"
  },
  "components/modals/mentor": {
    "finishMentorDiscussionModal.areYouSure": "Tu es sûr de vouloir mettre fin à cette discussion ?",
    "finishMentorDiscussionModal.explanation": "Il est normalement temps de mettre fin à une discussion quand l'apprenant a obtenu ce qu'il voulait de la conversation, ou quand tu as poussé la conversation aussi loin que tu le souhaitais. Il est généralement poli de laisser un dernier au revoir à l'apprenant.",
    "finishMentorDiscussionModal.cancel": "Annuler",
    "finishMentorDiscussionModal.endDiscussion": "Mettre fin à la discussion"
  },
  "components/modals/mentor-registration-modal": {
    "commitStep.title": "Engage-toi à être un bon mentor",
    "commitStep.description": "Le mentorat sur Exercism peut être une expérience incroyable, tant pour les apprenants que pour les mentors. Pour que cela reste un endroit positif pour tout le monde, nous demandons à tous les mentors d'adhérer aux valeurs d'Exercism avant de mentorer leur première solution.",
    "commitStep.youAgreeTo": "Tu t'engages à :",
    "commitStep.codeOfConduct": "Respecter le <0>Code de conduite <1/></0>",
    "commitStep.beKind": "Être patient, empathique et bienveillant avec les personnes que tu mentores",
    "commitStep.intellectualHumility": "Faire preuve d'<0>humilité intellectuelle <1/></0>",
    "commitStep.noAgendas": "Ne pas utiliser Exercism pour promouvoir des intérêts personnels",
    "commitStep.back": "Retour",
    "commitStep.continue": "Continuer",
    "chooseTrackStep.selectTracks": "Sélectionne les parcours que tu veux mentorer",
    "chooseTrackStep.allowsUsToShow": "Cela nous permet de ne te montrer que les solutions que tu veux mentorer. <0>Pas de panique, tu peux modifier ces sélections à tout moment.</0>",
    "stepIndicator.step": "Étape {{num}} : {{label}}",
    "closeButton.closeModal": "Fermer la fenêtre modale",
    "congratulationsStep.youAreNowMentor": "Tu es maintenant mentor !",
    "congratulationsStep.thankYouGrateful": "Merci, nous te sommes tellement reconnaissants pour ton engagement 🙏",
    "congratulationsStep.makeGettingStartedEasy": "Nous voulons que tes débuts dans le mentorat soient aussi simples que possible. Regarde la vidéo ci-dessous pour découvrir comment commencer.",
    "congratulationsStep.welcomeToMentorTeam": "Bienvenue dans l'équipe des mentors !",
    "congratulationsStep.video": "Vidéo · 0:24",
    "congratulationsStep.readyToGetStarted": "Je suis prêt à commencer !",
    "commitStep.opensInANewTab": "Ouvre dans un nouvel onglet",
    "congratulationsStep.thisIsAVideo": "Ceci est une vidéo",
    "stepIndicator.becomeAMentorProgress": "Progression pour devenir mentor"
  },
  "components/mentoring/discussion/FinishedWizard.tsx": {
    "finishedWizard.incorrectState": "État incorrect : {{step}}"
  },
  "components/mentoring/discussion/MarkAsNothingToDoButton.tsx": {
    "markAsNothingToDoButton.studentsTurn": "Ce bouton te permet de retirer cette discussion de ta boîte de réception et de la renvoyer dans celle de l'apprenant. Utilise-le quand c'est au tour de l'apprenant d'agir, mais que le système croit à tort que c'est à toi.",
    "markAsNothingToDoButton.itsTheStudentsTurn": "C'est au tour de l'apprenant…",
    "markAsNothingToDoButton.passDiscussionBack": "Renvoyer cette discussion à l'apprenant ?",
    "markAsNothingToDoButton.continuingWillRemove": "Si tu continues, cette discussion sera retirée de ta boîte de réception et renvoyée dans celle de l'apprenant. Cette fonctionnalité est prévue pour le cas où un apprenant t'a laissé un message du type « Bien sûr, je m'en occupe » et où le système doit à présent savoir que c'est toujours à l'apprenant d'agir.",
    "markAsNothingToDoButton.addCommentToDiscussion": "S'il n'est pas évident pour l'apprenant que c'est à lui d'agir, ajoute un commentaire à la discussion en plus d'utiliser ce bouton.",
    "markAsNothingToDoButton.continue": "Continuer",
    "markAsNothingToDoButton.cancel": "Annuler"
  },
  "components/mentoring/discussion/NewMessageAlert.tsx": {
    "newMessage": "Nouveau message"
  },
  "components/mentoring/inbox": {
    "discussionList.somethingWentWrong": "Une erreur est survenue",
    "discussionList.retry": "Réessayer",
    "discussionList.noMentoringDiscussions": "Aucune discussion de mentorat",
    "discussionList.mentorNewSolution": "Mentorer une nouvelle solution",
    "discussion.favoriteStudent": "Apprenant favori",
    "discussion.comments": "{{postsCount}} commentaires",
    "trackFilter.somethingWentWrong": "Une erreur est survenue"
  },
  "components/mentoring/Inboxtsx": {
    "inbox.inbox": "Boîte de réception",
    "inbox.awaitingStudent": "En attente de l'apprenant",
    "inbox.finished": "Terminées",
    "inbox.filterByStudentOrExerciseName": "Filtrer par nom d'apprenant ou d'exercice"
  },
  "components/mentoring/queue": {
    "exerciseFilterList.allExercises": "Tous les exercices",
    "exerciseFilterList.searchByExerciseName": "Rechercher par nom d'exercice",
    "exerciseFilterList.onlyShowExercisesThatNeedMentoring": "Afficher uniquement les exercices qui ont besoin de mentorat",
    "exerciseFilterList.onlyShowExercisesIHaveCompleted": "Afficher uniquement les exercices que j'ai terminés",
    "solutionList.noDiscussionsFound": "Aucune discussion trouvée",
    "solution.favoriteStudent": "Apprenant favori",
    "solution.mentoredPreviously": "Déjà mentorée",
    "trackFilterList.clickToChange": "Clique pour modifier",
    "trackFilterList.openTheTrackFilter": "Ouvre le filtre de parcours",
    "trackFilterList.changeTheTracksYouMentor": "Modifie les parcours dont tu es mentor",
    "trackFilterList.unableToFetchTracks": "Impossible de récupérer les parcours"
  },
  "components/common/share-panel": {
    "platformButton.devToButton.devTo": "DEV.to",
    "platformButton.facebookButton.facebook": "Facebook",
    "platformButton.twitterButton.twitter": "Twitter",
    "platformButton.redditButton.reddit": "Reddit",
    "platformButton.linkedinButton.linkedIn": "LinkedIn"
  },
  "components/common/ShareButton.tsx": {
    "shareButton.share": "Partager"
  },
  "components/common/ShareLink.tsx": {
    "shareLink.shareIt": "Partage-le."
  },
  "components/common/SingleSelect.tsx": {
    "singleSelect.clickToChange": "Cliquer pour changer"
  },
  "components/common/site-updates-list/PullRequestWidget.tsx": {
    "pullRequestWidget.pullRequest": "Pull Request",
    "pullRequestWidget.mergedInfo": "#{{number}} fusionnée {{time}} par {{user}}",
    "pullRequestWidget.merged": "Fusionnée"
  },
  "components/common/ThemeToggleButton.tsx": {
    "themeToggleButton.joinInsiders": "Rejoins <0>Insiders</0> pour activer le mode sombre"
  },
  "components/community": {
    "storiesGrid.index.moreStories": "D'autres histoires de notre communauté",
    "storiesGrid.index.listenLearn": "Écoute, apprends et laisse-toi inspirer par les membres de notre communauté.",
    "videoGrid.index.searchCommunity": "Rechercher du contenu de la communauté",
    "videoGrid.index.learnWithCommunity": "Apprends avec notre communauté",
    "videoGrid.index.walkthroughsTutorials": "Des démonstrations pas à pas, des tutoriels et des diffusions en direct de notre communauté.",
    "videoGrid.index.noVideosFound": "Aucune vidéo trouvée.",
    "videoGrid.index.tryChangingFilters": "Essaie de modifier les filtres pour trouver la vidéo que tu cherches.",
    "videoGrid.index.thereAreNoVideos": "Il n'y a aucune vidéo pour le moment.",
    "videoGrid.index.checkBackLater": "Reviens plus tard pour en voir d'autres !",
    "videoGrid.trackFilterList.openTrackFilter": "Ouvrir le filtre de parcours",
    "videoGrid.trackFilterList.clickToChange": "Cliquer pour changer",
    "videoGrid.thumbnail": "miniature"
  },
  "components/community-solutions": {
    "commentsList.reminder.rememberComments": "Rappel ! Les commentaires servent à poser des questions ou à applaudir une solution. <0>Ne les utilise pas</0> pour le mentorat ou pour donner un retour.",
    "commentsList.commentView.edit": "Modifier",
    "commentsList.count.numberOfComments": "{{number}} {{pluralize}}",
    "commentsList.emptyList.noComments": "Personne n'a commenté cette solution.",
    "commentsList.emptyList.beFirst": "Sois le premier à ajouter ton commentaire !",
    "commentsList.options.disableComments": "Désactiver les commentaires…",
    "commentsList.options.enableComments": "Activer les commentaires…",
    "commentsList.header.writeComment": "Écrire un commentaire",
    "commentsList.listDisabled.disabledCommentsAuthor": "Tu as désactivé les commentaires sur cette solution. Utilise l'icône « Options » ci-dessus pour basculer cette option.",
    "commentsList.listDisabled.disabledComments": "Les commentaires ont été désactivés",
    "commentsList.header.writeAComment": "Écrire un commentaire",
    "starButton.numberOfStars": "Nombre d'étoiles",
    "starButton.favorite": "Ajouter aux favoris",
    "starButton.favorited": "Ajouté aux favoris"
  },
  "components/concept-map": {
    "exerciseStatusBar.exerciseStatusDotTooltip": "Info-bulle du point d'état de l'exercice",
    "concept.availableConcept": "Concept disponible :",
    "concept.learnedConcept": "Concept appris :",
    "concept.masteredConcept": "Concept maîtrisé :",
    "concept.lockedConcept": "Concept verrouillé :",
    "concept.concept": "Concept :"
  },
  "components/donations/subscription-form": {
    "formOptions.initializedOption.changeAmount": "Modifie le montant",
    "formOptions.initializedOption.or": "ou",
    "formOptions.initializedOption.cancelRecurringDonation": "Annule ton don récurrent",
    "formOptions.updatingOption.changeDonationAmount": "Modifie le montant du don",
    "formOptions.updatingOption.dollarSign": "$",
    "formOptions.updatingOption.chargedPerMonth": "Le prélèvement de <strong>{{amount}} par mois</strong> commencera à ta prochaine date de facturation.",
    "formOptions.updatingOption.thankYouForIncreasingDonation": "Merci d'avoir augmenté ton don !",
    "formOptions.updatingOption.changeAmountButton": "Modifie le montant",
    "formOptions.updatingOption.cancelThisChange": "Annule cette modification",
    "formOptions.cancellingOption.areYouSure": "Veux-tu vraiment annuler ton don récurrent ?",
    "formOptions.cancellingOption.yesPleaseCancel": "Oui, annule-le, s'il te plaît.",
    "formOptions.cancellingOption.noCloseThis": "Non, ferme ça."
  },
  "components/dropdowns": {
    "trackMenu.seeTrackOnGithub": "Regarde le parcours {{trackTitle}} sur Github <icon/>",
    "trackMenu.documentation": "Documentation du parcours {{trackTitle}}",
    "trackMenu.trackBuildStatus": "État de compilation du parcours",
    "trackMenu.disableLearningMode": "Désactive le mode apprentissage…",
    "trackMenu.enableLearningMode": "Active le mode apprentissage…",
    "trackMenu.resetTrack": "Réinitialise le parcours…",
    "trackMenu.leaveTrack": "Quitte le parcours…",
    "notifications.seeAllYourNotifications": "Regarde toutes tes notifications",
    "notifications.unableToLoad": "Impossible de charger les notifications",
    "notifications.openNotifications": "Ouvre les notifications",
    "reputation.unableToRetrieve": "Impossible de récupérer les jetons de réputation",
    "trackMenu.trackOptions": "Options du parcours"
  },
  "components/dropdowns/reputation": {
    "reputationMenu.seeHowYouEarned": "Découvre comment tu as gagné toute ta réputation",
    "reputationIcon.reputationAriaLabel": "Réputation : {{reputation}}",
    "reputationIcon.reputationAlt": "Réputation"
  },
  "components/modals/mentor-registration-modal/commit-step": {
    "reputationInfo.reputationAndTestimonials": "Réputation et témoignages",
    "reputationInfo.gainReputation": "Tu gagneras <0>6 points de réputation</0> pour chaque discussion de mentorat réussie. À la fin de chaque discussion, les apprenants sont invités à te laisser un témoignage."
  },
  "components/modals/MentorChangeTracksModal.tsx": {
    "changeTheTracksYouMentor": "Modifie les parcours pour lesquels tu es mentor",
    "youWillStillBeAbleToContinue": "Tu pourras toujours poursuivre les discussions existantes sur les autres parcours."
  },
  "components/modals/MentorRegistrationModal.tsx": {
    "chooseTrackStep.selectTracks": "Sélectionne les parcours pour lesquels tu veux être mentor",
    "commitStep.commitToBeGoodMentor": "Engage-toi à être un bon mentor",
    "congratulationsStep.congratulations": "Félicitations"
  },
  "components/modals/PreviousMentoringSessionsModal.tsx": {
    "header_one": "<strong>Tu as {{count}} discussion précédente</strong> avec <avatar/><name>{{studentHandle}}</name>",
    "header_many": "<strong>Tu as {{count}} discussions précédentes</strong> avec <avatar/><name>{{studentHandle}}</name>",
    "header_other": "<strong>Tu as {{count}} discussions précédentes</strong> avec <avatar/><name>{{studentHandle}}</name>",
    "headerMobile_one": "{{studentHandle}} et toi avez <strong>{{count}} discussion précédente</strong>",
    "headerMobile_many": "{{studentHandle}} et toi avez <strong>{{count}} discussions précédentes</strong>",
    "headerMobile_other": "{{studentHandle}} et toi avez <strong>{{count}} discussions précédentes</strong>"
  },
  "components/modals/profile": {
    "firstTimeModal.havePublicProfile": "Tu as maintenant un profil public !",
    "firstTimeModal.goodJob": "Bravo !",
    "firstTimeModal.seeSolutions": "Tu verras désormais tes solutions publiées, tes témoignages de mentorat, tes contributions et tes badges sur ton profil public.",
    "firstTimeModal.shareProfile": "Tu peux aussi partager ton profil avec d'autres !"
  },
  "components/modals/PublishSolutionModal.tsx": {
    "publishSolutionModal.publishYourSolution": "Publie ta solution",
    "publishSolutionModal.recommendPublishing": "On te recommande de publier toutes tes itérations pour aider les autres à apprendre de ton cheminement, mais tu peux aussi choisir de ne mettre en avant que ton itération préférée.",
    "publishSolutionModal.publish": "Publier",
    "publishSolutionModal.cancel": "Annuler",
    "publishSolutionModal.unableToPublishSolution": "Impossible de publier la solution"
  },
  "components/modals/realtime-feedback-modal": {
    "realTimeFeedbackModal.deepDiveVideo": "Vidéo d'analyse approfondie",
    "realTimeFeedbackModal.feedback": "Retour",
    "checkingForAutomatedFeedback.checking": "Recherche de retours automatisés…",
    "checkingForAutomatedFeedback.inspectingCode": "Nos systèmes analysent ton code pour trouver à la fois les retours automatisés et les retours donnés par les mentors sur des solutions similaires.",
    "checkingForAutomatedFeedback.processTime": "Ce processus prend normalement environ 10 secondes.",
    "checkingForAutomatedFeedback.continueWaiting": "Continuer sans attendre",
    "checkingForAutomatedFeedback.takingLonger": "Désolé, cela prend un peu plus de temps que prévu. Tu peux continuer sans attendre si tu le souhaites. Tu pourras consulter les retours dans l'onglet des itérations de la solution plus tard.",
    "feedbackContent.noFeedback": "Aucun retour automatisé",
    "feedbackContent.foundFeedback": "Retours automatisés trouvés"
  },
  "components/modals/realtime-feedback-modal/components": {
    "feedbackContentButtons.goBackToEditor": "Revenir à l'éditeur",
    "feedbackContentButtons.continue": "Continuer"
  },
  "components/modals/realtime-feedback-modal/feedback-content": {
    "deepDiveVideoContent.digDeeperInto": "Creuse plus loin dans {{exerciseTitle}} !",
    "deepDiveVideoContent.continue": "Continuer"
  },
  "components/modals/realtime-feedback-modal/feedback-content/found-automated-feedback": {
    "index.suggestionImproveCode": "Voici une suggestion pour améliorer ton code…",
    "index.positiveFeedback": "On a des retours positifs pour toi ! 🎉",
    "index.importantSuggestionImproveCode": "Voici une suggestion importante pour améliorer ton code…",
    "index.thoughtsOnCode": "Voici quelques réflexions sur ton code…",
    "index.continue": "Continuer",
    "index.continueAnyway": "Continuer quand même",
    "analyzerFeedback.generatedFeedback": "Notre <strong>analyseur {{trackTitle}}</strong> a généré ce retour en analysant ta solution.",
    "representerFeedback.gaveFeedbackSimilarSolution": "<0>{{author}}</0> a donné ce retour sur une solution très similaire à la tienne"
  },
  "components/common/HandleWithFlair.tsx": {
    "flair.insider": "Un Insider",
    "flair.lifetime_insider": "Un Insider à vie",
    "flair.founder": "Fondateur",
    "flair.staff": "Équipe",
    "flair.alt": "La pastille de {{title}}."
  },
  "components/editor/AssistantChat": {
    "assistantChatPanel.stuckAskYourAiAssistant": "Bloqué ? Demande à ton assistant IA",
    "assistantChatPanel.askAboutYourCode": "Pose des questions sur ton code, les tests ou l'exercice. L'assistant te guide vers une solution plutôt que de te donner la réponse.",
    "assistantChatPanel.tryAgain": "Réessaie",
    "assistantChatPanel.notAvailableRightNow": "L'assistant IA n'est pas disponible pour le moment.",
    "assistantChatPanel.reachedYourMessageLimit": "Tu as atteint ta limite de messages",
    "assistantChatPanel.waitingForTheAssistant": "En attente de la réponse de l'assistant…",
    "assistantChatPanel.respondToTheAssistant": "Réponds à l'assistant…",
    "assistantChatPanel.askAboutYourCodePlaceholder": "Pose une question sur ton code, les tests ou l'exercice…",
    "assistantChatPanel.sendMessage": "Envoie le message",
    "assistantChatPanel.whatAreYouStuckOn": "Salut ! Sur quoi bloques-tu ? Dis-moi ce que tu as essayé et je t'aiderai à trouver la solution.",
    "assistantChatPanel.insiderBenefits.unlimitedAiAssistant.title": "Assistant IA illimité",
    "assistantChatPanel.insiderBenefits.unlimitedAiAssistant.desc": "Des conversations illimitées sur chaque exercice, dans chaque parcours.",
    "assistantChatPanel.insiderBenefits.jikiPremium.title": "Accès complet à Jiki Premium",
    "assistantChatPanel.insiderBenefits.jikiPremium.desc": "Tout ce que contient l'offre premium de Jiki, inclus.",
    "assistantChatPanel.insiderBenefits.darkMode.title": "Mode sombre",
    "assistantChatPanel.insiderBenefits.darkMode.desc": "Notre thème sombre élégant, plus doux pour les yeux tard le soir.",
    "assistantChatPanel.insiderBenefits.adFree.title": "Expérience sans publicité",
    "assistantChatPanel.insiderBenefits.adFree.desc": "Désactive toutes les publicités sur toute la plateforme.",
    "assistantChatPanel.insiderBenefits.behindTheScenes.title": "Contenu dans les coulisses",
    "assistantChatPanel.insiderBenefits.behindTheScenes.desc": "Des diffusions en direct privées et des analyses approfondies de la stack d'Exercism.",
    "assistantChatPanel.insiderBenefits.supportExercism.title": "Soutiens Exercism",
    "assistantChatPanel.insiderBenefits.supportExercism.desc": "Fais vivre un apprentissage de la programmation gratuit pour tout le monde. 💙",
    "assistantChatPanel.joinExercismInsiders": "Rejoins <gradient>Exercism Insiders</gradient> pour obtenir plus d'aide",
    "assistantChatPanel.usedFreeConversationElsewhere": "Tu as utilisé ta conversation IA gratuite sur un autre exercice.",
    "assistantChatPanel.usedFreeConversation": "Tu as utilisé ta conversation gratuite avec l'IA.",
    "assistantChatPanel.everyoneGetsAConversation": "Tout le monde a droit à une conversation gratuite avec l'Assistant IA sur un exercice. Deviens Insiders pour le débloquer partout, ainsi que tout le reste ci-dessous.",
    "assistantChatPanel.becomeAnInsider": "Deviens Insiders",
    "assistantChatPanel.tenAMonth": "10 $/mois. Tu peux annuler à tout moment.",
    "assistantChatStartState.rotatingPhrases.whyThisIsntWorking": "pourquoi ça ne marche pas",
    "assistantChatStartState.rotatingPhrases.howToFixThisBug": "comment corriger ce bug",
    "assistantChatStartState.rotatingPhrases.whatThisErrorMeans": "ce que signifie cette erreur",
    "assistantChatStartState.rotatingPhrases.howToApproachThis": "comment s'y prendre",
    "assistantChatStartState.rotatingPhrases.howToGetUnstuck": "comment sortir de l'impasse",
    "assistantChatStartState.feelingStuck": "Tu es bloqué ?",
    "assistantChatStartState.askOurAssistantAbout": "Demande à notre Assistant",
    "assistantChatStartState.tellUsWhatYoureStuckOn": "Dis-nous où tu bloques, et ce que tu as déjà essayé…",
    "assistantChatStartState.askOurAssistant": "Demande à notre Assistant",
    "assistantChatStartState.unlimitedConversations": "Conversations illimitées, incluses avec Insiders",
    "assistantChatStartState.getAssistantHelpFree": "Obtiens de l'aide de l'assistant sur cet exercice, 100 % gratuit.",
    "insidersUpsellModal.unlockYourAiAssistant": "Débloque ton Assistant IA",
    "insidersUpsellModal.becomeAnInsiderFor": "Deviens Insiders pour des conversations illimitées sur chaque exercice.",
    "insidersUpsellModal.fundedByDonations": "Exercism est financé par les dons. Ton don de <strong>{{amount}}</strong> par mois permet à Exercism de rester gratuit pour tout le monde, et débloque l'Assistant IA, le mode sombre, une expérience sans publicité et bien plus encore.",
    "insidersUpsellModal.changeOrCancel": "Tu peux modifier ou annuler ton don à tout moment depuis tes paramètres.",
    "insidersUpsellModal.becomeAnInsider": "Deviens Insiders",
    "insidersUpsellModal.broughtStraightBack": "Tu reviendras directement sur cet exercice ensuite ; ton travail est enregistré au fur et à mesure que tu tapes.",
    "insidersUpsellModal.youreAnInsider": "Tu fais partie des Insiders ! 💙",
    "insidersUpsellModal.thankYouForSupporting": "Merci de soutenir Exercism. Ton Assistant IA est débloqué sur chaque exercice, ainsi que le mode sombre, une expérience sans publicité et tout ce que les Insiders débloquent.",
    "insidersUpsellModal.receiptInYourInbox": "Tu recevras un reçu dans ta boîte de réception sous peu.",
    "insidersUpsellModal.startWorkingWithTheAssistant": "Commence à travailler avec l'Assistant",
    "assistantChatTab.aiAssistant": "Assistant IA",
    "chatApi.tooManyRequests": "Trop de requêtes. Attends un instant, puis réessaie.",
    "chatApi.assistantOverloaded": "L'assistant est surchargé. Réessaie dans un instant.",
    "chatApi.assistantTimedOut": "L'assistant n'a pas répondu à temps. Réessaie.",
    "chatApi.assistantUnavailable": "L'assistant est indisponible. Réessaie dans un instant.",
    "chatApi.connectionLost": "Connexion perdue. Vérifie ton réseau.",
    "chatApi.somethingWentWrong": "Une erreur est survenue. Réessaie.",
    "chatApi.failedToParseErrorResponse": "Échec de l'analyse de la réponse d'erreur",
    "chatApi.unknownError": "Erreur inconnue",
    "chatApi.streamProcessingError": "Erreur de traitement du flux",
    "chatUsage.closeToMonthlyLimit": "Tu approches de ta limite mensuelle ({{used}}/{{limit}} messages ce mois-ci).",
    "chatUsage.closeToDailyLimit": "Tu approches de ta limite quotidienne ({{used}}/{{limit}} messages aujourd'hui).",
    "chatUsage.usedAllMonthlyMessages": "Tu as utilisé tous tes {{limit}} messages ce mois-ci. Ils se réinitialisent le 1er du mois.",
    "chatUsage.usedAllDailyMessages": "Tu as utilisé tous tes {{limit}} messages du jour. Ils se réinitialisent à minuit UTC."
  },
  "components/student/MentoringSession.tsx": {
    "iterationView.discussion": "Discussion",
    "mentoringRequest.trackObjectives": "Objectifs du parcours",
    "closeButton.close": "Ferme",
    "sessionInfo.inTrack": "Dans",
    "discussionActions.exercise": "Exercice"
  },
  "components/student/open-editor-button": {
    "startExerciseButton.startInEditor": "Commencer dans l'éditeur"
  },
  "components/student/OpenEditorButton.tsx": {
    "openEditor.openInEditor": "Ouvrir dans l'éditeur",
    "openEditor.startInEditor": "Commencer dans l'éditeur",
    "openEditor.continueInEditor": "Continuer dans l'éditeur",
    "openEditor.downloadAndWorkLocally": "Télécharger et travailler en local",
    "openEditor.downloadPrompt": "Tu préfères utiliser les outils que tu connais plutôt que notre éditeur en ligne ? Pas de problème !",
    "openEditor.youCanWorkLocally": "{{downloadPrompt}} Tu peux télécharger cet exercice et le faire en local, puis le soumettre quand tu es satisfait.",
    "openEditor.exerciseNotAvailable": "Cet exercice n'est pas disponible avec l'éditeur en ligne.",
    "openEditor.firstTimeUsingSetup": "C'est la première fois que tu utilises notre installation locale ? Lis notre <link>guide pour résoudre les exercices en local</link> pour comprendre le déroulement et installer Exercism en local. Reviens ensuite ici et utilise la commande ci-dessus pour commencer l'exercice.",
    "openEditor.onlineEditorNotAvailable": "L'éditeur en ligne n'est pas disponible pour cet exercice. Résous cet exercice en local et soumets-le via la CLI.",
    "openEditor.clickArrowForMoreInfo": "Clique sur la flèche à droite pour plus d'informations.",
    "openEditor.exerciseCurrentlyLocked": "Cet exercice est actuellement verrouillé"
  },
  "components/student/published-solution": {
    "publishSettings.publishSettings": "Paramètres de publication",
    "publishSettings.changePublishedIterations": "Modifier les itérations publiées…",
    "publishSettings.unpublishSolution": "Dépublier la solution…",
    "unpublishSolutionModalButton.label": "Dépublier la solution"
  },
  "components/student/PublishSolutionButton.tsx": {
    "publishSolutionButton.publishSolution": "Publier la solution"
  },
  "components/student/RequestMentoringButton.tsx": {
    "mentoringSlotAvailable": "Créneau de mentorat disponible",
    "selectAnExercise": "Sélectionner un exercice"
  },
  "components/student/solution-summary": {
    "communitySolutions.learnFromOthersSolutions": "Apprends des solutions des autres",
    "communitySolutions.thisIsWhereWeWouldUsuallyLink": "C'est ici que nous te renvoyons habituellement vers les solutions d'autres personnes pour le même exercice.",
    "communitySolutions.exploreTheirApproaches": "Explore leurs approches pour découvrir de nouvelles astuces. Découvre les solutions populaires de cet exercice.",
    "communitySolutions.viewCommunitySolutions": "Voir les solutions de la communauté",
    "mentoring.getMentoredByAHuman": "Fais-toi mentorer par un humain",
    "mentoring.youAlsoGetTheOpportunityToBeMentored": "Tu as aussi la possibilité d'être mentoré par des experts du parcours {{trackTitle}}.",
    "mentoring.onAverageStudentsIterate": "En moyenne, les apprenants itèrent 3,5 fois de plus lorsqu'ils sont mentorés sur une solution.",
    "mentoring.learnMore": "En savoir plus",
    "header.yourSolutionLooksGood": "Ta solution semble bonne !",
    "header.goodJobYourSolutionHasPassedAllTests": "<strong>Bien joué.</strong> Ta solution pour « {{exerciseTitle}} ! » a réussi tous les tests 😊",
    "header.yourSolutionIsBeingProcessed": "Ta solution est en cours de traitement…",
    "header.yourSolutionIsCurrentlyBeingTested": "Ta solution est en cours de test, d'analyse et de comparaison avec d'autres solutions pour trouver des améliorations potentielles. Cela ne devrait prendre que quelques secondes.",
    "header.yourSolutionFailedTheTests": "Ta solution a échoué aux tests.",
    "header.hmmmItLooksLikeYourSolutionIsntWorking": "Hmmm, on dirait que ta solution ne fonctionne pas. Vérifie que les tests passent en local sur ta machine. S'ils passent chez toi, lis <articleLink>cet article <icon></icon></articleLink>",
    "header.yourSolutionWorkedButYouCanTakeItFurther": "Ta solution fonctionne, mais tu peux aller plus loin…",
    "header.weveAnalysedYourSolutionAndHave": "Nous avons analysé ta solution et avons {{comments}}. Traite les améliorations essentielles avant de continuer.",
    "header.yourSolutionLooksGreat": "Ta solution est excellente !",
    "header.yourSolutionPassedTheTestsAndWeDontHave": "Ta solution a réussi les tests et nous n'avons aucune recommandation. {{mentorOffer}} <strong>Beau travail ! 🎉</strong>",
    "header.considerWorkingWithAMentor": "Pense à travailler avec un mentor pour la rendre encore meilleure.",
    "header.youMightWantToWorkWithAMentor": "Tu voudras peut-être travailler avec un mentor pour l'améliorer encore.",
    "header.weveAnalysedYourSolutionAndNotFoundAnythingThatNeedsChanging_one": "On a analysé ta solution et on n'a rien trouvé qui ait besoin d'être changé. On a quand même <comments>{{count}} commentaire supplémentaire</comments> que tu peux avoir envie de regarder. {{mentorOffer}} <strong>Bravo ! 🎉</strong>",
    "header.weveAnalysedYourSolutionAndNotFoundAnythingThatNeedsChanging_many": "On a analysé ta solution et on n'a rien trouvé qui ait besoin d'être changé. On a quand même <comments>{{count}} commentaires supplémentaires</comments> que tu peux avoir envie de regarder. {{mentorOffer}} <strong>Bravo ! 🎉</strong>",
    "header.weveAnalysedYourSolutionAndNotFoundAnythingThatNeedsChanging_other": "On a analysé ta solution et on n'a rien trouvé qui ait besoin d'être changé. On a quand même <comments>{{count}} commentaires supplémentaires</comments> que tu peux avoir envie de regarder. {{mentorOffer}} <strong>Bravo ! 🎉</strong>",
    "header.yourSolutionIsGoodEnoughToContinue": "Ta solution est assez bonne pour continuer !",
    "header.weveAnalysedYourSolutionAndHaveComments_one": "On a analysé ta solution et on a relevé {{comments}}. Tu peux soit continuer, soit t'occuper d'abord de la recommandation, à toi de choisir !",
    "header.weveAnalysedYourSolutionAndHaveComments_many": "On a analysé ta solution et on a relevé {{comments}}. Tu peux soit continuer, soit t'occuper d'abord des {{count}} recommandations, à toi de choisir !",
    "header.weveAnalysedYourSolutionAndHaveComments_other": "On a analysé ta solution et on a relevé {{comments}}. Tu peux soit continuer, soit t'occuper d'abord des {{count}} recommandations, à toi de choisir !",
    "header.weSuggestAddressingTheRecommendations_one": "On te suggère de t'occuper de la recommandation avant de continuer.",
    "header.weSuggestAddressingTheRecommendations_many": "On te suggère de t'occuper des {{count}} recommandations avant de continuer.",
    "header.weSuggestAddressingTheRecommendations_other": "On te suggère de t'occuper des {{count}} recommandations avant de continuer.",
    "status.testsPassed": "Tests réussis",
    "status.testsFailed": "Tests échoués",
    "comments.essentialImprovements_one": "{{count}} amélioration essentielle",
    "comments.essentialImprovements_many": "{{count}} améliorations essentielles",
    "comments.essentialImprovements_other": "{{count}} améliorations essentielles",
    "comments.recommendations_one": "{{count}} recommandation",
    "comments.recommendations_many": "{{count}} recommandations",
    "comments.recommendations_other": "{{count}} recommandations",
    "comments.additionalComments_one": "{{count}} commentaire supplémentaire",
    "comments.additionalComments_many": "{{count}} commentaires supplémentaires",
    "comments.additionalComments_other": "{{count}} commentaires supplémentaires",
    "header.opensInANewTab": "S'ouvre dans un nouvel onglet",
    "mentoring.opensInNewTab": "S'ouvre dans un nouvel onglet"
  },
  "components/modals/track-welcome-modal/LHS/steps/components": {
    "welcomeToTrack.welcomeTo": "Bienvenue dans {{trackTitle}} ! 🎉"
  },
  "components/modals/track-welcome-modal/RHS": {
    "whoIsThisTrackFor.courseName": "<strong>Coding Fundamentals</strong> d'Exercism",
    "whoIsThisTrackFor.courseOffersHeading": "Ce cours propose :",
    "whoIsThisTrackFor.courseOffers.expertTeaching": "<strong>Un enseignement d'experts</strong> et un accompagnement par des mentors.",
    "whoIsThisTrackFor.courseOffers.handsOnProjects": "Plus de <strong>100 heures d'apprentissage pratique par projets</strong>, où tu crées des jeux et résous des énigmes.",
    "whoIsThisTrackFor.courseOffers.completeSyllabus": "Un <strong>programme complet pour apprendre à coder</strong> qui couvre les bases de la programmation, les fonctions, la programmation orientée objet et l'état d'esprit du développeur.",
    "whoIsThisTrackFor.courseOffers.certificate": "Un <strong>certificat</strong> officiel une fois le cours terminé.",
    "whoIsThisTrackFor.youllBuildGames": "En quelques semaines, tu passeras de zéro à résoudre des énigmes et à créer des jeux comme ceux-ci...",
    "whoIsThisTrackFor.testimonial": "J'ai été bluffé par la qualité de ce cours. J'ai tellement progressé ces dernières semaines !",
    "videoRHS.watchThisShortVideo": "☝️ Regarde cette courte vidéo pour en savoir plus sur les modes apprentissage et entraînement, et pour choisir la configuration qui te convient.",
    "whoIsThisTrackFor.gameAlt.spaceInvaders": "Image d'un jeu de type Space Invaders",
    "whoIsThisTrackFor.gameAlt.ticTacToe": "Image d'un jeu de morpion",
    "whoIsThisTrackFor.gameAlt.breakout": "Image d'un jeu de casse-briques",
    "whoIsThisTrackFor.gameAlt.maze": "Image d'un jeu de labyrinthe",
    "whoIsThisTrackFor.learnByDoing": "Apprends en pratiquant... dès le premier jour !",
    "whoIsThisTrackFor.betaTester": "- L'un de nos bêta-testeurs."
  },
  "components/modals/UnpublishSolutionModal.tsx": {
    "unpublishSolutionModal.title": "Veux-tu dépublier ta solution ?",
    "unpublishSolutionModal.body": "Si tu dépublies ta solution, elle n'apparaîtra plus sur ton profil et ne sera plus visible dans les solutions de la communauté. Toutes les étoiles et tous les commentaires seront perdus, et la réputation associée sera supprimée.",
    "unpublishSolutionModal.unpublishButton": "Dépublier la solution",
    "unpublishSolutionModal.cancelButton": "Annuler"
  },
  "components/modals/upload-video": {
    "thanksForSubmitting.thanksForSubmitting": "✨ Merci d'avoir soumis ta vidéo !",
    "thanksForSubmitting.approvedVideoMessage": "Si ta vidéo est approuvée, elle apparaîtra dans la section Approches de l'exercice.",
    "thanksForSubmitting.noProblemImDone": "Pas de problème. J'ai terminé."
  },
  "components/modals/upload-video/elements": {
    "uploadVideoForm.useDifferentVideo": "Utiliser une autre vidéo",
    "uploadVideoForm.submitVideo": "Soumettre la vidéo",
    "uploadVideoTextInput.pasteYourVideoUrlYoutube": "COLLE L'URL DE TA VIDÉO (YOUTUBE)",
    "uploadVideoTextInput.videoTitle": "Titre de la vidéo",
    "uploadVideoTextInput.enterTheVideoTitle": "Saisis le titre de la vidéo",
    "uploadVideoForm.isTheVideoYoursOrSomeoneElses": "LA VIDÉO EST-ELLE À TOI OU À QUELQU'UN D'AUTRE ?",
    "uploadVideoForm.mine": "À moi",
    "uploadVideoForm.someoneElse": "Quelqu'un d'autre",
    "retrieveVideoForm.pasteYourVideoUrlYoutube": "COLLE L'URL DE TA VIDÉO (YOUTUBE)",
    "retrieveVideoForm.thisLinkIsInvalidPleaseCheckItAgain": "Ce lien n'est pas valide, vérifie-le à nouveau !",
    "retrieveVideoForm.pasteYourVideoHere": "Colle ta vidéo ici",
    "retrieveVideoForm.retrieveVideo": "Récupère la vidéo",
    "uploadVideoModalHeader.submitACommunityWorkthrough": "Soumets une résolution vidéo pour la communauté",
    "uploadVideoModalHeader.producedAVideoOfWorkingThroughThisExerciseYourselfWantToShareItWithTheExercismCommunity": "Tu as réalisé une vidéo où tu résous cet exercice toi-même ? Tu veux la partager avec la communauté Exercism ? <strong className=\"font-medium text\">Soumets le formulaire ci-dessous et Jeremy l'examinera et l'approuvera.</strong>",
    "uploadVideoForm.videoThumbnail": "miniature de la vidéo",
    "uploadVideoForm.reset": "Réinitialise"
  },
  "components/editor/GetHelp": {
    "getHelpPanelComponents.getHelpPanelTrackHelp.trackHelp": "Aide pour {{trackTitle}}",
    "getHelpPanelComponents.getHelpPanelHints.stuckHintsWillGive": "Bloqué ? Ces indices te donneront des coups de pouce dans la bonne direction pour te débloquer. Utilise-les avec discernement : rappelle-toi que c'est en se débattant avec un problème que l'on apprend !",
    "getHelpPanelComponents.getHelpPanelHints.clickHeadingExpand": "Clique sur un titre pour afficher les indices :",
    "getHelpPanelComponents.getHelpPanelHints.general": "Général",
    "getHelpPanelComponents.getHelpPanelCommunityHelp.dontStruggleAlone": "Ne reste pas seul face aux difficultés ! Notre communauté est toujours là pour t'aider.",
    "getHelpPanelComponents.getHelpPanelCommunityHelp.cantSubmitMentoringRequest": "Tu ne peux pas faire de demande de mentorat tant que les tests ne passent pas, mais tu peux demander de l'aide sur Discord ou sur notre forum. Utilise les liens ci-dessous pour commencer :",
    "getHelpPanelComponents.getHelpPanelCommunityHelp.discord": "Discord",
    "getHelpPanelComponents.getHelpPanelCommunityHelp.discordDescription": "Obtiens de l'aide en temps réel dans le canal #get-help de notre serveur Discord.",
    "getHelpPanelComponents.getHelpPanelCommunityHelp.forum": "Forum",
    "getHelpPanelComponents.getHelpPanelCommunityHelp.forumDescription": "Approfondis les sujets et les idées sur notre forum.",
    "getHelpPanelComponents.getHelpAccordionSkeleton.getHelp": "Obtiens de l'aide",
    "stuckButton.stuckGetHelp": "Bloqué ? Obtiens de l'aide",
    "getHelpTab.getHelp": "Obtiens de l'aide",
    "getHelpPanelComponents.getHelpPanelCommunityHelp.communityHelp": "Aide de la communauté"
  },
  "components/track/activity-ticker": {
    "publishedSolutionLink.newSolution": "<0>nouvelle solution</0> pour ",
    "handle.someoneInCountry": "Quelqu'un en {{countryName}}",
    "handle.someone": "Quelqu'un",
    "userAvatar.userAvatar": "Avatar de {{handle}}",
    "pullRequestLink.pullRequest": "Pull Request"
  },
  "components/track/dig-deeper-components": {
    "deepDiveVideo.deepDiveInto": "Analyse approfondie de {{exerciseTitle}} !",
    "approaches.approaches": "Approches",
    "approaches.otherWaysCommunitySolved": "D'autres façons dont notre communauté a résolu cet exercice",
    "approaches.noApproaches": "Il n'y a pas d'approche pour {{exerciseTitle}}.",
    "approachSnippet.author": "auteur",
    "approachSnippet.contributor": "contributeur",
    "sectionHeader.articles": "Articles",
    "sectionHeader.exploreMoreIdeas": "Explore d'autres idées sur cet exercice",
    "sectionHeader.noArticles": "Il n'y a pas d'articles pour {{exerciseTitle}}.",
    "diggingDeeper.digDeeper": "Creuse plus loin",
    "diggingDeeper.author": "auteur",
    "diggingDeeper.contributor": "contributeur",
    "diggingDeeper.editViaGitHub": "Modifie via GitHub",
    "diggingDeeper.linkOpensInNewTab": "Le lien s'ouvre dans une nouvelle fenêtre ou un nouvel onglet"
  },
  "components/track/dig-deeper-components/community-videos": {
    "communityVideos.communityVideos": "Vidéos de la communauté",
    "communityVideos.walkthroughsFromPeople": " Démonstrations de personnes qui utilisent Exercism ",
    "communityVideos.wantYourVideoFeatured": "Tu veux que ta vidéo soit mise en avant ici ?",
    "communityVideos.submitItHere": "Soumets-la ici.",
    "videoCredits.exercismProfile": "Profil Exercism",
    "videoCredits.youTubeChannel": "Chaîne YouTube",
    "communityVideoModal.postedBy": "Publiée par ",
    "communityVideo.seeVideo": "Vois la vidéo",
    "communityVideoFooter.wantYourVideoFeatured": "Tu veux que ta vidéo soit mise en avant ici ?",
    "communityVideoFooter.submitItHere": "Soumets-la ici",
    "communityVideo.thumbnail": "Vignette"
  },
  "components/track/dig-deeper-components/no-content-yet": {
    "noContentYet.thereAreNoContentTypeForExerciseTitle": "Il n'y a pas de contenu de type {{contentType}} pour {{exerciseTitle}}.",
    "noIntroductionYet.digDeeper": "Creuse plus loin",
    "noIntroductionYet.thereAreNoIntroductionNotesForExerciseTitle": "Il n'y a pas de notes d'introduction pour {{exerciseTitle}}.",
    "noIntroductionYet.wantToContribute": "Tu veux contribuer ?",
    "noIntroductionYet.youCanDoItHere": "Tu peux le faire ici."
  },
  "components/track/exercise-community-solutions-list": {
    "orderSelect.sortByMostSubmitted": "Trier par nombre de soumissions",
    "orderSelect.sortByNewest": "Trier par les plus récentes",
    "orderSelect.sortByOldest": "Trier par les plus anciennes",
    "orderSelect.sortByFewestLines": "Trier par nombre de lignes",
    "orderSelect.sortByHighestRepUser": "Trie par utilisateur avec la réputation la plus élevée",
    "exerciseTagFilter.exerciseTagFilterGroup.filterBy": "Filtre par {{groupName}}",
    "exerciseTagFilter.exerciseTagFilter.filter": "Filtre",
    "exerciseTagFilter.exerciseTagFilter.clickToChange": "Clique pour modifier"
  },
  "components/mentoring/session/mobile-code-panel/MobileIterationView.tsx": {
    "mobileIterationView.thisIterationHasBeenDeleted": "Cette itération a été supprimée"
  },
  "components/mentoring/session/mobile-code-panel/SessionInfoHamburgerButton.tsx": {
    "sessionInfoHamburgerButton.downloadSolution": "Télécharger la solution"
  },
  "components/mentoring/session/mobile-code-panel/SessionInfoModal.tsx": {
    "sessionInfoModal.onExerciseInTrack": "sur {{exerciseTitle}} dans {{trackTitle}}"
  },
  "components/mentoring/session/Scratchpad.tsx": {
    "scratchpad.introducingYourScratchpad": "Découvre ton bloc-notes",
    "scratchpad.markdownSupportedPlace": "Un espace <0>compatible avec Markdown</0> pour écrire des notes et ajouter des extraits de code que tu souhaites consulter pendant le mentorat.",
    "scratchpad.yourNotesForExerciseInTrack": "Tes notes pour <0>{{exerciseTitle}}</0> dans<1/><0>{{trackTitle}}</0>",
    "scratchpad.revertToSaved": "Revenir à la version enregistrée",
    "scratchpad.save": "Enregistrer",
    "scratchpad.unsaved": "Non enregistré"
  },
  "components/mentoring/session/SessionInfo.tsx": {
    "exerciseInTrack": "sur <a>{{exerciseTitle}}</a> dans {{trackTitle}}"
  },
  "components/mentoring/session/student-info": {
    "toggleMoreInformationButton.expand": "développer",
    "studentTrackObjectives.exploreTrackGoals": "Découvrir les objectifs de parcours de {{handle}}"
  },
  "components/mentoring/session/StudentInfo.tsx": {
    "studentInfo.whoYoureMentoring": "Qui tu mentors"
  },
  "components/mentoring/testimonials-list": {
    "orderSelect.sortByUnrevealedFirst": "Trier par : non révélés en premier",
    "orderSelect.sortByNewestFirst": "Trier par : plus récents en premier",
    "orderSelect.sortByOldestFirst": "Trier par : plus anciens en premier",
    "revealedTestimonial.new": "Nouveau",
    "revealedTestimonial.onExerciseInTrack": "sur {{exerciseTitle}} dans {{trackTitle}}",
    "unrevealedTestimonial.someoneLeftYouATestimonial": "Quelqu'un t'a laissé un témoignage… 😲",
    "unrevealedTestimonial.clickTapToReveal": "Clique / touche pour révéler"
  },
  "components/mentoring/testimonials-list/revealed-testimonial": {
    "deleteTestimonialModal.areYouSure": "Es-tu sûr de vouloir supprimer ce témoignage ?",
    "deleteTestimonialModal.deletingWillHide": "Supprimer ce témoignage le masquera de cette liste, de ton profil et de tes statistiques de mentorat. <strong>Cette action est irréversible.</strong>",
    "deleteTestimonialModal.deleteTestimonial": "Supprimer le témoignage",
    "deleteTestimonialModal.cancel": "Annuler",
    "optionsDropdown.options": "Options",
    "optionsDropdown.deleteTestimonial": "Supprimer le témoignage"
  },
  "components/mentoring/TestimonialsList.tsx": {
    "testimonialsList.searchPlaceholder": "Rechercher par nom d'apprenant ou par témoignage",
    "testimonialsList.noTestimonialsTitle": "Tu n'as aucun témoignage pour le moment",
    "testimonialsList.noTestimonialsDescription": "Les apprenants laissent un témoignage à la fin d'une discussion de mentorat réussie."
  },
  "components/mentoring/track-selector": {
    "selectedTracks_one": "{{count}} parcours sélectionné",
    "selectedTracks_many": "{{count}} parcours sélectionnés",
    "selectedTracks_other": "{{count}} parcours sélectionnés",
    "trackCheckbox.trackSelected": "Parcours sélectionné",
    "tracksList.noTracksFound": "Aucun parcours trouvé",
    "continueButton.continue": "Continuer"
  },
  "components/modals/BadgeModal.tsx": {
    "badgeModal.newBadgeEarned": "Nouveau badge obtenu",
    "badgeModal.earnedOn": "Obtenu le ",
    "badgeModal.membersHaveEarned_one": "<0>{{count}}</0> membre a obtenu ce badge.",
    "badgeModal.membersHaveEarned_many": "<0>{{count}}</0> membres ont obtenu ce badge.",
    "badgeModal.membersHaveEarned_other": "<0>{{count}}</0> membres ont obtenu ce badge.",
    "badgeModal.percentageOfUsers": "C'est {{percentage}} % de tous les utilisateurs d'Exercism"
  },
  "components/modals/BegModal.tsx": {
    "begModal.sorryToDisturb": "Désolé de te déranger, mais...",
    "begModal.weNeedYourHelp": "On a besoin de ton aide !",
    "begModal.cantAffordIt": "Tu n'as pas les moyens ?",
    "begModal.shareExercism": "Si tu n'as pas les moyens de faire un don, mais que tu souhaites aider d'une autre manière, parle d'Exercism à tes amis et à tes collègues, et fais-nous connaître sur les réseaux sociaux. Plus de gens nous utilisent, plus nous recevons de dons !",
    "begModal.wantToKnowMore": "Tu veux en savoir plus ?",
    "begModal.explainsWhyWeNeedDonations": "J'ai préparé une petite vidéo qui explique pourquoi nous avons besoin de dons et comment nous les utilisons 👇",
    "begModal.fewerThan1Percent": "Moins de 1 % des personnes qui utilisent Exercism choisissent de faire un don. Si tu en as les moyens, fais-en partie.",
    "begModal.continueWithoutDonating": "Continuer sans faire de don",
    "begModal.previousDonorContent.thankYou": "Tu fais partie des rares personnes qui ont fait un don à Exercism. Merci infiniment de nous soutenir 💙",
    "begModal.previousDonorContent.hateToAskAgain": "Je déteste te le demander encore (😔), mais nous avons vraiment besoin de ton soutien. Exercism ne couvre pas ses coûts et nous avons vraiment besoin de ton aide. Si tu apprécies Exercism et que tu en as les moyens, <0>pense à faire un don de quelques dollars de plus</0> pour nous soutenir.",
    "begModal.previousDonorContent.monthlyDonationHelpful": "Si possible, un don mensuel nous aiderait énormément ! Il suffit de 30 secondes pour le mettre en place avec le formulaire à droite 👉",
    "begModal.nonDonorContent.exercismReliesOnDonations": "Exercism dépend des dons. Mais en ce moment, nous n'en avons pas assez 😔",
    "begModal.nonDonorContent.mostPeopleCantAfford": "La plupart des personnes qui utilisent Exercism n'ont pas les moyens de faire un don. Mais si tu en as les moyens et que tu trouves Exercism utile, <0>pense à faire un don de quelques dollars</0> afin que nous puissions le garder gratuit pour ceux qui n'en ont pas les moyens.",
    "begModal.nonDonorContent.only1Percent": "Il suffit que 1 % de nos utilisateurs nous soutiennent régulièrement pour que nous puissions couvrir nos coûts. Il faut 30 secondes pour faire un don, avec le formulaire à droite 👉"
  },
  "components/modals/Modal.tsx": {
    "modal.closeModal": "Fermer la fenêtre modale"
  },
  "components/student/mentoring-session": {
    "discussionInfo.thisDiscussionTimedOut": "Cette discussion a expiré.",
    "discussionInfo.reviewDiscussion": "Revois la discussion",
    "mentorInfo.meetYourMentor": "Rencontre ton mentor",
    "discussionActions.ended": "Terminée",
    "discussionActions.reviewDiscussion": "Revois la discussion",
    "discussionActions.endDiscussion": "Mets fin à la discussion",
    "iterationView.thisIterationHasBeenDeleted": "Cette itération a été supprimée",
    "sessionInfo.youreBeingMentoredByOn": "<divFlex>Tu reçois le mentorat de  <handleWithFlair/> sur</divFlex> <divExerciseTitle>{{exerciseTitle}}</divExerciseTitle>",
    "sessionInfo.getMentoringOn": "Obtenir du mentorat sur <divExerciseTitle>{{exerciseTitle}}</divExerciseTitle>",
    "discussionInfo.endedThisDiscussion": "{{mentorHandle}} a mis fin à cette discussion.",
    "discussionInfo.itsTimeToReviewMentoring": "Il est temps d'évaluer le mentorat de {{mentorHandle}}",
    "discussionInfo.youllBeAbleToLeaveFeedback": "Tu pourras laisser un retour et partager ce que tu as pensé de ton expérience.",
    "discussionInfo.reviewFinishDiscussion": "Évaluer et terminer la discussion"
  },
  "components/student/mentoring-session/iteration-view": {
    "iterationHeader.thisExerciseHasBeenUpdated": "Cet exercice a été mis à jour depuis que cette itération a été soumise.",
    "iterationHeader.youCanUpdateToLatestVersion": "Tu peux passer à la dernière version en cliquant sur la barre jaune en haut de la page principale de l'exercice."
  },
  "components/student/mentoring-session/mentoring-request": {
    "cancelRequestModal.cancelMentoringRequest": "Annuler la demande de mentorat ?",
    "cancelRequestModal.areYouSure": "Es-tu sûr de vouloir annuler cette demande de mentorat ? Note bien que si quelqu'un a commencé à donner des retours au cours des dernières minutes, la discussion pourra se poursuivre malgré cette annulation.",
    "cancelRequestModal.cancelMentoringRequestButton": "Annule la demande de mentorat",
    "cancelRequestModal.close": "Ferme",
    "cancelRequestButton.cancelRequest": "Annule la demande",
    "mentoringRequestInfo.waitingOnMentor": "En attente d'un mentor…",
    "mentoringRequestInfo.learnHowToGetMost": "Découvre comment tirer le meilleur parti du mentorat",
    "mentoringRequestInfo.mentoringRelies": "Le mentorat repose sur une compréhension commune, entre mentors et apprenants, de son fonctionnement.",
    "mentoringRequestInfo.readOurGuide": "<0>Lis notre guide <1/></0> ou regarde les vidéos ci-dessous pour acquérir cette compréhension.",
    "mentoringRequestInfo.newWindowOrTab": "Le lien s'ouvre dans une nouvelle fenêtre ou un nouvel onglet",
    "mentoringRequestInfo.waitingOnMentorQuestion": "En attente d'un mentor ?",
    "mentoringRequestInfo.howToGetMostOutOfMentoring": "Découvre comment tirer le meilleur parti du mentorat",
    "mentoringRequestInfo.wantAFriend": "Tu veux qu'un ami soit le mentor de ta solution ?",
    "mentoringRequestInfo.sendThisLink": "Envoie ce lien à un ami pour un mentorat privé.",
    "mentoringRequestForm.sendThisLinkFriend": "Envoie ce lien à un ami pour un mentorat privé.",
    "mentoringRequestForm.learnMore": "En savoir plus",
    "mentoringRequestForm.itsTimeToDeepen": "Il est temps d'approfondir tes connaissances.",
    "mentoringRequestForm.startMentoringDiscussion": "Démarre une discussion de mentorat sur <strong>{{exerciseTitle}}</strong> pour découvrir de nouvelles façons stimulantes de l'aborder. Développe et approfondis tes connaissances.",
    "mentoringRequestForm.submitMentoringRequest": "Soumets la demande de mentorat",
    "mentoringRequestForm.unableToCreateRequest": "Impossible de créer la demande de mentorat",
    "mentoringRequestForm.openForMentor": "Une fois que tu auras soumis ta demande, celle-ci sera ouverte à un mentor, qui pourra la rejoindre et commencer à donner des retours.",
    "mentoringRequestInfo.opensInANewWindowOrTab": "Le lien s'ouvre dans une nouvelle fenêtre ou un nouvel onglet"
  },
  "components/student/mentoring-session/mentoring-request/MentoringRequestFormComponents": {
    "solutionCommentTextArea.howCanMentorHelpYou": "Comment un mentor peut-il t'aider avec cette solution ?",
    "solutionCommentTextArea.giveMentorStartingPoint": "Donne à ton mentor un point de départ pour la conversation. Ce sera ton premier commentaire pendant la discussion. Le Markdown est autorisé.",
    "trackObjectivesTextArea.whatAreYouHopingToLearn": "Qu'espères-tu apprendre de ce parcours ?",
    "trackObjectivesTextArea.tellOurMentorsAboutYourBackground": "Parle à nos mentors un peu de ton expérience en programmation et de ce que tu cherches à apprendre avec {{trackTitle}}."
  },
  "components/student/MentoringComboButton.tsx": {
    "mentoringComboButton.continueCodeReview": "Poursuis la revue de code",
    "mentoringComboButton.viewRequest": "Consulte la demande",
    "mentoringComboButton.submitForCodeReview": "Soumets pour la revue de code"
  },
  "components/student/mentoring-dropdown": {
    "discussionList.codeReviewSessions": "Sessions de revue de code",
    "discussionList.appearHereOnceStarted": "Tes discussions de revue de code avec des mentors pour cet exercice apparaîtront ici dès qu'elles auront commencé.",
    "discussionList.mentoringDiscussions": "Discussions de mentorat",
    "header.mentoringCurrentlyInProgress": "Mentorat en cours",
    "header.shareLinksNotAvailable": "Les liens de partage ne sont pas disponibles lorsqu'un mentorat est en cours",
    "header.wantToGetMentored": "Tu veux te faire mentorer par un ami ?",
    "header.inviteFriendsColleagues": "Utilise ce lien de partage pour inviter directement des amis, des collègues ou des mentors personnels à mentorer ta solution."
  },
  "components/settings/github-syncer/sections/ConnectToGithubSection": {
    "index.backupYourSolutionsToGithub": "Sauvegarde tes solutions sur GitHub",
    "index.automatedBackupDescription": "Sauvegarde automatiquement tes solutions sur GitHub grâce à notre outil de sauvegarde automatique.",
    "index.safeBackup": "Sauvegarde sécurisée",
    "index.greenSquares": "Carrés verts",
    "index.itsFree": "C'est gratuit !",
    "index.createGithubRepository": "Crée un nouveau dépôt GitHub pour tes solutions (ou réutilise un dépôt existant si tu sauvegardais manuellement)",
    "index.clickButtonToConnect": "Clique sur le bouton ci-dessous pour connecter ton compte GitHub.",
    "index.backupEverythingOption": "Utilise l'option _« Tout sauvegarder »_ pour sauvegarder toutes tes solutions existantes.",
    "index.futureSolutionsAutoBackup": "Les futures solutions seront sauvegardées automatiquement à mesure que tu termines les exercices.",
    "index.setupBackup": "Configurer la sauvegarde",
    "connectModal.connectARepository": "Connecter un dépôt",
    "connectModal.ensureRepositoryReady": "Avant de continuer, assure-toi d'avoir créé un nouveau dépôt GitHub, ou d'en avoir un existant prêt à être synchronisé.",
    "connectModal.permissionWarning": "Sur l'écran suivant, il te sera demandé d'autoriser ce dépôt. Assure-toi de <strong>ne sélectionner qu'un seul dépôt</strong> (malheureusement, GitHub ne nous permet pas de l'imposer !)",
    "connectModal.connectGithubRepository": "Connecter un dépôt GitHub",
    "connectModal.cancel": "Annuler",
    "index.exercismAlt": "Exercism",
    "index.syncWithAlt": "Synchroniser avec",
    "index.githubAlt": "Github",
    "connectModal.exercismAlt": "Exercism",
    "connectModal.syncWithAlt": "Synchroniser avec",
    "connectModal.githubAlt": "Github"
  },
  "components/settings/HandleForm.tsx": {
    "handleForm.changeYourHandle": "Change ton nom d'utilisateur",
    "handleForm.yourHandle": "Ton nom d'utilisateur",
    "handleForm.confirmYourPassword": "Confirme ton mot de passe",
    "handleForm.handleChangeRecommendation": "On te recommande de ne changer ton nom d'utilisateur que dans de rares circonstances, car les liens vers les solutions publiques ne fonctionneront plus, et cela peut être déroutant pour les mentors.",
    "handleForm.changeHandle": "Changer le nom d'utilisateur",
    "handleForm.success": "Ton nom d'utilisateur a été modifié",
    "handleForm.successAlt": "Succès"
  },
  "components/settings/InsiderBenefitsForm.tsx": {
    "insiderBenefits.insiderBenefits": "Avantages Insiders",
    "insiderBenefits.hideWebsiteAdverts": "Masquer les publicités du site",
    "insiderBenefits.changePreferences": "Modifier les préférences",
    "insiderBenefits.preferencesUpdated": "Tes préférences ont été mises à jour",
    "insiderBenefits.thanksForBeingInsider": "Merci de faire partie des Insiders d'Exercism ! Voici quelques réglages supplémentaires rien que pour toi.",
    "insiderBenefits.eligibleToJoin": "Tu peux rejoindre les Insiders. <link>Commence ici.</link>",
    "insiderBenefits.exclusiveOptions": "Ces options sont réservées aux Insiders d'Exercism.",
    "insiderBenefits.donateToExercism": "<0>Fais un don à Exercism</0>  pour devenir Insider et accéder à des avantages tels que le mode sombre, l'intégration de ChatGPT, une expérience sans publicité, et bien plus encore.",
    "insiderBenefits.successAlt": "Succès"
  },
  "components/settings/PasswordForm.tsx": {
    "changeYourPassword": "Change ton mot de passe",
    "currentPassword": "Mot de passe actuel",
    "newPassword": "Nouveau mot de passe",
    "confirmNewPassword": "Confirme le nouveau mot de passe",
    "warningChangingPassword": "Attention : modifier ton mot de passe te déconnectera.",
    "youCanThenSignBackIn": "Tu pourras ensuite te reconnecter avec ton nouveau mot de passe.",
    "changePassword": "Modifier le mot de passe"
  },
  "components/student/tracks-list": {
    "orderSelect.sortByLastTouched": "Trier par dernière activité",
    "track.learningMode": "Mode apprentissage",
    "track.thisTrackIsNew": "Ce parcours est nouveau",
    "track.new": "Nouveau",
    "track.joined": "Rejoint",
    "track.numberOfExercises": "{{count}} exercice",
    "track.numberOfExercises_one": "{{count}} exercice",
    "track.numberOfExercises_many": "{{count}} exercices",
    "track.numberOfExercises_other": "{{count}} exercices",
    "track.numberOfConcepts": "{{count}} concept",
    "track.numberOfConcepts_one": "{{count}} concept",
    "track.numberOfConcepts_many": "{{count}} concepts",
    "track.numberOfConcepts_other": "{{count}} concepts",
    "track.lastTouched": "Dernière activité {{time}}",
    "list.noResultsFound": "Aucun résultat trouvé",
    "list.resetSearchAndFilters": "Réinitialiser la recherche et les filtres",
    "tagsFilter.filterBy": "Filtrer par",
    "tagsFilter.showingAll_one": "Affichage de {{count}} parcours",
    "tagsFilter.showingAll_many": "Affichage des {{count}} parcours",
    "tagsFilter.showingAll_other": "Affichage des {{count}} parcours",
    "tagsFilter.resetFilters": "Réinitialiser les filtres",
    "tagOptionList.apply": "Appliquer",
    "tagOptionList.close": "Fermer",
    "track.numberOfExercisesAlt": "Nombre d'exercices",
    "track.numberOfConceptsAlt": "Nombre de concepts",
    "tagsFilter.filterTracksLabel": "Une série de cases à cocher pour filtrer les parcours Exercism"
  },
  "components/student/TracksList.tsx": {
    "tracksList.searchLanguageTracks": "Rechercher des parcours de langage",
    "tracksList.somethingWentWrong": "Une erreur s'est produite"
  },
  "components/student/UpdateExerciseNotice.tsx": {
    "updateExerciseNotice.exerciseUpdated": "Cet exercice a été mis à jour. Passe à la dernière version et regarde si tes tests passent toujours. ",
    "updateExerciseNotice.seeWhatsChanged": "Voir ce qui a changé…",
    "updateExerciseNotice.docsForNewerVersion": "Ces instructions correspondent à une version plus récente de l'exercice. <english>Passer en anglais</english> pour voir ta version, ou <update>Passer à la dernière version</update>.",
    "updateExerciseNotice.warning": "Attention"
  },
  "components/tooltips/AutomationLockedTooltip.tsx": {
    "automationLockedTooltip.loadingData": "Chargement des données",
    "automationLockedTooltip.unableToLoadData": "Impossible de charger les données"
  },
  "components/modals/complete-exercise-modal": {
    "publishSolutionModal.publishHelpOthers": "En publiant ton code, tu aideras les autres à apprendre de ton travail. Tu peux choisir les itérations que tu publies, en ajouter d'autres une fois ta solution publiée, et la dépublier à tout moment.",
    "tutorialCompletedModal.heading": "Tu as terminé « {{exerciseTitle}} ».",
    "tutorialCompletedModal.subheading": "Ce n'est que le début de ton voyage sur le parcours {{trackTitle}} 🚀",
    "tutorialCompletedModal.body.noCourse": "Tu es maintenant prêt à te plonger dans de <0>vrais exercices</0>.",
    "tutorialCompletedModal.body.withCourse": "Tu es maintenant prêt à te plonger dans de <0>vrais exercices</0>. Nous avons aussi dévoilé les {{conceptCount}} concepts de {{trackTitle}}, que tu peux aller découvrir.",
    "tutorialCompletedModal.accessToMentoring": "Dès que tu commenceras ton prochain exercice, tu auras aussi accès à la section mentorat de ton parcours.",
    "tutorialCompletedModal.showMeConcepts": "Montre-moi les concepts",
    "tutorialCompletedModal.showMoreExercises": "Montre-moi plus d'exercices",
    "tutorialCompletedModal.returnToTutorial": "Reviens à « {{exerciseTitle}} »",
    "publishSolutionForm.yesShareSolution": "Oui, je souhaite partager ma solution avec la communauté.",
    "publishSolutionForm.noMarkComplete": "Non, je veux juste marquer l'exercice comme terminé.",
    "publishSolutionForm.confirm": "Confirmer",
    "publishSolutionForm.loading": "chargement",
    "exerciseCompletedModal.youCompleted": "Tu as terminé {{exerciseTitle}} !",
    "exerciseCompletedModal.awesomeWorkLearning": "Beau travail. Tu n'es plus qu'à un pas d'apprendre {{trackTitle}} 🚀",
    "exerciseCompletedModal.awesomeWorkMastering": "Beau travail. Tu n'es plus qu'à un pas de maîtriser {{trackTitle}} 🚀",
    "exerciseCompletedModal.concept.info_1": "Tu as appris <strong>{{count}}</strong> concept.",
    "exerciseCompletedModal.concept.info_many": "Tu as appris <strong>{{count}}</strong> concepts.",
    "exerciseCompletedModal.concept.info_1_1": "Tu as appris <strong>{{count}}</strong> concept et déverrouillé {{unlockedExercisesCount}} exercice en terminant cet exercice.",
    "exerciseCompletedModal.concept.info_1_many": "Tu as appris <strong>{{count}}</strong> concept et déverrouillé {{unlockedExercisesCount}} exercices en terminant cet exercice.",
    "exerciseCompletedModal.concept.info_many_1": "Tu as appris <strong>{{count}}</strong> concepts et déverrouillé {{unlockedExercisesCount}} exercice en terminant cet exercice.",
    "exerciseCompletedModal.concept.info_many_many": "Tu as appris <strong>{{count}}</strong> concepts et déverrouillé {{unlockedExercisesCount}} exercices en terminant cet exercice.",
    "exerciseCompletedModal.practice.info_1": "Tu as progressé sur <strong>{{count}}</strong> concept en terminant cet exercice.",
    "exerciseCompletedModal.practice.info_many": "Tu as progressé sur <strong>{{count}}</strong> concepts en terminant cet exercice.",
    "exerciseCompletedModal.practice.info_none": "Une fois que tu te seras un peu plus entraîné sur le parcours {{trackTitle}}, reviens sur cet exercice et vois si tu peux l'améliorer encore.",
    "exerciseCompletedModal.showMeMoreConcepts": "Afficher plus de concepts",
    "exerciseCompletedModal.showMeMoreExercises": "Afficher plus d'exercices",
    "exerciseCompletedModal.returnToExercise": "Revenir à l'exercice",
    "publishSolutionModal.publishKnowledge": "Publier ton code et partager tes connaissances"
  },
  "components/modals/complete-exercise-modal/exercise-completed-modal/Unlocks.tsx": {
    "unlocks.conceptsUnlocked_one": "Tu as débloqué <icon/> 1 concept",
    "unlocks.conceptsUnlocked_many": "Tu as débloqué <icon/> {{count}} concepts",
    "unlocks.conceptsUnlocked_other": "Tu as débloqué <icon/> {{count}} concepts",
    "unlocks.exercisesUnlocked_one": "Tu as débloqué <icon/> 1 exercice",
    "unlocks.exercisesUnlocked_many": "Tu as débloqué <icon/> {{count}} exercices",
    "unlocks.exercisesUnlocked_other": "Tu as débloqué <icon/> {{count}} exercices"
  },
  "components/modals/ConceptMakersModal.tsx": {
    "seeOnGithub": "Voir tout l'historique de ce concept sur GitHub",
    "authors.heading": "Auteurs",
    "authors.subtitle": "Les personnes qui ont écrit le concept",
    "contributors.heading": "Contributeurs",
    "contributors.subtitle": "Les personnes qui ont mis à jour le concept",
    "defaultError": "Impossible de charger les créateurs du concept"
  },
  "components/modals/DeleteAccountModal.tsx": {
    "deleteAccount.title": "Tu es sur le point de supprimer ton compte Exercism",
    "deleteAccount.readCarefully": "Lis attentivement ce qui suit avant de continuer.",
    "deleteAccount.irreversible": "Cette action est <em>irréversible</em> et te fera perdre tout ce que tu as fait sur ton compte.",
    "deleteAccount.loseAccessTo": "En supprimant ton compte, tu perdras l'accès à :",
    "deleteAccount.allSolutions": "Toutes les solutions que tu as soumises",
    "deleteAccount.allMentoringReceived": "Tout le mentorat que tu as reçu",
    "deleteAccount.allMentoringGiven": "Tout le mentorat que tu as donné et les témoignages que tu as reçus.",
    "deleteAccount.personalDataDeleted": "Toutes tes données personnelles, qui seront supprimées",
    "deleteAccount.confirmHandle": "Pour confirmer, écris ton nom d'utilisateur",
    "deleteAccount.cancel": "Annuler",
    "deleteAccount.deleteAccount": "Supprimer le compte",
    "deleteAccount.unableToDeleteAccount": "Impossible de supprimer le compte"
  },
  "components/modals/DisableSolutionCommentsModal.tsx": {
    "disableSolutionCommentsModal.confirmationTitle": "Veux-tu désactiver les commentaires ?",
    "disableSolutionCommentsModal.confirmationDescription": "Désactiver les commentaires empêche les gens de publier publiquement des questions et des réflexions sur ta solution. Tu peux les réactiver à tout moment.",
    "disableSolutionCommentsModal.disableComments": "Désactiver les commentaires",
    "disableSolutionCommentsModal.cancel": "Annuler"
  },
  "components/modals/BugReportModal.tsx": {
    "reportABug": "Signaler un bug",
    "bugReportSubmittedThankYou": "Rapport de bug soumis. Merci !",
    "close": "Fermer",
    "thanksForReportingPleaseTellUsWhatIsWrong": "Merci pour ton signalement. Dis-nous ce qui ne va pas.",
    "pleaseProvideAsMuchDetailAsPossible": "Donne-nous autant de détails que possible",
    "submitBugReport": "Soumettre le rapport de bug",
    "cancel": "Annuler"
  },
  "components/modals/ChangePublishedIterationModal.tsx": {
    "changePublishedIterationsModal.changePublishedIterations": "Modifier les itérations publiées",
    "changePublishedIterationsModal.recommendPublishing": "Nous te recommandons de publier toutes tes itérations pour aider les autres à apprendre de ton voyage, mais tu peux aussi choisir de ne mettre en avant que ton itération préférée.",
    "changePublishedIterationsModal.updatePublishedSolution": "Mettre à jour la solution publiée",
    "changePublishedIterationsModal.cancel": "Annuler",
    "changePublishedIterationsModal.unableToChangePublishedIteration": "Impossible de modifier l'itération publiée"
  },
  "components/modals/welcome-modal": {
    "welcomeModal.helloFellowDeveloper": "Salut, cher développeur 👋",
    "welcomeModal.exercismDeepenSkills": "Exercism est l'endroit idéal pour approfondir tes compétences en programmation et explorer plus de {{numTracks}} langages de programmation. C'est 100 % gratuit.",
    "welcomeModal.thanksForJoining": "Merci de nous avoir rejoints !",
    "welcomeModal.madeByThousands": "Exercism a été créé par des milliers de personnes qui veulent bâtir une plateforme éducative ludique et puissante, qui rend l'apprentissage et l'approfondissement de tes compétences en programmation faciles. Nous sommes vraiment ravis que tu nous aies rejoints pour l'aventure ! Jette un œil à nos forums, à Youtube et à Twitch pour découvrir tout ce qu'Exercism a à offrir 🎉",
    "welcomeModal.watchWelcomeVideo": "Pour commencer, regarde la vidéo de bienvenue sur la droite, puis va sur la page des parcours et choisis le langage que tu veux explorer en premier. Résous l'exercice classique « Hello World » pour te familiariser avec la plateforme, puis commence à résoudre des exercices pour de vrai.",
    "welcomeModal.gotItCloseModal": "C'est noté ! Ferme cette fenêtre modale.",
    "welcomeModal.startWithWelcomeVideo": "Commence par notre vidéo de bienvenue 👇🏽",
    "welcomeModal.whereCanIJoin": "Où puis-je rejoindre #48in24 ?",
    "welcomeModal.discoveredExercism": "Tu as découvert Exercism grâce à #48in24 ou à l'un de nos mois mis en avant ? Excellente nouvelle ! Une fois que tu as regardé la vidéo ci-dessus, ferme cette fenêtre modale et tu verras un grand visuel sur la droite qui fait la promotion de #48in24. Clique dessus et suis les instructions pour commencer !",
    "initialView.welcomeToExercism": "Bienvenue sur Exercism ! 💙",
    "initialView.letsMakeSure": "Assurons-nous que tu tires le meilleur parti d'Exercism.",
    "initialView.howExperienced": "Quelle est ton expérience en tant que développeur ?",
    "initialView.absoluteBeginner": "Débutant complet",
    "initialView.beginner": "Débutant",
    "initialView.juniorDeveloper": "Développeur junior",
    "initialView.midLevelDeveloper": "Développeur intermédiaire",
    "initialView.seniorDeveloper": "Développeur senior",
    "juniorView.aCourseForYou": "Un cours fait pour toi... 🎉",
    "juniorView.codingFundamentalsDesigned": "Notre cours <strong>Coding Fundamentals</strong> est conçu pour les personnes qui codent depuis moins d'un an !!",
    "juniorView.itWillTeach": "Il t'apprendra à <strong>penser comme un développeur</strong> en résolvant des énigmes et en créant des jeux. En seulement 12 semaines, tu passeras de zéro à la création de jeux comme ceux-ci...",
    "juniorView.thisIsCourseAnyone": "C'est un cours pour quiconque veut vraiment devenir bon en programmation. Il est abordable. Il est amusant. Et surtout, il est <strong>incroyablement efficace</strong> !",
    "juniorView.learnMore": "En savoir plus ✨",
    "juniorView.skip": "Passe",
    "juniorView.exercismsCodingFundamentals": "Les<strong className=\"font-semibold\"> Coding Fundamentals</strong> d'Exercism",
    "juniorView.theCourseOffers": "Ce cours propose :",
    "juniorView.expertTeaching": "<strong className=\"font-semibold\">Un enseignement expert</strong> et un accompagnement en mentorat.",
    "juniorView.overHoursHandsOn": "Plus de <strong className=\"font-semibold\">100 heures d'apprentissage pratique fondé sur des projets</strong>, à créer des jeux et à résoudre des énigmes.",
    "juniorView.aCompleteCoding": "Un <strong className=\"font-semibold\">programme</strong> complet de Coding Fundamentals, conçu pour renforcer les connaissances et la confiance.",
    "juniorView.aFormalCertificate": "Un <strong className=\"font-semibold\">certificat</strong> officiel à la fin du cours.",
    "juniorView.gameAlt.spaceInvaders": "Image d'un jeu Space Invaders",
    "juniorView.gameAlt.ticTacToe": "Image d'un jeu de morpion",
    "juniorView.gameAlt.breakout": "Image d'un jeu de casse-briques",
    "juniorView.gameAlt.maze": "Image d'un jeu de labyrinthe",
    "welcomeModal.communityTabVideoTitle": "Présentation de l'onglet « Communauté »"
  },
  "components/tooltips/ConceptTooltip.tsx": {
    "conceptTooltip.loadingConceptData": "Chargement des données du concept",
    "conceptTooltip.unableToLoadConcept": "Impossible de charger le concept"
  },
  "components/tooltips/ExerciseTooltip.tsx": {
    "exerciseTooltip.unableToLoadInformation": "Impossible de charger les informations"
  },
  "components/tooltips/student-tooltip": {
    "previousSessions.never_one": "A reçu du mentorat <strong>{{count}}</strong> fois, mais <strong>jamais</strong> de ta part",
    "previousSessions.never_many": "A reçu du mentorat <strong>{{count}}</strong> fois, mais <strong>jamais</strong> de ta part",
    "previousSessions.never_other": "A reçu du mentorat <strong>{{count}}</strong> fois, mais <strong>jamais</strong> de ta part",
    "previousSessions.some_one_one": "A reçu du mentorat <strong>{{total}}</strong> fois, dont <strong>{{withMentor}}</strong> fois de ta part",
    "previousSessions.some_one_many": "A reçu du mentorat <strong>{{total}}</strong> fois, dont <strong>{{withMentor}}</strong> fois de ta part",
    "previousSessions.some_one_other": "A reçu du mentorat <strong>{{total}}</strong> fois, dont <strong>{{withMentor}}</strong> fois de ta part",
    "previousSessions.some_other_one": "A reçu du mentorat <strong>{{total}}</strong> fois, dont <strong>{{withMentor}}</strong> fois de ta part",
    "previousSessions.some_other_many": "A reçu du mentorat <strong>{{total}}</strong> fois, dont <strong>{{withMentor}}</strong> fois de ta part",
    "previousSessions.some_other_other": "A reçu du mentorat <strong>{{total}}</strong> fois, dont <strong>{{withMentor}}</strong> fois de ta part",
    "firstSession": "Ce sera sa <strong>première</strong> discussion de mentorat",
    "favorited": "Ajouté aux favoris",
    "trackObjectivesTitle": "Objectifs du parcours",
    "unableToLoad": "Impossible de charger les informations",
    "locatedInAlt": "Situé à"
  },
  "components/track/ExerciseCommunitySolutionsList.tsx": {
    "exerciseCommunitySolutions.exploreSolutions": "Découvre comment les autres ont résolu cet exercice",
    "exerciseCommunitySolutions.searchPlaceholder": "Recherche par code (3 caractères min)"
  },
  "components/track/iteration-summary": {
    "submissionMethodIcon.submittedViaCLI": "Soumise via la CLI",
    "submissionMethodIcon.submittedViaEditor": "Soumise via l'éditeur",
    "outOfDateNotice.outdated": "Obsolète",
    "analysisStatusSummary.automatedComments": "Commentaires automatisés",
    "analysisStatusSummary.essential": "Essentiels",
    "analysisStatusSummary.actionable": "Actionnables",
    "analysisStatusSummary.other": "Autres",
    "analysisStatusSummary.analysisStatus": "État de l'analyse"
  },
  "components/track/IterationSummary.tsx": {
    "iterationSummary.iteration": "Itération {{idx}}",
    "iterationSummary.latest": "Dernière",
    "iterationSummary.published": "Publiée",
    "iterationSummary.submitted": "Soumise ",
    "iterationSummary.viaCli": "via la CLI",
    "iterationSummary.viaEditor": "via l'éditeur",
    "iterationSummary.latestIteration": "Dernière itération",
    "iterationSummary.thisIterationIsPublished": "Cette itération est publiée"
  },
  "components/track/Trophies.tsx": {
    "trophy.awardedOn": "Attribué le ",
    "trophy.clickToReveal": "Clique pour révéler",
    "trophy.failedToReveal": "Impossible de révéler le trophée",
    "trophy.locked": "Verrouillé"
  },
  "components/track/UnlockHelpButton.tsx": {
    "unlockHelpButton.unlockThisTab": "Déverrouille cet onglet",
    "unlockHelpButton.defaultError": "Une erreur s'est produite lors du déverrouillage de l'aide, réessaie !"
  },
  "components/training-data/code-tagger": {
    "rightPane.automationRules.theseTagsUsedToTrain": "Ces tags serviront à entraîner des réseaux de neurones à identifier correctement les solutions des apprenants. Merci de nous aider !",
    "rightPane.automationRules.heresSomeNotes": "Voici quelques notes pour t'aider :",
    "rightPane.automationRules.ifUnclearAskOnForum": "Si tu ne sais pas si un tag doit être ajouté (ou supprimé), demande sur <0>le forum</0>. Le partage de connaissances aide tout le monde.",
    "rightPane.automationRules.stickToOfficialList": "Essaie de t'en tenir à la liste officielle des tags dans le menu déroulant. Si tu as besoin d'ajouter un nouveau tag, tu peux le faire en saisissant un nouveau tag, mais envisage d'en discuter sur <0>le forum</0>.",
    "rightPane.considerations.pleaseReadDocs": "Merci de <0>lire la documentation</0> avant de taguer les solutions.",
    "rightPane.rightPane.saveAndTagAnother": "Enregistre et tague une autre…",
    "leftPane.codeInfo.youAreAssigningTags": "Tu attribues des tags pour",
    "leftPane.codeInfo.in": "dans"
  },
  "automation-batch": {
    "components.mentoring.automation.automationIntroducer.initiateFeedbackAutomationBeepBoopBop": "Lancer l'automatisation des retours…Bip boup bop…",
    "components.mentoring.automation.automationIntroducer.automationIsASpace": "L'automatisation est un espace qui te permet de voir les solutions courantes des exercices et d'écrire un retour une seule fois pour tous les apprenants qui ont cette solution particulière.",
    "components.mentoring.automation.mostPopularTag.mostPopular": "Le plus populaire"
  },
  "components/common/CLIWalkthroughButton.tsx": {
    "cliWalkthroughButton.installExercismLocally": "Installer Exercism en local",
    "cliWalkthroughButton.useOurWizard": "Utilise notre assistant pour configurer Exercism afin qu'il fonctionne sur ta machine locale.",
    "cliWalkthroughButton.opensInModal": "S'ouvre dans une fenêtre modale"
  },
  "components/common/ComboButton.tsx": {
    "comboButton.openDropdown": "Ouvrir le menu déroulant"
  },
  "components/common/CommunitySolution.tsx": {
    "communitySolution.published": "Publiée {{time}}",
    "communitySolution.numTimesPublishedSimilar": "Nombre de fois où quelqu'un a publié une solution similaire à celle-ci",
    "communitySolution.numLinesOfCode": "Nombre de lignes de code dans la solution",
    "communitySolution.numTimesStarred": "Nombre de fois où la solution a reçu une étoile",
    "communitySolution.numTimesCommented": "Nombre de fois où la solution a été commentée",
    "communitySolution.correctlySolvesLatest": "Cette solution résout correctement la dernière version de cet exercice",
    "communitySolution.passesLatestTests": "Cette solution passe les tests de la dernière version de cet exercice",
    "communitySolution.doesNotFullySolveLatest": "Cette solution ne résout pas entièrement la dernière version de cet exercice",
    "communitySolution.solvedAgainstOlder": "Cette solution a été résolue sur une version plus ancienne de cet exercice et pourrait ne pas résoudre entièrement la dernière version.",
    "communitySolution.yourSolution": "Ta solution",
    "communitySolution.toExerciseInTrack": "pour {{exercise}} dans le parcours {{track}}",
    "communitySolution.inTrack": "dans le parcours {{track}}",
    "communitySolution.authorsSolution": "La solution de {{handle}}",
    "communitySolution.notPublished": "Non publiée"
  },
  "components/common/CopyToClipboardButton.tsx": {
    "copyToClipboardButton.copyToClipboardLabel": "Copier « {{text}} » dans le presse-papiers",
    "copyToClipboardButton.copyToClipboard": "Copier dans le presse-papiers",
    "copyToClipboardButton.copied": "Copié"
  },
  "components/profile/contributions-summary": {
    "totalReputation.addressHas": "{{handle}} a",
    "totalReputation.youHave": "Tu as",
    "totalReputation.reputation": "Réputation",
    "trackSelect.rep": "rép",
    "categorySummary.noRep": "Aucune rép",
    "categorySummary.rep": "{{reputation}} rép"
  },
  "components/profile/testimonials-list": {
    "attribution": "<student>{{student}}</student> a dit ceci à propos de <mentor>{{mentor}}</mentor>",
    "exerciseTrack": "sur <0>{{exerciseTitle}}</0> dans <1/> <2>{{trackTitle}}</2>"
  },
  "components/settings/comments-preference-form": {
    "commentsPreferenceForm.commentsOnYourSolutions": "Commentaires sur tes solutions",
    "commentsPreferenceForm.settingToControlComments": "Utilise ce réglage pour choisir si les gens peuvent publier ou non des commentaires sur <0>les futures solutions que tu publies</0>. Tu peux le modifier solution par solution, et tu peux mettre à jour toutes les solutions existantes ci-dessous.",
    "commentsPreferenceForm.updatePreference": "Mets à jour la préférence",
    "commentsPreferenceForm.yourPreferencesHaveBeenUpdated": "Tes préférences ont été mises à jour",
    "commentsPreferenceForm.successAlt": "Succès",
    "manageExistingSolutions.manageExistingSolutions": "Gère les solutions existantes",
    "manageExistingSolutions.canCommentOnPublishedSolutions": "Actuellement, commentaires autorisés : {{commentStatusPhrase}} de tes solutions publiées. Utilise les boutons ci-dessous pour <0>activer ou désactiver les commentaires sur toutes tes solutions existantes.</0>",
    "manageExistingSolutions.allowCommentsOnExistingSolutions": "Autorise les commentaires sur toutes les solutions existantes",
    "manageExistingSolutions.disableCommentsOnExistingSolutions": "Désactive les commentaires sur toutes les solutions existantes",
    "useCommentsPreferenceForm.none": "aucune",
    "useCommentsPreferenceForm.all": "l'ensemble",
    "useCommentsPreferenceForm.xOutOfY": "{{numCommentsEnabled}} / {{numPublished}}"
  },
  "components/settings/CommunicationPreferencesForm.tsx": {
    "mentoring.title": "Mentorat",
    "product.title": "Produit",
    "formButton.changePreferences": "Change les préférences",
    "successMessage.updatedPreferences": "Tes préférences ont été mises à jour",
    "successMessage.alt": "Succès"
  },
  "components/settings/delete-profile-form": {
    "deleteProfileModal.deleteProfile": "Supprimer le profil ?",
    "deleteProfileModal.areYouSure": "Es-tu sûr de vouloir supprimer ton profil ?",
    "deleteProfileModal.continue": "Continue",
    "deleteProfileModal.cancel": "Annuler"
  },
  "components/notifications/": {
    "notificationsList.notifications": "Notifications",
    "notificationsList.markAsRead": "Marquer comme lu",
    "notificationsList.markAsUnread": "Marquer comme non lu",
    "notificationsList.markAllAsRead": "Tout marquer comme lu",
    "markAllNotificationsAsReadModal.unableToLoadNotifications": "Impossible de charger les notifications",
    "markAllNotificationsAsReadModal.unableToMarkNotificationsAsRead": "Impossible de marquer les notifications comme lues",
    "markAllNotificationsAsReadModal.unableToMarkNotificationsAsUnread": "Impossible de marquer les notifications comme non lues"
  },
  "components/notifications/notifications-list": {
    "useNotificationMutation.unableToMarkAllNotificationsAsRead": "Impossible de marquer toutes les notifications comme lues",
    "list.youHaveNoNotifications": "Tu n'as aucune notification",
    "markAllNotificationsAsReadModal.markAllAsRead": "Tout marquer comme lu ?",
    "markAllNotificationsAsReadModal.areYouSure": "Tu es sûr de vouloir marquer toutes les notifications comme lues ?",
    "markAllNotificationsAsReadModal.continue": "Continuer",
    "markAllNotificationsAsReadModal.cancel": "Annuler"
  },
  "components/perks": {
    "perksModalButton.continueToPartner": "Continuer vers {{websiteDomain}}",
    "perksModalButton.close": "Fermer",
    "perksExternalModalButton.claimPerk": "Profite de cet avantage avec un compte Exercism !",
    "perksExternalModalButton.exercismIsNonProfit": "Exercism est une organisation à but non lucratif. Nous proposons une éducation de classe mondiale, une super communauté et des avantages offerts par nos partenaires. Rejoins Exercism dès aujourd'hui. C'est gratuit !",
    "perksExternalModalButton.signUp": "S'inscrire",
    "perksExternalModalButton.logIn": "Se connecter"
  },
  "components/settings/DeleteAccountButton.tsx": {
    "deleteAccount": "Supprimer le compte"
  },
  "components/settings/DeleteProfileForm.tsx": {
    "deleteProfile.deletePublicProfile": "Supprimer ton profil public",
    "deleteProfile.deleteProfileDescription": "Cela supprimera ton profil public du site. Tu peux recréer ton profil à tout moment, et les seules données supprimées sont les liens vers tes profils sur les réseaux sociaux.",
    "deleteProfile.deleteYourProfile": "Supprimer ton profil"
  },
  "components/settings/EmailForm.tsx": {
    "changeYourEmail": "Changer d'adresse e-mail",
    "yourEmailAddress": "Ton adresse e-mail",
    "confirmYourPassword": "Confirme ton mot de passe",
    "info.changeEmailConfirmation": "Tu peux changer ton adresse e-mail à l'aide du formulaire ci-dessus. Nous t'enverrons un nouvel e-mail de confirmation à accepter.",
    "changeEmail": "Changer d'e-mail",
    "success.confirmationEmailSent": "Nous avons envoyé un e-mail de confirmation à {{email}}",
    "success.alt": "Succès"
  },
  "components/settings/PhotoForm.tsx": {
    "photoForm.changeYourPhoto": "Modifier ta photo"
  },
  "components/settings/ProfileForm.tsx": {
    "profileForm.profile": "Profil",
    "profileForm.name": "Nom",
    "profileForm.location": "Localisation",
    "profileForm.bio": "Bio",
    "profileForm.tellTheWorldAboutYouEmojisEncouraged": "Parle de toi au monde entier 🌎. Les emojis sont encouragés !",
    "profileForm.seniority": "Niveau d'expérience",
    "profileForm.yourSocialAccounts": "Tes réseaux sociaux",
    "profileForm.githubHandle": "Github (nom d'utilisateur)",
    "profileForm.yourGitHubHandle": "Ton nom d'utilisateur GitHub",
    "profileForm.twitterHandle": "Twitter (nom d'utilisateur)",
    "profileForm.yourTwitterHandle": "Ton nom d'utilisateur Twitter",
    "profileForm.linkedInFullURL": "LinkedIn (URL complète)",
    "profileForm.yourLinkedInProfileUrl": "L'URL de ton profil LinkedIn",
    "profileForm.saveProfileData": "Enregistrer les données du profil",
    "profileForm.yourProfileHasBeenSaved": "Ton profil a été enregistré",
    "profileForm.absoluteBeginner": "Débutant absolu",
    "profileForm.beginner": "Débutant",
    "profileForm.juniorDeveloper": "Développeur junior",
    "profileForm.midLevelDeveloper": "Développeur intermédiaire",
    "profileForm.seniorDeveloper": "Développeur senior",
    "profileForm.successAlt": "Succès"
  },
  "components/ResultsZone.tsx": {
    "resultsZone.loadingData": "Chargement des données"
  },
  "components/impact/chart-elements": {
    "numberOfStudentsLabel.noOfStudents": "Nb d'apprenants"
  },
  "components/settings/LanguagePreferenceForm.tsx": {
    "languagePreferenceForm.language": "Langue",
    "languagePreferenceForm.description": "Choisis la langue dans laquelle tu veux utiliser Exercism. Nous enregistrons ton choix dès que tu en sélectionnes une.",
    "languagePreferenceForm.change": "Modifier",
    "languagePreferenceForm.done": "Terminé",
    "languagePreferenceForm.searchPlaceholder": "Rechercher une langue",
    "languagePreferenceForm.searchLabel": "Rechercher une langue",
    "languagePreferenceForm.comingSoon": "Bientôt disponible",
    "languagePreferenceForm.comingSoonBadge": "Bientôt",
    "languagePreferenceForm.noMatches": "Aucune langue ne correspond à ta recherche",
    "languagePreferenceForm.selected": "Sélectionnée"
  },
  "components/journey/overview/learning-section/track-summary/TrackProgressBar.tsx": {
    "trackProgressBar.completed": "Terminés"
  },
  "components/journey/overview/mentoring-section": {
    "headerSummary.youVeMostlyMentoredIn": "Tu as surtout mentoré dans ",
    "communityRank.topRank": "Top {{rank}} %",
    "mentoringChart.sessionsMentoredPerTrack": "Sessions de mentorat par parcours",
    "trackSummary.session_one": "{{count}} session",
    "trackSummary.session_many": "{{count}} de sessions",
    "trackSummary.session_other": "{{count}} sessions",
    "sessionsMentoredSummary.totalSessionsMentored": "Total des sessions de mentorat",
    "sessionRatioSummary.sessionsPerStudent": "Sessions par apprenant",
    "studentsMentoredSummary.totalStudentsMentored": "Total des apprenants mentorés"
  },
  "components/modals/WelcomeToInsidersModal.tsx": {
    "welcomeToInsidersModal.title": "Bienvenue chez les Insiders ! 💙",
    "welcomeToInsidersModal.accessToFeatures": "Tu as maintenant accès au mode sombre, à l'intégration ChatGPT, à des créneaux de mentorat supplémentaires, ainsi qu'à des vidéos dans les coulisses, de nouveaux badges, et bien plus encore !",
    "welcomeToInsidersModal.thanksForBeingPartOfOurStory": "Merci de faire partie de notre histoire !",
    "welcomeToInsidersModal.exercismReliesOnPeople": "Exercism repose sur des personnes comme toi qui donnent de leur temps et de leur argent pour aider les autres. Sans toi, nous n'aurions pas pu aider toutes les personnes que nous avons aidées. Notre aventure ne fait que commencer et nous sommes vraiment ravis de t'avoir à nos côtés. Merci infiniment de rendre Exercism possible 💙",
    "welcomeToInsidersModal.weHopeInsidersIsFun": "Nous espérons qu'Insiders est une expérience amusante. Nous te recommandons de regarder la vidéo à droite pour avoir un aperçu de la façon dont ton compte a changé, et aussi d'aller voir la page Insiders derrière cette fenêtre modale pour découvrir toutes les fonctionnalités que tu as débloquées.",
    "welcomeToInsidersModal.greatLetsGo": "Parfait. C'est parti !",
    "welcomeToInsidersModal.startWithOurWelcomeVideo": "Commence par notre vidéo de bienvenue 👇🏽",
    "welcomeToInsidersModal.whatShouldIDoNext": "Que faire ensuite ?",
    "welcomeToInsidersModal.exploreDarkMode": "Explore le mode sombre (nous l'avons activé par défaut). Jette un œil à tes nouveaux badges. Essaie ChatGPT dans l'éditeur en ligne. Utilise l'un de tes nouveaux créneaux de mentorat. Viens dire bonjour sur le canal #insiders sur Discord. Ou regarde quelques vidéos dans les coulisses 🎉",
    "welcomeToInsidersModal.videoTitle": "Bienvenue chez Exercism Insiders !"
  },
  "components/journey": {
    "contributionResults.showingContributions": "Affichage de {{totalCount}} {{contributionLabel}}",
    "badgesList.searchByBadgeNameOrDescription": "Rechercher par nom ou description de badge",
    "badgeResults.showingBadges": "Affichage de {{totalCount}} {{badgeLabel}}",
    "solution.completed": "Terminée",
    "solution.published": "Publiée",
    "solution.thereIsANewerVersionOfTheExerciseVisitTheExercisePageToUpgrade": "Une version plus récente de cet exercice est disponible. Rends-toi sur la page de l'exercice pour passer à la dernière version.",
    "solution.passesTestsOfTheLatestVersionOfTheExercise": "Réussit les tests de la dernière version de l'exercice",
    "solution.thisSolutionFailsTheTestsOfTheLatestVersionOfTheExerciseTryUpdatingTheExerciseAndCheckingItLocallyOrInTheOnlineEditor": "Cette solution échoue aux tests de la dernière version de cet exercice. Essaie de mettre à jour l'exercice et de le vérifier en local ou dans l'éditeur en ligne.",
    "solution.failedTestsOfTheLatestVersionOfTheExercise": "Échoue aux tests de la dernière version de l'exercice",
    "solution.iterations_one": "{{count}} itération",
    "solution.iterations_many": "{{count}} itérations",
    "solution.iterations_other": "{{count}} itérations",
    "solution.lines": "{{numLoc}} lignes",
    "solution.views": "{{numViews}} {{viewLabel}}",
    "solution.lastSubmitted": "Dernière soumission {{lastIteratedAt}}",
    "solution.inTrack": "dans <0/><1>{{track}}<1/>",
    "solutionsList.searchByExerciseOrTrackName": "Rechercher par nom d'exercice ou de parcours",
    "solutionsList.showingSolutions": "Affichage de {{totalCount}} {{solutionLabel}}",
    "solutionsList.resetFilters": "Réinitialiser les filtres",
    "contributionsList.searchByContributionName": "Rechercher par nom de contribution",
    "contribution.generic": "Générique",
    "unrevealedBadge.unrevealed": "Non révélé",
    "unrevealedBadge.clickTapToReveal": "Clique ou appuie pour révéler",
    "contribution.in": "dans"
  },
  "components/journey/badges-list": {
    "orderSwitcher.sortByUnrevealedFirst": "Trier par non révélés en premier",
    "orderSwitcher.sortByNewestFirst": "Trier par plus récents en premier",
    "orderSwitcher.sortByOldestFirst": "Trier par plus anciens en premier"
  }
}
