# French translations for PROJECT.
# Copyright (C) 2012 ORGANIZATION
# This file is distributed under the same license as the PROJECT project.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2012.
#
msgid ""
msgstr ""
"Project-Id-Version: PROJECT VERSION\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2014-03-26 06:02+0000\n"
"PO-Revision-Date: 2014-05-09 17:14+0000\n"
"Last-Translator: Jean-Marc <Unknown>\n"
"Language-Team: fr <LL@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2016-07-20 14:21+0000\n"
"X-Generator: Launchpad (build 18147)\n"
"Generated-By: Babel 1.3\n"

#: glance/notifier.py:28
msgid ""
"Notifications can be sent when images are create, updated or deleted. There "
"are three methods of sending notifications, logging (via the log_file "
"directive), rabbit (via a rabbitmq queue), qpid (via a Qpid message queue), "
"or noop (no notifications sent, the default). (DEPRECATED)"
msgstr ""

#: glance/notifier.py:68
msgid "notifier_strategy was deprecated in favor of `notification_driver`"
msgstr ""

#: glance/notifier.py:229 glance/api/common.py:82
#, python-format
msgid "An error occurred during image.send notification: %(err)s"
msgstr "Une erreur a eu lieu pendant la notification image.send : %(err)s"

#: glance/notifier.py:398 glance/api/v1/upload_utils.py:226
#: glance/api/v2/image_data.py:197
#, python-format
msgid "Image storage media is full: %s"
msgstr "Le support de stockage d'image est saturé : %s"

#: glance/notifier.py:403 glance/api/v1/upload_utils.py:236
#: glance/api/v2/image_data.py:221
#, python-format
msgid "Insufficient permissions on image storage media: %s"
msgstr "Droits insuffisants sur le support de stockage d'image : %s"

#: glance/notifier.py:408
#, python-format
msgid "Cannot save data for image %(image_id)s: %(error)s"
msgstr ""
"Les données pour l'image %(image_id)s ne peuvent pas être sauvegardées : "
"erreur  %(error)s"

#: glance/notifier.py:415
#, python-format
msgid ""
"Unable to upload duplicate image data for image%(image_id)s: %(error)s"
msgstr ""
"Impossible de télécharger des données image en double pour l'image "
"%(image_id)s : %(error)s"

#: glance/notifier.py:422
#, python-format
msgid "Not allowed to upload image data for image %(image_id)s: %(error)s"
msgstr ""
"Non autorisé à télécharger des données image pour l'image %(image_id)s : "
"%(error)s"

#: glance/notifier.py:430
#, python-format
msgid ""
"Image %(image_id)s could not be found after upload. The image may have been "
"deleted during the upload: %(error)s"
msgstr ""
"Image %(image_id)s introuvable après le téléchargement. Elle a sans doute "
"été supprimée au cours du téléchargement : %(error)s"

#: glance/notifier.py:438
#, python-format
msgid ""
"Failed to upload image data for image %(image_id)s due to HTTP error: "
"%(error)s"
msgstr ""
"Echec de téléchargement des données image pour l'image %(image_id)s en "
"raison d'une erreur HTTP : %(error)s"

#: glance/notifier.py:445
#, python-format
msgid ""
"Failed to upload image data for image %(image_id)s due to internal error: "
"%(error)s"
msgstr ""
"Echec de téléchargement des données image pour l'image %(image_id)s en "
"raison d'une erreur interne : %(error)s"

#: glance/schema.py:79
#, python-format
msgid "custom properties (%(props)s) conflict with base properties"
msgstr ""
"propriétés personnalisées (%(props)s) en conflit avec les propriétés de base"

#: glance/scrubber.py:45
msgid ""
"Directory that the scrubber will use to track information about what to "
"delete. Make sure this is set in glance-api.conf and glance-scrubber.conf."
msgstr ""
"Répertoire que le nettoyeur utilisera pour identifier l'information à "
"supprimer. Assurez-vous que celui-ci est configuré dans glance-api.conf et "
"dans glance-scrubber.conf."

#: glance/scrubber.py:37
msgid "The amount of time in seconds to delay before performing a delete."
msgstr "Temps de retard en secondes avant toute suppression."

#: glance/scrubber.py:53
msgid ""
"A boolean that determines if the scrubber should clean up the files it uses "
"for taking data. Only one server in your deployment should be designated the "
"cleanup host."
msgstr ""
"Une valeur booléenne qui détermine si le nettoyeur doit nettoyer les "
"fichiers qu'il utilise pour la prise de données. Seul un serveur dans votre "
"déploiement devrait être désigné comme hôte de nettoyage."

#: glance/scrubber.py:60
msgid ""
"Items must have a modified time that is older than this value in order to be "
"candidates for cleanup."
msgstr ""
"Les objets doivent avoir une heure de modification qui est antérieure à "
"cette valeur pour être candidats pour le nettoyage."

#: glance/scrubber.py:134
#, python-format
msgid "%s file can not be read."
msgstr "Le fichier %s ne peut être lu."

#: glance/scrubber.py:158
#, python-format
msgid "%s file can not be wrote."
msgstr "Le fichier %s ne peut être écrit ."

#: glance/scrubber.py:183 glance/api/v1/images.py:1022
#, python-format
msgid "Failed to find image to delete: %(e)s"
msgstr "Impossible de trouver l'image à supprimer : %(e)s"

#: glance/scrubber.py:215
#, python-format
msgid "%s directory does not exist."
msgstr "Le répertoire %s n'existe pas."

#: glance/scrubber.py:362
#, python-format
msgid "Starting Daemon: wakeup_time=%(wakeup_time)s threads=%(threads)s"
msgstr "Lancement du démon : wakeup_time=%(wakeup_time)s threads=%(threads)s"

#: glance/scrubber.py:376
msgid "Daemon Shutdown on KeyboardInterrupt"
msgstr "Arrêt du démon sur interruption clavier"

#: glance/scrubber.py:380
msgid "Running application"
msgstr "Application en cours d'exécution"

#: glance/scrubber.py:383
#, python-format
msgid "Next run scheduled in %s seconds"
msgstr "Prochaine exécution dans %s secondes"

#: glance/scrubber.py:388
#, python-format
msgid "Initializing scrubber with configuration: %s"
msgstr "Initialisation du nettoyeur avec la configuration : %s"

#: glance/scrubber.py:412
#, python-format
msgid "Can not %s scrub jobs from queue."
msgstr "Impossible de nettoyer les tâches %s de la liste d'attente."

#: glance/scrubber.py:436
#, python-format
msgid "Scrubbing image %(id)s from %(count)d locations."
msgstr ""

#: glance/scrubber.py:451
#, python-format
msgid "Deleting URI from image %(image_id)s."
msgstr ""

#: glance/scrubber.py:464
#, python-format
msgid "Failed to delete URI from image %(image_id)s"
msgstr "Échec lors de la suppression de l'URI de l'image %(image_id)s"

#: glance/scrubber.py:594
#, python-format
msgid "%s file is not exists."
msgstr "Le fichier %s n'existe pas."

#: glance/scrubber.py:599
#, python-format
msgid "%s file contains conflicting cleanup timestamp."
msgstr "Le fichier %s contient des conflits dans l'horodatage du nettoyage."

#: glance/scrubber.py:500
#, python-format
msgid "%s file can not be created."
msgstr "Le fichier %s ne peut être créé."

#: glance/scrubber.py:514
#, python-format
msgid "Getting images deleted before %s"
msgstr "Supprimer les images avant %s"

#: glance/api/authorization.py:140 glance/api/authorization.py:151
#, python-format
msgid "You cannot get image member for %s"
msgstr "Vous ne pouvez pas obtenir le membre image pour %s"

#: glance/api/authorization.py:159
#, python-format
msgid "You cannot delete image member for %s"
msgstr "Vous ne pouvez pas supprimer le membre image pour %s"

#: glance/api/authorization.py:168
#, python-format
msgid "You cannot add image member for %s"
msgstr "Vous ne pouvez pas ajouter le membre image pour %s"

#: glance/api/authorization.py:177
#, python-format
msgid "You cannot update image member %s"
msgstr "Vous ne pouvez pas mettre à jour le membre image pour %s"

#: glance/api/authorization.py:196
#, python-format
msgid "You are not permitted to create images owned by '%s'."
msgstr "Vous n'êtes pas autorisé à créer des images détenues par '%s'."

#: glance/api/authorization.py:219
msgid "You are not permitted to create image members for the image."
msgstr "Vous n'êtes pas autorisé à créer des membres image pour l'image."

#: glance/api/authorization.py:131 glance/api/authorization.py:224
msgid "Public images do not have members."
msgstr "Les images publiques n'ont pas de membre."

#: glance/api/authorization.py:240
#, python-format
msgid "You are not permitted to modify '%(attr)s' on this %(resource)s."
msgstr ""
"Vous n'êtes pas autorisé à modifier '%(attr)s' sur cette %(resource)s."

#: glance/api/authorization.py:250
msgid "You are not permitted to modify locations for this image."
msgstr ""
"Vous n'êtes pas autorisé à modifier les emplacements pour cette image."

#: glance/api/authorization.py:274
#, python-format
msgid "You are not permitted to modify '%s' on this image."
msgstr "Vous n'êtes pas autorisé à modifier '%s' sur cette image."

#: glance/api/authorization.py:278
msgid "You are not permitted to modify this image."
msgstr "Vous n'êtes pas autorisé à modifier cette image."

#: glance/api/authorization.py:291
msgid "You are not permitted to modify tags on this image."
msgstr "Vous n'êtes pas autorisé à modifier les balises pour cette image."

#: glance/api/authorization.py:331
msgid "You are not permitted to delete this image."
msgstr "Vous n'êtes pas autorisé à supprimer cette image."

#: glance/api/authorization.py:338
msgid "You are not permitted to upload data for this image."
msgstr "Vous n'êtes pas autorisé à télécharger des données pour cette image."

#: glance/api/authorization.py:383 glance/api/authorization.py:387
#: glance/api/authorization.py:391
msgid "You are not permitted to set status on this task."
msgstr "Vous n'êtes pas autorisé à définir le statut pour cette tâche."

#: glance/api/authorization.py:450
#, python-format
msgid "You are not permitted to create this task with owner as: %s"
msgstr ""
"Vous n'êtes pas autorisé à créer cette tâche avec comme propriétaire : %s"

#: glance/api/common.py:44
#, python-format
msgid ""
"An error occurred reading from backend storage for image %(image_id)s: "
"%(err)s"
msgstr ""
"Une erreur s'est produite lors de la lecture de l'emplacement de stockage en "
"arrière-plan pour l'image %(image_id)s : %(err)s"

#: glance/api/common.py:51
#, python-format
msgid ""
"Backend storage for image %(image_id)s disconnected after writing only "
"%(bytes_written)d bytes"
msgstr ""
"Le stockage en arrière-plan pour l'image %(image_id)s a été déconnecté après "
"avoir écrit uniquement %(bytes_written)d octets"

#: glance/api/common.py:65
#, python-format
msgid "Corrupt image download for image %(image_id)s"
msgstr "téléchargement d'image endommagée pour l'image %(image_id)s"

#: glance/api/common.py:134
#, python-format
msgid ""
"User %(user)s attempted to upload an image of unknown size that will exceeed "
"the quota. %(remaining)d bytes remaining."
msgstr ""

#: glance/api/common.py:143
#, python-format
msgid ""
"User %(user)s attempted to upload an image of size %(size)d that will "
"exceeed the quota. %(remaining)d bytes remaining."
msgstr ""

#: glance/api/policy.py:34
msgid "The location of the policy file."
msgstr "L'emplacement du fichier de règles."

#: glance/api/policy.py:36
msgid "The default policy to use."
msgstr "Les règles par défaut à utiliser."

#: glance/api/policy.py:83
#, python-format
msgid "Loaded %(rule_type)spolicy rules: %(text_rules)s"
msgstr ""

#: glance/api/policy.py:96
msgid "Unable to find policy file"
msgstr "Impossible de trouver le fichier de règles"

#: glance/api/policy.py:106
#, python-format
msgid "Loading policy from %s"
msgstr ""

#: glance/api/policy.py:159 glance/quota/__init__.py:357
#, python-format
msgid "Invalid locations: %s"
msgstr "Emplacements non valides : %s"

#: glance/api/middleware/cache.py:57
msgid "Initialized image cache middleware"
msgstr "Cache de l'image du logiciel intermédiaire initialisé"

#: glance/api/middleware/cache.py:125
#, python-format
msgid "Cache hit for image '%s'"
msgstr ""

#: glance/api/middleware/cache.py:132
#, python-format
msgid ""
"Image cache contained image file for image '%s', however the registry did "
"not contain metadata for that image!"
msgstr ""

#: glance/api/middleware/cache.py:230
#, python-format
msgid "could not find %s"
msgstr "%s n'a pas pu être trouvé"

#: glance/api/middleware/cache.py:238
#, python-format
msgid "Removing image %s from cache"
msgstr "Suppression de l'image %s du cache"

#: glance/api/middleware/cache.py:250
msgid "Checksum header is missing."
msgstr "L'en-tête de la somme de contrôle est manquant."

#: glance/api/middleware/cache_manage.py:72
msgid "Initialized image cache management middleware"
msgstr ""

#: glance/api/middleware/context.py:29
msgid ""
"When true, this option sets the owner of an image to be the tenant. "
"Otherwise, the owner of the  image will be the authenticated user issuing "
"the request."
msgstr ""
"Définie sur vrai, cette option définit le propriétaire d'une image comme "
"locataire (tenant). Sinon, le propriétaire de l'image est l'utilisateur "
"authentifié qui émet la demande."

#: glance/scrubber.py:48 glance/api/middleware/context.py:34
msgid "Role used to identify an authenticated user as administrator."
msgstr ""
"Rôle utilisé pour identifier un utilisateur authentifié comme administrateur."

#: glance/api/middleware/context.py:37
msgid ""
"Allow unauthenticated users to access the API with read-only privileges. "
"This only applies when using ContextMiddleware."
msgstr ""
"Autorisez les utilisateurs non authentifiés à accéder à l'API avec des "
"privilèges en lecture seule. Ceci s'applique seulement à l'utilisation de "
"ContextMiddleware."

#: glance/api/middleware/context.py:55
msgid "Unable to retrieve request id from context"
msgstr "Impossible d'extraire l'ID de demande du contexte"

#: glance/api/middleware/context.py:120
msgid "Invalid service catalog json."
msgstr "json de catalogue de service non valide."

#: glance/api/middleware/gzip.py:33
msgid "Initialized gzip middleware"
msgstr "Logiciel intermédiaire gzip initialisé"

#: glance/api/middleware/version_negotiation.py:44
#, python-format
msgid ""
"Determining version of request: %(method)s %(path)s Accept: %(accept)s"
msgstr ""
"Détermination de la version de la demande : %(method)s %(path)s Accepter : "
"%(accept)s"

#: glance/api/middleware/version_negotiation.py:53
msgid "Using media-type versioning"
msgstr ""

#: glance/api/middleware/version_negotiation.py:57
msgid "Using url versioning"
msgstr ""

#: glance/api/middleware/version_negotiation.py:64
msgid "Unknown version. Returning version choices."
msgstr "Version inconnue. Retour au choix des versions."

#: glance/api/middleware/version_negotiation.py:69
#, python-format
msgid "Matched version: v%d"
msgstr ""

#: glance/api/v1/controller.py:44 glance/api/v1/members.py:78
#, python-format
msgid "Image with identifier %s not found"
msgstr "L'image portant l'ID %s est introuvable"

#: glance/api/v1/controller.py:49
msgid "Forbidden image access"
msgstr "Accès interdit à l'image"

#: glance/api/v1/controller.py:66
#, python-format
msgid "Image %s is not active"
msgstr "L'image %s n'est pas active"

#: glance/api/v1/controller.py:88
#, python-format
msgid "Store for image_id not found: %s"
msgstr "Magasin de l'image_id non trouvé : %s"

#: glance/api/v1/images.py:102
#, python-format
msgid "Invalid disk format '%s' for image."
msgstr "Format de disque '%s' non valide pour l'image."

#: glance/api/v1/images.py:107
#, python-format
msgid "Invalid container format '%s' for image."
msgstr "Format de conteneur '%s' non valide pour l'image."

#: glance/api/v1/images.py:132
#, python-format
msgid "Image name too long: %d"
msgstr "Nom de l'image trop long : %d"

#: glance/api/v1/images.py:117
msgid ""
"Invalid mix of disk and container formats. When setting a disk or container "
"format to one of 'aki', 'ari', or 'ami', the container and disk formats must "
"match."
msgstr ""
"Combinaison non valide de formats de disque et de conteneur. Si vous "
"définissez un disque ou un conteneur au format 'aki', 'ari' ou 'ami', les "
"formats du disque et du conteneur doivent correspondre."

#: glance/api/v1/images.py:217
#, python-format
msgid ""
"The limit has been exceeded on the number of allowed image properties. "
"Attempted: %(num)s, Maximum: %(quota)s"
msgstr ""
"La limite a été dépassée sur le nombre de propriétés d'image autorisées. "
"Tentatives : %(num)s, Maximum : %(quota)s"

