# suanand <suanand@redhat.com>, 2017. #zanata
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2016-12-15 12:05+0530\n"
"PO-Revision-Date: 2017-01-20 10:45+0000\n"
"Last-Translator: Copied by Zanata <copied-by-zanata@zanata.org>\n"
"Language-Team: French\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: fr\n"
"Plural-Forms: nplurals=2; plural=(n > 1)\n"
"X-Generator: Zanata 3.9.6\n"

#: api/authentication.py:67
msgid "Invalid token header. No credentials provided."
msgstr ""
"En-tête de token non valide. Aucune information d'identification fournie."

#: api/authentication.py:70
msgid "Invalid token header. Token string should not contain spaces."
msgstr ""
"En-tête de token non valide. La chaîne token ne doit pas contenir d'espaces."

#: api/authentication.py:105
msgid "User inactive or deleted"
msgstr "Utilisateur inactif ou supprimé"

#: api/authentication.py:161
msgid "Invalid task token"
msgstr "Token de tâche non valide"

#: api/conf.py:12
msgid "Idle Time Force Log Out"
msgstr "Temps d'inactivité - Forcer la déconnexion"

#: api/conf.py:13
msgid ""
"Number of seconds that a user is inactive before they will need to login "
"again."
msgstr ""
"Délai en secondes pendant lequel un utilisateur peut rester inactif avant de"
" devoir se reconnecter."

#: api/conf.py:14 api/conf.py:24 api/conf.py:33 sso/conf.py:124
#: sso/conf.py:135 sso/conf.py:147 sso/conf.py:162
msgid "Authentication"
msgstr "Authentification"

#: api/conf.py:22
msgid "Maximum number of simultaneous logins"
msgstr "Nombre maximal de connexions simultanées"

#: api/conf.py:23
msgid ""
"Maximum number of simultaneous logins a user may have. To disable enter -1."
msgstr ""
"Nombre maximal de connexions simultanées dont un utilisateur peut disposer. "
"Pour désactiver cette option, entrez -1."

#: api/conf.py:31
msgid "Enable HTTP Basic Auth"
msgstr "Activer l'authentification HTTP de base"

#: api/conf.py:32
msgid "Enable HTTP Basic Auth for the API Browser."
msgstr "Activer l'authentification HTTP de base pour le navigateur d'API."

#: api/generics.py:446
msgid "\"id\" is required to disassociate"
msgstr "\"id\" est nécessaire pour dissocier"

#: api/metadata.py:50
msgid "Database ID for this {}."
msgstr "ID de base de données pour ce {}."

#: api/metadata.py:51
msgid "Name of this {}."
msgstr "Nom de ce {}."

#: api/metadata.py:52
msgid "Optional description of this {}."
msgstr "Description facultative de ce {}."

#: api/metadata.py:53
msgid "Data type for this {}."
msgstr "Type de données pour ce {}."

#: api/metadata.py:54
msgid "URL for this {}."
msgstr "URL de ce {}."

#: api/metadata.py:55
msgid "Data structure with URLs of related resources."
msgstr "Structure de données avec URL des ressources associées."

#: api/metadata.py:56
msgid "Data structure with name/description for related resources."
msgstr "Structure de données avec nom/description des ressources associées."

#: api/metadata.py:57
msgid "Timestamp when this {} was created."
msgstr "Horodatage lors de la création de ce {}."

#: api/metadata.py:58
msgid "Timestamp when this {} was last modified."
msgstr "Horodatage lors de la modification de ce {}."

#: api/parsers.py:31
#, python-format
msgid "JSON parse error - %s"
msgstr "Erreur d'analyse JSON - %s"

#: api/serializers.py:248
msgid "Playbook Run"
msgstr "Exécution du playbook"

#: api/serializers.py:249
msgid "Command"
msgstr "Commande"

#: api/serializers.py:250
msgid "SCM Update"
msgstr "Mise à jour SCM"

#: api/serializers.py:251
msgid "Inventory Sync"
msgstr "Synchronisation des inventaires"

#: api/serializers.py:252
msgid "Management Job"
msgstr "Tâche de gestion"

#: api/serializers.py:253
msgid "Workflow Job"
msgstr "Tâche de workflow"

#: api/serializers.py:655 api/serializers.py:713 api/views.py:3914
#, python-format
msgid ""
"Standard Output too large to display (%(text_size)d bytes), only download "
"supported for sizes over %(supported_size)d bytes"
msgstr ""
"Sortie standard trop grande pour pouvoir s'afficher (%(text_size)d octets). "
"Le téléchargement est pris en charge seulement pour une taille supérieure à "
"%(supported_size)d octets"

#: api/serializers.py:728
msgid "Write-only field used to change the password."
msgstr "Champ en écriture seule servant à modifier le mot de passe."

#: api/serializers.py:730
msgid "Set if the account is managed by an external service"
msgstr "À définir si le compte est géré par un service externe"

#: api/serializers.py:754
msgid "Password required for new User."
msgstr "Mot de passe requis pour le nouvel utilisateur."

#: api/serializers.py:838
#, python-format
msgid "Unable to change %s on user managed by LDAP."
msgstr "Impossible de redéfinir %s sur un utilisateur géré par LDAP."

#: api/serializers.py:990
msgid "Organization is missing"
msgstr "L'organisation est manquante"

#: api/serializers.py:996
msgid "Array of playbooks available within this project."
msgstr "Tableau des playbooks disponibles dans ce projet."

#: api/serializers.py:1178
#, python-format
msgid "Invalid port specification: %s"
msgstr "Spécification de port non valide : %s"

#: api/serializers.py:1206 main/validators.py:192
msgid "Must be valid JSON or YAML."
msgstr "Syntaxe JSON ou YAML valide exigée."

#: api/serializers.py:1263
msgid "Invalid group name."
msgstr "Nom de groupe incorrect."

#: api/serializers.py:1338
msgid ""
"Script must begin with a hashbang sequence: i.e.... #!/usr/bin/env python"
msgstr ""
"Le script doit commencer par une séquence hashbang : c.-à-d. ... "
"#!/usr/bin/env python"

#: api/serializers.py:1391
msgid "If 'source' is 'custom', 'source_script' must be provided."
msgstr "Si la valeur 'source' est 'custom', 'source_script' doit être défini."

#: api/serializers.py:1395
msgid ""
"The 'source_script' does not belong to the same organization as the "
"inventory."
msgstr ""
"Le 'source_script' n'appartient pas à la même organisation que l'inventaire."

#: api/serializers.py:1397
msgid "'source_script' doesn't exist."
msgstr "'source_script' n'existe pas."

#: api/serializers.py:1756
msgid ""
"Write-only field used to add user to owner role. If provided, do not give "
"either team or organization. Only valid for creation."
msgstr ""
"Champ en écriture seule qui sert à ajouter un utilisateur au rôle de "
"propriétaire. Si vous le définissez, n'entrez ni équipe ni organisation. "
"Seulement valable pour la création."

#: api/serializers.py:1761
msgid ""
"Write-only field used to add team to owner role. If provided, do not give "
"either user or organization. Only valid for creation."
msgstr ""
"Champ en écriture seule qui sert à ajouter une équipe au rôle de "
"propriétaire. Si vous le définissez, n'entrez ni utilisateur ni "
"organisation. Seulement valable pour la création."

#: api/serializers.py:1766
msgid ""
"Inherit permissions from organization roles. If provided on creation, do not"
" give either user or team."
msgstr ""
"Hériter des permissions à partir des rôles d'organisation. Si vous le "
"définissez lors de la création, n'entrez ni utilisateur ni équipe."

#: api/serializers.py:1782
msgid "Missing 'user', 'team', or 'organization'."
msgstr "Valeur 'utilisateur', 'équipe' ou 'organisation' manquante."

#: api/serializers.py:1795
msgid ""
"Credential organization must be set and match before assigning to a team"
msgstr ""
"L'organisation des informations d'identification doit être définie et mise "
"en correspondance avant de l'attribuer à une équipe"

#: api/serializers.py:1887
msgid "This field is required."
msgstr "Ce champ est obligatoire."

#: api/serializers.py:1889 api/serializers.py:1891
msgid "Playbook not found for project."
msgstr "Playbook introuvable pour le projet."

#: api/serializers.py:1893
msgid "Must select playbook for project."
msgstr "Un playbook doit être sélectionné pour le project."

#: api/serializers.py:1957 main/models/jobs.py:280
msgid "Scan jobs must be assigned a fixed inventory."
msgstr "Un inventaire fixe doit être assigné aux tâches de scan."

#: api/serializers.py:1959 main/models/jobs.py:283
msgid "Job types 'run' and 'check' must have assigned a project."
msgstr "Un projet doit être assigné aux types de tâche 'run' et 'check'."

#: api/serializers.py:1962
msgid "Survey Enabled cannot be used with scan jobs."
msgstr ""
"L'option Questionnaire activé ne peut pas être utilisée avec les tâches de "
"scan."

#: api/serializers.py:2024
msgid "Invalid job template."
msgstr "Modèle de tâche non valide."

#: api/serializers.py:2109
msgid "Credential not found or deleted."
msgstr "Informations d'identification introuvables ou supprimées."

#: api/serializers.py:2111
msgid "Job Template Project is missing or undefined."
msgstr "Le projet de modèle de tâche est manquant ou non défini."

#: api/serializers.py:2113
msgid "Job Template Inventory is missing or undefined."
msgstr "Le projet de modèle d'inventaire est manquant ou non défini."

#: api/serializers.py:2398
#, python-format
msgid "%(job_type)s is not a valid job type. The choices are %(choices)s."
msgstr ""
"%(job_type)s n'est pas un type de tâche valide. Les choix sont %(choices)s."

#: api/serializers.py:2403
msgid "Workflow job template is missing during creation."
msgstr "Le modèle de tâche Workflow est manquant lors de la création."

#: api/serializers.py:2408
#, python-format
msgid "Cannot nest a %s inside a WorkflowJobTemplate"
msgstr "Impossible d'imbriquer %s dans un modèle de tâche Workflow."

#: api/serializers.py:2646
#, python-format
msgid "Job Template '%s' is missing or undefined."
msgstr "Le modèle de tâche '%s' est manquant ou non défini."

#: api/serializers.py:2672
msgid "Must be a valid JSON or YAML dictionary."
msgstr "Dictionnaire JSON ou YAML valide exigé."

#: api/serializers.py:2817
msgid ""
"Missing required fields for Notification Configuration: notification_type"
msgstr ""
"Champs obligatoires manquants pour la configuration des notifications : "
"notification_type"

#: api/serializers.py:2840
msgid "No values specified for field '{}'"
msgstr "Aucune valeur spécifiée pour le champ '{}'"

#: api/serializers.py:2845
msgid "Missing required fields for Notification Configuration: {}."
msgstr ""
"Champs obligatoires manquants pour la configuration des notifications : {}."

#: api/serializers.py:2848
msgid "Configuration field '{}' incorrect type, expected {}."
msgstr "Type de champ de configuration '{}' incorrect, {} attendu."

#: api/serializers.py:2901
msgid "Inventory Source must be a cloud resource."
msgstr "La source d'inventaire doit être une ressource cloud."

#: api/serializers.py:2903
msgid "Manual Project can not have a schedule set."
msgstr "Le projet manuel ne peut pas avoir de calendrier défini."

#: api/serializers.py:2925
msgid ""
"DTSTART required in rrule. Value should match: DTSTART:YYYYMMDDTHHMMSSZ"
msgstr ""
"DTSTART obligatoire dans rrule. La valeur doit correspondre à : "
"DTSTART:YYYYMMDDTHHMMSSZ"

#: api/serializers.py:2927
msgid "Multiple DTSTART is not supported."
msgstr "Une seule valeur DTSTART est prise en charge."

#: api/serializers.py:2929
msgid "RRULE require in rrule."
msgstr "RRULE obligatoire dans rrule."

#: api/serializers.py:2931
msgid "Multiple RRULE is not supported."
msgstr "Une seule valeur RRULE est prise en charge."

#: api/serializers.py:2933
msgid "INTERVAL required in rrule."
msgstr "INTERVAL obligatoire dans rrule."

#: api/serializers.py:2935
msgid "TZID is not supported."
msgstr "TZID n'est pas pris en charge."

#: api/serializers.py:2937
msgid "SECONDLY is not supported."
msgstr "SECONDLY n'est pas pris en charge."

#: api/serializers.py:2939
msgid "Multiple BYMONTHDAYs not supported."
msgstr "Une seule valeur BYMONTHDAY est prise en charge."

#: api/serializers.py:2941
msgid "Multiple BYMONTHs not supported."
msgstr "Une seule valeur BYMONTH est prise en charge."

#: api/serializers.py:2943
msgid "BYDAY with numeric prefix not supported."
msgstr "BYDAY avec un préfixe numérique non pris en charge."

#: api/serializers.py:2945
msgid "BYYEARDAY not supported."
msgstr "BYYEARDAY non pris en charge."

#: api/serializers.py:2947
msgid "BYWEEKNO not supported."
msgstr "BYWEEKNO non pris en charge."

#: api/serializers.py:2951
msgid "COUNT > 999 is unsupported."
msgstr "COUNT > 999 non pris en charge."

#: api/serializers.py:2955
msgid "rrule parsing failed validation."
msgstr "L'analyse rrule n'a pas pu être validée."

#: api/serializers.py:2973
msgid ""
"A summary of the new and changed values when an object is created, updated, "
"or deleted"
msgstr ""
"Un récapitulatif des valeurs nouvelles et modifiées lorsqu'un objet est "
"créé, mis à jour ou supprimé"

#: api/serializers.py:2975
msgid ""
"For create, update, and delete events this is the object type that was "
"affected. For associate and disassociate events this is the object type "
"associated or disassociated with object2."
msgstr ""
"Pour créer, mettre à jour et supprimer des événements, il s'agit du type "
"d'objet qui a été affecté. Pour associer et dissocier des événements, il "
"s'agit du type d'objet associé à ou dissocié de object2."

#: api/serializers.py:2978
msgid ""
"Unpopulated for create, update, and delete events. For associate and "
"disassociate events this is the object type that object1 is being associated"
" with."
msgstr ""
"Laisser vide pour créer, mettre à jour et supprimer des événements. Pour "
"associer et dissocier des événements, il s'agit du type d'objet auquel "
"object1 est associé."

#: api/serializers.py:2981
msgid "The action taken with respect to the given object(s)."
msgstr "Action appliquée par rapport à l'objet ou aux objets donnés."

#: api/serializers.py:3081
msgid "Unable to login with provided credentials."
msgstr "Connexion impossible avec les informations d'identification fournies."

#: api/serializers.py:3083
msgid "Must include \"username\" and \"password\"."
msgstr "Elles doivent inclure le nom d'utilisateur et le mot de passe."

#: api/views.py:96
msgid "Your license does not allow use of the activity stream."
msgstr "Votre licence ne permet pas l'utilisation du flux d'activité."

#: api/views.py:106
msgid "Your license does not permit use of system tracking."
msgstr "Votre licence ne permet pas l'utilisation du suivi du système."

#: api/views.py:116
msgid "Your license does not allow use of workflows."
msgstr "Votre licence ne permet pas l'utilisation de workflows."

#: api/views.py:124 templates/rest_framework/api.html:28
msgid "REST API"
msgstr "API REST"

#: api/views.py:131 templates/rest_framework/api.html:4
msgid "Ansible Tower REST API"
msgstr "API REST Ansible Tower"

#: api/views.py:147
msgid "Version 1"
msgstr "Version 1"

#: api/views.py:198
msgid "Ping"
msgstr "Ping"

#: api/views.py:227 conf/apps.py:12
msgid "Configuration"
msgstr "Configuration"

#: api/views.py:280
msgid "Invalid license data"
msgstr "Données de licence non valides"

#: api/views.py:282
msgid "Missing 'eula_accepted' property"
msgstr "Propriété 'eula_accepted' manquante"

#: api/views.py:286
msgid "'eula_accepted' value is invalid"
msgstr "La valeur 'eula_accepted' n'est pas valide"

#: api/views.py:289
msgid "'eula_accepted' must be True"
msgstr "La valeur 'eula_accepted' doit être True"

#: api/views.py:296
msgid "Invalid JSON"
msgstr "Syntaxe JSON non valide"

#: api/views.py:304
msgid "Invalid License"
msgstr "Licence non valide"

#: api/views.py:314
msgid "Invalid license"
msgstr "Licence non valide"

#: api/views.py:322
#, python-format
msgid "Failed to remove license (%s)"
msgstr "Suppression de la licence (%s) impossible"

#: api/views.py:327
msgid "Dashboard"
msgstr "Tableau de bord"

#: api/views.py:433
msgid "Dashboard Jobs Graphs"
msgstr "Graphiques de tâches du tableau de bord"

#: api/views.py:469
#, python-format
msgid "Unknown period \"%s\""
msgstr "Période \"%s\" inconnue"

#: api/views.py:483
msgid "Schedules"
msgstr "Calendriers"

#: api/views.py:502
msgid "Schedule Jobs List"
msgstr "Listes des tâches de planification"

#: api/views.py:711
msgid "Your Tower license only permits a single organization to exist."
msgstr "Votre licence Tower permet l'existence d'une seule organisation."

#: api/views.py:932 api/views.py:1284
msgid "Role 'id' field is missing."
msgstr "Le champ \"id\" du rôle est manquant."

#: api/views.py:938 api/views.py:4182
msgid "You cannot assign an Organization role as a child role for a Team."
msgstr ""
"Vous ne pouvez pas attribuer un rôle Organisation en tant que rôle enfant "
"pour une équipe."

#: api/views.py:942 api/views.py:4196
msgid "You cannot grant system-level permissions to a team."
msgstr ""
"Vous ne pouvez pas accorder de permissions au niveau système à une équipe."

#: api/views.py:949 api/views.py:4188
msgid ""
"You cannot grant credential access to a team when the Organization field "
"isn't set, or belongs to a different organization"
msgstr ""
"Vous ne pouvez pas accorder d'accès par informations d'identification à une "
"équipe lorsque le champ Organisation n'est pas défini ou qu'elle appartient "
"à une organisation différente"

