<?xml version="1.0" encoding="utf-8"?>
<xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="1.2" xsi:schemaLocation="urn:oasis:names:tc:xliff:document:1.2 xliff-core-1.2-transitional.xsd">
  <file datatype="xml" source-language="en" target-language="fr" original="../PlatformResources.resx">
    <body>
      <trans-unit id="AbortForMaxFailedTestsCapabilityNotAvailable">
        <source>The current test framework does not implement 'IGracefulStopTestExecutionCapability' which is required for '--maximum-failed-tests' feature.</source>
        <target state="translated">Le framework de tests actuel n’implémente pas 'IGracefulStopTestExecutionCapability', qui est requis pour la fonctionnalité '--maximum-failed-tests'.</target>
        <note>{Locked="IGracefulStopTestExecutionCapability"}{Locked="--maximum-failed-tests"}</note>
      </trans-unit>
      <trans-unit id="AbortForMaxFailedTestsDescription">
        <source>Extension used to support '--maximum-failed-tests'. When a given failures threshold is reached, the test run will be aborted.</source>
        <target state="translated">Extension utilisée pour prendre en charge '--maximum-failed-tests'. Quand un seuil d’échecs donné est atteint, la série de tests est abandonnée.</target>
        <note>{Locked="--maximum-failed-tests"}</note>
      </trans-unit>
      <trans-unit id="Aborted">
        <source>Aborted</source>
        <target state="translated">Abandonné</target>
        <note />
      </trans-unit>
      <trans-unit id="ArtifactPostProcessingDispatcherCommandLineDescription">
        <source>Internal command line for artifact post-processing.</source>
        <target state="translated">Line de commande interne pour le post-traitement de l’artefact.</target>
        <note />
      </trans-unit>
      <trans-unit id="ArtifactPostProcessingDispatcherDescription">
        <source>Dispatches artifact post-processing jobs selected by dotnet test.</source>
        <target state="translated">Permet de distribuer les travaux de post-traitement de l’artefact sélectionnés par dotnet test.</target>
        <note>Do not localize command name {Locked="dotnet test"}.</note>
      </trans-unit>
      <trans-unit id="ArtifactPostProcessingDispatcherDisplayName">
        <source>Artifact post-processing dispatcher</source>
        <target state="translated">Répartiteur de post-traitement des artefacts</target>
        <note />
      </trans-unit>
      <trans-unit id="ArtifactPostProcessingDispatcherInvalidProcessorOutput">
        <source>The processed artifact must be an existing file under the output directory and cannot overwrite an input artifact.</source>
        <target state="translated">L’artefact traité doit être un fichier existant sous le répertoire de sortie et ne doit pas remplacer un artefact d’entrée.</target>
        <note />
      </trans-unit>
      <trans-unit id="ArtifactPostProcessingDispatcherManifestNotFound">
        <source>The artifact post-processing manifest does not exist.</source>
        <target state="translated">Le manifeste de post-traitement de l’artefact n’existe pas.</target>
        <note />
      </trans-unit>
      <trans-unit id="ArtifactPostProcessingDispatcherManifestOptionDescription">
        <source>Path to the artifact post-processing manifest.</source>
        <target state="translated">Chemin d’accès vers le manifeste de post-traitement de l’artefact.</target>
        <note />
      </trans-unit>
      <trans-unit id="ArtifactPostProcessingDispatcherProcessorConflict">
        <source>Multiple artifact post-processors match '{0}'. The first registered processor, '{1}', will be used.</source>
        <target state="translated">Plusieurs post-processeurs de l’artefact correspondent à « {0} ». Le premier processeur inscrit, « {1} », sera utilisé.</target>
        <note>{0} is an artifact kind or file extension. {1} is an extension UID.</note>
      </trans-unit>
      <trans-unit id="ArtifactPostProcessingDispatcherProcessorFailed">
        <source>Artifact post-processor '{0}' failed: {1}</source>
        <target state="translated">Le post-processeur d’artefact « {0} » a échoué : {1}</target>
        <note>{0} is the processor UID. {1} is the exception message.</note>
      </trans-unit>
      <trans-unit id="ArtifactPostProcessingDispatcherRequiresPipe">
        <source>The artifact post-processing dispatcher requires a dotnet test pipe.</source>
        <target state="translated">Le répartiteur de post-traitement de l’artefact nécessite un canal dotnet test.</target>
        <note>Do not localize command name {Locked="dotnet test"}.</note>
      </trans-unit>
      <trans-unit id="ArtifactPostProcessingManifestInputMissingPath">
        <source>Artifact post-processing manifest input {0} does not have a path.</source>
        <target state="translated">L’entrée {0} du manifeste de post-traitement de l’artefact n’a pas de chemin d’accès.</target>
        <note>{0} is the zero-based input index.</note>
      </trans-unit>
      <trans-unit id="ArtifactPostProcessingManifestInputsMustBeArray">
        <source>The artifact post-processing manifest inputs property must be an array.</source>
        <target state="translated">La propriété inputs du manifeste de post-traitement de l’artefact doit être un tableau.</target>
        <note>Do not localize property name {Locked="inputs"}.</note>
      </trans-unit>
      <trans-unit id="ArtifactPostProcessingManifestInvalid">
        <source>The artifact post-processing manifest must have schemaVersion 1 and an outputDirectory.</source>
        <target state="translated">Le manifeste de post-traitement de l’artefact doit avoir schemaVersion 1 et un outputDirectory.</target>
        <note>Do not localize property names {Locked="schemaVersion"}{Locked="outputDirectory"}.</note>
      </trans-unit>
      <trans-unit id="ArtifactPostProcessingManifestReadError">
        <source>Cannot read the artifact post-processing manifest: {0}</source>
        <target state="translated">Nous ne pouvons pas lire le manifeste de post-traitement de l’artefact : {0}</target>
        <note>{0} is the exception message.</note>
      </trans-unit>
      <trans-unit id="ArtifactPostProcessorCapabilityContainsSeparator">
        <source>Artifact post-processor '{0}' declares capability '{1}', which cannot contain the semicolon separator.</source>
        <target state="translated">Le post-processeur d’artefact « {0} » déclare une capacité « {1} » qui ne peut pas contenir le séparateur point-virgule.</target>
        <note>{0} is the processor UID. {1} is an artifact kind or file extension.</note>
      </trans-unit>
      <trans-unit id="ArtifactPostProcessorCapabilityInvalid">
        <source>Artifact post-processor '{0}' declares invalid capability '{1}'. Kinds cannot be blank, and fallback extensions must be lowercase and start with a dot.</source>
        <target state="translated">Le post-processeur de l’artefact « {0} » déclare une capacité « {1} » non valide. Les types ne peuvent pas être vides. Les extensions de secours doivent être en minuscules et commencer par un point.</target>
        <note>{0} is the processor UID. {1} is an artifact kind or file extension.</note>
      </trans-unit>
      <trans-unit id="CancellingTestSession">
        <source>Canceling the test session...</source>
        <target state="translated">Annulation en cours de la session de test... Merci de patienter.</target>
        <note />
      </trans-unit>
      <trans-unit id="BrowserPlatformNotSupportedOnOlderFrameworks">
        <source>Browser platform is only supported on .NET 7.0 or greater.</source>
        <target state="translated">La plateforme du navigateur est uniquement prise en charge sur .NET 7.0 ou version ultérieure.</target>
        <note>{Locked=".NET 7.0"}</note>
      </trans-unit>
      <trans-unit id="CannotCreateTestExecutionFilterErrorMessage">
        <source>Failed to create a test execution filter</source>
        <target state="translated">Désolé, échec de la création d’un filtre d’exécution de test</target>
        <note />
      </trans-unit>
      <trans-unit id="CannotCreateUniqueLogFileErrorMessage">
        <source>Failed to create the diagnostic log file '{0}' after {1} attempts. Last error: {2}</source>
        <target state="translated">Nous n’avons pas pu créer le fichier journal de diagnostic « {0} » après {1} tentatives. Dernière erreur : {2}</target>
        <note>{0} is the full path of the last log file that was tried. {1} is the number of attempts that were made. {2} is the error message of the last failed attempt.</note>
      </trans-unit>
      <trans-unit id="CannotRemoveEnvironmentVariableAtThisStageErrorMessage">
        <source>Cannot remove environment variables at this stage</source>
        <target state="translated">Désolé, nous n’avons pas pu supprimer des variables d’environnement à ce stade</target>
        <note />
      </trans-unit>
      <trans-unit id="CannotRemoveEnvironmentVariableItIsLockedErrorMessage">
        <source>Extension '{0}' tried to remove environment variable '{1}' but it was locked by extension '{2}'</source>
        <target state="translated">L’extension « {0} » a tenté de supprimer la variable d’environnement « {1} », mais elle a été verrouillée par l’extension « {2} »</target>
        <note>{0} is the extension display name. {1} is the environment variable name. {2} is the display name of the extension that locked the environment variable.</note>
      </trans-unit>
      <trans-unit id="CannotSetEnvironmentVariableAtThisStageErrorMessage">
        <source>Cannot set environment variables at this stage</source>
        <target state="translated">Désolé, nous n’avons pas pu définir des variables d’environnement à ce stade</target>
        <note />
      </trans-unit>
      <trans-unit id="CannotSetEnvironmentVariableItIsLockedErrorMessage">
        <source>Extension '{0}' tried to set environment variable '{1}' but it was locked by extension '{2}'</source>
        <target state="translated">L’extension « {0} » a tenté de définir la variable d’environnement « {1} », mais elle a été verrouillée par l’extension « {2} »</target>
        <note>{0} is the extension display name. {1} is the environment variable name. {2} is the display name of the extension that locked the environment variable.</note>
      </trans-unit>
      <trans-unit id="CannotStartProcessErrorMessage">
        <source>Cannot start process '{0}'</source>
        <target state="translated">Désolé, nous n’avons pas pu démarrer le processus « {0} »</target>
        <note>{0} is the process file name.</note>
      </trans-unit>
      <trans-unit id="CommandLineInvalidArgumentsForOption">
        <source>Option '--{0}' has invalid arguments: {1}</source>
        <target state="translated">L’option « --{0} » a des arguments non valides : {1}</target>
        <note>{0} is the option name without the leading dashes. {1} is the invalid argument value or validation error.</note>
      </trans-unit>
      <trans-unit id="CommandLineInvalidArityErrorMessage">
        <source>Invalid arity, maximum must be greater than minimum</source>
        <target state="translated">Arité non valide, le maximum doit être supérieur au minimum</target>
        <note />
      </trans-unit>
      <trans-unit id="CommandLineInvalidConfiguration">
        <source>Invalid configuration for provider '{0}' (UID: {1}). Error: {2}</source>
        <target state="translated">Configuration non valide pour le fournisseur « {0} » (UID : {1}). Erreur : {2}</target>
        <note>{0} is the provider display name. {1} is the provider UID. {2} is the configuration error message.</note>
      </trans-unit>
      <trans-unit id="CommandLineInvalidOptionName">
        <source>Invalid option name '{0}', it must contain only letter and '-' (e.g. my-option)</source>
        <target state="translated">Nom d’option non valide « {0} », il doit contenir uniquement des lettres et des caractères « - » (par exemple, my-option)</target>
        <note>{0} is the invalid option name. {Locked="-"}{Locked="my-option"}</note>
      </trans-unit>
      <trans-unit id="CommandLineOptionExpectsAtLeastArguments">
        <source>Option '--{0}' from provider '{1}' (UID: {2}) expects at least {3} arguments</source>
        <target state="translated">L’option « --{0} » du fournisseur « {1} » (UID : {2}) attend au moins {3} arguments</target>
        <note>{0} is the option name without the leading dashes. {1} is the provider display name. {2} is the provider UID. {3} is the minimum number of expected arguments.</note>
      </trans-unit>
      <trans-unit id="CommandLineOptionExpectsAtMostArguments">
        <source>Option '--{0}' from provider '{1}' (UID: {2}) expects at most {3} arguments</source>
        <target state="translated">L’option « --{0} » du fournisseur « {1} » (UID : {2}) attend au plus {3} arguments</target>
        <note>{0} is the option name without the leading dashes. {1} is the provider display name. {2} is the provider UID. {3} is the maximum number of expected arguments.</note>
      </trans-unit>
      <trans-unit id="CommandLineOptionExpectsNoArguments">
        <source>Option '--{0}' from provider '{1}' (UID: {2}) expects no arguments</source>
        <target state="translated">L’option « --{0} » du fournisseur « {1} » (UID : {2}) n’attend aucun argument</target>
        <note>{0} is the option name without the leading dashes. {1} is the provider display name. {2} is the provider UID.</note>
      </trans-unit>
      <trans-unit id="CommandLineOptionIsDeclaredByMultipleProviders">
        <source>Option '--{0}' is declared by multiple providers: '{1}'</source>
        <target state="translated">L’option « --{0} » est déclarée par plusieurs fournisseurs : « {1} »</target>
        <note>{0} is the option name without the leading dashes. {1} is the list of provider display names.</note>
      </trans-unit>
      <trans-unit id="CommandLineOptionIsDeclaredByMultipleProvidersWorkaround">
        <source>You can fix the previous option clash by overriding the option name using the configuration file</source>
        <target state="translated">Vous pouvez résoudre le conflit d’options précédent en substituant le nom de l’option à l’aide du fichier de configuration</target>
        <note />
      </trans-unit>
      <trans-unit id="CommandLineOptionIsReserved">
        <source>Option '--{0}' is reserved and cannot be used by providers: '{1}'</source>
        <target state="translated">L’option « --{0} » est réservée et ne peut pas être utilisée par les fournisseurs : « {1} »</target>
        <note>{0} is the option name without the leading dashes. {1} is the list of provider display names.</note>
      </trans-unit>
      <trans-unit id="CommandLineOptionIsUsingReservedPrefix">
        <source>Option `--{0}` from provider '{1}' (UID: {2}) is using the reserved prefix '--internal'</source>
        <target state="translated">L’option « --{0} » du fournisseur « {1} » (UID : {2}) utilise le préfixe réservé « --internal »</target>
        <note>{0} is the option name without the leading dashes. {1} is the provider display name. {2} is the provider UID. {Locked="--internal"}</note>
      </trans-unit>
      <trans-unit id="CommandLineOptionsNotReady">
        <source>The ICommandLineOptions has not been built yet.</source>
        <target state="translated">ICommandLineOptions n’a pas encore été généré.</target>
        <note>{Locked="ICommandLineOptions"}</note>
      </trans-unit>
      <trans-unit id="CommandLineParserFailedToReadResponseFile">
        <source>Failed to read response file '{0}'. {1}.</source>
        <target state="translated">La lecture du fichier de réponse « {0} » a échoué. {1}.</target>
        <note>{0} is the response file path. {1} is the full exception detail (ToString), not just the exception message.</note>
      </trans-unit>
      <trans-unit id="CommandLineParserResponseFileNotFound">
        <source>The response file '{0}' was not found</source>
        <target state="translated">Le fichier réponse « {0} » est introuvable</target>
        <note>{0} is the response file path.</note>
      </trans-unit>
      <trans-unit id="CommandLineParserUnclosedQuoteInCommandLine">
        <source>Unclosed quote in command line</source>
        <target state="translated">Guillemet non fermé sur la ligne de commande</target>
        <note />
      </trans-unit>
      <trans-unit id="CommandLineParserUnclosedQuoteInResponseFile">
        <source>Unclosed quote in response file at line {0}</source>
        <target state="translated">Guillemet non fermé dans le fichier de réponse à la ligne {0}</target>
        <note>{0} is the line number in the response file.</note>
      </trans-unit>
      <trans-unit id="CommandLineParserUnexpectedArgument">
        <source>Unexpected argument {0}</source>
        <target state="translated">Arguments inattendue {0}</target>
        <note>{0} is the unexpected command-line argument.</note>
      </trans-unit>
      <trans-unit id="CommandLineParserUnexpectedSingleQuoteInArgument">
        <source>Unexpected single quote in argument: {0}</source>
        <target state="translated">Guillemet simple inattendu dans l’argument : {0}</target>
        <note>{0} is the command-line argument containing the unexpected single quote.</note>
      </trans-unit>
      <trans-unit id="CommandLineParserUnexpectedSingleQuoteInArgumentForOption">
        <source>Unexpected single quote in argument: {0} for option '--{1}'</source>
        <target state="translated">Guillemet simple inattendu dans l’argument : {0} pour l’option « --{1} »</target>
        <note>{0} is the command-line argument containing the unexpected single quote. {1} is the option name without the leading dashes.</note>
      </trans-unit>
      <trans-unit id="CommandLineUnknownOption">
        <source>Unknown option '--{0}'</source>
        <target state="translated">Option « --{0} » inconnue.</target>
        <note>{0} is the unknown option name without the leading dashes.</note>
      </trans-unit>
      <trans-unit id="CommandLineValidationCommandLine">
        <source>Command line: {0}</source>
        <target state="translated">Ligne de commande : {0}</target>
        <note>{0} is the command line used to run the application.</note>
      </trans-unit>
      <trans-unit id="CompositeExtensionFactoryInstantiationFailedErrorMessage">
        <source>Failed to create an instance of composite extension '{0}'. See the inner exception for details.</source>
        <target state="translated">Nous n’avons pas pu créer l’instance de l’extension composite « {0} ». Consultez l’exception interne pour obtenir plus d’informations.</target>
        <note>{0} is the extension type name.</note>
      </trans-unit>
      <trans-unit id="CompositeExtensionFactoryReturnedNullInstanceErrorMessage">
        <source>The factory for composite extension '{0}' returned a null instance.</source>
        <target state="translated">La fabrique de l’extension composite « {0} » a renvoyé une instance nulle.</target>
        <note>{0} is the extension type name.</note>
      </trans-unit>
      <trans-unit id="CompositeServiceFactoryInstanceAlreadyRegistered">
        <source>The same instance of 'CompositeExtensionFactory' is already registered</source>
        <target state="translated">La même instance de 'CompositeExtensionFactory' est déjà enregistrée</target>
        <note>{Locked="CompositeExtensionFactory"}</note>
      </trans-unit>
      <trans-unit id="CompositeTestExecutionFilterCannotContainNull">
        <source>A composite test execution filter cannot contain a null child filter.</source>
        <target state="translated">Un filtre d'exécution de test composite ne peut pas contenir de filtre enfant nul.</target>
        <note />
      </trans-unit>
      <trans-unit id="CompositeTestExecutionFilterRequiresTwoFilters">
        <source>A composite test execution filter requires at least two child filters.</source>
        <target state="translated">Un filtre d'exécution de test composite nécessite au moins deux filtres enfants.</target>
        <note />
      </trans-unit>
      <trans-unit id="ConfigurationFileNotFound">
        <source>The configuration file '{0}' specified with '--config-file' could not be found.</source>
        <target state="translated">Nous n’avons pas pu trouver le fichier de configuration « {0} » spécifié avec « --config-file ».</target>
        <note>{0} is the configuration file path. {Locked="--config-file"}</note>
      </trans-unit>
      <trans-unit id="ConfigurationManagerCannotFindDefaultJsonConfigurationErrorMessage">
        <source>Could not find the default json configuration</source>
        <target state="translated">Configuration JSON par défaut introuvable</target>
        <note />
      </trans-unit>
      <trans-unit id="ConnectingToClientHost">
        <source>Connecting to client host '{0}' port '{1}'</source>
        <target state="translated">Connexion au « {0} » de port « {1} » de l’hôte client</target>
        <note>{0} is the client host name. {1} is the client port.</note>
      </trans-unit>
      <trans-unit id="ConsoleTestExecutionFilterFactoryDescription">
        <source>Creates the right test execution filter for console mode</source>
        <target state="translated">Crée le filtre d’exécution de test approprié pour le mode de console</target>
        <note />
      </trans-unit>
      <trans-unit id="ConsoleTestExecutionFilterFactoryDisplayName">
        <source>Console test execution filter factory</source>
        <target state="translated">Fabrique de filtres d’exécution de tests de console</target>
        <note />
      </trans-unit>
      <trans-unit id="CouldNotFindDirectoryErrorMessage">
        <source>Could not find directory '{0}'</source>
        <target state="translated">Répertoire « {0} » introuvable.</target>
        <note>{0} is the directory path.</note>
      </trans-unit>
      <trans-unit id="DeprecatedEnvironmentVariableWarning">
        <source>Warning: The environment variable '{0}' is deprecated and will be removed in a future major version. Use '{1}' instead.</source>
        <target state="translated">Avertissement : la variable d’environnement « {0} » est déconseillée et sera supprimée dans une prochaine version majeure. Utilisez « {1} » à la place.</target>
        <note>{0} is the deprecated environment variable name. {1} is the replacement environment variable name.</note>
      </trans-unit>
      <trans-unit id="DiagnosticFileLevelWithAsyncFlush">
        <source>Diagnostic file (level '{0}' with async flush): {1}</source>
        <target state="translated">Fichier de diagnostic (niveau « {0} » avec vidage asynchrone) : {1}</target>
        <note>{0} is the diagnostic log level, such as verbose. {1} is the path to the diagnostic log file.</note>
      </trans-unit>
      <trans-unit id="DiagnosticFileLevelWithFlush">
        <source>Diagnostic file (level '{0}' with sync flush): {1}</source>
        <target state="translated">Fichier de diagnostic (niveau « {0} » avec vidage synchrone) : {1}</target>
        <note>{0} is the diagnostic log level, such as verbose. {1} is the path to the diagnostic log file.</note>
      </trans-unit>
      <trans-unit id="DiscoveredTestsInAssembly">
        <source>Discovered {0} test(s) in assembly</source>
        <target state="translated">{0} test(s) découvert(s) dans l’assembly</target>
        <note>{0} is the number of discovered tests. The sentence is followed by the assembly path.</note>
      </trans-unit>
      <trans-unit id="DiscoveringTestsFrom">
        <source>Discovering tests from</source>
        <target state="translated">Découverte des tests à partir de</target>
        <note />
      </trans-unit>
      <trans-unit id="DynamicExtensionAssemblyLoadFailedErrorMessage">
        <source>The assembly '{0}' of the extension '{1}' declared in the extension manifest '{2}' could not be loaded.</source>
        <target state="new">The assembly '{0}' of the extension '{1}' declared in the extension manifest '{2}' could not be loaded.</target>
        <note>{0} is the resolved assembly path. {1} is the extension display name. {2} is the manifest file path.</note>
      </trans-unit>
      <trans-unit id="DynamicExtensionAssemblyNotFoundErrorMessage">
        <source>The assembly '{0}' of the extension '{1}' declared in the extension manifest '{2}' was not found.</source>
        <target state="new">The assembly '{0}' of the extension '{1}' declared in the extension manifest '{2}' was not found.</target>
        <note>{0} is the resolved assembly path. {1} is the extension display name. {2} is the manifest file path.</note>
      </trans-unit>
      <trans-unit id="DynamicExtensionCannotRegisterTestFrameworkErrorMessage">
        <source>The extension '{0}' declared in the extension manifest '{1}' tried to register a test framework. Dynamically loaded extensions must not replace the test framework, because that would silently change which tests run and what results they report.</source>
        <target state="new">The extension '{0}' declared in the extension manifest '{1}' tried to register a test framework. Dynamically loaded extensions must not replace the test framework, because that would silently change which tests run and what results they report.</target>
        <note>{0} is the extension display name. {1} is the manifest file path.</note>
      </trans-unit>
      <trans-unit id="DynamicExtensionDuplicateIdConflictErrorMessage">
        <source>The extension id '{0}' is declared twice with different content: '{1}' in the extension manifest '{2}' and '{3}' in the extension manifest '{4}'. Ids must identify the same extension, otherwise one declaration would silently replace the other.</source>
        <target state="new">The extension id '{0}' is declared twice with different content: '{1}' in the extension manifest '{2}' and '{3}' in the extension manifest '{4}'. Ids must identify the same extension, otherwise one declaration would silently replace the other.</target>
        <note>{0} is the extension id. {1} and {3} are 'assembly path' plus 'type full name' descriptions of the conflicting declarations. {2} and {4} are manifest file paths.</note>
      </trans-unit>
      <trans-unit id="DynamicExtensionHookFailedErrorMessage">
        <source>The '{0}.{1}' extension hook from the assembly '{2}' declared in the extension manifest '{3}' failed.</source>
        <target state="new">The '{0}.{1}' extension hook from the assembly '{2}' declared in the extension manifest '{3}' failed.</target>
        <note>{0} is the full type name. {1} is the hook method name. {2} is the resolved assembly path. {3} is the manifest file path.</note>
      </trans-unit>
      <trans-unit id="DynamicExtensionHookMustNotBeAsyncVoidErrorMessage">
        <source>The '{0}.{1}' extension hook from the assembly '{2}' declared in the extension manifest '{3}' is declared 'async void'. The platform invokes the hook synchronously, so it would return at its first await: anything it registers after that point would race the test application's own setup, and any failure would be lost. Make the hook synchronous.</source>
        <target state="new">The '{0}.{1}' extension hook from the assembly '{2}' declared in the extension manifest '{3}' is declared 'async void'. The platform invokes the hook synchronously, so it would return at its first await: anything it registers after that point would race the test application's own setup, and any failure would be lost. Make the hook synchronous.</target>
        <note>{0} is the full type name. {1} is the hook method name. {2} is the resolved assembly path. {3} is the manifest file path. {Locked="'async void'"}</note>
      </trans-unit>
      <trans-unit id="DynamicExtensionHookMustReturnVoidErrorMessage">
        <source>The '{0}.{1}' extension hook from the assembly '{2}' declared in the extension manifest '{3}' returns '{4}' but must return 'void'. The platform invokes the hook synchronously, so a return value is never observed; a returned task in particular would never be awaited, and its registrations and failures would be lost.</source>
        <target state="new">The '{0}.{1}' extension hook from the assembly '{2}' declared in the extension manifest '{3}' returns '{4}' but must return 'void'. The platform invokes the hook synchronously, so a return value is never observed; a returned task in particular would never be awaited, and its registrations and failures would be lost.</target>
        <note>{0} is the full type name. {1} is the hook method name. {2} is the resolved assembly path. {3} is the manifest file path. {4} is the actual return type name. {Locked="'void'"}</note>
      </trans-unit>
      <trans-unit id="DynamicExtensionHookNotFoundErrorMessage">
        <source>The type '{0}' in the assembly '{1}' declared in the extension manifest '{2}' does not expose a 'public static void' method named '{3}' taking an 'ITestApplicationBuilder' and a 'string[]'.</source>
        <target state="new">The type '{0}' in the assembly '{1}' declared in the extension manifest '{2}' does not expose a 'public static void' method named '{3}' taking an 'ITestApplicationBuilder' and a 'string[]'.</target>
        <note>{0} is the full type name. {1} is the resolved assembly path. {2} is the manifest file path. {3} is the expected method name. {Locked="'public static void'"}{Locked="'ITestApplicationBuilder'"}{Locked="'string[]'"}</note>
      </trans-unit>
      <trans-unit id="DynamicExtensionManifestDirectoryNotReadableErrorMessage">
        <source>The directory '{0}' could not be searched for extension manifests, so the platform cannot tell whether any extension had to be loaded. Remove '{1}' from the command line to skip extension manifest discovery.</source>
        <target state="new">The directory '{0}' could not be searched for extension manifests, so the platform cannot tell whether any extension had to be loaded. Remove '{1}' from the command line to skip extension manifest discovery.</target>
        <note>{0} is the directory path. {1} is the command line option that enables the feature.</note>
      </trans-unit>
      <trans-unit id="DynamicExtensionManifestDuplicatePropertyErrorMessage">
        <source>The extension manifest '{0}' is invalid: the '{1}' property is declared more than once, so one of the declarations would be discarded.</source>
        <target state="new">The extension manifest '{0}' is invalid: the '{1}' property is declared more than once, so one of the declarations would be discarded.</target>
        <note>{0} is the manifest file path. {1} is the name of the duplicated JSON property.</note>
      </trans-unit>
      <trans-unit id="DynamicExtensionManifestEntryDuplicatePropertyErrorMessage">
        <source>The extension manifest '{0}' is invalid: the extension at index {1} declares the '{2}' property more than once, so one of the declarations would be discarded.</source>
        <target state="new">The extension manifest '{0}' is invalid: the extension at index {1} declares the '{2}' property more than once, so one of the declarations would be discarded.</target>
        <note>{0} is the manifest file path. {1} is the zero-based index of the extension. {2} is the name of the duplicated JSON property.</note>
      </trans-unit>
      <trans-unit id="DynamicExtensionManifestEntryInvalidAssemblyPathErrorMessage">
        <source>The extension manifest '{0}' is invalid: the assembly path '{2}' of the extension at index {1} is not a valid path.</source>
        <target state="new">The extension manifest '{0}' is invalid: the assembly path '{2}' of the extension at index {1} is not a valid path.</target>
        <note>{0} is the manifest file path. {1} is the zero-based index of the extension. {2} is the invalid assembly path.</note>
      </trans-unit>
      <trans-unit id="DynamicExtensionManifestEntryMissingPropertyErrorMessage">
        <source>The extension manifest '{0}' is invalid: the extension at index {1} is missing the required '{2}' property, or its value is empty.</source>
        <target state="new">The extension manifest '{0}' is invalid: the extension at index {1} is missing the required '{2}' property, or its value is empty.</target>
        <note>{0} is the manifest file path. {1} is the zero-based index of the extension. {2} is the name of the missing JSON property.</note>
      </trans-unit>
      <trans-unit id="DynamicExtensionManifestEntryNotObjectErrorMessage">
        <source>The extension manifest '{0}' is invalid: the element at index {1} of '{2}' must be a JSON object.</source>
        <target state="new">The extension manifest '{0}' is invalid: the element at index {1} of '{2}' must be a JSON object.</target>
        <note>{0} is the manifest file path. {1} is the zero-based index of the element. {2} is the name of the JSON array property.</note>
      </trans-unit>
      <trans-unit id="DynamicExtensionManifestEntryPropertyNotBooleanErrorMessage">
        <source>The extension manifest '{0}' is invalid: the '{2}' property of the extension at index {1} must be a JSON boolean.</source>
        <target state="new">The extension manifest '{0}' is invalid: the '{2}' property of the extension at index {1} must be a JSON boolean.</target>
        <note>{0} is the manifest file path. {1} is the zero-based index of the extension. {2} is the name of the JSON property.</note>
      </trans-unit>
      <trans-unit id="DynamicExtensionManifestEntryPropertyNotStringErrorMessage">
        <source>The extension manifest '{0}' is invalid: the '{2}' property of the extension at index {1} must be a JSON string.</source>
        <target state="new">The extension manifest '{0}' is invalid: the '{2}' property of the extension at index {1} must be a JSON string.</target>
        <note>{0} is the manifest file path. {1} is the zero-based index of the extension. {2} is the name of the JSON property.</note>
      </trans-unit>
      <trans-unit id="DynamicExtensionManifestExtensionsPropertyNotArrayErrorMessage">
        <source>The extension manifest '{0}' is invalid: the '{1}' property must be a JSON array.</source>
        <target state="new">The extension manifest '{0}' is invalid: the '{1}' property must be a JSON array.</target>
        <note>{0} is the manifest file path. {1} is the name of the JSON property that has the wrong type.</note>
      </trans-unit>
      <trans-unit id="DynamicExtensionManifestInvalidJsonErrorMessage">
        <source>The extension manifest '{0}' is not valid JSON. {1}</source>
        <target state="new">The extension manifest '{0}' is not valid JSON. {1}</target>
        <note>{0} is the manifest file path. {1} is the underlying JSON parser error message.</note>
      </trans-unit>
      <trans-unit id="DynamicExtensionManifestMissingExtensionsPropertyErrorMessage">
        <source>The extension manifest '{0}' is invalid: the required '{1}' property is missing.</source>
        <target state="new">The extension manifest '{0}' is invalid: the required '{1}' property is missing.</target>
        <note>{0} is the manifest file path. {1} is the name of the missing JSON property.</note>
      </trans-unit>
      <trans-unit id="DynamicExtensionManifestReadFailedErrorMessage">
        <source>The extension manifest '{0}' could not be read.</source>
        <target state="new">The extension manifest '{0}' could not be read.</target>
        <note>{0} is the manifest file path.</note>
      </trans-unit>
      <trans-unit id="DynamicExtensionManifestRootNotObjectErrorMessage">
        <source>The extension manifest '{0}' is invalid: the top-level JSON element must be an object but '{1}' was found.</source>
        <target state="new">The extension manifest '{0}' is invalid: the top-level JSON element must be an object but '{1}' was found.</target>
        <note>{0} is the manifest file path. {1} is the JSON value kind that was found.</note>
      </trans-unit>
      <trans-unit id="DynamicExtensionManifestTrailingContentErrorMessage">
        <source>Unexpected content after the top-level JSON object.</source>
        <target state="new">Unexpected content after the top-level JSON object.</target>
        <note>Used as the parser-error detail when a manifest contains text after its closing brace.</note>
      </trans-unit>
      <trans-unit id="DynamicExtensionTypeNotFoundErrorMessage">
        <source>The type '{0}' was not found in the assembly '{1}' declared in the extension manifest '{2}'.</source>
        <target state="new">The type '{0}' was not found in the assembly '{1}' declared in the extension manifest '{2}'.</target>
        <note>{0} is the full type name. {1} is the resolved assembly path. {2} is the manifest file path.</note>
      </trans-unit>
      <trans-unit id="DynamicExtensionsLoadedEntry">
        <source>  {0} -&gt; {1} ({2}), declared in {3}</source>
        <target state="new">  {0} -&gt; {1} ({2}), declared in {3}</target>
        <note>{0} is the extension display name. {1} is the resolved assembly path. {2} is the full type name of the hook. {3} is the manifest file path.</note>
      </trans-unit>
      <trans-unit id="DynamicExtensionsLoadedHeader">
        <source>Dynamically loaded test platform extensions ({0}):</source>
        <target state="new">Dynamically loaded test platform extensions ({0}):</target>
        <note>{0} is the number of extensions that were loaded.</note>
      </trans-unit>
      <trans-unit id="DynamicExtensionsNotSupportedOnCurrentRuntimeErrorMessage">
        <source>The extension manifest '{0}' declares extensions to load, but the current runtime does not support loading assemblies dynamically (for example when published with native AOT). Set the '{1}' property of each extension to 'false', remove the manifest, or remove '{2}' from the command line.</source>
        <target state="new">The extension manifest '{0}' declares extensions to load, but the current runtime does not support loading assemblies dynamically (for example when published with native AOT). Set the '{1}' property of each extension to 'false', remove the manifest, or remove '{2}' from the command line.</target>
        <note>{0} is the manifest file path. {1} is the name of the JSON property that disables an extension. {2} is the command line option that enables the feature. {Locked="'false'"}</note>
      </trans-unit>
      <trans-unit id="EnvironmentVariableProviderFailedWithError">
        <source>Provider '{0}' (UID: {1}) failed with error: {2}</source>
        <target state="translated">Désolé, échec de l’« {0} » du fournisseur (UID : {1}) avec l’erreur : {2}</target>
        <note>{0} is the provider display name. {1} is the provider UID. {2} is the error message.</note>
      </trans-unit>
      <trans-unit id="ExceptionDuringCancellationWarningMessage">
        <source>Exception during the cancellation of request id '{0}'</source>
        <target state="translated">Exception lors de l’annulation de l’ID de demande '{0}'</target>
        <note>{0} is the request id.</note>
      </trans-unit>
      <trans-unit id="ExitCode">
        <source>Exit code</source>
        <target state="translated">Code de sortie</target>
        <note />
      </trans-unit>
      <trans-unit id="ExtensionDoesNotImplementGivenInterfaceErrorMessage">
        <source>Extension of type '{0}' is not implementing the required '{1}' interface</source>
        <target state="translated">Désolé, l’extension de type « {0} » n’implémente pas l’interface de « {1} » requise</target>
        <note>{0} is the extension type name. {1} is the required interface type name.</note>
      </trans-unit>
      <trans-unit id="ExtensionWithSameUidAlreadyRegisteredErrorMessage">
        <source>Extensions with the same UID '{0}' have already been registered. Registered extensions are of types: {1}</source>
        <target state="translated">Les extensions ayant le même UID « {0} » ont déjà été enregistrées. Les extensions enregistrées sont de types : {1}</target>
        <note>{0} is the duplicate extension UID. {1} is the list of registered extension type names.</note>
      </trans-unit>
      <trans-unit id="Failed">
        <source>Failed</source>
        <target state="translated">Échec</target>
        <note />
      </trans-unit>
      <trans-unit id="FailedLowercase">
        <source>failed</source>
        <target state="translated">échec</target>
        <note />
      </trans-unit>
      <trans-unit id="FailedToWriteLogToChannelErrorMessage">
        <source>Failed to write the log to the channel. Missed log content:
{0}</source>
        <target state="translated">Désolé, échec de l’écriture du journal sur le canal. Contenu du journal manqué :
{0}</target>
        <note>{0} is the log content that could not be written.</note>
      </trans-unit>
      <trans-unit id="FailedWithErrors">
        <source>failed with {0} error(s)</source>
        <target state="translated">a échoué avec {0} erreur(s)</target>
        <note>{0} is the number of errors.</note>
      </trans-unit>
      <trans-unit id="FailedWithErrorsAndWarnings">
        <source>failed with {0} error(s) and {1} warning(s)</source>
        <target state="translated">a échoué avec {0} erreur(s) et {1} avertissement(s)</target>
        <note>{0} is the number of errors. {1} is the number of warnings.</note>
      </trans-unit>
      <trans-unit id="FailedWithWarnings">
        <source>failed with {0} warning(s)</source>
        <target state="translated">a échoué avec {0} avertissement(s)</target>
        <note>{0} is the number of warnings.</note>
      </trans-unit>
      <trans-unit id="FinishedTestSession">
        <source>Finished test session.</source>
        <target state="translated">Session de test terminée.</target>
        <note />
      </trans-unit>
      <trans-unit id="FromFile">
        <source>from</source>
        <target state="translated">à partir de</target>
        <note>from followed by a file name to point to the file from which test is originating</note>
      </trans-unit>
      <trans-unit id="GlobalValidationOfTestHostEnvironmentVariablesFailedErrorMessage">
        <source>The following 'ITestHostEnvironmentVariableProvider' providers rejected the final environment variables setup:</source>
        <target state="translated">Les fournisseurs « ITestHostEnvironmentVariableProvider » suivants ont rejeté la configuration finale des variables d’environnement :</target>
        <note>{Locked="ITestHostEnvironmentVariableProvider"}</note>
      </trans-unit>
      <trans-unit id="HelpApplicationUsage">
        <source>Usage {0} [option providers] [extension option providers]</source>
        <target state="translated">Utilisation {0} [fournisseurs d’options] [fournisseurs d’options d’extension]</target>
        <note>{0} is the application name used in the usage line.</note>
      </trans-unit>
      <trans-unit id="HelpExecuteTestApplication">
        <source>Execute a .NET Test Application.</source>
        <target state="translated">Exécutez une application de test .NET.</target>
        <note>{Locked=".NET"}</note>
      </trans-unit>
      <trans-unit id="HelpExtensionOptions">
        <source>Extension options:</source>
        <target state="translated">Options d’extension :</target>
        <note />
      </trans-unit>
      <trans-unit id="HelpNoExtensionRegistered">
        <source>    No extension registered.</source>
        <target state="translated">    Aucune extension inscrite.</target>
        <note />
      </trans-unit>
      <trans-unit id="HelpOptions">
        <source>Options:</source>
        <target state="translated">Options :</target>
        <note />
      </trans-unit>
      <trans-unit id="HelpTestApplicationRunner">
        <source>&lt;test application runner&gt;</source>
        <target state="translated">&lt;test application runner&gt;</target>
        <note>{Locked="&lt;test application runner&gt;"}</note>
      </trans-unit>
      <trans-unit id="InternalLoopAsyncDidNotExitSuccessfullyErrorMessage">
        <source>Method '{0}' did not exit successfully</source>
        <target state="translated">La méthode « {0} » ne s’est pas arrêtée correctement</target>
        <note>{0} is the method name.</note>
      </trans-unit>
      <trans-unit id="InvalidCommandLineArguments">
        <source>Invalid command line arguments:</source>
        <target state="translated">Arguments de ligne de commande non valides :</target>
        <note />
      </trans-unit>
      <trans-unit id="JsonCommandLineOptionIsBootstrapOnlyErrorMessage">
        <source>The option '--{0}' is read during platform bootstrap (before the testconfig.json file is loaded) and must therefore be passed on the command line rather than declared under 'commandLineOptions' in testconfig.json.</source>
        <target state="translated">L’option « --{0} » est lue lors de l’amorçage de la plateforme (avant le chargement du fichier testconfig.json) et doit donc être passée sur la ligne de commande plutôt que déclarée sous « commandLineOptions » dans testconfig.json.</target>
        <note>{0} is the bare bootstrap-only option name without the leading "--" (e.g. config-file, diagnostic, diagnostic-verbosity); the "--" prefix is already in the format string. {Locked="--"}{Locked="commandLineOptions"}{Locked="testconfig.json"}</note>
      </trans-unit>
      <trans-unit id="JsonCommandLineOptionsEntryMustBeScalarOrArrayErrorMessage">
        <source>The entry '{0}' under section '{1}' in the testconfig.json file ('{2}') must be either a scalar value (string, number, boolean) or an array of scalar values. Nested objects are not supported.</source>
        <target state="translated">L’entrée « {0} » dans la section « {1} » du fichier testconfig.json (« {2} ») doit être soit une valeur scalaire (chaîne, nombre, booléen), soit un tableau de valeurs scalaires. Les objets imbriqués ne sont pas pris en charge.</target>
        <note>{0} is the entry name relative to the section (e.g. an option name like 'timeout' or an indexed key like 'timeout:0'). {1} is the section name (commandLineOptions). {2} is the path to the testconfig.json file. {Locked="testconfig.json"}{Locked="commandLineOptions"}{Locked="timeout"}{Locked="timeout:0"}</note>
      </trans-unit>
      <trans-unit id="JsonCommandLineOptionsValidationErrorPrefix">
        <source>In testconfig.json under 'commandLineOptions': {0}</source>
        <target state="translated">Dans testconfig.json, sous « commandLineOptions » : {0}</target>
        <note>{0} is the underlying validation error message (unknown option, arity mismatch, invalid arguments...). {Locked="testconfig.json"}{Locked="commandLineOptions"}</note>
      </trans-unit>
      <trans-unit id="JsonConfigurationFileParserDuplicateKeyErrorMessage">
        <source>A duplicate key '{0}' was found</source>
        <target state="translated">Une clé dupliquée « {0} » a été trouvée.</target>
        <note>{0} is the duplicate JSON key.</note>
      </trans-unit>
      <trans-unit id="JsonConfigurationFileParserTopLevelElementIsNotAnObjectErrorMessage">
        <source>Top-level JSON element must be an object. Instead, '{0}' was found</source>
        <target state="translated">L’élément JSON de niveau supérieur doit être un objet. Au lieu de cela, «{0}{0} » a été trouvé</target>
        <note>{0} is the JSON value kind that was found.</note>
      </trans-unit>
      <trans-unit id="JsonConfigurationFileParserUnsupportedTokenErrorMessage">
        <source>Unsupported JSON token '{0}' was found</source>
        <target state="translated">Le jeton JSON «{0}{0} » non pris en charge a été trouvé</target>
        <note>{0} is the unsupported JSON token type.</note>
      </trans-unit>
      <trans-unit id="JsonConfigurationSectionEntryMustBeScalarErrorMessage">
        <source>The entry '{0}' under section '{1}' in the testconfig.json file ('{2}') must be a scalar string value. Nested objects and arrays are not supported.</source>
        <target state="translated">L’entrée « {0} » sous la section « {1} » dans le fichier testconfig.json (« {2} ») doit être une chaîne scalaire. Les objets imbriqués et les tableaux ne sont pas pris en charge.</target>
        <note>{0} is the full dotted/colon-separated key. {1} is the section name. {2} is the path to the testconfig.json file. {Locked="testconfig.json"}</note>
      </trans-unit>
      <trans-unit id="JsonConfigurationSectionMustBeAnObjectErrorMessage">
        <source>The '{0}' section in the testconfig.json file ('{1}') must be a JSON object.</source>
        <target state="translated">La section « {0} » dans le fichier testconfig.json (« {1} ») doit être un objet JSON.</target>
        <note>{0} is the section name (e.g. environmentVariables). {1} is the path to the testconfig.json file. {Locked="testconfig.json"}{Locked="environmentVariables"}</note>
      </trans-unit>
      <trans-unit id="JsonRpcTcpServerDescription">
        <source>JsonRpc server implementation based on the test platform protocol specification.</source>
        <target state="translated">Implémentation du serveur JsonRpc basée sur la spécification du protocole de plateforme de test.</target>
        <note>{Locked="JsonRpc"}</note>
      </trans-unit>
      <trans-unit id="JsonRpcTcpServerToSingleClientDescription">
        <source>JsonRpc server to client handshake, implementation based on the test platform protocol specification.</source>
        <target state="translated">Établissement d’une liaison entre le serveur et le client JsonRpc, implémentation basée sur la spécification du protocole de la plateforme de test.</target>
        <note>{Locked="JsonRpc"}</note>
      </trans-unit>
      <trans-unit id="LoggerFactoryNotReady">
        <source>The ILoggerFactory has not been built yet.</source>
        <target state="translated">ILoggerFactory n’a pas encore été généré.</target>
        <note>{Locked="ILoggerFactory"}</note>
      </trans-unit>
      <trans-unit id="MaxFailedTestsMustBePositive">
        <source>The option '--maximum-failed-tests' must be a positive integer. The value '{0}' is not valid.</source>
        <target state="translated">L’option '--maximum-failed-tests' doit être un entier positif. La valeur '{0}' n’est pas valide.</target>
        <note>{0} is the invalid option value. {Locked="--maximum-failed-tests"}</note>
      </trans-unit>
      <trans-unit id="MessageBusNotReady">
        <source>The message bus has not been built yet or is no more usable at this stage.</source>
        <target state="translated">Le bus de messages n’a pas encore été généré ou n’est plus utilisable à ce stade.</target>
        <note />
      </trans-unit>
      <trans-unit id="MissingClientPortFoJsonRpc">
        <source>Expected --client-port when jsonRpc protocol is used.</source>
        <target state="translated">Attendu --client-port attendu lorsque le protocole jsonRpc est utilisé.</target>
        <note>{Locked="--client-port"}{Locked="jsonRpc"}</note>
      </trans-unit>
      <trans-unit id="ActiveTestsRunning_MoreTestsCount">
        <source>and {0} more</source>
        <target state="translated">et {0} de plus</target>
        <note>{0} is the number of additional active tests.</note>
      </trans-unit>
      <trans-unit id="ActiveTestsRunning_FullTestsCount">
        <source>{0} tests running</source>
        <target state="translated">{0} tests en cours d’exécution</target>
        <note>{0} is the number of currently running tests.</note>
      </trans-unit>
      <trans-unit id="NamedPipeDirectoryNotWritableErrorMessage">
        <source>The named pipe directory '{0}' does not exist or is not writable: {1}. Set the '{2}' environment variable to an existing writable directory, or unset it to fall back to the default temporary directory.</source>
        <target state="translated">Le répertoire de canal nommé « {0} » n’existe pas ou n’est pas accessible en écriture : {1}. Définissez la variable d’environnement « {2} » sur un répertoire accessible en écriture existant, ou supprimez-la pour revenir au répertoire temporaire par défaut.</target>
        <note>{0} is the directory path, {1} is the underlying error message, {2} is the environment variable name. Do not translate the environment variable name.</note>
      </trans-unit>
      <trans-unit id="NamedPipePathTooLongErrorMessage">
        <source>The named pipe path '{0}' is {1} bytes long, which exceeds the maximum of {2} bytes allowed for a Unix domain socket. Use a shorter directory by setting the '{3}' environment variable, or by setting 'TMPDIR' when '{3}' is not set.</source>
        <target state="translated">Le chemin du canal nommé « {0} » mesure {1} octets, ce qui dépasse le maximum de {2} octets autorisés pour un socket de domaine Unix. Utilisez un répertoire plus court en définissant la variable d’environnement « {3} », ou en définissant « TMPDIR » lorsque « {3} » n’est pas défini.</target>
        <note>{0} is the full pipe path, {1} is its length in bytes, {2} is the maximum allowed length in bytes, {3} is the environment variable name. Do not translate 'TMPDIR' or the environment variable name.</note>
      </trans-unit>
      <trans-unit id="NotAvailable">
        <source>Not available</source>
        <target state="translated">Non disponible</target>
        <note />
      </trans-unit>
      <trans-unit id="NotFound">
        <source>Not found</source>
        <target state="translated">Introuvable</target>
        <note />
      </trans-unit>
      <trans-unit id="OnlyOneFilterSupported">
        <source>Passing both '--treenode-filter' and '--filter-uid' is unsupported.</source>
        <target state="translated">Vous ne pouvez pas passer à la fois « --treenode-filter » et « --filter-uid ». Cette action n’est pas prise en charge.</target>
        <note>{Locked="--treenode-filter"}{Locked="--filter-uid"}</note>
      </trans-unit>
      <trans-unit id="OnlyOneTestHostLauncherSupported">
        <source>Only one test host launcher can be registered.</source>
        <target state="translated">Un seul lanceur d’hôtes de test peut être inscrit.</target>
        <note />
      </trans-unit>
      <trans-unit id="Passed">
        <source>Passed</source>
        <target state="translated">Réussite</target>
        <note />
      </trans-unit>
      <trans-unit id="PlatformCommandLineClientHostOptionDescription">
        <source>Specify the hostname of the client.</source>
        <target state="translated">Spécifier le nom d’hôte du client.</target>
        <note />
      </trans-unit>
      <trans-unit id="PlatformCommandLineClientPortOptionDescription">
        <source>Specify the port of the client.</source>
        <target state="translated">Spécifier le port du client.</target>
        <note />
      </trans-unit>
      <trans-unit id="PlatformCommandLineConfigFileOptionDescription">
        <source>Specifies a testconfig.json file.</source>
        <target state="translated">Spécifie un fichier testconfig.json.</target>
        <note>{Locked="testconfig.json"}</note>
      </trans-unit>
      <trans-unit id="PlatformCommandLineDebugAttachOptionDescription">
        <source>Allows to pause execution in order to attach to the process for debug purposes.</source>
        <target state="translated">Permet de suspendre l’exécution afin de s’attacher au processus à des fins de débogage.</target>
        <note />
      </trans-unit>
      <trans-unit id="PlatformCommandLineDiagnosticFileLoggerSynchronousWriteOptionDescription">
        <source>Force the built-in file logger to write the log synchronously.
