# Spanish translation for glance
# Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012
# This file is distributed under the same license as the glance package.
# Francisco Molinero <paco@byasl.com>, 2012.
#
msgid ""
msgstr ""
"Project-Id-Version: glance\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2014-03-26 06:02+0000\n"
"PO-Revision-Date: 2014-09-20 07:09+0000\n"
"Last-Translator: Paco Molinero <paco@byasl.com>\n"
"Language-Team: Español; Castellano <>\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"

#: 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 ""
"Se pueden enviar notificaciones cuando se creen, actualicen o borren "
"imágenes. Existen tres métodos para el envío de notificaciones: «logging» "
"(mediante la directiva «log_file»), «rabbit» (mediante una cola «rabbitmq»), "
"«qpid» (mediante una cola de mensajes «Qpid») o «noop» (no se envía "
"notificación, valor predeterminado). (OBSOLETO)"

#: glance/notifier.py:68
msgid "notifier_strategy was deprecated in favor of `notification_driver`"
msgstr ""
"«notifier_strategy» se hizo obsoleto en favor de «notification_driver»"

#: glance/notifier.py:229 glance/api/common.py:82
#, python-format
msgid "An error occurred during image.send notification: %(err)s"
msgstr "Ocurrió un error durante la notificación 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 "El soporte de almacenamiento de imagen está lleno: %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 "Permisos insuficientes en el soporte de almacenamiento de imagen: %s"

#: glance/notifier.py:408
#, python-format
msgid "Cannot save data for image %(image_id)s: %(error)s"
msgstr ""
"No se pueden guardar los datos para  la imagen %(image_id)s: %(error)s"

#: glance/notifier.py:415
#, python-format
msgid ""
"Unable to upload duplicate image data for image%(image_id)s: %(error)s"
msgstr "No se puede cargar datos de imagen duplicada %(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 ""
"No se permite cargar datos de imagen para imagen %(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 ""
"No se pudo encontrar imagen %(image_id)s después de subirla. Es posible que "
"la imagen haya sido eliminada durante la carga: %(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 ""
"No se permite cargar datos de imagen para imagen %(image_id)s a causa de un "
"error 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 ""
"Error al cargar datos de imagen para imagen %(image_id)s a causa de un error "
"interno: %(error)s"

#: glance/schema.py:79
#, python-format
msgid "custom properties (%(props)s) conflict with base properties"
msgstr ""
"las propiedades personalizadas (%(props)s) están en conflicto con las "
"propiedades 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 ""
"El directorio que el scrubber va a usar para hacer seguimiento de la "
"información sobre lo que se va a borrar. Asegúrese que esté definido en "
"glance-api.conf y glance-scrubber.conf."

#: glance/scrubber.py:37
msgid "The amount of time in seconds to delay before performing a delete."
msgstr ""
"El lapso e tiempo en segundos en demora antes de realizar una eliminación."

#: 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 ""
"Booleano que determina si el limpiador debería limpiar los archivos que usa "
"para tomar datos. Solo un servidor en su despliegue debería ser designado "
"como equipo de limpieza."

#: 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 ""
"Los elementos deben tener un tiempo de modificación que sea anterior a este "
"valor para que sean candidatos a ser limpiados."

#: glance/scrubber.py:134
#, python-format
msgid "%s file can not be read."
msgstr "el archivo %s no se pudo leer"

#: glance/scrubber.py:158
#, python-format
msgid "%s file can not be wrote."
msgstr "el archivo %s no se pudo escribir"

#: glance/scrubber.py:183 glance/api/v1/images.py:1022
#, python-format
msgid "Failed to find image to delete: %(e)s"
msgstr "No se pudo encontrar la imagen a borrar: %(e)s"

#: glance/scrubber.py:215
#, python-format
msgid "%s directory does not exist."
msgstr "el directorio %s no existe."

#: glance/scrubber.py:362
#, python-format
msgid "Starting Daemon: wakeup_time=%(wakeup_time)s threads=%(threads)s"
msgstr "Iniciando demonio: wakeup_time=%(wakeup_time)s hilos=%(threads)s"

#: glance/scrubber.py:376
msgid "Daemon Shutdown on KeyboardInterrupt"
msgstr "Detener demonio en KeyboardInterrupt"

#: glance/scrubber.py:380
msgid "Running application"
msgstr "Aplicación en ejecución"

#: glance/scrubber.py:383
#, python-format
msgid "Next run scheduled in %s seconds"
msgstr "Próxima ejecución programada en %s segundos"

#: glance/scrubber.py:388
#, python-format
msgid "Initializing scrubber with configuration: %s"
msgstr "Inicializando depurador con configuración: %s"

#: glance/scrubber.py:412
#, python-format
msgid "Can not %s scrub jobs from queue."
msgstr "No se pudieron depurar tareas %s en espera."

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

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

#: glance/scrubber.py:464
#, python-format
msgid "Failed to delete URI from image %(image_id)s"
msgstr "Falló al borrar URI de la imagen %(image_id)s"

#: glance/scrubber.py:594
#, python-format
msgid "%s file is not exists."
msgstr "el archivo %s no existe."

#: glance/scrubber.py:599
#, python-format
msgid "%s file contains conflicting cleanup timestamp."
msgstr "El archivo %s contien marca de tiempo de limpieza con conflicto."

#: glance/scrubber.py:500
#, python-format
msgid "%s file can not be created."
msgstr "el archivo %s no se pudo crear."

#: glance/scrubber.py:514
#, python-format
msgid "Getting images deleted before %s"
msgstr "Recuperar imágenes eliminadas antes de %s"

#: glance/api/authorization.py:140 glance/api/authorization.py:151
#, python-format
msgid "You cannot get image member for %s"
msgstr "No se puede obtener el miembro de la imagen para %s"

#: glance/api/authorization.py:159
#, python-format
msgid "You cannot delete image member for %s"
msgstr "No se puede suprimir el miembro de la imagen para %s"

#: glance/api/authorization.py:168
#, python-format
msgid "You cannot add image member for %s"
msgstr "No se puede añadir el miembro de la imagen para %s"

#: glance/api/authorization.py:177
#, python-format
msgid "You cannot update image member %s"
msgstr "No se puede actualizar el miembro de la imagen %s"

#: glance/api/authorization.py:196
#, python-format
msgid "You are not permitted to create images owned by '%s'."
msgstr "No está autorizado para crear imágenes que pertenecen a «%s»."

#: glance/api/authorization.py:219
msgid "You are not permitted to create image members for the image."
msgstr "No tiene permiso para crear miembros de imagen para la imagen."

#: glance/api/authorization.py:131 glance/api/authorization.py:224
msgid "Public images do not have members."
msgstr "Las imágenes públicas no tienen miembros."

#: glance/api/authorization.py:240
#, python-format
msgid "You are not permitted to modify '%(attr)s' on this %(resource)s."
msgstr "No tiene permiso para modificar '%(attr)s' en este %(resource)s."

#: glance/api/authorization.py:250
msgid "You are not permitted to modify locations for this image."
msgstr "No tiene permiso para modificar ubicaciones para esta imagen."

#: glance/api/authorization.py:274
#, python-format
msgid "You are not permitted to modify '%s' on this image."
msgstr "No tiene permiso para modificar '%s' en esta imagen."

#: glance/api/authorization.py:278
msgid "You are not permitted to modify this image."
msgstr "No tiene permiso para modificar esta imagen."

#: glance/api/authorization.py:291
msgid "You are not permitted to modify tags on this image."
msgstr "No tiene permiso para modificar etiquetas en esta imagen."

#: glance/api/authorization.py:331
msgid "You are not permitted to delete this image."
msgstr "No tiene permiso para suprimir esta imagen."

#: glance/api/authorization.py:338
msgid "You are not permitted to upload data for this image."
msgstr "No está autorizado para subir datos para esta imagen,"

#: 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 "No tiene permiso para configurar estado en esta tarea."

#: glance/api/authorization.py:450
#, python-format
msgid "You are not permitted to create this task with owner as: %s"
msgstr "No tiene permiso para crear esta tarea como propiedad de: '%s"

#: glance/api/common.py:44
#, python-format
msgid ""
"An error occurred reading from backend storage for image %(image_id)s: "
"%(err)s"
msgstr ""
"Ocurrió un error leyendo desde el motor de almacenamiento para la imagen "
"%(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 ""
"El motor de almacenamiento para imagen %(image_id)s se desconectó después de "
"escribir solo %(bytes_written)d bytes"

#: glance/api/common.py:65
#, python-format
msgid "Corrupt image download for image %(image_id)s"
msgstr "Descarga de imagen corrupta para imagen %(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 ""
"El usuario %(user)s intentó cargar una imagen de tamaño desconocido que "
"excederá la cuota. Quedan %(remaining)d bytes."

#: 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 ""
"El usuario %(user)s intentó subir una imagen de tamaño %(size)d que excederá "
"la cuota. %(remaining)d bytes restantes."

#: glance/api/policy.py:34
msgid "The location of the policy file."
msgstr "Ubicación del archivo de políticas."

#: glance/api/policy.py:36
msgid "The default policy to use."
msgstr "Política de uso predeterminado."

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

#: glance/api/policy.py:96
msgid "Unable to find policy file"
msgstr "No se encuentra el archivo de políticas"

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

#: glance/api/policy.py:159 glance/quota/__init__.py:357
#, python-format
msgid "Invalid locations: %s"
msgstr "Ubicaciones no válidas: %s"

#: glance/api/middleware/cache.py:57
msgid "Initialized image cache middleware"
msgstr "Se ha inicializado el subsistema de caché"

#: glance/api/middleware/cache.py:125
#, python-format
msgid "Cache hit for image '%s'"
msgstr "Caché de la imagen «%s»"

#: 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 ""
"La caché de imagen contenía el archivo de imagen para la imagen «%s», sin "
"embargo el registro no contenía metadatos para esa imagen."

#: glance/api/middleware/cache.py:230
#, python-format
msgid "could not find %s"
msgstr "no se ha encontrado %s"

#: glance/api/middleware/cache.py:238
#, python-format
msgid "Removing image %s from cache"
msgstr "Eliminar imagen %s de caché"

#: glance/api/middleware/cache.py:250
msgid "Checksum header is missing."
msgstr "Falta la suma de comprobación de la cabecera."

#: glance/api/middleware/cache_manage.py:72
msgid "Initialized image cache management middleware"
msgstr "Se ha inicializado el subsistema de control de caché"

#: 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 ""
"Cuando aplica, esta opción establece al propietario de una imagen como "
"usuario. De otro modo, el propietario de la imagen será el usuario "
"autenticado que emite la solicitud."

#: glance/scrubber.py:48 glance/api/middleware/context.py:34
msgid "Role used to identify an authenticated user as administrator."
msgstr "El rol identificaba antes el usuario autenticado como administrador."

#: 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 ""
"Permite a los usuarios autenticados acceder a API con privilegio de solo-"
"lectura. Solo aplica a usuarios de ContextMiddleware."

#: glance/api/middleware/context.py:55
msgid "Unable to retrieve request id from context"
msgstr "No se ha podido recuperar el ID de solicitud del contexto"

#: glance/api/middleware/context.py:120
msgid "Invalid service catalog json."
msgstr "JSON de catálogo de servicios no válido."

#: glance/api/middleware/gzip.py:33
msgid "Initialized gzip middleware"
msgstr "Iniciado subsistema gzip"

#: glance/api/middleware/version_negotiation.py:44
#, python-format
msgid ""
"Determining version of request: %(method)s %(path)s Accept: %(accept)s"
msgstr ""
"Determinando la versión de la solicitud: %(method)s %(path)s Aceptar: "
"%(accept)s"

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

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

#: glance/api/middleware/version_negotiation.py:64
msgid "Unknown version. Returning version choices."
msgstr "Versión desconocida. Devolviendo opciones de versión."

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

#: glance/api/v1/controller.py:44 glance/api/v1/members.py:78
#, python-format
msgid "Image with identifier %s not found"
msgstr "No se ha encontrado la imagen con el identificador %s"

#: glance/api/v1/controller.py:49
msgid "Forbidden image access"
msgstr "Acceso prohibido a la imagen"

#: glance/api/v1/controller.py:66
#, python-format
msgid "Image %s is not active"
msgstr "La imagen %s no está activa"

#: glance/api/v1/controller.py:88
#, python-format
msgid "Store for image_id not found: %s"
msgstr "No se ha encontrado el almacenamiento para image_id: %s"

#: glance/api/v1/images.py:102
#, python-format
msgid "Invalid disk format '%s' for image."
msgstr "Formato de disco '%s' no válido para imagen."