#: glance/api/v1/images.py:239 glance/api/v1/images.py:283
#: glance/api/v1/images.py:317
#, python-format
msgid "Property '%s' is protected"
msgstr "La propriété '%s' est protégée"

#: glance/api/v1/images.py:433
#, python-format
msgid "Bad value passed to filter %(filter)s got %(val)s"
msgstr "Valeur incorrecte transmise pour filtrer %(filter)s, %(val)s obtenu"

#: glance/api/v1/images.py:420
#, python-format
msgid "External sourcing not supported for store %s"
msgstr ""

#: glance/api/v1/images.py:571
#, python-format
msgid "Required store %s is invalid"
msgstr "Le magasin requis %s n'est pas valide"

#: glance/api/v1/images.py:584
#, python-format
msgid "Invalid location %s"
msgstr "Emplacement non valide : %s"

#: glance/api/v1/images.py:606
#, python-format
msgid "An image with identifier %s already exists"
msgstr "Une image avec l'identificateur %s existe déjà"

#: glance/api/v1/images.py:535
#, python-format
msgid "Failed to reserve image. Got error: %(e)s"
msgstr "Échec de la réservation de l'image. Erreur : %(e)s"

#: glance/api/v1/images.py:620
msgid "Forbidden to reserve image."
msgstr "Interdiction de réserver une image."

#: glance/api/v1/images.py:569
#, python-format
msgid "Copy from external source failed: %s"
msgstr ""

#: glance/api/v1/images.py:664
msgid "Content-Type must be application/octet-stream"
msgstr "Le type de contenu doit être application/octet-stream"

#: glance/api/v1/images.py:589
#, python-format
msgid "Setting image %s to status 'saving'"
msgstr ""

#: glance/api/v1/images.py:593
#, python-format
msgid "Uploading image data for image %(image_id)s to %(scheme)s store"
msgstr ""

#: glance/api/v1/images.py:636
#, python-format
msgid ""
"duplicate operation - deleting image data for %(id)s (location:%(location)s)"
msgstr ""

#: glance/api/v1/images.py:644
#, python-format
msgid "Failed to activate image. Got error: %(e)s"
msgstr ""

#: glance/api/v1/images.py:793
msgid "It's invalid to provide multiple image sources."
msgstr "Il est invalide de fournir plusieurs sources d'image"

#: glance/api/v1/images.py:694
msgid "Triggering asynchronous copy from external source"
msgstr "Déclenchement de la copie asynchrone à partir d'une source externe"

#: glance/api/v1/images.py:828
#, python-format
msgid ""
"Provided image size must match the stored image size. (provided size: "
"%(ps)d, stored size: %(ss)d)"
msgstr ""
"La taille de l'image fournie doit correspondre à la taille de l'image "
"stockée. (taille fournie : %(ps)d, taille stockée : %(ss)d)"

#: glance/api/v1/images.py:958
msgid "Forbidden to update deleted image."
msgstr "Interdiction de mettre à jour l'image supprimée."

#: glance/api/v1/images.py:942
#, python-format
msgid "Forbidden to modify '%s' of active image."
msgstr "interdiction de modifier '%s' de l'image active."

#: glance/api/v1/images.py:997
msgid "Cannot upload to an unqueued image"
msgstr ""
"Téléchargement impossible dans une image non placée en file d'attente"

#: glance/api/v1/images.py:1021
msgid "Attempted to update Location field for an image not in queued status."
msgstr ""
"Vous avez tenté de mettre à jour la zone Emplacement pour une image qui n'a "
"pas le statut en file d'attente."

#: glance/api/v1/images.py:924 glance/registry/api/v1/images.py:461
#, python-format
msgid "Failed to update image metadata. Got error: %(e)s"
msgstr ""
"Impossible de mettre à jour les métadonnées de l'image. Erreur : %(e)s"

#: glance/api/v1/images.py:931
#, python-format
msgid "Failed to find image to update: %(e)s"
msgstr "Impossible de retrouver l'image pour la mise à jour : %(e)s"

#: glance/api/v1/images.py:938
#, python-format
msgid "Forbidden to update image: %(e)s"
msgstr "Interdiction de mettre à jour l'image : %(e)s"

#: glance/api/v1/images.py:1114
msgid "Image is protected"
msgstr "L'image est protégée"

#: glance/api/v1/images.py:1121
#, python-format
msgid "Forbidden to delete a %s image."
msgstr "Interdiction de supprimer une image  %s"

#: glance/api/v1/images.py:1128 glance/api/v2/image_members.py:67
#: glance/api/v2/image_tags.py:52 glance/api/v2/image_tags.py:81
#, python-format
msgid "Image %s not found."
msgstr "Image %s introuvable."

#: glance/api/v1/images.py:1029
#, python-format
msgid "Forbidden to delete image: %(e)s"
msgstr "Interdiction de supprimer l'image : %(e)s"

#: glance/api/v1/images.py:1201
#, python-format
msgid "Store for scheme %s not found"
msgstr "Magasin du schéma %s non trouvé"

#: glance/api/v1/images.py:1240 glance/api/v1/upload_utils.py:246
#, python-format
msgid "Denying attempt to upload image larger than %d bytes."
msgstr ""
"Refus de la tentative de téléchargement d'une image dont la taille est "
"supérieure à %d octets."

#: glance/api/v1/members.py:42 glance/registry/api/v1/members.py:34
msgid "No authenticated user"
msgstr "Aucun utilisateur authentifié"

#: glance/api/v1/members.py:55
#, python-format
msgid "Image with identifier %s has been deleted."
msgstr "L'image avec l'identificateur %s a été supprimée."

#: glance/api/v1/members.py:82
msgid "Unauthorized image access"
msgstr "Accès à l'image non autorisé"

#: glance/api/v1/members.py:120 glance/common/exception.py:296
#, python-format
msgid ""
"The limit has been exceeded on the number of allowed image members for this "
"image. Attempted: %(attempted)s, Maximum: %(maximum)s"
msgstr ""
"La limite a été dépassée sur le nombre de membres d'image autorisés pour "
"cette image. Tentatives : %(attempted)s, Maximum : %(maximum)s"

#: glance/api/v1/upload_utils.py:72
#, python-format
msgid "Unable to kill image %(id)s: "
msgstr "Impossible de supprimer l'image %(id)s : "

#: glance/api/v1/upload_utils.py:107
#, python-format
msgid "Cleaning up %s after exceeding the quota"
msgstr "Nettoyage de %s après dépassement du quota"

#: glance/api/v1/upload_utils.py:131
#, python-format
msgid ""
"Supplied %(attr)s (%(supplied)s) and %(attr)s generated from uploaded image "
"(%(actual)s) did not match. Setting image status to 'killed'."
msgstr ""
"%(attr)s (%(supplied)s) fournis et %(attr)s générés depuis l'image "
"téléchargée (%(actual)s) ne correspondent pas. Définition du statut de "
"l'image sur 'arrêté'."

#: glance/api/v1/upload_utils.py:135
#, python-format
msgid ""
"Updating image %(image_id)s data. Checksum set to %(checksum)s, size set to "
"%(size)d"
msgstr ""

#: glance/api/v1/upload_utils.py:179
#, python-format
msgid ""
"Image %s could not be found after upload. The image may have been deleted "
"during the upload."
msgstr ""
"L'image %s est introuvable après le chargement. L'image a peut-être été "
"supprimée lors du chargement."

#: glance/api/v1/upload_utils.py:204
#, python-format
msgid "Attempt to upload duplicate image: %s"
msgstr "Tentative de téléchargement d'image en double : %s"

#: glance/api/v1/upload_utils.py:216
#, python-format
msgid "Forbidden upload attempt: %s"
msgstr "Tentative de téléchargement interdite : %s"

#: glance/api/v1/upload_utils.py:212 glance/api/v2/images.py:132
#, python-format
msgid "Denying attempt to upload image because it exceeds the .quota: %s"
msgstr ""
"Tentative de téléversement d'image refusée car celle-ci dépasse le quota : %s"

#: glance/api/v1/upload_utils.py:226
#, python-format
msgid "Received HTTP error while uploading image %s"
msgstr "Erreur HTTP reçue lors du téléversement de l'image %s"

#: glance/api/v1/upload_utils.py:277
msgid "Client disconnected before sending all data to backend"
msgstr "Client déconnecté avant l'envoi de toutes les données au backend"

#: glance/api/v1/upload_utils.py:285
#, python-format
msgid "Failed to upload image %s"
msgstr "Impossible de charger l'image %s"

#: glance/api/v2/image_data.py:56
#, python-format
msgid "Unable to restore image %(image_id)s: %(e)s"
msgstr "Impossible de restaurer l'image %(image_id)s : %(e)s"

#: glance/api/v2/image_data.py:71
#, python-format
msgid ""
"Image %(id)s could not be found after upload.The image may have been deleted "
"during the upload: %(error)s Cleaning up the chunks uploaded"
msgstr ""
"L'image %(id)s n'a pas pu être trouvée après le téléversement. Il se peut "
"que l'image ait été supprimée lors du téléversement : %(error)s Nettoyage "
"des morceaux téléversés"

#: glance/api/v2/image_data.py:98
#, python-format
msgid "Not allowed to upload image data for image %s"
msgstr ""

#: glance/api/v2/image_data.py:205
#, python-format
msgid "Image exceeds the storage quota: %s"
msgstr "l'image %s dépasse le quota de stockage"

#: glance/api/v2/image_data.py:213
#, python-format
msgid "The incoming image is too large: %s"
msgstr "L'image entrante est trop grande : %s"

#: glance/api/v2/image_data.py:135
msgid "Failed to upload image data due to HTTP error"
msgstr ""
"Impossible de téléverser les données d'image en raison d'une erreur HTTP"

#: glance/api/v2/image_data.py:140
msgid "Failed to upload image data due to internal error"
msgstr ""
"Impossible de téléverser les données d'image en raison d'une erreur interne"

#: glance/api/glare/v0_1/glare.py:529 glance/api/v2/image_members.py:242
#: glance/api/v2/images.py:365 glance/api/v2/metadef_namespaces.py:407
#: glance/api/v2/metadef_objects.py:237 glance/api/v2/metadef_properties.py:183
#: glance/api/v2/metadef_resource_types.py:150
#: glance/api/v2/metadef_tags.py:269 glance/api/v2/tasks.py:151
#: glance/tests/functional/v2/test_metadef_resourcetypes.py:144
msgid "Body expected in request."
msgstr "Corps attendu dans la demande"

#: glance/api/v2/image_members.py:253
msgid "Member to be added not specified"
msgstr "Membre à ajouter non spécifié"

#: glance/api/v2/image_members.py:256
msgid "Member can't be empty"
msgstr "Membre ne peut pas être vide"

#: glance/api/v2/image_members.py:269
msgid "Status not specified"
msgstr "Statut non spécifié"

#: glance/api/v2/image_members.py:328
msgid "An identifier for the image member (tenantId)"
msgstr "Identificateur pour le membre de l'image (tenantId)"

#: glance/api/v2/image_members.py:332 glance/api/v2/images.py:834
msgid "An identifier for the image"
msgstr "Identificateur de l'image"

#: glance/api/v2/image_members.py:338
msgid "Date and time of image member creation"
msgstr "Date et heure de création du membre de l'image"

#: glance/api/v2/image_members.py:345
msgid "Date and time of last modification of image member"
msgstr "Date et heure de dernière modification du membre de l'image"

#: glance/api/v2/image_members.py:350
msgid "The status of this image member"
msgstr "Statut de ce membre d'image"

#: glance/api/v2/images.py:191 glance/api/v2/images.py:227
#, python-format
msgid "Property %s does not exist."
msgstr "La propriété %s n'existe pas."

#: glance/api/v2/images.py:205
#, python-format
msgid "Property %s already present."
msgstr "Propriété %s déjà présente."

#: glance/api/v2/images.py:222
#, python-format
msgid "Property %s may not be removed."
msgstr "La propriété %s n'est peut-être pas supprimée."

#: glance/api/v2/images.py:241
#, python-format
msgid "Failed to find image %(image_id)s to delete"
msgstr "Échec pour trouver image %(image_id)s à supprimer."

#: glance/api/v2/images.py:270
msgid "Cannot replace locations from a non-empty list to a non-empty list."
msgstr ""
"Impossible de remplacer les localisations d'une liste non vide vers une "
"autre liste non vide"

#: glance/api/v2/images.py:296
msgid "Invalid position for adding a location."
msgstr "Position non valide pour l'ajout d'un emplacement."

#: glance/api/v2/images.py:322
msgid "Invalid position for removing a location."
msgstr "Position non valide pour la suppression d'un emplacement."

#: glance/api/v2/images.py:373 glance/api/v2/images.py:487
#: glance/api/v2/metadef_namespaces.py:415 glance/api/v2/metadef_objects.py:314
#: glance/api/v2/metadef_properties.py:191
#: glance/api/v2/metadef_resource_types.py:158
#: glance/api/v2/metadef_tags.py:346
#: glance/tests/functional/v2/test_metadef_resourcetypes.py:152
#, python-format
msgid "Attribute '%s' is read-only."
msgstr "L'attribut '%s' est en lecture seule."

#: glance/api/v2/images.py:434
#, python-format
msgid "Unable to find '%s' in JSON Schema change"
msgstr "Impossible de trouver '%s' dans la modification du schéma JSON"

#: glance/api/v2/images.py:420
msgid ""
"Operation objects must contain only one member named \"add\", \"remove\", or "
"\"replace\"."
msgstr ""
"Les objets d'opération doivent contenir un seul membre nommé \"add\", "
"\"remove\" ou \"replace\"."

#: glance/api/v2/images.py:425
msgid ""
"Operation objects must contain exactly one member named \"add\", \"remove\", "
"or \"replace\"."
msgstr ""
"Les objets d'opération doivent contenir exactement un seul membre nommé "
"\"add\", \"remove\" ou \"replace\"."

#: glance/api/v2/images.py:462
#, python-format
msgid "Pointer `%s` does not start with \"/\"."
msgstr "Le pointeur `%s` ne commence pas par \"/\"."

#: glance/api/v2/images.py:465
#, python-format
msgid "Pointer `%s` contains adjacent \"/\"."
msgstr "Le pointeur `%s` contient des éléments \"/\" adjacent."

#: glance/api/v2/images.py:468
#, python-format
msgid "Pointer `%s` end with \"/\"."
msgstr "le pointeur '%s' se termine avec un \"/\"."

#: glance/api/v2/images.py:471
#, python-format
msgid "Pointer `%s` does not contains valid token."
msgstr "le Pointeur '%s' ne contient pas de jeton valide."

#: glance/api/v2/images.py:474
#, python-format
msgid "Pointer `%s` contains \"~\" not part of a recognized escape sequence."
msgstr ""
"Le pointeur `%s` contient \"~\" qui ne fait pas partie d'une séquence "
"d'échappement reconnue."

#: glance/api/v2/images.py:480
#, python-format
msgid "Operation \"%s\" requires a member named \"value\"."
msgstr "L'opération \"%s\" requiert un membre nommé \"value\"."

#: glance/api/v2/images.py:490
#, python-format
msgid "Attribute '%s' is reserved."
msgstr "Attribut '%s' est réservé."

#: glance/api/v2/images.py:520
#, python-format
msgid "Invalid JSON pointer for this resource: '/%s'"
msgstr "Pointeur JSON invalide pour cette ressource  : '%s'"

#: glance/api/v2/images.py:532
msgid "Unrecognized JSON Schema draft version"
msgstr "Version brouillon du schéma JSON non reconnue"

#: glance/api/v2/images.py:554
msgid "Request body must be a JSON array of operation objects."
msgstr ""
"Le corps de la demande doit être une matrice JSON d'objets Opération."

#: glance/api/v2/images.py:559
msgid "Operations must be JSON objects."
msgstr "Les opérations doivent être des objets JSON."

#: glance/api/v2/images.py:583 glance/api/v2/metadef_namespaces.py:462
#: glance/api/v2/metadef_objects.py:301 glance/api/v2/metadef_tags.py:293
#: glance/api/v2/tasks.py:187 glance/registry/api/v1/images.py:267
msgid "limit param must be an integer"
msgstr "le paramètre limit doit être un entier"

#: glance/api/v2/images.py:587 glance/api/v2/metadef_namespaces.py:466
#: glance/api/v2/metadef_objects.py:305 glance/api/v2/metadef_tags.py:297
#: glance/api/v2/tasks.py:191 glance/registry/api/v1/images.py:270
msgid "limit param must be positive"
msgstr "le paramètre limit doit être positif"

#: glance/api/glare/v0_1/glare.py:687 glance/api/v2/images.py:604
#: glance/api/v2/metadef_namespaces.py:444 glance/api/v2/metadef_objects.py:283
#: glance/api/v2/metadef_tags.py:275 glance/api/v2/tasks.py:157
#, python-format
msgid "Invalid sort direction: %s"
msgstr "Sens de tri non valide : %s"

#: glance/api/v2/images.py:611
#, python-format
msgid "Invalid status: %s"
msgstr "Statut non valide : %s"