#: api/views.py:1039
msgid "Cannot delete project."
msgstr "Suppression du projet impossible."

#: api/views.py:1068
msgid "Project Schedules"
msgstr "Calendriers des projets"

#: api/views.py:1168 api/views.py:2252 api/views.py:3225
msgid "Cannot delete job resource when associated workflow job is running."
msgstr ""
"Impossible de supprimer les ressources de tâche lorsqu'une tâche de workflow"
" associée est en cours d'exécution."

#: api/views.py:1244
msgid "Me"
msgstr "Moi-même"

#: api/views.py:1288 api/views.py:4137
msgid "You may not perform any action with your own admin_role."
msgstr "Vous ne pouvez pas effectuer d'action avec votre propre admin_role."

#: api/views.py:1294 api/views.py:4141
msgid "You may not change the membership of a users admin_role"
msgstr ""
"Vous ne pouvez pas modifier l'appartenance de l'admin_role d'un utilisateur"

#: api/views.py:1299 api/views.py:4146
msgid ""
"You cannot grant credential access to a user not in the credentials' "
"organization"
msgstr ""
"Vous ne pouvez pas accorder d'accès par informations d'identification à un "
"utilisateur ne figurant pas dans l'organisation d'informations "
"d'identification."

#: api/views.py:1303 api/views.py:4150
msgid "You cannot grant private credential access to another user"
msgstr ""
"Vous ne pouvez pas accorder d'accès privé par informations d'identification "
"à un autre utilisateur"

#: api/views.py:1401
#, python-format
msgid "Cannot change %s."
msgstr "Impossible de modifier %s."

#: api/views.py:1407
msgid "Cannot delete user."
msgstr "Impossible de supprimer l'utilisateur."

#: api/views.py:1553
msgid "Cannot delete inventory script."
msgstr "Impossible de supprimer le script d'inventaire."

#: api/views.py:1788
msgid "Fact not found."
msgstr "Fait introuvable."

#: api/views.py:2108
msgid "Inventory Source List"
msgstr "Liste des sources d'inventaire"

#: api/views.py:2136
msgid "Cannot delete inventory source."
msgstr "Impossible de supprimer la source d'inventaire."

#: api/views.py:2144
msgid "Inventory Source Schedules"
msgstr "Calendriers des sources d'inventaire"

#: api/views.py:2173
msgid "Notification Templates can only be assigned when source is one of {}."
msgstr ""
"Les modèles de notification ne peuvent être attribués que lorsque la source "
"est l'une des {}."

#: api/views.py:2380
msgid "Job Template Schedules"
msgstr "Calendriers des modèles de tâche"

#: api/views.py:2399 api/views.py:2409
msgid "Your license does not allow adding surveys."
msgstr "Votre licence ne permet pas l'ajout de questionnaires."

#: api/views.py:2416
msgid "'name' missing from survey spec."
msgstr "'name' manquant dans la spécification du questionnaire."

#: api/views.py:2418
msgid "'description' missing from survey spec."
msgstr "'description' manquante dans la spécification du questionnaire."

#: api/views.py:2420
msgid "'spec' missing from survey spec."
msgstr "'spec' manquante dans la spécification du questionnaire."

#: api/views.py:2422
msgid "'spec' must be a list of items."
msgstr "'spec' doit être une liste d'éléments"

#: api/views.py:2424
msgid "'spec' doesn't contain any items."
msgstr "'spec' ne contient aucun élément."

#: api/views.py:2429
#, python-format
msgid "Survey question %s is not a json object."
msgstr "La question %s n'est pas un objet json."

#: api/views.py:2431
#, python-format
msgid "'type' missing from survey question %s."
msgstr "'type' est manquant dans la question %s."

#: api/views.py:2433
#, python-format
msgid "'question_name' missing from survey question %s."
msgstr "'question_name' est manquant dans la question %s."

#: api/views.py:2435
#, python-format
msgid "'variable' missing from survey question %s."
msgstr "'variable' est manquant dans la question %s."

#: api/views.py:2437
#, python-format
msgid "'variable' '%(item)s' duplicated in survey question %(survey)s."
msgstr "'variable' '%(item)s' en double dans la question %(survey)s."

#: api/views.py:2442
#, python-format
msgid "'required' missing from survey question %s."
msgstr "'required' est manquant dans la question %s."

#: api/views.py:2641
msgid "No matching host could be found!"
msgstr "Aucun hôte correspondant n'a été trouvé."

#: api/views.py:2644
msgid "Multiple hosts matched the request!"
msgstr "Plusieurs hôtes correspondent à la requête."

#: api/views.py:2649
msgid "Cannot start automatically, user input required!"
msgstr ""
"Impossible de démarrer automatiquement, saisie de l'utilisateur obligatoire."

#: api/views.py:2656
msgid "Host callback job already pending."
msgstr "La tâche de rappel de l'hôte est déjà en attente."

#: api/views.py:2669
msgid "Error starting job!"
msgstr "Erreur lors du démarrage de la tâche."

#: api/views.py:2995
msgid "Workflow Job Template Schedules"
msgstr "Calendriers des modèles de tâche Workflow"

#: api/views.py:3131 api/views.py:3853
msgid "Superuser privileges needed."
msgstr "Privilèges de superutilisateur requis."

#: api/views.py:3161
msgid "System Job Template Schedules"
msgstr "Calendriers des modèles de tâche Système"

#: api/views.py:3344
msgid "Job Host Summaries List"
msgstr "Liste récapitulative des hôtes de la tâche"

#: api/views.py:3386
msgid "Job Event Children List"
msgstr "Liste des enfants d'événement de la tâche"

#: api/views.py:3395
msgid "Job Event Hosts List"
msgstr "Liste des hôtes d'événement de la tâche"

#: api/views.py:3404
msgid "Job Events List"
msgstr "Liste des événements de la tâche"

#: api/views.py:3436
msgid "Job Plays List"
msgstr "Liste des activités de lecture de la tâche"

#: api/views.py:3513
msgid "Job Play Tasks List"
msgstr "Liste des activités de lecture de la tâche"

#: api/views.py:3529
msgid "Job not found."
msgstr "Tâche introuvable."

#: api/views.py:3533
msgid "'event_id' not provided."
msgstr "'event_id' non défini."

#: api/views.py:3537
msgid "Parent event not found."
msgstr "Événement parent introuvable."

#: api/views.py:3809
msgid "Ad Hoc Command Events List"
msgstr "Liste d'événements de la commande ad hoc"

#: api/views.py:3963
#, python-format
msgid "Error generating stdout download file: %s"
msgstr "Erreur lors de la génération du fichier de téléchargement stdout : %s"

#: api/views.py:4009
msgid "Delete not allowed while there are pending notifications"
msgstr "Suppression non autorisée tant que des notifications sont en attente"

#: api/views.py:4016
msgid "NotificationTemplate Test"
msgstr "Test de modèle de notification"

#: api/views.py:4131
msgid "User 'id' field is missing."
msgstr "Le champ \"id\" de l'utilisateur est manquant."

#: api/views.py:4174
msgid "Team 'id' field is missing."
msgstr "Le champ \"id\" de l'équipe est manquant."

#: conf/conf.py:20
msgid "Bud Frogs"
msgstr "Bud Frogs"

#: conf/conf.py:21
msgid "Bunny"
msgstr "Bunny"

#: conf/conf.py:22
msgid "Cheese"
msgstr "Cheese"

#: conf/conf.py:23
msgid "Daemon"
msgstr "Daemon"

#: conf/conf.py:24
msgid "Default Cow"
msgstr "Default Cow"

#: conf/conf.py:25
msgid "Dragon"
msgstr "Dragon"

#: conf/conf.py:26
msgid "Elephant in Snake"
msgstr "Elephant in Snake"

#: conf/conf.py:27
msgid "Elephant"
msgstr "Elephant"

#: conf/conf.py:28
msgid "Eyes"
msgstr "Eyes"

#: conf/conf.py:29
msgid "Hello Kitty"
msgstr "Hello Kitty"

#: conf/conf.py:30
msgid "Kitty"
msgstr "Kitty"

#: conf/conf.py:31
msgid "Luke Koala"
msgstr "Luke Koala"

#: conf/conf.py:32
msgid "Meow"
msgstr "Meow"

#: conf/conf.py:33
msgid "Milk"
msgstr "Milk"

#: conf/conf.py:34
msgid "Moofasa"
msgstr "Moofasa"

#: conf/conf.py:35
msgid "Moose"
msgstr "Moose"

#: conf/conf.py:36
msgid "Ren"
msgstr "Ren"

#: conf/conf.py:37
msgid "Sheep"
msgstr "Sheep"

#: conf/conf.py:38
msgid "Small Cow"
msgstr "Small Cow"

#: conf/conf.py:39
msgid "Stegosaurus"
msgstr "Stegosaurus"

#: conf/conf.py:40
msgid "Stimpy"
msgstr "Stimpy"

#: conf/conf.py:41
msgid "Super Milker"
msgstr "Super Milker"

#: conf/conf.py:42
msgid "Three Eyes"
msgstr "Three Eyes"

#: conf/conf.py:43
msgid "Turkey"
msgstr "Turkey"

#: conf/conf.py:44
msgid "Turtle"
msgstr "Turtle"

#: conf/conf.py:45
msgid "Tux"
msgstr "Tux"

#: conf/conf.py:46
msgid "Udder"
msgstr "Udder"

#: conf/conf.py:47
msgid "Vader Koala"
msgstr "Vader Koala"

#: conf/conf.py:48
msgid "Vader"
msgstr "Vader"

#: conf/conf.py:49
msgid "WWW"
msgstr "WWW"

#: conf/conf.py:52
msgid "Cow Selection"
msgstr "Sélection cow"

#: conf/conf.py:53
msgid "Select which cow to use with cowsay when running jobs."
msgstr ""
"Sélectionnez quel cow utiliser avec cowsay lors de l'exécution de tâches."

#: conf/conf.py:54 conf/conf.py:75
msgid "Cows"
msgstr "Cows"

#: conf/conf.py:73
msgid "Example Read-Only Setting"
msgstr "Exemple de paramètre en lecture seule"

#: conf/conf.py:74
msgid "Example setting that cannot be changed."
msgstr "L'exemple de paramètre ne peut pas être modifié."

#: conf/conf.py:93
msgid "Example Setting"
msgstr "Exemple de paramètre"

#: conf/conf.py:94
msgid "Example setting which can be different for each user."
msgstr "Exemple de paramètre qui peut être différent pour chaque utilisateur."

#: conf/conf.py:95 conf/registry.py:67 conf/views.py:46
msgid "User"
msgstr "Utilisateur"

#: conf/fields.py:38
msgid "Enter a valid URL"
msgstr "Entez une URL valide"

#: conf/license.py:19
msgid "Your Tower license does not allow that."
msgstr "Votre licence Tower ne vous y autorise pas."

#: conf/management/commands/migrate_to_database_settings.py:41
msgid "Only show which settings would be commented/migrated."
msgstr ""
"Afficher seulement les paramètres qui pourraient être commentés/migrés."

#: conf/management/commands/migrate_to_database_settings.py:48
msgid ""
"Skip over settings that would raise an error when commenting/migrating."
msgstr ""
"Ignorer les paramètres qui pourraient provoquer une erreur lors de la saisie"
" de commentaires/de la migration."

#: conf/management/commands/migrate_to_database_settings.py:55
msgid "Skip commenting out settings in files."
msgstr "Ignorer la saisie de commentaires de paramètres dans les fichiers."

#: conf/management/commands/migrate_to_database_settings.py:61
msgid "Backup existing settings files with this suffix."
msgstr "Sauvegardez les fichiers de paramètres existants avec ce suffixe."

#: conf/registry.py:55
msgid "All"
msgstr "Tous"

#: conf/registry.py:56
msgid "Changed"
msgstr "Modifié"

#: conf/registry.py:68
msgid "User-Defaults"
msgstr "Paramètres utilisateur par défaut"

#: conf/views.py:38
msgid "Setting Categories"
msgstr "Catégories de paramètre"

#: conf/views.py:61
msgid "Setting Detail"
msgstr "Détails du paramètre"

#: main/access.py:255
#, python-format
msgid "Bad data found in related field %s."
msgstr "Données incorrectes trouvées dans le champ %s associé."

#: main/access.py:296
msgid "License is missing."
msgstr "La licence est manquante."

#: main/access.py:298
msgid "License has expired."
msgstr "La licence est arrivée à expiration."

#: main/access.py:303
#, python-format
msgid "License count of %s instances has been reached."
msgstr "Le nombre de licences d'instances %s a été atteint."

#: main/access.py:305
#, python-format
msgid "License count of %s instances has been exceeded."
msgstr "Le nombre de licences d'instances %s a été dépassé."

#: main/access.py:307
msgid "Host count exceeds available instances."
msgstr "Le nombre d'hôtes dépasse celui des instances disponibles."

#: main/access.py:311
#, python-format
msgid "Feature %s is not enabled in the active license."
msgstr "La fonctionnalité %s n'est pas activée dans la licence active."

#: main/access.py:313
msgid "Features not found in active license."
msgstr "Fonctionnalités introuvables dans la licence active."

#: main/access.py:507 main/access.py:574 main/access.py:694 main/access.py:957
#: main/access.py:1198 main/access.py:1587
msgid "Resource is being used by running jobs"
msgstr "La ressource est utilisée par des tâches en cours d'exécution"

#: main/access.py:618
msgid "Unable to change inventory on a host."
msgstr "Impossible de modifier l'inventaire sur un hôte."

#: main/access.py:630 main/access.py:675
msgid "Cannot associate two items from different inventories."
msgstr "Impossible d'associer deux éléments d'inventaires différents."

#: main/access.py:663
msgid "Unable to change inventory on a group."
msgstr "Impossible de modifier l'inventaire sur un groupe."

#: main/access.py:877
msgid "Unable to change organization on a team."
msgstr "Impossible de modifier l'organisation d'une équipe."

#: main/access.py:890
msgid "The {} role cannot be assigned to a team"
msgstr "Le rôle {} ne peut pas être attribué à une équipe"

#: main/access.py:892
msgid "The admin_role for a User cannot be assigned to a team"
msgstr "L'admin_role d'un utilisateur ne peut pas être attribué à une équipe"

#: main/apps.py:9
msgid "Main"
msgstr "Principal"

#: main/conf.py:17
msgid "Enable Activity Stream"
msgstr "Activer le flux d'activité"

#: main/conf.py:18
msgid "Enable capturing activity for the Tower activity stream."
msgstr "Activer la capture d'activités pour le flux d'activité Tower."

#: main/conf.py:19 main/conf.py:29 main/conf.py:39 main/conf.py:48
#: main/conf.py:60 main/conf.py:78 main/conf.py:103
msgid "System"
msgstr "Système"

#: main/conf.py:27
msgid "Enable Activity Stream for Inventory Sync"
msgstr "Activer le flux d'activité pour la synchronisation des inventaires"

#: main/conf.py:28
msgid ""
"Enable capturing activity for the Tower activity stream when running "
"inventory sync."
msgstr ""
"Activer la capture d'activités pour le flux d'activité Tower lors de la "
"synchronisation des inventaires."

#: main/conf.py:37
msgid "All Users Visible to Organization Admins"
msgstr ""
"Tous les utilisateurs visibles pour les administrateurs de l'organisation"

#: main/conf.py:38
msgid ""
"Controls whether any Organization Admin can view all users, even those not "
"associated with their Organization."
msgstr ""
"Contrôle si un administrateur d'organisation peut ou non afficher tous les "
"utilisateurs, même ceux qui ne sont pas associés à son organisation."

#: main/conf.py:46
msgid "Enable Tower Administrator Alerts"
msgstr "Activer les alertes administrateur de Tower"

#: main/conf.py:47
msgid ""
"Allow Tower to email Admin users for system events that may require "
"attention."
msgstr ""
"Autoriser Tower à alerter les administrateurs par email concernant des "
"événements système susceptibles de mériter leur attention."

#: main/conf.py:57
msgid "Base URL of the Tower host"
msgstr "URL de base pour l'hôte Tower"

#: main/conf.py:58
msgid ""
"This setting is used by services like notifications to render a valid url to"
" the Tower host."
msgstr ""
"Ce paramètre est utilisé par des services sous la forme de notifications "
"permettant de rendre valide une URL pour l'hôte Tower."

#: main/conf.py:67
msgid "Remote Host Headers"
msgstr "En-têtes d'hôte distant"

#: main/conf.py:68
msgid ""
"HTTP headers and meta keys to search to determine remote host name or IP. Add additional items to this list, such as \"HTTP_X_FORWARDED_FOR\", if behind a reverse proxy.\n"
"\n"
"Note: The headers will be searched in order and the first found remote host name or IP will be used.\n"
"\n"
"In the below example 8.8.8.7 would be the chosen IP address.\n"
"X-Forwarded-For: 8.8.8.7, 192.168.2.1, 127.0.0.1\n"
"Host: 127.0.0.1\n"
"REMOTE_HOST_HEADERS = ['HTTP_X_FORWARDED_FOR', 'REMOTE_ADDR', 'REMOTE_HOST']"
msgstr ""
"En-têtes HTTP et méta-clés à rechercher afin de déterminer le nom ou l'adresse IP d'un hôte distant. Ajoutez des éléments supplémentaires à cette liste, tels que \"HTTP_X_FORWARDED_FOR\", en présence d'un proxy inverse.\n"
"\n"
"Remarque : les en-têtes seront recherchés dans l'ordre, et le premier nom ou la première adresse IP d'hôte distant trouvé(e) sera utilisé(e).\n"
"\n"
"Dans l'exemple ci-dessous 8.8.8.7 est l'adresse IP choisie. \n"
"X-Forwarded-For : 8.8.8.7, 192.168.2.1, 127.0.0.1\n"
"Hôte : 127.0.0.1\n"
"REMOTE_HOST_HEADERS = ['HTTP_X_FORWARDED_FOR', 'REMOTE_ADDR', 'REMOTE_HOST']"