#: glance/api/v1/images.py:107
#, python-format
msgid "Invalid container format '%s' for image."
msgstr "Formato de contenedor '%s' no válido para imagen."

#: glance/api/v1/images.py:132
#, python-format
msgid "Image name too long: %d"
msgstr "Nombre de imagen demasiado largo: %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 ""
"Mezcla no válida de formatos de disco y contenedor. Al definir un formato de "
"disco o de contenedor como 'aki', 'ari' o 'ami', los formatos de contenedor "
"y de disco deben coincidir."

#: 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 ""
"Se ha excedido el  límite en el número de propiedades de imagen permitidas. "
"Intentos: %(num)s, Máximo: %(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 "Propiedad '%s' está protegida"

#: glance/api/v1/images.py:433
#, python-format
msgid "Bad value passed to filter %(filter)s got %(val)s"
msgstr "Valores incorrectos pasaron al filtro %(filter)s se obtuvo %(val)s"

#: glance/api/v1/images.py:420
#, python-format
msgid "External sourcing not supported for store %s"
msgstr "Fuente externa no soportada para el almacen %s"

#: glance/api/v1/images.py:571
#, python-format
msgid "Required store %s is invalid"
msgstr "El almacén %s solicitado no es válido"

#: glance/api/v1/images.py:584
#, python-format
msgid "Invalid location %s"
msgstr "Ubicación %s no válida"

#: glance/api/v1/images.py:606
#, python-format
msgid "An image with identifier %s already exists"
msgstr "Ya existe una imagen con el identificador %s"

#: glance/api/v1/images.py:535
#, python-format
msgid "Failed to reserve image. Got error: %(e)s"
msgstr "No se pudo reservar imagen. Error %(e)s"

#: glance/api/v1/images.py:620
msgid "Forbidden to reserve image."
msgstr "La reserva de imagen está prohibida."

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

#: glance/api/v1/images.py:664
msgid "Content-Type must be application/octet-stream"
msgstr "El tipo de contenido debe ser aplicación/serie de octetos"

#: glance/api/v1/images.py:589
#, python-format
msgid "Setting image %s to status 'saving'"
msgstr "Configurar la imagen «%s» a estado «guardada»"

#: glance/api/v1/images.py:593
#, python-format
msgid "Uploading image data for image %(image_id)s to %(scheme)s store"
msgstr ""
"Subiendo datos de imagen para la imagen %(image_id)s a almacén %(scheme)s"

#: glance/api/v1/images.py:636
#, python-format
msgid ""
"duplicate operation - deleting image data for %(id)s (location:%(location)s)"
msgstr ""
"operación duplicada - borrando datos de la imagen para %(id)s "
"(location:%(location)s)"

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

#: glance/api/v1/images.py:793
msgid "It's invalid to provide multiple image sources."
msgstr "Proporcionar múltiples fuentes para la imagen no es válido."

#: glance/api/v1/images.py:694
msgid "Triggering asynchronous copy from external source"
msgstr "Disparando copia asíncrona desde una fuente externa"

#: 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 ""
"El tamaño de imagen proporcionado debe coincidir con el tamaño de la imagen "
"almacenada. (tamaño proporcionado: %(ps)d, tamaño almacenado: %(ss)d)"

#: glance/api/v1/images.py:958
msgid "Forbidden to update deleted image."
msgstr "La actualización de una imagen suprimida está prohibida."

#: glance/api/v1/images.py:942
#, python-format
msgid "Forbidden to modify '%s' of active image."
msgstr "Está prohibido modificar  '%s' de imagen activa."

#: glance/api/v1/images.py:997
msgid "Cannot upload to an unqueued image"
msgstr "No se puede subir a una imagen en cola"

#: glance/api/v1/images.py:1021
msgid "Attempted to update Location field for an image not in queued status."
msgstr ""
"Se ha intentado actualizar el campo de ubicación para una imagen que no está "
"en estado de cola."

#: 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 "No se pudo actualizar los metadatos de la imagen. Error: %(e)s"

#: glance/api/v1/images.py:931
#, python-format
msgid "Failed to find image to update: %(e)s"
msgstr "No se pudo encontrar la imagen a actualizar: %(e)s"

#: glance/api/v1/images.py:938
#, python-format
msgid "Forbidden to update image: %(e)s"
msgstr "Prohibido actualizar imagen: %(e)s"

#: glance/api/v1/images.py:1114
msgid "Image is protected"
msgstr "La imagen está protegida"

#: glance/api/v1/images.py:1121
#, python-format
msgid "Forbidden to delete a %s image."
msgstr "Se prohíbe eliminar una imagen %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 "No se encontró imagen %s."

#: glance/api/v1/images.py:1029
#, python-format
msgid "Forbidden to delete image: %(e)s"
msgstr "Prohibido borrar imagen: %(e)s"

#: glance/api/v1/images.py:1201
#, python-format
msgid "Store for scheme %s not found"
msgstr "El almacén para el esquema %s no se ha encontrado"

#: 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 "Denegando intento de cargar una imagen mayor que %d bytes."

#: glance/api/v1/members.py:42 glance/registry/api/v1/members.py:34
msgid "No authenticated user"
msgstr "Ningún usuario autenticado"

#: glance/api/v1/members.py:55
#, python-format
msgid "Image with identifier %s has been deleted."
msgstr "Se ha eliminado imagen identificada como %s."

#: glance/api/v1/members.py:82
msgid "Unauthorized image access"
msgstr "Acceso a imagen no autorizado"

#: 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 ""
"Se ha excedido el  límite en el número de miembros de imagen para esta "
"imagen. Intentos: %(attempted)s, Máximo: %(maximum)s"

#: glance/api/v1/upload_utils.py:72
#, python-format
msgid "Unable to kill image %(id)s: "
msgstr "No se puede eliminar la imagen %(id)s: "

#: glance/api/v1/upload_utils.py:107
#, python-format
msgid "Cleaning up %s after exceeding the quota"
msgstr "Se limpió %s despues de sobrepasar la cuota"

#: 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) y %(attr)s proporcionados que se han generado desde "
"la imagen cargada (%(actual)s) no coinciden. Definiendo estado de imagen "
"como 'killed'."

#: 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 ""
"Actualizar datos de imagen %(image_id)s.  Establecer suma de comprobación a "
"%(checksum)s, establecer tamaño a %(size)d"

#: 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 ""
"No se puede encontrar la imagen %s después de la carga. Es posible que la "
"imagen se haya eliminado durante la carga."

#: glance/api/v1/upload_utils.py:204
#, python-format
msgid "Attempt to upload duplicate image: %s"
msgstr "Se ha intentado subir imagen duplicada: %s"

#: glance/api/v1/upload_utils.py:216
#, python-format
msgid "Forbidden upload attempt: %s"
msgstr "Intento de carga prohibido: %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 "Denegado el intento de cargar la imagen ya que excede la cuota: %s"

#: glance/api/v1/upload_utils.py:226
#, python-format
msgid "Received HTTP error while uploading image %s"
msgstr "Error HTTP recibido al cargar la imagen %s"

#: glance/api/v1/upload_utils.py:277
msgid "Client disconnected before sending all data to backend"
msgstr "El cliente se desconecto antes de enviar todos los datos a backend"

#: glance/api/v1/upload_utils.py:285
#, python-format
msgid "Failed to upload image %s"
msgstr "No se cargó imagen %s"

#: glance/api/v2/image_data.py:56
#, python-format
msgid "Unable to restore image %(image_id)s: %(e)s"
msgstr "No se pudo recuperar la imagen %(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 ""
"La imagen %(id)s no se pudo encontrar después de subirse. La imagen pudo "
"haber sido eliminada durante la subida: %(error)s Limpiando las fragmentos "
"subidos."

#: glance/api/v2/image_data.py:98
#, python-format
msgid "Not allowed to upload image data for image %s"
msgstr "No está permitido subir datos de imagen para la imagen %s"

#: glance/api/v2/image_data.py:205
#, python-format
msgid "Image exceeds the storage quota: %s"
msgstr "La imagen excede la capacidad de almacenamiento: %s"

#: glance/api/v2/image_data.py:213
#, python-format
msgid "The incoming image is too large: %s"
msgstr "La imagen de entrada es demasiado grande: %s"

#: glance/api/v2/image_data.py:135
msgid "Failed to upload image data due to HTTP error"
msgstr "No se pudieron subir los datos de la imagen debido a un error HTTP"

#: glance/api/v2/image_data.py:140
msgid "Failed to upload image data due to internal error"
msgstr ""
"No se pudieron subir los datos de la imagen debido a un error interno"

#: 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 "Se esperaba un cuerpo en la solicitud."

#: glance/api/v2/image_members.py:253
msgid "Member to be added not specified"
msgstr "No se ha especificado el miembro que añadir"

#: glance/api/v2/image_members.py:256
msgid "Member can't be empty"
msgstr "Miembro no puede estar vacío"

#: glance/api/v2/image_members.py:269
msgid "Status not specified"
msgstr "Estado no especificado"

#: glance/api/v2/image_members.py:328
msgid "An identifier for the image member (tenantId)"
msgstr "Un identificador para el miembro de la imagen (tenantId)"

#: glance/api/v2/image_members.py:332 glance/api/v2/images.py:834
msgid "An identifier for the image"
msgstr "Un identificador para la imagen"

#: glance/api/v2/image_members.py:338
msgid "Date and time of image member creation"
msgstr "Fecha y hora de creación del miembro de la imagen"

#: glance/api/v2/image_members.py:345
msgid "Date and time of last modification of image member"
msgstr "Fecha y hora de la última modificación del miembro de la imagen"

#: glance/api/v2/image_members.py:350
msgid "The status of this image member"
msgstr "El estado de este miembro de la imagen"

#: glance/api/v2/images.py:191 glance/api/v2/images.py:227
#, python-format
msgid "Property %s does not exist."
msgstr "La propiedad %s no existe."

#: glance/api/v2/images.py:205
#, python-format
msgid "Property %s already present."
msgstr "La propiedad %s ya está presente."

#: glance/api/v2/images.py:222
#, python-format
msgid "Property %s may not be removed."
msgstr "La propiedad %s no se puede eliminar."

#: glance/api/v2/images.py:241
#, python-format
msgid "Failed to find image %(image_id)s to delete"
msgstr "No se pudo encontrar imagen %(image_id)s para eliminar"

#: glance/api/v2/images.py:270
msgid "Cannot replace locations from a non-empty list to a non-empty list."
msgstr ""
"No se puede remplazar ubicaciones desde una lista no vacía a una lista no "
"vacía."

#: glance/api/v2/images.py:296
msgid "Invalid position for adding a location."
msgstr "Posición no válida para agregar ubicación."

#: glance/api/v2/images.py:322
msgid "Invalid position for removing a location."
msgstr "Posición no válida para eliminar ubicación."

#: 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 "El atributo '%s' es de solo lectura."

#: glance/api/v2/images.py:434
#, python-format
msgid "Unable to find '%s' in JSON Schema change"
msgstr "No se ha podido encontrar '%s' en el cambio del esquema JSON"

#: glance/api/v2/images.py:420
msgid ""
"Operation objects must contain only one member named \"add\", \"remove\", or "
"\"replace\"."
msgstr ""
"Los objetos de operación solo pueden contener un miembro llamado \"add\", "
"\"remove\" o \"replace\"."

#: glance/api/v2/images.py:425
msgid ""
"Operation objects must contain exactly one member named \"add\", \"remove\", "
"or \"replace\"."
msgstr ""
"Los objetos de operación pueden contener exactamente un miembro llamado "
"\"add\", \"remove\" o \"replace\"."

#: glance/api/v2/images.py:462
#, python-format
msgid "Pointer `%s` does not start with \"/\"."
msgstr "El puntero `%s` no empieza por \"/\"."

#: glance/api/v2/images.py:465
#, python-format
msgid "Pointer `%s` contains adjacent \"/\"."
msgstr "El puntero `%s` contiene adyacente \"/\"."

#: glance/api/v2/images.py:468
#, python-format
msgid "Pointer `%s` end with \"/\"."
msgstr "El puntero `%s` termina en \"/\"."

#: glance/api/v2/images.py:471
#, python-format
msgid "Pointer `%s` does not contains valid token."
msgstr "El puntero `%s` contiene un token no válido."

#: glance/api/v2/images.py:474
#, python-format
msgid "Pointer `%s` contains \"~\" not part of a recognized escape sequence."
msgstr ""
"El puntero `%s` contiene un \"~\" que no forma parte de una secuencia de "
"escape reconocida."

#: glance/api/v2/images.py:480
#, python-format
msgid "Operation \"%s\" requires a member named \"value\"."
msgstr "La operación \"%s\" requiere un miembro llamado \"value\"."