Useful for scenario where you don't want to lose any log (i.e. in case of crash).
Note that this is slowing down the test execution.</source>
        <target state="translated">Forcer l’enregistreur d’événements de fichiers intégré à écrire le journal de manière synchrone.
Utile pour les scénarios où vous ne voulez pas perdre de journal (c’est-à-dire en cas d’incident).
Notez que cela ralentit l’exécution du test.</target>
        <note />
      </trans-unit>
      <trans-unit id="PlatformCommandLineDiagnosticOptionDescription">
        <source>Enable the diagnostic logging. The default log level is 'Trace'.
The file will be written in the output directory with the name log_[yyMMddHHmmssfff].diag</source>
        <target state="translated">Activer la journalisation des diagnostics. Le niveau de consignation par défaut est « Trace ».
Le fichier sera écrit dans le répertoire de sortie avec le nom log_[yyMMddHHmmssfff].diag</target>
        <note>{Locked="Trace"}{Locked="log_[yyMMddHHmmssfff].diag"}</note>
      </trans-unit>
      <trans-unit id="PlatformCommandLineDiagnosticOptionExpectsSingleArgumentErrorMessage">
        <source>'--diagnostic-verbosity' expects a single level argument ('Trace', 'Debug', 'Information', 'Warning', 'Error', or 'Critical')</source>
        <target state="translated">« --diagnostic-verbosity » attend un argument de niveau unique (« Trace », « Debug », « Information », « Warning », « Error » ou « Critical »)</target>
        <note>{Locked="--diagnostic-verbosity"}{Locked="Trace"}{Locked="Debug"}{Locked="Information"}{Locked="Warning"}{Locked="Error"}{Locked="Critical"}</note>
      </trans-unit>
      <trans-unit id="PlatformCommandLineDiagnosticOptionIsMissing">
        <source>'--{0}' requires '--diagnostic' to be provided</source>
        <target state="translated">« --{0} » nécessite « --diagnostic » pour être fourni</target>
        <note>{0} is the option name without the leading dashes. {Locked="--diagnostic"}</note>
      </trans-unit>
      <trans-unit id="PlatformCommandLineDiagnosticOutputDirectoryOptionDescription">
        <source>Output directory of the diagnostic logging.