#: main/conf.py:99
msgid "Tower License"
msgstr "Licence Tower"

#: main/conf.py:100
msgid ""
"The license controls which features and functionality are enabled in Tower. "
"Use /api/v1/config/ to update or change the license."
msgstr ""
"La licence détermine les fonctionnalités et les fonctions qui sont activées "
"dans Tower. Utilisez /api/v1/config/ pour mettre à jour ou modifier la "
"licence."

#: main/conf.py:110
msgid "Ansible Modules Allowed for Ad Hoc Jobs"
msgstr "Modules Ansible autorisés pour des tâches ad hoc"

#: main/conf.py:111
msgid "List of modules allowed to be used by ad-hoc jobs."
msgstr "Liste des modules que des tâches ad hoc sont autorisées à utiliser."

#: main/conf.py:112 main/conf.py:121 main/conf.py:130 main/conf.py:139
#: main/conf.py:148 main/conf.py:158 main/conf.py:168 main/conf.py:178
#: main/conf.py:187 main/conf.py:199 main/conf.py:211 main/conf.py:223
msgid "Jobs"
msgstr "Tâches"

#: main/conf.py:119
msgid "Enable job isolation"
msgstr "Activer l'isolement des tâches"

#: main/conf.py:120
msgid ""
"Isolates an Ansible job from protected parts of the Tower system to prevent "
"exposing sensitive information."
msgstr ""
"Permet d'isoler une tâche Ansible des parties protégées du système Tower "
"pour éviter l'exposition d'informations sensibles."

#: main/conf.py:128
msgid "Job isolation execution path"
msgstr "Chemin d'exécution pour l'isolement des tâches"

#: main/conf.py:129
msgid ""
"Create temporary working directories for isolated jobs in this location."
msgstr ""
"Créez des répertoires de travail temporaires pour les tâches isolées à cet "
"emplacement."

#: main/conf.py:137
msgid "Paths to hide from isolated jobs"
msgstr "Chemins à dissimuler des tâches isolées"

#: main/conf.py:138
msgid "Additional paths to hide from isolated processes."
msgstr "Chemins supplémentaires à dissimuler des processus isolés."

#: main/conf.py:146
msgid "Paths to expose to isolated jobs"
msgstr "Chemins à exposer aux tâches isolées"

#: main/conf.py:147
msgid ""
"Whitelist of paths that would otherwise be hidden to expose to isolated "
"jobs."
msgstr ""
"Liste blanche des chemins qui seraient autrement dissimulés de façon à ne "
"pas être exposés aux tâches isolées."

#: main/conf.py:156
msgid "Standard Output Maximum Display Size"
msgstr "Taille d'affichage maximale pour une sortie standard"

#: main/conf.py:157
msgid ""
"Maximum Size of Standard Output in bytes to display before requiring the "
"output be downloaded."
msgstr ""
"Taille maximale d'une sortie standard en octets à afficher avant de demander"
" le téléchargement de la sortie."

#: main/conf.py:166
msgid "Job Event Standard Output Maximum Display Size"
msgstr ""
"Taille d'affichage maximale pour une sortie standard d'événement de tâche"

#: main/conf.py:167
msgid ""
"Maximum Size of Standard Output in bytes to display for a single job or ad "
"hoc command event. `stdout` will end with `…` when truncated."
msgstr ""
"Taille maximale de la sortie standard en octets à afficher pour une seule "
"tâche ou pour un seul événement de commande ad hoc. `stdout` se terminera "
"par `...` quand il sera tronqué."

#: main/conf.py:176
msgid "Maximum Scheduled Jobs"
msgstr "Nombre max. de tâches planifiées"

#: main/conf.py:177
msgid ""
"Maximum number of the same job template that can be waiting to run when "
"launching from a schedule before no more are created."
msgstr ""
"Nombre maximal du même modèle de tâche qui peut être mis en attente "
"d'exécution lors de son lancement à partir d'un calendrier, avant que "
"d'autres ne soient créés."

#: main/conf.py:185
msgid "Ansible Callback Plugins"
msgstr "Plug-ins de rappel Ansible"

#: main/conf.py:186
msgid ""
"List of paths to search for extra callback plugins to be used when running "
"jobs."
msgstr ""
"Liste des chemins servant à rechercher d'autres plug-ins de rappel qui "
"serviront lors de l'exécution de tâches."

#: main/conf.py:196
msgid "Default Job Timeout"
msgstr "Délai d'attente par défaut des tâches"

#: main/conf.py:197
msgid ""
"Maximum time to allow jobs to run. Use value of 0 to indicate that no "
"timeout should be imposed. A timeout set on an individual job template will "
"override this."
msgstr ""
"Délai maximal d'exécution des tâches. Utilisez la valeur 0 pour indiquer "
"qu'aucun délai ne doit être imposé. Un délai d'attente défini sur celui d'un"
" modèle de tâche précis écrasera cette valeur."

#: main/conf.py:208
msgid "Default Inventory Update Timeout"
msgstr "Délai d'attente par défaut pour la mise à jour d'inventaire"

#: main/conf.py:209
msgid ""
"Maximum time to allow inventory updates to run. Use value of 0 to indicate "
"that no timeout should be imposed. A timeout set on an individual inventory "
"source will override this."
msgstr ""
"Délai maximal d'exécution des mises à jour d'inventaire. Utilisez la valeur "
"0 pour indiquer qu'aucun délai ne doit être imposé. Un délai d'attente "
"défini sur celui d'une source d'inventaire précise écrasera cette valeur."

#: main/conf.py:220
msgid "Default Project Update Timeout"
msgstr "Délai d'attente par défaut pour la mise à jour de projet"

#: main/conf.py:221
msgid ""
"Maximum time to allow project updates to run. Use value of 0 to indicate "
"that no timeout should be imposed. A timeout set on an individual project "
"will override this."
msgstr ""
"Délai maximal d'exécution des mises à jour de projet. Utilisez la valeur 0 "
"pour indiquer qu'aucun délai ne doit être imposé. Un délai d'attente défini "
"sur celui d'un projet précis écrasera cette valeur."

#: main/conf.py:231
msgid "Logging Aggregator Receiving Host"
msgstr "Agrégateur de journalisation - Hôte destinataire"

#: main/conf.py:232
msgid "External host maintain a log collector to send logs to"
msgstr ""
"L'hôte externe conserve un collecteur de journaux à qui envoyer des journaux"

#: main/conf.py:233 main/conf.py:242 main/conf.py:252 main/conf.py:261
#: main/conf.py:271 main/conf.py:286 main/conf.py:297 main/conf.py:306
msgid "Logging"
msgstr "Journalisation"

#: main/conf.py:240
msgid "Logging Aggregator Receiving Port"
msgstr "Agrégateur de journalisation - Port destinataire"

#: main/conf.py:241
msgid "Port that the log collector is listening on"
msgstr "Port sur lequel le collecteur de journaux écoute"

#: main/conf.py:250
msgid "Logging Aggregator Type: Logstash, Loggly, Datadog, etc"
msgstr "Type d'agrégateur de journalisation : Logstash, Loggly, Datadog, etc"

#: main/conf.py:251
msgid "The type of log aggregator service to format messages for"
msgstr ""
"Type de service d'agrégation de journaux pour lequel mettre en forme les "
"messages"

#: main/conf.py:259
msgid "Logging Aggregator Username to Authenticate With"
msgstr ""
"Nom d'utilisateur de l'agrégateur de journalisation avec lequel "
"s'authentifier"

#: main/conf.py:260
msgid "Username for Logstash or others (basic auth)"
msgstr "Nom d'utilisateur pour Logstash ou autres (authentification de base)"

#: main/conf.py:269
msgid "Logging Aggregator Password to Authenticate With"
msgstr ""
"Mot de passe de l'agrégateur de journalisation avec lequel s'authentifier"

#: main/conf.py:270
msgid "Password for Logstash or others (basic auth)"
msgstr "Mot de passe pour Logstash ou autres (authentification de base)"

#: main/conf.py:278
msgid "Loggers to send data to the log aggregator from"
msgstr ""
"Journaliseurs à partir duquel envoyer des données à l'agrégateur de journaux"

#: main/conf.py:279
msgid ""
"List of loggers that will send HTTP logs to the collector, these can include any or all of: \n"
"activity_stream - logs duplicate to records entered in activity stream\n"
"job_events - callback data from Ansible job events\n"
"system_tracking - data generated from scan jobs\n"
"Sending generic Tower logs must be configured through local_settings.pyinstead of this mechanism."
msgstr ""
"Liste des journaliseurs qui enverront des journaux HTTP au collecteur notamment (tous les types ou certains seulement) : \n"
"activity_stream - journaux en double pour les enregistrements entrés dans le flux d'activité\n"
"job_events - données de rappel issues d'événements de tâche Ansible\n"
"system_tracking - données générées par des tâches de scan\n"
"L'envoi de journaux Tower génériques doit être configuré via local_settings.py sans l'utilisation de ce mécanisme."

#: main/conf.py:293
msgid ""
"Flag denoting to send individual messages for each fact in system tracking"
msgstr ""
"Marqueur indiquant l'envoi de messages distincts pour chaque fait dans le "
"suivi du système"

#: main/conf.py:294
msgid ""
"If not set, the data from system tracking will be sent inside of a single "
"dictionary, but if set, separate requests will be sent for each package, "
"service, etc. that is found in the scan."
msgstr ""
"Si aucun n'est défini, les données de suivi du système seront envoyées à "
"l'intérieur d'un seul dictionnaire. Si un marqueur est défini, des demandes "
"distinctes sont envoyées pour chaque paquetage, service, etc., détecté dans "
"le scan."

#: main/conf.py:304
msgid "Flag denoting whether to use the external logger system"
msgstr ""
"Marqueur indiquant s'il faut ou non utiliser le système de journalisation "
"externe"

#: main/conf.py:305
msgid ""
"If not set, only normal settings data will be used to configure loggers."
msgstr ""
"Si aucun n'est défini, seules les données de paramètres normales seront "
"utilisées pour configurer les journaliseurs."

#: main/models/activity_stream.py:22
msgid "Entity Created"
msgstr "Entité créée"

#: main/models/activity_stream.py:23
msgid "Entity Updated"
msgstr "Entité mise à jour"

#: main/models/activity_stream.py:24
msgid "Entity Deleted"
msgstr "Entité supprimée"

#: main/models/activity_stream.py:25
msgid "Entity Associated with another Entity"
msgstr "Entité associée à une autre entité"

#: main/models/activity_stream.py:26
msgid "Entity was Disassociated with another Entity"
msgstr "Entité dissociée d'une autre entité"

#: main/models/ad_hoc_commands.py:96
msgid "No valid inventory."
msgstr "Aucun inventaire valide."

#: main/models/ad_hoc_commands.py:103 main/models/jobs.py:163
msgid "You must provide a machine / SSH credential."
msgstr "Vous devez fournir des informations d'identification machine / SSH."

#: main/models/ad_hoc_commands.py:114 main/models/ad_hoc_commands.py:122
msgid "Invalid type for ad hoc command"
msgstr "Type non valide pour la commande ad hoc"

#: main/models/ad_hoc_commands.py:117
msgid "Unsupported module for ad hoc commands."
msgstr "Module non pris en charge pour les commandes ad hoc."

#: main/models/ad_hoc_commands.py:125
#, python-format
msgid "No argument passed to %s module."
msgstr "Aucun argument transmis au module %s."

#: main/models/ad_hoc_commands.py:220 main/models/jobs.py:767
msgid "Host Failed"
msgstr "Échec de l'hôte"

#: main/models/ad_hoc_commands.py:221 main/models/jobs.py:768
msgid "Host OK"
msgstr "Hôte OK"

#: main/models/ad_hoc_commands.py:222 main/models/jobs.py:771
msgid "Host Unreachable"
msgstr "Hôte inaccessible"

#: main/models/ad_hoc_commands.py:227 main/models/jobs.py:770
msgid "Host Skipped"
msgstr "Hôte ignoré"

#: main/models/ad_hoc_commands.py:237 main/models/jobs.py:798
msgid "Debug"
msgstr "Déboguer"

#: main/models/ad_hoc_commands.py:238 main/models/jobs.py:799
msgid "Verbose"
msgstr "Verbeux"

#: main/models/ad_hoc_commands.py:239 main/models/jobs.py:800
msgid "Deprecated"
msgstr "Obsolète"

#: main/models/ad_hoc_commands.py:240 main/models/jobs.py:801
msgid "Warning"
msgstr "Avertissement"

#: main/models/ad_hoc_commands.py:241 main/models/jobs.py:802
msgid "System Warning"
msgstr "Avertissement système"

#: main/models/ad_hoc_commands.py:242 main/models/jobs.py:803
#: main/models/unified_jobs.py:62
msgid "Error"
msgstr "Erreur"

#: main/models/base.py:45 main/models/base.py:51 main/models/base.py:56
msgid "Run"
msgstr "Exécuter"

#: main/models/base.py:46 main/models/base.py:52 main/models/base.py:57
msgid "Check"
msgstr "Vérifier"

#: main/models/base.py:47
msgid "Scan"
msgstr "Scanner"

#: main/models/base.py:61
msgid "Read Inventory"
msgstr "Lire l'inventaire"

#: main/models/base.py:62
msgid "Edit Inventory"
msgstr "Modifier l'inventaire"

#: main/models/base.py:63
msgid "Administrate Inventory"
msgstr "Administrer l'inventaire"

#: main/models/base.py:64
msgid "Deploy To Inventory"
msgstr "Déployer dans l'inventaire"

#: main/models/base.py:65
msgid "Deploy To Inventory (Dry Run)"
msgstr "Déployer dans l'inventaire (test uniquement)"

#: main/models/base.py:66
msgid "Scan an Inventory"
msgstr "Scanner un inventaire"

#: main/models/base.py:67
msgid "Create a Job Template"
msgstr "Créer un modèle de tâche"

#: main/models/credential.py:33
msgid "Machine"
msgstr "Machine"

#: main/models/credential.py:34
msgid "Network"
msgstr "Réseau"

#: main/models/credential.py:35
msgid "Source Control"
msgstr "Contrôle de la source"

#: main/models/credential.py:36
msgid "Amazon Web Services"
msgstr "Amazon Web Services"

#: main/models/credential.py:37
msgid "Rackspace"
msgstr "Rackspace"

#: main/models/credential.py:38 main/models/inventory.py:713
msgid "VMware vCenter"
msgstr "VMware vCenter"

#: main/models/credential.py:39 main/models/inventory.py:714
msgid "Red Hat Satellite 6"
msgstr "Red Hat Satellite 6"

#: main/models/credential.py:40 main/models/inventory.py:715
msgid "Red Hat CloudForms"
msgstr "Red Hat CloudForms"

#: main/models/credential.py:41 main/models/inventory.py:710
msgid "Google Compute Engine"
msgstr "Google Compute Engine"

#: main/models/credential.py:42 main/models/inventory.py:711
msgid "Microsoft Azure Classic (deprecated)"
msgstr "Microsoft Azure Classic (obsolète)"

#: main/models/credential.py:43 main/models/inventory.py:712
msgid "Microsoft Azure Resource Manager"
msgstr "Microsoft Azure Resource Manager"

#: main/models/credential.py:44 main/models/inventory.py:716
msgid "OpenStack"
msgstr "OpenStack"

#: main/models/credential.py:48
msgid "None"
msgstr "Aucun"

#: main/models/credential.py:49
msgid "Sudo"
msgstr "Sudo"

#: main/models/credential.py:50
msgid "Su"
msgstr "Su"

#: main/models/credential.py:51
msgid "Pbrun"
msgstr "Pbrun"

#: main/models/credential.py:52
msgid "Pfexec"
msgstr "Pfexec"

#: main/models/credential.py:101
msgid "Host"
msgstr "Hôte"

#: main/models/credential.py:102
msgid "The hostname or IP address to use."
msgstr "Nom d'hôte ou adresse IP à utiliser."

#: main/models/credential.py:108
msgid "Username"
msgstr "Nom d'utilisateur"

#: main/models/credential.py:109
msgid "Username for this credential."
msgstr "Nom d'utilisateur pour ces informations d'identification."

#: main/models/credential.py:115
msgid "Password"
msgstr "Mot de passe"

#: main/models/credential.py:116
msgid ""
"Password for this credential (or \"ASK\" to prompt the user for machine "
"credentials)."
msgstr ""
"Mot de passe pour ces informations d'identification (ou \"ASK\" pour "
"demander à l'utilisateur les informations d'identification de la machine)."

#: main/models/credential.py:123
msgid "Security Token"
msgstr "Token de sécurité"

#: main/models/credential.py:124
msgid "Security Token for this credential"
msgstr "Token de sécurité pour ces informations d'identification"

#: main/models/credential.py:130
msgid "Project"
msgstr "Projet"

#: main/models/credential.py:131
msgid "The identifier for the project."
msgstr "Identifiant du projet."

#: main/models/credential.py:137
msgid "Domain"
msgstr "Domaine"

#: main/models/credential.py:138
msgid "The identifier for the domain."
msgstr "Identifiant du domaine."

#: main/models/credential.py:143
msgid "SSH private key"
msgstr "Clé privée SSH"

#: main/models/credential.py:144
msgid "RSA or DSA private key to be used instead of password."
msgstr "Clé privée RSA ou DSA à utiliser au lieu du mot de passe."

#: main/models/credential.py:150
msgid "SSH key unlock"
msgstr "Déverrouillage de la clé SSH"

#: main/models/credential.py:151
msgid ""
"Passphrase to unlock SSH private key if encrypted (or \"ASK\" to prompt the "
"user for machine credentials)."
msgstr ""
"Phrase de passe servant à déverrouiller la clé privée SSH si elle est "
"chiffrée (ou \"ASK\" pour demander à l'utilisateur les informations "
"d'identification de la machine)."

#: main/models/credential.py:159
msgid "Privilege escalation method."
msgstr "Méthode d'élévation des privilèges."