#: glance/api/v2/images.py:490
#, python-format
msgid "Attribute '%s' is reserved."
msgstr "El atributo '%s' está reservado."

#: glance/api/v2/images.py:520
#, python-format
msgid "Invalid JSON pointer for this resource: '/%s'"
msgstr "Puntero JSON no válido para este recurso: «/%s»"

#: glance/api/v2/images.py:532
msgid "Unrecognized JSON Schema draft version"
msgstr "Versión de borrador de esquema JSON no reconocida"

#: glance/api/v2/images.py:554
msgid "Request body must be a JSON array of operation objects."
msgstr ""
"El cuerpo de la solicitud debe ser una matriz JSON de objetos de operación."

#: glance/api/v2/images.py:559
msgid "Operations must be JSON objects."
msgstr "Las operaciones deben ser objetos 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 "el parámetro de límite debe ser un entero"

#: 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 "el parámetro de límite debe ser positivo"

#: 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 "Dirección de ordenación no válida : %s"

#: glance/api/v2/images.py:611
#, python-format
msgid "Invalid status: %s"
msgstr "Estado no válido: %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 "Valor de visibilidad no válido : %s"

#: glance/api/v2/images.py:840
msgid "Descriptive name for the image"
msgstr "Nombre descriptivo para la imagen"

#: glance/api/v2/images.py:825
msgid "Status of the image (READ-ONLY)"
msgstr "Estado de la imagen (SOLO-LECTURA)"

#: glance/api/v2/images.py:852
msgid "Scope of image accessibility"
msgstr "Ámbito de accesibilidad de la imagen"

#: glance/api/v2/images.py:857
msgid "If true, image will not be deletable."
msgstr "Si es true, la imagen no se podrá suprimir."

#: glance/api/v2/images.py:840
msgid "md5 hash of image contents. (READ-ONLY)"
msgstr "md5 hash de contenidos de imagen. (SOLO-LECTURA)"

#: glance/api/v2/images.py:867
msgid "Owner of the image"
msgstr "Propietario de la imagen"

#: glance/api/v2/images.py:850
msgid "Size of image file in bytes (READ-ONLY)"
msgstr "Tamaño de fichero de imagen en bytes (SOLO-LECTURA)"

#: glance/api/v2/images.py:854
msgid "Virtual size of image in bytes (READ-ONLY)"
msgstr "Tamaño virtuañ de la imagen en bytes (SOLO-LECTURA)"

#: glance/api/v2/images.py:882
msgid "Format of the container"
msgstr "Formato del contenedor"

#: glance/api/v2/images.py:887
msgid "Format of the disk"
msgstr "Formato del disco"

#: glance/api/v2/images.py:868
msgid "Date and time of image registration (READ-ONLY)"
msgstr "Fecha y hora del registro de imagen (SOLO-LECTURA)"

#: glance/api/v2/images.py:876
msgid "Date and time of the last image modification (READ-ONLY)"
msgstr "Fecha y hora de la última modificación de la imagen (SOLO-LECTURA)"

#: glance/api/v2/images.py:908
msgid "List of strings related to the image"
msgstr "Lista de series relacionadas con la imagen"

#: glance/api/v2/images.py:890
msgid "URL to access the image file kept in external store (READ-ONLY)"
msgstr ""
"La URL para acceder al ficherode imagen se encuentra en almacén externo "
"(SOLO-LECTURA)"

#: glance/api/v2/images.py:922
msgid "Amount of ram (in MB) required to boot image."
msgstr "Cantidad de RAM (en MB) necesario para la imagen de arranque."

#: glance/api/v2/images.py:926
msgid "Amount of disk space (in GB) required to boot image."
msgstr ""
"Cantidad de espacio de disco (en GB) necesario para la imagen de arranque."

#: glance/api/v2/images.py:959
msgid "A set of URLs to access the image file kept in external store"
msgstr ""
"Conjunto de URLs para acceder al archivo de imagen se mantiene en un almacén "
"externo"

#: glance/api/v2/images.py:798
#, python-format
msgid ""
"Could not find schema properties file %s. Continuing without custom "
"properties"
msgstr ""
"No se pudo encontrar el archivo de propiedades del esquema %s. Se prosigue "
"sin propiedades personalizadas."

#: glance/api/v2/tasks.py:66
#, python-format
msgid "Forbidden to create task. Reason: %(reason)s"
msgstr "Prohibido crear la tarea. Razón: %(reason)s"

#: glance/api/v2/tasks.py:109
#, python-format
msgid "Failed to find task %(task_id)s. Reason: %(reason)s"
msgstr "Fallo al buscar la tarea %(task_id)s. Razón: %(reason)s"

#: glance/api/v2/tasks.py:114
#, python-format
msgid "Forbidden to get task %(task_id)s. Reason: %(reason)s"
msgstr "Prohibido conseguir la tarea %(task_id)s. Razón: %(reason)s"

#: glance/api/v2/tasks.py:128
msgid "Body expected in request"
msgstr "Se esperaba el cuerpo en la petición"

#: glance/api/v2/tasks.py:166
#, python-format
msgid "Invalid status value: %s"
msgstr "Valor de estado no válido: %s"

#: glance/api/v2/tasks.py:172
#, python-format
msgid "Invalid type value: %s"
msgstr "Valor de tipo no válido: %s"

#: glance/api/v2/tasks.py:179 glance/registry/api/v1/images.py:279
msgid "Invalid marker format"
msgstr "Formato de marcador no válido"

#: glance/api/v2/tasks.py:200
#, python-format
msgid "Task '%s' is required"
msgstr "Se necesita tarea '%s'"

#: glance/api/v2/tasks.py:325
msgid "An identifier for the task"
msgstr "Un identificador para la tarea"

#: 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 "El tipo de tarea representada por este contenido"

#: glance/api/v2/tasks.py:338
msgid "The current status of this task"
msgstr "El estado actual de esta tarea"

#: glance/api/v2/tasks.py:348
msgid "The parameters required by task, JSON blob"
msgstr "Los parámetros requeridos por tarea, objeto JSON"

#: glance/api/v2/tasks.py:352
msgid "The result of current task, JSON blob"
msgstr "El resultado de la tarea, objeto JSON actual"

#: glance/api/v2/tasks.py:356
msgid "An identifier for the owner of this task"
msgstr "Un identificador para el propietario de esta tarea"

#: glance/api/v2/tasks.py:360
msgid ""
"Human-readable informative message only included when appropriate (usually "
"on failure)"
msgstr ""
"Solo se incluye mensaje informativo legible para humanos cuando sea "
"apropiado (usualmente en error)"

#: glance/api/v2/tasks.py:365
msgid "Datetime when this resource would be subject to removal"
msgstr "Fecha en la cual este recurso estará sujeto a eliminación"

#: glance/api/v2/tasks.py:370
msgid "Datetime when this resource was created"
msgstr "Fecha en la cual se creó este recurso"

#: glance/api/v2/tasks.py:374
msgid "Datetime when this resource was updated"
msgstr "Fecha en la cual se actualizó este recurso"

#: glance/cmd/control.py:104
#, python-format
msgid "%(serv)s appears to already be running: %(pid)s"
msgstr "Parece que %(serv)s ya se está ejecutando: %(pid)s"

#: glance/cmd/control.py:108
#, python-format
msgid "Removing stale pid file %s"
msgstr "Eliminando fichero de identificación positiva obsoleto %s"

#: glance/cmd/control.py:117
msgid "Unable to increase file descriptor limit.  Running as non-root?"
msgstr ""
"No se puede aumentar el límite de descripción de fichero ¿Desea ejecutar "
"como non-root?"

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

#: glance/cmd/control.py:179
#, python-format
msgid "unable to launch %(serv)s. Got error: %(e)s"
msgstr "No se puede iniciar %(serv)s. Se ha obtenido error: %(e)s"

#: glance/cmd/control.py:210
#, python-format
msgid "%(serv)s (pid %(pid)s) is running..."
msgstr "Se esta ejecutando %(serv)s (pid %(pid)s) ..."

#: glance/cmd/control.py:213
#, python-format
msgid "%s is stopped"
msgstr "%s se ha detenido"

#: 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 ""
"No se puede crear fichero pid %(pid)s. ¿Ejecutar como non-root?\n"
"Retrocediendo a fichero temporal, puede detener el uso de servicio "
"%(service)s:\n"
"  %(file)s %(server)s detener--fichero-pid %(fb)s"

#: glance/cmd/control.py:281
#, python-format
msgid "Stopping %(serv)s (pid %(pid)s) with signal(%(sig)s)"
msgstr "Deteniendo %(serv)s (pid %(pid)s) con señal (%(sig)s)"

#: glance/cmd/control.py:263 glance/cmd/control.py:285
#, python-format
msgid "Process %d not running"
msgstr "No se está ejecutando proceso %d"

#: glance/cmd/control.py:292
#, python-format
msgid "Waited 15 seconds for pid %(pid)s (%(file)s) to die; giving up"
msgstr ""
"Se esperó 15 segundos para que pid %(pid)s (%(file)s) muriera; desistiendo"

#: glance/cmd/control.py:295
#, python-format
msgid "%s is already stopped"
msgstr "%s ya se detuvo"

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

#: 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 ""
"La imagen %s ya se encuentra en el esclavo, pero no se encontró validación "
"para esta. Esto indica que no tenemos permiso para ver todas las imágenes en "
"el servidor esclavo."

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

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

#: glance/cmd/replicator.py:240 glance/cmd/replicator.py:259
msgid "Image post done"
msgstr "Completado proceso final de la imagen"

#: 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 "Muy pocos argumentos."

#: 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 "Formato erróneo de argumentos."

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

#: glance/cmd/replicator.py:342
#, python-format
msgid "Total size is %(size)d bytes across %(img_count)d images"
msgstr ""
"El tamaño total de los bytes es %(size)d a lo largo de las imágenes "
"%(img_count)d"

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

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

#: glance/cmd/replicator.py:348
msgid "... image is active"
msgstr "... imagen está activa"

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

#: 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 ""
"metadata diff -- value difiere de la clave %(key)s: master "
"«%(master_value)s» vs esclavo «%(slave_value)s»"

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

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

#: 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 "Eliminando %(header)s de metadatos esclavos"

#: glance/cmd/replicator.py:449 glance/cmd/replicator.py:529
msgid "... metadata has changed"
msgstr "... metadatos han cambiado"

#: glance/cmd/replicator.py:456
msgid "... dump is missing image data, skipping"
msgstr "... en el volcado faltan datos de la imagen, omitiendo"

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

#: 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 "Eliminando %(header)s de metadatos del maestro"

#: glance/cmd/replicator.py:535
#, python-format
msgid "%s is being synced"
msgstr "%s se está sincronizando"

#: 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 ""
"%(image_id)s: campo %(key)s no coincide (origen es %(master_value)s, destino "
"es %(slave_value)s)"

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

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

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

#: glance/common/auth.py:190 glance/common/auth.py:229
#, python-format
msgid "Unexpected response: %s"
msgstr "Respuesta inesperada : %s"

#: glance/common/auth.py:257
#, python-format
msgid "Unknown auth strategy '%s'"
msgstr "Estrategia de autenticación desconocida '%s'"

#: glance/common/auth.py:277
#, python-format
msgid "Encountered service with no \"type\": %s"
msgstr "Se ha encontrado un servicio sin \"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 ""
"Ha seleccionado utilizar SSL en la conexión y ha proporcionado un "
"certificado, pero no ha proporcionado un parámetro key_file ni ha definido "
"la variable de entorno 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 ""
"Ha seleccionado utilizar SSL en la conexión y ha proporcionado una clave, "
"pero no ha proporcionado un parámetro cert_file ni ha definido la variable "
"de entorno GLANCE_CLIENT_CERT_FILE"

#: glance/common/client.py:260
#, python-format
msgid "The key file you specified %s does not exist"
msgstr "El archivo de claves que ha especificado %s no existe"

#: glance/common/client.py:267
#, python-format
msgid "The cert file you specified %s does not exist"
msgstr "El archivo de certificado que ha especificado %s no existe"

#: glance/common/client.py:274
#, python-format
msgid "The CA file you specified %s does not exist"
msgstr "El archivo CA %s que ha especificado no existe"

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

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

#: glance/common/client.py:397
#, python-format
msgid "Constructed URL: %s"
msgstr "URL construido : %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 ""
"Se eliminó el nombre parcial de una segmentación en el fichero de "
"configuración de pegado con el nombre de servicio. Por ejemplo, si pega la "
"sección de nombre [pipeline:glance-api-keystone] utilice el valor "
"\"keystone\""

#: glance/common/config.py:41
msgid "Name of the paste configuration file."
msgstr "Nombre del fichero de configuración de pegado."