#: glance/api/v2/images.py:620 glance/api/v2/metadef_namespaces.py:453
#: glance/api/v2/metadef_objects.py:292 glance/api/v2/metadef_tags.py:284
#, python-format
msgid "Invalid visibility value: %s"
msgstr "Valeur de visibilité non valide : %s"

#: glance/api/v2/images.py:840
msgid "Descriptive name for the image"
msgstr "Nom descriptif de l'image"

#: glance/api/v2/images.py:825
msgid "Status of the image (READ-ONLY)"
msgstr "Statut de l'image (READ-ONLY)"

#: glance/api/v2/images.py:852
msgid "Scope of image accessibility"
msgstr "Périmètre d'accessibilité de l'image"

#: glance/api/v2/images.py:857
msgid "If true, image will not be deletable."
msgstr "Si true, l'image ne pourra pas être supprimée."

#: glance/api/v2/images.py:840
msgid "md5 hash of image contents. (READ-ONLY)"
msgstr "Hachage md5 du contenu d'image. (READ-ONLY)"

#: glance/api/v2/images.py:867
msgid "Owner of the image"
msgstr "Propriétaire de l'image"

#: glance/api/v2/images.py:850
msgid "Size of image file in bytes (READ-ONLY)"
msgstr "Taille du fichier d'image en octets (READ-ONLY)"

#: glance/api/v2/images.py:854
msgid "Virtual size of image in bytes (READ-ONLY)"
msgstr "Taille virtuelle de l'image en octets (READ-ONLY)"

#: glance/api/v2/images.py:882
msgid "Format of the container"
msgstr "Format du conteneur"

#: glance/api/v2/images.py:887
msgid "Format of the disk"
msgstr "Format du disque"

#: glance/api/v2/images.py:868
msgid "Date and time of image registration (READ-ONLY)"
msgstr "Date et heure d'enregistrement d'image (READ-ONLY)"

#: glance/api/v2/images.py:876
msgid "Date and time of the last image modification (READ-ONLY)"
msgstr "Date et heure de dernière modification d'image (READ-ONLY)"

#: glance/api/v2/images.py:908
msgid "List of strings related to the image"
msgstr "Liste des chaînes associées à l'image"

#: glance/api/v2/images.py:890
msgid "URL to access the image file kept in external store (READ-ONLY)"
msgstr ""
"URL permettant d'accéder au fichier image conservé dans le magasin externe "
"(READ-ONLY)"

#: glance/api/v2/images.py:922
msgid "Amount of ram (in MB) required to boot image."
msgstr ""
"Quantité de mémoire RAM (en Mo) requise pour l'image d'initialisation."

#: glance/api/v2/images.py:926
msgid "Amount of disk space (in GB) required to boot image."
msgstr ""
"Quantité d'espace disque (en Go) requise pour l'image d'initialisation."

#: glance/api/v2/images.py:959
msgid "A set of URLs to access the image file kept in external store"
msgstr ""
"Ensemble d'URL pour accéder au fichier image conservé dans le magasin externe"

#: glance/api/v2/images.py:798
#, python-format
msgid ""
"Could not find schema properties file %s. Continuing without custom "
"properties"
msgstr ""

#: glance/api/v2/tasks.py:66
#, python-format
msgid "Forbidden to create task. Reason: %(reason)s"
msgstr "Impossible de créer la tâche. Raison : %(reason)s"

#: glance/api/v2/tasks.py:109
#, python-format
msgid "Failed to find task %(task_id)s. Reason: %(reason)s"
msgstr ""
"Échec lors de la recherche de la tâche %(task_id)s. Raison : %(reason)s"

#: glance/api/v2/tasks.py:114
#, python-format
msgid "Forbidden to get task %(task_id)s. Reason: %(reason)s"
msgstr "Interdiction d'accéder à la tâche %(task_id)s. Raison : %(reason)s"

#: glance/api/v2/tasks.py:128
msgid "Body expected in request"
msgstr "Corps attendu dans la requête"

#: glance/api/v2/tasks.py:166
#, python-format
msgid "Invalid status value: %s"
msgstr "Valeur de statut non valide : %s"

#: glance/api/v2/tasks.py:172
#, python-format
msgid "Invalid type value: %s"
msgstr "Type de valeur non valide: %s"

#: glance/api/v2/tasks.py:179 glance/registry/api/v1/images.py:279
msgid "Invalid marker format"
msgstr "Format de marqueur non valide"

#: glance/api/v2/tasks.py:200
#, python-format
msgid "Task '%s' is required"
msgstr "La tâche '%s' est obligatoire"

#: glance/api/v2/tasks.py:325
msgid "An identifier for the task"
msgstr "Un identificateur pour la tâche"

#: glance/api/v2/tasks.py:326
msgid ""
"^([0-9a-fA-F]){8}-([0-9a-fA-F]){4}-([0-9a-fA-F]){4}-([0-9a-fA-F]){4}-([0-9a-"
"fA-F]){12}$"
msgstr ""
"^([0-9a-fA-F]){8}-([0-9a-fA-F]){4}-([0-9a-fA-F]){4}-([0-9a-fA-F]){4}-([0-9a-"
"fA-F]){12}$"

#: glance/api/v2/tasks.py:331
msgid "The type of task represented by this content"
msgstr "Le type de tâche représenté par ce contenu"

#: glance/api/v2/tasks.py:338
msgid "The current status of this task"
msgstr "L'état actuel de cette tâche"

#: glance/api/v2/tasks.py:348
msgid "The parameters required by task, JSON blob"
msgstr "Les paramètres requis par la tâche, blob JSON"

#: glance/api/v2/tasks.py:352
msgid "The result of current task, JSON blob"
msgstr "Le résultat de la tâche en cours, blob JSON"

#: glance/api/v2/tasks.py:356
msgid "An identifier for the owner of this task"
msgstr "Un identificateur pour le propriétaire de cette tâche"

#: glance/api/v2/tasks.py:360
msgid ""
"Human-readable informative message only included when appropriate (usually "
"on failure)"
msgstr ""
"Message d'information lisible par l'homme inclus uniquement si approprié "
"(habituellement en cas d'incident)"

#: glance/api/v2/tasks.py:365
msgid "Datetime when this resource would be subject to removal"
msgstr ""
"Date-heure à laquelle cette ressource serait soumise à une suppression"

#: glance/api/v2/tasks.py:370
msgid "Datetime when this resource was created"
msgstr "Date-heure à laquelle cette ressource a été créée"

#: glance/api/v2/tasks.py:374
msgid "Datetime when this resource was updated"
msgstr "Date-heure à laquelle cette ressource a été mise à jour"

#: glance/cmd/control.py:104
#, python-format
msgid "%(serv)s appears to already be running: %(pid)s"
msgstr "%(serv)s semble déjà en cours d'exécution : %(pid)s"

#: glance/cmd/control.py:108
#, python-format
msgid "Removing stale pid file %s"
msgstr "Suppression du fichier PID %s périmé"

#: glance/cmd/control.py:117
msgid "Unable to increase file descriptor limit.  Running as non-root?"
msgstr ""
"Impossible d'augmenter la limite de descripteur de fichier. Exécution en "
"tant que non root ?"

#: glance/cmd/control.py:167
#, python-format
msgid "%(verb)sing %(serv)s"
msgstr "%(verb)s %(serv)s"

#: glance/cmd/control.py:179
#, python-format
msgid "unable to launch %(serv)s. Got error: %(e)s"
msgstr "impossible de lancer %(serv)s. Erreur : %(e)s"

#: glance/cmd/control.py:210
#, python-format
msgid "%(serv)s (pid %(pid)s) is running..."
msgstr "%(serv)s (pid %(pid)s) est en cours d'exécution..."

#: glance/cmd/control.py:213
#, python-format
msgid "%s is stopped"
msgstr "%s est arrêté"

#: glance/cmd/control.py:229
#, python-format
msgid ""
"Unable to create pid file %(pid)s.  Running as non-root?\n"
"Falling back to a temp file, you can stop %(service)s service using:\n"
"  %(file)s %(server)s stop --pid-file %(fb)s"
msgstr ""
"Impossible de créer le fichier PID %(pid)s. Exécution en tant que non root "
"?\n"
"Rétablissement vers un fichier temporaire. Vous pouvez arrêter le service "
"%(service)s avec :\n"
"  %(file)s %(server)s stop --pid-file %(fb)s"

#: glance/cmd/control.py:281
#, python-format
msgid "Stopping %(serv)s (pid %(pid)s) with signal(%(sig)s)"
msgstr "Arrêt de %(serv)s (pid %(pid)s) avec le signal (%(sig)s)"

#: glance/cmd/control.py:263 glance/cmd/control.py:285
#, python-format
msgid "Process %d not running"
msgstr "Le processus %d n'est pas en fonctionnement"

#: glance/cmd/control.py:292
#, python-format
msgid "Waited 15 seconds for pid %(pid)s (%(file)s) to die; giving up"
msgstr ""
"Attente de la fin du pid %(pid)s (%(file)s) pendant 15 secondes ; abandon en "
"cours"

#: glance/cmd/control.py:295
#, python-format
msgid "%s is already stopped"
msgstr "%s est déjà stoppé"

#: glance/cmd/control.py:346
#, python-format
msgid "Supressed respawn as %(serv)s was %(rsn)s."
msgstr ""

#: glance/cmd/replicator.py:106
#, python-format
msgid ""
"The image %s is already present on the slave, but our check for it did not "
"find it. This indicates that we do not have permissions to see all the "
"images on the slave server."
msgstr ""
"L'image %s est déjà présente sur l'esclave mais notre recherche n'a pas "
"permis de la trouver. Cela indique que nous sommes pas autorisés à afficher "
"toutes les images sur le serveur esclave."

#: glance/cmd/replicator.py:105
#, python-format
msgid ""
"Request: %(method)s http://%(server)s:%(port)s%(url)s with headers "
"%(headers)s"
msgstr ""

#: glance/cmd/replicator.py:118
#, python-format
msgid "Response: %(code)s %(status)s %(headers)s"
msgstr ""

#: glance/cmd/replicator.py:240 glance/cmd/replicator.py:259
msgid "Image post done"
msgstr ""

#: glance/cmd/replicator.py:326 glance/cmd/replicator.py:358
#: glance/cmd/replicator.py:434 glance/cmd/replicator.py:509
#: glance/cmd/replicator.py:579
msgid "Too few arguments."
msgstr "Trop peu d'arguments."

#: glance/cmd/replicator.py:287 glance/cmd/replicator.py:325
#: glance/cmd/replicator.py:410 glance/cmd/replicator.py:490
#: glance/cmd/replicator.py:567
msgid "Bad format of the given arguments."
msgstr ""

#: glance/cmd/replicator.py:298
#, python-format
msgid "Considering image: %(image)s"
msgstr ""

#: glance/cmd/replicator.py:342
#, python-format
msgid "Total size is %(size)d bytes across %(img_count)d images"
msgstr "La taille totale est de %(size)d octets sur %(img_count)d images"

#: glance/cmd/replicator.py:333 glance/cmd/replicator.py:423
#, python-format
msgid "Considering: %s"
msgstr ""

#: glance/cmd/replicator.py:337
msgid "... storing"
msgstr "... stockage"

#: glance/cmd/replicator.py:348
msgid "... image is active"
msgstr "... l'image est active"

#: glance/cmd/replicator.py:368
#, python-format
msgid "metadata diff -- master has extra keys: %(keys)s"
msgstr ""

#: glance/cmd/replicator.py:374
#, python-format
msgid ""
"metadata diff -- value differs for key %(key)s: master \"%(master_value)s\" "
"vs slave \"%(slave_value)s\""
msgstr ""

#: glance/cmd/replicator.py:432
#, python-format
msgid "Stripping %(header)s from saved metadata"
msgstr ""

#: glance/cmd/replicator.py:440
#, python-format
msgid "Image %s already present"
msgstr ""

#: glance/cmd/replicator.py:444 glance/cmd/replicator.py:524
#: glance/cmd/replicator.py:590
#, python-format
msgid "Stripping %(header)s from slave metadata"
msgstr ""

#: glance/cmd/replicator.py:449 glance/cmd/replicator.py:529
msgid "... metadata has changed"
msgstr "... les métadonnées ont changé"

#: glance/cmd/replicator.py:456
msgid "... dump is missing image data, skipping"
msgstr ""

#: glance/cmd/replicator.py:505
#, python-format
msgid "Considering %(id)s"
msgstr ""

#: glance/cmd/replicator.py:508 glance/cmd/replicator.py:520
#: glance/cmd/replicator.py:586
#, python-format
msgid "Stripping %(header)s from master metadata"
msgstr ""

#: glance/cmd/replicator.py:535
#, python-format
msgid "%s is being synced"
msgstr "%s est en train d'être synchronisé"

#: glance/cmd/replicator.py:596
#, python-format
msgid ""
"%(image_id)s: field %(key)s differs (source is %(master_value)s, destination "
"is %(slave_value)s)"
msgstr ""

#: glance/cmd/replicator.py:606
#, python-format
msgid "%(image_id)s is identical"
msgstr ""

#: glance/cmd/replicator.py:610
#, python-format
msgid "%s: entirely missing from the destination"
msgstr ""

#: glance/cmd/replicator.py:694
#, python-format
msgid "Unknown command: %s"
msgstr "commande %s inconnue"

#: glance/common/auth.py:190 glance/common/auth.py:229
#, python-format
msgid "Unexpected response: %s"
msgstr "Réponse inattendue : %s"

#: glance/common/auth.py:257
#, python-format
msgid "Unknown auth strategy '%s'"
msgstr "Stratégie d'autorisation inconnue '%s'"

#: glance/common/auth.py:277
#, python-format
msgid "Encountered service with no \"type\": %s"
msgstr "Service trouvé sans \"type\" : %s"

#: glance/common/client.py:243
msgid ""
"You have selected to use SSL in connecting, and you have supplied a cert, "
"however you have failed to supply either a key_file parameter or set the "
"GLANCE_CLIENT_KEY_FILE environ variable"
msgstr ""
"Vous avez choisi d'utiliser SSL pour la connexion et avez fourni un "
"certificat, cependant, vous n'avez pas fourni de paramètre key_file ou "
"n'avez pas défini la variable d'environnement GLANCE_CLIENT_KEY_FILE"

#: glance/common/client.py:251
msgid ""
"You have selected to use SSL in connecting, and you have supplied a key, "
"however you have failed to supply either a cert_file parameter or set the "
"GLANCE_CLIENT_CERT_FILE environ variable"
msgstr ""
"Vous avez choisi d'utiliser SSL pour la connexion et avez fourni une clé, "
"cependant, vous n'avez pas fourni de paramètre cert_file ou n'avez pas "
"défini la variable d'environnement GLANCE_CLIENT_CERT_FILE"

#: glance/common/client.py:260
#, python-format
msgid "The key file you specified %s does not exist"
msgstr "Le fichier de clés que vous avez spécifié %s n'existe pas"

#: glance/common/client.py:267
#, python-format
msgid "The cert file you specified %s does not exist"
msgstr "Le fichier de certificats que vous avez spécifié %s n'existe pas"

#: glance/common/client.py:274
#, python-format
msgid "The CA file you specified %s does not exist"
msgstr ""
"Le fichier d'autorité de certification que vous avez spécifié %s n'existe pas"

#: glance/common/client.py:309
#, python-format
msgid "Configuring from URL: %s"
msgstr ""

#: glance/common/client.py:321
#, python-format
msgid "Appending doc_root %(doc_root)s to URL %(url)s"
msgstr ""

#: glance/common/client.py:397
#, python-format
msgid "Constructed URL: %s"
msgstr "URL construite : %s"

#: glance/common/config.py:35
msgid ""
"Partial name of a pipeline in your paste configuration file with the service "
"name removed. For example, if your paste section name is [pipeline:glance-"
"api-keystone] use the value \"keystone\""
msgstr ""
"Nom partiel d'un pipeline dans le fichier de configuration de collage avec "
"le nom de service supprimé. Par exemple, si votre section de collage est "
"nommée [pipeline:glance-api-keystone], utilisez la valeur \"keystone\""

#: glance/common/config.py:41
msgid "Name of the paste configuration file."
msgstr "Nom du fichier de configuration de collage."

#: glance/common/config.py:46
msgid "Supported values for the 'container_format' image attribute"
msgstr "Valeurs prises en charge pour l'attribut d'image 'container_format'"

#: glance/common/config.py:53
msgid "Supported values for the 'disk_format' image attribute"
msgstr "Valeurs prises en charge pour l'attribut d'image 'disk_format'"

#: glance/common/config.py:61
msgid ""
"Time in hours for which a task lives after, either succeeding or failing"
msgstr ""
"Durée de vie en heures d'une tâche suite à une réussite ou à un échec"

#: glance/common/config.py:91
msgid ""
"Whether to allow users to specify image properties beyond what the image "
"schema provides"
msgstr ""
"Indique si les utilisateurs sont autorisés à spécifier des propriétés "
"d'image en plus des propriétés fournies par le schéma image"

#: glance/common/config.py:94
msgid ""
"Maximum number of image members per image. Negative values evaluate to "
"unlimited."
msgstr ""
"Nombre maximum de membres d'image par image. Une valeur négative signifie "
"illimité."