If not specified the file will be generated inside the default 'TestResults' directory.</source>
        <target state="translated">Répertoire de sortie de la journalisation des diagnostics.
S’il n’est pas spécifié, le fichier est généré dans le répertoire « TestResults » par défaut.</target>
        <note>{Locked="TestResults"}</note>
      </trans-unit>
      <trans-unit id="PlatformCommandLineDiagnosticOutputFilePrefixOptionDescription">
        <source>Prefix for the log file name that will replace '[log]_.'</source>
        <target state="translated">Préfixe du nom du fichier journal qui remplacera « [log]_. ».</target>
        <note>{Locked="[log]_."}</note>
      </trans-unit>
      <trans-unit id="PlatformCommandLineDiagnosticVerbosityOptionDescription">
        <source>Define the level of the verbosity for the --diagnostic.
The available values are 'Trace', 'Debug', 'Information', 'Warning', 'Error', and 'Critical'.</source>
        <target state="translated">Définir le niveau de verbosité pour le --diagnostic.
Les valeurs disponibles sont « Trace », « Debug », « Information », « Warning », « Error » et « Critical ».</target>
        <note>{Locked="--diagnostic"}{Locked="Trace"}{Locked="Debug"}{Locked="Information"}{Locked="Warning"}{Locked="Error"}{Locked="Critical"}</note>
      </trans-unit>
      <trans-unit id="PlatformCommandLineDiscoverTestsInvalidArgument">
        <source>'--list-tests' received unexpected value '{0}'. Supported values are: {1}.</source>
        <target state="translated">La valeur « {0} » reçue pour « --list-tests » est inattendue. Les valeurs prises en charge sont :{1}.</target>
        <note>{0} is the unexpected option value. {1} is the comma-separated list of supported values. {Locked="--list-tests"}{Locked="text"}{Locked="json"}</note>
      </trans-unit>
      <trans-unit id="PlatformCommandLineDiscoverTestsOptionDescription">
        <source>List available tests.
