# 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.