#: glance/common/config.py:97
msgid ""
"Maximum number of properties allowed on an image. Negative values evaluate "
"to unlimited."
msgstr ""
"Nombre maximum de propriétés autorisées sur une image. Une valeur négative "
"signifie illimité."

#: glance/common/config.py:100
msgid ""
"Maximum number of tags allowed on an image. Negative values evaluate to "
"unlimited."
msgstr ""
"Nombre maximum de balises autorisées sur une image. Une valeur négative "
"signifie illimité."

#: glance/common/config.py:103
msgid ""
"Maximum number of locations allowed on an image. Negative values evaluate to "
"unlimited."
msgstr ""
"Nombre maximum d'emplacements autorisés sur une image. Une valeur négative "
"signifie illimité."

#: glance/common/config.py:106
msgid "Python module path of data access API"
msgstr "API d'accès aux données du chemin du module Python"

#: glance/common/config.py:108
msgid ""
"Default value for the number of items returned by a request if not specified "
"explicitly in the request"
msgstr ""
"Valeur par défaut pour le nombre d'éléments renvoyés par une demande, si "
"celle-ci n'est pas explicitement définie dans la demande"

#: glance/common/config.py:111
msgid ""
"Maximum permissible number of items that could be returned by a request"
msgstr ""
"Nombre d'éléments maximum autorisés qui peuvent être renvoyés par une demande"

#: glance/common/config.py:114
msgid ""
"Whether to include the backend image storage location in image properties. "
"Revealing storage location can be a security risk, so use this setting with "
"caution!"
msgstr ""
"Indique si l'emplacement de stockage de l'image d'arrière-plan doit être "
"inclus dans les propriétés de l'image. Ceci peut poser des problèmes de "
"sécurité, donc soyez prudent dans l'utilisation de ce paramètre !"

#: glance/common/config.py:95
msgid ""
"Whether to include the backend image locations in image properties. "
"Revealing storage location can be a security risk, so use this setting with "
"caution!  The overrides show_image_direct_url."
msgstr ""
"Si vous souhaitez inclure les emplacements de l'image en arrière-plan dans "
"les propriétés de l'image. La divulgation de l'emplacement de stockage peut "
"constituer un risque pour la sécurité, utilisez donc ce paramètre avec "
"précaution ! Ceci prime sur « show_image_direct_url »."

#: glance/common/config.py:100
msgid ""
"Maximum size of image a user can upload in bytes. Defaults to 1099511627776 "
"bytes (1 TB)."
msgstr ""
"Taille maximale de l'image en octets qu'un utilisateur peut téléverser. Par "
"défaut, 1 099 511 627 776 octets (1 To)."

#: glance/common/config.py:103
msgid ""
"Set a system wide quota for every user.  This value is the total number of "
"bytes that a user can use across all storage systems.  A value of 0 means "
"unlimited."
msgstr ""

#: glance/common/config.py:147
msgid "Deploy the v1 OpenStack Images API."
msgstr "Déploiement de l'API v1 OpenStack Images."

#: glance/common/config.py:149
msgid "Deploy the v2 OpenStack Images API."
msgstr "Déploiement de l'API v2 OpenStack Images."

#: glance/common/config.py:151
msgid "Deploy the v1 OpenStack Registry API."
msgstr "Déployez l'API du registre OpenStack V1."

#: glance/common/config.py:153
msgid "Deploy the v2 OpenStack Registry API."
msgstr "Déployez l'API du registre OpenStack V2."

#: glance/common/config.py:155
msgid "The hostname/IP of the pydev process listening for debug connections"
msgstr ""
"Nom d'hôte/IP du processus pydev en mode écoute pour les connexions de "
"débogage"

#: glance/common/config.py:158
msgid "The port on which a pydev process is listening for connections."
msgstr ""
"Port sur lequel un processus pydev est en mode écoute des connexions."

#: glance/common/config.py:121
msgid ""
"Key used for encrypting sensitive metadata while talking to the registry or "
"database."
msgstr ""
"Clé utilisée pour le chiffrement des métadonnées sensibles lors d'une "
"discussion avec le registre ou la base de données."

#: glance/common/config.py:228
#, python-format
msgid "Unable to locate paste config file for %s."
msgstr ""
"Impossible de localiser le fichier de configuration du collage pour %s."

#: glance/common/config.py:207
#, python-format
msgid "Loading %(app_name)s from %(conf_file)s"
msgstr ""

#: glance/common/config.py:267
#, python-format
msgid ""
"Unable to load %(app_name)s from configuration file %(conf_file)s.\n"
"Got: %(e)r"
msgstr ""
"Impossible de charger %(app_name)s depuis le fichier de configuration "
"%(conf_file)s.\n"
"Résultat : %(e)r"

#: glance/common/exception.py:40
msgid "An unknown exception occurred"
msgstr "Une exception inconnue s'est produite"

#: glance/common/exception.py:65
#, python-format
msgid "Missing required credential: %(required)s"
msgstr "Données d'identification obligatoires manquantes : %(required)s"

#: glance/common/exception.py:69
#, python-format
msgid ""
"Incorrect auth strategy, expected \"%(expected)s\" but received "
"\"%(received)s\""
msgstr ""
"Stratégie d'autorisation incorrecte, valeur attendue \"%(expected)s\" mais "
"valeur obtenue \"%(received)s\""

#: glance/common/exception.py:74
msgid "An object with the specified identifier was not found."
msgstr "Un objet avec l'identificateur spécifié est introuvable."

#: glance/common/exception.py:76
#, python-format
msgid "Unknown scheme '%(scheme)s' found in URI"
msgstr "Schéma inconnu « %(scheme)s » trouvé dans l'URI"

#: glance/common/exception.py:78
msgid "The Store URI was malformed."
msgstr "L'URI de magasin était incorrect."

#: glance/common/exception.py:82
msgid "An object with the same identifier already exists."
msgstr "Un objet avec le même identificateur existe déjà."

#: glance/common/exception.py:86
msgid "An object with the same identifier is currently being operated on."
msgstr ""
"Un objet avec le même identificateur est déjà en cours d'utilisation."

#: glance/common/exception.py:93
msgid "There is not enough disk space on the image storage media."
msgstr ""
"Il n'y a plus assez d'espace disque sur le support de stockage de l'image."

#: glance/common/exception.py:91
#, python-format
msgid ""
"The size of the data %(image_size)s will exceed the limit. %(remaining)s "
"bytes remaining."
msgstr ""
"La taille des données %(image_size)s dépassera la limite. %(remaining)s "
"octets restants."

#: glance/common/exception.py:102
msgid "Permission to write image storage media denied."
msgstr "Permission d'écrire sur le support de stockage refusée."

#: glance/common/exception.py:96
#, python-format
msgid "Connect error/bad request to Auth service at URL %(url)s."
msgstr ""
"Erreur de connexion/demande erronée pour le service d'auth à l'URL %(url)s."

#: glance/common/exception.py:100
#, python-format
msgid "Auth service at URL %(url)s not found."
msgstr "Service d'auth à l'URL %(url)s non trouvé."

#: glance/common/exception.py:104
msgid "Authorization failed."
msgstr "Echec de l'autorisation."

#: glance/common/exception.py:108
msgid "You are not authenticated."
msgstr "Vous n'êtes pas authentifié."

#: glance/common/exception.py:116 glance/common/exception.py:120
#: glance/common/exception.py:404
msgid "You are not authorized to complete this action."
msgstr "Vous n'êtes pas autorisé à effectuer cette action."

#: glance/common/exception.py:124
#, python-format
msgid "Image %(image_id)s is protected and cannot be deleted."
msgstr "L'image %(image_id)s est protégée et ne peut pas être supprimée."

#: glance/common/exception.py:158
msgid "Data supplied was not valid."
msgstr "Les données fournies n'étaient pas valides."

#: glance/common/exception.py:162
msgid "Sort key supplied was not valid."
msgstr "La clé de tri fournie n'était pas valide."

#: glance/common/exception.py:170
msgid "Invalid configuration in property protection file."
msgstr ""
"Configuration non valide dans le fichier de verrouillage de propriétés."

#: glance/common/exception.py:182
msgid "Unable to filter using the specified range."
msgstr "Impossible de filtrer à l'aide de la plage spécifiée."

#: glance/common/exception.py:190
#, python-format
msgid "Attribute '%(property)s' is read-only."
msgstr "L'attribut '%(property)s' est en lecture seule."

#: glance/common/exception.py:194
#, python-format
msgid "Attribute '%(property)s' is reserved."
msgstr "L'attribut '%(property)s' est réservé."

#: glance/common/exception.py:198
#, python-format
msgid "Redirecting to %(uri)s for authorization."
msgstr "Redirection vers %(uri)s pour l'autorisation."

#: glance/common/exception.py:202
msgid "There was an error connecting to a server"
msgstr "Une erreur s'est produite lors de la connexion à un serveur."

#: glance/common/exception.py:206
msgid "There was an error configuring the client."
msgstr "Une erreur s'est produite lors de la configuration du client."

#: glance/common/exception.py:210
#, python-format
msgid ""
"The request returned a 302 Multiple Choices. This generally means that you "
"have not included a version indicator in a request URI.\n"
"\n"
"The body of response returned:\n"
"%(body)s"
msgstr ""
"La demande a renvoyé un message 302 Multiple Choices. Cela signifie "
"généralement que vous n'avez pas inclus d'indicateur de version dans l'URI "
"de demande.\n"
"\n"
"Le corps de la réponse a renvoyé :\n"
"%(body)s"

#: glance/common/exception.py:216
#, python-format
msgid ""
"The request returned a 413 Request Entity Too Large. This generally means "
"that rate limiting or a quota threshold was breached.\n"
"\n"
"The response body:\n"
"%(body)s"
msgstr ""
"La demande a renvoyé un message 413 Request Entity Too Large. Cela signifie "
"généralement que le taux limite ou le seuil de quota a été dépassé.\n"
"\n"
"Corps de la réponse :\n"
"%(body)s"

#: glance/common/exception.py:187
msgid ""
"The request returned 503 Service Unavilable. This generally occurs on "
"service overload or other transient outage."
msgstr ""
"La requête a retourné une erreur 503 (service indisponible). Ceci se produit "
"généralement lors de la surcharge du service ou lors d'une autre panne "
"passagère."

#: glance/common/exception.py:238
msgid "The request returned 500 Internal Server Error."
msgstr "La demande a renvoyé le message 500 Internal Server Error."

#: glance/common/exception.py:242
#, python-format
msgid ""
"The request returned an unexpected status: %(status)s.\n"
"\n"
"The response body:\n"
"%(body)s"
msgstr ""
"La demande a renvoyé un statut inattendu : %(status)s.\n"
"\n"
"Corps de la réponse :\n"
"%(body)s"

#: glance/common/exception.py:247
#, python-format
msgid "Invalid content type %(content_type)s"
msgstr "Type de contenu non valide %(content_type)s"

#: glance/common/exception.py:251
#, python-format
msgid ""
"Registry was not configured correctly on API server. Reason: %(reason)s"
msgstr ""
"Le registre n'a pas été configuré correctement sur le serveur d'API. Cause : "
"%(reason)s"

#: glance/common/exception.py:216
#, python-format
msgid ""
"Store %(store_name)s could not be configured correctly. Reason: %(reason)s"
msgstr ""
"Le dépôt %(store_name)s ne peut pas être correctement configuré. Raison : "
"%(reason)s"

#: glance/common/exception.py:256
#, python-format
msgid ""
"Driver %(driver_name)s could not be configured correctly. Reason: %(reason)s"
msgstr ""
"Impossible de configurer le pilote %(driver_name)s correctement. Cause : "
"%(reason)s"

#: glance/common/exception.py:226
msgid "Deleting images from this store is not supported."
msgstr "La suppression des images depuis ce dépôt n'est pas prise en charge."

#: glance/common/exception.py:230
msgid "Getting images from this store is not supported."
msgstr ""
"La récupération des images depuis ce dépôt n'est pas prise en charge."

#: glance/common/exception.py:234
msgid "Adding images to this store is not supported."
msgstr "L'ajout des images à ce dépôt n'est pas pris en charge."

#: glance/common/exception.py:238
msgid ""
"Configuration for store failed. Adding images to this store is disabled."
msgstr ""
"Échec de la configuration du dépôt. L'ajout d'images à ce dépôt est "
"désactivé."

#: glance/common/exception.py:261
#, python-format
msgid "Maximum redirects (%(redirects)s) was exceeded."
msgstr "Le nombre maximum de redirections (%(redirects)s) a été dépassé."

#: glance/common/exception.py:265
msgid "Received invalid HTTP redirect."
msgstr "Redirection HTTP non valide reçue."

#: glance/common/exception.py:269
msgid "Response from Keystone does not contain a Glance endpoint."
msgstr "La réponse de Keystone ne contient pas un noeud final Glance."

#: glance/common/exception.py:273
#, python-format
msgid ""
"Multiple 'image' service matches for region %(region)s. This generally means "
"that a region is required and you have not supplied one."
msgstr ""
"Plusieurs correspondances de service 'image' pour la région %(region)s. En "
"général, cela signifie qu'une région est requise et que vous n'en avez pas "
"indiquée."

#: glance/common/exception.py:279
#, python-format
msgid "Server worker creation failed: %(reason)s."
msgstr "Echec de la création de travailleur de serveur : %(reason)s."

#: glance/common/exception.py:283
#, python-format
msgid "Unable to load schema: %(reason)s"
msgstr "Impossible de charger le schéma : %(reason)s"

#: glance/common/exception.py:287
#, python-format
msgid "Provided object does not match schema '%(schema)s': %(reason)s"
msgstr "L'objet fourni ne correspond pas au schéma '%(schema)s' : %(reason)s"

#: glance/common/exception.py:290
#, python-format
msgid "Provided header feature is unsupported: %(feature)s"
msgstr ""
"La fonction d'en-tête fournie n'est pas prise en charge : %(feature)s"

#: glance/common/exception.py:294
msgid ""
"The image cannot be deleted because it is in use through the backend store "
"outside of Glance."
msgstr ""
"L'image ne peut être supprimée car celle-ci est utilisée par le dépôt en "
"arrière-plan de Glance."

#: glance/common/exception.py:292
msgid "The provided image is too large."
msgstr "L'image fournie est trop volumineuse."

#: glance/common/exception.py:302
#, python-format
msgid ""
"The limit has been exceeded on the number of allowed image properties. "
"Attempted: %(attempted)s, Maximum: %(maximum)s"
msgstr ""
"La limite a été dépassée sur le nombre de propriétés d'image autorisées. "
"Tentatives : %(attempted)s, Maximum : %(maximum)s"

#: glance/common/exception.py:307
#, python-format
msgid ""
"The limit has been exceeded on the number of allowed image tags. Attempted: "
"%(attempted)s, Maximum: %(maximum)s"
msgstr ""
"La limite a été dépassée sur le nombre de balises d'image autorisées. "
"Tentatives : %(attempted)s, Maximum : %(maximum)s"

#: glance/common/exception.py:312
#, python-format
msgid ""
"The limit has been exceeded on the number of allowed image locations. "
"Attempted: %(attempted)s, Maximum: %(maximum)s"
msgstr ""
"La limite a été dépassée sur le nombre d'emplacements d'image autorisés. "
"Tentatives : %(attempted)s, Maximum : %(maximum)s"

#: glance/common/exception.py:321
#, python-format
msgid "%(cls)s exception was raised in the last rpc call: %(val)s"
msgstr ""
"Une exception %(cls)s s'est produite dans le dernier appel d'une procédure "
"distante : %(val)s"

#: glance/common/exception.py:325
msgid "An unknown task exception occurred"
msgstr "Une exception de tâche inconnue s'est produite"

#: glance/common/exception.py:337
#, python-format
msgid "Task with the given id %(task_id)s was not found"
msgstr "La tâche avec l'identificateur donné %(task_id)s est introuvable"

#: glance/common/exception.py:341
#, python-format
msgid "Provided status of task is unsupported: %(status)s"
msgstr "Le statut fourni de la tâche n'est pas pris en charge : %(status)s"

#: glance/common/exception.py:345
#, python-format
msgid "Provided type of task is unsupported: %(type)s"
msgstr "Le type de tâche fourni n'est pas pris en charge : %(type)s"

#: glance/common/exception.py:349
#, python-format
msgid ""
"Status transition from %(cur_status)s to %(new_status)s is not allowed"
msgstr ""
"La transition de statut de %(cur_status)s vers %(new_status)s n'est pas "
"autorisée"

#: glance/common/exception.py:358
#, python-format
msgid "The location %(location)s already exists"
msgstr "L'emplacement %(location)s existe déjà"

#: glance/common/exception.py:360
msgid "No image data could be found"
msgstr "Données image introuvables"

#: glance/common/exception.py:362
#, python-format
msgid "Invalid value '%(value)s' for parameter '%(param)s': %(extra_msg)s"
msgstr ""
"Valeur non valide '%(value)s' pour le paramètre '%(param)s' : %(extra_msg)s"