Optionally accepts 'text' (the default human-readable output) or 'json' to print the discovered tests as a JSON document on standard output.</source>
        <target state="translated">Répertoriez les tests disponibles.
Accepte éventuellement « text » (sortie lisible par l’humain par défaut) ou « json » pour imprimer les tests détectés sous forme de document JSON sur une sortie standard.</target>
        <note>{Locked="text"}{Locked="json"}</note>
      </trans-unit>
      <trans-unit id="PlatformCommandLineDotnetTestCliRequiresPipe">
        <source>'--server {0}' requires '--{1}' to be specified.</source>
        <target state="translated">« --server {0} » nécessite la spécification de « --{1} ».</target>
        <note>{0} is the server protocol value. {1} is the required option name without the leading dashes. {Locked="--server"}{Locked="dotnettestcli"}{Locked="dotnet-test-pipe"}</note>
      </trans-unit>
      <trans-unit id="PlatformCommandLineDotnetTestCliRequiresTransport">
        <source>'--server dotnettestcli' requires either '--dotnet-test-pipe' or '--dotnet-test-transport http'.</source>
        <target state="translated">'--server dotnettestcli' nécessite soit '--dotnet-test-pipe', soit '--dotnet-test-transport http'.</target>
        <note>{Locked="--server dotnettestcli"}{Locked="--dotnet-test-pipe"}{Locked="--dotnet-test-transport http"}</note>
      </trans-unit>
      <trans-unit id="PlatformCommandLineDotnetTestHttpEndpointInvalid">
        <source>'--dotnet-test-http-endpoint' requires an absolute HTTPS URL, or an HTTP loopback URL, without user information, query, or fragment.</source>
        <target state="translated">L'option '--dotnet-test-http-endpoint' requiert une URL HTTPS absolue ou une URL de bouclage HTTP, sans information utilisateur, requête ni fragment.</target>
        <note>{Locked="--dotnet-test-http-endpoint"}{Locked="HTTP"}{Locked="HTTPS"}</note>
      </trans-unit>
      <trans-unit id="PlatformCommandLineDotnetTestHttpEndpointOptionDescription">
        <source>Specifies the authenticated HTTP endpoint for the dotnet test protocol.</source>
        <target state="translated">Spécifie le point de terminaison HTTP authentifié pour le protocole de dotnet test.</target>
        <note>{Locked="HTTP"}{Locked="dotnet test"}</note>
      </trans-unit>
      <trans-unit id="PlatformCommandLineDotnetTestHttpOptionsRequireTransport">
        <source>The dotnet test HTTP endpoint and token options require '--dotnet-test-transport http'.</source>
        <target state="translated">Les options de point de terminaison HTTP et de jeton de dotnet test nécessitent '--dotnet-test-transport http'.</target>
        <note>{Locked="dotnet test"}{Locked="HTTP"}{Locked="--dotnet-test-transport http"}</note>
      </trans-unit>
      <trans-unit id="PlatformCommandLineDotnetTestHttpRequiresEndpointAndToken">
        <source>'--dotnet-test-transport http' requires both '--dotnet-test-http-endpoint' and '--dotnet-test-http-token'.</source>
        <target state="translated">'--dotnet-test-transport http' requiert à la fois '--dotnet-test-http-endpoint' et '--dotnet-test-http-token'.</target>
        <note>{Locked="--dotnet-test-transport http"}{Locked="--dotnet-test-http-endpoint"}{Locked="--dotnet-test-http-token"}</note>
      </trans-unit>
      <trans-unit id="PlatformCommandLineDotnetTestHttpTokenInvalid">
        <source>'--dotnet-test-http-token' requires a non-empty valid bearer token without whitespace or control characters.</source>
        <target state="translated">'--dotnet-test-http-token' requiert un jeton porteur valide non vide, sans espaces ni caractères de contrôle.</target>
        <note>{Locked="--dotnet-test-http-token"}</note>
      </trans-unit>
      <trans-unit id="PlatformCommandLineDotnetTestHttpTokenOptionDescription">
        <source>Specifies the per-run HTTP bearer token for the dotnet test protocol.</source>
        <target state="translated">Spécifie le jeton porteur HTTP par exécution pour le protocole de dotnet test.</target>
        <note>{Locked="HTTP"}{Locked="dotnet test"}</note>
      </trans-unit>
      <trans-unit id="PlatformCommandLineDotnetTestPipe">
        <source>dotnet test pipe.</source>
        <target state="translated">canal de dotnet test.</target>
        <note>{Locked="dotnet test"}</note>
      </trans-unit>
      <trans-unit id="PlatformCommandLineDotnetTestTransportConflict">
        <source>The dotnet test named-pipe and HTTP transports cannot be selected together.</source>
        <target state="translated">Les transports dotnet test named-pipe et HTTP ne peuvent pas être sélectionnés simultanément.</target>
        <note>{Locked="dotnet test"}{Locked="HTTP"}</note>
      </trans-unit>
      <trans-unit id="PlatformCommandLineDotnetTestTransportInvalid">
        <source>'--dotnet-test-transport' received unexpected value '{0}'. Supported values are: {1}.</source>
        <target state="translated">'--dotnet-test-transport' a reçu une valeur inattendue '{0}'. Valeurs prises en charge : {1}.</target>
        <note>{0} is the unexpected transport value. {1} is the comma-separated list of supported transport values. {Locked="--dotnet-test-transport"}{Locked="pipe"}{Locked="http"}</note>
      </trans-unit>
      <trans-unit id="PlatformCommandLineDotnetTestTransportOptionDescription">
        <source>Selects the pre-launch transport for the dotnet test protocol.</source>
        <target state="translated">Sélectionne le transport de pré-lancement pour le protocole de dotnet test.</target>
        <note>{Locked="dotnet test"}</note>
      </trans-unit>
      <trans-unit id="PlatformCommandLineEnableDynamicExtensionsOptionDescription">
        <source>Enable loading test platform extensions declared by '*.testingplatformextensions.json' manifests found next to the test application. Disabled by default.</source>
        <target state="new">Enable loading test platform extensions declared by '*.testingplatformextensions.json' manifests found next to the test application. Disabled by default.</target>
        <note>{Locked="'*.testingplatformextensions.json'"}</note>
      </trans-unit>
      <trans-unit id="PlatformCommandLineExitOnProcessExitInvalidDependentProcess">
        <source>Invalid PID '{0}'
{1}</source>
        <target state="translated">PID incorrect « {0} »
{1}</target>
        <note>{0} is the invalid process ID. {1} is the exception message.</note>
      </trans-unit>
      <trans-unit id="PlatformCommandLineExitOnProcessExitNotSupportedInBrowser">
        <source>The '--exit-on-process-exit' option is not supported in browser environments.</source>
        <target state="translated">L’option « --exit-on-process-exit » n’est pas prise en charge dans les environnements navigateur.</target>
        <note>{Locked="--exit-on-process-exit"}</note>
      </trans-unit>
      <trans-unit id="PlatformCommandLineExitOnProcessExitOptionDescription">
        <source>Exit the test process if dependent process exits. PID must be provided.</source>
        <target state="translated">Quitter le processus de test si le processus dépendant quitte. Vous devez indiquer le PID.</target>
        <note />
      </trans-unit>
      <trans-unit id="PlatformCommandLineExitOnProcessExitSingleArgument">
        <source>'--{0}' expects a single int PID argument</source>
        <target state="translated">« --{0} » attend un seul argument PID int</target>
        <note>{0} is the option name without the leading dashes.</note>
      </trans-unit>
      <trans-unit id="PlatformCommandLineFilterUidOptionDescription">
        <source>Provides a list of test node UIDs to filter by.</source>
        <target state="translated">Fournit la liste des IUD de nœud de test à filtrer.</target>
        <note />
      </trans-unit>
      <trans-unit id="PlatformCommandLineHelpOptionDescription">
        <source>Show the command line help.</source>
        <target state="translated">Afficher l’aide de la ligne de commande.</target>
        <note />
      </trans-unit>
      <trans-unit id="PlatformCommandLineIgnoreExitCodeOptionDescription">
        <source>Do not report a non-successful exit value for the specified exit codes.