#: main/models/credential.py:165
msgid "Privilege escalation username."
msgstr "Nom d'utilisateur pour l'élévation des privilèges"

#: main/models/credential.py:171
msgid "Password for privilege escalation method."
msgstr "Mot de passe pour la méthode d'élévation des privilèges."

#: main/models/credential.py:177
msgid "Vault password (or \"ASK\" to prompt the user)."
msgstr "Mot de passe Vault (ou \"ASK\" pour le demander à l'utilisateur)."

#: main/models/credential.py:181
msgid "Whether to use the authorize mechanism."
msgstr "Indique s'il faut ou non utiliser le mécanisme d'autorisation."

#: main/models/credential.py:187
msgid "Password used by the authorize mechanism."
msgstr "Mot de passe utilisé par le mécanisme d'autorisation."

#: main/models/credential.py:193
msgid "Client Id or Application Id for the credential"
msgstr ""
"ID du client ou de l'application pour les informations d'identification"

#: main/models/credential.py:199
msgid "Secret Token for this credential"
msgstr "Token secret pour ces informations d'identification"

#: main/models/credential.py:205
msgid "Subscription identifier for this credential"
msgstr "ID d'abonnement pour ces informations d'identification"

#: main/models/credential.py:211
msgid "Tenant identifier for this credential"
msgstr "ID de tenant pour ces informations d'identification"

#: main/models/credential.py:281
msgid "Host required for VMware credential."
msgstr "Hôte requis pour les informations d'identification VMware."

#: main/models/credential.py:283
msgid "Host required for OpenStack credential."
msgstr "Hôte requis pour les informations d'identification OpenStack."

#: main/models/credential.py:292
msgid "Access key required for AWS credential."
msgstr "Clé d'accès requise pour les informations d'identification AWS."

#: main/models/credential.py:294
msgid "Username required for Rackspace credential."
msgstr ""
"Nom d'utilisateur requis pour les informations d'identification Rackspace."

#: main/models/credential.py:297
msgid "Username required for VMware credential."
msgstr ""
"Nom d'utilisateur requis pour les informations d'identification VMware."

#: main/models/credential.py:299
msgid "Username required for OpenStack credential."
msgstr ""
"Nom d'utilisateur requis pour les informations d'identification OpenStack."

#: main/models/credential.py:305
msgid "Secret key required for AWS credential."
msgstr "Clé secrète requise pour les informations d'identification AWS."

#: main/models/credential.py:307
msgid "API key required for Rackspace credential."
msgstr "Clé API requise pour les informations d'identification Rackspace."

#: main/models/credential.py:309
msgid "Password required for VMware credential."
msgstr "Mot de passe requis pour les informations d'identification VMware."

#: main/models/credential.py:311
msgid "Password or API key required for OpenStack credential."
msgstr ""
"Mot de passe ou clé API requis(e) pour les informations d'identification "
"OpenStack."

#: main/models/credential.py:317
msgid "Project name required for OpenStack credential."
msgstr ""
"Nom de projet requis pour les informations d'identification OpenStack."

#: main/models/credential.py:344
msgid "SSH key unlock must be set when SSH key is encrypted."
msgstr ""
"Le déverrouillage de la clé SSH doit être défini lorsque la clé SSH est "
"chiffrée."

#: main/models/credential.py:350
msgid "Credential cannot be assigned to both a user and team."
msgstr ""
"Les informations d'identification ne peuvent pas être attribuées à la fois à"
" un utilisateur et une équipe."

#: main/models/fact.py:21
msgid "Host for the facts that the fact scan captured."
msgstr "Hôte pour les faits que le scan de faits a capturés."

#: main/models/fact.py:26
msgid "Date and time of the corresponding fact scan gathering time."
msgstr ""
"Date et heure du scan de faits correspondant au moment de la collecte des "
"faits."

#: main/models/fact.py:29
msgid ""
"Arbitrary JSON structure of module facts captured at timestamp for a single "
"host."
msgstr ""
"Structure JSON arbitraire des faits de module capturés au moment de "
"l'horodatage pour un seul hôte."

#: main/models/inventory.py:45
msgid "inventories"
msgstr "inventaires"

#: main/models/inventory.py:52
msgid "Organization containing this inventory."
msgstr "Organisation contenant cet inventaire."

#: main/models/inventory.py:58
msgid "Inventory variables in JSON or YAML format."
msgstr "Variables d'inventaire au format JSON ou YAML."

#: main/models/inventory.py:63
msgid "Flag indicating whether any hosts in this inventory have failed."
msgstr "Marqueur indiquant si les hôtes de cet inventaire ont échoué."

#: main/models/inventory.py:68
msgid "Total number of hosts in this inventory."
msgstr "Nombre total d'hôtes dans cet inventaire."

#: main/models/inventory.py:73
msgid "Number of hosts in this inventory with active failures."
msgstr "Nombre d'hôtes dans cet inventaire avec des échecs non résolus."

#: main/models/inventory.py:78
msgid "Total number of groups in this inventory."
msgstr "Nombre total de groupes dans cet inventaire."

#: main/models/inventory.py:83
msgid "Number of groups in this inventory with active failures."
msgstr "Nombre de groupes dans cet inventaire avec des échecs non résolus."

#: main/models/inventory.py:88
msgid ""
"Flag indicating whether this inventory has any external inventory sources."
msgstr ""
"Marqueur indiquant si cet inventaire contient des sources d'inventaire "
"externes."

#: main/models/inventory.py:93
msgid ""
"Total number of external inventory sources configured within this inventory."
msgstr ""
"Nombre total de sources d'inventaire externes configurées dans cet "
"inventaire."

#: main/models/inventory.py:98
msgid "Number of external inventory sources in this inventory with failures."
msgstr ""
"Nombre total de sources d'inventaire externes en échec dans cet inventaire."

#: main/models/inventory.py:339
msgid "Is this host online and available for running jobs?"
msgstr "Cet hôte est-il en ligne et disponible pour exécuter des tâches ?"

#: main/models/inventory.py:345
msgid ""
"The value used by the remote inventory source to uniquely identify the host"
msgstr ""
"Valeur utilisée par la source d'inventaire distante pour identifier l'hôte "
"de façon unique"

#: main/models/inventory.py:350
msgid "Host variables in JSON or YAML format."
msgstr "Variables d'hôte au format JSON ou YAML."

#: main/models/inventory.py:372
msgid "Flag indicating whether the last job failed for this host."
msgstr "Marqueur indiquant si la dernière tâche a échoué pour cet hôte."

#: main/models/inventory.py:377
msgid ""
"Flag indicating whether this host was created/updated from any external "
"inventory sources."
msgstr ""
"Marqueur indiquant si cet hôte a été créé/mis à jour à partir de sources "
"d'inventaire externes."

#: main/models/inventory.py:383
msgid "Inventory source(s) that created or modified this host."
msgstr "Sources d'inventaire qui ont créé ou modifié cet hôte."

#: main/models/inventory.py:474
msgid "Group variables in JSON or YAML format."
msgstr "Variables de groupe au format JSON ou YAML."

#: main/models/inventory.py:480
msgid "Hosts associated directly with this group."
msgstr "Hôtes associés directement à ce groupe."

#: main/models/inventory.py:485
msgid "Total number of hosts directly or indirectly in this group."
msgstr ""
"Nombre total d'hôtes associés directement ou indirectement à ce groupe."

#: main/models/inventory.py:490
msgid "Flag indicating whether this group has any hosts with active failures."
msgstr ""
"Marqueur indiquant si ce groupe possède ou non des hôtes avec des échecs non"
" résolus."

#: main/models/inventory.py:495
msgid "Number of hosts in this group with active failures."
msgstr "Nombre d'hôtes dans ce groupe avec des échecs non résolus."

#: main/models/inventory.py:500
msgid "Total number of child groups contained within this group."
msgstr "Nombre total de groupes enfants compris dans ce groupe."

#: main/models/inventory.py:505
msgid "Number of child groups within this group that have active failures."
msgstr "Nombre de groupes enfants dans ce groupe avec des échecs non résolus."

#: main/models/inventory.py:510
msgid ""
"Flag indicating whether this group was created/updated from any external "
"inventory sources."
msgstr ""
"Marqueur indiquant si ce groupe a été créé/mis à jour à partir de sources "
"d'inventaire externes."

#: main/models/inventory.py:516
msgid "Inventory source(s) that created or modified this group."
msgstr "Sources d'inventaire qui ont créé ou modifié ce groupe."

#: main/models/inventory.py:706 main/models/projects.py:42
#: main/models/unified_jobs.py:386
msgid "Manual"
msgstr "Manuel"

#: main/models/inventory.py:707
msgid "Local File, Directory or Script"
msgstr "Fichier local, répertoire ou script"

#: main/models/inventory.py:708
msgid "Rackspace Cloud Servers"
msgstr "Serveurs cloud Rackspace"

#: main/models/inventory.py:709
msgid "Amazon EC2"
msgstr "Amazon EC2"

#: main/models/inventory.py:717
msgid "Custom Script"
msgstr "Script personnalisé"

#: main/models/inventory.py:828
msgid "Inventory source variables in YAML or JSON format."
msgstr "Variables de source d'inventaire au format JSON ou YAML."

#: main/models/inventory.py:847
msgid ""
"Comma-separated list of filter expressions (EC2 only). Hosts are imported "
"when ANY of the filters match."
msgstr ""
"Liste d'expressions de filtre séparées par des virgules (EC2 uniquement). "
"Les hôtes sont importés lorsque l'UN des filtres correspondent."

#: main/models/inventory.py:853
msgid "Limit groups automatically created from inventory source (EC2 only)."
msgstr ""
"Limiter automatiquement les groupes créés à partir de la source d'inventaire"
" (EC2 uniquement)."

#: main/models/inventory.py:857
msgid "Overwrite local groups and hosts from remote inventory source."
msgstr ""
"Écraser les groupes locaux et les hôtes de la source d'inventaire distante."

#: main/models/inventory.py:861
msgid "Overwrite local variables from remote inventory source."
msgstr "Écraser les variables locales de la source d'inventaire distante."

#: main/models/inventory.py:893
msgid "Availability Zone"
msgstr "Zone de disponibilité"

#: main/models/inventory.py:894
msgid "Image ID"
msgstr "ID d'image"

#: main/models/inventory.py:895
msgid "Instance ID"
msgstr "ID d'instance"

#: main/models/inventory.py:896
msgid "Instance Type"
msgstr "Type d'instance"

#: main/models/inventory.py:897
msgid "Key Name"
msgstr "Nom de la clé"

#: main/models/inventory.py:898
msgid "Region"
msgstr "Région"

#: main/models/inventory.py:899
msgid "Security Group"
msgstr "Groupe de sécurité"

#: main/models/inventory.py:900
msgid "Tags"
msgstr "Balises"

#: main/models/inventory.py:901
msgid "VPC ID"
msgstr "ID VPC"

#: main/models/inventory.py:902
msgid "Tag None"
msgstr "Ne rien baliser"

#: main/models/inventory.py:973
#, python-format
msgid ""
"Cloud-based inventory sources (such as %s) require credentials for the "
"matching cloud service."
msgstr ""
"Les sources d'inventaire cloud (telles que% s) requièrent des informations "
"d'identification pour le service cloud correspondant."

#: main/models/inventory.py:980
msgid "Credential is required for a cloud source."
msgstr ""
"Les informations d'identification sont requises pour une source cloud."

#: main/models/inventory.py:1005
#, python-format
msgid "Invalid %(source)s region%(plural)s: %(region)s"
msgstr "Région %(source)s non valide%(plural)s : %(region)s"

#: main/models/inventory.py:1031
#, python-format
msgid "Invalid filter expression%(plural)s: %(filter)s"
msgstr "Expression de filtre non valide %(plural)s : %(filter)s"

#: main/models/inventory.py:1050
#, python-format
msgid "Invalid group by choice%(plural)s: %(choice)s"
msgstr "Choix de regroupement non valide %(plural)s : %(choice)s"

#: main/models/inventory.py:1198
#, python-format
msgid ""
"Unable to configure this item for cloud sync. It is already managed by %s."
msgstr ""
"Impossible de configurer cet élément pour la synchronisation dans le cloud. "
"Il est déjà géré par %s."

#: main/models/inventory.py:1293
msgid "Inventory script contents"
msgstr "Contenus des scripts d'inventaire"

#: main/models/inventory.py:1298
msgid "Organization owning this inventory script"
msgstr "Organisation propriétaire de ce script d'inventaire."

#: main/models/jobs.py:171
msgid "You must provide a network credential."
msgstr "Vous devez fournir des informations d'identification réseau."

#: main/models/jobs.py:179
msgid ""
"Must provide a credential for a cloud provider, such as Amazon Web Services "
"or Rackspace."
msgstr ""
"Entrez les informations d'identification d'un fournisseur de services cloud "
"comme Amazon Web Services ou Rackspace."

#: main/models/jobs.py:271
msgid "Job Template must provide 'inventory' or allow prompting for it."
msgstr ""
"Le modèle de tâche doit fournir un inventaire ou permettre d'en demander un."

#: main/models/jobs.py:275
msgid "Job Template must provide 'credential' or allow prompting for it."
msgstr ""
"Le modèle de tâche doit fournir des informations d'identification ou "
"permettre d'en demander."

#: main/models/jobs.py:364
msgid "Cannot override job_type to or from a scan job."
msgstr "Impossible de remplacer job_type vers ou depuis une tâche de scan."

#: main/models/jobs.py:367
msgid "Inventory cannot be changed at runtime for scan jobs."
msgstr ""
"L'inventaire ne peut pas être modifié à l'exécution pour les tâches de scan."

#: main/models/jobs.py:433 main/models/projects.py:243
msgid "SCM Revision"
msgstr "Révision SCM"

#: main/models/jobs.py:434
msgid "The SCM Revision from the Project used for this job, if available"
msgstr "Révision SCM du projet utilisé pour cette tâche, le cas échéant"

#: main/models/jobs.py:442
msgid ""
"The SCM Refresh task used to make sure the playbooks were available for the "
"job run"
msgstr ""
"Activité d'actualisation du SCM qui permet de s'assurer que les playbooks "
"étaient disponibles pour l'exécution de la tâche"

#: main/models/jobs.py:666
msgid "job host summaries"
msgstr "récapitulatifs des hôtes pour la tâche"

#: main/models/jobs.py:769
msgid "Host Failure"
msgstr "Échec de l'hôte"

#: main/models/jobs.py:772 main/models/jobs.py:786
msgid "No Hosts Remaining"
msgstr "Aucun hôte restant"

#: main/models/jobs.py:773
msgid "Host Polling"
msgstr "Interrogation de l'hôte"

#: main/models/jobs.py:774
msgid "Host Async OK"
msgstr "Désynchronisation des hôtes OK"

#: main/models/jobs.py:775
msgid "Host Async Failure"
msgstr "Échec de désynchronisation des hôtes"

#: main/models/jobs.py:776
msgid "Item OK"
msgstr "Élément OK"

#: main/models/jobs.py:777
msgid "Item Failed"
msgstr "Échec de l'élément"

#: main/models/jobs.py:778
msgid "Item Skipped"
msgstr "Élément ignoré"

#: main/models/jobs.py:779
msgid "Host Retry"
msgstr "Nouvel essai de l'hôte"

#: main/models/jobs.py:781
msgid "File Difference"
msgstr "Écart entre les fichiers"

#: main/models/jobs.py:782
msgid "Playbook Started"
msgstr "Playbook démarré"

#: main/models/jobs.py:783
msgid "Running Handlers"
msgstr "Descripteurs d'exécution"

#: main/models/jobs.py:784
msgid "Including File"
msgstr "Ajout de fichier"

#: main/models/jobs.py:785
msgid "No Hosts Matched"
msgstr "Aucun hôte correspondant"

#: main/models/jobs.py:787
msgid "Task Started"
msgstr "Tâche démarrée"

#: main/models/jobs.py:789
msgid "Variables Prompted"
msgstr "Variables demandées"

#: main/models/jobs.py:790
msgid "Gathering Facts"
msgstr "Collecte des faits"

#: main/models/jobs.py:791
msgid "internal: on Import for Host"
msgstr "interne : à l'importation pour l'hôte"

#: main/models/jobs.py:792
msgid "internal: on Not Import for Host"
msgstr "interne : à la non-importation pour l'hôte"

#: main/models/jobs.py:793
msgid "Play Started"
msgstr "Scène démarrée"

#: main/models/jobs.py:794
msgid "Playbook Complete"
msgstr "Playbook terminé"

#: main/models/jobs.py:1240
msgid "Remove jobs older than a certain number of days"
msgstr "Supprimer les tâches plus anciennes qu'un certain nombre de jours"

#: main/models/jobs.py:1241
msgid "Remove activity stream entries older than a certain number of days"
msgstr ""
"Supprimer les entrées du flux d'activité plus anciennes qu'un certain nombre"
" de jours"

#: main/models/jobs.py:1242
msgid "Purge and/or reduce the granularity of system tracking data"
msgstr "Purger et/ou réduire la granularité des données de suivi du système"

#: main/models/label.py:29
msgid "Organization this label belongs to."
msgstr "Organisation à laquelle appartient ce libellé."

#: main/models/notifications.py:31
msgid "Email"
msgstr "Email"

#: main/models/notifications.py:32
msgid "Slack"
msgstr "Slack"

#: main/models/notifications.py:33
msgid "Twilio"
msgstr "Twilio"

#: main/models/notifications.py:34
msgid "Pagerduty"
msgstr "Pagerduty"

#: main/models/notifications.py:35
msgid "HipChat"
msgstr "HipChat"

#: main/models/notifications.py:36
msgid "Webhook"
msgstr "Webhook"

#: main/models/notifications.py:37
msgid "IRC"
msgstr "IRC"

#: main/models/notifications.py:127 main/models/unified_jobs.py:57
msgid "Pending"
msgstr "En attente"

#: main/models/notifications.py:128 main/models/unified_jobs.py:60
msgid "Successful"
msgstr "Réussi"