#: glance/common/exception.py:367
#, python-format
msgid ""
"Image status transition from %(cur_status)s to %(new_status)s is not allowed"
msgstr ""
"La transition du statut de l'image de %(cur_status)s vers %(new_status)s "
"n'est pas autorisée"

#: glance/common/property_utils.py:37
msgid "The location of the property protection file."
msgstr "L'emplacement du fichier de protection des propriétés."

#: glance/common/property_utils.py:41
msgid ""
"This config value indicates whether \"roles\" or \"policies\" are used in "
"the property protection file."
msgstr ""
"Cette valeur de config indique si \"roles\" ou \"policies\" sont utilisés "
"dans le fichier de verrouillage de propriétés."

#: glance/common/property_utils.py:75
#, python-format
msgid "Couldn't find property protection file %(file)s: %(error)s."
msgstr ""
"Impossible de trouver le fichier de protection des propriétés %(file)s : "
"%(error)s."

#: glance/common/property_utils.py:82
#, python-format
msgid ""
"Invalid value '%s' for 'property_protection_rule_format'. The permitted "
"values are 'roles' and 'policies'"
msgstr ""
"Valeur non valide « %s » pour « property_protection_rule_format ». Les "
"valeurs permises sont « rôles » et « politiques »."

#: glance/common/property_utils.py:101
#, python-format
msgid ""
"Multiple policies '%s' not allowedfor a given operation. Policies can be "
"combined in the policy file"
msgstr ""

#: glance/common/property_utils.py:114
#, python-format
msgid ""
"Malformed property protection rule in [%(prop)s] %(op)s=%(perm)s: '@' and "
"'!' are mutually exclusive"
msgstr ""

#: glance/common/property_utils.py:128
#, python-format
msgid ""
"Property protection on operation %(operation)s for rule %(rule)s is not "
"found. No role will be allowed to perform this operation."
msgstr ""
"Le verrouillage des propriétés sur l'opération %(operation)s pour la règle "
"%(rule)s est introuvable. Aucun rôle ne sera autorisé à effectuer cette "
"opération."

#: glance/common/property_utils.py:139
#, python-format
msgid "Encountered a malformed property protection rule %(rule)s: %(error)s."
msgstr ""

#: glance/common/rpc.py:143
msgid "Request must be a list of commands"
msgstr "La demande doit être une liste de commandes"

#: glance/common/rpc.py:148
#, python-format
msgid "Bad Command: %s"
msgstr "Commande %s erronée"

#: glance/common/rpc.py:155
#, python-format
msgid "Wrong command structure: %s"
msgstr "Structure de commande erronée : %s"

#: glance/common/rpc.py:164
msgid "Command not found"
msgstr "La commande n'a pas été trouvée"

#: glance/common/rpc.py:182
#, python-format
msgid ""
"RPC Call Error: %(val)s\n"
"%(tb)s"
msgstr ""

#: glance/common/utils.py:103
#, python-format
msgid "Error: cooperative_iter exception %s"
msgstr ""

#: glance/common/utils.py:292
#, python-format
msgid "Bad header: %(header_name)s"
msgstr "Erreur d’entête: %(header_name)s"

#: glance/common/utils.py:306
#, python-format
msgid "Cannot convert image %(key)s '%(value)s' to an integer."
msgstr "Impossible de convertir l'image %(key)s '%(value)s' en entier."

#: glance/common/utils.py:320
#, python-format
msgid "Image %(key)s must be >= 0 ('%(value)s' specified)."
msgstr ""

#: glance/common/utils.py:432
msgid "Read-only access"
msgstr "Accès en lecture seule"

#: glance/common/utils.py:478
#, python-format
msgid "Invalid backend: %s"
msgstr ""

#: glance/common/utils.py:402
#, python-format
msgid ""
"There is a problem with your %(error_key_name)s %(error_filename)s.  Please "
"verify it.  Error: %(ioe)s"
msgstr ""
"Problème lié à votre %(error_key_name)s %(error_filename)s.  Veuillez "
"vérifier. Erreur : %(ioe)s"

#: glance/common/utils.py:409
#, python-format
msgid ""
"There is a problem with your %(error_key_name)s %(error_filename)s.  Please "
"verify it. OpenSSL error: %(ce)s"
msgstr ""
"Problème lié à votre %(error_key_name)s %(error_filename)s.  Veuillez "
"vérifier. Erreur OpenSSL : %(ce)s"

#: glance/common/utils.py:434
#, python-format
msgid ""
"There is a problem with your key pair.  Please verify that cert "
"%(cert_file)s and key %(key_file)s belong together.  OpenSSL error %(ce)s"
msgstr ""
"Il y a un problème avec votre paire de clés. Vérifiez que le certificat "
"%(cert_file)s et la clé %(key_file)s correspondent. Erreur OpenSSL %(ce)s"

#: glance/common/wsgi.py:59
msgid ""
"Address to bind the server.  Useful when selecting a particular network "
"interface."
msgstr ""
"Adresse de liaison du serveur. Utile lors de la sélection d'une interface "
"réseau en particulier."

#: glance/common/wsgi.py:62
msgid "The port on which the server will listen."
msgstr "Le port sur lequel le serveur écoutera."

#: glance/common/wsgi.py:67
msgid ""
"The backlog value that will be used when creating the TCP listener socket."
msgstr ""
"Valeur de commandes en attente qui sera utilisée lors de la création du "
"connecteur de programme d'écoute TCP."

#: glance/common/wsgi.py:70
msgid ""
"The value for the socket option TCP_KEEPIDLE.  This is the time in seconds "
"that the connection must be idle before TCP starts sending keepalive probes."
msgstr ""
"Valeur de l'option de socket TCP_KEEPIDLE. Durée en secondes pendant "
"laquelle la connexion doit être en veille avant que le protocole TCP "
"commence à envoyer des sondes de signal de présence."

#: glance/common/wsgi.py:73
msgid "CA certificate file to use to verify connecting clients."
msgstr ""
"Fichier de l'autorité de certification CA à utiliser pour vérifier les "
"connexions clientes"

#: glance/common/wsgi.py:75
msgid "Certificate file to use when starting API server securely."
msgstr ""
"Fichier certificat à utiliser lors du démarrage du serveur d'API en toute "
"sécurité."

#: glance/common/wsgi.py:77
msgid "Private key file to use when starting API server securely."
msgstr ""
"Fichier de clé privée à utiliser lors du démarrage du serveur d'API en toute "
"sécurité."

#: glance/common/wsgi.py:77
msgid ""
"The number of child process workers that will be created to service API "
"requests."
msgstr ""

#: glance/common/wsgi.py:80
msgid ""
"Name of eventlet hub to use. Traditionally, we have only supported 'poll', "
"however 'selects' may be appropriate for some platforms. See "
"http://eventlet.net/doc/hubs.html for more details."
msgstr ""

#: glance/common/wsgi.py:87
msgid ""
"Maximum line size of message headers to be accepted. max_header_line may "
"need to be increased when using large tokens (typically those generated by "
"the Keystone v3 API with big service catalogs"
msgstr ""
"Taille maximale de ligne des en-têtes de message à accepter. max_header_line "
"peut avoir besoin d'être augmenté lors de l'utilisation de grands jetons "
"(généralement ceux qui sont générés par l'API Keystone v3 avec des "
"catalogues de service volumineux)"

#: glance/common/wsgi.py:192
msgid ""
"When running server in SSL mode, you must specify both a cert_file and "
"key_file option value in your configuration file"
msgstr ""
"Lors de l'exécution du serveur en mode SSL, vous devez spécifier une valeur "
"d'option cert_file et key_file dans votre fichier de configuration"

#: glance/common/wsgi.py:209
#, python-format
msgid "Could not bind to %(host)s:%(port)s after trying for 30 seconds"
msgstr ""
"Liaison impossible à %(host)s:%(port)s après une tentative de 30 secondes"

#: glance/common/wsgi.py:244 glance/openstack/common/service.py:240
#, python-format
msgid "Starting %d workers"
msgstr ""

#: glance/common/wsgi.py:259
#, python-format
msgid "Removing dead child %s"
msgstr ""

#: glance/common/wsgi.py:262
#, python-format
msgid "Not respawning child %d, cannot recover from termination"
msgstr ""

#: glance/common/wsgi.py:266
msgid "All workers have terminated. Exiting"
msgstr ""

#: glance/common/wsgi.py:274
msgid "Caught keyboard interrupt. Exiting."
msgstr ""

#: glance/common/wsgi.py:278
msgid "Exited"
msgstr ""

#: glance/common/wsgi.py:300
#, python-format
msgid "Child %d exiting normally"
msgstr ""

#: glance/common/wsgi.py:305
#, python-format
msgid "Started child %s"
msgstr ""

#: glance/common/wsgi.py:318
#, python-format
msgid "eventlet '%s' hub is not available on this platform"
msgstr ""

#: glance/common/wsgi.py:335
msgid "Starting single process server"
msgstr ""

#: glance/common/wsgi.py:807
msgid "Malformed JSON in request body."
msgstr "JSON incorrect dans le corps de demande."

#: glance/common/location_strategy/__init__.py:27
msgid ""
"This value sets what strategy will be used to determine the image location "
"order. Currently two strategies are packaged with Glance 'location_order' "
"and 'store_type'."
msgstr ""
"Cette valeur détermine quelle stratégie sera utilisée pour déterminer la "
"stratégie location order de l'image. Actuellement, deux stratégies sont "
"fournies avec Glance 'location_order' et 'store_type'."

#: glance/common/location_strategy/__init__.py:54
#, python-format
msgid ""
"%(strategy)s is registered as a module twice. %(module)s is not being used."
msgstr ""
"%(strategy)s est enregistré deux fois comme module. %(module)s n'est pas "
"utilisé."

#: glance/common/location_strategy/__init__.py:61
#, python-format
msgid "Failed to load location strategy module %(module)s: %(e)s"
msgstr ""

#: glance/common/location_strategy/__init__.py:79
#, python-format
msgid ""
"Invalid location_strategy option: %(name)s. The valid strategy option(s) "
"is(are): %(strategies)s"
msgstr ""
"Option location_strategy non valide : %(name)s. La ou les options de "
"stratégie valides sont : %(strategies)s"

#: glance/common/location_strategy/store_type.py:25
msgid ""
"The store names to use to get store preference order. The name must be "
"registered by one of the stores defined by the 'known_stores' config option. "
"This option will be applied when you using 'store_type' option as image "
"location strategy defined by the 'location_strategy' config option."
msgstr ""

#: glance/db/__init__.py:167 glance/db/__init__.py:279
#: glance/db/__init__.py:291
#, python-format
msgid "No image found with ID %s"
msgstr "aucune image trouvée avec l'identifiant %s"

#: glance/db/__init__.py:345
#, python-format
msgid ""
"The target member %(member_id)s is already associated with image "
"%(image_id)s."
msgstr ""
"Le membre cible %(member_id)s est déjà associé à l'image %(image_id)s."

#: glance/db/__init__.py:376
#, python-format
msgid "The specified member %s could not be found"
msgstr "Le membre spécifié %s est introuvable"

#: glance/db/__init__.py:454 glance/db/__init__.py:475
#: glance/db/__init__.py:492
#, python-format
msgid "Could not find task %s"
msgstr "La tâche %s est introuvable"

#: glance/db/simple/api.py:41
#, python-format
msgid "Calling %(funcname)s: args=%(args)s, kwargs=%(kwargs)s"
msgstr ""

#: glance/db/simple/api.py:46
#, python-format
msgid "Returning %(funcname)s: %(output)s"
msgstr ""

#: glance/db/simple/api.py:293 glance/db/sqlalchemy/api.py:490
msgid "Unable to filter on a range with a non-numeric value."
msgstr "Impossible de filtrer sur une plage avec une valeur non numérique."

#: glance/db/simple/api.py:329
#, python-format
msgid "Could not find image %s"
msgstr ""

#: glance/db/simple/api.py:333
msgid "Unable to get deleted image"
msgstr "Impossible d'obtenir une image supprimée"

#: glance/db/simple/api.py:337
msgid "Unable to get unowned image"
msgstr ""

#: glance/db/simple/api.py:509 glance/db/sqlalchemy/api.py:1180
msgid "Image id is required."
msgstr "Id image est requis."

#: glance/db/simple/api.py:740 glance/db/simple/api.py:790
#: glance/db/sqlalchemy/api.py:1250
#, python-format
msgid "No task found with ID %s"
msgstr ""

#: glance/db/simple/api.py:767
#, python-format
msgid "Unable to get deleted task %s"
msgstr ""

#: glance/db/simple/api.py:941
#, python-format
msgid "Forbidding request, task %s is not visible"
msgstr "Interdiction de la demande, la tâche %s n'est pas visible"

#: glance/db/simple/api.py:1056
msgid "Task does not exist"
msgstr "La tâche n'existe pas"

#: glance/db/simple/api.py:912
#, python-format
msgid "No task info found with task id %s"
msgstr ""

#: glance/db/simple/api.py:928
#, python-format
msgid "Could not find task info %s"
msgstr ""

#: glance/db/sqlalchemy/api.py:84
msgid "Attempted to modify image user did not own."
msgstr ""

#: glance/db/sqlalchemy/api.py:117
msgid "You do not own this image"
msgstr "Vous n'êtes pas propriétaire de cette image"

#: glance/db/sqlalchemy/api.py:187
#, python-format
msgid "Forbidding request, image %s not visible"
msgstr ""

#: glance/db/sqlalchemy/api.py:274
msgid "Id not in sort_keys; is sort_keys unique?"
msgstr ""

#: glance/db/sqlalchemy/api.py:416
msgid "Unknown sort direction, must be 'desc' or 'asc'"
msgstr "Sens de tri inconnu, doit être 'desc' ou 'asc'"

#: glance/db/sqlalchemy/api.py:820
#: glance/tests/unit/v2/test_registry_client.py:582
#, python-format
msgid ""
"cannot transition from %(current)s to %(next)s in update (wanted "
"from_state=%(from)s)"
msgstr ""
"impossible d'effectuer la transition depuis %(current)s vers %(next)s dans "
"la mise à jour (voulu : from_state=%(from)s)"

#: glance/db/sqlalchemy/api.py:1084
#, python-format
msgid "TaskInfo was not found for task with id %(task_id)s"
msgstr ""

#: glance/db/sqlalchemy/migrate_repo/schema.py:96
#, python-format
msgid "creating table %(table)s"
msgstr ""

#: glance/db/sqlalchemy/migrate_repo/schema.py:102
#, python-format
msgid "dropping table %(table)s"
msgstr ""

#: glance/db/sqlalchemy/migrate_repo/versions/015_quote_swift_credentials.py:58
#: glance/db/sqlalchemy/migrate_repo/versions/017_quote_encrypted_swift_credentials.py:88
#, python-format
msgid "Invalid store uri for image: %(image_id)s. Details: %(reason)s"
msgstr ""

#: glance/db/sqlalchemy/migrate_repo/versions/015_quote_swift_credentials.py:89
#: glance/db/sqlalchemy/migrate_repo/versions/017_quote_encrypted_swift_credentials.py:152
msgid ""
"URI cannot contain more than one occurrence of a scheme.If you have "
"specified a URI like swift://user:pass@http://authurl.com/v1/container/obj, "
"you need to change it to use the swift+http:// scheme, like so: "
"swift+http://user:pass@authurl.com/v1/container/obj"
msgstr ""
"L'URI ne peut pas contenir plusieurs occurrences d'un schéma. Si vous avez "
"spécifié un URI tel que "
"swift://user:pass@http://authurl.com/v1/container/obj, vous devez le "
"modifier pour utiliser le schéma swift+http://, par exemple : "
"swift+http://user:pass@authurl.com/v1/container/obj"

#: glance/db/sqlalchemy/migrate_repo/versions/015_quote_swift_credentials.py:128
#: glance/db/sqlalchemy/migrate_repo/versions/017_quote_encrypted_swift_credentials.py:190
#, python-format
msgid "Badly formed credentials '%(creds)s' in Swift URI"
msgstr "Données d'identification incorrectes '%(creds)s' dans l'URI Swift"

#: glance/db/sqlalchemy/migrate_repo/versions/015_quote_swift_credentials.py:140
#: glance/db/sqlalchemy/migrate_repo/versions/017_quote_encrypted_swift_credentials.py:202
msgid "Badly formed credentials in Swift URI."
msgstr "Données d'identification incorrectes dans l'URI Swift."

#: glance/db/sqlalchemy/migrate_repo/versions/015_quote_swift_credentials.py:157
#: glance/db/sqlalchemy/migrate_repo/versions/017_quote_encrypted_swift_credentials.py:219
#, python-format
msgid "Badly formed S3 URI: %(uri)s"
msgstr "URI S3 incorrecte : %(uri)s"

#: glance/db/sqlalchemy/migrate_repo/versions/017_quote_encrypted_swift_credentials.py:65
msgid ""
"'metadata_encryption_key' was not specified in the config file or a config "
"file was not specified. This means that this migration is a NOOP."
msgstr ""

#: glance/db/sqlalchemy/migrate_repo/versions/017_quote_encrypted_swift_credentials.py:85
#, python-format
msgid "Failed to decrypt location value for image %(image_id)s"
msgstr ""