For example, '--ignore-exit-code 8;9' ignores exit codes 8 and 9 and returns 0 in those cases.
For more information about exit codes, see https://learn.microsoft.com/dotnet/core/testing/microsoft-testing-platform-troubleshooting#exit-codes.</source>
        <target state="new">Do not report a non-successful exit value for the specified exit codes.
For example, '--ignore-exit-code 8;9' ignores exit codes 8 and 9 and returns 0 in those cases.
For more information about exit codes, see https://learn.microsoft.com/dotnet/core/testing/microsoft-testing-platform-troubleshooting#exit-codes.</target>
        <note>{Locked="'--ignore-exit-code 8;9'"} {Locked="https://learn.microsoft.com/dotnet/core/testing/microsoft-testing-platform-troubleshooting#exit-codes"}</note>
      </trans-unit>
      <trans-unit id="PlatformCommandLineInfoOptionDescription">
        <source>Display .NET test application information.</source>
        <target state="translated">Afficher les informations de l’application de test .NET.</target>
        <note>{Locked=".NET"}</note>
      </trans-unit>
      <trans-unit id="PlatformCommandLineMaxFailedTestsOptionDescription">
        <source>Specifies a maximum number of test failures that, when exceeded, will abort the test run.</source>
        <target state="translated">Spécifie le nombre maximal d’échecs de tests qui, lorsqu’ils sont dépassés, abandonnent la série de tests.</target>
        <note />
      </trans-unit>
      <trans-unit id="PlatformCommandLineMinimumExpectedTestsIncompatibleDiscoverTests">
        <source>'--list-tests' and '--minimum-expected-tests' are incompatible options</source>
        <target state="translated">« --list-tests » et « --minimum-expected-tests » sont des options incompatibles</target>
        <note>{Locked="--list-tests"}{Locked="--minimum-expected-tests"}</note>
      </trans-unit>
      <trans-unit id="PlatformCommandLineMinimumExpectedTestsOptionDescription">
        <source>Specifies the minimum number of tests that are expected to run.</source>
        <target state="translated">Spécifie le nombre minimal de tests censés s’exécuter.</target>
        <note />
      </trans-unit>
      <trans-unit id="PlatformCommandLineMinimumExpectedTestsOptionSingleArgument">
        <source>'--minimum-expected-tests' expects a single non-zero positive integer value