#: main/models/notifications.py:129 main/models/unified_jobs.py:61
msgid "Failed"
msgstr "Échec"

#: main/models/organization.py:157
msgid "Execute Commands on the Inventory"
msgstr "Exécuter des commandes sur l'inventaire"

#: main/models/organization.py:211
msgid "Token not invalidated"
msgstr "Token non invalidé"

#: main/models/organization.py:212
msgid "Token is expired"
msgstr "Token arrivé à expiration"

#: main/models/organization.py:213
msgid "Maximum per-user sessions reached"
msgstr "Nombre maximum de sessions par utilisateur atteint."

#: main/models/organization.py:216
msgid "Invalid token"
msgstr "Token non valide"

#: main/models/organization.py:233
msgid "Reason the auth token was invalidated."
msgstr ""
"Raison pour laquelle le token d'authentification a été rendu non valide."

#: main/models/organization.py:272
msgid "Invalid reason specified"
msgstr "Raison de non validité spécifiée"

#: main/models/projects.py:43
msgid "Git"
msgstr "Git"

#: main/models/projects.py:44
msgid "Mercurial"
msgstr "Mercurial"

#: main/models/projects.py:45
msgid "Subversion"
msgstr "Subversion"

#: main/models/projects.py:71
msgid ""
"Local path (relative to PROJECTS_ROOT) containing playbooks and related "
"files for this project."
msgstr ""
"Chemin local (relatif à PROJECTS_ROOT) contenant des playbooks et des "
"fichiers associés pour ce projet."

#: main/models/projects.py:80
msgid "SCM Type"
msgstr "Type de SCM"

#: main/models/projects.py:81
msgid "Specifies the source control system used to store the project."
msgstr ""
"Spécifie le système de contrôle des sources utilisé pour stocker le projet."

#: main/models/projects.py:87
msgid "SCM URL"
msgstr "URL du SCM"

#: main/models/projects.py:88
msgid "The location where the project is stored."
msgstr "Emplacement où le projet est stocké."

#: main/models/projects.py:94
msgid "SCM Branch"
msgstr "Branche SCM"

#: main/models/projects.py:95
msgid "Specific branch, tag or commit to checkout."
msgstr "Branche, balise ou validation spécifique à valider."

#: main/models/projects.py:99
msgid "Discard any local changes before syncing the project."
msgstr "Ignorez les modifications locales avant de synchroniser le projet."

#: main/models/projects.py:103
msgid "Delete the project before syncing."
msgstr "Supprimez le projet avant la synchronisation."

#: main/models/projects.py:116
msgid "The amount of time to run before the task is canceled."
msgstr "Délai écoulé avant que la tâche ne soit annulée."

#: main/models/projects.py:130
msgid "Invalid SCM URL."
msgstr "URL du SCM incorrecte."

#: main/models/projects.py:133
msgid "SCM URL is required."
msgstr "L'URL du SCM est requise."

#: main/models/projects.py:142
msgid "Credential kind must be 'scm'."
msgstr "Le type d'informations d'identification doit être 'scm'."

#: main/models/projects.py:157
msgid "Invalid credential."
msgstr "Informations d'identification non valides."

#: main/models/projects.py:229
msgid "Update the project when a job is launched that uses the project."
msgstr "Mettez à jour le projet lorsqu'une tâche qui l'utilise est lancée."

#: main/models/projects.py:234
msgid ""
"The number of seconds after the last project update ran that a newproject "
"update will be launched as a job dependency."
msgstr ""
"Délai écoulé (en secondes) entre la dernière mise à jour du projet et le "
"lancement d'une nouvelle mise à jour en tant que dépendance de la tâche."

#: main/models/projects.py:244
msgid "The last revision fetched by a project update"
msgstr "Dernière révision récupérée par une mise à jour du projet"

#: main/models/projects.py:251
msgid "Playbook Files"
msgstr "Fichiers de playbook"

#: main/models/projects.py:252
msgid "List of playbooks found in the project"
msgstr "Liste des playbooks trouvés dans le projet"

#: main/models/rbac.py:122
msgid "roles"
msgstr "rôles"

#: main/models/rbac.py:438
msgid "role_ancestors"
msgstr "role_ancestors"

#: main/models/schedules.py:69
msgid "Enables processing of this schedule by Tower."
msgstr "Active le traitement de ce calendrier par Tower."

#: main/models/schedules.py:75
msgid "The first occurrence of the schedule occurs on or after this time."
msgstr ""
"La première occurrence du calendrier se produit à ce moment précis ou "
"ultérieurement."

#: main/models/schedules.py:81
msgid ""
"The last occurrence of the schedule occurs before this time, aftewards the "
"schedule expires."
msgstr ""
"La dernière occurrence du calendrier se produit avant ce moment précis. "
"Passé ce délai, le calendrier arrive à expiration."

#: main/models/schedules.py:85
msgid "A value representing the schedules iCal recurrence rule."
msgstr "Valeur représentant la règle de récurrence iCal des calendriers."

#: main/models/schedules.py:91
msgid "The next time that the scheduled action will run."
msgstr "La prochaine fois que l'action planifiée s'exécutera."

#: main/models/unified_jobs.py:56
msgid "New"
msgstr "Nouveau"

#: main/models/unified_jobs.py:58
msgid "Waiting"
msgstr "En attente"

#: main/models/unified_jobs.py:59
msgid "Running"
msgstr "En cours d'exécution"

#: main/models/unified_jobs.py:63
msgid "Canceled"
msgstr "Annulé"

#: main/models/unified_jobs.py:67
msgid "Never Updated"
msgstr "Jamais mis à jour"

#: main/models/unified_jobs.py:71 ui/templates/ui/index.html:85
#: ui/templates/ui/index.html.py:104
msgid "OK"
msgstr "OK"

#: main/models/unified_jobs.py:72
msgid "Missing"
msgstr "Manquant"

#: main/models/unified_jobs.py:76
msgid "No External Source"
msgstr "Aucune source externe"

#: main/models/unified_jobs.py:83
msgid "Updating"
msgstr "Mise à jour en cours"

#: main/models/unified_jobs.py:387
msgid "Relaunch"
msgstr "Relancer"

#: main/models/unified_jobs.py:388
msgid "Callback"
msgstr "Rappeler"

#: main/models/unified_jobs.py:389
msgid "Scheduled"
msgstr "Planifié"

#: main/models/unified_jobs.py:390
msgid "Dependency"
msgstr "Dépendance"

#: main/models/unified_jobs.py:391
msgid "Workflow"
msgstr "Workflow"

#: main/models/unified_jobs.py:437
msgid "The Tower node the job executed on."
msgstr "Nœud Tower sur lequel la tâche s'est exécutée."

#: main/models/unified_jobs.py:463
msgid "The date and time the job was queued for starting."
msgstr ""
"Date et heure auxquelles la tâche a été mise en file d'attente pour le "
"démarrage."

#: main/models/unified_jobs.py:469
msgid "The date and time the job finished execution."
msgstr "Date et heure de fin d'exécution de la tâche."

#: main/models/unified_jobs.py:475
msgid "Elapsed time in seconds that the job ran."
msgstr "Délai écoulé (en secondes) pendant lequel la tâche s'est exécutée."

#: main/models/unified_jobs.py:497
msgid ""
"A status field to indicate the state of the job if it wasn't able to run and"
" capture stdout"
msgstr ""
"Champ d'état indiquant l'état de la tâche si elle n'a pas pu s'exécuter et "
"capturer stdout"

#: main/notifications/base.py:17 main/notifications/email_backend.py:28
msgid ""
"{} #{} had status {} on Ansible Tower, view details at {}\n"
"\n"
msgstr ""
"{} #{} était à l'état {} sur Ansible Tower, voir les détails sur {}\n"
"\n"

#: main/notifications/hipchat_backend.py:46
msgid "Error sending messages: {}"
msgstr "Erreur lors de l'envoi de messages : {}"

#: main/notifications/hipchat_backend.py:48
msgid "Error sending message to hipchat: {}"
msgstr "Erreur lors de l'envoi d'un message à hipchat : {}"

#: main/notifications/irc_backend.py:54
msgid "Exception connecting to irc server: {}"
msgstr "Exception lors de la connexion au serveur irc : {}"

#: main/notifications/pagerduty_backend.py:39
msgid "Exception connecting to PagerDuty: {}"
msgstr "Exception lors de la connexion à PagerDuty : {}"

#: main/notifications/pagerduty_backend.py:48
#: main/notifications/slack_backend.py:52
#: main/notifications/twilio_backend.py:46
msgid "Exception sending messages: {}"
msgstr "Exception lors de l'envoi de messages : {}"

#: main/notifications/twilio_backend.py:36
msgid "Exception connecting to Twilio: {}"
msgstr "Exception lors de la connexion à Twilio : {}"

#: main/notifications/webhook_backend.py:38
#: main/notifications/webhook_backend.py:40
msgid "Error sending notification webhook: {}"
msgstr "Erreur lors de l'envoi d'un webhook de notification : {}"

#: main/tasks.py:139
msgid "Ansible Tower host usage over 90%"
msgstr "Utilisation d'hôtes Ansible Tower supérieure à 90 %"

#: main/tasks.py:144
msgid "Ansible Tower license will expire soon"
msgstr "La licence Ansible Tower expirera bientôt"

#: main/tasks.py:197
msgid "status_str must be either succeeded or failed"
msgstr "status_str doit être une réussite ou un échec"

#: main/utils/common.py:88
#, python-format
msgid "Unable to convert \"%s\" to boolean"
msgstr "Impossible de convertir \"% s\" en booléen"

#: main/utils/common.py:242
#, python-format
msgid "Unsupported SCM type \"%s\""
msgstr "Type de SCM \"%s\" non pris en charge"

#: main/utils/common.py:249 main/utils/common.py:261 main/utils/common.py:280
#, python-format
msgid "Invalid %s URL"
msgstr "URL %s non valide."

#: main/utils/common.py:251 main/utils/common.py:289
#, python-format
msgid "Unsupported %s URL"
msgstr "URL %s non prise en charge"

#: main/utils/common.py:291
#, python-format
msgid "Unsupported host \"%s\" for file:// URL"
msgstr "Hôte \"%s\" non pris en charge pour le fichier ://URL"

#: main/utils/common.py:293
#, python-format
msgid "Host is required for %s URL"
msgstr "L'hôte est requis pour l'URL %s"

#: main/utils/common.py:311
#, python-format
msgid "Username must be \"git\" for SSH access to %s."
msgstr "Le nom d'utilisateur doit être \"git\" pour l'accès SSH à %s."

#: main/utils/common.py:317
#, python-format
msgid "Username must be \"hg\" for SSH access to %s."
msgstr "Le nom d'utilisateur doit être \"hg\" pour l'accès SSH à %s."

#: main/validators.py:60
#, python-format
msgid "Invalid certificate or key: %r..."
msgstr "Certificat ou clé non valide : %r..."

#: main/validators.py:74
#, python-format
msgid "Invalid private key: unsupported type \"%s\""
msgstr "Clé privée non valide : type \"%s\" non pris en charge"

#: main/validators.py:78
#, python-format
msgid "Unsupported PEM object type: \"%s\""
msgstr "Type d'objet PEM non pris en charge : \"%s\""

#: main/validators.py:103
msgid "Invalid base64-encoded data"
msgstr "Données codées en base64 non valides"

#: main/validators.py:122
msgid "Exactly one private key is required."
msgstr "Une clé privée uniquement est nécessaire."

#: main/validators.py:124
msgid "At least one private key is required."
msgstr "Une clé privée au moins est nécessaire."

#: main/validators.py:126
#, python-format
msgid ""
"At least %(min_keys)d private keys are required, only %(key_count)d "
"provided."
msgstr ""
"%(min_keys)d clés privées au moins sont requises, mais %(key_count)d "
"uniquement ont été fournies."

#: main/validators.py:129
#, python-format
msgid "Only one private key is allowed, %(key_count)d provided."
msgstr "Une seule clé privée est autorisée, %(key_count)d ont été fournies."

#: main/validators.py:131
#, python-format
msgid ""
"No more than %(max_keys)d private keys are allowed, %(key_count)d provided."
msgstr ""
"Pas plus de %(max_keys)d clés privées sont autorisées, %(key_count)d ont été"
" fournies."

#: main/validators.py:136
msgid "Exactly one certificate is required."
msgstr "Un certificat uniquement est nécessaire."

#: main/validators.py:138
msgid "At least one certificate is required."
msgstr "Un certificat au moins est nécessaire."

#: main/validators.py:140
#, python-format
msgid ""
"At least %(min_certs)d certificates are required, only %(cert_count)d "
"provided."
msgstr ""
"%(min_certs)d certificats au moins sont requis, mais %(cert_count)d "
"uniquement ont été fournis."

#: main/validators.py:143
#, python-format
msgid "Only one certificate is allowed, %(cert_count)d provided."
msgstr "Un seul certificat est autorisé, %(cert_count)d ont été fournis."

#: main/validators.py:145
#, python-format
msgid ""
"No more than %(max_certs)d certificates are allowed, %(cert_count)d "
"provided."
msgstr ""
"Pas plus de %(max_certs)d certificats sont autorisés, %(cert_count)d ont été"
" fournis."

#: main/views.py:20
msgid "API Error"
msgstr "Erreur API"

#: main/views.py:49
msgid "Bad Request"
msgstr "Requête incorrecte"

#: main/views.py:50
msgid "The request could not be understood by the server."
msgstr "La requête n'a pas pu être comprise par le serveur."

#: main/views.py:57
msgid "Forbidden"
msgstr "Interdiction"

#: main/views.py:58
msgid "You don't have permission to access the requested resource."
msgstr "Vous n'êtes pas autorisé à accéder à la ressource demandée."

#: main/views.py:65
msgid "Not Found"
msgstr "Introuvable"

#: main/views.py:66
msgid "The requested resource could not be found."
msgstr "Impossible de trouver la ressource demandée."

#: main/views.py:73
msgid "Server Error"
msgstr "Erreur serveur"

#: main/views.py:74
msgid "A server error has occurred."
msgstr "Une erreur serveur s'est produite."

#: settings/defaults.py:600
msgid "Chicago"
msgstr "Chicago"

#: settings/defaults.py:601
msgid "Dallas/Ft. Worth"
msgstr "Dallas/Ft. Worth"

#: settings/defaults.py:602
msgid "Northern Virginia"
msgstr "Virginie du Nord"

#: settings/defaults.py:603
msgid "London"
msgstr "Londres"

#: settings/defaults.py:604
msgid "Sydney"
msgstr "Sydney"

#: settings/defaults.py:605
msgid "Hong Kong"
msgstr "Hong Kong"

#: settings/defaults.py:632
msgid "US East (Northern Virginia)"
msgstr "Est des États-Unis (Virginie du Nord)"

#: settings/defaults.py:633
msgid "US East (Ohio)"
msgstr "Est des États-Unis (Ohio)"

#: settings/defaults.py:634
msgid "US West (Oregon)"
msgstr "Ouest des États-Unis (Oregon)"

#: settings/defaults.py:635
msgid "US West (Northern California)"
msgstr "Ouest des États-Unis (Nord de la Californie)"

#: settings/defaults.py:636
msgid "EU (Frankfurt)"
msgstr "UE (Francfort)"

#: settings/defaults.py:637
msgid "EU (Ireland)"
msgstr "UE (Irlande)"

#: settings/defaults.py:638
msgid "Asia Pacific (Singapore)"
msgstr "Asie-Pacifique (Singapour)"

#: settings/defaults.py:639
msgid "Asia Pacific (Sydney)"
msgstr "Asie-Pacifique (Sydney)"

#: settings/defaults.py:640
msgid "Asia Pacific (Tokyo)"
msgstr "Asie-Pacifique (Tokyo)"

#: settings/defaults.py:641
msgid "Asia Pacific (Seoul)"
msgstr "Asie-Pacifique (Séoul)"

#: settings/defaults.py:642
msgid "Asia Pacific (Mumbai)"
msgstr "Asie-Pacifique (Mumbai)"

#: settings/defaults.py:643
msgid "South America (Sao Paulo)"
msgstr "Amérique du Sud (Sao Paulo)"

#: settings/defaults.py:644
msgid "US West (GovCloud)"
msgstr "Ouest des États-Unis (GovCloud)"

#: settings/defaults.py:645
msgid "China (Beijing)"
msgstr "Chine (Pékin)"

#: settings/defaults.py:694
msgid "US East (B)"
msgstr "Est des États-Unis (B)"

#: settings/defaults.py:695
msgid "US East (C)"
msgstr "Est des États-Unis (C)"

#: settings/defaults.py:696
msgid "US East (D)"
msgstr "Est des États-Unis (D)"

#: settings/defaults.py:697
msgid "US Central (A)"
msgstr "Centre des États-Unis (A)"

#: settings/defaults.py:698
msgid "US Central (B)"
msgstr "Centre des États-Unis (B)"

#: settings/defaults.py:699
msgid "US Central (C)"
msgstr "Centre des États-Unis (C)"

#: settings/defaults.py:700
msgid "US Central (F)"
msgstr "Centre des États-Unis (F)"

#: settings/defaults.py:701
msgid "Europe West (B)"
msgstr "Europe de l'Ouest (B)"

#: settings/defaults.py:702
msgid "Europe West (C)"
msgstr "Europe de l'Ouest (C)"

#: settings/defaults.py:703
msgid "Europe West (D)"
msgstr "Europe de l'Ouest (D)"

#: settings/defaults.py:704
msgid "Asia East (A)"
msgstr "Asie de l'Est (A)"

#: settings/defaults.py:705
msgid "Asia East (B)"
msgstr "Asie de l'Est (B)"

#: settings/defaults.py:706
msgid "Asia East (C)"
msgstr "Asie de l'Est (C)"

#: settings/defaults.py:730
msgid "US Central"
msgstr "Centre des États-Unis"

#: settings/defaults.py:731
msgid "US East"
msgstr "Est des États-Unis"

#: settings/defaults.py:732
msgid "US East 2"
msgstr "Est des États-Unis 2"