#: glance/domain/__init__.py:62
#, python-format
msgid "new_image() got unexpected keywords %s"
msgstr "new_image() a récupéré des mots-clés %s inattendus"

#: glance/domain/__init__.py:134 glance/glare/domain/__init__.py:43
#, python-format
msgid "__init__() got unexpected keyword argument '%s'"
msgstr "__init__() a récupéré un argument de mot clé '%s' inattendu"

#: glance/domain/__init__.py:156
#, python-format
msgid "Property %s must be set prior to saving data."
msgstr "La propriété %s doit être définie avant de sauvegarder les données."

#: glance/domain/__init__.py:159
#, python-format
msgid "Properties %s must be set prior to saving data."
msgstr ""
"Les propriétés %s doivent être définies avant de sauvegarder les données."

#: glance/domain/__init__.py:176
msgid "Visibility must be either \"public\" or \"private\""
msgstr "La visibilité doit être \"public\" ou \"private\""

#: glance/domain/__init__.py:195
msgid "Attribute container_format can be only replaced for a queued image."
msgstr ""
"L'attribut container_format ne peut être remplacé que pour une image mise en "
"file d'attente."

#: glance/domain/__init__.py:207
msgid "Attribute disk_format can be only replaced for a queued image."
msgstr ""
"L'attribut disk_format ne peut être remplacé que pour une image mise en file "
"d'attente."

#: glance/domain/__init__.py:219 glance/domain/__init__.py:232
msgid "Cannot be a negative value"
msgstr "Ne peut pas être une valeur négative"

#: glance/domain/__init__.py:323
msgid "Status must be \"pending\", \"accepted\" or \"rejected\"."
msgstr "L'état doit être \"en attente\", \"accepté\" ou \"rejeté\"."

#: glance/domain/__init__.py:356
#, python-format
msgid "Task status changed from %(cur_status)s to %(new_status)s"
msgstr ""

#: glance/domain/__init__.py:361
#, python-format
msgid "Task status failed to change from %(cur_status)s to %(new_status)s"
msgstr ""

#: glance/domain/__init__.py:391
msgid "task_id is required to create a new TaskDetails object"
msgstr ""

#: glance/image_cache/__init__.py:37
msgid "The driver to use for image cache management."
msgstr "Pilote à utiliser pour la gestion de cache d'image."

#: glance/image_cache/__init__.py:36
msgid "The maximum size in bytes that the cache can use."
msgstr "La taille maximale en octets que le cache peut utiliser."

#: glance/image_cache/__init__.py:47
msgid ""
"The amount of time to let an image remain in the cache without being "
"accessed."
msgstr ""
"Temps pendant lequel une image doit rester dans le cache sans être consultée."

#: glance/image_cache/__init__.py:50
msgid "Base directory that the Image Cache uses."
msgstr "Répertoire de base que le cache d'image utilise."

#: glance/image_cache/__init__.py:63
#, python-format
msgid "Image cache loaded driver '%s'."
msgstr ""

#: glance/image_cache/__init__.py:66
#, python-format
msgid ""
"Image cache driver '%(driver_name)s' failed to load. Got error: "
"'%(import_err)s."
msgstr ""

#: glance/image_cache/__init__.py:73 glance/image_cache/__init__.py:92
msgid "Defaulting to SQLite driver."
msgstr ""

#: glance/image_cache/__init__.py:87
#, python-format
msgid ""
"Image cache driver '%(driver_module)s' failed to configure. Got error: "
"'%(config_err)s"
msgstr ""

#: glance/image_cache/__init__.py:174
msgid "Image cache has free space, skipping prune..."
msgstr ""

#: glance/image_cache/__init__.py:178
#, python-format
msgid ""
"Image cache currently %(overage)d bytes over max size. Starting prune to max "
"size of %(max_size)d "
msgstr ""

#: glance/image_cache/__init__.py:187
#, python-format
msgid "Pruning '%(image_id)s' to free %(size)d bytes"
msgstr ""

#: glance/image_cache/__init__.py:195
#, python-format
msgid ""
"Pruning finished pruning. Pruned %(total_files_pruned)d and "
"%(total_bytes_pruned)d."
msgstr ""

#: glance/image_cache/__init__.py:234
#, python-format
msgid "Tee'ing image '%s' into cache"
msgstr ""

#: glance/image_cache/__init__.py:258
#, python-format
msgid "Checksum verification failed. Aborted caching of image '%s'."
msgstr ""
"Echec de vérification du total de contrôle. Mise en cache de l'image '%s' "
"annulée."

#: glance/image_cache/__init__.py:263
#, python-format
msgid ""
"Exception encountered while tee'ing image '%(image_id)s' into cache: "
"%(error)s. Continuing with response."
msgstr ""

#: glance/image_cache/client.py:119
msgid ""
"--os_auth_url option or OS_AUTH_URL environment variable required when "
"keystone authentication strategy is enabled\n"
msgstr ""
"Option --os_auth_url ou variable d'environnement OS_AUTH_URL requise lorsque "
"la stratégie d'authentification keystone est activée\n"

#: glance/image_cache/prefetcher.py:46
#, python-format
msgid "Image '%s' is not active. Not caching."
msgstr ""

#: glance/image_cache/prefetcher.py:51
#, python-format
msgid "No metadata found for image '%s'"
msgstr ""

#: glance/image_cache/prefetcher.py:56
#, python-format
msgid "Caching image '%s'"
msgstr ""

#: glance/image_cache/prefetcher.py:68
msgid "Nothing to prefetch."
msgstr ""

#: glance/image_cache/prefetcher.py:72
#, python-format
msgid "Found %d images to prefetch"
msgstr ""

#: glance/image_cache/prefetcher.py:78
msgid "Failed to successfully cache all images in queue."
msgstr ""

#: glance/image_cache/prefetcher.py:82
#, python-format
msgid "Successfully cached all %d images"
msgstr ""

#: glance/image_cache/drivers/base.py:55
#, python-format
msgid "Failed to read %s from config"
msgstr "Echec de la lecture de %s à partir de la config"

#: glance/image_cache/drivers/sqlite.py:41
msgid ""
"The path to the sqlite file database that will be used for image cache "
"management."
msgstr ""
"Chemin vers la base de données de fichiers sqlite qui sera utilisée pour la "
"gestion du cache d'image ."

#: glance/image_cache/drivers/sqlite.py:122
#, python-format
msgid "Failed to initialize the image cache database. Got error: %s"
msgstr ""
"Impossible d'initialiser la base de données de caches d'image. Erreur "
"obtenue : %s"

#: glance/image_cache/drivers/sqlite.py:160
#: glance/image_cache/drivers/xattr.py:144
msgid "Gathering cached image entries."
msgstr ""

#: glance/image_cache/drivers/sqlite.py:303
#: glance/image_cache/drivers/xattr.py:272
#, python-format
msgid "Fetch finished, moving '%(incomplete_path)s' to '%(final_path)s'"
msgstr ""

#: glance/image_cache/drivers/sqlite.py:327
#: glance/image_cache/drivers/xattr.py:288
#, python-format
msgid ""
"Fetch of cache file failed (%(e)s), rolling back by moving "
"'%(incomplete_path)s' to '%(invalid_path)s'"
msgstr ""

#: glance/image_cache/drivers/sqlite.py:392
#, python-format
msgid "Error executing SQLite call. Got error: %s"
msgstr ""

#: glance/image_cache/drivers/sqlite.py:408
#: glance/image_cache/drivers/xattr.py:337
#, python-format
msgid "Not queueing image '%s'. Already cached."
msgstr ""

#: glance/image_cache/drivers/sqlite.py:413
#: glance/image_cache/drivers/xattr.py:342
#, python-format
msgid "Not queueing image '%s'. Already being written to cache"
msgstr ""

#: glance/image_cache/drivers/sqlite.py:419
#: glance/image_cache/drivers/xattr.py:348
#, python-format
msgid "Not queueing image '%s'. Already queued."
msgstr ""

#: glance/image_cache/drivers/sqlite.py:437
#, python-format
msgid "Removed invalid cache file %s"
msgstr ""

#: glance/image_cache/drivers/sqlite.py:451
#, python-format
msgid "Removed stalled cache file %s"
msgstr ""

#: glance/image_cache/drivers/sqlite.py:453
#, python-format
msgid "Failed to delete file %(path)s. Got error: %(e)s"
msgstr ""

#: glance/image_cache/drivers/sqlite.py:487
#: glance/image_cache/drivers/xattr.py:438
#, python-format
msgid "Deleting image cache file '%s'"
msgstr ""

#: glance/image_cache/drivers/sqlite.py:490
#: glance/image_cache/drivers/xattr.py:441
#, python-format
msgid "Cached image file '%s' doesn't exist, unable to delete"
msgstr ""

#: glance/image_cache/drivers/xattr.py:107
#, python-format
msgid ""
"The device housing the image cache directory %(image_cache_dir)s does not "
"support xattr. It is likely you need to edit your fstab and add the "
"user_xattr option to the appropriate line for the device housing the cache "
"directory."
msgstr ""
"L'unité hébergeant le répertoire de cache d'image %(image_cache_dir)s ne "
"prend pas en charge xattr. Vous devez probablement éditer votre fstab et "
"ajouter l'option user_xattr sur la ligne appropriée de l'unité hébergeant le "
"répertoire de cache."

#: glance/image_cache/drivers/xattr.py:280
#, python-format
msgid "Removing image '%s' from queue after caching it."
msgstr ""

#: glance/image_cache/drivers/xattr.py:353
#, python-format
msgid "Queueing image '%s'."
msgstr ""

#: glance/image_cache/drivers/xattr.py:383
#, python-format
msgid "No grace period, reaping '%(path)s' immediately"
msgstr ""

#: glance/image_cache/drivers/xattr.py:388
#, python-format
msgid ""
"Cache entry '%(path)s' exceeds grace period, (%(age)i s > %(grace)i s)"
msgstr ""

#: glance/image_cache/drivers/xattr.py:394
#, python-format
msgid "Reaped %(reaped)s %(entry_type)s cache entries"
msgstr ""

#: glance/openstack/common/excutils.py:62
#, python-format
msgid "Original exception being dropped: %s"
msgstr ""

#: glance/openstack/common/excutils.py:91
#, python-format
msgid "Unexpected exception occurred %d time(s)... retrying."
msgstr ""

#: glance/openstack/common/fileutils.py:63
#, python-format
msgid "Reloading cached file %s"
msgstr ""

#: glance/openstack/common/gettextutils.py:297
msgid "Message objects do not support addition."
msgstr ""

#: glance/openstack/common/gettextutils.py:306
msgid ""
"Message objects do not support str() because they may contain non-ascii "
"characters. Please use unicode() or translate() instead."
msgstr ""

#: glance/openstack/common/lockutils.py:103
#, python-format
msgid "Could not release the acquired lock `%s`"
msgstr ""

#: glance/openstack/common/lockutils.py:168
#, python-format
msgid "Got semaphore \"%(lock)s\""
msgstr ""

#: glance/openstack/common/lockutils.py:177
#, python-format
msgid "Attempting to grab file lock \"%(lock)s\""
msgstr ""

#: glance/openstack/common/lockutils.py:187
#, python-format
msgid "Created lock path: %s"
msgstr ""

#: glance/openstack/common/lockutils.py:205
#, python-format
msgid "Got file lock \"%(lock)s\" at %(path)s"
msgstr ""

#: glance/openstack/common/lockutils.py:209
#, python-format
msgid "Released file lock \"%(lock)s\" at %(path)s"
msgstr ""

#: glance/openstack/common/lockutils.py:247
#, python-format
msgid "Got semaphore / lock \"%(function)s\""
msgstr ""

#: glance/openstack/common/lockutils.py:251
#, python-format
msgid "Semaphore / lock released \"%(function)s\""
msgstr ""

#: glance/openstack/common/log.py:313
#, python-format
msgid "Deprecated: %s"
msgstr ""

#: glance/openstack/common/log.py:416
#, python-format
msgid "Error loading logging config %(log_config)s: %(err_msg)s"
msgstr ""

#: glance/openstack/common/log.py:467
#, python-format
msgid "syslog facility must be one of: %s"
msgstr ""

#: glance/openstack/common/log.py:688
#, python-format
msgid "Fatal call to deprecated config: %(msg)s"
msgstr ""

#: glance/openstack/common/loopingcall.py:84
#, python-format
msgid "task run outlasted interval by %s sec"
msgstr ""

#: glance/openstack/common/loopingcall.py:91
msgid "in fixed duration looping call"
msgstr ""

#: glance/openstack/common/loopingcall.py:131
#, python-format
msgid "Dynamic looping call sleeping for %.02f seconds"
msgstr ""

#: glance/openstack/common/loopingcall.py:138
msgid "in dynamic looping call"
msgstr ""

#: glance/openstack/common/policy.py:395
#, python-format
msgid "Failed to understand rule %(rule)s"
msgstr ""

#: glance/openstack/common/policy.py:405
#, python-format
msgid "No handler for matches of kind %s"
msgstr ""

#: glance/openstack/common/policy.py:680
#, python-format
msgid "Failed to understand rule %(rule)r"
msgstr ""

#: glance/openstack/common/processutils.py:127
#, python-format
msgid "Got unknown keyword args to utils.execute: %r"
msgstr ""

#: glance/openstack/common/processutils.py:142
#, python-format
msgid "Running cmd (subprocess): %s"
msgstr ""

#: glance/openstack/common/processutils.py:167
#: glance/openstack/common/processutils.py:240
#, python-format
msgid "Result was %s"
msgstr ""

#: glance/openstack/common/processutils.py:179
#, python-format
msgid "%r failed. Retrying."
msgstr ""

#: glance/openstack/common/processutils.py:219
#, python-format
msgid "Running cmd (SSH): %s"
msgstr ""

#: glance/openstack/common/processutils.py:221
msgid "Environment not supported over SSH"
msgstr ""

#: glance/openstack/common/processutils.py:225
msgid "process_input not supported over SSH"
msgstr ""

#: glance/openstack/common/service.py:112
#: glance/openstack/common/service.py:275
msgid "Full set of CONF:"
msgstr ""

#: glance/openstack/common/service.py:121
#: glance/openstack/common/service.py:218
#, python-format
msgid "Caught %s, exiting"
msgstr ""

#: glance/openstack/common/service.py:164
msgid "Parent process has died unexpectedly, exiting"
msgstr ""

#: glance/openstack/common/service.py:200
msgid "Forking too fast, sleeping"
msgstr ""

#: glance/openstack/common/service.py:223
msgid "Unhandled exception"
msgstr ""

#: glance/openstack/common/service.py:230
#, python-format
msgid "Started child %d"
msgstr ""

#: glance/openstack/common/service.py:257
#, python-format
msgid "Child %(pid)d killed by signal %(sig)d"
msgstr ""

#: glance/openstack/common/service.py:261
#, python-format
msgid "Child %(pid)s exited with status %(code)d"
msgstr ""

#: glance/openstack/common/service.py:265
#, python-format
msgid "pid %d not in child list"
msgstr ""

#: glance/openstack/common/service.py:293
#, python-format
msgid "Caught %s, stopping children"
msgstr ""

#: glance/openstack/common/service.py:304
#, python-format
msgid "Waiting on %d children to exit"
msgstr ""

#: glance/openstack/common/strutils.py:86
#, python-format
msgid "Unrecognized value '%(val)s', acceptable values are: %(acceptable)s"
msgstr ""

#: glance/openstack/common/strutils.py:188
#, python-format
msgid "Invalid string format: %s"
msgstr ""

#: glance/openstack/common/strutils.py:195
#, python-format
msgid "Unknown byte multiplier: %s"
msgstr ""

#: glance/openstack/common/db/exception.py:44
msgid "Invalid Parameter: Unicode is not supported by the current database."
msgstr ""

#: glance/openstack/common/db/sqlalchemy/migration.py:188
msgid "version should be an integer"
msgstr ""

#: glance/openstack/common/db/sqlalchemy/migration.py:216
#, python-format
msgid ""
"Tables \"%s\" have non utf8 collation, please make sure all tables are "
"CHARSET=utf8"
msgstr ""

#: glance/openstack/common/db/sqlalchemy/migration.py:240
msgid ""
"The database is not under version control, but has tables. Please stamp the "
"current version of the schema manually."
msgstr ""

#: glance/openstack/common/db/sqlalchemy/utils.py:164
#, python-format
msgid ""
"There is no `deleted` column in `%s` table. Project doesn't use soft-deleted "
"feature."
msgstr ""

#: glance/openstack/common/db/sqlalchemy/utils.py:176
#, python-format
msgid "Unrecognized read_deleted value '%s'"
msgstr ""

#: glance/openstack/common/db/sqlalchemy/utils.py:183
#, python-format
msgid "There is no `project_id` column in `%s` table."
msgstr ""

#: glance/openstack/common/db/sqlalchemy/utils.py:241
msgid "model should be a subclass of ModelBase"
msgstr ""

#: glance/openstack/common/db/sqlalchemy/utils.py:284
#, python-format
msgid ""
"Please specify column %s in col_name_col_instance param. It is required "
"because column has unsupported type by sqlite)."
msgstr ""