#: glance/common/config.py:46
msgid "Supported values for the 'container_format' image attribute"
msgstr "Valores para el atributo de imagen 'container_format' soportados"

#: glance/common/config.py:53
msgid "Supported values for the 'disk_format' image attribute"
msgstr "Valores para el atributo de imagen 'disk_format' soportados"

#: glance/common/config.py:61
msgid ""
"Time in hours for which a task lives after, either succeeding or failing"
msgstr "Tiempo de vida en horas para la tarea, así tenga éxito o fracase"

#: glance/common/config.py:91
msgid ""
"Whether to allow users to specify image properties beyond what the image "
"schema provides"
msgstr ""
"Si se permite que los usuarios especifiquen las propiedades de la imagen más "
"allá de lo que proporciona el esquema de la imagen"

#: glance/common/config.py:94
msgid ""
"Maximum number of image members per image. Negative values evaluate to "
"unlimited."
msgstr ""
"Número máximo de miembros de imagen por imagen. Los valores negativos se "
"evalúan de manera ilimitada."

#: glance/common/config.py:97
msgid ""
"Maximum number of properties allowed on an image. Negative values evaluate "
"to unlimited."
msgstr ""
"Número máximo de propiedades permitidas en una imagen. Los valores negativos "
"se evalúan de manera ilimitada."

#: glance/common/config.py:100
msgid ""
"Maximum number of tags allowed on an image. Negative values evaluate to "
"unlimited."
msgstr ""
"Número máximo de etiquetas permitidas en una imagen. Los valores negativos "
"se evalúan de manera ilimitada."

#: glance/common/config.py:103
msgid ""
"Maximum number of locations allowed on an image. Negative values evaluate to "
"unlimited."
msgstr ""
"Número máximo de ubicaciones permitidas en una imagen. Los valores negativos "
"se evalúan de manera ilimitada."

#: glance/common/config.py:106
msgid "Python module path of data access API"
msgstr "La vía de acceso del módulo Python de la API de acceso a datos"

#: 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 ""
"Valor predeterminado para el número de elementos devueltos por una solicitud "
"si no se especifica de forma explícita en la solicitud"

#: glance/common/config.py:111
msgid ""
"Maximum permissible number of items that could be returned by a request"
msgstr ""
"El número máximo permitido de elementos que podrían ser devueltos por una "
"solicitud"

#: 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 ""
"Si incluir o no la ubicación de almacenamiento de la imagen del programa de "
"fondo en las propiedades de la imagen. Revelar la ubicación de "
"almacenamiento puede ser un riesgo de seguridad, así que este valor debe "
"utilizarse con precaución."

#: 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 se debe incluir las ubicaciones de la imagen del motor en las propiedades "
"de la imagen. ¡Revelar la ubicación del almacenamiento supone un riesgo de "
"seguridad, así que use este parámetro con cuidado! Esto sobrescribe "
"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 ""
"Tamaño máximo de imagen que un usuario puede subir en bytes. Por defecto "
"establecido a 1099511627776 bytes (1 TB)."

#: 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 ""
"Establece un rango amplio de cuota para cada usuario. Esta clave es el "
"número total de bytes que puede utilizar cada usuario en todos los sistemas "
"de almacenaje. Un valor 0 significa sin límite."

#: glance/common/config.py:147
msgid "Deploy the v1 OpenStack Images API."
msgstr "Implemente la API de imágenes v1 de OpenStack."

#: glance/common/config.py:149
msgid "Deploy the v2 OpenStack Images API."
msgstr "Despliegue la API de imágenes v2 de OpenStack."

#: glance/common/config.py:151
msgid "Deploy the v1 OpenStack Registry API."
msgstr "Implemente la API de registro v1 de OpenStack."

#: glance/common/config.py:153
msgid "Deploy the v2 OpenStack Registry API."
msgstr "Despliegue la API de registro v2 de OpenStack."

#: glance/common/config.py:155
msgid "The hostname/IP of the pydev process listening for debug connections"
msgstr ""
"El nombre de host o la IP del proceso pydev que escucha las conexiones de "
"depuración"

#: glance/common/config.py:158
msgid "The port on which a pydev process is listening for connections."
msgstr "El puerto en el que un proceso pydev escucha las conexiones."

#: glance/common/config.py:121
msgid ""
"Key used for encrypting sensitive metadata while talking to the registry or "
"database."
msgstr ""
"Clave usada para el cifrado de metadatos sensibles mientras se habla con el "
"registro o la base de datos."

#: glance/common/config.py:228
#, python-format
msgid "Unable to locate paste config file for %s."
msgstr "No se puede ubicar el fichero de configuración de pegado para %s."

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

#: 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 ""
"No se ha podido cargar %(app_name)s desde el archivo de configuración "
"%(conf_file)s.\n"
"Se ha obtenido: %(e)r"

#: glance/common/exception.py:40
msgid "An unknown exception occurred"
msgstr "Se ha producido una excepción desconocida"

#: glance/common/exception.py:65
#, python-format
msgid "Missing required credential: %(required)s"
msgstr "Falta la credencial necesaria :%(required)s"

#: glance/common/exception.py:69
#, python-format
msgid ""
"Incorrect auth strategy, expected \"%(expected)s\" but received "
"\"%(received)s\""
msgstr ""
"Estrategia de autorización incorrecta, se esperaba \"%(expected)s\" pero se "
"ha recibido \"%(received)s\""

#: glance/common/exception.py:74
msgid "An object with the specified identifier was not found."
msgstr "No se ha encontrado un objeto con el identificador especificado."

#: glance/common/exception.py:76
#, python-format
msgid "Unknown scheme '%(scheme)s' found in URI"
msgstr "Esquema «%(scheme)s» desconocido, encontrado en URI"

#: glance/common/exception.py:78
msgid "The Store URI was malformed."
msgstr "El URI del almacén tenía un formato incorrecto."

#: glance/common/exception.py:82
msgid "An object with the same identifier already exists."
msgstr "Ya existe un objeto con el mismo identificador."

#: glance/common/exception.py:86
msgid "An object with the same identifier is currently being operated on."
msgstr "Ya se está operando un objeto con el mismo identificador."

#: glance/common/exception.py:93
msgid "There is not enough disk space on the image storage media."
msgstr ""
"No hay bastante espacio de disco en los medios de almacenaje de imagen."

#: 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 ""
"El tamaño de los datos %(image_size)s excederá el límite. Quedan "
"%(remaining)s bytes"

#: glance/common/exception.py:102
msgid "Permission to write image storage media denied."
msgstr "Permiso para escribir en medios de almacenaje de imagen denegados."

#: glance/common/exception.py:96
#, python-format
msgid "Connect error/bad request to Auth service at URL %(url)s."
msgstr ""
"Solicitud incorrecta/error de conexión a servicio de autorización en el URL "
"%(url)s."

#: glance/common/exception.py:100
#, python-format
msgid "Auth service at URL %(url)s not found."
msgstr "No se ha encontrado el servicio de autorización en el URL %(url)s."

#: glance/common/exception.py:104
msgid "Authorization failed."
msgstr "Ha fallado la autorización."

#: glance/common/exception.py:108
msgid "You are not authenticated."
msgstr "No está autenticado."

#: 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 "No está autorizado a completar esta acción."

#: glance/common/exception.py:124
#, python-format
msgid "Image %(image_id)s is protected and cannot be deleted."
msgstr "La imagen %(image_id)s está protegida y no se puede suprimir."

#: glance/common/exception.py:158
msgid "Data supplied was not valid."
msgstr "Los datos proporcionados no son válidos."

#: glance/common/exception.py:162
msgid "Sort key supplied was not valid."
msgstr "La clave de clasificación proporcionada no es válida."

#: glance/common/exception.py:170
msgid "Invalid configuration in property protection file."
msgstr "Configuración en fichero de protección de propiedad no válida."

#: glance/common/exception.py:182
msgid "Unable to filter using the specified range."
msgstr "No se ha podido filtrar mediante el rango especificado."

#: glance/common/exception.py:190
#, python-format
msgid "Attribute '%(property)s' is read-only."
msgstr "El atributo '%(property)s' es de sólo lectura."

#: glance/common/exception.py:194
#, python-format
msgid "Attribute '%(property)s' is reserved."
msgstr "El atributo '%(property)s' está reservado."

#: glance/common/exception.py:198
#, python-format
msgid "Redirecting to %(uri)s for authorization."
msgstr "Redirigiendo a %(uri)s para la autorización."

#: glance/common/exception.py:202
msgid "There was an error connecting to a server"
msgstr "Se ha producido un error al conectar a un servidor"

#: glance/common/exception.py:206
msgid "There was an error configuring the client."
msgstr "Se ha producido un error al configurar el cliente."

#: 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 solicitud ha devuelto un 302 Múltiples opciones. Generalmente esto "
"significa que no se ha incluido un indicador de versión en un URI de "
"solicitud.\n"
"\n"
"El cuerpo de la respuesta devuelta:\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 solicitud ha devuelto un error 413 Entidad de solicitud demasiado grande. "
"Esto generalmente significa que se ha infringido el límite de índice o un "
"umbral de cuota.\n"
"\n"
"El cuerpo de la respuesta:\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 petición devolvió 503 Servicio no disponible. Esto generalmente ocurre "
"durante la sobrecarga del servicio u otros cortes temporales."

#: glance/common/exception.py:238
msgid "The request returned 500 Internal Server Error."
msgstr "La solicitud ha devuelto el mensaje 500 Error interno del servidor."

#: 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 solicitud ha devuelto un estado inesperado: %(status)s.\n"
"\n"
"El cuerpo de la respuesta:\n"
"%(body)s"

#: glance/common/exception.py:247
#, python-format
msgid "Invalid content type %(content_type)s"
msgstr "Tipo de contenido no válido %(content_type)s"

#: glance/common/exception.py:251
#, python-format
msgid ""
"Registry was not configured correctly on API server. Reason: %(reason)s"
msgstr ""
"El registro no se ha configurado correctamente en el servidor de API. Razón: "
"%(reason)s"

#: glance/common/exception.py:216
#, python-format
msgid ""
"Store %(store_name)s could not be configured correctly. Reason: %(reason)s"
msgstr ""
"El almacenamiento %(store_name)s no se pudo configurar correctamente. Razón: "
"%(reason)s"

#: glance/common/exception.py:256
#, python-format
msgid ""
"Driver %(driver_name)s could not be configured correctly. Reason: %(reason)s"
msgstr ""
"El controlador %(driver_name)s no se ha podido configurar correctamente. "
"Razón: %(reason)s"

#: glance/common/exception.py:226
msgid "Deleting images from this store is not supported."
msgstr "La supresión de imágenes de este almacenamiento no es posible."

#: glance/common/exception.py:230
msgid "Getting images from this store is not supported."
msgstr "No está soportado recuperar imágenes de este almacén."

#: glance/common/exception.py:234
msgid "Adding images to this store is not supported."
msgstr "Añadir imágenes a este almacén no está soportado."

#: glance/common/exception.py:238
msgid ""
"Configuration for store failed. Adding images to this store is disabled."
msgstr ""
"La configuración de almacenaje falló. Añadir imágenes a este almacén está "
"desactivado."

#: glance/common/exception.py:261
#, python-format
msgid "Maximum redirects (%(redirects)s) was exceeded."
msgstr "Se ha superado el máximo de redirecciones (%(redirects)s)."

#: glance/common/exception.py:265
msgid "Received invalid HTTP redirect."
msgstr "Se ha recibido redirección HTTP no válida."

#: glance/common/exception.py:269
msgid "Response from Keystone does not contain a Glance endpoint."
msgstr "La respuesta de Keystone no contiene un punto 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 ""
"Varias coincidencias de servicio 'image' para la región %(region)s. Esto "
"generalmente significa que es necesaria una región y que no se ha "
"proporcionado ninguna."

#: glance/common/exception.py:279
#, python-format
msgid "Server worker creation failed: %(reason)s."
msgstr ""
"Se ha encontrado un error en la creación del trabajador de servidor: "
"%(reason)s."

#: glance/common/exception.py:283
#, python-format
msgid "Unable to load schema: %(reason)s"
msgstr "No se ha podido cargar el esquema: %(reason)s"

#: glance/common/exception.py:287
#, python-format
msgid "Provided object does not match schema '%(schema)s': %(reason)s"
msgstr ""
"El objeto proporcionado no coincide con el esquema '%(schema)s': %(reason)s"

#: glance/common/exception.py:290
#, python-format
msgid "Provided header feature is unsupported: %(feature)s"
msgstr ""
"La característica de cabecera proporcionada no está soportada: %(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 ""
"La imagen no se puede suprimir porque la está utilizando el almacén del "
"programa de fondo fuera de Glance."