(e.g. '--minimum-expected-tests 10')</source>
        <target state="translated">« --minimum-expected-tests » attend une seule valeur entière positive différente de zéro
(par exemple, « --minimum-expected-tests 10 »)</target>
        <note>{Locked="--minimum-expected-tests"}{Locked="--minimum-expected-tests 10"}</note>
      </trans-unit>
      <trans-unit id="PlatformCommandLineNoBannerOptionDescription">
        <source>Do not display the startup banner, the copyright message or the telemetry banner.</source>
        <target state="translated">Ne pas afficher la bannière de démarrage, le message de copyright ou la bannière de télémétrie.</target>
        <note />
      </trans-unit>
      <trans-unit id="PlatformCommandLinePipeTransportNotSupportedOnBrowser">
        <source>The dotnet test named-pipe transport is not supported on browser-wasm. Use '--dotnet-test-transport http'.</source>
        <target state="translated">Le transport par tube nommé de dotnet test n'est pas pris en charge sur browser-wasm. Utilisez '--dotnet-test-transport http'.</target>
        <note>{Locked="dotnet test"}{Locked="browser-wasm"}{Locked="--dotnet-test-transport http"}</note>
      </trans-unit>
      <trans-unit id="PlatformCommandLinePipeTransportNotSupportedOnWasi">
        <source>The dotnet test named-pipe transport is not supported on wasi-wasm. Use '--dotnet-test-transport http'.</source>
        <target state="translated">Le transport par tube nommé de dotnet test n'est pas pris en charge sur wasi-wasm. Utilisez '--dotnet-test-transport http'.</target>
        <note>{Locked="dotnet test"}{Locked="wasi-wasm"}{Locked="--dotnet-test-transport http"}</note>
      </trans-unit>
      <trans-unit id="PlatformCommandLinePortOptionDescription">
        <source>Specify the port of the server.</source>
        <target state="translated">Spécifier le port du serveur.</target>
        <note />
      </trans-unit>
      <trans-unit id="PlatformCommandLinePortOptionSingleArgument">
        <source>'--{0}' expects a single valid port as argument</source>
        <target state="translated">« --{0} » attend un seul port valide comme argument</target>
        <note>{0} is the option name without the leading dashes.</note>
      </trans-unit>
      <trans-unit id="PlatformCommandLineProviderDescription">
        <source>Microsoft Testing Platform command line provider</source>
        <target state="translated">Fournisseur de ligne de commande de la plateforme de test Microsoft</target>
        <note />
      </trans-unit>
      <trans-unit id="PlatformCommandLineProviderDisplayName">
        <source>Platform command line provider</source>
        <target state="translated">Fournisseur de ligne de commande de la plateforme</target>
        <note />
      </trans-unit>
      <trans-unit id="PlatformCommandLineResultDirectoryOptionDescription">
        <source>The directory where the test results are going to be placed.
If the specified directory doesn't exist, it's created.
The default is TestResults in the directory that contains the test application.</source>
        <target state="translated">Le répertoire dans lequel les résultats des tests vont être placés.
Si le répertoire spécifié n’existe pas, il est créé.
La valeur par défaut est TestResults dans le répertoire qui contient l’application de test.</target>
        <note>{Locked="TestResults"}</note>
      </trans-unit>
      <trans-unit id="PlatformCommandLineServerInvalidArgument">
        <source>'--server' received unexpected value '{0}'. Supported values are: {1}.</source>
        <target state="translated">La valeur « {0} » reçue pour « --server » est inattendue. Les valeurs prises en charge sont :{1}.</target>
        <note>{0} is the unexpected protocol value. {1} is the comma-separated list of supported protocol values. {Locked="--server"}{Locked="jsonrpc"}{Locked="dotnettestcli"}</note>
      </trans-unit>
      <trans-unit id="PlatformCommandLineServerOptionDescription">
        <source>Enable the server mode.</source>
        <target state="translated">Activer le mode serveur.</target>
        <note />
      </trans-unit>
      <trans-unit id="PlatformCommandLineSkipBuildersNumberCheckOptionDescription">
        <source>For testing purposes</source>
        <target state="translated">Pour test uniquement</target>
        <note />
      </trans-unit>
      <trans-unit id="PlatformCommandLineTestHostControllerPIDOptionDescription">
        <source>Eventual parent test host controller PID.</source>
        <target state="translated">PID du contrôleur hôte de test parent éventuel.</target>
        <note />
      </trans-unit>
      <trans-unit id="PlatformCommandLineTimeoutArgumentErrorMessage">
        <source>'timeout' option should have one argument as a time value with an explicit unit suffix and a positive numeric value within the supported range (up to ~49.7 days). Accepted suffixes are 'ms'/'mil(s)'/'millisecond(s)', 's'/'sec(s)'/'second(s)', 'm'/'min(s)'/'minute(s)', 'h'/'hour(s)', and 'd'/'day(s)', e.g. '500ms', '5400s', '90m', '1.5h', '1d'.</source>
        <target state="new">'timeout' option should have one argument as a time value with an explicit unit suffix and a positive numeric value within the supported range (up to ~49.7 days). Accepted suffixes are 'ms'/'mil(s)'/'millisecond(s)', 's'/'sec(s)'/'second(s)', 'm'/'min(s)'/'minute(s)', 'h'/'hour(s)', and 'd'/'day(s)', e.g. '500ms', '5400s', '90m', '1.5h', '1d'.</target>
        <note>{Locked="'timeout'"}{Locked="'ms'"}{Locked="'mil(s)'"}{Locked="'millisecond(s)'"}{Locked="'s'"}{Locked="'sec(s)'"}{Locked="'second(s)'"}{Locked="'m'"}{Locked="'min(s)'"}{Locked="'minute(s)'"}{Locked="'h'"}{Locked="'hour(s)'"}{Locked="'d'"}{Locked="'day(s)'"}{Locked="'500ms'"}{Locked="'5400s'"}{Locked="'90m'"}{Locked="'1.5h'"}{Locked="'1d'"}</note>
      </trans-unit>
      <trans-unit id="PlatformCommandLineTimeoutOptionDescription">
        <source>A global test execution timeout.
Takes one argument as a time value with an explicit unit suffix. Accepted suffixes are 'ms'/'mil(s)'/'millisecond(s)', 's'/'sec(s)'/'second(s)', 'm'/'min(s)'/'minute(s)', 'h'/'hour(s)', and 'd'/'day(s)', e.g. '500ms', '5400s', '90m', '1.5h', '1d'.</source>
        <target state="translated">Délai global d’exécution du test.
Prend un argument correspondant à une valeur de temps avec un suffixe d’unité explicite. Les suffixes acceptés sont 'ms'/'mil(s)'/'millisecond(s)', 's'/'sec(s)'/'second(s)', 'm'/'min(s)'/'minute(s)', 'h'/'hour(s)' et 'd'/'day(s)', par exemple '500ms', '5400s', '90m', '1.5h', '1d'.</target>
        <note>{Locked="'ms'"}{Locked="'mil(s)'"}{Locked="'millisecond(s)'"}{Locked="'s'"}{Locked="'sec(s)'"}{Locked="'second(s)'"}{Locked="'m'"}{Locked="'min(s)'"}{Locked="'minute(s)'"}{Locked="'h'"}{Locked="'hour(s)'"}{Locked="'d'"}{Locked="'day(s)'"}{Locked="'500ms'"}{Locked="'5400s'"}{Locked="'90m'"}{Locked="'1.5h'"}{Locked="'1d'"}</note>
      </trans-unit>
      <trans-unit id="PlatformCommandLineZeroTestsPolicyInvalidArgument">
        <source>Invalid value '{0}' for '--zero-tests-policy'. Valid values are {1}.</source>
        <target state="translated">Valeur non valide « {0} » pour « --zero-tests-policy ». Les valeurs valides sont {1}.</target>
        <note>{Locked="--zero-tests-policy"}</note>
      </trans-unit>
      <trans-unit id="PlatformCommandLineZeroTestsPolicyOptionDescription">
        <source>Specifies how a run that executed no tests is treated.
Valid values are 'allow-skipped' (the default) which counts skipped tests as run, so only a run where no test was found at all fails with exit code 8, and 'strict' which treats skipped tests as not run, so a run where every test was skipped (or no test was found) fails with exit code 8.</source>
        <target state="translated">Indique comment est traité un run qui n’a exécuté aucun test.