#: glance/openstack/common/db/sqlalchemy/utils.py:290
#, python-format
msgid ""
"col_name_col_instance param has wrong type of column instance for column %s "
"It should be instance of sqlalchemy.Column."
msgstr ""

#: glance/openstack/common/db/sqlalchemy/utils.py:391
msgid "Unsupported id columns type"
msgstr ""

#: glance/quota/__init__.py:316
#, python-format
msgid "Cleaning up %s after exceeding the quota."
msgstr ""

#: glance/registry/__init__.py:27
msgid "Address to find the registry server."
msgstr "Adresse pour trouver le serveur de registre."

#: glance/registry/__init__.py:29
msgid "Port the registry server is listening on."
msgstr "Port sur lequel le serveur de registre est en mode écoute."

#: glance/registry/api/v1/images.py:105
#, python-format
msgid "Invalid marker. Image %(id)s could not be found."
msgstr ""

#: glance/registry/api/v1/images.py:126 glance/registry/api/v1/images.py:131
msgid "Invalid marker. Image could not be found."
msgstr "Marqueur non valide. Image introuvable."

#: glance/registry/api/v1/images.py:110 glance/registry/api/v1/images.py:328
#: glance/registry/api/v1/images.py:359 glance/registry/api/v1/images.py:478
#: glance/registry/api/v1/members.py:72 glance/registry/api/v1/members.py:106
#: glance/registry/api/v1/members.py:219 glance/registry/api/v1/members.py:279
#, python-format
msgid "Access denied to image %(id)s but returning 'not found'"
msgstr ""

#: glance/registry/api/v1/images.py:115
msgid "Unable to get images"
msgstr ""

#: glance/registry/api/v1/images.py:147
msgid "Returning image list"
msgstr ""

#: glance/registry/api/v1/images.py:165
msgid "Returning detailed image list"
msgstr ""

#: glance/registry/api/v1/images.py:237
msgid "Unrecognized changes-since value"
msgstr "Valeur changes-since non reconnue"

#: glance/registry/api/v1/images.py:242
msgid "protected must be True, or False"
msgstr "protected doit être True ou False"

#: glance/registry/api/v1/images.py:289
#, python-format
msgid "Unsupported sort_key. Acceptable values: %s"
msgstr "sort_key non pris en charge. Valeurs acceptables : %s"

#: glance/registry/api/v1/images.py:298
#, python-format
msgid "Unsupported sort_dir. Acceptable values: %s"
msgstr "sort_dir non pris en charge. Valeurs acceptables : %s"

#: glance/registry/api/v1/images.py:324
msgid "is_public must be None, True, or False"
msgstr "is_public doit être None, True ou False"

#: glance/registry/api/v1/images.py:319
#, python-format
msgid "Successfully retrieved image %(id)s"
msgstr ""

#: glance/registry/api/v1/members.py:68 glance/registry/api/v1/members.py:102
#: glance/registry/api/v1/members.py:222 glance/registry/api/v1/members.py:286
#, python-format
msgid "Image %(id)s not found"
msgstr "Image %(id)s non trouvé"

#: glance/registry/api/v1/images.py:332
#, python-format
msgid "Unable to show image %s"
msgstr ""

#: glance/registry/api/v1/images.py:349
#, python-format
msgid "Successfully deleted image %(id)s"
msgstr ""

#: glance/registry/api/v1/images.py:353
#, python-format
msgid "Delete denied for public image %(id)s"
msgstr ""

#: glance/registry/api/v1/images.py:367
#, python-format
msgid "Unable to delete image %s"
msgstr ""

#: glance/registry/api/v1/images.py:392
#, python-format
msgid "Rejecting image creation request for invalid image id '%(bad_id)s'"
msgstr ""

#: glance/registry/api/v1/images.py:410
msgid "Invalid image id format"
msgstr "Format d'ID image non valide"

#: glance/registry/api/v1/images.py:405
#, python-format
msgid "Successfully created image %(id)s"
msgstr ""

#: glance/registry/api/v1/images.py:424
#, python-format
msgid "Image with identifier %s already exists!"
msgstr "L'image avec l'identificateur %s existe déjà !"

#: glance/registry/api/v1/images.py:413
#, python-format
msgid "Failed to add image metadata. Got error: %(e)s"
msgstr ""

#: glance/registry/api/v1/images.py:418
#, python-format
msgid "Unable to create image %s"
msgstr ""

#: glance/registry/api/v1/images.py:443
#, python-format
msgid "Updating image %(id)s with metadata: %(image_data)r"
msgstr ""

#: glance/registry/api/v1/images.py:457
#, python-format
msgid "Updating metadata for image %(id)s"
msgstr ""

#: glance/registry/api/v1/images.py:472
#, python-format
msgid "Update denied for public image %(id)s"
msgstr ""

#: glance/registry/api/v1/images.py:489
#, python-format
msgid "Unable to update image %s"
msgstr ""

#: glance/registry/api/v1/members.py:77
#, python-format
msgid "Returning member list for image %(id)s"
msgstr ""

#: glance/registry/api/v1/members.py:112 glance/registry/api/v1/members.py:225
#: glance/registry/api/v1/members.py:285
#, python-format
msgid "User lacks permission to share image %(id)s"
msgstr ""

#: glance/registry/api/v1/members.py:118 glance/registry/api/v1/members.py:238
#: glance/registry/api/v1/members.py:302
msgid "No permission to share that image"
msgstr "Aucun droit de partage de cette image"

#: glance/registry/api/v1/members.py:122 glance/registry/api/v1/members.py:138
#: glance/registry/api/v1/members.py:237
#, python-format
msgid "Invalid membership association specified for image %(id)s"
msgstr ""

#: glance/registry/api/v1/members.py:129 glance/registry/api/v1/members.py:146
#: glance/registry/api/v1/members.py:251
#, python-format
msgid "Invalid membership association: %s"
msgstr "Association d'appartenance non valide : %s"

#: glance/registry/api/v1/members.py:189
#, python-format
msgid "Successfully updated memberships for image %(id)s"
msgstr ""

#: glance/registry/api/v1/members.py:258
#, python-format
msgid "Successfully updated a membership for image %(id)s"
msgstr ""

#: glance/registry/api/v1/members.py:297
#, python-format
msgid "%(id)s is not a member of image %(image_id)s"
msgstr ""

#: glance/registry/api/v1/members.py:314 glance/registry/api/v1/members.py:338
msgid "Membership could not be found."
msgstr "Appartenance non trouvée."

#: glance/registry/api/v1/members.py:304
#, python-format
msgid "Successfully deleted a membership from image %(id)s"
msgstr ""

#: glance/registry/api/v1/members.py:315
#, python-format
msgid "Member %(id)s not found"
msgstr ""

#: glance/registry/api/v1/members.py:320
#, python-format
msgid "Returning list of images shared with member %(id)s"
msgstr ""

#: glance/registry/api/v2/rpc.py:40
#, python-format
msgid "Registry service can't use %s"
msgstr "Le service de registre ne peut pas utiliser %s"

#: glance/registry/client/__init__.py:23
msgid ""
"The protocol to use for communication with the registry server.  Either http "
"or https."
msgstr ""
"Protocole à utiliser pour la communication avec le serveur de registre. http "
"ou https."

#: glance/registry/client/__init__.py:23
msgid ""
"The path to the key file to use in SSL connections to the registry server."
msgstr ""

#: glance/registry/client/__init__.py:26
msgid ""
"The path to the cert file to use in SSL connections to the registry server."
msgstr ""

#: glance/registry/client/__init__.py:29
msgid ""
"The path to the certifying authority cert file to use in SSL connections to "
"the registry server."
msgstr ""

#: glance/registry/client/__init__.py:32
msgid ""
"When using SSL in connections to the registry server, do not require "
"validation via a certifying authority."
msgstr ""

#: glance/registry/client/__init__.py:48
msgid ""
"The period of time, in seconds, that the API server will wait for a registry "
"request to complete. A value of 0 implies no timeout."
msgstr ""
"Période en secondes pendant laquelle le serveur d'API doit attendre qu'une "
"demande de registre se termine. Une valeur de 0 signifie aucun délai "
"d'attente."

#: glance/common/store_utils.py:34 glance/registry/client/__init__.py:56
msgid ""
"Whether to pass through the user token when making requests to the registry."
msgstr ""

#: glance/registry/client/__init__.py:46
msgid "The administrators user name."
msgstr ""

#: glance/registry/client/__init__.py:48
msgid "The administrators password."
msgstr ""

#: glance/registry/client/__init__.py:50
msgid "The tenant name of the administrative user."
msgstr ""

#: glance/registry/client/__init__.py:52
msgid "The URL to the keystone service."
msgstr ""

#: glance/registry/client/__init__.py:54
msgid "The strategy to use for authentication."
msgstr ""

#: glance/registry/client/__init__.py:56
msgid "The region for the authentication service."
msgstr ""

#: glance/registry/client/v1/api.py:33
msgid ""
"Whether to pass through headers containing user and tenant information when "
"making requests to the registry. This allows the registry to use the context "
"middleware without the keystoneclients' auth_token middleware, removing "
"calls to the keystone auth service. It is recommended that when using this "
"option, secure communication between glance api and glance registry is "
"ensured by means other than auth_token middleware."
msgstr ""

#: glance/registry/client/v1/api.py:79 glance/registry/client/v2/api.py:61
msgid "Configuration option was not valid"
msgstr "L'option de configuration n'était pas valide"

#: glance/registry/client/v1/api.py:83 glance/registry/client/v2/api.py:65
msgid "Could not find required configuration option"
msgstr "Option de configuration obligatoire introuvable"

#: glance/registry/client/v1/api.py:159
msgid "Adding image metadata..."
msgstr ""

#: glance/registry/client/v1/api.py:166
#, python-format
msgid "Updating image metadata for image %s..."
msgstr ""

#: glance/registry/client/v1/api.py:173
#, python-format
msgid "Deleting image metadata for image %s..."
msgstr ""

#: glance/registry/client/v1/client.py:110
#, python-format
msgid ""
"Registry request %(method)s %(action)s HTTP %(status)s request id "
"%(request_id)s"
msgstr ""

#: glance/registry/client/v1/client.py:118
#, python-format
msgid "Registry client request %(method)s %(action)s raised %(exc_name)s"
msgstr ""

#: glance/store/__init__.py:40
msgid ""
"List of which store classes and store class locations are currently known to "
"glance at startup."
msgstr ""

#: glance/store/__init__.py:43
msgid ""
"Default scheme to use to store image data. The scheme must be registered by "
"one of the stores defined by the 'known_stores' config option."
msgstr ""

#: glance/scrubber.py:46
msgid "Turn on/off delayed delete."
msgstr "L'activation/la désactivation a retardé la suppression."

#: glance/store/__init__.py:191
#, python-format
msgid "%s Skipping store driver."
msgstr ""

#: glance/store/__init__.py:196
#, python-format
msgid ""
"%s not found in `known_store`. Stores need to be explicitly enabled in the "
"configuration file."
msgstr ""

#: glance/store/__init__.py:318
#, python-format
msgid "Failed to delete image %s in store from URI"
msgstr ""

#: glance/store/__init__.py:324
#, python-format
msgid "Failed to delete image %(image_id)s from store (%(error)s)"
msgstr ""

#: glance/store/__init__.py:359
#, python-format
msgid ""
"The image metadata key %(key)s has an invalid type of %(val)s.  Only dict, "
"list, and unicode are supported."
msgstr ""

#: glance/store/__init__.py:383
#, python-format
msgid ""
"The storage driver %(store)s returned invalid metadata %(metadata)s. This "
"must be a dictionary type"
msgstr ""

#: glance/store/__init__.py:392
#, python-format
msgid ""
"A bad metadata structure was returned from the %(store)s storage driver: "
"%(metadata)s.  %(error)s."
msgstr ""

#: glance/store/__init__.py:419
msgid "Skipping store.set_acls... not implemented."
msgstr ""

#: glance/api/v1/images.py:1014 glance/common/scripts/utils.py:87
#, python-format
msgid "Invalid location: %s"
msgstr "Emplacement non valide : %s"

#: glance/location.py:341
#, python-format
msgid "Original locations is not empty: %s"
msgstr "L'emplacement original %s n'est pas vide"

#: glance/location.py:479
#, python-format
msgid "Get image %(id)s data failed: %(err)s."
msgstr "Echec de l'obtention des données de l'image %(id)s : %(err)s."

#: glance/store/__init__.py:744
#, python-format
msgid ""
"Glance tried all locations to get data for image %s but all have failed."
msgstr ""
"Glance a essayé tous les emplacements pour obtenir les données pour l'image "
"%s mais tous ont échoué."

#: glance/store/base.py:35 glance/tests/unit/test_store_base.py:51
#, python-format
msgid "Caught '%(exception)s' exception."
msgstr ""

#: glance/store/base.py:56
#, python-format
msgid "Failed to configure store correctly: %s Disabling add method."
msgstr ""

#: glance/store/cinder.py:88
#, python-format
msgid "Cinderclient connection created using URL: %s"
msgstr ""

#: glance/store/cinder.py:118
msgid "URI must start with cinder://"
msgstr ""

#: glance/store/cinder.py:126
#, python-format
msgid "URI contains invalid volume ID: %s"
msgstr ""

#: glance/store/cinder.py:149
msgid "Cinder storage requires a context."
msgstr ""

#: glance/store/cinder.py:153
msgid "Cinder storage requires a service catalog."
msgstr ""

#: glance/store/cinder.py:175
#, python-format
msgid "Failed to get image size due to volume can not be found: %s"
msgstr ""

#: glance/store/cinder.py:180
#, python-format
msgid "Failed to get image size due to internal error: %s"
msgstr ""

#: glance/store/filesystem.py:41
msgid "Directory to which the Filesystem backend store writes images."
msgstr ""

#: glance/store/filesystem.py:44
msgid ""
"List of directories and its priorities to which the Filesystem backend store "
"writes images."
msgstr ""

#: glance/store/filesystem.py:47
msgid ""
"The path to a file which contains the metadata to be returned with any "
"location associated with this store.  The file must contain a valid JSON "
"dict."
msgstr ""

#: glance/store/filesystem.py:78
#, python-format
msgid "No path specified in URI: %s"
msgstr ""

#: glance/store/filesystem.py:131
#, python-format
msgid "Permission to write in %s denied"
msgstr ""

#: glance/store/filesystem.py:148
#, python-format
msgid "Directory to write image files does not exist (%s). Creating."
msgstr ""

#: glance/store/filesystem.py:162
#, python-format
msgid "Unable to create datadir: %s"
msgstr ""

#: glance/store/filesystem.py:176
msgid ""
"Specify at least 'filesystem_store_datadir' or 'filesystem_store_datadirs' "
"option"
msgstr ""

#: glance/store/filesystem.py:183
msgid ""
"Specify either 'filesystem_store_datadir' or 'filesystem_store_datadirs' "
"option"
msgstr ""

#: glance/store/filesystem.py:220
#, python-format
msgid ""
"Directory %(datadir_path)s specified multiple times in "
"filesystem_store_datadirs option of filesystem configuration"
msgstr ""

#: glance/store/filesystem.py:245
#, python-format
msgid "Invalid priority value %(priority)s in filesystem configuration"
msgstr ""

#: glance/store/filesystem.py:252
msgid "Invalid directory specified in filesystem configuration"
msgstr ""

#: glance/store/filesystem.py:264
#, python-format
msgid "Image file %s not found"
msgstr ""

#: glance/store/filesystem.py:279
#, python-format
msgid ""
"The JSON in the metadata file %(file)s could not be used: %(error)s  An "
"empty dictionary will be returned to the client."
msgstr ""

#: glance/store/filesystem.py:286
#, python-format
msgid ""
"The path for the metadata file %(file)s could not be opened: %(error)s  An "
"empty dictionary will be returned to the client."
msgstr ""

#: glance/store/filesystem.py:293
#, python-format
msgid ""
"An error occurred processing the storage systems meta data file: %s.  An "
"empty dictionary will be returned to the client."
msgstr ""

#: glance/store/filesystem.py:309
#, python-format
msgid "Found image at %s. Returning in ChunkedFile."
msgstr ""

#: glance/store/filesystem.py:324
#, python-format
msgid "Found image at %s."
msgstr ""

#: glance/store/filesystem.py:343
#, python-format
msgid "Deleting image at %(fn)s"
msgstr ""

#: glance/store/filesystem.py:346
#, python-format
msgid "You cannot delete file %s"
msgstr ""

#: glance/store/filesystem.py:348
#, python-format
msgid "Image file %s does not exist"
msgstr ""

#: glance/store/filesystem.py:393
#, python-format
msgid ""
"There is no enough disk space left on the image storage media. requested=%s"
msgstr ""

#: glance/store/filesystem.py:424
#, python-format
msgid "Image file %s already exists!"
msgstr ""

#: glance/store/filesystem.py:450
#, python-format
msgid ""
"Wrote %(bytes_written)d bytes to %(filepath)s with checksum %(checksum_hex)s"
msgstr ""

#: glance/store/filesystem.py:462
#, python-format
msgid "Unable to remove partial image data for image %(id)s: %(error)s"
msgstr ""