#: glance/common/exception.py:292
msgid "The provided image is too large."
msgstr "La imagen proporcionada es demasiado grande."

#: 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 ""
"Se ha excedido el límite en el número permitido para propiedades de imagen. "
"Intento: %(attempted)s, Máximo: %(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 ""
"Se ha excedido el límite en el número permitido para etiquetas de imagen. "
"Intento: %(attempted)s, Máximo: %(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 ""
"Se ha excedido el límite en el número permitido para ubicaciones de imagen. "
"Intento: %(attempted)s, Máximo: %(maximum)s"

#: glance/common/exception.py:321
#, python-format
msgid "%(cls)s exception was raised in the last rpc call: %(val)s"
msgstr "Ocurrió excepción %(cls)s en la última llamada a rpc: %(val)s"

#: glance/common/exception.py:325
msgid "An unknown task exception occurred"
msgstr "Se ha producido una excepción desconocida"

#: glance/common/exception.py:337
#, python-format
msgid "Task with the given id %(task_id)s was not found"
msgstr "No se encontró tarea con id %(task_id)s proporcionado"

#: glance/common/exception.py:341
#, python-format
msgid "Provided status of task is unsupported: %(status)s"
msgstr "No se soporta el estado de tarea proporcionado: %(status)s"

#: glance/common/exception.py:345
#, python-format
msgid "Provided type of task is unsupported: %(type)s"
msgstr "No se soporta el tipo de tarea proporcionado: %(type)s"

#: glance/common/exception.py:349
#, python-format
msgid ""
"Status transition from %(cur_status)s to %(new_status)s is not allowed"
msgstr "No se permite la transición de %(cur_status)s a %(new_status)s"

#: glance/common/exception.py:358
#, python-format
msgid "The location %(location)s already exists"
msgstr "Ya existe la ubicación %(location)s"

#: glance/common/exception.py:360
msgid "No image data could be found"
msgstr "No se han encontrado datos de imagen"

#: glance/common/exception.py:362
#, python-format
msgid "Invalid value '%(value)s' for parameter '%(param)s': %(extra_msg)s"
msgstr "Valor no válido'%(value)s' para parametro '%(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 ""
"No se permite la transición de estado %(cur_status)s a %(new_status)s"

#: glance/common/property_utils.py:37
msgid "The location of the property protection file."
msgstr "Ubicación del archivo de protección de seguridad."

#: glance/common/property_utils.py:41
msgid ""
"This config value indicates whether \"roles\" or \"policies\" are used in "
"the property protection file."
msgstr ""
"Este valor de configuración indica si se usan los \"roles\" o \"políticas\" "
"en el fichero de protección de propiedad."

#: glance/common/property_utils.py:75
#, python-format
msgid "Couldn't find property protection file %(file)s: %(error)s."
msgstr ""
"No se pueden encontrar las propiedades de protección del archivo %(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 ""
"Valor «%s» no válido para «property_protection_rule_format». Los valores "
"permitidos son «roles» y «políticas»"

#: 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 ""
"Múltiples políticas «%s» no están permitidas para la operación dada. Las "
"políticas pueden ser combinadas en el archivo de directivas"

#: 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 ""
"Propiedad mal formada en la regla de protección [%(prop)s] %(op)s=%(perm)s: "
"«@» y «!» son mutuamente excluyentes"

#: 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 ""
"No se encontró protección de propiedad en operación %(operation)s  para "
"regla %(rule)s. Ningún rol permitirá realizar esta operación."

#: glance/common/property_utils.py:139
#, python-format
msgid "Encountered a malformed property protection rule %(rule)s: %(error)s."
msgstr "Regla de protección mal formada  %(rule)s: %(error)s."

#: glance/common/rpc.py:143
msgid "Request must be a list of commands"
msgstr "La solicitud debe ser una lista de comandos."

#: glance/common/rpc.py:148
#, python-format
msgid "Bad Command: %s"
msgstr "Comando incorrecto: %s"

#: glance/common/rpc.py:155
#, python-format
msgid "Wrong command structure: %s"
msgstr "Estructura de comando incorrecta: %s"

#: glance/common/rpc.py:164
msgid "Command not found"
msgstr "Orden no encontrada"

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

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

#: glance/common/utils.py:292
#, python-format
msgid "Bad header: %(header_name)s"
msgstr "Cabecera incorrecta: %(header_name)s"

#: glance/common/utils.py:306
#, python-format
msgid "Cannot convert image %(key)s '%(value)s' to an integer."
msgstr "No se puede convertir imagen %(key)s '%(value)s' en un entero."

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

#: glance/common/utils.py:432
msgid "Read-only access"
msgstr "Acceso de solo lectura"

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

#: 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 ""
"Hay un problema con  %(error_key_name)s %(error_filename)s. Por favor "
"verifique. Error: %(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 ""
"Hay un problema con %(error_key_name)s %(error_filename)s. Por favor "
"verifique. Error 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 ""
"Hay un problema con el par de claves. Por favor verifique que el certificado "
"%(cert_file)s y clave %(key_file)s deben estar juntas. Error OpenSSL %(ce)s"

#: glance/common/wsgi.py:59
msgid ""
"Address to bind the server.  Useful when selecting a particular network "
"interface."
msgstr ""
"Dirección para enlazar el servidor. Útil cuando se selecciona una interfaz "
"particular de red."

#: glance/common/wsgi.py:62
msgid "The port on which the server will listen."
msgstr "El puerto en el cual el servidor escuchará."

#: glance/common/wsgi.py:67
msgid ""
"The backlog value that will be used when creating the TCP listener socket."
msgstr "El valor acumulado que se utilizará al crear la pila TCP de escucha."

#: 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 ""
"El valor de la opción de pila TCP_KEEPIDLE. Es el tiempo en segundos que "
"debe estar la conexión inactiva antes de que TCP comience a enviar sondas "
"keepalive."

#: glance/common/wsgi.py:73
msgid "CA certificate file to use to verify connecting clients."
msgstr ""
"Fichero de certificado CA a utilizar para verificar la conexión de clientes."

#: glance/common/wsgi.py:75
msgid "Certificate file to use when starting API server securely."
msgstr ""
"Fichero de certificado a usar cuando de inicia servidor API con seguridad."

#: glance/common/wsgi.py:77
msgid "Private key file to use when starting API server securely."
msgstr ""
"Fichero de clave privado a usar cuando de inicia servidor API con seguridad."

#: glance/common/wsgi.py:77
msgid ""
"The number of child process workers that will be created to service API "
"requests."
msgstr ""
"Número de procesos trabajadores hijos que se crearán para servir las "
"peticiones de API."

#: 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 ""
"Contraseña del hub eventlet. Habitualmente, se utiliza «pool» sin embargo "
"«selects» puede ser más adecuado para otras plataformas. Ver "
"http://eventlet.net/doc/hubs.html para tener más información."

#: 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 ""
"El tamaño máximo de línea de cabecera de mensaje que se aceptará. Es "
"probable que se necesite aumentar max_header_line al usar tokens grandes "
"(generalmente los que Keystone v3 API genera con grandes catálogos de "
"servicio"

#: 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 ""
"Al ejecutar el servidor en modalidad SSL, debe especificar un valor para las "
"opciones cert_file y key_file en el archivo de configuración"

#: glance/common/wsgi.py:209
#, python-format
msgid "Could not bind to %(host)s:%(port)s after trying for 30 seconds"
msgstr ""
"No se ha podido enlazar con %(host)s:%(port)s después de intentarlo durante "
"30 segundos"

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

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

#: glance/common/wsgi.py:262
#, python-format
msgid "Not respawning child %d, cannot recover from termination"
msgstr "El hijo %d no se regenera, no se puede recuperar de la terminación"

#: glance/common/wsgi.py:266
msgid "All workers have terminated. Exiting"
msgstr "Todos los trabajadores han terminado. Saliendo."

#: glance/common/wsgi.py:274
msgid "Caught keyboard interrupt. Exiting."
msgstr "Capturando interrupción del teclado. Saliendo."

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

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

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

#: glance/common/wsgi.py:318
#, python-format
msgid "eventlet '%s' hub is not available on this platform"
msgstr "eventlet «%s» hub no es compatible con esta plataforma"

#: glance/common/wsgi.py:335
msgid "Starting single process server"
msgstr "Iniciando servidor de proceso único"

#: glance/common/wsgi.py:807
msgid "Malformed JSON in request body."
msgstr "JSON con formato incorrecto en el cuerpo de la solicitud."

#: 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 ""
"Este valor establece la estrategia que se empleará para determinar el orden "
"de ubicación de la imagen. Actualmente hay 2 estrategias empaquetadas con "
"Glance 'location_order' y '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á registrado como módulo dos veces. %(module)s no se "
"encuentra en uso."

#: glance/common/location_strategy/__init__.py:61
#, python-format
msgid "Failed to load location strategy module %(module)s: %(e)s"
msgstr ""
"Fallo al cargar el módulo de estrategia de ubicación %(module)s: %(e)s"

#: 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 ""
"Opción location_strategy no válida: %(name)s. La opción(es) válida(s) "
"es/son: %(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 ""
"El nombre de la imagen almacenada que se utilizará para tener un orden de "
"preferencia. Debe estar registrado en la opción de configuración "
"«known_stores». Esta opción solo será utilizada cuando se defina "
"«store_type» como estrategia de ubicación de la imagen definida en la opción "
"«location_strategy»"

#: 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 "No se encontró imagen con ID %s"

#: glance/db/__init__.py:345
#, python-format
msgid ""
"The target member %(member_id)s is already associated with image "
"%(image_id)s."
msgstr ""
"El miembro meta %(member_id)s ya está asociado con la imagen %(image_id)s."

#: glance/db/__init__.py:376
#, python-format
msgid "The specified member %s could not be found"
msgstr "No se pudo encontrar el miembro %s especificado"

#: glance/db/__init__.py:454 glance/db/__init__.py:475
#: glance/db/__init__.py:492
#, python-format
msgid "Could not find task %s"
msgstr "No se encontró tarea %s"

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

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

#: 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 "No se ha podido filtrar en un rango con un valor no numérico."

#: glance/db/simple/api.py:329
#, python-format
msgid "Could not find image %s"
msgstr "No se pudo encontrar la imagen %s"

#: glance/db/simple/api.py:333
msgid "Unable to get deleted image"
msgstr "No se pudo obtener la imagen borrada"

#: glance/db/simple/api.py:337
msgid "Unable to get unowned image"
msgstr "No se pudo obtener la imagen sin propietario"

#: glance/db/simple/api.py:509 glance/db/sqlalchemy/api.py:1180
msgid "Image id is required."
msgstr "Se necesita id de imagen"

#: 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 "No se encontró la tarea con ID %s"

#: glance/db/simple/api.py:767
#, python-format
msgid "Unable to get deleted task %s"
msgstr "No se pudo obtener la tarea borrada %s"

#: glance/db/simple/api.py:941
#, python-format
msgid "Forbidding request, task %s is not visible"
msgstr "Solicitud no permitida, la tarea %s no es visible"

#: glance/db/simple/api.py:1056
msgid "Task does not exist"
msgstr "La tarea no existe"

#: glance/db/simple/api.py:912
#, python-format
msgid "No task info found with task id %s"
msgstr "No existe información de la tarea con id %s"

#: glance/db/simple/api.py:928
#, python-format
msgid "Could not find task info %s"
msgstr "No existe información de la tarea id %s"

#: glance/db/sqlalchemy/api.py:84
msgid "Attempted to modify image user did not own."
msgstr "Intentó modificar imagen cuyo usuario no era propietario."

#: glance/db/sqlalchemy/api.py:117
msgid "You do not own this image"
msgstr "No es propietario de esta imagen"

#: glance/db/sqlalchemy/api.py:187
#, python-format
msgid "Forbidding request, image %s not visible"
msgstr "Petición prohibida, la imagen %s no es visible"

#: glance/db/sqlalchemy/api.py:274
msgid "Id not in sort_keys; is sort_keys unique?"
msgstr "Id no en sort_keys; ¿Es sort_keys única?"

#: glance/db/sqlalchemy/api.py:416
msgid "Unknown sort direction, must be 'desc' or 'asc'"
msgstr "Dirección de clasificación desconocida, debe ser 'desc' o ' 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 ""
"No se puede pasar de %(current)s a %(next)s en la actualización (se desea "
"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 "No existe información de la tarea con id %(task_id)s"

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

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

#: 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 ""
"URI de destino no válido para la imagen: %(image_id)s. Detalles: %(reason)s"