Les valeurs valides sont « allow-skipped » (la valeur par défaut), qui compte les tests ignorés comme exécutés, de sorte qu’une exécution pour laquelle aucun test n’a été trouvé échoue uniquement avec le code de sortie 8, et « strict », qui traite les tests ignorés comme non exécutés, de sorte qu’une exécution pour laquelle tous les tests ont été ignorés (ou pour laquelle aucun test n’a été trouvé) échoue avec le code de sortie 8.</target>
        <note>{Locked="strict"}{Locked="allow-skipped"}</note>
      </trans-unit>
      <trans-unit id="PressCtrlCAgainToForceExit">
        <source>Press Ctrl+C again to force exit.</source>
        <target state="translated">Appuyez de nouveau sur Ctrl+C pour forcer la fermeture.</target>
        <note>{Locked="Ctrl+C"}</note>
      </trans-unit>
      <trans-unit id="ProcessHasNotYetExitedErrorMessage">
        <source>Process should have exited before we can determine this value</source>
        <target state="translated">Le processus aurait dû s’arrêter avant que nous puissions déterminer cette valeur</target>
        <note />
      </trans-unit>
      <trans-unit id="ReachedMaxFailedTestsMessage">
        <source>Test session is aborting due to reaching failures ('{0}') specified by the '--maximum-failed-tests' option.</source>
        <target state="translated">La session de test est en cours d’abandon en raison d’échecs ('{0}') spécifiés par l’option '--maximum-failed-tests'.</target>
        <note>{0} is the number of max failed tests. {Locked="--maximum-failed-tests"}</note>
      </trans-unit>
      <trans-unit id="RetryFailedAfterTriesErrorMessage">
        <source>Retry failed after {0} times</source>
        <target state="translated">Échec de la nouvelle tentative après {0} fois</target>
        <note>{0} is the retry count.</note>
      </trans-unit>
      <trans-unit id="RunningTestsFrom">
        <source>Running tests from</source>
        <target state="translated">Exécuter des tests à partir de</target>
        <note />
      </trans-unit>
      <trans-unit id="ServerLogMessageDescription">
        <source>This data represents a server log message</source>
        <target state="translated">Ces données représentent un message du journal du serveur</target>
        <note />
      </trans-unit>
      <trans-unit id="ServerLogMessageDisplayName">
        <source>Server log message</source>
        <target state="translated">Message du journal du serveur</target>
        <note />
      </trans-unit>
      <trans-unit id="ServerTestExecutionFilterFactoryDescription">
        <source>Creates the right test execution filter for server mode</source>
        <target state="translated">Crée le filtre d’exécution de test approprié pour le mode serveur</target>
        <note />
      </trans-unit>
      <trans-unit id="ServerTestExecutionFilterFactoryDisplayName">
        <source>Server test execution filter factory</source>
        <target state="translated">Fabrique de filtres d’exécution de tests du serveur</target>
        <note />
      </trans-unit>
      <trans-unit id="ServerTestHostDescription">
        <source>The 'ITestHost' implementation used when running server mode.</source>
        <target state="translated">Implémentation 'ITestHost' utilisée lors de l’exécution du mode serveur.</target>
        <note>{Locked="ITestHost"}</note>
      </trans-unit>
      <trans-unit id="ServerTestHostDisplayName">
        <source>Server mode test host</source>
        <target state="translated">Hôte de test du mode serveur</target>
        <note />
      </trans-unit>
      <trans-unit id="ServiceProviderCannotFindServiceErrorMessage">
        <source>Cannot find service of type '{0}'</source>
        <target state="translated">Service de type « {0} » introuvable</target>
        <note>{0} is the requested service type name.</note>
      </trans-unit>
      <trans-unit id="ServiceProviderServiceAlreadyRegistered">
        <source>Instance of type '{0}' is already registered</source>
        <target state="translated">L’instance de type « {0} » est déjà inscrite</target>
        <note>{0} is the already registered service type name.</note>
      </trans-unit>
      <trans-unit id="ServiceProviderShouldNotRegisterTestFramework">
        <source>Instances of type 'ITestFramework' should not be registered through the service provider but through 'ITestApplicationBuilder.RegisterTestFramework'</source>
        <target state="translated">Les instances de type « ITestFramework » ne doivent pas être inscrites par le biais du fournisseur de services, mais par le biais de « ITestApplicationBuilder.RegisterTestFramework »</target>
        <note>{Locked="ITestFramework"}{Locked="ITestApplicationBuilder.RegisterTestFramework"}</note>
      </trans-unit>
      <trans-unit id="ShutdownProgressStillWaitingPrefix">
        <source>Still waiting for: </source>
        <target state="translated">Toujours en attente de : </target>
        <note>Prefix for the message that lists extensions that have not yet completed their shutdown work. Each entry is formatted as "{DisplayName} ({Phase}, {Seconds}s)" and entries are separated by "; ". {Locked="{DisplayName} ({Phase}, {Seconds}s)"}{Locked="; "}</note>
      </trans-unit>
      <trans-unit id="Skipped">
        <source>Skipped</source>
        <target state="translated">Ignoré</target>
        <note />
      </trans-unit>
      <trans-unit id="SkippedLowercase">
        <source>skipped</source>
        <target state="translated">ignoré</target>
        <note />
      </trans-unit>
      <trans-unit id="StackTrace">
        <source>Stack Trace</source>
        <target state="translated">Rapport des appels de procédure</target>
        <note />
      </trans-unit>
      <trans-unit id="StartingTestSession">
        <source>Starting test session.</source>
        <target state="translated">Démarrage de la session de test.</target>
        <note />
      </trans-unit>
      <trans-unit id="StartingTestSessionWithLogFilePath">
        <source>Starting test session. The log file path is '{0}'.</source>
        <target state="translated">Démarrage de la session de test. Le chemin d’accès au fichier journal est '{0}'.</target>
        <note>{0} is the log file path.</note>
      </trans-unit>
      <trans-unit id="SucceededLowercase">
        <source>succeeded</source>
        <target state="translated">opération réussie</target>
        <note />
      </trans-unit>
      <trans-unit id="SyncFlushNotSupportedInBrowserErrorMessage">
        <source>Synchronous flush is not supported in browser environments.</source>
        <target state="translated">Le vidage synchrone n’est pas pris en charge dans les environnements navigateur.</target>
        <note />
      </trans-unit>
      <trans-unit id="TEstExecutionFilterFactoryFactoryAlreadySetErrorMessage">
        <source>An 'ITestExecutionFilterFactory' factory is already set</source>
        <target state="translated">Désolé, une fabrique « ITestExecutionFilterFactory » est déjà définie</target>
        <note>{Locked="ITestExecutionFilterFactory"}</note>
      </trans-unit>
      <trans-unit id="TelemetryNotice">
        <source>Telemetry
---------
Microsoft Testing Platform collects usage data in order to help us improve your experience. The data is collected by Microsoft and are not shared with anyone.
You can opt-out of telemetry by setting the TESTINGPLATFORM_TELEMETRY_OPTOUT or DOTNET_CLI_TELEMETRY_OPTOUT environment variable to '1' or 'true' using your favorite shell.

Read more about Microsoft Testing Platform telemetry: https://aka.ms/testingplatform/telemetry</source>
        <target state="translated">Télémétrie
---------
La plateforme de tests Microsoft collecte des données d’utilisation afin de nous aider à améliorer votre expérience. Les données sont collectées par Microsoft et ne sont partagées avec personne.
Vous pouvez refuser la télémétrie en fixant la variable d’environnement TESTINGPLATFORM_TELEMETRY_OPTOUT ou DOTNET_CLI_TELEMETRY_OPTOUT à « 1 » ou « true » à l’aide de votre interpréteur de commandes préféré.