#: settings/defaults.py:733
msgid "US North Central"
msgstr "Centre-Nord des États-Unis"

#: settings/defaults.py:734
msgid "US South Central"
msgstr "Centre-Sud des États-Unis"

#: settings/defaults.py:735
msgid "US West"
msgstr "Ouest des États-Unis"

#: settings/defaults.py:736
msgid "Europe North"
msgstr "Europe du Nord"

#: settings/defaults.py:737
msgid "Europe West"
msgstr "Europe de l'Ouest"

#: settings/defaults.py:738
msgid "Asia Pacific East"
msgstr "Asie-Pacifique Est"

#: settings/defaults.py:739
msgid "Asia Pacific Southeast"
msgstr "Asie-Pacifique Sud-Est"

#: settings/defaults.py:740
msgid "Japan East"
msgstr "Est du Japon"

#: settings/defaults.py:741
msgid "Japan West"
msgstr "Ouest du Japon"

#: settings/defaults.py:742
msgid "Brazil South"
msgstr "Sud du Brésil"

#: sso/apps.py:9
msgid "Single Sign-On"
msgstr "Single Sign-On"

#: sso/conf.py:27
msgid ""
"Mapping to organization admins/users from social auth accounts. This setting\n"
"controls which users are placed into which Tower organizations based on\n"
"their username and email address.  Dictionary keys are organization names.\n"
"organizations will be created if not present if the license allows for\n"
"multiple organizations, otherwise the single default organization is used\n"
"regardless of the key.  Values are dictionaries defining the options for\n"
"each organization's membership.  For each organization it is possible to\n"
"specify which users are automatically users of the organization and also\n"
"which users can administer the organization. \n"
"\n"
"- admins: None, True/False, string or list of strings.\n"
"  If None, organization admins will not be updated.\n"
"  If True, all users using social auth will automatically be added as admins\n"
"  of the organization.\n"
"  If False, no social auth users will be automatically added as admins of\n"
"  the organization.\n"
"  If a string or list of strings, specifies the usernames and emails for\n"
"  users who will be added to the organization. Strings in the format\n"
"  \"/<pattern>/<flags>\" will be interpreted as JavaScript regular expressions and\n"
"  may also be used instead of string literals; only \"i\" and \"m\" are supported\n"
"  for flags.\n"
"- remove_admins: True/False. Defaults to True.\n"
"  If True, a user who does not match will be removed from the organization's\n"
"  administrative list.\n"
"- users: None, True/False, string or list of strings. Same rules apply as for\n"
"  admins.\n"
"- remove_users: True/False. Defaults to True. Same rules as apply for \n"
"  remove_admins."
msgstr ""
"Mappage avec des administrateurs/utilisateurs d'organisation appartenant à des comptes d'authentification sociale. Ce paramètre\n"
"contrôle les utilisateurs qui sont placés dans les organisations Tower en fonction de\n"
"leur nom d'utilisateur et adresse électronique. Les clés de dictionnaire sont des noms d'organisation.\n"
"Des organisations seront créées si elles ne sont pas présentes dans le cas où la licence autoriserait\n"
"plusieurs organisations, sinon l'organisation par défaut est utilisée\n"
"indépendamment de la clé. Les valeurs sont des dictionnaires définissant les options\n"
"d'appartenance de chaque organisation. Pour chaque organisation, il est possible de\n"
"préciser les utilisateurs qui sont automatiquement utilisateurs de l'organisation et\n"
"ceux qui peuvent administrer l'organisation. \n"
"\n"
"- admins : None, True/False, chaîne ou liste de chaînes.\n"
" Si défini sur None, les administrateurs de l'organisation ne sont pas mis à jour.\n"
" Si défini sur True, tous les utilisateurs se servant de l'authentification sociale sont automatiquement ajoutés en tant qu'administrateurs\n"
" de l'organisation.\n"
" Si défini sur False, aucun utilisateur d'authentification sociale n'est automatiquement ajouté en tant qu'administrateur de\n"
" l'organisation.\n"
" Si une chaîne ou une liste de chaînes est entrée, elle spécifie les noms d'utilisateur et les adresses électroniques des\n"
" utilisateurs qui seront ajoutés à l'organisation. Les chaînes au format\n"
" \"/<pattern>/<flags>\" sont interprétées comme des expressions JavaScript normales et\n"
" peuvent également être utilisées à la place de littéraux de chaîne ; seuls \"i\" et \"m\" sont pris en charge\n"
" pour les marqueurs.\n"
"- remove_admins : True/False. Par défaut défini sur True.\n"
" Si défini sur True, l'utilisateur qui ne correspond pas est supprimé de la liste administrative\n"
" de l'organisation.\n"
"- users : None, True/False, chaîne ou liste de chaînes. Les mêmes règles s'appliquent que pour\n"
" admins.\n"
"- remove_users : True/False. Par défaut défini sur True. Les mêmes règles s'appliquent que pour \n"
" remove_admins."

#: sso/conf.py:76
msgid ""
"Mapping of team members (users) from social auth accounts. Keys are team\n"
"names (will be created if not present). Values are dictionaries of options\n"
"for each team's membership, where each can contain the following parameters:\n"
"\n"
"- organization: string. The name of the organization to which the team\n"
"  belongs.  The team will be created if the combination of organization and\n"
"  team name does not exist.  The organization will first be created if it\n"
"  does not exist.  If the license does not allow for multiple organizations,\n"
"  the team will always be assigned to the single default organization.\n"
"- users: None, True/False, string or list of strings.\n"
"  If None, team members will not be updated.\n"
"  If True/False, all social auth users will be added/removed as team\n"
"  members.\n"
"  If a string or list of strings, specifies expressions used to match users.\n"
"  User will be added as a team member if the username or email matches.\n"
"  Strings in the format \"/<pattern>/<flags>\" will be interpreted as JavaScript\n"
"  regular expressions and may also be used instead of string literals; only \"i\"\n"
"  and \"m\" are supported for flags.\n"
"- remove: True/False. Defaults to True. If True, a user who does not match\n"
"  the rules above will be removed from the team."
msgstr ""
"Mappage des membres d'équipe (utilisateurs) de compte d'authentification sociale. Les clés sont des \n"
"noms d'équipe (seront créés s'ils ne sont pas présents). Les valeurs sont des dictionnaires d'options\n"
"d'appartenance à chaque équipe, où chacune peut contenir les paramètres suivants :\n"
"\n"
"-organization : chaîne. Nom de l'organisation à laquelle l'équipe\n"
" appartient. Une équipe est créée si la combinaison nom de l'organisation/nom de \n"
"l'équipe n'existe pas. L'organisation sera d'abord créée \n"
"si elle n'existe pas. Si la licence n'autorise pas plusieurs organisations, \n"
"l'équipe est toujours attribuée à l'organisation par défaut. \n"
"- users : None, True/False, chaîne ou liste de chaînes.\n"
" Si défini sur None, les membres de l'équipe ne sont pas mis à jour.\n"
" Si défini sur True/False, tous les utilisateurs d'authentification sociale sont ajoutés/supprimés en tant que membres\n"
" d'équipe.\n"
" Si une chaîne ou une liste de chaînes est entrée, elle spécifie les expressions utilisées pour comparer les utilisateurs. \n"
"L'utilisateur est ajouté en tant que membre d'équipe si son nom d'utilisateur ou son adresse électronique correspond.\n"
" Les chaînes au format \"/<pattern>/<flags>\" sont interprétées comme des expressions JavaScript\n"
" normales et peuvent également être utilisées à la place de littéraux de chaîne ; Seuls \"i\"\n"
" et \"m\" sont pris en charge pour les marqueurs.\n"
"- remove : True/False. Par défaut défini sur True. Si défini sur True, tout utilisateur qui ne correspond\n"
" pas aux règles ci-dessus est supprimé de l'équipe."

#: sso/conf.py:119
msgid "Authentication Backends"
msgstr "Backends d'authentification"

#: sso/conf.py:120
msgid ""
"List of authentication backends that are enabled based on license features "
"and other authentication settings."
msgstr ""
"Liste des backends d'authentification activés en fonction des "
"caractéristiques des licences et d'autres paramètres d'authentification."

#: sso/conf.py:133
msgid "Social Auth Organization Map"
msgstr "Authentification sociale - Mappage des organisations"

#: sso/conf.py:145
msgid "Social Auth Team Map"
msgstr "Authentification sociale - Mappage des équipes"

#: sso/conf.py:157
msgid "Social Auth User Fields"
msgstr "Authentification sociale - Champs d'utilisateurs"

#: sso/conf.py:158
msgid ""
"When set to an empty list `[]`, this setting prevents new user accounts from"
" being created. Only users who have previously logged in using social auth "
"or have a user account with a matching email address will be able to login."
msgstr ""
"Lorsqu'il est défini sur une liste vide `[]`, ce paramètre empêche la "
"création de nouveaux comptes d'utilisateur. Seuls les utilisateurs ayant "
"déjà ouvert une session au moyen de l'authentification sociale ou disposant "
"d'un compte utilisateur avec une adresse électronique correspondante "
"pourront se connecter."

#: sso/conf.py:176
msgid "LDAP Server URI"
msgstr "URI du serveur LDAP"

#: sso/conf.py:177
msgid ""
"URI to connect to LDAP server, such as \"ldap://ldap.example.com:389\" (non-"
"SSL) or \"ldaps://ldap.example.com:636\" (SSL). Multiple LDAP servers may be"
" specified by separating with spaces or commas. LDAP authentication is "
"disabled if this parameter is empty."
msgstr ""
"URI de connexion au serveur LDAP, tel que \"ldap://ldap.exemple.com:389\" "
"(non SSL) ou \"ldaps://ldap.exemple.com:636\" (SSL). Plusieurs serveurs LDAP"
" peuvent être définis en les séparant par des espaces ou des virgules. "
"L'authentification LDAP est désactivée si ce paramètre est vide."

#: sso/conf.py:181 sso/conf.py:199 sso/conf.py:211 sso/conf.py:223
#: sso/conf.py:239 sso/conf.py:258 sso/conf.py:279 sso/conf.py:295
#: sso/conf.py:314 sso/conf.py:331 sso/conf.py:347 sso/conf.py:362
#: sso/conf.py:379 sso/conf.py:417 sso/conf.py:458
msgid "LDAP"
msgstr "LDAP"

#: sso/conf.py:193
msgid "LDAP Bind DN"
msgstr "ND de la liaison LDAP"

#: sso/conf.py:194
msgid ""
"DN (Distinguished Name) of user to bind for all search queries. Normally in "
"the format \"CN=Some User,OU=Users,DC=example,DC=com\" but may also be "
"specified as \"DOMAIN\\username\" for Active Directory. This is the system "
"user account we will use to login to query LDAP for other user information."
msgstr ""
"ND (nom distinctif) de l'utilisateur à lier pour toutes les requêtes de "
"recherche. Normalement, au format \"CN = Certains utilisateurs, OU = "
"Utilisateurs, DC = exemple, DC = com\" mais peut aussi être entré au format "
"\"DOMAINE\\nom d'utilisateur\" pour Active Directory. Il s'agit du compte "
"utilisateur système que nous utiliserons pour nous connecter afin "
"d'interroger LDAP et obtenir d'autres informations utilisateur."

#: sso/conf.py:209
msgid "LDAP Bind Password"
msgstr "Mot de passe de la liaison LDAP"

#: sso/conf.py:210
msgid "Password used to bind LDAP user account."
msgstr "Mot de passe utilisé pour lier le compte utilisateur LDAP."

#: sso/conf.py:221
msgid "LDAP Start TLS"
msgstr "LDAP - Lancer TLS"

#: sso/conf.py:222
msgid "Whether to enable TLS when the LDAP connection is not using SSL."
msgstr "Pour activer ou non TLS lorsque la connexion LDAP n'utilise pas SSL."

#: sso/conf.py:232
msgid "LDAP Connection Options"
msgstr "Options de connexion à LDAP"

#: sso/conf.py:233
msgid ""
"Additional options to set for the LDAP connection.  LDAP referrals are "
"disabled by default (to prevent certain LDAP queries from hanging with AD). "
"Option names should be strings (e.g. \"OPT_REFERRALS\"). Refer to "
"https://www.python-ldap.org/doc/html/ldap.html#options for possible options "
"and values that can be set."
msgstr ""
"Options supplémentaires à définir pour la connexion LDAP. Les références "
"LDAP sont désactivées par défaut (pour empêcher certaines requêtes LDAP de "
"se bloquer avec AD). Les noms d'options doivent être des chaînes (par "
"exemple \"OPT_REFERRALS\"). Reportez-vous à https://www.python-"
"ldap.org/doc/html/ldap.html#options afin de connaître les options possibles "
"et les valeurs que vous pouvez définir."

#: sso/conf.py:251
msgid "LDAP User Search"
msgstr "Recherche d'utilisateurs LDAP"

#: sso/conf.py:252
msgid ""
"LDAP search query to find users.  Any user that matches the given pattern "
"will be able to login to Tower.  The user should also be mapped into an "
"Tower organization (as defined in the AUTH_LDAP_ORGANIZATION_MAP setting).  "
"If multiple search queries need to be supported use of \"LDAPUnion\" is "
"possible. See python-ldap documentation as linked at the top of this "
"section."
msgstr ""
"Requête de recherche LDAP servant à retrouver des utilisateurs. Tout "
"utilisateur qui correspond au modèle donné pourra se connecter à Tower. "
"L'utilisateur doit également être mappé dans une organisation Tower (tel que"
" défini dans le paramètre AUTH_LDAP_ORGANIZATION_MAP). Si plusieurs requêtes"
" de recherche doivent être prises en charge, l'utilisation de \"LDAPUnion\" "
"est possible. Se reporter à la documentation sur python-ldap en suivant le "
"lien indiqué en haut de cette section."

#: sso/conf.py:273
msgid "LDAP User DN Template"
msgstr "Modèle de ND pour les utilisateurs LDAP"

#: sso/conf.py:274
msgid ""
"Alternative to user search, if user DNs are all of the same format. This "
"approach will be more efficient for user lookups than searching if it is "
"usable in your organizational environment. If this setting has a value it "
"will be used instead of AUTH_LDAP_USER_SEARCH."
msgstr ""
"Autre méthode de recherche d'utilisateurs, si les ND d'utilisateur se "
"présentent tous au même format. Cette approche est plus efficace qu'une "
"recherche d'utilisateurs si vous pouvez l'utiliser dans votre environnement "
"organisationnel. Si ce paramètre est défini, sa valeur sera utilisée à la "
"place de AUTH_LDAP_USER_SEARCH."

#: sso/conf.py:289
msgid "LDAP User Attribute Map"
msgstr "Mappe des attributs d'utilisateurs LDAP"

#: sso/conf.py:290
msgid ""
"Mapping of LDAP user schema to Tower API user attributes (key is user "
"attribute name, value is LDAP attribute name).  The default setting is valid"
" for ActiveDirectory but users with other LDAP configurations may need to "
"change the values (not the keys) of the dictionary/hash-table."
msgstr ""
"Mappage du schéma utilisateur LDAP avec les attributs utilisateur d'API "
"Tower (la clé est le nom de l'attribut utilisateur, la valeur est le nom de "
"l'attribut LDAP). Le paramètre par défaut est valide pour ActiveDirectory, "
"mais les utilisateurs ayant d'autres configurations LDAP peuvent être amenés"
" à modifier les valeurs (et non les clés) du dictionnaire/de la table de "
"hachage."

#: sso/conf.py:309
msgid "LDAP Group Search"
msgstr "Recherche de groupes LDAP"

#: sso/conf.py:310
msgid ""
"Users in Tower are mapped to organizations based on their membership in LDAP"
" groups. This setting defines the LDAP search query to find groups. Note "
"that this, unlike the user search above, does not support LDAPSearchUnion."
msgstr ""
"Les utilisateurs de Tower sont mappés à des organisations en fonction de "
"leur appartenance à des groupes LDAP. Ce paramètre définit la requête de "
"recherche LDAP servant à rechercher des groupes. Notez que cette méthode, "
"contrairement à la recherche d'utilisateurs LDAP, ne prend pas en charge "
"LDAPSearchUnion."

#: sso/conf.py:327
msgid "LDAP Group Type"
msgstr "Type de groupe LDAP"

#: sso/conf.py:328
msgid ""
"The group type may need to be changed based on the type of the LDAP server."
"  Values are listed at: http://pythonhosted.org/django-auth-ldap/groups.html"
"#types-of-groups"
msgstr ""
"Il convient parfois de modifier le type de groupe en fonction du type de "
"serveur LDAP. Les valeurs sont répertoriées à l'adresse suivante : "
"http://pythonhosted.org/django-auth-ldap/groups.html#types-of-groups"

#: sso/conf.py:342
msgid "LDAP Require Group"
msgstr "Groupe LDAP obligatoire"

#: sso/conf.py:343
msgid ""
"Group DN required to login. If specified, user must be a member of this "
"group to login via LDAP. If not set, everyone in LDAP that matches the user "
"search will be able to login via Tower. Only one require group is supported."
msgstr ""
"Le NDD du groupe d'utilisateurs qui doit se connecter. S'il est spécifié, "
"l'utilisateur doit être membre de ce groupe pour pouvoir se connecter via "
"LDAP. S'il n'est pas défini, tout utilisateur LDAP qui correspond à la "
"recherche d'utilisateurs pourra se connecter via Tower. Un seul groupe est "
"pris en charge."

#: sso/conf.py:358
msgid "LDAP Deny Group"
msgstr "Groupe LDAP refusé"

#: sso/conf.py:359
msgid ""
"Group DN denied from login. If specified, user will not be allowed to login "
"if a member of this group.  Only one deny group is supported."
msgstr ""
"NDD du groupe dont la connexion est refusée. S'il est spécifié, "
"l'utilisateur n'est pas autorisé à se connecter s'il est membre de ce "
"groupe. Un seul groupe refusé est pris en charge."