#: 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 ""
"URI no puede contener más de un suceso de un esquema. Si ha especificado un "
"URL tipo swift://user:pass@http://authurl.com/v1/container/obj, necesita "
"cambiarlo para utilizar swift+http:// scheme, como: "
"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 "Credenciales formadas incorrectamente '%(creds)s' en URI de 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 "Credenciales con formato incorrecto en URI de 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 "La URI S3 se realizó de manera incorrecta: %(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 ""
"No se ha especificado «metadata_encryption_key» en el archivo de "
"configuración o no se ha indicado un archivo de configuración. Esto "
"significa que la migración es un NOOP."

#: 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 "Error al descifrar valor de ubicación para la imagen %(image_id)s"

#: glance/domain/__init__.py:62
#, python-format
msgid "new_image() got unexpected keywords %s"
msgstr "new_image() obtuvo argumentos de búsqueda inesperados %s"

#: glance/domain/__init__.py:134 glance/glare/domain/__init__.py:43
#, python-format
msgid "__init__() got unexpected keyword argument '%s'"
msgstr "__init__() obtuvo un argumento de búsqueda inesperado '%s'"

#: glance/domain/__init__.py:156
#, python-format
msgid "Property %s must be set prior to saving data."
msgstr "La propiedad %s debe definirse antes de guardar datos."

#: glance/domain/__init__.py:159
#, python-format
msgid "Properties %s must be set prior to saving data."
msgstr "Las propiedades %s deben definirse antes de guardar datos."

#: glance/domain/__init__.py:176
msgid "Visibility must be either \"public\" or \"private\""
msgstr "La visibilidad debe ser  \"pública\" o \"privada\""

#: glance/domain/__init__.py:195
msgid "Attribute container_format can be only replaced for a queued image."
msgstr ""
"El atributo container_format solo se puede reemplazar por una imagen en cola."

#: glance/domain/__init__.py:207
msgid "Attribute disk_format can be only replaced for a queued image."
msgstr ""
"El atributo isk_format solo se puede remplazar con una imagen en cola."

#: glance/domain/__init__.py:219 glance/domain/__init__.py:232
msgid "Cannot be a negative value"
msgstr "No puede ser un valor negativo"

#: glance/domain/__init__.py:323
msgid "Status must be \"pending\", \"accepted\" or \"rejected\"."
msgstr "el estado debe ser \"pending\", \"accepted\" o \"rejected\"."

#: glance/domain/__init__.py:356
#, python-format
msgid "Task status changed from %(cur_status)s to %(new_status)s"
msgstr "El estado de la tarea cambió de %(cur_status)s a %(new_status)s"

#: glance/domain/__init__.py:361
#, python-format
msgid "Task status failed to change from %(cur_status)s to %(new_status)s"
msgstr "Falló al cambiar el estado de %(cur_status)s a %(new_status)s"

#: glance/domain/__init__.py:391
msgid "task_id is required to create a new TaskDetails object"
msgstr "task_id es requerido para crear un nuevo objeto TaskDetails"

#: glance/image_cache/__init__.py:37
msgid "The driver to use for image cache management."
msgstr ""
"El controlador que se usará para la administración del caché de imagen."

#: glance/image_cache/__init__.py:36
msgid "The maximum size in bytes that the cache can use."
msgstr "Tamaño máximo en bytes que puede usar la caché."

#: glance/image_cache/__init__.py:47
msgid ""
"The amount of time to let an image remain in the cache without being "
"accessed."
msgstr ""
"El periodo de tiempo para dejar que una imagen permanezca en la memoria "
"caché sin que se acceda a ella."

#: glance/image_cache/__init__.py:50
msgid "Base directory that the Image Cache uses."
msgstr "El directorio base que utiliza el Caché de Imagen."

#: glance/image_cache/__init__.py:63
#, python-format
msgid "Image cache loaded driver '%s'."
msgstr "controlador de carga de caché de imagen «%s»."

#: glance/image_cache/__init__.py:66
#, python-format
msgid ""
"Image cache driver '%(driver_name)s' failed to load. Got error: "
"'%(import_err)s."
msgstr ""
"El controlador de caché de imagen «%(driver_name)s» falló al cargarse. "
"Error: «%(import_err)s»."

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

#: glance/image_cache/__init__.py:87
#, python-format
msgid ""
"Image cache driver '%(driver_module)s' failed to configure. Got error: "
"'%(config_err)s"
msgstr ""
"Controlador de caché de imagen «%(driver_module)s» falló al configurar. "
"Error: «%(config_err)s»"

#: glance/image_cache/__init__.py:174
msgid "Image cache has free space, skipping prune..."
msgstr "Caché de imagen tiene espacio libre, omitiendo podar..."

#: 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 ""
"Caché de imagen actualmente %(overage)d bytes sobre tamaño máximo. Iniciar "
"podar a tamaño máximo %(max_size)d "

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

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

#: glance/image_cache/__init__.py:234
#, python-format
msgid "Tee'ing image '%s' into cache"
msgstr "Soportando imagen «%s» en caché"

#: glance/image_cache/__init__.py:258
#, python-format
msgid "Checksum verification failed. Aborted caching of image '%s'."
msgstr ""
"Se ha encontrado un error en la verificación de la suma de comprobación. Se "
"ha abortado el almacenamiento en memoria caché de la imagen '%s'."

#: 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 ""
"Se necesita la opción --os_auth_url ovariable de ambiente OS_AUTH_URL cuando "
"la estrategia de autenticación keystone está habilitada\n"

#: glance/image_cache/prefetcher.py:46
#, python-format
msgid "Image '%s' is not active. Not caching."
msgstr "La imagen «%s» no está activa. No se mete en la caché."

#: glance/image_cache/prefetcher.py:51
#, python-format
msgid "No metadata found for image '%s'"
msgstr "Ningún metadato encontrado para la imagen «%s»"

#: glance/image_cache/prefetcher.py:56
#, python-format
msgid "Caching image '%s'"
msgstr "Integrando imagen en caché «%s»"

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

#: glance/image_cache/prefetcher.py:72
#, python-format
msgid "Found %d images to prefetch"
msgstr "Se encontraron %d imágenes para recuperar"

#: glance/image_cache/prefetcher.py:78
msgid "Failed to successfully cache all images in queue."
msgstr "No se pudo integrar en caché todas las imágenes de la cola."

#: glance/image_cache/prefetcher.py:82
#, python-format
msgid "Successfully cached all %d images"
msgstr "Integración en caché satisfactoria de «%d» imágenes"

#: glance/image_cache/drivers/base.py:55
#, python-format
msgid "Failed to read %s from config"
msgstr "No se ha podido leer %s de la configuración"

#: glance/image_cache/drivers/sqlite.py:41
msgid ""
"The path to the sqlite file database that will be used for image cache "
"management."
msgstr ""
"La ruta a la base de datos de fichero de SQLite que se usará para la "
"administración del caché de imagen."

#: glance/image_cache/drivers/sqlite.py:122
#, python-format
msgid "Failed to initialize the image cache database. Got error: %s"
msgstr "No se pudo preparar la base de datos de caché de imagen. Error: %s"

#: glance/image_cache/drivers/sqlite.py:160
#: glance/image_cache/drivers/xattr.py:144
msgid "Gathering cached image entries."
msgstr "Recopilando entradas de imagen en caché."

#: 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 ""
"Recuperación finalizada, mover «%(incomplete_path)s» a «%(final_path)s»"

#: 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 ""
"Falló al recuperar el archivo de caché (%(e)s), se vuelve atrás moviendo "
"«%(incomplete_path)s» a «%(invalid_path)s»"

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

#: glance/image_cache/drivers/sqlite.py:408
#: glance/image_cache/drivers/xattr.py:337
#, python-format
msgid "Not queueing image '%s'. Already cached."
msgstr "No se encola la imagen «%s». Ya está en caché."

#: 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 "No se encola la imagen «%s». Ya está siendo escrita en caché."

#: glance/image_cache/drivers/sqlite.py:419
#: glance/image_cache/drivers/xattr.py:348
#, python-format
msgid "Not queueing image '%s'. Already queued."
msgstr "No se encola la imagen «%s». Ya está en la cola."

#: glance/image_cache/drivers/sqlite.py:437
#, python-format
msgid "Removed invalid cache file %s"
msgstr "Archivo de caché no válido %s eliminado"

#: glance/image_cache/drivers/sqlite.py:451
#, python-format
msgid "Removed stalled cache file %s"
msgstr "Eliminado archivo de caché estancado %s"

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

#: glance/image_cache/drivers/sqlite.py:487
#: glance/image_cache/drivers/xattr.py:438
#, python-format
msgid "Deleting image cache file '%s'"
msgstr "Eliminando archivo de caché de imagen «%s»"

#: 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 "Archivo de imagen en caché «%s» no existe, no se puede borrar"

#: 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 ""
"El dispositivo que aloja el directorio de caché de imágenes "
"%(image_cache_dir)s no soporta xattr. Es probable que tenga que editar fstab "
"y añadir la poción user_xattr en la línea adecuada para que el dispositivo "
"aloje el directorio de caché."

#: glance/image_cache/drivers/xattr.py:280
#, python-format
msgid "Removing image '%s' from queue after caching it."
msgstr "Eliminando imagen «%s» de la cola después de incluir en caché."

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

#: glance/image_cache/drivers/xattr.py:383
#, python-format
msgid "No grace period, reaping '%(path)s' immediately"
msgstr "No hay plazo de espera, recuperar «%(path)s» inmediatamente"

#: glance/image_cache/drivers/xattr.py:388
#, python-format
msgid ""
"Cache entry '%(path)s' exceeds grace period, (%(age)i s > %(grace)i s)"
msgstr ""
"Entrada en caché «%(path)s» excede plazo de espera, (%(age)i s > %(grace)i s)"

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

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

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

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

#: glance/openstack/common/gettextutils.py:297
msgid "Message objects do not support addition."
msgstr "Los objetos de mensaje no son compatibles con la adición."

#: 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 "Imposible liberar el bloqueo adquirido «%s»"

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

#: glance/openstack/common/lockutils.py:177
#, python-format
msgid "Attempting to grab file lock \"%(lock)s\""
msgstr "Intentado obtener bloqueo de archivo «%(lock)s»"

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

#: glance/openstack/common/lockutils.py:205
#, python-format
msgid "Got file lock \"%(lock)s\" at %(path)s"
msgstr "Se obtuvo bloqueo de archivo «%(lock)s» en %(path)s"

#: glance/openstack/common/lockutils.py:209
#, python-format
msgid "Released file lock \"%(lock)s\" at %(path)s"
msgstr "Liberado bloqueo de archivo «%(lock)s» en %(path)s"

#: glance/openstack/common/lockutils.py:247
#, python-format
msgid "Got semaphore / lock \"%(function)s\""
msgstr "Se obtuvo semáforo / bloqueo «%(function)s»"

#: glance/openstack/common/lockutils.py:251
#, python-format
msgid "Semaphore / lock released \"%(function)s\""
msgstr "Semáforo / bloqueo liberado «%(function)s»"

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

#: glance/openstack/common/log.py:416
#, python-format
msgid "Error loading logging config %(log_config)s: %(err_msg)s"
msgstr ""
"Error al cargar configuración de registro de inicio %(log_config)s: "
"%(err_msg)s"

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

#: glance/openstack/common/log.py:688
#, python-format
msgid "Fatal call to deprecated config: %(msg)s"
msgstr "Llamada fatal a configuración obsoleta: %(msg)s"

#: glance/openstack/common/loopingcall.py:84
#, python-format
msgid "task run outlasted interval by %s sec"
msgstr "intervalo sobrepasado al ejecutar tarea en %s sg"

#: glance/openstack/common/loopingcall.py:91
msgid "in fixed duration looping call"
msgstr "en llamada en bucle de duración fija"

#: glance/openstack/common/loopingcall.py:131
#, python-format
msgid "Dynamic looping call sleeping for %.02f seconds"
msgstr "Llamada de bucle dinámico en espera durante %.02f segundos"

#: glance/openstack/common/loopingcall.py:138
msgid "in dynamic looping call"
msgstr "Llamada de bucle dinámico"

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

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

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

#: glance/openstack/common/processutils.py:127
#, python-format
msgid "Got unknown keyword args to utils.execute: %r"
msgstr ""
"Devolvió argumentos de palabra clave desconocidos para utils.execute: %r"

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

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

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

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

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

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

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

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

#: glance/openstack/common/service.py:164
msgid "Parent process has died unexpectedly, exiting"
msgstr "El proceso padre terminó de forma inesperada, saliendo"

#: glance/openstack/common/service.py:200
msgid "Forking too fast, sleeping"
msgstr "Se dividió demasiado rápido, durmiendo"

#: glance/openstack/common/service.py:223
msgid "Unhandled exception"
msgstr "Excepción no considerada"

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

#: glance/openstack/common/service.py:257
#, python-format
msgid "Child %(pid)d killed by signal %(sig)d"
msgstr "Hijo %(pid)d matado por la señal %(sig)d"

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

#: glance/openstack/common/service.py:265
#, python-format
msgid "pid %d not in child list"
msgstr "PID %d no está en la lista de hijos"

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

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

#: glance/openstack/common/strutils.py:86
#, python-format
msgid "Unrecognized value '%(val)s', acceptable values are: %(acceptable)s"
msgstr ""
"Valor «%(val)s» no reconocido, los valores aceptados son: %(acceptable)s"

#: glance/openstack/common/strutils.py:188
#, python-format
msgid "Invalid string format: %s"
msgstr "Formato de cadena no válido: %s"

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

#: glance/openstack/common/db/exception.py:44
msgid "Invalid Parameter: Unicode is not supported by the current database."
msgstr ""
"Parámetro no válido: Unicode no está permitido en la base de datos actual."

#: glance/openstack/common/db/sqlalchemy/migration.py:188
msgid "version should be an integer"
msgstr "la versión debe ser un entero"

#: 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 ""
"No hay ninguna columna «deleted» en la tabla «%s». El proyecto no usa la "
"característica del eliminado temporal."

#: 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 ""
"Indique la columna %s en el parámetro col_name_col_instance (es necesario ya "
"que la columna es de un tipo no soportado por sqlite."

#: 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 ""
"El parámetro col_name_col_instance es de un tipo de instancia de columna "
"incorrecto para la columna %s. Debería ser una instancia de "
"sqlalchemy.Column."

#: glance/openstack/common/db/sqlalchemy/utils.py:391
msgid "Unsupported id columns type"
msgstr "Tipo de columnas de id no soportado."

#: glance/quota/__init__.py:316
#, python-format
msgid "Cleaning up %s after exceeding the quota."
msgstr "Limpiar %s después de sobrepasar la cuota."

#: glance/registry/__init__.py:27
msgid "Address to find the registry server."
msgstr "La dirección para encontrar el servidor de registro."

#: glance/registry/__init__.py:29
msgid "Port the registry server is listening on."
msgstr "EL puerto en el cual el servidor de registro escucha."

#: glance/registry/api/v1/images.py:105
#, python-format
msgid "Invalid marker. Image %(id)s could not be found."
msgstr "Marcador no válido. La imagen %(id)s no puede ser encontrada"

#: glance/registry/api/v1/images.py:126 glance/registry/api/v1/images.py:131
msgid "Invalid marker. Image could not be found."
msgstr "Marcador no válido. No se ha podido encontrar la imagen."

#: 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 "Acceso denegado a la imagen %(id)s pero devolviendo «no encontrada»"

#: glance/registry/api/v1/images.py:115
msgid "Unable to get images"
msgstr "No se pueden obtener imágenes"

#: glance/registry/api/v1/images.py:147
msgid "Returning image list"
msgstr "Devolviendo lista de imágenes"

#: glance/registry/api/v1/images.py:165
msgid "Returning detailed image list"
msgstr "Devolviendo lista de imágenes detallada"

#: glance/registry/api/v1/images.py:237
msgid "Unrecognized changes-since value"
msgstr "Valor de changes-since no reconocido"

#: glance/registry/api/v1/images.py:242
msgid "protected must be True, or False"
msgstr "protected debe ser True o False"

#: glance/registry/api/v1/images.py:289
#, python-format
msgid "Unsupported sort_key. Acceptable values: %s"
msgstr "sort_key no soportado. Valores aceptables: %s"

#: glance/registry/api/v1/images.py:298
#, python-format
msgid "Unsupported sort_dir. Acceptable values: %s"
msgstr "sort_dir no soportado. Valores aceptables: %s"

#: glance/registry/api/v1/images.py:324
msgid "is_public must be None, True, or False"
msgstr "is_public debe ser None, True o False"

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

#: 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 "No se ha encontrado la imagen %(id)s"

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

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

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

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

#: glance/registry/api/v1/images.py:392
#, python-format
msgid "Rejecting image creation request for invalid image id '%(bad_id)s'"
msgstr ""
"Rechazando petición de creación de imagen para imagen no válida con id "
"%(bad_id)s"

#: glance/registry/api/v1/images.py:410
msgid "Invalid image id format"
msgstr "Formato de id de imagen no válido"

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

#: glance/registry/api/v1/images.py:424
#, python-format
msgid "Image with identifier %s already exists!"
msgstr "¡Ya existe una imagen con el identificador %s!"

#: glance/registry/api/v1/images.py:413
#, python-format
msgid "Failed to add image metadata. Got error: %(e)s"
msgstr "No se pudieron adjuntar los metadatos de la imagen. Error: %(e)s"

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

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

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

#: glance/registry/api/v1/images.py:472
#, python-format
msgid "Update denied for public image %(id)s"
msgstr "Actualización denegada para imagen pública %(id)s"

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

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

#: 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 "El usuario carece de permiso para compartir la imagen %(id)s"

#: 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 "No existe permiso para compartir esa imagen"

#: 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 ""
"Asociación de afiliación especificada para la imagen %(id)s no válida"

#: 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 "Asociación de pertenencia no válida: %s"

#: glance/registry/api/v1/members.py:189
#, python-format
msgid "Successfully updated memberships for image %(id)s"
msgstr "Afiliaciones para la imagen %(id)s actualizada con éxito"

#: glance/registry/api/v1/members.py:258
#, python-format
msgid "Successfully updated a membership for image %(id)s"
msgstr "Afiliación para la imagen %(id)s actualizada con éxito"

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

#: glance/registry/api/v1/members.py:314 glance/registry/api/v1/members.py:338
msgid "Membership could not be found."
msgstr "La pertenencia no se ha podido encontrar."

#: glance/registry/api/v1/members.py:304
#, python-format
msgid "Successfully deleted a membership from image %(id)s"
msgstr "Afiliación para la imagen %(id)s borrada con éxito"

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

#: glance/registry/api/v1/members.py:320
#, python-format
msgid "Returning list of images shared with member %(id)s"
msgstr "Devolviendo lista de imágenes compartidas con miembro %(id)s"

#: glance/registry/api/v2/rpc.py:40
#, python-format
msgid "Registry service can't use %s"
msgstr "El servicio de registro no puede usar %s"

#: glance/registry/client/__init__.py:23
msgid ""
"The protocol to use for communication with the registry server.  Either http "
"or https."
msgstr ""
"El protocolo a usar para la comunicación con el servidor de registro. Http o "
"https."

#: glance/registry/client/__init__.py:23
msgid ""
"The path to the key file to use in SSL connections to the registry server."
msgstr ""
"Ruta al archivo clave para usar en las conexiones SSL con el servidor de "
"registro."

#: glance/registry/client/__init__.py:26
msgid ""
"The path to the cert file to use in SSL connections to the registry server."
msgstr ""
"Ruta al archivo de cert a usar en las conexiones SSL con el servidor de "
"registro."

#: 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 ""
"Ruta al archivo cert de la autoridad certificadora a usar en las conexiones "
"SSL con el servidor de registro."

#: 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 ""
"Cuando se emplee SSL en las conexiones con el servidor de registro, no "
"requerir validación mediante una autoridad certificadora."

#: 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 ""
"El periodo de tiempo, en segundos, que el servidor API esperará para que se "
"complete una solicitud de registro. Un valor de 0 implica que no hay tiempo "
"de espera."

#: 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 ""
"Indica si pasar el «token» de usuario cuando se hace una petición al "
"registro."

#: glance/registry/client/__init__.py:46
msgid "The administrators user name."
msgstr "Nombre de usuario del administrador."

#: glance/registry/client/__init__.py:48
msgid "The administrators password."
msgstr "Contraseña del administrador."

#: 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 "URL al servicio de piedra clave."

#: glance/registry/client/__init__.py:54
msgid "The strategy to use for authentication."
msgstr "Estrategia a usar para la autenticación."

#: glance/registry/client/__init__.py:56
msgid "The region for the authentication service."
msgstr "Región para el servicio de autenticación."

#: 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 ""
"Indica si se deben pasar las cabeceras con la información de usuario y de "
"inquilino cuando se realizan peticiones al registro. Esto permite al "
"registro usar el contexto «middleware» sin el auth_token de los clientes "
"«keystone», eliminando llamadas al servicio de autenticación de «keystone». "
"Se recomienda que cuando se use esta opción, la comunicación entre el api de "
"glance y el registro de glance se proteja por otros medios distintos de "
"«middleware» de auth_token."

#: glance/registry/client/v1/api.py:79 glance/registry/client/v2/api.py:61
msgid "Configuration option was not valid"
msgstr "La opción de configuración no era válida"

#: glance/registry/client/v1/api.py:83 glance/registry/client/v2/api.py:65
msgid "Could not find required configuration option"
msgstr "No se ha podido encontrar la opción de configuración necesaria"

#: glance/registry/client/v1/api.py:159
msgid "Adding image metadata..."
msgstr "Añadiendo metadatos de imagen..."

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

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

#: 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 ""
"Petición de registro %(method)s %(action)s HTTP %(status)s id de petición "
"%(request_id)s"

#: glance/registry/client/v1/client.py:118
#, python-format
msgid "Registry client request %(method)s %(action)s raised %(exc_name)s"
msgstr ""
"Petición de registro de cliente %(method)s %(action)s elevado %(exc_name)s"

#: glance/store/__init__.py:40
msgid ""
"List of which store classes and store class locations are currently known to "
"glance at startup."
msgstr ""
"Lista de las clases almacén y ubicaciones de clases almacén actualmente "
"conocidas por glance en el arranque."

#: 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 ""
"Esquema predeterminado a usar para almacenar datos de la imagen. El esquema "
"debe ser registrado por uno de los almacenes definidos por la opción de "
"configuración «known_stores»."

#: glance/scrubber.py:46
msgid "Turn on/off delayed delete."
msgstr "Encender/apagar eliminación retrasada."

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

#: 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 "Falló al borrar la imagen %s en el almacén desde URI"

#: 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 "Omitiendo store.set_acls... no implementado"

#: glance/api/v1/images.py:1014 glance/common/scripts/utils.py:87
#, python-format
msgid "Invalid location: %s"
msgstr "Ubicaciones no válidas: %s"

#: glance/location.py:341
#, python-format
msgid "Original locations is not empty: %s"
msgstr "Las ubicaciones originales no están vacías: %s"

#: glance/location.py:479
#, python-format
msgid "Get image %(id)s data failed: %(err)s."
msgstr "Error al obtener información de imagen %(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 intentó recopilar datos para imagen %s en todas las ubicaciones pero "
"todas fallaron."

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

#: glance/store/base.py:56
#, python-format
msgid "Failed to configure store correctly: %s Disabling add method."
msgstr ""
"No se pudo configurar correctamente el almacén: %s Desactivando método de "
"añadir"

#: glance/store/cinder.py:88
#, python-format
msgid "Cinderclient connection created using URL: %s"
msgstr "Conexión de Cinderclient creada usando URL: %s"

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

#: glance/store/cinder.py:126
#, python-format
msgid "URI contains invalid volume ID: %s"
msgstr "URI contiene un volumen ID no válido: %s"

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

#: glance/store/cinder.py:153
msgid "Cinder storage requires a service catalog."
msgstr "Almacenaje cinder necesita un catálogo de servicio."

#: glance/store/cinder.py:175
#, python-format
msgid "Failed to get image size due to volume can not be found: %s"
msgstr ""
"Falló al obtener tamaño de imagen debido a que no encontró el volumen: %s"

#: glance/store/cinder.py:180
#, python-format
msgid "Failed to get image size due to internal error: %s"
msgstr "Falló al obtener tamaño de imagen debido a un error interno: %s"

#: glance/store/filesystem.py:41
msgid "Directory to which the Filesystem backend store writes images."
msgstr ""
"Directorio en el que el motor del sistema de archivos del almacén escribe "
"las imágenes."

#: 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 ""
"Devolverá la ruta de un archivo con metadatos con cualquier ubicación "
"asociada con este almacén. El archivo debe incluir un diccionario JSON "
"válido."

#: glance/store/filesystem.py:78
#, python-format
msgid "No path specified in URI: %s"
msgstr "No se ha indicado una ruta en URI: %s"

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

#: glance/store/filesystem.py:148
#, python-format
msgid "Directory to write image files does not exist (%s). Creating."
msgstr ""
"El directorio para escribir archivos de imagen no existe (%s). Crear."

#: glance/store/filesystem.py:162
#, python-format
msgid "Unable to create datadir: %s"
msgstr "No puede crear el directorio de datos: %s"

#: 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 ""
"El directorio especificado en la configuración del sistema de archivos no es "
"válido"

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

#: 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 ""
"Ha ocurrido un error al procesar el archivo de metadatos del sistema de "
"almacenamiento: %s. Se devolverá un diccionario vacío hacia el cliente."

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

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

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

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

#: glance/store/filesystem.py:348
#, python-format
msgid "Image file %s does not exist"
msgstr "El archivo de imagen %s no existe"

#: glance/store/filesystem.py:393
#, python-format
msgid ""
"There is no enough disk space left on the image storage media. requested=%s"
msgstr "No hay suficiente espacio disponible para la imagen. Solicitaso=%s"

#: glance/store/filesystem.py:424
#, python-format
msgid "Image file %s already exists!"
msgstr "El archivo de imagen %s ya existe"

#: glance/store/filesystem.py:450
#, python-format
msgid ""
"Wrote %(bytes_written)d bytes to %(filepath)s with checksum %(checksum_hex)s"
msgstr ""
"Escribió %(bytes_written)d bytes a %(filepath)s con suma de comprobación "
"%(checksum_hex)s"

#: glance/store/filesystem.py:462
#, python-format
msgid "Unable to remove partial image data for image %(id)s: %(error)s"
msgstr ""
"Imposible eliminar datos parciales de la imagen para la imagen %(id)s: "
"%(error)s"

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

#: 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 "No encuentra %(param)s en las opciones de configuración."

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

#: glance/store/gridfs.py:180
#, python-format
msgid "GridFS already has an image at location %s"
msgstr "GridFS ya incluye una imagen en la ubicación %s"

#: glance/store/gridfs.py:183
#, python-format
msgid "Adding a new image to GridFS with id %(id)s and size %(size)s"
msgstr ""
"Añadiendo una nueva imagen a GridFS con id %(id)s y %(size)s de tamaño"

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

#: glance/store/http.py:81
#, python-format
msgid "Credentials '%s' not well-formatted."
msgstr "Las credenciales «%s» no están bien formateadas."

#: glance/store/http.py:88
msgid "No address specified in HTTP URL"
msgstr "No especificó dirección en URL HTTP"

#: 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 "HTTP URL devolvió un código de estado %s."

#: 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 "Registrando esquema %(k)s con %(v)s"

#: 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 "Fondo RADOS en el que se almacenan las imágenes."

#: 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 "URI debe empezar con rbd://"

#: 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 "URI no válida: %(uri)s: %(reason)s"

#: glance/store/rbd.py:116
msgid "URI contains non-ascii characters"
msgstr "La URI contiene caracters no ASCII"

#: glance/store/rbd.py:129
msgid "URI must have exactly 1 or 4 components"
msgstr "La URI debe tener exactamente de 1 a 4 componentes"

#: glance/store/rbd.py:135
msgid "URI cannot contain empty components"
msgstr "La URI no puede tener componentes vacíos"

#: 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 "La imagen RDB %s no existe"

#: glance/store/rbd.py:198 glance/store/sheepdog.py:197
#: glance/store/sheepdog.py:205
#, python-format
msgid "Error in store configuration: %s"
msgstr "Error en configuración de almacén: %s"

#: glance/store/rbd.py:282
#, python-format
msgid ""
"snapshot %(image)s@%(snap)s could not be unprotected because it is in use"
msgstr ""
"la captura %(image)s@%(snap)s no se ha podido desproteger porque está en uso"

#: glance/store/rbd.py:297
#, python-format
msgid "image %s could not be removed because it is in use"
msgstr "la imagen %s no se eliminó porque está en uso"

#: 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 ""
"puesto que el tamaño de la imagen es cero se hará un cambio de tamaño antes "
"de la escritura para cada fragmento lo que será considerablemente más lento "
"de lo normal"

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

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

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

#: glance/store/s3.py:37
msgid "The host where the S3 server is listening."
msgstr "El equipo en el que el servidor S3 está escuchando."

#: glance/store/s3.py:39
msgid "The S3 query token access key."
msgstr "Clave de acceso del token de consulta S3"

#: glance/store/s3.py:41
msgid "The S3 query token secret key."
msgstr "Clave secreta del token de consulta S3"

#: glance/store/s3.py:43
msgid "The S3 bucket to be used to store the Glance data."
msgstr "Cubo S3 a usar para almacenar los datos de Glance."

#: 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 ""
"Booleano para determinar si el cubo S3 debería ser creado durante la carga "
"si no existe o si debería devolverse un error al usuario."

#: glance/store/s3.py:52
msgid ""
"The S3 calling format used to determine the bucket. Either subdomain or path "
"can be used."
msgstr ""
"Formato de llamada S3 usado para determinar el cubo. Se puede usar el "
"subdominio o la ruta."

#: 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 ""
"El URI no puede contener más de una aparición de un esquema. Si ha "
"especificado un URI como "
"s3://claveacceso:clavesecreta@https://s3.amazonaws.com/cubo/id-clave, "
"necesita cambiarlo para usar el esquema s3+https://, como: "
"s3+https://claveacceso:clavesecreta@s3.amazonaws.com/cubo/id-key"

#: glance/store/s3.py:123
#, python-format
msgid "Invalid store uri: %s"
msgstr "URI de almancén no válida: %s"

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

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

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

#: 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 ""
"Recuperado objeto de imagen desde S3 utilizando (s3_host=%(s3_host)s, "
"access_key=%(accesskey)s, bucket=%(bucket)s, key=%(obj_name)s)"

#: glance/store/s3.py:367
#, python-format
msgid "S3 already has an image at location %s"
msgstr "S3 ya tiene una imagen en ubicación %s"

#: 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 ""
"Añadir objeto de imagen a S3 utilizando (s3_host=%(s3_host)s, "
"access_key=%(access_key)s, bucket=%(bucket)s, key=%(obj_name)s)"

#: glance/store/s3.py:393
#, python-format
msgid "Writing request body file to temporary file for %s"
msgstr "Escribir petición del archivo body a archivo temporal para %s"

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

#: 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 ""
"Escrito %(size)d bytes a clave S3 denominada %(obj_name)s con suma de "
"comprobación %(checksum_hex)s"

#: 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 ""
"Eliminando objeto de imagen de S3 utilizando (s3_host=%(s3_host)s, "
"access_key=%(accesskey)s, bucket=%(bucket)s, key=%(obj_name)s)"

#: glance/store/s3.py:464
#, python-format
msgid "Could not find bucket with ID %s"
msgstr "No se pudo encontrar un cubo con ID %s"

#: glance/store/s3.py:505
#, python-format
msgid ""
"Failed to add bucket to S3.\n"
"Got error from S3: %(e)s"
msgstr ""
"No se pudo añadir el cubo a S3.\n"
"Devolvió error de S3: %(e)s"

#: 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 ""
"El cubo %(bucket)s no existe en S3. Establezca la opción "
"s3_store_create_bucket_on_put para añadir un cubo a S3 automáticamente."

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

#: 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 ""
"Las imágenes serán fragmentadas en objetos de este tamaño (en megabytes). "
"Para un mejor rendimiento, debería ser una potencia de dos."

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

#: glance/store/sheepdog.py:48
msgid "IP address of sheep daemon."
msgstr "Dirección IP del demonio sheep."

#: 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 "Imagen sheepdog %s no existe"

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

#: glance/store/swift.py:49
msgid ""
"Whether to use ServiceNET to communicate with the Swift storage servers."
msgstr ""
"Si usar ServiceNET para comunicar con los servidores de almacenamiento Swift."

#: glance/store/swift.py:52
msgid "The address where the Swift authentication service is listening."
msgstr ""
"Dirección en la que el servidor de autenticación Swift está escuchando."

#: 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 ""
"Clave de autenticación para el usuario que se está autenticando en el "
"servicio de autenticación Swift."

#: 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 ""
"Si Verdadero,  swiftclient no comprobará si hay un certificado SSL válido al "
"autenticar."

#: 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 ""
"La región del extremo swift a usar para un único inquilino. Este parámetro "
"sólo es necesario si el inquilino tiene múltiples extremos swift."

#: 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 ""
"Cadena que proporciona el tipo de extremo del servicio swift a usar "
"(publicURL, adminURL o internalURL). Este parámetro solo se usa si "
"swift_store_auth_version es 2."

#: 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 ""
"Cadena que proporciona el tipo de servicio del servicio swift a usar. Este "
"parámetro solo se usa si swift_store_auth_version es 2."

#: glance/store/swift.py:82
msgid ""
"Container within the account that the account should use for storing images "
"in Swift."
msgstr ""
"Contenedor dentro de la cuenta que la cuenta debería usar para almacenar "
"imágenes en Swift."

#: 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 ""
"Cantidad de datos escritos a un búfer de disco temporal durante el proceso "
"de troceado del archivo imagen."

#: glance/store/swift.py:93
msgid ""
"A boolean value that determines if we create the container if it does not "
"exist."
msgstr "Valor boolean que determina si crear el contenedor si no existe."

#: 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 ""
"Si está activo, habilita el modo de almacenamiento multi-inquilino que causa "
"que las imagenes Glance se almacenen en cuentas Swift inquilino específicas."

#: 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 ""
"Lista de los inquilinos a los que se les concederá acceso de "
"lectura/escritura en todos los contenedores Swift creados por Glance en modo "
"multi-inquilino."

#: 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 ""
"Si se establece a Falso, desactiva la capa de compresión SSL de las "
"peticiones https swift. Estableciéndolo a Falso se puede mejorar el "
"rendimiento para imágenes que ya están en un formato comprimidas como, por "
"ejemplo, qcow2."

#: 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 ""
"El URI no puede contener más de un suceso de un esquema. Si ha especificado "
"un URL tipo swift://user:pass@http://authurl.com/v1/container/obj, necesita "
"cambiarlo para utilizar swift+http:// scheme, como: "
"swift+http://user:pass@authurl.com/v1/container/obj"

#: glance/store/swift.py:220
#, python-format
msgid "Invalid store URI: %(reason)s"
msgstr "URI de almacén no válida: %(reason)s"

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

#: 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 "Eliminando fragmento %s"

#: 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 "Añadiendo objeto de imagen «%(obj_name)s» a Swift"

#: glance/store/swift.py:411
msgid "Cannot determine image size. Adding as a segmented object to Swift."
msgstr ""
"No se puede determinar el tamaño de la imagen. Añadiendo como un objeto "
"segmentado a Swift."

#: glance/store/swift.py:440
msgid "Error during chunked upload to backend, deleting stale chunks"
msgstr ""
"Error durante la subida fragmentada al motor, eliminando fragmentos antiguos"

#: 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 ""
"Escritura de fragmento %(chunk_name)s (%(chunk_id)d/%(total_chunks)s) de "
"%(bytes_read)d de longitud en Swift devolviendo MD5 de contenido: "
"%(chunk_etag)s"

#: glance/store/swift.py:461
msgid "Deleting final zero-length chunk"
msgstr "Eliminando trozo final de longitud cero"

#: glance/store/swift.py:498
msgid "Swift already has an image at this location"
msgstr "Swift ya tiene una imagen en esta ubicación"

#: glance/store/swift.py:500
#, python-format
msgid ""
"Failed to add object to Swift.\n"
"Got error from Swift: %(e)s"
msgstr ""
"No se pudo añadir el objeto a Swift.\n"
"Errores devueltos por Swift: %(e) s"

#: glance/store/swift.py:541 glance/store/swift.py:702
msgid "Swift could not find image at URI."
msgstr "Swift no pudo encontrar una imagen en URI."

#: glance/store/swift.py:562
#, python-format
msgid ""
"Failed to add container to Swift.\n"
"Got error from Swift: %(e)s"
msgstr ""
"No se pudo añadir el contenedor a Swift.\n"
"Errores devueltos por Swift: %(e)s"

#: 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 ""
"El contenedor %(container)s no existe en Swift. Cambie la opción "
"swift_store_create_container_on_put a Swift automáticamente."

#: glance/store/swift.py:610
msgid "Location is missing user:password information."
msgstr "A la ubicación le falta la información usuario:contraseña."

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

#: glance/store/swift.py:649
msgid "Multi-tenant Swift storage requires a context."
msgstr "Almacenamiento Switf multi-inquilino necesita de un contexto."

#: glance/store/swift.py:653
msgid "Multi-tenant Swift storage requires a service catalog."
msgstr ""
"Almacenamiento Switf multi-inquilino necesita de un catálogo de servicios."

#: 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 "se han perdido los datos de ubicación: %s"