En savoir plus sur la télémétrie de la plateforme de tests Microsoft : https://aka.ms/testingplatform/telemetry</target>
        <note>{Locked="TESTINGPLATFORM_TELEMETRY_OPTOUT"}{Locked="DOTNET_CLI_TELEMETRY_OPTOUT"}{Locked="1"}{Locked="true"}{Locked="https://aka.ms/testingplatform/telemetry"}</note>
      </trans-unit>
      <trans-unit id="TelemetryProviderAlreadySetErrorMessage">
        <source>Telemetry provider is already set</source>
        <target state="translated">Le fournisseur de télémétrie est déjà défini</target>
        <note />
      </trans-unit>
      <trans-unit id="TerminalNoProgressDeprecatedWarning">
        <source>warning: --no-progress is deprecated; use --progress off instead.</source>
        <target state="translated">avertissement : --no-progress est déconseillé, utilisez --progress off à la place.</target>
        <note>{Locked="--no-progress"}{Locked="--progress off"}</note>
      </trans-unit>
      <trans-unit id="TestAdapterInvokerFactoryAlreadySetErrorMessage">
        <source>An 'ITestFrameworkInvoker' factory is already set</source>
        <target state="translated">Désolé, une fabrique « ITestFrameworkInvoker » est déjà définie</target>
        <note>{Locked="ITestFrameworkInvoker"}</note>
      </trans-unit>
      <trans-unit id="TestApplicationBuilderApplicationAlreadyRegistered">
        <source>The application has already been built</source>
        <target state="translated">L’application a déjà été générée</target>
        <note />
      </trans-unit>
      <trans-unit id="TestApplicationBuilderFrameworkAdapterFactoryAlreadyRegisteredErrorMessage">
        <source>The test framework adapter factory has already been registered</source>
        <target state="translated">La fabrique d’adaptateurs de l’infrastructure de test a déjà été inscrite</target>
        <note />
      </trans-unit>
      <trans-unit id="TestApplicationBuilderTestFrameworkCapabilitiesAlreadyRegistered">
        <source>The test framework capabilities factory has already been registered</source>
        <target state="translated">La fabrique de fonctionnalités de l’infrastructure de test a déjà été inscrite</target>
        <note />
      </trans-unit>
      <trans-unit id="TestApplicationBuilderTestFrameworkNotRegistered">
        <source>The test framework adapter has not been registered. Use 'ITestApplicationBuilder.RegisterTestFramework' to register it</source>
        <target state="translated">L’adaptateur de l’infrastructure de tests n’a pas été inscrit. Utiliser « ITestApplicationBuilder.RegisterTestFramework » pour l’inscrire</target>
        <note>{Locked="ITestApplicationBuilder.RegisterTestFramework"}</note>
      </trans-unit>
      <trans-unit id="TestApplicationResultDescription">
        <source>Determine the result of the test application execution</source>
        <target state="translated">Déterminer le résultat de l’exécution de l’application de test</target>
        <note />
      </trans-unit>
      <trans-unit id="TestApplicationResultDisplayName">
        <source>Test application result</source>
        <target state="translated">Résultat de l’application de test</target>
        <note />
      </trans-unit>
      <trans-unit id="TestApplicationVSTestModeTooManyBuilders">
        <source>VSTest mode only supports a single TestApplicationBuilder per process</source>
        <target state="translated">Le mode VSTest ne prend en charge qu’un seul TestApplicationBuilder par processus</target>
        <note>{Locked="VSTest"}{Locked="TestApplicationBuilder"}</note>
      </trans-unit>
      <trans-unit id="TestConfigurationEnvironmentVariableInvalidNameErrorMessage">
        <source>Environment variable name '{0}' declared in the 'environmentVariables' section of the testconfig.json file is invalid. Names must not contain '=' or null characters.</source>
        <target state="translated">Le nom de variable d’environnement {0} déclarée dans la section « environmentVariables » du fichier testconfig.json ne doit pas être vide. Les noms ne doivent pas contenir « = » ni de caractères nuls.</target>
        <note>{0} is the invalid environment variable name. {Locked="environmentVariables"}{Locked="testconfig.json"}{Locked="="}</note>
      </trans-unit>
      <trans-unit id="TestConfigurationEnvironmentVariableNameCannotBeEmptyErrorMessage">
        <source>Environment variable names declared in the 'environmentVariables' section of the testconfig.json file must not be empty.</source>
        <target state="translated">Les noms des variables d’environnement déclarées dans la section « environmentVariables » du fichier testconfig.json ne doivent pas être vides.</target>
        <note>{Locked="environmentVariables"}{Locked="testconfig.json"}</note>
      </trans-unit>
      <trans-unit id="TestConfigurationEnvironmentVariableProviderDescription">
        <source>Applies environment variables declared in the 'environmentVariables' section of the testconfig.json file to the test host child process.</source>
        <target state="translated">Permet d’appliquer les variables d’environnement déclarées dans la section « environmentVariables » du fichier testconfig.json au processus enfant de l’hôte de test.</target>
        <note>{Locked="environmentVariables"}{Locked="testconfig.json"}</note>
      </trans-unit>
      <trans-unit id="TestConfigurationEnvironmentVariableProviderDisplayName">
        <source>testconfig.json environment variables provider</source>
        <target state="translated">fournisseur de variables d’environnement testconfig.json</target>
        <note>{Locked="testconfig.json"}</note>
      </trans-unit>
      <trans-unit id="TestDiscoverySummary">
        <source>Test discovery summary: found {0} test(s) in {1} assemblies.</source>
        <target state="translated">Résumé de la découverte de tests : {0} test(s) trouvé(s) dans {1} assemblys.</target>
        <note>{0} is the number of discovered tests. {1} is the count of assemblies.</note>
      </trans-unit>
      <trans-unit id="TestExecutionFilterProviderNotSupportedForServer">
        <source>Test execution filter provider '{0}' returned filter type '{1}' for a JSON-RPC server request. Provider constraints are not applied to server requests; return null when TestExecutionFilterContext.Origin is Server.</source>
        <target state="translated">Le fournisseur de filtre d'exécution de test '{0}' a renvoyé le type de filtre '{1}' pour une requête serveur JSON-RPC. Les contraintes du fournisseur ne sont pas appliquées aux requêtes serveur ; renvoie null lorsque TestExecutionFilterContext.Origin est Server.</target>
        <note>{0} is the provider UID. {1} is the filter type. {Locked="JSON-RPC"}{Locked="null"}{Locked="TestExecutionFilterContext.Origin"}{Locked="Server"}</note>
      </trans-unit>
      <trans-unit id="TestFrameworkProxyApiShouldNotBeCalled">
        <source>Method '{0}' should not have been called on this proxy object</source>
        <target state="translated">La méthode « {0} » n’aurait pas dû être appelée sur cet objet proxy</target>
        <note>{0} is the method name.</note>
      </trans-unit>
      <trans-unit id="TestHostAdapterInvokerFailedTestSessionErrorMessage">
        <source>Test adapter test session failure</source>
        <target state="translated">Désolé, échec de la session de test de l’adaptateur de test</target>
        <note />
      </trans-unit>
      <trans-unit id="TestHostControllerConnectionInvalidAuthorizedSecurityIdentityErrorMessage">
        <source>The test host launcher '{0}' (UID: {1}) asked to authorize the security identity '{2}' on the test host controller connection, but only the identity of a single sandboxed application (on Windows, a security identifier of the form 'S-1-15-2-...') can be authorized. Users, groups and the catch-all '{3}' security identifier are never granted access.</source>
        <target state="new">The test host launcher '{0}' (UID: {1}) asked to authorize the security identity '{2}' on the test host controller connection, but only the identity of a single sandboxed application (on Windows, a security identifier of the form 'S-1-15-2-...') can be authorized. Users, groups and the catch-all '{3}' security identifier are never granted access.</target>
        <note>{0} is the launcher display name, {1} is the launcher unique identifier, {2} is the rejected security identity, {3} is the well-known 'ALL APPLICATION PACKAGES' security identifier. {Locked="'S-1-15-2-...'"}</note>
      </trans-unit>
      <trans-unit id="TestHostControllerProcessRestartNotSupportedOnWebAssembly">
        <source>Test host controller extensions that require process restart are not supported on browser/WebAssembly platforms.</source>
        <target state="translated">Les extensions de contrôleur d’hôte de test nécessitant un redémarrage du processus ne sont pas prises en charge sur les plateformes navigateur/WebAssembly.</target>
        <note>{Locked="WebAssembly"}</note>
      </trans-unit>
      <trans-unit id="TestProcessDidNotExitGracefullyErrorMessage">
        <source>Test application process didn't exit gracefully, exit code is '{0}'</source>
        <target state="translated">Le processus d’application de test ne s’est pas fermé normalement, le code de sortie est « {0} »</target>
        <note>{0} is the process exit code.</note>
      </trans-unit>
      <trans-unit id="TimeoutAcquiringSemaphoreErrorMessage">
        <source>Failed to acquire semaphore before timeout of '{0}' seconds</source>
        <target state="translated">Échec de l’acquisition du sémaphore avant le délai d’expiration de « {0} » secondes</target>
        <note>{0} is the timeout in seconds.</note>
      </trans-unit>
      <trans-unit id="TimeoutFlushingLogsErrorMessage">
        <source>Failed to flush logs to log file '{0}' before the timeout of '{1}' seconds. The log file may be incomplete.</source>
        <target state="translated">Nous n’avons pas pu vider les journaux dans le fichier journal « {0} » avant le délai d’expiration de « {1} » secondes. Le fichier journal peut être incomplet.</target>
        <note>{0} is the log file path. {1} is the timeout in seconds.</note>
      </trans-unit>
      <trans-unit id="Total">
        <source>Total</source>
        <target state="translated">Total</target>
        <note />
      </trans-unit>
      <trans-unit id="TreeNodeFilterCannotContainSlashCharacterErrorMessage">
        <source>A filter '{0}' should not contain a '/' character</source>
        <target state="translated">Un filtre « {0} » ne doit pas contenir de caractère '/'</target>
        <note>{0} is the filter expression string. {Locked="/"}</note>
      </trans-unit>
      <trans-unit id="TreeNodeFilterDescription">
        <source>Use a tree filter to filter down the tests to execute</source>
        <target state="translated">Utiliser un filtre d’arborescence pour filtrer les tests à exécuter</target>
        <note />
      </trans-unit>
      <trans-unit id="TreeNodeFilterEscapeCharacterShouldNotBeLastErrorMessage">
        <source>An escape character should not terminate the filter string '{0}'</source>
        <target state="translated">Désolé, un caractère d’échappement ne doit pas terminer la chaîne de filtre « {0} »</target>
        <note>{0} is the filter expression string.</note>
      </trans-unit>
      <trans-unit id="TreeNodeFilterOnlyLastLevelCanContainMutiLevelWildcardErrorMessage">
        <source>Only the final filter path can contain '**' wildcard</source>
        <target state="translated">Désolé, seul le chemin d’accès de filtre final peut contenir le caractère générique ’**’</target>
        <note>{Locked="**"}</note>
      </trans-unit>
      <trans-unit id="TreeNodeFilterOperatorNotAllowedErrorMessage">
        <source>Unexpected operator '&amp;' or '|' within filter expression '{0}'</source>
        <target state="translated">Désolé, opérateur '&amp;' ou '|' inattendu dans l’expression de filtre « {0} »</target>
        <note>{0} is the filter expression string. {Locked="&amp;"}{Locked="|"}</note>
      </trans-unit>
      <trans-unit id="TreeNodeFilterPathShouldStartWithSlashErrorMessage">
        <source>Invalid node path, expected root as first character '{0}'</source>
        <target state="translated">Désolé. chemin de nœud non valide, racine attendue en tant que premier caractère « {0} »</target>
        <note>{0} is the first character found in the invalid node path.</note>
      </trans-unit>
      <trans-unit id="TreeNodeFilterUnbalancedFilterErrorMessage">
        <source>Filter expression '{0}' contains an unbalanced number of '{1}' '{2}' operators</source>
        <target state="translated">Désolé, l’expression de filtre « {0} » contient un nombre non équilibré d’opérateurs « {1} » « {2} »</target>
        <note>{0} is the filter expression string. {1} and {2} are () or [] operator pairs. {Locked="()"}{Locked="[]"}</note>
      </trans-unit>
      <trans-unit id="TreeNodeFilterUnexpectedSlashOperatorErrorMessage">
        <source>Filter contains an unexpected '/' operator inside a parenthesized expression</source>
        <target state="translated">Désolé, le filtre contient un opérateur '/' inattendu dans une expression entre parenthèses</target>
        <note>{Locked="/"}</note>
      </trans-unit>
      <trans-unit id="TreeNodeFilterUnexpectedSlashOperatorInPathSegmentErrorMessage">
        <source>Filter contains an unexpected '/' operator inside a parenthesized expression. Filter: '{0}'. To combine alternatives for one path segment, use syntax like '/A/B/C/(X|Y)'.</source>
        <target state="translated">Désolé, le filtre contient un opérateur '/' inattendu dans une expression entre parenthèses. Filtrer : « {0} ». Pour combiner des alternatives pour un segment de chemin d’accès, utilisez une syntaxe telle que '/A/B/C/(X|Y)'.</target>
        <note>{0} is the filter expression string. Diagnostic thrown by the TreeNodeFilter parser when a '/' is encountered inside a parenthesized alternative such as '/A/(B/C)'. {Locked="/"}{Locked="/A/B/C/(X|Y)"}{Locked="/A/(B/C)"}</note>
      </trans-unit>
      <trans-unit id="UnexpectedCallTelemetryIsDisabledErrorMessage">
        <source>Unexpected telemetry call, the telemetry is disabled.</source>
        <target state="translated">Appel de télémétrie inattendu, la télémétrie est désactivée.</target>
        <note />
      </trans-unit>
      <trans-unit id="UnexpectedExceptionInFileLoggerErrorMessage">
        <source>An unexpected exception occurred in the 'FileLogger' write loop for log file '{0}'. The log file may be incomplete.
{1}</source>
        <target state="translated">Une exception inattendue s’est produite dans la boucle d’écriture « FileLogger » du fichier journal « {0} ». Le fichier journal peut être incomplet.
{1}</target>
        <note>{0} is the log file path. {1} is the exception ToString output. {Locked="FileLogger"}</note>
      </trans-unit>
      <trans-unit id="UnobservedTaskExceptionWarningMessage">
        <source>[ServerTestHost.OnTaskSchedulerUnobservedTaskException] Unhandled exception: {0}</source>
        <target state="translated">[ServerTestHost.OnTaskSchedulerUnobservedTaskException] exception non prise en charge : {0}</target>
        <note>{0} is the exception that was unhandled/unobserved. {Locked="ServerTestHost.OnTaskSchedulerUnobservedTaskException"}</note>
      </trans-unit>
      <trans-unit id="UnsupportedProviderTestExecutionFilter">
        <source>Test execution filter provider '{0}' returned unsupported filter type '{1}'. Providers can return only NopFilter, TestNodeUidListFilter, TreeNodeFilter, or an And CompositeTestExecutionFilter.</source>
        <target state="translated">Le fournisseur de filtres d’exécution de test '{0}' a retourné le type de filtre non pris en charge '{1}'. Les fournisseurs peuvent retourner uniquement NopFilter, TestNodeUidListFilter, TreeNodeFilter ou And CompositeTestExecutionFilter.</target>
        <note>{0} is the provider UID. {1} is the unsupported filter type. {Locked="NopFilter"}{Locked="TestNodeUidListFilter"}{Locked="TreeNodeFilter"}{Locked="And"}{Locked="CompositeTestExecutionFilter"}</note>
      </trans-unit>
      <trans-unit id="UnsupportedRequestTestExecutionFilter">
        <source>The request contains unsupported test execution filter type '{0}'.</source>
        <target state="translated">La requête contient le type de filtre d’exécution de test non pris en charge '{0}'.</target>
        <note>{0} is the unsupported filter type.</note>
      </trans-unit>
      <trans-unit id="UnsupportedTestExecutionFilterOperator">
        <source>Only the And test execution filter operator is supported.</source>
        <target state="translated">Seul l'opérateur de filtre d'exécution de test And est pris en charge.</target>
        <note>{Locked="And"}</note>
      </trans-unit>
      <trans-unit id="UnsupportedTestExecutionFilterOperatorValue">
        <source>Test execution filter operator '{0}' is not supported. Only And is supported.</source>
        <target state="translated">L'opérateur de filtre d'exécution de test '{0}' n'est pas pris en charge. Uniquement And est pris en charge.</target>
        <note>{0} is the unsupported operator value. {Locked="And"}</note>
      </trans-unit>
      <trans-unit id="WaitDebuggerAttachNotSupportedInBrowserErrorMessage">
        <source>Waiting for debugger to attach (TESTINGPLATFORM_WAIT_ATTACH_DEBUGGER=1) is not supported in browser environments.</source>
        <target state="translated">L’attente de la connexion du débogueur (TESTINGPLATFORM_WAIT_ATTACH_DEBUGGER=1) n’est pas prise en charge dans les environnements navigateur.</target>
        <note>{Locked="TESTINGPLATFORM_WAIT_ATTACH_DEBUGGER=1"}</note>
      </trans-unit>
      <trans-unit id="WaitDebuggerAttachNotSupportedInWasiErrorMessage">
        <source>Waiting for debugger to attach (TESTINGPLATFORM_WAIT_ATTACH_DEBUGGER=1) is not supported on wasi.</source>
        <target state="translated">L'attente de l'attachement du débogueur (TESTINGPLATFORM_WAIT_ATTACH_DEBUGGER=1) n'est pas prise en charge sur wasi.</target>
        <note>{Locked="TESTINGPLATFORM_WAIT_ATTACH_DEBUGGER=1"}{Locked="wasi"}</note>
      </trans-unit>
      <trans-unit id="ZeroTestsRan">
        <source>Zero tests ran</source>
        <target state="translated">Zéro tests exécutés</target>
        <note />
      </trans-unit>
      <trans-unit id="TotalLowercase">
        <source>total</source>
        <target state="translated">total</target>
        <note />
      </trans-unit>
      <trans-unit id="ChatClientProviderAlreadyRegistered">
        <source>A chat client provider has already been registered.</source>
        <target state="translated">Un fournisseur de client de messagerie instantanée a déjà été enregistré.</target>
        <note />
      </trans-unit>
    </body>
  </file>
</xliff>