#: glance/store/gridfs.py:97
msgid "Missing dependencies: pymongo"
msgstr ""

#: glance/store/gridfs.py:113 glance/store/s3.py:252 glance/store/swift.py:366
#: glance/store/vmware_datastore.py:235
#, python-format
msgid "Could not find %(param)s in configuration options."
msgstr ""

#: glance/store/gridfs.py:157
#, python-format
msgid "Could not find %s image in GridFS"
msgstr ""

#: glance/store/gridfs.py:180
#, python-format
msgid "GridFS already has an image at location %s"
msgstr ""

#: glance/store/gridfs.py:183
#, python-format
msgid "Adding a new image to GridFS with id %(id)s and size %(size)s"
msgstr ""

#: glance/store/gridfs.py:196
#, python-format
msgid "Uploaded image %(id)s, md5 %(md5)s, length %(length)s to GridFS"
msgstr ""

#: glance/store/http.py:81
#, python-format
msgid "Credentials '%s' not well-formatted."
msgstr ""

#: glance/store/http.py:88
msgid "No address specified in HTTP URL"
msgstr ""

#: glance/store/http.py:154
#, python-format
msgid "The HTTP URL exceeded %s maximum redirects."
msgstr ""

#: glance/store/http.py:166
#, python-format
msgid "HTTP URL returned a %s status code."
msgstr ""

#: glance/store/http.py:173
#, python-format
msgid "The HTTP URL attempted to redirect with an invalid %s status code."
msgstr ""

#: glance/store/location.py:85
#, python-format
msgid "Registering scheme %(k)s with %(v)s"
msgstr ""

#: glance/store/rbd.py:51
msgid ""
"RADOS images will be chunked into objects of this size (in megabytes). For "
"best performance, this should be a power of two."
msgstr ""

#: glance/store/rbd.py:55
msgid "RADOS pool in which images are stored."
msgstr ""

#: glance/store/rbd.py:57
msgid ""
"RADOS user to authenticate as (only applicable if using Cephx. If <None>, a "
"default will be chosen based on the client. section in rbd_store_ceph_conf)."
msgstr ""

#: glance/store/rbd.py:61
msgid ""
"Ceph configuration file path. If <None>, librados will locate the default "
"config. If using cephx authentication, this file should include a reference "
"to the right keyring in a client.<USER> section."
msgstr ""

#: glance/store/rbd.py:107
msgid "URI must start with rbd://"
msgstr ""

#: glance/store/rbd.py:108 glance/store/rbd.py:117 glance/store/rbd.py:130
#: glance/store/rbd.py:136
#, python-format
msgid "Invalid URI: %(uri)s: %(reason)s"
msgstr ""

#: glance/store/rbd.py:116
msgid "URI contains non-ascii characters"
msgstr ""

#: glance/store/rbd.py:129
msgid "URI must have exactly 1 or 4 components"
msgstr ""

#: glance/store/rbd.py:135
msgid "URI cannot contain empty components"
msgstr ""

#: glance/store/rbd.py:171 glance/store/rbd.py:235 glance/store/rbd.py:295
#, python-format
msgid "RBD image %s does not exist"
msgstr ""

#: glance/store/rbd.py:198 glance/store/sheepdog.py:197
#: glance/store/sheepdog.py:205
#, python-format
msgid "Error in store configuration: %s"
msgstr ""

#: glance/store/rbd.py:282
#, python-format
msgid ""
"snapshot %(image)s@%(snap)s could not be unprotected because it is in use"
msgstr ""

#: glance/store/rbd.py:297
#, python-format
msgid "image %s could not be removed because it is in use"
msgstr ""

#: glance/store/rbd.py:328
msgid ""
"since image size is zero we will be doing resize-before-write for each chunk "
"which will be considerably slower than normal"
msgstr ""

#: glance/store/rbd.py:337
#, python-format
msgid "RBD image %s already exists"
msgstr ""

#: glance/store/rbd.py:353
#, python-format
msgid "resizing image to %s KiB"
msgstr ""

#: glance/store/rbd.py:356
#, python-format
msgid "writing chunk at offset %s"
msgstr ""

#: glance/store/s3.py:37
msgid "The host where the S3 server is listening."
msgstr ""

#: glance/store/s3.py:39
msgid "The S3 query token access key."
msgstr ""

#: glance/store/s3.py:41
msgid "The S3 query token secret key."
msgstr ""

#: glance/store/s3.py:43
msgid "The S3 bucket to be used to store the Glance data."
msgstr ""

#: glance/store/s3.py:45
msgid ""
"The local directory where uploads will be staged before they are transferred "
"into S3."
msgstr ""

#: glance/store/s3.py:48
msgid ""
"A boolean to determine if the S3 bucket should be created on upload if it "
"does not exist or if an error should be returned to the user."
msgstr ""

#: glance/store/s3.py:52
msgid ""
"The S3 calling format used to determine the bucket. Either subdomain or path "
"can be used."
msgstr ""

#: glance/store/s3.py:115
msgid ""
"URI cannot contain more than one occurrence of a scheme. If you have "
"specified a URI like "
"s3://accesskey:secretkey@https://s3.amazonaws.com/bucket/key-id, you need to "
"change it to use the s3+https:// scheme, like so: "
"s3+https://accesskey:secretkey@s3.amazonaws.com/bucket/key-id"
msgstr ""

#: glance/store/s3.py:123
#, python-format
msgid "Invalid store uri: %s"
msgstr ""

#: glance/store/s3.py:149
#, python-format
msgid "Badly formed S3 credentials %s"
msgstr ""

#: glance/store/s3.py:162
msgid "Badly formed S3 URI. Missing s3 service URL."
msgstr ""

#: glance/store/s3.py:165
#, python-format
msgid "Badly formed S3 URI: %s"
msgstr ""

#: glance/store/s3.py:307
#, python-format
msgid ""
"Retrieved image object from S3 using (s3_host=%(s3_host)s, "
"access_key=%(accesskey)s, bucket=%(bucket)s, key=%(obj_name)s)"
msgstr ""

#: glance/store/s3.py:367
#, python-format
msgid "S3 already has an image at location %s"
msgstr ""

#: glance/store/s3.py:371
#, python-format
msgid ""
"Adding image object to S3 using (s3_host=%(s3_host)s, "
"access_key=%(access_key)s, bucket=%(bucket)s, key=%(obj_name)s)"
msgstr ""

#: glance/store/s3.py:393
#, python-format
msgid "Writing request body file to temporary file for %s"
msgstr ""

#: glance/store/s3.py:405
#, python-format
msgid "Uploading temporary file to S3 for %s"
msgstr ""

#: glance/store/s3.py:414
#, python-format
msgid ""
"Wrote %(size)d bytes to S3 key named %(obj_name)s with checksum "
"%(checksum_hex)s"
msgstr ""

#: glance/store/s3.py:442
#, python-format
msgid ""
"Deleting image object from S3 using (s3_host=%(s3_host)s, "
"access_key=%(accesskey)s, bucket=%(bucket)s, key=%(obj_name)s)"
msgstr ""

#: glance/store/s3.py:464
#, python-format
msgid "Could not find bucket with ID %s"
msgstr ""

#: glance/store/s3.py:505
#, python-format
msgid ""
"Failed to add bucket to S3.\n"
"Got error from S3: %(e)s"
msgstr ""

#: glance/store/s3.py:509
#, python-format
msgid ""
"The bucket %(bucket)s does not exist in S3. Please set the "
"s3_store_create_bucket_on_put option to add bucket to S3 automatically."
msgstr ""

#: glance/store/s3.py:528
#, python-format
msgid "Could not find key %(obj)s in bucket %(bucket)s"
msgstr ""

#: glance/store/sheepdog.py:42
msgid ""
"Images will be chunked into objects of this size (in megabytes). For best "
"performance, this should be a power of two."
msgstr ""

#: glance/store/sheepdog.py:46
msgid "Port of sheep daemon."
msgstr ""

#: glance/store/sheepdog.py:48
msgid "IP address of sheep daemon."
msgstr ""

#: glance/store/sheepdog.py:225 glance/store/sheepdog.py:244
#: glance/store/sheepdog.py:305
#, python-format
msgid "Sheepdog image %s does not exist"
msgstr ""

#: glance/store/sheepdog.py:266
#, python-format
msgid "Sheepdog image %s already exists"
msgstr ""

#: glance/store/swift.py:49
msgid ""
"Whether to use ServiceNET to communicate with the Swift storage servers."
msgstr ""

#: glance/store/swift.py:52
msgid "The address where the Swift authentication service is listening."
msgstr ""

#: glance/store/swift.py:55
msgid "The user to authenticate against the Swift authentication service."
msgstr ""

#: glance/store/swift.py:58
msgid ""
"Auth key for the user authenticating against the Swift authentication "
"service."
msgstr ""

#: glance/store/swift.py:61
msgid ""
"Version of the authentication service to use. Valid versions are 2 for "
"keystone and 1 for swauth and rackspace."
msgstr ""

#: glance/store/swift.py:65
msgid ""
"If True, swiftclient won't check for a valid SSL certificate when "
"authenticating."
msgstr ""

#: glance/store/swift.py:68
msgid ""
"The region of the swift endpoint to be used for single tenant. This setting "
"is only necessary if the tenant has multiple swift endpoints."
msgstr ""

#: glance/store/swift.py:72
msgid ""
"A string giving the endpoint type of the swift service to use (publicURL, "
"adminURL or internalURL). This setting is only used if "
"swift_store_auth_version is 2."
msgstr ""

#: glance/store/swift.py:77
msgid ""
"A string giving the service type of the swift service to use. This setting "
"is only used if swift_store_auth_version is 2."
msgstr ""

#: glance/store/swift.py:82
msgid ""
"Container within the account that the account should use for storing images "
"in Swift."
msgstr ""

#: glance/store/swift.py:86
msgid ""
"The size, in MB, that Glance will start chunking image files and do a large "
"object manifest in Swift."
msgstr ""

#: glance/store/swift.py:90
msgid ""
"The amount of data written to a temporary disk buffer during the process of "
"chunking the image file."
msgstr ""

#: glance/store/swift.py:93
msgid ""
"A boolean value that determines if we create the container if it does not "
"exist."
msgstr ""

#: glance/store/swift.py:96
msgid ""
"If set to True, enables multi-tenant storage mode which causes Glance images "
"to be stored in tenant specific Swift accounts."
msgstr ""

#: glance/store/swift.py:100
msgid ""
"A list of tenants that will be granted read/write access on all Swift "
"containers created by Glance in multi-tenant mode."
msgstr ""

#: glance/store/swift.py:104
msgid ""
"If set to False, disables SSL layer compression of https swift requests. "
"Setting to False may improve performance for images which are already in a "
"compressed format, eg qcow2."
msgstr ""

#: glance/store/swift.py:109
msgid ""
"The number of times a Swift download will be retried before the request "
"fails."
msgstr ""

#: glance/store/swift.py:129
#, python-format
msgid "Swift exception raised %s"
msgstr ""

#: glance/store/swift.py:134
#, python-format
msgid "Stopping Swift retries after %d attempts"
msgstr ""

#: glance/store/swift.py:139
#, python-format
msgid ""
"Retrying Swift connection (%(retries)d/%(max_retries)d) with range=%(start)d-"
"%(end)d"
msgstr ""

#: glance/store/swift.py:214
msgid ""
"URI cannot contain more than one occurrence of a scheme. If you have "
"specified a URI like swift://user:pass@http://authurl.com/v1/container/obj, "
"you need to change it to use the swift+http:// scheme, like so: "
"swift+http://user:pass@authurl.com/v1/container/obj"
msgstr ""

#: glance/store/swift.py:220
#, python-format
msgid "Invalid store URI: %(reason)s"
msgstr ""

#: glance/store/swift.py:264
msgid "Badly formed Swift URI."
msgstr ""

#: glance/store/swift.py:328
#, python-format
msgid "Swift could not find object %s."
msgstr ""

#: glance/store/swift.py:375
#, python-format
msgid "Deleting chunk %s"
msgstr ""

#: glance/store/swift.py:379
#, python-format
msgid "Failed to delete orphaned chunk %(container)s/%(chunk)s"
msgstr ""

#: glance/store/swift.py:391
#, python-format
msgid "Adding image object '%(obj_name)s' to Swift"
msgstr ""

#: glance/store/swift.py:411
msgid "Cannot determine image size. Adding as a segmented object to Swift."
msgstr ""

#: glance/store/swift.py:440
msgid "Error during chunked upload to backend, deleting stale chunks"
msgstr ""

#: glance/store/swift.py:447
#, python-format
msgid ""
"Wrote chunk %(chunk_name)s (%(chunk_id)d/%(total_chunks)s) of length "
"%(bytes_read)d to Swift returning MD5 of content: %(chunk_etag)s"
msgstr ""

#: glance/store/swift.py:461
msgid "Deleting final zero-length chunk"
msgstr ""

#: glance/store/swift.py:498
msgid "Swift already has an image at this location"
msgstr ""

#: glance/store/swift.py:500
#, python-format
msgid ""
"Failed to add object to Swift.\n"
"Got error from Swift: %(e)s"
msgstr ""

#: glance/store/swift.py:541 glance/store/swift.py:702
msgid "Swift could not find image at URI."
msgstr ""

#: glance/store/swift.py:562
#, python-format
msgid ""
"Failed to add container to Swift.\n"
"Got error from Swift: %(e)s"
msgstr ""

#: glance/store/swift.py:566
#, python-format
msgid ""
"The container %(container)s does not exist in Swift. Please set the "
"swift_store_create_container_on_put optionto add container to Swift "
"automatically."
msgstr ""

#: glance/store/swift.py:610
msgid "Location is missing user:password information."
msgstr ""

#: glance/store/swift.py:622
#, python-format
msgid "Badly formed tenant:user '%(user)s' in Swift URI"
msgstr ""

#: glance/store/swift.py:649
msgid "Multi-tenant Swift storage requires a context."
msgstr ""

#: glance/store/swift.py:653
msgid "Multi-tenant Swift storage requires a service catalog."
msgstr ""

#: glance/store/vmware_datastore.py:48
msgid ""
"ESX/ESXi or vCenter Server target system. The server value can be an IP "
"address or a DNS name."
msgstr ""

#: glance/store/vmware_datastore.py:51
msgid "Username for authenticating with VMware ESX/VC server."
msgstr ""

#: glance/store/vmware_datastore.py:54
msgid "Password for authenticating with VMware ESX/VC server."
msgstr ""

#: glance/store/vmware_datastore.py:59
msgid ""
"Inventory path to a datacenter. If the vmware_server_host specified is an "
"ESX/ESXi, the vmware_datacenter_path is optional. If specified, it should be "
"\"ha-datacenter\"."
msgstr ""

#: glance/store/vmware_datastore.py:64
msgid "Datastore associated with the datacenter."
msgstr ""

#: glance/store/vmware_datastore.py:67
msgid ""
"Number of times VMware ESX/VC server API must be retried upon connection "
"related issues."
msgstr ""

#: glance/store/vmware_datastore.py:71
msgid ""
"The interval used for polling remote tasks invoked on VMware ESX/VC server."
msgstr ""

#: glance/store/vmware_datastore.py:75
msgid ""
"The name of the directory where the glance images will be stored in the "
"VMware datastore."
msgstr ""

#: glance/store/vmware_datastore.py:79
msgid "Allow to perform insecure SSL requests to ESX/VC."
msgstr ""

#: glance/store/vmware_datastore.py:165
#, python-format
msgid "URI %(uri)s must start with %(scheme)s://"
msgstr ""

#: glance/store/vmware_datastore.py:181
#, python-format
msgid "Badly formed VMware datastore URI %(uri)s."
msgstr ""

#: glance/store/vmware_datastore.py:222
#, python-format
msgid "Could not find datastore %(ds_name)s in datacenter %(dc_path)s"
msgstr ""

#: glance/store/vmware_datastore.py:280 glance/store/vmware_datastore.py:288
#, python-format
msgid "Failed to upload content of image %(image)s"
msgstr ""

#: glance/store/vmware_datastore.py:284
#, python-format
msgid "Image file %(image_id)s already exists!"
msgstr ""

#: glance/store/vmware_datastore.py:359
#, python-format
msgid "Failed to delete image %(image)s content."
msgstr ""

#: glance/store/vmware_datastore.py:364
#, python-format
msgid "The HTTP URL exceeded %(max_redirects)s maximum redirects."
msgstr ""

#: glance/store/vmware_datastore.py:374
#, python-format
msgid "Failed to access image %(image)s content."
msgstr ""

#: glance/store/vmware_datastore.py:378
msgid "VMware datastore could not find image at URI."
msgstr ""

#: glance/store/vmware_datastore.py:381
#, python-format
msgid "HTTP request returned a %(status)s status code."
msgstr ""

#: glance/store/vmware_datastore.py:388
#, python-format
msgid ""
"The HTTP URL %(path)s attempted to redirect with an invalid %(status)s "
"status code."
msgstr ""

#: glance/tests/unit/test_migrations.py:619
#, python-format
msgid "location: %s data lost"
msgstr "emplacement : %s données perdues"