#: sso/conf.py:372
msgid "LDAP User Flags By Group"
msgstr "Marqueurs d'utilisateur LDAP par groupe"

#: sso/conf.py:373
msgid ""
"User profile flags updated from group membership (key is user attribute "
"name, value is group DN).  These are boolean fields that are matched based "
"on whether the user is a member of the given group.  So far only "
"is_superuser is settable via this method.  This flag is set both true and "
"false at login time based on current LDAP settings."
msgstr ""
"Marqueurs de profil utilisateur mis à jour selon l'appartenance au groupe "
"(la clé est le nom de l'attribut utilisateur, la valeur est le NDD du "
"groupe). Il s'agit de champs booléens qui sont associés selon que "
"l'utilisateur est ou non membre du groupe donné. Jusqu'à présent, seul "
"is_superuser peut être défini avec cette méthode. Ce marqueur est défini à "
"la fois sur True et False au moment de la connexion, en fonction des "
"paramètres LDAP actifs."

#: sso/conf.py:391
msgid "LDAP Organization Map"
msgstr "Mappe d'organisations LDAP"

#: sso/conf.py:392
msgid ""
"Mapping between organization admins/users and LDAP groups. This controls what users are placed into what Tower organizations relative to their LDAP group memberships. Keys are organization names. Organizations will be created if not present. Values are dictionaries defining the options for each organization's membership.  For each organization it is possible to specify what groups are automatically users of the organization and also what groups can administer the organization.\n"
"\n"
" - admins: None, True/False, string or list of strings.\n"
"   If None, organization admins will not be updated based on LDAP values.\n"
"   If True, all users in LDAP will automatically be added as admins of the organization.\n"
"   If False, no LDAP users will be automatically added as admins of the organization.\n"
"   If a string or list of strings, specifies the group DN(s) that will be added of the organization if they match any of the specified groups.\n"
" - remove_admins: True/False. Defaults to True.\n"
"   If True, a user who is not an member of the given groups will be removed from the organization's administrative list.\n"
" - users: None, True/False, string or list of strings. Same rules apply as for admins.\n"
" - remove_users: True/False. Defaults to True. Same rules apply as for remove_admins."
msgstr ""
"Mappage entre les administrateurs/utilisateurs de l'organisation et les groupes LDAP. Ce paramètre détermine les utilisateurs qui sont placés dans les organisations Tower par rapport à leurs appartenances à un groupe LDAP. Les clés sont les noms d'organisation. Les organisations seront créées si elles ne sont pas présentes. Les valeurs sont des dictionnaires définissant les options d'appartenance à chaque organisation. Pour chaque organisation, il est possible de spécifier les groupes qui sont automatiquement des utilisateurs de l'organisation et ceux qui peuvent administrer l'organisation.\n"
"\n"
" - admins : None, True/False, chaîne ou liste de chaînes.\n"
"Si défini sur None, les administrateurs de l'organisation ne sont pas mis à jour en fonction des valeurs LDAP.\n"
" Si défini sur True, tous les utilisateurs LDAP sont automatiquement ajoutés en tant qu'administrateurs de l'organisation.\n"
" Si défini sur False, aucun utilisateur LDAP n'est automatiquement ajouté en tant qu'administrateur de l'organisation.\n"
" Si une chaîne ou une liste de chaînes est entrée, elle spécifie le ou les NDD de groupe qui seront ajoutés à l'organisation s'ils correspondent à l'un des groupes spécifiés.\n"
" - remove_admins : True/False. Par défaut défini sur True.\n"
" Si défini sur True, tout utilisateur qui n'est pas membre des groupes donnés est supprimé de la liste administrative de l'organisation.\n"
" - users : None, True/False, chaîne ou liste de chaînes. Les mêmes règles s'appliquent que pour admins.\n"
" - remove_users : True/False. Par défaut défini sur True. Les mêmes règles s'appliquent que pour remove_admins."

#: sso/conf.py:440
msgid "LDAP Team Map"
msgstr "Mappe d'équipes LDAP"

#: sso/conf.py:441
msgid ""
"Mapping between team members (users) and LDAP groups. Keys are team names (will be created if not present). Values are dictionaries of options for each team's membership, where each can contain the following parameters:\n"
"\n"
" - organization: string. The name of the organization to which the team belongs. The team will be created if the combination of organization and team name does not exist. The organization will first be created if it does not exist.\n"
" - users: None, True/False, string or list of strings.\n"
"   If None, team members will not be updated.\n"
"   If True/False, all LDAP users will be added/removed as team members.\n"
"   If a string or list of strings, specifies the group DN(s). User will be added as a team member if the user is a member of ANY of these groups.\n"
"- remove: True/False. Defaults to True. If True, a user who is not a member of the given groups will be removed from the team."
msgstr ""
"Mappage entre les membres d'équipe (utilisateurs) et les groupes LDAP. Les clés sont des noms d'équipe (seront créés s'ils ne sont pas présents). Les valeurs sont des dictionnaires d'options d'appartenance à chaque équipe, où chacune peut contenir les paramètres suivants :\n"
"\n"
" - organization : chaîne. Nom de l'organisation à laquelle l'équipe appartient. Une équipe est créée si la combinaison nom de l'organisation/nom de l'équipe n'existe pas. L'organisation sera d'abord créée si elle n'existe pas.\n"
" - users : None, True/False, chaîne ou liste de chaînes.\n"
" Si défini sur None, les membres de l'équipe ne sont pas mis à jour.\n"
" Si défini sur True/False, tous les utilisateurs LDAP seront ajoutés/supprimés en tant que membres d'équipe.\n"
" Si une chaîne ou une liste de chaînes est entrée, elle spécifie les NDD des groupes. L'utilisateur est ajouté en tant que membre d'équipe s'il est membre de l'UN de ces groupes.\n"
"- remove : True/False. Par défaut défini sur True. Si défini sur True, tout utilisateur qui n'est pas membre des groupes donnés est supprimé de l'équipe."

#: sso/conf.py:484
msgid "RADIUS Server"
msgstr "Serveur RADIUS"

#: sso/conf.py:485
msgid ""
"Hostname/IP of RADIUS server. RADIUS authentication will be disabled if this"
" setting is empty."
msgstr ""
"Nom d'hôte/IP du serveur RADIUS. L'authentification RADIUS est désactivée si"
" ce paramètre est vide."

#: sso/conf.py:487 sso/conf.py:501 sso/conf.py:513
msgid "RADIUS"
msgstr "RADIUS"

#: sso/conf.py:499
msgid "RADIUS Port"
msgstr "Port RADIUS"

#: sso/conf.py:500
msgid "Port of RADIUS server."
msgstr "Port du serveur RADIUS."

#: sso/conf.py:511
msgid "RADIUS Secret"
msgstr "Secret RADIUS"

#: sso/conf.py:512
msgid "Shared secret for authenticating to RADIUS server."
msgstr "Secret partagé pour l'authentification sur le serveur RADIUS."

#: sso/conf.py:528
msgid "Google OAuth2 Callback URL"
msgstr "URL de rappel OAuth2 pour Google"

#: sso/conf.py:529
msgid ""
"Create a project at https://console.developers.google.com/ to obtain an "
"OAuth2 key and secret for a web application. Ensure that the Google+ API is "
"enabled. Provide this URL as the callback URL for your application."
msgstr ""
"Créez un projet sur https://console.developers.google.com/ afin d'obtenir "
"une clé OAuth2 et un secret pour une application Web. Assurez-vous que l'API"
" Google+ est activée. Entrez cette URL comme URL de rappel de votre "
"application."

#: sso/conf.py:533 sso/conf.py:544 sso/conf.py:555 sso/conf.py:568
#: sso/conf.py:582 sso/conf.py:594 sso/conf.py:606
msgid "Google OAuth2"
msgstr "OAuth2 pour Google"

#: sso/conf.py:542
msgid "Google OAuth2 Key"
msgstr "Clé OAuth2 pour Google"

#: sso/conf.py:543
msgid ""
"The OAuth2 key from your web application at "
"https://console.developers.google.com/."
msgstr ""
"Clé OAuth2 de votre application Web sur "
"https://console.developers.google.com/."

#: sso/conf.py:553
msgid "Google OAuth2 Secret"
msgstr "Secret OAuth2 pour Google"

#: sso/conf.py:554
msgid ""
"The OAuth2 secret from your web application at "
"https://console.developers.google.com/."
msgstr ""
"Secret OAuth2 de votre application Web sur "
"https://console.developers.google.com/."

#: sso/conf.py:565
msgid "Google OAuth2 Whitelisted Domains"
msgstr "Domaines sur liste blanche OAuth2 pour Google"

#: sso/conf.py:566
msgid ""
"Update this setting to restrict the domains who are allowed to login using "
"Google OAuth2."
msgstr ""
"Mettez à jour ce paramètre pour limiter les domaines qui sont autorisés à se"
" connecter à l'aide de l'authentification OAuth2 avec un compte Google."

#: sso/conf.py:577
msgid "Google OAuth2 Extra Arguments"
msgstr "Arguments OAuth2 supplémentaires pour Google"

#: sso/conf.py:578
msgid ""
"Extra arguments for Google OAuth2 login. When only allowing a single domain "
"to authenticate, set to `{\"hd\": \"yourdomain.com\"}` and Google will not "
"display any other accounts even if the user is logged in with multiple "
"Google accounts."
msgstr ""
"Arguments supplémentaires pour l'authentification OAuth2 avec un compte "
"Google. Lorsque vous autorisez un seul domaine à s'authentifier, définissez "
"ce paramètre sur {{\"hd\": \"votredomaine.com\"}. Google n'affichera aucun "
"autre compte même si l'utilisateur est connecté avec plusieurs comptes "
"Google."

#: sso/conf.py:592
msgid "Google OAuth2 Organization Map"
msgstr "Mappe d'organisations OAuth2 pour Google"

#: sso/conf.py:604
msgid "Google OAuth2 Team Map"
msgstr "Mappe d'équipes OAuth2 pour Google"

#: sso/conf.py:620
msgid "GitHub OAuth2 Callback URL"
msgstr "URL de rappel OAuth2 pour GitHub"

#: sso/conf.py:621
msgid ""
"Create a developer application at https://github.com/settings/developers to "
"obtain an OAuth2 key (Client ID) and secret (Client Secret). Provide this "
"URL as the callback URL for your application."
msgstr ""
"Créez une application de développeur sur "
"https://github.com/settings/developers pour obtenir une clé OAuth2 (ID "
"client) et un secret (secret client). Entrez cette URL comme URL de rappel "
"de votre application."

#: sso/conf.py:625 sso/conf.py:636 sso/conf.py:646 sso/conf.py:658
#: sso/conf.py:670
msgid "GitHub OAuth2"
msgstr "OAuth2 pour GitHub"

#: sso/conf.py:634
msgid "GitHub OAuth2 Key"
msgstr "Clé OAuth2 pour GitHub"

#: sso/conf.py:635
msgid "The OAuth2 key (Client ID) from your GitHub developer application."
msgstr "Clé OAuth2 (ID client) de votre application de développeur GitHub."

#: sso/conf.py:644
msgid "GitHub OAuth2 Secret"
msgstr "Secret OAuth2 pour GitHub"

#: sso/conf.py:645
msgid ""
"The OAuth2 secret (Client Secret) from your GitHub developer application."
msgstr ""
"Secret OAuth2 (secret client) de votre application de développeur GitHub."

#: sso/conf.py:656
msgid "GitHub OAuth2 Organization Map"
msgstr "Mappe d'organisations OAuth2 pour GitHub"

#: sso/conf.py:668
msgid "GitHub OAuth2 Team Map"
msgstr "Mappe d'équipes OAuth2 pour GitHub"

#: sso/conf.py:684
msgid "GitHub Organization OAuth2 Callback URL"
msgstr "URL de rappel OAuth2 pour les organisations GitHub"

#: sso/conf.py:685 sso/conf.py:760
msgid ""
"Create an organization-owned application at "
"https://github.com/organizations/<yourorg>/settings/applications and obtain "
"an OAuth2 key (Client ID) and secret (Client Secret). Provide this URL as "
"the callback URL for your application."
msgstr ""
"Créez une application appartenant à une organisation sur "
"https://github.com/organizations/<votreorg>/settings/applications et obtenez"
" une clé OAuth2 (ID client) et un secret (secret client). Entrez cette URL "
"comme URL de rappel de votre application."

#: sso/conf.py:689 sso/conf.py:700 sso/conf.py:710 sso/conf.py:722
#: sso/conf.py:733 sso/conf.py:745
msgid "GitHub Organization OAuth2"
msgstr "OAuth2 pour les organisations GitHub"

#: sso/conf.py:698
msgid "GitHub Organization OAuth2 Key"
msgstr "Clé OAuth2 pour les organisations GitHub"

#: sso/conf.py:699 sso/conf.py:774
msgid "The OAuth2 key (Client ID) from your GitHub organization application."
msgstr "Clé OAuth2 (ID client) de votre application d'organisation GitHub."

#: sso/conf.py:708
msgid "GitHub Organization OAuth2 Secret"
msgstr "Secret OAuth2 pour les organisations GitHub"

#: sso/conf.py:709 sso/conf.py:784
msgid ""
"The OAuth2 secret (Client Secret) from your GitHub organization application."
msgstr ""
"Secret OAuth2 (secret client) de votre application d'organisation GitHub."

#: sso/conf.py:719
msgid "GitHub Organization Name"
msgstr "Nom de l'organisation GitHub"

#: sso/conf.py:720
msgid ""
"The name of your GitHub organization, as used in your organization's URL: "
"https://github.com/<yourorg>/."
msgstr ""
"Nom de votre organisation GitHub, tel qu'utilisé dans l'URL de votre "
"organisation : https://github.com/<votreorg>/."

#: sso/conf.py:731
msgid "GitHub Organization OAuth2 Organization Map"
msgstr "Mappe d'organisations OAuth2 pour les organisations GitHub"

#: sso/conf.py:743
msgid "GitHub Organization OAuth2 Team Map"
msgstr "Mappe d'équipes OAuth2 pour les organisations GitHub"

#: sso/conf.py:759
msgid "GitHub Team OAuth2 Callback URL"
msgstr "URL de rappel OAuth2 pour les équipes GitHub"

#: sso/conf.py:764 sso/conf.py:775 sso/conf.py:785 sso/conf.py:797
#: sso/conf.py:808 sso/conf.py:820
msgid "GitHub Team OAuth2"
msgstr "OAuth2 pour les équipes GitHub"

#: sso/conf.py:773
msgid "GitHub Team OAuth2 Key"
msgstr "Clé OAuth2 pour les équipes GitHub"

#: sso/conf.py:783
msgid "GitHub Team OAuth2 Secret"
msgstr "Secret OAuth2 pour les équipes GitHub"

#: sso/conf.py:794
msgid "GitHub Team ID"
msgstr "ID d'équipe GitHub"

#: sso/conf.py:795
msgid ""
"Find the numeric team ID using the Github API: http://fabian-"
"kostadinov.github.io/2015/01/16/how-to-find-a-github-team-id/."
msgstr ""
"Recherchez votre ID d'équipe numérique à l'aide de l'API Github : http"
"://fabian-kostadinov.github.io/2015/01/16/how-to-find-a-github-team-id/."

#: sso/conf.py:806
msgid "GitHub Team OAuth2 Organization Map"
msgstr "Mappe d'organisations OAuth2 pour les équipes GitHub"

#: sso/conf.py:818
msgid "GitHub Team OAuth2 Team Map"
msgstr "Mappe d'équipes OAuth2 pour les équipes GitHub"

#: sso/conf.py:834
msgid "Azure AD OAuth2 Callback URL"
msgstr "URL de rappel OAuth2 pour Azure AD"

#: sso/conf.py:835
msgid ""
"Register an Azure AD application as described by https://msdn.microsoft.com"
"/en-us/library/azure/dn132599.aspx and obtain an OAuth2 key (Client ID) and "
"secret (Client Secret). Provide this URL as the callback URL for your "
"application."
msgstr ""
"Enregistrez une application AD Azure selon la procédure décrite sur "
"https://msdn.microsoft.com/en-us/library/azure/dn132599.aspx et obtenez une "
"clé OAuth2 (ID client) et un secret (secret client). Entrez cette URL comme "
"URL de rappel de votre application."

#: sso/conf.py:839 sso/conf.py:850 sso/conf.py:860 sso/conf.py:872
#: sso/conf.py:884
msgid "Azure AD OAuth2"
msgstr "OAuth2 pour Azure AD"

#: sso/conf.py:848
msgid "Azure AD OAuth2 Key"
msgstr "Clé OAuth2 pour Azure AD"

#: sso/conf.py:849
msgid "The OAuth2 key (Client ID) from your Azure AD application."
msgstr "Clé OAuth2 (ID client) de votre application Azure AD."

#: sso/conf.py:858
msgid "Azure AD OAuth2 Secret"
msgstr "Secret OAuth2 pour Azure AD"

#: sso/conf.py:859
msgid "The OAuth2 secret (Client Secret) from your Azure AD application."
msgstr "Secret OAuth2 (secret client) de votre application Azure AD."

#: sso/conf.py:870
msgid "Azure AD OAuth2 Organization Map"
msgstr "Mappe d'organisations OAuth2 pour Azure AD"

#: sso/conf.py:882
msgid "Azure AD OAuth2 Team Map"
msgstr "Mappe d'équipes OAuth2 pour Azure AD"

#: sso/conf.py:903
msgid "SAML Service Provider Callback URL"
msgstr "URL de rappel du fournisseur de services SAML"

#: sso/conf.py:904
msgid ""
"Register Tower as a service provider (SP) with each identity provider (IdP) "
"you have configured. Provide your SP Entity ID and this callback URL for "
"your application."
msgstr ""
"Enregistrez Tower en tant que fournisseur de services (SP) auprès de chaque "
"fournisseur d'identité (IdP) que vous avez configuré. Entrez votre ID "
"d'entité SP et cette URL de rappel pour votre application."

