# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements.  See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License.  You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
jdbcAccessLogValve.exception = Excepci\u00F3n realizando entrada de acceso a inserci\u00F3n
cometConnectionManagerValve.event = Excepci\u00F3n procesando evento
cometConnectionManagerValve.listenerEvent = Excepci\u00F3n procesando evento de oyente de sesi\u00F3n
accessLogValve.closeFail = No pude cerrar fichero de historial
accessLogValve.openDirFail = No pude crear directorio [{0}] para historiales de acceso
accessLogValve.rotateFail = No pude rotar historial de acceso
# Error report valve
errorReportValve.errorReport = Informe de Error
errorReportValve.statusHeader = Estado HTTP {0} - {1}
errorReportValve.exceptionReport = Informe de Excepci\u00F3n
errorReportValve.statusReport = Informe de estado
errorReportValve.message = mensaje
errorReportValve.description = descripci\u00F3n
errorReportValve.exception = excepci\u00F3n
errorReportValve.rootCause = causa ra\u00EDz
errorReportValve.note = nota
errorReportValve.rootCauseInLogs = La traza completa de la causa de este error se encuentra en los archivos de diario de {0}.
remoteIpValve.invalidPortHeader = Valor inv\u00E1lido [{0}] hallado para el puerto en cabecera HTTP [{1}]
sslValve.certError = No pude procesar cadena de certificado [{0}] para crear un objeto  java.security.cert.X509Certificate
sslValve.invalidProvider = El proveedor de SSL especificado en el conecto asociado con este requerimiento de [{0}] ies inv\u00E1lido. No se pueden procesar los datos del certificado.
stuckThreadDetectionValve.notifyStuckThreadDetected = El hilo  "{0}" (id={6}) ha estado activo durante {1} miilisegundos (desde {2}) para servir el mismo requerimiento para {4} y puede estar atascado (el umbral configurado para este StuckThreadDetectionValve es de {5} segundos). Hay {3} hilo(s) en total que son monitorizados por esta V\u00E1lvula y pueden estar atascados.
stuckThreadDetectionValve.notifyStuckThreadCompleted = El hilo "{0}" (id={3}), que previamente se report\u00F3 como atascado, se ha completado. Estuvo activo por aproximadamente {1} milisegundos. {2, choice,0\#|0< Hay a\u00FAn {2} hilo(s) que son monitorizados por esta V\u00E1lvula y pueden estar atascados.}
# HTTP status reports
http.100 = El cliente puede continuar.
http.101 = El servidor est\u00E1 conmutando protocolos con arreglo a la cabecera "Upgrade".
http.201 = El requerimiento tuvo \u00E9xito y un nuevo recurso ha sido creado en el servidor.
http.202 = Este requerimiento ha sido aceptado para ser procesado, pero no ha sido completado.
http.203 = La informaci\u00F3n meta presentada por el cliente no se origin\u00F3 desde el servidor.
http.204 = El requerimiento tuvo \u00E9xito pero no hay informaci\u00F3n que devolver.
http.205 = El cliente no deber\u00EDa de limpiar la vista del documento que caus\u00F3 que este requerimiento fuera enviado.
http.206 = El servidor ha rellenado paci\u00E1lmente un requerimiento GET para este recurso.
http.207 = Se han devuelto valores m\u00FAltiples de estado.
http.300 = El recurso requerido corresponde a una cualquiera de un conjunto de representaciones, cada una con su propia localizaci\u00F3n espec\u00EDfica.
http.301 = El recurso requerido ha sido movido perman\u00E9ntemente a una nueva localizaci\u00F3n.
http.302 = El recurso requerido ha sido movido tempor\u00E1lmente a una nueva localizaci\u00F3n.
http.303 = La respuesta a este requerimiento se puede hallar bajo una URI diferente.
http.304 = El recurso requerido est\u00E1 disponible y no ha sido modificado.
http.305 = El recurso requerido debe de ser accedido a trav\u00E9s del apoderado (proxy) dado mediante la cabecera "Location".
http.400 = El requerimiento enviado por el cliente era sint\u00E1cticamente incorrecto.
http.401 = Este requerimiento requiere autenticaci\u00F3n HTTP.
http.402 = Se requiere pago para acceder a este recurso.
http.403 = El acceso al recurso especificado ha sido prohibido.
http.404 = El recurso requerido no est\u00E1 disponible.
http.405 = El m\u00E9todo HTTP especificado no est\u00E1 permitido para el recurso requerido.
http.406 = El recurso identificado por este requerimiento s\u00F3lo es capaz de generar respuestas con caracter\u00EDsticas no aceptables con arreglo a las cabeceras "accept" de requerimiento.
http.407 = El cliente debe de ser primero autenticado en el apoderado.
http.408 = El cliente no produjo un requerimiento dentro del tiempo en que el servidor estaba preparado esperando.
http.409 = El requerimiento no pudo ser completado debido a un conflicto con el estado actual del recurso.
http.410 = El recurso requerido ya no est\u00E1 disponible y no se conoce direcci\u00F3n de reenv\u00EDo.
http.411 = Este requerimiento no puede ser manejado sin un tama\u00F1o definido de contenido.
http.412 = Una precondici\u00F3n especificada ha fallado para este requerimiento.
http.413 = La entidad de requerimiento es mayor de lo que el servidor quiere o puede procesar.
http.414 = El servidor rechaz\u00F3 este requerimiento porque la URI requerida era demasiado larga.
http.415 = El servidor rechaz\u00F3 este requerimiento porque la entidad requerida se encuentra en un formato no soportado por el recurso requerido para el m\u00E9todo requerido.
http.416 = El rango de byte requerido no puede ser satisfecho.
http.417 = Lo que se espera dado por la cabecera "Expect" de requerimiento no pudo ser completado.
http.422 = El servidor entendi\u00F3 el tipo de contenido y la sint\u00E1xis del requerimiento pero no pudo procesar las instrucciones contenidas.
http.423 = La fuente o recurso de destino de un m\u00E9todo est\u00E1 bloqueada.
http.500 = El servidor encontr\u00F3 un error interno que hizo que no pudiera rellenar este requerimiento.
http.501 = El servidor no soporta la funcionalidad necesaria para rellenar este requerimiento.
http.502 = Este servidor recibi\u00F3 una respuesta inv\u00E1lida desde un servidor que consult\u00F3 cuando actuaba como apoderado o pasarela.
http.503 = El servicio requerido no est\u00E1 disponible en este momento.
http.504 = El servidor recibi\u00F3 un Tiempo Agotado desde un servidor superior cuando actuaba como pasarela o apoderado.
http.505 = El servidor no soporta la versi\u00F3n de protocolo HTTP requerida.
http.507 = El recurso no tiene espacio suficiente para registrar el estado del recurso tras la ejecuci\u00F3n de este m\u00E9todo.