#: sso/conf.py:907 sso/conf.py:921 sso/conf.py:934 sso/conf.py:948
#: sso/conf.py:962 sso/conf.py:980 sso/conf.py:1002 sso/conf.py:1021
#: sso/conf.py:1041 sso/conf.py:1075 sso/conf.py:1088
msgid "SAML"
msgstr "SAML"

#: sso/conf.py:918
msgid "SAML Service Provider Metadata URL"
msgstr "URL de métadonnées du fournisseur de services SAML"

#: sso/conf.py:919
msgid ""
"If your identity provider (IdP) allows uploading an XML metadata file, you "
"can download one from this URL."
msgstr ""
"Si votre fournisseur d'identité (IdP) permet de télécharger un fichier de "
"métadonnées XML, vous pouvez le faire à partir de cette URL."

#: sso/conf.py:931
msgid "SAML Service Provider Entity ID"
msgstr "ID d'entité du fournisseur de services SAML"

#: sso/conf.py:932
msgid ""
"The application-defined unique identifier used as the audience of the SAML "
"service provider (SP) configuration."
msgstr ""
"Identifiant unique défini par l'application utilisé comme audience dans la "
"configuration du fournisseur de services (SP) SAML."

#: sso/conf.py:945
msgid "SAML Service Provider Public Certificate"
msgstr "Certificat public du fournisseur de services SAML"

#: sso/conf.py:946
msgid ""
"Create a keypair for Tower to use as a service provider (SP) and include the"
" certificate content here."
msgstr ""
"Créez une paire de clés pour que Tower puisse être utilisé comme fournisseur"
" de services (SP) et entrez le contenu du certificat ici."

#: sso/conf.py:959
msgid "SAML Service Provider Private Key"
msgstr "Clé privée du fournisseur de services SAML"

#: sso/conf.py:960
msgid ""
"Create a keypair for Tower to use as a service provider (SP) and include the"
" private key content here."
msgstr ""
"Créez une paire de clés pour que Tower puisse être utilisé comme fournisseur"
" de services (SP) et entrez le contenu de la clé privée ici."

#: sso/conf.py:978
msgid "SAML Service Provider Organization Info"
msgstr "Infos organisationnelles du fournisseur de services SAML"

#: sso/conf.py:979
msgid "Configure this setting with information about your app."
msgstr ""
"Configurez ce paramètre en vous servant des informations de votre "
"application."

#: sso/conf.py:1000
msgid "SAML Service Provider Technical Contact"
msgstr "Contact technique du fournisseur de services SAML"

#: sso/conf.py:1001 sso/conf.py:1020
msgid "Configure this setting with your contact information."
msgstr "Configurez ce paramètre en vous servant de vos coordonnées."

#: sso/conf.py:1019
msgid "SAML Service Provider Support Contact"
msgstr "Contact support du fournisseur de services SAML"

#: sso/conf.py:1034
msgid "SAML Enabled Identity Providers"
msgstr "Fournisseurs d'identité compatibles SAML"

#: sso/conf.py:1035
msgid ""
"Configure the Entity ID, SSO URL and certificate for each identity provider "
"(IdP) in use. Multiple SAML IdPs are supported. Some IdPs may provide user "
"data using attribute names that differ from the default OIDs "
"(https://github.com/omab/python-social-"
"auth/blob/master/social/backends/saml.py#L16). Attribute names may be "
"overridden for each IdP."
msgstr ""
"Configurez l'ID d'entité, l'URL SSO et le certificat pour chaque fournisseur"
" d'identité (IdP) utilisé. Plusieurs IdP SAML sont pris en charge. Certains "
"IdP peuvent fournir des données utilisateur à l'aide de noms d'attributs qui"
" diffèrent des OID par défaut (https://github.com/omab/python-social-"
"auth/blob/master/social/backends/saml.py#L16). Les noms d'attributs peuvent "
"être remplacés pour chaque IdP."

#: sso/conf.py:1073
msgid "SAML Organization Map"
msgstr "Mappe d'organisations SAML"

#: sso/conf.py:1086
msgid "SAML Team Map"
msgstr "Mappe d'équipes SAML"

#: sso/fields.py:123
msgid "Invalid connection option(s): {invalid_options}."
msgstr "Option(s) de connexion non valide(s) : {invalid_options}."

#: sso/fields.py:182
msgid "Base"
msgstr "Base"

#: sso/fields.py:183
msgid "One Level"
msgstr "Un niveau"

#: sso/fields.py:184
msgid "Subtree"
msgstr "Sous-arborescence"

#: sso/fields.py:202
msgid "Expected a list of three items but got {length} instead."
msgstr ""
"Une liste de trois éléments était attendue, mais {length} a été obtenu à la "
"place."

#: sso/fields.py:203
msgid "Expected an instance of LDAPSearch but got {input_type} instead."
msgstr ""
"Une instance de LDAPSearch était attendue, mais {input_type} a été obtenu à "
"la place."

#: sso/fields.py:239
msgid ""
"Expected an instance of LDAPSearch or LDAPSearchUnion but got {input_type} "
"instead."
msgstr ""
"Une instance de LDAPSearch ou de LDAPSearchUnion était attendue, mais "
"{input_type} a été obtenu à la place."

#: sso/fields.py:266
msgid "Invalid user attribute(s): {invalid_attrs}."
msgstr "Attribut(s) d'utilisateur non valide(s) : {invalid_attrs}."

#: sso/fields.py:283
msgid "Expected an instance of LDAPGroupType but got {input_type} instead."
msgstr ""
"Une instance de LDAPGroupType était attendue, mais {input_type} a été obtenu"
" à la place."

#: sso/fields.py:308
msgid "Invalid user flag: \"{invalid_flag}\"."
msgstr "Marqueur d'utilisateur non valide : \"{invalid_flag}\"."

#: sso/fields.py:324 sso/fields.py:491
msgid ""
"Expected None, True, False, a string or list of strings but got {input_type}"
" instead."
msgstr ""
"Les valeurs None, True, False, une chaîne ou une liste de chaînes étaient "
"attendues, mais  {input_type} a été obtenu à la place."

#: sso/fields.py:360
msgid "Missing key(s): {missing_keys}."
msgstr "Clé(s) manquante(s) : {missing_keys}."

#: sso/fields.py:361
msgid "Invalid key(s): {invalid_keys}."
msgstr "Clé(s) non valide(s) : {invalid_keys}."

#: sso/fields.py:410 sso/fields.py:527
msgid "Invalid key(s) for organization map: {invalid_keys}."
msgstr "Clé(s) non valide(s) pour la mappe d'organisations : {invalid_keys}."

#: sso/fields.py:428
msgid "Missing required key for team map: {invalid_keys}."
msgstr "Clé obligatoire manquante pour la mappe d'équipes : {invalid_keys}."

#: sso/fields.py:429 sso/fields.py:546
msgid "Invalid key(s) for team map: {invalid_keys}."
msgstr "Clé(s) non valide(s) pour la mappe d'équipes : {invalid_keys}."

#: sso/fields.py:545
msgid "Missing required key for team map: {missing_keys}."
msgstr "Clé obligatoire manquante pour la mappe d'équipes : {missing_keys}."

#: sso/fields.py:563
msgid "Missing required key(s) for org info record: {missing_keys}."
msgstr ""
"Clé(s) obligatoire(s) manquante(s) pour l'enregistrement des infos organis. "
": {missing_keys}."

#: sso/fields.py:576
msgid "Invalid language code(s) for org info: {invalid_lang_codes}."
msgstr ""
"Code(s) langage non valide(s) pour les infos organis. : "
"{invalid_lang_codes}."

#: sso/fields.py:595
msgid "Missing required key(s) for contact: {missing_keys}."
msgstr "Clé(s) obligatoire(s) manquante(s) pour le contact : {missing_keys}."

#: sso/fields.py:607
msgid "Missing required key(s) for IdP: {missing_keys}."
msgstr "Clé(s) obligatoire(s) manquante(s) pour l'IdP : {missing_keys}."

#: sso/pipeline.py:24
msgid "An account cannot be found for {0}"
msgstr "Impossible de trouver un compte pour {0}"

#: sso/pipeline.py:30
msgid "Your account is inactive"
msgstr "Votre compte est inactif"

#: sso/validators.py:19 sso/validators.py:44
#, python-format
msgid "DN must include \"%%(user)s\" placeholder for username: %s"
msgstr ""
"Le NDD doit inclure l'espace réservé \"%% (user)s\" pour le nom "
"d'utilisateur : % s"

#: sso/validators.py:26
#, python-format
msgid "Invalid DN: %s"
msgstr "NDD non valide : %s"

#: sso/validators.py:56
#, python-format
msgid "Invalid filter: %s"
msgstr "Filtre incorrect : %s"

#: templates/error.html:4 ui/templates/ui/index.html:8
msgid "Ansible Tower"
msgstr "Ansible Tower"

#: templates/rest_framework/api.html:39
msgid "Ansible Tower API Guide"
msgstr "Guide pour les API d'Ansible Tower"

#: templates/rest_framework/api.html:40
msgid "Back to Ansible Tower"
msgstr "Retour à Ansible Tower"

#: templates/rest_framework/api.html:41
msgid "Resize"
msgstr "Redimensionner"

#: templates/rest_framework/base.html:78 templates/rest_framework/base.html:92
#, python-format
msgid "Make a GET request on the %(name)s resource"
msgstr "Appliquez une requête GET sur la ressource %(name)s"

#: templates/rest_framework/base.html:80
msgid "Specify a format for the GET request"
msgstr "Spécifiez un format pour la requête GET"

#: templates/rest_framework/base.html:86
#, python-format
msgid ""
"Make a GET request on the %(name)s resource with the format set to "
"`%(format)s`"
msgstr ""
"Appliquez une requête GET sur la ressource %(name)s avec un format défini "
"sur`%(format)s`"

#: templates/rest_framework/base.html:100
#, python-format
msgid "Make an OPTIONS request on the %(name)s resource"
msgstr "Appliquez une requête OPTIONS sur la ressource %(name)s"

#: templates/rest_framework/base.html:106
#, python-format
msgid "Make a DELETE request on the %(name)s resource"
msgstr "Appliquez une requête DELETE sur la ressource %(name)s"

#: templates/rest_framework/base.html:113
msgid "Filters"
msgstr "Filtres"

#: templates/rest_framework/base.html:172
#: templates/rest_framework/base.html:186
#, python-format
msgid "Make a POST request on the %(name)s resource"
msgstr "Appliquez une requête POST sur la ressource %(name)s"

#: templates/rest_framework/base.html:216
#: templates/rest_framework/base.html:230
#, python-format
msgid "Make a PUT request on the %(name)s resource"
msgstr "Appliquez une requête PUT sur la ressource %(name)s"

#: templates/rest_framework/base.html:233
#, python-format
msgid "Make a PATCH request on the %(name)s resource"
msgstr "Appliquez une requête PATCH sur la ressource %(name)s"

#: ui/apps.py:9 ui/conf.py:22 ui/conf.py:38 ui/conf.py:53
msgid "UI"
msgstr "IU"

#: ui/conf.py:16
msgid "Off"
msgstr "Désactivé"

#: ui/conf.py:17
msgid "Anonymous"
msgstr "Anonyme"

#: ui/conf.py:18
msgid "Detailed"
msgstr "Détaillé"

#: ui/conf.py:20
msgid "Analytics Tracking State"
msgstr "État du suivi analytique"

#: ui/conf.py:21
msgid "Enable or Disable Analytics Tracking."
msgstr "Activez ou désactivez le suivi analytique."

#: ui/conf.py:31
msgid "Custom Login Info"
msgstr "Infos de connexion personnalisées"

#: ui/conf.py:32
msgid ""
"If needed, you can add specific information (such as a legal notice or a "
"disclaimer) to a text box in the login modal using this setting. Any content"
" added must be in plain text, as custom HTML or other markup languages are "
"not supported. If multiple paragraphs of text are needed, new lines "
"(paragraphs) must be escaped as `\\n` within the block of text."
msgstr ""
"Si nécessaire, vous pouvez ajouter des informations particulières (telles "
"qu'une mention légale ou une clause de non-responsabilité) à une zone de "
"texte dans la fenêtre modale de connexion, grâce à ce paramètre. Tout "
"contenu ajouté doit l'être en texte brut, dans la mesure où le langage HTML "
"personnalisé et les autres langages de balisage ne sont pas pris en charge. "
"Si plusieurs paragraphes de texte sont nécessaires, les nouvelles lignes "
"(paragraphes) doivent être échappées sous la forme `\\n` dans le bloc de "
"texte."

#: ui/conf.py:48
msgid "Custom Logo"
msgstr "Logo personnalisé"

#: ui/conf.py:49
msgid ""
"To set up a custom logo, provide a file that you create. For the custom logo"
" to look its best, use a `.png` file with a transparent background. GIF, PNG"
" and JPEG formats are supported."
msgstr ""
"Pour configurer un logo personnalisé, chargez un fichier que vous avez créé."
" Pour optimiser l'affichage du logo personnalisé, utilisez un fichier `.png`"
" avec un fond transparent. Les formats GIF, PNG et JPEG sont pris en charge."

#: ui/fields.py:29
msgid ""
"Invalid format for custom logo. Must be a data URL with a base64-encoded "
"GIF, PNG or JPEG image."
msgstr ""
"Format de logo personnalisé non valide. Entrez une URL de données avec une "
"image GIF, PNG ou JPEG codée en base64."

#: ui/fields.py:30
msgid "Invalid base64-encoded data in data URL."
msgstr "Données codées en base64 non valides dans l'URL de données"

#: ui/templates/ui/index.html:49
msgid ""
"Your session will expire in <span id=\"remaining_seconds\" class"
"=\"IdleModal-remainingSeconds\">60</span> seconds, would you like to "
"continue?"
msgstr ""
"Votre session expirera dans <span id=\"remaining_seconds\" class"
"=\"IdleModal-remainingSeconds\">60</span> secondes, voulez-vous continuer ?"

#: ui/templates/ui/index.html:64
msgid "CANCEL"
msgstr "ANNULER"

#: ui/templates/ui/index.html:116
msgid "Set how many days of data should be retained."
msgstr ""
"Définissez le nombre de jours pendant lesquels les données doivent être "
"conservées."

#: ui/templates/ui/index.html:122
msgid ""
"Please enter an integer<span ng-"
"show=\"prompt_for_days_form.days_to_keep.$dirty && "
"prompt_for_days_form.days_to_keep.$error.min\"> that is not "
"negative</span><span ng-show=\"prompt_for_days_form.days_to_keep.$dirty && "
"prompt_for_days_form.days_to_keep.$error.max\"> that is lower than "
"9999</span>."
msgstr ""
"Entrez un entier<span ng-show=\"prompt_for_days_form.days_to_keep.$dirty && "
"prompt_for_days_form.days_to_keep.$error.min\"> non négatif</span><span ng-"
"show=\"prompt_for_days_form.days_to_keep.$dirty && "
"prompt_for_days_form.days_to_keep.$error.max\"> et inférieur à 9999</span>."

#: ui/templates/ui/index.html:127
msgid ""
"For facts collected older than the time period specified, save one fact scan (snapshot) per time window (frequency). For example, facts older than 30 days are purged, while one weekly fact scan is kept.\n"
"                    <br>\n"
"                    <br> CAUTION: Setting both numerical variables to \"0\" will delete all facts.\n"
"                    <br>\n"
"                    <br>"
msgstr ""
"Pour les faits collectés en amont de la période spécifiée, enregistrez un scan des faits (instantané) par fenêtre temporelle (fréquence). Par exemple, les faits antérieurs à 30 jours sont purgés, tandis qu'un scan de faits hebdomadaire est conservé.\n"
" <br>\n"
" <br> ATTENTION : le paramétrage des deux variables numériques sur \"0\" supprime l'ensemble des faits.\n"
" <br>\n"
" <br>"

#: ui/templates/ui/index.html:136
msgid "Select a time period after which to remove old facts"
msgstr ""
"Sélectionnez un intervalle de temps après lequel les faits anciens pourront "
"être supprimés"

#: ui/templates/ui/index.html:150
msgid ""
"Please enter an integer<span ng-"
"show=\"prompt_for_days_facts_form.keep_amount.$dirty && "
"prompt_for_days_facts_form.keep_amount.$error.min\"> that is not "
"negative</span><span ng-show=\"prompt_for_days_facts_form.keep_amount.$dirty"
" && prompt_for_days_facts_form.keep_amount.$error.max\"> that is lower than "
"9999</span>."
msgstr ""
"Entrez un entier<span ng-"
"show=\"prompt_for_days_facts_form.keep_amount.$dirty && "
"prompt_for_days_facts_form.keep_amount.$error.min\"> non négatif</span><span"
" ng-show=\"prompt_for_days_facts_form.keep_amount.$dirty && "
"prompt_for_days_facts_form.keep_amount.$error.max\"> et inférieur à "
"9999</span>."

#: ui/templates/ui/index.html:155
msgid "Select a frequency for snapshot retention"
msgstr "Sélectionnez une fréquence pour la conservation des instantanés"

#: ui/templates/ui/index.html:169
msgid ""
"Please enter an integer<span ng-"
"show=\"prompt_for_days_facts_form.granularity_keep_amount.$dirty && "
"prompt_for_days_facts_form.granularity_keep_amount.$error.min\"> that is not"
" negative</span><span ng-"
"show=\"prompt_for_days_facts_form.granularity_keep_amount.$dirty && "
"prompt_for_days_facts_form.granularity_keep_amount.$error.max\"> that is "
"lower than 9999</span>."
msgstr ""
"Entrez un entier<span ng-"
"show=\"prompt_for_days_facts_form.granularity_keep_amount.$dirty && "
"prompt_for_days_facts_form.granularity_keep_amount.$error.min\"> non "
"négatif</span><span ng-"
"show=\"prompt_for_days_facts_form.granularity_keep_amount.$dirty && "
"prompt_for_days_facts_form.granularity_keep_amount.$error.max\"> et "
"inférieur à 9999</span>."

#: ui/templates/ui/index.html:175
msgid "working..."
msgstr "en cours..."
